Project:Harmony/Current merge list

From Adélie Linux

< Project:Harmony

This page contains the current merge list of packages that are changed in Adélie and should be considered for merge back to Alpine.

Not yet triaged (from alpha5 mass rebuild)

  • community/gnumeric
  • community/pulseaudio
  • main/argp-standalone
  • main/gnupg
  • main/gtk+
  • main/gtk+3.0
  • main/gtk-doc
  • main/heimdal
  • main/java-gcj-compat
  • main/libpng
  • main/musl
  • main/py-six
  • main/swig
  • main/util-linux

Special issues


We have a patch for the test suite (which may not be necessary on musl 1.1.19; this will need to be tested). We use asciidoctor instead of asciidoc.


We --enable-smime.


Along with postfix, we have added provides="/usr/sbin/sendmail" for packages that need 'any' MTA.


We add NLS and a -lang subpackage.

Adds cross-compile support

  • ca-certificates
  • coreutils
  • curl
  • libssh2

Needs /bin/which

  • i3lock
  • libvpx
  • lm_sensors
  • redis — note we have a patch that changes `which` to `command`

PowerPC 64-bit big endian fixes

  • libffi
  • pcre
  • pcre2

Test suite issues


The testxlate test fails due to UTF-7 being unsupported on musl.


The test suite's Perl uses an outdated form of regular expression that cause modern Perl to crash. There are also assumptions about the libc that do not hold in musl. For this reason, we have two very large patches to make the tests pass.


The test suite was disabled on 21 September with a commit log message "disable testsuite, blocking builders on multiple archs". We haven't had any issues with it on x86, x86_64, ppc, ppc64, or armv7.


Requires unpackaged perl-test-command.


We use --disable-full-test-suite as recommended upstream and have no issues. (We also explicitly disable SSLv2 and a few other things.)


The test suite requires the builders to have a sysctl set:

   kernel.core_pattern = core.%p

Otherwise, the test fails because 'core' is overwritten during the test of handling core dumps.


The test suite takes about two hours on our builders. The fastest was ppc64, 1h48m; next was x86_64, 2h3m; next was ppc at 2h4m; last was x86 at 2h41m. It does pass.


We ported the test suite to Python 3, rewriting large parts of it in the process. We have not started a conversation upstream to determine if this will can be merged or not.


The tzdata package needs 'sp', a SGML validator from the mid 90s. I spent a full day making it compile with a modern compiler. Since it needs the DTDs as well, I had to override in /etc/hosts; they throttle requests to take 5 minutes due to lots of spurious bot traffic trying to download the DTD files.


The comment on Alpine's side is that "As of 5.4.2 - 3 tests fails". We have four tests failing, and we work around that by disabling them.

@@ -88,7 +88,14 @@
 check() {
        cd "$builddir"
+       # Does not work with musl due to UTF-8
+       rm "$builddir"/Test/A03quoting.ztst
+       # Does not work with musl due to locale
+       rm "$builddir"/Test/B03print.ztst
+       # Not guaranteed to work portably (requires atime)
+       rm "$builddir"/Test/C02cond.ztst
+       # PPC?
+       rm "$builddir"/Test/V09datetime.ztst
        make test

Packages that don't pass on Alpine

  • autoconf
  • c-ares (ppc64le, s390x only)
  • cmake
  • diffutils
  • glib-networking
  • gsl
  • harfbuzz
  • libnih
  • libsndfile
  • libtool
  • neon
  • orbit2
  • rsync
  • sed
  • snappy
  • strace
  • upower
  • wayland

From email threads


We have an /sbin/init virtual. and have added busybox as a provider.


They have a checkdepends of gawk which is satisfied by our mawk. Very annoying as we don't want to ship gawk at all if we can help it.


We enable a LOT more plugins: libcdio, ladspa, lzma, libspeex, freetype, wavpack, libwebp, and pulseaudio output support. Almost none of those are in Alpine main/ so it is impossible to add them to ffmpeg dependencies upstream.


Our differs (we enable infinality by default). We have no other changes. Alpine upstream temporarily did re-enable infinality by default, but they did not like it (I believe there was some bug in their XFCE 4 maybe?) so they reverted it.


We need the Qt5 version for KDE, and Alpine doesn't have Qt5 in main/, so this needs to probably move to system/.


Not compatible with Python 3 so we ripped out the Python bindings and replaced them with Guile bindings. I didn't see any packages with py2-gv as a dependency in aports, but unsure if they'd be willing to merge.


We enable the Wayland backend. I don't remember why we even do this, since we are not shipping Wayland at all. It may have been required for a KDE Gtk integration package.


We disable iptables support since it makes iproute2 nearly double in size and nftables is better supported and has a better feature set anyway.


We try to work around the stack overflow by bringing the column group size down to 6 from 16. This fixes it in most cases but not all. We need to find a better way to fix this. Since Jasper releases infrequently, we can likely carry this in system/.


We enable Freetype support for better font display in Blu-Ray menus.


We enable the GStreamer and PulseAudio backends and split them out. Alpine may even accept the GStreamer backend but pulse is in testing/ so again, it cannot be relied on by something in main/. Since we need both I figured it would be better to keep both of them. The last release was 2012 so we can easily carry this in system/.


Multiple problems prevent this from being upstreamed. It is a Python 2 -> Python 3 switch, it needs to be bumped to 0.26.0, it has a LibreSSL patch where we only use OpenSSL, and it has a kludge for support for Alpine Linux 3.4 where we don't need that. We may want to file a bug with Alpine to discuss this package.


We enable NLS and depend on gettext here.


The dependencies are complete divergent in our two packages despite us both having bumped to the same 0.7.7 release. This is of great concern.


We ship a massively different default configuration for Lighttpd. We opened a bug with Alpine to ask if they would like to ship ours instead.


Alpine PAM does not work for normal users, only root, because of bad permissions on /etc/pam.d. We fix this, and also add support for cross-compilation. Since Alpine does not really support PAM we should likely move this to system/ anyway, at least until pamela is in place and they start supporting PAM.


We depend on D-Bus, and they dropped the dependency. We are not sure how that works.

Python 2 removal


We remove boost-python, leaving only boost-python3.


We use --without-python because upstream has no interest in porting their bindings to Python 3.


We replace the Python 2 bindings with Perl bindings.


Patches that are still being worked on upstream. aerdan@ and I hope to have this landed in the next libevent version, then it isn't needed any more.


We only build py3-libxml2, not py2-libxml2. This breaks:

  • community/virt-manager
  • main/gnome-doc-utils (but we are working on porting this to 3)
  • testing/mopidy


We completely remove Python bindings here too. This doesn't seem to break anything, as nothing depends on it.


We neutered this APKBUILD to only build plpython3 instead of both, greatly simplifying it at the cost of removing the Python 2 bindings.


We changed the Python 2-only package to Python 3-only. It still works, but all the packages that use py-dbus need to be changed to use python3-dev instead of python2-dev. That would mean:

  • community/drbdmanage
  • community/targetcli
  • community/terminator
  • main/avahi-ui
  • main/avahi
  • testing/py-qt
  • testing/wicd

Note that I know avahi does not work at all with Python 3. I do not know the status of the other packages.


This is a mesa dep, py2 only in Alpine and py3 only in Adélie. It appears to also be used by:

  • community/py-opencl
  • testing/deluge
  • tesing/py-nikola
  • unmaintained/seahub

All of which also use Python 2 instead of 3.


We ship Python 3 instead of Python 2. This breaks a few very old Weechat scripts but enables the use of some other newer ones that use Python 3 syntax. It is a trade-off. (You cannot have both.)