summaryrefslogtreecommitdiffstats
path: root/arch/tde-deps
diff options
context:
space:
mode:
Diffstat (limited to 'arch/tde-deps')
-rw-r--r--arch/tde-deps/gdk-pixbuf-xlib/PKGBUILD42
-rw-r--r--arch/tde-deps/gnokii/PKGBUILD2
-rw-r--r--arch/tde-deps/htdig/PKGBUILD2
-rw-r--r--arch/tde-deps/imlib/CAN-2004-1026.patch510
-rw-r--r--arch/tde-deps/imlib/PKGBUILD48
-rw-r--r--arch/tde-deps/imlib/aclocal-fixes.patch20
-rw-r--r--arch/tde-deps/imlib/debian-bug448360.patch92
-rw-r--r--arch/tde-deps/imlib/imlib-1.9.15-libpng15.patch142
-rw-r--r--arch/tde-deps/imlib/imlib-giflib51.patch126
-rw-r--r--arch/tde-deps/imlib/imlib-gtk.patch14
-rw-r--r--arch/tde-deps/lcms/PKGBUILD2
-rw-r--r--arch/tde-deps/lcms/lcms-1.19.tar.gzbin927752 -> 0 bytes
-rw-r--r--arch/tde-deps/libofx/PKGBUILD43
-rw-r--r--arch/tde-deps/libxml++2.6/PKGBUILD55
-rw-r--r--arch/tde-deps/pod2man/PKGBUILD2
-rw-r--r--arch/tde-deps/tor/PKGBUILD69
-rw-r--r--arch/tde-deps/tor/keys/pgp/1C1BC007A9F607AA8152C040BEA7B180B1491921.asc43
-rw-r--r--arch/tde-deps/tor/keys/pgp/2133BC600AB133E1D826D173FE43009C4607B1FB.asc123
-rw-r--r--arch/tde-deps/tor/keys/pgp/B74417EDDF22AC9F9E90F49142E86A2A11F48D36.asc51
-rw-r--r--arch/tde-deps/tor/tor.service35
-rw-r--r--arch/tde-deps/tor/tor.sysusers1
-rw-r--r--arch/tde-deps/tor/tor.tmpfiles1
-rw-r--r--arch/tde-deps/tor/torrc.patch28
-rw-r--r--arch/tde-deps/torsocks/PKGBUILD33
-rw-r--r--arch/tde-deps/torsocks/keys/pgp/B74417EDDF22AC9F9E90F49142E86A2A11F48D36.asc66
-rw-r--r--arch/tde-deps/xine-lib/010-xine-lib-dav1d-1.0.0-support.patch28
-rw-r--r--arch/tde-deps/xine-lib/020-xine-lib-ffmpeg-5.1-fix.patch330
-rw-r--r--arch/tde-deps/xine-lib/PKGBUILD63
-rw-r--r--arch/tde-deps/xscreensaver/LICENSE10
-rw-r--r--arch/tde-deps/xscreensaver/PKGBUILD55
30 files changed, 2032 insertions, 4 deletions
diff --git a/arch/tde-deps/gdk-pixbuf-xlib/PKGBUILD b/arch/tde-deps/gdk-pixbuf-xlib/PKGBUILD
new file mode 100644
index 000000000..f429c1492
--- /dev/null
+++ b/arch/tde-deps/gdk-pixbuf-xlib/PKGBUILD
@@ -0,0 +1,42 @@
+# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
+
+pkgname=gdk-pixbuf-xlib
+pkgver=2.40.2
+pkgrel=2
+pkgdesc="Deprecated Xlib integration for GdkPixbuf"
+arch=('powerpc64le')
+url="https://gitlab.gnome.org/Archive/gdk-pixbuf-xlib"
+license=(LGPL2.1)
+depends=(gdk-pixbuf2 libx11)
+makedepends=(gtk-doc git meson)
+options=(debug)
+_commit=c142b818801e0affceea4a2139cf5630a283e54e # tags/2.40.2^0
+source=("git+$url.git#commit=$_commit")
+sha256sums=('SKIP')
+
+pkgver() {
+ cd $pkgname
+ git describe --tags | sed 's/[^-]*-g/r&/;s/-/+/g'
+}
+
+prepare() {
+ cd $pkgname
+}
+
+build() {
+ arch-meson $pkgname build -D gtk_doc=true
+ meson compile -C build
+}
+
+check() {
+ meson test -C build --print-errorlogs
+}
+
+package() {
+ depends+=(libgdk_pixbuf-2.0.so)
+ provides+=(libgdk_pixbuf_xlib-2.0.so)
+
+ meson install -C build --destdir "$pkgdir"
+}
+
+# vim:set sw=2 sts=-1 et:
diff --git a/arch/tde-deps/gnokii/PKGBUILD b/arch/tde-deps/gnokii/PKGBUILD
index 3052f5ff3..76bb50958 100644
--- a/arch/tde-deps/gnokii/PKGBUILD
+++ b/arch/tde-deps/gnokii/PKGBUILD
@@ -7,7 +7,7 @@ pkgname=gnokii
pkgver=0.6.31
pkgrel=19.1
pkgdesc='Tools and user space driver for use with mobile phones'
-arch=('x86_64' 'aarch64' 'armv7h')
+arch=('i686' 'x86_64' 'aarch64' 'armv7h' 'powerpc64le')
url='https://www.gnokii.org/'
license=('GPL')
depends=('libusb-compat' 'libxpm' 'bluez-libs' 'libical' 'sqlite' 'systemd')
diff --git a/arch/tde-deps/htdig/PKGBUILD b/arch/tde-deps/htdig/PKGBUILD
index 1edf3a90f..cec2ce842 100644
--- a/arch/tde-deps/htdig/PKGBUILD
+++ b/arch/tde-deps/htdig/PKGBUILD
@@ -7,7 +7,7 @@ pkgver=3.2.0b6
pkgrel=11.1
pkgdesc="Scripts and HTML code needed for using ht://Dig as a web search engine"
url="http://www.htdig.org/"
-arch=('i686' 'x86_64' 'aarch64' 'armv7h')
+arch=('i686' 'x86_64' 'aarch64' 'armv7h' 'powerpc64le')
license=('GPL')
depends=('openssl')
source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2"
diff --git a/arch/tde-deps/imlib/CAN-2004-1026.patch b/arch/tde-deps/imlib/CAN-2004-1026.patch
new file mode 100644
index 000000000..c820270d4
--- /dev/null
+++ b/arch/tde-deps/imlib/CAN-2004-1026.patch
@@ -0,0 +1,510 @@
+diff -urN imlib-1.9.13.orig/Imlib/load.c imlib-1.9.13/Imlib/load.c
+--- imlib-1.9.13.orig/Imlib/load.c Wed Mar 13 19:06:29 2002
++++ imlib-1.9.13/Imlib/load.c Thu Sep 16 17:21:01 2004
+@@ -4,6 +4,8 @@
+ #include "Imlib_private.h"
+ #include <setjmp.h>
+
++#define G_MAXINT ((int) 0x7fffffff)
++
+ /* Split the ID - damages input */
+
+ static char *
+@@ -41,13 +43,17 @@
+
+ /*
+ * Make sure we don't wrap on our memory allocations
++ * we check G_MAXINT/4 because rend.c malloc's w * h * bpp
++ * + 3 is safety margin
+ */
+
+ void * _imlib_malloc_image(unsigned int w, unsigned int h)
+ {
+- if( w > 32767 || h > 32767)
+- return NULL;
+- return malloc(w * h * 3);
++ if (w <= 0 || w > 32767 ||
++ h <= 0 || h > 32767 ||
++ h >= (G_MAXINT/4 - 1) / w)
++ return NULL;
++ return malloc(w * h * 3 + 3);
+ }
+
+ #ifdef HAVE_LIBJPEG
+@@ -360,7 +366,9 @@
+ npix = ww * hh;
+ *w = (int)ww;
+ *h = (int)hh;
+- if(ww > 32767 || hh > 32767)
++ if (ww <= 0 || ww > 32767 ||
++ hh <= 0 || hh > 32767 ||
++ hh >= (G_MAXINT/sizeof(uint32)) / ww)
+ {
+ TIFFClose(tif);
+ return NULL;
+@@ -463,7 +471,7 @@
+ }
+ *w = gif->Image.Width;
+ *h = gif->Image.Height;
+- if (*h > 32767 || *w > 32767)
++ if (*h <= 0 || *h > 32767 || *w <= 0 || *w > 32767)
+ {
+ return NULL;
+ }
+@@ -965,7 +973,12 @@
+ comment = 0;
+ quote = 0;
+ context = 0;
++ memset(lookup, 0, sizeof(lookup));
++
+ line = malloc(lsz);
++ if (!line)
++ return NULL;
++
+ while (!done)
+ {
+ pc = c;
+@@ -994,25 +1007,25 @@
+ {
+ /* Header */
+ sscanf(line, "%i %i %i %i", w, h, &ncolors, &cpp);
+- if (ncolors > 32766)
++ if (ncolors <= 0 || ncolors > 32766)
+ {
+ fprintf(stderr, "IMLIB ERROR: XPM files wth colors > 32766 not supported\n");
+ free(line);
+ return NULL;
+ }
+- if (cpp > 5)
++ if (cpp <= 0 || cpp > 5)
+ {
+ fprintf(stderr, "IMLIB ERROR: XPM files with characters per pixel > 5 not supported\n");
+ free(line);
+ return NULL;
+ }
+- if (*w > 32767)
++ if (*w <= 0 || *w > 32767)
+ {
+ fprintf(stderr, "IMLIB ERROR: Image width > 32767 pixels for file\n");
+ free(line);
+ return NULL;
+ }
+- if (*h > 32767)
++ if (*h <= 0 || *h > 32767)
+ {
+ fprintf(stderr, "IMLIB ERROR: Image height > 32767 pixels for file\n");
+ free(line);
+@@ -1045,11 +1058,13 @@
+ {
+ int slen;
+ int hascolor, iscolor;
++ int space;
+
+ iscolor = 0;
+ hascolor = 0;
+ tok[0] = 0;
+ col[0] = 0;
++ space = sizeof(col) - 1;
+ s[0] = 0;
+ len = strlen(line);
+ strncpy(cmap[j].str, line, cpp);
+@@ -1072,10 +1087,10 @@
+ {
+ if (k >= len)
+ {
+- if (col[0])
+- strcat(col, " ");
+- if (strlen(col) + strlen(s) < sizeof(col))
+- strcat(col, s);
++ if (col[0] && space > 0)
++ strcat(col, " "), space -= 1;
++ if (slen <= space)
++ strcat(col, s), space -= slen;
+ }
+ if (col[0])
+ {
+@@ -1105,14 +1120,17 @@
+ }
+ }
+ }
+- strcpy(tok, s);
++ if (slen < sizeof(tok));
++ strcpy(tok, s);
+ col[0] = 0;
++ space = sizeof(col) - 1;
+ }
+ else
+ {
+- if (col[0])
+- strcat(col, " ");
+- strcat(col, s);
++ if (col[0] && space > 0)
++ strcat(col, " "), space -=1;
++ if (slen <= space)
++ strcat(col, s), space -= slen;
+ }
+ }
+ }
+@@ -1341,12 +1359,12 @@
+ sscanf(s, "%i %i", w, h);
+ a = *w;
+ b = *h;
+- if (a > 32767)
++ if (a <= 0 || a > 32767)
+ {
+ fprintf(stderr, "IMLIB ERROR: Image width > 32767 pixels for file\n");
+ return NULL;
+ }
+- if (b > 32767)
++ if (b <= 0 || b > 32767)
+ {
+ fprintf(stderr, "IMLIB ERROR: Image height > 32767 pixels for file\n");
+ return NULL;
+diff -urN imlib-1.9.13.orig/Imlib/utils.c imlib-1.9.13/Imlib/utils.c
+--- imlib-1.9.13.orig/Imlib/utils.c Mon Mar 4 17:45:28 2002
++++ imlib-1.9.13/Imlib/utils.c Thu Sep 16 17:21:15 2004
+@@ -1496,36 +1496,56 @@
+ context = 0;
+ ptr = NULL;
+ end = NULL;
++ memset(lookup, 0, sizeof(lookup));
+
+ while (!done)
+ {
+ line = data[count++];
++ if (!line)
++ break;
++ line = strdup(line);
++ if (!line)
++ break;
++ len = strlen(line);
++ for (i = 0; i < len; ++i)
++ {
++ c = line[i];
++ if (c < 32)
++ line[i] = 32;
++ else if (c > 127)
++ line[i] = 127;
++ }
++
+ if (context == 0)
+ {
+ /* Header */
+ sscanf(line, "%i %i %i %i", &w, &h, &ncolors, &cpp);
+- if (ncolors > 32766)
++ if (ncolors <= 0 || ncolors > 32766)
+ {
+ fprintf(stderr, "IMLIB ERROR: XPM data wth colors > 32766 not supported\n");
+ free(im);
++ free(line);
+ return NULL;
+ }
+- if (cpp > 5)
++ if (cpp <= 0 || cpp > 5)
+ {
+ fprintf(stderr, "IMLIB ERROR: XPM data with characters per pixel > 5 not supported\n");
+ free(im);
++ free(line);
+ return NULL;
+ }
+- if (w > 32767)
++ if (w <= 0 || w > 32767)
+ {
+ fprintf(stderr, "IMLIB ERROR: Image width > 32767 pixels for data\n");
+ free(im);
++ free(line);
+ return NULL;
+ }
+- if (h > 32767)
++ if (h <= 0 || h > 32767)
+ {
+ fprintf(stderr, "IMLIB ERROR: Image height > 32767 pixels for data\n");
+ free(im);
++ free(line);
+ return NULL;
+ }
+ cmap = malloc(sizeof(struct _cmap) * ncolors);
+@@ -1533,6 +1553,7 @@
+ if (!cmap)
+ {
+ free(im);
++ free(line);
+ return NULL;
+ }
+ im->rgb_width = w;
+@@ -1542,6 +1563,7 @@
+ {
+ free(cmap);
+ free(im);
++ free(line);
+ return NULL;
+ }
+ im->alpha_data = NULL;
+@@ -1817,6 +1839,7 @@
+ }
+ if ((ptr) && ((ptr - im->rgb_data) >= w * h * 3))
+ done = 1;
++ free(line);
+ }
+ if (!transp)
+ {
+diff -urN imlib-1.9.13.orig/gdk_imlib/io-gif.c imlib-1.9.13/gdk_imlib/io-gif.c
+--- imlib-1.9.13.orig/gdk_imlib/io-gif.c Mon Mar 4 17:26:51 2002
++++ imlib-1.9.13/gdk_imlib/io-gif.c Thu Sep 16 16:11:31 2004
+@@ -55,7 +55,7 @@
+ }
+ *w = gif->Image.Width;
+ *h = gif->Image.Height;
+- if(*h > 32767 || *w > 32767)
++ if(*h <= 0 || *h > 32767 || *w <= 0 || *w > 32767)
+ {
+ return NULL;
+ }
+diff -urN imlib-1.9.13.orig/gdk_imlib/io-ppm.c imlib-1.9.13/gdk_imlib/io-ppm.c
+--- imlib-1.9.13.orig/gdk_imlib/io-ppm.c Mon Mar 4 17:26:51 2002
++++ imlib-1.9.13/gdk_imlib/io-ppm.c Thu Sep 16 16:13:13 2004
+@@ -53,12 +53,12 @@
+ sscanf(s, "%i %i", w, h);
+ a = *w;
+ b = *h;
+- if (a > 32767)
++ if (a <= 0 || a > 32767)
+ {
+ fprintf(stderr, "gdk_imlib ERROR: Image width > 32767 pixels for file\n");
+ return NULL;
+ }
+- if (b > 32767)
++ if (b <= 0 || b > 32767)
+ {
+ fprintf(stderr, "gdk_imlib ERROR: Image height > 32767 pixels for file\n");
+ return NULL;
+diff -urN imlib-1.9.13.orig/gdk_imlib/io-tiff.c imlib-1.9.13/gdk_imlib/io-tiff.c
+--- imlib-1.9.13.orig/gdk_imlib/io-tiff.c Mon Mar 4 17:26:51 2002
++++ imlib-1.9.13/gdk_imlib/io-tiff.c Thu Sep 16 16:13:57 2004
+@@ -36,7 +36,9 @@
+ npix = ww * hh;
+ *w = (int)ww;
+ *h = (int)hh;
+- if(ww > 32767 || hh > 32767)
++ if (ww <= 0 || ww > 32767 ||
++ hh <= 0 || hh > 32767 ||
++ hh >= (G_MAXINT/sizeof(uint32)) / ww)
+ {
+ TIFFClose(tif);
+ return NULL;
+diff -urN imlib-1.9.13.orig/gdk_imlib/io-xpm.c imlib-1.9.13/gdk_imlib/io-xpm.c
+--- imlib-1.9.13.orig/gdk_imlib/io-xpm.c Mon Mar 4 17:26:51 2002
++++ imlib-1.9.13/gdk_imlib/io-xpm.c Thu Sep 16 17:08:24 2004
+@@ -40,8 +40,12 @@
+ context = 0;
+ i = j = 0;
+ cmap = NULL;
++ memset(lookup, 0, sizeof(lookup));
+
+ line = malloc(lsz);
++ if (!line)
++ return NULL;
++
+ while (!done)
+ {
+ pc = c;
+@@ -70,25 +74,25 @@
+ {
+ /* Header */
+ sscanf(line, "%i %i %i %i", w, h, &ncolors, &cpp);
+- if (ncolors > 32766)
++ if (ncolors <= 0 || ncolors > 32766)
+ {
+ fprintf(stderr, "gdk_imlib ERROR: XPM files wth colors > 32766 not supported\n");
+ free(line);
+ return NULL;
+ }
+- if (cpp > 5)
++ if (cpp <= 0 || cpp > 5)
+ {
+ fprintf(stderr, "gdk_imlib ERROR: XPM files with characters per pixel > 5 not supported\n");
+ free(line);
+ return NULL;
+ }
+- if (*w > 32767)
++ if (*w <= 0 || *w > 32767)
+ {
+ fprintf(stderr, "gdk_imlib ERROR: Image width > 32767 pixels for file\n");
+ free(line);
+ return NULL;
+ }
+- if (*h > 32767)
++ if (*h <= 0 || *h > 32767)
+ {
+ fprintf(stderr, "gdk_imlib ERROR: Image height > 32767 pixels for file\n");
+ free(line);
+@@ -120,11 +124,13 @@
+ {
+ int slen;
+ int hascolor, iscolor;
++ int space;
+
+ hascolor = 0;
+ iscolor = 0;
+ tok[0] = 0;
+ col[0] = 0;
++ space = sizeof(col) - 1;
+ s[0] = 0;
+ len = strlen(line);
+ strncpy(cmap[j].str, line, cpp);
+@@ -147,10 +153,10 @@
+ {
+ if (k >= len)
+ {
+- if (col[0])
+- strcat(col, " ");
+- if (strlen(col) + strlen(s) < sizeof(col))
+- strcat(col, s);
++ if (col[0] && space > 0)
++ strncat(col, " ", space), space -= 1;
++ if (slen <= space)
++ strcat(col, s), space -= slen;
+ }
+ if (col[0])
+ {
+@@ -180,14 +186,17 @@
+ }
+ }
+ }
+- strcpy(tok, s);
++ if (slen < sizeof(tok))
++ strcpy(tok, s);
+ col[0] = 0;
++ space = sizeof(col) - 1;
+ }
+ else
+ {
+- if (col[0])
+- strcat(col, " ");
+- strcat(col, s);
++ if (col[0] && space > 0)
++ strcat(col, " "), space -= 1;
++ if (slen <= space)
++ strcat(col, s), space -= slen;
+ }
+ }
+ }
+diff -urN imlib-1.9.13.orig/gdk_imlib/misc.c imlib-1.9.13/gdk_imlib/misc.c
+--- imlib-1.9.13.orig/gdk_imlib/misc.c Mon Mar 4 17:26:51 2002
++++ imlib-1.9.13/gdk_imlib/misc.c Thu Sep 16 16:35:32 2004
+@@ -1355,11 +1355,16 @@
+
+ /*
+ * Make sure we don't wrap on our memory allocations
++ * we check G_MAX_INT/4 because rend.c malloc's w * h * bpp
++ * + 3 is safety margin
+ */
+
+ void *_gdk_malloc_image(unsigned int w, unsigned int h)
+ {
+- if( w > 32767 || h > 32767)
++ if (w <= 0 || w > 32767 ||
++ h <= 0 || h > 32767 ||
++ h >= (G_MAXINT/4 - 1) / w)
+ return NULL;
+- return malloc(w * h * 3);
++ return malloc(w * h * 3 + 3);
+ }
++
+diff -urN imlib-1.9.13.orig/gdk_imlib/utils.c imlib-1.9.13/gdk_imlib/utils.c
+--- imlib-1.9.13.orig/gdk_imlib/utils.c Mon Mar 4 17:26:51 2002
++++ imlib-1.9.13/gdk_imlib/utils.c Thu Sep 16 17:28:35 2004
+@@ -1236,36 +1236,56 @@
+ context = 0;
+ ptr = NULL;
+ end = NULL;
++ memset(lookup, 0, sizeof(lookup));
+
+ while (!done)
+ {
+ line = data[count++];
++ if (!line)
++ break;
++ line = strdup(line);
++ if (!line)
++ break;
++ len = strlen(line);
++ for (i = 0; i < len; ++i)
++ {
++ c = line[i];
++ if (c < 32)
++ line[i] = 32;
++ else if (c > 127)
++ line[i] = 127;
++ }
++
+ if (context == 0)
+ {
+ /* Header */
+ sscanf(line, "%i %i %i %i", &w, &h, &ncolors, &cpp);
+- if (ncolors > 32766)
++ if (ncolors <= 0 || ncolors > 32766)
+ {
+ fprintf(stderr, "gdk_imlib ERROR: XPM data wth colors > 32766 not supported\n");
+ free(im);
++ free(line);
+ return NULL;
+ }
+- if (cpp > 5)
++ if (cpp <= 0 || cpp > 5)
+ {
+ fprintf(stderr, "gdk_imlib ERROR: XPM data with characters per pixel > 5 not supported\n");
+ free(im);
++ free(line);
+ return NULL;
+ }
+- if (w > 32767)
++ if (w <= 0 || w > 32767)
+ {
+ fprintf(stderr, "gdk_imlib ERROR: Image width > 32767 pixels for data\n");
+ free(im);
++ free(line);
+ return NULL;
+ }
+- if (h > 32767)
++ if (h <= 0 || h > 32767)
+ {
+ fprintf(stderr, "gdk_imlib ERROR: Image height > 32767 pixels for data\n");
+ free(im);
++ free(line);
+ return NULL;
+ }
+ cmap = malloc(sizeof(struct _cmap) * ncolors);
+@@ -1273,6 +1293,7 @@
+ if (!cmap)
+ {
+ free(im);
++ free(line);
+ return NULL;
+ }
+ im->rgb_width = w;
+@@ -1282,6 +1303,7 @@
+ {
+ free(cmap);
+ free(im);
++ free(line);
+ return NULL;
+ }
+ im->alpha_data = NULL;
+@@ -1355,7 +1377,7 @@
+ strcpy(col + colptr, " ");
+ colptr++;
+ }
+- if (colptr + ls <= sizeof(col))
++ if (colptr + ls < sizeof(col))
+ {
+ strcpy(col + colptr, s);
+ colptr += ls;
+@@ -1558,6 +1580,7 @@
+ }
+ if ((ptr) && ((ptr - im->rgb_data) >= w * h * 3))
+ done = 1;
++ free(line);
+ }
+ if (!transp)
+ {
diff --git a/arch/tde-deps/imlib/PKGBUILD b/arch/tde-deps/imlib/PKGBUILD
new file mode 100644
index 000000000..a3035caca
--- /dev/null
+++ b/arch/tde-deps/imlib/PKGBUILD
@@ -0,0 +1,48 @@
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=imlib
+pkgver=1.9.15
+pkgrel=17
+pkgdesc="General image handling library for X11 and Gtk"
+arch=('powerpc64le')
+url="http://freshmeat.net/projects/imlib/"
+license=('GPL')
+depends=('giflib' 'libpng' 'libtiff' 'libxext')
+makedepends=('libxt')
+source=(https://ftp.gnome.org/pub/GNOME/sources/imlib/1.9/${pkgname}-${pkgver}.tar.bz2
+ debian-bug448360.patch CAN-2004-1026.patch aclocal-fixes.patch
+ imlib-1.9.15-libpng15.patch imlib-giflib51.patch imlib-gtk.patch)
+sha512sums=('f50d9141b3c54b44921aa09c0a5ea848aefaa904efdd6da132dace42604671f8dbd3e4b71a596f054f0db4525ba2002864b5e5b21f8805cf1b5514b661ac254a'
+ '0c805568c54149239a3106293e7a4f5abe127abebc1a851cda87958fede996d6c0415fe1b47a7f023f2deb2e3460204d5aae4fce5787e402a026d46c2e7e662c'
+ 'a75537267e9e276920fbc0360cd4832f727c6c9857401889bdb1466f3088c98e5ea2ef84a94a5873a3c12dda0b9aed36a5e2039fece87e51154a3b773d97aa5c'
+ 'ca4d2a047ee07f25bb462c8b34fc8298ef9a31b39f83309598a696973534e144f8f02a130bb764737dfbd329073e64abe4f8a673d66731822fece4969d7ab02a'
+ 'e7a6d48ef04fbcfcab998e6968130796ab3da1fd9def14ab2ccc713e0956f1f2be3f3a8f680ded5f00cb7ac9ea31d2f94de04aaa039ec5b03cece71f36f14294'
+ '91a62ed701974b953c2bc4f6b530ea7614b2195906110fcdc45bb200acacea0c54d431c3eafdcd2b33877606ef6b23bd34d051f99f90e5505d8e725b78278c89'
+ 'fb05c545e8c8e3eaf6a6cc390c0c9211c37074f7bd6805529254d9c61d56ceb9b2e3877d276f46ac0b195ae796e52c5baad11781ef91272c955529396bdf6de7')
+
+prepare() {
+ cd ${pkgname}-${pkgver}
+ patch -p1 -i "${srcdir}/debian-bug448360.patch"
+ patch -p1 -i "${srcdir}/CAN-2004-1026.patch"
+ patch -p0 -i "${srcdir}/aclocal-fixes.patch"
+ patch -p0 -i "${srcdir}/imlib-1.9.15-libpng15.patch"
+ patch -p1 -i "${srcdir}/imlib-giflib51.patch"
+ patch -p1 -i "${srcdir}/imlib-gtk.patch"
+ sed '/AC_PATH_XTRA/d' -i configure.in
+ mv configure.in configure.ac
+ libtoolize --force
+ cp /usr/bin/libtool .
+}
+
+build() {
+ cd ${pkgname}-${pkgver}
+ autoreconf --force --install
+ ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man --enable-shm --disable-static
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/arch/tde-deps/imlib/aclocal-fixes.patch b/arch/tde-deps/imlib/aclocal-fixes.patch
new file mode 100644
index 000000000..04ef737e7
--- /dev/null
+++ b/arch/tde-deps/imlib/aclocal-fixes.patch
@@ -0,0 +1,20 @@
+--- imlib.m4.orig 2006-03-05 12:41:14.000000000 +0000
++++ imlib.m4 2006-03-05 12:44:15.000000000 +0000
+@@ -6,7 +6,7 @@
+ dnl AM_PATH_IMLIB([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+ dnl Test for IMLIB, and define IMLIB_CFLAGS and IMLIB_LIBS
+ dnl
+-AC_DEFUN(AM_PATH_IMLIB,
++AC_DEFUN([AM_PATH_IMLIB],
+ [dnl
+ dnl Get the cflags and libraries from the imlib-config script
+ dnl
+@@ -164,7 +164,7 @@
+ ])
+
+ # Check for gdk-imlib
+-AC_DEFUN(AM_PATH_GDK_IMLIB,
++AC_DEFUN([AM_PATH_GDK_IMLIB],
+ [dnl
+ dnl Get the cflags and libraries from the imlib-config script
+ dnl
diff --git a/arch/tde-deps/imlib/debian-bug448360.patch b/arch/tde-deps/imlib/debian-bug448360.patch
new file mode 100644
index 000000000..f1c0ef111
--- /dev/null
+++ b/arch/tde-deps/imlib/debian-bug448360.patch
@@ -0,0 +1,92 @@
+diff -up -ru imlib-1.9.15.orig/gdk_imlib/misc.c imlib-1.9.15/gdk_imlib/misc.c
+--- imlib-1.9.15.orig/gdk_imlib/misc.c 2002-03-04 18:06:32.000000000 +0100
++++ imlib-1.9.15/gdk_imlib/misc.c 2007-10-28 14:00:04.000000000 +0100
+@@ -674,6 +674,10 @@ gdk_imlib_init_params(GdkImlibInitParams
+ visual = gdk_rgb_get_visual();
+ id->x.visual = GDK_VISUAL_XVISUAL(visual); /* the visual type */
+ id->x.depth = visual->depth; /* the depth of the screen in bpp */
++
++ id->x.shm = 0;
++ id->x.shmp = 0;
++ id->max_shm = 0;
+ #ifdef HAVE_SHM
+ if (XShmQueryExtension(id->x.disp))
+ {
+@@ -689,17 +693,14 @@ gdk_imlib_init_params(GdkImlibInitParams
+ id->x.last_xim = NULL;
+ id->x.last_sxim = NULL;
+ id->max_shm = 0x7fffffff;
+- if (XShmPixmapFormat(id->x.disp) == ZPixmap)
++ if ((XShmPixmapFormat(id->x.disp) == ZPixmap) &&
++ (pm == True))
+ id->x.shmp = 1;
+ }
+ }
+ }
+- else
+ #endif
+- {
+- id->x.shm = 0;
+- id->x.shmp = 0;
+- }
++
+ id->cache.on_image = 0;
+ id->cache.size_image = 0;
+ id->cache.num_image = 0;
+@@ -935,8 +936,8 @@ gdk_imlib_init_params(GdkImlibInitParams
+ }
+ if (p->flags & PARAMS_SHAREDPIXMAPS)
+ {
+- if (id->x.shm)
+- id->x.shmp = p->sharedpixmaps;
++ if (!p->sharedpixmaps)
++ id->x.shmp = 0;
+ }
+ if (p->flags & PARAMS_PALETTEOVERRIDE)
+ override = p->paletteoverride;
+diff -up -ru imlib-1.9.15.orig/Imlib/misc.c imlib-1.9.15/Imlib/misc.c
+--- imlib-1.9.15.orig/Imlib/misc.c 2004-09-21 02:22:59.000000000 +0200
++++ imlib-1.9.15/Imlib/misc.c 2007-10-28 14:00:23.000000000 +0100
+@@ -675,6 +675,10 @@ Imlib_init_with_params(Display * disp, I
+ id->x.root = DefaultRootWindow(disp); /* the root window id */
+ id->x.visual = DefaultVisual(disp, id->x.screen); /* the visual type */
+ id->x.depth = DefaultDepth(disp, id->x.screen); /* the depth of the screen in bpp */
++
++ id->x.shm = 0;
++ id->x.shmp = 0;
++ id->max_shm = 0;
+ #ifdef HAVE_SHM
+ if (XShmQueryExtension(id->x.disp))
+ {
+@@ -690,17 +694,14 @@ Imlib_init_with_params(Display * disp, I
+ id->x.last_xim = NULL;
+ id->x.last_sxim = NULL;
+ id->max_shm = 0x7fffffff;
+- if (XShmPixmapFormat(id->x.disp) == ZPixmap)
++ if ((XShmPixmapFormat(id->x.disp) == ZPixmap &&
++ (pm == True)))
+ id->x.shmp = 1;
+ }
+ }
+ }
+- else
+ #endif
+- {
+- id->x.shm = 0;
+- id->x.shmp = 0;
+- }
++
+ id->cache.on_image = 0;
+ id->cache.size_image = 0;
+ id->cache.num_image = 0;
+@@ -952,8 +953,8 @@ Imlib_init_with_params(Display * disp, I
+ }
+ if (p->flags & PARAMS_SHAREDPIXMAPS)
+ {
+- if (id->x.shm)
+- id->x.shmp = p->sharedpixmaps;
++ if (!p->sharedpixmaps)
++ id->x.shmp = 0;
+ }
+ if (p->flags & PARAMS_PALETTEOVERRIDE)
+ override = p->paletteoverride;
diff --git a/arch/tde-deps/imlib/imlib-1.9.15-libpng15.patch b/arch/tde-deps/imlib/imlib-1.9.15-libpng15.patch
new file mode 100644
index 000000000..7837cd488
--- /dev/null
+++ b/arch/tde-deps/imlib/imlib-1.9.15-libpng15.patch
@@ -0,0 +1,142 @@
+--- gdk_imlib/io-png.c
++++ gdk_imlib/io-png.c
+@@ -40,13 +40,13 @@
+ return NULL;
+ }
+
+- if (setjmp(png_ptr->jmpbuf))
++ if (setjmp(png_jmpbuf(png_ptr)))
+ {
+ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+ return NULL;
+ }
+
+- if (info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
++ if (png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_RGB_ALPHA)
+ {
+ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+ return NULL;
+@@ -275,13 +275,13 @@
+ return NULL;
+ }
+
+- if (setjmp(png_ptr->jmpbuf))
++ if (setjmp(png_jmpbuf(png_ptr)))
+ {
+ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+ return NULL;
+ }
+
+- if (info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
++ if (png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_RGB_ALPHA)
+ {
+ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+ return NULL;
+@@ -301,6 +301,9 @@
+ /* Setup Translators */
+ if (color_type == PNG_COLOR_TYPE_PALETTE)
+ png_set_expand(png_ptr);
++ if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8)
++ png_set_expand(png_ptr);
++
+ png_set_strip_16(png_ptr);
+ png_set_packing(png_ptr);
+ if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS))
+@@ -440,13 +443,13 @@
+ return NULL;
+ }
+
+- if (setjmp(png_ptr->jmpbuf))
++ if (setjmp(png_jmpbuf(png_ptr)))
+ {
+ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+ return NULL;
+ }
+
+- if (info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
++ if (png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_RGB_ALPHA)
+ {
+ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+ return NULL;
+@@ -635,7 +638,7 @@
+ png_destroy_write_struct(&png_ptr, (png_infopp) NULL);
+ return 0;
+ }
+- if (setjmp(png_ptr->jmpbuf))
++ if (setjmp(png_jmpbuf(png_ptr)))
+ {
+ fclose(f);
+ png_destroy_write_struct(&png_ptr, (png_infopp) NULL);
+--- Imlib/load.c
++++ Imlib/load.c
+@@ -197,12 +197,12 @@
+ png_destroy_read_struct(&png_ptr, NULL, NULL);
+ return NULL;
+ }
+- if (setjmp(png_ptr->jmpbuf))
++ if (setjmp(png_jmpbuf(png_ptr)))
+ {
+ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+ return NULL;
+ }
+- if (info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
++ if (png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_RGB_ALPHA)
+ {
+ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+ return NULL;
+@@ -260,7 +260,8 @@
+ png_read_image(png_ptr, lines);
+ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+ ptr = data;
+- if (color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
++ if (color_type == PNG_COLOR_TYPE_GRAY
++ || color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
+ {
+ for (y = 0; y < *h; y++)
+ {
+@@ -285,6 +286,7 @@
+ }
+ }
+ }
++#if 0
+ else if (color_type == PNG_COLOR_TYPE_GRAY)
+ {
+ for (y = 0; y < *h; y++)
+@@ -300,6 +302,7 @@
+ }
+ }
+ }
++#endif
+ else
+ {
+ for (y = 0; y < *h; y++)
+--- Imlib/save.c
++++ Imlib/save.c
+@@ -342,7 +342,7 @@
+ png_destroy_write_struct(&png_ptr, (png_infopp) NULL);
+ return 0;
+ }
+- if (setjmp(png_ptr->jmpbuf))
++ if (setjmp(png_jmpbuf(png_ptr)))
+ {
+ fclose(f);
+ png_destroy_write_struct(&png_ptr, (png_infopp) NULL);
+--- Imlib/utils.c
++++ Imlib/utils.c
+@@ -1981,14 +1981,13 @@
+ png_destroy_read_struct(&png_ptr, NULL, NULL);
+ return NULL;
+ }
+-
+- if (setjmp(png_ptr->jmpbuf))
++ if (setjmp(png_jmpbuf(png_ptr)))
+ {
+ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+ return NULL;
+ }
+
+- if (info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA)
++ if (png_get_color_type(png_ptr, info_ptr) == PNG_COLOR_TYPE_RGB_ALPHA)
+ {
+ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+ return NULL;
diff --git a/arch/tde-deps/imlib/imlib-giflib51.patch b/arch/tde-deps/imlib/imlib-giflib51.patch
new file mode 100644
index 000000000..ae0cf7043
--- /dev/null
+++ b/arch/tde-deps/imlib/imlib-giflib51.patch
@@ -0,0 +1,126 @@
+diff -ruN imlib-1.9.15.orig/gdk_imlib/io-gif.c imlib-1.9.15/gdk_imlib/io-gif.c
+--- imlib-1.9.15.orig/gdk_imlib/io-gif.c 2014-05-27 09:38:13.210527763 +0000
++++ imlib-1.9.15/gdk_imlib/io-gif.c 2014-05-27 09:43:55.435910398 +0000
+@@ -30,7 +30,7 @@
+ fd = fileno(f);
+ /* Apparently rewind(f) isn't sufficient */
+ lseek(fd, (long) 0, 0);
+- gif = DGifOpenFileHandle(fd);
++ gif = DGifOpenFileHandle(fd, NULL);
+
+ transp = -1;
+ data = NULL;
+@@ -43,14 +43,14 @@
+ {
+ if (DGifGetRecordType(gif, &rec) == GIF_ERROR)
+ {
+- PrintGifError();
++ fprintf(stderr, "giflib error: %s\n", GifErrorString(gif->Error));
+ rec = TERMINATE_RECORD_TYPE;
+ }
+ if ((rec == IMAGE_DESC_RECORD_TYPE) && (!done))
+ {
+ if (DGifGetImageDesc(gif) == GIF_ERROR)
+ {
+- PrintGifError();
++ fprintf(stderr, "giflib error: %s\n", GifErrorString(gif->Error));
+ rec = TERMINATE_RECORD_TYPE;
+ }
+ *w = gif->Image.Width;
+@@ -62,13 +62,13 @@
+ rows = malloc(*h * sizeof(GifRowType *));
+ if (!rows)
+ {
+- DGifCloseFile(gif);
++ DGifCloseFile(gif, NULL);
+ return NULL;
+ }
+ data = _gdk_malloc_image(*w, *h);
+ if (!data)
+ {
+- DGifCloseFile(gif);
++ DGifCloseFile(gif, NULL);
+ free(rows);
+ return NULL;
+ }
+@@ -79,7 +79,7 @@
+ rows[i] = malloc(*w * sizeof(GifPixelType));
+ if (!rows[i])
+ {
+- DGifCloseFile(gif);
++ DGifCloseFile(gif, NULL);
+ for (i = 0; i < *h; i++)
+ if (rows[i])
+ free(rows[i]);
+@@ -168,7 +168,7 @@
+ }
+ }
+ }
+- DGifCloseFile(gif);
++ DGifCloseFile(gif, NULL);
+ for (i = 0; i < *h; i++)
+ free(rows[i]);
+ free(rows);
+diff -ruN imlib-1.9.15.orig/Imlib/load.c imlib-1.9.15/Imlib/load.c
+--- imlib-1.9.15.orig/Imlib/load.c 2014-05-27 09:38:13.220527723 +0000
++++ imlib-1.9.15/Imlib/load.c 2014-05-27 09:45:25.775576104 +0000
+@@ -454,7 +454,7 @@
+ fd = fileno(f);
+ /* Apparently rewind(f) isn't sufficient */
+ lseek(fd, (long) 0, 0);
+- gif = DGifOpenFileHandle(fd);
++ gif = DGifOpenFileHandle(fd, NULL);
+
+ if (!gif)
+ return NULL;
+@@ -462,14 +462,14 @@
+ {
+ if (DGifGetRecordType(gif, &rec) == GIF_ERROR)
+ {
+- PrintGifError();
++ fprintf(stderr, "Imlib ERROR: JPEG uses line buffers > 16. Cannot load.\n");
+ rec = TERMINATE_RECORD_TYPE;
+ }
+ if ((rec == IMAGE_DESC_RECORD_TYPE) && (!done))
+ {
+ if (DGifGetImageDesc(gif) == GIF_ERROR)
+ {
+- PrintGifError();
++ fprintf(stderr, "Imlib ERROR: JPEG uses line buffers > 16. Cannot load.\n");
+ rec = TERMINATE_RECORD_TYPE;
+ }
+ *w = gif->Image.Width;
+@@ -481,13 +481,13 @@
+ rows = malloc(*h * sizeof(GifRowType *));
+ if (!rows)
+ {
+- DGifCloseFile(gif);
++ DGifCloseFile(gif, NULL);
+ return NULL;
+ }
+ data = _imlib_malloc_image(*w, *h);
+ if (!data)
+ {
+- DGifCloseFile(gif);
++ DGifCloseFile(gif, NULL);
+ free(rows);
+ return NULL;
+ }
+@@ -498,7 +498,7 @@
+ rows[i] = malloc(*w * sizeof(GifPixelType));
+ if (!rows[i])
+ {
+- DGifCloseFile(gif);
++ DGifCloseFile(gif, NULL);
+ for (i = 0; i < *h; i++)
+ if (rows[i])
+ free(rows[i]);
+@@ -587,7 +587,7 @@
+ }
+ }
+ }
+- DGifCloseFile(gif);
++ DGifCloseFile(gif, NULL);
+ for (i = 0; i < *h; i++)
+ free(rows[i]);
+ free(rows);
diff --git a/arch/tde-deps/imlib/imlib-gtk.patch b/arch/tde-deps/imlib/imlib-gtk.patch
new file mode 100644
index 000000000..c6e4fb618
--- /dev/null
+++ b/arch/tde-deps/imlib/imlib-gtk.patch
@@ -0,0 +1,14 @@
+--- a/configure.in 2014-04-12 17:46:28.459612102 +0200
++++ b/configure.in 2014-04-12 17:46:33.926347877 +0200
+@@ -17,11 +17,6 @@
+ dnl incase it is broken for example.
+ AC_ARG_ENABLE(shm, [ --enable-shm support shared memory if available [default=yes]], echo $enable_shm, enable_shm="yes")
+
+-AM_PATH_GTK(1.2.1,[
+- GDK_IMLIB="gdk_imlib utils"],[
+- GDK_IMLIB=""
+- AC_MSG_WARN([*** gdk_imlib will not be built ***])])
+-
+ AC_MSG_CHECKING(whether to build gmodulized imlib)
+
+ AC_ARG_ENABLE(modules, [ --disable-modules Disables dynamic module loading],[
diff --git a/arch/tde-deps/lcms/PKGBUILD b/arch/tde-deps/lcms/PKGBUILD
index fdd0ea552..8471514bb 100644
--- a/arch/tde-deps/lcms/PKGBUILD
+++ b/arch/tde-deps/lcms/PKGBUILD
@@ -6,7 +6,7 @@ pkgname=(lcms)
pkgver=1.19
pkgrel=7.1
pkgdesc='Lightweight color management development library/engine'
-arch=('x86_64' 'i686' 'aarch64' 'armv7h')
+arch=('i686' 'x86_64' 'aarch64' 'armv7h' 'powerpc64le')
license=('custom')
depends=('libtiff')
#makedepends=('python2')
diff --git a/arch/tde-deps/lcms/lcms-1.19.tar.gz b/arch/tde-deps/lcms/lcms-1.19.tar.gz
deleted file mode 100644
index 0e45d75d7..000000000
--- a/arch/tde-deps/lcms/lcms-1.19.tar.gz
+++ /dev/null
Binary files differ
diff --git a/arch/tde-deps/libofx/PKGBUILD b/arch/tde-deps/libofx/PKGBUILD
new file mode 100644
index 000000000..c96953d15
--- /dev/null
+++ b/arch/tde-deps/libofx/PKGBUILD
@@ -0,0 +1,43 @@
+# Maintainer: Jaroslav Lichtblau <svetlemodry@archlinux.org>
+# Contributor: Aaron Griffin <aaron@archlinux.org>
+
+pkgbase=libofx
+pkgname=('libofx' 'libofx-doc')
+pkgver=0.10.9
+pkgrel=1
+pkgdesc="API for the OFX banking standard"
+arch=('powerpc64le')
+url="https://github.com/libofx"
+license=('GPL')
+depends=('opensp' 'curl' 'libxml++2.6')
+checkdepends=('gnupg')
+source=(https://github.com/$pkgname/$pkgname/releases/download/$pkgver/$pkgname-$pkgver.tar.gz)
+sha256sums=('1ca89ff7d681c9edad312172ac464231a8de686e653213612f9417492cef0d37')
+
+build() {
+ cd $pkgbase-$pkgver
+ ./configure --prefix=/usr
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+ make CXXFLAGS+=-std=c++11
+}
+
+check() {
+ cd $pkgbase-$pkgver
+ make check
+}
+
+package_libofx() {
+ options=('!docs')
+
+ cd $pkgbase-$pkgver
+ make DESTDIR="$pkgdir" install
+}
+
+package_libofx-doc() {
+ pkgdesc="Documention of the OFX banking standard API"
+ depends=()
+
+ cd $pkgbase-$pkgver
+ make DESTDIR="$pkgdir" install-docDATA
+ make -C doc DESTDIR="$pkgdir" install
+}
diff --git a/arch/tde-deps/libxml++2.6/PKGBUILD b/arch/tde-deps/libxml++2.6/PKGBUILD
new file mode 100644
index 000000000..56686585b
--- /dev/null
+++ b/arch/tde-deps/libxml++2.6/PKGBUILD
@@ -0,0 +1,55 @@
+# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgbase=libxml++2.6
+pkgname=(libxml++2.6 libxml++2.6-docs)
+pkgver=2.42.1
+pkgrel=1
+pkgdesc="C++ bindings to libxml2"
+url="https://libxmlplusplus.github.io/libxmlplusplus/"
+arch=('powerpc64le')
+license=(LGPL)
+depends=(libxml2 glibmm)
+makedepends=(git meson mm-common glibmm-docs)
+options=(!emptydirs)
+_commit=ceedcb1ca7462305cbca16464bbc5ea50d89c356 # tags/2.42.1^0
+source=("git+https://github.com/libxmlplusplus/libxmlplusplus#commit=$_commit")
+sha256sums=('SKIP')
+
+pkgver() {
+ cd libxmlplusplus
+ git describe --tags | sed 's/-/+/g'
+}
+
+prepare() {
+ cd libxmlplusplus
+}
+
+build() {
+ arch-meson libxmlplusplus build -D maintainer-mode=true
+ meson compile -C build
+}
+
+check() {
+ meson test -C build --print-errorlogs
+}
+
+package_libxml++2.6() {
+ provides=("libxml++2=$pkgver" libxml++-2.6.so)
+ conflicts=(libxml++2)
+ replaces=(libxml++2)
+
+ meson install -C build --destdir "$pkgdir"
+
+ # Split -docs
+ mkdir -p docs/usr/share
+ mv -t docs/usr/share "$pkgdir"/usr/share/{devhelp,doc}
+}
+
+package_libxml++2.6-docs() {
+ pkgdesc+=" (documentation)"
+ depends=()
+ options=(!strip)
+
+ mv -t "$pkgdir" docs/*
+}
diff --git a/arch/tde-deps/pod2man/PKGBUILD b/arch/tde-deps/pod2man/PKGBUILD
index 3132a72d0..eacfb42d0 100644
--- a/arch/tde-deps/pod2man/PKGBUILD
+++ b/arch/tde-deps/pod2man/PKGBUILD
@@ -5,7 +5,7 @@ pkgname=pod2man
pkgver=5.30.2
pkgrel=1
pkgdesc='Make pod2man easily accessible'
-arch=(x86_64 aarch64 armv7h)
+arch=('i686' 'x86_64' 'aarch64' 'armv7h' 'powerpc64le')
license=(GPL PerlArtistic)
url='https://perl.org/'
depends=(perl)
diff --git a/arch/tde-deps/tor/PKGBUILD b/arch/tde-deps/tor/PKGBUILD
new file mode 100644
index 000000000..537b2902d
--- /dev/null
+++ b/arch/tde-deps/tor/PKGBUILD
@@ -0,0 +1,69 @@
+# Maintainer: Lukas Fleischer <lfleischer@archlinux.org>
+# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org>
+# Maintainer: kpcyrd <kpcyrd[at]archlinux[dot]org>
+# Contributor: Daniel Micay <danielmicay@gmail.com>
+# Contributor: simo <simo@archlinux.org>
+# Contributor: Sid Karunaratne
+
+pkgname=tor
+pkgver=0.4.7.11
+pkgrel=1
+pkgdesc='Anonymizing overlay network.'
+arch=('powerpc64le')
+url='https://www.torproject.org/download/tor/'
+license=('BSD')
+depends=('openssl' 'libevent' 'bash' 'libseccomp' 'zstd' 'libcap' 'systemd-libs'
+ 'libsystemd.so' 'libzstd.so' 'libseccomp.so' 'libcap.so')
+optdepends=('torsocks: for torify')
+makedepends=('ca-certificates' 'systemd')
+backup=('etc/tor/torrc')
+source=("https://dist.torproject.org/${pkgname}-${pkgver}.tar.gz"{,.sha256sum{,.asc}}
+ 'torrc.patch'
+ 'tor.sysusers'
+ 'tor.tmpfiles'
+ 'tor.service')
+b2sums=('2d743e7d0aea63e76f6e24aa235792af8691fde419f56bbdf8c6ee865250a09ec06454ec84abac8ba47e3d61a363c937fc050376172d3ec6b0815998d1c8679e'
+ '1e49ba88ae21af6589a9815603ee375cc0dc85fcd8dd5a5f52cd44659438874ae9d10b09b7f15cadd2c30d2e8012a27be4233dcb19195d4627f19a59ccf68d0b'
+ 'SKIP'
+ '3359e138d823a77df2a42ce3fe8c6ecb4004e9ec191863db7857aceea7c136c78f09518b1a199dfd3215f5d61f1c060f4a0e2141c5bdb6b847af60fb6e9a81a7'
+ '9053da53926f2120ac57b6c1442238f5bbd89bf9270347c4e00b721b39939bebc6adfcf814a9d7289dfd14d085d91c193529305336db93190da5b7f586a031df'
+ '5d55d9a7e42b6ce78b8ab985bab37afe8f0bacddb5abd895c4a490adb8f98b9422f90b40066fef05ecf37b7b21e80aadc615c4b7f6e12b05581304113a1b1f1d'
+ '327c1a35c3d4c44f93edb47959c8c41ab6af4cbfcbb8f4e9f54f2f69d17d148bf85e2d2c8aefe2d3165e123056dd68a248af78d1ba713b94a4e6d27a9cf412f1')
+validpgpkeys=(
+ '2133BC600AB133E1D826D173FE43009C4607B1FB' # Nick Mathewson
+ 'B74417EDDF22AC9F9E90F49142E86A2A11F48D36' # David Goulet
+ '1C1BC007A9F607AA8152C040BEA7B180B1491921' # Alexander Færøy
+)
+
+prepare() {
+ # verify the signed sums match the expected source tarball
+ sha256sum -c ${pkgname}-${pkgver}.tar.gz.sha256sum
+ cd ${pkgname}-${pkgver}
+ # uncomment essential config sections in the torrc file
+ patch -Np1 < "${srcdir}/torrc.patch"
+}
+
+build() {
+ cd ${pkgname}-${pkgver}
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR="${pkgdir}" install
+ mv "${pkgdir}"/etc/tor/torrc{.sample,}
+
+ # install arch custom files
+ install -Dm 644 "${srcdir}"/*.service -t "${pkgdir}"/usr/lib/systemd/system
+ install -Dm 644 "${srcdir}"/tor.sysusers "${pkgdir}"/usr/lib/sysusers.d/tor.conf
+ install -Dm 644 "${srcdir}"/tor.tmpfiles "${pkgdir}"/usr/lib/tmpfiles.d/tor.conf
+
+ install -Dm 644 LICENSE -t "${pkgdir}"/usr/share/licenses/${pkgname}
+}
+
+# vim: ts=2 sw=2 et:
diff --git a/arch/tde-deps/tor/keys/pgp/1C1BC007A9F607AA8152C040BEA7B180B1491921.asc b/arch/tde-deps/tor/keys/pgp/1C1BC007A9F607AA8152C040BEA7B180B1491921.asc
new file mode 100644
index 000000000..9cc80960e
--- /dev/null
+++ b/arch/tde-deps/tor/keys/pgp/1C1BC007A9F607AA8152C040BEA7B180B1491921.asc
@@ -0,0 +1,43 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+IzfFlprFAg==
+=SCcY
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/arch/tde-deps/tor/keys/pgp/2133BC600AB133E1D826D173FE43009C4607B1FB.asc b/arch/tde-deps/tor/keys/pgp/2133BC600AB133E1D826D173FE43009C4607B1FB.asc
new file mode 100644
index 000000000..2332b8727
--- /dev/null
+++ b/arch/tde-deps/tor/keys/pgp/2133BC600AB133E1D826D173FE43009C4607B1FB.asc
@@ -0,0 +1,123 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQINBFfinwwBEADNzG/Q6YTrH7oSfUERhopwCWWn/gsprtnUFK+O4enXPXQlisGt
+OVNbc5GWoZibNPowjORN+kADB+ce+VBmVeh+4ZeJDjpsc+WXuVajDc0wNwG3I36m
+8uNRPLMftBcxS1zUsMpwaqff5sDoqlBTwrvfLpHT0W1ecJX8Ew10zim58DzwQisR
+Uv1rsGiyH/dFzs8m3jPdNjDZyyzGQK62hwp6Y/m11PiMYgGrvAa1ofjfkGRVxUgo
+UUG8JG/AhGvMnHJjV923A7I8MspOm4H76wlEQLesPHJ5WPSBXTZ5jVgdWdp50fPR
+JZOUT6gwkYF59SeZOcSFecdyuSb0W68/klD5PX0G8qQ5ko9beNm7Rs2aJKvY1MHU
+n5rb00aulQFaYLFJ7LOTDqYDUkKYp7n4hw1X1yXO1MUYyk9J9WNO/Uo2psKXcBsd
+ZjdEWj1dWHOhwswygndL7RxK/17psmod055S0uYkjA74J2eRSmPZ7ErIfUh85rQw
+DZyYKh7B6AGjcpA1YyrAh6BgyJncP9x21dmip0ENrfg5rpcfHpTrOF8To8fpo4/y
+vUL8kCxCCPJtkJiuXkGhV3oZsj2tWGvAclYqO7xe84vks+GgjG9Ydfga8JrvPMDz
+YLX7aTDnZRiU2Z+FvtABMjmmPjAHj3hMx/o25Na4bQ7wBAPEUiESsnh1HwARAQAB
+tCJOaWNrIE1hdGhld3NvbiA8bmlja21Ad2FuZ2FmdS5uZXQ+iQI+BBMBCAAoAhsB
+Ah4BAheABQsJCAcCBhUKCQgLAgUWAwIBAAUCX3sbcAUJEP592QAKCRD+QwCcRgex
++1VqD/9YksvGVLhmqk5GGk25NIepvq4upKPEt3oePZK/Bj9xNTMpUvmNa0+n6lER
+a9/bcdoEer8PRiTKbOAijR5rgySN2gEpjJSDTcql4q5C5RQoO11OqcC6gEBk93BG
+Z2Ur2PpNchxAmNH+hkVsmZVIbCVoYFXz2uNeT/q+0CJPzUGZYA8FadPdUeZ2lwa1
+lz7I9h2gNQID+IrqV8MEpgTD207ERjdB0C8zua7J/DbnlfZN4zbjsaL/y8RCJkk3
+yG1YG2ECDF5Q8bivkcYlSSTqrMo9WAiJLK7m03qKLfyKH5M9DM1kBCqppYPKEANB
+44vk++0GEyYQL2gjICkXO5XrxJAVkBm/RzKVFAMvRx0SBqCG2NiywspTiVrXRGEe
++0KQkkHI8bPPVcrLGHE+x19W6s8YWHTRJj8F1xJOBy37PW+o9OpX5cfmJosNRh4z
+VZFPnuS+ytC1QNL9DxUBxgKy1UCKrlb5WTb6sQh03xDEU25uoOB9UmITk3Wd9Moq
+R0F59EZ5cqN8TKdfSup94mI6ecDRPOw9akZ1LNFpbiJ5E5EAiATCd4SEh5PxBDt7
+YK6/38Ik4l8IoPinDSyJCVesJNRbWNIdwjpX31pplzK0GDE+1JLfHZJnVVD9X8ed
+QQpwPIeUbMN1XFd8kQs+xwCg6QQrtjRmLjjNDf/dnbmxSWoo67QjTmljayBNYXRo
+ZXdzb24gPG5pY2ttQGFsdW0ubWl0LmVkdT6JAkEEEwEIACsCGwECHgECF4ACGQEF
+CwkIBwIGFQoJCAsCBRYDAgEABQJfextlBQkQ/n3ZAAoJEP5DAJxGB7H7IPIP/06D
+yuBw1g5hzi3BSotr990P2kwOU7H0G9acB7wFHqQAX/m48KruaP9itxxaoZ+x1Ze7
+4KahXAI39bvR+yYfke27msKFkCMYuXFltBiLl/YLrc4Fcj/9+suq60J2cHGPryL4
+u35kcdFVXfm2TDrHef1yUNsJCw8P+qaUViD2OT4PezN/gg9uqzKJ1nIIUZAjvYND
+8AMZqmB2QsXCaeWhFESzs4fDbQ5ZcbKGmSuB/e+LVrVpNOAVh5KAKUDxYNGGJ93E
+37QCGp5oLbigEVuZwCMz5wktue+g4yslGwIrNfZ2EYL/grTGUKIZMjRHg6MH+1IB
+UyPgJG1AY8cCj+9VO2Vvqsp0WE9duY07UxjjpF+QUI8dkIP7DlbO1JMns8NRhVpp
+GuIo6R0bLLxHStZimS6h/DrDBulxNcSAziEZ7DSc0dHOLtyBjgt/kwEGqJJ9ROOQ
+nBcG9/Z+pHhS1RCGvl52A4peUAusPtekzLyt/KunUuUJxNODknq60rmH1+CBbJYZ
+Gi13e7gAG+6q0kMw//45poio4MhbkZ0hzv55b+37L6QrRTTV+bLbYWsobZisbwUp
+ck4AK3DYj9KEClRNyzvMtqgERmNXjgTDAtJpdFtOdwP3H0DgGvtlKkJbwkH/0G3p
+9uAYeLSsluk4XtpOGjUiDfbciFACAEn4DraMnuiftCROaWNrIE1hdGhld3NvbiA8
+bmlja21AZnJlZWhhdmVuLm5ldD6JAj4EEwEIACgCGwECHgECF4AFCwkIBwIGFQoJ
+CAsCBRYDAgEABQJfextxBQkQ/n3ZAAoJEP5DAJxGB7H7eBwP/R3OpDnx7JtFOq22
+z0jcLjPLwmP+QqgOlIvSiqj66SplpEhPHcgf4DgBu02RwE8ONAMo6McFvUH4tvI2
+NH3X8WET32APLe8/2cxhtZpH86gdnwTu1xGMXQxz5sRppIhOtoowGWh+/e/t9owA
+LOm/+IsHnxbX4ddIN6goB/mrlepRVRUODBnE0K9oZG7VnnrB73Ip0+hqaDVmiGdO
+n7LSggl7ip7VZ5hUHXwvHg3dUknKapucMXFCaqdelvYFt3NYQ2ZROAsAVLdi4k2d
+Y9/WGNCgFHbdSGurJ19yGwttv57t+GUsG3OXHEIMq52dkM4LOnbdVR2miV/jhFQ7
+J6i+mjZ5tYJiwrX9uFSOSzHbjWVCq5tlj1OHs18s0zDO523p2YWS2LWaiDpThnRU
+092iGsNJZHaJmzA0T+7Ti/uaqqY9CjshYSBdi0XUQ1LowzWDfBsVjV/u+BN80FYo
+szJzTAmiJW3GOrxbkhdb4nYptPKmY4YSSlLffOQ0y9Y+eUYMGe23xhejsYITS6TH
+OunWmb/jlgK12Rd8AyrZVtD64szxAYqSXJ9rx/k16KIl1z7JzJIRzBIrdHe8HTtu
+y9zs/oQgICPMrotKF6TCjHkH7prZFcCF09IjRcc8ihpZ/C991HS4X4pN1MdQMuEI
+WVIAjxKh++gMYYzMjXUqBsjXjuBhtCVOaWNrIE1hdGhld3NvbiA8bmlja21AdG9y
+cHJvamVjdC5vcmc+iQI+BBMBCAAoAhsBAh4BAheABQsJCAcCBhUKCQgLAgUWAwIB
+AAUCX3sbcAUJEP592QAKCRD+QwCcRgex+yGnD/96O7SIy+Ve+xNuJvxvhjZDzibl
+ME8SaQqH3iGLYpADbtvz1aEZEbaAUXMTs+yu0zRFtX0i8bYocy9QrvNCwepb1qeD
+pQd4IE2nFZgyTOMf6cjy3ITR8xhpWk1OVwLX91pnXkEN13As8xrLGr1+h+nM/ni3
+c56HDeWDihQwqTHhBJoNorrH+/nKtzZBNhfG0myiM/b9GxCH2YbOgMRIC9JuCPyg
+WOWVytOTysQWSKiIIvL/oMnW5DTGa5xXVt+iTdxTgLc+9+6pMkg/hVGHG3j4Af3w
+U1/H7bQMCNb+jz+txnCYV21t7ACouaQAMx+WYZD36hqXq+f5v9NRufXO667DaM7K
+q9UvQHGD0pIPM9TlOsshTl4AzBHAJIB4ixGscZR3H8cIlgbQye92GmgdJkw2x0UJ
+5WaU4J9g3iMnLeIA4j09Qmf5H8wXrTpLz0yTB/S1ESVjVv3BJSUhyn04rM/uDvfa
+wHUp8d4j1bstdGxepNFxrWlsK9zUV1olAJ8UZeC4sRmky2EbbF+Q9qXQuGpnWuJk
+7KyKyg9gJkJcbUCrsU2st1Gsip6pJ1TGTAVJMj4wInC90xQ2elnHm1AMjiTBBxY4
+g16GRoAmBolAmaEmkkJq/YfPM1Xpie//E3gjx75669abyKkmKAgckXgLJWjUVWu6
+JO3C810ImbNLySDEMLkCDQRX5TdLARAA43qD2AMaEUiock0YF+QMB3tfMn91qwwi
+qOI6umOCev3RMeUzkdd+5pYJVX5i3WQCwjjChPzDucC82z/m/wGrtphCCx4wyx2U
+ec0JzNXKjKfEDBMne0MwTncrPiwuy7k1UJD25n1n8ZwkcDwBE5snYZE5qAUTE84h
+6uIYPJgVYM6AKYiMHP1VRPU83YM5alMA+OffSThmlZ43+Gd/1X5aQ4xtRokV58Kw
+hTkTEWFUJmfcnroz5i6ZyUiWfLERmAuz7Ez8SXjvWtfdsebTPzlc6P/BfvfMgqnC
+zem5wgU07w9cgUaNrlHNBU0z2eGkrrE696VofMOxfixvkguzZjjHxtlidTT32w7V
+UYKF+f5jRlC6l0tQ+eyGLl1dPLMFOJi4G4o+KEZSCb9rCwyYB1JEHy+pkBMOe9rK
+NHDqPSDUB9YMkE9WpQNjlevO0mRaJ/HpEXcJYJ1KattxGtVXKhZMHHdqWwi9MBSF
+koThohK/PLl2gxFXIwRuGocSFt9Ea362g0QeY93EgMsjtXr4JnUTDBc1AjArkw1Y
+uu/VBB7GurNVV1zG5DP8/3WAsPGgKgGLwcEawD8cv4ZV3mhbVTWjxTeabVK8tJ6D
+4wVaaJKlI4alL1p0o/BHIbL6CIZGcJYkfZ1ydxJ8H1Ldc6KaGqE3LcRv3y22CXYC
+BpQM7wzoa78AEQEAAYkERAQYAQgADwIbAgUCX3sbpwUJEPvl3AIpwV0gBBkBCAAG
+BQJX5TdLAAoJEGr+5tSekrYB/5AQAK5d+GWYBO6NccLmgymjpNZZSk0mTyvf3qx0
+nOWxGYT5JP9s5oykm4IK59RdUm6lfpLRe6hZXcrLEXZvREg3MCqOMHDjaTJygC8C
+uv/JL7y5unc2/0fAPtYFYYgY/JLkwsOPiLIv0deidUDm1PelBBcFpJ3JtiEOfg9w
+4j/duxDo+F+UdMWGm5GngGFx4vrCFBSAaqhcY712my8KOIJXWOqtk631maG9XcfD
+BfjfuHvSd7jsiQkQ7g61h+Vbiq4+7vq9H4ikFUiRVVQ8JA+KmCcSWUZXVKflmHLT
+EbU1qTOr1ueWqfDbIiXSsVtrrncObWhL2snlZFxnBzPXtgKwJUks0T5U/D8Q37nL
+V23JnGk+f/SO9LzI+2GE7DTvllV0HLaTa6///lwQ9HZ4D7i9kSmZEPnI/YHwYqpN
+Pz//reJ/M4CoqWfFDzTRlBX18M/2d1pcc8kIEcncrWfMSg+16GAXTPusKt34z12g
+a4KZKIm+KDTeJOzL9xUpMX4Gc4IORzmQyVTzMyw6aOLNjeTpVSritb2wfvRbmUsD
+7GdPMlhPL6xQRXnorhuoV/9NfKbuZVb3FjfcGEVHY/i28j1Vd332U91u8lYqD14m
+RiVwcoC/qV0sK6/zPd/g4bp5xmNkjW2vr3qVQw3ckV4wlTMcl7/tRXLZj4DFHRJd
+hz3Q5fjvCRD+QwCcRgex+0I0EAC8cLhf7PXIhn13WSIQRsGt9hPor4TmbyLq2uEM
+n8zcHFA9xXlmXwmq8d9zx5yJKenloWluk2lIw0YxaO+oPFgIjz86Rta66VxdbvNM
+xpnyH5F1GJ7uFq+MEZ8ysJgHBBfYEfCteOGhsTCcJ85fZWwi3SL8n/GlERDbUq9K
+/GSGVZAZrlhc6NR0P3nWRm7DrUddqMNAWxnOkv9Exf+f6o5+PdhRvknv/nkCzhix
+6228Bbe0rOiwLEIpwq4Andnh+soXRffvgU59San+dwo5e2xdwtVi6BWEea6FPDLv
+A03csKT7jcQPdmDFHRXuzKQ9TK2QspMQKRawJCiE8E3o/mBpXXJjY6ddAZebqo7L
+9Zy4aZF9Ibxu2yc5IZumB8cjtMrvwAtKS8Ov+aAQSwX2SDFoDSxaxQmxZrKH/ssr
+8DepBmnwlVTfAC4p2hq1Xu3cTOc516DvzpqHHmUnoWPMHb3Ri+Bfg7KelqX5qCeF
+/GV/1ikJmw6HjorrPL0yv0m2rM2nYh9gZagQBrOyBz7DxFSZOgeLP4PvPggcl0f6
+I0eyVR9J/WxIBYERBbF3wjWv5HTNfdVr5O6T+olg7TkTIudVto4BU+Mu8/xI07QW
+fQSgZ4C1nbHqlsJoNYiSeMNTqXdzC75SezXWtKRjZxVXh4pUPY86ovIZ6MOYoLx9
+IVyUtbkCDQRX5Ti2ARAAnHWApVnCMmgWEXtMndUAknsl/CQaXFc4X7dNHuGF2ZXd
+bAjTX0LHhxRXbU/vNUtiq3SNv6I8ArdpIWNOsJBnBSC98z6z4bhvJLqLp9sz1foz
+wcoa5OpNEgoZoWNmUn+5sGcf8LJikUPfda0Qwm/XAFrPgQzerVE4uw0C6MITNYPw
+9psbtq1Aog2enbNfOko7UDCAtg8k+tsoUnPi6xil03xQtKclLMjGoyiIkBNFWeKW
+dgKlwl5CdzZXdsf9+0Sba0pIxFm5F58+CCIxlmfm4SZOUF3IcwYUr6G6o/nWvDUR
+y8iLwHHLrlihONAO+s+4q0Dqk5A0rlcRN/NaWfAFrW0blDGEiD4CoQkUn0AfWH+M
+9/L1kZ4Tg9b88kNrxed63q52EipzIqtc2XJz4K7+4txNL/YsHsGASi4orBtile/Q
+txmWSSRRvxuIUspbhsjH37xhxl0BZRlAa8H+M5zGrVhHkp7WN3p589vsFNMAz8Mv
+Z0ifAQQmRLlL55y64pYedX7SIzPHNRSQJ6ERDhqld6NNHBtZ74f143VrUwo8aBNm
+tz3yGGtVv6FJPQ+XXZ9xj3hui2eTZVrWTN4BRFieVvBYAO1sK00H+KdQiM4zErwX
+Sgiy7+L6UL+r7jHRXTADmUyyjBaPVDkD+yH4xqHz+/tCHYsaSMY4ffFVsTovvqsA
+EQEAAYkCJQQYAQgADwIbDAUCX3sbwgUJEPvkjAAKCRD+QwCcRgex+z/6D/0d9B2H
+oMt5hc9S9MMRRhVQeWRnDrVKMc9DLhIwwFPPusAt4G7FilHspPMtoJ22OIcEYZKC
+wSZC2j8Yt1PhW3bnOnHa7Er+06rTjU9hFFxn9orrsz83YIOZywLOL2yboew4omRk
+jBUiJDXRRnVhPwUR0Lz8rPCfGCa0b+IbbznZ0NLsCvnkYi5iMShvp6ZNszxnkvbW
+8+8lGnG6+yoSIwwD87KL2PDGENUIcv5rulZJHmFm7K8kThbnNTeWhmsuDuR7PNt2
+FZwQQ0s+It3DqZ7GFR5eBPmedTBwt7p4VzpUdRQ7ZDS9cXaYId1As4IanKQvQNbH
+G2HTujQ5KpMogB4PCyHlg7d1gnpXlRhW7zjEF7lQXlFnlcNZjI1uJ+suJW1vnQ4F
+Yt6TBq793ZWquWZYloassnwH2bFY3zNxajNm1A0NVKjwZTcvwthj1JvacHE4BdFU
+LK4/DJ5Bwdqa+5aiRpSeJq+ARwQRc/ZEuU90k4XpBXSLaZdzkAWr8J/KVk61FnlY
+e8BKq+1Pmu6VD+hnru//RYgtMNheHfgPy6QRTjRY1PhwvRcdxcwuFknUBBQ6fb3h
+obVvbPc3QOsbHn8xyxzPmpM7a1+9szXqNu22sV+O4Ya+5MGcS1JokyFVWa10WD0y
+wwDAcynzMET9pI0MXmqY1qKjlMQVc7lb4FLeXw==
+=y/Gu
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/arch/tde-deps/tor/keys/pgp/B74417EDDF22AC9F9E90F49142E86A2A11F48D36.asc b/arch/tde-deps/tor/keys/pgp/B74417EDDF22AC9F9E90F49142E86A2A11F48D36.asc
new file mode 100644
index 000000000..b3a6bfaca
--- /dev/null
+++ b/arch/tde-deps/tor/keys/pgp/B74417EDDF22AC9F9E90F49142E86A2A11F48D36.asc
@@ -0,0 +1,51 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+=Aw5d
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/arch/tde-deps/tor/tor.service b/arch/tde-deps/tor/tor.service
new file mode 100644
index 000000000..f91b63a08
--- /dev/null
+++ b/arch/tde-deps/tor/tor.service
@@ -0,0 +1,35 @@
+# tor.service -- this systemd configuration file for Tor sets up a
+# relatively conservative, hardened Tor service. You may need to
+# edit it if you are making changes to your Tor configuration that it
+# does not allow. Package maintainers: this should be a starting point
+# for your tor.service; it is not the last point.
+
+[Unit]
+Description=Anonymizing overlay network for TCP
+After=syslog.target network.target nss-lookup.target
+
+[Service]
+Type=notify
+NotifyAccess=all
+ExecStartPre=/usr/bin/tor -f /etc/tor/torrc --verify-config
+ExecStart=/usr/bin/tor -f /etc/tor/torrc
+ExecReload=/bin/kill -HUP ${MAINPID}
+KillSignal=SIGINT
+TimeoutSec=60
+Restart=on-failure
+WatchdogSec=1m
+LimitNOFILE=32768
+
+# Hardening
+PrivateTmp=yes
+PrivateDevices=yes
+ProtectHome=yes
+ProtectSystem=full
+ReadOnlyDirectories=/
+ReadWriteDirectories=-/var/lib/tor
+ReadWriteDirectories=-/var/log/tor
+NoNewPrivileges=yes
+CapabilityBoundingSet=CAP_SETUID CAP_SETGID CAP_NET_BIND_SERVICE CAP_DAC_READ_SEARCH
+
+[Install]
+WantedBy=multi-user.target
diff --git a/arch/tde-deps/tor/tor.sysusers b/arch/tde-deps/tor/tor.sysusers
new file mode 100644
index 000000000..1f039ff57
--- /dev/null
+++ b/arch/tde-deps/tor/tor.sysusers
@@ -0,0 +1 @@
+u tor 43 - /var/lib/tor
diff --git a/arch/tde-deps/tor/tor.tmpfiles b/arch/tde-deps/tor/tor.tmpfiles
new file mode 100644
index 000000000..ed8beb4b7
--- /dev/null
+++ b/arch/tde-deps/tor/tor.tmpfiles
@@ -0,0 +1 @@
+d /var/lib/tor 0700 tor tor - -
diff --git a/arch/tde-deps/tor/torrc.patch b/arch/tde-deps/tor/torrc.patch
new file mode 100644
index 000000000..0f3c849a4
--- /dev/null
+++ b/arch/tde-deps/tor/torrc.patch
@@ -0,0 +1,28 @@
+--- a/src/config/torrc.sample.in 2021-03-10 19:59:10.123456789 +0100
++++ b/src/config/torrc.sample.in 2021-03-10 19:59:10.123456789 +0100
+@@ -11,6 +11,7 @@
+ ##
+ ## Tor will look for this file in various places based on your platform:
+ ## https://www.torproject.org/docs/faq#torrc
++User tor
+
+ ## Tor opens a SOCKS proxy on port 9050 by default -- even if you don't
+ ## configure one below. Set "SOCKSPort 0" if you plan to run Tor only
+@@ -39,7 +40,7 @@
+ ## Send every possible message to @LOCALSTATEDIR@/log/tor/debug.log
+ #Log debug file @LOCALSTATEDIR@/log/tor/debug.log
+ ## Use the system log instead of Tor's logfiles
+-#Log notice syslog
++Log notice syslog
+ ## To send all messages to stderr:
+ #Log debug stderr
+
+@@ -50,7 +51,7 @@
+
+ ## The directory for keeping all the keys/etc. By default, we store
+ ## things in $HOME/.tor on Unix, and in Application Data\tor on Windows.
+-#DataDirectory @LOCALSTATEDIR@/lib/tor
++DataDirectory @LOCALSTATEDIR@/lib/tor
+
+ ## The port on which Tor will listen for local connections from Tor
+ ## controller applications, as documented in control-spec.txt.
diff --git a/arch/tde-deps/torsocks/PKGBUILD b/arch/tde-deps/torsocks/PKGBUILD
new file mode 100644
index 000000000..0db591399
--- /dev/null
+++ b/arch/tde-deps/torsocks/PKGBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org>
+# Contributor: Daniel Micay <danielmicay@gmail.com>
+# Contributor: Nicolas Pouillard <nicolas.pouillard@gmail.com>
+# Contributor: Rorschach <r0rschach@lavabit.com>
+
+pkgname=torsocks
+pkgver=2.3.0
+pkgrel=2
+pkgdesc='Wrapper to safely torify applications'
+url='https://gitweb.torproject.org/torsocks.git/'
+arch=('powerpc64le')
+license=('GPL2')
+depends=('tor')
+backup=("etc/tor/${pkgname}.conf")
+source=(https://people.torproject.org/~dgoulet/${pkgname}/${pkgname}-${pkgver}.tar.xz{,.asc})
+sha512sums=('4888caaffdcfebf3673e14f3491eae6aa84ca0a4a2a812ba7bdac2abb471307e89a3c5cffe7691fb6f190c7bd9ea455ee9a223d909a39152be8524f590be2031'
+ 'SKIP')
+validpgpkeys=('B74417EDDF22AC9F9E90F49142E86A2A11F48D36')
+
+build() {
+ cd ${pkgname}-${pkgver}
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+ make DESTDIR="${pkgdir}" install
+}
+
+# vim: ts=2 sw=2 et:
diff --git a/arch/tde-deps/torsocks/keys/pgp/B74417EDDF22AC9F9E90F49142E86A2A11F48D36.asc b/arch/tde-deps/torsocks/keys/pgp/B74417EDDF22AC9F9E90F49142E86A2A11F48D36.asc
new file mode 100644
index 000000000..33dd2bc7c
--- /dev/null
+++ b/arch/tde-deps/torsocks/keys/pgp/B74417EDDF22AC9F9E90F49142E86A2A11F48D36.asc
@@ -0,0 +1,66 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+isR9
+=/Stc
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/arch/tde-deps/xine-lib/010-xine-lib-dav1d-1.0.0-support.patch b/arch/tde-deps/xine-lib/010-xine-lib-dav1d-1.0.0-support.patch
new file mode 100644
index 000000000..aa0be9eef
--- /dev/null
+++ b/arch/tde-deps/xine-lib/010-xine-lib-dav1d-1.0.0-support.patch
@@ -0,0 +1,28 @@
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,5 @@
++ * Add dav1d 1.0.0 support.
++
+ xine-lib (1.2.12) 2022-03-09
+ * Add string tree library (generic info parser).
+ * Add OpenSL ES audio output plugin.
+--- a/src/video_dec/dav1d.c
++++ b/src/video_dec/dav1d.c
+@@ -544,11 +544,17 @@
+
+ /* multithreading */
+ ncpu = xine_cpu_count();
++#if DAV1D_API_VERSION_MAJOR > 5
++ settings.n_threads = ncpu + 1;
++ xprintf(stream->xine, XINE_VERBOSITY_DEBUG, LOG_MODULE ": "
++ "Using %d threads\n", settings.n_threads);
++#else
+ settings.n_frame_threads = (ncpu > 8) ? 4 : (ncpu < 2) ? 1 : ncpu/2;
+ settings.n_tile_threads = MAX(1, ncpu - settings.n_frame_threads + 1);
+ xprintf(stream->xine, XINE_VERBOSITY_DEBUG, LOG_MODULE ": "
+ "Using %d frame threads, %d tile threads\n",
+ settings.n_frame_threads, settings.n_tile_threads);
++#endif
+
+ /* dri frame allocator */
+ settings.allocator.cookie = this;
diff --git a/arch/tde-deps/xine-lib/020-xine-lib-ffmpeg-5.1-fix.patch b/arch/tde-deps/xine-lib/020-xine-lib-ffmpeg-5.1-fix.patch
new file mode 100644
index 000000000..baa21b2f0
--- /dev/null
+++ b/arch/tde-deps/xine-lib/020-xine-lib-ffmpeg-5.1-fix.patch
@@ -0,0 +1,330 @@
+--- a/m4/decoders.m4
++++ b/m4/decoders.m4
+@@ -134,13 +134,36 @@ a52_init ();
+ AC_DEFINE([HAVE_FFMPEG], 1, [Define this if you have the ffmpeg library])
+ dnl Check presence of ffmpeg/avutil.h to see if it's old or new
+ dnl style for headers. The new style would be preferred actually...
++ dnl Sigh. at least some 09/2022 ffmpeg version does violate the basic
++ dnl "get directly what you use directly" rule. especially,
++ dnl libavformat/avformat.h includes libavcodec/packet.h which uses
++ dnl (but not includes) libavutil/avutil.h. this means that a mere
++ dnl AC_CHECK_HEADERS([libavformat/avformat.h]) will fail strangely :-/
+ ac_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $FFMPEG_CFLAGS"
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CFLAGS $FFMPEG_CFLAGS $AVUTIL_CFLAGS"
+- AC_CHECK_HEADERS([ffmpeg/avutil.h])
+- AC_CHECK_HEADERS([libavutil/avutil.h])
+- AC_CHECK_HEADERS([libavutil/sha1.h])
+- AC_CHECK_HEADERS([libavutil/sha.h])
++ AC_CHECK_HEADERS([ffmpeg/avutil.h libavutil/avutil.h libavutil/sha1.h libavutil/mem.h libavutil/sha.h])
++ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
++#include <libavutil/avutil.h>
++#include <libavcodec/avcodec.h>
++ ]],[[]])], [have_avutil_avcodec_h=yes], [have_avutil_avcodec_h=no])
++ test x"$have_avutil_avcodec_h" == x"yes" && AC_DEFINE([HAVE_AVUTIL_AVCODEC_H],[1],
++ [Define this if you have libavutil/avutil.h and libavcodec/avcodec.h.])
++ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
++#include <libavutil/avutil.h>
++#include <libavcodec/avcodec.h>
++#include <libavformat/avformat.h>
++ ]],[[]])], [have_avformat_avformat_h=yes], [have_avformat_avformat_h=no])
++ test x"$have_avformat_avformat_h" == x"yes" && AC_DEFINE([HAVE_AVFORMAT_AVFORMAT_H],[1],
++ [Define this if you have libavformat/avformat.h.])
++ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
++#include <libavutil/avutil.h>
++#include <libavcodec/avcodec.h>
++#include <libavformat/avformat.h>
++#include <libavformat/avio.h>
++ ]],[[]])], [have_avformat_avio_h=yes], [have_avformat_avio_h=no])
++ test x"$have_avformat_avio_h" == x"yes" && AC_DEFINE([HAVE_AVFORMAT_AVIO_H],[1],
++ [Define this if you have libavformat/avformat.h.])
+ if test "$ac_cv_header_ffmpeg_avutil_h" = "yes" && test "$ac_cv_header_libavutil_avutil_h" = "yes"; then
+ AC_MSG_ERROR([old & new ffmpeg headers found - you need to clean up!])
+ fi
+--- a/m4/input.m4
++++ b/m4/input.m4
+@@ -229,6 +229,7 @@ AC_DEFUN([XINE_INPUT_PLUGINS], [
+ fi
+ if test x"$have_avformat" = x"yes"; then
+ AC_DEFINE([HAVE_AVFORMAT], 1, [Define this if you have libavformat installed])
++ AC_CHECK_HEADERS([libavformat/avformat.h])
+ fi
+ fi
+ AM_CONDITIONAL([ENABLE_AVFORMAT], [test x"$have_avformat" = x"yes"])
+--- a/src/combined/ffmpeg/demux_avformat.c
++++ b/src/combined/ffmpeg/demux_avformat.c
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (C) 2013-2021 the xine project
++ * Copyright (C) 2013-2022 the xine project
+ * Copyright (C) 2013-2020 Petri Hintukainen <phintuka@users.sourceforge.net>
+ *
+ * This file is part of xine, a free video player.
+@@ -29,6 +29,8 @@
+ #include <pthread.h>
+ #include <errno.h>
+
++#include <libavutil/avutil.h>
++#include <libavcodec/avcodec.h>
+ #include <libavformat/avformat.h>
+ #include <libavformat/avio.h>
+
+@@ -922,3 +924,4 @@ void *init_avformat_demux_plugin (xine_t
+ (void)data;
+ return (demux_class_t *)&this;
+ }
++
+--- a/src/combined/ffmpeg/ff_audio_decoder.c
++++ b/src/combined/ffmpeg/ff_audio_decoder.c
+@@ -31,13 +31,20 @@
+ #include <pthread.h>
+ #include <math.h>
+
+-#ifdef HAVE_FFMPEG_AVUTIL_H
+-# include <avcodec.h>
+-#else
+-# include <libavcodec/avcodec.h>
++#if defined(HAVE_LIBAVUTIL_AVUTIL_H)
++# include <libavutil/avutil.h>
++#endif
++
++#if defined(HAVE_LIBAVUTIL_MEM_H)
+ # include <libavutil/mem.h>
+ #endif
+
++#if defined(HAVE_AVUTIL_AVCODEC_H)
++# include <libavcodec/avcodec.h>
++#else
++# include <avcodec.h>
++#endif
++
+ #define LOG_MODULE "ffmpeg_audio_dec"
+ #define LOG_VERBOSE
+ /*
+--- a/src/combined/ffmpeg/ffmpeg_compat.h
++++ b/src/combined/ffmpeg/ffmpeg_compat.h
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (C) 2000-2021 the xine project
++ * Copyright (C) 2000-2022 the xine project
+ *
+ * This file is part of xine, a unix video player.
+ *
+@@ -25,22 +25,24 @@
+
+ #define XFF_INT_VERSION(major,minor,micro) ((major<<16)|(minor<<8)|micro)
+
+-#ifndef LIBAVCODEC_VERSION_INT
+-# if defined(LIBAVCODEC_VERSION_MAJOR) && defined(LIBAVCODEC_VERSION_MINOR)
+-# define LIBAVCODEC_VERSION_INT XFF_INT_VERSION(LIBAVCODEC_VERSION_MAJOR,LIBAVCODEC_VERSION_MINOR,0)
+-# else
+-# error ffmpeg headers must be included first !
+-# endif
++/** NOTE: since 2022-09-01, ffmpeg headers are more detached from each other.
++ * this goes that far:
++ * libavformat/avformat.h includes libavcodec/packet.h which uses
++ * (but not includes) libavutil/avutil.h :-/ */
++
++#if !defined(LIBAVUTIL_VERSION_INT) && defined(LIBAVUTIL_VERSION_MAJOR) && defined(LIBAVUTIL_VERSION_MINOR)
++# define LIBAVUTIL_VERSION_INT XFF_INT_VERSION(LIBAVUTIL_VERSION_MAJOR,LIBAVUTIL_VERSION_MINOR,0)
++#endif
++#if !defined(LIBAVUTIL_VERSION_INT)
++# error avutil.h must be included first !
+ #endif
+
+-#ifndef LIBAVUTIL_VERSION_INT
+-# if defined(LIBAVUTIL_VERSION_MAJOR) && defined(LIBAVUTIL_VERSION_MINOR)
+-# define LIBAVUTIL_VERSION_INT XFF_INT_VERSION(LIBAVUTIL_VERSION_MAJOR,LIBAVUTIL_VERSION_MINOR,0)
+-# else
+-# error ffmpeg headers must be included first !
+-# endif
++#if !defined(LIBAVCODEC_VERSION_INT) && defined(LIBAVCODEC_VERSION_MAJOR) && defined(LIBAVCODEC_VERSION_MINOR)
++# define LIBAVCODEC_VERSION_INT XFF_INT_VERSION(LIBAVCODEC_VERSION_MAJOR,LIBAVCODEC_VERSION_MINOR,0)
+ #endif
+
++#if defined(LIBAVCODEC_VERSION_INT)
++
+ #if LIBAVCODEC_VERSION_INT >= XFF_INT_VERSION(52,0,0)
+ # define bits_per_sample bits_per_coded_sample
+ #endif
+@@ -136,38 +138,6 @@
+ # define XFF_VAAPI 2 /** << libavutil/hwcontext.h, libavutil/hwcontext_vaapi.h */
+ #endif
+
+-#if LIBAVUTIL_VERSION_INT >= XFF_INT_VERSION(52,0,0)
+-# define PIX_FMT_NONE AV_PIX_FMT_NONE
+-# define PIX_FMT_YUV420P AV_PIX_FMT_YUV420P
+-# define PIX_FMT_YUVJ420P AV_PIX_FMT_YUVJ420P
+-# define PIX_FMT_YUV444P AV_PIX_FMT_YUV444P
+-# define PIX_FMT_YUVJ444P AV_PIX_FMT_YUVJ444P
+-# define PIX_FMT_YUV410P AV_PIX_FMT_YUV410P
+-# define PIX_FMT_YUV411P AV_PIX_FMT_YUV411P
+-# define PIX_FMT_ARGB AV_PIX_FMT_ARGB
+-# define PIX_FMT_BGRA AV_PIX_FMT_BGRA
+-# define PIX_FMT_RGB24 AV_PIX_FMT_RGB24
+-# define PIX_FMT_BGR24 AV_PIX_FMT_BGR24
+-# define PIX_FMT_RGB555BE AV_PIX_FMT_RGB555BE
+-# define PIX_FMT_RGB555LE AV_PIX_FMT_RGB555LE
+-# define PIX_FMT_RGB565BE AV_PIX_FMT_RGB565BE
+-# define PIX_FMT_RGB565LE AV_PIX_FMT_RGB565LE
+-# define PIX_FMT_PAL8 AV_PIX_FMT_PAL8
+-# define PixelFormat AVPixelFormat
+-/* video_out/video_out_vaapi */
+-# if LIBAVCODEC_VERSION_INT < XFF_INT_VERSION(59,0,100) /** << revise this */
+-# define PIX_FMT_VAAPI_VLD AV_PIX_FMT_VAAPI_VLD
+-# define PIX_FMT_VAAPI_IDCT AV_PIX_FMT_VAAPI_IDCT
+-# define PIX_FMT_VAAPI_MOCO AV_PIX_FMT_VAAPI_MOCO
+-# else
+-# define PIX_FMT_VAAPI_VLD AV_PIX_FMT_VAAPI
+-# define PIX_FMT_VAAPI_IDCT AV_PIX_FMT_VAAPI
+-# define PIX_FMT_VAAPI_MOCO AV_PIX_FMT_VAAPI
+-# endif
+-
+-# define CODEC_FLAG_BITEXACT AV_CODEC_FLAG_BITEXACT
+-#endif
+-
+ #if LIBAVCODEC_VERSION_INT >= XFF_INT_VERSION(54,25,0)
+ /* dxr3/ffmpeg_encoder */
+ # define CODEC_ID_MPEG1VIDEO AV_CODEC_ID_MPEG1VIDEO
+@@ -194,10 +164,6 @@
+ /* ff_*_decoder mapping is already handled by mkcodeclists.pl */
+ #endif
+
+-#ifndef AVCODEC_MAX_AUDIO_FRAME_SIZE
+-# define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000
+-#endif
+-
+ #if LIBAVCODEC_VERSION_INT >= XFF_INT_VERSION(55,0,100)
+ # define XFF_AV_BUFFER 1
+ #endif
+@@ -290,5 +256,51 @@
+ # define XFF_AVCODEC_REGISTER_ALL() do {} while(0)
+ #endif
+
++#if LIBAVCODEC_VERSION_INT < XFF_INT_VERSION(59,24,100)
++# define XFF_AUDIO_CHANNEL_LAYOUT 1 /* AVCodecContext.channels, .channel_leyout */
++#else
++# define XFF_AUDIO_CHANNEL_LAYOUT 2 /* AVCodecContext.ch_layout.nb_channels, .ch_layout.u.mask */
++#endif
++
++#ifndef AVCODEC_MAX_AUDIO_FRAME_SIZE
++# define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000
++#endif
++
++#if LIBAVUTIL_VERSION_INT >= XFF_INT_VERSION(52,0,0)
++# define PIX_FMT_NONE AV_PIX_FMT_NONE
++# define PIX_FMT_YUV420P AV_PIX_FMT_YUV420P
++# define PIX_FMT_YUVJ420P AV_PIX_FMT_YUVJ420P
++# define PIX_FMT_YUV444P AV_PIX_FMT_YUV444P
++# define PIX_FMT_YUVJ444P AV_PIX_FMT_YUVJ444P
++# define PIX_FMT_YUV410P AV_PIX_FMT_YUV410P
++# define PIX_FMT_YUV411P AV_PIX_FMT_YUV411P
++# define PIX_FMT_ARGB AV_PIX_FMT_ARGB
++# define PIX_FMT_BGRA AV_PIX_FMT_BGRA
++# define PIX_FMT_RGB24 AV_PIX_FMT_RGB24
++# define PIX_FMT_BGR24 AV_PIX_FMT_BGR24
++# define PIX_FMT_RGB555BE AV_PIX_FMT_RGB555BE
++# define PIX_FMT_RGB555LE AV_PIX_FMT_RGB555LE
++# define PIX_FMT_RGB565BE AV_PIX_FMT_RGB565BE
++# define PIX_FMT_RGB565LE AV_PIX_FMT_RGB565LE
++# define PIX_FMT_PAL8 AV_PIX_FMT_PAL8
++# define PixelFormat AVPixelFormat
++/* video_out/video_out_vaapi */
++# if LIBAVCODEC_VERSION_INT < XFF_INT_VERSION(59,0,100) /** << revise this */
++# define PIX_FMT_VAAPI_VLD AV_PIX_FMT_VAAPI_VLD
++# define PIX_FMT_VAAPI_IDCT AV_PIX_FMT_VAAPI_IDCT
++# define PIX_FMT_VAAPI_MOCO AV_PIX_FMT_VAAPI_MOCO
++# else
++# define PIX_FMT_VAAPI_VLD AV_PIX_FMT_VAAPI
++# define PIX_FMT_VAAPI_IDCT AV_PIX_FMT_VAAPI
++# define PIX_FMT_VAAPI_MOCO AV_PIX_FMT_VAAPI
++# endif
++
++# define CODEC_FLAG_BITEXACT AV_CODEC_FLAG_BITEXACT
++#endif
++
++#else /* defined(LIBAVCODEC_VERSION_INT) */
++# error avcodec.h must be included first !
++#endif /* defined(LIBAVCODEC_VERSION_INT) */
++
+ #endif /* XINE_AVCODEC_COMPAT_H */
+
+--- a/src/combined/ffmpeg/ffmpeg_decoder.c
++++ b/src/combined/ffmpeg/ffmpeg_decoder.c 2022-09-13 23:43:40.255615724 -0300
+@@ -26,12 +26,20 @@
+
+ #include <pthread.h>
+
+-#ifdef HAVE_FFMPEG_AVUTIL_H
+-# include <avcodec.h>
+-#else
+-# include <libavcodec/avcodec.h>
++#if defined(HAVE_LIBAVUTIL_AVUTIL_H)
++# include <libavutil/avutil.h>
++#endif
++
++#if defined(HAVE_LIBAVUTIL_MEM_H)
+ # include <libavutil/mem.h>
+ #endif
++
++#if defined(HAVE_AVUTIL_AVCODEC_H)
++# include <libavcodec/avcodec.h>
++#else
++# include <avcodec.h>
++#endif
++
+ #ifdef HAVE_AVFORMAT
+ # include <libavformat/avformat.h> // av_register_all()
+ #endif
+--- a/src/combined/ffmpeg/ff_video_decoder.c
++++ b/src/combined/ffmpeg/ff_video_decoder.c
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (C) 2001-2021 the xine project
++ * Copyright (C) 2001-2022 the xine project
+ *
+ * This file is part of xine, a free video player.
+ *
+@@ -32,13 +32,20 @@
+ #include <math.h>
+ #include <assert.h>
+
+-#ifdef HAVE_FFMPEG_AVUTIL_H
+-# include <avcodec.h>
+-#else
+-# include <libavcodec/avcodec.h>
++#if defined(HAVE_LIBAVUTIL_AVUTIL_H)
++# include <libavutil/avutil.h>
++#endif
++
++#if defined(HAVE_LIBAVUTIL_MEM_H)
+ # include <libavutil/mem.h>
+ #endif
+
++#if defined(HAVE_AVUTIL_AVCODEC_H)
++# include <libavcodec/avcodec.h>
++#else
++# include <avcodec.h>
++#endif
++
+ #define LOG_MODULE "ffmpeg_video_dec"
+ #define LOG_VERBOSE
+ /*
+--- a/src/combined/ffmpeg/input_avio.c
++++ b/src/combined/ffmpeg/input_avio.c 2022-09-13 23:43:40.255615724 -0300
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (C) 2013-2020 the xine project
++ * Copyright (C) 2013-2022 the xine project
+ * Copyright (C) 2013-2020 Petri Hintukainen <phintuka@users.sourceforge.net>
+ *
+ * This file is part of xine, a free video player.
+@@ -28,6 +28,8 @@
+ #include <string.h>
+ #include <pthread.h>
+
++#include <libavutil/avutil.h>
++#include <libavcodec/avcodec.h>
+ #include <libavformat/avio.h>
+
+ #define LOG_MODULE "libavio"
diff --git a/arch/tde-deps/xine-lib/PKGBUILD b/arch/tde-deps/xine-lib/PKGBUILD
new file mode 100644
index 000000000..211202c63
--- /dev/null
+++ b/arch/tde-deps/xine-lib/PKGBUILD
@@ -0,0 +1,63 @@
+# Maintainer : Daniel Bermond <dbermond@archlinux.org>
+# Contributor: Eric Bélanger <eric@archlinux.org>
+
+pkgname=xine-lib
+pkgver=1.2.12
+pkgrel=4
+pkgdesc='Multimedia playback engine'
+arch=('powerpc64le')
+url='https://www.xine-project.org'
+license=('GPL' 'LGPL')
+depends=('ffmpeg' 'libjpeg-turbo' 'libnsl' 'libpng' 'libx11' 'libxcb'
+ 'libxext' 'libxinerama' 'libxv' 'libxvmc' 'zlib')
+optdepends=('libdvdnav: for dvd plugin'
+ 'libdvdread: for spu and dxr3 plugins'
+ 'vcdimager: for vcd plugin'
+ 'glu: for opengl and vaapi plugins'
+ 'sdl: for sdl plugin'
+ 'wayland: for egl_wl plugin'
+ 'aalib: for aalib plugin'
+ 'a52dec: for a52 plugin'
+ 'faad2: for faad plugin'
+ 'flac: for flac plugin'
+ 'libdca: for dts (dca) plugin'
+ 'libmad: for mad (mp3) plugin'
+ 'libmpcdec: for mpc (musepack) plugin'
+ 'wavpack: for wavpack plugin'
+ 'gdk-pixbuf2: for gdk_pixbuf plugin'
+ 'imagemagick: for imagemagick plugin'
+ 'libcaca: for caca plugin'
+ 'libmng: for mng plugin'
+ 'libnfs: for nfs plugin'
+ 'libssh2: for ssh plugin'
+ 'smbclient: for samba plugin')
+makedepends=('mesa' 'libdvdnav' 'libdvdread' 'vcdimager' 'glu' 'sdl'
+ 'wayland' 'aalib' 'a52dec' 'faad2' 'flac' 'libdca' 'libmad'
+ 'libmpcdec' 'wavpack' 'gdk-pixbuf2' 'imagemagick' 'libcaca'
+ 'libmng' 'libnfs' 'smbclient')
+source=("https://downloads.sourceforge.net/project/xine/xine-lib/${pkgver}/xine-lib-${pkgver}.tar.xz"
+ '010-xine-lib-dav1d-1.0.0-support.patch'
+ '020-xine-lib-ffmpeg-5.1-fix.patch')
+sha256sums=('d606270468e1540c2a89c0d7f5fdf11e17ecc0c2698cc0bcb1065ff26abee098'
+ '9e41a7e49bc81d04d8f5014d5a4fcb4961eeb735eb6329a76ac24425fdafae06'
+ '36930d0973c71027175530e6911a9e9ad824107eedd519b01f375800f3f98822')
+
+prepare() {
+ patch -d "${pkgname}-${pkgver}" -Np1 -i "${srcdir}/010-xine-lib-dav1d-1.0.0-support.patch"
+ patch -d "${pkgname}-${pkgver}" -Np1 -i "${srcdir}/020-xine-lib-ffmpeg-5.1-fix.patch"
+}
+
+build() {
+ cd "${pkgname}-${pkgver}"
+ ./autogen.sh \
+ --prefix='/usr' \
+ --enable-antialiasing \
+ --with-external-dvdnav \
+ --with-wavpack
+ sed -i 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+ make
+}
+
+package() {
+ make -C "${pkgname}-${pkgver}" DESTDIR="$pkgdir" install
+}
diff --git a/arch/tde-deps/xscreensaver/LICENSE b/arch/tde-deps/xscreensaver/LICENSE
new file mode 100644
index 000000000..406467cd4
--- /dev/null
+++ b/arch/tde-deps/xscreensaver/LICENSE
@@ -0,0 +1,10 @@
+/* xscreensaver, Copyright (c) 1991-2013 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
diff --git a/arch/tde-deps/xscreensaver/PKGBUILD b/arch/tde-deps/xscreensaver/PKGBUILD
new file mode 100644
index 000000000..bc8dd585a
--- /dev/null
+++ b/arch/tde-deps/xscreensaver/PKGBUILD
@@ -0,0 +1,55 @@
+# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org>
+# Contributor: Eric Bélanger <eric@archlinux.org>
+#
+# Note: Build for archlinuxpower with both gtk2 and gtk3 and without gdm
+
+pkgname=xscreensaver
+pkgver=6.05.1
+pkgrel=2
+pkgdesc='Screen saver and locker for the X Window System'
+url='https://www.jwz.org/xscreensaver/'
+arch=('powerpc64le')
+license=('BSD')
+depends=(
+ 'gtk2' 'gtk3' 'glu' 'xorg-appres' 'libglvnd' 'libjpeg-turbo' 'libjpeg.so'
+ 'libsystemd.so' 'libx11' 'libxcrypt' 'libcrypt.so' 'libxext' 'libxft' 'libxi'
+ 'libxinerama' 'libxmu' 'libxrandr' 'libxt' 'libxxf86vm' 'perl-libwww' 'pam'
+ 'libpam.so' 'glibc' 'glib2' 'gdk-pixbuf2' 'gdk-pixbuf-xlib'
+)
+makedepends=('bc' 'intltool' 'libxpm' 'systemd' 'systemd-libs')
+optdepends=('gdm: for login manager support')
+backup=('etc/pam.d/xscreensaver')
+source=(https://www.jwz.org/xscreensaver/${pkgname}-${pkgver}.tar.gz
+ LICENSE)
+sha512sums=('c659a769ff71020b9f96b7e707bd1bcc667eb304179305d56b1be45eed095d650a8aa019890a0c5d444672f9dd68516c99c53b0df94cd96196d7f30a24b987e3'
+ '863c699479b2ec2775a0d1cba22e615929194a14af164b3513e46a0c04229da6547255a4da8f7f1bbb40906898c124ed3c9ec2436b76b62affcb62385af9783e')
+b2sums=('97c16c9f0b2a0b4d00ddccd711b921ca683bd233bc3d07ecad38b68ff94b149a20512246dd6bae052323f00b1b433f56469c5638a031cbc65b61c2b84a0180e3'
+ 'cacb6ba39d6ecb8703ef5f5a7dc74de0ca805cce73b43a8b9b6b4c255c909aa9b5e692de76c2fbd4da26ce6efb5f2a46138c43b1b37f53cee6d20fd6ed41f4a9')
+
+build() {
+ cd ${pkgname}-${pkgver%.*}
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib \
+ --without-setuid-hacks \
+ --with-pam \
+ --with-login-manager \
+ --with-gtk \
+ --with-gl \
+ --without-gle \
+ --with-pixbuf \
+ --with-jpeg
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver%.*}
+ install -d "${pkgdir}/etc/pam.d"
+ make install_prefix="${pkgdir}" install
+ install -Dm 644 ../LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}"
+ echo "NotShowIn=KDE;GNOME;" >> "${pkgdir}/usr/share/applications/xscreensaver-settings.desktop"
+}
+
+# vim: ts=2 sw=2 et: