aboutsummaryrefslogtreecommitdiffstats
path: root/community
diff options
context:
space:
mode:
authorLeo <thinkabit.ukim@gmail.com>2020-03-16 02:26:02 -0300
committerLeo <thinkabit.ukim@gmail.com>2020-03-23 12:07:30 -0300
commit41ab224df12b8487004a1522b4f671680c082954 (patch)
tree9ebbc4ea5d1cfb82757ca1fd862b67e444a712a2 /community
parent1f40937c55d742c7ae05db34c966c3dd2d6595e7 (diff)
downloadaports-41ab224df12b8487004a1522b4f671680c082954.tar.gz
aports-41ab224df12b8487004a1522b4f671680c082954.tar.bz2
aports-41ab224df12b8487004a1522b4f671680c082954.tar.xz
community/*: move lots of stuff from main and modernize
Diffstat (limited to 'community')
-rw-r--r--community/aria2/APKBUILD76
-rw-r--r--community/aria2/aria2-daemon.pre-install7
-rw-r--r--community/aria2/aria2.conf61
-rw-r--r--community/aria2/aria2.confd10
-rw-r--r--community/aria2/aria2.initd32
-rw-r--r--community/aria2/aria2.logrotate6
-rw-r--r--community/cabextract/APKBUILD34
-rw-r--r--community/cadaver/APKBUILD41
-rw-r--r--community/cadaver/disable-nls.patch17
-rw-r--r--community/cadaver/neon.patch43
-rw-r--r--community/cpufreqd/APKBUILD34
-rw-r--r--community/cpufreqd/cpufreqd.initd43
-rw-r--r--community/cpulimit/APKBUILD26
-rw-r--r--community/cpulimit/no-sysctl.patch10
-rw-r--r--community/darkstat/APKBUILD26
-rw-r--r--community/eggdbus/APKBUILD39
-rw-r--r--community/farstream/APKBUILD34
-rw-r--r--community/json-glib/APKBUILD49
-rw-r--r--community/libatasmart/APKBUILD38
-rw-r--r--community/libbytesize/APKBUILD50
-rw-r--r--community/libcrystalhd/APKBUILD50
-rw-r--r--community/libcrystalhd/gcc-opts-fix.patch17
-rw-r--r--community/libebml/APKBUILD38
-rw-r--r--community/libfprint/APKBUILD38
-rw-r--r--community/libfprint/fix-stderr.patch14
-rw-r--r--community/libgee/APKBUILD32
-rw-r--r--community/libgss/APKBUILD40
-rw-r--r--community/libgssglue/APKBUILD40
-rw-r--r--community/libgssglue/gssapi_mech.conf22
-rw-r--r--community/libmatroska/APKBUILD34
-rw-r--r--community/libmicrohttpd/APKBUILD43
-rw-r--r--community/libmicrohttpd/disable-test_options.patch25
-rw-r--r--community/libmowgli/APKBUILD40
-rw-r--r--community/libmowgli/cacheline.patch25
-rw-r--r--community/libmp3splt/APKBUILD29
-rw-r--r--community/libmspack/APKBUILD63
-rw-r--r--community/libmtp/APKBUILD42
-rw-r--r--community/libnjb/APKBUILD42
-rw-r--r--community/libnotify/APKBUILD34
-rw-r--r--community/libsexy/APKBUILD33
-rw-r--r--community/libssh/APKBUILD47
-rw-r--r--community/libunique/APKBUILD38
-rw-r--r--community/libunique/g_const_return.patch123
-rw-r--r--community/libunique3/APKBUILD36
-rw-r--r--community/libvncserver/APKBUILD76
-rw-r--r--community/libvncserver/CVE-2019-15681.patch23
-rw-r--r--community/loudmouth/APKBUILD40
-rw-r--r--community/makekit/APKBUILD31
-rw-r--r--community/mp3splt/APKBUILD33
-rw-r--r--community/multisort/APKBUILD23
-rw-r--r--community/multisort/multisort-syslog-support.patch286
-rw-r--r--community/myrepos/APKBUILD44
-rw-r--r--community/ndctl/APKBUILD49
-rw-r--r--community/openpgm/APKBUILD43
-rw-r--r--community/openpgm/libpgm-fix-pkgconfig.patch21
-rw-r--r--community/openpgm/openpgm-fix-includes.patch30
-rw-r--r--community/openpgm/python3.patch28
-rw-r--r--community/sdl_image/APKBUILD43
-rw-r--r--community/sdl_image/CVE-2019-13616.patch16
-rw-r--r--community/sdl_mixer/APKBUILD40
-rw-r--r--community/sessreg/APKBUILD28
-rw-r--r--community/sessreg/missing_path_wtmpx.patch24
-rw-r--r--community/sparsehash/APKBUILD30
-rw-r--r--community/sysstat/APKBUILD31
-rw-r--r--community/the_silver_searcher/APKBUILD56
-rw-r--r--community/tinyxml/APKBUILD45
-rw-r--r--community/tinyxml/tinyxml-2.6.1-entity.patch64
-rw-r--r--community/tinyxml/tinyxml-2.6.2-defineSTL.patch12
-rw-r--r--community/tsocks/APKBUILD33
-rw-r--r--community/tsocks/configure.patch71
-rw-r--r--community/vsftpd/APKBUILD49
-rw-r--r--community/vsftpd/CVE-2015-1419.patch97
-rw-r--r--community/vsftpd/findlibs.patch30
-rw-r--r--community/vsftpd/strip.patch13
-rw-r--r--community/vsftpd/vsftpd-clearenv.patch21
-rw-r--r--community/vsftpd/vsftpd-enable-ssl.patch11
-rw-r--r--community/vsftpd/vsftpd.confd9
-rw-r--r--community/vsftpd/vsftpd.initd26
-rwxr-xr-xcommunity/vsftpd/vsftpd.pre-install7
-rw-r--r--community/vsftpd/wtmpx_file.patch35
-rw-r--r--community/xmlstarlet/APKBUILD29
81 files changed, 3168 insertions, 0 deletions
diff --git a/community/aria2/APKBUILD b/community/aria2/APKBUILD
new file mode 100644
index 0000000000..7a90f8a868
--- /dev/null
+++ b/community/aria2/APKBUILD
@@ -0,0 +1,76 @@
+# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
+# Contributor: Jeff Bilyk <jbilyk@gmail.com>
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=aria2
+pkgver=1.35.0
+pkgrel=0
+pkgdesc="Download utility for HTTP(S), (S)FTP, Bittorrent, and Metalink"
+url="https://aria2.github.io/"
+arch="all"
+license="GPL-2.0-or-later"
+depends="ca-certificates"
+makedepends="gnutls-dev expat-dev sqlite-dev c-ares-dev"
+checkdepends="cppunit-dev"
+pkgusers="aria2"
+pkggroups="aria2"
+install="$pkgname-daemon.pre-install"
+subpackages="$pkgname-doc $pkgname-daemon::noarch $pkgname-bash-completion:bashcomp:noarch"
+source="https://github.com/aria2/aria2/releases/download/release-$pkgver/aria2-$pkgver.tar.xz
+ $pkgname.conf
+ $pkgname.initd
+ $pkgname.confd
+ $pkgname.logrotate
+ "
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --localstatedir=/var \
+ --disable-nls \
+ --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+bashcomp() {
+ pkgdesc="Bash completions for $pkgname"
+ install_if="$pkgname=$pkgver-r$pkgrel bash-completion"
+
+ install -Dm644 "$builddir"/doc/bash_completion/aria2c \
+ "$subpkgdir"/usr/share/bash-completion/completions/_aria2c
+}
+
+daemon() {
+ pkgdesc="Support for running Aria2 as a daemon using OpenRC"
+ depends="$pkgname=$pkgver-r$pkgrel openrc"
+
+ mkdir -p "$subpkgdir"
+ cd "$subpkgdir"
+
+ install -m 755 -D "$srcdir"/$pkgname.initd etc/init.d/$pkgname
+ install -m 644 -D "$srcdir"/$pkgname.confd etc/conf.d/$pkgname
+ install -m 644 -D "$srcdir"/$pkgname.logrotate etc/logrotate.d/$pkgname
+ install -m 644 -D "$srcdir"/$pkgname.conf etc/$pkgname.conf
+
+ install -m 750 -o aria2 -g aria2 -d var/lib/$pkgname
+ install -m 700 -o aria2 -g aria2 -d var/cache/$pkgname
+}
+
+sha512sums="82b49cecd61064ae33b4a422a2320d533f54afea8fab0f014072a46afdc05972d2e9c603e843960c097410adf87290df65849f4ee05e047403618ae50db151ef aria2-1.35.0.tar.xz
+dd716f27eae2628bd528fd2842de7881e8f8f00d587b179e832f1639241db5bd8f4e74a5b791ca4de984923654b38a28813a89ad49a864f64534903a46878a60 aria2.conf
+a191655122d8d4379dd7aef773c6273387d8417b88f4f8f96d4a2121e71d9d005c84f15382b46b90501ecb3675f2505b22fb9494a0e5c4d96792bf8b29c2c01a aria2.initd
+ee49208c36be85fdf820eda0b47549732f720624a6f94702c16e1711823d74a23728944f60c85c11d09db6dbde3515adb32bb5ddf44786645b9a36883a5b6404 aria2.confd
+2ed9ff7a5fd1801643e4fb3cdd8cb21f0ead60420c87636bb581fe00828a98a5290a0888e49f6a6becb9f39c3c145b1399aa3a9ae452eb10ac2064c0e7bca1f8 aria2.logrotate"
diff --git a/community/aria2/aria2-daemon.pre-install b/community/aria2/aria2-daemon.pre-install
new file mode 100644
index 0000000000..c2cb5d2664
--- /dev/null
+++ b/community/aria2/aria2-daemon.pre-install
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+addgroup -S aria2 2>/dev/null
+adduser -S -D -H -h /var/lib/aria2 -s /sbin/nologin -G aria2 \
+ -g 'added by apk for aria2-daemon' aria2 2>/dev/null
+
+exit 0
diff --git a/community/aria2/aria2.conf b/community/aria2/aria2.conf
new file mode 100644
index 0000000000..abca1ea739
--- /dev/null
+++ b/community/aria2/aria2.conf
@@ -0,0 +1,61 @@
+# Run aria2c --help=#all to see all the available options.
+
+# The directory to store the downloaded file.
+dir=/var/lib/aria2
+
+# Save error/unfinished downloads to this file on exit.
+save-session=/var/lib/aria2/aria2.session
+input-file=/var/lib/aria2/aria2.session
+
+# Save error/unfinished downloads to a file specified by save-session option
+# every SEC seconds. If 0 is given, file will be saved only when aria2 exits.
+save-session-interval=60
+
+# Save download even if the download is completed or removed.
+force-save=true
+
+# Continue downloading a partially downloaded files. Only for HTTP/FTP.
+continue=true
+
+# Always resume download.
+always-resume=true
+
+# Set log level to output to file.
+# Possible Values: debug, info, notice, warn, error.
+log-level=notice
+
+# Set interval to output download progress summary.
+# Setting 0 suppresses the output.
+summary-interval=0
+
+# File allocation method. "falloc" is the best choice for newer file systems
+# such as ext4, Btrfs or XFS.
+file-allocation=falloc
+
+
+## RPC
+
+# Specify a port number for JSON-RPC/XML-RPC server to listen to.
+#rpc-listen-port=6800
+
+# Listen incoming JSON-RPC/XML-RPC requests on all network interfaces.
+#rpc-listen-all=false
+
+# RPC secret authorization token. Change to some random string!
+rpc-secret=top-secret
+
+
+## BitTorrent
+
+# Specify the external IP address to use in BitTorrent download and DHT.
+#bt-external-ip=
+
+# TCP port number(s) for BitTorrent downloads.
+#listen-port=6881-6999
+
+# Requires BitTorrent message payload encryption with arc4.
+#bt-force-encryption=false
+
+# Maximum number of files to open in multi-file BitTorrent/Metalink
+# downloads globally.
+#bt-max-open-files=100
diff --git a/community/aria2/aria2.confd b/community/aria2/aria2.confd
new file mode 100644
index 0000000000..d0381c75e7
--- /dev/null
+++ b/community/aria2/aria2.confd
@@ -0,0 +1,10 @@
+# Configuration for /etc/init.d/aria2
+
+# The user (and group) to run Aria2 daemon.
+#command_user="aria2"
+
+# Path of the configuration file.
+#cfgfile="/etc/aria2.conf"
+
+# Path of the log file.
+#logfile="/var/log/aria2.log"
diff --git a/community/aria2/aria2.initd b/community/aria2/aria2.initd
new file mode 100644
index 0000000000..c8e2edcc2f
--- /dev/null
+++ b/community/aria2/aria2.initd
@@ -0,0 +1,32 @@
+#!/sbin/openrc-run
+
+: ${cfgfile:="/etc/aria2.conf"}
+: ${logfile:="/var/log/aria2.log"}
+: ${command_user:="aria2"}
+
+command="/usr/bin/aria2c"
+command_args="
+ --enable-rpc=true
+ --quiet=true
+ --log=$logfile
+ --conf-path=$cfgfile
+ ${command_args:-}"
+command_background="yes"
+
+pidfile="/run/$RC_SVCNAME.pid"
+output_log="/dev/null"
+error_log="/dev/null"
+start_stop_daemon_args="--env XDG_CACHE_HOME=/var/cache"
+
+required_files="$cfgfile"
+
+depend() {
+ need net
+ use dns netmount
+}
+
+start_pre() {
+ local _logfile=$(sed -En 's|^log=([^#]+)|\1|p' "$cfgfile")
+
+ checkpath -f -m 640 -o "$command_user" "${_logfile:-$logfile}"
+}
diff --git a/community/aria2/aria2.logrotate b/community/aria2/aria2.logrotate
new file mode 100644
index 0000000000..e73ffc0444
--- /dev/null
+++ b/community/aria2/aria2.logrotate
@@ -0,0 +1,6 @@
+/var/log/aria2.log {
+ compress
+ copytruncate
+ missingok
+ notifempty
+}
diff --git a/community/cabextract/APKBUILD b/community/cabextract/APKBUILD
new file mode 100644
index 0000000000..363ffe75b0
--- /dev/null
+++ b/community/cabextract/APKBUILD
@@ -0,0 +1,34 @@
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+pkgname=cabextract
+pkgver=1.9.1
+pkgrel=0
+pkgdesc="Tool for extracting Microsoft cabinet files"
+options="!check" # TODO: tests
+url="https://www.cabextract.org.uk/"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="libmspack-dev"
+subpackages="$pkgname-doc"
+source="https://www.cabextract.org.uk/cabextract-$pkgver.tar.gz"
+
+# secfixes:
+# 1.8-r0:
+# - CVE-2018-18584
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --with-external-libmspack
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="c354a4b20a222b40813f01baf8311c9a76611da427f9f44e977a3fd09508e24a18b486e3eef889a9debdca459f1b0c28d5d25429ccd555d3a2e4ff92d91cec14 cabextract-1.9.1.tar.gz"
diff --git a/community/cadaver/APKBUILD b/community/cadaver/APKBUILD
new file mode 100644
index 0000000000..decefb196a
--- /dev/null
+++ b/community/cadaver/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: ScrumpyJack <scrumpyjack@st.ilet.to>
+# Maintainer: ScrumpyJack <scrumpyjack@st.ilet.to>
+pkgname=cadaver
+pkgver=0.23.3
+pkgrel=4
+pkgdesc="Cadaver is a command line webDAV client for Linux"
+options="!check"
+url="http://webdav.org/cadaver/"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="libproxy-dev neon-dev expat-dev"
+subpackages="$pkgname-doc"
+source="https://dev.alpinelinux.org/archive/cadaver/cadaver-$pkgver.tar.gz
+ neon.patch
+ disable-nls.patch
+ "
+
+prepare() {
+ update_config_sub
+ default_prepare
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --with-ssl \
+ --with-expat \
+ --with-neon \
+ --disable-nls
+ make
+}
+
+package() {
+ make prefix=$pkgdir/usr install
+}
+
+sha512sums="48fe0a266be0ca7239f325377e5e2a8dc57a5d60466c7160e36c060ad24c09a50727695b9fa931844b1e66e173ebbb838f390d6c60fd07b614bd3b636cd4dd41 cadaver-0.23.3.tar.gz
+dba57c355afda9552a890d53b32343f4532c441d7d654ea09b8ee6533a4d3a455a02327b393cf98228c4989622962d92b929a4c674919434b72ac285e5ced68c neon.patch
+58982830b63c9bf4c27455e2d0403489bfdda82e4d236841c877d49c7501865edb3438cdddfb77ef7e525c4a5edb34083d3af69824f0ba2dc7d5c3f7f69b50e5 disable-nls.patch"
diff --git a/community/cadaver/disable-nls.patch b/community/cadaver/disable-nls.patch
new file mode 100644
index 0000000000..41e723973c
--- /dev/null
+++ b/community/cadaver/disable-nls.patch
@@ -0,0 +1,17 @@
+Fix building with --disable-nls.
+--- a/src/cadaver.c.~1~ 2007-08-22 14:17:27.000000000 +0200
++++ b/src/cadaver.c 2008-03-29 08:58:57.248793293 +0100
+@@ -838,11 +838,12 @@
+
+ progname = argv[0];
+
++#ifdef ENABLE_NLS
++
+ #ifdef HAVE_SETLOCALE
+ setlocale(LC_ALL, "");
+ #endif
+
+-#ifdef ENABLE_NLS
+ bindtextdomain(PACKAGE_NAME, LOCALEDIR);
+ textdomain(PACKAGE_NAME);
+ #endif /* ENABLE_NLS */
diff --git a/community/cadaver/neon.patch b/community/cadaver/neon.patch
new file mode 100644
index 0000000000..10a581a574
--- /dev/null
+++ b/community/cadaver/neon.patch
@@ -0,0 +1,43 @@
+$OpenBSD: patch-configure,v 1.4 2014/09/08 06:51:48 ajacoutot Exp $
+--- a/configure.orig Mon Sep 8 08:49:16 2014
++++ b/configure Mon Sep 8 08:49:47 2014
+@@ -9595,7 +9595,7 @@ fi
+ $as_echo "$ne_cv_lib_neon" >&6; }
+ if test "$ne_cv_lib_neon" = "yes"; then
+ ne_cv_lib_neonver=no
+- for v in 27 28 29; do
++ for v in 27 28 29 30; do
+ case $ne_libver in
+ 0.$v.*) ne_cv_lib_neonver=yes ;;
+ esac
+@@ -10242,8 +10242,8 @@ _ACEOF
+ fi
+
+ else
+- { $as_echo "$as_me:$LINENO: incompatible neon library version $ne_libver: wanted 0.27 28 29" >&5
+-$as_echo "$as_me: incompatible neon library version $ne_libver: wanted 0.27 28 29" >&6;}
++ { $as_echo "$as_me:$LINENO: incompatible neon library version $ne_libver: wanted 0.27 28 29 30" >&5
++$as_echo "$as_me: incompatible neon library version $ne_libver: wanted 0.27 28 29 30" >&6;}
+ neon_got_library=no
+ fi
+
+@@ -10328,7 +10328,7 @@ fi
+ $as_echo "$ne_cv_lib_neon" >&6; }
+ if test "$ne_cv_lib_neon" = "yes"; then
+ ne_cv_lib_neonver=no
+- for v in 27 28 29; do
++ for v in 27 28 29 30; do
+ case $ne_libver in
+ 0.$v.*) ne_cv_lib_neonver=yes ;;
+ esac
+@@ -10975,8 +10975,8 @@ _ACEOF
+ fi
+
+ else
+- { $as_echo "$as_me:$LINENO: incompatible neon library version $ne_libver: wanted 0.27 28 29" >&5
+-$as_echo "$as_me: incompatible neon library version $ne_libver: wanted 0.27 28 29" >&6;}
++ { $as_echo "$as_me:$LINENO: incompatible neon library version $ne_libver: wanted 0.27 28 29 30" >&5
++$as_echo "$as_me: incompatible neon library version $ne_libver: wanted 0.27 28 29 30" >&6;}
+ neon_got_library=no
+ fi
+
diff --git a/community/cpufreqd/APKBUILD b/community/cpufreqd/APKBUILD
new file mode 100644
index 0000000000..7a1204b4c8
--- /dev/null
+++ b/community/cpufreqd/APKBUILD
@@ -0,0 +1,34 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=cpufreqd
+pkgver=2.4.2
+pkgrel=5
+pkgdesc="A small daemon to adjust cpu speed (and indeed voltage)"
+url="https://sourceforge.net/projects/cpufreqd"
+arch="all"
+license="GPL-2.0-or-later"
+subpackages="$pkgname-doc $pkgname-openrc"
+makedepends="cpufrequtils-dev sysfsutils-dev"
+source="https://downloads.sourceforge.net/cpufreqd/cpufreqd-$pkgver.tar.bz2
+ cpufreqd.initd"
+
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc
+ make LIBS=-lpthread
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ install -Dm 755 ../cpufreqd.initd "$pkgdir"/etc/init.d/cpufreqd
+}
+
+sha512sums="42067a28c1901cb2c45f21f918169648db77f553db1fbd44e2aae64e7092b530a1e3697a0cc4b4b70e0d474966671e924950501a0feb5d0ada166aa369dbc33b cpufreqd-2.4.2.tar.bz2
+cc5769f2f06ffeefe54ddde4d8829f8c1b9ddb82f32d883bf5df403c6386cac6ae8067cc7fa63c2b685b47bb88e6460b1f08bbf8ddf1c1fa392ecd6a17bea493 cpufreqd.initd"
diff --git a/community/cpufreqd/cpufreqd.initd b/community/cpufreqd/cpufreqd.initd
new file mode 100644
index 0000000000..39b8b73ea4
--- /dev/null
+++ b/community/cpufreqd/cpufreqd.initd
@@ -0,0 +1,43 @@
+#!/sbin/openrc-run
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-power/cpufreqd/files/cpufreqd-init.d,v 1.1 2007/05/17 08:51:45 phreak Exp $
+
+CONFIGFILE=/etc/cpufreqd.conf
+
+depend() {
+ need localmount
+ use logger lm_sensors
+}
+
+checkconfig() {
+ if [ ! -f ${CONFIGFILE} ]; then
+ eerror "Configuration file ${CONFIGFILE} not found"
+ return 1
+ fi
+
+ if [ ! -e /proc/cpufreq ] ; then
+ for cpu in /sys/devices/system/cpu/cpu[0-9]* ; do
+ # We need just one cpu supporting freq scaling.
+ [ -e ${cpu}/cpufreq ] && return 0
+ done
+ eerror "cpufreqd requires the kernel to be configured with CONFIG_CPU_FREQ"
+ eerror "Make sure that the appropiate drivers for your CPU are available."
+ return 1
+ fi
+}
+
+start() {
+ checkconfig || return 1
+
+ ebegin "Starting CPU Frequency Daemon"
+ start-stop-daemon --start --exec /usr/sbin/cpufreqd -- \
+ -f ${CONFIGFILE}
+ eend ${?}
+}
+
+stop() {
+ ebegin "Stopping CPU Frequency Daemon"
+ start-stop-daemon --stop --exec /usr/sbin/cpufreqd
+ eend ${?}
+}
diff --git a/community/cpulimit/APKBUILD b/community/cpulimit/APKBUILD
new file mode 100644
index 0000000000..b9d0344f68
--- /dev/null
+++ b/community/cpulimit/APKBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=cpulimit
+pkgver=0.2
+pkgrel=0
+pkgdesc="CPU usage limiter for Linux"
+url="https://github.com/opsengine/cpulimit"
+arch="all"
+license="GPL-2.0-or-later"
+source="$pkgname-$pkgver.tar.gz::https://github.com/opsengine/cpulimit/archive/v$pkgver.tar.gz
+ no-sysctl.patch
+ "
+
+build() {
+ make -C src
+}
+
+check() {
+ make -C tests
+}
+
+package() {
+ install -Dm755 src/cpulimit "$pkgdir"/usr/bin/cpulimit
+}
+
+sha512sums="73c973f3b86cdc225054c742ddb205ce0378817695531e3e8e45053c50d2d9762f3a15adbfffc8fc2b91f96ce9c9dbf8a9ad4e7ce4cf214f349859b298683b47 cpulimit-0.2.tar.gz
+13ddc48d810bdc28131babb653a06bd8ec25c6108fdbd34f2901c977d6fa6102d5e9c142e5a357711304272c97c2adb7fbf17164f0efdf4b4433ad271af9d09b no-sysctl.patch"
diff --git a/community/cpulimit/no-sysctl.patch b/community/cpulimit/no-sysctl.patch
new file mode 100644
index 0000000000..bd6a04468d
--- /dev/null
+++ b/community/cpulimit/no-sysctl.patch
@@ -0,0 +1,10 @@
+--- ./src/cpulimit.c.orig
++++ ./src/cpulimit.c
+@@ -38,7 +38,6 @@
+ #include <string.h>
+ #include <sys/stat.h>
+ #include <sys/time.h>
+-#include <sys/sysctl.h>
+ #include <sys/resource.h>
+ #include <sys/types.h>
+ #include <sys/wait.h>
diff --git a/community/darkstat/APKBUILD b/community/darkstat/APKBUILD
new file mode 100644
index 0000000000..daa5ae32ad
--- /dev/null
+++ b/community/darkstat/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: ScrumpyJack <scrumpyjack@st.ilet.to>
+# Maintainer: ScrumpyJack <scrumpyjack@st.ilet.to>
+pkgname=darkstat
+pkgver=3.0.719
+pkgrel=1
+pkgdesc="Captures network traffic, calculates statistics about usage, and serves reports over HTTP"
+url="https://unix4lyfe.org/darkstat/"
+arch="all"
+license="GPL-2.0-only"
+makedepends="zlib-dev libpcap-dev"
+subpackages="$pkgname-doc"
+source="https://unix4lyfe.org/darkstat/darkstat-$pkgver.tar.bz2"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr
+ make
+}
+
+package() {
+ make DESTDIR=$pkgdir install
+}
+
+sha512sums="264f6c5f862745fbfb5d125aae5a319369f028fd7be96cfb12775147f528a36b7f5a42bcd6434f2d376933292364641f2ec9cd9bdb1fe105f5a905e331181f98 darkstat-3.0.719.tar.bz2"
diff --git a/community/eggdbus/APKBUILD b/community/eggdbus/APKBUILD
new file mode 100644
index 0000000000..0cc53c9dc0
--- /dev/null
+++ b/community/eggdbus/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Carlo Landmeter
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+pkgname=eggdbus
+pkgver=0.6
+pkgrel=5
+pkgdesc="Experimental D-Bus bindings for GObject"
+url="https://cgit.freedesktop.org/~david/eggdbus"
+arch="all"
+license="LGPL-2.1-or-later"
+makedepends="glib-dev dbus-glib-dev"
+subpackages="$pkgname-dev $pkgname-doc"
+source="https://hal.freedesktop.org/releases/eggdbus-$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --disable-static
+ make -j1
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="76fbb32166fdedb68b8b552a2e5c25d00399ecf34425ec57ba008af8ba4d4fc0dfa19cfdeedd1a4a2bed8750a0be146c88a083b1d518de020afb7b5ca96f2fda eggdbus-0.6.tar.gz"
diff --git a/community/farstream/APKBUILD b/community/farstream/APKBUILD
new file mode 100644
index 0000000000..6fccb65eb1
--- /dev/null
+++ b/community/farstream/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Natanael Copa <ncopa@alpinelinux.org>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=farstream
+pkgver=0.2.8
+pkgrel=3
+pkgdesc="Libraries for videoconferencing"
+url="http://www.freedesktop.org/wiki/Software/Farstream"
+arch="all"
+license="LGPL-2.0-or-later AND GPL-2.0-or-later"
+depends_dev="libnice-dev gst-plugins-base-dev"
+makedepends="$depends_dev gobject-introspection-dev gstreamer-dev"
+subpackages="$pkgname-dev $pkgname-doc"
+source="https://freedesktop.org/software/farstream/releases/farstream/farstream-$pkgver.tar.gz"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --disable-static
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+py() {
+ pkgdesc="Python binding for farstream"
+ mkdir -p "$subpkgdir"/usr/lib/
+ mv "$pkgdir"/usr/lib/python* "$subpkgdir"/usr/lib/
+}
+
+sha512sums="7ec5c57f8778f4107cb628dbf411e38b726152cf78920127dff4423239ff7e4980b6b4f938abba2aa21ab984b1e3053e7e648611322a0ce94df0af576df99a7e farstream-0.2.8.tar.gz"
diff --git a/community/json-glib/APKBUILD b/community/json-glib/APKBUILD
new file mode 100644
index 0000000000..7e16c8bafe
--- /dev/null
+++ b/community/json-glib/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Natanael Copa <ncopa@alpinelinux.org>
+# Contributor: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
+pkgname=json-glib
+pkgver=1.4.4
+pkgrel=2
+pkgdesc="JSON library built on GLib"
+arch="all"
+url="https://wiki.gnome.org/Projects/JsonGlib"
+license="LGPL-2.1-or-later"
+makedepends="gobject-introspection-dev glib-dev meson gtk-doc"
+subpackages="$pkgname-dev $pkgname-doc $pkgname-lang $pkgname-tests $pkgname-dbg"
+source="https://download.gnome.org/sources/json-glib/${pkgver%.*}/json-glib-$pkgver.tar.xz"
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ meson \
+ --prefix=/usr \
+ --libdir=/usr/lib \
+ --buildtype=plain \
+ --default-library=shared \
+ -Ddocs=true \
+ . build
+ ninja -C build
+}
+
+check() {
+ ninja -C "$builddir"/build test
+}
+
+package() {
+ DESTDIR="$pkgdir" ninja -C "$builddir"/build install
+}
+
+dev() {
+ default_dev
+ mkdir -p "$subpkgdir"/usr/
+ mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
+}
+
+tests() {
+ pkgdesc="Tests for the json-glib package"
+ mkdir -p "$subpkgdir"/usr/
+ mv "$pkgdir"/usr/share \
+ "$pkgdir"/usr/libexec \
+ "$subpkgdir"/usr/
+}
+
+sha512sums="cf56a99dce3938b5c0075810f105719836fac65392da33a49b26ebf33aee1fab89ca9fac58059a2008d688ecc75a3e524de60621a5b027d566963541f38b971f json-glib-1.4.4.tar.xz"
diff --git a/community/libatasmart/APKBUILD b/community/libatasmart/APKBUILD
new file mode 100644
index 0000000000..824d47c4ef
--- /dev/null
+++ b/community/libatasmart/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Carlo Landmeter
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=libatasmart
+pkgver=0.19
+pkgrel=1
+pkgdesc="ATA S.M.A.R.T. Reading and Parsing Library"
+url="http://0pointer.de/blog/projects/being-smart.html"
+arch="all"
+options="!check" # No test suite.
+license="LGPL-2.1-or-later"
+depends_dev="eudev-dev"
+makedepends="$depends_dev linux-headers"
+subpackages="$pkgname-dev $pkgname-doc"
+source="http://0pointer.de/public/libatasmart-$pkgver.tar.xz"
+
+prepare() {
+ update_config_sub
+ default_prepare
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --disable-static \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="ec9edb019c477873b01289ba365ad0ed0946505d651c1f6f83a63ef61b3976a5db6439c8a0c74d9a55325db9a3a587ad6f655f8d1af9387b0d08356eccabdb62 libatasmart-0.19.tar.xz"
diff --git a/community/libbytesize/APKBUILD b/community/libbytesize/APKBUILD
new file mode 100644
index 0000000000..56c9a3d79c
--- /dev/null
+++ b/community/libbytesize/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: Leo <thinkabit.ukim@gmail.com>
+# Contributor: André Klitzing <aklitzing@gmail.com>
+# Maintainer: André Klitzing <aklitzing@gmail.com>
+pkgname=libbytesize
+pkgver=2.2
+pkgrel=0
+pkgdesc="Library for working with arbitrary big sizes in bytes"
+options="!check" # Tests require dealing with locales
+url="https://github.com/rhinstaller/libbytesize"
+arch="all"
+license="LGPL-2.1-or-later"
+makedepends="gettext-dev gmp-dev mpfr-dev pcre2-dev python3"
+checkdepends="bash py3-six"
+subpackages="$pkgname-dev $pkgname-lang py-$pkgname:_py:noarch $pkgname-doc
+ $pkgname-tools:_tools:noarch"
+source="https://github.com/storaged-project/libbytesize/releases/download/$pkgver/libbytesize-$pkgver.tar.gz"
+
+build() {
+ CFLAGS="$CFLAGS -lintl" ./configure --prefix=/usr
+ make
+}
+
+check() {
+ # Disable test that depends on unpackaged pocketlint
+ sed -i 's|canary_tests.sh$||g' tests/Makefile
+
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+_py() {
+ pkgdesc="Python bindings for $pkgname"
+ depends="python3 py3-six"
+
+ mkdir -p "$subpkgdir"/usr/lib
+ mv "$pkgdir"/usr/lib/python* "$subpkgdir"/usr/lib/
+}
+
+_tools() {
+ pkgdesc="Tools for libbytesize"
+ depends="py-$pkgname"
+
+ mkdir -p "$subpkgdir"/usr/bin
+ mv "$pkgdir"/usr/bin/* "$subpkgdir"/usr/bin
+}
+
+sha512sums="4538ac3499a24023c21fe07f527e400f99509921e377248970ac2da0eaf1655ddb261f432eed46a59ef69a1275ba7d1e5b0cc488d64eeea936b6cfa54c552ac1 libbytesize-2.2.tar.gz"
diff --git a/community/libcrystalhd/APKBUILD b/community/libcrystalhd/APKBUILD
new file mode 100644
index 0000000000..eadf0f116d
--- /dev/null
+++ b/community/libcrystalhd/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: Carlo Landmeter <clandmeter@gmail.com>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=libcrystalhd
+pkgver=20130708
+_date=$pkgver
+pkgrel=3
+pkgdesc="Broadcom CrystalHD kernel driver library"
+url="https://git.linuxtv.org/jarod/crystalhd.git"
+arch="x86 x86_64"
+license="LGPL-2.1-only"
+options="!check" # No test suite
+makedepends="linux-headers"
+subpackages="$pkgname-dev"
+source="https://dev.alpinelinux.org/archive/libcrystalhd/libcrystalhd-$_date.tar.gz
+ gcc-opts-fix.patch
+ "
+
+_giturl="git://linuxtv.org/jarod/crystalhd.git"
+_upload="dev.alpinelinux.org:/archive/$pkgname/"
+builddir="$srcdir/$pkgname-$_date/linux_lib/libcrystalhd"
+
+snapshot() {
+ local _date=$(date +%Y%m%d)
+ local _pkg=$pkgname-$_date.tar.gz
+ mkdir -p "$srcdir"
+ cd "$srcdir"
+ msg "Creating snapshot: $_pkg"
+ rm -rf ${_giturl##*/}
+ git clone --depth=1 --bare $_giturl
+ git --git-dir ${_giturl##*/} archive -o $_pkg \
+ --prefix=$pkgname-$_date/ HEAD
+ msg "Uploading to $_upload"
+ rsync -Lave ssh $_pkg $_upload
+ cd "$startdir"
+ sed -i -e "s/^pkgver=.*/pkgver=$_date/" \
+ APKBUILD
+ abuild checksum
+}
+
+build() {
+ msg "Building library"
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="70a84f8102250a797b658153d7cd2ed2b05d00d801b52a0b6f877e0feecd55a83c32032c5b66dba8cb53863dabc5536dde6405087403d8fe730c27f6ea3ee1b2 libcrystalhd-20130708.tar.gz
+8ff2710dfd1580d1dc05a67e2bf07679f37de67768df6267a7037bc25f94a4ea46be4c52057b4a849fe8774bd9c80f75df8f95a62eeec2f7b7a1e6622f6d9bae gcc-opts-fix.patch"
diff --git a/community/libcrystalhd/gcc-opts-fix.patch b/community/libcrystalhd/gcc-opts-fix.patch
new file mode 100644
index 0000000000..8c27216cdc
--- /dev/null
+++ b/community/libcrystalhd/gcc-opts-fix.patch
@@ -0,0 +1,17 @@
+Description: Patch to fix build failures on non x86 machines.
+Origin: Debian
+
+--- a/Makefile
++++ b/Makefile
+@@ -24,7 +24,10 @@
+ # -D_USE_SHMEM_
+
+ CPPFLAGS += ${INCLUDES}
+-CPPFLAGS += -O2 -Wall -fPIC -shared -fstrict-aliasing -msse2
++CPPFLAGS += -O2 -Wall -fPIC -shared -fstrict-aliasing
++MACHINE_OPTS = $(shell gcc -xc -c /dev/null -msse2 -o /dev/null \
++ >/dev/null 2>&1 && echo -msse2)
++CPPFLAGS += $(MACHINE_OPTS)
+ LDFLAGS = -Wl,-soname,${BCLIB_SL} -pthread
+
+ SRCFILES = libcrystalhd_if.cpp \
diff --git a/community/libebml/APKBUILD b/community/libebml/APKBUILD
new file mode 100644
index 0000000000..41aacc2734
--- /dev/null
+++ b/community/libebml/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Timo Teräs <timo.teras@iki.fi>
+# Maintainer: Timo Teräs <timo.teras@iki.fi>
+pkgname=libebml
+pkgver=1.3.10
+pkgrel=1
+pkgdesc="C++ library to parse Extensible Binary Meta-Language files"
+url="https://www.matroska.org"
+arch="all"
+options="!check" # No test suite.
+license="LGPL-2.1-or-later"
+makedepends="cmake"
+subpackages="$pkgname-dev"
+source="http://dl.matroska.org/downloads/libebml/libebml-$pkgver.tar.xz"
+
+# secfixes:
+# 1.3.6-r0:
+# - CVE-2019-13615
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
+ -DCMAKE_C_FLAGS="$CFLAGS" \
+ $CMAKE_CROSSOPTS
+ make
+}
+
+package() {
+ make install DESTDIR="$pkgdir"
+}
+
+sha512sums="c7ba20664161e811a10847f888a833abaa2b7a4d43ddbef6ae927f391f5d1eff45bc703f13a52ccfc793521e3b22cbac2fd93550cd95119a4060153683b29c49 libebml-1.3.10.tar.xz"
diff --git a/community/libfprint/APKBUILD b/community/libfprint/APKBUILD
new file mode 100644
index 0000000000..30762c73a4
--- /dev/null
+++ b/community/libfprint/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Timo Teräs <timo.teras@iki.fi>
+# Maintainer: Timo Teräs <timo.teras@iki.fi>
+pkgname=libfprint
+pkgver=1.0
+pkgrel=1
+pkgdesc="fingerprint reader and identification library"
+url="https://fprint.freedesktop.org/"
+arch="all"
+license="LGPL-2.1-or-later"
+makedepends="
+ meson
+ glib-dev
+ libusb-dev
+ pixman-dev
+ nss-dev
+ eudev-dev
+ "
+subpackages="$pkgname-dev"
+source="https://gitlab.freedesktop.org/libfprint/libfprint/uploads/aff93e9921d1cff53d7c070944952ff9/libfprint-$pkgver.tar.xz
+ fix-stderr.patch
+ "
+
+build() {
+ meson \
+ --prefix /usr \
+ --buildtype=plain \
+ -Dx11-examples=false \
+ -Ddoc=false \
+ output
+ ninja -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" ninja -C output install
+}
+
+sha512sums="6a38a691d1f2d5fe19b5bbda9b77321d2e34f1a3aa8b61f38109e0095b28e156cdd7be5ade8f3db8ff26045f8556b68e938b3e1378f4b6d84a2106566e7fdb53 libfprint-1.0.tar.xz
+9bd5d606ff9f672507775567c7f71428bb0cd62de61d762979f36e91bc98c1d72569c3d405ed013fa3148300919b36c31c654d376d547cf7829cafeede6abea9 fix-stderr.patch"
diff --git a/community/libfprint/fix-stderr.patch b/community/libfprint/fix-stderr.patch
new file mode 100644
index 0000000000..cde438231e
--- /dev/null
+++ b/community/libfprint/fix-stderr.patch
@@ -0,0 +1,14 @@
+diff --git a/libfprint/nbis/include/bozorth.h b/libfprint/nbis/include/bozorth.h
+index 08ec4b1..6d744d9 100644
+--- a/libfprint/nbis/include/bozorth.h
++++ b/libfprint/nbis/include/bozorth.h
+@@ -217,8 +217,6 @@ struct xytq_struct {
+ /**************************************************************************/
+ /* Globals supporting command line options */
+ extern int verbose_threshold;
+-/* Global supporting error reporting */
+-extern FILE *stderr;
+
+ /**************************************************************************/
+ /* In: BZ_GBLS.C */
+
diff --git a/community/libgee/APKBUILD b/community/libgee/APKBUILD
new file mode 100644
index 0000000000..7296ea2668
--- /dev/null
+++ b/community/libgee/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Rasmus Thomsen <oss@cogitri.dev>
+# Contributor: Natanael Copa <ncopa@alpinelinux.org>
+# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
+pkgname=libgee
+pkgver=0.20.3
+pkgrel=0
+pkgdesc="GObject collection library"
+url="https://wiki.gnome.org/Projects/Libgee"
+arch="all"
+license="LGPL-2.1-or-later"
+makedepends="glib-dev gobject-introspection-dev"
+subpackages="$pkgname-dev"
+source="https://download.gnome.org/sources/libgee/${pkgver%.*}/libgee-$pkgver.tar.xz"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --disable-static
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="c7dd32bc02ea9f0f70e7593bc5625139802a52674e5aa07fe6fc815a78517f25590419b2da00e194bf7bf5f1505a138ba133d6dba67c44f9cdcb38389825adf7 libgee-0.20.3.tar.xz"
diff --git a/community/libgss/APKBUILD b/community/libgss/APKBUILD
new file mode 100644
index 0000000000..a17e8b8fb3
--- /dev/null
+++ b/community/libgss/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
+# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
+pkgname=libgss
+pkgver=0.1.5
+pkgrel=1
+pkgdesc="An implementation of the Generic Security Service Application Program Interface"
+url="https://www.gnu.org/software/gss/"
+arch="all"
+license="GPL-3.0-or-later"
+depends_dev="pkgconfig"
+makedepends="$depends_dev"
+subpackages="$pkgname-dev $pkgname-doc"
+source="ftp://alpha.gnu.org/gnu/gss/gss-$pkgver.tar.gz"
+builddir="$srcdir"/gss-$pkgver
+
+prepare() {
+ default_prepare
+ update_config_guess
+}
+
+build() {
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --localstatedir=/var \
+ --disable-nls
+ make
+}
+
+check() {
+ make tests
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="5dd76b763b787dfa90d378420272236a6ebc29d5d123460bea9951e8e57c1725e4b3164447e9c0f01e7cf031fd177daee45f3ccdc7bbe8f73f118898966280e7 gss-0.1.5.tar.gz"
diff --git a/community/libgssglue/APKBUILD b/community/libgssglue/APKBUILD
new file mode 100644
index 0000000000..c5ae9a9afd
--- /dev/null
+++ b/community/libgssglue/APKBUILD
@@ -0,0 +1,40 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=libgssglue
+pkgver=0.4
+pkgrel=1
+pkgdesc="exports a gssapi interface which calls other random gssapi libraries"
+url="http://www.citi.umich.edu/projects/nfsv4/linux/"
+arch="all"
+license="BSD-3-Clause"
+# heimdal-{dev,libs} is needed for gssapi_mech.conf
+depends="heimdal-dev heimdal-libs"
+subpackages="$pkgname-dev $pkgname-doc"
+source="http://www.citi.umich.edu/projects/nfsv4/linux/libgssglue/libgssglue-$pkgver.tar.gz
+ gssapi_mech.conf"
+
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir/" install
+
+ install -Dm644 "$srcdir"/gssapi_mech.conf \
+ "$pkgdir/"etc/gssapi_mech.conf
+ install -Dm644 COPYING $pkgdir/usr/share/licenses/libgssglue/COPYING
+}
+
+sha512sums="25d514c08320e42851ff153d7691267a8454f205492faf942f566aa30c1ac1c83bd095732a1a0fcc010ba3a5d48b4c95a196ad05bc821598cc1fc3a2c4960d29 libgssglue-0.4.tar.gz
+e97d7256ab05cd33178988d28139f0ba80797ac828dff3f7b0ab4cf6c04d016de1f731b8fe114f18319c6a07780a9701cd84a4e9fd5db6480c8d1df129f2402e gssapi_mech.conf"
diff --git a/community/libgssglue/gssapi_mech.conf b/community/libgssglue/gssapi_mech.conf
new file mode 100644
index 0000000000..f71aca08ee
--- /dev/null
+++ b/community/libgssglue/gssapi_mech.conf
@@ -0,0 +1,22 @@
+# Example /etc/gssapi_mech.conf file
+#
+# GSSAPI Mechanism Definitions
+#
+# This configuration file determines which GSS-API mechanisms
+# the gssd code should use
+#
+# NOTE:
+# The initiaiization function "mechglue_internal_krb5_init"
+# is used for the MIT krb5 gssapi mechanism. This special
+# function name indicates that an internal function should
+# be used to determine the entry points for the MIT gssapi
+# mechanism funtions.
+#
+# library initialization function
+# ================================ ==========================
+# The MIT K5 gssapi library, use special function for initialization.
+#/usr/lib/libgssapi_krb5.so mechglue_internal_krb5_init
+/usr/lib/libgssapi.so mechglue_internal_krb5_init
+#
+# The SPKM3 gssapi library function. Use the function spkm3_gss_initialize.
+# /usr/local/gss_mechs/spkm/spkm3/libgssapi_spkm3.so spkm3_gss_initialize
diff --git a/community/libmatroska/APKBUILD b/community/libmatroska/APKBUILD
new file mode 100644
index 0000000000..e8a0f46d9a
--- /dev/null
+++ b/community/libmatroska/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Timo Teräs <timo.teras@iki.fi>
+# Maintainer: Timo Teräs <timo.teras@iki.fi>
+pkgname=libmatroska
+pkgver=1.5.2
+pkgrel=1
+pkgdesc="Extensible multimedia container format based on EBML"
+url="https://www.matroska.org"
+arch="all"
+options="!check" # Tests don't build; 'make check' target disabled by upstream
+license="LGPL-2.1-or-later"
+makedepends="cmake libebml-dev>=1.3.9"
+subpackages="$pkgname-dev"
+source="https://dl.matroska.org/downloads/libmatroska/libmatroska-$pkgver.tar.xz"
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
+ -DCMAKE_C_FLAGS="$CFLAGS" \
+ $CMAKE_CROSSOPTS
+ make
+}
+
+package() {
+ make install DESTDIR="$pkgdir"
+}
+
+sha512sums="122b71b91ae89e2a7cc89db17655a006248d58f18d913b4f9ffc885aef7e39681a3a16eed43cd8ecd949c570a939007797c79829f5ee87d08562aee3f0224ba2 libmatroska-1.5.2.tar.xz"
diff --git a/community/libmicrohttpd/APKBUILD b/community/libmicrohttpd/APKBUILD
new file mode 100644
index 0000000000..0e944a29b7
--- /dev/null
+++ b/community/libmicrohttpd/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Leo <thinkabit.ukim@gmail.com>
+# Contributor: Łukasz Jendrysik <scadu@yandex.com>
+# Contributor: Carlo Landmeter <clandmeter@gmail.com>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=libmicrohttpd
+pkgver=0.9.70
+pkgrel=0
+pkgdesc="A small C library that is supposed to make it easy to run an HTTP server as part of another application."
+url="https://www.gnu.org/software/libmicrohttpd/"
+arch="all"
+license="LGPL-2.1-or-later"
+makedepends="curl-dev libgcrypt-dev gnutls-dev automake autoconf libtool"
+subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
+source="https://ftp.gnu.org/gnu/libmicrohttpd/libmicrohttpd-$pkgver.tar.gz
+ disable-test_options.patch"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --enable-largefile \
+ --enable-curl \
+ --enable-https \
+ --enable-messages
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ install -Dm644 "$builddir"/src/include/platform.h \
+ "$pkgdir"/usr/include/platform.h
+}
+
+sha512sums="391293688d5ef51cf8d918294000384cb291f46bf767295af5a97123c06c75573d480a6c4b2486712b53636fe3e5dc1f8827ccf4335ac435ec85c3529733d8f5 libmicrohttpd-0.9.70.tar.gz
+7bbd8d2571f2bf7d06c956cc5e5decf154139baa1a716b43501b822b18a396b2cc97efd72118bc3dd5e20439611eb333730c436fe9f0a1ce2cf928066520e619 disable-test_options.patch"
diff --git a/community/libmicrohttpd/disable-test_options.patch b/community/libmicrohttpd/disable-test_options.patch
new file mode 100644
index 0000000000..da4718396b
--- /dev/null
+++ b/community/libmicrohttpd/disable-test_options.patch
@@ -0,0 +1,25 @@
+Works on live machine, fails on CI
+
+diff --git a/src/microhttpd/Makefile.am b/src/microhttpd/Makefile.am
+index 1f4ffca..5464a0b 100644
+--- a/src/microhttpd/Makefile.am
++++ b/src/microhttpd/Makefile.am
+@@ -156,8 +156,7 @@ check_PROGRAMS = \
+ test_str_token \
+ test_http_reasons \
+ test_start_stop \
+- test_daemon \
+- test_options
++ test_daemon
+
+ if HAVE_POSIX_THREADS
+ if ENABLE_UPGRADE
+@@ -316,7 +315,3 @@ test_http_reasons_SOURCES = \
+ test_http_reasons.c \
+ reason_phrase.c mhd_str.c mhd_str.h
+
+-test_options_SOURCES = \
+- test_options.c
+-test_options_LDADD = \
+- $(top_builddir)/src/microhttpd/libmicrohttpd.la
+
diff --git a/community/libmowgli/APKBUILD b/community/libmowgli/APKBUILD
new file mode 100644
index 0000000000..33a593c40e
--- /dev/null
+++ b/community/libmowgli/APKBUILD
@@ -0,0 +1,40 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=libmowgli
+pkgver=2.1.3
+pkgrel=4
+pkgdesc="C library framework designed to reduce writing of boilerplate code"
+url="https://github.com/atheme/libmowgli-2"
+arch="all"
+options="!check" # No test suite.
+license="ISC"
+makedepends="openssl-dev"
+subpackages="$pkgname-dev"
+source="https://github.com/atheme/libmowgli-2/archive/v$pkgver/libmowgli-$pkgver.tar.gz
+ cacheline.patch"
+
+builddir="$srcdir"/$pkgname-2-$pkgver
+
+prepare() {
+ default_prepare
+ # workaround bug in busybox
+ sed -e "/touch/s/0001010000/200001010000/g" \
+ -i configure
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="bf976cf8b8bf0efaf7565230f42147adcdbe993339f58f907f5005eddf178d936cffb6cdbba59e38813854f30414856a1b9f8bdc972ea2f59cb08987ee336533 libmowgli-2.1.3.tar.gz
+861f043ef931b6d256c76c45a7958e3fdaf4db2d50ec09c2881a3d9f73c14666693cb11fc5a1ebbe1957efdaed970af86b7b61f2a02302d7f67d0f6c3e4f2bee cacheline.patch"
diff --git a/community/libmowgli/cacheline.patch b/community/libmowgli/cacheline.patch
new file mode 100644
index 0000000000..0a5c3374ee
--- /dev/null
+++ b/community/libmowgli/cacheline.patch
@@ -0,0 +1,25 @@
+From 2b8892fe2ca51ef0334b08babad0fa9d689087c0 Mon Sep 17 00:00:00 2001
+From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
+Date: Wed, 27 Sep 2017 01:42:33 -0500
+Subject: [PATCH] cacheline: Ensure sysconf var is defined before use on Linux
+
+---
+ src/libmowgli/platform/cacheline.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/libmowgli/platform/cacheline.c b/src/libmowgli/platform/cacheline.c
+index 90c803f..7651588 100644
+--- a/src/libmowgli/platform/cacheline.c
++++ b/src/libmowgli/platform/cacheline.c
+@@ -32,7 +32,7 @@ size_t cacheline_size;
+ void
+ mowgli_cacheline_bootstrap(void)
+ {
+-#ifdef MOWGLI_OS_LINUX
++#if defined(MOWGLI_OS_LINUX) && defined(_SC_LEVEL1_DCACHE_LINESIZE)
+ cacheline_size = sysconf(_SC_LEVEL1_DCACHE_LINESIZE);
+ #elif defined(MOWGLI_OS_OSX)
+ size_t size = sizeof(size_t);
+--
+2.10.0
+
diff --git a/community/libmp3splt/APKBUILD b/community/libmp3splt/APKBUILD
new file mode 100644
index 0000000000..5332362ffa
--- /dev/null
+++ b/community/libmp3splt/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Natanael Copa <ncopa@alpinelinux.org>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=libmp3splt
+pkgver=0.9.2
+pkgrel=0
+pkgdesc="Library to split mp3 and ogg files without decoding"
+url="http://mp3splt.sourceforge.net/"
+arch="all"
+license="GPL-2.0"
+depends_dev="pcre-dev libogg-dev libmad-dev libvorbis-dev libid3tag-dev libtool"
+makedepends="$depends_dev"
+subpackages="$pkgname-dev"
+source="https://prdownloads.sourceforge.net/mp3splt/libmp3splt-$pkgver.tar.gz"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --enable-ogg \
+ --enable-mp3
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="e5c98e8b173bc86302ccee4ca5eb0c8a8d93f225357eb7b14dea8d0700ed62ed6316506c182f6b295130f7924ff0b38e865d5e49fa9cd7882c648360d68872ed libmp3splt-0.9.2.tar.gz"
diff --git a/community/libmspack/APKBUILD b/community/libmspack/APKBUILD
new file mode 100644
index 0000000000..beb71a8782
--- /dev/null
+++ b/community/libmspack/APKBUILD
@@ -0,0 +1,63 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=libmspack
+pkgver=0.8_alpha
+_ver=${pkgver/_/}
+pkgrel=1
+pkgdesc="Library for Microsoft CAB compression formats"
+url="https://www.cabextract.org.uk/libmspack/"
+arch="all"
+license="LGPL-2.1-only"
+makedepends="$depends_dev"
+subpackages="$pkgname-dev $pkgname-utils"
+source="https://www.cabextract.org.uk/libmspack/libmspack-$_ver.tar.gz"
+
+builddir="$srcdir"/libmspack-$_ver
+
+# secfixes:
+# 0.8_alpha-r0:
+# - CVE-2018-18584
+# - CVE-2018-18585
+# - CVE-2018-18586
+# 0.7.1_alpha-r0:
+# - CVE-2018-14679
+# - CVE-2018-14680
+# - CVE-2018-14681
+# - CVE-2018-14682
+# 0.5_alpha-r1:
+# - CVE-2017-6419
+# - CVE-2017-11423
+
+prepare() {
+ default_prepare
+ sed -i "s/@VERSION@/$pkgver/" libmspack.pc.in
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --disable-static
+ # parallel build workaround
+ make libmspack.la libmscabd.la libmschmd.la
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+utils() {
+ pkgdesc="$pkgdesc (utils)"
+ mkdir -p "$subpkgdir"/usr
+ mv "$pkgdir"/usr/bin "$subpkgdir"/usr
+}
+
+sha512sums="d178afc4d2eded204594c81af1c91be17d3be4f1a09829e08c103023aa7badc6b2595e9ec13cc7f77e3262d2cd874ed40ce6da01695c5c839682562740d2bf0a libmspack-0.8alpha.tar.gz"
diff --git a/community/libmtp/APKBUILD b/community/libmtp/APKBUILD
new file mode 100644
index 0000000000..8e62530837
--- /dev/null
+++ b/community/libmtp/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Natanael Copa <ncopa@alpinelinux.org>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=libmtp
+pkgver=1.1.17
+pkgrel=0
+pkgdesc="Software library for MTP media players"
+url="http://libmtp.sourceforge.net"
+arch="all"
+license="LGPL-2.0-or-later"
+depends_dev="libusb-compat-dev"
+makedepends="$depends_dev eudev-dev"
+subpackages="$pkgname-dev $pkgname-examples"
+source="http://download.sourceforge.net/libmtp/libmtp-$pkgver.tar.gz"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --localstatedir=/var \
+ --with-udev=/lib/udev
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+examples() {
+ pkgdesc="Example programs for libmtp"
+ mkdir -p "$subpkgdir"/usr
+ mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
+}
+
+sha512sums="f2648e259529bd3dfe74a7049a79c4b0042bcaf63cc1fec8b232b66312d62e9620280e4f725312c9ef8207f1f1ceac19f460a0a8772a3cc6c7f0b00ead01add2 libmtp-1.1.17.tar.gz"
diff --git a/community/libnjb/APKBUILD b/community/libnjb/APKBUILD
new file mode 100644
index 0000000000..1562c20574
--- /dev/null
+++ b/community/libnjb/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Natanael Copa <ncopa@alpinelinux.org>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=libnjb
+pkgver=2.2.7
+pkgrel=4
+pkgdesc="A software library for talking to the Creative Nomad Jukeboxes and Dell DJs"
+url="http://libnjb.sourceforge.net/"
+arch="all"
+license="BSD-3-Clause"
+depends_dev="libusb-compat-dev"
+makedepends="$depends_dev eudev-dev zlib-dev ncurses-dev"
+subpackages="$pkgname-dev $pkgname-examples"
+source="http://download.sourceforge.net/libnjb/libnjb-$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+examples() {
+ pkgdesc="Example programs for libnjb"
+ mkdir -p "$subpkgdir"/usr
+ mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
+}
+
+sha512sums="d217beb772024ec122739327dae9f1e991ace4c3dfe79a4960d1d7421c3d663f924304331025a1790ea7b697ac84d8926f3ab507c6d919e781e90ca82ef6fd06 libnjb-2.2.7.tar.gz"
diff --git a/community/libnotify/APKBUILD b/community/libnotify/APKBUILD
new file mode 100644
index 0000000000..a40214e932
--- /dev/null
+++ b/community/libnotify/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Leo <thinkabit.ukim@gmail.com>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=libnotify
+pkgver=0.7.9
+pkgrel=1
+pkgdesc="Desktop notification library"
+url="https://developer.gnome.org/notification-spec/"
+arch="all"
+options="!check" # No tests defined when building with meson.
+license="LGPL-2.1-or-later"
+makedepends="meson gdk-pixbuf-dev dbus-dev gtk+3.0-dev gobject-introspection-dev"
+subpackages="$pkgname-dev"
+source="https://download.gnome.org/sources/libnotify/${pkgver%.*}/libnotify-$pkgver.tar.xz"
+
+build() {
+ meson \
+ --prefix=/usr \
+ --buildtype=plain \
+ -Dtests=true \
+ -Dintrospection=enabled \
+ -Dgtk_doc=false \
+ -Dman=false \
+ output
+ ninja -C output
+}
+
+check() {
+ ninja -C output test
+}
+
+package() {
+ DESTDIR="$pkgdir" ninja -C output install
+}
+sha512sums="8a842b50777279efdb7d96a836a546c47decad158a4f03f7ffc818860d1f6276a657619e4f4a19a4e2f5ad55e0371c793420d50d802983700e8c342273b73874 libnotify-0.7.9.tar.xz"
diff --git a/community/libsexy/APKBUILD b/community/libsexy/APKBUILD
new file mode 100644
index 0000000000..7dfad94e5b
--- /dev/null
+++ b/community/libsexy/APKBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=libsexy
+pkgver=0.1.11
+pkgrel=9
+pkgdesc="Doing naughty things to good widgets."
+url="https://blog.chipx86.com/tag/libsexy/"
+arch="all"
+options="!check" # Tests require manual intervention and X11 display.
+license="LGPL-2.0-or-later"
+subpackages="$pkgname-dev $pkgname-doc"
+makedepends="gtk+2.0-dev libxml2-dev iso-codes-dev"
+source="http://releases.chipx86.com/libsexy/libsexy/libsexy-$pkgver.tar.gz"
+
+prepare() {
+ update_config_sub
+ default_prepare
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --disable-static
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ rm -f "$pkgdir"/usr/lib/libsexy.a
+}
+
+sha512sums="12ab0d2925b7a025116b8b03d8af3ed471cb60c0225b33d3a312e35acef95afb0fc265de135354883865fbe2338ca3b2d9356b401aa3bce4b532ec50a32067ca libsexy-0.1.11.tar.gz"
diff --git a/community/libssh/APKBUILD b/community/libssh/APKBUILD
new file mode 100644
index 0000000000..bca16969b5
--- /dev/null
+++ b/community/libssh/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Carlo Landmeter <clandmeter@gmail.com>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=libssh
+pkgver=0.9.3
+pkgrel=1
+pkgdesc="Library for accessing ssh client services through C libraries"
+url="https://www.libssh.org/"
+arch="all"
+license="LGPL-2.1-or-later BSD-2-Clause"
+depends_dev="openssl-dev zlib-dev"
+makedepends="$depends_dev cmake doxygen"
+checkdepends="cmocka-dev"
+subpackages="$pkgname-dev"
+source="https://www.libssh.org/files/${pkgver%.*}/libssh-$pkgver.tar.xz
+ "
+
+# secfixes:
+# 0.9.3-r0:
+# - CVE-2019-14889
+# 0.7.6-r0:
+# - CVE-2018-10933
+
+build() {
+ mkdir build && cd build
+ cmake .. \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DWITH_GSSAPI=OFF \
+ -DUNIT_TESTING=ON
+ make
+}
+
+check() {
+ case "$CARCH" in
+ s390x) _disabled_tests="-E torture_threads_buffer"
+ esac
+ cd "$builddir/build"
+ ctest --output-on-failure $_disabled_tests
+}
+
+package() {
+ cd "$builddir/build"
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="6e59718565daeca6d224426cc1095a112deff9af8e0b021917e04f08bb7409263c35724de95f591f38e26f0fb3bbbbc69b679b6775edc21dec158d241b076c6f libssh-0.9.3.tar.xz"
diff --git a/community/libunique/APKBUILD b/community/libunique/APKBUILD
new file mode 100644
index 0000000000..4b57e6cac1
--- /dev/null
+++ b/community/libunique/APKBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=libunique
+pkgver=1.1.6
+pkgrel=6
+pkgdesc="Library for writing single instance applications"
+url="http://live.gnome.org/LibUnique"
+arch="all"
+license="LGPL-2.1-or-later"
+makedepends="gtk+-dev dbus-glib-dev"
+subpackages="$pkgname-dev $pkgname-doc"
+source="https://download.gnome.org/sources/libunique/1.1/libunique-$pkgver.tar.bz2
+ g_const_return.patch"
+
+
+prepare() {
+ update_config_sub
+ default_prepare
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --enable-maintainer-flags=no \
+ --enable-debug=no \
+ --disable-static
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="82893e1d51a553b3c1413498e48a3a132e2c05779b4442c3732b5429d698e133741615657432a3d05c82a05c79bb59acc13df500bb08010212155db5e4ee6bde libunique-1.1.6.tar.bz2
+04952fa7f5cee407d1071b233b9fb9b2a460029d96f81edd2539032d85ef62a5b78599ec83d44f0a3931fe6e413f733366b38d7a2413b45e6cbbc1f000449d4b g_const_return.patch"
diff --git a/community/libunique/g_const_return.patch b/community/libunique/g_const_return.patch
new file mode 100644
index 0000000000..89db14a5ab
--- /dev/null
+++ b/community/libunique/g_const_return.patch
@@ -0,0 +1,123 @@
+diff --git a/unique/uniqueapp.c b/unique/uniqueapp.c
+index b40a86c..e8edc94 100644
+--- a/unique/uniqueapp.c
++++ b/unique/uniqueapp.c
+@@ -781,7 +781,7 @@ unique_app_watch_window (UniqueApp *app,
+ }
+
+
+-G_CONST_RETURN gchar *
++const gchar *
+ unique_command_to_string (UniqueApp *app,
+ gint command)
+ {
+@@ -863,7 +863,7 @@ unique_command_from_string (UniqueApp *app,
+ return retval;
+ }
+
+-G_CONST_RETURN gchar *
++const gchar *
+ unique_response_to_string (UniqueResponse response)
+ {
+ GEnumClass *enum_class;
+diff --git a/unique/uniquebackend.c b/unique/uniquebackend.c
+index 18a0c45..6a9500a 100644
+--- a/unique/uniquebackend.c
++++ b/unique/uniquebackend.c
+@@ -111,7 +111,7 @@ unique_backend_set_name (UniqueBackend *backend,
+ *
+ * Return value: FIXME
+ */
+-G_CONST_RETURN gchar *
++const gchar *
+ unique_backend_get_name (UniqueBackend *backend)
+ {
+ g_return_val_if_fail (UNIQUE_IS_BACKEND (backend), NULL);
+@@ -154,7 +154,7 @@ unique_backend_set_startup_id (UniqueBackend *backend,
+ *
+ * Return value: FIXME
+ */
+-G_CONST_RETURN gchar *
++const gchar *
+ unique_backend_get_startup_id (UniqueBackend *backend)
+ {
+ g_return_val_if_fail (UNIQUE_IS_BACKEND (backend), NULL);
+diff --git a/unique/uniquebackend.h b/unique/uniquebackend.h
+index a50ce4e..a8786bf 100644
+--- a/unique/uniquebackend.h
++++ b/unique/uniquebackend.h
+@@ -94,10 +94,10 @@ GType unique_backend_get_type (void) G_GNUC_CONST;
+
+ UniqueBackend * unique_backend_create (void);
+
+-G_CONST_RETURN gchar *unique_backend_get_name (UniqueBackend *backend);
++const gchar *unique_backend_get_name (UniqueBackend *backend);
+ void unique_backend_set_name (UniqueBackend *backend,
+ const gchar *name);
+-G_CONST_RETURN gchar *unique_backend_get_startup_id (UniqueBackend *backend);
++const gchar *unique_backend_get_startup_id (UniqueBackend *backend);
+ void unique_backend_set_startup_id (UniqueBackend *backend,
+ const gchar *startup_id);
+ GdkScreen * unique_backend_get_screen (UniqueBackend *backend);
+diff --git a/unique/uniqueinternals.h b/unique/uniqueinternals.h
+index ace40ed..f688939 100644
+--- a/unique/uniqueinternals.h
++++ b/unique/uniqueinternals.h
+@@ -44,11 +44,11 @@ UniqueResponse unique_app_emit_message_received (UniqueApp *app,
+ * and then back into an id
+ */
+ UniqueResponse unique_response_from_string (const gchar *response);
+-G_CONST_RETURN gchar *unique_response_to_string (UniqueResponse response);
++const gchar *unique_response_to_string (UniqueResponse response);
+
+ gint unique_command_from_string (UniqueApp *app,
+ const gchar *command);
+-G_CONST_RETURN gchar *unique_command_to_string (UniqueApp *app,
++const gchar *unique_command_to_string (UniqueApp *app,
+ gint command);
+
+ G_END_DECLS
+diff --git a/unique/uniquemessage.c b/unique/uniquemessage.c
+index 10f6df5..b13be7f 100644
+--- a/unique/uniquemessage.c
++++ b/unique/uniquemessage.c
+@@ -185,7 +185,7 @@ unique_message_data_set (UniqueMessageData *message_data,
+ *
+ * Since: 1.0.2
+ */
+-G_CONST_RETURN guchar *
++const guchar *
+ unique_message_data_get (UniqueMessageData *message_data,
+ gsize *length)
+ {
+@@ -525,7 +525,7 @@ unique_message_data_get_screen (UniqueMessageData *message_data)
+ * owned by the #UniqueMessageData structure and should not be
+ * modified or freed
+ */
+-G_CONST_RETURN gchar *
++const gchar *
+ unique_message_data_get_startup_id (UniqueMessageData *message_data)
+ {
+ g_return_val_if_fail (message_data != NULL, NULL);
+diff --git a/unique/uniquemessage.h b/unique/uniquemessage.h
+index d3e9c3c..9759a30 100644
+--- a/unique/uniquemessage.h
++++ b/unique/uniquemessage.h
+@@ -48,7 +48,7 @@ void unique_message_data_free (UniqueMessageData *me
+ void unique_message_data_set (UniqueMessageData *message_data,
+ const guchar *data,
+ gsize length);
+-G_CONST_RETURN guchar *unique_message_data_get (UniqueMessageData *message_data,
++const guchar *unique_message_data_get (UniqueMessageData *message_data,
+ gsize *length);
+
+ gboolean unique_message_data_set_text (UniqueMessageData *message_data,
+@@ -63,7 +63,7 @@ void unique_message_data_set_filename (UniqueMessageData *me
+ gchar * unique_message_data_get_filename (UniqueMessageData *message_data);
+
+ GdkScreen * unique_message_data_get_screen (UniqueMessageData *message_data);
+-G_CONST_RETURN gchar * unique_message_data_get_startup_id (UniqueMessageData *message_data);
++const gchar * unique_message_data_get_startup_id (UniqueMessageData *message_data);
+ guint unique_message_data_get_workspace (UniqueMessageData *message_data);
+
+ G_END_DECLS
diff --git a/community/libunique3/APKBUILD b/community/libunique3/APKBUILD
new file mode 100644
index 0000000000..161ec3f6df
--- /dev/null
+++ b/community/libunique3/APKBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=libunique3
+pkgver=3.0.2
+pkgrel=0
+pkgdesc="Library for writing single instance applications"
+url="http://live.gnome.org/LibUnique"
+arch="all"
+license="LGPL-2.1-or-later"
+makedepends="gtk+3.0-dev"
+subpackages="$pkgname-dev $pkgname-doc"
+source="https://download.gnome.org/sources/libunique/${pkgver%.*}/libunique-$pkgver.tar.xz"
+
+builddir="$srcdir"/libunique-$pkgver
+
+prepare() {
+ update_config_sub
+ default_prepare
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-dbus
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="b053b9f265c751bd581d15bf73246fb087075eaf75760565671c09a4ab80db342b4d2185050a877c4e25276d24f7895f4325ca60b918a7c4acd9d1591e97a8b4 libunique-3.0.2.tar.xz"
diff --git a/community/libvncserver/APKBUILD b/community/libvncserver/APKBUILD
new file mode 100644
index 0000000000..c7af68c5ac
--- /dev/null
+++ b/community/libvncserver/APKBUILD
@@ -0,0 +1,76 @@
+# Contributor: Sergei Lukin <sergej.lukin@gmail.com>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=libvncserver
+pkgver=0.9.12
+pkgrel=2
+pkgdesc="Library to make writing a vnc server easy"
+url="http://libvncserver.sourceforge.net/"
+arch="all"
+license="GPL-2.0-or-later"
+depends_dev="
+ libgcrypt-dev
+ libjpeg-turbo-dev
+ libpng-dev
+ libice-dev
+ libx11-dev
+ libxdamage-dev
+ libxext-dev
+ libxfixes-dev
+ libxi-dev
+ libxinerama-dev
+ libxrandr-dev
+ libxtst-dev
+ openssl-dev
+ lzo-dev
+ "
+makedepends="$depends_dev cmake"
+subpackages="$pkgname-dev"
+source="https://github.com/LibVNC/libvncserver/archive/LibVNCServer-$pkgver.tar.gz
+ CVE-2019-15681.patch
+ "
+
+# secfixes:
+# 0.9.12-r1:
+# - CVE-2019-15681
+# 0.9.11-r2:
+# - CVE-2018-7225
+# 0.9.11-r0:
+# - CVE-2016-9941
+# - CVE-2016-9942
+
+builddir="$srcdir"/libvncserver-LibVNCServer-$pkgver
+
+build() {
+ mkdir build
+ cd build
+ cmake \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_SHARED_LIBS=ON \
+ -DWITH_ZLIB=ON \
+ -DWITH_LZO=ON \
+ -DWITH_JPEG=ON \
+ -DWITH_PNG=ON \
+ -DWITH_SDL=ON \
+ -DWITH_THREADS=ON \
+ -DWITH_GNUTLS=ON \
+ -DWITH_OPENSSL=ON \
+ -DWITH_SYSTEMD=OFF \
+ -DWITH_GCRYPT=ON \
+ -DWITH_FFMPEG=ON \
+ -DWITH_WEBSOCKETS=ON \
+ -DWITH_SASL=ON \
+ ..
+ make
+}
+
+check() {
+ make -C build test
+}
+
+package() {
+ make -C build install DESTDIR="$pkgdir"
+}
+
+sha512sums="60ff1cc93a937d6f8f97449bc58b763095846207112f7b1b3c43eb2d74448b595d6da949903a764bd484ee54e38ff6277e882adbe965dd6d26ba15ef6ff6fcb8 LibVNCServer-0.9.12.tar.gz
+5ecb5a26813f3f07440ef6c54eebaca4e9b4f7c1cf2ba13375e3b23b950a9b818d068d4eef5532d7ea4d7ae084c4356af7257c45426101ff51afe2b7da338a1f CVE-2019-15681.patch"
diff --git a/community/libvncserver/CVE-2019-15681.patch b/community/libvncserver/CVE-2019-15681.patch
new file mode 100644
index 0000000000..e328d87920
--- /dev/null
+++ b/community/libvncserver/CVE-2019-15681.patch
@@ -0,0 +1,23 @@
+From d01e1bb4246323ba6fcee3b82ef1faa9b1dac82a Mon Sep 17 00:00:00 2001
+From: Christian Beier <dontmind@freeshell.org>
+Date: Mon, 19 Aug 2019 22:32:25 +0200
+Subject: [PATCH] rfbserver: don't leak stack memory to the remote
+
+Thanks go to Pavel Cheremushkin of Kaspersky for reporting.
+---
+ libvncserver/rfbserver.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/libvncserver/rfbserver.c b/libvncserver/rfbserver.c
+index 3bacc891..310e5487 100644
+--- a/libvncserver/rfbserver.c
++++ b/libvncserver/rfbserver.c
+@@ -3724,6 +3724,8 @@ rfbSendServerCutText(rfbScreenInfoPtr rfbScreen,char *str, int len)
+ rfbServerCutTextMsg sct;
+ rfbClientIteratorPtr iterator;
+
++ memset((char *)&sct, 0, sizeof(sct));
++
+ iterator = rfbGetClientIterator(rfbScreen);
+ while ((cl = rfbClientIteratorNext(iterator)) != NULL) {
+ sct.type = rfbServerCutText;
diff --git a/community/loudmouth/APKBUILD b/community/loudmouth/APKBUILD
new file mode 100644
index 0000000000..aa47277a89
--- /dev/null
+++ b/community/loudmouth/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
+# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
+pkgname=loudmouth
+pkgver=1.5.3
+pkgrel=1
+pkgdesc="A lightweight Jabber client library"
+url="http://groups.google.com/group/loudmouth-dev"
+arch="all"
+license="LGPL-2.0-or-later"
+depends_dev="pkgconfig gnutls-dev libidn-dev libasyncns-dev check-dev autoconf"
+makedepends="$depends_dev glib-dev"
+subpackages="$pkgname-dev $pkgname-doc"
+source="https://mcabber.com/files/loudmouth/loudmouth-$pkgver.tar.bz2"
+
+prepare() {
+ default_prepare
+ autoconf
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --disable-static \
+ --with-asyncns=yes \
+ --prefix=/usr \
+ --infodir=/usr/share/info \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="ab6b16b4e644b69cdb7d8df1753d1bb5b43c2f1e76944e639339169b332e1b5c6a4246053c5b8a579ee9b53c845cef610b0040dfdffeb857180b6bab71adfcce loudmouth-1.5.3.tar.bz2"
diff --git a/community/makekit/APKBUILD b/community/makekit/APKBUILD
new file mode 100644
index 0000000000..5c44a043fe
--- /dev/null
+++ b/community/makekit/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Natanael Copa <ncopa@alpinelinux.org>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=makekit
+pkgver=0.2
+pkgrel=0
+pkgdesc="modular build system for POSIX environments"
+url="http://mkbuild.sourceforge.net/"
+arch="x86 x86_64"
+license="BSD-3-Clause"
+makedepends="coreutils"
+options="!check"
+source="makekit-$pkgver.tar.gz::https://github.com/bkoropoff/makekit/archive/release-$pkgver.tar.gz"
+builddir="$srcdir"/makekit-release-$pkgver/build
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="7746141b253953212d621f9c4a8376b5c6bd3ac15d1809b184013a27c51006be2e2ee5ef391509486ae89b7fdca81863f8c916538bcb98e435ebf0ff1976f1ce makekit-0.2.tar.gz"
diff --git a/community/mp3splt/APKBUILD b/community/mp3splt/APKBUILD
new file mode 100644
index 0000000000..addacb83d2
--- /dev/null
+++ b/community/mp3splt/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Natanael Copa <ncopa@alpinelinux.org>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=mp3splt
+pkgver=2.6.2
+pkgrel=0
+pkgdesc="A command-line, AlbumWrap and mp3wrap file exctractor"
+url="http://mp3splt.sourceforge.net/"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="libmp3splt-dev"
+subpackages="$pkgname-doc"
+source="https://prdownloads.sourceforge.net/mp3splt/mp3splt-$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --with-mp3splt-includes=/usr/include/libmp3splt \
+ --enable-oggsplt_symlink
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="c1cbdc905d4f19e8e20afeadf02a2967049d86e69613312c8855e03afc5b190a569ac63f970171384853961cbe6bf248fae47e5116c4fe9deb7a0787f299918b mp3splt-2.6.2.tar.gz"
diff --git a/community/multisort/APKBUILD b/community/multisort/APKBUILD
new file mode 100644
index 0000000000..b074d551ed
--- /dev/null
+++ b/community/multisort/APKBUILD
@@ -0,0 +1,23 @@
+# Contributor: Timo Teräs <timo.teras@iki.fi>
+# Maintainer: Timo Teräs <timo.teras@iki.fi>
+pkgname=multisort
+pkgver=1.1
+pkgrel=1
+pkgdesc="Tool to merge multiple logfiles"
+url="https://www.xach.com/multisort/"
+arch="all"
+license="GPL-2.0-or-later"
+source="http://www.xach.com/multisort/multisort-$pkgver.tar.gz
+ multisort-syslog-support.patch"
+
+build() {
+ make
+}
+
+package() {
+ install -d "$pkgdir/usr/bin/"
+ install -s "$builddir/multisort" "$pkgdir/usr/bin/"
+}
+
+sha512sums="346be785a223814086536bfc8aacb11122ca91cf6cb63c8bbe2ae70f323bd36812f25575114c1422c431f658328bbb7fc75b839e74b7f37c12c4a3f179e05e1b multisort-1.1.tar.gz
+2e9158ae9717245033bb389e99642991ee4d5b340f0228392bc0cc3cd6ab036dcccb1effd92bd8d4b96e5187901af64c49a07413b524fc17d3c504f99047bee4 multisort-syslog-support.patch"
diff --git a/community/multisort/multisort-syslog-support.patch b/community/multisort/multisort-syslog-support.patch
new file mode 100644
index 0000000000..4e934127c4
--- /dev/null
+++ b/community/multisort/multisort-syslog-support.patch
@@ -0,0 +1,286 @@
+diff -ru multisort-1.1/multisort.c multisort-1.1-tt//multisort.c
+--- multisort-1.1/multisort.c 1999-10-28 22:12:36.000000000 +0300
++++ multisort-1.1-tt//multisort.c 2011-04-07 15:25:06.000000000 +0300
+@@ -1,7 +1,6 @@
+ /***********************************************************************
+ *
+- * multisort - sort multiple Common Log Format files into a single,
+- * date-ordered file
++ * multisort - merge multiple sorted log files together
+ *
+ * $Id: multisort.c,v 1.7 1999/10/28 19:11:48 xach Exp $
+ *
+@@ -11,6 +10,11 @@
+ *
+ * - Fixed some potential segfaults by checking the return values
+ * of various functions.
++ *
++ * Modifications by Timo Teräs <timo.teras@iki.fi>
++ * - Support syslog format in addition to common log format
++ * - Some speed improvements
++ *
+ *
+ * Zachary Beane <xach@mint.net>
+ *
+@@ -42,7 +46,7 @@
+ int enabled;
+ char *name;
+ FILE *in_fh;
+- long atime;
++ unsigned long atime;
+ char buf[BUFSIZ + 1];
+ };
+
+@@ -148,7 +152,7 @@
+ {
+ register const char *s = wordlist[key].name;
+
+- if (*str == *s && !strcmp (str + 1, s + 1))
++ if (*str == *s && !strncmp (str + 1, s + 1, len - 1))
+ return &wordlist[key];
+ }
+ }
+@@ -174,6 +178,19 @@
+ #endif
+
+
++static int
++get_int(const char *s, int len)
++{
++ int val = 0, i;
++
++ for (i = 0; i < len; i++) {
++ if (s[i] >= '0' && s[i] <= '9')
++ val = (val * 10) + s[i] - '0';
++ }
++ return val;
++
++}
++
+ /* conv_time
+ * Take a common log format string and return a sortable value. Use a hash
+ * table for month lookup.
+@@ -182,92 +199,89 @@
+ * return values and string lengths and such. Lazy bastard.
+ *
+ */
+-
+-long
+-conv_time(char *s)
++
++unsigned long
++convert_time_common_log_file(const char *s)
+ {
+- char *ptr;
+- char *orig_ptr;
+- int year;
+- int mon;
+- int mday;
+- int hour;
+- int min;
+- int sec;
++ /* 127.198.54.33 - - [14/Jan/1999:13:54:37 -0500] "GET /mint/images/top_maindesigns_on.jpg HTTP/1.0" 200 7164 */
++ const char *ptr;
++ int year, mon, day;
++ int hour, min, sec;
+ struct month *m;
+
+- ptr = s;
+- ptr = strchr(ptr, '[');
+-
++ ptr = strchr(s, '[');
+ if (ptr == NULL)
+ return 0;
+
+- ptr++; /* skip the bracket */
++ /* skip the bracket */
++ ptr++;
+
+- if (strlen(ptr) < 21)
++ /* too short string? */
++ if (memchr(ptr, 0, 21) != NULL)
+ return 0;
+
+- orig_ptr = ptr;
+- ptr[2] = '\0';
+- ptr[6] = '\0';
+- ptr[11] = '\0';
+- ptr[14] = '\0';
+- ptr[17] = '\0';
+- ptr[20] = '\0';
+-
+- mday = atoi(ptr);
+-
+- ptr += 3;
+- m = in_word_set(ptr, 3);
+- if (m == NULL) {
++ m = in_word_set(&ptr[3], 3);
++ if (m == NULL)
+ return 0;
+- } else {
+- mon = m->pos;
+- }
+-
+-
+- ptr += 4;
+- year = atoi(ptr) - 1990;
+-
+- ptr += 5;
+- hour = atoi(ptr);
+
+- ptr += 3;
+- min = atoi(ptr);
+-
+- ptr += 3;
+- sec = atoi(ptr);
+-
+- /* Restore the characters to their original state (this saves us a
+- strdup!) Yay. */
+-
+- ptr = orig_ptr;
+- ptr[2] = '/';
+- ptr[6] = '/';
+- ptr[11] = ':';
+- ptr[14] = ':';
+- ptr[17] = ':';
+- ptr[20] = ' ';
++ mon = m->pos;
++ day = get_int(&ptr[0], 2);
++ year = get_int(&ptr[7], 4) - 1990;
++ hour = get_int(&ptr[12], 2);
++ min = get_int(&ptr[15], 2);
++ sec = get_int(&ptr[18], 2);
+
+ return((year * 31104000)
+ + (mon * 2592000)
+- + (mday * 86400)
++ + (day * 86400)
+ + (hour * 3600)
+ + (min * 60)
+ + sec);
+ }
+
++unsigned long
++convert_time_syslog_file(const char *s)
++{
++ /* Apr 7 02:00:14 blah blah */
++ int mon, day, hour, min, sec;
++ struct month *m;
++
++ /* Too short string? */
++ if (memchr(s, 0, 15) != NULL)
++ return 0;
++
++ m = in_word_set(&s[0], 3);
++ if (m == NULL)
++ return 0;
++
++ mon = m->pos;
++ day = get_int(&s[4], 2);
++ hour = get_int(&s[7], 2);
++ min = get_int(&s[10], 2);
++ sec = get_int(&s[13], 2);
++
++ return((mon * 2592000)
++ + (day * 86400)
++ + (hour * 3600)
++ + (min * 60)
++ + sec);
++}
++
+
+ void
+ usage(void)
+ {
+- fprintf(stderr, "usage: multisort LOGFILE1 LOGFILE2 [LOGFILEn ...]\n");
+- fprintf(stderr, "\n");
+- fprintf(stderr, "multisort 1.1 Copyright (C) 1999 Zachary Beane\n");
+- fprintf(stderr, "This program has NO WARRANTY and is licensed "
++ fprintf(stderr, "usage: multisort [-format] LOGFILE1 LOGFILE2 [LOGFILEn ...]\n"
++ "\n"
++ "multisort 1.1 Copyright (C) 1999 Zachary Beane\n"
++ "This program has NO WARRANTY and is licensed "
+ "under the terms of the\nGNU General Public License.\n"
+- "http://www.xach.com/multisort/ - bugs to xach@mint.net\n");
+-
++ "http://www.xach.com/multisort/ - bugs to xach@mint.net\n"
++ "\n"
++ "Supported formats currently:\n"
++ " -clf Common Log Format (default)\n"
++ " -syslog Syslog Format\n"
++ );
+ exit(1);
+ }
+
+@@ -279,9 +293,10 @@
+ int if_count = 0; /* number of total input files */
+ int if_nr = 0; /* number of active input files */
+ char *ret = NULL;
+- long min_time = 0;
++ unsigned long min_time = 0;
+ int min_index = 0;
+ int i, j;
++ unsigned long (*conv_time)(const char *s);
+
+ if (argc < 3) {
+ usage();
+@@ -295,7 +310,19 @@
+ }
+
+ /* Open up all the files */
+- for (i = 1, j = 0; i < argc; i++, j++) {
++ conv_time = convert_time_common_log_file;
++ i = 1;
++ if (argv[i][0] == '-') {
++ if (strcmp(argv[i], "-clf") == 0)
++ conv_time = convert_time_common_log_file;
++ else if (strcmp(argv[i], "-syslog") == 0)
++ conv_time = convert_time_syslog_file;
++ else
++ usage();
++ i++;
++ }
++
++ for (j = 0; i < argc; i++, j++) {
+ if_list[j] = (InputFile *)malloc(sizeof(InputFile));
+ if (if_list[j] == NULL) {
+ perror("malloc");
+@@ -319,19 +346,18 @@
+ if_list[j]->name);
+ exit(1);
+ }
+-
++ if_list[j]->atime = conv_time(if_list[j]->buf);
+ }
+
+ if_count = if_nr = j;
+
+ while (if_nr) {
+ min_index = 0;
+- min_time = 900000000L;
++ min_time = (unsigned long) -1;
+ for (i = 0; i < if_count; i++) {
+ if (!if_list[i]->enabled)
+ continue;
+
+- if_list[i]->atime = conv_time(if_list[i]->buf);
+ if (if_list[i]->atime < min_time) {
+ min_time = if_list[i]->atime;
+ min_index = i;
+@@ -345,7 +371,9 @@
+ /* refill the buffer */
+ ret = fgets(if_list[min_index]->buf, BUFSIZ,
+ if_list[min_index]->in_fh);
+- if (ret == NULL) {
++ if (ret != NULL) {
++ if_list[min_index]->atime = conv_time(if_list[min_index]->buf);
++ } else {
+ if_list[min_index]->enabled = 0;
+ fclose(if_list[min_index]->in_fh);
+ if_nr--;
+@@ -355,5 +383,3 @@
+ exit(0);
+ }
+
+-
+-
diff --git a/community/myrepos/APKBUILD b/community/myrepos/APKBUILD
new file mode 100644
index 0000000000..655671c443
--- /dev/null
+++ b/community/myrepos/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
+# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
+pkgname=myrepos
+pkgver=1.20180726
+pkgrel=0
+pkgdesc="A multiple repository management tool"
+url="https://git.joeyh.name/git/myrepos.git"
+arch="noarch"
+license="GPL-2.0-or-later"
+depends="perl git"
+replaces="mr"
+subpackages="$pkgname-doc"
+source="https://git.joeyh.name/index.cgi/myrepos.git/snapshot/myrepos-$pkgver.tar.gz"
+
+build() {
+ make
+}
+
+check() {
+ make test
+}
+
+package() {
+ install -Dm755 mr "$pkgdir"/usr/bin/mr
+ cd "$builddir"/lib
+ for file in git-fake-bare git-svn unison; do
+ install -Dpm 0644 $file \
+ "$pkgdir"/usr/share/$pkgname/$file
+ done
+}
+
+doc() {
+ cd "$builddir"
+ mkdir -p "$subpkgdir"/usr/share/man
+ mv "$builddir"/*.1 "$subpkgdir"/usr/share/man/
+ # Sample configuration files
+ for file in mrconfig mrconfig.complex; do
+ install -Dpm 0644 $file \
+ "$subpkgdir"/usr/share/doc/$pkgname/$file
+ done
+ default_doc
+}
+
+sha512sums="cf39208ecf1fc4008cf29c1585d33e9b17dc08350d2bc816a4ce0b4e12eaceffcf7bfbbf2036a70ac2aa979070da601e422ccbedd824f33354b20cfe3a988fef myrepos-1.20180726.tar.gz"
diff --git a/community/ndctl/APKBUILD b/community/ndctl/APKBUILD
new file mode 100644
index 0000000000..34f91abad6
--- /dev/null
+++ b/community/ndctl/APKBUILD
@@ -0,0 +1,49 @@
+# Maintainer: Breno Leitao <breno.leitao@gmail.com>
+pkgname=ndctl
+pkgver=67
+pkgrel=0
+pkgdesc="Utility library for managing the libnvdimm (non-volatile memory device) sub-system in the Linux kernel"
+url="https://github.com/pmem/ndctl"
+arch="all"
+license="GPL-2.0-only LGPL-2.1-only"
+depends="libuuid json-c kmod"
+makedepends="autoconf automake libtool asciidoc xmlto kmod-dev
+ eudev-dev util-linux-dev json-c-dev linux-headers asciidoctor
+ bash-completion keyutils-dev"
+subpackages="$pkgname-doc $pkgname-dev $pkgname-libs
+ $pkgname-bash-completion:bashcomp:noarch"
+source="ndctl-$pkgver.tar.gz::https://github.com/pmem/ndctl/archive/v$pkgver.tar.gz"
+options="!check" # tests require building & loading the nfit_test.ko kernel module
+
+prepare() {
+ default_prepare
+ echo $pkgver >"$builddir/version"
+ ./autogen.sh
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --without-systemd
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+bashcomp() {
+ depends=""
+ pkgdesc="Bash completion for $pkgname"
+ install_if="$pkgname=$pkgver-r$pkgrel bash-completion"
+
+ mkdir -p "$subpkgdir"/usr/share
+ mv "$pkgdir"/usr/share/bash-completion "$subpkgdir"/usr/share/
+}
+
+sha512sums="a923510468f540ac84fca5c562096b02eb3827c57e87ac36641f5ce129114ba583ce5ac5d71b45d7be876e880ad7e4fe38678350480d8974745120c7e0161435 ndctl-67.tar.gz"
diff --git a/community/openpgm/APKBUILD b/community/openpgm/APKBUILD
new file mode 100644
index 0000000000..e75f66485f
--- /dev/null
+++ b/community/openpgm/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Timo Teräs <timo.teras@iki.fi>
+# Maintainer: Timo Teräs <timo.teras@iki.fi>
+pkgname=openpgm
+pkgver=5.2.122
+pkgrel=3
+pkgdesc="An implementation of the PGM reliable multicast protocol"
+url="https://www.freshports.org/net/openpgm/"
+arch="all"
+license="LGPL-2.1-or-later"
+makedepends="python3 perl"
+subpackages="$pkgname-dev"
+source="https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/openpgm/libpgm-$pkgver.tar.bz2
+ openpgm-fix-includes.patch
+ python3.patch
+ libpgm-fix-pkgconfig.patch
+ "
+
+builddir="$srcdir"/libpgm-$pkgver/openpgm/pgm/
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
+build() {
+ CFLAGS="$CFLAGS -D_GNU_SOURCE" \
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --enable-shared \
+ --disable-static \
+ PYTHON=python3
+ make
+}
+
+package() {
+ make install DESTDIR="$pkgdir"
+}
+
+sha512sums="dddd5c30f7ae9a6a2ca9738010d4e6a1b856f3d7e1636bb43ef697a0b07ad6f058978d6f21cc3f6efe0c21b48d71d496d1e914bd05e33ed6cfbda8b96821fa2f libpgm-5.2.122.tar.bz2
+6689ccafa00a9d436fb6074b6454df4443daa2e62db47c64a962dfb105ce2d0f85c79059aa27ac9834572cd30112e7f0407e24dfd995285fa7ac921d70214229 openpgm-fix-includes.patch
+51378950af33062339b49019a9fe78a07ff60bda0ed08905cc6bd4a5a4b3ff2347e10a11c50355e7f03422325f2834e054db1e44afa5c3b02c54a7a9963a04b8 python3.patch
+c49e1fec9b96e7b9228bf46671f74138d19bf938282bda20dd7be3f27ff49103ed5ec033b09f11b259740781e1652023d7286066e206495a173bed87f5b948dd libpgm-fix-pkgconfig.patch"
diff --git a/community/openpgm/libpgm-fix-pkgconfig.patch b/community/openpgm/libpgm-fix-pkgconfig.patch
new file mode 100644
index 0000000000..64272f44e1
--- /dev/null
+++ b/community/openpgm/libpgm-fix-pkgconfig.patch
@@ -0,0 +1,21 @@
+From ee25ff3d13f2639b4c3a42125e79f77f921c3320 Mon Sep 17 00:00:00 2001
+From: Luca Boccassi <bluca@debian.org>
+Date: Wed, 23 Jan 2019 10:37:37 +0000
+Subject: [PATCH] pkg-config: do not add -I to non-existing directory
+
+foo/lib/pgm-5.2/include does not exist, so applications using strict
+compiler flags will fail to build due to this -I flag
+---
+ openpgm/pgm/openpgm-5.2.pc.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/openpgm/pgm/openpgm-5.2.pc.in b/openpgm/pgm/openpgm-5.2.pc.in
+index 1e56d944..9e30a6da 100644
+--- a/openpgm-5.2.pc.in
++++ b/openpgm-5.2.pc.in
+@@ -9,4 +9,4 @@ Version: @PACKAGE_VERSION@
+ # packagers may wish to move @LIBS@ to Libs.private for platforms with
+ # versions of pkg-config that support static linking.
+ Libs: -L${libdir} -lpgm @LIBS@
+-Cflags: -I${includedir}/pgm-@VERSION_MAJOR@.@VERSION_MINOR@ -I${libdir}/pgm-@VERSION_MAJOR@.@VERSION_MINOR@/include
++Cflags: -I${includedir}/pgm-@VERSION_MAJOR@.@VERSION_MINOR@
diff --git a/community/openpgm/openpgm-fix-includes.patch b/community/openpgm/openpgm-fix-includes.patch
new file mode 100644
index 0000000000..6f1e5901fc
--- /dev/null
+++ b/community/openpgm/openpgm-fix-includes.patch
@@ -0,0 +1,30 @@
+--- ./include/pgm/types.h
++++ ./include/pgm/types.h
+@@ -27,6 +27,7 @@
+
+ #ifndef _MSC_VER
+ # include <sys/param.h>
++# include <sys/types.h>
+ #endif
+ #include <pgm/macros.h>
+
+--- ./include/impl/security.h
++++ ./include/impl/security.h
+@@ -33,7 +33,6 @@
+ #include <stdio.h>
+ #include <stdarg.h>
+ #include <sys/types.h>
+-#include <sys/timeb.h>
+ #include <impl/i18n.h>
+ #include <impl/errno.h>
+ #include <impl/string.h>
+@@ -41,6 +40,8 @@
+ PGM_BEGIN_DECLS
+
+ #ifdef HAVE_FTIME
++#include <sys/timeb.h>
++
+ static inline
+ errno_t
+ # if !defined( _WIN32 )
+
diff --git a/community/openpgm/python3.patch b/community/openpgm/python3.patch
new file mode 100644
index 0000000000..f1ae79772c
--- /dev/null
+++ b/community/openpgm/python3.patch
@@ -0,0 +1,28 @@
+diff --git a/version_generator.py b/version_generator.py
+index b2f8f9a..0143d67 100755
+--- a/version_generator.py
++++ b/version_generator.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python3
+
+ import os
+ import platform
+@@ -8,7 +8,7 @@ build_date = time.strftime ("%Y-%m-%d")
+ build_time = time.strftime ("%H:%M:%S")
+ build_rev = filter (str.isdigit, "$Revision: 1487 $")
+
+-print """
++print("""
+ /* vim:ts=8:sts=8:sw=4:noai:noexpandtab
+ *
+ * OpenPGM version.
+@@ -50,6 +50,6 @@ const char* pgm_build_revision = "%s";
+
+
+ /* eof */
+-"""%(build_date, build_time, platform.system(), platform.machine(), build_rev)
++"""%(build_date, build_time, platform.system(), platform.machine(), build_rev))
+
+ # end of file
+
diff --git a/community/sdl_image/APKBUILD b/community/sdl_image/APKBUILD
new file mode 100644
index 0000000000..7963cc8e0e
--- /dev/null
+++ b/community/sdl_image/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Carlo Landmeter
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=sdl_image
+pkgver=1.2.12
+pkgrel=5
+pkgdesc="A simple library to load images of various formats as SDL surfaces"
+url="http://www.libsdl.org/projects/SDL_image/"
+arch="all"
+options="!check" # No test suite.
+license="Zlib"
+makedepends="sdl-dev libpng-dev libjpeg-turbo-dev libwebp-dev tiff-dev zlib-dev"
+subpackages="$pkgname-dev"
+source="https://www.libsdl.org/projects/SDL_image/release/SDL_image-$pkgver.tar.gz
+ CVE-2019-13616.patch
+ "
+
+# secfixes:
+# 1.2.12-r5:
+# - CVE-2019-13616
+
+builddir="$srcdir"/SDL_image-$pkgver
+prepare() {
+ update_config_sub
+ default_prepare
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="0e71b280abc2a7f15755e4480a3c1b52d41f9f8b0c9216a6f5bd9fc0e939456fb5d6c10419e1d1904785783f9a1891ead278c03e88b0466fecc6871c3ca40136 SDL_image-1.2.12.tar.gz
+0ae144202435ad35e5ff6ae6b73592cd8ef68dba2704e09ba22f2b9e9d98f547f2ead28327be0594897f2165d2bf5c26f07e8ef72760527e8d9e4e593e8e5f60 CVE-2019-13616.patch"
diff --git a/community/sdl_image/CVE-2019-13616.patch b/community/sdl_image/CVE-2019-13616.patch
new file mode 100644
index 0000000000..f2ed7c6aa0
--- /dev/null
+++ b/community/sdl_image/CVE-2019-13616.patch
@@ -0,0 +1,16 @@
+diff --git a/IMG_bmp.c b/IMG_bmp.c
+index b3c7580..bfadd45 100644
+--- a/IMG_bmp.c
++++ b/IMG_bmp.c
+@@ -272,6 +272,11 @@ static SDL_Surface *LoadBMP_RW (SDL_RWops *src, int freesrc)
+ biClrUsed = SDL_ReadLE32(src);
+ biClrImportant = SDL_ReadLE32(src);
+ }
++ if (biWidth <= 0 || biHeight == 0) {
++ IMG_SetError("BMP file with bad dimensions (%dx%d)", biWidth, biHeight);
++ was_error = SDL_TRUE;
++ goto done;
++ }
+ if (biHeight < 0) {
+ topDown = SDL_TRUE;
+ biHeight = -biHeight;
diff --git a/community/sdl_mixer/APKBUILD b/community/sdl_mixer/APKBUILD
new file mode 100644
index 0000000000..2935d5e12a
--- /dev/null
+++ b/community/sdl_mixer/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Carlo Landmeter
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=sdl_mixer
+pkgver=1.2.12
+pkgrel=1
+pkgdesc="A simple multi-channel audio mixer"
+url="http://www.libsdl.org/projects/SDL_mixer/"
+arch="all"
+license="BSD-3-Clause"
+makedepends="sdl-dev libvorbis-dev libmikmod-dev flac-dev linux-headers"
+subpackages="$pkgname-dev"
+source="https://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-$pkgver.tar.gz"
+builddir="$srcdir"/SDL_mixer-$pkgver
+
+prepare() {
+ default_prepare
+ update_config_sub
+ sed -e "/CONFIG_FILE_ETC/s/\/etc\/timidity.cfg/\/etc\/timidity++\/timidity.cfg/" \
+ -e "/DEFAULT_PATH/s/\/etc\/timidity/\/etc\/timidity++/" \
+ -e "/DEFAULT_PATH2/s/\/usr\/local\/lib\/timidity/\/usr\/lib\/timidity/" \
+ -i timidity/config.h
+}
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --enable-music-mod
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="230f6c5a73f4bea364f8aa3d75f76694305571dea45f357def742b2b50849b2d896af71e08689981207edc99a9836088bee2d0bd98d92c7f4ca52b12b3d8cf96 SDL_mixer-1.2.12.tar.gz"
diff --git a/community/sessreg/APKBUILD b/community/sessreg/APKBUILD
new file mode 100644
index 0000000000..5c1c89ac0a
--- /dev/null
+++ b/community/sessreg/APKBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=sessreg
+pkgver=1.1.2
+pkgrel=0
+pkgdesc="manage utmp/wtmp entries for non-init clients"
+options="!check" # No testsuite
+url="https://wiki.freedesktop.org/xorg/"
+arch="all"
+license="ICU"
+subpackages="$pkgname-doc"
+makedepends="bsd-compat-headers linux-headers xorgproto"
+source="https://www.x.org/releases/individual/app/sessreg-$pkgver.tar.bz2
+ missing_path_wtmpx.patch"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --mandir=/usr/share/man
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+sha512sums="7e3c2bdcadb7133aace463b58d8c6108d315ec95d2a42509073eeddc7f02644092a4b3168bd3b426c041736a016291092e0bf8368acd620dbeff96d53d12f98c sessreg-1.1.2.tar.bz2
+57a7dea5f0f9d8c3f54aa3aeb98f6fa8cd44e9d7397c81ad40e973ad3a548b7137a986bda6367df5d867d2b1e6d8eacdd182fcf920ea9d1e8c70cc64f40651df missing_path_wtmpx.patch"
diff --git a/community/sessreg/missing_path_wtmpx.patch b/community/sessreg/missing_path_wtmpx.patch
new file mode 100644
index 0000000000..0514de59b7
--- /dev/null
+++ b/community/sessreg/missing_path_wtmpx.patch
@@ -0,0 +1,24 @@
+diff -Naur sessreg-1.0.8.orig/sessreg.h sessreg-1.0.8/sessreg.h
+--- sessreg-1.0.8.orig/sessreg.h 2013-02-10 21:43:50.000000000 -0500
++++ sessreg-1.0.8/sessreg.h 2014-06-18 10:02:17.769459663 -0400
+@@ -106,3 +106,8 @@
+ #ifndef UTMPX_FILE
+ # define UTMPX_FILE _PATH_UTMPX
+ #endif
++
++#ifndef _PATH_WTMPX
++# define _PATH_WTMPX "/var/log/wtmp"
++#endif
++
+diff --git a/sessreg.h b/sessreg.h
+index b3bbac9..d0c0105 100644
+--- a/sessreg.h
++++ b/sessreg.h
+@@ -114,3 +114,7 @@
+ # define _PATH_WTMPX "/var/log/wtmp"
+ #endif
+
++#ifndef _PATH_UTMPX
++# define _PATH_UTMPX "/var/log/utmp"
++#endif
++
diff --git a/community/sparsehash/APKBUILD b/community/sparsehash/APKBUILD
new file mode 100644
index 0000000000..6b4886a7d9
--- /dev/null
+++ b/community/sparsehash/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Carlo Landmeter <clandmeter@gmail.com>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=sparsehash
+pkgver=2.0.3
+pkgrel=0
+pkgdesc="Library that contains several hash-map implementations"
+url="https://github.com/sparsehash/sparsehash"
+arch="all"
+license="BSD-3-Clause"
+subpackages="$pkgname-doc"
+source="https://github.com/sparsehash/sparsehash/archive/sparsehash-$pkgver.tar.gz"
+builddir="$srcdir"/sparsehash-sparsehash-$pkgver
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="bb00d0acb8eba65f7da8015ea4f6bebf8bba36ed6777881960ee215f22b7be17b069c59838d210551ce67a34baccfc7b2fed603677ec53c0c32714d8e76f5d6c sparsehash-2.0.3.tar.gz"
diff --git a/community/sysstat/APKBUILD b/community/sysstat/APKBUILD
new file mode 100644
index 0000000000..50b0ef961b
--- /dev/null
+++ b/community/sysstat/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Carlo Landmeter <clandmeter@gmail.com>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=sysstat
+pkgver=12.2.1
+pkgrel=0
+pkgdesc="Performance monitoring tools"
+url="http://pagesperso-orange.fr/sebastien.godard/"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="linux-headers"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/sysstat/sysstat/archive/v$pkgver.tar.gz"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --disable-nls
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+
+}
+
+sha512sums="a19d0978eb11071c228462cda496a59721541e57a1d15cb2d0964f287ac2d50b5587fa5bc2b8fe6be2a1f00cbf2e7c3bc59db6494e3e8c1906aa81437b30d073 sysstat-12.2.1.tar.gz"
diff --git a/community/the_silver_searcher/APKBUILD b/community/the_silver_searcher/APKBUILD
new file mode 100644
index 0000000000..48439b494b
--- /dev/null
+++ b/community/the_silver_searcher/APKBUILD
@@ -0,0 +1,56 @@
+# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=the_silver_searcher
+pkgver=2.2.0
+pkgrel=0
+pkgdesc="A code searching tool similar to ack, with a focus on speed."
+options="!check" # No testsuite
+url="https://geoff.greer.fm/ag/"
+arch="all"
+license="Apache-2.0"
+makedepends="pcre-dev xz-dev zlib-dev"
+subpackages="$pkgname-doc
+ $pkgname-zsh-completion:zshcomp:noarch
+ $pkgname-bash-completion:bashcomp:noarch"
+source="https://geoff.greer.fm/ag/releases/the_silver_searcher-$pkgver.tar.gz"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+bashcomp() {
+ depends=""
+ pkgdesc="Bash completions for $pkgname"
+ install_if="$pkgname=$pkgver-r$pkgrel bash-completion"
+
+ mkdir -p "$subpkgdir"/usr/share/bash-completion/completions/
+ mv "$pkgdir"/usr/share/the_silver_searcher/completions/ag.bashcomp.sh \
+ "$subpkgdir"/usr/share/bash-completion/completions/ag
+
+ rmdir -p "$pkgdir"/usr/share/the_silver_searcher/completions/ 2>&1 || true
+}
+
+zshcomp() {
+ depends=""
+ pkgdesc="Zsh completions for $pkgname"
+ install_if="$pkgname=$pkgver-r$pkgrel zsh"
+
+ mkdir -p "$subpkgdir"/usr/share/zsh/site-functions/
+ mv "$pkgdir"/usr/share/zsh/site-functions/_the_silver_searcher \
+ "$subpkgdir"/usr/share/zsh/site-functions/
+
+ rmdir -p "$pkgdir"/usr/share/zsh/site-functions/ 2>&1 || true
+}
+
+sha512sums="89d4e4f7f34c0d57aa880e7c3466f0373b961744a89ad30541e89e2d614322ab46c8044ec458406a117f74b0fea14cd3063fa4e0624a96526aa23eaccd6f1141 the_silver_searcher-2.2.0.tar.gz"
diff --git a/community/tinyxml/APKBUILD b/community/tinyxml/APKBUILD
new file mode 100644
index 0000000000..5d641ab511
--- /dev/null
+++ b/community/tinyxml/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: Carlo Landmeter <clandmeter@gmail.com>
+# Maintainer:
+pkgname=tinyxml
+pkgver=2.6.2
+_realver=${pkgver//./_}
+pkgrel=1
+pkgdesc="A simple, small, C++ XML parser"
+url="http://www.grinninglizard.com/tinyxml/"
+arch="all"
+license="Zlib"
+subpackages="$pkgname-dev"
+source="https://downloads.sourceforge.net/tinyxml/tinyxml_$_realver.tar.gz
+ tinyxml-2.6.2-defineSTL.patch
+ tinyxml-2.6.1-entity.patch"
+
+builddir=$srcdir/$pkgname
+
+prepare() {
+ default_prepare
+ sed -i Makefile \
+ -e '/^TINYXML_USE_STL/ s|=.*|=YES|' \
+ -e "s|^RELEASE_CFLAGS.*|& $CXXFLAGS -fPIC|"
+}
+
+build() {
+ make
+ g++ -fPIC $CXXFLAGS -shared -o libtinyxml.so.0.$pkgver \
+ -Wl,-soname,libtinyxml.so.0 $(ls *.o | grep -v xmltest)
+}
+
+package() {
+ install -d -m 0755 "$pkgdir"/usr/lib \
+ "$pkgdir"/usr/include
+ install -m 0755 libtinyxml.so.0.2.6.2 \
+ "$pkgdir"/usr/lib/
+ install -m 0644 tinyxml.h tinystr.h \
+ "$pkgdir"/usr/include/
+ cd "$pkgdir"/usr/lib
+ ln -s libtinyxml.so.0.2.6.2 libtinyxml.so
+ ln -s libtinyxml.so.0.2.6.2 libtinyxml.so.0
+}
+
+sha512sums="133b5db06131a90ad0c2b39b0063f1c8e65e67288a7e5d67e1f7d9ba32af10dc5dfa0462f9723985ee27debe8f09a10a25d4b5a5aaff2ede979b1cebe8e59d56 tinyxml_2_6_2.tar.gz
+52cd82ef9e8f1783b3d6042551342a8c592c447e1da352d5d017db4211144bc0a908ddbfe2a4641b3108fb8e02dc47f385a851f920532d94178314255904a6ef tinyxml-2.6.2-defineSTL.patch
+47d582456c2e2ac51a186a4bd58ede4895586ed373b654b120b34bedc7c2e52ed291a3576a37420ea94a238a265d8e2d38de024e770144e465590718da245af3 tinyxml-2.6.1-entity.patch"
diff --git a/community/tinyxml/tinyxml-2.6.1-entity.patch b/community/tinyxml/tinyxml-2.6.1-entity.patch
new file mode 100644
index 0000000000..2ccbd701ac
--- /dev/null
+++ b/community/tinyxml/tinyxml-2.6.1-entity.patch
@@ -0,0 +1,64 @@
+? entity.patch
+Index: tinyxml.cpp
+===================================================================
+RCS file: /cvsroot/tinyxml/tinyxml/tinyxml.cpp,v
+retrieving revision 1.105
+diff -u -r1.105 tinyxml.cpp
+--- a/tinyxml.cpp 5 Jun 2010 19:06:57 -0000 1.105
++++ b/tinyxml.cpp 19 Jul 2010 21:24:16 -0000
+@@ -57,30 +57,7 @@
+ {
+ unsigned char c = (unsigned char) str[i];
+
+- if ( c == '&'
+- && i < ( (int)str.length() - 2 )
+- && str[i+1] == '#'
+- && str[i+2] == 'x' )
+- {
+- // Hexadecimal character reference.
+- // Pass through unchanged.
+- // &#xA9; -- copyright symbol, for example.
+- //
+- // The -1 is a bug fix from Rob Laveaux. It keeps
+- // an overflow from happening if there is no ';'.
+- // There are actually 2 ways to exit this loop -
+- // while fails (error case) and break (semicolon found).
+- // However, there is no mechanism (currently) for
+- // this function to return an error.
+- while ( i<(int)str.length()-1 )
+- {
+- outString->append( str.c_str() + i, 1 );
+- ++i;
+- if ( str[i] == ';' )
+- break;
+- }
+- }
+- else if ( c == '&' )
++ if ( c == '&' )
+ {
+ outString->append( entity[0].str, entity[0].strLength );
+ ++i;
+Index: xmltest.cpp
+===================================================================
+RCS file: /cvsroot/tinyxml/tinyxml/xmltest.cpp,v
+retrieving revision 1.89
+diff -u -r1.89 xmltest.cpp
+--- a/xmltest.cpp 5 Jun 2010 17:41:52 -0000 1.89
++++ b/xmltest.cpp 19 Jul 2010 21:24:16 -0000
+@@ -1340,6 +1340,16 @@
+ }*/
+ }
+
++ #ifdef TIXML_USE_STL
++ {
++ TiXmlDocument xml;
++ xml.Parse("<foo>foo&amp;#xa+bar</foo>");
++ std::string str;
++ str << xml;
++ XmlTest( "Entity escaping", "<foo>foo&amp;#xa+bar</foo>", str.c_str() );
++ }
++ #endif
++
+ /* 1417717 experiment
+ {
+ TiXmlDocument xml;
diff --git a/community/tinyxml/tinyxml-2.6.2-defineSTL.patch b/community/tinyxml/tinyxml-2.6.2-defineSTL.patch
new file mode 100644
index 0000000000..7bcde59ff9
--- /dev/null
+++ b/community/tinyxml/tinyxml-2.6.2-defineSTL.patch
@@ -0,0 +1,12 @@
+diff -up tinyxml/tinyxml.h~ tinyxml/tinyxml.h
+--- tinyxml/tinyxml.h~ 2007-11-30 22:39:36.000000000 +0100
++++ tinyxml/tinyxml.h 2007-11-30 22:39:36.000000000 +0100
+@@ -26,6 +26,8 @@ distribution.
+ #ifndef TINYXML_INCLUDED
+ #define TINYXML_INCLUDED
+
++#define TIXML_USE_STL 1
++
+ #ifdef _MSC_VER
+ #pragma warning( push )
+ #pragma warning( disable : 4530 )
diff --git a/community/tsocks/APKBUILD b/community/tsocks/APKBUILD
new file mode 100644
index 0000000000..1765423a71
--- /dev/null
+++ b/community/tsocks/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: ScrumpyJack <scrumpyjack@st.ilet.to>
+# Contributor: 7heo <7heo@mail.com>
+# Maintainer: ScrumpyJack <scrumpyjack@st.ilet.to>
+pkgname=tsocks
+pkgver=1.8_beta5
+pkgrel=0
+pkgdesc="Transparent SOCKS proxying library"
+options="!check"
+url="http://tsocks.sourceforge.net/"
+arch="x86_64 ppc64le aarch64"
+license="GPL-2.0-or-later"
+subpackages="$pkgname-doc"
+source="https://downloads.sourceforge.net/tsocks/tsocks-${pkgver/_beta/beta}.tar.gz
+ configure.patch"
+builddir="$srcdir/$pkgname-${pkgver%_*}"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --libdir=/usr/lib
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="b41636ea6b77abf0d1e3cda7bbca4e7ee96f3cdb1843f3a2c530650931e5567f67921de67b28ba9bab0f51df39770a3f7fb458cf7ac78aad7aa861923df2c4a9 tsocks-1.8beta5.tar.gz
+919479e359cafe4b331f5e5b058e0f07d1e6a37aa614891f9b16b4ea12a2358f8f42bb75c8cf9ebbecb223f88b1326e35f490c166247bd00d58e1eee57955800 configure.patch"
diff --git a/community/tsocks/configure.patch b/community/tsocks/configure.patch
new file mode 100644
index 0000000000..e33485ea7c
--- /dev/null
+++ b/community/tsocks/configure.patch
@@ -0,0 +1,71 @@
+*** tsocks-1.8/configure Mon Jul 15 22:51:08 2002
+--- tsocks-1.8/configure.modified Thu Mar 26 18:34:09 2015
+***************
+*** 1299,1314 ****
+ fi
+
+
+! ac_safe=`echo "sys/poll.h" | sed 'y%./+-%__p_%'`
+! echo $ac_n "checking for sys/poll.h""... $ac_c" 1>&6
+! echo "configure:1305: checking for sys/poll.h" >&5
+ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+ #line 1310 "configure"
+ #include "confdefs.h"
+! #include <sys/poll.h>
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+ { (eval echo configure:1315: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+--- 1299,1314 ----
+ fi
+
+
+! ac_safe=`echo "poll.h" | sed 'y%./+-%__p_%'`
+! echo $ac_n "checking for poll.h""... $ac_c" 1>&6
+! echo "configure:1305: checking for poll.h" >&5
+ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+ #line 1310 "configure"
+ #include "confdefs.h"
+! #include <poll.h>
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+ { (eval echo configure:1315: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+***************
+*** 1330,1336 ****
+ :
+ else
+ echo "$ac_t""no" 1>&6
+! { echo "configure: error: "sys/poll.h not found"" 1>&2; exit 1; }
+ fi
+
+
+--- 1330,1336 ----
+ :
+ else
+ echo "$ac_t""no" 1>&6
+! { echo "configure: error: "poll.h not found"" 1>&2; exit 1; }
+ fi
+
+
+***************
+*** 2235,2241 ****
+ #line 2236 "configure"
+ #include "confdefs.h"
+
+! #include <sys/poll.h>
+ int poll($testproto);
+
+ int main() {
+--- 2235,2241 ----
+ #line 2236 "configure"
+ #include "confdefs.h"
+
+! #include <poll.h>
+ int poll($testproto);
+
+ int main() {
diff --git a/community/vsftpd/APKBUILD b/community/vsftpd/APKBUILD
new file mode 100644
index 0000000000..7ae0b80c9c
--- /dev/null
+++ b/community/vsftpd/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Carlo Landmeter <clandmeter@gmail.com>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=vsftpd
+pkgver=3.0.3
+pkgrel=6
+pkgdesc="Very secure ftpd"
+url="http://vsftpd.beasts.org"
+arch="all"
+license="GPL-2.0-only"
+makedepends="openssl-dev libcap-dev linux-pam-dev linux-headers"
+subpackages="$pkgname-doc"
+install="$pkgname.pre-install"
+source="https://security.appspot.com/downloads/vsftpd-$pkgver.tar.gz
+ vsftpd.initd
+ vsftpd.confd
+ vsftpd-enable-ssl.patch
+ vsftpd-clearenv.patch
+ CVE-2015-1419.patch
+ wtmpx_file.patch
+ findlibs.patch
+ strip.patch
+ "
+
+
+build() {
+ make CFLAGS="$CFLAGS -D_GNU_SOURCE"
+}
+
+package() {
+ install -m755 -D vsftpd "$pkgdir"/usr/sbin/vsftpd
+ install -m644 -D vsftpd.8 "$pkgdir"/usr/share/man/man8/vsftpd.8
+ install -m644 -D vsftpd.conf.5 "$pkgdir"/usr/share/man/man5/vsftpd.conf.5
+ install -m644 -D vsftpd.conf "$pkgdir"/etc/vsftpd/vsftpd.conf
+ install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+ install -m644 -D "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
+ mkdir -p "$pkgdir"/usr/share/empty
+ mkdir -p "$pkgdir"/var/lib/ftp
+ chown root:ftp "$pkgdir"/var/lib/ftp
+}
+
+sha512sums="5a4410a88e72ecf6f60a60a89771bcec300c9f63c2ea83b219bdf65fd9749b9853f9579f7257205b55659aefcd5dab243eba878dbbd4f0ff8532dd6e60884df7 vsftpd-3.0.3.tar.gz
+99d02ed2a91ea967d6e907c07bbe89e2ced3f919e659be3e8ab90d95d87648cb9fc7224e1c8879b94b6d364810624165db1333020b602f7c42afd2bcc7a2d8e3 vsftpd.initd
+7bd138cf66356db55d00796f99b327e9aedf45a48b6fc9b464801fd17a69949ca1296131513c289b0293d27b29c1add08e601068501591108ed7fb13efeeacf3 vsftpd.confd
+842c1bd972f710e4ba15e1d62a4c8ebf133dc279607b844710ad6484834b6f3a43f9f3296a53e3176df2cec129b0d96b30f0610042ee66b3263d821e1efda398 vsftpd-enable-ssl.patch
+13a3949695ad904c5389513206b9db71b6a4f5d35cd0c37484d9a8d8db1cd7a10c023b005661241a2e6b993fdd9c93eb7b3faaaf2542bf68a1520cf869abd710 vsftpd-clearenv.patch
+73023176872a60a60ea72dc370c13617b5113ff9eb8df8f56c4efc709ca9f7752aed4c7e19530927ea6fe9ccb52dbd8ec128ec898cc8177c6d62ad41c4f281f1 CVE-2015-1419.patch
+bb1bcb97df769d658e3d99a1ed1b585250a84ecfb7371adc17dff85732eee0bdc53442725c91e7563dda250d3c0b1cea1f3a5e805f3abc36aa7d27a7ba237742 wtmpx_file.patch
+d3c8943a23a3c6a36642c8f9e133637bf27a3c5dd70f05d8a2d0bdf62cb0584a42fcfd67831bc2c89286b634cce529ec83ca3253d2eb4d79e15b9f6e98a46d5b findlibs.patch
+c7d1a188abd3136d973b8f6381512152ddbbfd1d86218b46b1707b7df23ce7a0ad37b6e29c8b6ec940aa0dfe959b31cecf1dbc34f55a220e85d255e0671cb291 strip.patch"
diff --git a/community/vsftpd/CVE-2015-1419.patch b/community/vsftpd/CVE-2015-1419.patch
new file mode 100644
index 0000000000..b0662b4580
--- /dev/null
+++ b/community/vsftpd/CVE-2015-1419.patch
@@ -0,0 +1,97 @@
+Index: vsftpd-3.0.2/ls.c
+===================================================================
+--- vsftpd-3.0.2.orig/ls.c
++++ vsftpd-3.0.2/ls.c
+@@ -7,6 +7,7 @@
+ * Would you believe, code to handle directory listing.
+ */
+
++#include <stdlib.h>
+ #include "ls.h"
+ #include "access.h"
+ #include "defs.h"
+@@ -243,11 +244,42 @@ vsf_filename_passes_filter(const struct
+ struct mystr temp_str = INIT_MYSTR;
+ struct mystr brace_list_str = INIT_MYSTR;
+ struct mystr new_filter_str = INIT_MYSTR;
++ struct mystr normalize_filename_str = INIT_MYSTR;
++ const char *normname;
++ const char *path;
+ int ret = 0;
+ char last_token = 0;
+ int must_match_at_current_pos = 1;
++
+ str_copy(&filter_remain_str, p_filter_str);
+- str_copy(&name_remain_str, p_filename_str);
++
++ /* normalize filepath */
++ path = str_strdup(p_filename_str);
++ normname = realpath(path, NULL);
++ if (normname == NULL)
++ goto out;
++ str_alloc_text(&normalize_filename_str, normname);
++
++ if (!str_isempty (&filter_remain_str) && !str_isempty(&normalize_filename_str)) {
++ if (str_get_char_at(p_filter_str, 0) == '/') {
++ if (str_get_char_at(&normalize_filename_str, 0) != '/') {
++ str_getcwd (&name_remain_str);
++
++ if (str_getlen(&name_remain_str) > 1) /* cwd != root dir */
++ str_append_char (&name_remain_str, '/');
++
++ str_append_str (&name_remain_str, &normalize_filename_str);
++ }
++ else
++ str_copy (&name_remain_str, &normalize_filename_str);
++ } else {
++ if (str_get_char_at(p_filter_str, 0) != '{')
++ str_basename (&name_remain_str, &normalize_filename_str);
++ else
++ str_copy (&name_remain_str, &normalize_filename_str);
++ }
++ } else
++ str_copy(&name_remain_str, &normalize_filename_str);
+
+ while (!str_isempty(&filter_remain_str) && *iters < VSFTP_MATCHITERS_MAX)
+ {
+@@ -360,6 +392,9 @@ vsf_filename_passes_filter(const struct
+ ret = 0;
+ }
+ out:
++ free(normname);
++ free(path);
++ str_free(&normalize_filename_str);
+ str_free(&filter_remain_str);
+ str_free(&name_remain_str);
+ str_free(&temp_str);
+Index: vsftpd-3.0.2/str.c
+===================================================================
+--- vsftpd-3.0.2.orig/str.c
++++ vsftpd-3.0.2/str.c
+@@ -770,3 +770,14 @@ str_replace_unprintable(struct mystr* p_
+ }
+ }
+
++void
++str_basename (struct mystr* d_str, const struct mystr* path)
++{
++ static struct mystr tmp;
++
++ str_copy (&tmp, path);
++ str_split_char_reverse(&tmp, d_str, '/');
++
++ if (str_isempty(d_str))
++ str_copy (d_str, path);
++}
+Index: vsftpd-3.0.2/str.h
+===================================================================
+--- vsftpd-3.0.2.orig/str.h
++++ vsftpd-3.0.2/str.h
+@@ -101,6 +101,7 @@ void str_replace_unprintable(struct myst
+ int str_atoi(const struct mystr* p_str);
+ filesize_t str_a_to_filesize_t(const struct mystr* p_str);
+ unsigned int str_octal_to_uint(const struct mystr* p_str);
++void str_basename (struct mystr* d_str, const struct mystr* path);
+
+ /* PURPOSE: Extract a line of text (delimited by \n or EOF) from a string
+ * buffer, starting at character position 'p_pos'. The extracted line will
diff --git a/community/vsftpd/findlibs.patch b/community/vsftpd/findlibs.patch
new file mode 100644
index 0000000000..4806470d3a
--- /dev/null
+++ b/community/vsftpd/findlibs.patch
@@ -0,0 +1,30 @@
+diff --git a/vsf_findlibs.sh b/vsf_findlibs.sh
+index f5d485d..baf167b 100755
+--- a/vsf_findlibs.sh
++++ b/vsf_findlibs.sh
+@@ -6,8 +6,6 @@ find_func() { egrep $1 $2 >/dev/null; }
+
+ if find_func hosts_access tcpwrap.o; then
+ echo "-lwrap";
+- locate_library /lib/libnsl.so && echo "-lnsl";
+- locate_library /lib64/libnsl.so && echo "-lnsl";
+ fi
+
+ # Look for PAM (done weirdly due to distribution bugs (e.g. Debian) or the
+@@ -36,7 +34,6 @@ locate_library /lib/libdl.so && echo "-ldl";
+ locate_library /lib/libsocket.so && echo "-lsocket";
+
+ # Look for libnsl. Solaris needs this.
+-locate_library /lib/libnsl.so && echo "-lnsl";
+
+ # Look for libresolv. Solaris needs this.
+ locate_library /lib/libresolv.so && echo "-lresolv";
+@@ -69,7 +66,7 @@ locate_library /usr/shlib/librt.so && echo "-lrt";
+ locate_library /usr/lib/libsendfile.so && echo "-lsendfile";
+
+ # OpenSSL
+-if find_func SSL_library_init ssl.o; then
++if find_func SSL_CTX_new ssl.o; then
+ echo "-lssl -lcrypto";
+ fi
+
diff --git a/community/vsftpd/strip.patch b/community/vsftpd/strip.patch
new file mode 100644
index 0000000000..3983173c22
--- /dev/null
+++ b/community/vsftpd/strip.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefile b/Makefile
+index c63ed1b..a02f3c1 100644
+--- a/Makefile
++++ b/Makefile
+@@ -9,7 +9,7 @@ CFLAGS = -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 \
+ #-pedantic -Wconversion
+
+ LIBS = `./vsf_findlibs.sh`
+-LINK = -Wl,-s
++LINK =
+ LDFLAGS = -fPIE -pie -Wl,-z,relro -Wl,-z,now
+
+ OBJS = main.o utility.o prelogin.o ftpcmdio.o postlogin.o privsock.o \
diff --git a/community/vsftpd/vsftpd-clearenv.patch b/community/vsftpd/vsftpd-clearenv.patch
new file mode 100644
index 0000000000..748cc9481b
--- /dev/null
+++ b/community/vsftpd/vsftpd-clearenv.patch
@@ -0,0 +1,21 @@
+diff -ru vsftpd-3.0.2.orig/sysdeputil.c vsftpd-3.0.2/sysdeputil.c
+--- vsftpd-3.0.2.orig/sysdeputil.c 2014-06-19 15:54:37.000000000 -0300
++++ vsftpd-3.0.2/sysdeputil.c 2014-06-19 16:31:14.267550219 -0300
+@@ -37,6 +37,7 @@
+
+ #include <sys/prctl.h>
+ #include <signal.h>
++#include <stdlib.h>
+
+ /* Configuration.. here are the possibilities */
+ #undef VSF_SYSDEP_HAVE_CAPABILITIES
+@@ -931,7 +932,8 @@
+ p_env++;
+ }
+ /* Oops :-) */
+- environ = 0;
++ /* environ = 0; */
++ clearenv();
+ s_p_proctitle = (char*) argv[0];
+ vsf_sysutil_memclr(s_p_proctitle, s_proctitle_space);
+ }
diff --git a/community/vsftpd/vsftpd-enable-ssl.patch b/community/vsftpd/vsftpd-enable-ssl.patch
new file mode 100644
index 0000000000..93469e6fdc
--- /dev/null
+++ b/community/vsftpd/vsftpd-enable-ssl.patch
@@ -0,0 +1,11 @@
+--- a/builddefs.h.orig Sun Mar 1 15:18:09 2009
++++ b/builddefs.h Sun Mar 1 15:15:24 2009
+@@ -3,7 +3,7 @@
+
+ #undef VSF_BUILD_TCPWRAPPERS
+ #define VSF_BUILD_PAM
+-#undef VSF_BUILD_SSL
++#define VSF_BUILD_SSL
+
+ #endif /* VSF_BUILDDEFS_H */
+
diff --git a/community/vsftpd/vsftpd.confd b/community/vsftpd/vsftpd.confd
new file mode 100644
index 0000000000..f14602696d
--- /dev/null
+++ b/community/vsftpd/vsftpd.confd
@@ -0,0 +1,9 @@
+# Sample conf.d file for alpine linux
+
+#
+# Specify daemon $OPTS here.
+#
+
+OPTS="/etc/vsftpd/vsftpd.conf"
+USER="vsftp"
+GROUP="vsftp"
diff --git a/community/vsftpd/vsftpd.initd b/community/vsftpd/vsftpd.initd
new file mode 100644
index 0000000000..b040d6305c
--- /dev/null
+++ b/community/vsftpd/vsftpd.initd
@@ -0,0 +1,26 @@
+#!/sbin/openrc-run
+
+NAME=vsftpd
+DAEMON=/usr/sbin/$NAME
+
+depend() {
+ need net
+ after firewall
+}
+
+start() {
+ ebegin "Starting ${SVCNAME}"
+ start-stop-daemon --start --quiet --background \
+ --make-pidfile --pidfile /var/run/${SVCNAME}.pid \
+ --exec ${DAEMON} -- ${OPTS}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping ${SVCNAME}"
+ start-stop-daemon --stop --quiet \
+ --exec ${DAEMON} \
+ --pidfile /var/run/${SVCNAME}.pid \
+ eend $?
+}
+
diff --git a/community/vsftpd/vsftpd.pre-install b/community/vsftpd/vsftpd.pre-install
new file mode 100755
index 0000000000..c6e45f1b71
--- /dev/null
+++ b/community/vsftpd/vsftpd.pre-install
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+addgroup -S ftp 2>/dev/null
+addgroup vsftp ftp 2>/dev/null
+adduser -S -h /var/lib/ftp -s /sbin/nologin -G ftp -g vsftp vsftp 2>/dev/null
+
+exit 0
diff --git a/community/vsftpd/wtmpx_file.patch b/community/vsftpd/wtmpx_file.patch
new file mode 100644
index 0000000000..6ca8416933
--- /dev/null
+++ b/community/vsftpd/wtmpx_file.patch
@@ -0,0 +1,35 @@
+diff -rupN a/seccompsandbox.c b/seccompsandbox.c
+--- a/seccompsandbox.c 2012-09-18 08:52:30.000000000 +0200
++++ b/seccompsandbox.c 2014-02-05 20:22:15.919607188 +0100
+@@ -21,7 +21,7 @@
+
+ #include <netinet/in.h>
+
+-#include <sys/fcntl.h>
++#include <fcntl.h>
+ #include <sys/mman.h>
+ #include <sys/prctl.h>
+ #include <sys/socket.h>
+diff -rupN a/sysdeputil.c b/sysdeputil.c
+--- a/sysdeputil.c 2012-09-16 06:18:04.000000000 +0200
++++ b/sysdeputil.c 2014-02-05 20:20:07.212933389 +0100
+@@ -1216,7 +1216,9 @@ vsf_insert_uwtmp(const struct mystr* p_u
+ setutxent();
+ (void) pututxline(&s_utent);
+ endutxent();
++#if defined(WTMPX_FILE)
+ updwtmpx(WTMPX_FILE, &s_utent);
++#endif
+ }
+
+ void
+@@ -1235,7 +1237,9 @@ vsf_remove_uwtmp(void)
+ (void) pututxline(&s_utent);
+ endutxent();
+ s_utent.ut_tv.tv_sec = vsf_sysutil_get_time_sec();
++#if defined(WTMPX_FILE)
+ updwtmpx(WTMPX_FILE, &s_utent);
++#endif
+ }
+
+ #endif /* !VSF_SYSDEP_HAVE_UTMPX */
diff --git a/community/xmlstarlet/APKBUILD b/community/xmlstarlet/APKBUILD
new file mode 100644
index 0000000000..e3fed88252
--- /dev/null
+++ b/community/xmlstarlet/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+pkgname=xmlstarlet
+pkgver=1.6.1
+pkgrel=0
+pkgdesc="A set of tools to transform, query, validate, and edit XML documents"
+url="http://xmlstar.sourceforge.net"
+arch="all"
+license="MIT"
+makedepends="ghostscript libxml2-dev libxslt-dev"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://sourceforge.net/projects/xmlstar/files/xmlstarlet/$pkgver/xmlstarlet-$pkgver.tar.gz/download"
+
+build() {
+ LIBXSLT_PREFIX=/usr \
+ LIBXML_PREFIX=/usr \
+ ./configure \
+ --prefix=/usr \
+ --enable-build-docs
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ ln -s xml $pkgdir/usr/bin/xmlstarlet
+ install -Dm0644 Copyright $pkgdir/usr/share/licenses/$pkgname/COPYING
+}
+
+sha512sums="4228df812caec7059d7a76986c4d9a4262bd861cc53dca05f341ae6c062be05f1c39fc637918ab00f60f40587c6c556e3c9bfaf8a18b149e3c321a92214dbe8b xmlstarlet-1.6.1.tar.gz"