Jeffery To [Tue, 19 May 2020 09:18:28 +0000 (17:18 +0800)]
measurement-kit: Add static build dependencies
When measurement-kit is a build dependency (in PKG_BUILD_DEPENDS) of
another package, this package's build dependencies (in DEPENDS) may not
be selected and so may not be built.
(This package does not produce a shared library; the measurement-kit
target package contains a program that is statically linked to the
measurement-kit library. Other packages may include measurement-kit in
their PKG_BUILD_DEPENDS to link to the static library but not include
measurement-kit as a run-time dependency.)
This adds PKG_BUILD_DEPENDS to this package to ensure that its
dependencies are built in this case.
This also adds MEASUREMENT_KIT_BUILD_DEPENDS that dependant packages
should select to ensure that this package's dependencies are correctly
built. (libevent2-openssl and libevent2-pthreads need to be selected for
the necessary functionality to be enabled when compiling libevent2.)
This also adds openssl as an explicit dependency; it appears to be used
directly by this package.
Jeffery To [Mon, 18 May 2020 07:01:17 +0000 (15:01 +0800)]
python3: Enable compile-time optimizations
This adds the --enable-optimizations configure option (for
profile-guided optimization) for both host and target Python, and the
--with-lto configure option (for link-time optimization) for target
Python (for non-MIPS platforms).
Currently, compiling Python with LTO leads to link errors on mips and
mipsel. (Compiling with LTO appears to succeed on mips64 but there is
only one mips64 target available for convenient testing.)
This also cleans up the host and target configure options:
* Sort options/variables
- Alphabetically
- Flags/options before child-process environment variables
- Group options by type (enable/disable/with/without)
- Static options/variables before conditional ones
* Remove the prefix/dir options, as they are the same as the defaults
set by the build system
* Remove --with-threads, as it is no longer a valid option (threads are
always enabled)
Sebastian Kemper [Sat, 16 May 2020 12:30:39 +0000 (14:30 +0200)]
apache: revisit suEXEC setup
When adding suEXEC to the apache package, Alpine's package [1] served as
a template. Not enough attention was paid to the details.
Alpine uses a different layout. So for OpenWrt to use /var/www as
DocumentRoot does not make sense. /var is also volatile on OpenWrt. This
commit removes the configure argument. The default is htdocsdir.
This also does away with uidmin/gidmin 99. The default is 100, which is
fine.
Finally, the suexec binary is moved from /usr/sbin to
/usr/lib/apache2/suexec_dir. Upstream recommends installing suexec with
"4750" (see [2]) and the group set to the user's group. While that would
be possible, it would cause a few headaches on OpenWrt. The group would
need to be changed first in a post-install script and a call to chmod
would need to be made afterward, to make the binary SUID again.
It's easier to hide the SUID binary away from others in a directory.
This way we don't need to use chmod in the post-install script.
Jeffery To [Thu, 14 May 2020 09:45:18 +0000 (17:45 +0800)]
golang: Set/reset default platform options for target Go compiler
Because the first stage for building target Go is actually a host build,
the default platform options (GO386, GOARM, etc.) are detected from the
host. These values are written to a source file and kept when building
the second stage.
This modifies this source file to set the appropriate values for the
target platform, and reset values for other platforms to their
cross-compiling / most compatible defaults.
Sebastian Kemper [Mon, 11 May 2020 20:55:24 +0000 (22:55 +0200)]
mariadb: switch init to mysqld_safe and mysqladmin
mysqld_safe is the recommended way to start the server on non-systemd
systems ([1]). For instance, it has a crash detection with auto-restart
function, can update ulimits, setup core files, set the niceness of the
server etc. It looks like it could also be helpful when trying to set up
clusters. It's maintained upstream and adding it means we don't need to
add these features into our init script.
mysqld_safe is a script itself, so it's added to conffiles in case users
want to edit it.
It can't be run under procd, so the init script is converted to a normal
System V type. To stop the server and to reload the privileges tables
mysqladmin is used. To that end mysqladmin is moved into the server
package.
While changing the init script, the Debian init script was used for
ideas. It wasn't copied verbatim and adapted a bit here and there.
Thanks to whoever wrote it!
This commit removes the support for starting the service as a user other
than "mariadb". This makes the init script simpler. If anybody wants to
play around with the user then it's up to them to fix the permissions.
Sebastian Kemper [Mon, 11 May 2020 20:28:06 +0000 (22:28 +0200)]
mariadb: update auth_pam handling
With INSTALL_PAMDIR undefined some items necessary for the auth_pam
module aren't built. This adds the define so that configuration and
shared object become available.
This commit also tightens up the installation of the SUID tool. The
directory it is copied into gets created on the build host already with
u=rwx,g=rx,o=, so it cannot be accessed on target, except by root. The
post-install script then changes group ownership of the directory to the
"mariadb" group only if the directory is really a directory and owned by
"root:root".
Sebastian Kemper [Mon, 11 May 2020 20:14:54 +0000 (22:14 +0200)]
mariadb: install config files readable for all
Until now $(INSTALL_CONF) is used for configuration files that go into
/etc/mysql. This commit replaces that with $(INSTALL_DATA). The
configuration files are not only parsed by the server, but also by the
clients (which can be anybody).
This also removes a comment about a cron job from one of the
configuration files. There is no cron job.
libssh2: switch default to OpenSSL and fix depends
All packages in the tree that depend on libssh2 _and_ have their own
dependency on a TLS library, depend on OpenSSL by default. It makes
sense for the libssh2 package to default to OpenSSL as well. This way it
does not pull in a second TLS library.
Also, the OpenSSL dependency is changed to
"+!LIBSSH2_MBEDTLS:libopenssl", which fixes build issues in case libssh2
is not selected but built anyway.
And last, Config.in file is removed and its content added to the
Makefile instead.