summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Grapentin <andreas@grapentin.org>2018-04-11 10:29:07 +0200
committerAndreas Grapentin <andreas@grapentin.org>2018-04-11 10:29:07 +0200
commit594b6096af00e944e34492e790559d6b5e2c56b5 (patch)
treeffcb60018c4fa6c192851931886ae9c50f968575
parent689345dd55e0ff2336910c084ebf230cf111825c (diff)
home stretch of stage4
-rw-r--r--deptreecycle.py27
-rw-r--r--src/blacklist.txt6
-rw-r--r--src/shared/checks.sh4
-rw-r--r--src/stage4/patches/avahi-breakdeps.patch28
-rw-r--r--src/stage4/patches/cairo-breakdeps.patch12
-rw-r--r--src/stage4/patches/colord-breakdeps.patch23
-rw-r--r--src/stage4/patches/cups-breakdeps.patch51
-rw-r--r--src/stage4/patches/ffmpeg-breakdeps.patch21
-rw-r--r--src/stage4/patches/fontconfig.patch21
-rw-r--r--src/stage4/patches/ghostscript-breakdeps.patch49
-rw-r--r--src/stage4/patches/glibmm.patch12
-rw-r--r--src/stage4/patches/graphite-breakdeps.patch33
-rw-r--r--src/stage4/patches/graphite.patch34
-rw-r--r--src/stage4/patches/graphviz-breakdeps.patch24
-rw-r--r--src/stage4/patches/graphviz.patch15
-rw-r--r--src/stage4/patches/gstreamer.patch48
-rw-r--r--src/stage4/patches/gtk3-breakdeps.patch12
-rw-r--r--src/stage4/patches/harfbuzz-breakdeps.patch29
-rw-r--r--src/stage4/patches/libcanberra-breakdeps.patch23
-rw-r--r--src/stage4/patches/libffado-breakdeps.patch15
-rw-r--r--src/stage4/patches/libglvnd-breakdeps.patch12
-rw-r--r--src/stage4/patches/libimobiledevice-breakdeps.patch12
-rw-r--r--src/stage4/patches/libproxy-breakdeps.patch21
-rw-r--r--src/stage4/patches/librsvg-breakdeps.patch54
-rw-r--r--src/stage4/patches/librsvg.patch53
-rw-r--r--src/stage4/patches/libsigc++-breakdeps.patch56
-rw-r--r--src/stage4/patches/libsndfile.patch20
-rw-r--r--src/stage4/patches/libsodium-breakdeps.patch20
-rw-r--r--src/stage4/patches/libva-breakdeps.patch11
-rw-r--r--src/stage4/patches/libxft.patch12
-rw-r--r--src/stage4/patches/llvm.patch99
-rw-r--r--src/stage4/patches/lm_sensors-breakdeps.patch21
-rw-r--r--src/stage4/patches/mesa.patch49
-rw-r--r--src/stage4/patches/ocaml.patch38
-rw-r--r--src/stage4/patches/phonon-gstreamer-breakdeps.patch30
-rw-r--r--src/stage4/patches/poppler-breakdeps.patch20
-rw-r--r--src/stage4/patches/pulseaudio-breakdeps.patch132
-rw-r--r--src/stage4/patches/python.patch14
-rw-r--r--src/stage4/patches/python2.patch12
-rw-r--r--src/stage4/patches/qt5-tools-breakdeps.patch14
-rw-r--r--src/stage4/patches/r-breakdeps.patch14
-rw-r--r--src/stage4/patches/ruby-rdiscount.patch11
-rw-r--r--src/stage4/patches/rust-breakdeps.patch12
-rw-r--r--src/stage4/patches/subversion-breakdeps.patch52
-rw-r--r--src/stage4/patches/texlive-bin.patch102
-rw-r--r--src/stage4/patches/texlive-bin.patch.libsynctex56
-rw-r--r--src/stage4/patches/vala-breakdeps.patch46
-rw-r--r--src/stage4/patches/xorg-server.patch74
-rw-r--r--src/stage4/stage4.sh4
-rw-r--r--tools/analyze_deptree.sh46
50 files changed, 1545 insertions, 59 deletions
diff --git a/deptreecycle.py b/deptreecycle.py
deleted file mode 100644
index baf3a74..0000000
--- a/deptreecycle.py
+++ /dev/null
@@ -1,27 +0,0 @@
-
-import sys
-import networkx as nx
-import itertools
-
-graph = nx.DiGraph()
-
-with open(sys.argv[1]) as deptree:
- for line in deptree:
- line = line.split('#')[0]
- lhs, rhs = line.split(':')
- lhs = lhs.strip()
- rhs = rhs.lstrip(' [').rstrip('] ')
- graph.add_node(lhs)
- for dep in rhs.split():
- if not dep in graph:
- graph.add_node(dep)
- graph.add_edge(lhs, dep)
-
-print("deptree with %d nodes & %d edges" % (graph.number_of_nodes(), graph.number_of_edges()))
-print("")
-
-print("cycles:")
-cycles=nx.simple_cycles(graph)
-for cycle in itertools.islice(cycles, 10):
- print(cycle)
-print("")
diff --git a/src/blacklist.txt b/src/blacklist.txt
index 6845724..52288ad 100644
--- a/src/blacklist.txt
+++ b/src/blacklist.txt
@@ -1,4 +1,6 @@
apache-ant:depends on java-environment
+clang:no port exists
+compiler-rt:no port exists
clisp:no port exists
ffcall:no port exists
gdb:no port exists
@@ -20,7 +22,9 @@ lib32-gcc-libs:no multilib
lib32-glibc:no multilib
libreoffice-fresh:depends on java-environment
libreoffice-still:depends on java-environment
+libunwind:no port exists
maven:depends on java-environment (and is a pita)
-rust:bootstrap needed
+mono:no port exists
+rust:no port exists
unoconv:depends on libreoffice-fresh
valgrind:no port exists
diff --git a/src/shared/checks.sh b/src/shared/checks.sh
index 5d369c3..02d5f83 100644
--- a/src/shared/checks.sh
+++ b/src/shared/checks.sh
@@ -110,10 +110,10 @@ check_pkgfile() {
done
shift $((OPTIND-1))
- echo -n "checking for built package $2 ... "
+ echo -n "checking for built package $2$p ... "
local esc pkgfile have_pkgfile=yes
- esc=$(printf '%s\n' "$2" | sed 's:[][\/.^$*]:\\&:g')
+ esc=$(printf '%s\n' "$2" | sed 's:[][\/.+^$*]:\\&:g')
pkgfile=$(find "$1" -regex "^.*/$esc$p-[^-]*-[^-]*-[^-]*\\.pkg\\.tar\\.xz\$")
[ -n "$pkgfile" ] || have_pkgfile=no
echo $have_pkgfile
diff --git a/src/stage4/patches/avahi-breakdeps.patch b/src/stage4/patches/avahi-breakdeps.patch
new file mode 100644
index 0000000..0e0ec4b
--- /dev/null
+++ b/src/stage4/patches/avahi-breakdeps.patch
@@ -0,0 +1,28 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-04 23:14:14.847738317 +0200
++++ b/PKGBUILD 2018-04-09 13:39:05.411065213 +0200
+@@ -11,14 +11,12 @@ url='https://github.com/lathiat/avahi'
+ license=(LGPL)
+ arch=(x86_64)
+ depends=(expat libdaemon glib2 libcap gdbm dbus)
+-makedepends=(git qt4 pygtk mono intltool gtk-sharp-2 gobject-introspection gtk3
++makedepends=(git pygtk intltool gtk-sharp-2 gobject-introspection gtk3
+ xmltoman python-dbus python-gobject doxygen graphviz)
+ optdepends=('gtk3: avahi-discover, avahi-discover-standalone, bshell, bssh, bvnc'
+ 'gtk2: gtk2 bindings'
+- 'qt4: qt4 bindings'
+ 'pygtk: avahi-bookmarks'
+ 'python2-twisted: avahi-bookmarks'
+- 'mono: mono bindings'
+ 'nss-mdns: NSS support for mDNS'
+ 'python-gobject: avahi-discover'
+ 'python-dbus: avahi-discover')
+@@ -43,7 +41,7 @@ prepare() {
+
+ build() {
+ cd $pkgname
+- export MOC_QT4=/usr/bin/moc-qt4 PYTHON=/usr/bin/python3
++ export PYTHON=/usr/bin/python3
+
+ ./configure \
+ --prefix=/usr \
diff --git a/src/stage4/patches/cairo-breakdeps.patch b/src/stage4/patches/cairo-breakdeps.patch
new file mode 100644
index 0000000..7df0bb6
--- /dev/null
+++ b/src/stage4/patches/cairo-breakdeps.patch
@@ -0,0 +1,12 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-08 14:24:55.428993337 +0200
++++ b/PKGBUILD 2018-04-11 10:26:40.780781856 +0200
+@@ -10,7 +10,7 @@ url="https://cairographics.org/"
+ arch=(x86_64)
+ license=(LGPL MPL)
+ depends=(libpng libxrender libxext fontconfig pixman glib2 lzo)
+-makedepends=(librsvg gtk2 poppler-glib libspectre gtk-doc valgrind git)
++makedepends=(librsvg poppler-glib libspectre gtk-doc git)
+ _commit=1ed124ace201946177eab962d3b07bb2fedf9026 # master
+ source=("git+https://anongit.freedesktop.org/git/cairo#commit=$_commit"
+ utf-8.diff)
diff --git a/src/stage4/patches/colord-breakdeps.patch b/src/stage4/patches/colord-breakdeps.patch
new file mode 100644
index 0000000..0f64440
--- /dev/null
+++ b/src/stage4/patches/colord-breakdeps.patch
@@ -0,0 +1,23 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-09 07:49:37.470052499 +0200
++++ b/PKGBUILD 2018-04-09 07:49:37.470052499 +0200
+@@ -10,7 +10,7 @@ arch=(x86_64)
+ url="https://www.freedesktop.org/software/colord"
+ license=(GPL2)
+ depends=(lcms2 libgusb polkit sqlite systemd dconf dbus libgudev shared-mime-info)
+-makedepends=(gobject-introspection vala sane bash-completion argyllcms git docbook-utils
++makedepends=(gobject-introspection bash-completion argyllcms git docbook-utils
+ docbook-sgml perl-sgmls meson gtk-doc)
+ optdepends=('sane: scanner support'
+ 'argyllcms: color profiling')
+@@ -36,8 +36,8 @@ prepare() {
+ build() {
+ arch-meson $pkgname build \
+ -Denable-libcolordcompat=true \
+- -Denable-sane=true \
+- -Denable-vala=true \
++ -Denable-sane=false \
++ -Denable-vala=false \
+ -Denable-print-profiles=true \
+ -Dwith-daemon-user=colord
+ ninja -C build
diff --git a/src/stage4/patches/cups-breakdeps.patch b/src/stage4/patches/cups-breakdeps.patch
new file mode 100644
index 0000000..2f339be
--- /dev/null
+++ b/src/stage4/patches/cups-breakdeps.patch
@@ -0,0 +1,51 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-08 10:04:38.017473514 +0200
++++ b/PKGBUILD 2018-04-08 10:04:38.018473514 +0200
+@@ -9,8 +9,8 @@ arch=('x86_64')
+ license=('GPL')
+ url="https://www.cups.org/"
+ makedepends=('libtiff' 'libpng' 'acl' 'pam' 'xdg-utils' 'krb5' 'gnutls'
+- 'cups-filters' 'bc' 'colord' 'xinetd' 'gzip' 'autoconf' 'libusb' 'dbus'
+- 'avahi' 'hicolor-icon-theme' 'systemd' 'inetutils' 'libpaper' 'valgrind')
++ 'bc' 'xinetd' 'gzip' 'autoconf' 'libusb' 'dbus'
++ 'hicolor-icon-theme' 'systemd' 'inetutils' 'libpaper')
+ source=(https://github.com/apple/cups/releases/download/v${pkgver}/cups-${pkgver}-source.tar.gz{,.sig}
+ cups.logrotate cups.pam
+ cups.sysusers guid.patch
+@@ -81,7 +81,7 @@ build() {
+ --enable-dbus --with-dbusdir=/etc/dbus-1 \
+ --enable-ssl=yes \
+ --enable-threads \
+- --enable-avahi\
++ --disable-avahi\
+ --enable-libpaper \
+ --with-php=/usr/bin/php-cgi \
+ --with-optim="$CFLAGS" #--help
+@@ -95,7 +95,7 @@ check() {
+
+ package_libcups() {
+ pkgdesc="The CUPS Printing System - client libraries and headers"
+-depends=('gnutls' 'libtiff>=4.0.0' 'libpng>=1.5.7' 'krb5' 'avahi' 'libusb')
++depends=('gnutls' 'libtiff>=4.0.0' 'libpng>=1.5.7' 'krb5' 'libusb')
+
+ cd ${pkgbase}-${pkgver}
+ make BUILDROOT=${pkgdir} install-headers install-libs
+@@ -116,7 +116,7 @@ backup=(etc/cups/cupsd.conf
+ etc/dbus-1/system.d/cups.conf
+ etc/logrotate.d/cups
+ etc/pam.d/cups)
+-depends=('acl' 'pam' "libcups>=${pkgver}" 'cups-filters' 'bc'
++depends=('acl' 'pam' "libcups>=${pkgver}" 'bc'
+ 'dbus' 'systemd' 'libpaper' 'hicolor-icon-theme')
+ optdepends=('xdg-utils: xdg .desktop file support'
+ 'colord: for ICC color profile support')
+@@ -153,9 +153,6 @@ optdepends=('xdg-utils: xdg .desktop fil
+ touch ${pkgdir}/etc/cups/subscriptions.conf
+ chgrp -R 209 ${pkgdir}/etc/cups
+
+- # fix .desktop file
+- sed -i 's|^Exec=htmlview http://localhost:631/|Exec=xdg-open http://localhost:631/|g' ${pkgdir}/usr/share/applications/cups.desktop
+-
+ # compress some driver files, adopted from Fedora
+ find ${pkgdir}/usr/share/cups/model -name "*.ppd" | xargs gzip -n9f
+
diff --git a/src/stage4/patches/ffmpeg-breakdeps.patch b/src/stage4/patches/ffmpeg-breakdeps.patch
new file mode 100644
index 0000000..5375dd8
--- /dev/null
+++ b/src/stage4/patches/ffmpeg-breakdeps.patch
@@ -0,0 +1,21 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-04 18:34:55.528326721 +0200
++++ b/PKGBUILD 2018-04-09 14:07:33.607903315 +0200
+@@ -21,7 +21,7 @@ depends=('alsa-lib' 'bzip2' 'fontconfig'
+ 'libomxil-bellagio'
+ 'libass.so' 'libbluray.so' 'libfreetype.so' 'libva-drm.so' 'libva.so'
+ 'libva-x11.so' 'libvidstab.so' 'libvorbisenc.so' 'libvorbis.so'
+- 'libvpx.so' 'libx264.so' 'libx265.so' 'libxvidcore.so')
++ 'libvpx.so' 'libxvidcore.so')
+ makedepends=('ladspa' 'libvdpau' 'yasm')
+ optdepends=('ladspa: LADSPA filters')
+ provides=('libavcodec.so' 'libavdevice.so' 'libavfilter.so' 'libavformat.so'
+@@ -79,8 +79,6 @@ build() {
+ --enable-libvorbis \
+ --enable-libvpx \
+ --enable-libwebp \
+- --enable-libx264 \
+- --enable-libx265 \
+ --enable-libxcb \
+ --enable-libxml2 \
+ --enable-libxvid \
diff --git a/src/stage4/patches/fontconfig.patch b/src/stage4/patches/fontconfig.patch
new file mode 100644
index 0000000..c96eff1
--- /dev/null
+++ b/src/stage4/patches/fontconfig.patch
@@ -0,0 +1,21 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-11 06:20:43.633180499 +0200
++++ b/PKGBUILD 2018-04-11 08:24:00.586479436 +0200
+@@ -1,6 +1,8 @@
+ # $Id$
+ # Maintainer: Jan de Groot <jgc@archlinux.org>
+
++# FIXME: doctools segfaults when building docs.
++
+ pkgname=fontconfig
+ pkgver=2.13.0+10+g58f5285
+ pkgrel=1
+@@ -9,7 +11,7 @@ arch=(x86_64)
+ url="https://www.freedesktop.org/wiki/Software/fontconfig/"
+ license=(custom)
+ depends=(expat freetype2)
+-makedepends=(git autoconf-archive gperf python-lxml python-six docbook-utils docbook-sgml
++makedepends=(git autoconf-archive gperf python-lxml python-six
+ perl-sgmls 'texlive-formatsextra>=2017' lynx)
+ install=fontconfig.install
+ _commit=58f52853d5689e897525a5926c1a222340d3f404 # master
diff --git a/src/stage4/patches/ghostscript-breakdeps.patch b/src/stage4/patches/ghostscript-breakdeps.patch
new file mode 100644
index 0000000..f33b007
--- /dev/null
+++ b/src/stage4/patches/ghostscript-breakdeps.patch
@@ -0,0 +1,49 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-10 15:05:04.145387519 +0200
++++ b/PKGBUILD 2018-04-10 15:46:39.528151013 +0200
+@@ -9,9 +9,9 @@ pkgdesc="An interpreter for the PostScri
+ url="https://www.ghostscript.com/"
+ arch=('x86_64')
+ license=('AGPL3' 'custom')
+-depends=('libxt' 'libcups' 'fontconfig' 'zlib' 'libpng' 'libjpeg' 'jbig2dec'
+- 'libtiff' 'lcms2' 'dbus' 'libpaper' 'ijs' 'openjpeg2')
+-makedepends=('gtk3' 'gnutls' 'glu' 'freeglut')
++depends=('libxt' 'fontconfig' 'zlib' 'libpng' 'libjpeg' 'jbig2dec'
++ 'libtiff' 'lcms2' 'dbus' 'libpaper' 'openjpeg2')
++makedepends=('gnutls' 'glu' 'freeglut')
+ # https://github.com/ArtifexSoftware/ghostpdl-downloads/releases
+ source=(https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs${pkgver/./}/ghostpdl-${pkgver}.tar.xz)
+ sha512sums=('4c2f6c0f31138c780943c866067f95f5867c56ca54fc5cc5ae8394e682ae1e97c575529844b04a9664fd72510a86ecd23ba69feee19dadb5852c3c0cf7b7f917')
+@@ -20,7 +20,7 @@ prepare() {
+ cd ghostpdl-${pkgver}
+
+ # force it to use system-libs
+- rm -r cups/libs expat ijs jbig2dec jpeg lcms2art libpng openjpeg tiff zlib
++ rm -r expat jbig2dec jpeg lcms2art libpng openjpeg tiff zlib
+ # using tree freetype because of https://bugs.archlinux.org/task/56849
+ # lcms2art is the new lcms2 fork aimed to replace lcms2 in a thread safe way
+
+@@ -32,9 +32,9 @@ build() {
+
+ ./configure --prefix=/usr \
+ --enable-dynamic \
+- --with-ijs \
++ --without-ijs \
+ --with-jbig2dec \
+- --with-x \
++ --without-x \
+ --with-drivers=ALL \
+ --with-fontpath=/usr/share/fonts/gsfonts \
+ --enable-fontconfig \
+@@ -54,10 +54,7 @@ package_ghostscript() {
+
+ cd ghostpdl-${pkgver}
+
+- make DESTDIR="${pkgdir}" \
+- CUPSSERVERROOT="${pkgdir}$(cups-config --serverroot)" \
+- CUPSSERVERBIN="${pkgdir}$(cups-config --serverbin)" \
+- soinstall
++ make DESTDIR="${pkgdir}" soinstall
+ ln -s gsc "${pkgdir}"/usr/bin/gs
+
+ # install missing doc files # http://bugs.archlinux.org/task/18023
diff --git a/src/stage4/patches/glibmm.patch b/src/stage4/patches/glibmm.patch
new file mode 100644
index 0000000..8f619e2
--- /dev/null
+++ b/src/stage4/patches/glibmm.patch
@@ -0,0 +1,12 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-10 21:28:38.187206309 +0200
++++ b/PKGBUILD 2018-04-10 21:31:17.543191205 +0200
+@@ -11,7 +11,7 @@ url="http://www.gtkmm.org/"
+ arch=(x86_64)
+ license=(LGPL)
+ depends=(glib2 libsigc++)
+-makedepends=(git mm-common perl-xml-parser clang)
++makedepends=(git mm-common perl-xml-parser)
+ _commit=8236b0f457e6ede0511f5e197017baa31eb953b4 # tags/2.56.0^0
+ source=("git+https://git.gnome.org/browse/glibmm#commit=$_commit")
+ sha256sums=('SKIP')
diff --git a/src/stage4/patches/graphite-breakdeps.patch b/src/stage4/patches/graphite-breakdeps.patch
new file mode 100644
index 0000000..5504ca2
--- /dev/null
+++ b/src/stage4/patches/graphite-breakdeps.patch
@@ -0,0 +1,33 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-09 12:52:45.830328655 +0200
++++ b/PKGBUILD 2018-04-09 12:53:56.250321980 +0200
+@@ -10,9 +10,7 @@ url="https://github.com/silnrsi/graphite
+ pkgdesc='reimplementation of the SIL Graphite text processing engine'
+ license=('LGPL' 'GPL' 'custom')
+ depends=('gcc-libs')
+-makedepends=('cmake' 'freetype2' 'python2'
+- # for documentation
+- 'doxygen' 'dblatex' 'graphviz' 'asciidoc')
++makedepends=('cmake' 'freetype2' 'python2')
+ checkdepends=('python2-fonttools')
+ options=('!emptydirs')
+ source=(https://github.com/silnrsi/graphite/releases/download/${pkgver}/graphite2-${pkgver}.tgz)
+@@ -39,7 +37,6 @@ build() {
+ find . -type f ! -name "rules" ! -name "changelog" -exec sed -i -e 's/\-O3//g' {} \;
+
+ make
+- make -j1 docs
+ }
+
+ check() {
+@@ -52,10 +49,6 @@ check() {
+ package() {
+ cd "${srcdir}"/build
+ make DESTDIR="$pkgdir/" install
+- # install doc files
+- mkdir -p "${pkgdir}"/usr/share/doc/graphite2/api
+- cp -vrf doc/doxygen/{html,latex/refman.pdf} "${pkgdir}"/usr/share/doc/graphite2/api
+- cp -vrf doc/{GTF,manual}.html "${pkgdir}"/usr/share/doc/graphite2
+
+ # licenses
+ mkdir -p "${pkgdir}"/usr/share/licenses/${pkgname}
diff --git a/src/stage4/patches/graphite.patch b/src/stage4/patches/graphite.patch
new file mode 100644
index 0000000..ed33b0e
--- /dev/null
+++ b/src/stage4/patches/graphite.patch
@@ -0,0 +1,34 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-11 07:23:00.338826344 +0200
++++ b/PKGBUILD 2018-04-11 08:25:38.813470126 +0200
+@@ -1,6 +1,8 @@
+ # $Id$
+ # Maintainer: AndyRTR <andyrtr@archlinux.org>
+
++# FIXME: dblatex fails when building documentation
++
+ pkgname=graphite
+ pkgver=1.3.11
+ pkgrel=1
+@@ -39,7 +41,7 @@ build() {
+ find . -type f ! -name "rules" ! -name "changelog" -exec sed -i -e 's/\-O3//g' {} \;
+
+ make
+- make -j1 docs
++ #make -j1 docs
+ }
+
+ check() {
+@@ -53,9 +55,9 @@ package() {
+ cd "${srcdir}"/build
+ make DESTDIR="$pkgdir/" install
+ # install doc files
+- mkdir -p "${pkgdir}"/usr/share/doc/graphite2/api
+- cp -vrf doc/doxygen/{html,latex/refman.pdf} "${pkgdir}"/usr/share/doc/graphite2/api
+- cp -vrf doc/{GTF,manual}.html "${pkgdir}"/usr/share/doc/graphite2
++ #mkdir -p "${pkgdir}"/usr/share/doc/graphite2/api
++ #cp -vrf doc/doxygen/{html,latex/refman.pdf} "${pkgdir}"/usr/share/doc/graphite2/api
++ #cp -vrf doc/{GTF,manual}.html "${pkgdir}"/usr/share/doc/graphite2
+
+ # licenses
+ mkdir -p "${pkgdir}"/usr/share/licenses/${pkgname}
diff --git a/src/stage4/patches/graphviz-breakdeps.patch b/src/stage4/patches/graphviz-breakdeps.patch
new file mode 100644
index 0000000..eb56bb2
--- /dev/null
+++ b/src/stage4/patches/graphviz-breakdeps.patch
@@ -0,0 +1,24 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-10 16:12:42.814002849 +0200
++++ b/PKGBUILD 2018-04-10 17:01:16.056726739 +0200
+@@ -11,9 +11,8 @@ url='http://www.graphviz.org/'
+ license=('CPL')
+ arch=('x86_64')
+ depends=('libltdl' 'gd' 'librsvg' 'libxaw' 'ghostscript' 'pango' 'gts' 'gsfonts')
+-makedepends=('swig' 'mono' 'guile' 'lua' 'ocaml' 'perl' 'python2' 'r' 'tk' 'qt4' 'gtk2')
+-optdepends=('mono: sharp bindings'
+- 'guile: guile bindings'
++makedepends=('swig' 'guile' 'lua' 'ocaml' 'perl' 'python2' 'r' 'tk')
++optdepends=('guile: guile bindings'
+ 'lua: lua bindings'
+ 'ocaml: ocaml bindings'
+ 'perl: perl bindings'
+@@ -42,7 +41,7 @@ build() {
+ export PYTHON=python2
+ export LIBPOSTFIX=/
+
+- ./configure --prefix=/usr
++ ./configure --with-rsvg=no --prefix=/usr
+ make
+ }
+
diff --git a/src/stage4/patches/graphviz.patch b/src/stage4/patches/graphviz.patch
new file mode 100644
index 0000000..6478656
--- /dev/null
+++ b/src/stage4/patches/graphviz.patch
@@ -0,0 +1,15 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-10 16:06:17.697039349 +0200
++++ b/PKGBUILD 2018-04-10 16:07:11.543034246 +0200
+@@ -11,9 +11,8 @@ url='http://www.graphviz.org/'
+ license=('CPL')
+ arch=('x86_64')
+ depends=('libltdl' 'gd' 'librsvg' 'libxaw' 'ghostscript' 'pango' 'gts' 'gsfonts')
+-makedepends=('swig' 'mono' 'guile' 'lua' 'ocaml' 'perl' 'python2' 'r' 'tk' 'qt4' 'gtk2')
+-optdepends=('mono: sharp bindings'
+- 'guile: guile bindings'
++makedepends=('swig' 'guile' 'lua' 'ocaml' 'perl' 'python2' 'r' 'tk' 'qt4' 'gtk2')
++optdepends=('guile: guile bindings'
+ 'lua: lua bindings'
+ 'ocaml: ocaml bindings'
+ 'perl: perl bindings'
diff --git a/src/stage4/patches/gstreamer.patch b/src/stage4/patches/gstreamer.patch
index 727581f..c82fa6a 100644
--- a/src/stage4/patches/gstreamer.patch
+++ b/src/stage4/patches/gstreamer.patch
@@ -1,11 +1,51 @@
---- a/PKGBUILD 2018-04-04 01:43:36.102077757 +0200
-+++ b/PKGBUILD 2018-04-04 08:23:33.783803320 +0200
-@@ -10,7 +10,7 @@ url="https://gstreamer.freedesktop.org/"
+diff -rupN a/0001-gstreamer-riscv-alignment.patch b/0001-gstreamer-riscv-alignment.patch
+--- a/0001-gstreamer-riscv-alignment.patch 1970-01-01 01:00:00.000000000 +0100
++++ b/0001-gstreamer-riscv-alignment.patch 2018-04-11 08:32:21.811431931 +0200
+@@ -0,0 +1,13 @@
++diff --git a/gst/gstconfig.h.in b/gst/gstconfig.h.in
++index 6351c04da..33dfed1f6 100644
++--- a/gst/gstconfig.h.in
+++++ b/gst/gstconfig.h.in
++@@ -104,7 +104,7 @@
++ * http://docs.oracle.com/cd/E19205-01/820-4155/c++_faq.html#Vers6
++ * https://software.intel.com/en-us/node/583402
++ */
++-#if defined(__alpha__) || defined(__arc__) || defined(__arm__) || defined(__aarch64__) || defined(__bfin) || defined(__hppa__) || defined(__nios2__) || defined(__MICROBLAZE__) || defined(__mips__) || defined(__or1k__) || defined(__sh__) || defined(__SH4__) || defined(__sparc__) || defined(__sparc) || defined(__ia64__) || defined(_M_ALPHA) || defined(_M_ARM) || defined(_M_IA64) || defined(__xtensa__) || defined(__e2k__)
+++#if defined(__alpha__) || defined(__arc__) || defined(__arm__) || defined(__aarch64__) || defined(__bfin) || defined(__hppa__) || defined(__nios2__) || defined(__MICROBLAZE__) || defined(__mips__) || defined(__or1k__) || defined(__sh__) || defined(__SH4__) || defined(__sparc__) || defined(__sparc) || defined(__ia64__) || defined(_M_ALPHA) || defined(_M_ARM) || defined(_M_IA64) || defined(__xtensa__) || defined(__e2k__) || defined(__riscv)
++ # define GST_HAVE_UNALIGNED_ACCESS 0
++ #elif defined(__i386__) || defined(__i386) || defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc__) || defined(__powerpc64__) || defined(__m68k__) || defined(_M_IX86) || defined(_M_AMD64) || defined(_M_X64) || defined(__s390__) || defined(__s390x__) || defined(__zarch__)
++ # define GST_HAVE_UNALIGNED_ACCESS 1
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-11 06:50:38.438010392 +0200
++++ b/PKGBUILD 2018-04-11 08:32:21.806431931 +0200
+@@ -9,15 +9,17 @@ pkgdesc="GStreamer open-source multimedi
+ url="https://gstreamer.freedesktop.org/"
arch=(x86_64)
license=(LGPL)
- depends=(libxml2 glib2 libunwind libcap libelf)
+-depends=(libxml2 glib2 libunwind libcap libelf)
-makedepends=(gtk-doc gobject-introspection autoconf-archive git valgrind bash-completion)
++depends=(libxml2 glib2 libcap libelf)
+makedepends=(gtk-doc gobject-introspection autoconf-archive git bash-completion)
checkdepends=(gmp gsl gtk3)
_commit=80e0e90d00bb358ca9dc071cf6de010ec5ae2644 # tags/1.14.0^0
install=gstreamer.install
+ source=("git+https://anongit.freedesktop.org/git/gstreamer/gstreamer#commit=$_commit"
+- "gst-common::git+https://anongit.freedesktop.org/git/gstreamer/common")
++ "gst-common::git+https://anongit.freedesktop.org/git/gstreamer/common"
++ "0001-gstreamer-riscv-alignment.patch")
+ sha256sums=('SKIP'
+- 'SKIP')
++ 'SKIP'
++ '2161a3e1cd47c351da5c6a1718533309e4b01c3d0347c43f86b7fb21c327065a')
+
+ pkgver() {
+ cd $pkgname
+@@ -31,6 +33,8 @@ prepare() {
+ git config --local submodule.common.url "$srcdir/gst-common"
+ git submodule update
+
++ patch -Np1 -i ../0001-gstreamer-riscv-alignment.patch
++
+ NOCONFIGURE=1 ./autogen.sh
+ }
+
diff --git a/src/stage4/patches/gtk3-breakdeps.patch b/src/stage4/patches/gtk3-breakdeps.patch
new file mode 100644
index 0000000..ceb2310
--- /dev/null
+++ b/src/stage4/patches/gtk3-breakdeps.patch
@@ -0,0 +1,12 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-04 18:13:29.798448579 +0200
++++ b/PKGBUILD 2018-04-09 13:32:46.976101080 +0200
+@@ -11,7 +11,7 @@ arch=(x86_64)
+ url="http://www.gtk.org/"
+ depends=(atk cairo libxcursor libxinerama libxrandr libxi libepoxy gdk-pixbuf2 dconf
+ libxcomposite libxdamage pango shared-mime-info at-spi2-atk wayland libxkbcommon
+- adwaita-icon-theme json-glib librsvg wayland-protocols desktop-file-utils mesa
++ json-glib librsvg wayland-protocols desktop-file-utils mesa
+ cantarell-fonts colord rest libcups libcanberra)
+ makedepends=(gobject-introspection gtk-doc git glib2-docs sassc)
+ license=(LGPL)
diff --git a/src/stage4/patches/harfbuzz-breakdeps.patch b/src/stage4/patches/harfbuzz-breakdeps.patch
new file mode 100644
index 0000000..41d0fe7
--- /dev/null
+++ b/src/stage4/patches/harfbuzz-breakdeps.patch
@@ -0,0 +1,29 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-04 18:00:26.031522863 +0200
++++ b/PKGBUILD 2018-04-09 12:49:37.357346517 +0200
+@@ -9,7 +9,7 @@ pkgdesc="OpenType text shaping engine"
+ url="http://www.freedesktop.org/wiki/Software/HarfBuzz"
+ arch=(x86_64)
+ license=(MIT)
+-makedepends=(glib2 freetype2 graphite cairo icu gobject-introspection gtk-doc ragel git
++makedepends=(glib2 freetype2 cairo icu gobject-introspection gtk-doc ragel git
+ python)
+ _commit=ff2f81432bb0484a019a678058595e10217df51d # tags/1.7.6^0
+ source=("git+https://anongit.freedesktop.org/git/harfbuzz#commit=$_commit")
+@@ -33,7 +33,6 @@ build() {
+ --with-freetype \
+ --with-glib \
+ --with-gobject \
+- --with-graphite2 \
+ --with-icu \
+ --enable-gtk-doc
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+@@ -46,7 +45,7 @@ check() {
+ }
+
+ package_harfbuzz() {
+- depends=(glib2 freetype2 graphite)
++ depends=(glib2 freetype2)
+ optdepends=('cairo: hb-view program')
+
+ cd $pkgbase
diff --git a/src/stage4/patches/libcanberra-breakdeps.patch b/src/stage4/patches/libcanberra-breakdeps.patch
new file mode 100644
index 0000000..5ba58b0
--- /dev/null
+++ b/src/stage4/patches/libcanberra-breakdeps.patch
@@ -0,0 +1,23 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-11 09:12:41.904202561 +0200
++++ b/PKGBUILD 2018-04-11 09:20:49.039156391 +0200
+@@ -9,7 +9,7 @@ pkgdesc="A small and lightweight impleme
+ arch=(i686 x86_64)
+ license=(LGPL)
+ depends=(libvorbis libltdl alsa-lib tdb sound-theme-freedesktop)
+-makedepends=(gtk-doc libpulse gstreamer gtk2 gtk3 git)
++makedepends=(gtk-doc libpulse gstreamer git)
+ options=(!emptydirs libtool)
+ url="http://0pointer.de/lennart/projects/libcanberra"
+ _commit=c0620e432650e81062c1967cc669829dbd29b310 # master
+@@ -47,8 +47,8 @@ package_libcanberra() {
+ cd $pkgbase
+
+ make -j1 DESTDIR="$pkgdir" install
+- rm "$pkgdir"/usr/lib/libcanberra-gtk*.la
+- rm "$pkgdir"/usr/lib/gtk-{2,3}.0/modules/*.la
++ rm -f "$pkgdir"/usr/lib/libcanberra-gtk*.la
++ rm -f "$pkgdir"/usr/lib/gtk-{2,3}.0/modules/*.la
+
+ install -D "$srcdir/libcanberra.xinit" \
+ "$pkgdir/etc/X11/xinit/xinitrc.d/40-libcanberra-gtk-module.sh"
diff --git a/src/stage4/patches/libffado-breakdeps.patch b/src/stage4/patches/libffado-breakdeps.patch
new file mode 100644
index 0000000..6735a11
--- /dev/null
+++ b/src/stage4/patches/libffado-breakdeps.patch
@@ -0,0 +1,15 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-04 18:25:29.192380397 +0200
++++ b/PKGBUILD 2018-04-09 13:53:12.169984960 +0200
+@@ -11,9 +11,8 @@ pkgdesc="Driver for FireWire audio devic
+ arch=('x86_64')
+ url="http://www.ffado.org/"
+ license=('GPL')
+-depends=('dbus-c++' 'jack' 'libavc1394' 'libconfig' 'libiec61883' 'libxml++' 'python-dbus')
+-makedepends=('python-pyqt5' 'python-dbus' 'scons')
+-optdepends=('python-pyqt5: ffado-mixer')
++depends=('dbus-c++' 'libavc1394' 'libconfig' 'libiec61883' 'libxml++' 'python-dbus')
++makedepends=('python-dbus' 'scons')
+ provides=('ffado')
+ source=("http://www.ffado.org/files/${pkgname}-${pkgver}.tgz"
+ "${pkgname}-fix-python3-pyqt5.diff"
diff --git a/src/stage4/patches/libglvnd-breakdeps.patch b/src/stage4/patches/libglvnd-breakdeps.patch
new file mode 100644
index 0000000..486de8f
--- /dev/null
+++ b/src/stage4/patches/libglvnd-breakdeps.patch
@@ -0,0 +1,12 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-07 19:21:51.070493581 +0200
++++ b/PKGBUILD 2018-04-07 19:21:51.071493581 +0200
+@@ -24,7 +24,7 @@ build() {
+
+ package() {
+ # libglvnd needs mesa for indirect rendering
+- depends=('libxext' 'mesa' 'opengl-driver')
++ depends=('libxext')
+
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
diff --git a/src/stage4/patches/libimobiledevice-breakdeps.patch b/src/stage4/patches/libimobiledevice-breakdeps.patch
new file mode 100644
index 0000000..e62be5e
--- /dev/null
+++ b/src/stage4/patches/libimobiledevice-breakdeps.patch
@@ -0,0 +1,12 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-07 19:07:55.181572805 +0200
++++ b/PKGBUILD 2018-04-07 19:07:55.182572805 +0200
+@@ -10,7 +10,7 @@ pkgdesc="Library that talks the protocol
+ url="http://libimobiledevice.org/"
+ arch=('i686' 'x86_64')
+ license=('GPL2' 'LGPL2.1')
+-depends=('libusbmuxd' 'usbmuxd' 'gnutls')
++depends=('libusbmuxd' 'gnutls')
+ makedepends=('python2' 'cython2' 'python' 'cython' 'libplist' 'autoconf-archive' git python2-setuptools python-setuptools)
+ _commit=5a85432719fb3d18027d528f87d2a44b76fd3e12 # master
+ source=("git+https://github.com/libimobiledevice/libimobiledevice/#commit=$_commit")
diff --git a/src/stage4/patches/libproxy-breakdeps.patch b/src/stage4/patches/libproxy-breakdeps.patch
new file mode 100644
index 0000000..a236d6f
--- /dev/null
+++ b/src/stage4/patches/libproxy-breakdeps.patch
@@ -0,0 +1,21 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-07 21:43:46.276686533 +0200
++++ b/PKGBUILD 2018-04-07 21:43:46.276686533 +0200
+@@ -14,7 +14,7 @@ optdepends=('networkmanager: NetworkMana
+ 'python: Python 3.x bindings'
+ 'glib2: gsettings configuration module'
+ 'webkit2gtk: PAC proxy support (Webkit2gtk engine)')
+-makedepends=('cmake' 'networkmanager' 'python' 'python2' 'perl' 'webkit2gtk')
++makedepends=('cmake' 'networkmanager' 'python' 'python2' 'perl')
+ url="http://libproxy.github.io/libproxy/"
+ source=(https://github.com/libproxy/libproxy/archive/${pkgver}.tar.gz)
+ sha256sums=('18f58b0a0043b6881774187427ead158d310127fc46a1c668ad6d207fb28b4e0')
+@@ -33,7 +33,7 @@ build() {
+ -DCMAKE_SKIP_RPATH=ON \
+ -DPERL_VENDORINSTALL=yes \
+ -DCMAKE_BUILD_TYPE=Release \
+- -DWITH_WEBKIT3=ON \
++ -DWITH_WEBKIT3=OFF \
+ -DWITH_MOZJS=OFF \
+ -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
+ -DCMAKE_C_FLAGS="${CFLAGS}" \
diff --git a/src/stage4/patches/librsvg-breakdeps.patch b/src/stage4/patches/librsvg-breakdeps.patch
new file mode 100644
index 0000000..4c75214
--- /dev/null
+++ b/src/stage4/patches/librsvg-breakdeps.patch
@@ -0,0 +1,54 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-10 14:06:09.643722509 +0200
++++ b/PKGBUILD 2018-04-10 14:06:54.477718260 +0200
+@@ -2,7 +2,7 @@
+ # Maintainer: Jan de Groot <jgc@archlinux.org>
+
+ pkgname=librsvg
+-pkgver=2.42.3
++pkgver=2.40.20
+ pkgrel=1
+ epoch=2
+ pkgdesc="SVG rendering library"
+@@ -10,34 +10,24 @@ url="https://wiki.gnome.org/Projects/Lib
+ arch=(x86_64)
+ license=(LGPL)
+ depends=(gdk-pixbuf2 pango libcroco)
+-makedepends=(intltool gobject-introspection vala python2 gtk-doc git rust)
++makedepends=(intltool gobject-introspection python2 gtk-doc git)
+ _commit=ca640d1185745665c61689b71c627e1d020a80b7 # tags/2.42.3^0
+-source=("git+https://gitlab.gnome.org/GNOME/librsvg.git#commit=$_commit")
+-sha256sums=('SKIP')
+-
+-pkgver() {
+- cd $pkgname
+- git describe --tags | sed 's/-/+/g'
+-}
+-
+-prepare() {
+- cd $pkgname
+- NOCONFIGURE=1 ./autogen.sh
+-}
++source=(https://ftp.gnome.org/pub/GNOME/sources/librsvg/${pkgver%.*}/librsvg-$pkgver.tar.xz)
++sha256sums=('cff4dd3c3b78bfe99d8fcfad3b8ba1eee3289a0823c0e118d78106be6b84c92b')
+
+ build() {
+- cd $pkgname
+- ./configure --prefix=/usr --disable-static --enable-vala --enable-gtk-doc
++ cd $pkgname-$pkgver
++ ./configure --prefix=/usr --disable-static --disable-vala --enable-gtk-doc
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0 /g' libtool
+ make
+ }
+
+ check() {
+- cd $pkgname
++ cd $pkgname-$pkgver
+ make check
+ }
+
+ package() {
+- cd $pkgname
++ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+ }
diff --git a/src/stage4/patches/librsvg.patch b/src/stage4/patches/librsvg.patch
new file mode 100644
index 0000000..03265e2
--- /dev/null
+++ b/src/stage4/patches/librsvg.patch
@@ -0,0 +1,53 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-10 13:28:52.668934524 +0200
++++ b/PKGBUILD 2018-04-10 13:28:52.669934524 +0200
+@@ -2,7 +2,7 @@
+ # Maintainer: Jan de Groot <jgc@archlinux.org>
+
+ pkgname=librsvg
+-pkgver=2.42.3
++pkgver=2.40.20
+ pkgrel=1
+ epoch=2
+ pkgdesc="SVG rendering library"
+@@ -10,34 +10,24 @@ url="https://wiki.gnome.org/Projects/Lib
+ arch=(x86_64)
+ license=(LGPL)
+ depends=(gdk-pixbuf2 pango libcroco)
+-makedepends=(intltool gobject-introspection vala python2 gtk-doc git rust)
++makedepends=(intltool gobject-introspection vala python2 gtk-doc git)
+ _commit=ca640d1185745665c61689b71c627e1d020a80b7 # tags/2.42.3^0
+-source=("git+https://gitlab.gnome.org/GNOME/librsvg.git#commit=$_commit")
+-sha256sums=('SKIP')
+-
+-pkgver() {
+- cd $pkgname
+- git describe --tags | sed 's/-/+/g'
+-}
+-
+-prepare() {
+- cd $pkgname
+- NOCONFIGURE=1 ./autogen.sh
+-}
++source=(https://ftp.gnome.org/pub/GNOME/sources/librsvg/${pkgver%.*}/librsvg-$pkgver.tar.xz)
++sha256sums=('cff4dd3c3b78bfe99d8fcfad3b8ba1eee3289a0823c0e118d78106be6b84c92b')
+
+ build() {
+- cd $pkgname
++ cd $pkgname-$pkgver
+ ./configure --prefix=/usr --disable-static --enable-vala --enable-gtk-doc
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0 /g' libtool
+ make
+ }
+
+ check() {
+- cd $pkgname
++ cd $pkgname-$pkgver
+ make check
+ }
+
+ package() {
+- cd $pkgname
++ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+ }
diff --git a/src/stage4/patches/libsigc++-breakdeps.patch b/src/stage4/patches/libsigc++-breakdeps.patch
new file mode 100644
index 0000000..24635df
--- /dev/null
+++ b/src/stage4/patches/libsigc++-breakdeps.patch
@@ -0,0 +1,56 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-10 18:33:56.884199699 +0200
++++ b/PKGBUILD 2018-04-10 18:48:25.109117411 +0200
+@@ -3,13 +3,13 @@
+ # Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+ pkgbase=libsigc++
+-pkgname=('libsigc++' 'libsigc++-docs')
++pkgname=('libsigc++-docs')
+ pkgver=2.10.0
+ pkgrel=1
+ arch=('i686' 'x86_64')
+ license=('LGPL')
+ url="http://libsigc.sourceforge.net/"
+-makedepends=('gcc-libs' 'git' 'mm-common' 'doxygen' 'libxslt' 'graphviz')
++makedepends=('gcc-libs' 'git' 'doxygen' 'libxslt' 'graphviz')
+ options=('!emptydirs')
+ _commit=83f1e2fe7855f85af570b9653903d2c426d67e72
+ source=("git://git.gnome.org/libsigcplusplus#commit=$_commit")
+@@ -20,35 +20,11 @@ pkgver() {
+ git describe --tags | sed 's/-/+/g'
+ }
+
+-prepare() {
+- cd libsigcplusplus
+- NOCONFIGURE=1 ./autogen.sh
+-}
+-
+-build() {
+- cd libsigcplusplus
+- ./configure --prefix=/usr
+- make
+-}
+-
+-package_libsigc++ () {
+- pkgdesc="Libsigc++ implements a full callback system for use in widget libraries - V2"
+- depends=('gcc-libs')
+- provides=("libsigc++2.0=${pkgver}")
+- replaces=('libsigc++2.0')
+- conflicts=('libsigc++2.0')
+-
+- cd libsigcplusplus
+- sed -i -e 's/^doc_subdirs/#doc_subdirs/' Makefile
+- make DESTDIR="${pkgdir}" install
+-}
+-
+ package_libsigc++-docs() {
+ pkgdesc="Developer documentation for libsigc++"
+ provides=("libsigc++2.0-docs=${pkgver}")
+ replaces=('libsigc++2.0-docs')
+ conflicts=('libsigc++2.0-docs')
+
+- cd libsigcplusplus/docs
+- make DESTDIR="${pkgdir}" install
++ true
+ }
diff --git a/src/stage4/patches/libsndfile.patch b/src/stage4/patches/libsndfile.patch
new file mode 100644
index 0000000..3befd7a
--- /dev/null
+++ b/src/stage4/patches/libsndfile.patch
@@ -0,0 +1,20 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-10 19:24:11.734913959 +0200
++++ b/PKGBUILD 2018-04-10 19:31:03.617874922 +0200
+@@ -9,7 +9,7 @@ arch=('i686' 'x86_64')
+ url="http://www.mega-nerd.com/libsndfile"
+ license=('LGPL')
+ depends=('alsa-lib' 'flac' 'libvorbis')
+-checkdepends=('python2')
++makedepends=('python2')
+ source=(http://www.mega-nerd.com/libsndfile/files/${pkgname}-${pkgver}.tar.gz)
+ sha1sums=('85aa967e19f6b9bf975601d79669025e5f8bc77d')
+ validpgpkeys=('73571E85C19F4281D8C97AA86CA41A7743B8D6C8')
+@@ -23,6 +23,7 @@ prepare() {
+
+ build() {
+ cd ${pkgname}-${pkgver}
++ autoreconf --install
+ ./configure --prefix=/usr --disable-sqlite
+ make
+ }
diff --git a/src/stage4/patches/libsodium-breakdeps.patch b/src/stage4/patches/libsodium-breakdeps.patch
new file mode 100644
index 0000000..18a03fd
--- /dev/null
+++ b/src/stage4/patches/libsodium-breakdeps.patch
@@ -0,0 +1,20 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-08 10:05:44.521467211 +0200
++++ b/PKGBUILD 2018-04-08 10:05:44.522467211 +0200
+@@ -11,16 +11,11 @@ arch=('x86_64')
+ url="https://github.com/jedisct1/libsodium"
+ license=('custom:ISC')
+ depends=('glibc')
+-makedepends=('minisign')
+ source=("https://download.libsodium.org/libsodium/releases/libsodium-$pkgver.tar.gz"{,.minisig})
+ sha512sums=('eab917d599c9c1fe971a6ecf915b9a6476ccec2d46cf23cbfbf06dd3833089b422f192de4d55f17b93362f1251ba8d5ddeb95ced1a422a3a2631b4b82553907f'
+ '5facb6be0c4e8d390f685a1fce506a46e2768e7eae02b3b67ce7a168c6fbcd16c24d8a52fdbf330209bf9598ab8e4043c55a839795a17062b6f7e892d7a68bd6')
+ _validminisignkey='RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3'
+
+-prepare() {
+- minisign -Vm $pkgname-$pkgver.tar.gz -P $_validminisignkey
+-}
+-
+ build() {
+ cd "$pkgname-$pkgver"
+
diff --git a/src/stage4/patches/libva-breakdeps.patch b/src/stage4/patches/libva-breakdeps.patch
new file mode 100644
index 0000000..e8624da
--- /dev/null
+++ b/src/stage4/patches/libva-breakdeps.patch
@@ -0,0 +1,11 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-07 19:17:07.815520427 +0200
++++ b/PKGBUILD 2018-04-07 19:17:07.816520427 +0200
+@@ -11,7 +11,6 @@ arch=('x86_64')
+ url='https://01.org/linuxmedia/vaapi'
+ license=('MIT')
+ depends=('glibc' 'libdrm' 'libgl' 'libx11' 'libxext' 'libxfixes' 'wayland')
+-makedepends=('mesa')
+ optdepends=('libva-vdpau-driver: backend for Nvidia and AMD cards'
+ 'libva-intel-driver: backend for Intel cards')
+ provides=('libva-drm.so' 'libva-glx.so' 'libva-wayland.so' 'libva-x11.so' 'libva.so')
diff --git a/src/stage4/patches/libxft.patch b/src/stage4/patches/libxft.patch
new file mode 100644
index 0000000..1031e35
--- /dev/null
+++ b/src/stage4/patches/libxft.patch
@@ -0,0 +1,12 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-07 08:15:47.675281206 +0200
++++ b/PKGBUILD 2018-04-07 08:15:47.676281206 +0200
+@@ -14,7 +14,7 @@ makedepends=('pkgconfig')
+ source=(${url}/releases/individual/lib/libXft-${pkgver}.tar.bz2{,.sig})
+ sha256sums=('f5a3c824761df351ca91827ac221090943ef28b248573486050de89f4bfcdc4c'
+ 'SKIP')
+-valigpgpkyes=('4A193C06D35E7C670FA4EF0BA2FB9E081F2D130E') # "Alan Coopersmith <alan.coopersmith@oracle.com>"
++validpgpkeys=('4A193C06D35E7C670FA4EF0BA2FB9E081F2D130E') # "Alan Coopersmith <alan.coopersmith@oracle.com>"
+
+ build() {
+ cd "${srcdir}/libXft-${pkgver}"
diff --git a/src/stage4/patches/llvm.patch b/src/stage4/patches/llvm.patch
new file mode 100644
index 0000000..d94bd6f
--- /dev/null
+++ b/src/stage4/patches/llvm.patch
@@ -0,0 +1,99 @@
+diff -rupN a/llvm-riscv.patch b/llvm-riscv.patch
+--- a/llvm-riscv.patch 1970-01-01 01:00:00.000000000 +0100
++++ b/llvm-riscv.patch 2018-04-08 15:41:31.296557753 +0200
+@@ -0,0 +1,15 @@
++diff --git a/cmake/config-ix.cmake b/cmake/config-ix.cmake
++index 46b7ffc..5ef1cf4 100644
++--- a/cmake/config-ix.cmake
+++++ b/cmake/config-ix.cmake
++@@ -443,6 +443,10 @@ elseif (LLVM_NATIVE_ARCH MATCHES "wasm32")
++ set(LLVM_NATIVE_ARCH WebAssembly)
++ elseif (LLVM_NATIVE_ARCH MATCHES "wasm64")
++ set(LLVM_NATIVE_ARCH WebAssembly)
+++elseif (LLVM_NATIVE_ARCH MATCHES "riscv32")
+++ set(LLVM_NATIVE_ARCH RISCV)
+++elseif (LLVM_NATIVE_ARCH MATCHES "riscv64")
+++ set(LLVM_NATIVE_ARCH RISCV)
++ else ()
++ message(FATAL_ERROR "Unknown architecture ${LLVM_NATIVE_ARCH}")
++ endif ()
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-09 16:54:36.797953343 +0200
++++ b/PKGBUILD 2018-04-09 16:54:36.798953343 +0200
+@@ -18,7 +18,8 @@ source=(https://releases.llvm.org/$pkgve
+ PR36417-fixup-for-rL326769-RegState-Debug-is-being-truncated.patch
+ D44391-export-LLVM_DYLIB_COMPONENTS-in-LLVMConfig.cmake.patch
+ D44420-cmake-fix-a-typo-in-llvm_config-macro.patch
+- llvm-config.h)
++ llvm-config.h
++ llvm-riscv.patch)
+ sha256sums=('1ff53c915b4e761ef400b803f07261ade637b0c269d99569f18040f3dcee4408'
+ 'SKIP'
+ '7d0082d1c641873c1d45c2f076b9533fbc43002d605336afa92198b8830a5bcb'
+@@ -26,7 +27,8 @@ sha256sums=('1ff53c915b4e761ef400b803f07
+ 'da80b59c9abe9fe864ff8dc42132c5aa135a79d342fd147ae6f54e2621e009fa'
+ '96e2f3ca8b7d1bdbe2606a1eebb12c57b39838d1bcc15e40388e8d59649a9f4a'
+ '5cc114fd711e6ea836a6270b2f713e2e751c49e8b5ffa6c6812127ca801acef3'
+- '597dc5968c695bbdbb0eac9e8eb5117fcd2773bc91edf5ec103ecffffab8bc48')
++ '597dc5968c695bbdbb0eac9e8eb5117fcd2773bc91edf5ec103ecffffab8bc48'
++ '467d2aa8b53bc20482134d909b4a00c0bd9f88011421aad3eed34ba772b9cd28')
+ validpgpkeys+=('B6C8F98282B944E3B0D5C2530FC3042E345AD05D') # Hans Wennborg <hans@chromium.org>
+ validpgpkeys+=('11E521D646982372EB577A1F8F0871F202119294') # Tom Stellard <tom@stellard.net>
+
+@@ -46,28 +48,45 @@ prepare() {
+
+ # https://reviews.llvm.org/D44420
+ patch -Np0 -i ../D44420-cmake-fix-a-typo-in-llvm_config-macro.patch
++
++ patch -Np1 -i ../llvm-riscv.patch
+ }
+
+ build() {
+ cd "$srcdir/llvm-$pkgver.src/build"
+
+ cmake .. -G Ninja \
++ -DBUILD_SHARED_LIBS:BOOL=OFF \
++ -DLLVM_BUILD_RUNTIME:BOOL=ON \
++ -DLLVM_BUILD_EXTERNAL_COMPILER_RT:BOOL=ON \
++ -DLLVM_INSTALL_TOOLCHAIN_ONLY:BOOL=OFF \
+ -DCMAKE_BUILD_TYPE=Release \
++ -DLLVM_TARGETS_TO_BUILD="X86;AMDGPU;PowerPC;NVPTX;SystemZ;AArch64;ARM;Mips;BPF" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+- -DLLVM_HOST_TRIPLE=$CHOST \
+- -DLLVM_BUILD_LLVM_DYLIB=ON \
+- -DLLVM_LINK_LLVM_DYLIB=ON \
+- -DLLVM_INSTALL_UTILS=ON \
+- -DLLVM_ENABLE_RTTI=ON \
+- -DLLVM_ENABLE_FFI=ON \
+- -DLLVM_BUILD_TESTS=ON \
+- -DLLVM_BUILD_DOCS=ON \
+- -DLLVM_ENABLE_SPHINX=ON \
+- -DLLVM_ENABLE_DOXYGEN=OFF \
++ -DLLVM_BUILD_LLVM_DYLIB:BOOL=ON \
++ -DLLVM_DYLIB_EXPORT_ALL:BOOL=ON \
++ -DLLVM_LINK_LLVM_DYLIB:BOOL=ON \
++ -DLLVM_INCLUDE_UTILS:BOOL=ON \
++ -DLLVM_INSTALL_UTILS:BOOL=ON \
++ -DLLVM_ENABLE_LIBCXX:BOOL=OFF \
++ -DLLVM_ENABLE_ZLIB:BOOL=ON \
++ -DLLVM_ENABLE_RTTI:BOOL=ON \
++ -DLLVM_ENABLE_FFI:BOOL=ON \
++ -DLLVM_INCLUDE_TOOLS:BOOL=ON \
++ -DLLVM_BUILD_TOOLS:BOOL=ON \
++ -DLLVM_INCLUDE_EXAMPLES:BOOL=ON \
++ -DLLVM_BUILD_EXAMPLES:BOOL=OFF \
++ -DLLVM_INCLUDE_TESTS:BOOL=ON \
++ -DLLVM_BUILD_TESTS:BOOL=ON \
++ -DLLVM_INCLUDE_DOCS:BOOL=ON \
++ -DLLVM_BUILD_DOCS:BOOL=ON \
++ -DLLVM_ENABLE_SPHINX:BOOL=ON \
++ -DLLVM_ENABLE_DOXYGEN:BOOL=OFF \
+ -DSPHINX_WARNINGS_AS_ERRORS=OFF \
+ -DFFI_INCLUDE_DIR=$(pkg-config --variable=includedir libffi) \
+ -DLLVM_BINUTILS_INCDIR=/usr/include
+- ninja all ocaml_doc
++ sed -i 's/-lpthread/& -latomic/g' build.ninja
++ ninja -v all ocaml_doc
+ }
+
+ check() {
diff --git a/src/stage4/patches/lm_sensors-breakdeps.patch b/src/stage4/patches/lm_sensors-breakdeps.patch
new file mode 100644
index 0000000..a09db10
--- /dev/null
+++ b/src/stage4/patches/lm_sensors-breakdeps.patch
@@ -0,0 +1,21 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-09 10:12:50.971238030 +0200
++++ b/PKGBUILD 2018-04-09 10:12:50.972238030 +0200
+@@ -9,8 +9,6 @@ arch=('i686' 'x86_64')
+ url="http://www.lm-sensors.org/"
+ license=('GPL' 'LGPL')
+ depends=('perl' 'sysfsutils')
+-makedepends=('rrdtool')
+-optdepends=('rrdtool: for logging with sensord')
+ backup=('etc/sensors3.conf' 'etc/healthd.conf' 'etc/conf.d/sensord')
+ source=($pkgname-$pkgver::https://github.com/groeck/lm-sensors/archive/V${pkgver//\./-}.tar.gz
+ healthd healthd.conf healthd.service sensord.conf
+@@ -37,7 +35,7 @@ build() {
+
+ package() {
+ cd ${pkgname/_/-}-${pkgver//\./-}
+- make PROG_EXTRA=sensord BUILD_STATIC_LIB=0 \
++ make BUILD_STATIC_LIB=0 \
+ PREFIX=/usr SBINDIR=/usr/bin MANDIR=/usr/share/man DESTDIR="${pkgdir}" install
+
+ install -D -m755 "${srcdir}/healthd" "${pkgdir}/usr/bin/healthd"
diff --git a/src/stage4/patches/mesa.patch b/src/stage4/patches/mesa.patch
new file mode 100644
index 0000000..8e6cd33
--- /dev/null
+++ b/src/stage4/patches/mesa.patch
@@ -0,0 +1,49 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-10 10:23:30.086988693 +0200
++++ b/PKGBUILD 2018-04-10 10:23:30.087988693 +0200
+@@ -9,7 +9,7 @@ pkgrel=1.parabola1
+ arch=('i686' 'x86_64' 'armv7h')
+ makedepends=('python2-mako' 'libxml2' 'libx11' 'glproto' 'libdrm' 'dri2proto' 'dri3proto' 'presentproto'
+ 'libxshmfence' 'libxxf86vm' 'libxdamage' 'libvdpau' 'libva' 'wayland' 'wayland-protocols'
+- 'elfutils' 'llvm' 'libomxil-bellagio' 'clang' 'libglvnd' 'lm_sensors')
++ 'elfutils' 'llvm' 'libomxil-bellagio' 'libglvnd' 'lm_sensors')
+ makedepends_x86_64=('libclc' 'libunwind')
+ makedepends_i686=("${makedepends_x86_64[@]}")
+ url="https://www.mesa3d.org/"
+@@ -57,6 +57,14 @@ build() {
+ VDPAU_AND_XA=
+ OPENCL=
+ ;;
++ riscv64)
++ GALLIUM=r300,r600,radeonsi,nouveau,swrast,virgl
++ DRI=r200,radeon,nouveau,swrast
++ VULKAN=
++ LIBUNWIND=
++ VDPAU_AND_XA='--enable-vdpau'
++ OPENCL=
++ ;;
+ esac
+
+ ./configure --prefix=/usr \
+@@ -85,8 +93,7 @@ build() {
+ $VDPAU_AND_XA \
+ --enable-omx-bellagio \
+ --enable-nine \
+- $OPENCL \
+- --with-clang-libdir=/usr/lib
++ $OPENCL
+
+ make
+
+@@ -125,11 +132,6 @@ package_mesa() {
+ cp -rv ${srcdir}/fakeinstall/usr/lib/libOSMesa.so* ${pkgdir}/usr/lib/
+ cp -rv ${srcdir}/fakeinstall/usr/lib/libwayland*.so* ${pkgdir}/usr/lib/
+
+- if [ "$CARCH" != "armv7h" ]; then
+- cp -rv ${srcdir}/fakeinstall/usr/lib/libxatracker.so* ${pkgdir}/usr/lib/
+- cp -rv ${srcdir}/fakeinstall/usr/lib/libswrAVX*.so* ${pkgdir}/usr/lib/
+- fi
+-
+ cp -rv ${srcdir}/fakeinstall/usr/include ${pkgdir}/usr
+ cp -rv ${srcdir}/fakeinstall/usr/lib/pkgconfig ${pkgdir}/usr/lib/
+
diff --git a/src/stage4/patches/ocaml.patch b/src/stage4/patches/ocaml.patch
new file mode 100644
index 0000000..e050b64
--- /dev/null
+++ b/src/stage4/patches/ocaml.patch
@@ -0,0 +1,38 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-08 09:59:52.831500543 +0200
++++ b/PKGBUILD 2018-04-08 09:59:52.831500543 +0200
+@@ -10,20 +10,20 @@ arch=('x86_64')
+ license=('LGPL2.1' 'custom: QPL-1.0')
+ url="http://caml.inria.fr/"
+ depends=('gdbm')
+-makedepends=('tk>=8.6.0' 'ncurses>=5.6-7' 'libx11')
++makedepends=('tk>=8.6.0' 'ncurses>=5.6-7' 'libx11' 'git')
+ optdepends=('ncurses: advanced ncurses features' 'tk: advanced tk features')
+-source=(http://caml.inria.fr/distrib/ocaml-${pkgver%.*}/${pkgname}-${pkgver}.tar.xz)
+-sha1sums=('831fab643feb0f78bd206f0a9a09a92df58838e7')
++source=("git+https://github.com/nojb/riscv-ocaml.git#branch=4.06")
++sha1sums=('SKIP')
+ options=('!makeflags' '!emptydirs' 'staticlibs')
+
+ build() {
+- cd "${srcdir}/${pkgname}-${pkgver}"
++ cd "${srcdir}/riscv-${pkgbase}"
+ ./configure -prefix /usr -x11include /usr/include
+ make world.opt
+ }
+
+ package_ocaml() {
+- cd "${srcdir}/${pkgbase}-${pkgver}"
++ cd "${srcdir}/riscv-${pkgbase}"
+ make PREFIX="${pkgdir}/usr" MANDIR="${pkgdir}/usr/share/man" install
+
+ # Save >10MB with this one, makepkg only strips debug symbols.
+@@ -43,7 +43,7 @@ license=('custom: QPL-1.0')
+ depends=('ocaml')
+ optdepends=()
+
+- cd "${srcdir}/${pkgbase}-${pkgver}"
++ cd "${srcdir}/riscv-${pkgbase}"
+ # from Makefile
+ BYTESTART=driver/main.cmo
+ TOPLEVELSTART=toplevel/topstart.cmo
diff --git a/src/stage4/patches/phonon-gstreamer-breakdeps.patch b/src/stage4/patches/phonon-gstreamer-breakdeps.patch
new file mode 100644
index 0000000..a47e4a7
--- /dev/null
+++ b/src/stage4/patches/phonon-gstreamer-breakdeps.patch
@@ -0,0 +1,30 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-04 18:42:40.025282697 +0200
++++ b/PKGBUILD 2018-04-09 13:58:22.983955501 +0200
+@@ -11,7 +11,7 @@ url='http://phonon.kde.org/'
+ license=(LGPL)
+ optdepends=('pulseaudio: PulseAudio support' 'gst-plugins-good: PulseAudio support and good codecs' 'gst-plugins-bad: additional codecs'
+ 'gst-plugins-ugly: additional codecs' 'gst-libav: libav codec')
+-makedepends=(gst-plugins-base extra-cmake-modules phonon-qt4 phonon-qt5 qt5-x11extras)
++makedepends=(gst-plugins-base extra-cmake-modules qt5-x11extras)
+ source=("http://download.kde.org/stable/phonon/phonon-backend-gstreamer/$pkgver/phonon-backend-gstreamer-$pkgver.tar.xz")
+ sha256sums=('cec3e5ece1261d344b68363ef0606ebf49772628ba94bb55b0c0d18773b885f1')
+
+@@ -43,7 +43,7 @@ build() {
+
+ package_phonon-qt4-gstreamer() {
+ pkgdesc="Phonon GStreamer backend for Qt4"
+- depends=(gst-plugins-base phonon-qt4)
++ depends=(gst-plugins-base)
+ provides=(phonon-qt4-backend)
+
+ cd build-qt4
+@@ -55,7 +55,7 @@ package_phonon-qt4-gstreamer() {
+
+ package_phonon-qt5-gstreamer() {
+ pkgdesc="Phonon GStreamer backend for Qt5"
+- depends=(gst-plugins-base qt5-x11extras phonon-qt5)
++ depends=(gst-plugins-base qt5-x11extras)
+ provides=(phonon-qt5-backend)
+
+ cd build-qt5
diff --git a/src/stage4/patches/poppler-breakdeps.patch b/src/stage4/patches/poppler-breakdeps.patch
new file mode 100644
index 0000000..dbf1fd5
--- /dev/null
+++ b/src/stage4/patches/poppler-breakdeps.patch
@@ -0,0 +1,20 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-08 21:19:01.690638474 +0200
++++ b/PKGBUILD 2018-04-08 21:19:01.691638474 +0200
+@@ -3,13 +3,13 @@
+ # Maintainer: Jan de Groot <jgc@archlinux.org>
+
+ pkgbase=poppler
+-pkgname=('poppler' 'poppler-glib' 'poppler-qt5')
++pkgname=('poppler' 'poppler-glib')
+ pkgver=0.63.0
+ pkgrel=1
+ arch=(x86_64)
+ license=('GPL')
+-makedepends=('libjpeg' 'gcc-libs' 'cairo' 'fontconfig' 'openjpeg2' 'gtk3' 'pkgconfig' 'lcms2'
+- 'gobject-introspection' 'icu' 'qt5-base' 'git' 'nss' 'gtk-doc' 'curl' 'poppler-data'
++makedepends=('libjpeg' 'gcc-libs' 'cairo' 'fontconfig' 'openjpeg2' 'pkgconfig' 'lcms2'
++ 'gobject-introspection' 'icu' 'git' 'nss' 'gtk-doc' 'curl' 'poppler-data'
+ 'cmake' 'python')
+ options=('!emptydirs')
+ url="https://poppler.freedesktop.org/"
diff --git a/src/stage4/patches/pulseaudio-breakdeps.patch b/src/stage4/patches/pulseaudio-breakdeps.patch
new file mode 100644
index 0000000..2e22df1
--- /dev/null
+++ b/src/stage4/patches/pulseaudio-breakdeps.patch
@@ -0,0 +1,132 @@
+diff -rupN a/0001-memfd-wrappers-only-define-memfd_create-if-not-alrea.patch b/0001-memfd-wrappers-only-define-memfd_create-if-not-alrea.patch
+--- a/0001-memfd-wrappers-only-define-memfd_create-if-not-alrea.patch 1970-01-01 01:00:00.000000000 +0100
++++ b/0001-memfd-wrappers-only-define-memfd_create-if-not-alrea.patch 2018-04-10 20:28:26.088548654 +0200
+@@ -0,0 +1,63 @@
++From 01239c23f57e74ec40c92144d22fe153ee65f4ff Mon Sep 17 00:00:00 2001
++From: Tanu Kaskinen <tanuk@iki.fi>
++Date: Wed, 24 Jan 2018 03:51:49 +0200
++Subject: [PATCH] memfd-wrappers: only define memfd_create() if not already
++ defined
++
++glibc 2.27 is to be released soon, and it will provide memfd_create().
++If glibc provides the function, we must not define it ourselves,
++otherwise building fails due to conflict between the two implementations
++of the same function.
++
++BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=104733
++---
++ configure.ac | 3 +++
++ src/pulsecore/memfd-wrappers.h | 7 ++++---
++ 2 files changed, 7 insertions(+), 3 deletions(-)
++
++diff --git a/configure.ac b/configure.ac
++index 013918f1a..1095ae8cb 100644
++--- a/configure.ac
+++++ b/configure.ac
++@@ -607,6 +607,9 @@ AS_IF([test "x$enable_memfd" = "xyes" && test "x$HAVE_MEMFD" = "x0"],
++ [AC_MSG_ERROR([*** Your Linux kernel does not support memfd shared memory.
++ *** Use linux v3.17 or higher for such a feature.])])
++
+++AS_IF([test "x$HAVE_MEMFD" = "x1"],
+++ AC_CHECK_FUNCS([memfd_create]))
+++
++ AC_SUBST(HAVE_MEMFD)
++ AM_CONDITIONAL([HAVE_MEMFD], [test "x$HAVE_MEMFD" = x1])
++ AS_IF([test "x$HAVE_MEMFD" = "x1"], AC_DEFINE([HAVE_MEMFD], 1, [Have memfd shared memory.]))
++diff --git a/src/pulsecore/memfd-wrappers.h b/src/pulsecore/memfd-wrappers.h
++index 3bed9b2b1..c7aadfd3c 100644
++--- a/src/pulsecore/memfd-wrappers.h
+++++ b/src/pulsecore/memfd-wrappers.h
++@@ -20,13 +20,14 @@
++ License along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
++ ***/
++
++-#ifdef HAVE_MEMFD
+++#if defined(HAVE_MEMFD) && !defined(HAVE_MEMFD_CREATE)
++
++ #include <sys/syscall.h>
++ #include <fcntl.h>
++
++ /*
++- * No glibc wrappers exist for memfd_create(2), so provide our own.
+++ * Before glibc version 2.27 there was no wrapper for memfd_create(2),
+++ * so we have to provide our own.
++ *
++ * Also define memfd fcntl sealing macros. While they are already
++ * defined in the kernel header file <linux/fcntl.h>, that file as
++@@ -63,6 +64,6 @@ static inline int memfd_create(const char *name, unsigned int flags) {
++ #define F_SEAL_WRITE 0x0008 /* prevent writes */
++ #endif
++
++-#endif /* HAVE_MEMFD */
+++#endif /* HAVE_MEMFD && !HAVE_MEMFD_CREATE */
++
++ #endif
++--
++2.15.1
++
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-10 21:02:36.891354284 +0200
++++ b/PKGBUILD 2018-04-10 21:29:58.366198709 +0200
+@@ -5,7 +5,7 @@
+ # Contributor: William Rea <sillywilly@gmail.com>
+
+ pkgbase=pulseaudio
+-pkgname=(pulseaudio libpulse pulseaudio-{gconf,zeroconf,lirc,jack,bluetooth,equalizer})
++pkgname=(pulseaudio libpulse pulseaudio-{gconf,zeroconf,lirc,bluetooth,equalizer})
+ pkgdesc="A featureful, general-purpose sound server"
+ pkgver=11.1
+ pkgrel=1
+@@ -13,13 +13,15 @@ arch=(i686 x86_64)
+ url="https://www.freedesktop.org/wiki/Software/PulseAudio/"
+ license=(GPL)
+ makedepends=(libasyncns libcap attr libxtst libsm libsndfile libtool rtkit libsoxr
+- speexdsp tdb systemd dbus avahi bluez bluez-libs gconf intltool jack2-dbus sbc
+- lirc openssl fftw orc gtk3 webrtc-audio-processing
++ speexdsp tdb systemd dbus bluez bluez-libs gconf intltool sbc
++ lirc openssl fftw orc webrtc-audio-processing
+ check autoconf-archive git)
+ options=(!emptydirs)
+ _commit=f93e372b0b2cb960df04de3f0a8fbea683bb8229 # tags/v11.1^0
+-source=("git+https://anongit.freedesktop.org/git/pulseaudio/pulseaudio#commit=$_commit")
+-sha256sums=('SKIP')
++source=("git+https://anongit.freedesktop.org/git/pulseaudio/pulseaudio#commit=$_commit"
++ "0001-memfd-wrappers-only-define-memfd_create-if-not-alrea.patch")
++sha256sums=('SKIP'
++ 'c7e75566cf198ecf09c01b606eb9618ff06528d3a2b3980615684db30f7e5a06')
+
+ pkgver() {
+ cd pulseaudio
+@@ -29,6 +31,7 @@ pkgver() {
+ prepare() {
+ cd pulseaudio
+ NOCONFIGURE=1 ./bootstrap.sh
++ patch -Np1 -i ../0001-memfd-wrappers-only-define-memfd_create-if-not-alrea.patch
+ }
+
+ build() {
+@@ -125,7 +128,7 @@ package_pulseaudio() {
+
+ ### Split modules
+
+- mkdir -p "$srcdir"/{gconf,zeroconf,lirc,jack,bluetooth,equalizer}/usr/lib/pulse-$_pulsever/modules \
++ mkdir -p "$srcdir"/{gconf,zeroconf,lirc,bluetooth,equalizer}/usr/lib/pulse-$_pulsever/modules \
+ "$srcdir"/{gconf/usr/lib/pulse,equalizer/usr/bin}
+
+ mv usr/lib/pulse-$_pulsever/modules/module-gconf.so \
+@@ -133,15 +136,9 @@ package_pulseaudio() {
+ mv usr/lib/pulse/gconf-helper \
+ "$srcdir/gconf/usr/lib/pulse"
+
+- mv usr/lib/pulse-$_pulsever/modules/{libavahi-wrap,module-{zeroconf-{publish,discover},raop-discover}}.so \
+- "$srcdir/zeroconf/usr/lib/pulse-$_pulsever/modules"
+-
+ mv usr/lib/pulse-$_pulsever/modules/module-lirc.so \
+ "$srcdir/lirc/usr/lib/pulse-$_pulsever/modules"
+
+- mv usr/lib/pulse-$_pulsever/modules/module-jack{-sink,-source,dbus-detect}.so \
+- "$srcdir/jack/usr/lib/pulse-$_pulsever/modules"
+-
+ mv usr/lib/pulse-$_pulsever/modules/{libbluez5-util,module-{bluetooth-{discover,policy},bluez5-{discover,device}}}.so \
+ "$srcdir/bluetooth/usr/lib/pulse-$_pulsever/modules"
+
diff --git a/src/stage4/patches/python.patch b/src/stage4/patches/python.patch
index c62cd17..08ce6da 100644
--- a/src/stage4/patches/python.patch
+++ b/src/stage4/patches/python.patch
@@ -1,5 +1,6 @@
---- a/PKGBUILD 2018-03-25 21:57:59.513053107 +0200
-+++ b/PKGBUILD 2018-03-26 15:22:13.681032590 +0200
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-07 17:13:27.064223747 +0200
++++ b/PKGBUILD 2018-04-07 17:13:27.064223747 +0200
@@ -14,7 +14,7 @@ arch=('x86_64')
license=('custom')
url="http://www.python.org/"
@@ -9,3 +10,12 @@
optdepends=('python-setuptools'
'python-pip'
'sqlite'
+@@ -55,7 +55,7 @@ build() {
+ --enable-shared \
+ --with-threads \
+ --with-computed-gotos \
+- --enable-optimizations \
++ --disable-optimizations \
+ --with-lto \
+ --enable-ipv6 \
+ --with-system-expat \
diff --git a/src/stage4/patches/python2.patch b/src/stage4/patches/python2.patch
new file mode 100644
index 0000000..4dd87cd
--- /dev/null
+++ b/src/stage4/patches/python2.patch
@@ -0,0 +1,12 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-07 17:14:38.518216974 +0200
++++ b/PKGBUILD 2018-04-07 17:14:38.519216974 +0200
+@@ -71,7 +71,7 @@ build() {
+ ./configure --prefix=/usr \
+ --enable-shared \
+ --with-threads \
+- --enable-optimizations \
++ --disable-optimizations \
+ --with-lto \
+ --enable-ipv6 \
+ --enable-unicode=ucs4 \
diff --git a/src/stage4/patches/qt5-tools-breakdeps.patch b/src/stage4/patches/qt5-tools-breakdeps.patch
new file mode 100644
index 0000000..063fe24
--- /dev/null
+++ b/src/stage4/patches/qt5-tools-breakdeps.patch
@@ -0,0 +1,14 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-04 18:34:42.745327933 +0200
++++ b/PKGBUILD 2018-04-09 14:05:20.798915902 +0200
+@@ -11,8 +11,8 @@ url='http://qt-project.org/'
+ license=('GPL3' 'LGPL3' 'FDL' 'custom')
+ pkgdesc='A cross-platform application and UI framework (Development Tools, QtHelp)'
+ depends=('qt5-base' 'hicolor-icon-theme')
+-makedepends=('qt5-declarative' 'qt5-webkit' 'vulkan-headers')
+-optdepends=('qt5-doc: documentation' 'qt5-webkit: for Qt Assistant')
++makedepends=('qt5-declarative' 'vulkan-headers')
++optdepends=('qt5-doc: documentation')
+ groups=('qt' 'qt5')
+ conflicts=('qtchooser')
+ _pkgfqn="${pkgname/5-/}-everywhere-src-${_qtver}"
diff --git a/src/stage4/patches/r-breakdeps.patch b/src/stage4/patches/r-breakdeps.patch
new file mode 100644
index 0000000..5cc9267
--- /dev/null
+++ b/src/stage4/patches/r-breakdeps.patch
@@ -0,0 +1,14 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-08 14:42:25.744893791 +0200
++++ b/PKGBUILD 2018-04-08 14:42:25.745893791 +0200
+@@ -12,8 +12,8 @@ license=('GPL')
+ url='https://www.r-project.org/'
+ depends=('blas' 'lapack' 'bzip2' 'libpng' 'libjpeg' 'libtiff'
+ 'ncurses' 'pcre' 'readline' 'zlib' 'perl' 'gcc-libs'
+- 'libxt' 'libxmu' 'pango' 'xz' 'zip' 'unzip' 'curl' 'icu')
+-makedepends=('jdk7-openjdk' 'gcc-fortran' 'tk')
++ 'libxt' 'libxmu' 'xz' 'zip' 'unzip' 'curl' 'icu')
++makedepends=('gcc-fortran' 'tk')
+ optdepends=('tk: tcl/tk interface' 'texlive-bin: latex sty files' 'gcc-fortran: needed to compile some CRAN packages')
+ backup=('etc/R/Makeconf' 'etc/R/Renviron' 'etc/R/ldpaths' 'etc/R/repositories' 'etc/R/javaconf')
+ options=('!makeflags' '!emptydirs')
diff --git a/src/stage4/patches/ruby-rdiscount.patch b/src/stage4/patches/ruby-rdiscount.patch
new file mode 100644
index 0000000..335806e
--- /dev/null
+++ b/src/stage4/patches/ruby-rdiscount.patch
@@ -0,0 +1,11 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-11 04:38:06.529764053 +0200
++++ b/PKGBUILD 2018-04-11 04:44:54.358725400 +0200
+@@ -12,6 +12,7 @@ arch=(x86_64)
+ url='http://dafoster.net/projects/rdiscount/'
+ license=(BSD)
+ depends=(ruby)
++makedepends=(ruby-rdoc)
+ options=(!emptydirs)
+ source=(https://rubygems.org/downloads/$_gemname-$pkgver.gem)
+ noextract=($_gemname-$pkgver.gem)
diff --git a/src/stage4/patches/rust-breakdeps.patch b/src/stage4/patches/rust-breakdeps.patch
new file mode 100644
index 0000000..dfe4903
--- /dev/null
+++ b/src/stage4/patches/rust-breakdeps.patch
@@ -0,0 +1,12 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-10 12:30:43.849265185 +0200
++++ b/PKGBUILD 2018-04-10 12:30:43.851265185 +0200
+@@ -14,7 +14,7 @@ url='https://www.rust-lang.org/'
+ arch=('x86_64')
+ license=('MIT' 'Apache')
+
+-makedepends=('rust' 'libffi' 'perl' 'python2' 'curl' 'cmake')
++makedepends=('libffi' 'perl' 'python2' 'curl' 'cmake')
+
+ options=('!emptydirs')
+
diff --git a/src/stage4/patches/subversion-breakdeps.patch b/src/stage4/patches/subversion-breakdeps.patch
new file mode 100644
index 0000000..c7fa4a0
--- /dev/null
+++ b/src/stage4/patches/subversion-breakdeps.patch
@@ -0,0 +1,52 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-08 10:01:54.988488966 +0200
++++ b/PKGBUILD 2018-04-08 10:01:54.988488966 +0200
+@@ -13,13 +13,12 @@ arch=('x86_64')
+ url="http://subversion.apache.org/"
+ license=('APACHE')
+ depends=('sqlite' 'file' 'serf' 'systemd')
+-makedepends=('apache' 'python2' 'perl' 'swig' 'java-environment'
+- 'libgnome-keyring' 'kdelibs' 'ruby')
++makedepends=('apache' 'python2' 'perl' 'swig'
++ 'libgnome-keyring')
+ optdepends=('libgnome-keyring: for GNOME Keyring for auth credentials'
+ 'kdebase-runtime: for KWallet for auth credentials'
+ 'bash-completion: for svn bash completion'
+ 'python2: for some hook scripts'
+- 'java-environment: for Java support'
+ 'ruby: for some hook scripts')
+ provides=('svn')
+ backup=('etc/xinetd.d/svn' 'etc/conf.d/svnserve')
+@@ -59,21 +58,18 @@ build() {
+ ./configure --prefix=/usr --with-apr=/usr --with-apr-util=/usr \
+ --with-zlib=/usr --with-serf=/usr --with-apxs \
+ --with-sqlite=/usr \
+- --enable-javahl --with-jdk=/usr/lib/jvm/default \
+- --with-gnome-keyring --with-kwallet \
+ --with-apache-libexecdir=/usr/lib/httpd/modules \
+- --with-ruby-sitedir=/usr/lib/ruby/vendor_ruby \
+ --disable-static
+
+ make LT_LDFLAGS="-L$Fdestdir/usr/lib"
+ make swig_pydir=/usr/lib/python2.7/site-packages/libsvn \
+- swig_pydir_extra=/usr/lib/python2.7/site-packages/svn swig-py swig-pl javahl swig-rb
++ swig_pydir_extra=/usr/lib/python2.7/site-packages/svn swig-py swig-pl
+ }
+
+ check() {
+ cd ${pkgname}-${pkgver}
+ export LANG=C LC_ALL=C
+- make check check-swig-pl check-swig-py check-swig-rb CLEANUP=yes # check-javahl
++ make check check-swig-pl check-swig-py CLEANUP=yes # check-javahl
+ }
+
+ package() {
+@@ -83,7 +79,7 @@ package() {
+ make DESTDIR="${pkgdir}" INSTALLDIRS=vendor \
+ swig_pydir=/usr/lib/python2.7/site-packages/libsvn \
+ swig_pydir_extra=/usr/lib/python2.7/site-packages/svn \
+- install install-swig-py install-swig-pl install-javahl install-swig-rb
++ install install-swig-py install-swig-pl
+
+ install -dm755 "${pkgdir}"/usr/share/subversion
+ cp -a tools/hook-scripts "${pkgdir}"/usr/share/subversion/
diff --git a/src/stage4/patches/texlive-bin.patch b/src/stage4/patches/texlive-bin.patch
new file mode 100644
index 0000000..80a5e83
--- /dev/null
+++ b/src/stage4/patches/texlive-bin.patch
@@ -0,0 +1,102 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-11 06:12:11.168229069 +0200
++++ b/PKGBUILD 2018-04-11 06:12:11.169229069 +0200
+@@ -9,18 +9,15 @@
+ # parabola changes and rationale:
+ # - rebranded to parabola
+
+-pkgname=('texlive-bin')
++pkgname=('texlive-bin' 'libsynctex')
+ pkgver=2017.44590
+ pkgrel=13
+-pkgrel+=.parabola1
+ license=('GPL')
+ arch=('x86_64')
+-arch+=('i686' 'armv7h')
+ makedepends=('cairo' 'pixman' 'graphite' 't1lib' 'gd' 'poppler'
+ 'libsigsegv' 'zziplib' 'libpng' 'libjpeg' 'freetype2'
+ 'icu' 'harfbuzz' 'harfbuzz-icu' 'gmp' 'mpfr' 'potrace' 'libpaper'
+- 'perl' 'clisp' 'ffcall')
+-makedepends+=('poppler=0.63.0' 'icu>=61' 'icu<62')
++ 'perl')
+ url='http://tug.org/texlive/'
+ source=("https://sources.archlinux.org/other/texlive/texlive-bin-source-${pkgver}.tar.xz"
+ "luatex-gcc7.patch"
+@@ -52,12 +49,6 @@ prepare() {
+ build() {
+ cd "$srcdir"
+
+- if [ "${CARCH}" = "armv7h" ]; then
+- local config_xindy="--disable-xindy"
+- else
+- local config_xindy="--enable-xindy"
+- fi
+-
+ #############################################################
+ ### configure
+ cd source
+@@ -105,8 +96,7 @@ build() {
+ --disable-dump-share \
+ --disable-aleph \
+ --enable-luatex \
+- --with-clisp-runtime=default \
+- --disable-xindy-rules --disable-xindy-docs "$config_xindy"
++ --disable-xindy --disable-luajittex --disable-mfluajit
+ #############################################################
+ ### make
+ echo "-------------------------------------------------------"
+@@ -115,6 +105,15 @@ build() {
+ make
+ }
+
++package_libsynctex() {
++ pkgdesc='Library for synchronization between TeX files and resulting file'
++ depends=('glibc' 'zlib')
++
++ cd "${srcdir}/source/Work"
++ make -C texk/web2c DESTDIR="${pkgdir}" \
++ install-data-am install-libLTLIBRARIES
++}
++
+ package_texlive-bin() {
+ pkgdesc="TeX Live binaries"
+ pkgdesc+=" (Parabola rebranded)"
+@@ -122,8 +121,7 @@ package_texlive-bin() {
+ 'libsigsegv' 'zziplib' 'libpng' 'libjpeg' 'freetype2'
+ 'icu' 'harfbuzz' 'harfbuzz-icu' 'gmp' 'mpfr' 'potrace' 'libpaper'
+ 'libsynctex')
+- depends+=('icu>=61' 'icu<62' 'poppler=0.63.0')
+- provides=('lcdf-typetools' 'kpathsea' 'xindy')
++ provides=('lcdf-typetools' 'kpathsea')
+ optdepends=('ed: for texconfig'
+ 'biber: for bibliography processing')
+ options=('!strip')
+@@ -133,8 +131,6 @@ package_texlive-bin() {
+ #############################################################
+ ### install
+ cd source
+- # fixes for xindy
+- find utils/xindy -name Makefile -exec sed -i -e "s|^prefix =.\+$|prefix = $pkgdir/usr|" -e "s|^mandir =.\+$|mandir = \${prefix}/share/man|" -e "s|^datadir =.\+$|datadir = \${datarootdir}/texmf|" -e "s|^docdir =.\+$|docdir = \${datadir}/doc/xindy|" '{}' \;
+
+ echo "-------------------------------------------------------"
+ echo "--> Proceeding with make install ..."
+@@ -307,7 +303,6 @@ texdoc
+ texdoctk
+ texexec
+ texfot
+-texindy
+ texlinks
+ texliveonfly
+ texloganalyser
+@@ -323,11 +318,7 @@ updmap-user
+ vpl2ovp
+ vpl2vpl
+ xhlatex
+-xindy
+ "
+- if [ "$CARCH" = "armv7h" ]; then
+- _core_scripts="$(echo "$_core_scripts" | sed '/xindy$/d')"
+- fi
+ _games_scripts="rubikrotation"
+ _humanities_scripts="diadia"
+ _langcyrillic_scripts="rubibtex rumakeindex"
diff --git a/src/stage4/patches/texlive-bin.patch.libsynctex b/src/stage4/patches/texlive-bin.patch.libsynctex
new file mode 100644
index 0000000..fd521b0
--- /dev/null
+++ b/src/stage4/patches/texlive-bin.patch.libsynctex
@@ -0,0 +1,56 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-11 03:30:50.128146613 +0200
++++ b/PKGBUILD 2018-04-11 04:46:41.040715289 +0200
+@@ -10,7 +10,7 @@ arch=('x86_64')
+ makedepends=('cairo' 'pixman' 'graphite' 't1lib' 'gd' 'poppler'
+ 'libsigsegv' 'zziplib' 'libpng' 'libjpeg' 'freetype2'
+ 'icu' 'harfbuzz' 'harfbuzz-icu' 'gmp' 'mpfr' 'potrace' 'libpaper'
+- 'perl' 'clisp' 'ffcall')
++ 'perl')
+ url='http://tug.org/texlive/'
+ source=("https://sources.archlinux.org/other/texlive/texlive-bin-source-${pkgver}.tar.xz"
+ "luatex-gcc7.patch"
+@@ -89,8 +89,7 @@ build() {
+ --disable-dump-share \
+ --disable-aleph \
+ --enable-luatex \
+- --with-clisp-runtime=default \
+- --enable-xindy --disable-xindy-rules --disable-xindy-docs
++ --disable-xindy --disable-luajittex --disable-mfluajit
+ #############################################################
+ ### make
+ echo "-------------------------------------------------------"
+@@ -114,7 +113,7 @@ package_texlive-bin() {
+ 'libsigsegv' 'zziplib' 'libpng' 'libjpeg' 'freetype2'
+ 'icu' 'harfbuzz' 'harfbuzz-icu' 'gmp' 'mpfr' 'potrace' 'libpaper'
+ 'libsynctex')
+- provides=('lcdf-typetools' 'kpathsea' 'xindy')
++ provides=('lcdf-typetools' 'kpathsea')
+ optdepends=('ed: for texconfig'
+ 'biber: for bibliography processing')
+ options=('!strip')
+@@ -124,8 +123,6 @@ package_texlive-bin() {
+ #############################################################
+ ### install
+ cd source
+- # fixes for xindy
+- find utils/xindy -name Makefile -exec sed -i -e "s|^prefix =.\+$|prefix = $pkgdir/usr|" -e "s|^mandir =.\+$|mandir = \${prefix}/share/man|" -e "s|^datadir =.\+$|datadir = \${datarootdir}/texmf|" -e "s|^docdir =.\+$|docdir = \${datadir}/doc/xindy|" '{}' \;
+
+ echo "-------------------------------------------------------"
+ echo "--> Proceeding with make install ..."
+@@ -298,7 +295,6 @@ texdoc
+ texdoctk
+ texexec
+ texfot
+-texindy
+ texlinks
+ texliveonfly
+ texloganalyser
+@@ -314,7 +310,6 @@ updmap-user
+ vpl2ovp
+ vpl2vpl
+ xhlatex
+-xindy
+ "
+ _games_scripts="rubikrotation"
+ _humanities_scripts="diadia"
diff --git a/src/stage4/patches/vala-breakdeps.patch b/src/stage4/patches/vala-breakdeps.patch
index 2efb73a..d7df56d 100644
--- a/src/stage4/patches/vala-breakdeps.patch
+++ b/src/stage4/patches/vala-breakdeps.patch
@@ -1,13 +1,11 @@
diff -rupN a/PKGBUILD b/PKGBUILD
---- a/PKGBUILD 2018-04-05 20:31:07.519477171 +0200
-+++ b/PKGBUILD 2018-04-05 20:31:07.520477171 +0200
-@@ -10,40 +10,27 @@ pkgdesc="Compiler for the GObject type s
- url="https://wiki.gnome.org/Projects/Vala"
+--- a/PKGBUILD 2018-04-10 13:59:21.242761216 +0200
++++ b/PKGBUILD 2018-04-10 13:59:21.243761216 +0200
+@@ -11,37 +11,35 @@ url="https://wiki.gnome.org/Projects/Val
arch=(x86_64)
license=(LGPL)
--depends=(glib2 gtk-doc graphviz ttf-font pkg-config gcc)
+ depends=(glib2 gtk-doc graphviz ttf-font pkg-config gcc)
-makedepends=(libxslt vala git help2man)
-+depends=(glib2 gtk-doc ttf-font pkg-config gcc)
+makedepends=(libxslt git help2man)
checkdepends=(dbus libx11 gobject-introspection)
provides=(valadoc)
@@ -15,26 +13,35 @@ diff -rupN a/PKGBUILD b/PKGBUILD
replaces=(valadoc)
_commit=3a11e70aefae4f2344b6352440e82cab0963f4f7 # tags/0.40.2^0
-source=("git+https://git.gnome.org/browse/vala#commit=$_commit")
-+source=("git://git.gnome.org/vala-bootstrap")
- sha256sums=('SKIP')
+-sha256sums=('SKIP')
++source=("git://git.gnome.org/vala-bootstrap"
++ "git+https://git.gnome.org/browse/vala#commit=$_commit")
++sha256sums=('SKIP'
++ 'SKIP')
-pkgver() {
- cd $pkgname
- git describe --tags | sed 's/-/+/g'
-}
--
++build() {
++ cd $pkgname-bootstrap
++ ./autogen.sh
++ ./configure --prefix=$srcdir/vala-bootstrap --disable-build-from-vala \
++ --disable-vapigen --disable-silent-rules
++ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
++ make
++ make install
++ cd ..
+
-prepare() {
-- cd $pkgname
-- NOCONFIGURE=1 ./autogen.sh
+ cd $pkgname
++ export VALAC=$srcdir/vala-bootstrap/bin/valac
+ NOCONFIGURE=1 ./autogen.sh
-}
-
- build() {
+-build() {
- cd $pkgname
-- ./configure --prefix=/usr
-+ cd $pkgname-bootstrap
-+ ./autogen.sh
-+ ./configure --prefix=/usr --disable-build-from-vala \
-+ --disable-vapigen --disable-silent-rules
+ ./configure --prefix=/usr
sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
make
}
@@ -45,8 +52,5 @@ diff -rupN a/PKGBUILD b/PKGBUILD
-}
-
package() {
-- cd $pkgname
-+ cd $pkgname-bootstrap
+ cd $pkgname
make DESTDIR="$pkgdir" install
- }
-
diff --git a/src/stage4/patches/xorg-server.patch b/src/stage4/patches/xorg-server.patch
new file mode 100644
index 0000000..00bc0aa
--- /dev/null
+++ b/src/stage4/patches/xorg-server.patch
@@ -0,0 +1,74 @@
+diff -rupN a/PKGBUILD b/PKGBUILD
+--- a/PKGBUILD 2018-04-11 07:29:18.352790517 +0200
++++ b/PKGBUILD 2018-04-11 07:29:18.353790517 +0200
+@@ -16,7 +16,7 @@ makedepends=('pixman' 'libx11' 'mesa' 'm
+ 'xf86dgaproto' 'libxmu' 'libxrender' 'libxi' 'dmxproto' 'libxaw' 'libdmx' 'libxtst' 'libxres'
+ 'xorg-xkbcomp' 'xorg-util-macros' 'xorg-font-util' 'glproto' 'dri2proto' 'libgcrypt' 'libepoxy'
+ 'xcb-util' 'xcb-util-image' 'xcb-util-renderutil' 'xcb-util-wm' 'xcb-util-keysyms' 'dri3proto'
+- 'libxshmfence' 'libunwind' 'systemd' 'wayland-protocols' 'git')
++ 'libxshmfence' 'systemd' 'wayland-protocols' 'git')
+ _commit=d0d1a694f967af770fba0d36043fd5218ff20984 # branch 1.19
+ #source=(https://xorg.freedesktop.org/releases/individual/xserver/${pkgbase}-${pkgver}.tar.bz2{,.sig}
+ source=("git+https://anongit.freedesktop.org/git/xorg/xserver.git#commit=$_commit"
+@@ -69,7 +69,6 @@ build() {
+ --enable-xnest \
+ --enable-composite \
+ --enable-xcsecurity \
+- --enable-libunwind \
+ --enable-xorg \
+ --enable-xephyr \
+ --enable-glamor \
+@@ -127,7 +126,7 @@ package_xorg-server-common() {
+
+ package_xorg-server() {
+ pkgdesc="Xorg X server"
+- depends=(libepoxy libxfont2 pixman xorg-server-common libunwind dbus libgl xf86-input-libinput
++ depends=(libepoxy libxfont2 pixman xorg-server-common dbus libgl xf86-input-libinput
+ libpciaccess libdrm libxshmfence) # FS#52949
+
+ # see xorg-server-*/hw/xfree86/common/xf86Module.h for ABI versions - we provide major numbers that drivers can depend on
+@@ -159,7 +158,7 @@ package_xorg-server() {
+
+ package_xorg-server-xephyr() {
+ pkgdesc="A nested X server that runs as an X application"
+- depends=(libxfont2 libgl libepoxy libunwind libsystemd libxv pixman xorg-server-common xcb-util-image
++ depends=(libxfont2 libgl libepoxy libsystemd libxv pixman xorg-server-common xcb-util-image
+ xcb-util-renderutil xcb-util-wm xcb-util-keysyms)
+
+ cd xserver/hw/kdrive
+@@ -172,7 +171,7 @@ package_xorg-server-xephyr() {
+
+ package_xorg-server-xvfb() {
+ pkgdesc="Virtual framebuffer X server"
+- depends=(libxfont2 libunwind libsystemd pixman xorg-server-common xorg-xauth libgl)
++ depends=(libxfont2 libsystemd pixman xorg-server-common xorg-xauth libgl)
+
+ cd xserver/hw/vfb
+ #cd "${pkgbase}-${pkgver}/hw/vfb"
+@@ -187,7 +186,7 @@ package_xorg-server-xvfb() {
+
+ package_xorg-server-xnest() {
+ pkgdesc="A nested X server that runs as an X application"
+- depends=(libxfont2 libxext libunwind pixman xorg-server-common libsystemd)
++ depends=(libxfont2 libxext pixman xorg-server-common libsystemd)
+
+ cd xserver/hw/xnest
+ #cd "${pkgbase}-${pkgver}/hw/xnest"
+@@ -199,7 +198,7 @@ package_xorg-server-xnest() {
+
+ package_xorg-server-xdmx() {
+ pkgdesc="Distributed Multihead X Server and utilities"
+- depends=(libxfont2 libxi libxaw libxrender libdmx libxfixes libunwind pixman xorg-server-common)
++ depends=(libxfont2 libxi libxaw libxrender libdmx libxfixes pixman xorg-server-common)
+
+ cd xserver/hw/dmx
+ #cd "${pkgbase}-${pkgver}/hw/dmx"
+@@ -211,7 +210,7 @@ package_xorg-server-xdmx() {
+
+ package_xorg-server-xwayland() {
+ pkgdesc="run X clients under wayland"
+- depends=(libxfont2 libepoxy libunwind libsystemd libgl pixman xorg-server-common)
++ depends=(libxfont2 libepoxy libsystemd libgl pixman xorg-server-common)
+
+ cd xserver/hw/xwayland
+ #cd "${pkgbase}-${pkgver}/hw/xwayland"
diff --git a/src/stage4/stage4.sh b/src/stage4/stage4.sh
index d8304f6..9fc0408 100644
--- a/src/stage4/stage4.sh
+++ b/src/stage4/stage4.sh
@@ -29,8 +29,8 @@ stage4_makepkg() {
[ "x$1" != "x$pkgname" ] && prefix=(-r -p breakdeps)
package_fetch_upstream_pkgfiles "$pkgname" || return
- package_import_keys "$pkgname" || return
package_patch "${prefix[@]}" "$pkgname" || return
+ package_import_keys "$pkgname" || return
# substitute common variables
sed "s#@MULTILIB@#${MULTILIB:-disable}#g" \
@@ -53,7 +53,7 @@ stage4_makepkg() {
# add a temporary -breakdeps build, if a patch exists
if [ "x$1" == "x$pkgname" ] && package_has_patch -p breakdeps "$1"; then
deptree_add_entry "$1-breakdeps" "$1"
- sed -i "s/ $pkgname / $pkgname-breakdeps /g" "$DEPTREE"
+ sed -i "s/ / /g; s/ $pkgname / $pkgname-breakdeps /g; s/ */ /g" "$DEPTREE"
fi
# postpone actual build
return 0
diff --git a/tools/analyze_deptree.sh b/tools/analyze_deptree.sh
new file mode 100644
index 0000000..3749c51
--- /dev/null
+++ b/tools/analyze_deptree.sh
@@ -0,0 +1,46 @@
+#!/bin/bash
+
+# first, reduce the deptree
+deptree="$(cat "$1")"
+while grep -q '\[ *\]' <<< "$deptree"; do
+ pkg=$(grep '\[ *\]' <<< "$deptree" | head -n1 | awk '{print $1}')
+ echo "consuming pkg: $pkg"
+ deptree="$(sed "/^$pkg :/d; s/ / /g; s/ $pkg / /g; s/ */ /g" <<< "$deptree")"
+done
+printf "%s" "$deptree" > DEPTREE.reduced
+echo "unresolved pkgs: $(wc -l < DEPTREE.reduced)"
+
+read -r -d '' CMD << 'EOF'
+import sys
+import networkx as nx
+import itertools
+graph = nx.DiGraph()
+with open(sys.argv[1]) as deptree:
+ for line in deptree:
+ line = line.split('#')[0]
+ lhs, rhs = line.split(':')
+ lhs = lhs.strip()
+ rhs = rhs.lstrip(' [').rstrip('] ')
+ graph.add_node(lhs)
+ for dep in rhs.split():
+ if not dep in graph:
+ graph.add_node(dep)
+ graph.add_edge(lhs, dep)
+
+cycles=nx.simple_cycles(graph)
+for cycle in cycles:
+ print(cycle)
+EOF
+
+echo "crunching cycles... (press CTRL-C to stop)"
+# second, find cycles (sample for up to 5 seconds)
+python -c "$CMD" DEPTREE.reduced > DEPTREE.cycles
+echo "found cycles: $(wc -l < DEPTREE.cycles)"
+
+echo "collecting stats..."
+# third, count occurrences of pkgnames in the cycles
+for pkg in $(awk '{print $1}' < DEPTREE.reduced); do
+ count=$(grep "'$pkg'" DEPTREE.cycles | wc -l)
+ [ $count -gt 0 ] && echo "$pkg: $count"
+done | sort -rgk2 > DEPTREE.stats
+echo "all done."