aboutsummaryrefslogtreecommitdiffstats
path: root/community
diff options
context:
space:
mode:
Diffstat (limited to 'community')
-rw-r--r--community/avr-libc/APKBUILD37
-rw-r--r--community/avrdude/APKBUILD32
-rw-r--r--community/binutils-avr/APKBUILD54
-rw-r--r--community/binutils-avr/binutils-ld-fix-static-linking.patch46
-rw-r--r--community/binutils-avr/hash-style-gnu.patch31
-rw-r--r--community/crda/01-Makefile-dont-run-ldconfig.patch10
-rw-r--r--community/crda/APKBUILD32
-rw-r--r--community/dunst/APKBUILD27
-rw-r--r--community/gcc-avr/APKBUILD68
-rw-r--r--community/irssi-xmpp/APKBUILD31
-rw-r--r--community/irssi-xmpp/musl-fixes.patch985
-rw-r--r--community/libftdi1/01-CMakeLists-no-lib-suffix.patch11
-rw-r--r--community/libftdi1/APKBUILD38
-rw-r--r--community/munin/APKBUILD77
-rw-r--r--community/munin/munin-config.patch131
-rw-r--r--community/munin/munin-node.initd22
-rw-r--r--community/munin/munin-node.logrotate8
-rw-r--r--community/munin/munin-node.pre-install10
-rw-r--r--community/munin/munin.cron.d9
-rw-r--r--community/munin/munin.logrotate12
-rw-r--r--community/notmuch/APKBUILD64
-rw-r--r--community/stow/APKBUILD34
-rw-r--r--community/wireless-regdb/APKBUILD26
-rw-r--r--community/wmname/APKBUILD26
24 files changed, 1821 insertions, 0 deletions
diff --git a/community/avr-libc/APKBUILD b/community/avr-libc/APKBUILD
new file mode 100644
index 0000000000..40a4617e96
--- /dev/null
+++ b/community/avr-libc/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Stefan Wagner <stw@bit-strickerei.de>
+# Maintainer: Stefan Wagner <stw@bit-strickerei.de>
+pkgname=avr-libc
+pkgver=2.0.0
+pkgrel=0
+pkgdesc="The C runtime library for the AVR family of microcontrollers"
+url="http://savannah.nongnu.org/projects/avr-libc/"
+depends="gcc-avr"
+makedepends="autoconf automake bash"
+arch="all"
+license="BSD"
+subpackages="$pkgname-doc"
+source="http://download.savannah.gnu.org/releases/$pkgname/$pkgname-$pkgver.tar.bz2"
+
+builddir="$srcdir/$pkgname-$pkgver"
+build() {
+ cd "$builddir"
+ ./bootstrap || return 1
+ CC=avr-gcc ./configure \
+ --build="$(./config.guess)" \
+ --host=avr \
+ --prefix=/usr || return 1
+ make
+}
+
+package() {
+ cd "$builddir"
+ make install DESTDIR="$pkgdir" || return 1
+ if [ -d "$pkgdir"/usr/lib64 ]; then
+ mv "$pkgdir"/usr/lib64/* "$pkgdir"/usr/lib/
+ rmdir "$pkgdir"/usr/lib64
+ fi
+}
+
+md5sums="2360981cd5d94e1d7a70dfc6983bdf15 avr-libc-2.0.0.tar.bz2"
+sha256sums="b2dd7fd2eefd8d8646ef6a325f6f0665537e2f604ed02828ced748d49dc85b97 avr-libc-2.0.0.tar.bz2"
+sha512sums="fc8d062043d633350dbe05978935dcb8028257a4f1013f246af9658aef0671def19ac11577d1ee9302df68df1b8cf030b22441d96852e185db212263aacabea6 avr-libc-2.0.0.tar.bz2"
diff --git a/community/avrdude/APKBUILD b/community/avrdude/APKBUILD
new file mode 100644
index 0000000000..e77b1e920f
--- /dev/null
+++ b/community/avrdude/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Stefan Wagner <stw@bit-strickerei.de>
+# Maintainer: Stefan Wagner <stw@bit-strickerei.de>
+pkgname=avrdude
+pkgver=6.3
+pkgrel=0
+pkgdesc="Download/upload/manipulate the ROM and EEPROM contents of AVR microcontrollers"
+url="http://www.nongnu.org/avrdude/"
+arch="all"
+license="GPL"
+makedepends="linux-headers bash flex byacc libftdi1-dev libusb-compat-dev libelf-dev"
+subpackages="$pkgname-dev $pkgname-doc"
+source="http://download.savannah.gnu.org/releases/avrdude/${pkgname}-${pkgver}.tar.gz"
+
+builddir="$srcdir/${pkgname}-${pkgver}"
+build() {
+ cd "$builddir"
+ ./configure \
+ --mandir=/usr/share/man \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --enable-linuxgpio || return 1
+ make
+}
+
+package() {
+ cd "$builddir"
+ make DESTDIR="$pkgdir" install
+}
+
+md5sums="58bb42049122cf80fe4f4d0ce36d92ee avrdude-6.3.tar.gz"
+sha256sums="0f9f731b6394ca7795b88359689a7fa1fba818c6e1d962513eb28da670e0a196 avrdude-6.3.tar.gz"
+sha512sums="b671008388d6a552e71066fec46429bc7f6639e8eac41113bcbba5a56212b78be31fcf04956b31e11c6b14888b0f6e825f7458395b9ff4fc28406074c7ded2b2 avrdude-6.3.tar.gz"
diff --git a/community/binutils-avr/APKBUILD b/community/binutils-avr/APKBUILD
new file mode 100644
index 0000000000..8688240f27
--- /dev/null
+++ b/community/binutils-avr/APKBUILD
@@ -0,0 +1,54 @@
+# Contributor: Stefan Wagner <stw@bit-strickerei.de>
+# Maintainer: Stefan Wagner <stw@bit-strickerei.de>
+pkgname=binutils-avr
+pkgver=2.25.1
+pkgrel=0
+pkgdesc="Tools necessary to build programs for AVR targets"
+url="http://www.gnu.org/software/binutils/"
+makedepends="gettext libtool autoconf automake"
+arch="all"
+license="GPL2 GPL3+ LGPL2 BSD"
+subpackages="$pkgname-doc"
+source="http://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.bz2
+ binutils-ld-fix-static-linking.patch
+ hash-style-gnu.patch"
+
+builddir="$srcdir/binutils-$pkgver"
+_workingdir="$srcdir/binutils-build"
+
+build() {
+ mkdir "$_workingdir" || return 1
+ cd "$_workingdir"
+ "$builddir"/configure \
+ --build="$CBUILD" \
+ --target=avr \
+ --with-lib-path=/usr/lib \
+ --prefix=/usr \
+ --enable-ld=default \
+ --enable-gold=yes \
+ --enable-plugins \
+ --disable-multilib \
+ --disable-werror \
+ --disable-nls \
+ || return 1
+ make -j1 tooldir=/usr
+}
+
+package() {
+ cd "$_workingdir"
+ make tooldir=/usr install DESTDIR="$pkgdir" || return 1
+ rm -rf "$pkgdir"/usr/share/info
+ for bin in ar as nm objcopy objdump ranlib strip readelf; do
+ rm -f "$pkgdir"/usr/bin/"$bin"
+ done
+}
+
+md5sums="ac493a78de4fee895961d025b7905be4 binutils-2.25.1.tar.bz2
+c9f308494b87c243f121a56d58f2da87 binutils-ld-fix-static-linking.patch
+686071a371b6d7aaad86c3a5c09ba6d3 hash-style-gnu.patch"
+sha256sums="b5b14added7d78a8d1ca70b5cb75fef57ce2197264f4f5835326b0df22ac9f22 binutils-2.25.1.tar.bz2
+d5c5581d0ba04ef2e3690f6fb57435bf7ce343f2376fe972a2a693c5429eec9c binutils-ld-fix-static-linking.patch
+d30633153c41f0a59956f4d49ad12c0b53dabfd9f48175d0db0a1a5f2263cdfc hash-style-gnu.patch"
+sha512sums="0b36dda0e6d32cd25613c0e64b56b28312515c54d6a159efd3db9a86717f114ab0a0a1f69d08975084d55713ebaeab64e4085c9b3d1c3fa86712869f80eb954d binutils-2.25.1.tar.bz2
+ecee33b0e435aa704af1c334e560f201638ff79e199aa11ed78a72f7c9b46f85fbb227af5748e735fd681d1965fcc42ac81b0c8824e540430ce0c706c81e8b49 binutils-ld-fix-static-linking.patch
+24e853bf4b58621a77921087e599da2ace47ba3079e2d50fb5d08ae399be5f060c5fdd7f65257bcc0526aebc66e68b98aafd45d714c035da8ea2bdc3d8d4e375 hash-style-gnu.patch"
diff --git a/community/binutils-avr/binutils-ld-fix-static-linking.patch b/community/binutils-avr/binutils-ld-fix-static-linking.patch
new file mode 100644
index 0000000000..bc5d762656
--- /dev/null
+++ b/community/binutils-avr/binutils-ld-fix-static-linking.patch
@@ -0,0 +1,46 @@
+This fixes static linking for our hardened toolchain
+diff --git a/ld/scripttempl/elf.sc b/ld/scripttempl/elf.sc
+index e8126cb..9532bfb 100644
+--- a/ld/scripttempl/elf.sc
++++ b/ld/scripttempl/elf.sc
+@@ -235,8 +235,8 @@ test "${LARGE_SECTIONS}" = "yes" && LARGE_SECTIONS="
+ if test "${ENABLE_INITFINI_ARRAY}" = "yes"; then
+ SORT_INIT_ARRAY="KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))"
+ SORT_FINI_ARRAY="KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*)))"
+- CTORS_IN_INIT_ARRAY="EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .ctors"
+- DTORS_IN_FINI_ARRAY="EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .dtors"
++ CTORS_IN_INIT_ARRAY="EXCLUDE_FILE (*crtbegin*.o *crtend*.o $OTHER_EXCLUDE_FILES) .ctors"
++ DTORS_IN_FINI_ARRAY="EXCLUDE_FILE (*crtbegin*.o *crtend*.o $OTHER_EXCLUDE_FILES) .dtors"
+ else
+ SORT_INIT_ARRAY="KEEP (*(SORT(.init_array.*)))"
+ SORT_FINI_ARRAY="KEEP (*(SORT(.fini_array.*)))"
+@@ -270,15 +270,14 @@ CTOR=".ctors ${CONSTRUCTING-0} :
+ doesn't matter which directory crtbegin.o
+ is in. */
+
+- KEEP (*crtbegin.o(.ctors))
+- KEEP (*crtbegin?.o(.ctors))
++ KEEP (*crtbegin*.o(.ctors))
+
+ /* We don't want to include the .ctor section from
+ the crtend.o file until after the sorted ctors.
+ The .ctor section from the crtend file contains the
+ end of ctors marker and it must be last */
+
+- KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .ctors))
++ KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .ctors))
+ KEEP (*(SORT(.ctors.*)))
+ KEEP (*(.ctors))
+ ${CONSTRUCTING+${CTOR_END}}
+@@ -286,9 +285,8 @@ CTOR=".ctors ${CONSTRUCTING-0} :
+ DTOR=".dtors ${CONSTRUCTING-0} :
+ {
+ ${CONSTRUCTING+${DTOR_START}}
+- KEEP (*crtbegin.o(.dtors))
+- KEEP (*crtbegin?.o(.dtors))
+- KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .dtors))
++ KEEP (*crtbegin*.o(.dtors))
++ KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .dtors))
+ KEEP (*(SORT(.dtors.*)))
+ KEEP (*(.dtors))
+ ${CONSTRUCTING+${DTOR_END}}
diff --git a/community/binutils-avr/hash-style-gnu.patch b/community/binutils-avr/hash-style-gnu.patch
new file mode 100644
index 0000000000..2e6c01972e
--- /dev/null
+++ b/community/binutils-avr/hash-style-gnu.patch
@@ -0,0 +1,31 @@
+# DP: Default to --hash-style=gnu in ld.bfd and ld.gold.
+
+--- a/ld/ldmain.c
++++ b/ld/ldmain.c
+@@ -287,6 +288,15 @@
+ emulation = get_emulation (argc, argv);
+ ldemul_choose_mode (emulation);
+ default_target = ldemul_choose_target (argc, argv);
++
++ /* Default to --hash-style=gnu */
++ if (strcmp (default_target, "elf32-tradbigmips") != 0
++ && strcmp (default_target, "elf32-tradlittlemips") != 0)
++ {
++ link_info.emit_gnu_hash = TRUE;
++ link_info.emit_hash = FALSE;
++ }
++
+ config.maxpagesize = bfd_emul_get_maxpagesize (default_target);
+ config.commonpagesize = bfd_emul_get_commonpagesize (default_target);
+ lang_init ();
+--- a/gold/options.h
++++ b/gold/options.h
+@@ -794,7 +794,7 @@
+ N_("Min fraction of empty buckets in dynamic hash"),
+ N_("FRACTION"));
+
+- DEFINE_enum(hash_style, options::TWO_DASHES, '\0', "sysv",
++ DEFINE_enum(hash_style, options::TWO_DASHES, '\0', "gnu",
+ N_("Dynamic hash style"), N_("[sysv,gnu,both]"),
+ {"sysv", "gnu", "both"});
+
diff --git a/community/crda/01-Makefile-dont-run-ldconfig.patch b/community/crda/01-Makefile-dont-run-ldconfig.patch
new file mode 100644
index 0000000000..d1e7477b68
--- /dev/null
+++ b/community/crda/01-Makefile-dont-run-ldconfig.patch
@@ -0,0 +1,10 @@
+--- a/Makefile 2014-12-11 00:51:29.000000000 +0100
++++ b/Makefile 2016-04-23 03:03:33.785974265 +0200
+@@ -127,7 +127,6 @@
+ $(NQ) ' INSTALL libreg'
+ $(Q)mkdir -p $(DESTDIR)/$(LIBDIR)
+ $(Q)cp $(LIBREG) $(DESTDIR)/$(LIBDIR)/
+- $(Q)ldconfig
+
+ %.o: %.c regdb.h $(LIBREG)
+ $(NQ) ' CC ' $@
diff --git a/community/crda/APKBUILD b/community/crda/APKBUILD
new file mode 100644
index 0000000000..bc5d020569
--- /dev/null
+++ b/community/crda/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Stefan Wagner <stw@bit-strickerei.de>
+# Maintainer: Stefan Wagner <stw@bit-strickerei.de>
+pkgname=crda
+pkgver=3.18
+pkgrel=0
+pkgdesc="Linux Central Regulatory Domain Agent"
+url="http://www.linuxwireless.org/en/developers/Regulatory/CRDA/"
+arch="all"
+license="GPL"
+depends="wireless-regdb"
+makedepends="linux-headers libnl-dev py-m2crypto libgcrypt-dev"
+subpackages="$pkgname-dev $pkgname-doc"
+source="http://kernel.org/pub/software/network/crda/crda-3.18.tar.xz
+ 01-Makefile-dont-run-ldconfig.patch"
+
+builddir="$srcdir/$pkgname-$pkgver"
+build() {
+ cd "$builddir"
+ make
+}
+
+package() {
+ cd "$builddir"
+ make DESTDIR="$pkgdir" install
+}
+
+md5sums="0431fef3067bf503dfb464069f06163a crda-3.18.tar.xz
+412cbf7cc897359b78f468f5b71fb9a3 01-Makefile-dont-run-ldconfig.patch"
+sha256sums="43fcb9679f8b75ed87ad10944a506292def13e4afb194afa7aa921b01e8ecdbf crda-3.18.tar.xz
+93d1c0ca0c1ef72ffc830033dbce8206695f721615b95b54b1a4afda1457bd7a 01-Makefile-dont-run-ldconfig.patch"
+sha512sums="57ae6309159f396448f052c127f401c2f63d47f4193e87dca231c4b7bbbd7e69b5e5666f356fc76dfc8a6ae58ffa55c3794428d6eb34d9937df77c4276036588 crda-3.18.tar.xz
+c642976b193722c0050c13331a010b466cea8391bb5f945832604a556e274ea1a4b289c78f74ff5d502fae800f18219db3d10ff10c0528eefc5e9443a963640f 01-Makefile-dont-run-ldconfig.patch"
diff --git a/community/dunst/APKBUILD b/community/dunst/APKBUILD
new file mode 100644
index 0000000000..9b20d48b23
--- /dev/null
+++ b/community/dunst/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Stefan Wagner <stw@bit-strickerei.de>
+# Maintainer: Stefan Wagner <stw@bit-strickerei.de>
+pkgname=dunst
+pkgver=1.1.0
+pkgrel=0
+pkgdesc="A customizable and lightweight notification-daemon"
+url="http://knopwob.org/dunst/"
+arch="all"
+license="BSD"
+makedepends="libxscrnsaver-dev libxdg-basedir-dev libxft-dev libxinerama-dev dbus-dev freetype-dev glib-dev pango-dev cairo-dev "
+subpackages="$pkgname-doc"
+source="http://knopwob.org/public/dunst-release/dunst-1.1.0.tar.bz2"
+
+builddir="$srcdir/$pkgname-$pkgver"
+build() {
+ cd "$builddir"
+ make
+}
+
+package() {
+ cd "$builddir"
+ make DESTDIR="$pkgdir" PREFIX=/usr install
+}
+
+md5sums="7c37fb5306012fd658839908479dbbed dunst-1.1.0.tar.bz2"
+sha256sums="c72bf167eaab4e44a98ec87101b023efee0aa8916df56630b99a5bc53f8d7070 dunst-1.1.0.tar.bz2"
+sha512sums="ba01a6b18da5199b3356342f5c22592f93f447389267810bbfc35decf1a67f89650d445d3c1dd6f3cc76a4f86f7165adc777b669444627e42d3e671d4f04a04b dunst-1.1.0.tar.bz2"
diff --git a/community/gcc-avr/APKBUILD b/community/gcc-avr/APKBUILD
new file mode 100644
index 0000000000..8f9cd2f03d
--- /dev/null
+++ b/community/gcc-avr/APKBUILD
@@ -0,0 +1,68 @@
+# Contributor: Stefan Wagner <stw@bit-strickerei.de>
+# Maintainer: Stefan Wagner <stw@bit-strickerei.de>
+pkgname=gcc-avr
+pkgver=5.3.0
+pkgrel=0
+pkgdesc="The GNU Compiler Collection for AVR targets"
+url="http://gcc.gnu.org"
+depends="binutils-avr"
+makedepends="bash linux-headers gmp-dev mpfr-dev mpc1-dev zlib-dev"
+arch="all"
+license="GPL LGPL"
+subpackages="$pkgname-doc"
+_islver=0.15
+source="ftp://gcc.gnu.org/pub/gcc/releases/gcc-$pkgver/gcc-$pkgver.tar.bz2
+ http://isl.gforge.inria.fr/isl-${_islver}.tar.bz2"
+
+builddir="$srcdir/gcc-$pkgver"
+_workingdir="$builddir/build"
+
+build() {
+ mkdir "$_workingdir" || return 1
+ cd "$_workingdir"
+
+ # link isl for in-tree build
+ ln -s "$srcdir"/isl-"$_islver" "$builddir"/isl
+
+ export CFLAGS_FOR_TARGET='-pipe'
+ export CXXFLAGS_FOR_TARGET='-pipe'
+
+ "$builddir"/configure \
+ --build="$CBUILD" \
+ --target=avr \
+ --prefix=/usr \
+ --enable-languages=c,c++ \
+ --enable-ld=default \
+ --enable-__cxa_atexit \
+ --disable-install-libiberty \
+ --disable-libssp \
+ --disable-libstdcxx-pch \
+ --disable-libunwind-exceptions \
+ --disable-linker-build-id \
+ --disable-nls \
+ --disable-werror \
+ --libdir=/usr/lib \
+ --libexecdir=/usr/lib \
+ --with-as=/usr/bin/avr-as \
+ --with-gnu-as \
+ --with-gnu-ld \
+ --with-ld=/usr/bin/avr-ld \
+ --with-system-zlib \
+ --with-isl || return 1
+ make
+}
+
+package() {
+ cd "$_workingdir"
+ make install DESTDIR="$pkgdir" || return 1
+ rm -rf "$pkgdir"/usr/share/man/man7
+ rm -f "$pkgdir"/usr/lib/libcc1.*
+ find "$pkgdir"/usr/lib -type f -name "*.a" -exec /usr/bin/avr-strip --strip-debug '{}' \;
+}
+
+md5sums="c9616fd448f980259c31de613e575719 gcc-5.3.0.tar.bz2
+8428efbbc6f6e2810ce5c1ba73ecf98c isl-0.15.tar.bz2"
+sha256sums="b84f5592e9218b73dbae612b5253035a7b34a9a1f7688d2e1bfaaf7267d5c4db gcc-5.3.0.tar.bz2
+8ceebbf4d9a81afa2b4449113cee4b7cb14a687d7a549a963deb5e2a41458b6b isl-0.15.tar.bz2"
+sha512sums="d619847383405fd389f5a2d7225f97fedb01f81478dbb8339047ccba7561a5c20045ab500a8744bffd19ea51892ce09fc37f862f2cfcb42de0f0f8cd8f8da37a gcc-5.3.0.tar.bz2
+1e27b7798f7428abcb5e9b2e3fbe3842fede54c03bbd7bd3cf83703e1e4cca7d95c51326ab90253fe55b38c002183e8e78dfbb4d2cf20b0aabe02443c8e7d50f isl-0.15.tar.bz2"
diff --git a/community/irssi-xmpp/APKBUILD b/community/irssi-xmpp/APKBUILD
new file mode 100644
index 0000000000..3eb194d149
--- /dev/null
+++ b/community/irssi-xmpp/APKBUILD
@@ -0,0 +1,31 @@
+# Contributor: Stefan Wagner <stw@bit-strickerei.de>
+# Maintainer: Stefan Wagner <stw@bit-strickerei.de>
+pkgname=irssi-xmpp
+pkgver=0.53
+pkgrel=0
+pkgdesc="An irssi plugin to connect to the Jabber network"
+url="https://cybione.org/~irssi-xmpp/"
+arch="all"
+license="GPL2"
+makedepends="irssi-dev loudmouth-dev"
+subpackages="$pkgname-doc"
+source="https://cybione.org/~irssi-xmpp/files/$pkgname-$pkgver.tar.gz
+ musl-fixes.patch"
+
+builddir="$srcdir/$pkgname-$pkgver"
+build() {
+ cd "$builddir"
+ make PREFIX=/usr
+}
+
+package() {
+ cd "$builddir"
+ make PREFIX=/usr DESTDIR="$pkgdir" install
+}
+
+md5sums="8c9906e4efbd6f3c8bd8420f0ac8fd91 irssi-xmpp-0.53.tar.gz
+f44711684e3c492b862fbe7b209b93da musl-fixes.patch"
+sha256sums="6487362d23af7b9c185d8ac74e6b651e697cacc01de8bb9c750db1752140536f irssi-xmpp-0.53.tar.gz
+cea5aacb88b49b40a919a8659e7dbc76bbc9100019bd55be7af3ba6c8e8e0be7 musl-fixes.patch"
+sha512sums="09969db01b77e95248a080599d480b8271dcbe6d42bc90e5e2bb304a2d1b9695b70090ef0a6b7342bf6e17326e0f7a50c11c85e02e6ed742ec55820ffad655be irssi-xmpp-0.53.tar.gz
+d75fb0687ab9af9a87409e61605f2bb443729be06fc4d7f9e900783c7b9375efc43acec128c91bdeb2c19983c5bedac567a30042ff28f53e6817e976932de0ef musl-fixes.patch"
diff --git a/community/irssi-xmpp/musl-fixes.patch b/community/irssi-xmpp/musl-fixes.patch
new file mode 100644
index 0000000000..e51c4efbb3
--- /dev/null
+++ b/community/irssi-xmpp/musl-fixes.patch
@@ -0,0 +1,985 @@
+Only in b/src/core: libxmpp_core.so
+diff -rBu a/src/core/loudmouth-tools.h b/src/core/loudmouth-tools.h
+--- a/src/core/loudmouth-tools.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/core/loudmouth-tools.h 2016-06-07 14:54:04.037983586 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __LOUDMOUTH_TOOLS_H
+ #define __LOUDMOUTH_TOOLS_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ LmMessageNode *lm_find_node(LmMessageNode *, const char *,
+ const char *, const char *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/core: loudmouth-tools.o
+diff -rBu a/src/core/protocol.h b/src/core/protocol.h
+--- a/src/core/protocol.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/core/protocol.h 2016-06-07 14:57:43.995854903 +0200
+@@ -3,9 +3,13 @@
+
+ #include "xmpp-servers.h"
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void protocol_init(void);
+ void protocol_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/core: protocol.o
+diff -rBu a/src/core/rosters-tools.h b/src/core/rosters-tools.h
+--- a/src/core/rosters-tools.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/core/rosters-tools.h 2016-06-07 14:56:35.477774630 +0200
+@@ -3,7 +3,9 @@
+
+ #include "rosters.h"
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ XMPP_ROSTER_USER_REC *rosters_find_user(GSList *, const char *,
+ XMPP_ROSTER_GROUP_REC **,
+ XMPP_ROSTER_RESOURCE_REC **);
+@@ -12,6 +14,8 @@
+ char *rosters_resolve_name(XMPP_SERVER_REC *, const char *);
+ char *rosters_get_name(XMPP_SERVER_REC *, const char *);
+ int xmpp_get_show(const char *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/core: rosters-tools.o
+diff -rBu a/src/core/rosters.h b/src/core/rosters.h
+--- a/src/core/rosters.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/core/rosters.h 2016-06-07 14:56:12.660637219 +0200
+@@ -45,9 +45,13 @@
+ GSList *users;
+ } XMPP_ROSTER_GROUP_REC;
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void rosters_init(void);
+ void rosters_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/core: rosters.o
+diff -rBu a/src/core/stanzas.h b/src/core/stanzas.h
+--- a/src/core/stanzas.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/core/stanzas.h 2016-06-07 14:57:07.251763497 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __STANZAS_H
+ #define __STANZAS_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void stanzas_init(void);
+ void stanzas_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/core: stanzas.o
+diff -rBu a/src/core/tools.h b/src/core/tools.h
+--- a/src/core/tools.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/core/tools.h 2016-06-07 14:58:25.420042865 +0200
+@@ -1,7 +1,9 @@
+ #ifndef __TOOLS_H
+ #define __TOOLS_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ char *xmpp_recode_out(const char *);
+ char *xmpp_recode_in(const char *);
+
+@@ -15,6 +17,8 @@
+ gboolean xmpp_priority_out_of_bound(const int);
+ gboolean xmpp_presence_changed(const int, const int, const char *,
+ const char *, const int, const int);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/core: tools.o
+diff -rBu a/src/core/xep/chatstates.h b/src/core/xep/chatstates.h
+--- a/src/core/xep/chatstates.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/core/xep/chatstates.h 2016-06-07 15:02:41.755331358 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __CHATSTATES_H
+ #define __CHATSTATES_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void chatstates_init(void);
+ void chatstates_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/core/xep: chatstates.o
+diff -rBu a/src/core/xep/composing.h b/src/core/xep/composing.h
+--- a/src/core/xep/composing.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/core/xep/composing.h 2016-06-07 15:03:01.002395114 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __COMPOSING_H
+ #define __COMPOSING_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void composing_init(void);
+ void composing_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/core/xep: composing.o
+diff -rBu a/src/core/xep/datetime.h b/src/core/xep/datetime.h
+--- a/src/core/xep/datetime.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/core/xep/datetime.h 2016-06-07 15:00:12.732256841 +0200
+@@ -1,8 +1,12 @@
+ #ifndef __DATETIME_H
+ #define __DATETIME_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ time_t xep82_datetime(const char *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/core/xep: datetime.o
+diff -rBu a/src/core/xep/delay.h b/src/core/xep/delay.h
+--- a/src/core/xep/delay.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/core/xep/delay.h 2016-06-07 15:03:17.059393056 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __DELAY_H
+ #define __DELAY_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void delay_init(void);
+ void delay_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/core/xep: delay.o
+diff -rBu a/src/core/xep/disco.h b/src/core/xep/disco.h
+--- a/src/core/xep/disco.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/core/xep/disco.h 2016-06-07 14:59:18.157797573 +0200
+@@ -1,14 +1,18 @@
+ #ifndef __DISCO_H
+ #define __DISCO_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void disco_add_feature(char *);
+ gboolean disco_have_feature(GSList *, const char *);
+ void disco_request(XMPP_SERVER_REC *, const char *);
+
+ void disco_init(void);
+ void disco_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #define XMLNS "xmlns"
+
+Only in b/src/core/xep: disco.o
+diff -rBu a/src/core/xep/muc-commands.h b/src/core/xep/muc-commands.h
+--- a/src/core/xep/muc-commands.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/core/xep/muc-commands.h 2016-06-07 15:01:19.090292550 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __MUC_COMMANDS_H
+ #define __MUC_COMMANDS_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void muc_commands_init(void);
+ void muc_commands_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/core/xep: muc-commands.o
+diff -rBu a/src/core/xep/muc-events.h b/src/core/xep/muc-events.h
+--- a/src/core/xep/muc-events.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/core/xep/muc-events.h 2016-06-07 15:01:42.187435738 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __MUC_EVENTS_H
+ #define __MUC_EVENTS_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void muc_events_init(void);
+ void muc_events_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/core/xep: muc-events.o
+diff -rBu a/src/core/xep/muc-nicklist.h b/src/core/xep/muc-nicklist.h
+--- a/src/core/xep/muc-nicklist.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/core/xep/muc-nicklist.h 2016-06-07 15:01:00.156568592 +0200
+@@ -41,7 +41,9 @@
+ };
+ extern const char *xmpp_nicklist_role[];
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ XMPP_NICK_REC *xmpp_nicklist_insert(MUC_REC *, const char *, const char *);
+ void xmpp_nicklist_rename(MUC_REC *, XMPP_NICK_REC *, const char *,
+ const char *);
+@@ -54,6 +56,8 @@
+
+ void muc_nicklist_init(void);
+ void muc_nicklist_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/core/xep: muc-nicklist.o
+diff -rBu a/src/core/xep/muc-reconnect.h b/src/core/xep/muc-reconnect.h
+--- a/src/core/xep/muc-reconnect.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/core/xep/muc-reconnect.h 2016-06-07 15:02:20.434891494 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __MUC_RECONNECT_H
+ #define __MUC_RECONNECT_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void muc_reconnect_init(void);
+ void muc_reconnect_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/core/xep: muc-reconnect.o
+diff -rBu a/src/core/xep/muc.h b/src/core/xep/muc.h
+--- a/src/core/xep/muc.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/core/xep/muc.h 2016-06-07 15:00:42.002860727 +0200
+@@ -49,7 +49,9 @@
+ MUC_ERROR_MAXIMUM_USERS_REACHED = 503,
+ };
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void muc_join(XMPP_SERVER_REC *, const char *, gboolean);
+ void muc_part(MUC_REC *, const char *);
+ void muc_nick(MUC_REC *, const char *);
+@@ -57,6 +59,8 @@
+
+ void muc_init(void);
+ void muc_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/core/xep: muc.o
+diff -rBu a/src/core/xep/oob.h b/src/core/xep/oob.h
+--- a/src/core/xep/oob.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/core/xep/oob.h 2016-06-07 15:03:31.993034487 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __OOB_H
+ #define __OOB_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void oob_init(void);
+ void oob_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/core/xep: oob.o
+diff -rBu a/src/core/xep/ping.h b/src/core/xep/ping.h
+--- a/src/core/xep/ping.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/core/xep/ping.h 2016-06-07 15:04:08.993797855 +0200
+@@ -1,11 +1,15 @@
+ #ifndef __PING_H
+ #define __PING_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void xmpp_ping_send(XMPP_SERVER_REC *, const char *);
+
+ void ping_init(void);
+ void ping_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/core/xep: ping.o
+diff -rBu a/src/core/xep/registration.h b/src/core/xep/registration.h
+--- a/src/core/xep/registration.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/core/xep/registration.h 2016-06-07 15:02:03.267870651 +0200
+@@ -14,9 +14,13 @@
+ REGISTRATION_ERROR_UNKNOWN = -1,
+ };
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void registration_init(void);
+ void registration_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/core/xep: registration.o
+diff -rBu a/src/core/xep/tool_datalist.h b/src/core/xep/tool_datalist.h
+--- a/src/core/xep/tool_datalist.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/core/xep/tool_datalist.h 2016-06-07 14:58:54.853983455 +0200
+@@ -14,7 +14,9 @@
+ void (*freedata_func)(DATALIST_REC *);
+ } DATALIST;
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ DATALIST *datalist_new(void (*)(DATALIST_REC *));
+ void datalist_destroy(DATALIST *);
+ DATALIST_REC *datalist_find(DATALIST *, XMPP_SERVER_REC *, const char *);
+@@ -23,6 +25,8 @@
+ void datalist_free(DATALIST *, DATALIST_REC *);
+ void datalist_remove(DATALIST *, XMPP_SERVER_REC *, const char *);
+ void datalist_cleanup(DATALIST *, XMPP_SERVER_REC *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/core/xep: tool_datalist.o
+diff -rBu a/src/core/xep/vcard.h b/src/core/xep/vcard.h
+--- a/src/core/xep/vcard.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/core/xep/vcard.h 2016-06-07 15:03:52.770129809 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __VCARD_H
+ #define __VCARD_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void vcard_init(void);
+ void vcard_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/core/xep: vcard.o
+diff -rBu a/src/core/xep/version.h b/src/core/xep/version.h
+--- a/src/core/xep/version.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/core/xep/version.h 2016-06-07 15:04:23.914105679 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __VERSION_H
+ #define __VERSION_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void version_init(void);
+ void version_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/core/xep: version.o
+diff -rBu a/src/core/xep/xep.h b/src/core/xep/xep.h
+--- a/src/core/xep/xep.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/core/xep/xep.h 2016-06-07 14:58:04.412942798 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __XEP_H
+ #define __XEP_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void xep_init(void);
+ void xep_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/core/xep: xep.o
+diff -rBu a/src/core/xmpp-commands.h b/src/core/xmpp-commands.h
+--- a/src/core/xmpp-commands.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/core/xmpp-commands.h 2016-06-07 14:53:34.130699897 +0200
+@@ -50,11 +50,15 @@
+ } \
+ } G_STMT_END
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ char *xmpp_get_dest(const char *, XMPP_SERVER_REC *, WI_ITEM_REC *);
+
+ void xmpp_commands_init(void);
+ void xmpp_commands_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/core: xmpp-commands.o
+Only in b/src/core: xmpp-core.o
+diff -rBu a/src/core/xmpp-queries.h b/src/core/xmpp-queries.h
+--- a/src/core/xmpp-queries.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/core/xmpp-queries.h 2016-06-07 14:55:00.702485973 +0200
+@@ -22,8 +22,12 @@
+ gboolean composing_visible;
+ };
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ QUERY_REC *xmpp_query_create(const char *, const char *, int);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/core: xmpp-queries.o
+diff -rBu a/src/core/xmpp-servers-reconnect.h b/src/core/xmpp-servers-reconnect.h
+--- a/src/core/xmpp-servers-reconnect.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/core/xmpp-servers-reconnect.h 2016-06-07 14:55:26.259679914 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __XMPP_SERVERS_RECONNECT_H
+ #define __XMPP_SERVERS_RECONNECT_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void xmpp_servers_reconnect_init(void);
+ void xmpp_servers_reconnect_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/core: xmpp-servers-reconnect.o
+diff -rBu a/src/core/xmpp-servers.h b/src/core/xmpp-servers.h
+--- a/src/core/xmpp-servers.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/core/xmpp-servers.h 2016-06-07 14:54:39.542049408 +0200
+@@ -54,12 +54,16 @@
+ GSList *msg_handlers;
+ };
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ SERVER_REC *xmpp_server_init_connect(SERVER_CONNECT_REC *);
+ void xmpp_server_connect(XMPP_SERVER_REC *);
+
+ void xmpp_servers_init(void);
+ void xmpp_servers_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/core: xmpp-servers.o
+diff -rBu a/src/core/xmpp-settings.h b/src/core/xmpp-settings.h
+--- a/src/core/xmpp-settings.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/core/xmpp-settings.h 2016-06-07 14:55:48.160131745 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __XMPP_SETTINGS_H
+ #define __XMPP_SETTINGS_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void xmpp_settings_init(void);
+ void xmpp_settings_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/core: xmpp-settings.o
+diff -rBu a/src/fe-common/fe-rosters.h b/src/fe-common/fe-rosters.h
+--- a/src/fe-common/fe-rosters.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/fe-common/fe-rosters.h 2016-06-07 15:06:36.863515245 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __FE_ROSTERS_H
+ #define __FE__ROSTERS_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void fe_rosters_init(void);
+ void fe_rosters_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/fe-common: fe-rosters.o
+diff -rBu a/src/fe-common/fe-stanzas.h b/src/fe-common/fe-stanzas.h
+--- a/src/fe-common/fe-stanzas.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/fe-common/fe-stanzas.h 2016-06-07 15:06:59.680652656 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __FE_STANZAS_H
+ #define __FE_STANZAS_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void fe_stanzas_init(void);
+ void fe_stanzas_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/fe-common: fe-stanzas.o
+Only in b/src/fe-common: fe-xmpp-core.o
+diff -rBu a/src/fe-common/fe-xmpp-messages.h b/src/fe-common/fe-xmpp-messages.h
+--- a/src/fe-common/fe-xmpp-messages.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/fe-common/fe-xmpp-messages.h 2016-06-07 15:07:17.607689178 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __FE_XMPP_MESSAGES_H
+ #define __FE_XMPP_MESSAGES_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void fe_xmpp_messages_init(void);
+ void fe_xmpp_messages_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/fe-common: fe-xmpp-messages.o
+diff -rBu a/src/fe-common/fe-xmpp-queries.h b/src/fe-common/fe-xmpp-queries.h
+--- a/src/fe-common/fe-xmpp-queries.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/fe-common/fe-xmpp-queries.h 2016-06-07 15:07:50.471700534 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __FE_XMPP_QUERIES_H
+ #define __FE_XMPP_QUERIES_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void fe_xmpp_queries_init(void);
+ void fe_xmpp_queries_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/fe-common: fe-xmpp-queries.o
+diff -rBu a/src/fe-common/fe-xmpp-status.h b/src/fe-common/fe-xmpp-status.h
+--- a/src/fe-common/fe-xmpp-status.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/fe-common/fe-xmpp-status.h 2016-06-07 15:04:55.894765477 +0200
+@@ -3,12 +3,16 @@
+
+ extern const char *fe_xmpp_presence_show[];
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ char *fe_xmpp_status_get_window_name(XMPP_SERVER_REC *);
+ WINDOW_REC *fe_xmpp_status_get_window(XMPP_SERVER_REC *);
+
+ void fe_xmpp_status_init(void);
+ void fe_xmpp_status_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/fe-common: fe-xmpp-status.o
+diff -rBu a/src/fe-common/fe-xmpp-windows.h b/src/fe-common/fe-xmpp-windows.h
+--- a/src/fe-common/fe-xmpp-windows.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/fe-common/fe-xmpp-windows.h 2016-06-07 15:08:03.231963621 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __FE_XMPP_WINDOWS_H
+ #define __FE_XMPP_WINDOWS_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void fe_xmpp_windows_init(void);
+ void fe_xmpp_windows_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/fe-common: fe-xmpp-windows.o
+Only in b/src/fe-common: libfe_xmpp.so
+Only in b/src/fe-common: module-formats.o
+diff -rBu a/src/fe-common/xep/fe-composing.h b/src/fe-common/xep/fe-composing.h
+--- a/src/fe-common/xep/fe-composing.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/fe-common/xep/fe-composing.h 2016-06-07 15:09:07.119947454 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __FE_COMPOSING_H
+ #define __FE_COMPOSING_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void fe_composing_init(void);
+ void fe_composing_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/fe-common/xep: fe-composing.o
+diff -rBu a/src/fe-common/xep/fe-delay.h b/src/fe-common/xep/fe-delay.h
+--- a/src/fe-common/xep/fe-delay.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/fe-common/xep/fe-delay.h 2016-06-07 15:09:17.776833832 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __FE_DELAY_H
+ #define __FE_DELAY_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void fe_delay_init(void);
+ void fe_delay_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/fe-common/xep: fe-delay.o
+diff -rBu a/src/fe-common/xep/fe-muc.h b/src/fe-common/xep/fe-muc.h
+--- a/src/fe-common/xep/fe-muc.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/fe-common/xep/fe-muc.h 2016-06-07 15:09:29.967085155 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __FE_MUC_H
+ #define __FE_MUC_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void fe_muc_init(void);
+ void fe_muc_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/fe-common/xep: fe-muc.o
+diff -rBu a/src/fe-common/xep/fe-ping.h b/src/fe-common/xep/fe-ping.h
+--- a/src/fe-common/xep/fe-ping.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/fe-common/xep/fe-ping.h 2016-06-07 15:09:52.560884300 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __FE_PING_H
+ #define __FE_PING_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void fe_ping_init(void);
+ void fe_ping_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/fe-common/xep: fe-ping.o
+diff -rBu a/src/fe-common/xep/fe-registration.h b/src/fe-common/xep/fe-registration.h
+--- a/src/fe-common/xep/fe-registration.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/fe-common/xep/fe-registration.h 2016-06-07 15:10:20.631463026 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __FE_REGISTRATION_H
+ #define __FE_REGISTRATION_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void fe_registration_init(void);
+ void fe_registration_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/fe-common/xep: fe-registration.o
+diff -rBu a/src/fe-common/xep/fe-vcard.h b/src/fe-common/xep/fe-vcard.h
+--- a/src/fe-common/xep/fe-vcard.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/fe-common/xep/fe-vcard.h 2016-06-07 15:09:40.983978955 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __FE_VCARD_H
+ #define __FE_VCARD_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void fe_vcard_init(void);
+ void fe_vcard_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/fe-common/xep: fe-vcard.o
+diff -rBu a/src/fe-common/xep/fe-version.h b/src/fe-common/xep/fe-version.h
+--- a/src/fe-common/xep/fe-version.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/fe-common/xep/fe-version.h 2016-06-07 15:10:05.174477686 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __FE_VERSION_H
+ #define __FE_VERSION_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void fe_version_init(void);
+ void fe_version_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/fe-common/xep: fe-version.o
+diff -rBu a/src/fe-common/xep/fe-xep.h b/src/fe-common/xep/fe-xep.h
+--- a/src/fe-common/xep/fe-xep.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/fe-common/xep/fe-xep.h 2016-06-07 15:08:22.215688338 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __FE_XEP_H
+ #define __FE_XEP_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void fe_xep_init(void);
+ void fe_xep_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/fe-common/xep: fe-xep.o
+diff -rBu a/src/fe-common/xmpp-completion.h b/src/fe-common/xmpp-completion.h
+--- a/src/fe-common/xmpp-completion.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/fe-common/xmpp-completion.h 2016-06-07 15:08:44.742819442 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __XMPP_COMPLETION_H
+ #define __XMPP_COMPLETION_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void xmpp_completion_init(void);
+ void xmpp_completion_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/fe-common: xmpp-completion.o
+diff -rBu a/src/fe-common/xmpp-formats.h b/src/fe-common/xmpp-formats.h
+--- a/src/fe-common/xmpp-formats.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/fe-common/xmpp-formats.h 2016-06-07 15:05:42.712398046 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __XMPP_FORMATS_H
+ #define __XMPP_FORMATS_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void xmpp_formats_init(void);
+ void xmpp_formats_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/fe-common: xmpp-formats.o
+Only in b/src/fe-text: libtext_xmpp.so
+Only in b/src/fe-text: text-xmpp-core.o
+diff -rBu a/src/fe-text/xep/text-composing.h b/src/fe-text/xep/text-composing.h
+--- a/src/fe-text/xep/text-composing.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/fe-text/xep/text-composing.h 2016-06-07 15:11:16.325944602 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __TEXT_COMPOSING_H
+ #define __TEXT_COMPOSING_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void text_composing_init(void);
+ void text_composing_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/fe-text/xep: text-composing.o
+diff -rBu a/src/fe-text/xep/text-muc.h b/src/fe-text/xep/text-muc.h
+--- a/src/fe-text/xep/text-muc.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/fe-text/xep/text-muc.h 2016-06-07 15:11:28.886203553 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __TEXT_MUC_H
+ #define __TEXT_MUC_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void text_muc_init(void);
+ void text_muc_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/fe-text/xep: text-muc.o
+diff -rBu a/src/fe-text/xep/text-xep.h b/src/fe-text/xep/text-xep.h
+--- a/src/fe-text/xep/text-xep.h 2016-03-18 15:07:32.000000000 +0100
++++ b/src/fe-text/xep/text-xep.h 2016-06-07 15:11:03.165673278 +0200
+@@ -1,9 +1,13 @@
+ #ifndef __TEXT_XEP_H
+ #define __TEXT_XEP_H
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void text_xep_init(void);
+ void text_xep_deinit(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif
+Only in b/src/fe-text/xep: text-xep.o
diff --git a/community/libftdi1/01-CMakeLists-no-lib-suffix.patch b/community/libftdi1/01-CMakeLists-no-lib-suffix.patch
new file mode 100644
index 0000000000..cdfdc69919
--- /dev/null
+++ b/community/libftdi1/01-CMakeLists-no-lib-suffix.patch
@@ -0,0 +1,11 @@
+--- a/CMakeLists.txt 2014-11-21 17:42:17.000000000 +0100
++++ b/CMakeLists.txt 2016-05-22 23:04:12.640297140 +0200
+@@ -55,7 +55,7 @@
+ AND NOT EXISTS "/etc/debian_version"
+ AND NOT EXISTS "/etc/arch-release" )
+ if ( "${CMAKE_SIZEOF_VOID_P}" EQUAL "8" )
+- set ( LIB_SUFFIX 64 )
++ set ( LIB_SUFFIX "" )
+ endif ()
+ endif ()
+ endif ()
diff --git a/community/libftdi1/APKBUILD b/community/libftdi1/APKBUILD
new file mode 100644
index 0000000000..851c3218b1
--- /dev/null
+++ b/community/libftdi1/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Stefan Wagner <stw@bit-strickerei.de>
+# Maintainer: Stefan Wagner <stw@bit-strickerei.de>
+pkgname=libftdi1
+pkgver=1.3
+pkgrel=0
+pkgdesc="A library to talk to FTDI chips"
+url="http://www.intra2net.com/en/developer/libftdi/download.php"
+arch="all"
+license="LGPL2, GPL2"
+makedepends="cmake doxygen swig libusb-dev"
+subpackages="$pkgname-dev $pkgname-doc"
+source="http://www.intra2net.com/en/developer/libftdi/download/${pkgname}-${pkgver}.tar.bz2
+ 01-CMakeLists-no-lib-suffix.patch"
+
+builddir="$srcdir/${pkgname}-${pkgver}"
+build() {
+ mkdir "$builddir/build" || return 1
+ cd "$builddir/build"
+ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_SKIP_BUILD_RPATH=ON \
+ -DCMAKE_BUILD_TYPE=Release -DEXAMPLES=OFF -DFTDI_EEPROM=ON .. || return 1
+ make
+}
+
+package() {
+ cd "$builddir/build"
+ make DESTDIR="$pkgdir" install || return 1
+ install -Dm644 ../packages/99-libftdi.rules "$pkgdir"/usr/lib/udev/rules.d/99-libftdi.rules || return 1
+ mkdir -p "$pkgdir"/usr/share/doc/$pkgname/ "$pkgdir"/usr/share/man/man3/ || return 1
+ install -m644 doc/html/* "$pkgdir"/usr/share/doc/$pkgname/ || return 1
+ install -m644 doc/man/man3/ftdi_eeprom.3 "$pkgdir"/usr/share/man/man3/ || return 1
+}
+
+md5sums="156cdf40cece9f8a3ce1582db59a502a libftdi1-1.3.tar.bz2
+de07c454042cd2d943c6495e4680d869 01-CMakeLists-no-lib-suffix.patch"
+sha256sums="9a8c95c94bfbcf36584a0a58a6e2003d9b133213d9202b76aec76302ffaa81f4 libftdi1-1.3.tar.bz2
+8a2a7524917c8b6a11792baaeac5a6ad41715a0cb0fd739637ce21e5b770bbf2 01-CMakeLists-no-lib-suffix.patch"
+sha512sums="792aa5ecb42cb219fb0230d7b68d1b0370fd28e7dc30f28900a23199b1067812616cd9f4f8492cddb1314d0515cd87d67a045354184b611e647ef9c33fc7932a libftdi1-1.3.tar.bz2
+5583fcb66414d9668bcbff0ad8a688f419414040b9480e24edde8de9f0fecb4bf4e06db7bfb0b7542fd44eff712ad7f72c8c32b5dc27885c26f1707b06485f1b 01-CMakeLists-no-lib-suffix.patch"
diff --git a/community/munin/APKBUILD b/community/munin/APKBUILD
new file mode 100644
index 0000000000..bf855d12b0
--- /dev/null
+++ b/community/munin/APKBUILD
@@ -0,0 +1,77 @@
+# Contributor: Stefan Wagner <stw@bit-strickerei.de>
+# Maintainer: Stefan Wagner <stw@bit-strickerei.de>
+pkgname=munin
+pkgver=2.0.25
+pkgrel=1
+pkgdesc="A distributed monitoring/graphing tool"
+url="http://munin-monitoring.org/"
+arch="noarch"
+license="GPL"
+perl_modules="perl-rrd perl-net-snmp perl-log-log4perl perl-html-template
+ perl-net-ssleay perl-net-server perl-date-manip perl-io-socket-inet6
+ perl-file-copy-recursive perl-fcgi perl-uri"
+depends="$pkgname-node"
+makedepends="bash rrdtool perl perl-module-build $perl_modules"
+pkgusers=munin
+pkggroups=munin
+subpackages="$pkgname-node"
+source="http://downloads.munin-monitoring.org/munin/stable/$pkgver/$pkgname-$pkgver.tar.gz
+ munin-config.patch
+ munin.cron.d
+ munin-node.initd
+ munin.logrotate
+ munin-node.logrotate"
+
+builddir="$srcdir/$pkgname-$pkgver"
+build() {
+ cd "$builddir"
+ make -j1
+}
+
+package() {
+ cd "$builddir"
+ make DESTDIR="$pkgdir" install-master-prime || return 1
+ rm -rf "$pkgdir"/usr/share/man
+
+ install -m644 -D "$srcdir"/munin.cron.d \
+ "$pkgdir"/etc/munin/munin.cron.sample || return 1
+ install -m644 -D "$srcdir"/munin.logrotate \
+ "$pkgdir"/etc/logrotate.d/munin || return 1
+
+ install -d -o $pkgusers -g $pkggroups "$pkgdir"/usr/share/webapps/munin/html
+}
+
+node() {
+ depends="bash rrdtool perl $perl_modules"
+ install="$subpkgname.pre-install"
+
+ mkdir -p "$subpkgdir"
+
+ cd "$builddir"
+ make DESTDIR="$subpkgdir" install-common-prime install-node-prime install-plugins-prime || return 1
+ rm -rf "$subpkgdir"/usr/share/man
+
+ install -m644 -D "$srcdir"/munin-node.logrotate \
+ "$pkgdir"/etc/logrotate.d/munin-node || return 1
+ install -m755 -D "$srcdir"/"$subpkgname".initd \
+ "$subpkgdir"/etc/init.d/"$subpkgname"
+}
+
+md5sums="b418a667ce42665557329a7ac3bd1b93 munin-2.0.25.tar.gz
+4fce4fdc2d1c9d5f3f1d9b77afad6027 munin-config.patch
+b474180bc97e870be7a80d1824fe1ceb munin.cron.d
+a1bcfd3b2f696b2e56eff81fae5049d8 munin-node.initd
+90ec26232e622fe3c708b519543bd937 munin.logrotate
+f75f125ee68eb60347eb8d57c616eaa1 munin-node.logrotate"
+sha256sums="6832bc5839d03639e4309178d9370697fc8a80a83d9b6653953f40161e949694 munin-2.0.25.tar.gz
+ceec0ba906ffaaa97621bf11c537cca594c96e8f9c86f2aa254b55ca57546b97 munin-config.patch
+f388434231dfd645be85654ac35a09315feac2f923e297f2aa8c11392e2ae4dc munin.cron.d
+59269b33d23813969f7e9700cb3bb60c687fb502fcfed1ce23985e8b673d9da9 munin-node.initd
+691b40eff51dafac2a5bef5a9c858f25dcb33e3633196ebfcc13353f203689d7 munin.logrotate
+8d1d05ff21328f008acba361d2776651bd2cff44229f7ec570f03c525c9b6d46 munin-node.logrotate"
+sha512sums="a29563cfef26b05237b3813b44b5582563f2f75477ae3c076540cfb4f3e83f89193bd05fd7eae208d9d1bae58aff75977cc2c5f4de81225f0cbb2ba2c41effa9 munin-2.0.25.tar.gz
+a1c691a4c5d7d2619ea6d2605c71a23eeaa65f9cf533477524927bc3244371e271a4dadf24e71d6630f3ea8d6ad56f26bed83330a22ff0573e67c5cafe66cf17 munin-config.patch
+194b742b2ff8312c4c42a8a77d1d9a80bc53ced2343248c36f4229b0b0d366e898487fb5e415f1f5ccea7210a7a86e25de5e45193dbb5d26d2d6a195f0597642 munin.cron.d
+4b2a49a7bcb64eef65eee3b77ce86ca2cd8afef681922fdb830cb382f334c07356576f1151f4423f066ba8ac1c2d9a51cf9ff3d4dd4b18a5c1e2c95abcd9a940 munin-node.initd
+0f4768033f63103cb41b3f3869ebe378098f85409a909afa311a49587cb6afcffe2b2199821cd41a08f41bbeba3d37121561406978960e3345fbccfd230040e6 munin.logrotate
+34cdc04e83067d2fc839efaf06d96da892d76b77555a4b7b633f9a88fb86dc5f4413fe7a4f6c540e95724b23e8a4ad0ff37f521d44046bfcf18cb0428b94e6e2 munin-node.logrotate"
diff --git a/community/munin/munin-config.patch b/community/munin/munin-config.patch
new file mode 100644
index 0000000000..cae8ec3c13
--- /dev/null
+++ b/community/munin/munin-config.patch
@@ -0,0 +1,131 @@
+diff -ur munin-2.0.25.orig/Makefile.config munin-2.0.25/Makefile.config
+--- munin-2.0.25.orig/Makefile.config 2014-11-24 22:46:24.000000000 +0100
++++ munin-2.0.25/Makefile.config 2016-04-14 00:32:53.547838027 +0200
+@@ -17,35 +17,35 @@
+ #
+ # the base of the Munin installation.
+ #
+-PREFIX = $(DESTDIR)/opt/munin
++PREFIX = $(DESTDIR)
+
+ # Where Munin keeps its configurations (server.conf, client.conf, ++)
+-CONFDIR = $(DESTDIR)/etc/opt/munin
++CONFDIR = $(DESTDIR)/etc/munin
+
+ # Server only - where to put munin-cron
+-BINDIR = $(PREFIX)/bin
++BINDIR = $(PREFIX)/usr/bin
+
+ # Client only - where to put munin-node, munin-node-configure, and munin-run
+-SBINDIR = $(PREFIX)/sbin
++SBINDIR = $(PREFIX)/usr/sbin
+
+ # Where to put text and html documentation
+-DOCDIR = $(PREFIX)/doc
++DOCDIR = $(PREFIX)/usr/share/doc/munin
+
+ # Where to put man pages
+-MANDIR = $(PREFIX)/man
++MANDIR = $(PREFIX)/usr/share/man
+
+ # Where to put internal binaries and plugin repository
+-LIBDIR = $(PREFIX)/lib
++LIBDIR = $(PREFIX)/usr/lib/munin
+
+ # Server only - Output directory
+-HTMLDIR = $(PREFIX)/www/docs
+-CGIDIR = $(PREFIX)/www/cgi
++HTMLDIR = $(PREFIX)/usr/share/webapps/munin/html
++CGIDIR = $(PREFIX)/usr/share/webapps/munin/cgi
+
+ # Where to put internal data for master (RRD, internal files, ...)
+-DBDIR = $(DESTDIR)/var/opt/munin
++DBDIR = $(DESTDIR)/var/lib/munin
+
+ # Where to put internal data for node (plugin state, ...)
+-DBDIRNODE = $(DESTDIR)/var/opt/munin-node
++DBDIRNODE = $(DESTDIR)/var/lib/munin-node
+
+ # Client only - Where the spool files are written. Must be writable by
+ # group "munin", and should be preserved between reboots
+@@ -56,17 +56,17 @@
+ PLUGSTATE = $(DBDIRNODE)/plugin-state
+
+ # Where Munin should place its logs.
+-LOGDIR = $(PREFIX)/log/munin
++LOGDIR = $(PREFIX)/var/log/munin
+
+ # Location of PID files and other statefiles. On the server, must be
+ # writable by the user "munin".
+-STATEDIR = $(DESTDIR)/var/run/munin
++STATEDIR = $(DESTDIR)/run/munin
+
+ # The perl interpreter to use
+-PERL := $(shell which perl)
++PERL := /usr/bin/perl
+
+ # The python interpreter to use (used by some plugins)
+-PYTHON := /usr/bin/env python
++PYTHON := /usr/bin/env python2
+
+ # The ruby interpreter to use (used by some plugins)
+ RUBY := /usr/bin/env ruby
+@@ -89,13 +89,13 @@
+ # On Linux /bin/sh, SunOS/Solaris /usr/xpg4/bin/sh or /bin/ksh
+ # In general: bash or ksh will work
+ #
+-GOODSH := $(shell PATH=`getconf PATH 2>/dev/null || echo $(PATH)` LANG=C sh -c 'type sh | sed "s/.* //"')
++GOODSH := /bin/sh
+
+ # Path of bash for bash specific plugins
+ BASH := /bin/bash
+
+ # Server only - Where to install the perl libraries
+-PERLSITELIB := $(shell $(PERL) -V:sitelib | cut -d"'" -f2)
++PERLSITELIB := $(shell $(PERL) -V:vendorlib | cut -d"'" -f2)
+ PERLLIB = $(DESTDIR)$(PERLSITELIB)
+
+ # Client only - Install plugins for this architecture
+@@ -106,7 +106,7 @@
+
+ # How to figure out the hostname. (Only used in default configuration
+ # files)
+-HOSTNAME := $(shell hostname)
++HOSTNAME := localhost
+
+ # What is the safest way to create a tempfile.
+ # Default is to figure it out by testing various methods.
+@@ -129,9 +129,9 @@
+ # Which command to use to check if the USER and GROUP to run Munin as, exists.
+ # These will work on most modern OSes:
+ #
+-GETENT := $(shell which getent || which true 2>/dev/null)
+-CHECKUSER := $(shell $(GETENT) passwd $(USER) >/dev/null 2>/dev/null || (echo "echo User $(USER) nonexistent. Create the user and retry; exit 2"))
+-CHECKGROUP := $(shell $(GETENT) group $(GROUP) >/dev/null 2>/dev/null || (echo "echo Group $(GROUP) nonexistent. Create the group and retry; exit 2"))
++GETENT := /bin/true
++CHECKUSER := /bin/true
++CHECKGROUP := /bin/true
+
+ # For OSX, comment out the previous two lines and comment in these
+ #
+@@ -153,9 +153,9 @@
+ #CHECKUSER := $(shell id $(USER) >/dev/null 2>/dev/null || (echo "echo User $(USER) nonexistent. Create the user and retry; exit 2"))
+ #CHECKGROUP := $(shell grep ^$(GROUP): /etc/group >/dev/null 2>/dev/null || (echo "echo Group $(GROUP) nonexistent. Create the group and retry; exit 2"))
+
+-CHOWN := chown
++CHOWN := true
+ CHMOD := chmod
+-CHGRP := chgrp
++CHGRP := true
+
+ # Java compiler stuff - only needed on the buildhost
+ JC := javac
+@@ -166,7 +166,7 @@
+ # Note that we defer JCVALID evaluation to runtime,
+ # since $(JC) can be redefined later in a specific Makefile.config
+ # The core Makefile.config is then used as a Makefile.default
+-JCVALID = $(shell $(JC) -version >/dev/null 2>/dev/null && echo "yes")
++JCVALID = no
+
+ # Check whether setruid functionality can be used
+ HASSETR := $(shell perl -e 'use Config; my @vars=("d_setruid", "d_setreuid", "d_setresuid"); foreach my $$var (@vars) { if ($$Config{$$var} eq "define") { print "1\n"; exit 0; } } print "0\n"; exit 0;' )
diff --git a/community/munin/munin-node.initd b/community/munin/munin-node.initd
new file mode 100644
index 0000000000..ad497eae22
--- /dev/null
+++ b/community/munin/munin-node.initd
@@ -0,0 +1,22 @@
+#!/sbin/openrc-run
+
+# munin-node init.d file for alpine linux.
+
+name=munin-node
+
+pidfile=/run/munin/${name}.pid
+
+command=/usr/sbin/munin-node
+command_args="${EXTRA_OPTS}"
+command_background="no"
+
+depend() {
+ need net
+ after firewall
+}
+
+start_pre() {
+ checkpath -d -o munin:munin -m755 /run/munin
+ checkpath -d -o munin:munin -m755 /var/lib/munin/spool
+ checkpath -d -o munin:munin -m755 /var/log/munin
+}
diff --git a/community/munin/munin-node.logrotate b/community/munin/munin-node.logrotate
new file mode 100644
index 0000000000..03b976e423
--- /dev/null
+++ b/community/munin/munin-node.logrotate
@@ -0,0 +1,8 @@
+/var/log/munin/munin-node.log {
+ daily
+ missingok
+ copytruncate
+ rotate 7
+ compress
+ notifempty
+}
diff --git a/community/munin/munin-node.pre-install b/community/munin/munin-node.pre-install
new file mode 100644
index 0000000000..7352cf2fdd
--- /dev/null
+++ b/community/munin/munin-node.pre-install
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+username=munin
+groupname="$username"
+
+addgroup -S "$username" 2>/dev/null
+adduser -S -D -H -h /run/"$username" -s /sbin/nologin -G "$groupname" \
+ -g "$username" "$username" 2>/dev/null
+
+exit 0
diff --git a/community/munin/munin.cron.d b/community/munin/munin.cron.d
new file mode 100644
index 0000000000..45d5ee62da
--- /dev/null
+++ b/community/munin/munin.cron.d
@@ -0,0 +1,9 @@
+# /etc/cron.d/munin: crontab entries for the munin package
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+MAILTO=root
+
+@reboot munin if [ -x /usr/bin/munin-cron ]; then /usr/bin/munin-cron; fi
+*/5 * * * * munin if [ -x /usr/bin/munin-cron ]; then /usr/bin/munin-cron; fi
+
+# EOF
diff --git a/community/munin/munin.logrotate b/community/munin/munin.logrotate
new file mode 100644
index 0000000000..cf480d7c02
--- /dev/null
+++ b/community/munin/munin.logrotate
@@ -0,0 +1,12 @@
+/var/log/munin/munin-graph.log
+/var/log/munin/munin-cgi-graph.log
+/var/log/munin/munin-html.log
+/var/log/munin/munin-limits.log
+/var/log/munin/munin-update.log {
+ daily
+ missingok
+ copytruncate
+ rotate 7
+ compress
+ notifempty
+}
diff --git a/community/notmuch/APKBUILD b/community/notmuch/APKBUILD
new file mode 100644
index 0000000000..213c74e5a8
--- /dev/null
+++ b/community/notmuch/APKBUILD
@@ -0,0 +1,64 @@
+# Contributor: Stefan Wagner <stw@bit-strickerei.de>
+# Maintainer: Stefan Wagner <stw@bit-strickerei.de>
+pkgname=notmuch
+pkgver=0.22.1
+pkgrel=0
+pkgdesc="E-Mail index, search and tagging"
+url="https://notmuchmail.org/"
+arch="all"
+license="GPL3"
+makedepends="gzip xapian-core-dev gmime-dev talloc-dev
+ py-sphinx bash-completion"
+subpackages="
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-zsh-completion:zshcomp
+ $pkgname-bash-completion:bashcomp"
+source="https://notmuchmail.org/releases/$pkgname-$pkgver.tar.gz"
+
+builddir="$srcdir/$pkgname-$pkgver"
+build() {
+ cd "$builddir"
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --bashcompletiondir=/usr/share/bash-completion/completions \
+ --zshcompletiondir=/usr/share/zsh/site-functions \
+ || return 1
+ make PREFIX=/usr DESTDIR="$pkgdir"
+}
+
+package() {
+ cd "$builddir"
+ make PREFIX=/usr DESTDIR="$pkgdir" install
+}
+
+bashcomp() {
+ depends=""
+ pkgdesc="Bash completions for $pkgname"
+ install_if="$pkgname=$pkgver-r$pkgrel bash-completion"
+ arch="noarch"
+
+ mkdir -p "$subpkgdir"/usr/share/bash-completion/completions/
+ mv "$pkgdir"/usr/share/bash-completion/completions/$pkgname \
+ "$subpkgdir"/usr/share/bash-completion/completions/ || return 1
+}
+
+zshcomp() {
+ depends=""
+ pkgdesc="Zsh completions for $pkgname"
+ install_if="$pkgname=$pkgver-r$pkgrel zsh"
+ arch="noarch"
+
+ mkdir -p "$subpkgdir"/usr/share/zsh/site-functions/
+ mv "$pkgdir"/usr/share/zsh/site-functions/_${pkgname} \
+ "$subpkgdir"/usr/share/zsh/site-functions/ || return 1
+}
+
+md5sums="5093abaca53f3690f091022eb9a75d8a notmuch-0.22.1.tar.gz"
+sha256sums="e739457794f3c2b363beffa3ed9e8a2786921031c80672f5b06d0880876a974b notmuch-0.22.1.tar.gz"
+sha512sums="b28ee8aa5af7172664ebc4d50c8830e645ad3e4945f5d162e44b627f3344de71b7525a444ae08f1c0650a7f94071f54cebcf3494214df80452b6ca954818deb9 notmuch-0.22.1.tar.gz"
diff --git a/community/stow/APKBUILD b/community/stow/APKBUILD
new file mode 100644
index 0000000000..64c113a36a
--- /dev/null
+++ b/community/stow/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Stefan Wagner <stw@bit-strickerei.de>
+# Maintainer: Stefan Wagner <stw@bit-strickerei.de>
+pkgname=stow
+pkgver=2.2.2
+pkgrel=0
+pkgdesc="Manage installation of multiple softwares in the same directory tree"
+url="http://www.gnu.org/software/stow/"
+arch="noarch"
+license="GPL2"
+depends="perl"
+makedepends="perl-test-output"
+subpackages="$pkgname-doc"
+source="ftp://ftp.gnu.org/pub/gnu/$pkgname/$pkgname-$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-$pkgver"
+
+build() {
+ cd "$builddir"
+ ./configure \
+ --prefix=/usr \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --with-pmdir=/usr/lib/perl5/vendor_perl
+}
+
+package() {
+ cd "$builddir"
+ make DESTDIR="$pkgdir" install
+ rm "$pkgdir"/usr/share/doc/stow/manual.pdf
+ rm "$pkgdir"/usr/share/doc/stow/version.texi
+}
+
+md5sums="8712d22b7abe26b1bef0e22818981248 stow-2.2.2.tar.gz"
+sha256sums="e2f77649301b215b9adbc2f074523bedebad366812690b9dc94457af5cf273df stow-2.2.2.tar.gz"
+sha512sums="8a3e5da6b5cb4c1ee1b512bae5a9859f83659d5de05f7a9af1dd09df2a32f6b8c6d43b79736db91232c43621d542041d4ef92eb088925796adad0676f200a9b5 stow-2.2.2.tar.gz"
diff --git a/community/wireless-regdb/APKBUILD b/community/wireless-regdb/APKBUILD
new file mode 100644
index 0000000000..7110cb9659
--- /dev/null
+++ b/community/wireless-regdb/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: Stefan Wagner <stw@bit-strickerei.de>
+# Maintainer: Stefan Wagner <stw@bit-strickerei.de>
+pkgname=wireless-regdb
+pkgver=2016.06.10
+pkgrel=0
+pkgdesc="Central Regulatory Domain Database"
+url="https://wireless.wiki.kernel.org/en/developers/regulatory/wireless-regdb"
+arch="noarch"
+license="ISC"
+subpackages="$pkgname-doc"
+source="http://kernel.org/pub/software/network/wireless-regdb/$pkgname-$pkgver.tar.xz"
+
+builddir="$srcdir/$pkgname-$pkgver"
+build() {
+ cd "$builddir"
+}
+
+package() {
+ cd "$builddir"
+ install -D -m644 "$builddir"/regulatory.bin "$pkgdir"/usr/lib/crda/regulatory.bin
+ install -D -m644 "$builddir"/regulatory.bin.5 "$pkgdir"/usr/share/man/man5/regulatory.bin.5
+}
+
+md5sums="d282cce92b6e692e8673e2bd97adf33b wireless-regdb-2016.06.10.tar.xz"
+sha256sums="cfedf1c3521b3c8f32602f25ed796e96e687c3441a00e7c050fedf7fd4f1b8b7 wireless-regdb-2016.06.10.tar.xz"
+sha512sums="8064d18232924d86633df9e1195e9521f8f9ca0216f1e664591e3163d583085971b743b9fbbce196e650f239c231caebb7807c5019fcb409b950c6fbd8396f22 wireless-regdb-2016.06.10.tar.xz"
diff --git a/community/wmname/APKBUILD b/community/wmname/APKBUILD
new file mode 100644
index 0000000000..1dce59ab2a
--- /dev/null
+++ b/community/wmname/APKBUILD
@@ -0,0 +1,26 @@
+# Contributor: Stefan Wagner <stw@bit-strickerei.de>
+# Maintainer: Stefan Wagner <stw@bit-strickerei.de>
+pkgname=wmname
+pkgver=0.1
+pkgrel=0
+pkgdesc="Sets the window manager name property of the root window"
+url="http://tools.suckless.org/x/wmname"
+arch="all"
+license="MIT"
+makedepends="libx11-dev"
+source="http://dl.suckless.org/tools/wmname-0.1.tar.gz"
+builddir="$srcdir/$pkgname-$pkgver"
+
+build() {
+ cd "$builddir"
+ make
+}
+
+package() {
+ cd "$builddir"
+ make PREFIX=/usr DESTDIR=$pkgdir install
+}
+
+md5sums="6903d299f84d335e529fbd2c1d6e49fe wmname-0.1.tar.gz"
+sha256sums="559ad188b2913167dcbb37ecfbb7ed474a7ec4bbcb0129d8d5d08cb9208d02c5 wmname-0.1.tar.gz"
+sha512sums="e57100f8de2579f4090c0aaf5a5b134d03bcbcdca5c6d005b12ce39ad322d96651bb13d151cf259e935e6c50e7b21bde43a4eace112be80983a92f92b99f192f wmname-0.1.tar.gz"