summaryrefslogtreecommitdiff
path: root/libre-testing
diff options
context:
space:
mode:
authorBruno Cichon <ebrasca@librepanther.com>2018-10-02 00:52:16 +0200
committerBruno Cichon <ebrasca@librepanther.com>2018-10-02 00:52:16 +0200
commit7201d68c2089f4e83126bcfc72e0658ce920a084 (patch)
tree606328683e0a12304967f4166fd6bd544564d450 /libre-testing
parent7b0e23aa952d001065f3f2432e4a6c57ac581b5c (diff)
downloadabslibre-7201d68c2089f4e83126bcfc72e0658ce920a084.tar.gz
abslibre-7201d68c2089f4e83126bcfc72e0658ce920a084.tar.bz2
abslibre-7201d68c2089f4e83126bcfc72e0658ce920a084.zip
Add some base-devel packages for ppc64le
Diffstat (limited to 'libre-testing')
-rw-r--r--libre-testing/bison/PKGBUILD34
-rw-r--r--libre-testing/flex/PKGBUILD38
-rw-r--r--libre-testing/flex/flex-2.6.0-comment-style.patch22
-rw-r--r--libre-testing/groff/PKGBUILD54
-rw-r--r--libre-testing/groff/site.tmac16
-rw-r--r--libre-testing/m4/PKGBUILD33
-rw-r--r--libre-testing/m4/m4-1.4.16-readlink-einval.patch12
-rw-r--r--libre-testing/m4/m4-1.4.17-perl-make-check.patch12
-rw-r--r--libre-testing/make/PKGBUILD40
-rw-r--r--libre-testing/make/guile-2.2.patch15
-rw-r--r--libre-testing/patch/CVE-2018-1000156.patch142
-rw-r--r--libre-testing/patch/PKGBUILD61
-rw-r--r--libre-testing/pkgconf/PKGBUILD80
-rw-r--r--libre-testing/pkgconf/platform-pkg-config.in11
-rw-r--r--libre-testing/sudo/PKGBUILD71
-rw-r--r--libre-testing/sudo/sudo.install9
-rw-r--r--libre-testing/sudo/sudo.pam4
17 files changed, 654 insertions, 0 deletions
diff --git a/libre-testing/bison/PKGBUILD b/libre-testing/bison/PKGBUILD
new file mode 100644
index 000000000..b6b0ff06a
--- /dev/null
+++ b/libre-testing/bison/PKGBUILD
@@ -0,0 +1,34 @@
+# Maintainer: Lukas Fleischer <lfleischer@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Eric Belanger <eric@archlinux.org>
+
+pkgname=bison
+pkgver=3.0.5
+pkgrel=1
+pkgdesc="The GNU general-purpose parser generator"
+arch=('x86_64' 'ppc64le')
+license=('GPL3')
+url="http://www.gnu.org/software/bison/bison.html"
+depends=('glibc' 'm4' 'sh')
+groups=('base-devel')
+source=("ftp://ftp.gnu.org/gnu/bison/${pkgname}-${pkgver}.tar.xz"{,.sig})
+md5sums=('3e54f20988ecd1b62044e25481e5f06b'
+ 'SKIP')
+validpgpkeys=('7DF84374B1EE1F9764BBE25D0DDCAA3278D5264E') # Akim Demaille
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --datadir=/usr/share
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/libre-testing/flex/PKGBUILD b/libre-testing/flex/PKGBUILD
new file mode 100644
index 000000000..df37cb065
--- /dev/null
+++ b/libre-testing/flex/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Lukas Fleischer <lfleischer@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=flex
+pkgver=2.6.4
+pkgrel=1
+pkgdesc="A tool for generating text-scanning programs"
+arch=('x86_64' 'ppc64le')
+url="https://github.com/westes/flex"
+license=('custom')
+groups=('base-devel')
+depends=('glibc' 'm4' 'sh')
+makedepends=('help2man')
+source=("https://github.com/westes/flex/releases/download/v$pkgver/flex-$pkgver.tar.gz")
+md5sums=('2882e3179748cc9f9c23ec593d6adc8d')
+
+build() {
+ cd "$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd "$pkgname-$pkgver"
+
+ # cxx_restart fails - https://github.com/westes/flex/issues/98
+ make -k check || true
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+ ln -s flex "${pkgdir}/usr/bin/lex"
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/license.txt"
+}
diff --git a/libre-testing/flex/flex-2.6.0-comment-style.patch b/libre-testing/flex/flex-2.6.0-comment-style.patch
new file mode 100644
index 000000000..74176168a
--- /dev/null
+++ b/libre-testing/flex/flex-2.6.0-comment-style.patch
@@ -0,0 +1,22 @@
+From 07d89829cce4527c7614a34642d4b2c2ef5d6005 Mon Sep 17 00:00:00 2001
+From: Will Estes <westes575@gmail.com>
+Date: Fri, 11 Dec 2015 09:45:14 -0500
+Subject: [PATCH] Commented in C style in skeleton; fixed sf#195
+
+---
+ src/flex.skl | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/flex.skl b/src/flex.skl
+index b63c8c8..40287b6 100644
+--- a/src/flex.skl
++++ b/src/flex.skl
+@@ -2350,7 +2350,7 @@ void yyFlexLexer::yyensure_buffer_stack(void)
+ * scanner will even need a stack. We use 2 instead of 1 to avoid an
+ * immediate realloc on the next call.
+ */
+- num_to_alloc = 1; // After all that talk, this was set to 1 anyways...
++ num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
+ YY_G(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+ (num_to_alloc * sizeof(struct yy_buffer_state*)
+ M4_YY_CALL_LAST_ARG);
diff --git a/libre-testing/groff/PKGBUILD b/libre-testing/groff/PKGBUILD
new file mode 100644
index 000000000..70d5baa5a
--- /dev/null
+++ b/libre-testing/groff/PKGBUILD
@@ -0,0 +1,54 @@
+# Maintainer:
+
+pkgname=groff
+pkgver=1.22.3
+pkgrel=7
+pkgdesc='GNU troff text-formatting system'
+arch=('x86_64' 'ppc64le')
+url='https://www.gnu.org/software/groff/groff.html'
+license=('GPL')
+groups=('base-devel')
+depends=('perl' 'gcc-libs')
+makedepends=('netpbm' 'psutils' 'libxaw')
+optdepends=('netpbm: for use together with man -H command interaction in browsers'
+ 'psutils: for use together with man -H command interaction in browsers'
+ 'libxaw: for gxditview')
+options=('!docs' '!emptydirs' '!makeflags')
+validpgpkeys=('58E0C111E39F5408C5D3EC76C1A60EACE707FDA5') # Werner Lemberg <wl@gnu.org>
+source=("https://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz"{,.sig}
+ 'site.tmac')
+sha256sums=('3a48a9d6c97750bfbd535feeb5be0111db6406ddb7bb79fc680809cda6d828a5'
+ 'SKIP'
+ 'af59ecde597ce9f8189368a7739279a5f8a391139fe048ef6b4e493ed46e5f5f')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ ./configure \
+ --prefix=/usr \
+ --with-x \
+ --with-appresdir=/usr/share/X11/app-defaults
+ make
+}
+
+check() {
+ cd $srcdir/$pkgname-$pkgver
+ make check
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+
+ # add compatibility symlinks
+ ln -s eqn $pkgdir/usr/bin/geqn
+ ln -s tbl $pkgdir/usr/bin/gtbl
+ ln -s soelim $pkgdir/usr/bin/zsoelim
+
+ # FS33760 - TERMCAP variables not followed
+ # TODO: everyone is doing this - find out why upstream does not...
+ cat $srcdir/site.tmac >> \
+ $pkgdir/usr/share/groff/site-tmac/man.local
+ cat $srcdir/site.tmac >> \
+ $pkgdir/usr/share/groff/site-tmac/mdoc.local
+}
diff --git a/libre-testing/groff/site.tmac b/libre-testing/groff/site.tmac
new file mode 100644
index 000000000..8ef1040ca
--- /dev/null
+++ b/libre-testing/groff/site.tmac
@@ -0,0 +1,16 @@
+.
+.if n \{\
+. \" Character translations for non-keyboard
+. \" characters - to make them searchable
+. if '\*[.T]'utf8' \{\
+. char \- \N'45'
+. char - \N'45'
+. char ' \N'39'
+. char \' \N'39'
+. \}
+.
+. \" Shut off SGR by default (groff colors)
+. \" Require GROFF_SGR envvar defined to turn it on
+. if '\V[GROFF_SGR]'' \
+. output x X tty: sgr 0
+.\}
diff --git a/libre-testing/m4/PKGBUILD b/libre-testing/m4/PKGBUILD
new file mode 100644
index 000000000..deb3f64a5
--- /dev/null
+++ b/libre-testing/m4/PKGBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=m4
+pkgver=1.4.18
+pkgrel=1
+pkgdesc="The GNU macro processor"
+arch=('x86_64' 'ppc64le')
+url="http://www.gnu.org/software/m4"
+license=('GPL3')
+groups=('base-devel')
+depends=('glibc' 'bash')
+source=(ftp://ftp.gnu.org/gnu/m4/$pkgname-$pkgver.tar.xz{,.sig})
+md5sums=('730bb15d96fffe47e148d1e09235af82'
+ 'SKIP')
+validpgpkeys=('71C2CC22B1C4602927D2F3AAA7A16B4A2527436A') # Eric Blake
+
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd $pkgname-$pkgver
+ make check
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make prefix=${pkgdir}/usr install
+}
diff --git a/libre-testing/m4/m4-1.4.16-readlink-einval.patch b/libre-testing/m4/m4-1.4.16-readlink-einval.patch
new file mode 100644
index 000000000..6a987510d
--- /dev/null
+++ b/libre-testing/m4/m4-1.4.16-readlink-einval.patch
@@ -0,0 +1,12 @@
+diff -up m4-1.4.16/tests/test-readlink.h.orig m4-1.4.16/tests/test-readlink.h
+--- m4-1.4.16/tests/test-readlink.h.orig 2011-09-19 12:44:58.745546826 +0200
++++ m4-1.4.16/tests/test-readlink.h 2011-09-19 12:46:00.079548410 +0200
+@@ -38,7 +38,7 @@ test_readlink (ssize_t (*func) (char con
+ ASSERT (errno == ENOENT);
+ errno = 0;
+ ASSERT (func ("", buf, sizeof buf) == -1);
+- ASSERT (errno == ENOENT);
++ ASSERT (errno == ENOENT || errno == EINVAL);
+ errno = 0;
+ ASSERT (func (".", buf, sizeof buf) == -1);
+ ASSERT (errno == EINVAL);
diff --git a/libre-testing/m4/m4-1.4.17-perl-make-check.patch b/libre-testing/m4/m4-1.4.17-perl-make-check.patch
new file mode 100644
index 000000000..ae4af4021
--- /dev/null
+++ b/libre-testing/m4/m4-1.4.17-perl-make-check.patch
@@ -0,0 +1,12 @@
+diff -up m4-1.4.17/build-aux/update-copyright.orig m4-1.4.17/build-aux/update-copyright
+--- m4-1.4.17/build-aux/update-copyright.orig 2015-07-13 11:25:19.502749690 +0200
++++ m4-1.4.17/build-aux/update-copyright 2015-07-13 11:26:20.445044297 +0200
+@@ -124,7 +124,7 @@ use strict;
+ use warnings;
+
+ my $copyright_re = 'Copyright';
+-my $circle_c_re = '(?:\([cC]\)|@copyright{}|&copy;)';
++my $circle_c_re = '(?:\([cC]\)|@copyright\{}|\\\\\(co|&copy;)';
+ my $holder = $ENV{UPDATE_COPYRIGHT_HOLDER};
+ $holder ||= 'Free Software Foundation, Inc.';
+ my $prefix_max = 5;
diff --git a/libre-testing/make/PKGBUILD b/libre-testing/make/PKGBUILD
new file mode 100644
index 000000000..232ee4560
--- /dev/null
+++ b/libre-testing/make/PKGBUILD
@@ -0,0 +1,40 @@
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=make
+pkgver=4.2.1
+pkgrel=2
+pkgdesc="GNU make utility to maintain groups of programs"
+arch=('x86_64' 'ppc64le')
+url="http://www.gnu.org/software/make"
+license=('GPL3')
+groups=('base-devel')
+depends=('glibc' 'guile')
+source=(ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.bz2{,.sig}
+ guile-2.2.patch)
+md5sums=('15b012617e7c44c0ed482721629577ac'
+ 'SKIP'
+ '89bbbe3f806f208608e117665feb562b')
+validpgpkeys=('3D2554F0A15338AB9AF1BB9D96B047156338B6D4') # Paul Smith
+
+prepare() {
+ cd ${pkgname}-${pkgver}
+ patch -p1 -i ${srcdir}/guile-2.2.patch
+ autoreconf -fi
+}
+
+build() {
+ cd ${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd ${pkgname}-${pkgver}
+ make -k check
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/libre-testing/make/guile-2.2.patch b/libre-testing/make/guile-2.2.patch
new file mode 100644
index 000000000..8e4cbc0ff
--- /dev/null
+++ b/libre-testing/make/guile-2.2.patch
@@ -0,0 +1,15 @@
+diff --git a/configure.ac b/configure.ac
+index 64ec870..eb1139f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -168,8 +168,8 @@ AC_ARG_WITH([guile], [AS_HELP_STRING([--with-guile],
+ # comes with it's own PC file so we have to specify them as individual
+ # packages. Ugh.
+ AS_IF([test "x$with_guile" != xno],
+-[ PKG_CHECK_MODULES([GUILE], [guile-2.0], [have_guile=yes],
+- [PKG_CHECK_MODULES([GUILE], [guile-1.8], [have_guile=yes],
++[ PKG_CHECK_MODULES([GUILE], [guile-2.2], [have_guile=yes],
++ [PKG_CHECK_MODULES([GUILE], [guile-2.0], [have_guile=yes],
+ [have_guile=no])])
+ ])
+
diff --git a/libre-testing/patch/CVE-2018-1000156.patch b/libre-testing/patch/CVE-2018-1000156.patch
new file mode 100644
index 000000000..146ce15b8
--- /dev/null
+++ b/libre-testing/patch/CVE-2018-1000156.patch
@@ -0,0 +1,142 @@
+diff -aur patch-2.7.6.old/src/pch.c patch-2.7.6/src/pch.c
+--- patch-2.7.6.old/src/pch.c 2018-09-25 21:35:15.468805478 +0200
++++ patch-2.7.6/src/pch.c 2018-09-25 21:39:33.691394951 +0200
+@@ -33,6 +33,7 @@
+ # include <io.h>
+ #endif
+ #include <safe.h>
++#include <sys/wait.h>
+
+ #define INITHUNKMAX 125 /* initial dynamic allocation size */
+
+@@ -2388,22 +2389,28 @@
+ static char const editor_program[] = EDITOR_PROGRAM;
+
+ file_offset beginning_of_this_line;
+- FILE *pipefp = 0;
+ size_t chars_read;
++ FILE *tmpfp = 0;
++ char const *tmpname;
++ int tmpfd;
++ pid_t pid;
++
++ if (! dry_run && ! skip_rest_of_patch)
++ {
++ /* Write ed script to a temporary file. This causes ed to abort on
++ invalid commands such as when line numbers or ranges exceed the
++ number of available lines. When ed reads from a pipe, it rejects
++ invalid commands and treats the next line as a new command, which
++ can lead to arbitrary command execution. */
++
++ tmpfd = make_tempfile (&tmpname, 'e', NULL, O_RDWR | O_BINARY, 0);
++ if (tmpfd == -1)
++ pfatal ("Can't create temporary file %s", quotearg (tmpname));
++ tmpfp = fdopen (tmpfd, "w+b");
++ if (! tmpfp)
++ pfatal ("Can't open stream for file %s", quotearg (tmpname));
++ }
+
+- if (! dry_run && ! skip_rest_of_patch) {
+- int exclusive = *outname_needs_removal ? 0 : O_EXCL;
+- assert (! inerrno);
+- *outname_needs_removal = true;
+- copy_file (inname, outname, 0, exclusive, instat.st_mode, true);
+- sprintf (buf, "%s %s%s", editor_program,
+- verbosity == VERBOSE ? "" : "- ",
+- outname);
+- fflush (stdout);
+- pipefp = popen(buf, binary_transput ? "wb" : "w");
+- if (!pipefp)
+- pfatal ("Can't open pipe to %s", quotearg (buf));
+- }
+ for (;;) {
+ char ed_command_letter;
+ beginning_of_this_line = file_tell (pfp);
+@@ -2414,14 +2421,14 @@
+ }
+ ed_command_letter = get_ed_command_letter (buf);
+ if (ed_command_letter) {
+- if (pipefp)
+- if (! fwrite (buf, sizeof *buf, chars_read, pipefp))
++ if (tmpfp)
++ if (! fwrite (buf, sizeof *buf, chars_read, tmpfp))
+ write_fatal ();
+ if (ed_command_letter != 'd' && ed_command_letter != 's') {
+ p_pass_comments_through = true;
+ while ((chars_read = get_line ()) != 0) {
+- if (pipefp)
+- if (! fwrite (buf, sizeof *buf, chars_read, pipefp))
++ if (tmpfp)
++ if (! fwrite (buf, sizeof *buf, chars_read, tmpfp))
+ write_fatal ();
+ if (chars_read == 2 && strEQ (buf, ".\n"))
+ break;
+@@ -2434,13 +2441,49 @@
+ break;
+ }
+ }
+- if (!pipefp)
++ if (!tmpfp)
+ return;
+- if (fwrite ("w\nq\n", sizeof (char), (size_t) 4, pipefp) == 0
+- || fflush (pipefp) != 0)
++ if (fwrite ("w\nq\n", sizeof (char), (size_t) 4, tmpfp) == 0
++ || fflush (tmpfp) != 0)
+ write_fatal ();
+- if (pclose (pipefp) != 0)
+- fatal ("%s FAILED", editor_program);
++
++ if (lseek (tmpfd, 0, SEEK_SET) == -1)
++ pfatal ("Can't rewind to the beginning of file %s", quotearg (tmpname));
++
++ if (! dry_run && ! skip_rest_of_patch) {
++ int exclusive = *outname_needs_removal ? 0 : O_EXCL;
++ *outname_needs_removal = true;
++ if (inerrno != ENOENT)
++ {
++ *outname_needs_removal = true;
++ copy_file (inname, outname, 0, exclusive, instat.st_mode, true);
++ }
++ sprintf (buf, "%s %s%s", editor_program,
++ verbosity == VERBOSE ? "" : "- ",
++ outname);
++ fflush (stdout);
++
++ pid = fork();
++ if (pid == -1)
++ pfatal ("Can't fork");
++ else if (pid == 0)
++ {
++ dup2 (tmpfd, 0);
++ execl ("/bin/sh", "sh", "-c", buf, (char *) 0);
++ _exit (2);
++ }
++ else
++ {
++ int wstatus;
++ if (waitpid (pid, &wstatus, 0) == -1
++ || ! WIFEXITED (wstatus)
++ || WEXITSTATUS (wstatus) != 0)
++ fatal ("%s FAILED", editor_program);
++ }
++ }
++
++ fclose (tmpfp);
++ safe_unlink (tmpname);
+
+ if (ofp)
+ {
+Only in patch-2.7.6/src: pch.c.orig
+Only in patch-2.7.6/src: pch.c.rej
+Only in patch-2.7.6/tests: ed-style
+diff -aur patch-2.7.6.old/tests/Makefile.am patch-2.7.6/tests/Makefile.am
+--- patch-2.7.6.old/tests/Makefile.am 2018-09-25 21:35:15.468805478 +0200
++++ patch-2.7.6/tests/Makefile.am 2018-09-25 21:35:35.028947275 +0200
+@@ -32,6 +32,7 @@
+ crlf-handling \
+ dash-o-append \
+ deep-directories \
++ ed-style \
+ empty-files \
+ false-match \
+ fifo \
diff --git a/libre-testing/patch/PKGBUILD b/libre-testing/patch/PKGBUILD
new file mode 100644
index 000000000..54177ce9b
--- /dev/null
+++ b/libre-testing/patch/PKGBUILD
@@ -0,0 +1,61 @@
+# Maintainer: SĂ©bastien Luttringer <seblu@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=patch
+pkgver=2.7.6
+pkgrel=3
+pkgdesc='A utility to apply patch files to original sources'
+arch=('x86_64' 'ppc64le')
+url='https://www.gnu.org/software/patch/'
+license=('GPL')
+groups=('base-devel')
+depends=('glibc' 'attr')
+makedepends=('ed')
+optdepends=('ed: for patch -e functionality')
+validpgpkeys=('259B3792B3D6D319212CC4DCD5BF9FEB0313653A') # Andreas Gruenbacher
+source=("https://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz"{,.sig}
+ "https://github.com/mirror/patch/commit/f290f48a621867084884bfff87f8093c15195e6a.patch" # CVE-2018-6951
+ "CVE-2018-1000156.patch" # CVE-2018-1000156
+ "https://github.com/mirror/patch/commit/9c986353e420ead6e706262bf204d6e03322c300.patch" # CVE-2018-6952
+ "http://git.savannah.gnu.org/cgit/patch.git/patch/?id=19599883ffb6a450d2884f081f8ecf68edbed7ee" # Fix memory leaks introduced in CVE-2018-1000165
+ "http://git.savannah.gnu.org/cgit/patch.git/patch/?id=369dcccdfa6336e5a873d6d63705cfbe04c55727"
+ )
+md5sums=('78ad9937e4caadcba1526ef1853730d5'
+ 'SKIP'
+ '7e34fc859ccc07b235a8b01b043ff456'
+ 'fb16655d092f251316715e792636b48d'
+ 'aa8ac1e3dccbd523143b01e9f60b06e8'
+ 'bba3e65611813a4467cdd73219a5059d'
+ '5eb2c88e30fa8775deaf0b29287bf6bd')
+
+prepare() {
+ cd $pkgname-$pkgver
+ # apply patch from the source array (should be a pacman feature)
+ local filename
+ for filename in "${source[@]}"; do
+ if [[ "$filename" =~ \.patch$ ]]; then
+ echo "Applying patch ${filename##*/}"
+ patch -p1 -N -i "$srcdir/${filename##*/}"
+ fi
+ done
+ :
+}
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd $pkgname-$pkgver
+ make check
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/libre-testing/pkgconf/PKGBUILD b/libre-testing/pkgconf/PKGBUILD
new file mode 100644
index 000000000..612c90764
--- /dev/null
+++ b/libre-testing/pkgconf/PKGBUILD
@@ -0,0 +1,80 @@
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Johannes Löthberg <johannes@kyriasis.com>
+# Contributor: Piotr Gorski <lucjan.lucjanov@gmail.com>
+# Contributor: Lucy <lucy@luz.lu>
+# Contributor: Bartlomiej Piotrowski <nospam@bpiotrowski.pl>
+
+pkgname=pkgconf
+pkgver=1.5.3
+pkgrel=1
+pkgdesc="Package compiler and linker metadata toolkit"
+url="https://git.dereferenced.org/pkgconf/pkgconf"
+license=(custom:ISC)
+arch=('x86_64' 'ppc64le')
+depends=(glibc sh)
+makedepends=(git)
+provides=(pkg-config pkgconfig)
+conflicts=(pkg-config)
+replaces=(pkg-config)
+groups=(base-devel)
+_commit=101b99b5b59d58fe6c6dc46ae22edb049cc0bd3a # tags/pkgconf-1.5.3
+source=("git+$url#commit=$_commit" platform-pkg-config.in)
+sha256sums=('SKIP'
+ '7c61338fbd83f9783d805c2f2f97b426977895a2f4b79e0ae5bc8e9d7996edaa')
+
+_pcdirs=/usr/lib/pkgconfig:/usr/share/pkgconfig
+_libdir=/usr/lib
+_includedir=/usr/include
+
+pkgver() {
+ cd $pkgname
+ git describe --tags | sed 's/^pkgconf-//;s/-/+/g'
+}
+
+prepare() {
+ mkdir build
+ cd $pkgname
+ ./autogen.sh
+}
+
+build() {
+ cd build
+ ../$pkgname/configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --with-pkg-config-dir="$_pcdirs" \
+ --with-system-libdir="$_libdir" \
+ --with-system-includedir="$_includedir" \
+ --disable-static
+ make
+}
+
+package() {
+ DESTDIR="$pkgdir" make -C build install
+
+ # From https://src.fedoraproject.org/rpms/pkgconf/
+ sed -e "s|@TARGET_PLATFORM@|$CHOST|g" \
+ -e "s|@PKGCONF_LIBDIRS@|$_pcdirs|g" \
+ -e "s|@PKGCONF_SYSLIBDIR@|$_libdir|g" \
+ -e "s|@PKGCONF_SYSINCDIR@|$_includedir|g" \
+ platform-pkg-config.in |
+ install -D /dev/stdin "$pkgdir/usr/bin/$CHOST-pkg-config"
+ ln -s $CHOST-pkg-config "$pkgdir/usr/bin/pkg-config"
+
+ # Multilib
+ if [[ $CARCH = x86_64 ]]; then
+ _host32=${CHOST/x86_64/i686}
+ sed -e "s|@TARGET_PLATFORM@|$_host32|g" \
+ -e "s|@PKGCONF_LIBDIRS@|${_pcdirs/lib/lib32}|g" \
+ -e "s|@PKGCONF_SYSLIBDIR@|${_libdir/lib/lib32}|g" \
+ -e "s|@PKGCONF_SYSINCDIR@|$_includedir|g" \
+ platform-pkg-config.in |
+ install -D /dev/stdin "$pkgdir/usr/bin/$_host32-pkg-config"
+ ln -s $_host32-pkg-config "$pkgdir/usr/bin/pkg-config-32"
+ fi
+
+ ln -s pkgconf.1 "$pkgdir/usr/share/man/man1/pkg-config.1"
+ install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 $pkgname/COPYING
+}
+
+# vim:set sw=2 et:
diff --git a/libre-testing/pkgconf/platform-pkg-config.in b/libre-testing/pkgconf/platform-pkg-config.in
new file mode 100644
index 000000000..4a6f2b575
--- /dev/null
+++ b/libre-testing/pkgconf/platform-pkg-config.in
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+# Simple wrapper to tell pkgconf to behave as a platform-specific version of pkg-config
+# Platform: @TARGET_PLATFORM@
+
+: ${PKG_CONFIG_LIBDIR=@PKGCONF_LIBDIRS@}
+: ${PKG_CONFIG_SYSTEM_LIBRARY_PATH=@PKGCONF_SYSLIBDIR@}
+: ${PKG_CONFIG_SYSTEM_INCLUDE_PATH=@PKGCONF_SYSINCDIR@}
+export PKG_CONFIG_LIBDIR PKG_CONFIG_SYSTEM_LIBRARY_PATH PKG_CONFIG_SYSTEM_INCLUDE_PATH
+
+exec pkgconf "$@"
diff --git a/libre-testing/sudo/PKGBUILD b/libre-testing/sudo/PKGBUILD
new file mode 100644
index 000000000..cf6ba479f
--- /dev/null
+++ b/libre-testing/sudo/PKGBUILD
@@ -0,0 +1,71 @@
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=sudo
+_sudover=1.8.25p1
+pkgver=${_sudover/p/.p}
+pkgrel=1
+pkgdesc="Give certain users the ability to run some commands as root"
+arch=('x86_64' 'ppc64le')
+url="https://www.sudo.ws/sudo/"
+license=('custom')
+groups=('base-devel')
+depends=('glibc' 'libgcrypt' 'pam' 'libldap')
+backup=('etc/sudoers' 'etc/pam.d/sudo')
+install=$pkgname.install
+source=(https://www.sudo.ws/sudo/dist/$pkgname-$_sudover.tar.gz{,.sig}
+ sudo.pam)
+sha256sums=('9dc99c7a7d37a0ab938410995c133e15d6afb970c2c66f9264fe36d20c89195b'
+ 'SKIP'
+ 'd1738818070684a5d2c9b26224906aad69a4fea77aabd960fc2675aee2df1fa2')
+validpgpkeys=('59D1E9CCBA2B376704FDD35BA9F4C021CEA470FB')
+
+prepare() {
+ cd "$srcdir/$pkgname-$_sudover"
+}
+
+build() {
+ cd "$srcdir/$pkgname-$_sudover"
+
+ ./configure \
+ --prefix=/usr \
+ --sbindir=/usr/bin \
+ --libexecdir=/usr/lib \
+ --with-rundir=/run/sudo \
+ --with-vardir=/var/db/sudo \
+ --with-logfac=auth \
+ --enable-gcrypt \
+ --enable-tmpfiles.d \
+ --with-pam \
+ --with-sssd \
+ --with-ldap \
+ --with-ldap-conf-file=/etc/openldap/ldap.conf \
+ --with-env-editor \
+ --with-passprompt="[sudo] password for %p: " \
+ --with-all-insults
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgname-$_sudover"
+ make check
+}
+
+package() {
+ cd "$srcdir/$pkgname-$_sudover"
+ make DESTDIR="$pkgdir" install
+
+ # Remove sudoers.dist; not needed since pacman manages updates to sudoers
+ rm "$pkgdir/etc/sudoers.dist"
+
+ # Remove /run/sudo directory; we create it using systemd-tmpfiles
+ rmdir "$pkgdir/run/sudo"
+ rmdir "$pkgdir/run"
+
+ install -Dm644 "$srcdir/sudo.pam" "$pkgdir/etc/pam.d/sudo"
+
+ install -Dm644 doc/LICENSE "$pkgdir/usr/share/licenses/sudo/LICENSE"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/libre-testing/sudo/sudo.install b/libre-testing/sudo/sudo.install
new file mode 100644
index 000000000..abf58e37b
--- /dev/null
+++ b/libre-testing/sudo/sudo.install
@@ -0,0 +1,9 @@
+pre_upgrade() {
+ # Permissions of /var/db/sudo were changed from 0700 to 0711 in sudo 1.8.10
+ # http://www.sudo.ws/repos/sudo/rev/5c38d77a2d0c
+ if (($(vercmp $2 1.8.10-1) < 0)); then
+ chmod 0711 var/db/sudo
+ fi
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/libre-testing/sudo/sudo.pam b/libre-testing/sudo/sudo.pam
new file mode 100644
index 000000000..ab053c543
--- /dev/null
+++ b/libre-testing/sudo/sudo.pam
@@ -0,0 +1,4 @@
+#%PAM-1.0
+auth include system-auth
+account include system-auth
+session include system-auth