From e66e89df26257c270d5e246b65f7696e11b9d4ec Mon Sep 17 00:00:00 2001 From: Andreas Grapentin Date: Sat, 17 Mar 2018 22:53:32 +0100 Subject: finished stage3 --- src/stage3/patches/blas.patch | 28 +++++ src/stage3/patches/boost-libs.patch | 11 ++ src/stage3/patches/cmake.patch | 33 ++++++ src/stage3/patches/device-mapper.patch | 20 ++++ src/stage3/patches/gnupg.patch | 11 ++ src/stage3/patches/gpgme.patch | 32 ++++++ src/stage3/patches/libpcap.patch | 19 ++++ src/stage3/patches/pacman.patch | 176 ++++++++++++++++++++++++++++++ src/stage3/patches/pinentry.patch | 20 ++++ src/stage3/patches/python-numpy.patch | 55 ++++++++++ src/stage3/patches/source-highlight.patch | 11 ++ 11 files changed, 416 insertions(+) create mode 100644 src/stage3/patches/blas.patch create mode 100644 src/stage3/patches/boost-libs.patch create mode 100644 src/stage3/patches/cmake.patch create mode 100644 src/stage3/patches/device-mapper.patch create mode 100644 src/stage3/patches/gnupg.patch create mode 100644 src/stage3/patches/gpgme.patch create mode 100644 src/stage3/patches/libpcap.patch create mode 100644 src/stage3/patches/pacman.patch create mode 100644 src/stage3/patches/pinentry.patch create mode 100644 src/stage3/patches/python-numpy.patch create mode 100644 src/stage3/patches/source-highlight.patch diff --git a/src/stage3/patches/blas.patch b/src/stage3/patches/blas.patch new file mode 100644 index 0000000..c3e1280 --- /dev/null +++ b/src/stage3/patches/blas.patch @@ -0,0 +1,28 @@ +--- a/PKGBUILD 2018-03-17 16:28:41.782588188 +0100 ++++ b/PKGBUILD 2018-03-17 16:56:33.167656401 +0100 +@@ -5,12 +5,12 @@ + # Contributor: Jason Taylor + + pkgbase=lapack +-pkgname=('lapack' 'blas' 'cblas' 'lapacke' 'lapack-doc') ++pkgname=('lapack' 'blas' 'cblas' 'lapacke') + pkgver=3.8.0 + pkgrel=1 + url="http://www.netlib.org/lapack" + pkgdesc="Linear Algebra PACKage" +-makedepends=('gcc-fortran' 'cmake' 'python' 'doxygen') ++makedepends=('gcc-fortran' 'cmake' 'python') + arch=('x86_64') + license=("custom") + source=(http://www.netlib.org/${pkgbase}/${pkgbase}-${pkgver}.tar.gz LICENSE.blas) +@@ -32,10 +32,6 @@ build() { + -DCBLAS=ON \ + -DBUILD_DEPRECATED=ON + make +- +-# Build man pages +- cd ../$pkgname-$pkgver +- doxygen DOCS/Doxyfile_man + } + + package_lapack() { diff --git a/src/stage3/patches/boost-libs.patch b/src/stage3/patches/boost-libs.patch new file mode 100644 index 0000000..da60b61 --- /dev/null +++ b/src/stage3/patches/boost-libs.patch @@ -0,0 +1,11 @@ +--- a/PKGBUILD 2018-03-17 18:52:01.668936255 +0100 ++++ b/PKGBUILD 2018-03-17 19:06:24.436261723 +0100 +@@ -28,7 +28,7 @@ build() { + + ./bootstrap.sh --with-toolset=gcc --with-icu --with-python=/usr/bin/python2 + +- _bindir="bin.linuxx86" ++ _bindir="bin.linux" + [[ "${CARCH}" = "x86_64" ]] && _bindir="bin.linuxx86_64" + install -Dm755 tools/build/src/engine/$_bindir/b2 "${_stagedir}"/bin/b2 + diff --git a/src/stage3/patches/cmake.patch b/src/stage3/patches/cmake.patch new file mode 100644 index 0000000..34df103 --- /dev/null +++ b/src/stage3/patches/cmake.patch @@ -0,0 +1,33 @@ +--- a/PKGBUILD 2018-03-17 15:44:56.987930364 +0100 ++++ b/PKGBUILD 2018-03-17 15:46:19.253615593 +0100 +@@ -11,7 +11,6 @@ arch=('x86_64') + url="http://www.cmake.org/" + license=('custom') + depends=('curl' 'libarchive' 'shared-mime-info' 'jsoncpp' 'libuv' 'rhash') +-makedepends=('qt5-base' 'python-sphinx' 'emacs') + optdepends=('qt5-base: cmake-gui' + 'libxkbcommon-x11: cmake-gui') + source=("https://www.cmake.org/files/v${pkgver%.*}/${pkgname}-${pkgver}.tar.gz" +@@ -30,9 +29,7 @@ build() { + ./bootstrap --prefix=/usr \ + --mandir=/share/man \ + --docdir=/share/doc/cmake \ +- --sphinx-man \ + --system-libs \ +- --qt-gui \ + --parallel=$(/usr/bin/getconf _NPROCESSORS_ONLN) + make + } +@@ -48,12 +45,6 @@ package() { + ln -s /usr/share/cmake-${pkgver%.*}/editors/vim/syntax/cmake.vim \ + "${vimpath}"/syntax/ + +- install -d "${pkgdir}"/usr/share/emacs/site-lisp/ +- emacs -batch -f batch-byte-compile \ +- "${pkgdir}"/usr/share/cmake-${pkgver%.*}/editors/emacs/cmake-mode.el +- ln -s /usr/share/cmake-${pkgver%.*}/editors/emacs/cmake-mode.el \ +- "${pkgdir}"/usr/share/emacs/site-lisp/ +- + install -Dm644 Copyright.txt \ + "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE + } diff --git a/src/stage3/patches/device-mapper.patch b/src/stage3/patches/device-mapper.patch new file mode 100644 index 0000000..85c8b0e --- /dev/null +++ b/src/stage3/patches/device-mapper.patch @@ -0,0 +1,20 @@ +--- a/PKGBUILD 2018-03-17 15:27:13.627685259 +0100 ++++ b/PKGBUILD 2018-03-17 15:29:10.705091088 +0100 +@@ -9,7 +9,7 @@ pkgrel=5 + arch=('x86_64') + url="http://sourceware.org/lvm2/" + license=('GPL2' 'LGPL2.1') +-makedepends=('systemd' 'thin-provisioning-tools') ++makedepends=('systemd') + groups=('base') + validpgpkeys=('88437EF5C077BD113D3B7224228191C1567E2C17') # Alasdair G Kergon + source=("https://mirrors.kernel.org/sourceware/lvm2/releases/LVM2.${pkgver}.tgz"{,.asc} +@@ -93,7 +93,7 @@ package_device-mapper() { + + package_lvm2() { + pkgdesc="Logical Volume Manager 2 utilities" +- depends=('bash' "device-mapper>=${pkgver}" 'libsystemd' 'readline' 'thin-provisioning-tools') ++ depends=('bash' "device-mapper>=${pkgver}" 'libsystemd' 'readline') + conflicts=('lvm' 'mkinitcpio<0.7') + backup=('etc/lvm/lvm.conf' + 'etc/lvm/lvmlocal.conf') diff --git a/src/stage3/patches/gnupg.patch b/src/stage3/patches/gnupg.patch new file mode 100644 index 0000000..7db079f --- /dev/null +++ b/src/stage3/patches/gnupg.patch @@ -0,0 +1,11 @@ +--- a/PKGBUILD 2018-03-17 22:00:00.159973631 +0100 ++++ b/PKGBUILD 2018-03-17 22:01:13.039546834 +0100 +@@ -14,7 +14,7 @@ arch=('x86_64') + optdepends=('libldap: gpg2keys_ldap' + 'libusb-compat: scdaemon' + 'pcsclite: scdaemon') +-makedepends=('libldap' 'libusb-compat' 'pcsclite') ++makedepends=('libldap') + checkdepends=('openssh') + depends=('npth' 'libgpg-error' 'libgcrypt' 'libksba' 'libassuan' + 'pinentry' 'bzip2' 'readline' 'gnutls' 'sqlite') diff --git a/src/stage3/patches/gpgme.patch b/src/stage3/patches/gpgme.patch new file mode 100644 index 0000000..14cc92e --- /dev/null +++ b/src/stage3/patches/gpgme.patch @@ -0,0 +1,32 @@ +--- a/PKGBUILD 2018-03-17 22:21:06.935704351 +0100 ++++ b/PKGBUILD 2018-03-17 22:28:17.113022076 +0100 +@@ -4,14 +4,14 @@ + # Contributor: Sarah Hay + + pkgbase=gpgme +-pkgname=(gpgme qgpgme python-gpgme python2-gpgme) ++pkgname=(gpgme python-gpgme python2-gpgme) + pkgver=1.10.0 + pkgrel=2 + pkgdesc="A C wrapper library for GnuPG" + arch=('x86_64') + url="http://www.gnupg.org/related_software/gpgme/" + license=('LGPL') +-makedepends=('libgpg-error' 'gnupg' 'qt5-base' 'python' 'python2' 'swig') ++makedepends=('libgpg-error' 'gnupg' 'python' 'python2') + source=("https://www.gnupg.org/ftp/gcrypt/${pkgbase}/${pkgbase}-${pkgver}.tar.bz2"{,.sig}) + sha256sums=('1a8fed1197c3b99c35f403066bb344a26224d292afc048cfdfc4ccd5690a0693' + 'SKIP') +@@ -37,9 +37,9 @@ package_gpgme() { + make DESTDIR="${pkgdir}" install + + # split qgpgme +- rm -r "${pkgdir}"/usr/include/{qgpgme,QGpgME}/ +- rm -r "${pkgdir}"/usr/lib/{cmake/QGpgme/,libqgpgme.*} +- rm -r "${pkgdir}"/usr/lib/python* ++ rm -rf "${pkgdir}"/usr/include/{qgpgme,QGpgME}/ ++ rm -rf "${pkgdir}"/usr/lib/{cmake/QGpgme/,libqgpgme.*} ++ rm -rf "${pkgdir}"/usr/lib/python* + } + + package_qgpgme() { diff --git a/src/stage3/patches/libpcap.patch b/src/stage3/patches/libpcap.patch new file mode 100644 index 0000000..0316c31 --- /dev/null +++ b/src/stage3/patches/libpcap.patch @@ -0,0 +1,19 @@ +--- a/PKGBUILD 2018-03-17 15:18:06.301643296 +0100 ++++ b/PKGBUILD 2018-03-17 15:19:31.298809846 +0100 +@@ -10,7 +10,7 @@ arch=('x86_64') + url='http://www.tcpdump.org/' + license=('BSD') + depends=('glibc' 'libnl' 'sh' 'libusbx' 'dbus') +-makedepends=('flex' 'bluez-libs') ++makedepends=('flex') + source=(http://www.tcpdump.org/release/libpcap-${pkgver}.tar.gz{,.sig} + mgmt.h + disable-remote.diff) +@@ -33,7 +33,6 @@ build() { + CFLAGS="$CFLAGS -I${srcdir}/include $(pkg-config libnl-genl-3.0 --cflags)" \ + ./configure --prefix=/usr \ + --enable-ipv6 \ +- --enable-bluetooth \ + --with-libnl + make + } diff --git a/src/stage3/patches/pacman.patch b/src/stage3/patches/pacman.patch new file mode 100644 index 0000000..bc56a60 --- /dev/null +++ b/src/stage3/patches/pacman.patch @@ -0,0 +1,176 @@ +--- a/PKGBUILD 2018-03-17 22:43:27.776000901 +0100 ++++ b/PKGBUILD 2018-03-17 22:45:57.506623741 +0100 +@@ -20,9 +20,7 @@ groups=('base' 'base-devel' 'base-openrc + depends=('bash' 'glibc' 'libarchive' 'curl' 'gpgme' + 'pacman-mirrorlist' 'archlinux-keyring' 'parabola-keyring' + 'archlinuxarm-keyring' 'archlinux32-keyring') +-makedepends=('asciidoc') +-makedepends+=('openssl>=1.1' 'openssl-1.0') # for during openssl 1.0->1.1 rebuild; remove on next rebuild +-checkdepends=('python2' 'fakechroot') ++makedepends+=('openssl>=1.1') + optdepends=('cron: run specified programs at scheduled times and related tools') + provides=("$pkgname-contrib") + conflicts=("$pkgname-contrib" "$pkgname-parabola" 'cacert-dot-org') +@@ -45,6 +43,7 @@ sha256sums=('dfd36086ad68564bcd977f4a1fa + '19853ea9a2138157bbb334eb7f3a9b3098b88e513678b54b7b4f19d2ffd6ecad' + '1b2c8f4ec84d0dc496516880a54b5e4deb78798618c9cf5e284a45303f156e58' + 'b2cb3ba229edba338c0af7d7f5bb1a6ef6143bcd453c693bfee0c02fa1cfa18a' ++ '19853ea9a2138157bbb334eb7f3a9b3098b88e513678b54b7b4f19d2ffd6ecad' + '0d174c7c47921cfbb35dacb9d099095e78f6f67bfaa86836a3e588552f14ed03' + '1df848c5038a3f81ae4dc79a4072d340109b02f56292a5c4a20c59f735edd2b3' + '1cc4af1cf8e2133d4520827cc7d3ffad731892595f8e699909002d2e40ad8df9' +@@ -71,7 +70,7 @@ build() { + cd "$pkgname-$pkgver" + + ./configure --prefix=/usr --sysconfdir=/etc \ +- --localstatedir=/var --enable-doc \ ++ --localstatedir=/var --disable-doc \ + --with-scriptlet-shell=/usr/bin/bash \ + --with-ldconfig=/usr/bin/ldconfig + make V=1 +@@ -96,6 +95,11 @@ build() { + mychost="armv7l-unknown-linux-gnueabihf" + myflags="-march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -O2 -pipe -fstack-protector-strong -fno-plt" + ;; ++ riscv64) ++ mycarch="riscv64" ++ mychost="riscv64-unknown-linux-gnu" ++ myflags="-march=rv64gc -mabi=lp64d -O2 -pipe -fstack-protector-strong -fno-plt" ++ ;; + esac + myldflags="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now" + +@@ -108,10 +112,6 @@ build() { + done + } + +-check() { +- make -C "$pkgname-$pkgver" check +-} +- + package() { + cd "$pkgname-$pkgver" + +--- /dev/null 2018-03-05 07:42:50.020223709 +0100 ++++ b/pacman.conf.riscv64 2018-03-17 22:43:27.778000923 +0100 +@@ -0,0 +1,120 @@ ++# ++# /etc/pacman.conf ++# ++# See the pacman.conf(5) manpage for option and repository directives ++ ++# ++# GENERAL OPTIONS ++# ++[options] ++# The following paths are commented out with their default values listed. ++# If you wish to use different paths, uncomment and update the paths. ++#RootDir = / ++#DBPath = /var/lib/pacman/ ++#CacheDir = /var/cache/pacman/pkg/ ++#LogFile = /var/log/pacman.log ++#GPGDir = /etc/pacman.d/gnupg/ ++#HookDir = /etc/pacman.d/hooks/ ++HoldPkg = pacman glibc ++#XferCommand = /usr/bin/curl -L -C - -f -o %o %u ++#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u ++#CleanMethod = KeepInstalled ++#UseDelta = 0.7 ++Architecture = auto ++ ++# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup ++#IgnorePkg = ++#IgnoreGroup = ++ ++#NoUpgrade = ++#NoExtract = ++ ++# Misc options ++#UseSyslog ++#Color ++#TotalDownload ++CheckSpace ++#VerbosePkgLists ++ ++# By default, pacman accepts packages signed by keys that its local keyring ++# trusts (see pacman-key and its man page), as well as unsigned packages. ++SigLevel = Required DatabaseOptional ++LocalFileSigLevel = Optional ++#RemoteFileSigLevel = Required ++ ++# NOTE: You must run `pacman-key --init` before first using pacman; the local ++# keyring can then be populated with the keys of all Arch/Parabola packagers ++# with `pacman-key --populate archlinux` and `pacman-key --populate parabola`. ++ ++# ++# REPOSITORIES ++# - can be defined here or included from another file ++# - pacman will search repositories in the order defined here ++# - local/custom mirrors can be added here or in separate files ++# - repositories listed first will take precedence when packages ++# have identical names, regardless of version number ++# - URLs will have $repo replaced by the name of the current repo ++# - URLs will have $arch replaced by the name of the architecture ++# ++# Repository entries are of the format: ++# [repo-name] ++# Server = ServerName ++# Include = IncludePath ++# ++# The header [repo-name] is crucial - it must be present and ++# uncommented to enable the repo. ++# ++ ++# The testing repositories are disabled by default. To enable, uncomment the ++# repo name header and Include lines. You can add preferred servers immediately ++# after the header, and they will be used before the default mirrors. ++ ++# NOTE: Nonprism is a particular repository that aims to provide software built ++# and patched without services under global data surveillance programs like PRISM, ++# XKeyscore and Tempora. For more info see: https://wiki.parabola.nu/Nonprism ++ ++#[nonprism-testing] ++#Include = /etc/pacman.d/mirrorlist ++ ++#[nonprism] ++#Include = /etc/pacman.d/mirrorlist ++ ++#[libre-testing] ++#Include = /etc/pacman.d/mirrorlist ++ ++[libre] ++Include = /etc/pacman.d/mirrorlist ++ ++#[testing] ++#Include = /etc/pacman.d/mirrorlist ++ ++[core] ++Include = /etc/pacman.d/mirrorlist ++ ++[extra] ++Include = /etc/pacman.d/mirrorlist ++ ++#[community-testing] ++#Include = /etc/pacman.d/mirrorlist ++ ++[community] ++Include = /etc/pacman.d/mirrorlist ++ ++# The PCR (Parabola Community Repository) contains packages maintained by trusted ++# members of the Parabola community. It also contains packages maintained by ++# Parabola developers, but that the developer decided didn't belong in core/libre. ++ ++#[pcr-testing] ++#Include = /etc/pacman.d/mirrorlist ++ ++[pcr] ++Include = /etc/pacman.d/mirrorlist ++ ++# Parabola also supports another community projects and personal repositories, to ++# find them check out this wiki page: https://wiki.parabola.nu/Repositories ++ ++# An example of a custom package repository. See the pacman manpage for ++# tips on creating your own repositories. ++#[custom] ++#SigLevel = Optional TrustAll ++#Server = file:///home/custompkgs diff --git a/src/stage3/patches/pinentry.patch b/src/stage3/patches/pinentry.patch new file mode 100644 index 0000000..47cc023 --- /dev/null +++ b/src/stage3/patches/pinentry.patch @@ -0,0 +1,20 @@ +--- a/PKGBUILD 2018-03-17 21:56:15.019771323 +0100 ++++ b/PKGBUILD 2018-03-17 21:57:29.938546834 +0100 +@@ -10,7 +10,6 @@ url='http://gnupg.org/related_software/p + arch=('x86_64') + license=('GPL') + depends=('ncurses' 'libcap' 'libassuan' 'libsecret') +-makedepends=('gtk2' 'qt5-base' 'gcr') + optdepends=('gtk2: gtk2 backend' + 'qt5-base: qt backend' + 'gcr: gnome3 backend') +@@ -27,9 +26,6 @@ build() { + --enable-pinentry-curses \ + --enable-fallback-curses \ + --enable-pinentry-emacs \ +- --enable-pinentry-gtk2 \ +- --enable-pinentry-gnome3 \ +- --enable-pinentry-qt \ + --enable-libsecret \ + + make diff --git a/src/stage3/patches/python-numpy.patch b/src/stage3/patches/python-numpy.patch new file mode 100644 index 0000000..d00802b --- /dev/null +++ b/src/stage3/patches/python-numpy.patch @@ -0,0 +1,55 @@ +--- a/PKGBUILD 2018-03-17 17:57:14.313844109 +0100 ++++ b/PKGBUILD 2018-03-17 18:03:26.310554392 +0100 +@@ -13,14 +13,21 @@ arch=('x86_64') + license=('custom') + url="http://www.numpy.org/" + makedepends=('cblas' 'lapack' 'python' 'python2' 'python-setuptools' 'python2-setuptools' 'gcc-fortran' +- 'python-nose' 'python2-nose' 'cython' 'cython2') ++ 'cython' 'cython2') + options=('staticlibs') +-source=("$pkgbase-$pkgver.tar.gz::https://github.com/numpy/numpy/archive/v$pkgver.tar.gz" 'site.cfg') ++source=("$pkgbase-$pkgver.tar.gz::https://github.com/numpy/numpy/archive/v$pkgver.tar.gz" 'site.cfg' ++ numpy-riscv64.patch) + sha512sums=('65b10462011e033669b700f0688df2e8630a097323fc7d72e71549fdfc2258546fe6f1317e0d51e1a0c9ab86451e0998ccbc7daa9af690652a96034571d5b76b' +- '03a0f161be4963625f110a26167efbd300a12bd4cf99c8250c47ac865466d03fc8640e7e4fb6a59c39bf8b797609f5ed50afbc720d1fcbd2c4c57263cf8b406b') ++ '03a0f161be4963625f110a26167efbd300a12bd4cf99c8250c47ac865466d03fc8640e7e4fb6a59c39bf8b797609f5ed50afbc720d1fcbd2c4c57263cf8b406b' ++ '82e25d6d73139d915a43cea5e76b2cffdf91fb6670d2df8226c928692ca489cf324fab4f0884bab368e28d8022a13d87760b3179521ce16614aa566eb222a3cd') + + prepare() { + cp site.cfg numpy-$pkgver ++ ++ cd numpy-$pkgver ++ patch -Np1 -i "$srcdir"/numpy-riscv64.patch ++ cd .. ++ + cp -a numpy-$pkgver numpy-py2-$pkgver + cd numpy-py2-$pkgver + +--- /dev/null 2018-03-05 07:42:50.020223709 +0100 ++++ b/numpy-riscv64.patch 2018-03-17 18:03:11.030395477 +0100 +@@ -0,0 +1,25 @@ ++diff -ur a/numpy/core/include/numpy/npy_cpu.h b/numpy/core/include/numpy/npy_cpu.h ++--- a/numpy/core/include/numpy/npy_cpu.h 2016-06-18 17:15:37.000000000 +0100 +++++ b/numpy/core/include/numpy/npy_cpu.h 2016-10-26 17:43:45.604372275 +0100 ++@@ -76,6 +76,8 @@ ++ #define NPY_CPU_ARCEL ++ #elif defined(__arc__) && defined(__BIG_ENDIAN__) ++ #define NPY_CPU_ARCEB +++#elif defined(__riscv) +++ #define NPY_CPU_RISCV64 ++ #else ++ #error Unknown CPU, please report this to numpy maintainers with \ ++ information about your platform (OS, CPU and compiler) ++diff -ur a/numpy/core/include/numpy/npy_endian.h b/numpy/core/include/numpy/npy_endian.h ++--- a/numpy/core/include/numpy/npy_endian.h 2016-06-18 17:15:37.000000000 +0100 +++++ b/numpy/core/include/numpy/npy_endian.h 2016-10-26 17:43:58.381378464 +0100 ++@@ -40,7 +40,8 @@ ++ || defined(NPY_CPU_SH_LE) \ ++ || defined(NPY_CPU_MIPSEL) \ ++ || defined(NPY_CPU_PPC64LE) \ ++- || defined(NPY_CPU_ARCEL) +++ || defined(NPY_CPU_ARCEL) \ +++ || defined(NPY_CPU_RISCV64) ++ #define NPY_BYTE_ORDER NPY_LITTLE_ENDIAN ++ #elif defined(NPY_CPU_PPC) \ ++ || defined(NPY_CPU_SPARC) \ diff --git a/src/stage3/patches/source-highlight.patch b/src/stage3/patches/source-highlight.patch new file mode 100644 index 0000000..2eec78a --- /dev/null +++ b/src/stage3/patches/source-highlight.patch @@ -0,0 +1,11 @@ +--- a/PKGBUILD 2018-03-17 21:00:05.386889081 +0100 ++++ b/PKGBUILD 2018-03-17 21:37:30.246676777 +0100 +@@ -10,7 +10,7 @@ arch=('x86_64') + url="http://www.gnu.org/software/src-highlite/" + license=('GPL') + depends=('bash' 'boost-libs') +-makedepends=('ctags' 'boost') ++makedepends=('boost') + source=("ftp://ftp.gnu.org/gnu/src-highlite/${pkgname}-${pkgver}.tar.gz") + md5sums=('3243470706ef5fefdc3e43b5306a4e41') + -- cgit v1.2.2