summaryrefslogtreecommitdiff
path: root/user
diff options
context:
space:
mode:
Diffstat (limited to 'user')
-rw-r--r--user/catcodec/APKBUILD26
-rw-r--r--user/docbook2x/APKBUILD50
-rw-r--r--user/docbook2x/autoconf.patch30
-rw-r--r--user/docbook2x/doc-typo.patch24
-rw-r--r--user/docbook2x/manpage-comments.patch81
-rw-r--r--user/docbook2x/refentry-whitespace.patch34
-rw-r--r--user/docbook2x/sourceforge-url.patch19
-rw-r--r--user/grfcodec/APKBUILD26
-rw-r--r--user/gvim/APKBUILD4
-rw-r--r--user/irssi/APKBUILD6
-rw-r--r--user/nml/APKBUILD30
-rw-r--r--user/opengfx/APKBUILD34
-rw-r--r--user/opengfx/Makefile.patch31
-rw-r--r--user/openmsx/APKBUILD34
-rw-r--r--user/openmsx/python3.patch265
-rw-r--r--user/opensfx/APKBUILD34
-rw-r--r--user/openttd/APKBUILD36
-rw-r--r--user/openttd/icu61.patch45
-rw-r--r--user/perl-gd/APKBUILD4
-rw-r--r--user/perl-type-tiny/APKBUILD4
-rw-r--r--user/perl-xml-sax-base/APKBUILD33
-rw-r--r--user/perl-xml-sax/APKBUILD37
-rw-r--r--user/perl-xml-sax/install-fix.patch11
-rw-r--r--user/perl-xml-sax/perl-xml-sax.post-install5
-rw-r--r--user/perl-xml-sax/perl-xml-sax.pre-deinstall5
-rw-r--r--user/py3-ply/APKBUILD31
-rw-r--r--user/x11vnc/APKBUILD47
-rw-r--r--user/x11vnc/utmps.patch9
28 files changed, 986 insertions, 9 deletions
diff --git a/user/catcodec/APKBUILD b/user/catcodec/APKBUILD
new file mode 100644
index 000000000..9a18b7b29
--- /dev/null
+++ b/user/catcodec/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: A. Wilcox <awilfox@adelielinux.org>
+# Maintainer: A. Wilcox <awilfox@adelielinux.org>
+pkgname=catcodec
+pkgver=1.0.5
+pkgrel=0
+pkgdesc="Encode and decode sound sample catalogues for OpenTTD"
+url="https://www.openttd.org/en/"
+arch="all"
+options="!check" # No test suite.
+license="GPL-2.0-only"
+depends=""
+makedepends=""
+subpackages="$pkgname-doc"
+source="https://binaries.openttd.org/extra/catcodec/1.0.5/catcodec-$pkgver-source.tar.xz"
+
+build() {
+ cd "$builddir"
+ make
+}
+
+package() {
+ cd "$builddir"
+ make prefix=/usr DESTDIR="$pkgdir" install
+}
+
+sha512sums="e6e17da17f2449ff5d3a18c34ba3125d475a481ef1dc73ba03dac32fc8523a8929d2cbdfda5f647a0226aa007a217fc90c85ec4cc46937f75e15a596277e0db5 catcodec-1.0.5-source.tar.xz"
diff --git a/user/docbook2x/APKBUILD b/user/docbook2x/APKBUILD
new file mode 100644
index 000000000..463e60300
--- /dev/null
+++ b/user/docbook2x/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: A. Wilcox <awilfox@adelielinux.org>
+# Maintainer: A. Wilcox <awilfox@adelielinux.org>
+pkgname=docbook2x
+pkgver=0.8.8
+pkgrel=0
+pkgdesc="Tool to convert DocBook XML to Unix man pages"
+url="http://docbook2x.sourceforge.net/"
+arch="all"
+license="MIT"
+depends="docbook-xml docbook-xsl libxml2-utils libxslt perl-xml-sax"
+makedepends="$depends_dev"
+subpackages="$pkgname-doc"
+source="https://downloads.sourceforge.net/docbook2x/docbook2X-$pkgver.tar.gz
+ autoconf.patch
+ doc-typo.patch
+ manpage-comments.patch
+ refentry-whitespace.patch
+ sourceforge-url.patch
+ "
+builddir="$srcdir/docbook2X-$pkgver"
+
+build() {
+ cd "$builddir"
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --program-transform-name 's/docbook2/docbook2x-/'
+ make
+}
+
+check() {
+ cd "$builddir"/test/refentry
+ make check
+}
+
+package() {
+ cd "$builddir"
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="cc336017ad734fc62d96d289105e8ea154c418a03a37f3e21b0b3520063f8b466b4aae5a5aec2e0b83f6324c6c79b5557247a93338d0a9882a94a44112f6b65c docbook2X-0.8.8.tar.gz
+eec73ea9e5b626dbc7d0107226ea15dd1b84194f83d97bd93b52d61acc6e03e7d683c6b52d3bd191a995db034dd09044005a18b565b9f55fe5ec2824eec0b639 autoconf.patch
+a563b46e7eaa8052dc2daea6ad8b0f3b12780ef063fafd37a6345ae663f6229ccb0b52be5e7b1fd6584d31e56de89af391efb856bbabfed164353578b39fb458 doc-typo.patch
+f204384bb206324d813b36e4e87e6a96f8b5808bfb3d7396505c84efc6784d4950a87533a3be1c67fce5f7b1d2f76eee8cf57f3ae48e3df43cf0cdc6531fbe14 manpage-comments.patch
+10ce7f7da9bb2e05701a38d9e6900e87e62043604736eef5dbb52d8b143c8693463cffacf24453ec3d1e057b0b243d1c53952247f412e6f036c7067ad5840c1f refentry-whitespace.patch
+c9dfbc19fc6bd11980c6da264e2683fd3c320f8c5d0d35f6c6d322cf3e7341d2d3fc88498e4a0213d4191f83c238abb0d824630be1360b3ec58e9887e8309aaa sourceforge-url.patch"
diff --git a/user/docbook2x/autoconf.patch b/user/docbook2x/autoconf.patch
new file mode 100644
index 000000000..f4a471d67
--- /dev/null
+++ b/user/docbook2x/autoconf.patch
@@ -0,0 +1,30 @@
+The evaluation of datadir results in "${prefix}/share" without
+evaluation of the ${prefix} variable with autoconf 2.60.
+
+Index: docbook2X-0.8.8/configure.ac
+===================================================================
+--- docbook2X-0.8.8.orig/configure.ac
++++ docbook2X-0.8.8/configure.ac
+@@ -148,7 +148,7 @@
+ dnl they will reside and should use these static_* values.
+ dnl Ensure that all static_* are fully expanded.
+
+-eval static_datadir="$datadir"
++eval eval static_datadir="$datadir"
+
+ eval static_bindir="$bindir"
+ old_val=""
+--- docbook2X-0.8.8/configure.old 2007-03-03 13:45:28.000000000 +0000
++++ docbook2X-0.8.8/configure 2019-01-13 19:36:53.820000000 +0000
+@@ -5266,6 +5266,11 @@
+
+
+ eval static_datadir="$datadir"
++old_val=""
++until test "$static_datadir" = "$old_val"; do
++ old_val="$static_datadir"
++ eval static_datadir="$static_datadir"
++done
+
+ eval static_bindir="$bindir"
+ old_val=""
diff --git a/user/docbook2x/doc-typo.patch b/user/docbook2x/doc-typo.patch
new file mode 100644
index 000000000..5be21bdf9
--- /dev/null
+++ b/user/docbook2x/doc-typo.patch
@@ -0,0 +1,24 @@
+Author: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
+
+--- docbook2x-0.8.8.orig/doc/docbook2man.1
++++ docbook2x-0.8.8/doc/docbook2man.1
+@@ -187,7 +187,7 @@ parameter instead.
+
+ However, inside a custom stylesheet
+ (\fInot on the command-line\fR)
+-this paramter can be set to the XPath expression
++this parameter can be set to the XPath expression
+ \*(T<document('')\*(T>,
+ which will cause the custom translations
+ directly embedded inside the custom stylesheet to be read.
+--- docbook2x-0.8.8.orig/doc/docbook2texi.1
++++ docbook2x-0.8.8/doc/docbook2texi.1
+@@ -230,7 +230,7 @@ parameter instead.
+
+ However, inside a custom stylesheet
+ (\fInot on the command-line\fR)
+-this paramter can be set to the XPath expression
++this parameter can be set to the XPath expression
+ \*(T<document('')\*(T>,
+ which will cause the custom translations
+ directly embedded inside the custom stylesheet to be read.
diff --git a/user/docbook2x/manpage-comments.patch b/user/docbook2x/manpage-comments.patch
new file mode 100644
index 000000000..c78a95c91
--- /dev/null
+++ b/user/docbook2x/manpage-comments.patch
@@ -0,0 +1,81 @@
+# Conventionally, preprocessor declarations should start with
+# '\"
+# rather than
+# .\"
+# Current man-db only supports the first (and recommended) syntax.
+
+diff -urNad trunk~/perl/db2x_manxml.pl trunk/perl/db2x_manxml.pl
+--- trunk~/perl/db2x_manxml.pl 2006-04-22 17:21:32.000000000 +0200
++++ trunk/perl/db2x_manxml.pl 2007-11-24 01:27:37.000000000 +0100
+@@ -342,6 +342,25 @@
+ $self->{line_start} = 1;
+ }
+
++#
++# Print a comment in the output, without causing a break.
++# Params: comment - the comment text.
++# May use any characters; they need not be escaped.
++#
++sub comment_nobreak
++{
++ my ($self, $comment) = @_;
++ $self->write("\n") unless $self->{line_start};
++
++ foreach my $line (split(/\n/, $comment)) {
++ $self->write('\'\" ');
++ $self->write($line);
++ $self->write("\n");
++ }
++
++ $self->{line_start} = 1;
++}
++
+
+ #
+ # Use a roff "escape" i.e. commands embedded in text starting with \
+@@ -510,16 +529,20 @@
+
+ $self->{'adjust-stack'} = [ 'b' ];
+
+- $self->{rw}->comment($elem->attr('preprocessors'))
+- if($elem->attr('preprocessors') ne '');
+-
++ my $preprocessors = $elem->attr('preprocessors');
+ # I've dug through the Internet to see if there was any
+ # standard way to specify encoding with man pages.
+ # The following seems to be a reasonable proposal:
+ # <URL:http://mail.nl.linux.org/linux-utf8/2001-04/msg00168.html>
+ my $encoding = $self->{options}->{'encoding'};
+ $encoding =~ s#//TRANSLIT$##i;
+- $self->{rw}->comment("-*- coding: $encoding -*-");
++ $encoding = "-*- coding: $encoding -*-";
++ if ($preprocessors eq '') {
++ $preprocessors = $encoding;
++ } else {
++ $preprocessors = "$preprocessors $encoding";
++ }
++ $self->{rw}->comment_nobreak($preprocessors);
+
+ # Define escapes for switching to and from monospace fonts (groff only)
+ $self->{rw}->request(qw{ .if \n(.g .ds T< \\\\FC});
+diff -urNad trunk~/xslt/backend/db2x_manxml.xsl trunk/xslt/backend/db2x_manxml.xsl
+--- trunk~/xslt/backend/db2x_manxml.xsl 2006-04-23 16:44:52.000000000 +0200
++++ trunk/xslt/backend/db2x_manxml.xsl 2007-11-24 01:27:37.000000000 +0100
+@@ -528,7 +528,7 @@
+ <exslt:document method="text"
+ encoding="{$encoding}"
+ href="{$path}">
+- <xsl:text>.\" -*- coding: </xsl:text>
++ <xsl:text>'\" -*- coding: </xsl:text>
+ <xsl:value-of select="$encoding" />
+ <xsl:text> -*-&#10;</xsl:text>
+ <xsl:copy-of select="$content" />
+@@ -538,7 +538,7 @@
+ <saxon:output method="text"
+ encoding="{$encoding}"
+ href="{$path}">
+- <xsl:text>.\" -*- coding: </xsl:text>
++ <xsl:text>'\" -*- coding: </xsl:text>
+ <xsl:value-of select="$encoding" />
+ <xsl:text> -*-&#10;</xsl:text>
+ <xsl:copy-of select="$content" />
diff --git a/user/docbook2x/refentry-whitespace.patch b/user/docbook2x/refentry-whitespace.patch
new file mode 100644
index 000000000..d80ab18b0
--- /dev/null
+++ b/user/docbook2x/refentry-whitespace.patch
@@ -0,0 +1,34 @@
+# Peter Eisentraut reported a regression in the whitespace handling of
+# refentrytitle content during filename creation: http://bugs.debian.org/420153
+# The problem is docbook2x replaces all spaces with underlines and then tries
+# to normalize the result. A linebreak with additional whitespaces results in
+# manpage names like 'foo_ ____bar.9'.
+
+diff -urNad docbook2x-0.8.8~/xslt/man/manpage.xsl docbook2x-0.8.8/xslt/man/manpage.xsl
+--- docbook2x-0.8.8~/xslt/man/manpage.xsl 2006-04-20 15:45:55.000000000 +0200
++++ docbook2x-0.8.8/xslt/man/manpage.xsl 2007-04-20 16:19:28.000000000 +0200
+@@ -30,7 +30,7 @@
+
+ <xsl:template name="manpage-filename">
+ <xsl:param name="filename" />
+- <xsl:value-of select="normalize-space(translate($filename, &quot; /&quot;, &quot;__&quot;))" />
++ <xsl:value-of select="translate(normalize-space($filename), ' /', '__')" />
+ </xsl:template>
+
+
+diff -urNad docbook2x-0.8.8~/xslt/man/refentry.xsl docbook2x-0.8.8/xslt/man/refentry.xsl
+--- docbook2x-0.8.8~/xslt/man/refentry.xsl 2006-04-21 04:39:55.000000000 +0200
++++ docbook2x-0.8.8/xslt/man/refentry.xsl 2007-04-20 16:21:53.000000000 +0200
+@@ -38,7 +38,11 @@
+ <xsl:template name="refentry-filename">
+ <xsl:param name="title" />
+
+- <xsl:variable name="title2" select="translate($title, &quot; /&quot;, &quot;__&quot;)" />
++ <xsl:variable name="title2">
++ <xsl:call-template name="manpage-filename">
++ <xsl:with-param name="filename" select="$title" />
++ </xsl:call-template>
++ </xsl:variable>
+
+ <!-- not using gentext here since man page names tend not to have
+ accented chars / non-Latin chars ...
diff --git a/user/docbook2x/sourceforge-url.patch b/user/docbook2x/sourceforge-url.patch
new file mode 100644
index 000000000..d6fd4a44a
--- /dev/null
+++ b/user/docbook2x/sourceforge-url.patch
@@ -0,0 +1,19 @@
+## Ondrej Certik reported a resolver issue: http://bugs.debian.org/418703.
+## The error seems to be caused by using the abbreviated sf.net URLs.
+
+diff -urNad docbook2x-0.8.8~/perl/db2x_xsltproc.pl docbook2x-0.8.8/perl/db2x_xsltproc.pl
+--- docbook2x-0.8.8~/perl/db2x_xsltproc.pl 2004-08-18 16:21:52.000000000 +0200
++++ docbook2x-0.8.8/perl/db2x_xsltproc.pl 2007-04-12 16:07:20.000000000 +0200
+@@ -110,10 +110,10 @@
+
+ if($options->{'stylesheet'} eq 'texi') {
+ $options->{'stylesheet'} =
+- "http://docbook2x.sf.net/latest/xslt/texi/docbook.xsl";
++ "http://docbook2x.sourceforge.net/latest/xslt/texi/docbook.xsl";
+ } elsif($options->{'stylesheet'} eq 'man') {
+ $options->{'stylesheet'} =
+- "http://docbook2x.sf.net/latest/xslt/man/docbook.xsl";
++ "http://docbook2x.sourceforge.net/latest/xslt/man/docbook.xsl";
+ }
+
+ if(scalar(@argv) != 1) {
diff --git a/user/grfcodec/APKBUILD b/user/grfcodec/APKBUILD
new file mode 100644
index 000000000..c0e97d2ac
--- /dev/null
+++ b/user/grfcodec/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: A. Wilcox <awilfox@adelielinux.org>
+# Maintainer: A. Wilcox <awilfox@adelielinux.org>
+pkgname=grfcodec
+pkgver=6.0.6
+pkgrel=0
+pkgdesc="Tool for manipulating OpenTTD GRF files"
+url="https://dev.openttdcoop.org/projects/grfcodec"
+arch="all"
+options="!check" # No test suite.
+license="GPL-2.0-only"
+depends=""
+makedepends="boost-dev"
+subpackages="$pkgname-doc"
+source="https://binaries.openttd.org/extra/grfcodec/$pkgver/grfcodec-$pkgver-source.tar.xz"
+
+build() {
+ cd "$builddir"
+ make
+}
+
+package() {
+ cd "$builddir"
+ make prefix=/usr DESTDIR="$pkgdir" install
+}
+
+sha512sums="543123c794bfdb5b6556f7a897bcd2f3bdd09be8ad6a4ff07b138e0cac62621a4801c732bb20099c1bb383ad5822fc4ade276d49acf2744c811edd10d7699480 grfcodec-6.0.6-source.tar.xz"
diff --git a/user/gvim/APKBUILD b/user/gvim/APKBUILD
index 209d6f084..b49bc0241 100644
--- a/user/gvim/APKBUILD
+++ b/user/gvim/APKBUILD
@@ -5,7 +5,7 @@
# Maintainer: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com>
pkgname=gvim
_pkgreal=vim
-pkgver=8.1.0687
+pkgver=8.1.0712
pkgrel=0
pkgdesc="advanced text editor"
url="http://www.vim.org"
@@ -74,4 +74,4 @@ package() {
ln -s gvim rgvim
}
-sha512sums="cf7cc21fa27f365a9a65333b4c18bf08c5aa3e6c6896ecaec54b57ff3d87d99463cf4e39b138b62ae7f7a7337b126fa3165e30c5045b30648ad2c21dc1df618a vim-8.1.0687.tar.gz"
+sha512sums="087d9d26898db718a0eb7a2bbaacfa87f4f907f2a89a21aff51688f5fd8a58284b075ba7f597c9c39f252e7b9aab8bc93f7bc9f2d67e486c17498be35443d10f vim-8.1.0712.tar.gz"
diff --git a/user/irssi/APKBUILD b/user/irssi/APKBUILD
index 87f8ac126..fc32ba66c 100644
--- a/user/irssi/APKBUILD
+++ b/user/irssi/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com>
# Maintainer: Kiyoshi Aman <kiyoshi.aman+adelie@gmail.com>
pkgname=irssi
-pkgver=1.1.1
-pkgrel=1
+pkgver=1.1.2
+pkgrel=0
pkgdesc="Text-based IRC client"
url="https://irssi.org"
arch="all"
@@ -10,7 +10,6 @@ license="GPL-2.0+ AND ISC"
makedepends="ncurses-dev glib-dev openssl-dev perl-dev"
subpackages="$pkgname-dev $pkgname-doc $pkgname-perl"
source="https://github.com/irssi/irssi/releases/download/$pkgver/irssi-$pkgver.tar.xz"
-sha512sums="b2fc0805d6213c31bc34c48237baf2e33ac509c0fa09c483fd39f1473e32eee227ff4532efc60fb495c2ec263c05290578bca7ad6d39149e0594f864da5986c0 irssi-1.1.1.tar.xz"
build() {
cd "$builddir"
@@ -45,3 +44,4 @@ perl() {
mv "$pkgdir"/usr/lib "$subpkgdir"/usr
mv "$pkgdir"/usr/share/irssi/scripts "$subpkgdir"/usr/share/irssi
}
+sha512sums="706f811c810b976888101a29bab6ff6b9aa6116678994b3710d6b266bfbc0ae2be1d4fd889aedfbf0a13a2e3da3f1affcce0018346ecc582865eaccd8cc79f84 irssi-1.1.2.tar.xz"
diff --git a/user/nml/APKBUILD b/user/nml/APKBUILD
new file mode 100644
index 000000000..6b7f9facb
--- /dev/null
+++ b/user/nml/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: A. Wilcox <awilfox@adelielinux.org>
+# Maintainer: A. Wilcox <awilfox@adelielinux.org>
+pkgname=nml
+pkgver=0.4.5
+pkgrel=0
+pkgdesc="NewGRF Meta Language utilities for OpenTTD mods"
+url="https://newgrf-specs.tt-wiki.net/wiki/NML:Main"
+arch="all"
+license="GPL-2.0+"
+depends="python3 py3-pillow py3-ply"
+makedepends="python3-dev"
+subpackages=""
+source="http://bundles.openttdcoop.org/nml/releases/$pkgver/nml-$pkgver.tar.gz"
+
+build() {
+ cd "$builddir"
+ python3 setup.py build
+}
+
+check() {
+ cd "$builddir"
+ make -C regression
+}
+
+package() {
+ cd "$builddir"
+ python3 setup.py install --prefix=/usr --root="$pkgdir"
+}
+
+sha512sums="64b2f46a1c2e37fce8f51231094e30334f368b0db39c6a3977a144a798d8034d1abbe7c14af3921eb81f4b7caa193e7e53ccb9e27acd113e0407926b109ca952 nml-0.4.5.tar.gz"
diff --git a/user/opengfx/APKBUILD b/user/opengfx/APKBUILD
new file mode 100644
index 000000000..b0ab22c55
--- /dev/null
+++ b/user/opengfx/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: A. Wilcox <awilfox@adelielinux.org>
+# Maintainer: A. Wilcox <awilfox@adelielinux.org>
+pkgname=opengfx
+pkgver=0.5.4
+pkgrel=0
+pkgdesc="Graphics files for OpenTTD"
+url="https://www.openttd.org/en/"
+arch="noarch"
+options="!check" # Requires GIMP
+license="GPL-2.0-only"
+depends=""
+makedepends="grfcodec nml"
+subpackages=""
+source="http://bundles.openttdcoop.org/opengfx/releases/$pkgver/$pkgname-$pkgver-source.tar.xz
+ Makefile.patch
+ "
+builddir="$srcdir/$pkgname-$pkgver-source"
+
+build() {
+ cd "$builddir"
+ make GIMP="" _V="" bundle_tar
+}
+
+package() {
+ cd "$builddir"
+ local _file
+ for _file in *.grf opengfx.obg; do
+ install -D -m644 -g games $_file \
+ "$pkgdir"/usr/share/games/openttd/data/$_file
+ done
+}
+
+sha512sums="42f8438c747b42a77cf9d86c5da60ce3ce84ed347d714c345f3871806f9e35f2ed4729b445e0ee319f3e2edd53458dfbaad5ca42e389c3a2e800bce19223cdb1 opengfx-0.5.4-source.tar.xz
+f2cd513b6b244fcdd522e488c3becd27164f622f0bc723bd1f704ce1e76419ac628425cf3fc437beb50f851735923e85eae8a3f70e828f58edff4d632784bbf9 Makefile.patch"
diff --git a/user/opengfx/Makefile.patch b/user/opengfx/Makefile.patch
new file mode 100644
index 000000000..169df9668
--- /dev/null
+++ b/user/opengfx/Makefile.patch
@@ -0,0 +1,31 @@
+--- opengfx-0.5.3-source/Makefile
++++ opengfx-0.5.3-source/Makefile
+@@ -99,8 +99,8 @@
+ AWK ?= awk
+ GREP ?= grep
+ PYTHON ?= python
+-UNIX2DOS ?= $(shell which unix2dos)
+-UNIX2DOS_FLAGS ?= $(shell [ -n $(UNIX2DOS) ] && $(UNIX2DOS) -q --version 2>/dev/null && echo "-q" || echo "")
++UNIX2DOS ?= $(shell which unix2dos 2>/dev/null)
++UNIX2DOS_FLAGS ?= $(shell [ -n $(UNIX2DOS) ] && $(UNIX2DOS) -q --version 2>/dev/null >&2 && echo "-q" || echo "")
+
+ # Graphics processing
+ GIMP ?= gimp
+@@ -196,7 +196,7 @@
+ endif
+
+ # Days of commit since 2000-1-1 00-00
+-REPO_DAYS_SINCE_2000 ?= $(shell $(PYTHON) -c "from datetime import date; print (date(`echo "$(REPO_DATE)" | sed s/-/,/g | sed s/,0/,/g`)-date(2000,1,1)).days")
++REPO_DAYS_SINCE_2000 ?= $(shell $(PYTHON) -c "from datetime import date; print ((date(`echo "$(REPO_DATE)" | sed s/-/,/g | sed s/,0/,/g`)-date(2000,1,1)).days)")
+
+ # Filename addition, if we're not building the default branch
+ REPO_BRANCH_STRING ?= $(shell if [ "$(REPO_BRANCH)" = "$(DEFAULT_BRANCH_NAME)" ]; then echo ""; else echo "-$(REPO_BRANCH)"; fi)
+@@ -719,7 +719,7 @@
+ $(_E)
+ endif
+ $(_E) "Release:"
+- $(_E) "bananas: Upload bundle to BaNaNaS
++ $(_E) "bananas: Upload bundle to BaNaNaS"
+ $(_E)
+ $(_E) "Valid command line variables are:"
+ $(_E) "Helper programmes:"
diff --git a/user/openmsx/APKBUILD b/user/openmsx/APKBUILD
new file mode 100644
index 000000000..5e29f657e
--- /dev/null
+++ b/user/openmsx/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: A. Wilcox <awilfox@adelielinux.org>
+# Maintainer: A. Wilcox <awilfox@adelielinux.org>
+pkgname=openmsx
+pkgver=0.3.1
+pkgrel=0
+pkgdesc="Music files for OpenTTD"
+url="https://www.openttd.org/en/"
+arch="noarch"
+options="!check" # No way to test MIDIs
+license="GPL-2.0-only"
+depends=""
+makedepends="python3"
+subpackages=""
+source="https://binaries.openttd.org/extra/openmsx/0.3.1/openmsx-$pkgver-source.tar.gz
+ python3.patch
+ "
+builddir="$srcdir/$pkgname-$pkgver-source"
+
+build() {
+ cd "$builddir"
+ make _V="" bundle
+}
+
+package() {
+ cd "$builddir"/$pkgname-$pkgver
+ local _file
+ for _file in *.mid openmsx.obm; do
+ install -D -m644 -g games $_file \
+ "$pkgdir"/usr/share/games/openttd/gm/$_file
+ done
+}
+
+sha512sums="e455f99f32d1daa77157def4f109dd1456169ae2b527290035b6a52f591c13fb7464fd221e00eb46bf03f51e8d0101de08a9e47cebe2430ad05a840ab235973e openmsx-0.3.1-source.tar.gz
+b6690158831cb3da9e0e65a523529ee0bb694a4a8b23c89f615b2481601a71fd84caecf29430054e69afa3ffcb53cf8dd5826358d7ef89429c661dd4d47bbb74 python3.patch"
diff --git a/user/openmsx/python3.patch b/user/openmsx/python3.patch
new file mode 100644
index 000000000..191aacfd6
--- /dev/null
+++ b/user/openmsx/python3.patch
@@ -0,0 +1,265 @@
+--- openmsx-0.3.1-source/scripts/authorlist.py.old 2010-08-09 22:34:42.000000000 +0000
++++ openmsx-0.3.1-source/scripts/authorlist.py 2019-01-12 18:12:26.010000000 +0000
+@@ -10,7 +10,6 @@
+ # <http://www.gnu.org/licenses/>.
+ #
+
+-import string
+ import sys
+
+ while 1:
+@@ -18,10 +17,10 @@
+ if data != '':
+ # do some processing of the contents of
+ # the data variable
+- separate = string.split(data,";")
+- print '%-30s %s' % (separate[1]+":", separate[2])
++ separate = data.split(";")
++ print('%-30s %s' % (separate[1]+":", separate[2]))
+ # end of data processing command group
+- # sys.stdout.write(res)
++ # sys.stdout.write(res)
+ else:
+ sys.stdout.flush()
+ break
+--- openmsx-0.3.1-source/scripts/md5list.py.old 2010-08-09 22:34:42.000000000 +0000
++++ openmsx-0.3.1-source/scripts/md5list.py 2019-01-12 18:16:21.260000000 +0000
+@@ -10,7 +10,6 @@
+ # <http://www.gnu.org/licenses/>.
+ #
+
+-import string
+ import sys
+ import subprocess
+ import os
+@@ -18,25 +17,25 @@
+ while 1:
+ data = sys.stdin.readline()
+ if data != '':
+- # leave out all comment lines (lines starting with '#')
+- comment_pos = string.find(data,'#')
+- if comment_pos == 0:
+- continue
+- # separate the single entries by ';'
+- separate = string.split(data,";")
+- if len(separate) != 4:
+- continue
+- systemtype = (os.uname())[0]
+- if systemtype == 'Linux':
+- md5call = ["md5sum"]
+- elif systemtype == 'Darwin':
+- md5call = ["md5", "-r"]
+- else:
+- md5call = ["md5sum"]
+- md5call = md5call + ["src/"+string.strip(separate[1])]
+- md5sum = subprocess.Popen(md5call, stdout=subprocess.PIPE).communicate()[0]
+- md5sum = string.split(md5sum)
+- res = "%-32s = %s\n" % (separate[1], md5sum[0])
++ # leave out all comment lines (lines starting with '#')
++ comment_pos = data.find('#')
++ if comment_pos == 0:
++ continue
++ # separate the single entries by ';'
++ separate = data.split(";")
++ if len(separate) != 4:
++ continue
++ systemtype = (os.uname())[0]
++ if systemtype == 'Linux':
++ md5call = ["md5sum"]
++ elif systemtype == 'Darwin':
++ md5call = ["md5", "-r"]
++ else:
++ md5call = ["md5sum"]
++ md5call = md5call + ["src/"+separate[1].strip()]
++ md5sum = subprocess.Popen(md5call, stdout=subprocess.PIPE).communicate()[0]
++ md5sum = md5sum.split()
++ res = "%-32s = %s\n" % (separate[1], md5sum[0].decode('utf-8'))
+ sys.stdout.write(res)
+ else:
+ sys.stdout.flush()
+--- openmsx-0.3.1-source/scripts/midifiles.py.old 2010-08-09 22:34:42.000000000 +0000
++++ openmsx-0.3.1-source/scripts/midifiles.py 2019-01-12 18:09:21.660000000 +0000
+@@ -10,23 +10,22 @@
+ # <http://www.gnu.org/licenses/>.
+ #
+
+-import string
+ import sys
+
+ res = ""
+ while 1:
+ data = sys.stdin.readline()
+ if data != '':
+- # leave out all comment lines (lines starting with '#')
+- comment_pos = string.find(data,'#')
+- if comment_pos == 0:
+- continue
+- # separate the single entries by ';'
+- separate = string.split(data,";")
+- if len(separate) != 4:
+- continue
+- res = res + " src/" + string.strip(separate[1])
++ # leave out all comment lines (lines starting with '#')
++ comment_pos = data.find('#')
++ if comment_pos == 0:
++ continue
++ # separate the single entries by ';'
++ separate = data.split(";")
++ if len(separate) != 4:
++ continue
++ res = res + " src/" + separate[1].strip()
+ else:
+- sys.stdout.write(res)
++ sys.stdout.write(res)
+ sys.stdout.flush()
+ break
+--- openmsx-0.3.1-source/scripts/namelist.py.old 2010-08-09 22:34:42.000000000 +0000
++++ openmsx-0.3.1-source/scripts/namelist.py 2019-01-12 18:24:41.820000000 +0000
+@@ -10,27 +10,26 @@
+ # <http://www.gnu.org/licenses/>.
+ #
+
+-import string
+ import sys
+
+ while 1:
+ data = sys.stdin.readline()
+ if data != '':
+- # leave out all comment lines (lines starting with '#')
+- comment_pos = string.find(data,'#')
+- if comment_pos == 0:
+- continue
+- # separate the single entries by ';'
+- separate = string.split(data,";")
+- if len(separate) != 4:
+- continue
+- res = "%-32s = %s\n" % (separate[1], string.strip(separate[3]))
++ # leave out all comment lines (lines starting with '#')
++ comment_pos = data.find('#')
++ if comment_pos == 0:
++ continue
++ # separate the single entries by ';'
++ separate = data.split(";")
++ if len(separate) != 4:
++ continue
++ res = "%-32s = %s\n" % (separate[1], separate[3].strip())
+ sys.stdout.write(res)
+ else:
+ sys.stdout.flush()
+ break
+
+ def authorlist(mystr):
+- separate = string.split()
+- for str in separate:
+- print string.strip(str)
+\ No newline at end of file
++ separate = mystr.split()
++ for str in separate:
++ print(str.strip())
+--- openmsx-0.3.1-source/scripts/playlist.py.old 2010-08-09 22:34:42.000000000 +0000
++++ openmsx-0.3.1-source/scripts/playlist.py 2019-01-12 18:24:46.440000000 +0000
+@@ -10,31 +10,30 @@
+ # <http://www.gnu.org/licenses/>.
+ #
+
+-import string
+ import sys
+
+ while 1:
+ data = sys.stdin.readline()
+ if data != '':
+- # leave out all comment lines (lines starting with '#')
+- comment_pos = string.find(data,'#')
+- if comment_pos == 0:
+- continue
+- # separate the single entries by ';'
+- separate = string.split(data,";")
+- res = ""
+- # leave out all lines which don't have the proper number of elements
+- if len(separate) >= 1:
+- res = string.strip(separate[0]) + " = "
+- if len(separate) == 4:
+- res = res + separate[1]
+- res = res + "\n"
++ # leave out all comment lines (lines starting with '#')
++ comment_pos = data.find('#')
++ if comment_pos == 0:
++ continue
++ # separate the single entries by ';'
++ separate = data.split(";")
++ res = ""
++ # leave out all lines which don't have the proper number of elements
++ if len(separate) >= 1:
++ res = separate[0].strip() + " = "
++ if len(separate) == 4:
++ res = res + separate[1]
++ res = res + "\n"
+ sys.stdout.write(res)
+ else:
+ sys.stdout.flush()
+ break
+
+ def authorlist(mystr):
+- separate = string.split()
+- for str in separate:
+- print string.strip(str)
+\ No newline at end of file
++ separate = mystr.split()
++ for str in separate:
++ print(str.strip())
+--- openmsx-0.3.1-source/scripts/sanitize_list.py.old 2010-08-09 22:34:42.000000000 +0000
++++ openmsx-0.3.1-source/scripts/sanitize_list.py 2019-01-12 18:25:21.200000000 +0000
+@@ -10,34 +10,33 @@
+ # <http://www.gnu.org/licenses/>.
+ #
+
+-import string
+ import sys
+
+ while 1:
+ data = sys.stdin.readline()
+ if data != '':
+- # leave out all comment lines (lines starting with '#')
+- comment_pos = string.find(data,'#')
+- if comment_pos == 0:
+- continue
+- # separate the single entries by ';'
+- separate = string.split(data,";")
+- if len(separate) != 4:
+- continue
+- res = ""
+- for str in separate:
+- if res != '':
+- res = res + ";" + string.strip(str)
+- else:
+- res = string.strip(str)
++ # leave out all comment lines (lines starting with '#')
++ comment_pos = data.find('#')
++ if comment_pos == 0:
++ continue
++ # separate the single entries by ';'
++ separate = data.split(";")
++ if len(separate) != 4:
++ continue
++ res = ""
++ for str in separate:
++ if res != '':
++ res = res + ";" + str.strip()
++ else:
++ res = str.strip()
+ # end of data processing command group
+- res = res + "\n"
++ res = res + "\n"
+ sys.stdout.write(res)
+ else:
+ sys.stdout.flush()
+ break
+
+ def authorlist(mystr):
+- separate = string.split()
+- for str in separate:
+- print string.strip(str)
+\ No newline at end of file
++ separate = mystr.split()
++ for str in separate:
++ print(str.strip())
diff --git a/user/opensfx/APKBUILD b/user/opensfx/APKBUILD
new file mode 100644
index 000000000..00093833d
--- /dev/null
+++ b/user/opensfx/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: A. Wilcox <awilfox@adelielinux.org>
+# Maintainer: A. Wilcox <awilfox@adelielinux.org>
+pkgname=opensfx
+pkgver=0.2.3
+pkgrel=0
+pkgdesc="Sound files for OpenTTD"
+url="https://www.openttd.org/en/"
+arch="noarch"
+license="CC-Sampling-Plus-1.0"
+depends=""
+makedepends="catcodec"
+subpackages=""
+source="https://binaries.openttd.org/extra/opensfx/0.2.3/opensfx-$pkgver-source.tar.gz"
+builddir="$srcdir/$pkgname-$pkgver-source"
+
+build() {
+ cd "$builddir"
+ make
+}
+
+check() {
+ cd "$builddir"
+ make check
+}
+
+package() {
+ cd "$builddir"
+ install -D -m644 -g games opensfx.cat \
+ "$pkgdir"/usr/share/games/openttd/data/opensfx.cat
+ install -D -m644 -g games opensfx.obs \
+ "$pkgdir"/usr/share/games/openttd/data/opensfx.obs
+}
+
+sha512sums="7575c8febcbcabe8f9042a1a197ba76b9020e335663bf70b0aaebafe4b0758f82ff7acc624b1dfdc12d38e346f139454b78ea29e18a8bb8bd2afd3d6a209669c opensfx-0.2.3-source.tar.gz"
diff --git a/user/openttd/APKBUILD b/user/openttd/APKBUILD
new file mode 100644
index 000000000..63df0988e
--- /dev/null
+++ b/user/openttd/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: A. Wilcox <awilfox@adelielinux.org>
+# Maintainer: A. Wilcox <awilfox@adelielinux.org>
+pkgname=openttd
+pkgver=1.8.0
+pkgrel=0
+pkgdesc="Simulation game based on Transport Tycoon Deluxe"
+url="https://www.openttd.org/en/"
+arch="all"
+options="!check" # Test files not shipped in release package.
+license="GPL-2.0-only"
+depends="opengfx openmsx opensfx"
+makedepends="fontconfig-dev freetype-dev icu-dev libpng-dev libxdg-basedir-dev
+ lzo-dev sdl-dev xz-dev zlib-dev"
+subpackages="$pkgname-doc"
+source="https://binaries.openttd.org/releases/1.8.0/openttd-$pkgver-source.tar.xz
+ icu61.patch
+ "
+
+build() {
+ cd "$builddir"
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --install-dir="$pkgdir" \
+ --disable-strip
+ make
+}
+
+package() {
+ cd "$builddir"
+ make install
+}
+
+sha512sums="a2d61b3c94a550c8f3a581127df8c3459b1ddff5ba924942c468cbc70e88e0bf4405cecb68a91243b544ead64f215aa8d489a07b38dce507ae7d59e8ec155d7a openttd-1.8.0-source.tar.xz
+db470433bcc68688b1a4cf71a514879c139300a778feb3f832bff0400b578d4b7720df6e259a86013334a661fce56c66d74aaf709d0027cf9638f006bebca10e icu61.patch"
diff --git a/user/openttd/icu61.patch b/user/openttd/icu61.patch
new file mode 100644
index 000000000..e4143d82f
--- /dev/null
+++ b/user/openttd/icu61.patch
@@ -0,0 +1,45 @@
+From 19076c24c1f3baf2a22d1fa832d5688216cf54a3 Mon Sep 17 00:00:00 2001
+From: Charles Pigott <charlespigott@googlemail.com>
+Date: Sun, 8 Apr 2018 01:06:18 +0100
+Subject: [PATCH] Fix #6690: Compilation with ICU 61
+
+---
+ src/language.h | 2 +-
+ src/strings.cpp | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/language.h b/src/language.h
+index d33ba81892..ec241dbd8c 100644
+--- a/src/language.h
++++ b/src/language.h
+@@ -105,7 +105,7 @@ extern LanguageList _languages;
+ extern const LanguageMetadata *_current_language;
+
+ #ifdef WITH_ICU_SORT
+-extern Collator *_current_collator;
++extern icu::Collator *_current_collator;
+ #endif /* WITH_ICU_SORT */
+
+ bool ReadLanguagePack(const LanguageMetadata *lang);
+diff --git a/src/strings.cpp b/src/strings.cpp
+index 1c539d9343..fd7420259a 100644
+--- a/src/strings.cpp
++++ b/src/strings.cpp
+@@ -52,7 +52,7 @@ const LanguageMetadata *_current_language = NULL; ///< The currently loaded lang
+ TextDirection _current_text_dir; ///< Text direction of the currently selected language.
+
+ #ifdef WITH_ICU_SORT
+-Collator *_current_collator = NULL; ///< Collator for the language currently in use.
++icu::Collator *_current_collator = NULL; ///< Collator for the language currently in use.
+ #endif /* WITH_ICU_SORT */
+
+ static uint64 _global_string_params_data[20]; ///< Global array of string parameters. To access, use #SetDParam.
+@@ -1795,7 +1795,7 @@ bool ReadLanguagePack(const LanguageMetadata *lang)
+
+ /* Create a collator instance for our current locale. */
+ UErrorCode status = U_ZERO_ERROR;
+- _current_collator = Collator::createInstance(Locale(_current_language->isocode), status);
++ _current_collator = icu::Collator::createInstance(icu::Locale(_current_language->isocode), status);
+ /* Sort number substrings by their numerical value. */
+ if (_current_collator != NULL) _current_collator->setAttribute(UCOL_NUMERIC_COLLATION, UCOL_ON, status);
+ /* Avoid using the collator if it is not correctly set. */
diff --git a/user/perl-gd/APKBUILD b/user/perl-gd/APKBUILD
index bde0ece21..57d9544e3 100644
--- a/user/perl-gd/APKBUILD
+++ b/user/perl-gd/APKBUILD
@@ -3,7 +3,7 @@
# Maintainer: Adélie Perl Team <adelie-perl@lists.adelielinux.org>
pkgname=perl-gd
_pkgreal=GD
-pkgver=2.69
+pkgver=2.70
pkgrel=0
pkgdesc="Perl module for GD graphics library"
url="https://metacpan.org/release/GD"
@@ -44,4 +44,4 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="9df5bc704c7723c032874f2c715c8abac9102826278c7502ec8396568176abb11f95a4fcc91f1d5fac7c92685481f3d759b760c3dfadf86564d110128e41c677 GD-2.69.tar.gz"
+sha512sums="07175fca2564e2b73b8cb15ebadbdafb2cac388a7a1ff35e64604c63966eecd428fe46831122b6f03ef6e0cca5d5886f5fc375d389b3b981379d9d7d0f1c55c1 GD-2.70.tar.gz"
diff --git a/user/perl-type-tiny/APKBUILD b/user/perl-type-tiny/APKBUILD
index 9e4cd812c..825483cce 100644
--- a/user/perl-type-tiny/APKBUILD
+++ b/user/perl-type-tiny/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: A. Wilcox <awilfox@adelielinux.org>
# Maintainer: Adélie Perl Team <adelie-perl@lists.adelielinux.org>
pkgname=perl-type-tiny
-pkgver=1.004002
+pkgver=1.004004
pkgrel=0
pkgdesc="Tiny Moo(se) compatible type constraint"
url="https://metacpan.org/release/Type-Tiny"
@@ -30,4 +30,4 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="fcdd8740e1ef6a2c5d214a54b57e65ebd222188377ebdd7bbdadc74741f3a5d00ba4a7490628bfb7cc937a32f5d5a578963ea1b6208e8fb99f095f2c3239cf82 Type-Tiny-1.004002.tar.gz"
+sha512sums="a1e09c5a3369e0a9ea8e172d86e68e818a720c5c4d633103a442fe389f7a8a7b4a03b2487ffd09f184caf4eca94ef471cc9293b04557b8d4dd260649b4121673 Type-Tiny-1.004004.tar.gz"
diff --git a/user/perl-xml-sax-base/APKBUILD b/user/perl-xml-sax-base/APKBUILD
new file mode 100644
index 000000000..e303436bd
--- /dev/null
+++ b/user/perl-xml-sax-base/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: A. Wilcox <awilfox@adelielinux.org>
+# Maintainer: Adélie Perl Team <adelie-perl@lists.adelielinux.org>
+pkgname=perl-xml-sax-base
+pkgver=1.09
+pkgrel=0
+pkgdesc="Driver for Perl SAX parser"
+url="https://metacpan.org/release/XML-SAX-Base"
+arch="noarch"
+license="Artistic-1.0-Perl OR GPL-2.0-only"
+depends=""
+makedepends="perl-dev"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/G/GR/GRANTM/XML-SAX-Base-$pkgver.tar.gz"
+builddir="$srcdir/XML-SAX-Base-$pkgver"
+
+build() {
+ cd "$builddir"
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ cd "$builddir"
+ make test
+}
+
+package() {
+ cd "$builddir"
+ make DESTDIR="$pkgdir" install
+ find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
+}
+
+sha512sums="72a34fd2b0375222cad3a42a0e2d92f793d7a2ac27d831a8a8d3322fdc75ba246ca53c33cdc0fbade81f3a96ad977ebf5d4cddc6d75d76be79b2e655f316d532 XML-SAX-Base-1.09.tar.gz"
diff --git a/user/perl-xml-sax/APKBUILD b/user/perl-xml-sax/APKBUILD
new file mode 100644
index 000000000..5f6559057
--- /dev/null
+++ b/user/perl-xml-sax/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: A. Wilcox <awilfox@adelielinux.org>
+# Maintainer: Adélie Perl Team <adelie-perl@lists.adelielinux.org>
+pkgname=perl-xml-sax
+pkgver=1.00
+pkgrel=0
+pkgdesc="Perl SAX parser"
+url="https://metacpan.org/release/XML-SAX"
+arch="noarch"
+license="Artistic-1.0-Perl OR GPL-1.0+"
+depends="perl-xml-namespacesupport perl-xml-sax-base"
+makedepends="perl-dev"
+install="$pkgname.post-install $pkgname.pre-deinstall"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/G/GR/GRANTM/XML-SAX-$pkgver.tar.gz
+ install-fix.patch
+ "
+builddir="$srcdir/XML-SAX-$pkgver"
+
+build() {
+ cd "$builddir"
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ cd "$builddir"
+ make test
+}
+
+package() {
+ cd "$builddir"
+ make DESTDIR="$pkgdir" install
+ find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
+}
+
+sha512sums="95553c9693d8a310747b4b86d4e80a58d4056b18cfc334f6979c98d0e9034a34253bfb17daecfc5bb28b1bd65e6baf52136f5135a969fadba86aa4148ea9bc1d XML-SAX-1.00.tar.gz
+a2177f0aa00bb31c41298f0c622f800ac0dddb1d30bc1bf86e035cfd8327fa8078baf46587ffd4a782c22fba0783709f2459c81b95a8ef86e1fd4e4058e3a166 install-fix.patch"
diff --git a/user/perl-xml-sax/install-fix.patch b/user/perl-xml-sax/install-fix.patch
new file mode 100644
index 000000000..c28d48b3a
--- /dev/null
+++ b/user/perl-xml-sax/install-fix.patch
@@ -0,0 +1,11 @@
+--- XML-SAX-1.00/Makefile.PL.old 2018-02-15 09:44:15.000000000 +0000
++++ XML-SAX-1.00/Makefile.PL 2019-01-11 20:58:06.250000000 +0000
+@@ -23,7 +23,7 @@
+
+ eval { require XML::SAX };
+ if ($@) {
+- $write_ini_ok = 1;
++ $write_ini_ok = 0;
+ }
+ else {
+ my $dir = File::Basename::dirname($INC{'XML/SAX.pm'});
diff --git a/user/perl-xml-sax/perl-xml-sax.post-install b/user/perl-xml-sax/perl-xml-sax.post-install
new file mode 100644
index 000000000..b07b8dae7
--- /dev/null
+++ b/user/perl-xml-sax/perl-xml-sax.post-install
@@ -0,0 +1,5 @@
+#!/bin/sh
+# Add the parser to the registry.
+
+LC_ALL=C perl -MXML::SAX -e \
+ "XML::SAX->add_parser(q(XML::SAX::PurePerl))->save_parsers()"
diff --git a/user/perl-xml-sax/perl-xml-sax.pre-deinstall b/user/perl-xml-sax/perl-xml-sax.pre-deinstall
new file mode 100644
index 000000000..cdfeaccfa
--- /dev/null
+++ b/user/perl-xml-sax/perl-xml-sax.pre-deinstall
@@ -0,0 +1,5 @@
+#!/bin/sh
+# Remove the parser from the registry.
+
+LC_ALL=C perl -MXML::SAX -e \
+ "XML::SAX->remove_parser(q(XML::SAX::PurePerl))->save_parsers()"
diff --git a/user/py3-ply/APKBUILD b/user/py3-ply/APKBUILD
new file mode 100644
index 000000000..495a66d53
--- /dev/null
+++ b/user/py3-ply/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: A. Wilcox <awilfox@adelielinux.org>
+# Maintainer: A. Wilcox <awilfox@adelielinux.org>
+pkgname=py3-ply
+pkgver=3.11
+pkgrel=0
+pkgdesc="lex(1) and yacc(1) parser in Python"
+url="http://www.dabeaz.com/ply/"
+arch="noarch"
+license="BSD-3-Clause"
+depends="python3"
+makedepends="python3-dev"
+subpackages=""
+source="http://www.dabeaz.com/ply/ply-$pkgver.tar.gz"
+builddir="$srcdir/ply-$pkgver"
+
+build() {
+ cd "$builddir"
+ python3 setup.py build
+}
+
+check() {
+ cd "$builddir"
+ python3 setup.py check
+}
+
+package() {
+ cd "$builddir"
+ python3 setup.py install --prefix=/usr --root="$pkgdir"
+}
+
+sha512sums="37e39a4f930874933223be58a3da7f259e155b75135f1edd47069b3b40e5e96af883ebf1c8a1bbd32f914a9e92cfc12e29fec05cf61b518f46c1d37421b20008 ply-3.11.tar.gz"
diff --git a/user/x11vnc/APKBUILD b/user/x11vnc/APKBUILD
new file mode 100644
index 000000000..c68858df3
--- /dev/null
+++ b/user/x11vnc/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: A. Wilcox <awilfox@adelielinux.org>
+# Maintainer: A. Wilcox <awilfox@adelielinux.org>
+pkgname=x11vnc
+pkgver=0.9.16
+pkgrel=0
+pkgdesc="VNC server for X11 sessions"
+url="http://www.karlrunge.com/x11vnc/"
+arch="all"
+license="GPL-2.0-only"
+makedepends="cairo-dev libjpeg-turbo-dev libvncserver-dev libxcursor-dev
+ openssl-dev utmps-dev zlib-dev"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/LibVNC/x11vnc/archive/$pkgver.tar.gz
+ utmps.patch
+ "
+
+prepare() {
+ cd "$builddir"
+ default_prepare
+ ./autogen.sh
+}
+
+build() {
+ cd "$builddir"
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ cd "$builddir"
+ make check
+}
+
+package() {
+ cd "$builddir"
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="69f65ee312f8dede6051b401304987502a213c6c28c7f41e855734f11de1fae14d5d493dc9c28b2e4b7c0be55f8dbd3b35dd2610aae910183772c3e626736fec x11vnc-0.9.16.tar.gz
+8aaa6d1fd9e795a60cad162f2b21fe96cd3a7076a0c4fae6e6b0021881bd019312a678fa3ed69b694da36ee64cc0601812da5df96c6461baf68b7e70adf6cd4e utmps.patch"
diff --git a/user/x11vnc/utmps.patch b/user/x11vnc/utmps.patch
new file mode 100644
index 000000000..0a41b2037
--- /dev/null
+++ b/user/x11vnc/utmps.patch
@@ -0,0 +1,9 @@
+--- x11vnc-0.9.16/src/Makefile.am.old 2019-01-05 13:22:11.000000000 +0000
++++ x11vnc-0.9.16/src/Makefile.am 2019-01-10 20:20:45.880000000 +0000
+@@ -145,4 +145,5 @@
+ @AVAHI_LIBS@ \
+ @XI2_LIBS@ \
+ @CAIRO_LIBS@ \
+- $(LD_CYGIPC)
++ $(LD_CYGIPC) \
++ -lutmps -lskarnet