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

git

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.

mutt

We --enable-smime.

ssmtp

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

wget

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

apr-util

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

attr

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.

cmake

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.

feh

Requires unpackaged perl-test-command.

gnutls

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

kyua

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.

openldap

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.

parted

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.

tzdata

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 w3.org DTDs as well, I had to override www.w3.org in /etc/hosts; they throttle requests to take 5 minutes due to lots of spurious bot traffic trying to download the DTD files.

zsh

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

busybox

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

check

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.

ffmpeg

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.

freetype

Our freetype-profile.sh 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.

gpgme

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

graphviz

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.

gtk+3.0

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.

iproute2

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

jasper

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/.

libbluray

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

libcanberra

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/.

libgit2

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.

libnih

We enable NLS and depend on gettext here.

libnotify

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.

lighttpd

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.

linux-pam

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.

wpa_supplicant

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

Python 2 removal

boost

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

gamin

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

hexchat

We replace the Python 2 bindings with Perl bindings.

libevent

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.

libxml2

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

libxslt

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

postgresql

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

py-dbus

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.

py-mako

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.

weechat

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.)