Instead of making POWERDOWNFLAG an uci option the user can
only change it via initscript edits. This avoids chance for users
to miss the required change to nut-driver when setting an UCI option
for nut-monitor which results in failure to do FSD on the UPS.
By default use a non-privileged user that is different than
the server or driver (when they are running non-privileged).
This is recommended by upstream.
Even though nut-cgi doesn't run a daemon, using procd triggers
is helpful for updating the generated config file when the
UCI config changes. So implement this and 'modernize' nut-cgi initscript
Forced shutdown of the UPS was not actually happening before
due to lack of specific commands doing the shutdown. This
(and the nut-driver initscript) fix that.
This fully procdifies nut-monitor, which fixes some issues with
very slow restarts (due to /lib/functions/procd.sh using a very
long delay for non-native scripts doing restart) as well as gives
respawning, etc.
usbhid-ups has the necessary information in the source, so
let's support USB hotplugging out of the box. Takes advantage of
the procd support now in nut-server initscript.
Clarify the different between the common nut-driver portions of
nut-server and the nut-server (upsd) proper. nut-driver can't
be used without nut-server so there is no compelling reason
to split into a separate package, but the reorganization makes
such a move easier and makes it clear what each bit is for.
While we continue to use a single initscript, it's a properly
procdified one which handles the upsd daemon as a different
instance than the driver instances. This resolves a race
condition in which upsd and drivers fail to start do to
a degree of interdepedence.
Also properly 'procd'ifies the nut-server initscript.
We want to include the symlinks to the generated configurations
in conffiles so that if the user replaces them symlinks with
traditional NUT configuration it is preserved across sysupgrade.
Locally, this does not happen. I assume the reason is that it has some special handling for
GitHub's tar archives where it extracts it to the name in PKG_SOURCE. So adjust that.
Michael Heimpold [Thu, 23 Aug 2018 20:04:31 +0000 (22:04 +0200)]
php7: add dependency to hash for mysqlnd
The following error shows that mysqlnd depends on functions
provided by hash:
root@OpenWrt:/etc/php7# php-cli -m
PHP Warning: PHP Startup: Unable to load dynamic library
'mysqlnd.so' (tried: /usr/lib/php/mysqlnd.so (Error
relocating /usr/lib/php/mysqlnd.so: PHP_SHA256Final: symbol
not found), /usr/lib/php/mysqlnd.so.so (Error loading shared
library /usr/lib/php/mysqlnd.so.so: No such file or
directory)) in Unknown on line 0
The upstream acme.sh package changed to using socat instead of netcat;
update the dependencies to reflect this, and pass --listen-v6 when running
in standalone mode (since socat only listens on IPv4 by default).
Also add a missing cleanup call when certificate issuance fails.
Sebastian Kemper [Tue, 21 Aug 2018 21:19:26 +0000 (23:19 +0200)]
mariadb: bump to 10.2.17
From Release Notes:
- New variable innodb_log_optimize_ddl for avoiding delay due to page flushing and allowing concurrent backup
- InnoDB updated to 5.7.23
- ALTER TABLE fixes:
MDEV-14637 - Fix hang due to DDL with FOREIGN KEY or persistent statistics
MDEV-15953 - Alter InnoDB Partitioned Table Moves Files (which were originally not in the datadir) to the datadir
MDEV-16515 - InnoDB: Failing assertion: ++retries < 10000 in file dict0dict.cc line 2737
MDEV-16809 - Allow full redo logging for ALTER TABLE
- Temporary tables: MDEV-16713 - InnoDB hang with repeating log entry
- indexed virtual columns: MDEV-15855 - Deadlock between purge thread and DDL statement
- locking: MDEV-16664 - Change the default to innodb_lock_schedule_algorithm=fcfs
- Galera: MDEV-15822 - WSREP: BF lock wait long for trx
- Fixes for the following security vulnerabilities:
CVE-2018-3060
CVE-2018-3064
CVE-2018-3063
CVE-2018-3058
CVE-2018-3066
Ruixi Zhou [Sun, 12 Aug 2018 06:23:50 +0000 (14:23 +0800)]
nginx: Add missing WebDAV methods support (PROPFIND & OPTIONS)
Nginx provide WebDAV methods PUT, DELETE, MKCOL, COPY, and MOVE with
http_dav_module. But most WebDAV clients that require additional WebDAV
methods (PROPFIND & OPTIONS) to operate. Add missing methods support
with Arutyunyan Roman (arutyunyan.roman@gmail.com)'s nginx-dav-ext-module.
(see: http://nginx.org/en/docs/http/ngx_http_dav_module.html
https://github.com/arut/nginx-dav-ext-module)
Example config:
location / {
dav_methods PUT DELETE MKCOL COPY MOVE;
dav_ext_methods PROPFIND OPTIONS;
Karl Palsson [Mon, 20 Aug 2018 09:30:12 +0000 (09:30 +0000)]
net/mosquitto: update to 1.5.1
Bugfix release. Full changelog at:
https://mosquitto.org/blog/2018/08/version-151-released/
Of most interest to OpenWrt:
* Remove use of AI_ADDRCONFIG, which means the broker can be used on systems where only the loopback interface is defined.
* Fix IPv6 addresses not being able to be used as bridge addresses.
* Fix problem opening listeners on Pi caused by unsigned char being default.
* Fix segfault on startup if bridge CA certificates could not be read.
* Fix possible endian issue when reading the memory_limit option.
* library and client bugfixes including: https://github.com/openwrt/packages/issues/6765
doveco: pigeonhole: Use stock dovecot dir locations
We move dovecot libexec binaries and modules (including the package
pigeonhole) to their standard locations. This is okay for libexec
because it was added to core prior to 17.04 release. Moving the
binaries normally in libexec eliminates the reason the modules were in an
unusual directory, which is that there were conflicts with
libexec binaries that were in lib, which the modules normally use.
When trying to use managesieve my MUA complained sieve wasn't supported.
On investigation dovecot logs the following could be seen:
Aug 16 00:28:44 managesieve-login: Fatal: master:
service(managesieve-login): child 1430 returned error 127
Aug 16 00:31:32 managesieve-login: Error: Error loading shared
library libdovecot-login.so.0: No such file or directory
(needed by /usr/lib/dovecot/managesieve-login)
Aug 16 00:31:32 managesieve-login: Error: Error loading
shared library libdovecot.so.0: No such file or directory
(needed by /usr/lib/dovecot/managesieve-login)
Aug 16 00:31:32 managesieve-login: Error: Error relocating
/usr/lib/dovecot/managesieve-login: net_ip2addr: symbol not found
The issue (verified with readelf on non-working build and build with my fix)
is that there is no RPATH information in the pigeonhole binaries (like
managesieve-login).
The dovecot-config that is 'installed' in the staging dir
assumes that plugins will be built on the same host as the installed files.
The 'installed' dovecot-config (partial) looks like:
The solution I used was to modify dovecot-config to add the rpath to
DOVECOT_BINARY_LDFLAGS, and to replace references to host directories
with staging_dir directories.
This results in RPATH being added as it needs to be, and results in a working
version of dovecot+pigeonhole.
NB: I've also touched package version of pigeonhole as this change in dovecot
results in (needed) binary changes for pigeonhole.