aboutsummaryrefslogtreecommitdiffstats
path: root/community
diff options
context:
space:
mode:
authorScrumpyJack <scrumpyjack@st.ilet.to>2016-06-27 10:17:05 +0000
committerCarlo Landmeter <clandmeter@gmail.com>2016-07-04 11:42:28 +0200
commit2ff62bbb9f7b2c82a826d7b159c1bc482aa8f0bd (patch)
tree97c60fb3221dfe78cd7ccfda5db6125c81d5f676 /community
parent00e8ff605f1c4f6386596f35f2a5287ff9b8bc55 (diff)
testing/[various]: move packages to community
Moves the packages listed below from the testing to the community repository after successfully testing of said packages. asciinema at calcurse cmus compton cpio dvd+rw-tools fortune fvwm geary h2o heirloom-mailx leafpad nedit nmh rover tor torsocks urlview vdesk w3m wbar xcalc xclock xeyes xkill
Diffstat (limited to 'community')
-rw-r--r--community/asciinema/APKBUILD43
-rw-r--r--community/at/10-Makefile.in-1.patch11
-rw-r--r--community/at/10-parsetime.l-1.patch11
-rw-r--r--community/at/10-parsetime.y-1.patch14
-rw-r--r--community/at/APKBUILD76
-rw-r--r--community/at/at.allow1
-rw-r--r--community/at/at.pre-install6
-rw-r--r--community/at/atd.initd27
-rw-r--r--community/calcurse/APKBUILD34
-rw-r--r--community/cmus/APKBUILD60
-rw-r--r--community/compton/APKBUILD44
-rw-r--r--community/cpio/APKBUILD47
-rw-r--r--community/dvd+rw-tools/APKBUILD47
-rw-r--r--community/dvd+rw-tools/transport.hxx.patch19
-rw-r--r--community/fortune/APKBUILD29
-rw-r--r--community/fvwm/APKBUILD49
-rw-r--r--community/geary/APKBUILD56
-rw-r--r--community/h2o/APKBUILD61
-rw-r--r--community/h2o/h2o.conf13
-rw-r--r--community/h2o/h2o.initd45
-rw-r--r--community/h2o/h2o.logrotate8
-rw-r--r--community/h2o/h2o.pre-install7
-rw-r--r--community/heirloom-mailx/0001-outof-Introduce-expandaddr-flag.patch65
-rw-r--r--community/heirloom-mailx/0002-unpack-Disable-option-processing-for-email-addresses.patch75
-rw-r--r--community/heirloom-mailx/0003-fio_c-Unconditionally-require-wordexp-support.patch109
-rw-r--r--community/heirloom-mailx/0004-globname-Invoke-wordexp-with-WRDE_NOCMD-CVE-2004-277.patch26
-rw-r--r--community/heirloom-mailx/12.4-to-12.5pre.patch1001
-rw-r--r--community/heirloom-mailx/APKBUILD66
-rw-r--r--community/heirloom-mailx/makevars.patch33
-rw-r--r--community/leafpad/APKBUILD42
-rw-r--r--community/nedit/APKBUILD66
-rw-r--r--community/nmh/APKBUILD47
-rw-r--r--community/rover/APKBUILD36
-rw-r--r--community/tor/APKBUILD58
-rw-r--r--community/tor/tor.confd3
-rw-r--r--community/tor/tor.initd61
-rw-r--r--community/tor/tor.pre-install5
-rw-r--r--community/torsocks/APKBUILD50
-rw-r--r--community/torsocks/musl-fix.patch84
-rw-r--r--community/urlview/APKBUILD65
-rw-r--r--community/vdesk/APKBUILD44
-rw-r--r--community/w3m/APKBUILD72
-rw-r--r--community/w3m/file_handle.patch60
-rw-r--r--community/w3m/form_unknown.patch15
-rw-r--r--community/w3m/gc72.patch13
-rw-r--r--community/w3m/https.patch19
-rw-r--r--community/w3m/w3m-0.5.3-parallel-make.patch199
-rw-r--r--community/wbar/APKBUILD54
-rw-r--r--community/wbar/Functions.patch83
-rw-r--r--community/wbar/Main.patch11
-rw-r--r--community/xcalc/APKBUILD46
-rw-r--r--community/xclock/APKBUILD47
-rw-r--r--community/xeyes/APKBUILD35
-rw-r--r--community/xkill/APKBUILD37
54 files changed, 3335 insertions, 0 deletions
diff --git a/community/asciinema/APKBUILD b/community/asciinema/APKBUILD
new file mode 100644
index 00000000000..1da4dcaaa14
--- /dev/null
+++ b/community/asciinema/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
+# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
+pkgname=asciinema
+pkgver=1.2.0
+pkgrel=0
+pkgdesc="A Command line recorder for asciinema.org service"
+url="https://github.com/asciinema/asciinema/"
+arch="all"
+license="GPLv3"
+depends="curl"
+depends_dev=""
+makedepends="go python"
+subpackages="$pkgname-doc"
+options="!strip"
+source="$pkgname-$pkgver.tar.gz::https://github.com/$pkgname/$pkgname/archive/v$pkgver.tar.gz"
+
+_builddir="$srcdir"/$pkgname-$pkgver
+prepare() {
+ local i
+ cd "$_builddir"
+ for i in $source; do
+ case $i in
+ *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+ esac
+ done
+}
+
+build() {
+ cd "$_builddir"
+ export GOPATH="$_builddir"
+ mkdir -p src/github.com/asciinema
+ ln -s "$_builddir" src/github.com/asciinema/asciinema
+ make build || return 1
+}
+
+package() {
+ cd "$_builddir"
+ PREFIX="$pkgdir"/usr make install || return 1
+}
+
+md5sums="f61680ca17328ed43b61a24b1c267e29 asciinema-1.2.0.tar.gz"
+sha256sums="64b8c2b034945a99398c5593fd8831c6448fd3b6dd788a979582805bfdcb5746 asciinema-1.2.0.tar.gz"
+sha512sums="b172fa2c122ce6d4191d898292f70b462f18c9436a7a95b56a3d4405f66a4003d52877b5d632a829f94704f7d8a07c1202f1d3059e1eec6b583b63daf90a9006 asciinema-1.2.0.tar.gz"
diff --git a/community/at/10-Makefile.in-1.patch b/community/at/10-Makefile.in-1.patch
new file mode 100644
index 00000000000..3381e18f853
--- /dev/null
+++ b/community/at/10-Makefile.in-1.patch
@@ -0,0 +1,11 @@
+--- Makefile.orig.in
++++ Makefile.in
+@@ -12,7 +12,7 @@
+ man1dir = $(mandir)/man1
+ man5dir = $(mandir)/man5
+ man8dir = $(mandir)/man8
+-docdir = $(prefix)/doc
++docdir = $(prefix)/share/doc
+ atdocdir = $(docdir)/at
+ etcdir = @ETCDIR@
+ systemdsystemunitdir = @systemdsystemunitdir@
diff --git a/community/at/10-parsetime.l-1.patch b/community/at/10-parsetime.l-1.patch
new file mode 100644
index 00000000000..61009e6436c
--- /dev/null
+++ b/community/at/10-parsetime.l-1.patch
@@ -0,0 +1,11 @@
+--- parsetime.orig.l
++++ parsetime.l
+@@ -32,6 +32,8 @@
+ } while(0)
+ %}
+
++%option noyywrap
++
+ %%
+
+ now { COPY_TOK ; return NOW; }
diff --git a/community/at/10-parsetime.y-1.patch b/community/at/10-parsetime.y-1.patch
new file mode 100644
index 00000000000..9e8a33234e2
--- /dev/null
+++ b/community/at/10-parsetime.y-1.patch
@@ -0,0 +1,14 @@
+--- parsetime.orig.y
++++ parsetime.y
+@@ -17,6 +17,11 @@
+ extern int yylex();
+
+ int add_date(int number, int period);
++
++#ifndef __isleap
++#define __isleap(year) ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0))
++#endif
++
+ %}
+
+ %union {
diff --git a/community/at/APKBUILD b/community/at/APKBUILD
new file mode 100644
index 00000000000..c61cdabda64
--- /dev/null
+++ b/community/at/APKBUILD
@@ -0,0 +1,76 @@
+# Contributor: Alexander Belkov <msun00@yandex.ru>
+# Maintainer: Alexander Belkov <msun00@yandex.ru>
+pkgname=at
+pkgver=3.1.18
+pkgrel=2
+pkgdesc="AT and batch delayed command scheduling utility and daemon"
+url="http://packages.qa.debian.org/a/at.html"
+arch="all"
+license="GPL"
+makedepends="ssmtp flex-dev byacc"
+depends_dev=""
+install="${pkgname}.pre-install"
+options=suid
+subpackages="at-doc"
+source="http://http.debian.net/debian/pool/main/a/at/at_$pkgver.orig.tar.gz
+ 10-parsetime.l-1.patch
+ 10-parsetime.y-1.patch
+ 10-Makefile.in-1.patch
+ at.allow
+ atd.initd
+ "
+
+_builddir=${srcdir}
+prepare() {
+ local i
+ cd "$_builddir"
+ for i in $source; do
+ case $i in
+ *.patch) msg $i; patch -p0 -i "$srcdir"/$i || return 1;;
+ esac
+ done
+}
+
+build() {
+ cd "$_builddir"
+ LEXLIB=-lfl \
+ ./configure --prefix=/usr \
+ --sbindir=/usr/sbin \
+ --runstatedir=/var/run \
+ --with-daemon_username=at \
+ --with-daemon_groupname=at \
+ --with-jobdir=/var/spool/atd \
+ --with-atspool=/var/spool/atd || return 1
+ make || return 1
+}
+
+package() {
+ cd "$_builddir"
+
+ /usr/bin/install -D -o root -g at -m 640 "$srcdir"/at.allow \
+ "$pkgdir"/etc/at.allow || return 1
+
+ make IROOT="$pkgdir" install || return 1
+
+ /usr/bin/install -m 755 -D "$srcdir"/atd.initd \
+ "$pkgdir"/etc/init.d/atd || return 1
+}
+
+md5sums="f67a7aab557cd5b4a1311079a08acebe at_3.1.18.orig.tar.gz
+a1b7536d7f88f509644d10f8220d518c 10-parsetime.l-1.patch
+5195f745ccd42582032a433928a88ed5 10-parsetime.y-1.patch
+fe699a9c3d437f3ab1b57736501bb940 10-Makefile.in-1.patch
+74cc1c60799e0a786ac7094b532f01b1 at.allow
+86fec213b2337300ea6641de9098d57a atd.initd"
+sha256sums="dbd5c8cb8edd53ef467363c3af0391c08769f1dbbd4d5002c59a4cd4cac11d52 at_3.1.18.orig.tar.gz
+b2cb905962f1b9021faf7aa5d612a6b4a4920abb659936d79b9ebdf33eb2f981 10-parsetime.l-1.patch
+7086395b7710c18e0954fcb7ab9472d91b2ca07c3935e705b4caf2427e39136b 10-parsetime.y-1.patch
+615af791025de65594d639f521d2636721329bbb29b5b3cc56f7cb37251454fa 10-Makefile.in-1.patch
+53175bcc0524f37b47062fafdda28e3f8eb91d519ca0a184ca71bbebe72f969a at.allow
+3e29a0e5495309dc4c59c66de03b49b2690d1b9748867ca9329370b7b91f5f1a atd.initd"
+sha512sums="5ec7512663461ffa1922cef0d99c3cc4882defbea7b1ab855b05bb83e9d3817535db73db74413bcc8af005c956032ec3dc7c83ac16fde96bb315094dae654042 at_3.1.18.orig.tar.gz
+1dffcaa1a2c9e469ffdee9b204d4a28f0e2f03e37b28b954406d41279b472686b6b7c4bcc454a2e830992cc60be2bf5b81e2e6f0093e0f674ab38a75c2a254ec 10-parsetime.l-1.patch
+306f8ed99b70956e01e76f4b8aa336978c3bbe8600ff52ad99c7fbcc0a7d8107e7f3cd4ebdad265df0c30663665715e73416fe7ac7436b5d13f07dda78f3eafa 10-parsetime.y-1.patch
+26db0489d011f2e7834fe3fe217f058e20dd6882edb470f09c859883c064a1422f4a7775fe35992176004292632e40e0f17eb6e05f2724983ea1bf17d7da732f 10-Makefile.in-1.patch
+21e1bc024bd76c76b68e04614c6def5b03fd4b658e59bfde065b464b520f463711b795455e3a5c81a8a1946b2bca2f83d6c19300a4d3326ce17959a7cbc0846a at.allow
+fe5c075566ef1955e0eb4b4446fe1ea401940df6e0f29e4e2f1baf93e231214db58c707e99b16bb3a3c8c288a05fc390a44c6f09fde50d31f0ac631a98d86c2d atd.initd"
diff --git a/community/at/at.allow b/community/at/at.allow
new file mode 100644
index 00000000000..d8649da39dd
--- /dev/null
+++ b/community/at/at.allow
@@ -0,0 +1 @@
+root
diff --git a/community/at/at.pre-install b/community/at/at.pre-install
new file mode 100644
index 00000000000..78aa4bcf1cd
--- /dev/null
+++ b/community/at/at.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S at 2>/dev/null
+adduser -S -D -H -s /bin/false -G at -g at at 2>/dev/null
+
+exit 0
diff --git a/community/at/atd.initd b/community/at/atd.initd
new file mode 100644
index 00000000000..733e5d04dd0
--- /dev/null
+++ b/community/at/atd.initd
@@ -0,0 +1,27 @@
+#!/sbin/openrc-run
+
+# init.d file for atd (command scheduling daemon)
+
+command="/usr/sbin/$SVCNAME"
+pidfile="/var/run/$SVCNAME.pid"
+
+depend() {
+ after localmount
+}
+
+start() {
+ ebegin "Starting command scheduling daemon ${SVCNAME}"
+ start-stop-daemon --start --quiet \
+ --pidfile ${pidfile} \
+ --exec ${command}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping command scheduling daemon ${name}"
+ start-stop-daemon --stop --quiet \
+ --pidfile ${pidfile} \
+ --exec ${command}
+ eend $?
+}
+
diff --git a/community/calcurse/APKBUILD b/community/calcurse/APKBUILD
new file mode 100644
index 00000000000..7f95372e025
--- /dev/null
+++ b/community/calcurse/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Łukasz Jendrysik <scadu@yandex.com>
+# Contributor: Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
+# Maintainer:
+pkgname=calcurse
+pkgver=4.0.0
+pkgrel=0
+pkgdesc="A text-based personal organizer"
+url="http://calcurse.org/"
+license="BSD"
+arch="all"
+makedepends="ncurses-dev"
+subpackages="$pkgname-doc"
+source="http://calcurse.org/files/${pkgname}-${pkgver}.tar.gz"
+
+_builddir="$srcdir"/$pkgname-$pkgver
+build() {
+ cd "$_builddir"
+ ./configure \
+ --prefix=/usr \
+ --mandir=/usr/share/man \
+ --enable-docs \
+ --without-asciidoc \
+ || return 1
+ make || return 1
+}
+
+package() {
+ cd "$_builddir"
+ make DESTDIR="$pkgdir" install || return 1
+}
+
+md5sums="3cd414a30e6e1d118ae340bc7cb1a93a calcurse-4.0.0.tar.gz"
+sha256sums="621b0019907618bd468f9c4dc1ce2186ee86254d3c9ade47dd2d7ab8e6656334 calcurse-4.0.0.tar.gz"
+sha512sums="42a1b317bfd38974cbe4a4d3d1c848b8cd09233fc71f1f3ce36daf33352d9caffd7926c75d5e7ae6dd1138b8735a5244d5411fa1875a3262f1dc37c0a101d38c calcurse-4.0.0.tar.gz"
diff --git a/community/cmus/APKBUILD b/community/cmus/APKBUILD
new file mode 100644
index 00000000000..2b9bfabcd33
--- /dev/null
+++ b/community/cmus/APKBUILD
@@ -0,0 +1,60 @@
+# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
+# Contributor: Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
+# Maintainer: Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
+pkgname=cmus
+pkgver=2.7.1
+pkgrel=2
+pkgdesc="A very feature-rich ncurses-based music player"
+url="http://cmus.sourceforge.net/"
+arch="all"
+license="GPL2+"
+depends=""
+depends_dev=""
+makedepends="alsa-lib-dev faad2-dev flac-dev libmad-dev opusfile-dev
+ libogg-dev libvorbis-dev ncurses-dev wavpack-dev linux-headers"
+install=""
+subpackages="
+ $pkgname-doc
+ $pkgname-zsh-completion:zshcomp
+ $pkgname-bash-completion:bashcomp"
+source="$pkgname-$pkgver.tar.gz::https://github.com/cmus/cmus/archive/v${pkgver}.tar.gz"
+
+_builddir="$srcdir"/$pkgname-$pkgver
+build() {
+ cd "$_builddir"
+ ./configure prefix=/usr || return 1
+ make || return 1
+}
+
+package() {
+ cd "$_builddir"
+ make DESTDIR="$pkgdir" install || return 1
+
+ for file in AUTHORS README.md; do
+ install -Dm644 "${file}" "$pkgdir"/usr/share/doc/$pkgname/ || return 1
+ done
+}
+
+bashcomp() {
+ depends=""
+ pkgdesc="Bash completions for $pkgname"
+ install_if="$pkgname=$pkgver-r$pkgrel bash-completion"
+ arch="noarch"
+
+ install -Dm644 "$_builddir"/contrib/$pkgname.bash-completion \
+ "$subpkgdir"/usr/share/bash-completion/completions/$pkgname
+}
+
+zshcomp() {
+ depends=""
+ pkgdesc="Zsh completions for $pkgname"
+ install_if="$pkgname=$pkgver-r$pkgrel zsh"
+ arch="noarch"
+
+ install -Dm644 "$_builddir"/contrib/_$pkgname \
+ "$subpkgdir"/usr/share/zsh/site-functions/_$pkgname
+}
+
+md5sums="0588ab955db44a8e9deb03446d73b5df cmus-2.7.1.tar.gz"
+sha256sums="8179a7a843d257ddb585f4c65599844bc0e516fe85e97f6f87a7ceade4eb5165 cmus-2.7.1.tar.gz"
+sha512sums="b29ce10bbb61eb41c33c4912be320718fcf005a5797320145b124f048f6be5f5b0cebb67471ef7b062bd6f854849b6aae0e82e9adbf289a44237787932ea1576 cmus-2.7.1.tar.gz"
diff --git a/community/compton/APKBUILD b/community/compton/APKBUILD
new file mode 100644
index 00000000000..b4f2cc6bf55
--- /dev/null
+++ b/community/compton/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+pkgname=compton
+pkgver=0.1_beta2
+pkgrel=0
+pkgdesc="X Compositor (a fork of xcompmgr-dana)"
+url="https://github.com/chjj/compton"
+arch="all"
+license="MIT"
+depends=""
+depends_dev="libx11-dev libxcomposite-dev libxinerama-dev libxdamage-dev \
+ libconfig-dev pcre-dev libxrandr-dev dbus-dev libdrm-dev mesa-dev"
+makedepends="$depends_dev asciidoc"
+install=""
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/chjj/$pkgname/archive/v$pkgver.tar.gz"
+
+_builddir="$srcdir"/$pkgname-$pkgver
+prepare() {
+ local i
+ cd "$_builddir"
+ for i in $source; do
+ case $i in
+ *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+ esac
+ done
+ sed -i "s:\(COMPTON_VERSION ?= \)git.*:\1v${pkgver}:" Makefile
+}
+
+build() {
+ cd "$_builddir"
+ make PREFIX=/usr
+}
+
+package() {
+ cd "$_builddir"
+ make PREFIX="$pkgdir"/usr install
+ install -D -m644 "LICENSE" "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+ install -D -m644 "compton.sample.conf" "$pkgdir/etc/xdg/compton.conf.example"
+}
+
+md5sums="fed786fa5ee9eb89df02291f2cc6e04d compton-0.1_beta2.tar.gz"
+sha256sums="7b9cd52a57326116fb5db3f5f89b7d50e17715252d9fd79b70b45ace30a6b009 compton-0.1_beta2.tar.gz"
+sha512sums="c3a019d90e32559d44e3a4969bcc15a15837db9c9519ce8cc70b1bd3d0cb16d29449f68cc2f6a8d834569c9620ec6533ab85c1586da957c69b1ae341d9584535 compton-0.1_beta2.tar.gz"
diff --git a/community/cpio/APKBUILD b/community/cpio/APKBUILD
new file mode 100644
index 00000000000..de3af23d988
--- /dev/null
+++ b/community/cpio/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Stuart Cardall <developer@it-offshore.co.uk>
+# Maintainer: Stuart Cardall <developer@it-offshore.co.uk>
+pkgname=cpio
+pkgver=2.12
+pkgrel=0
+pkgdesc="A tool to copy files into or out of a cpio or tar archive"
+url="http://www.gnu.org/software/cpio"
+arch="all"
+license="GPL"
+depends="tar"
+depends_dev=""
+makedepends="$depends_dev"
+#install=""
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.bz2::http://ftp.snt.utwente.nl/pub/software/gnu/cpio/$pkgname-$pkgver.tar.bz2"
+
+_builddir="$srcdir"/$pkgname-$pkgver
+prepare() {
+ local i
+ cd "$_builddir"
+ for i in $source; do
+ case $i in
+ *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+ esac
+ done
+}
+
+build() {
+ cd "$_builddir"
+ ./configure \
+ --prefix=/usr \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ || return 1
+ make || return 1
+}
+
+package() {
+ cd "$_builddir"
+ make DESTDIR="$pkgdir" install || return 1
+ rm -f "$pkgdir"/usr/lib/charset.alias
+ rm -f "$pkgdir"/usr/libexec/rmt # part of the tar pkg
+}
+
+md5sums="93eea9f07c0058c097891c73e4955456 cpio-2.12.tar.bz2"
+sha256sums="70998c5816ace8407c8b101c9ba1ffd3ebbecba1f5031046893307580ec1296e cpio-2.12.tar.bz2"
+sha512sums="0cd4da5f2fbca179ab4e666a5f878414c086a5f98bce4c76273f21d9b2a6fe422d901b5d453826c5f81bbe363aa015047a1e99779ad1a451c8feca6205c63120 cpio-2.12.tar.bz2"
diff --git a/community/dvd+rw-tools/APKBUILD b/community/dvd+rw-tools/APKBUILD
new file mode 100644
index 00000000000..abccd51e934
--- /dev/null
+++ b/community/dvd+rw-tools/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: ScrumpyJack <scrumpyjack@st.ilet.to>
+# Maintainer:
+pkgname=dvd+rw-tools
+pkgver=7.1
+pkgrel=0
+pkgdesc="DVD and Blu-ray burning tools"
+url="http://fy.chalmers.se/~appro/linux/DVD+RW/"
+arch="all"
+license="GPL"
+depends="cdrkit"
+depends_dev=""
+makedepends="$depends_dev m4"
+install=""
+subpackages="$pkgname-doc"
+source="http://fy.chalmers.se/~appro/linux/DVD+RW/tools/${pkgname}-${pkgver}.tar.gz
+ transport.hxx.patch"
+_builddir=$srcdir/${pkgname}-${pkgver}
+prepare() {
+ local i
+ cd "$_builddir"
+ for i in $source; do
+ case $i in
+ *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+ esac
+ done
+}
+
+build() {
+ cd "$_builddir"
+ make
+}
+
+package() {
+ cd "$_builddir"
+ install -m755 -d "${pkgdir}/usr/bin"
+ install -m755 -d "${pkgdir}/usr/share/man/man1"
+ install -m755 growisofs dvd+rw-booktype dvd+rw-format \
+ dvd+rw-mediainfo dvd-ram-control "${pkgdir}/usr/bin/"
+ install -m644 growisofs.1 ${pkgdir}/usr/share/man/man1/growisofs.1
+}
+
+md5sums="8acb3c885c87f6838704a0025e435871 dvd+rw-tools-7.1.tar.gz
+fee956907bf81623a8445f1c58e633e4 transport.hxx.patch"
+sha256sums="f8d60f822e914128bcbc5f64fbe3ed131cbff9045dca7e12c5b77b26edde72ca dvd+rw-tools-7.1.tar.gz
+e6b510fe2afe56a10be58c85d23b4d7e65989a3a6ac13be49867383c985b1772 transport.hxx.patch"
+sha512sums="938f9ec5597158af275c7bf63002696ba362f6f22a219108c6a1df28792f0485046a7af5ce57e41695aaaa0d69543bd66cbbeb4415df5c0e0a902a3f1d278a31 dvd+rw-tools-7.1.tar.gz
+9929fa03fd8a6c9b9ad724d1d0de77a602558bb75691148c7a9562f95b5379149fc39ab66a151c10fbe15e18c75b0ecd2d51f7c0499ced3c2e88a54330c44067 transport.hxx.patch"
diff --git a/community/dvd+rw-tools/transport.hxx.patch b/community/dvd+rw-tools/transport.hxx.patch
new file mode 100644
index 00000000000..d2f4f04b348
--- /dev/null
+++ b/community/dvd+rw-tools/transport.hxx.patch
@@ -0,0 +1,19 @@
+--- dvd+rw-tools-7.1/transport.hxx
++++ dvd+rw-tools-7.1/transport.hxx.changed
+@@ -16,6 +16,7 @@
+ #include <fcntl.h>
+ #include <poll.h>
+ #include <sys/time.h>
++#include <limits.h>
+
+ inline long getmsecs()
+ { struct timeval tv;
+@@ -123,7 +124,7 @@
+ extern "C" char *plusminus_locale()
+ { static class __plusminus {
+ private:
+- char str[4];
++ char str[MB_LEN_MAX];
+ public:
+ __plusminus() { setlocale(LC_CTYPE,ENV_LOCALE);
+ int l = wctomb(str,(wchar_t)(unsigned char)'');
diff --git a/community/fortune/APKBUILD b/community/fortune/APKBUILD
new file mode 100644
index 00000000000..c2738d8e0ec
--- /dev/null
+++ b/community/fortune/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Andrew Hills <ahills@ednos.net>
+# Maintainer: Andrew Hills <ahills@ednos.net>
+pkgname=fortune
+pkgver=0.1
+pkgrel=0
+pkgdesc="Fortune cookie program ported from OpenBSD"
+url="https://github.com/ahills/fortune"
+arch="x86 x86_64"
+license="BSD"
+depends=""
+depends_dev=""
+makedepends="$depends_dev libbsd-dev"
+install=""
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::$url/archive/v$pkgver.tar.gz"
+
+_builddir="$srcdir/$pkgname-$pkgver"
+build() {
+ cd "$_builddir"
+ make PREFIX=/usr
+}
+
+package() {
+ cd "$_builddir"
+ make PREFIX=/usr DESTDIR="$pkgdir" install
+}
+md5sums="a3549f7cb08891ba18776befe2dd24e3 fortune-0.1.tar.gz"
+sha256sums="5d593c8a25388b918e0f54486c6d9f9bbeb7841f825cdcc6da433153a92573a1 fortune-0.1.tar.gz"
+sha512sums="11c883aef8fafea6237fcd1b45fbbb169d6996a253f1def720dd9379c4bfe1bad050789c6e89eb7f1960abde54fe04d85fd13148bd0af8528de630611c0e6e48 fortune-0.1.tar.gz"
diff --git a/community/fvwm/APKBUILD b/community/fvwm/APKBUILD
new file mode 100644
index 00000000000..e0a5aeb460a
--- /dev/null
+++ b/community/fvwm/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: ScrumpyJack <scrumpyjack@st.ilet.to>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+pkgname=fvwm
+pkgver=2.6.6
+pkgrel=0
+pkgdesc="FVWM is a powerful desktop window manager for the X Window system"
+url="http://fvwm.org"
+arch="all"
+license="GPL2"
+depends=
+depends_dev="libxcursor-dev libx11-dev freetype-dev fontconfig-dev
+ gettext-dev libxft-dev libxt-dev libxext-dev libpng-dev libxpm-dev"
+makedepends="$depends_dev perl libxslt"
+install=""
+subpackages="$pkgname-doc $pkgname-lang"
+source="https://github.com/fvwmorg/fvwm/releases/download/version-2_6_6/$pkgname-$pkgver.tar.gz"
+
+_builddir=$srcdir/${pkgname}-${pkgver}
+prepare() {
+ local i
+ cd "$_builddir"
+ for i in $source; do
+ case $i in
+ *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+ esac
+ done
+}
+
+build() {
+ cd "$_builddir"
+ ./configure --prefix=/usr \
+ --disable-perllib \
+ --disable-bidi \
+ --disable-rsvg \
+ --disable-xinerama \
+ --disable-gtk \
+ --with-gnome=no \
+ || return 1
+ make
+}
+
+package() {
+ cd "$_builddir"
+ make DESTDIR="$pkgdir" install || return 1
+}
+
+md5sums="76e8731bf02ba0b73cfbbf7628f2230f fvwm-2.6.6.tar.gz"
+sha256sums="c5de085ff25b2128a401a80225481e63335f815f84eea139f80a5f66e606dc2c fvwm-2.6.6.tar.gz"
+sha512sums="9a3b188fa052f1fc2ca593be323916d8d728f1f1633b02058f4cce96cebb3c98de2a179b73e1dd6fb65a4275329f54cd720fcc3ac05ef0ec7299b7bc7cbfc116 fvwm-2.6.6.tar.gz"
diff --git a/community/geary/APKBUILD b/community/geary/APKBUILD
new file mode 100644
index 00000000000..e020a78596c
--- /dev/null
+++ b/community/geary/APKBUILD
@@ -0,0 +1,56 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=geary
+pkgver=0.10.0
+pkgrel=0
+pkgdesc="A lightweight email program designed around conversations"
+url="http://yorba.org/geary/"
+arch="all"
+license="LGPLv2+"
+depends="hicolor-icon-theme gsettings-desktop-schemas"
+depends_dev=""
+makedepends="$depends_dev"
+makedepends="$depends_dev cmake vala gtk+3.0-dev gmime-dev libgee-dev
+ desktop-file-utils libunique3-dev libcanberra-dev libsecret-dev
+ webkitgtk-dev libnotify-dev gobject-introspection-dev gtk-doc
+ paxmark gcr-dev"
+
+install=""
+subpackages="$pkgname-lang"
+source="https://download.gnome.org/sources/geary/${pkgver%.*}/geary-$pkgver.tar.xz"
+
+_builddir="$srcdir"/geary-$pkgver
+prepare() {
+ local i
+ cd "$_builddir"
+ for i in $source; do
+ case $i in
+ *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+ esac
+ done
+}
+
+build() {
+ cd "$_builddir"
+ cmake . \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DGSETTINGS_COMPILE=OFF \
+ -DGSETTINGS_COMPILE_IN_PLACE=OFF \
+ -DICON_UPDATE=OFF \
+ -DDESKTOP_UPDATE=OFF \
+ || return 1
+ make || return 1
+}
+
+package() {
+ cd "$_builddir"
+ make DESTDIR="$pkgdir" install || return 1
+
+ # webkit JIT has problems with hardened kernel
+ paxmark -m "$pkgdir"/usr/bin/geary || return 1
+
+}
+
+md5sums="c9735cb5eb53384c0c9d40ff815ed232 geary-0.10.0.tar.xz"
+sha256sums="46197a5a1b8b040adcee99082dbfd9fff9ca804e3bf0055a2e90b13214bdbca5 geary-0.10.0.tar.xz"
+sha512sums="9126acb3608f7aac9236f7d38f5ca549fe04427e244bbff093d06095e09d0ae642ed8e5722325f152a40d3c642a5f31035fca1685749fbe311c4bf3965ee3256 geary-0.10.0.tar.xz"
diff --git a/community/h2o/APKBUILD b/community/h2o/APKBUILD
new file mode 100644
index 00000000000..e8621084028
--- /dev/null
+++ b/community/h2o/APKBUILD
@@ -0,0 +1,61 @@
+# Contributor: Bennett Goble <nivardus@gmail.com>
+# Maintainer: Bennett Goble <nivardus@gmail.com>
+pkgname=h2o
+pkgver=2.0.0
+pkgrel=0
+pkgdesc="An optimized HTTP/1, HTTP/2 server written in C"
+url="https://h2o.examp1e.net"
+arch="all"
+license="MIT"
+depends="perl"
+makedepends="cmake wslay-dev openssl-dev libuv-dev yaml-dev"
+install="$pkgname.pre-install"
+subpackages="$pkgname-dev $pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/$pkgname/$pkgname/archive/v$pkgver.tar.gz
+ h2o.conf
+ h2o.initd
+ h2o.logrotate"
+
+_builddir="$srcdir/$pkgname-$pkgver"
+prepare() {
+ cd "$_builddir"
+ cmake -DBUILD_SHARED_LIBS=on -DCMAKE_INSTALL_PREFIX=/usr . || return 1
+}
+
+build() {
+ cd "$_builddir"
+ make -j1 || return 1
+ make libh2o || return 1
+}
+
+package() {
+ cd "$_builddir"
+ make DESTDIR="$pkgdir" install || return 1
+
+ install -m755 -D "$srcdir"/$pkgname.initd \
+ "$pkgdir/etc/init.d/$pkgname" || return 1
+
+ install -m644 -D "$srcdir"/$pkgname.logrotate \
+ "$pkgdir"/etc/logrotate.d/$pkgname || return 1
+
+ install -m644 -D "$srcdir"/$pkgname.conf \
+ "$pkgdir"/etc/$pkgname.conf || return 1
+
+ install -m644 -D "$_builddir"/examples/doc_root/index.html \
+ "$pkgdir"/var/www/index.html || return 1
+
+ install -m700 -d "$pkgdir"/var/log/$pkgname || return 1
+}
+
+md5sums="c7a3cbffc31a70f5e99084bb0ecf4918 h2o-2.0.0.tar.gz
+7d986844504a8106732d0128063faea0 h2o.conf
+a1ad5f38f26603bd673106e7d6848469 h2o.initd
+bb8f7d3d7589b6fca65b563f984cddda h2o.logrotate"
+sha256sums="068cc88fe7313ea3c637764abc296629f6c9250e12b714f5629065bdc49d28c8 h2o-2.0.0.tar.gz
+05a712800b959aa3440307afdcd7a3a6ab8c17f48e1bfa3751a87cc67baf8737 h2o.conf
+707c02f7f47590e5bbea5688e2a5ca014a861dfdd4e0013f64094cb45d3ac397 h2o.initd
+43c3bacfddd1fc6c3c9a985e915bfd555e6282b27bb8da8862272d187490832e h2o.logrotate"
+sha512sums="ce57fa5bffad0a744b6f5a39c0f6d7efcbc769e074c6c729f412dba25f338770e93998ea9989863a89ed13f62c2c63c17c31ccb4f5ec40710609fbcb8ff1cf23 h2o-2.0.0.tar.gz
+444f55c3eaae1f349223036086e45c983ea8be89e793068537ec25488c4065174bc509d0987ddc65a0357cb8acfec272e90d13ea7cdadf9cf112953d857aa574 h2o.conf
+e93e66a6b00b1bff94e37489c5fdf99d9d657adc63975ec54be30f8da23dafe7d7389f02a6452ed819efc9d8398aa716782a7fd6d8509621a975ed954b73bef9 h2o.initd
+3d2c9e36c48cbb974d0691e4af8e9eb8f13e3bebb98a30417cdc87e76a4b5cddc4e4f665ebea26b95174287b95d002fdc3363f30ffcf15247fcd0530fe1abfcc h2o.logrotate"
diff --git a/community/h2o/h2o.conf b/community/h2o/h2o.conf
new file mode 100644
index 00000000000..448709c67a1
--- /dev/null
+++ b/community/h2o/h2o.conf
@@ -0,0 +1,13 @@
+user: h2o
+pid-file: /var/run/h2o.pid
+error-log: /var/log/h2o/error.log
+access-log: /var/log/h2o/access.log
+
+listen:
+ port: 80
+hosts:
+ "Default":
+ paths:
+ /:
+ file.dir: /var/www
+
diff --git a/community/h2o/h2o.initd b/community/h2o/h2o.initd
new file mode 100644
index 00000000000..47e301d3349
--- /dev/null
+++ b/community/h2o/h2o.initd
@@ -0,0 +1,45 @@
+#!/sbin/openrc-run
+
+extra_started_commands="reload"
+extra_commands="configtest"
+conffile=/etc/h2o.conf
+pidfile=/var/run/h2o.pid
+command=/usr/bin/h2o
+command_args="-c $conffile -m master"
+
+depend() {
+ need net
+ after sshd
+ use dns logger netmount
+}
+
+start_pre() {
+ configtest || return 1
+}
+
+start() {
+ ebegin "Starting h2o"
+ start-stop-daemon --start \
+ --background \
+ --pidfile ${pidfile} \
+ --exec ${command} \
+ -- ${command_args}
+ eend $?
+}
+
+reload() {
+ configtest || return 1
+ ebegin "Refreshing h2o configuration"
+ kill -HUP `cat $pidfile` &>/dev/null
+ eend $? "Failed to reload h2o"
+}
+
+configtest() {
+ ebegin "Checking h2o configuration"
+
+ if [ ! -f "${conffile}" ]; then
+ ewarn "${conffile} does not exist."
+ return 1
+ fi
+}
+
diff --git a/community/h2o/h2o.logrotate b/community/h2o/h2o.logrotate
new file mode 100644
index 00000000000..5139fa4a03e
--- /dev/null
+++ b/community/h2o/h2o.logrotate
@@ -0,0 +1,8 @@
+/var/log/h2o/*.log {
+ missingok
+ sharedscripts
+ delaycompress
+ postrotate
+ /etc/init.d/h2o reload > /dev/null
+ endscript
+}
diff --git a/community/h2o/h2o.pre-install b/community/h2o/h2o.pre-install
new file mode 100644
index 00000000000..9af1c4ca671
--- /dev/null
+++ b/community/h2o/h2o.pre-install
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+adduser -S -D -H -h /var/www -s /sbin/nologin -g h2o h2o 2>/dev/null
+addgroup -S -g 82 www-data 2>/dev/null
+addgroup h2o www-data 2>/dev/null
+
+exit 0
diff --git a/community/heirloom-mailx/0001-outof-Introduce-expandaddr-flag.patch b/community/heirloom-mailx/0001-outof-Introduce-expandaddr-flag.patch
new file mode 100644
index 00000000000..c56e8a79a73
--- /dev/null
+++ b/community/heirloom-mailx/0001-outof-Introduce-expandaddr-flag.patch
@@ -0,0 +1,65 @@
+>From 9984ae5cb0ea0d61df1612b06952a61323c083d9 Mon Sep 17 00:00:00 2001
+From: Florian Weimer <fweimer () redhat com>
+Date: Mon, 17 Nov 2014 11:13:38 +0100
+Subject: [PATCH 1/4] outof: Introduce expandaddr flag
+
+Document that address expansion is disabled unless the expandaddr
+binary option is set.
+
+This has been assigned CVE-2014-7844 for BSD mailx, but it is not
+a vulnerability in Heirloom mailx because this feature was documented.
+---
+ mailx.1 | 14 ++++++++++++++
+ names.c | 3 +++
+ 2 files changed, 17 insertions(+)
+
+diff --git a/mailx.1 b/mailx.1
+index 70a7859..22a171b 100644
+--- a/mailx.1
++++ b/mailx.1
+@@ -656,6 +656,14 @@ but any reply returned to the machine
+ will have the system wide alias expanded
+ as all mail goes through sendmail.
+ .SS "Recipient address specifications"
++If the
++.I expandaddr
++option is not set (the default), recipient addresses must be names of
++local mailboxes or Internet mail addresses.
++.PP
++If the
++.I expandaddr
++option is set, the following rules apply:
+ When an address is used to name a recipient
+ (in any of To, Cc, or Bcc),
+ names of local mail folders
+@@ -2391,6 +2399,12 @@ and exits immediately.
+ If this option is set,
+ \fImailx\fR starts even with an empty mailbox.
+ .TP
++.B expandaddr
++Causes
++.I mailx
++to expand message recipient addresses, as explained in the section,
++Recipient address specifications.
++.TP
+ .B flipr
+ Exchanges the
+ .I Respond
+diff --git a/names.c b/names.c
+index 66e976b..c69560f 100644
+--- a/names.c
++++ b/names.c
+@@ -268,6 +268,9 @@ outof(struct name *names, FILE *fo, struct header *hp)
+ FILE *fout, *fin;
+ int ispipe;
+
++ if (value("expandaddr") == NULL)
++ return names;
++
+ top = names;
+ np = names;
+ time(&now);
+--
+1.9.3
+
+
diff --git a/community/heirloom-mailx/0002-unpack-Disable-option-processing-for-email-addresses.patch b/community/heirloom-mailx/0002-unpack-Disable-option-processing-for-email-addresses.patch
new file mode 100644
index 00000000000..9baf6088a03
--- /dev/null
+++ b/community/heirloom-mailx/0002-unpack-Disable-option-processing-for-email-addresses.patch
@@ -0,0 +1,75 @@
+>From e34e2ac67b80497080ebecccec40c3b61456167d Mon Sep 17 00:00:00 2001
+From: Florian Weimer <fweimer () redhat com>
+Date: Mon, 17 Nov 2014 11:14:06 +0100
+Subject: [PATCH 2/4] unpack: Disable option processing for email addresses
+ when calling sendmail
+
+---
+ extern.h | 2 +-
+ names.c | 8 ++++++--
+ sendout.c | 2 +-
+ 3 files changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/extern.h b/extern.h
+index 6b85ba0..8873fe8 100644
+--- a/extern.h
++++ b/extern.h
+@@ -396,7 +396,7 @@ struct name *outof(struct name *names, FILE *fo, struct header *hp);
+ int is_fileaddr(char *name);
+ struct name *usermap(struct name *names);
+ struct name *cat(struct name *n1, struct name *n2);
+-char **unpack(struct name *np);
++char **unpack(struct name *smopts, struct name *np);
+ struct name *elide(struct name *names);
+ int count(struct name *np);
+ struct name *delete_alternates(struct name *np);
+diff --git a/names.c b/names.c
+index c69560f..45bbaed 100644
+--- a/names.c
++++ b/names.c
+@@ -549,7 +549,7 @@ cat(struct name *n1, struct name *n2)
+ * Return an error if the name list won't fit.
+ */
+ char **
+-unpack(struct name *np)
++unpack(struct name *smopts, struct name *np)
+ {
+ char **ap, **top;
+ struct name *n;
+@@ -564,7 +564,7 @@ unpack(struct name *np)
+ * the terminating 0 pointer. Additional spots may be needed
+ * to pass along -f to the host mailer.
+ */
+- extra = 2;
++ extra = 3 + count(smopts);
+ extra++;
+ metoo = value("metoo") != NULL;
+ if (metoo)
+@@ -581,6 +581,10 @@ unpack(struct name *np)
+ *ap++ = "-m";
+ if (verbose)
+ *ap++ = "-v";
++ for (; smopts != NULL; smopts = smopts->n_flink)
++ if ((smopts->n_type & GDEL) == 0)
++ *ap++ = smopts->n_name;
++ *ap++ = "--";
+ for (; n != NULL; n = n->n_flink)
+ if ((n->n_type & GDEL) == 0)
+ *ap++ = n->n_name;
+diff --git a/sendout.c b/sendout.c
+index 7b7f2eb..c52f15d 100644
+--- a/sendout.c
++++ b/sendout.c
+@@ -835,7 +835,7 @@ start_mta(struct name *to, struct name *mailargs, FILE *input,
+ #endif /* HAVE_SOCKETS */
+
+ if ((smtp = value("smtp")) == NULL) {
+- args = unpack(cat(mailargs, to));
++ args = unpack(mailargs, to);
+ if (debug || value("debug")) {
+ printf(catgets(catd, CATSET, 181,
+ "Sendmail arguments:"));
+--
+1.9.3
+
+
diff --git a/community/heirloom-mailx/0003-fio_c-Unconditionally-require-wordexp-support.patch b/community/heirloom-mailx/0003-fio_c-Unconditionally-require-wordexp-support.patch
new file mode 100644
index 00000000000..05fe00f2cbe
--- /dev/null
+++ b/community/heirloom-mailx/0003-fio_c-Unconditionally-require-wordexp-support.patch
@@ -0,0 +1,109 @@
+>From 2bae8ecf04ec2ba6bb9f0af5b80485dd0edb427d Mon Sep 17 00:00:00 2001
+From: Florian Weimer <fweimer () redhat com>
+Date: Mon, 17 Nov 2014 12:48:25 +0100
+Subject: [PATCH 3/4] fio.c: Unconditionally require wordexp support
+
+---
+ fio.c | 67 +++++--------------------------------------------------------------
+ 1 file changed, 5 insertions(+), 62 deletions(-)
+
+diff --git a/fio.c b/fio.c
+index 65e8f10..1529236 100644
+--- a/fio.c
++++ b/fio.c
+@@ -43,12 +43,15 @@ static char sccsid[] = "@(#)fio.c 2.76 (gritter) 9/16/09";
+ #endif /* not lint */
+
+ #include "rcv.h"
++
++#ifndef HAVE_WORDEXP
++#error wordexp support is required
++#endif
++
+ #include <sys/stat.h>
+ #include <sys/file.h>
+ #include <sys/wait.h>
+-#ifdef HAVE_WORDEXP
+ #include <wordexp.h>
+-#endif /* HAVE_WORDEXP */
+ #include <unistd.h>
+
+ #if defined (USE_NSS)
+@@ -481,7 +484,6 @@ next:
+ static char *
+ globname(char *name)
+ {
+-#ifdef HAVE_WORDEXP
+ wordexp_t we;
+ char *cp;
+ sigset_t nset;
+@@ -527,65 +529,6 @@ globname(char *name)
+ }
+ wordfree(&we);
+ return cp;
+-#else /* !HAVE_WORDEXP */
+- char xname[PATHSIZE];
+- char cmdbuf[PATHSIZE]; /* also used for file names */
+- int pid, l;
+- char *cp, *shell;
+- int pivec[2];
+- extern int wait_status;
+- struct stat sbuf;
+-
+- if (pipe(pivec) < 0) {
+- perror("pipe");
+- return name;
+- }
+- snprintf(cmdbuf, sizeof cmdbuf, "echo %s", name);
+- if ((shell = value("SHELL")) == NULL)
+- shell = SHELL;
+- pid = start_command(shell, 0, -1, pivec[1], "-c", cmdbuf, NULL);
+- if (pid < 0) {
+- close(pivec[0]);
+- close(pivec[1]);
+- return NULL;
+- }
+- close(pivec[1]);
+-again:
+- l = read(pivec[0], xname, sizeof xname);
+- if (l < 0) {
+- if (errno == EINTR)
+- goto again;
+- perror("read");
+- close(pivec[0]);
+- return NULL;
+- }
+- close(pivec[0]);
+- if (wait_child(pid) < 0 && WTERMSIG(wait_status) != SIGPIPE) {
+- fprintf(stderr, catgets(catd, CATSET, 81,
+- "\"%s\": Expansion failed.\n"), name);
+- return NULL;
+- }
+- if (l == 0) {
+- fprintf(stderr, catgets(catd, CATSET, 82,
+- "\"%s\": No match.\n"), name);
+- return NULL;
+- }
+- if (l == sizeof xname) {
+- fprintf(stderr, catgets(catd, CATSET, 83,
+- "\"%s\": Expansion buffer overflow.\n"), name);
+- return NULL;
+- }
+- xname[l] = 0;
+- for (cp = &xname[l-1]; *cp == '\n' && cp > xname; cp--)
+- ;
+- cp[1] = '\0';
+- if (strchr(xname, ' ') && stat(xname, &sbuf) < 0) {
+- fprintf(stderr, catgets(catd, CATSET, 84,
+- "\"%s\": Ambiguous.\n"), name);
+- return NULL;
+- }
+- return savestr(xname);
+-#endif /* !HAVE_WORDEXP */
+ }
+
+ /*
+--
+1.9.3
+
+
diff --git a/community/heirloom-mailx/0004-globname-Invoke-wordexp-with-WRDE_NOCMD-CVE-2004-277.patch b/community/heirloom-mailx/0004-globname-Invoke-wordexp-with-WRDE_NOCMD-CVE-2004-277.patch
new file mode 100644
index 00000000000..173378f36a1
--- /dev/null
+++ b/community/heirloom-mailx/0004-globname-Invoke-wordexp-with-WRDE_NOCMD-CVE-2004-277.patch
@@ -0,0 +1,26 @@
+>From 73fefa0c1ac70043ec84f2d8b8f9f683213f168d Mon Sep 17 00:00:00 2001
+From: Florian Weimer <fweimer () redhat com>
+Date: Mon, 17 Nov 2014 13:11:32 +0100
+Subject: [PATCH 4/4] globname: Invoke wordexp with WRDE_NOCMD (CVE-2004-2771)
+
+---
+ fio.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/fio.c b/fio.c
+index 1529236..774a204 100644
+--- a/fio.c
++++ b/fio.c
+@@ -497,7 +497,7 @@ globname(char *name)
+ sigemptyset(&nset);
+ sigaddset(&nset, SIGCHLD);
+ sigprocmask(SIG_BLOCK, &nset, NULL);
+- i = wordexp(name, &we, 0);
++ i = wordexp(name, &we, WRDE_NOCMD);
+ sigprocmask(SIG_UNBLOCK, &nset, NULL);
+ switch (i) {
+ case 0:
+--
+1.9.3
+
+
diff --git a/community/heirloom-mailx/12.4-to-12.5pre.patch b/community/heirloom-mailx/12.4-to-12.5pre.patch
new file mode 100644
index 00000000000..9fd5c8fab00
--- /dev/null
+++ b/community/heirloom-mailx/12.4-to-12.5pre.patch
@@ -0,0 +1,1001 @@
+--- mailx-12.4/ChangeLog
++++ nail/ChangeLog
+@@ -1,3 +1,38 @@
++[12.5] as of 7/5/10
++* The undocumented contenttype-cntrl option works again (patch by
++ Laurent Parenteau).
++
++[12.5] as of 6/20/10
++* Fixed a message corruption that occurred when the "inc" command was used
++ with a mbox format mailbox after encrypted messages had been viewed
++ (reported by Martin Neitzel).
++* Fixed a condition that caused mailx to hang when looking at a message,
++ copying that message, and issuing a "z" command evaluating an uncached
++ portion of an IMAP folder.
++* Make it compile with OpenSSL 1.0.0-beta2 (patch by Bernhard Rosenkränzer).
++* When executing an "account" command, ensure that the values of the "hold",
++ "keepsave", "append", and "emptybox" variables remain those of the previous
++ account for all outstanding operations on that account (bug reported by
++ Jeff Woodall).
++* Support Gmail IMAP semantics of "delete" turning into "archive". Previously,
++ when mailx was setting the "\Deleted" flag on a message, it did not set any
++ other flags. This caused mails that had been read and then deleted to appear
++ as unread in Gmail's "All Mail". Now, flags besides "\Deleted" are also set,
++ so that they are kept in the archived copy (reported by Jeremy O'Brien).
++* For RFC 2047 MIME "encoded-word" parts in headers, assume that the end of
++ each word resets the conversion state (Yedidyah Bar-David).
++* When the ORGANIZATION variable has an empty value, do not generate an
++ "Organization:" header field. Previously, this condition resulted in
++ mailx refusing to send mail (Thomas E. Kammeyer).
++* When classifying messages with the junk filter, when selecting the most
++ representative tokens, prefer non-junk tokens over junk tokens if both
++ have the same (reversed) probability, in order to avoid false positives.
++* When calculating the probabilities of tokens that have occurred only in
++ good messages or only in junk messages so far, and these tokens occurred
++ less than ten times, give them slightly less than the minimum/maximum.
++* Fixed "unignore" and similar commands; they did not work at all so far
++ (http://www.freebsd.org/cgi/query-pr.cgi?pr=146280).
++
+ [12.4] released 7/29/08
+ * With the "-E" command line option or if the "skipemptybody" variable is
+ set, outgoing messages that contain no text in their first or only part
+--- mailx-12.4/cmd2.c
++++ nail/cmd2.c
+@@ -38,7 +38,7 @@
+
+ #ifndef lint
+ #ifdef DOSCCS
+-static char sccsid[] = "@(#)cmd2.c 2.46 (gritter) 3/4/06";
++static char sccsid[] = "@(#)cmd2.c 2.47 (gritter) 5/9/10";
+ #endif
+ #endif /* not lint */
+
+@@ -803,16 +803,17 @@
+ int h = hash(name);
+
+ for (ip = tab->i_head[h]; ip; ip = ip->i_link) {
+- if (asccasecmp(ip->i_field, name)) {
++ if (asccasecmp(ip->i_field, name) == 0) {
+ free(ip->i_field);
+ if (iq != NULL)
+ iq->i_link = ip->i_link;
+ else
+- tab->i_head[h] = NULL;
++ tab->i_head[h] = ip->i_link;
+ free(ip);
+ tab->i_count--;
+ break;
+ }
++ iq = ip;
+ }
+ }
+
+--- mailx-12.4/cmd3.c
++++ nail/cmd3.c
+@@ -38,7 +38,7 @@
+
+ #ifndef lint
+ #ifdef DOSCCS
+-static char sccsid[] = "@(#)cmd3.c 2.86 (gritter) 10/1/07";
++static char sccsid[] = "@(#)cmd3.c 2.87 (gritter) 10/1/08";
+ #endif
+ #endif /* not lint */
+
+@@ -1311,7 +1311,7 @@
+ char **args = (char **)v;
+ struct oldaccount *a;
+ char *cp;
+- int i, mc;
++ int i, mc, oqf, nqf;
+ FILE *fp = stdout;
+
+ if (args[0] == NULL) {
+@@ -1345,6 +1345,7 @@
+ return define1(args[0], 1);
+ }
+ strncpy(mboxname, expand("&"), sizeof mboxname)[sizeof mboxname-1]='\0';
++ oqf = savequitflags();
+ if ((a = get_oldaccount(args[0])) == NULL) {
+ if (args[1]) {
+ a = scalloc(1, sizeof *a);
+@@ -1368,8 +1369,13 @@
+ unset_allow_undefined = 1;
+ set(a->ac_vars);
+ unset_allow_undefined = 0;
+- setf: if (!starting)
+- return file1("%");
++ setf: if (!starting) {
++ nqf = savequitflags();
++ restorequitflags(oqf);
++ i = file1("%");
++ restorequitflags(nqf);
++ return i;
++ }
+ }
+ return 0;
+ }
+--- mailx-12.4/extern.h
++++ nail/extern.h
+@@ -35,7 +35,7 @@
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+- * Sccsid @(#)extern.h 2.161 (gritter) 10/1/07
++ * Sccsid @(#)extern.h 2.162 (gritter) 10/1/08
+ */
+
+ /* aux.c */
+@@ -446,6 +446,8 @@
+ void quit(void);
+ int holdbits(void);
+ enum okay makembox(void);
++int savequitflags(void);
++void restorequitflags(int);
+ /* send.c */
+ char *foldergets(char **s, size_t *size, size_t *count, size_t *llen,
+ FILE *stream);
+@@ -513,12 +515,12 @@
+ void demail(void);
+ char *username(void);
+ /* vars.c */
+-void assign(char *name, char *value);
++void assign(const char *name, const char *value);
+ char *vcopy(const char *str);
+ char *value(const char *name);
+ struct grouphead *findgroup(char *name);
+ void printgroup(char *name);
+ int hash(const char *name);
+-int unset_internal(char *name);
++int unset_internal(const char *name);
+ void remove_group(const char *name);
+ /* version.c */
+--- mailx-12.4/fio.c
++++ nail/fio.c
+@@ -38,7 +38,7 @@
+
+ #ifndef lint
+ #ifdef DOSCCS
+-static char sccsid[] = "@(#)fio.c 2.73 (gritter) 1/7/08";
++static char sccsid[] = "@(#)fio.c 2.76 (gritter) 9/16/09";
+ #endif
+ #endif /* not lint */
+
+@@ -108,6 +108,7 @@
+ memset(&this, 0, sizeof this);
+ this.m_flag = MUSED|MNEW|MNEWEST;
+ filesize = mailsize - offset;
++ offset = ftell(mb.mb_otf);
+ for (;;) {
+ if (fgetline(&linebuf, &linesize, &filesize, &count, ibuf, 0)
+ == NULL) {
+@@ -1050,7 +1051,8 @@
+ NI_NUMERICHOST) != 0)
+ strcpy(hbuf, "unknown host");
+ fprintf(stderr, catgets(catd, CATSET, 192,
+- "Connecting to %s . . ."), hbuf);
++ "Connecting to %s:%s . . ."),
++ hbuf, portstr);
+ }
+ if ((sockfd = socket(res->ai_family, res->ai_socktype,
+ res->ai_protocol)) >= 0) {
+@@ -1068,26 +1070,25 @@
+ freeaddrinfo(res0);
+ #else /* !HAVE_IPv6_FUNCS */
+ if (port == 0) {
+- if ((ep = getservbyname((char *)portstr, "tcp")) == NULL) {
+- if (equal(portstr, "smtp"))
+- port = htons(25);
+- else if (equal(portstr, "smtps"))
+- port = htons(465);
+- else if (equal(portstr, "imap"))
+- port = htons(143);
+- else if (equal(portstr, "imaps"))
+- port = htons(993);
+- else if (equal(portstr, "pop3"))
+- port = htons(110);
+- else if (equal(portstr, "pop3s"))
+- port = htons(995);
+- else {
+- fprintf(stderr, catgets(catd, CATSET, 251,
+- "Unknown service: %s\n"), portstr);
+- return STOP;
+- }
+- } else
++ if (equal(portstr, "smtp"))
++ port = htons(25);
++ else if (equal(portstr, "smtps"))
++ port = htons(465);
++ else if (equal(portstr, "imap"))
++ port = htons(143);
++ else if (equal(portstr, "imaps"))
++ port = htons(993);
++ else if (equal(portstr, "pop3"))
++ port = htons(110);
++ else if (equal(portstr, "pop3s"))
++ port = htons(995);
++ else if ((ep = getservbyname((char *)portstr, "tcp")) != NULL)
+ port = ep->s_port;
++ else {
++ fprintf(stderr, catgets(catd, CATSET, 251,
++ "Unknown service: %s\n"), portstr);
++ return STOP;
++ }
+ } else
+ port = htons(port);
+ if (verbose)
+@@ -1109,7 +1110,8 @@
+ memcpy(&servaddr.sin_addr, *pptr, sizeof(struct in_addr));
+ if (verbose)
+ fprintf(stderr, catgets(catd, CATSET, 192,
+- "Connecting to %s . . ."), inet_ntoa(**pptr));
++ "Connecting to %s:%d . . ."),
++ inet_ntoa(**pptr), ntohs(port));
+ if (connect(sockfd, (struct sockaddr *)&servaddr, sizeof servaddr)
+ != 0) {
+ perror(catgets(catd, CATSET, 254, "could not connect"));
+--- mailx-12.4/imap.c
++++ nail/imap.c
+@@ -38,7 +38,7 @@
+
+ #ifndef lint
+ #ifdef DOSCCS
+-static char sccsid[] = "@(#)imap.c 1.219 (gritter) 1/6/08";
++static char sccsid[] = "@(#)imap.c 1.222 (gritter) 3/13/09";
+ #endif
+ #endif /* not lint */
+
+@@ -1821,57 +1821,62 @@
+ * reading their results.
+ */
+ needstat = stored > 0 && stored % 800 == 0;
++ /*
++ * Even if this message has been deleted, continue
++ * to set further flags. This is necessary to support
++ * Gmail semantics, where "delete" actually means
++ * "archive", and the flags are applied to the copy
++ * in "All Mail".
++ */
++ if ((m->m_flag&(MREAD|MSTATUS)) == (MREAD|MSTATUS)) {
++ imap_store(mp, m, m-message+1,
++ '+', "\\Seen", needstat);
++ stored++;
++ }
++ if (m->m_flag & MFLAG) {
++ imap_store(mp, m, m-message+1,
++ '+', "\\Flagged", needstat);
++ stored++;
++ }
++ if (m->m_flag & MUNFLAG) {
++ imap_store(mp, m, m-message+1,
++ '-', "\\Flagged", needstat);
++ stored++;
++ }
++ if (m->m_flag & MANSWER) {
++ imap_store(mp, m, m-message+1,
++ '+', "\\Answered", needstat);
++ stored++;
++ }
++ if (m->m_flag & MUNANSWER) {
++ imap_store(mp, m, m-message+1,
++ '-', "\\Answered", needstat);
++ stored++;
++ }
++ if (m->m_flag & MDRAFT) {
++ imap_store(mp, m, m-message+1,
++ '+', "\\Draft", needstat);
++ stored++;
++ }
++ if (m->m_flag & MUNDRAFT) {
++ imap_store(mp, m, m-message+1,
++ '-', "\\Draft", needstat);
++ stored++;
++ }
+ if (dodel) {
+ imap_delete(mp, m-message+1, m, needstat);
+ stored++;
+ gotcha++;
+- } else {
+- if ((m->m_flag&(MREAD|MSTATUS)) == (MREAD|MSTATUS)) {
+- imap_store(mp, m, m-message+1,
+- '+', "\\Seen", needstat);
+- stored++;
+- }
+- if (m->m_flag & MFLAG) {
+- imap_store(mp, m, m-message+1,
+- '+', "\\Flagged", needstat);
+- stored++;
+- }
+- if (m->m_flag & MUNFLAG) {
+- imap_store(mp, m, m-message+1,
+- '-', "\\Flagged", needstat);
+- stored++;
+- }
+- if (m->m_flag & MANSWER) {
+- imap_store(mp, m, m-message+1,
+- '+', "\\Answered", needstat);
+- stored++;
+- }
+- if (m->m_flag & MUNANSWER) {
+- imap_store(mp, m, m-message+1,
+- '-', "\\Answered", needstat);
+- stored++;
+- }
+- if (m->m_flag & MDRAFT) {
+- imap_store(mp, m, m-message+1,
+- '+', "\\Draft", needstat);
+- stored++;
+- }
+- if (m->m_flag & MUNDRAFT) {
+- imap_store(mp, m, m-message+1,
+- '-', "\\Draft", needstat);
+- stored++;
+- }
+- if (mp->mb_type != MB_CACHE ||
+- !edit && (!(m->m_flag&(MBOXED|MSAVED|MDELETED))
+- || (m->m_flag &
+- (MBOXED|MPRESERVE|MTOUCH)) ==
+- (MPRESERVE|MTOUCH)) ||
+- edit && !(m->m_flag & MDELETED))
+- held++;
+- if (m->m_flag & MNEW) {
+- m->m_flag &= ~MNEW;
+- m->m_flag |= MSTATUS;
+- }
++ } else if (mp->mb_type != MB_CACHE ||
++ !edit && (!(m->m_flag&(MBOXED|MSAVED|MDELETED))
++ || (m->m_flag &
++ (MBOXED|MPRESERVE|MTOUCH)) ==
++ (MPRESERVE|MTOUCH)) ||
++ edit && !(m->m_flag & MDELETED))
++ held++;
++ if (m->m_flag & MNEW) {
++ m->m_flag &= ~MNEW;
++ m->m_flag |= MSTATUS;
+ }
+ }
+ bypass: if (readstat != NULL)
+@@ -2571,6 +2576,7 @@
+ const char *qname;
+ enum okay ok = STOP;
+ int twice = 0;
++ int stored = 0;
+ FILE *queuefp = NULL;
+
+ if (mp->mb_type == MB_CACHE) {
+@@ -2629,20 +2635,38 @@
+ * ... and reset the flag to its initial value so that
+ * the 'exit' command still leaves the message unread.
+ */
+-out: if ((m->m_flag&(MREAD|MSTATUS)) == (MREAD|MSTATUS))
++out: if ((m->m_flag&(MREAD|MSTATUS)) == (MREAD|MSTATUS)) {
+ imap_store(mp, m, n, '-', "\\Seen", 0);
+- if (m->m_flag&MFLAG)
++ stored++;
++ }
++ if (m->m_flag&MFLAG) {
+ imap_store(mp, m, n, '-', "\\Flagged", 0);
+- if (m->m_flag&MUNFLAG)
++ stored++;
++ }
++ if (m->m_flag&MUNFLAG) {
+ imap_store(mp, m, n, '+', "\\Flagged", 0);
+- if (m->m_flag&MANSWER)
++ stored++;
++ }
++ if (m->m_flag&MANSWER) {
+ imap_store(mp, m, n, '-', "\\Answered", 0);
+- if (m->m_flag&MUNANSWER)
++ stored++;
++ }
++ if (m->m_flag&MUNANSWER) {
+ imap_store(mp, m, n, '+', "\\Answered", 0);
+- if (m->m_flag&MDRAFT)
++ stored++;
++ }
++ if (m->m_flag&MDRAFT) {
+ imap_store(mp, m, n, '-', "\\Draft", 0);
+- if (m->m_flag&MUNDRAFT)
++ stored++;
++ }
++ if (m->m_flag&MUNDRAFT) {
+ imap_store(mp, m, n, '+', "\\Draft", 0);
++ stored++;
++ }
++ if (stored) {
++ mp->mb_active |= MB_COMD;
++ imap_finish(mp);
++ }
+ return ok;
+ }
+
+--- mailx-12.4/junk.c
++++ nail/junk.c
+@@ -38,7 +38,7 @@
+
+ #ifndef lint
+ #ifdef DOSCCS
+-static char sccsid[] = "@(#)junk.c 1.73 (gritter) 3/4/06";
++static char sccsid[] = "@(#)junk.c 1.75 (gritter) 9/14/08";
+ #endif
+ #endif /* not lint */
+
+@@ -920,6 +920,10 @@
+ smin(1.0, nbad ? (float)b/nbad : 0.0));
+ p = smin(TOP, p);
+ p = smax(BOT, p);
++ if (p == TOP && b <= 10 && g == 0)
++ p -= BOT;
++ else if (p == BOT && g <= 10 && b == 0)
++ p += BOT;
+ } else if (g == 0 && b == 0)
+ p = DFL;
+ else
+@@ -1095,13 +1099,20 @@
+ if (h1 == best[i].hash1 && h2 == best[i].hash2)
+ break;
+ /*
+- * This selection prefers words from the end of the
+- * header and from the start of the body. It does
+- * probably not matter much at all, but gives at
+- * least the most interesting verbose output.
++ * For equal distance, this selection prefers
++ * words with a low probability, since a false
++ * negative is better than a false positive,
++ * and since experience has shown that false
++ * positives are more likely otherwise. Then,
++ * words from the end of the header and from
++ * the start of the body are preferred. This
++ * gives the most interesting verbose output.
+ */
+- if (d > best[i].dist || best[i].loc == HEADER &&
+- d >= best[i].dist) {
++ if (d > best[i].dist ||
++ d == best[i].dist &&
++ p < best[i].prob ||
++ best[i].loc == HEADER &&
++ d == best[i].dist) {
+ for (j = BEST-2; j >= i; j--)
+ best[j+1] = best[j];
+ best[i].dist = d;
+--- mailx-12.4/list.c
++++ nail/list.c
+@@ -38,7 +38,7 @@
+
+ #ifndef lint
+ #ifdef DOSCCS
+-static char sccsid[] = "@(#)list.c 2.61 (gritter) 01/07/07";
++static char sccsid[] = "@(#)list.c 2.62 (gritter) 12/11/08";
+ #endif
+ #endif /* not lint */
+
+@@ -438,7 +438,7 @@
+ if (!inhook)
+ printf(tback ?
+ "No previously marked messages.\n" :
+- "No messages satify (criteria).\n");
++ "No messages satisfy (criteria).\n");
+ markall_ret(-1)
+ }
+ }
+--- mailx-12.4/mailx.1
++++ nail/mailx.1
+@@ -34,9 +34,9 @@
+ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ .\" SUCH DAMAGE.
+ .\"
+-.\" Sccsid: @(#)mailx.1 2.326 (gritter) 10/1/07
++.\" Sccsid: @(#)mailx.1 2.329 (gritter) 10/9/10
+ .\"
+-.TH MAILX 1 "10/1/07" "Heirloom mailx 12.4" "User Commands"
++.TH MAILX 1 "10/9/10" "Heirloom mailx 12.5" "User Commands"
+ .SH NAME
+ mailx \- send and receive Internet mail
+ .SH SYNOPSIS
+@@ -418,6 +418,21 @@
+ .I address
+ All messages from
+ .IR address .
++By default, this is a case-sensitive search
++for the complete email address.
++If the
++.I allnet
++variable is set,
++only the local part of the addresses is evaluated for the comparison.
++Otherwise if the
++.I showname
++variable is set,
++a case-sensitive search for the complete real name
++of a sender is performed.
++The IMAP-style
++.BI (from\ address)
++expression can be used instead
++if substring matches are desired.
+ .TP
+ .BI ( criterion )
+ All messages that satisfy the given IMAP-style SEARCH
+@@ -3766,7 +3781,7 @@
+ .sp
+ .fi
+ which might cause
+-.N mailx
++.B mailx
+ to respond with, for example:
+ .nf
+ .sp
+--- mailx-12.4/makeconfig
++++ nail/makeconfig
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+
+ #
+-# Sccsid @(#)makeconfig 1.43 (gritter) 4/14/07
++# Sccsid @(#)makeconfig 1.44 (gritter) 5/26/09
+ #
+
+ tmp=___build$$
+@@ -393,6 +393,25 @@
+ !
+ fi
+
++if test x$have_openssl = xyes
++then
++ compile_check stack_of 'for STACK_OF()' '#define HAVE_STACK_OF' <<\!
++#include <openssl/ssl.h>
++#include <openssl/err.h>
++#include <openssl/x509v3.h>
++#include <openssl/x509.h>
++#include <openssl/rand.h>
++
++int main(void)
++{
++ STACK_OF(GENERAL_NAME) *gens = NULL;
++ printf("%p", gens); /* to make it used */
++ SSLv23_client_method();
++ PEM_read_PrivateKey(0, 0, 0, 0);
++ return 0;
++}
++!
++fi
+
+ cat >$tmp2.c <<\!
+ #include <gssapi/gssapi.h>
+--- mailx-12.4/mime.c
++++ nail/mime.c
+@@ -40,7 +40,7 @@
+ #ifdef DOSCCS
+ static char copyright[]
+ = "@(#) Copyright (c) 2000, 2002 Gunnar Ritter. All rights reserved.\n";
+-static char sccsid[] = "@(#)mime.c 2.69 (gritter) 6/29/08";
++static char sccsid[] = "@(#)mime.c 2.71 (gritter) 7/5/10";
+ #endif /* DOSCCS */
+ #endif /* not lint */
+
+@@ -788,8 +788,7 @@
+
+ *isclean = mime_isclean(fp);
+ if (*isclean & MIME_HASNUL ||
+- *contenttype && ascncasecmp(*contenttype, "text/", 5) ||
+- *contenttype == NULL && *isclean & MIME_CTRLCHAR) {
++ *contenttype && ascncasecmp(*contenttype, "text/", 5)) {
+ convert = CONV_TOB64;
+ if (*contenttype == NULL ||
+ ascncasecmp(*contenttype, "text/", 5) == 0)
+@@ -809,6 +808,7 @@
+ *contenttype = "application/octet-stream";
+ *charset = NULL;
+ } if (*isclean & MIME_CTRLCHAR) {
++ convert = CONV_TOB64;
+ /*
+ * RFC 2046 forbids control characters other than
+ * ^I or ^L in text/plain bodies. However, some
+@@ -1048,12 +1048,22 @@
+ uptr = nptr + outleft;
+ iptr = cout.s;
+ if (iconv_ft(fhicd, &iptr, &inleft,
+- &nptr, &outleft) != 0 &&
++ &nptr, &outleft) == (size_t)-1 &&
+ errno == E2BIG) {
+ iconv(fhicd, NULL, NULL, NULL, NULL);
+ mime_fromhdr_inc(inleft);
+ goto again;
+ }
++ /*
++ * For state-dependent encodings,
++ * reset the state here, assuming
++ * that states are restricted to
++ * single encoded-word parts.
++ */
++ while (iconv(fhicd, NULL, NULL,
++ &nptr, &outleft) == (size_t)-1 &&
++ errno == E2BIG)
++ mime_fromhdr_inc(16);
+ out->l += uptr - mptr - outleft;
+ q += uptr - mptr - outleft;
+ } else {
+@@ -1295,7 +1305,7 @@
+ isz = len;
+ op = cbuf;
+ osz = cbufsz;
+- if (iconv(iconvd, &ip, &isz, &op, &osz) != 0) {
++ if (iconv(iconvd, &ip, &isz, &op, &osz) == (size_t)-1) {
+ if (errno != E2BIG) {
+ ac_free(cbuf);
+ return 0;
+@@ -1489,7 +1499,8 @@
+ outleft = mptrsz;
+ nptr = mptr;
+ iptr = ptr;
+- if (iconv_ft(iconvd, &iptr, &inleft, &nptr, &outleft) != 0 &&
++ if (iconv_ft(iconvd, &iptr, &inleft, &nptr, &outleft) ==
++ (size_t)-1 &&
+ errno == E2BIG) {
+ iconv(iconvd, NULL, NULL, NULL, NULL);
+ ac_free(mptr);
+--- mailx-12.4/nail.rc
++++ nail/nail.rc
+@@ -4,7 +4,7 @@
+ # This file is not overwritten when 'make install' is run in
+ # the mailx build process again.
+
+-# Sccsid @(#)nail.rc 2.10 (gritter) 3/4/06
++# Sccsid @(#)nail.rc 2.11 (gritter) 8/2/08
+
+ # Do not forward to mbox by default since this is likely to be
+ # irritating for most users today.
+@@ -54,6 +54,9 @@
+
+ # If threaded mode is activated, automatically collapse thread.
+ set autocollapse
++
++# Mark messages that have been answered.
++set markanswered
+
+ # Hide some header fields which are uninteresting for most human readers.
+ ignore received in-reply-to message-id references
+--- mailx-12.4/openssl.c
++++ nail/openssl.c
+@@ -38,7 +38,7 @@
+
+ #ifndef lint
+ #ifdef DOSCCS
+-static char sccsid[] = "@(#)openssl.c 1.25 (gritter) 8/4/07";
++static char sccsid[] = "@(#)openssl.c 1.26 (gritter) 5/26/09";
+ #endif
+ #endif /* not lint */
+
+@@ -101,12 +101,17 @@
+ static int ssl_rand_init(void);
+ static void ssl_init(void);
+ static int ssl_verify_cb(int success, X509_STORE_CTX *store);
+-static SSL_METHOD *ssl_select_method(const char *uhp);
++static const SSL_METHOD *ssl_select_method(const char *uhp);
+ static void ssl_load_verifications(struct sock *sp);
+ static void ssl_certificate(struct sock *sp, const char *uhp);
+ static enum okay ssl_check_host(const char *server, struct sock *sp);
++#ifdef HAVE_STACK_OF
++static int smime_verify(struct message *m, int n, STACK_OF(X509) *chain,
++ X509_STORE *store);
++#else
+ static int smime_verify(struct message *m, int n, STACK *chain,
+ X509_STORE *store);
++#endif
+ static EVP_CIPHER *smime_cipher(const char *name);
+ static int ssl_password_cb(char *buf, int size, int rwflag, void *userdata);
+ static FILE *smime_sign_cert(const char *xname, const char *xname2, int warn);
+@@ -203,10 +208,10 @@
+ return 1;
+ }
+
+-static SSL_METHOD *
++static const SSL_METHOD *
+ ssl_select_method(const char *uhp)
+ {
+- SSL_METHOD *method;
++ const SSL_METHOD *method;
+ char *cp;
+
+ cp = ssl_method_string(uhp);
+@@ -308,7 +313,11 @@
+ X509 *cert;
+ X509_NAME *subj;
+ char data[256];
++#ifdef HAVE_STACK_OF
++ STACK_OF(GENERAL_NAME) *gens;
++#else
+ /*GENERAL_NAMES*/STACK *gens;
++#endif
+ GENERAL_NAME *gen;
+ int i;
+
+@@ -357,7 +366,8 @@
+
+ ssl_init();
+ ssl_set_vrfy_level(uhp);
+- if ((sp->s_ctx = SSL_CTX_new(ssl_select_method(uhp))) == NULL) {
++ if ((sp->s_ctx =
++ SSL_CTX_new((SSL_METHOD *)ssl_select_method(uhp))) == NULL) {
+ ssl_gen_err(catgets(catd, CATSET, 261, "SSL_CTX_new() failed"));
+ return STOP;
+ }
+@@ -496,7 +506,11 @@
+ }
+
+ static int
++#ifdef HAVE_STACK_OF
++smime_verify(struct message *m, int n, STACK_OF(X509) *chain, X509_STORE *store)
++#else
+ smime_verify(struct message *m, int n, STACK *chain, X509_STORE *store)
++#endif
+ {
+ struct message *x;
+ char *cp, *sender, *to, *cc, *cnttype;
+@@ -505,7 +519,12 @@
+ off_t size;
+ BIO *fb, *pb;
+ PKCS7 *pkcs7;
++#ifdef HAVE_STACK_OF
++ STACK_OF(X509) *certs;
++ STACK_OF(GENERAL_NAME) *gens;
++#else
+ STACK *certs, *gens;
++#endif
+ X509 *cert;
+ X509_NAME *subj;
+ char data[LINESIZE];
+@@ -614,7 +633,11 @@
+ {
+ int *msgvec = vp, *ip;
+ int ec = 0;
++#ifdef HAVE_STACK_OF
++ STACK_OF(X509) *chain = NULL;
++#else
+ STACK *chain = NULL;
++#endif
+ X509_STORE *store;
+ char *ca_dir, *ca_file;
+
+@@ -687,7 +710,11 @@
+ X509 *cert;
+ PKCS7 *pkcs7;
+ BIO *bb, *yb;
++#ifdef HAVE_STACK_OF
++ STACK_OF(X509) *certs;
++#else
+ STACK *certs;
++#endif
+ EVP_CIPHER *cipher;
+
+ certfile = expand((char *)certfile);
+@@ -950,9 +977,14 @@
+ off_t size;
+ BIO *fb, *pb;
+ PKCS7 *pkcs7;
++#ifdef HAVE_STACK_OF
++ STACK_OF(X509) *certs;
++ STACK_OF(X509) *chain = NULL;
++#else
+ STACK *certs;
+- X509 *cert;
+ STACK *chain = NULL;
++#endif
++ X509 *cert;
+ enum okay ok = OKAY;
+
+ message_number = n;
+--- mailx-12.4/quit.c
++++ nail/quit.c
+@@ -38,7 +38,7 @@
+
+ #ifndef lint
+ #ifdef DOSCCS
+-static char sccsid[] = "@(#)quit.c 2.28 (gritter) 3/4/06";
++static char sccsid[] = "@(#)quit.c 2.30 (gritter) 11/11/08";
+ #endif
+ #endif /* not lint */
+
+@@ -584,4 +584,47 @@
+
+ done:
+ relsesigs();
++}
++
++enum quitflags {
++ QUITFLAG_HOLD = 001,
++ QUITFLAG_KEEPSAVE = 002,
++ QUITFLAG_APPEND = 004,
++ QUITFLAG_EMPTYBOX = 010
++};
++
++static const struct quitnames {
++ enum quitflags flag;
++ const char *name;
++} quitnames[] = {
++ { QUITFLAG_HOLD, "hold" },
++ { QUITFLAG_KEEPSAVE, "keepsave" },
++ { QUITFLAG_APPEND, "append" },
++ { QUITFLAG_EMPTYBOX, "emptybox" },
++ { 0, NULL }
++};
++
++int
++savequitflags(void)
++{
++ enum quitflags qf = 0;
++ int i;
++
++ for (i = 0; quitnames[i].name; i++)
++ if (value(quitnames[i].name))
++ qf |= quitnames[i].flag;
++ return qf;
++}
++
++void
++restorequitflags(int qf)
++{
++ int i;
++
++ for (i = 0; quitnames[i].name; i++)
++ if (qf & quitnames[i].flag) {
++ if (value(quitnames[i].name) == NULL)
++ assign(quitnames[i].name, "");
++ } else if (value(quitnames[i].name))
++ unset_internal(quitnames[i].name);
+ }
+--- mailx-12.4/sendout.c
++++ nail/sendout.c
+@@ -38,7 +38,7 @@
+
+ #ifndef lint
+ #ifdef DOSCCS
+-static char sccsid[] = "@(#)sendout.c 2.99 (gritter) 7/4/08";
++static char sccsid[] = "@(#)sendout.c 2.100 (gritter) 3/1/09";
+ #endif
+ #endif /* not lint */
+
+@@ -1219,8 +1219,9 @@
+ if (putname(addr, w, action, &gotcha, "From:", fo,
+ &fromfield))
+ return 1;
+- if ((addr = hp->h_organization) != NULL ||
+- (addr = value("ORGANIZATION")) != NULL) {
++ if (((addr = hp->h_organization) != NULL ||
++ (addr = value("ORGANIZATION")) != NULL)
++ && strlen(addr) > 0) {
+ fwrite("Organization: ", sizeof (char), 14, fo);
+ if (mime_write(addr, strlen(addr), fo,
+ action == SEND_TODISP ?
+@@ -1269,7 +1270,8 @@
+ fwrite("Subject: ", sizeof (char), 9, fo);
+ if (ascncasecmp(hp->h_subject, "re: ", 4) == 0) {
+ fwrite("Re: ", sizeof (char), 4, fo);
+- if (mime_write(hp->h_subject + 4,
++ if (strlen(hp->h_subject + 4) > 0 &&
++ mime_write(hp->h_subject + 4,
+ strlen(hp->h_subject + 4),
+ fo, action == SEND_TODISP ?
+ CONV_NONE:CONV_TOHDR,
+--- mailx-12.4/vars.c
++++ nail/vars.c
+@@ -38,7 +38,7 @@
+
+ #ifndef lint
+ #ifdef DOSCCS
+-static char sccsid[] = "@(#)vars.c 2.11 (gritter) 3/4/06";
++static char sccsid[] = "@(#)vars.c 2.12 (gritter) 10/1/08";
+ #endif
+ #endif /* not lint */
+
+@@ -81,7 +81,7 @@
+ * Assign a value to a variable.
+ */
+ void
+-assign(char *name, char *value)
++assign(const char *name, const char *value)
+ {
+ struct var *vp;
+ int h;
+@@ -221,7 +221,7 @@
+ }
+
+ int
+-unset_internal(char *name)
++unset_internal(const char *name)
+ {
+ struct var *vp, *vp2;
+ int h;
+--- mailx-12.4/version.c
++++ nail/version.c
+@@ -1,4 +1,4 @@
+-#define V "12.4"
++#define V "12.5"
+ /*
+ * Heirloom mailx - a mail user agent derived from Berkeley Mail.
+ *
+@@ -39,7 +39,7 @@
+
+ #ifndef lint
+ #ifdef DOSCCS
+-static char sccsid[] = "@(#)version.c 2.386 (gritter) 7/29/08";
++static char sccsid[] = "@(#)version.c 2.404 (gritter) 7/5/10";
+ #endif
+ #endif /* not lint */
+
+@@ -48,7 +48,7 @@
+ * Load this file first to get a "total" Mail version.
+ */
+ /*char *version = "8.1 6/6/93";*/
+-const char *version = V " 7/29/08";
++const char *version = V " 7/5/10";
+ #ifndef lint
+ #if __GNUC__ >= 3 && __GNUC_MINOR__ >= 4 || __GNUC__ >= 4
+ #define USED __attribute__ ((used))
+@@ -57,7 +57,7 @@
+ #else
+ #define USED
+ #endif
+-static const char *versionid USED = "@(#)mailx " V " (gritter) 7/29/08";
++static const char *versionid USED = "@(#)mailx " V " (gritter) 7/5/10";
+ #endif /* !lint */
+ /* SLIST */
+ /*
+@@ -65,42 +65,42 @@
+ base64.c:static char sccsid[] = "@(#)base64.c 2.14 (gritter) 4/21/06";
+ cache.c:static char sccsid[] = "@(#)cache.c 1.61 (gritter) 3/4/06";
+ cmd1.c:static char sccsid[] = "@(#)cmd1.c 2.97 (gritter) 6/16/07";
+-cmd2.c:static char sccsid[] = "@(#)cmd2.c 2.46 (gritter) 3/4/06";
+-cmd3.c:static char sccsid[] = "@(#)cmd3.c 2.86 (gritter) 10/1/07";
++cmd2.c:static char sccsid[] = "@(#)cmd2.c 2.47 (gritter) 5/9/10";
++cmd3.c:static char sccsid[] = "@(#)cmd3.c 2.87 (gritter) 10/1/08";
+ cmdtab.c:static char sccsid[] = "@(#)cmdtab.c 2.51 (gritter) 3/4/06";
+ collect.c:static char sccsid[] = "@(#)collect.c 2.54 (gritter) 6/16/07";
+ def.h: * Sccsid @(#)def.h 2.104 (gritter) 3/4/06
+ dotlock.c:static char sccsid[] = "@(#)dotlock.c 2.9 (gritter) 3/20/06";
+ edit.c:static char sccsid[] = "@(#)edit.c 2.24 (gritter) 3/4/06";
+-extern.h: * Sccsid @(#)extern.h 2.161 (gritter) 10/1/07
+-fio.c:static char sccsid[] = "@(#)fio.c 2.73 (gritter) 1/7/08";
++extern.h: * Sccsid @(#)extern.h 2.162 (gritter) 10/1/08
++fio.c:static char sccsid[] = "@(#)fio.c 2.76 (gritter) 9/16/09";
+ getname.c:static char sccsid[] = "@(#)getname.c 2.5 (gritter) 3/4/06";
+ getopt.c: Sccsid @(#)getopt.c 1.7 (gritter) 12/16/07
+ glob.h: * Sccsid @(#)glob.h 2.27 (gritter) 6/16/07
+ head.c:static char sccsid[] = "@(#)head.c 2.17 (gritter) 3/4/06";
+ hmac.c: Sccsid @(#)hmac.c 1.8 (gritter) 3/4/06
+-imap.c:static char sccsid[] = "@(#)imap.c 1.219 (gritter) 1/6/08";
++imap.c:static char sccsid[] = "@(#)imap.c 1.222 (gritter) 3/13/09";
+ imap_gssapi.c:static char sccsid[] = "@(#)imap_gssapi.c 1.10 (gritter) 3/4/06";
+ imap_search.c:static char sccsid[] = "@(#)imap_search.c 1.29 (gritter) 3/4/06";
+-junk.c:static char sccsid[] = "@(#)junk.c 1.73 (gritter) 3/4/06";
++junk.c:static char sccsid[] = "@(#)junk.c 1.75 (gritter) 9/14/08";
+ lex.c:static char sccsid[] = "@(#)lex.c 2.86 (gritter) 12/25/06";
+-list.c:static char sccsid[] = "@(#)list.c 2.61 (gritter) 01/07/07";
++list.c:static char sccsid[] = "@(#)list.c 2.62 (gritter) 12/11/08";
+ lzw.c: * Sccsid @(#)lzw.c 1.11 (gritter) 3/4/06
+ macro.c:static char sccsid[] = "@(#)macro.c 1.13 (gritter) 3/4/06";
+ maildir.c:static char sccsid[] = "@(#)maildir.c 1.20 (gritter) 12/28/06";
+ main.c:static char sccsid[] = "@(#)main.c 2.51 (gritter) 10/1/07";
+ md5.c: Sccsid @(#)md5.c 1.8 (gritter) 3/4/06
+ md5.h: Sccsid @(#)md5.h 1.8 (gritter) 3/4/06
+-mime.c:static char sccsid[] = "@(#)mime.c 2.69 (gritter) 6/29/08";
++mime.c:static char sccsid[] = "@(#)mime.c 2.71 (gritter) 7/5/10";
+ names.c:static char sccsid[] = "@(#)names.c 2.22 (gritter) 3/4/06";
+ nss.c:static char sccsid[] = "@(#)nss.c 1.48 (gritter) 8/4/07";
+-openssl.c:static char sccsid[] = "@(#)openssl.c 1.25 (gritter) 8/4/07";
++openssl.c:static char sccsid[] = "@(#)openssl.c 1.26 (gritter) 5/26/09";
+ pop3.c:static char sccsid[] = "@(#)pop3.c 2.43 (gritter) 3/4/06";
+ popen.c:static char sccsid[] = "@(#)popen.c 2.20 (gritter) 3/4/06";
+-quit.c:static char sccsid[] = "@(#)quit.c 2.28 (gritter) 3/4/06";
++quit.c:static char sccsid[] = "@(#)quit.c 2.30 (gritter) 11/11/08";
+ rcv.h: * Sccsid @(#)rcv.h 2.7 (gritter) 3/4/06
+ send.c:static char sccsid[] = "@(#)send.c 2.86 (gritter) 2/4/08";
+-sendout.c:static char sccsid[] = "@(#)sendout.c 2.99 (gritter) 7/4/08";
++sendout.c:static char sccsid[] = "@(#)sendout.c 2.100 (gritter) 3/1/09";
+ smtp.c:static char sccsid[] = "@(#)smtp.c 2.43 (gritter) 8/4/07";
+ ssl.c:static char sccsid[] = "@(#)ssl.c 1.39 (gritter) 6/12/06";
+ strings.c:static char sccsid[] = "@(#)strings.c 2.6 (gritter) 3/4/06";
+@@ -108,5 +108,5 @@
+ thread.c:static char sccsid[] = "@(#)thread.c 1.57 (gritter) 3/4/06";
+ tty.c:static char sccsid[] = "@(#)tty.c 2.29 (gritter) 3/9/07";
+ v7.local.c:static char sccsid[] = "@(#)v7.local.c 2.10 (gritter) 3/4/06";
+-vars.c:static char sccsid[] = "@(#)vars.c 2.11 (gritter) 3/4/06";
++vars.c:static char sccsid[] = "@(#)vars.c 2.12 (gritter) 10/1/08";
+ */
diff --git a/community/heirloom-mailx/APKBUILD b/community/heirloom-mailx/APKBUILD
new file mode 100644
index 00000000000..cfb322fba49
--- /dev/null
+++ b/community/heirloom-mailx/APKBUILD
@@ -0,0 +1,66 @@
+# Contributor: Isaac Dunham <ibid.ag@gmail.com>
+# Maintainer: Isaac Dunham <ibid.ag@gmail.com>
+pkgname=heirloom-mailx
+pkgver=12.4
+pkgrel=0
+pkgdesc="A free clone of SysV mailx"
+url="http://heirloom.sourceforge.net/mailx.html"
+arch="all"
+license="BSD"
+depends=""
+makedepends="openssl-dev krb5-dev"
+install=""
+subpackages="$pkgname-doc"
+source="http://sourceforge.net/projects/heirloom/files/heirloom-mailx/$pkgver/mailx-$pkgver.tar.bz2
+ 12.4-to-12.5pre.patch
+ makevars.patch
+ 0001-outof-Introduce-expandaddr-flag.patch
+ 0002-unpack-Disable-option-processing-for-email-addresses.patch
+ 0003-fio_c-Unconditionally-require-wordexp-support.patch
+ 0004-globname-Invoke-wordexp-with-WRDE_NOCMD-CVE-2004-277.patch
+ "
+
+_builddir="$srcdir"/mailx-$pkgver
+prepare() {
+ local i
+ cd "$_builddir"
+ for i in $source; do
+ case $i in
+ *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+ esac
+ done
+}
+
+build() {
+ cd "$_builddir"
+ make || return 1
+}
+
+package() {
+ cd "$_builddir"
+ make DESTDIR="$pkgdir" install || return 1
+ install -Dm 0644 COPYING "$pkgdir"/usr/share/licenses/"$pkgname"/COPYING || return 1
+ cd "$pkgdir"/usr/share/man/man1/ && mv mailx.1 "$pkgname".1
+}
+
+md5sums="0c93759e34200eb56a0e7c464680a54a mailx-12.4.tar.bz2
+a4a91391ada32a7b87ff5255d2f06c47 12.4-to-12.5pre.patch
+75abf9efc9fabee598d5500951073cb6 makevars.patch
+268353d063e6c962f02672ecec9cb77b 0001-outof-Introduce-expandaddr-flag.patch
+011a9c9a7d208b363bd548b84c710fa4 0002-unpack-Disable-option-processing-for-email-addresses.patch
+7455da8174ac31a3d1c5afd1a37d7f2d 0003-fio_c-Unconditionally-require-wordexp-support.patch
+19eaa6ee08c45db17b48d65b3eaca78b 0004-globname-Invoke-wordexp-with-WRDE_NOCMD-CVE-2004-277.patch"
+sha256sums="92201e769fe346bc0364c87437a330ef3c97ab3e9d7b2235b93f509e85e5716a mailx-12.4.tar.bz2
+d3629782c2b4d676aadea823335a57c8ed5f86e6d6fde31b18313b9c070727bc 12.4-to-12.5pre.patch
+5df76dc08562bf12ab0c2ac1e32fe70f137c18258af29284448448f0b5848ace makevars.patch
+70c268a40d32215392c08f88c841a2125572879f954f4e165bbc8fe6ca1beff8 0001-outof-Introduce-expandaddr-flag.patch
+8bf07ea359daee7477765f1e4f4d7ba6d923a6937743f097a1940b87fe1bdd73 0002-unpack-Disable-option-processing-for-email-addresses.patch
+6902e1fb2c71b24d15db527e10e0bf6bc7e63a3048b7851174693cde92dddbc2 0003-fio_c-Unconditionally-require-wordexp-support.patch
+538285fabe1ede7f62013ced05b00b28e86b8c1543f6de73ee3b1c05a9c2ecec 0004-globname-Invoke-wordexp-with-WRDE_NOCMD-CVE-2004-277.patch"
+sha512sums="a0e29972f552bd630ce1a14f70e61661815118520bcd4a00b6cad53f3270d3d08c835ff6982ba8800eb380a5b46f54eb6e60fb7533b5f41c916af45d29605af8 mailx-12.4.tar.bz2
+c2435c18b3e972a77bbaa1b915cae567cafcd65cba1710cd78e7b934d33662361aa1e72fb99d0f109945c603ec847552345a4a5c3ec64dbc307cbb811a6d74d0 12.4-to-12.5pre.patch
+b831544e92b0262b6d5276cb7e78427cb33fd09bc3cb2ffc398cb3f930f05764bcecc8e5b1743554dadc5e0bd791d56b4a72b7a05089db7170437dd5254b9080 makevars.patch
+fc5a22bf17e998c5228ff581388a3e2f8ffad9c70b46f7e94edc63d304e5e9576b59c57df07dc7e40cf234fc8b89bf2c52248592ad834fc4b4d29e25a673edc8 0001-outof-Introduce-expandaddr-flag.patch
+b10a5ec515ba447e828dbf4562b07b65bc2c812f0d731b244f77cc43152bf14200e40d218ebb080fd820dc18ed4666c4f66de579b562a9231d8a0e95b4c0bb25 0002-unpack-Disable-option-processing-for-email-addresses.patch
+c41ad1e90ebc6060ce0a7badfde5fc01b87c4c0c9eacf7e2f55444212cbd93097b37a3e426bcdcb4a565c1b0d16010996d9aca1d61c0d918a1d4acb41754d516 0003-fio_c-Unconditionally-require-wordexp-support.patch
+bee2afb9f691a5c7b715eaa9adb14afbde0694235bb22449741f464812276c3f44d1b90e8b07255d1378b941d2b14133161a1575c40605b0911d8e28afaf578a 0004-globname-Invoke-wordexp-with-WRDE_NOCMD-CVE-2004-277.patch"
diff --git a/community/heirloom-mailx/makevars.patch b/community/heirloom-mailx/makevars.patch
new file mode 100644
index 00000000000..94d97eb850f
--- /dev/null
+++ b/community/heirloom-mailx/makevars.patch
@@ -0,0 +1,33 @@
+commit 31527ffd5d77c6cf21850bddd9ae7e97e37721ca
+Author: Isaac Dunham <ibid.ag@gmail.com>
+Date: Sat Sep 13 09:48:34 2014 -0700
+
+ Use more standard defaults
+
+diff --git a/Makefile b/Makefile
+index 5f4b124..05d0635 100644
+--- a/Makefile
++++ b/Makefile
+@@ -6,18 +6,18 @@
+ # See the file INSTALL if you need help.
+ #
+
+-PREFIX = /usr/local
++PREFIX = /usr
+ BINDIR = $(PREFIX)/bin
+ MANDIR = $(PREFIX)/share/man
+ SYSCONFDIR = /etc
+
+ MAILRC = $(SYSCONFDIR)/nail.rc
+-MAILSPOOL = /var/mail
+-SENDMAIL = /usr/lib/sendmail
++MAILSPOOL = /var/spool/mail
++SENDMAIL = /usr/sbin/sendmail
+
+ DESTDIR =
+
+-UCBINSTALL = /usr/ucb/install
++UCBINSTALL = /usr/bin/install
+
+ # Define compiler, preprocessor, and linker flags here.
+ # Note that some Linux/glibc versions need -D_GNU_SOURCE in CPPFLAGS, or
diff --git a/community/leafpad/APKBUILD b/community/leafpad/APKBUILD
new file mode 100644
index 00000000000..b1c48a80c80
--- /dev/null
+++ b/community/leafpad/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: August Klein <amatcoder@gmail.com>
+# Maintainer: August Klein <amatcoder@gmail.com>
+pkgname=leafpad
+pkgver=0.8.18.1
+pkgrel=0
+pkgdesc="A simple GTK+ text editor"
+url="http://tarot.freeshell.org/leafpad"
+arch="all"
+license="GPL2"
+depends=""
+depends_dev="gtk+2.0-dev"
+makedepends="$depends_dev"
+install=""
+subpackages="$pkgname-lang"
+source="http://download.savannah.gnu.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+
+_builddir="$srcdir"/${pkgname}-${pkgver}
+prepare() {
+ local i
+ cd "$_builddir"
+ for i in $source; do
+ case $i in
+ *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+ esac
+ done
+}
+
+build() {
+ cd "$_builddir"
+ ./configure --prefix=/usr --enable-chooser || return 1
+ make || return 1
+}
+
+package() {
+ cd "$_builddir"
+ chmod +x ./install-sh
+ make DESTDIR="$pkgdir" install || return 1
+}
+
+md5sums="254a72fc67505e3aa52884c729cd7b97 leafpad-0.8.18.1.tar.gz"
+sha256sums="959d22ae07f22803bc66ff40d373a854532a6e4732680bf8a96a3fbcb9f80a2c leafpad-0.8.18.1.tar.gz"
+sha512sums="1caad712967f634f585ab32e406534b5ce2c5621008c1eb5b2b48f17ca0f48cd834ea2ea1c67eda4053fa84e8727ff0e708e99d3b5dad838dcf0701389788257 leafpad-0.8.18.1.tar.gz"
diff --git a/community/nedit/APKBUILD b/community/nedit/APKBUILD
new file mode 100644
index 00000000000..83f71da8ff6
--- /dev/null
+++ b/community/nedit/APKBUILD
@@ -0,0 +1,66 @@
+# Contributor: Isaac Dunham <ibid.ag@gmail.com>
+# Maintainer:
+pkgname=nedit
+pkgver=5.6
+cvsver=cvs20081118
+pkgrel=0
+pkgdesc="The Nirvana Editor, a multi-purpose X11 editor that's easy to use"
+url="http://www.nedit.org"
+arch="all"
+license="GPL2+"
+depends=""
+depends_dev=""
+# perl for docs, bison and flex are used but may be optional
+makedepends="$depends_dev motif-dev bison flex perl"
+install=""
+subpackages="$pkgname-doc"
+#source="http://downloads.sourceforge.net/nedit/nedit-source/$pkgver/nedit-$pkgver-src.tar.gz"
+source="http://ftp.de.debian.org/debian/pool/main/n/nedit/nedit_$pkgver~$cvsver.orig.tar.gz
+http://ftp.de.debian.org/debian/pool/main/n/nedit/nedit_$pkgver~$cvsver-9.debian.tar.xz"
+
+_builddir="$srcdir/$pkgname-$pkgver.orig"
+prepare() {
+ local i
+ cd "$_builddir"
+ for i in $source; do
+ case $i in
+ *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+ esac
+ done
+ cat "$srcdir"/debian/patches/series | { while read i ; do
+ msg $i
+ patch -p1 -i "$srcdir"/debian/patches/$i || return 1
+ done; }
+ sed -e "s/CFLAGS=-O/CFLAGS=$CFLAGS -DBUILD_UNTESTED_NEDIT/g" -i makefiles/Makefile.linux
+}
+
+build() {
+ cd "$_builddir"
+ make linux || exit 1
+ make docs ||make -j1 docs || { env; exit 1; }
+}
+
+package() {
+ cd "$_builddir"
+ install -s -Dm 0755 source/nedit "$pkgdir"/usr/bin/nedit
+ install -s -Dm 0755 source/nc "$pkgdir"/usr/bin/nedit-nc
+}
+
+doc() {
+ cd "$_builddir"
+ install -Dm 0644 doc/nedit.man "$subpkgdir"/usr/share/man/man1/nedit.1
+ install -Dm 0644 doc/nc.man "$subpkgdir"/usr/share/man/man1/nedit-nc.1
+ mkdir -p "$subpkgdir"/usr/share/doc/nedit
+ for i in README COPYRIGHT ReleaseNotes \
+ doc/nedit.doc doc/nedit.html doc/faq.txt; do
+ install -Dm 0644 $i "$subpkgdir"/usr/share/doc/nedit || exit 1
+ done
+
+}
+
+md5sums="4d0ba8f4142d3f35ffec874470cf26dd nedit_5.6~cvs20081118.orig.tar.gz
+902fb6059205964f333ce821726dbdac nedit_5.6~cvs20081118-9.debian.tar.xz"
+sha256sums="cb90052aef7d5839b31e3b2c3374f156e4d1edb273cfbd037c4f9ab5de83cf6f nedit_5.6~cvs20081118.orig.tar.gz
+0f2305f731b1ca1538753ed2e36a2c04d3977e3cc2b69635667f56e087792db4 nedit_5.6~cvs20081118-9.debian.tar.xz"
+sha512sums="f531364bfb24e06f8eb45d44a119be44fdeb0f64c1a25f74af07676c8b274fdd56076086a85c00761ba74b7acd7d54e0443233d1def2f89a2bcaf46a9b1ed598 nedit_5.6~cvs20081118.orig.tar.gz
+a3962162ef8bdd79e8bf94f15bb7f7037d8354b263888cf3961f35ac4be7219f94e11ad86472156b222d00bc547793c6267a4f609acf52dc6146d3b1a4d5755f nedit_5.6~cvs20081118-9.debian.tar.xz"
diff --git a/community/nmh/APKBUILD b/community/nmh/APKBUILD
new file mode 100644
index 00000000000..d88ad8a12b4
--- /dev/null
+++ b/community/nmh/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: ScrumpyJack <scrumpyjack@st.ilet.to>
+# Maintainer: ScrumpyJack <scrumpyjack@st.ilet.to>
+pkgname=nmh
+pkgver=1.6
+pkgrel=0
+pkgdesc="nmh is a powerful electronic mail handling system"
+url="http://www.nongnu.org/nmh/"
+arch="all"
+license="BSD"
+depends=""
+depends_dev=""
+makedepends="openssl-dev ncurses-dev gnutls-dev readline-dev gdbm-dev"
+install=""
+subpackages="$pkgname-doc"
+source="http://download.savannah.nongnu.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+
+_builddir=${srcdir}/${pkgname}-${pkgver}
+prepare() {
+ local i
+ cd "$_builddir"
+ for i in $source; do
+ case $i in
+ *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+ esac
+ done
+}
+
+build() {
+ cd "$_builddir"
+ ./configure \
+ --host=$CHOST \
+ --build=$CBUILD \
+ --prefix=/usr \
+ --with-readline \
+ --with-tls \
+ --sysconfdir=/etc/nmh
+ make
+}
+
+package() {
+ cd "$_builddir"
+ make DESTDIR="$pkgdir" install
+}
+
+md5sums="766ff2d37736aef76243df9c6610cb77 nmh-1.6.tar.gz"
+sha256sums="29338ae2bc8722fe8a5904b7b601a63943b72b07b6fcda53f3a354edb6a64bc3 nmh-1.6.tar.gz"
+sha512sums="03775e73f69eb21088e191f41a0bbc2e631956f0d496f87be97981ac2c85d8cbe0680e8ee7e37f97e79c34ccd814fca78f2684acfc8390e333a46c710fbdb2b7 nmh-1.6.tar.gz"
diff --git a/community/rover/APKBUILD b/community/rover/APKBUILD
new file mode 100644
index 00000000000..bee759a371f
--- /dev/null
+++ b/community/rover/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: ScrumpyJack <scrumpyjack@st.ilet.to>
+# Maintainer: ScrumpyJack <scrumpyjack@st.ilet.to>
+pkgname=rover
+pkgver=0.4.1
+pkgrel=0
+pkgdesc="Rover is a small file browser that aims to be simple, fast and portable"
+url="http://lecram.github.io/p/rover/"
+arch="all"
+license="Public Domain"
+depends=""
+depends_dev=""
+makedepends="ncurses-dev ncurses5-widec-libs"
+install=""
+subpackages="$pkgname-doc"
+source="saveas-https://github.com/lecram/rover/archive/v${pkgver}.tar.gz/${pkgname}-${pkgver}.tgz"
+
+_builddir=${srcdir}/${pkgname}-${pkgver}
+prepare() {
+ cd "$_builddir"
+ sed -i 's/PREFIX=\/usr\/local/PREFIX=\/usr/' Makefile
+ sed -i 's/MANPREFIX=\$(PREFIX)\/man/MANPREFIX=\$(PREFIX)\/share\/man/' Makefile
+ }
+
+build() {
+ cd "$_builddir"
+ make
+}
+
+package() {
+ cd "$_builddir"
+ make DESTDIR=${pkgdir} install
+}
+
+md5sums="6a3ffae4b4c1658c9c959e1ca589347b rover-0.4.1.tgz"
+sha256sums="4437321d37f3e552e8abd19ad3d391a4e08472b584179b45d3d1a3a5c24db57b rover-0.4.1.tgz"
+sha512sums="1645b88140b2c209ca292aa1f7ed6e18e5f4ac0c093e34c3bbdade71e215f887fe7523552a40e06493b7dbf1985d83ce56858145dbcda63a9a8e36044d8fdce7 rover-0.4.1.tgz"
diff --git a/community/tor/APKBUILD b/community/tor/APKBUILD
new file mode 100644
index 00000000000..116bffdc416
--- /dev/null
+++ b/community/tor/APKBUILD
@@ -0,0 +1,58 @@
+# Contributor: Sam Dodrill <shadow.h511@gmail.com>
+# Maintainer: Sam Dodrill <shadow.h511@gmail.com>
+pkgname=tor
+pkgver=0.2.7.6
+pkgrel=3
+pkgdesc="Anonymous network connectivity"
+url="https://www.torproject.org"
+arch="all"
+license="BSD"
+pkgusers="tor"
+depends=""
+depends_dev=""
+makedepends="linux-headers bash libevent-dev openssl-dev ca-certificates"
+install="$pkgname.pre-install"
+subpackages="$pkgname-doc"
+source="https://www.torproject.org/dist/$pkgname-$pkgver.tar.gz
+ tor.initd
+ tor.confd
+ "
+
+builddir="$srcdir/$pkgname-$pkgver"
+
+build() {
+ cd "$builddir"
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --localstatedir=/var \
+ --enable-transparent \
+ || return 1
+ make || return 1
+}
+
+package() {
+ cd "$builddir"
+ make DESTDIR="$pkgdir" install || return 1
+ mkdir -p "$pkgdir"/var/lib/$pkgname
+ mkdir -p "$pkgdir"/var/log/$pkgname
+ chown $pkgusers "$pkgdir"/var/lib/$pkgname
+ install -m755 -D "$srcdir"/$pkgname.initd \
+ "$pkgdir"/etc/init.d/$pkgname || return 1
+ install -m644 -D "$srcdir"/$pkgname.confd \
+ "$pkgdir"/etc/conf.d/$pkgname || return 1
+}
+
+md5sums="cc19107b57136a68e8c563bf2d35b072 tor-0.2.7.6.tar.gz
+c10b84a88dfaff4c17e40d04edd2caf3 tor.initd
+e05a796ffc4981c22c167de11fa36ef9 tor.confd"
+sha256sums="493a8679f904503048114aca6467faef56861206bab8283d858f37141d95105d tor-0.2.7.6.tar.gz
+6b1fbc73e108e42a57a0faba409cb5fc6b40d79897261753cc4bc076faf23c35 tor.initd
+41d780f291847e19f632428bbf27c3f289414afd237546d2974da1b75384c25c tor.confd"
+sha512sums="9b0dbfabe6cd05189b179da24bfaa73b89ab237775e3b5b0ebc0a22ee98909e9b13e55841a466f04000e0ff876c15f76515ff46abca28d05eeddbdc52f183afc tor-0.2.7.6.tar.gz
+baec0ffcbab334582aedeb2869a92862c45a379b3a71fe99b296732713ef3026adab181fccb7304bc0830f8ab72ac811b6fcbe91d739e8b78e41f515e920a0ea tor.initd
+9028ac41e3acdf4405095addb69537e87edecafaec840296ac27a5a8992fe132dc822e4e4abb8826f76460c438da2719dea17859690d03e17198a82086a3d660 tor.confd"
diff --git a/community/tor/tor.confd b/community/tor/tor.confd
new file mode 100644
index 00000000000..4195bf3237b
--- /dev/null
+++ b/community/tor/tor.confd
@@ -0,0 +1,3 @@
+#
+# Set the file limit
+rc_ulimit="-n 30000"
diff --git a/community/tor/tor.initd b/community/tor/tor.initd
new file mode 100644
index 00000000000..95d02db5d73
--- /dev/null
+++ b/community/tor/tor.initd
@@ -0,0 +1,61 @@
+#!/sbin/openrc-run
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-misc/tor/files/Attic/tor.initd-r6,v 1.7 2015/03/20 12:46:13 blueness dead $
+
+extra_commands="checkconfig"
+extra_started_commands="reload"
+
+PIDFILE=/var/run/tor/tor.pid
+CONFFILE=/etc/tor/torrc
+
+depend() {
+ need net
+}
+
+checkconfig() {
+ # first check that it exists
+ if [ ! -f ${CONFFILE} ] ; then
+ eerror "You need to setup ${CONFFILE} first"
+ eerror "Example is in ${CONFFILE}.sample"
+ return 1
+ fi
+
+ # now verify whether the configuration is valid
+ /usr/bin/tor --verify-config -f ${CONFFILE} > /dev/null 2>&1
+ if [ $? -eq 0 ] ; then
+ einfo "Tor configuration (${CONFFILE}) is valid."
+ return 0
+ else
+ eerror "Tor configuration (${CONFFILE}) not valid."
+ /usr/bin/tor --verify-config -f ${CONFFILE}
+ return 1
+ fi
+}
+
+start() {
+ checkconfig || return 1
+ checkpath -d -m 0755 -o tor /var/run/tor
+ ebegin "Starting Tor"
+ HOME=/var/lib/tor
+ start-stop-daemon --start --pidfile "${PIDFILE}" --quiet --exec /usr/bin/tor -- -f "${CONFFILE}" --runasdaemon 1 --PidFile "${PIDFILE}" > /dev/null 2>&1
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping Tor"
+ start-stop-daemon --stop --pidfile "${PIDFILE}" --exec /usr/bin/tor -- --PidFile "${PIDFILE}"
+ eend $?
+}
+
+reload() {
+ if [ ! -f ${PIDFILE} ]; then
+ eerror "${SVCNAME} isn't running"
+ return 1
+ fi
+ checkconfig || return 1
+ ebegin "Reloading Tor configuration"
+ start-stop-daemon --signal HUP --pidfile ${PIDFILE}
+ eend $?
+}
+
diff --git a/community/tor/tor.pre-install b/community/tor/tor.pre-install
new file mode 100644
index 00000000000..9827f01bc1e
--- /dev/null
+++ b/community/tor/tor.pre-install
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+adduser -S -D -h /var/run/tor -s /sbin/nologin -g tor tor 2>/dev/null
+
+exit 0
diff --git a/community/torsocks/APKBUILD b/community/torsocks/APKBUILD
new file mode 100644
index 00000000000..e8c12601cd3
--- /dev/null
+++ b/community/torsocks/APKBUILD
@@ -0,0 +1,50 @@
+# Maintainer: Christian Kampka <christian@kampka.net>
+pkgname=torsocks
+pkgver=2.1.0
+pkgrel=0
+pkgdesc="Wrapper to safely torify applications"
+url="https://gitweb.torproject.org/torsocks.git"
+arch="all"
+license="GPLv2"
+depends="tor"
+depends_dev=""
+makedepends="$depends_dev autoconf automake libtool"
+subpackages="$pkgname-doc"
+source="https://people.torproject.org/~dgoulet/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ musl-fix.patch
+"
+
+_builddir="${srcdir}/${pkgname}-${pkgver}"
+prepare() {
+ local i
+ cd "$_builddir"
+ for i in $source; do
+ case $i in
+ *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+ esac
+ done
+}
+
+build() {
+ cd "$_builddir"
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ || return 1
+ make || return 1
+}
+
+package() {
+ cd "$_builddir"
+ make DESTDIR="$pkgdir" install || return 1
+}
+md5sums="cced40ded9a0c7335050b778677fbd60 torsocks-2.1.0.tar.bz2
+e51d92eed27488e66e348fa3a1c0e11c musl-fix.patch"
+sha256sums="3c3831cb751ff477d97fb826c79cb2cfedc514e5eb89a3b10f341fb3abdf87db torsocks-2.1.0.tar.bz2
+e2298a13a5131d53c0bf878501a980880faff8b378ea250c9935522477e66b31 musl-fix.patch"
+sha512sums="bd273ce124abb288aea1d01eac773074c5e5bb7a363a7cb9957aac24ebcfdc647475dc9d90d5b189ac9537a84e3646e3cc50fa5a961c22fce38df93707e9b6a5 torsocks-2.1.0.tar.bz2
+df5c9d380d505aa42bd150614b48eb55e07a0b3af676886477153923a594c7cc475e467d64d2bd7780201f0c0f6bf9894cdbd7b3b15898c5cde8ba9166f6db3f musl-fix.patch"
diff --git a/community/torsocks/musl-fix.patch b/community/torsocks/musl-fix.patch
new file mode 100644
index 00000000000..a394aaea859
--- /dev/null
+++ b/community/torsocks/musl-fix.patch
@@ -0,0 +1,84 @@
+diff -u -r torsocks-2.1.0.orig/src/common/compat.c torsocks-2.1.0/src/common/compat.c
+--- torsocks-2.1.0.orig/src/common/compat.c 2015-12-06 19:44:47.251991190 +0100
++++ torsocks-2.1.0/src/common/compat.c 2015-12-06 19:44:58.871959984 +0100
+@@ -19,8 +19,6 @@
+
+ #include "compat.h"
+
+-#if (defined(__GLIBC__) || defined(__FreeBSD__) || defined(__darwin__) || defined(__NetBSD__))
+-
+ /*
+ * Initialize a pthread mutex. This never fails.
+ */
+@@ -95,5 +93,3 @@
+ }
+ tsocks_mutex_unlock(&o->mutex);
+ }
+-
+-#endif /* __GLIBC__, __darwin__, __FreeBSD__, __NetBSD__ */
+diff -u -r torsocks-2.1.0.orig/src/common/compat.h torsocks-2.1.0/src/common/compat.h
+--- torsocks-2.1.0.orig/src/common/compat.h 2015-12-06 19:44:47.251991190 +0100
++++ torsocks-2.1.0/src/common/compat.h 2015-12-06 19:44:51.538646345 +0100
+@@ -22,8 +22,6 @@
+ #define __darwin__ 1
+ #endif
+
+-#if (defined(__GLIBC__) || defined(__FreeBSD__) || defined(__darwin__) || defined(__NetBSD__))
+-
+ #define RTLD_NEXT ((void *) -1)
+
+ #include <pthread.h>
+@@ -53,10 +51,6 @@
+
+ void tsocks_once(tsocks_once_t *o, void (*init_routine)(void));
+
+-#else
+-#error "OS not supported."
+-#endif /* __GLIBC__, __darwin__, __FreeBSD__, __NetBSD__ */
+-
+ #if defined(__linux__)
+ #include <unistd.h>
+ #include <sys/syscall.h>
+diff -u -r torsocks-2.1.0.orig/src/common/ref.h torsocks-2.1.0/src/common/ref.h
+--- torsocks-2.1.0.orig/src/common/ref.h 2015-12-06 19:44:47.251991190 +0100
++++ torsocks-2.1.0/src/common/ref.h 2015-12-06 19:44:51.538646345 +0100
+@@ -26,8 +26,6 @@
+ long count;
+ };
+
+-#if (defined(__GLIBC__) || defined(__FreeBSD__) || defined(__darwin__) || defined(__NetBSD__))
+-
+ /*
+ * Get a reference by incrementing the refcount.
+ */
+@@ -55,8 +53,4 @@
+ }
+ }
+
+-#else
+-#error "OS not supported"
+-#endif /* __GLIBC__, __FreeBSD__, __darwin__ */
+-
+ #endif /* TORSOCKS_REF_H */
+diff -u -r torsocks-2.1.0.orig/src/lib/torsocks.h torsocks-2.1.0/src/lib/torsocks.h
+--- torsocks-2.1.0.orig/src/lib/torsocks.h 2015-12-06 19:44:47.251991190 +0100
++++ torsocks-2.1.0/src/lib/torsocks.h 2015-12-06 19:44:51.538646345 +0100
+@@ -33,8 +33,6 @@
+ #define TSOCKS_DECL(name, type, sig) \
+ extern type tsocks_##name(sig);
+
+-#if (defined(__GLIBC__) || defined(__FreeBSD__) || defined(__darwin__) || defined(__NetBSD__))
+-
+ /* connect(2) */
+ #include <sys/types.h>
+ #include <sys/socket.h>
+@@ -205,9 +203,6 @@
+ int sockfd, int backlog
+ #define LIBC_LISTEN_ARGS sockfd, backlog
+
+-#else
+-#error "OS not supported."
+-#endif /* __GLIBC__ , __FreeBSD__, __darwin__, __NetBSD__ */
+
+ #if (defined(__linux__))
+
diff --git a/community/urlview/APKBUILD b/community/urlview/APKBUILD
new file mode 100644
index 00000000000..4969523b1fb
--- /dev/null
+++ b/community/urlview/APKBUILD
@@ -0,0 +1,65 @@
+# Contributor: Carlo Landmeter <clandmeter@gmail.com>
+# Maintainer:
+pkgname=urlview
+# ghbump to update http://sprunge.us/bQYI
+_project="sigpipe/urlview"
+_sha=08767aa863cd27d1755ba0aff65b8cc1a0c1446a
+pkgver=20131023
+pkgrel=0
+pkgdesc="urlview is a program for extracting URLs from text files"
+url="https://github.com/sigpipe/urlview"
+arch="all"
+license="GPL"
+depends=""
+depends_dev="ncurses-dev"
+makedepends="$depends_dev automake autoconf libtool"
+install=""
+subpackages="$pkgname-doc"
+source="$pkgname-$_sha.tar.gz::https://github.com/sigpipe/urlview/archive/08767aa863cd27d1755ba0aff65b8cc1a0c1446a.tar.gz"
+
+_builddir="$srcdir/$pkgname-$_sha"
+
+prepare() {
+ local i
+ cd "$_builddir"
+ for i in $source; do
+ case $i in
+ *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+ esac
+ done
+}
+
+build() {
+ cd "$_builddir"
+ aclocal
+ automake --foreign --ignore-deps --add-missing
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --localstatedir=/var \
+ || return 1
+ make || return 1
+}
+
+package() {
+ cd "$_builddir"
+ mkdir -p "${pkgdir}"/etc/urlview \
+ "${pkgdir}"/usr/share/man/man1 \
+ "${pkgdir}"/usr/bin
+ make prefix="${pkgdir}"/usr \
+ mandir="${pkgdir}"/usr/share/man install || return 1
+ install -Dm755 url_handler.sh \
+ "${pkgdir}"/etc/urlview/url_handler.sh || return 1
+ install -Dm644 sample.urlview \
+ "${pkgdir}"/etc/urlview/system.urlview
+ ln -fs /etc/urlview/url_handler.sh \
+ "${pkgdir}"/usr/bin/url_handler.sh || return 1
+}
+
+md5sums="5a88be952d8e4c835396926da9b22c3d urlview-08767aa863cd27d1755ba0aff65b8cc1a0c1446a.tar.gz"
+sha256sums="23d32e7f610601f012e06d79b206d4952259bdabe9aa64940c7e1bb8c0cb6519 urlview-08767aa863cd27d1755ba0aff65b8cc1a0c1446a.tar.gz"
+sha512sums="0fe27ec22e591a25b57150abe1e7181d8472e17e0305beda7fbf355dc6f80799193f7859ce5f18155adb3ee7f01657bbb8d4c307770b8a3d2fc4bc5b937646d6 urlview-08767aa863cd27d1755ba0aff65b8cc1a0c1446a.tar.gz"
diff --git a/community/vdesk/APKBUILD b/community/vdesk/APKBUILD
new file mode 100644
index 00000000000..1352649626e
--- /dev/null
+++ b/community/vdesk/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: ScrumpyJack <scrumpyjack@st.ilet.to>
+# Maintainer: ScrumpyJack <scrumpyjack@st.ilet.to>
+pkgname=vdesk
+pkgver=1.2
+pkgrel=0
+pkgdesc="vdesk is a virtual desktop manager."
+url="http://offog.org/code/vdesk/"
+arch="all"
+license="MIT"
+depends=""
+depends_dev=""
+makedepends="libx11-dev"
+install=""
+subpackages=""
+source="http://offog.org/files/${pkgname}-${pkgver}.tar.gz"
+
+_builddir=${srcdir}/${pkgname}-${pkgver}
+prepare() {
+ local i
+ cd "$_builddir"
+ for i in $source; do
+ case $i in
+ *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+ esac
+ done
+ }
+
+build() {
+ cd "$_builddir"
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr || return 1
+ make || return 1
+ }
+
+package() {
+ cd "$_builddir"
+ make DESTDIR="$pkgdir" install
+}
+
+md5sums="8c434dc188c868f19e57674074489481 vdesk-1.2.tar.gz"
+sha256sums="4ac9af40591abcb3a99dea9331933182af7a7c4d0c2eec43be37cf2c21dfa792 vdesk-1.2.tar.gz"
+sha512sums="0812c363bf51e4b602f3789f73588a8f6bedc6a8803030a71e7b4cd29945b73e9ce31f917845f448a6b318cf2e51b76f954271b28c3ecf239b86333b5f74aea4 vdesk-1.2.tar.gz"
diff --git a/community/w3m/APKBUILD b/community/w3m/APKBUILD
new file mode 100644
index 00000000000..25081ee4298
--- /dev/null
+++ b/community/w3m/APKBUILD
@@ -0,0 +1,72 @@
+pkgname=w3m
+pkgver=0.5.3
+pkgrel=0
+pkgdesc='Text-based Web browser, as well as pager'
+url='http://w3m.sourceforge.net/'
+license='MIT UCD'
+arch='all'
+makedepends="imlib2-dev openssl-dev gc-dev ncurses-dev linux-headers"
+source="http://downloads.sourceforge.net/project/${pkgname}/${pkgname}/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.gz
+ form_unknown.patch
+ file_handle.patch
+ https.patch
+ gc72.patch
+ w3m-0.5.3-parallel-make.patch
+ "
+
+prepare() {
+ local i
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ for i in $source; do
+ case $i in
+ *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+ esac
+ done
+}
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure \
+ --prefix=/usr \
+ --libexecdir=/usr/lib \
+ --enable-image=fb \
+ --with-ssl \
+ --disable-nntp \
+ --disable-dict \
+ --disable-help-cgi \
+ --with-imagelib=imlib2 \
+ --with-termlib=ncurses \
+ --disable-w3mmailer \
+ --disable-mouse \
+ || return 1
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -d "${pkgdir}"/usr/share/doc/"${pkgname}"
+ install -d "${pkgdir}"/usr/share/licenses/"${pkgname}"
+ find doc/* | grep -v CVS | while read path; do install -m644 "$path" "${pkgdir}/usr/share/doc/${pkgname}"; done
+ ln -s ../../doc/"${pkgname}"/README "${pkgdir}/usr/share/licenses/${pkgname}"
+}
+md5sums="1b845a983a50b8dec0169ac48479eacc w3m-0.5.3.tar.gz
+4db72a234824f8b5d45eb78fe3e1f526 form_unknown.patch
+d1bbc652a9e63f5e65b4112e88037ded file_handle.patch
+a5e1038b5fb36ac1465700433ae00d0b https.patch
+46ca1e8264a3a521b073453600fb3c5f gc72.patch
+6684eb14831aa9b79bc230a9a9949351 w3m-0.5.3-parallel-make.patch"
+sha256sums="e994d263f2fd2c22febfbe45103526e00145a7674a0fda79c822b97c2770a9e3 w3m-0.5.3.tar.gz
+7d2f4ff43eeb1b81fb6126063cf091902205c375fdcdffe0998ff51e73ff9d27 form_unknown.patch
+dbf746808b64cd163dbcc6d299d80abdbbb7b5eff633d39c3f73dd42370633bc file_handle.patch
+ab8f2b6c7e1cf2d8485fa9928784c8dbd2f0d8cd26a5c32384543eea173de986 https.patch
+1e0e573e5fc6c0938b1941a81cffdd604a0167f7cf46e1a8479e2e10969e1d04 gc72.patch
+249e8e0e8469daa1d33d2154ed78b604e8bb6cefc68f02cc5cf10b56e8890d42 w3m-0.5.3-parallel-make.patch"
+sha512sums="43508c76d07b4d8f19c19f975c0b870aeb94abf0744b6128ee01c759d4e409a8b57bc866baeaf990f309ff73e9a7b02ca455d272b1dd0a93fafb8c72b1fe6d14 w3m-0.5.3.tar.gz
+fd7e4d1bf05d5109e64cc2971d3f98ad28ba4404dfa6510953150550590991b910ca6b96bf66993f63e77ff59ffe1e266eed8f1dde43efd8272825d9de36948a form_unknown.patch
+b67c1ddb37536838fa753a5171801fa170d77c1b4bce5d5de1fcb119cd6d3c158267d472a75940a6fbe6169365ad45963f64050cbb56440613df33ab66a20d4e file_handle.patch
+3844b3a079524ad403da7fe03461210a433ff1cd562862c4df55c3be250ccba0c34eb61bcc8df1973d70e2ef034edaf1804bb2fa682b01723322f108f523932a https.patch
+31989443973af87672cdc00ac04533530c40c5cc393703db79ce5836ae56300baa898ee21e9bebcd77cce623321d6194665d965be89c3eed1990f5b984375ccd gc72.patch
+b2df0847cef329b0b1a00c34f298d2f317837b0cb490ea2f6a3a358a723200dd0388a4cf9fa43d04b512073aba219b7db3fdeae3d6d21fba9d3c40cde306790a w3m-0.5.3-parallel-make.patch"
diff --git a/community/w3m/file_handle.patch b/community/w3m/file_handle.patch
new file mode 100644
index 00000000000..15422294f97
--- /dev/null
+++ b/community/w3m/file_handle.patch
@@ -0,0 +1,60 @@
+diff -Naur old/istream.c new/istream.c
+--- old/istream.c 2011-01-04 20:22:22.000000000 +1100
++++ new/istream.c 2012-07-04 21:50:51.529661517 +1000
+@@ -22,8 +22,8 @@
+ static void basic_close(int *handle);
+ static int basic_read(int *handle, char *buf, int len);
+
+-static void file_close(struct file_handle *handle);
+-static int file_read(struct file_handle *handle, char *buf, int len);
++static void file_close(struct file_handle_rofl *handle);
++static int file_read(struct file_handle_rofl *handle, char *buf, int len);
+
+ static int str_read(Str handle, char *buf, int len);
+
+@@ -114,7 +114,7 @@
+ stream = New(union input_stream);
+ init_base_stream(&stream->base, STREAM_BUF_SIZE);
+ stream->file.type = IST_FILE;
+- stream->file.handle = New(struct file_handle);
++ stream->file.handle = New(struct file_handle_rofl);
+ stream->file.handle->f = f;
+ if (closep)
+ stream->file.handle->close = closep;
+@@ -658,13 +658,13 @@
+ }
+
+ static void
+-file_close(struct file_handle *handle)
++file_close(struct file_handle_rofl *handle)
+ {
+ handle->close(handle->f);
+ }
+
+ static int
+-file_read(struct file_handle *handle, char *buf, int len)
++file_read(struct file_handle_rofl *handle, char *buf, int len)
+ {
+ return fread(buf, 1, len, handle->f);
+ }
+diff -Naur old/istream.h new/istream.h
+--- old/istream.h 2003-10-21 02:41:56.000000000 +1000
++++ new/istream.h 2012-07-04 21:50:51.529661517 +1000
+@@ -20,7 +20,7 @@
+
+ typedef struct stream_buffer *StreamBuffer;
+
+-struct file_handle {
++struct file_handle_rofl {
+ FILE *f;
+ void (*close) ();
+ };
+@@ -53,7 +53,7 @@
+
+ struct file_stream {
+ struct stream_buffer stream;
+- struct file_handle *handle;
++ struct file_handle_rofl *handle;
+ char type;
+ char iseos;
+ int (*read) ();
diff --git a/community/w3m/form_unknown.patch b/community/w3m/form_unknown.patch
new file mode 100644
index 00000000000..b22b176ac41
--- /dev/null
+++ b/community/w3m/form_unknown.patch
@@ -0,0 +1,15 @@
+See: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=615843
+
+Index: w3m-git/form.c
+===================================================================
+--- w3m-git.orig/form.c 2011-02-28 15:03:36.000000000 +0100
++++ w3m-git/form.c 2011-02-28 15:32:33.000000000 +0100
+@@ -196,7 +196,7 @@
+ if (!strcasecmp(typestr, _formtypetbl[i]))
+ return i;
+ }
+- return FORM_UNKNOWN;
++ return FORM_INPUT_TEXT;
+ }
+
+ void
diff --git a/community/w3m/gc72.patch b/community/w3m/gc72.patch
new file mode 100644
index 00000000000..47bd4c85c88
--- /dev/null
+++ b/community/w3m/gc72.patch
@@ -0,0 +1,13 @@
+diff -Naur old/main.c new/main.c
+--- old/main.c 2011-01-04 20:42:19.000000000 +1100
++++ new/main.c 2012-07-04 21:49:10.136212236 +1000
+@@ -833,7 +833,8 @@
+ mySignal(SIGPIPE, SigPipe);
+ #endif
+
+- orig_GC_warn_proc = GC_set_warn_proc(wrap_GC_warn_proc);
++ orig_GC_warn_proc = GC_get_warn_proc();
++ GC_set_warn_proc(wrap_GC_warn_proc);
+ err_msg = Strnew();
+ if (load_argc == 0) {
+ /* no URL specified */
diff --git a/community/w3m/https.patch b/community/w3m/https.patch
new file mode 100644
index 00000000000..31286a70d5a
--- /dev/null
+++ b/community/w3m/https.patch
@@ -0,0 +1,19 @@
+Fedora patch; see https://bugzilla.redhat.com/show_bug.cgi?id=707994
+
+--- old/url.c 2011-01-04 14:52:24.000000000 +0530
++++ new/url.c 2011-09-02 18:25:43.305652690 +0530
+@@ -82,11 +82,11 @@
+ {"ftp", SCM_FTP},
+ {"local", SCM_LOCAL},
+ {"file", SCM_LOCAL},
+- /* {"exec", SCM_EXEC}, */
++ {"exec", SCM_EXEC},
+ {"nntp", SCM_NNTP},
+- /* {"nntp", SCM_NNTP_GROUP}, */
++ {"nntp", SCM_NNTP_GROUP},
+ {"news", SCM_NEWS},
+- /* {"news", SCM_NEWS_GROUP}, */
++ {"news", SCM_NEWS_GROUP},
+ {"data", SCM_DATA},
+ #ifndef USE_W3MMAILER
+ {"mailto", SCM_MAILTO},
diff --git a/community/w3m/w3m-0.5.3-parallel-make.patch b/community/w3m/w3m-0.5.3-parallel-make.patch
new file mode 100644
index 00000000000..231a595805d
--- /dev/null
+++ b/community/w3m/w3m-0.5.3-parallel-make.patch
@@ -0,0 +1,199 @@
+This patch will help to build w3m with paralle make enabled
+
+diff -urN w3m-0.5.3.patched/Makefile.in w3m-0.5.3/Makefile.in
+--- w3m-0.5.3.patched/Makefile.in 2012-12-21 19:27:52.768916831 +0530
++++ w3m-0.5.3/Makefile.in 2012-12-24 18:13:07.660895921 +0530
+@@ -34,6 +34,7 @@
+ RC_DIR = @RC_DIR@
+ ETC_DIR = $(sysconfdir)
+ CONF_DIR = $(sysconfdir)/$(PACKAGE)
++DOCDIRS = @DOCDIRS@
+
+ CFLAGS = $(OPTS) -I. -I$(top_srcdir) @CFLAGS@ $(CPPFLAGS) $(DEFS)
+ WCCFLAGS = @WCCFLAGS@
+@@ -50,6 +51,7 @@
+ W3M_LIBS = @W3M_LIBS@
+ WCTARGET = @WCTARGET@
+ NLSTARGET = @NLSTARGET@
++HELP_TARGETS = w3mhelp-funcname.pl w3mhelp-funcdesc-stamp
+
+ MAKE_ARGS = PERL='$(PERL)' MKDIR='$(MKDIR)' \
+ BIN_DIR='$(bindir)' AUXBIN_DIR='$(AUXBIN_DIR)' \
+@@ -124,7 +126,7 @@
+ SUBDIRS = $(SCRIPTSUBDIRS) w3mimg libwc po
+ .PHONY: $(SUBDIRS)
+
+-all: $(TARGETS) all-scripts $(NLSTARGET)
++all: funcname.tab $(TARGETS) all-scripts $(NLSTARGET) $(HELP_TARGETS)
+
+ $(TARGET): $(ALLOBJS) $(ALIB) $(WCTARGET)
+ $(CC) $(CFLAGS) -o $(TARGET) $(ALLOBJS) $(LDFLAGS) $(LIBS) $(EXT_LIBS) $(W3M_LIBS)
+@@ -176,6 +178,31 @@
+ ./mktable$(EXT) 100 functable.tab > $@
+ -rm -f functable.tab
+
++w3mhelp-funcname.pl: scripts/w3mhelp-funcname.pl.in funcname.tab $(top_srcdir)/doc/keymap.default $(top_srcdir)/doc/keymap.lynx
++ @echo "generating w3mhelp-funcname.pl..."
++ @echo '%funcname = (' > scripts/w3mhelp-funcname.pl
++ @sed -ne "/^[a-zA-Z@]/s/\([a-zA-Z@][a-zA-Z0-9@_]*\)[ ][ ]*\([^ ]*\)/'\1', '\2',/p" < $(top_srcdir)/funcname.tab >> scripts/w3mhelp-funcname.pl
++ @echo ');' >> scripts/w3mhelp-funcname.pl
++ @echo '%keyfunc = (' >> scripts/w3mhelp-funcname.pl
++ @case "$(KEYBIND_SRC)" in *lynx*) keymap=keymap.lynx;; *) keymap=keymap.default;; esac; \
++ sed -ne "/^keymap/s/^keymap[ ][ ]*\([^ ]*\)[ ][ ]*\([a-zA-Z@][a-zA-Z0-9@_]*\)/'\1', '\2', /p" < $(top_srcdir)/doc/$$keymap >> scripts/w3mhelp-funcname.pl
++ @echo ');' >> scripts/w3mhelp-funcname.pl
++ @cat scripts/w3mhelp-funcname.pl.in >> scripts/w3mhelp-funcname.pl
++ @echo "done"
++
++w3mhelp-funcdesc-stamp: $(top_srcdir)/doc/README.func $(top_srcdir)/doc-jp/README.func scripts/w3mhelp-funcdesc.en.pl.in scripts/w3mhelp-funcdesc.ja.pl.in
++ @echo "generating w3mhelp-funcdesc*.pl..."
++ @for dirlang in $(DOCDIRS); do \
++ dir=`expr "$$dirlang" : "\(.*\):.*"`; \
++ lang=`expr "$$dirlang" : ".*:\(.*\)_.*"`; \
++ echo '%funcdesc = (' > scripts/w3mhelp-funcdesc.$$lang.pl; \
++ sed -ne "/^[a-zA-Z@]/s/\([a-zA-Z@][a-zA-Z0-9@_]*\)[ ][ ]*\(.*\)/'\1', '\2',/p" < $(top_srcdir)/$$dir/README.func >> scripts/w3mhelp-funcdesc.$$lang.pl; \
++ echo ');' >> scripts/w3mhelp-funcdesc.$$lang.pl; \
++ cat scripts/w3mhelp-funcdesc.$$lang.pl.in >> scripts/w3mhelp-funcdesc.$$lang.pl; \
++ done
++ @echo done
++ @touch scripts/w3mhelp-funcdesc-stamp
++
+ mktable$(EXT): mktable.o dummy.o Str.o hash.o myctype.o
+ $(CC) $(CFLAGS) -o mktable mktable.o dummy.o Str.o hash.o myctype.o $(LDFLAGS) $(LIBS) $(GC_LIBS)
+
+@@ -213,7 +240,7 @@
+
+ install: install-core install-scripts install-po
+
+-install-core: $(TARGETS)
++install-core: $(TARGETS) $(HELP_TARGETS)
+ -$(MKDIR) $(DESTDIR)$(bindir)
+ -$(MKDIR) $(DESTDIR)$(AUXBIN_DIR)
+ -$(MKDIR) $(DESTDIR)$(CGIBIN_DIR)
+@@ -236,6 +263,10 @@
+ do \
+ $(INSTALL_PROGRAM) $$file $(DESTDIR)$(CGIBIN_DIR)/$$file; \
+ done
++ for file in scripts/w3mhelp-*.pl; \
++ do \
++ $(INSTALL_DATA) $$file $(DESTDIR)$(HELP_DIR); \
++ done
+
+ install-helpfile:
+ -$(MKDIR) $(DESTDIR)$(HELP_DIR)
+@@ -277,6 +308,10 @@
+ do \
+ $(RM) -f $(HELP_DIR)/$$file; \
+ done
++ -for file in scripts/w3mhelp-*.pl; \
++ do \
++ rm -f $(HELP_DIR)/$$file; \
++ done
+ -$(RM) -f $(HELP_DIR)/$(HELP_TARGET)
+ -$(RM) -f $(mandir)/man1/$(MAN1_TARGET)
+ -$(RM) -f $(mandir)/ja/man1/$(MAN1_TARGET)
+@@ -289,6 +324,7 @@
+ -$(RM) -f *.o *.a $(TARGETS) mktable$(EXT)
+ -$(RM) -f funcname.tab
+ -$(RM) -f funcname.c funcname1.h funcname2.h tagtable.c functable.c
++ -rm -f $(HELP_TARGETS) w3mhelp-*.pl
+ -for dir in w3mimg libwc; \
+ do \
+ (cd $$dir && $(MAKE) clean RM="$(RM)"); \
+diff -urN w3m-0.5.3.patched/scripts/Makefile.in w3m-0.5.3/scripts/Makefile.in
+--- w3m-0.5.3.patched/scripts/Makefile.in 2011-01-04 14:52:28.000000000 +0530
++++ w3m-0.5.3/scripts/Makefile.in 2012-12-24 18:18:36.546170726 +0530
+@@ -31,11 +31,9 @@
+ RC_DIR = @RC_DIR@
+ ETC_DIR = $(sysconfdir)
+ CONF_DIR = $(sysconfdir)/$(PACKAGE)
+-DOCDIRS = @DOCDIRS@
+
+ AUXBIN_TARGETS = xface2xpm
+ LIB_TARGETS = dirlist.cgi w3mhelp.cgi w3mmail.cgi
+-HELP_TARGETS = w3mhelp-funcname.pl w3mhelp-funcdesc-stamp
+ SUBDIRS = multipart w3mman
+ .PHONY: $(SUBDIRS)
+
+@@ -46,32 +44,7 @@
+
+ PERL = @PERL@
+
+-all: $(LIB_TARGETS) $(AUXBIN_TARGETS) $(HELP_TARGETS) $(SUBDIRS)
+-
+-w3mhelp-funcname.pl: w3mhelp-funcname.pl.in ../funcname.tab $(top_srcdir)/doc/keymap.default $(top_srcdir)/doc/keymap.lynx
+- @echo "generating w3mhelp-funcname.pl..."
+- @echo '%funcname = (' > w3mhelp-funcname.pl
+- @sed -ne "/^[a-zA-Z@]/s/\([a-zA-Z@][a-zA-Z0-9@_]*\)[ ][ ]*\([^ ]*\)/'\1', '\2',/p" < ../funcname.tab >> w3mhelp-funcname.pl
+- @echo ');' >> w3mhelp-funcname.pl
+- @echo '%keyfunc = (' >> w3mhelp-funcname.pl
+- @case "$(KEYBIND_SRC)" in *lynx*) keymap=keymap.lynx;; *) keymap=keymap.default;; esac; \
+- sed -ne "/^keymap/s/^keymap[ ][ ]*\([^ ]*\)[ ][ ]*\([a-zA-Z@][a-zA-Z0-9@_]*\)/'\1', '\2', /p" < $(top_srcdir)/doc/$$keymap >> w3mhelp-funcname.pl
+- @echo ');' >> w3mhelp-funcname.pl
+- @cat $(srcdir)/w3mhelp-funcname.pl.in >> w3mhelp-funcname.pl
+- @echo "done"
+-
+-w3mhelp-funcdesc-stamp: $(top_srcdir)/doc/README.func $(top_srcdir)/doc-jp/README.func w3mhelp-funcdesc.en.pl.in w3mhelp-funcdesc.ja.pl.in
+- @echo "generating w3mhelp-funcdesc*.pl..."
+- @for dirlang in $(DOCDIRS); do \
+- dir=`expr "$$dirlang" : "\(.*\):.*"`; \
+- lang=`expr "$$dirlang" : ".*:\(.*\)_.*"`; \
+- echo '%funcdesc = (' > w3mhelp-funcdesc.$$lang.pl; \
+- sed -ne "/^[a-zA-Z@]/s/\([a-zA-Z@][a-zA-Z0-9@_]*\)[ ][ ]*\(.*\)/'\1', '\2',/p" < $(top_srcdir)/$$dir/README.func >> w3mhelp-funcdesc.$$lang.pl; \
+- echo ');' >> w3mhelp-funcdesc.$$lang.pl; \
+- cat $(srcdir)/w3mhelp-funcdesc.$$lang.pl.in >> w3mhelp-funcdesc.$$lang.pl; \
+- done
+- @echo done
+- @touch w3mhelp-funcdesc-stamp
++all: $(LIB_TARGETS) $(AUXBIN_TARGETS) $(SUBDIRS)
+
+ $(SUBDIRS):
+ for subdir in $(SUBDIRS); \
+@@ -82,7 +55,6 @@
+ install: $(LIB_TARGETS) $(HELP_TARGETS)
+ -$(MKDIR) $(DESTDIR)$(AUXBIN_DIR)
+ -$(MKDIR) $(DESTDIR)$(CGIBIN_DIR)
+- -$(MKDIR) $(DESTDIR)$(HELP_DIR)
+ for file in $(AUXBIN_TARGETS); \
+ do \
+ $(INSTALL_SCRIPT) $$file $(DESTDIR)$(AUXBIN_DIR); \
+@@ -91,10 +63,6 @@
+ do \
+ $(INSTALL_SCRIPT) $$file $(DESTDIR)$(CGIBIN_DIR); \
+ done
+- for file in w3mhelp-*.pl; \
+- do \
+- $(INSTALL_DATA) $$file $(DESTDIR)$(HELP_DIR); \
+- done
+ for subdir in $(SUBDIRS); \
+ do \
+ (cd $$subdir && $(MAKE) install); \
+@@ -109,17 +77,12 @@
+ do \
+ rm -f $(LIB_DIR)/$$file; \
+ done
+- -for file in w3mhelp-*.pl; \
+- do \
+- rm -f $(HELP_DIR)/$$file; \
+- done
+ -for subdir in $(SUBDIRS); \
+ do \
+ (cd $$subdir && $(MAKE) uninstall); \
+ done
+
+ clean:
+- -rm -f $(HELP_TARGETS) w3mhelp-*.pl
+ -for subdir in $(SUBDIRS); \
+ do \
+ (cd $$subdir && $(MAKE) clean); \
+diff -urN w3m-0.5.3.patched/w3mimg/Makefile.in w3m-0.5.3/w3mimg/Makefile.in
+--- w3m-0.5.3.patched/w3mimg/Makefile.in 2011-01-04 14:52:28.000000000 +0530
++++ w3m-0.5.3/w3mimg/Makefile.in 2012-12-24 18:14:49.836980207 +0530
+@@ -18,6 +18,8 @@
+ .PHONY: $(SUBDIRS)
+ all: @IMGTARGETS@ w3mimg.a
+
++$(IMGOBJS): @IMGTARGETS@
++
+ w3mimg.a: $(IMGOBJS)
+ $(AR) rv $@ $(IMGOBJS)
+ $(RANLIB) $@
diff --git a/community/wbar/APKBUILD b/community/wbar/APKBUILD
new file mode 100644
index 00000000000..84dbe742d41
--- /dev/null
+++ b/community/wbar/APKBUILD
@@ -0,0 +1,54 @@
+# Contributor: ScrumpyJack <scrumpyjack@st.ilet.to>
+# Maintainer: ScrumpyJack <scrumpyjack@st.ilet.to>
+pkgname=wbar
+pkgver=2.3.4
+pkgrel=0
+pkgdesc="A simple and customizable quick-launch desktop dock"
+url="https://code.google.com/p/wbar/"
+arch="all"
+license="GPL2"
+depends=""
+depends_dev=""
+makedepends="libglade-dev intltool imlib2-dev"
+install=""
+subpackages="$pkgname-lang $pkgname-doc"
+source="https://wbar.googlecode.com/files/$pkgname-$pkgver.tgz
+ Functions.patch
+ Main.patch"
+
+_builddir=$srcdir/$pkgname-$pkgver
+prepare() {
+ local i
+ cd "$_builddir"
+ for i in $source; do
+ case $i in
+ *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+ esac
+ done
+}
+
+build() {
+ cd "$_builddir"
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --exec_prefix=/usr \
+ --sysconfdir=/etc
+ make || return 1
+ }
+
+package() {
+ cd "$_builddir"
+ make DESTDIR=${pkgdir} install
+}
+
+md5sums="c1ac6b74138937a280904d1bac88115d wbar-2.3.4.tgz
+3781735edbe6ca13777c97754ce80c77 Functions.patch
+1411f3813b1996966425e1721b3fe9b6 Main.patch"
+sha256sums="46a69849e4436529aefb5cfb2c94b520d05a53c237e7773b90207f67f97a93e3 wbar-2.3.4.tgz
+1a064c1741f5bd7d2777c0668a9b06908530365d3a7dbf254046451f9116def2 Functions.patch
+23fca37f44db2becbf426c9d377398c3c70fbf6028757692921e23021a5e7586 Main.patch"
+sha512sums="07f3484bd071761d57ef1172c56b30980eef9ce2ee65d1fc21ea20c631a1da1d88c1b8a9e1a1fca0e5f18e7bf1c5697c349a543d72966ce71ff53d7e921147b3 wbar-2.3.4.tgz
+edc3f17ef9ee3d761c22c2dc4bb47118ecf2061b0e1fef74a96a9e69d5a1df446f157ab010f5a95b38a4bcd132dacb852fd91b4dfd96ceb659b1409a2149fa5e Functions.patch
+175cd141650cd735539af1cde81c89175aca70acbbac3138bce16b46f5ac7f91d36d415026cdd158a9cd75d73d349a5286e00fa1cf22df0ac601f523cc44ddf8 Main.patch"
diff --git a/community/wbar/Functions.patch b/community/wbar/Functions.patch
new file mode 100644
index 00000000000..a2f2fcf00aa
--- /dev/null
+++ b/community/wbar/Functions.patch
@@ -0,0 +1,83 @@
+--- wbar-2.3.4/src/config/Functions.cc 2012-09-19 02:54:53.000000000 +0000
++++ ../../Functions.modified 2015-12-15 15:35:05.920314007 +0000
+@@ -120,15 +120,15 @@
+ GtkCellRenderer *renderer;
+
+ renderer = gtk_cell_renderer_pixbuf_new ();
+- column = gtk_tree_view_column_new_with_attributes (_("Icon"), renderer, "pixbuf", TREE_COLUMN_ICON, NULL);
++ column = gtk_tree_view_column_new_with_attributes (_("Icon"), renderer, "pixbuf", TREE_COLUMN_ICON, (void *)NULL);
+ gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
+
+ renderer = gtk_cell_renderer_text_new ();
+- column = gtk_tree_view_column_new_with_attributes (_("Title"), renderer, "markup", TREE_COLUMN_TITLE, NULL);
++ column = gtk_tree_view_column_new_with_attributes (_("Title"), renderer, "markup", TREE_COLUMN_TITLE, (void *)NULL);
+ gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
+
+ renderer = gtk_cell_renderer_text_new ();
+- column = gtk_tree_view_column_new_with_attributes (_("Command"), renderer, "markup", TREE_COLUMN_COMMAND, NULL);
++ column = gtk_tree_view_column_new_with_attributes (_("Command"), renderer, "markup", TREE_COLUMN_COMMAND, (void *)NULL);
+ gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
+ }
+
+@@ -145,7 +145,7 @@
+
+ cell = gtk_cell_renderer_text_new();
+ gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo), cell, TRUE);
+- gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo), cell, "text", 0, NULL);
++ gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo), cell, "text", 0, (void *)NULL);
+
+ gtk_list_store_append(list_store, &iter);
+ gtk_list_store_set (list_store, &iter, COMBO_COLUMN_TEXT, _("top"), COMBO_COLUMN_ID, POS_TOP, -1);
+@@ -182,7 +182,7 @@
+
+ cell = gtk_cell_renderer_text_new();
+ gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combo), cell, TRUE);
+- gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo), cell, "text", 0, NULL);
++ gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combo), cell, "text", 0, (void *)NULL);
+
+ gtk_list_store_append(list_store, &iter);
+ gtk_list_store_set (list_store, &iter, COMBO_COLUMN_TEXT, _("none"), COMBO_COLUMN_ID, FILTER_NONE, -1);
+@@ -1261,7 +1261,7 @@
+ GTK_FILE_CHOOSER_ACTION_OPEN,
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
+- NULL);
++ (void *)NULL);
+
+ GtkWidget * command = glade_xml_get_widget (xml, "entry_command");
+ std::string filename = gtk_entry_get_text (GTK_ENTRY(command));
+@@ -1285,7 +1285,7 @@
+ GTK_FILE_CHOOSER_ACTION_OPEN,
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
+- NULL);
++ (void *)NULL);
+
+ GtkWidget * icon = glade_xml_get_widget (xml, "entry_icon");
+ GtkFileFilter *filter = gtk_file_filter_new();
+@@ -1315,7 +1315,7 @@
+ GTK_FILE_CHOOSER_ACTION_OPEN,
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
+- NULL);
++ (void *)NULL);
+
+ GtkWidget * font = glade_xml_get_widget (xml, "entry_font_name");
+ GtkFileFilter *filter = gtk_file_filter_new();
+@@ -1347,7 +1347,7 @@
+ GTK_FILE_CHOOSER_ACTION_OPEN,
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
+- NULL);
++ (void *)NULL);
+
+ GtkWidget * icon = glade_xml_get_widget (xml, "entry_image_name");
+ GtkFileFilter *filter = gtk_file_filter_new();
+@@ -1400,6 +1400,6 @@
+ "documenters", documenters,
+ "translator-credits", translater,
+ "logo", pixbuf,
+- NULL);
++ (void *)NULL);
+ }
+
diff --git a/community/wbar/Main.patch b/community/wbar/Main.patch
new file mode 100644
index 00000000000..8d1259ebfa0
--- /dev/null
+++ b/community/wbar/Main.patch
@@ -0,0 +1,11 @@
+--- wbar-2.3.4/src/core/Main.cc 2012-09-18 02:26:41.000000000 +0000
++++ ../../Main.modified 2015-12-15 15:30:14.362095758 +0000
+@@ -326,7 +326,7 @@
+ {
+ if (fork()==0)
+ {
+- if (execlp("sh", "sh", "-c", barra->iconCommand(inum).c_str(), NULL) != 0)
++ if (execlp("sh", "sh", "-c", barra->iconCommand(inum).c_str(), (void *)NULL) != 0)
+ {
+ std::cout << _("Error run program: ") << barra->iconCommand(inum) << std::endl;
+ }
diff --git a/community/xcalc/APKBUILD b/community/xcalc/APKBUILD
new file mode 100644
index 00000000000..2448c026a4a
--- /dev/null
+++ b/community/xcalc/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: ScrumpyJack <scrumpyjack@st.ilet.to>
+# Maintainer: ScrumpyJack <scrumpyjack@st.ilet.to>
+pkgname=xcalc
+pkgver=1.0.6
+pkgrel=0
+pkgdesc="Calculator for the X Window System"
+url="http://www.x.org"
+arch="all"
+license="MIT"
+depends=""
+depends_dev=""
+makedepends="libx11-dev libxaw-dev libxt-dev"
+install=""
+subpackages="$pkgname-doc"
+source="http://www.x.org/releases/individual/app/${pkgname}-${pkgver}.tar.bz2"
+
+_builddir="$srcdir/$pkgname-$pkgver"
+prepare() {
+ local i
+ cd "$_builddir"
+ for i in $source; do
+ case $i in
+ *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+ esac
+ done
+}
+
+build() {
+ cd "$_builddir"
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --datarootdir=/usr/share \
+ || return 1
+ make || return 1
+}
+
+package() {
+ cd "$_builddir"
+ make DESTDIR="$pkgdir" install || return 1
+}
+
+md5sums="397584a68bfe6b02adff16e67f8fe5dd xcalc-1.0.6.tar.bz2"
+sha256sums="2f73c7160c09dc32586ea07daa408ac897c0a16eaa98cad9f9e4ee98cd9057d8 xcalc-1.0.6.tar.bz2"
+sha512sums="61b921b6a3fefea20bd9e7ad0b308f589f2aeaafe9316df94cc739a005be6c180bdafc981b8957230f46c9fc1c0e266829a55b473ae26b1377c705796175c908 xcalc-1.0.6.tar.bz2"
diff --git a/community/xclock/APKBUILD b/community/xclock/APKBUILD
new file mode 100644
index 00000000000..9f44b272415
--- /dev/null
+++ b/community/xclock/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: ScrumpyJack <scrumpyjack@me.com>
+# Maintainer: ScrumpyJack <scrumpyjack@me.com>
+pkgname=xclock
+pkgver=1.0.7
+pkgrel=0
+pkgdesc="Clock for the X Window System"
+url="http://www.x.org"
+arch="all"
+license="MIT"
+depends=""
+depends_dev=""
+makedepends="libx11-dev libxft-dev libxrender-dev libxaw-dev
+ libxkbfile-dev libxmu-dev"
+install=""
+subpackages="$pkgname-doc"
+source="http://www.x.org/releases/individual/app/${pkgname}-${pkgver}.tar.bz2"
+
+_builddir="$srcdir/$pkgname-$pkgver"
+prepare() {
+ local i
+ cd "$_builddir"
+ for i in $source; do
+ case $i in
+ *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+ esac
+ done
+}
+
+build() {
+ cd "$_builddir"
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --datarootdir=/usr/share \
+ || return 1
+ make || return 1
+}
+
+package() {
+ cd "$_builddir"
+ make DESTDIR="$pkgdir" install || return 1
+}
+
+md5sums="6f150d063b20d08030b98c45b9bee7af xclock-1.0.7.tar.bz2"
+sha256sums="23ceeca94e3e20a6c26a703ac7f789066d4517f8d2cb717ae7cb28a617d97dd0 xclock-1.0.7.tar.bz2"
+sha512sums="56689bdae6c83e9e1da5c4c48cf1136ca8b4f45b177f27bc1deeb24758e2c180035b639e8df72e3ebf32dc301bceb59118309fcce2ffab54e5abe9bfa645e607 xclock-1.0.7.tar.bz2"
diff --git a/community/xeyes/APKBUILD b/community/xeyes/APKBUILD
new file mode 100644
index 00000000000..51128ffabdd
--- /dev/null
+++ b/community/xeyes/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: ScrumpyJack <scrumpyjack@me.com>
+# Maintainer: ScrumpyJack <scrumpyjack@me.com>
+pkgname=xeyes
+pkgver=1.1.1
+pkgrel=0
+pkgdesc="A pair of eyes that follow your mouse in X11"
+url="http://www.x.org"
+arch="all"
+license="MIT"
+depends=""
+depends_dev=""
+makedepends="libx11-dev libxt-dev libxext-dev libxmu-dev libxrender-dev"
+install=""
+subpackages="$pkgname-doc"
+source="http://www.x.org/releases/individual/app/${pkgname}-${pkgver}.tar.bz2"
+
+_builddir="$srcdir/$pkgname-$pkgver"
+
+build() {
+ cd "$_builddir"
+ ./configure \
+ --prefix=/usr \
+ --datarootdir=/usr/share \
+ || return 1
+ make || return 1
+}
+
+package() {
+ cd "$_builddir"
+ make DESTDIR="$pkgdir" install || return 1
+}
+
+md5sums="a3035dcecdbdb89e864177c080924981 xeyes-1.1.1.tar.bz2"
+sha256sums="975e98680cd59e1f9439016386609546ed08c284d0f05a95276f96aca6e8a521 xeyes-1.1.1.tar.bz2"
+sha512sums="3cb734239fa3180a9cc0eb2564c5a04f5e5c64ea314079c0604cebdbb821132f95a2c113dab476af8820308f0e6dbd4eac02b5da45dc2ed78a5d3ca010453618 xeyes-1.1.1.tar.bz2"
diff --git a/community/xkill/APKBUILD b/community/xkill/APKBUILD
new file mode 100644
index 00000000000..79d8bbe2a6c
--- /dev/null
+++ b/community/xkill/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: ScrumpyJack <scrumpyjack@st.ilet.to>
+# Maintainer: ScrumpyJack <scrumpyjack@st.ilet.to>
+pkgname=xkill
+pkgver=1.0.4
+pkgrel=0
+pkgdesc="Kill tool for the X Window System"
+url="http://www.x.org"
+arch="all"
+license="MIT"
+depends=""
+depends_dev=""
+makedepends="libx11-dev libxmu-dev"
+install=""
+subpackages="$pkgname-doc"
+source="http://www.x.org/releases/individual/app/${pkgname}-${pkgver}.tar.bz2"
+
+_builddir="${srcdir}/${pkgname}-${pkgver}"
+
+build() {
+ cd "$_builddir"
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --datarootdir=/usr/share \
+ || return 1
+ make || return 1
+}
+
+package() {
+ cd "$_builddir"
+ make DESTDIR="$pkgdir" install || return 1
+}
+
+md5sums="0ae6bc2a8d3af68e9c76b1a6ca5f7a78 xkill-1.0.4.tar.bz2"
+sha256sums="88ef2a304f32f24b255e879f03c1dcd3a2be3e71d5562205414f267d919f812e xkill-1.0.4.tar.bz2"
+sha512sums="14d1fc0eff96a62d66307f09efc599639ee70be4bf580e2857569326881bfdcae7a8a21640509875218dd2b88575b4801ab0c43c4295550dc71141a579483545 xkill-1.0.4.tar.bz2"