Update static libraries

* Use an older glibc so resulting binaries can run
  on older systems (without having to link statically
  against glibc)
* Call packages static-compat-* to make it clear that
  these packages are intended for compatibility with
  older distributions
* Add further libraries to get static-compat-qt6-base
  and some other static-compat-qt6-* packages building
This commit is contained in:
Martchus 2022-03-07 10:50:48 +01:00
parent 46e9e2f092
commit 5411a9d1fd
244 changed files with 9027 additions and 1362 deletions

View File

@ -9,7 +9,8 @@ Contains PKGBUILD files for creating Arch Linux packages:
* misc packages, eg. Subtitle Composer, openelec-dvb-firmware, Jangouts
* `mingw-w64-*` packages which allow to build for Windows under Arch Linux,
eg. FreeType 2, Qt 5 and Qt 6
* `*-static` packages containing static libraries
* `static-compat-*` packages containing static libraries to build self-contained
applications running on older GNU/Linux distributions under Arch Linux
* `android-*` packages which allow to build for Android under Arch Linux,
eg. iconv, Boost, OpenSSL, CppUnit, Qt 5 and Kirigami
* `apple-darwin-*` packages which allow to build for MaxOS X under Arch
@ -232,28 +233,43 @@ Here are neverthless some useful hints to run WINE manually:
* See https://wiki.winehq.org/Wine_User's_Guide for more information
## Static GNU/Linux libraries
This repository contains several `*-static` packages providing static libraries
intended to distribute "self-contained" executables. These packages are still
experimental and are not be regularily updated at this point.
This repository contains several `static-compat-*` packages providing static
libraries intended to distribute "self-contained" executables. These libraries
are built against and older version of glibc to be able to run on older
distributions without having to link against glibc statically. The resulting
binaries should run on distributions with glibc 2.26 or newer (or Linux 4.4 or
newer when linking against glibc statically), e.g. openSUSE Leap 15.0, Fedora
27, Debian 10 and Ubuntu 18.04. The packages might not be updated as regularily
as their normal counterparts but the idea is to provide an environment with a
recent version of GCC/libstdc++ and other libraries such as Qt and Boost but
still be able to run the resulting executables on older distributions. Note that
these packages are still experimental at this point.
It would conceivable to build even Qt as a static library and make even a fully
statically linked executable. However, it would not be possible to support
OpenGL because glvnd and vendor provided OpenGL libraries are always dynamic
libraries. It is also not clear whether it makes sense to link against libc and
X11/Wayland client libraries statically. Maybe it makes sense to aim for a
partially statically linked build instead where libc/OpenGL/X11/Wayland are
assumed to be provided by the GNU/Linux system but other libraries like Qt are
linked against statically. This would be similar to AppImage where a lot of
libraries are bundled but certain "core libraries" are expected to be provided
by the system.
To use the packages, simply invoke `/usr/static-compat/bin/g++` instead of
`/usr/bin/g++`. The package `static-compat-environment` provide a script to set
a few environment variables to make this easier. There are also packages
providing build system wrappers such as `static-compat-cmake`.
It would be conceivable to make fully statically linked executables. However, it
would not be possible to support OpenGL because glvnd and vendor provided OpenGL
libraries are always dynamic libraries. It makes also no sense to link against
glibc (and possibly other core libraries) statically as they might use `dlopen`.
Therefore this setup aims for a partially statically linked build instead, where
stable core libraries like glibc/pthreads/OpenGL/… are assumed to be provided by
the GNU/Linux system but other libraries like libstdc++, Boost and Qt are linked
against statically. This is similar to AppImage where a lot of libraries are
bundled but certain core libraries are expected to be provided by the system.
Note that I decided to let static libraries live within the subprefix
`/usr/static` (in contrast to packages found in the AUR). The reason is that the
version might not be kept 100 % in sync with the shared counterpart. Hence it
makes sense to make the static packages independent with their own headers and
configuration files to avoid problems due to mismatching versions. Besides, some
projects (such as Qt) do not support installing shared and static libraries
within the same prefix at the same time because the config files would clash.
`/usr/static-compat` (in contrast to `-static` packages found in the AUR). The
main reason is that my packaging requires a custom glibc/GCC build for
compatibility and I suppose that simply needs to live within its own prefix.
Besides, the version might not be kept 100 % in sync with the shared
counterpart. Hence it makes sense to make the static packages independent with
their own headers and configuration files to avoid problems due to mismatching
versions. Additionally, some projects (such as Qt) do not support installing
shared and static libraries within the same prefix at the same time because the
config files would clash.
## Copyright notice and license
Copyright © 2015-2022 Marius Kittler

View File

@ -0,0 +1,85 @@
# Contributor: Evangelos Foutras <evangelos@foutrelis.com>
# Contributor: Levente Polyak <anthraxx[at]archlinux[dot]org>
# Contributor: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Contributor: Marius Knaust <marius.knaust@gmail.com>
# Contributor: Ionut Biru <ibiru@archlinux.org>
# Contributor: Stéphane Gaudreault <stephane@archlinux.org>
# Contributor: kevin <kevin@archlinux.org>
# Contributor: Giovanni Scafora <giovanni@archlinux.org>
# Contributor: Kritoke <kritoke@gamebox.net>
# Contributor: Luca Roccia <little_rock@users.sourceforge.net>
_pkgname=boost
pkgname=static-compat-$_pkgname
pkgver=1.78.0
pkgrel=1
_srcname=boost_${pkgver//./_}
pkgdesc="Free peer-reviewed portable C++ source libraries"
arch=('x86_64')
url="https://www.boost.org/"
license=('custom')
options=('staticlibs')
depends=('static-compat-zlib' 'static-compat-zstd' 'static-compat-bzip2')
makedepends=('static-compat-environment')
source=(https://boostorg.jfrog.io/artifactory/main/release/$pkgver/source/$_srcname.tar.gz
$_pkgname-b2-fix-lib-install.patch::https://github.com/bfgroup/b2/commit/78fd284a42ca.patch
$_pkgname-ublas-c++20-iterator.patch::https://github.com/boostorg/ublas/commit/a31e5cffa85f.patch)
sha256sums=('94ced8b72956591c4775ae2207a9763d3600b30d9d7446562c552f0a14a63be7'
'd233b16920ad7da8bb6e02bf5fb4e429592057b4f4db28d4babf3850e837a8db'
'aa38addb40d5f44b4a8472029b475e7e6aef1c460509eb7d8edf03491dc1b5ee')
prepare() {
cd $_srcname
# https://github.com/bfgroup/b2/issues/104
patch -Np1 -d tools/build <../$_pkgname-b2-fix-lib-install.patch
# https://github.com/boostorg/ublas/pull/97
patch -Np2 -i ../$_pkgname-ublas-c++20-iterator.patch
}
build() {
source static-compat-environment
local JOBS="$(sed 's/.*\(-j *[0-9]\+\).*/\1/' <<<$MAKEFLAGS)"
pushd $_srcname/tools/build
./bootstrap.sh --cxxflags="$CXXFLAGS $LDFLAGS"
./b2 install --prefix="$srcdir"/fakeinstall
ln -s b2 "$srcdir"/fakeinstall/bin/bjam
popd
cd $_srcname
./bootstrap.sh --with-toolset=gcc
# boostbook is needed by quickbook
install -dm755 "$srcdir"/fakeinstall/share/boostbook
cp -a tools/boostbook/{xsl,dtd} "$srcdir"/fakeinstall/share/boostbook/
# install to $srcdir/fakeinstall in preparation for split packaging
./b2 install \
variant=release \
debug-symbols=off \
threading=multi \
runtime-link=static \
link=static \
toolset=gcc \
--without-python --without-mpi --without-graph_parallel \
cflags="$CPPFLAGS $CFLAGS -fPIC -O3 -ffat-lto-objects" \
cxxflags="$CPPFLAGS $CXXFLAGS -fPIC -O3 -ffat-lto-objects" \
linkflags="$LDFLAGS" \
--layout=system \
$JOBS \
\
--prefix="$srcdir"/fakeinstall
}
package() {
source static-compat-environment
install -d "$pkgdir/$static_compat_prefix"/lib
cp -a fakeinstall/lib/*.a "$pkgdir/$static_compat_prefix"/lib/
cp -a fakeinstall/lib/cmake "$pkgdir/$static_compat_prefix"/lib/
cp -a fakeinstall/{bin,include,share/boost-build} "$pkgdir/$static_compat_prefix"/
install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname" $_srcname/LICENSE_1_0.txt
}

View File

@ -0,0 +1,54 @@
# Contributor: Felix Yan <felixonmars@archlinux.org>
# Contributor: Levente Polyak <anthraxx[at]archlinux[dot]org>
# Contributor: Lex Black <autumn-wind at web dot de>
# Contributor: TingPing <tingping@tingping.se>
# Contributor: Guillaume Horel <guillaume.horel@gmail.com>
pkgname=static-compat-brotli
_gitcommit=e61745a6b7add50d380cfd7d3883dd6c62fc2c71
pkgver=1.0.9
pkgrel=1
pkgdesc='Generic-purpose lossless compression algorithm'
url='https://github.com/google/brotli'
arch=('x86_64')
license=('MIT')
depends=('gcc-libs-static-compat')
makedepends=('static-compat-cmake' 'git')
options=('staticlibs')
source=(${pkgname}::"git+${url}#commit=${_gitcommit}")
sha512sums=('SKIP')
prepare() {
cd ${pkgbase}
git cherry-pick -n 09b0992b6acb7faa6fd3b23f9bc036ea117230fc # Fix broken Libs: in pc file
}
pkgver() {
cd ${pkgbase}
git describe --tags --match 'v*' | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g'
}
build() {
source static-compat-environment
cd ${pkgbase}
static-compat-cmake -B build \
-DCMAKE_BUILD_TYPE=Release
make -C build VERBOSE=1
}
check() {
source static-compat-environment
cd ${pkgbase}
make test
}
package() {
source static-compat-environment
cd ${pkgbase}
make -C build DESTDIR="$pkgdir" install
find "$pkgdir/$static_compat_prefix" -iname '*.so*' -delete
for file in "$pkgdir/$static_compat_prefix"/lib/pkgconfig/*.pc; do
sed -i -E 's/-lbrotli(enc|dec|common)/\0-static/g' "$file"
done
install -Dm 644 LICENSE -t "$pkgdir/usr/share/licenses/$pkgname"
}

View File

@ -2,14 +2,15 @@
# Contributor: Judd <jvinet@zeroflux.org>
_pkgname=bzip2
pkgname=$_pkgname-static
pkgname=static-compat-$_pkgname
pkgver=1.0.8
pkgrel=1
pkgdesc="A high-quality data compression program"
arch=('x86_64')
license=('BSD')
url="https://sourceware.org/bzip2/"
depends=('glibc' 'sh')
depends=('glibc-static-compat')
makedepends=('static-compat-environment')
options=(staticlibs)
source=(https://sourceware.org/pub/bzip2/$_pkgname-$pkgver.tar.gz{,.sig}
bzip2.pc)
@ -25,22 +26,25 @@ prepare() {
}
build() {
source static-compat-environment
cd $_pkgname-$pkgver
make libbz2.a CC="gcc $CFLAGS $CPPFLAGS $LDFLAGS"
make libbz2.a CC="$CC $CFLAGS $CPPFLAGS $LDFLAGS"
}
check() {
source static-compat-environment
cd $_pkgname-$pkgver
make test
}
package() {
source static-compat-environment
cd $_pkgname-$pkgver
install -dm755 "$pkgdir"/usr/static/{lib,include}
cp -a libbz2.a "$pkgdir"/usr/static/lib
install -m644 bzlib.h "$pkgdir"/usr/static/include/
install -Dm644 bzip2.pc -t "$pkgdir"/usr/static/lib/pkgconfig
install -dm755 "$pkgdir/$static_compat_prefix"/{lib,include}
cp -a libbz2.a "$pkgdir/$static_compat_prefix"/lib
install -m644 bzlib.h "$pkgdir/$static_compat_prefix"/include/
install -Dm644 bzip2.pc -t "$pkgdir/$static_compat_prefix"/lib/pkgconfig
install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/${pkgname}/LICENSE
}

View File

@ -0,0 +1,49 @@
# Maintainer: Martchus <martchus@gmx.net>
# All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where
# you also find the URL of a binary repository.
_reponame=cpp-utilities
pkgname=static-compat-c++utilities
_name=${pkgname#static-compat-}
pkgver=5.14.0
pkgrel=1
arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64')
pkgdesc='Common C++ classes and routines such as argument parser, IO and conversion utilities'
license=('GPL')
depends=('gcc-libs-static-compat')
optdepends=("$_name-doc: API documentation")
makedepends=('ninja' 'static-compat-cmake')
checkdepends=('static-compat-cppunit')
url="https://github.com/Martchus/${_reponame}"
source=("${_name}-${pkgver}.tar.gz::https://github.com/Martchus/${_reponame}/archive/v${pkgver}.tar.gz")
sha256sums=('7a173bb2355a9b5fef17d3fe6795f026f58afe63b1295f8567c042422e2cde0e')
prepare() {
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}"
}
build() {
check_buildoption ccache y && ccache_args='
-DCMAKE_C_COMPILER_LAUNCHER=ccache
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache'
source static-compat-environment
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}"
static-compat-cmake \
-G Ninja \
-DCMAKE_BUILD_TYPE:STRING='Release' \
.
ninja
}
check() {
source static-compat-environment
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}"
ninja check
}
package() {
source static-compat-environment
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}"
DESTDIR="${pkgdir}" ninja install
}

View File

@ -0,0 +1,25 @@
pkgname=static-compat-cmake
pkgver=1
pkgrel=1
arch=('any')
pkgdesc="CMake wrapper to use gcc-static-compat"
depends=('cmake' 'static-compat-environment')
license=('GPL')
url="https://github.com/Martchus/PKGBUILDs"
source=("static-compat-cmake.sh")
# "toolchain-static-compat.cmake")
sha256sums=('SKIP' 'SKIP')
build() {
source static-compat-environment
#sed "s|@PREFIX@|$static_compat_prefix|g;s|@PROCESSOR@|$CARCH|g" toolchain-static-compat.cmake > "toolchain-static-compat-#$CARCH.cmake"
}
package() {
source static-compat-environment
install -d "${pkgdir}"/usr/bin
#install -d "${pkgdir}/$static_compat_prefix"/share/cmake-toolchain
#install -m 644 "toolchain-static-compat-$CARCH.cmake" "${pkgdir}/$static_compat_prefix"/share/cmake-toolchain
install -m 755 "static-compat-cmake.sh" "${pkgdir}"/usr/bin/static-compat-cmake
}

View File

@ -0,0 +1,14 @@
#!/bin/sh
source static-compat-environment
cmake \
-DCMAKE_INSTALL_PREFIX:PATH="$static_compat_prefix" \
-DCMAKE_INSTALL_LIBDIR:PATH=lib \
-DCMAKE_FIND_ROOT_PATH:PATH="$static_compat_prefix" \
-DCMAKE_C_COMPILER:PATH="$static_compat_prefix/bin/gcc" \
-DCMAKE_CXX_COMPILER:PATH="$static_compat_prefix/bin/g++" \
-DCMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES:PATH="$static_compat_prefix"/include \
-DCMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES:PATH="$static_compat_prefix"/include \
-DBUILD_SHARED_LIBS:BOOL=OFF \
"$@"

View File

@ -0,0 +1,13 @@
set (CMAKE_SYSTEM_NAME Linux)
set (CMAKE_SYSTEM_PROCESSOR @PROCESSOR@)
# specify the cross compiler
set (CMAKE_C_COMPILER @PREFIX@/bin/gcc)
set (CMAKE_CXX_COMPILER @PREFIX@/bin/g++)
# where is the target environment
set (CMAKE_FIND_ROOT_PATH @PREFIX@)
set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH)
set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
set (CMAKE_FIND_ROOT_PATH_MODE_PACKAGE BOTH)

View File

@ -0,0 +1,17 @@
pkgname=static-compat-configure
pkgver=1
pkgrel=1
arch=('any')
pkgdesc="configure wrapper for gcc-static-compat"
depends=('static-compat-environment')
license=('GPL')
url="https://github.com/Martchus/PKGBUILDs"
source=("static-compat-configure.sh")
md5sums=('SKIP')
package() {
install -d "${pkgdir}"/usr/bin
install -m 755 static-compat-configure.sh "${pkgdir}"/usr/bin/static-compat-configure
}

View File

@ -0,0 +1,19 @@
#!/bin/sh
# check if last arg is a path to configure, else use parent
for last; do true; done
if test -x "${last}/configure"; then
config_path="$last"
elif [[ -e ./configure ]]; then
config_path=.
else
config_path=..
fi
source static-compat-environment
${config_path}/configure \
--prefix="$static_compat_prefix" \
--libdir="$static_compat_prefix/lib" \
--includedir="$static_compat_prefix/include" \
"$@"

31
cppunit/default/PKGBUILD Normal file
View File

@ -0,0 +1,31 @@
# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
# Contributor: Jeff 'codemac' Mickey <jeff@archlinux.org>
pkgname=cppunit
pkgver=1.15.1
pkgrel=2
pkgdesc="A C++ unit testing framework"
arch=('x86_64')
url="https://www.freedesktop.org/wiki/Software/cppunit"
license=('LGPL')
depends=('sh' 'gcc-libs')
makedepends=('doxygen')
options=('!emptydirs')
source=(https://dev-www.libreoffice.org/src/${pkgname}-${pkgver}.tar.gz)
sha256sums=('89c5c6665337f56fd2db36bc3805a5619709d51fb136e51937072f63fcc717a7')
build() {
cd ${pkgname}-${pkgver}
./configure --prefix=/usr --disable-static
make
}
check() {
cd ${pkgname}-${pkgver}
make check
}
package() {
cd ${pkgname}-${pkgver}
make DESTDIR="${pkgdir}" install
}

View File

@ -0,0 +1,33 @@
_pkgname=cppunit
pkgname=static-compat-$_pkgname
pkgver=1.15.1
pkgrel=1
pkgdesc="A C++ unit testing framework"
arch=('x86_64')
url="https://www.freedesktop.org/wiki/Software/cppunit"
license=('LGPL')
depends=('sh' 'gcc-libs-static-compat')
makedepends=('static-compat-configure')
options=('!emptydirs' 'staticlibs')
source=(https://dev-www.libreoffice.org/src/${_pkgname}-${pkgver}.tar.gz)
sha256sums=('89c5c6665337f56fd2db36bc3805a5619709d51fb136e51937072f63fcc717a7')
build() {
source static-compat-environment
cd ${_pkgname}-${pkgver}
static-compat-configure --disable-shared
make
}
check() {
source static-compat-environment
cd ${_pkgname}-${pkgver}
make check
}
package() {
source static-compat-environment
cd ${_pkgname}-${pkgver}
make DESTDIR="${pkgdir}" install
rm -r "$pkgdir/$static_compat_prefix/share"
}

View File

@ -4,24 +4,24 @@
# Contributor: Link Dupont <link@subpop.net>
_pkgname=dbus
pkgname=$_pkgname-static
pkgver=1.12.20
pkgname=static-compat-$_pkgname
pkgver=1.14.0
pkgrel=1
pkgdesc="Freedesktop.org message bus system"
url="https://wiki.freedesktop.org/www/Software/dbus/"
arch=(x86_64)
license=(GPL custom)
depends=(expat-static)
makedepends=(xmlto python yelp-tools git autoconf-archive)
depends=(static-compat-expat)
makedepends=(static-compat-configure xmlto python yelp-tools git autoconf-archive)
options=(!emptydirs staticlibs)
#source=("git+https://gitlab.freedesktop.org/dbus/dbus.git?signed#tag=dbus-$pkgver"
source=("git+https://gitlab.freedesktop.org/dbus/dbus.git#tag=dbus-$pkgver"
source=("git+https://gitlab.freedesktop.org/dbus/dbus.git?signed#tag=dbus-$pkgver"
no-fatal-warnings.diff)
sha256sums=('SKIP'
'6958eeec07557b92a28419eb1702331ee2f0a6fd17285e37dfb6130b9fa4cf6e')
#validpgpkeys=('DA98F25C0871C49A59EAFF2C4DE8FF2A63C7CC90') # Simon McVittie <simon.mcvittie@collabora.co.uk>
'c10395be67e1127a58d7173b587fbbf16f8a8b271c41293558fcf9e27c185478')
validpgpkeys=('DA98F25C0871C49A59EAFF2C4DE8FF2A63C7CC90') # Simon McVittie <simon.mcvittie@collabora.co.uk>
prepare() {
source static-compat-environment
cd dbus
# Allow us to enable checks without them being fatal
@ -31,12 +31,12 @@ prepare() {
}
build() {
source static-compat-environment
cd dbus
./configure \
--prefix=/usr/static \
static-compat-configure \
--sysconfdir=/etc \
--localstatedir=/var \
--libexecdir=/usr/static/lib/dbus-1.0 \
--libexecdir="$static_compat_prefix"/lib/dbus-1.0 \
runstatedir=/run \
--enable-inotify \
--disable-audit \
@ -52,12 +52,21 @@ build() {
}
check() {
source static-compat-environment
make -C dbus check
}
package() {
source static-compat-environment
DESTDIR="$pkgdir" make -C dbus install
rm -r "$pkgdir"/{etc,var,usr/lib,usr/static/bin,usr/static/share/doc}
rm -r "$pkgdir"/{etc,var}
rm -r "$pkgdir/$static_compat_prefix"/{bin,share/doc}
# remove -DDBUS_STATIC_BUILD from pc file
# note: Qt's build script adds this as compiler flag `-D-DDBUS_STATIC_BUILD` which breaks
# compilation. There's a patch to cope with the missing define anyways (taken from
# mingw-w64 variant) so this should be fine.
sed -i 's|-DDBUS_STATIC_BUILD||g' "$pkgdir/$static_compat_prefix"/lib/pkgconfig/dbus-1.pc
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 dbus/COPYING
}

View File

@ -1,10 +1,10 @@
diff --git i/dbus/dbus-internals.c w/dbus/dbus-internals.c
index 267aef97..b1064e85 100644
index ab498b15..cf86f4ae 100644
--- i/dbus/dbus-internals.c
+++ w/dbus/dbus-internals.c
@@ -185,7 +185,7 @@ const char *_dbus_no_memory_message = "Not enough memory";
static dbus_bool_t warn_initted = FALSE;
@@ -193,7 +193,7 @@ static dbus_bool_t warn_initted = FALSE;
* threads, the worst that will happen is that warnings get their default
* fatal/non-fatal nature. */
static dbus_bool_t fatal_warnings = FALSE;
-static dbus_bool_t fatal_warnings_on_check_failed = TRUE;
+static dbus_bool_t fatal_warnings_on_check_failed = FALSE;

View File

@ -12,7 +12,7 @@ use strict;
use utf8;
my @vcs_0_variant_suffixes = (qw(git svn hg));
my @cfg_0_variant_suffixes = (qw(static));
my @cfg_0_variant_suffixes = (qw(static static-compat));
my @cfg_1_variant_suffixes = (qw(doc test cli angle dynamic opengl noopengl));
my @variant_suffixes = (\@vcs_0_variant_suffixes, \@cfg_0_variant_suffixes, \@cfg_1_variant_suffixes);
@ -47,7 +47,8 @@ sub _render_deps {
my ($package_prefix, $controller, @d) = @_;
my $prefix = $controller->stash('package_name_prefix');
my $suffix = $controller->stash('package_name_suffix');
return join(' ', map { "'${prefix}${package_prefix}-${_}${suffix}'" } @d);
my $quote = $prefix =~ qr/^(mingw-w64|android)/ ? "'" : '';
return join(' ', map { "${quote}${prefix}${package_prefix}-${_}${suffix}${quote}" } @d);
}
sub _render_optdeps {
my ($package_prefix, $controller, %d) = @_;

View File

@ -0,0 +1,108 @@
# Maintainer: Martchus <martchus@gmx.net>
<%== content_for 'additional_contributors' %>\
# All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where
# you also find the URL of a binary repository.
# This file is created from PKGBUILD.sh.ep contained by the mentioned repository.
# Do not edit it manually! See README.md in the repository's root directory
# for more information.
% if ($patch_files->size) {
# All patches are managed at https://github.com/Martchus/qt<%== $qt_module %>
% }
pkgname=<%= $package_name %>
_qtver=6.3.0
pkgver=${_qtver/-/}
pkgrel=1
arch=(x86_64)
url='https://www.qt.io'
license=(GPL3 LGPL3 FDL custom)
pkgdesc='A cross-platform application and UI framework'
depends=(shared-mime-info
static-compat-brotli static-compat-dbus static-compat-double-conversion
static-compat-fontconfig static-compat-libb2 static-compat-libglvnd
static-compat-libice static-compat-libinput static-compat-libjpeg-turbo
static-compat-libxdamage static-compat-libxkbcommon static-compat-libxmu
static-compat-libxxf86vm static-compat-md4c static-compat-pcre2
static-compat-sqlite static-compat-xcb-util-image static-compat-xcb-util-keysyms
static-compat-xcb-util-renderutil static-compat-vulkan-headers
static-compat-xcb-util-wm static-compat-xorgproto static-compat-xtrans)
makedepends=(static-compat-cmake xdg-utils ninja)
options=('!strip' '!buildflags' 'staticlibs' '!emptydirs')
_pkgfqn="qt<%== $qt_module %>-everywhere-src-${_qtver}"
source=("https://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/submodules/${_pkgfqn}.tar.xz"\
<%== include 'fragments/source_file_list', relevant_files => $patch_files %>)
sha256sums=('<%== $qt_module_sha256 %>'\
<%== include 'fragments/sha256_list', relevant_files => $patch_files %>)
% if ($patch_files->size || content_for('prepare')->size) {
prepare () {
cd $_pkgfqn
% if ($patch_files->size) {
# apply patches; further descriptions can be found in patch files itself
for patch in "$srcdir/"*.patch; do
msg2 "Applying patch $patch"
patch -p1 -i "$patch"
done
% }
<%== content_for 'prepare' %>\
}
% }
build() {
check_buildoption ccache y && ccache_args='
-DCMAKE_C_COMPILER_LAUNCHER=ccache
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache'
source static-compat-environment
export PATH=$PWD:$PATH
printf '#!/usr/bin/bash\nexec /usr/bin/pkg-config --static "$@"\n' > pkg-config
chmod +x pkg-config
static-compat-cmake<%== $static_suffix %> -G Ninja -B build -S $_pkgfqn \\
$ccache_args \\
-DCMAKE_SKIP_INSTALL_RPATH=ON \\
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \\
-DINSTALL_BINDIR=lib/qt6/bin \\
-DINSTALL_DOCDIR=share/doc/qt6 \\
-DINSTALL_ARCHDATADIR=lib/qt6 \\
-DINSTALL_DATADIR=share/qt6 \\
-DINSTALL_INCLUDEDIR=include/qt6 \\
-DINSTALL_MKSPECSDIR=lib/qt6/mkspecs \\
-DINSTALL_EXAMPLESDIR=share/doc/qt6/examples \\
-DINPUT_openssl=linked \\
-DQT_FEATURE_openssl_linked=ON \\
-DQT_FEATURE_static_runtime=ON \\
-DQT_FEATURE_system_sqlite=ON \\
-DQT_FEATURE_system_xcb_xinput=ON \\
-DQT_FEATURE_xcb=ON \\
-DQT_FEATURE_xcb_sm=ON \\
-DQT_FEATURE_icu=OFF \\
-DQT_FEATURE_kms=OFF \\
-DQT_FEATURE_eglfs=OFF \\
-DQT_FEATURE_gbm=OFF \\
-DQT_FEATURE_linuxfb=OFF \\
-DQT_FEATURE_gssapi=OFF \\
-DQT_FEATURE_fontconfig=ON \\
-DGLIB2_USE_PKG_CONFIG=ON \\
-DCMAKE_INSTALL_OLDINCLUDEDIR=$static_compat_prefix/include \\
-DGSSAPI_INCLUDE_DIRS=$static_compat_prefix/include \\
-DICU_INCLUDE_DIR=$static_compat_prefix/include \\
-DLibdrm_INCLUDE_DIR=$static_compat_prefix/include \\
-Dgbm_INCLUDE_DIR=$static_compat_prefix/include
VERBOSE=1 cmake --build build
}
package() {
source static-compat-environment
DESTDIR="$pkgdir" cmake --install build
install -Dm644 $_pkgfqn/LICENSE* -t "$pkgdir"/usr/share/licenses/$pkgname
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
find "$pkgdir" -type f -name '*.prl' \\
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;
rm -r "$pkgdir/$static_compat_prefix"/share/doc
}

View File

@ -0,0 +1,63 @@
# Maintainer: Martchus <martchus@gmx.net>
<%== content_for 'additional_contributors' %>\
# All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where
# you also find the URL of a binary repository.
<%== content_for 'comment_header' %>\
pkgname=static-compat-qt6-<%== $qt_module %>
<%== content %>\
options=('!strip' '!buildflags' 'staticlibs' '!emptydirs')
_pkgfqn="qt<%== $qt_module %>-everywhere-src-${_qtver}"
<%== include 'fragments/qt6-source' %>\
<%== include 'fragments/source_file_list', relevant_files => $patch_files %>)
sha256sums=('<%== stash('git_commit') ? 'SKIP' : $qt_module_sha256 %>'\
<%== include 'fragments/sha256_list', relevant_files => $patch_files %>)
% if ($patch_files->size || content_for('prepare')->size) {
prepare () {
cd $_pkgfqn
% if ($patch_files->size) {
# apply patches; further descriptions can be found in patch files itself
for patch in "$srcdir/"*.patch; do
msg2 "Applying patch $patch"
patch -p1 -i "$patch"
done
% }
<%== content_for 'prepare' %>\
}
% }
build() {
check_buildoption ccache y && ccache_args='
-DCMAKE_C_COMPILER_LAUNCHER=ccache
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache'
source static-compat-environment
export PATH=$PWD:$PATH
printf '#!/usr/bin/bash\nexec /usr/bin/pkg-config --static "$@"\n' > pkg-config
chmod +x pkg-config
<%== content_for 'before_build_config' %>\
static-compat-cmake -G Ninja -B build -S $_pkgfqn \\
$ccache_args \\
-DCMAKE_SKIP_INSTALL_RPATH=ON \\
-DGLIB2_USE_PKG_CONFIG=ON \\
-DQT_FEATURE_static_runtime=ON \\
-DFEATURE_pkg_config=ON<%== content_for 'additional_cmake_args' %>
VERBOSE=1 cmake --build build
}
package() {
source static-compat-environment
<%== content_for 'before_package_install' %>\
DESTDIR="$pkgdir" cmake --install build
% unless (stash('no_libs')) {
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
find "$pkgdir/$static_compat_prefix/lib" -type f -name '*.prl' \\
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;
% }
install -d "$pkgdir"/usr/share/licenses
ln -s /usr/share/licenses/static-compat-qt6-base "$pkgdir"/usr/share/licenses/$pkgname
}

View File

@ -99,12 +99,13 @@ msg2 "Exporting patches for branch '$branch' (based on '$tag')"
git format-patch "$tag" --output-directory "$dest"
new_patches=("$dest"/*.patch)
also_covered_variants=none # for sake of simplicity: use same set of patches also for android packages
[[ $variant == mingw-w64 ]] && also_covered_variants=android-
for other_variant_dir in "$dest/../$variant"?* "$dest/../$also_covered_variants"?*; do
more_covered_variants=none
[[ $variant == mingw-w64 ]] && also_covered_variants=android- more_covered_variants=static-compat
for other_variant_dir in "$dest/../$variant"?* "$dest/../$also_covered_variants"?* "$dest/../$more_covered_variants"*; do
[[ -d $other_variant_dir ]] || continue
find "$other_variant_dir" -iname '*.patch' -delete
if [[ ${#new_patches[@]} -gt 0 ]]; then
ln --symbolic --relative --target-directory="$other_variant_dir" "${new_patches[@]}"
ln --verbose --symbolic --relative --target-directory="$other_variant_dir" "${new_patches[@]}"
fi
done
popd > /dev/null

View File

@ -0,0 +1,30 @@
# Contributor: Antonio Rojas <arojas@archlinux.org>
# Contributor: Anatol Pomozov <anatol.pomozov@gmail.com>
# Contributor: Joel Teichroeb <joel@teichroeb.net>
# Contributor: Jonas Heinrich <onny@project-insanity.org>
_pkgname=double-conversion
pkgname=static-compat-$_pkgname
pkgver=3.2.0
pkgrel=1
pkgdesc='Binary-decimal and decimal-binary routines for IEEE doubles'
arch=(x86_64)
url='https://github.com/google/double-conversion'
license=(BSD)
depends=(gcc-libs-static-compat)
makedepends=(static-compat-cmake)
source=(https://github.com/google/double-conversion/archive/v$pkgver/$_pkgname-$pkgver.tar.gz)
sha256sums=('3dbcdf186ad092a8b71228a5962009b5c96abde9a315257a3452eb988414ea3b')
build() {
source static-compat-environment
static-compat-cmake -B build -S $_pkgname-$pkgver
cmake --build build
}
package () {
source static-compat-environment
DESTDIR="$pkgdir" cmake --install build
install -Dm644 $_pkgname-$pkgver/LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname
}

View File

@ -0,0 +1,15 @@
pkgname=static-compat-environment
pkgver=1
pkgrel=1
arch=('any')
pkgdesc="Script providing common environment variables to use gcc-static-compat"
license=('GPL')
depends=('gcc-static-compat')
url="https://github.com/Martchus/PKGBUILDs"
source=("static-compat-environment.sh")
sha256sums=('SKIP')
package() {
install -d "${pkgdir}"/usr/bin
install -m 755 static-compat-environment.sh "${pkgdir}"/usr/bin/static-compat-environment
}

View File

@ -0,0 +1,12 @@
#!/bin/sh
static_compat_prefix=/usr/static-compat
export PATH=$static_compat_prefix/bin:$PATH
export CC=$static_compat_prefix/bin/gcc
export CXX=$static_compat_prefix/bin/g++
export CFLAGS="$CFLAGS -fPIC"
export CXXFLAGS="$CXXFLAGS -fPIC"
export CPPFLAGS="$CPPFLAGS"
export PKG_CONFIG_PATH=${PKG_CONFIG_PATH:-$static_compat_prefix/usr/lib/pkgconfig:$static_compat_prefix/usr/share/pkgconfig}
export PKG_CONFIG_SYSROOT_DIR=${PKG_CONFIG_SYSROOT_DIR:-$static_compat_prefix}
export PKG_CONFIG_LIBDIR=${PKG_CONFIG_LIBDIR:-$static_compat_prefix/lib/pkgconfig:$static_compat_prefix/share/pkgconfig}

View File

@ -4,27 +4,27 @@
# Contributor: Judd Vinet <jvinet@zeroflux.org>
_pkgname=expat
pkgname=$_pkgname-static
pkgver=2.2.10
pkgname=static-compat-$_pkgname
pkgver=2.4.8
pkgrel=1
pkgdesc='An XML parser library'
arch=('x86_64')
url="https://libexpat.github.io/"
license=('MIT')
depends=('glibc')
makedepends=('cmake')
depends=('glibc-static-compat')
makedepends=('static-compat-cmake')
options=(staticlibs)
source=("https://github.com/libexpat/libexpat/releases/download/R_${pkgver//./_}/expat-${pkgver}.tar.bz2"{,.asc})
sha512sums=('9623e86024d09e3bb0cf51fd0d56ecaee5fb8c8acb71589104a63b510f73c1e84abb0ccea4e2c196bdf1d30b5ad0633a915758f75813717d031d633e34f022b7'
sha512sums=('46cc9d725f359b77681a2875bfefa15ceee50eb9513f6577607c0c5833dfa4241565c74f26b84b38d802c3cd8c32f00204fd74272bcecbd21229425764eef86c'
'SKIP')
b2sums=('e837353deb2fa6a9fbeff9c1843e63f33a1622bf26f6a914a1e2e572324d4826165bf175ac13038666c8e4eb785167bd3dafe7bc5b4c98e92e608f20709f053d'
b2sums=('a829bd94d2cc9b305874ae2539dd4388ea99eaed21d2da17bbd99a1e7735b0f7cb910d096f72c71b128dcb8ffdff9021109e7ff5e562d8cefad228fd8d66f897'
'SKIP')
validpgpkeys=(3176EF7DB2367F1FCA4F306B1F9B0E909AF37285) # Sebastian Pipping
build() {
source static-compat-environment
cd "$_pkgname-$pkgver"
cmake -DCMAKE_INSTALL_PREFIX=/usr/static \
-DCMAKE_BUILD_TYPE='None' \
static-compat-cmake \
-DEXPAT_SHARED_LIBS=OFF \
-DEXPAT_BUILD_TOOLS=OFF \
-DEXPAT_BUILD_EXAMPLES=OFF \
@ -35,13 +35,15 @@ build() {
}
check() {
source static-compat-environment
cd "$_pkgname-$pkgver"
make VERBOSE=1 -C build test
}
package() {
source static-compat-environment
cd "$_pkgname-$pkgver"
make VERBOSE=1 DESTDIR="$pkgdir" -C build install
rm -r "$pkgdir"/usr/static/share
rm -r "$pkgdir/$static_compat_prefix"/share
install -vDm 644 COPYING -t "${pkgdir}/usr/share/licenses/$pkgname/"
}

View File

@ -0,0 +1,50 @@
# Contributor: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>
_pkgname=fontconfig
pkgname=static-compat-$_pkgname
pkgver=2.14.0
pkgrel=1
epoch=2
pkgdesc="Library for configuring and customizing font access"
url="https://www.freedesktop.org/wiki/Software/fontconfig/"
arch=(x86_64)
license=(custom)
depends=(static-compat-expat static-compat-freetype2)
makedepends=(static-compat-meson git autoconf-archive gperf python-lxml python-six docbook-utils)
checkdepends=(unzip)
_commit=fcb042028126d79ea5a5fa015b2b034b98656e73 # master
options=(!emptydirs !docs staticlibs)
_commit=911b19f19f1334d51c452756f9ce222c1101097b # tags/2.14.0^0
source=("git+https://gitlab.freedesktop.org/fontconfig/fontconfig.git#commit=$_commit")
b2sums=('SKIP')
# a nice page to test font matching:
# http://zipcon.net/~swhite/docs/computers/browsers/fonttest.html
# http://getemoji.com/
pkgver() {
cd fontconfig
git describe --tags | sed 's/-/+/g'
}
build() {
export CFLAGS+=' -lstdc++' # for __gxx_personality_v0 required by harfbuzz.a
source static-compat-environment
static-compat-meson $_pkgname build -Ddoc=disabled
meson compile -C build
}
check() {
source static-compat-environment
meson test -C build --print-errorlogs
}
package() {
source static-compat-environment
meson install -C build --destdir="$pkgdir"
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 $_pkgname/COPYING
}
# vim:set sw=2 et:

View File

@ -1,64 +0,0 @@
# Contributor: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>
_pkgname=fontconfig
pkgname=$_pkgname-static
pkgver=2.13.91+48+gfcb0420
pkgrel=2
epoch=2
pkgdesc="Library for configuring and customizing font access"
url="https://www.freedesktop.org/wiki/Software/fontconfig/"
arch=(x86_64)
license=(custom)
depends=(expat-static freetype2-static)
makedepends=(git autoconf-archive gperf python-lxml python-six docbook-utils)
checkdepends=(unzip)
_commit=fcb042028126d79ea5a5fa015b2b034b98656e73 # master
options=(!emptydirs !docs staticlibs)
source=("git+https://gitlab.freedesktop.org/fontconfig/fontconfig.git#commit=$_commit")
sha256sums=('SKIP')
# a nice page to test font matching:
# http://zipcon.net/~swhite/docs/computers/browsers/fonttest.html
# http://getemoji.com/
pkgver() {
cd fontconfig
git describe --tags | sed 's/-/+/g'
}
prepare() {
cd fontconfig
NOCONFIGURE=1 ./autogen.sh
}
build() {
cd fontconfig
export PKG_CONFIG_PATH=/usr/static/lib/pkgconfig:/usr/lib/pkgconfig
export PATH=$PWD:$PATH
printf '#!/usr/bin/bash\nexec /usr/bin/pkg-config --static "$@"\n' > pkg-config
chmod +x pkg-config
./configure --prefix=/usr/static \
--sysconfdir=/etc \
--with-templatedir=/etc/fonts/conf.avail \
--localstatedir=/var \
--disable-shared \
--enable-static \
--disable-docs
make
}
check() {
cd fontconfig
make -k check
}
package() {
cd fontconfig
make DESTDIR="$pkgdir" install
rm -r "$pkgdir/usr/static/bin" "$pkgdir/etc" "$pkgdir/var"
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 COPYING
}
# vim:set sw=2 et:

View File

@ -1,42 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Tue, 23 Jun 2015 08:40:29 +0200
Subject: [PATCH] Enable table validation modules
---
modules.cfg | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules.cfg b/modules.cfg
index aded92e5e922..f133c65b27e2 100644
--- a/modules.cfg
+++ b/modules.cfg
@@ -117,26 +117,26 @@ AUX_MODULES += cache
# TrueType GX/AAT table validation. Needs `ftgxval.c' below.
#
-# AUX_MODULES += gxvalid
+AUX_MODULES += gxvalid
# Support for streams compressed with gzip (files with suffix .gz).
#
# See include/freetype/ftgzip.h for the API.
AUX_MODULES += gzip
# Support for streams compressed with LZW (files with suffix .Z).
#
# See include/freetype/ftlzw.h for the API.
AUX_MODULES += lzw
# Support for streams compressed with bzip2 (files with suffix .bz2).
#
# See include/freetype/ftbzip2.h for the API.
AUX_MODULES += bzip2
# OpenType table validation. Needs `ftotval.c' below.
#
-# AUX_MODULES += otvalid
+AUX_MODULES += otvalid
# Auxiliary PostScript driver component to share common code.
#

View File

@ -0,0 +1 @@
../mingw-w64/0001-Enable-table-validation-modules.patch

View File

@ -1,22 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Tue, 23 Jun 2015 08:43:07 +0200
Subject: [PATCH] Enable subpixel rendering
---
include/freetype/config/ftoption.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/freetype/config/ftoption.h b/include/freetype/config/ftoption.h
index c5bde243b127..77d6efb2e5f2 100644
--- a/include/freetype/config/ftoption.h
+++ b/include/freetype/config/ftoption.h
@@ -123,7 +123,7 @@ FT_BEGIN_HEADER
* When this macro is not defined, FreeType offers alternative LCD
* rendering technology that produces excellent output.
*/
-/* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */
+#define FT_CONFIG_OPTION_SUBPIXEL_RENDERING
/**************************************************************************

View File

@ -0,0 +1 @@
../mingw-w64/0002-Enable-subpixel-rendering.patch

View File

@ -1,24 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Mon, 29 Aug 2016 08:43:10 +0200
Subject: [PATCH] Enable infinality subpixel hinting
---
include/freetype/config/ftoption.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/freetype/config/ftoption.h b/include/freetype/config/ftoption.h
index 77d6efb2e5f2..c33c51eeb2e7 100644
--- a/include/freetype/config/ftoption.h
+++ b/include/freetype/config/ftoption.h
@@ -706,8 +706,8 @@ FT_BEGIN_HEADER
* https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx
*/
/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING 1 */
-#define TT_CONFIG_OPTION_SUBPIXEL_HINTING 2
-/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING ( 1 | 2 ) */
+/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING 2 */
+#define TT_CONFIG_OPTION_SUBPIXEL_HINTING ( 1 | 2 )
/**************************************************************************

View File

@ -0,0 +1 @@
../mingw-w64/0003-Enable-infinality-subpixel-hinting.patch

View File

@ -1,22 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Sun, 14 May 2017 18:09:31 +0200
Subject: [PATCH] Enable long PCF family names
---
include/freetype/config/ftoption.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/freetype/config/ftoption.h b/include/freetype/config/ftoption.h
index c33c51eeb2e7..c33ddb4bf60c 100644
--- a/include/freetype/config/ftoption.h
+++ b/include/freetype/config/ftoption.h
@@ -895,7 +895,7 @@ FT_BEGIN_HEADER
* If this option is activated, it can be controlled with the
* `no-long-family-names` property of the 'pcf' driver module.
*/
-/* #define PCF_CONFIG_OPTION_LONG_FAMILY_NAMES */
+#define PCF_CONFIG_OPTION_LONG_FAMILY_NAMES
/*************************************************************************/

View File

@ -0,0 +1 @@
../mingw-w64/0004-Enable-long-PCF-family-names.patch

View File

@ -1,42 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Tue, 23 Jun 2015 08:40:29 +0200
Subject: [PATCH] Enable table validation modules
---
modules.cfg | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules.cfg b/modules.cfg
index d6cdbe523..181f91541 100644
--- a/modules.cfg
+++ b/modules.cfg
@@ -111,26 +111,26 @@ AUX_MODULES += cache
# TrueType GX/AAT table validation. Needs `ftgxval.c' below.
#
-# AUX_MODULES += gxvalid
+AUX_MODULES += gxvalid
# Support for streams compressed with gzip (files with suffix .gz).
#
# See include/freetype/ftgzip.h for the API.
AUX_MODULES += gzip
# Support for streams compressed with LZW (files with suffix .Z).
#
# See include/freetype/ftlzw.h for the API.
AUX_MODULES += lzw
# Support for streams compressed with bzip2 (files with suffix .bz2).
#
# See include/freetype/ftbzip2.h for the API.
AUX_MODULES += bzip2
# OpenType table validation. Needs `ftotval.c' below.
#
-# AUX_MODULES += otvalid
+AUX_MODULES += otvalid
# Auxiliary PostScript driver component to share common code.
#

View File

@ -1,22 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Tue, 23 Jun 2015 08:43:07 +0200
Subject: [PATCH] Enable subpixel rendering
---
include/freetype/config/ftoption.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/freetype/config/ftoption.h b/include/freetype/config/ftoption.h
index 097f19b8a..e5de62e35 100644
--- a/include/freetype/config/ftoption.h
+++ b/include/freetype/config/ftoption.h
@@ -124,7 +124,7 @@ FT_BEGIN_HEADER
* When this macro is not defined, FreeType offers alternative LCD
* rendering technology that produces excellent output.
*/
-/* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */
+#define FT_CONFIG_OPTION_SUBPIXEL_RENDERING
/**************************************************************************

View File

@ -1,24 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Mon, 29 Aug 2016 08:43:10 +0200
Subject: [PATCH] Enable infinality subpixel hinting
---
include/freetype/config/ftoption.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/freetype/config/ftoption.h b/include/freetype/config/ftoption.h
index e5de62e35..acb4d6d6a 100644
--- a/include/freetype/config/ftoption.h
+++ b/include/freetype/config/ftoption.h
@@ -672,8 +672,8 @@ FT_BEGIN_HEADER
* https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx
*/
/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING 1 */
-#define TT_CONFIG_OPTION_SUBPIXEL_HINTING 2
-/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING ( 1 | 2 ) */
+/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING 2 */
+#define TT_CONFIG_OPTION_SUBPIXEL_HINTING ( 1 | 2 )
/**************************************************************************

View File

@ -1,22 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Sun, 14 May 2017 18:09:31 +0200
Subject: [PATCH] Enable long PCF family names
---
include/freetype/config/ftoption.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/freetype/config/ftoption.h b/include/freetype/config/ftoption.h
index acb4d6d6a..efa13b9c6 100644
--- a/include/freetype/config/ftoption.h
+++ b/include/freetype/config/ftoption.h
@@ -861,7 +861,7 @@ FT_BEGIN_HEADER
* If this option is activated, it can be controlled with the
* `no-long-family-names` property of the 'pcf' driver module.
*/
-/* #define PCF_CONFIG_OPTION_LONG_FAMILY_NAMES */
+#define PCF_CONFIG_OPTION_LONG_FAMILY_NAMES
/*************************************************************************/

View File

@ -1,56 +0,0 @@
# Contributor: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>
_pkgname=freetype2
pkgname=$_pkgname-bootstrap-static
pkgver=2.10.4
pkgrel=1
pkgdesc="Font rasterization library"
url="https://www.freetype.org/"
arch=(x86_64)
license=(GPL)
depends=(zlib bzip2-static libpng-static)
makedepends=(libx11-static)
provides=($_pkgname-static)
conflicts=($_pkgname-static)
options=(staticlibs)
source=(https://download-mirror.savannah.gnu.org/releases/freetype/freetype-$pkgver.tar.xz{,.sig}
0001-Enable-table-validation-modules.patch
0002-Enable-subpixel-rendering.patch
0003-Enable-infinality-subpixel-hinting.patch
0004-Enable-long-PCF-family-names.patch)
sha256sums=('86a854d8905b19698bbc8f23b860bc104246ce4854dcea8e3b0fb21284f75784'
'SKIP'
'f41df4f336d5e82e58733c7a4594476c9216cfc85c096327745a7e1b559e17e1'
'dc77c1cfee4bf8e7e0690628c95d211df09e0d0750e4c8f075b78b5f105514f7'
'21a62bc12b848320c686d602d8d4e3bcd51294a9def4dc9c301736e077b59f3f'
'266384222f87a02fb02b2179828f6c26fe6d7b1fd09d1f7e3734e7fcb09cda2e')
validpgpkeys=(58E0C111E39F5408C5D3EC76C1A60EACE707FDA5) # Werner Lemberg <wl@gnu.org>
prepare() {
cd freetype-$pkgver
patch -Np1 -i ../0001-Enable-table-validation-modules.patch
patch -Np1 -i ../0002-Enable-subpixel-rendering.patch
patch -Np1 -i ../0003-Enable-infinality-subpixel-hinting.patch
patch -Np1 -i ../0004-Enable-long-PCF-family-names.patch
}
build() {
cd freetype-$pkgver
export PKG_CONFIG_PATH=/usr/static/lib/pkgconfig:/usr/lib/pkgconfig
./configure --prefix=/usr/static --disable-shared --enable-static
make
}
check() {
cd freetype-$pkgver
make -k check
}
package() {
cd freetype-$pkgver
make DESTDIR="$pkgdir" install
rm -rf "${pkgdir}"/usr/static/share/
}
# vim:set ts=2 sw=2 et:

View File

@ -0,0 +1 @@
../mingw-w64/0001-Enable-table-validation-modules.patch

View File

@ -0,0 +1 @@
../mingw-w64/0002-Enable-subpixel-rendering.patch

View File

@ -0,0 +1 @@
../mingw-w64/0003-Enable-infinality-subpixel-hinting.patch

View File

@ -0,0 +1 @@
../mingw-w64/0004-Enable-long-PCF-family-names.patch

View File

@ -0,0 +1,66 @@
# Contributor: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>
_pkgname=freetype2
pkgname=static-compat-$_pkgname-bootstrap
pkgver=2.12.0
pkgrel=1
pkgdesc="Font rasterization library"
url="https://www.freetype.org/"
arch=(x86_64)
license=(GPL)
# adding harfbuzz for improved OpenType features auto-hinting
# introduces a cycle dep to harfbuzz depending on freetype wanted by upstream
depends=(static-compat-zlib static-compat-bzip2 static-compat-libpng static-compat-brotli)
makedepends=(static-compat-libx11 static-compat-meson)
conflicts=(static-compat-$_pkgname)
provides=(static-compat-$_pkgname)
options=(staticlibs)
source=(https://download-mirror.savannah.gnu.org/releases/freetype/freetype-$pkgver.tar.xz
0001-Enable-table-validation-modules.patch
0002-Enable-subpixel-rendering.patch
0003-Enable-infinality-subpixel-hinting.patch
0004-Enable-long-PCF-family-names.patch)
sha256sums=('ef5c336aacc1a079ff9262d6308d6c2a066dd4d2a905301c4adda9b354399033'
'12c869eeba212c74d07d3d7815848b047ecb5282d5463dffb3bb6d219315d4da'
'2497dcb3650271db9bb7ad4f3379b5b3c6a19f5ca5388dd9ba7d42b5c15c8c4f'
'caa0bc7d3dfa3b4c6b9beecda6141405dafe540f99a655dc83d1704fa232ac20'
'8bf978cd1abd73f54c53f7d214c368b1fd8921cd9800d2cc84427c662ffbbdcb')
validpgpkeys=(E30674707856409FF1948010BE6C3AAC63AD8E3F) # Werner Lemberg <wl@gnu.org>
prepare() {
cd freetype-$pkgver
patch -Np1 -i ../0001-Enable-table-validation-modules.patch
patch -Np1 -i ../0002-Enable-subpixel-rendering.patch
patch -Np1 -i ../0003-Enable-infinality-subpixel-hinting.patch
patch -Np1 -i ../0004-Enable-long-PCF-family-names.patch
# meson sucks
sed -i 's|static: false|static: true|g' meson.build
# meson sucks a lot
sed -i 's|ftoption_command.*FT_CONFIG_OPTION_USE_HARFBUZZ.*||g' meson.build
sed -i 's|ft2_deps.*harfbuzz_dep.*||g' meson.build
}
build() {
source static-compat-environment
cd freetype-$pkgver
static-compat-meson build -D zlib=system -D bzip2=enabled -D png=enabled -D brotli=enabled -Dharfbuzz=disabled
meson compile -C build
}
check() {
source static-compat-environment
cd freetype-$pkgver
meson test -C build --print-errorlogs
}
package() {
source static-compat-environment
cd freetype-$pkgver
meson install -C build --destdir="$pkgdir"
rm -rf "${pkgdir}"/usr/static/share/
}
# vim:set ts=2 sw=2 et:

View File

@ -0,0 +1 @@
../mingw-w64/0001-Enable-table-validation-modules.patch

View File

@ -0,0 +1 @@
../mingw-w64/0002-Enable-subpixel-rendering.patch

View File

@ -0,0 +1 @@
../mingw-w64/0003-Enable-infinality-subpixel-hinting.patch

View File

@ -0,0 +1 @@
../mingw-w64/0004-Enable-long-PCF-family-names.patch

View File

@ -2,8 +2,8 @@
# Contributor: Jan de Groot <jgc@archlinux.org>
_pkgname=freetype2
pkgname=$_pkgname-static
pkgver=2.10.4
pkgname=static-compat-$_pkgname
pkgver=2.12.0
pkgrel=1
pkgdesc="Font rasterization library"
url="https://www.freetype.org/"
@ -11,21 +11,20 @@ arch=(x86_64)
license=(GPL)
# adding harfbuzz for improved OpenType features auto-hinting
# introduces a cycle dep to harfbuzz depending on freetype wanted by upstream
depends=(zlib bzip2-static libpng-static harfbuzz-static)
makedepends=(libx11-static)
depends=(static-compat-zlib static-compat-bzip2 static-compat-libpng static-compat-brotli static-compat-harfbuzz)
makedepends=(static-compat-libx11 static-compat-meson)
options=(staticlibs)
source=(https://download-mirror.savannah.gnu.org/releases/freetype/freetype-$pkgver.tar.xz{,.sig}
source=(https://download-mirror.savannah.gnu.org/releases/freetype/freetype-$pkgver.tar.xz
0001-Enable-table-validation-modules.patch
0002-Enable-subpixel-rendering.patch
0003-Enable-infinality-subpixel-hinting.patch
0004-Enable-long-PCF-family-names.patch)
sha256sums=('86a854d8905b19698bbc8f23b860bc104246ce4854dcea8e3b0fb21284f75784'
'SKIP'
'f41df4f336d5e82e58733c7a4594476c9216cfc85c096327745a7e1b559e17e1'
'dc77c1cfee4bf8e7e0690628c95d211df09e0d0750e4c8f075b78b5f105514f7'
'21a62bc12b848320c686d602d8d4e3bcd51294a9def4dc9c301736e077b59f3f'
'266384222f87a02fb02b2179828f6c26fe6d7b1fd09d1f7e3734e7fcb09cda2e')
validpgpkeys=(58E0C111E39F5408C5D3EC76C1A60EACE707FDA5) # Werner Lemberg <wl@gnu.org>
sha256sums=('ef5c336aacc1a079ff9262d6308d6c2a066dd4d2a905301c4adda9b354399033'
'12c869eeba212c74d07d3d7815848b047ecb5282d5463dffb3bb6d219315d4da'
'2497dcb3650271db9bb7ad4f3379b5b3c6a19f5ca5388dd9ba7d42b5c15c8c4f'
'caa0bc7d3dfa3b4c6b9beecda6141405dafe540f99a655dc83d1704fa232ac20'
'8bf978cd1abd73f54c53f7d214c368b1fd8921cd9800d2cc84427c662ffbbdcb')
validpgpkeys=(E30674707856409FF1948010BE6C3AAC63AD8E3F) # Werner Lemberg <wl@gnu.org>
prepare() {
cd freetype-$pkgver
@ -33,23 +32,28 @@ prepare() {
patch -Np1 -i ../0002-Enable-subpixel-rendering.patch
patch -Np1 -i ../0003-Enable-infinality-subpixel-hinting.patch
patch -Np1 -i ../0004-Enable-long-PCF-family-names.patch
# meson sucks
sed -i 's|static: false|static: true|g' meson.build
}
build() {
source static-compat-environment
cd freetype-$pkgver
export PKG_CONFIG_PATH=/usr/static/lib/pkgconfig:/usr/lib/pkgconfig
./configure --prefix=/usr/static --disable-shared --enable-static
make
static-compat-meson build -D zlib=system -D bzip2=enabled -D png=enabled -D brotli=enabled
meson compile -C build
}
check() {
source static-compat-environment
cd freetype-$pkgver
make -k check
meson test -C build --print-errorlogs
}
package() {
source static-compat-environment
cd freetype-$pkgver
make DESTDIR="$pkgdir" install
meson install -C build --destdir="$pkgdir"
rm -rf "${pkgdir}"/usr/static/share/
}

View File

@ -1,42 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Tue, 23 Jun 2015 08:40:29 +0200
Subject: [PATCH] Enable table validation modules
---
modules.cfg | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules.cfg b/modules.cfg
index d6cdbe523..181f91541 100644
--- a/modules.cfg
+++ b/modules.cfg
@@ -111,26 +111,26 @@ AUX_MODULES += cache
# TrueType GX/AAT table validation. Needs `ftgxval.c' below.
#
-# AUX_MODULES += gxvalid
+AUX_MODULES += gxvalid
# Support for streams compressed with gzip (files with suffix .gz).
#
# See include/freetype/ftgzip.h for the API.
AUX_MODULES += gzip
# Support for streams compressed with LZW (files with suffix .Z).
#
# See include/freetype/ftlzw.h for the API.
AUX_MODULES += lzw
# Support for streams compressed with bzip2 (files with suffix .bz2).
#
# See include/freetype/ftbzip2.h for the API.
AUX_MODULES += bzip2
# OpenType table validation. Needs `ftotval.c' below.
#
-# AUX_MODULES += otvalid
+AUX_MODULES += otvalid
# Auxiliary PostScript driver component to share common code.
#

View File

@ -1,22 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Tue, 23 Jun 2015 08:43:07 +0200
Subject: [PATCH] Enable subpixel rendering
---
include/freetype/config/ftoption.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/freetype/config/ftoption.h b/include/freetype/config/ftoption.h
index 097f19b8a..e5de62e35 100644
--- a/include/freetype/config/ftoption.h
+++ b/include/freetype/config/ftoption.h
@@ -124,7 +124,7 @@ FT_BEGIN_HEADER
* When this macro is not defined, FreeType offers alternative LCD
* rendering technology that produces excellent output.
*/
-/* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */
+#define FT_CONFIG_OPTION_SUBPIXEL_RENDERING
/**************************************************************************

View File

@ -1,24 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Mon, 29 Aug 2016 08:43:10 +0200
Subject: [PATCH] Enable infinality subpixel hinting
---
include/freetype/config/ftoption.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/freetype/config/ftoption.h b/include/freetype/config/ftoption.h
index e5de62e35..acb4d6d6a 100644
--- a/include/freetype/config/ftoption.h
+++ b/include/freetype/config/ftoption.h
@@ -672,8 +672,8 @@ FT_BEGIN_HEADER
* https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx
*/
/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING 1 */
-#define TT_CONFIG_OPTION_SUBPIXEL_HINTING 2
-/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING ( 1 | 2 ) */
+/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING 2 */
+#define TT_CONFIG_OPTION_SUBPIXEL_HINTING ( 1 | 2 )
/**************************************************************************

View File

@ -1,22 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Sun, 14 May 2017 18:09:31 +0200
Subject: [PATCH] Enable long PCF family names
---
include/freetype/config/ftoption.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/freetype/config/ftoption.h b/include/freetype/config/ftoption.h
index acb4d6d6a..efa13b9c6 100644
--- a/include/freetype/config/ftoption.h
+++ b/include/freetype/config/ftoption.h
@@ -861,7 +861,7 @@ FT_BEGIN_HEADER
* If this option is activated, it can be controlled with the
* `no-long-family-names` property of the 'pcf' driver module.
*/
-/* #define PCF_CONFIG_OPTION_LONG_FAMILY_NAMES */
+#define PCF_CONFIG_OPTION_LONG_FAMILY_NAMES
/*************************************************************************/

378
gcc/static-compat/PKGBUILD Normal file
View File

@ -0,0 +1,378 @@
# toolchain build order: linux-api-headers->glibc->binutils->gcc->glibc->binutils->gcc
# NOTE: libtool requires rebuilt with each new gcc version
pkgname=({gcc,gcc-libs,lib32-gcc-libs,gcc-fortran,gcc-ada,gcc-d}-static-compat)
pkgver=11.2.0
_majorver=${pkgver%%.*}
_islver=0.24
pkgrel=1
pkgdesc='The GNU Compiler Collection'
arch=(x86_64)
license=(GPL LGPL FDL custom)
url='https://gcc.gnu.org'
makedepends=(
binutils
doxygen
gcc-ada
git
glibc-static-compat
lib32-glibc-static-compat
libisl
libmpc
libxcrypt
python
zstd
)
checkdepends=(
dejagnu
expect
inetutils
python-pytest
tcl
)
options=(!emptydirs !lto debug)
_prefix=/usr/static-compat
_libdir=usr/static-compat/lib/gcc/$CHOST/${pkgver%%+*}
# _commit=6beb39ee6c465c21d0cc547fd66b445100cdcc35
# source=(git://gcc.gnu.org/git/gcc.git#commit=$_commit
source=(https://sourceware.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.xz{,.sig}
c89 c99
gdc_phobos_path.patch
gcc-ada-repro.patch
)
validpgpkeys=(F3691687D867B81B51CE07D9BBE43771487328A9 # bpiotrowski@archlinux.org
86CFFCA918CF3AF47147588051E8B148A9999C34 # evangelos@foutrelis.com
13975A70E63C361C73AE69EF6EEB81F8981C74C7 # richard.guenther@gmail.com
D3A93CAD751C2AF4F8C7AD516C35B99309B5FA62) # Jakub Jelinek <jakub@redhat.com>
sha256sums=('d08edc536b54c372a1010ff6619dd274c0f1603aa49212ba20f7aa2cda36fa8b'
'SKIP'
'de48736f6e4153f03d0a5d38ceb6c6fdb7f054e8f47ddd6af0a3dbf14f27b931'
'2513c6d9984dd0a2058557bf00f06d8d5181734e41dcfe07be7ed86f2959622a'
'c86372c207d174c0918d4aedf1cb79f7fc093649eb1ad8d9450dccc46849d308'
'1773f5137f08ac1f48f0f7297e324d5d868d55201c03068670ee4602babdef2f')
prepare() {
[[ ! -d gcc ]] && ln -s gcc-${pkgver/+/-} gcc
cd gcc
# Do not run fixincludes
sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
# Arch Linux installs x86_64 libraries in lib and i686 ones in lib32
sed -i '/m64=/s/lib64/lib/' gcc/config/i386/t-linux64
sed -i 's|MULTILIB_DIRNAMES .*|MULTILIB_DIRNAMES = 64 32|' gcc/config/i386/t-linux64
sed -i 's|m32=.*|m32=../lib32\$\(call if_multiarch,:i386-linux-gnu\)|' gcc/config/i386/t-linux64
# D hacks
patch -Np1 -i "$srcdir/gdc_phobos_path.patch"
# Reproducible gcc-ada
patch -Np0 < "$srcdir/gcc-ada-repro.patch"
mkdir -p "$srcdir/gcc-build"
}
build() {
local _confflags="--prefix=$_prefix \
--libdir=$_prefix/lib \
--libexecdir=$_prefix/lib \
--mandir=$_prefix/share/man \
--infodir=$_prefix/share/info \
--with-sysroot=$_prefix \
--with-native-system-header-dir="/include" \
--with-bugurl=https://github.com/Martchus/PKGBUILDs/issues \
--with-linker-hash-style=gnu \
--with-system-zlib \
--enable-__cxa_atexit \
--enable-cet=auto \
--enable-checking=release \
--enable-clocale=gnu \
--enable-default-pie \
--enable-default-ssp \
--enable-gnu-indirect-function \
--enable-gnu-unique-object \
--enable-linker-build-id \
--enable-lto \
--disable-bootstrap \
--enable-checking=release \
--enable-multilib \
--enable-plugin \
--enable-shared \
--enable-static \
--enable-threads=posix \
--disable-libssp \
--disable-libstdcxx-pch \
--disable-werror \
--with-build-config=bootstrap-lto \
--enable-link-serialization=1 \
gdc_include_dir=$_prefix/include/dlang/gdc"
cd gcc-build
# Credits @allanmcrae
# https://github.com/allanmcrae/toolchain/blob/f18604d70c5933c31b51a320978711e4e6791cf1/gcc/PKGBUILD
# TODO: properly deal with the build issues resulting from this
CFLAGS=${CFLAGS/-Werror=format-security/}
CXXFLAGS=${CXXFLAGS/-Werror=format-security/}
"$srcdir/gcc/configure" \
--enable-languages=c,c++,ada,fortran,lto,d \
$_confflags
make
}
check() {
cd gcc-build
# disable libphobos test to avoid segfaults and other unfunny ways to waste my time
sed -i '/maybe-check-target-libphobos \\/d' Makefile
# do not abort on error as some are "expected"
make -O -k check || true
"$srcdir/gcc/contrib/test_summary"
}
package_gcc-libs-static-compat() {
pkgdesc='Runtime libraries shipped by GCC'
depends=('glibc-static-compat>=2.26')
options=(!emptydirs !strip)
cd gcc-build
make -C $CHOST/libgcc DESTDIR="$pkgdir" install-shared
rm -f "$pkgdir/$_libdir/libgcc_eh.a"
for lib in libatomic \
libquadmath \
libgfortran \
libgomp \
libitm \
libsanitizer/{a,l,ub,t}san \
libstdc++-v3/src \
libvtv; do
make -C $CHOST/$lib DESTDIR="$pkgdir" install-toolexeclibLTLIBRARIES
done
make -C $CHOST/libobjc DESTDIR="$pkgdir" install-libs
make -C $CHOST/libstdc++-v3/po DESTDIR="$pkgdir" install
make -C $CHOST/libphobos DESTDIR="$pkgdir" install
rm -rf "$pkgdir"/$_libdir/include/d/
rm -f "$pkgdir"$_prefix/lib/libgphobos.spec
for lib in libgomp \
libitm \
libquadmath; do
make -C $CHOST/$lib DESTDIR="$pkgdir" install-info
done
rm -r "$pkgdir"$_prefix/share/info/dir
# remove files provided by lib32-gcc-libs
rm -rf "$pkgdir"$_prefix/lib32/
# Install Runtime Library Exception
install -Dm644 "$srcdir/gcc/COPYING.RUNTIME" \
"$pkgdir$_prefix/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION"
}
package_gcc-static-compat() {
pkgdesc="The GNU Compiler Collection - C and C++ frontends"
depends=("gcc-libs-static-compat=$pkgver-$pkgrel" 'binutils>=2.28' libmpc zstd libisl.so)
groups=('base-devel')
optdepends=('lib32-gcc-libs-static-compat: for generating code for 32-bit ABI')
options=(!emptydirs staticlibs debug)
cd gcc-build
make -C gcc DESTDIR="$pkgdir" install-driver install-cpp install-gcc-ar \
c++.install-common install-headers install-plugin install-lto-wrapper
install -m755 -t "$pkgdir$_prefix/bin/" gcc/gcov{,-tool}
install -m755 -t "$pkgdir/${_libdir}/" gcc/{cc1,cc1plus,collect2,lto1}
make -C $CHOST/libgcc DESTDIR="$pkgdir" install
make -C $CHOST/32/libgcc DESTDIR="$pkgdir" install
rm -f "$pkgdir"$_prefix/lib{,32}/libgcc_s.so*
make -C $CHOST/libstdc++-v3/src DESTDIR="$pkgdir" install
make -C $CHOST/libstdc++-v3/include DESTDIR="$pkgdir" install
make -C $CHOST/libstdc++-v3/libsupc++ DESTDIR="$pkgdir" install
make -C $CHOST/libstdc++-v3/python DESTDIR="$pkgdir" install
make -C $CHOST/32/libstdc++-v3/src DESTDIR="$pkgdir" install
make -C $CHOST/32/libstdc++-v3/include DESTDIR="$pkgdir" install
make -C $CHOST/32/libstdc++-v3/libsupc++ DESTDIR="$pkgdir" install
make DESTDIR="$pkgdir" install-libcc1
install -d "$pkgdir$_prefix/share/gdb/auto-load/usr/lib"
mv "$pkgdir"$_prefix/lib/libstdc++.so.6.*-gdb.py \
"$pkgdir$_prefix/share/gdb/auto-load/usr/lib/"
rm "$pkgdir"$_prefix/lib{,32}/libstdc++.so*
make DESTDIR="$pkgdir" install-fixincludes
make -C gcc DESTDIR="$pkgdir" install-mkheaders
make -C lto-plugin DESTDIR="$pkgdir" install
install -dm755 "$pkgdir"$_prefix/lib/bfd-plugins/
ln -s /${_libdir}/liblto_plugin.so \
"$pkgdir$_prefix/lib/bfd-plugins/"
make -C $CHOST/libgomp DESTDIR="$pkgdir" install-nodist_{libsubinclude,toolexeclib}HEADERS
make -C $CHOST/libitm DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
make -C $CHOST/libquadmath DESTDIR="$pkgdir" install-nodist_libsubincludeHEADERS
make -C $CHOST/libsanitizer DESTDIR="$pkgdir" install-nodist_{saninclude,toolexeclib}HEADERS
make -C $CHOST/libsanitizer/asan DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
make -C $CHOST/libsanitizer/tsan DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
make -C $CHOST/libsanitizer/lsan DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
make -C $CHOST/32/libgomp DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
make -C $CHOST/32/libitm DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
make -C $CHOST/32/libsanitizer DESTDIR="$pkgdir" install-nodist_{saninclude,toolexeclib}HEADERS
make -C $CHOST/32/libsanitizer/asan DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
make -C gcc DESTDIR="$pkgdir" install-man install-info
rm "$pkgdir"$_prefix/share/man/man1/{gfortran,gdc}.1
rm "$pkgdir"$_prefix/share/info/{gfortran,gnat-style,gnat_rm,gnat_ugn,gdc}.info
rm -r "$pkgdir"$_prefix/share/info/dir
make -C libcpp DESTDIR="$pkgdir" install
make -C gcc DESTDIR="$pkgdir" install-po
# many packages expect this symlink
ln -s gcc "$pkgdir"$_prefix/bin/cc
# POSIX conformance launcher scripts for c89 and c99
install -Dm755 "$srcdir/c89" "$pkgdir$_prefix/bin/c89"
install -Dm755 "$srcdir/c99" "$pkgdir$_prefix/bin/c99"
# install the libstdc++ man pages
make -C $CHOST/libstdc++-v3/doc DESTDIR="$pkgdir" doc-install-man
# remove files provided by lib32-gcc-libs
rm -f "$pkgdir"$_prefix/lib32/lib{stdc++,gcc_s}.so
# byte-compile python libraries
python -m compileall "$pkgdir$_prefix/share/gcc-${pkgver%%+*}/"
python -O -m compileall "$pkgdir$_prefix/share/gcc-${pkgver%%+*}/"
# Install Runtime Library Exception
install -d "$pkgdir$_prefix/share/licenses/$pkgname/"
ln -s $_prefix/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION \
"$pkgdir$_prefix/share/licenses/$pkgname/"
}
package_gcc-fortran-static-compat() {
pkgdesc='Fortran front-end for GCC'
depends=("gcc-static-compat=$pkgver-$pkgrel" libisl.so)
cd gcc-build
make -C $CHOST/libgfortran DESTDIR="$pkgdir" install-cafexeclibLTLIBRARIES \
install-{toolexeclibDATA,nodist_fincludeHEADERS,gfor_cHEADERS}
make -C $CHOST/32/libgfortran DESTDIR="$pkgdir" install-cafexeclibLTLIBRARIES \
install-{toolexeclibDATA,nodist_fincludeHEADERS,gfor_cHEADERS}
make -C $CHOST/libgomp DESTDIR="$pkgdir" install-nodist_fincludeHEADERS
make -C gcc DESTDIR="$pkgdir" fortran.install-{common,man,info}
install -Dm755 gcc/f951 "$pkgdir/${_libdir}/f951"
rm -r "$pkgdir"$_prefix/share/info/dir
ln -s gfortran "$pkgdir$_prefix/bin/f95"
# Install Runtime Library Exception
install -d "$pkgdir$_prefix/share/licenses/$pkgname/"
ln -s $_prefix/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION \
"$pkgdir$_prefix/share/licenses/$pkgname/"
}
package_gcc-ada-static-compat() {
pkgdesc='Ada front-end for GCC (GNAT)'
depends=("gcc-static-compat=$pkgver-$pkgrel" libisl.so)
options=(!emptydirs staticlibs debug)
cd gcc-build/gcc
make DESTDIR="$pkgdir" ada.install-{common,info}
install -m755 gnat1 "$pkgdir/${_libdir}"
cd "$srcdir"/gcc-build/$CHOST/libada
make DESTDIR="${pkgdir}" INSTALL="install" \
INSTALL_DATA="install -m644" install-libada
cd "$srcdir"/gcc-build/$CHOST/32/libada
make DESTDIR="${pkgdir}" INSTALL="install" \
INSTALL_DATA="install -m644" install-libada
ln -s gcc "$pkgdir$_prefix/bin/gnatgcc"
# insist on dynamic linking, but keep static libraries because gnatmake complains
mv "$pkgdir"/${_libdir}/adalib/libgna{rl,t}-${_majorver}.so "$pkgdir$_prefix/lib"
ln -s libgnarl-${_majorver}.so "$pkgdir$_prefix/lib/libgnarl.so"
ln -s libgnat-${_majorver}.so "$pkgdir$_prefix/lib/libgnat.so"
rm -f "$pkgdir"/${_libdir}/adalib/libgna{rl,t}.so
rm -r "$pkgdir"$_prefix/share/info/dir
install -d "$pkgdir$_prefix/lib32/"
mv "$pkgdir"/${_libdir}/32/adalib/libgna{rl,t}-${_majorver}.so "$pkgdir$_prefix/lib32"
ln -s libgnarl-${_majorver}.so "$pkgdir$_prefix/lib32/libgnarl.so"
ln -s libgnat-${_majorver}.so "$pkgdir$_prefix/lib32/libgnat.so"
rm -f "$pkgdir"/${_libdir}/32/adalib/libgna{rl,t}.so
# Install Runtime Library Exception
install -d "$pkgdir$_prefix/share/licenses/$pkgname/"
ln -s $_prefix/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION \
"$pkgdir$_prefix/share/licenses/$pkgname/"
}
package_lib32-gcc-libs-static-compat() {
pkgdesc='32-bit runtime libraries shipped by GCC'
depends=('lib32-glibc>=2.26')
options=(!emptydirs !strip)
cd gcc-build
make -C $CHOST/32/libgcc DESTDIR="$pkgdir" install-shared
rm -f "$pkgdir/$_libdir/32/libgcc_eh.a"
for lib in libatomic \
libquadmath \
libgfortran \
libgomp \
libitm \
libsanitizer/{a,l,ub}san \
libstdc++-v3/src \
libvtv; do
make -C $CHOST/32/$lib DESTDIR="$pkgdir" install-toolexeclibLTLIBRARIES
done
make -C $CHOST/32/libobjc DESTDIR="$pkgdir" install-libs
make -C $CHOST/libphobos DESTDIR="$pkgdir" install
rm -f "$pkgdir"$_prefix/lib32/libgphobos.spec
# remove files provided by gcc-libs
rm -rf "$pkgdir"$_prefix/lib
# Install Runtime Library Exception
install -Dm644 "$srcdir/gcc/COPYING.RUNTIME" \
"$pkgdir$_prefix/share/licenses/lib32-gcc-libs/RUNTIME.LIBRARY.EXCEPTION"
}
package_gcc-d-static-compat() {
pkgdesc="D frontend for GCC"
depends=("gcc-static-compat=$pkgver-$pkgrel" libisl.so)
options=(staticlibs debug)
cd gcc-build
make -C gcc DESTDIR="$pkgdir" d.install-{common,man,info}
install -Dm755 gcc/gdc "$pkgdir"$_prefix/bin/gdc
install -Dm755 gcc/d21 "$pkgdir"/"$_libdir"/d21
make -C $CHOST/libphobos DESTDIR="$pkgdir" install
rm -f "$pkgdir$_prefix/lib/"lib{gphobos,gdruntime}.so*
rm -f "$pkgdir$_prefix/lib32/"lib{gphobos,gdruntime}.so*
rm -r "$pkgdir"$_prefix/share/info/dir
install -d "$pkgdir"$_prefix/include/dlang
ln -s /"${_libdir}"/include/d "$pkgdir"$_prefix/include/dlang/gdc
# Install Runtime Library Exception
install -d "$pkgdir$_prefix/share/licenses/$pkgname/"
ln -s $_prefix/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION \
"$pkgdir$_prefix/share/licenses/$pkgname/"
}

View File

@ -0,0 +1,468 @@
# Maintainer: Giancarlo Razzolini <grazzolini@archlinux.org>
# Maintainer: Frederik Schwan <freswa at archlinux dot org>
# Contributor: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: Daniel Kozak <kozzi11@gmail.com>
# toolchain build order: linux-api-headers->glibc->binutils->gcc->glibc->binutils->gcc
# NOTE: libtool requires rebuilt with each new gcc version
pkgname=(gcc gcc-libs lib32-gcc-libs gcc-fortran gcc-objc gcc-ada gcc-go gcc-d libgccjit)
pkgver=11.2.0
_majorver=${pkgver%%.*}
_islver=0.24
pkgrel=4
pkgdesc='The GNU Compiler Collection'
arch=(x86_64)
license=(GPL LGPL FDL custom)
url='https://gcc.gnu.org'
makedepends=(
binutils
doxygen
gcc-ada
git
lib32-glibc
lib32-gcc-libs
libisl
libmpc
libxcrypt
python
zstd
)
checkdepends=(
dejagnu
expect
inetutils
python-pytest
tcl
)
options=(!emptydirs !lto debug)
_libdir=usr/lib/gcc/$CHOST/${pkgver%%+*}
# _commit=6beb39ee6c465c21d0cc547fd66b445100cdcc35
# source=(git://gcc.gnu.org/git/gcc.git#commit=$_commit
source=(https://sourceware.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.xz{,.sig}
c89 c99
gdc_phobos_path.patch
gcc-ada-repro.patch
)
validpgpkeys=(F3691687D867B81B51CE07D9BBE43771487328A9 # bpiotrowski@archlinux.org
86CFFCA918CF3AF47147588051E8B148A9999C34 # evangelos@foutrelis.com
13975A70E63C361C73AE69EF6EEB81F8981C74C7 # richard.guenther@gmail.com
D3A93CAD751C2AF4F8C7AD516C35B99309B5FA62) # Jakub Jelinek <jakub@redhat.com>
sha256sums=('d08edc536b54c372a1010ff6619dd274c0f1603aa49212ba20f7aa2cda36fa8b'
'SKIP'
'de48736f6e4153f03d0a5d38ceb6c6fdb7f054e8f47ddd6af0a3dbf14f27b931'
'2513c6d9984dd0a2058557bf00f06d8d5181734e41dcfe07be7ed86f2959622a'
'c86372c207d174c0918d4aedf1cb79f7fc093649eb1ad8d9450dccc46849d308'
'1773f5137f08ac1f48f0f7297e324d5d868d55201c03068670ee4602babdef2f')
prepare() {
[[ ! -d gcc ]] && ln -s gcc-${pkgver/+/-} gcc
cd gcc
# Do not run fixincludes
sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
# Arch Linux installs x86_64 libraries /lib
sed -i '/m64=/s/lib64/lib/' gcc/config/i386/t-linux64
# D hacks
patch -Np1 -i "$srcdir/gdc_phobos_path.patch"
# Reproducible gcc-ada
patch -Np0 < "$srcdir/gcc-ada-repro.patch"
mkdir -p "$srcdir/gcc-build"
mkdir -p "$srcdir/libgccjit-build"
}
build() {
local _confflags="--prefix=/usr \
--libdir=/usr/lib \
--libexecdir=/usr/lib \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--with-bugurl=https://bugs.archlinux.org/ \
--with-linker-hash-style=gnu \
--with-system-zlib \
--enable-__cxa_atexit \
--enable-cet=auto \
--enable-checking=release \
--enable-clocale=gnu \
--enable-default-pie \
--enable-default-ssp \
--enable-gnu-indirect-function \
--enable-gnu-unique-object \
--enable-linker-build-id \
--enable-lto \
--enable-multilib \
--enable-plugin \
--enable-shared \
--enable-threads=posix \
--disable-libssp \
--disable-libstdcxx-pch \
--disable-werror \
--with-build-config=bootstrap-lto \
--enable-link-serialization=1 \
gdc_include_dir=/usr/include/dlang/gdc"
cd gcc-build
# Credits @allanmcrae
# https://github.com/allanmcrae/toolchain/blob/f18604d70c5933c31b51a320978711e4e6791cf1/gcc/PKGBUILD
# TODO: properly deal with the build issues resulting from this
CFLAGS=${CFLAGS/-Werror=format-security/}
CXXFLAGS=${CXXFLAGS/-Werror=format-security/}
"$srcdir/gcc/configure" \
--enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++,d \
--enable-bootstrap \
$_confflags
# see https://bugs.archlinux.org/task/71777 for rationale re *FLAGS handling
make -O STAGE1_CFLAGS="-O2" \
BOOT_CFLAGS="$CFLAGS" \
BOOT_LDFLAGS="$LDFLAGS" \
LDFLAGS_FOR_TARGET="$LDFLAGS" \
profiledbootstrap
# make documentation
make -O -C $CHOST/libstdc++-v3/doc doc-man-doxygen
# Build libgccjit separately, to avoid building all compilers with --enable-host-shared
# which brings a performance penalty
cd "${srcdir}"/libgccjit-build
"$srcdir/gcc/configure" \
--enable-languages=jit \
--disable-bootstrap \
--enable-host-shared \
$_confflags
# see https://bugs.archlinux.org/task/71777 for rationale re *FLAGS handling
make -O STAGE1_CFLAGS="-O2" \
BOOT_CFLAGS="$CFLAGS" \
BOOT_LDFLAGS="$LDFLAGS" \
LDFLAGS_FOR_TARGET="$LDFLAGS" \
all-gcc
cp -a gcc/libgccjit.so* ../gcc-build/gcc/
}
check() {
cd gcc-build
# disable libphobos test to avoid segfaults and other unfunny ways to waste my time
sed -i '/maybe-check-target-libphobos \\/d' Makefile
# do not abort on error as some are "expected"
make -O -k check || true
"$srcdir/gcc/contrib/test_summary"
}
package_gcc-libs() {
pkgdesc='Runtime libraries shipped by GCC'
depends=('glibc>=2.27')
options=(!emptydirs !strip)
provides=($pkgname-multilib libgo.so libgfortran.so libgphobos.so
libubsan.so libasan.so libtsan.so liblsan.so)
replaces=($pkgname-multilib libgphobos)
cd gcc-build
make -C $CHOST/libgcc DESTDIR="$pkgdir" install-shared
rm -f "$pkgdir/$_libdir/libgcc_eh.a"
for lib in libatomic \
libgfortran \
libgo \
libgomp \
libitm \
libquadmath \
libsanitizer/{a,l,ub,t}san \
libstdc++-v3/src \
libvtv; do
make -C $CHOST/$lib DESTDIR="$pkgdir" install-toolexeclibLTLIBRARIES
done
make -C $CHOST/libobjc DESTDIR="$pkgdir" install-libs
make -C $CHOST/libstdc++-v3/po DESTDIR="$pkgdir" install
make -C $CHOST/libphobos DESTDIR="$pkgdir" install
rm -rf "$pkgdir"/$_libdir/include/d/
rm -f "$pkgdir"/usr/lib/libgphobos.spec
for lib in libgomp \
libitm \
libquadmath; do
make -C $CHOST/$lib DESTDIR="$pkgdir" install-info
done
# remove files provided by lib32-gcc-libs
rm -rf "$pkgdir"/usr/lib32/
# Install Runtime Library Exception
install -Dm644 "$srcdir/gcc/COPYING.RUNTIME" \
"$pkgdir/usr/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION"
}
package_gcc() {
pkgdesc="The GNU Compiler Collection - C and C++ frontends"
depends=("gcc-libs=$pkgver-$pkgrel" 'binutils>=2.28' libmpc zstd libisl.so)
groups=('base-devel')
optdepends=('lib32-gcc-libs: for generating code for 32-bit ABI')
provides=($pkgname-multilib)
replaces=($pkgname-multilib)
options=(!emptydirs staticlibs debug)
cd gcc-build
make -C gcc DESTDIR="$pkgdir" install-driver install-cpp install-gcc-ar \
c++.install-common install-headers install-plugin install-lto-wrapper
install -m755 -t "$pkgdir/usr/bin/" gcc/gcov{,-tool}
install -m755 -t "$pkgdir/${_libdir}/" gcc/{cc1,cc1plus,collect2,lto1}
make -C $CHOST/libgcc DESTDIR="$pkgdir" install
make -C $CHOST/32/libgcc DESTDIR="$pkgdir" install
rm -f "$pkgdir"/usr/lib{,32}/libgcc_s.so*
make -C $CHOST/libstdc++-v3/src DESTDIR="$pkgdir" install
make -C $CHOST/libstdc++-v3/include DESTDIR="$pkgdir" install
make -C $CHOST/libstdc++-v3/libsupc++ DESTDIR="$pkgdir" install
make -C $CHOST/libstdc++-v3/python DESTDIR="$pkgdir" install
make -C $CHOST/32/libstdc++-v3/src DESTDIR="$pkgdir" install
make -C $CHOST/32/libstdc++-v3/include DESTDIR="$pkgdir" install
make -C $CHOST/32/libstdc++-v3/libsupc++ DESTDIR="$pkgdir" install
make DESTDIR="$pkgdir" install-libcc1
install -d "$pkgdir/usr/share/gdb/auto-load/usr/lib"
mv "$pkgdir"/usr/lib/libstdc++.so.6.*-gdb.py \
"$pkgdir/usr/share/gdb/auto-load/usr/lib/"
rm "$pkgdir"/usr/lib{,32}/libstdc++.so*
make DESTDIR="$pkgdir" install-fixincludes
make -C gcc DESTDIR="$pkgdir" install-mkheaders
make -C lto-plugin DESTDIR="$pkgdir" install
install -dm755 "$pkgdir"/usr/lib/bfd-plugins/
ln -s /${_libdir}/liblto_plugin.so \
"$pkgdir/usr/lib/bfd-plugins/"
make -C $CHOST/libgomp DESTDIR="$pkgdir" install-nodist_{libsubinclude,toolexeclib}HEADERS
make -C $CHOST/libitm DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
make -C $CHOST/libquadmath DESTDIR="$pkgdir" install-nodist_libsubincludeHEADERS
make -C $CHOST/libsanitizer DESTDIR="$pkgdir" install-nodist_{saninclude,toolexeclib}HEADERS
make -C $CHOST/libsanitizer/asan DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
make -C $CHOST/libsanitizer/tsan DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
make -C $CHOST/libsanitizer/lsan DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
make -C $CHOST/32/libgomp DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
make -C $CHOST/32/libitm DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
make -C $CHOST/32/libsanitizer DESTDIR="$pkgdir" install-nodist_{saninclude,toolexeclib}HEADERS
make -C $CHOST/32/libsanitizer/asan DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
make -C gcc DESTDIR="$pkgdir" install-man install-info
rm "$pkgdir"/usr/share/man/man1/{gccgo,gfortran,gdc}.1
rm "$pkgdir"/usr/share/info/{gccgo,gfortran,gnat-style,gnat_rm,gnat_ugn,gdc}.info
make -C libcpp DESTDIR="$pkgdir" install
make -C gcc DESTDIR="$pkgdir" install-po
# many packages expect this symlink
ln -s gcc "$pkgdir"/usr/bin/cc
# POSIX conformance launcher scripts for c89 and c99
install -Dm755 "$srcdir/c89" "$pkgdir/usr/bin/c89"
install -Dm755 "$srcdir/c99" "$pkgdir/usr/bin/c99"
# install the libstdc++ man pages
make -C $CHOST/libstdc++-v3/doc DESTDIR="$pkgdir" doc-install-man
# remove files provided by lib32-gcc-libs
rm -f "$pkgdir"/usr/lib32/lib{stdc++,gcc_s}.so
# byte-compile python libraries
python -m compileall "$pkgdir/usr/share/gcc-${pkgver%%+*}/"
python -O -m compileall "$pkgdir/usr/share/gcc-${pkgver%%+*}/"
# Install Runtime Library Exception
install -d "$pkgdir/usr/share/licenses/$pkgname/"
ln -s /usr/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION \
"$pkgdir/usr/share/licenses/$pkgname/"
}
package_gcc-fortran() {
pkgdesc='Fortran front-end for GCC'
depends=("gcc=$pkgver-$pkgrel" libisl.so)
provides=($pkgname-multilib)
replaces=($pkgname-multilib)
cd gcc-build
make -C $CHOST/libgfortran DESTDIR="$pkgdir" install-cafexeclibLTLIBRARIES \
install-{toolexeclibDATA,nodist_fincludeHEADERS,gfor_cHEADERS}
make -C $CHOST/32/libgfortran DESTDIR="$pkgdir" install-cafexeclibLTLIBRARIES \
install-{toolexeclibDATA,nodist_fincludeHEADERS,gfor_cHEADERS}
make -C $CHOST/libgomp DESTDIR="$pkgdir" install-nodist_fincludeHEADERS
make -C gcc DESTDIR="$pkgdir" fortran.install-{common,man,info}
install -Dm755 gcc/f951 "$pkgdir/${_libdir}/f951"
ln -s gfortran "$pkgdir/usr/bin/f95"
# Install Runtime Library Exception
install -d "$pkgdir/usr/share/licenses/$pkgname/"
ln -s /usr/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION \
"$pkgdir/usr/share/licenses/$pkgname/"
}
package_gcc-objc() {
pkgdesc='Objective-C front-end for GCC'
depends=("gcc=$pkgver-$pkgrel" libisl.so)
provides=($pkgname-multilib)
replaces=($pkgname-multilib)
cd gcc-build
make DESTDIR="$pkgdir" -C $CHOST/libobjc install-headers
install -dm755 "$pkgdir/${_libdir}"
install -m755 gcc/cc1obj{,plus} "$pkgdir/${_libdir}/"
# Install Runtime Library Exception
install -d "$pkgdir/usr/share/licenses/$pkgname/"
ln -s /usr/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION \
"$pkgdir/usr/share/licenses/$pkgname/"
}
package_gcc-ada() {
pkgdesc='Ada front-end for GCC (GNAT)'
depends=("gcc=$pkgver-$pkgrel" libisl.so)
provides=($pkgname-multilib)
replaces=($pkgname-multilib)
options=(!emptydirs staticlibs debug)
cd gcc-build/gcc
make DESTDIR="$pkgdir" ada.install-{common,info}
install -m755 gnat1 "$pkgdir/${_libdir}"
cd "$srcdir"/gcc-build/$CHOST/libada
make DESTDIR="${pkgdir}" INSTALL="install" \
INSTALL_DATA="install -m644" install-libada
cd "$srcdir"/gcc-build/$CHOST/32/libada
make DESTDIR="${pkgdir}" INSTALL="install" \
INSTALL_DATA="install -m644" install-libada
ln -s gcc "$pkgdir/usr/bin/gnatgcc"
# insist on dynamic linking, but keep static libraries because gnatmake complains
mv "$pkgdir"/${_libdir}/adalib/libgna{rl,t}-${_majorver}.so "$pkgdir/usr/lib"
ln -s libgnarl-${_majorver}.so "$pkgdir/usr/lib/libgnarl.so"
ln -s libgnat-${_majorver}.so "$pkgdir/usr/lib/libgnat.so"
rm -f "$pkgdir"/${_libdir}/adalib/libgna{rl,t}.so
install -d "$pkgdir/usr/lib32/"
mv "$pkgdir"/${_libdir}/32/adalib/libgna{rl,t}-${_majorver}.so "$pkgdir/usr/lib32"
ln -s libgnarl-${_majorver}.so "$pkgdir/usr/lib32/libgnarl.so"
ln -s libgnat-${_majorver}.so "$pkgdir/usr/lib32/libgnat.so"
rm -f "$pkgdir"/${_libdir}/32/adalib/libgna{rl,t}.so
# Install Runtime Library Exception
install -d "$pkgdir/usr/share/licenses/$pkgname/"
ln -s /usr/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION \
"$pkgdir/usr/share/licenses/$pkgname/"
}
package_gcc-go() {
pkgdesc='Go front-end for GCC'
depends=("gcc=$pkgver-$pkgrel" libisl.so)
provides=("go=1.12.2" $pkgname-multilib)
replaces=($pkgname-multilib)
conflicts=(go)
cd gcc-build
make -C $CHOST/libgo DESTDIR="$pkgdir" install-exec-am
make -C $CHOST/32/libgo DESTDIR="$pkgdir" install-exec-am
make DESTDIR="$pkgdir" install-gotools
make -C gcc DESTDIR="$pkgdir" go.install-{common,man,info}
rm -f "$pkgdir"/usr/lib{,32}/libgo.so*
install -Dm755 gcc/go1 "$pkgdir/${_libdir}/go1"
# Install Runtime Library Exception
install -d "$pkgdir/usr/share/licenses/$pkgname/"
ln -s /usr/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION \
"$pkgdir/usr/share/licenses/$pkgname/"
}
package_lib32-gcc-libs() {
pkgdesc='32-bit runtime libraries shipped by GCC'
depends=('lib32-glibc>=2.27')
provides=(libgo.so libgfortran.so libubsan.so libasan.so)
groups=(multilib-devel)
options=(!emptydirs !strip)
cd gcc-build
make -C $CHOST/32/libgcc DESTDIR="$pkgdir" install-shared
rm -f "$pkgdir/$_libdir/32/libgcc_eh.a"
for lib in libatomic \
libgfortran \
libgo \
libgomp \
libitm \
libquadmath \
libsanitizer/{a,l,ub}san \
libstdc++-v3/src \
libvtv; do
make -C $CHOST/32/$lib DESTDIR="$pkgdir" install-toolexeclibLTLIBRARIES
done
make -C $CHOST/32/libobjc DESTDIR="$pkgdir" install-libs
make -C $CHOST/libphobos DESTDIR="$pkgdir" install
rm -f "$pkgdir"/usr/lib32/libgphobos.spec
# remove files provided by gcc-libs
rm -rf "$pkgdir"/usr/lib
# Install Runtime Library Exception
install -Dm644 "$srcdir/gcc/COPYING.RUNTIME" \
"$pkgdir/usr/share/licenses/lib32-gcc-libs/RUNTIME.LIBRARY.EXCEPTION"
}
package_gcc-d() {
pkgdesc="D frontend for GCC"
depends=("gcc=$pkgver-$pkgrel" libisl.so)
provides=(gdc)
replaces=(gdc)
options=(staticlibs debug)
cd gcc-build
make -C gcc DESTDIR="$pkgdir" d.install-{common,man,info}
install -Dm755 gcc/gdc "$pkgdir"/usr/bin/gdc
install -Dm755 gcc/d21 "$pkgdir"/"$_libdir"/d21
make -C $CHOST/libphobos DESTDIR="$pkgdir" install
rm -f "$pkgdir/usr/lib/"lib{gphobos,gdruntime}.so*
rm -f "$pkgdir/usr/lib32/"lib{gphobos,gdruntime}.so*
install -d "$pkgdir"/usr/include/dlang
ln -s /"${_libdir}"/include/d "$pkgdir"/usr/include/dlang/gdc
# Install Runtime Library Exception
install -d "$pkgdir/usr/share/licenses/$pkgname/"
ln -s /usr/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION \
"$pkgdir/usr/share/licenses/$pkgname/"
}
package_libgccjit() {
pkgdesc="Just-In-Time Compilation with GCC backend"
depends=("gcc=$pkgver-$pkgrel" libisl.so)
cd gcc-build
make -C gcc DESTDIR="$pkgdir" jit.install-common jit.install-info
# Install Runtime Library Exception
install -d "$pkgdir/usr/share/licenses/$pkgname/"
ln -s /usr/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION \
"$pkgdir/usr/share/licenses/$pkgname/"
}

10
gcc/static-compat/c89 Normal file
View File

@ -0,0 +1,10 @@
#!/bin/sh
fl="-std=c89"
for opt; do
case "$opt" in
-ansi|-std=c89|-std=iso9899:1990) fl="";;
-std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2
exit 1;;
esac
done
exec gcc $fl ${1+"$@"}

10
gcc/static-compat/c99 Normal file
View File

@ -0,0 +1,10 @@
#!/bin/sh
fl="-std=c99"
for opt; do
case "$opt" in
-std=c99|-std=iso9899:1999) fl="";;
-std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2
exit 1;;
esac
done
exec gcc $fl ${1+"$@"}

View File

@ -0,0 +1,15 @@
Avoid leaking current data on generated file for Ada.
Index: gcc/ada/gcc-interface/Makefile.in
===================================================================
--- gcc/ada/gcc-interface/Makefile.in (revision 268977)
+++ gcc/ada/gcc-interface/Makefile.in (working copy)
@@ -2407,6 +2407,7 @@ $(RTSDIR)/s-oscons.ads: ../stamp-gnatlib
$(OSCONS_CPP) ; \
$(OSCONS_EXTRACT) ; \
../bldtools/oscons/xoscons s-oscons)
+ touch -r $(fsrcpfx)ada/gsocket.h $@
gnatlib: ../stamp-gnatlib1-$(RTSDIR) ../stamp-gnatlib2-$(RTSDIR) $(RTSDIR)/s-oscons.ads
test -f $(RTSDIR)/s-oscons.ads || exit 1

View File

@ -0,0 +1,14 @@
diff -Naur a/gcc/d/d-incpath.cc b/gcc/d/d-incpath.cc
--- a/gcc/d/d-incpath.cc 2019-01-01 13:31:55.000000000 +0100
+++ b/gcc/d/d-incpath.cc 2019-06-28 08:32:00.326241502 +0200
@@ -140,7 +140,7 @@
path = xstrdup (p->fname);
/* Add D-specific suffix. */
- path = concat (path, "/d", NULL);
+ path = concat (path, "/dlang/gdc", NULL);
/* Ignore duplicate entries. */
bool found = false;

View File

@ -1,8 +1,17 @@
diff --git i/gio/glib-compile-schemas.c w/gio/glib-compile-schemas.c
index b8de0907248f6860..130f89b1728f7932 100644
--- i/gio/glib-compile-schemas.c
+++ w/gio/glib-compile-schemas.c
@@ -1219,19 +1219,6 @@ parse_state_start_schema (ParseState *state,
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Fri, 7 Jan 2022 18:59:10 +0000
Subject: [PATCH] glib-compile-schemas: Remove noisy deprecation warnings
---
gio/glib-compile-schemas.c | 13 -------------
1 file changed, 13 deletions(-)
diff --git a/gio/glib-compile-schemas.c b/gio/glib-compile-schemas.c
index 7e1152f6bf45..924a3e7f176a 100644
--- a/gio/glib-compile-schemas.c
+++ b/gio/glib-compile-schemas.c
@@ -1232,19 +1232,6 @@ parse_state_start_schema (ParseState *state,
return;
}

View File

@ -2,23 +2,22 @@
# Contributor: Jan de Groot <jgc@archlinux.org>
_pkgname=glib2
pkgname=$_pkgname-static
pkgver=2.66.4
pkgname=static-compat-$_pkgname
pkgver=2.72.0
pkgrel=2
pkgdesc="Low level core library"
url="https://wiki.gnome.org/Projects/GLib"
license=(LGPL)
arch=(x86_64)
depends=(pcre-static libffi-static util-linux-static zlib) # regular zlib contains static lib
makedepends=(gettext shared-mime-info python libelf git util-linux
meson dbus sysprof pcre libffi) # shared libs required at build time for some plugins
depends=(static-compat-pcre static-compat-libffi static-compat-util-linux static-compat-zlib)
makedepends=(gettext shared-mime-info python libelf git static-compat-meson)
checkdepends=(desktop-file-utils)
options=(!strip !emptydirs staticlibs)
_commit=bacbec652d356895ec493f3de2f2f6f4c7dafde0 # tags/2.66.4^0
source=("git+https://gitlab.gnome.org/GNOME/glib.git#commit=$_commit"
noisy-glib-compile-schemas.diff)
0001-glib-compile-schemas-Remove-noisy-deprecation-warnin.patch)
sha256sums=('SKIP'
'81a4df0b638730cffb7fa263c04841f7ca6b9c9578ee5045db6f30ff0c3fc531')
'edb5e34ac0a77431978cab55b98e39754d73455e28a38f5003424e943bbe5fff')
pkgver() {
cd glib
@ -29,41 +28,40 @@ prepare() {
cd glib
# Suppress noise from glib-compile-schemas.hook
git apply -3 ../noisy-glib-compile-schemas.diff
git apply -3 ../0001-glib-compile-schemas-Remove-noisy-deprecation-warnin.patch
}
build() {
CFLAGS+=" -DG_DISABLE_CAST_CHECKS"
arch-meson glib build \
export CFLAGS+=" -DG_DISABLE_CAST_CHECKS"
export LDFLAGS+=" -lblkid"
source static-compat-environment
static-compat-meson glib build \
-D selinux=disabled \
-D sysprof=enabled \
-Dsysprof=disabled \
-D man=false \
-D gtk_doc=false \
-Dinternal_pcre=false \
--prefix /usr/static \
--default-library static
-Dinternal_pcre=false
meson compile -C build
}
check() {
source static-compat-environment
meson test -C build --no-suite flaky --print-errorlogs
}
package() {
source static-compat-environment
DESTDIR="$pkgdir" meson install -C build
# Strip messes up the LTO-enabled archive's index so strip libs manually and then run ranlib again
find "$pkgdir" -name '*.a' -exec strip $STRIP_STATIC {} \;
find "$pkgdir" -name '*.a' -exec ranlib {} \;
# Avoid a dep on sysprof
sed -i 's/, sysprof-capture-4//' "$pkgdir"/usr/static/lib/pkgconfig/*.pc
export PYTHONHASHSEED=0
python -m compileall -d /usr/static/share/glib-2.0/codegen \
"$pkgdir/usr/static/share/glib-2.0/codegen"
python -O -m compileall -d /usr/static/share/glib-2.0/codegen \
"$pkgdir/usr/static/share/glib-2.0/codegen"
python -m compileall -d "$static_compat_prefix"/share/glib-2.0/codegen \
"$pkgdir/$static_compat_prefix/share/glib-2.0/codegen"
python -O -m compileall -d "$static_compat_prefix"/share/glib-2.0/codegen \
"$pkgdir/$static_compat_prefix/share/glib-2.0/codegen"
}
# vim:set sw=2 et:

View File

@ -0,0 +1,194 @@
# $Id$
# Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Contributor: Allan McRae <allan@archlinux.org>
# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
# NOTE: valgrind requires rebuilt with each major glibc version
pkgbase=glibc-static-compat
pkgname=(glibc-static-compat lib32-glibc-static-compat)
pkgver=2.26
pkgrel=3
arch=(x86_64)
url='http://www.gnu.org/software/libc'
license=(GPL LGPL)
makedepends=(git gd lib32-gcc-libs linux-api-headers-static-compat)
options=(!strip staticlibs)
#_commit=23158b08a0908f381459f273a984c6fd328363cb
_commit=de51f431ed6226ec68ca76e578f2cbd55b6262cb
source=(git+https://sourceware.org/git/glibc.git#commit=$_commit
#source=(https://ftp.gnu.org/gnu/glibc/glibc-$pkgver.tar.xz{,.sig}
bz20338.patch)
validpgpkeys=(7273542B39962DF7B299931416792B4EA25340F8) # Carlos O'Donell
md5sums=('898cd5656519ffbc3a03fe811dd89e82'
'SKIP'
'07ac979b6ab5eeb778d55f041529d623'
'476e9113489f93b348b21e144b6a8fcf'
'6e052f1cb693d5d3203f50f9d4e8c33b'
'dc0d3ad59aeaaf591b085a77de6e03e9')
_prefix=/usr/static-compat
prepare() {
mkdir -p glibc-build lib32-glibc-build
[[ -d glibc-$pkgver ]] && ln -s glibc-$pkgver glibc
cd glibc
local i; for i in ${source[@]}; do
case ${i%::*} in
*.patch)
msg2 "Applying ${i}"
patch -p1 -i "$srcdir/${i}"
;;
esac
done
}
build() {
local _configure_flags=(
--prefix=/
--with-headers=$_prefix/include
--with-bugurl=https://github.com/Martchus/PKGBUILDs/issues
--enable-add-ons
--enable-bind-now
--enable-lock-elision
--enable-kernel=4.4
--enable-multi-arch
--enable-obsolete-nsl
--enable-obsolete-rpc
--enable-stack-protector=strong
--enable-stackguard-randomization
--disable-profile
--disable-crypt
--disable-werror
)
cd "$srcdir/glibc-build"
echo "slibdir=/lib" >> configparms
echo "rtlddir=/lib" >> configparms
echo "sbindir=/bin" >> configparms
echo "rootsbindir=/bin" >> configparms
# remove fortify for building libraries
CPPFLAGS=${CPPFLAGS/-D_FORTIFY_SOURCE=2/}
"$srcdir/glibc/configure" \
--libdir=/lib \
--libexecdir=/lib \
${_configure_flags[@]}
#
# build libraries with fortify disabled
echo "build-programs=no" >> configparms
make
# re-enable fortify for programs
sed -i "/build-programs=/s#no#yes#" configparms
echo "CC += -D_FORTIFY_SOURCE=2" >> configparms
echo "CXX += -D_FORTIFY_SOURCE=2" >> configparms
echo "building programs"
make
cd "$srcdir/lib32-glibc-build"
export CC="gcc -m32 -mstackrealign"
export CXX="g++ -m32 -mstackrealign"
echo "slibdir=/lib32" >> configparms
echo "rtlddir=/lib32" >> configparms
echo "sbindir=/bin" >> configparms
echo "rootsbindir=/bin" >> configparms
# remove fortify for building libraries
CPPFLAGS=${CPPFLAGS/-D_FORTIFY_SOURCE=2/}
CFLAGS=${CFLAGS/-fno-plt/}
CXXFLAGS=${CXXFLAGS/-fno-plt/}
"$srcdir/glibc/configure" \
--host=i686-pc-linux-gnu \
--libdir=/lib32 \
--libexecdir=/lib32 \
${_configure_flags[@]}
# build libraries with fortify disabled
echo "build-programs=no" >> configparms
make
# re-enable fortify for programs
sed -i "/build-programs=/s#no#yes#" configparms
echo "CC += -D_FORTIFY_SOURCE=2" >> configparms
echo "CXX += -D_FORTIFY_SOURCE=2" >> configparms
make
}
check() {
cd glibc-build
# remove fortify in preparation to run test-suite
sed -i '/FORTIFY/d' configparms
# some failures are "expected"
make check || true
}
package_glibc-static-compat() {
pkgdesc='GNU C Library'
depends=('linux-api-headers-static-compat>=4.10' tzdata filesystem)
optdepends=('gd: for memusagestat')
make -C glibc-build install_root="$pkgdir$_prefix" install
rm -rf "$pkgdir"$_prefix/{etc,sbin,var}
cd glibc
install -dm755 "$pkgdir"$_prefix/lib/{locale,systemd/system,tmpfiles.d}
install -m644 nscd/nscd.service "$pkgdir$_prefix/lib/systemd/system"
install -m644 nscd/nscd.tmpfiles "$pkgdir$_prefix/lib/tmpfiles.d/nscd.conf"
if check_option 'debug' n; then
find "$pkgdir"$_prefix/bin -type f -executable -exec strip $STRIP_BINARIES {} + 2> /dev/null || true
find "$pkgdir"$_prefix/lib -name '*.a' -type f -exec strip $STRIP_STATIC {} + 2> /dev/null || true
# Do not strip these for gdb and valgrind functionality, but strip the rest
find "$pkgdir"$_prefix/lib \
-not -name 'ld-*.so' \
-not -name 'libc-*.so' \
-not -name 'libpthread-*.so' \
-not -name 'libthread_db-*.so' \
-name '*-*.so' -type f -exec strip $STRIP_SHARED {} + 2> /dev/null || true
fi
}
package_lib32-glibc-static-compat() {
pkgdesc='GNU C Library (32-bit)'
depends=("glibc-static-compat=$pkgver")
cd lib32-glibc-build
make install_root="$pkgdir$_prefix" install
rm -rf "$pkgdir"$_prefix/{etc,sbin,var}
rm -rf "$pkgdir"$_prefix/{bin,sbin,share}
# We need to keep 32 bit specific header files
find "$pkgdir$_prefix/include" -type f -not -name '*-32.h' -delete
# Dynamic linker
install -d "$pkgdir$_prefix/lib"
ln -s ../lib32/ld-linux.so.2 "$pkgdir$_prefix/lib/"
# Symlink /usr/lib32/locale to /usr/lib/locale
ln -s ../lib/locale "$pkgdir$_prefix/lib32/locale"
if check_option 'debug' n; then
find "$pkgdir"$_prefix/lib32 -name '*.a' -type f -exec strip $STRIP_STATIC {} + 2> /dev/null || true
find "$pkgdir"$_prefix/lib32 \
-not -name 'ld-*.so' \
-not -name 'libc-*.so' \
-not -name 'libpthread-*.so' \
-not -name 'libthread_db-*.so' \
-name '*-*.so' -type f -exec strip $STRIP_SHARED {} + 2> /dev/null || true
fi
}

View File

@ -0,0 +1,211 @@
# $Id$
# Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Contributor: Allan McRae <allan@archlinux.org>
# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
# NOTE: valgrind requires rebuilt with each major glibc version
pkgbase=glibc
pkgname=(glibc lib32-glibc)
pkgver=2.27
pkgrel=3
arch=(x86_64)
url='http://www.gnu.org/software/libc'
license=(GPL LGPL)
makedepends=(git gd lib32-gcc-libs)
options=(!strip staticlibs)
_commit=23158b08a0908f381459f273a984c6fd328363cb
#source=(git+https://sourceware.org/git/glibc.git#commit=$_commit
source=(https://ftp.gnu.org/gnu/glibc/glibc-$pkgver.tar.xz{,.sig}
locale.gen.txt
locale-gen
lib32-glibc.conf
bz20338.patch)
validpgpkeys=(7273542B39962DF7B299931416792B4EA25340F8) # Carlos O'Donell
md5sums=('898cd5656519ffbc3a03fe811dd89e82'
'SKIP'
'07ac979b6ab5eeb778d55f041529d623'
'476e9113489f93b348b21e144b6a8fcf'
'6e052f1cb693d5d3203f50f9d4e8c33b'
'dc0d3ad59aeaaf591b085a77de6e03e9')
prepare() {
mkdir -p glibc-build lib32-glibc-build
[[ -d glibc-$pkgver ]] && ln -s glibc-$pkgver glibc
cd glibc
local i; for i in ${source[@]}; do
case ${i%::*} in
*.patch)
msg2 "Applying ${i}"
patch -p1 -i "$srcdir/${i}"
;;
esac
done
}
build() {
local _configure_flags=(
--prefix=/usr
--with-headers=/usr/include
--with-bugurl=https://bugs.archlinux.org/
--enable-add-ons
--enable-bind-now
--enable-lock-elision
--enable-multi-arch
--enable-stack-protector=strong
--enable-stackguard-randomization
--enable-static-pie
--disable-profile
--disable-werror
)
cd "$srcdir/glibc-build"
echo "slibdir=/usr/lib" >> configparms
echo "rtlddir=/usr/lib" >> configparms
echo "sbindir=/usr/bin" >> configparms
echo "rootsbindir=/usr/bin" >> configparms
# remove fortify for building libraries
CPPFLAGS=${CPPFLAGS/-D_FORTIFY_SOURCE=2/}
"$srcdir/glibc/configure" \
--libdir=/usr/lib \
--libexecdir=/usr/lib \
${_configure_flags[@]}
# build libraries with fortify disabled
echo "build-programs=no" >> configparms
make
# re-enable fortify for programs
sed -i "/build-programs=/s#no#yes#" configparms
echo "CC += -D_FORTIFY_SOURCE=2" >> configparms
echo "CXX += -D_FORTIFY_SOURCE=2" >> configparms
make
cd "$srcdir/lib32-glibc-build"
export CC="gcc -m32 -mstackrealign"
export CXX="g++ -m32 -mstackrealign"
echo "slibdir=/usr/lib32" >> configparms
echo "rtlddir=/usr/lib32" >> configparms
echo "sbindir=/usr/bin" >> configparms
echo "rootsbindir=/usr/bin" >> configparms
# remove fortify for building libraries
CPPFLAGS=${CPPFLAGS/-D_FORTIFY_SOURCE=2/}
CFLAGS=${CFLAGS/-fno-plt/}
CXXFLAGS=${CXXFLAGS/-fno-plt/}
"$srcdir/glibc/configure" \
--host=i686-pc-linux-gnu \
--libdir=/usr/lib32 \
--libexecdir=/usr/lib32 \
${_configure_flags[@]}
# build libraries with fortify disabled
echo "build-programs=no" >> configparms
make
# re-enable fortify for programs
sed -i "/build-programs=/s#no#yes#" configparms
echo "CC += -D_FORTIFY_SOURCE=2" >> configparms
echo "CXX += -D_FORTIFY_SOURCE=2" >> configparms
make
}
check() {
cd glibc-build
# remove fortify in preparation to run test-suite
sed -i '/FORTIFY/d' configparms
# some failures are "expected"
make check || true
}
package_glibc() {
pkgdesc='GNU C Library'
depends=('linux-api-headers>=4.10' tzdata filesystem)
optdepends=('gd: for memusagestat')
install=glibc.install
backup=(etc/gai.conf
etc/locale.gen
etc/nscd.conf)
groups=(base)
install -dm755 "$pkgdir/etc"
touch "$pkgdir/etc/ld.so.conf"
make -C glibc-build install_root="$pkgdir" install
rm -f "$pkgdir"/etc/ld.so.{cache,conf}
cd glibc
install -dm755 "$pkgdir"/usr/lib/{locale,systemd/system,tmpfiles.d}
install -m644 nscd/nscd.conf "$pkgdir/etc/nscd.conf"
install -m644 nscd/nscd.service "$pkgdir/usr/lib/systemd/system"
install -m644 nscd/nscd.tmpfiles "$pkgdir/usr/lib/tmpfiles.d/nscd.conf"
install -dm755 "$pkgdir/var/db/nscd"
install -m644 posix/gai.conf "$pkgdir"/etc/gai.conf
install -m755 "$srcdir/locale-gen" "$pkgdir/usr/bin"
# Create /etc/locale.gen
install -m644 "$srcdir/locale.gen.txt" "$pkgdir/etc/locale.gen"
sed -e '1,3d' -e 's|/| |g' -e 's|\\| |g' -e 's|^|#|g' \
"$srcdir/glibc/localedata/SUPPORTED" >> "$pkgdir/etc/locale.gen"
if check_option 'debug' n; then
find "$pkgdir"/usr/bin -type f -executable -exec strip $STRIP_BINARIES {} + 2> /dev/null || true
find "$pkgdir"/usr/lib -name '*.a' -type f -exec strip $STRIP_STATIC {} + 2> /dev/null || true
# Do not strip these for gdb and valgrind functionality, but strip the rest
find "$pkgdir"/usr/lib \
-not -name 'ld-*.so' \
-not -name 'libc-*.so' \
-not -name 'libpthread-*.so' \
-not -name 'libthread_db-*.so' \
-name '*-*.so' -type f -exec strip $STRIP_SHARED {} + 2> /dev/null || true
fi
}
package_lib32-glibc() {
pkgdesc='GNU C Library (32-bit)'
depends=("glibc=$pkgver")
cd lib32-glibc-build
make install_root="$pkgdir" install
rm -rf "$pkgdir"/{etc,sbin,usr/{bin,sbin,share},var}
# We need to keep 32 bit specific header files
find "$pkgdir/usr/include" -type f -not -name '*-32.h' -delete
# Dynamic linker
install -d "$pkgdir/usr/lib"
ln -s ../lib32/ld-linux.so.2 "$pkgdir/usr/lib/"
# Add lib32 paths to the default library search path
install -Dm644 "$srcdir/lib32-glibc.conf" "$pkgdir/etc/ld.so.conf.d/lib32-glibc.conf"
# Symlink /usr/lib32/locale to /usr/lib/locale
ln -s ../lib/locale "$pkgdir/usr/lib32/locale"
if check_option 'debug' n; then
find "$pkgdir"/usr/lib32 -name '*.a' -type f -exec strip $STRIP_STATIC {} + 2> /dev/null || true
find "$pkgdir"/usr/lib32 \
-not -name 'ld-*.so' \
-not -name 'libc-*.so' \
-not -name 'libpthread-*.so' \
-not -name 'libthread_db-*.so' \
-name '*-*.so' -type f -exec strip $STRIP_SHARED {} + 2> /dev/null || true
fi
}

View File

@ -0,0 +1,114 @@
From 74250a7cdf106d4ca7d9506e6d5dc7c448dc3434 Mon Sep 17 00:00:00 2001
From: David Michael <david.michael@coreos.com>
Date: Thu, 15 Dec 2016 15:22:57 -0800
Subject: [PATCH] gshadow: Sync fgetsgent_r.c with grp/fgetgrent_r.c
[BZ #20338]
* gshadow/fgetsgent_r.c: Include <libio/iolibio.h>.
(flockfile): New macro.
(funlockfile): Likewise.
(__fgetsgent_r): Sync with __fgetgrent_r.
* nss/nss_files/files-sgrp.c: Fix "fgetsgent_r.c" typo.
---
gshadow/fgetsgent_r.c | 35 ++++++++++++++++++++++++-----------
nss/nss_files/files-sgrp.c | 2 +-
2 files changed, 25 insertions(+), 12 deletions(-)
diff --git a/gshadow/fgetsgent_r.c b/gshadow/fgetsgent_r.c
index b70f6fa..02cd33a 100644
--- a/gshadow/fgetsgent_r.c
+++ b/gshadow/fgetsgent_r.c
@@ -20,39 +20,44 @@
#include <gshadow.h>
#include <stdio.h>
+#include <libio/iolibio.h>
+#define flockfile(s) _IO_flockfile (s)
+#define funlockfile(s) _IO_funlockfile (s)
+
/* Define a line parsing function using the common code
used in the nss_files module. */
#define STRUCTURE sgrp
#define ENTNAME sgent
-#define EXTERN_PARSER 1
+#define EXTERN_PARSER 1
struct sgent_data {};
#include <nss/nss_files/files-parse.c>
-/* Read one shadow entry from the given stream. */
+/* Read one entry from the given stream. */
int
__fgetsgent_r (FILE *stream, struct sgrp *resbuf, char *buffer, size_t buflen,
struct sgrp **result)
{
char *p;
+ int parse_result;
- _IO_flockfile (stream);
+ flockfile (stream);
do
{
buffer[buflen - 1] = '\xff';
p = fgets_unlocked (buffer, buflen, stream);
- if (p == NULL && feof_unlocked (stream))
+ if (__builtin_expect (p == NULL, 0) && feof_unlocked (stream))
{
- _IO_funlockfile (stream);
+ funlockfile (stream);
*result = NULL;
__set_errno (ENOENT);
return errno;
}
- if (p == NULL || buffer[buflen - 1] != '\xff')
+ if (__builtin_expect (p == NULL, 0) || buffer[buflen - 1] != '\xff')
{
- _IO_funlockfile (stream);
+ funlockfile (stream);
*result = NULL;
__set_errno (ERANGE);
return errno;
@@ -61,13 +66,21 @@ __fgetsgent_r (FILE *stream, struct sgrp *resbuf, char *buffer, size_t buflen,
/* Skip leading blanks. */
while (isspace (*p))
++p;
- } while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
+ } while (*p == '\0' || *p == '#' /* Ignore empty and comment lines. */
/* Parse the line. If it is invalid, loop to
get the next line of the file to parse. */
- ! parse_line (buffer, (void *) resbuf, (void *) buffer, buflen,
- &errno));
+ || ! (parse_result = parse_line (p, resbuf,
+ (void *) buffer, buflen,
+ &errno)));
+
+ funlockfile (stream);
- _IO_funlockfile (stream);
+ if (__builtin_expect (parse_result, 0) == -1)
+ {
+ /* The parser ran out of space. */
+ *result = NULL;
+ return errno;
+ }
*result = resbuf;
return 0;
diff --git a/nss/nss_files/files-sgrp.c b/nss/nss_files/files-sgrp.c
index 15dc659..05c3805 100644
--- a/nss/nss_files/files-sgrp.c
+++ b/nss/nss_files/files-sgrp.c
@@ -23,7 +23,7 @@
#define DATABASE "gshadow"
struct sgent_data {};
-/* Our parser function is already defined in sgetspent_r.c, so use that
+/* Our parser function is already defined in sgetsgent_r.c, so use that
to parse lines from the database file. */
#define EXTERN_PARSER
#include "files-parse.c"
--
2.7.4

View File

@ -1,7 +1,7 @@
# Contributor: AndyRTR <andyrtr@archlinux.org>
_pkgname=graphite
pkgname=$_pkgname-static
pkgname=static-compat-$_pkgname
pkgver=1.3.14
pkgrel=1
epoch=1
@ -9,16 +9,16 @@ arch=('x86_64')
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-static' 'python')
depends=('gcc-libs-static-compat')
makedepends=('static-compat-cmake' 'static-compat-freetype2' 'python')
options=(!emptydirs !docs staticlibs)
# https://github.com/silnrsi/graphite/releases/download/1.3.14/graphite2-1.3.14.sha256sum
source=(https://github.com/silnrsi/graphite/releases/download/${pkgver}/graphite2-${pkgver}.tgz)
sha256sums=('f99d1c13aa5fa296898a181dff9b82fb25f6cc0933dbaa7a475d8109bd54209d')
build() {
source static-compat-environment
mkdir build
export PKG_CONFIG_PATH=/usr/static/lib/pkgconfig:/usr/lib/pkgconfig
cd graphite2-${pkgver}
echo '' > doc/CMakeLists.txt
echo '' > tests/CMakeLists.txt # TODO: fix linking tests
@ -26,12 +26,10 @@ build() {
export PATH=$PWD:$PATH
printf '#!/usr/bin/bash\nexec /usr/bin/pkg-config --static "$@"\n' > pkg-config
chmod +x pkg-config
cmake -G "Unix Makefiles" ../graphite2-${pkgver} \
static-compat-cmake -G "Unix Makefiles" ../graphite2-${pkgver} \
-DCMAKE_C_FLAGS:STRING="${CFLAGS}" \
-DCMAKE_INSTALL_PREFIX=/usr/static \
-DCMAKE_BUILD_TYPE:STRING=Release \
-DGRAPHITE2_COMPARE_RENDERER=OFF \
-DBUILD_SHARED_LIBS=OFF \
-DGRAPHITE2_COMPARE_RENDERER=OFF
# fix unwanted -O3 cflag (taken form Debian)
find . -type f ! -name "rules" ! -name "changelog" -exec sed -i -e 's/\-O3//g' {} \;
@ -40,6 +38,7 @@ build() {
}
package() {
source static-compat-environment
cd "${srcdir}"/build
make DESTDIR="$pkgdir/" install

View File

@ -2,18 +2,18 @@
# Contributor: Jan de Groot <jgc@archlinux.org>
_pkgname=harfbuzz
pkgname=$_pkgname-static
pkgver=2.7.4
pkgname=static-compat-$_pkgname
pkgver=4.2.0
pkgrel=1
pkgdesc="OpenType text shaping engine"
url="https://www.freedesktop.org/wiki/Software/HarfBuzz"
arch=(x86_64)
license=(MIT)
depends=(glib2-static freetype2-static graphite-static)
makedepends=(gobject-introspection ragel git python meson)
depends=(static-compat-glib2 static-compat-freetype2 static-compat-graphite)
makedepends=(gobject-introspection ragel git python static-compat-meson)
checkdepends=(python-fonttools python-setuptools)
options=(!emptydirs !docs staticlibs)
_commit=7236c7e29cef1c2d76c7a284c5081ff4d3aa1127 # tags/2.7.4^0
_commit=9d5730b958974bc9db95e46e6bad52e9e9cd6e1c # tags/4.2.0^0
source=("git+https://github.com/harfbuzz/harfbuzz#commit=$_commit")
sha256sums=('SKIP')
@ -27,34 +27,36 @@ prepare() {
}
build() {
export PKG_CONFIG_PATH=/usr/static/lib/pkgconfig:/usr/lib/pkgconfig
source static-compat-environment
export PATH=$PWD:$PATH
printf '#!/usr/bin/bash\nexec /usr/bin/pkg-config --static "$@"\n' > pkg-config
chmod +x pkg-config
# disable tools (and related tests)
echo '' > harfbuzz/util/meson.build
echo '' > harfbuzz/test/shaping/meson.build
echo '' > harfbuzz/test/shape/meson.build
echo '' > harfbuzz/test/subset/meson.build
arch-meson harfbuzz build \
static-compat-meson harfbuzz build \
-Dgraphite=enabled \
-Dcairo=disabled \
-Dintrospection=disabled \
-Dfontconfig=disabled \
-Dicu=disabled \
-Ddocs=disabled \
--prefix /usr/static \
--default-library static
-Ddocs=disabled
meson compile -C build
}
check() {
source static-compat-environment
mkdir -p tmp
TMPDIR="$PWD/tmp" meson test -C build --print-errorlogs
rm -r tmp
}
package() {
source static-compat-environment
DESTDIR="$pkgdir" meson install -C build
# remove CMake config as it is broken for a static build (the pkgconfig file alone should be good enough)
rm -r "$pkgdir/$static_compat_prefix"/lib/cmake/harfbuzz/harfbuzz-config.cmake
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 harfbuzz/COPYING
}

View File

@ -2,7 +2,7 @@
# Contributor: Tobias Powalowski <tpowa@archlinux.org>
_pkgname=keyutils
pkgname=$_pkgname-static
pkgname=static-compat-$_pkgname
_tag='5678a1aae8834b5c16b5ed7dc72ef8836a29e122' # git rev-parse v${pkgver}
pkgver=1.6.3
pkgrel=1
@ -10,8 +10,8 @@ pkgdesc='Linux Key Management Utilities'
arch=('x86_64')
url='https://www.kernel.org/'
license=('GPL2' 'LGPL2.1')
depends=('glibc')
makedepends=('git')
depends=('glibc-static-compat')
makedepends=('git' 'static-compat-environment')
options=(!emptydirs staticlibs)
#validpgpkeys=('A86E54B0D5E1B4E0AB7C640FFBB7576BA7CB0B6B') # David Howells <dhowells@redhat.com>
#source=("git+https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/keyutils.git#tag=${_tag}?signed"
@ -22,6 +22,7 @@ sha256sums=('SKIP'
'7bb7400b2b8c8f0288c86ec9191f8964a1e682745a204013d5fc7c2e1a253d8e')
prepare() {
source static-compat-environment
cd "${_pkgname}"
# fix paths of binaries in /etc/request-key.conf
patch -Np0 -i ../request-key.conf.patch
@ -31,20 +32,22 @@ prepare() {
}
build() {
source static-compat-environment
cd "${_pkgname}"
make CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" \
PREFIX='/usr/static' SBINDIR='/usr/static/bin' BINDIR='/usr/static/bin' INCLUDEDIR='/usr/static/include' \
PREFIX="$static_compat_prefix" SBINDIR="$static_compat_prefix"/bin BINDIR="$static_compat_prefix"/bin \ INCLUDEDIR="$static_compat_prefix"/include \
NO_SOLIB=1
}
package() {
source static-compat-environment
cd "${_pkgname}"
make DESTDIR="${pkgdir}" \
PREFIX='/usr/static' SBINDIR='/usr/static/bin' BINDIR='/usr/static/bin' LIBDIR='/usr/static/lib' \
USRLIBDIR='/usr/static/lib' INCLUDEDIR='/usr/static/include' \
PREFIX="$static_compat_prefix" SBINDIR="$static_compat_prefix"/bin BINDIR="$static_compat_prefix"/bin \ INCLUDEDIR="$static_compat_prefix"/include LIBDIR="$static_compat_prefix"/lib \
USRLIBDIR="$static_compat_prefix"/lib \
NO_SOLIB=1 install pkgconfig
install -Dt "$pkgdir/usr/static/lib/pkgconfig" -m644 libkeyutils.pc
rm -r "${pkgdir}"/usr/static/bin
install -Dt "$pkgdir/$static_compat_prefix"/lib/pkgconfig -m644 libkeyutils.pc
rm -r "${pkgdir}/$static_compat_prefix"/bin
rm -r "${pkgdir}"/usr/share
rm -r "${pkgdir}"/etc
}

View File

@ -3,34 +3,40 @@
# Contributor: Jesin <Jesin00@gmail.com>
_pkgname=libb2
pkgname=$_pkgname-static
pkgname=static-compat-$_pkgname
pkgver=0.98.1
pkgrel=2
arch=(x86_64)
pkgdesc='C library providing BLAKE2b, BLAKE2s, BLAKE2bp, BLAKE2sp hash functions'
url='https://blake2.net/'
license=(custom:CC0)
depends=(gcc-libs)
depends=(gcc-libs-static-compat)
makedepends=(static-compat-configure)
options=(staticlibs)
source=("https://github.com/BLAKE2/libb2/releases/download/v$pkgver/$_pkgname-$pkgver.tar.gz")
sha256sums=('53626fddce753c454a3fea581cbbc7fe9bbcf0bc70416d48fdbbf5d87ef6c72e')
# libb2's build system discards the $CFLAGS variable.
# We can get around this by putting those flags in $CC.
export CC="${CC-cc} $CFLAGS"
build() {
source static-compat-environment
# libb2's build system discards the $CFLAGS variable.
# We can get around this by putting those flags in $CC.
export CC="${CC-cc} $CFLAGS"
cd "$_pkgname-$pkgver"
./configure --prefix=/usr/static --disable-shared --enable-static --disable-native --enable-fat
static-compat-configure --disable-shared --enable-static --disable-native --enable-fat
make
}
check() {
source static-compat-environment
export CC="${CC-cc} $CFLAGS"
cd $_pkgname-$pkgver
make check
}
package() {
source static-compat-environment
export CC="${CC-cc} $CFLAGS"
cd $_pkgname-$pkgver
make DESTDIR="$pkgdir" install
install -Dm644 COPYING -t "$pkgdir"/usr/share/licenses/$pkgname

View File

@ -0,0 +1,43 @@
# Contributor: David Runge <dvzrv@archlinux.org>
# Contributor: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: Hugo Doria <hugo@archlinux.org>
_pkgname=libcap
pkgname=static-compat-$_pkgname
pkgver=2.63
pkgrel=2
pkgdesc="POSIX 1003.1e capabilities"
arch=(x86_64)
url="https://sites.google.com/site/fullycapable/"
license=(GPL2)
depends=(glibc-static-compat)
makedepends=(static-compat-environment)
options=(staticlibs)
source=("https://kernel.org/pub/linux/libs/security/linux-privs/${_pkgname}2/${_pkgname}-$pkgver.tar."{xz,sign}
)
sha512sums=('832842b71ca32db8f53ca5f1a3010f14e7f42693f62f29632e9948c860f990899bb094165c37307ce8b9e5bc5eb1c833e780ebca98442df3e6d900e4b238834b'
'SKIP')
b2sums=('a49a628f5b9ddf5a3d077428544a53b9cdedf62053ff296a0aa7d61e12ca05f9ba7597f20ee16a3843736bee2417a3d1585ad6b336651fcb3e4ee29b108cfa0f'
'SKIP')
validpgpkeys=(38A644698C69787344E954CE29EE848AE2CCF3F4) # Andrew G. Morgan <morgan@kernel.org>
build() {
source static-compat-environment
export DYNAMIC=no PAM_CAP=no KERNEL_HEADERS=$static_compat_prefix/include lib=lib
make prefix=$static_compat_prefix sbindir=bin -C $_pkgname-$pkgver
}
check() {
source static-compat-environment
export DYNAMIC=no PAM_CAP=no KERNEL_HEADERS=$static_compat_prefix/include lib=lib
make test -k -C $_pkgname-$pkgver
}
package() {
source static-compat-environment
export DYNAMIC=no PAM_CAP=no KERNEL_HEADERS=$static_compat_prefix/include lib=lib
make DESTDIR="$pkgdir" RAISE_SETFCAP=no lib=lib prefix=$static_compat_prefix sbindir=bin install -C $_pkgname-$pkgver
find "$pkgdir" -iname '*.so*' -delete
rm -r "$pkgdir/$static_compat_prefix"/share
}

View File

@ -0,0 +1,27 @@
From de2daf8d361ce2387514c846fe3d741f3d7572ab Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer@who-t.net>
Date: Fri, 25 Mar 2022 14:37:28 +1000
Subject: [PATCH] meson.build: install the mouse-dpi-tool man page
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
---
meson.build | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
index 63504ac..33365c9 100644
--- a/meson.build
+++ b/meson.build
@@ -130,7 +130,8 @@ executable('libevdev-tweak-device',
dependencies: dep_libevdev,
install: true)
install_man('tools/libevdev-tweak-device.1',
- 'tools/touchpad-edge-detector.1')
+ 'tools/touchpad-edge-detector.1',
+ 'tools/mouse-dpi-tool.1')
# tests
dep_check = dependency('check', version: '>= 0.9.9',
--
GitLab

View File

@ -0,0 +1,47 @@
# Contributor: Andreas Radke <andyrtr@archlinux.org>
_pkgname=libevdev
pkgname=static-compat-$_pkgname
pkgver=1.12.1
pkgrel=1
pkgdesc="Wrapper library for evdev devices"
arch=(x86_64)
url="https://www.freedesktop.org/wiki/Software/libevdev/"
license=(custom:MIT)
depends=('glibc-static-compat')
# 'static-compat-check'
makedepends=('python' 'valgrind' 'doxygen' 'static-compat-meson')
options=(staticlibs)
source=(https://freedesktop.org/software/$_pkgname/$_pkgname-$pkgver.tar.xz{,.sig}
0001_install_the_mouse-dpi-tool_man_page.diff)
sha512sums=('eefce287a665e4f89eb2e0437dfefd45ecf8925c7dac35a1bdd46158541f77f2032c6146900a30a01321751d55a9b537bd1d61777cca9cfa02c39a6e31c97be4'
'SKIP'
'5bfdb686c1ed1b936d199babae5d9294c3ee158ab4849930a358ad1ae17a50011bd7132ff18614326af0ed73ce5bb887da28c41143daa8f61b74d3d6d047b7d8')
validpgpkeys=('3C2C43D9447D5938EF4551EBE23B7E70B467F0BF') # Peter Hutterer (Who-T) <office@who-t.net>
prepare() {
cd $_pkgname-$pkgver
patch -Np1 -i ../0001_install_the_mouse-dpi-tool_man_page.diff
}
build() {
source static-compat-environment
static-compat-meson $_pkgname-$pkgver build \
-D documentation=disabled \
-D tests=disabled
meson compile -C build
}
#check() {
# source static-compat-environment
# meson test -C build
#}
package() {
source static-compat-environment
DESTDIR="$pkgdir" meson install -C build
rm -r "$pkgdir/$static_compat_prefix"/share/man
install -Dm644 $_pkgname-$pkgver/COPYING \
"${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
}

View File

@ -4,14 +4,15 @@
# Contributor: Jan de Groot <jgc@archlinux.org>
_pkgname=libffi
pkgname=$_pkgname-static
pkgname=static-compat-$_pkgname
pkgver=3.4.2
pkgrel=1
pkgdesc='Portable foreign function interface library'
arch=('x86_64')
url='https://sourceware.org/libffi/'
license=('MIT')
depends=('glibc')
depends=('glibc-static-compat')
makedepends=('static-compat-configure')
checkdepends=('dejagnu')
options=(!emptydirs staticlibs)
source=(https://github.com/libffi/libffi/releases/download/v${pkgver}/libffi-${pkgver}.tar.gz)
@ -19,14 +20,15 @@ sha256sums=('540fb721619a6aba3bdeef7d940d8e9e0e6d2c193595bc243241b77ff9e93620')
b2sums=('a8137bc895b819f949fd7705e405be627219c6d1fdef280253330f7407d4a548bb057d7bb0e9225d1767d42f9bf5f0ab3c455db1c3470d7cc876bb7b7d55d308')
prepare() {
source static-compat-environment
cd $_pkgname-$pkgver
autoreconf -fiv
}
build() {
source static-compat-environment
cd $_pkgname-$pkgver
./configure \
--prefix=/usr/static \
static-compat-configure \
--disable-shared \
--enable-static \
--enable-pax_emutramp
@ -34,13 +36,15 @@ build() {
}
check() {
source static-compat-environment
make -C $_pkgname-$pkgver check
}
package() {
source static-compat-environment
cd $_pkgname-$pkgver
make DESTDIR="$pkgdir" install
rm -r "$pkgdir"/usr/static/share/{man,info}
rm -r "$pkgdir/$static_compat_prefix"/share/{man,info}
install -Dm 644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname
}

View File

@ -5,22 +5,24 @@
# then cp /usr/lib/libgcrypt.so.11 /var/lib/archbuild/staging-x86_64/root/usr/lib/ and do staging-x86_64-build
_pkgname=libgcrypt
pkgname=$_pkgname-static
pkgver=1.9.4
pkgname=static-compat-$_pkgname
pkgver=1.10.1
pkgrel=1
pkgdesc="General purpose cryptographic library based on the code from GnuPG"
arch=(x86_64)
url="https://www.gnupg.org"
license=('LGPL')
depends=('libgpg-error-static')
depends=('static-compat-libgpg-error')
makedepends=('static-compat-configure')
options=('!emptydirs' staticlibs)
# https://www.gnupg.org/download/integrity_check.html
source=(https://gnupg.org/ftp/gcrypt/${_pkgname}/${_pkgname}-${pkgver}.tar.bz2{,.sig})
sha1sums=('1bccc8393482fa1953323ff429c6b5ba5676eb1a'
sha1sums=('de2cc32e7538efa376de7bf5d3eafa85626fb95f'
'SKIP')
validpgpkeys=('6DAA6E64A76D2840571B4902528897B826403ADA') # "Werner Koch (dist signing 2020)"
prepare() {
source static-compat-environment
cd "${_pkgname}"-${pkgver}
# tests fail due to systemd+libseccomp preventing memory syscalls when building in chroots
# t-secmem: line 176: gcry_control (GCRYCTL_INIT_SECMEM, pool_size, 0) failed: General error
@ -33,9 +35,9 @@ prepare() {
}
build() {
source static-compat-environment
cd "${_pkgname}"-${pkgver}
export PKG_CONFIG_PATH=/usr/static/lib/pkgconfig:/usr/lib/pkgconfig
./configure --prefix=/usr/static \
static-compat-configure \
--disable-shared \
--enable-static \
--disable-padlock-support
@ -48,7 +50,8 @@ check() {
}
package() {
source static-compat-environment
cd "${_pkgname}"-${pkgver}
make DESTDIR="${pkgdir}" install
rm -r "$pkgdir"/usr/static/share/{man,info}
rm -r "$pkgdir/$static_compat_prefix"/share/{man,info}
}

View File

@ -0,0 +1,37 @@
# Note that this is still a dynamic library, see https://gitlab.freedesktop.org/glvnd/libglvnd/-/issues/212
_pkgname=libglvnd
pkgname=static-compat-$_pkgname
pkgver=1.4.0
pkgrel=1
pkgdesc="The GL Vendor-Neutral Dispatch library"
arch=('x86_64')
url="https://github.com/NVIDIA/libglvnd"
license=('custom:BSD-like')
depends=('static-compat-libxext' 'mesa' 'opengl-driver')
makedepends=('static-compat-libx11' 'static-compat-xorgproto' 'python' 'static-compat-meson')
options=(staticlibs)
source=("$_pkgname-$pkgver.tar.gz::https://gitlab.freedesktop.org/glvnd/libglvnd/-/archive/v${pkgver}/libglvnd-v${pkgver}.tar.gz"
LICENSE)
sha512sums=('ca741bdd7ac2fba919f1f85e685e92396bc1cdc436e77bca921d87738bb273a6d48f77650e2781593ce9084dcec6b1fa8f78dc84534a225629e7f61d92df8d89'
'bf0f4a7e04220a407400f89226ecc1f798cc43035f2538cc8860e5088e1f84140baf0d4b0b28f66e4b802d4d6925769a1297c24e1ba39c1c093902b2931781a5')
build() {
source static-compat-environment
export PATH=$PWD:$PATH
export LDFLAGS+=" $static_compat_prefix/lib/libX11.a $static_compat_prefix/lib/libXau.a $static_compat_prefix/lib/libxcb.a $static_compat_prefix/lib/libXau.a $static_compat_prefix/lib/libXdmcp.a -ldl"
export LD=$GCC
printf '#!/usr/bin/bash\nexec /usr/bin/pkg-config --static "$@"\n' > pkg-config
static-compat-meson $_pkgname-v$pkgver build \
-D gles1=false
ninja -v -C build
}
package() {
source static-compat-environment
# libglvnd needs mesa for indirect rendering
DESTDIR="$pkgdir" ninja -C build install
install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}

View File

@ -1,35 +0,0 @@
# NOT WORKING as it still produces dynamic libraries
# Building this as static library is also not useful, see https://gitlab.freedesktop.org/glvnd/libglvnd/-/issues/212
_pkgname=libglvnd
pkgname=$_pkgname-static
pkgver=1.3.2
pkgrel=1
pkgdesc="The GL Vendor-Neutral Dispatch library"
arch=('x86_64')
url="https://github.com/NVIDIA/libglvnd"
license=('custom:BSD-like')
depends=('libxext-static' 'mesa' 'opengl-driver')
makedepends=('libx11' 'xorgproto' 'python' 'meson')
options=(staticlibs)
source=("$_pkgname-$pkgver.tar.gz::https://gitlab.freedesktop.org/glvnd/libglvnd/-/archive/v${pkgver}/libglvnd-v${pkgver}.tar.gz"
LICENSE)
sha512sums=('01db155f02fa21f4217ee5ca6dd8eeed3d20672c8aaa43475bd112921716ee8d4124e01f80a89587ddc8ebfa4a552c5e02d70726222702cce1601a6e6f4bc22b'
'bf0f4a7e04220a407400f89226ecc1f798cc43035f2538cc8860e5088e1f84140baf0d4b0b28f66e4b802d4d6925769a1297c24e1ba39c1c093902b2931781a5')
build() {
export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/static/lib/pkgconfig
arch-meson $_pkgname-v$pkgver build \
-D gles1=false \
--prefix /usr/static \
--default-library static
ninja -C build
}
package() {
# libglvnd needs mesa for indirect rendering
DESTDIR="$pkgdir" ninja -C build install
install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}

View File

@ -2,42 +2,47 @@
# Contributor: judd <jvinet@zeroflux.org>
_pkgname=libgpg-error
pkgname=$_pkgname-static
pkgver=1.42
pkgname=static-compat-$_pkgname
pkgver=1.44
pkgrel=1
pkgdesc="Support library for libgcrypt"
arch=(x86_64)
url="https://www.gnupg.org"
license=('LGPL')
depends=('glibc' 'sh')
depends=('glibc-static-compat' 'sh')
makedepends=('static-compat-configure')
options=(staticlibs)
source=(https://www.gnupg.org/ftp/gcrypt/libgpg-error/${_pkgname}-${pkgver}.tar.bz2{,.sig})
# https://www.gnupg.org/download/integrity_check.html
sha1sums=('5e620d71fc24d287a7ac2460b1d819074bb8b9bb'
sha1sums=('c16ab473d1e558ba1712c77ace38bd03e467cbb0'
'SKIP')
validpgpkeys=('D8692123C4065DEA5E0F3AB5249B39D24F25E3B6' # Werner Koch
'031EC2536E580D8EA286A9F22071B08A33BD3F06' # NIIBE Yutaka (GnuPG Release Key) <gniibe@fsij.org>
'6DAA6E64A76D2840571B4902528897B826403ADA') # "Werner Koch (dist signing 2020)"
prepare() {
source static-compat-environment
cd ${_pkgname}-${pkgver}
autoreconf -vfi
}
build() {
source static-compat-environment
cd ${_pkgname}-${pkgver}
./configure --prefix=/usr/static --disable-shared --enable-static
static-compat-configure --disable-shared --enable-static
make
}
check() {
source static-compat-environment
cd ${_pkgname}-${pkgver}
#make check
# note: fails with error message "FAIL: gpg-error-config-test.sh"
}
package() {
source static-compat-environment
cd ${_pkgname}-${pkgver}
make DESTDIR="${pkgdir}/" install
rm -r "$pkgdir"/usr/static/share/{man,info}
rm -r "$pkgdir/$static_compat_prefix"/share/{man,info}
}

View File

@ -0,0 +1,47 @@
# Contributor: Evangelos Foutras <evangelos@foutrelis.com>
_pkgname=libgudev
pkgname=static-compat-$_pkgname
pkgver=237
pkgrel=1
pkgdesc="GObject bindings for libudev"
url="https://wiki.gnome.org/Projects/libgudev"
arch=(x86_64)
license=(LGPL2.1)
depends=(static-compat-systemd-libs static-compat-glib2)
makedepends=(git umockdev vala static-compat-meson)
_commit=dff7a794e55d6ad7a10e8edacd73aa047593e74c # tags/237^0
source=("git+https://gitlab.gnome.org/GNOME/libgudev.git#commit=$_commit")
sha256sums=('SKIP')
pkgver() {
cd $_pkgname
git describe --tags | sed 's/-/+/g'
}
prepare() {
cd $_pkgname
# Use a locale with "," decimal separator that we
# actually have available in the build environments
sed -e 's/fr_FR\.UTF-8/de_DE.UTF-8/g' \
-i tests/meson.build tests/test-double.c
}
build() {
source static-compat-environment
static-compat-meson $_pkgname build -D gtk_doc=false
meson compile -C build
}
check() {
source static-compat-environment
meson test -C build --print-errorlogs
}
package() {
source static-compat-environment
meson install -C build --destdir "$pkgdir"
}
# vim:set ts=2 sw=2 et:

View File

@ -1,16 +1,16 @@
# Maintainer: AndyRTR <andyrtr@archlinux.org>
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: AndyRTR <andyrtr@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>
# Contributor: Alexander Baldeck <alexander@archlinux.org>
_pkgname=libice
pkgname=$_pkgname-static
pkgname=static-compat-$_pkgname
pkgver=1.0.10
pkgrel=3
pkgdesc="X11 Inter-Client Exchange library"
arch=('x86_64')
url="https://xorg.freedesktop.org/"
depends=('glibc')
makedepends=('xtrans>=1.2.5' 'xorg-util-macros' 'xorgproto')
depends=('glibc-static-compat')
makedepends=('static-compat-configure' 'static-compat-xtrans>=1.2.5' 'xorg-util-macros' 'static-compat-xorgproto')
options=(!emptydirs staticlibs)
source=(${url}/releases/individual/lib/libICE-${pkgver}.tar.bz2{,.sig})
license=('custom')
@ -19,15 +19,17 @@ sha512sums=('2f1ef2c32c833c71894a08fa7e7ed53f301f6c7bd22485d71c12884d8e8b36b99f3
validpgpkeys=('4A193C06D35E7C670FA4EF0BA2FB9E081F2D130E') # "Alan Coopersmith <alan.coopersmith@oracle.com>"
build() {
source static-compat-environment
cd libICE-${pkgver}
./configure --prefix=/usr/static --disable-shared --enable-static --sysconfdir=/etc
static-compat-configure --disable-shared --enable-static --sysconfdir=/etc
make
}
package() {
source static-compat-environment
cd libICE-${pkgver}
make DESTDIR="${pkgdir}" install
rm -r "$pkgdir"/usr/static/share/doc
rm -r "$pkgdir/$static_compat_prefix"/share/doc
install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
}

44
libinput/default/PKGBUILD Normal file
View File

@ -0,0 +1,44 @@
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
pkgname=libinput
pkgver=1.20.0
pkgrel=2
pkgdesc="Input device management and event handling library"
url="https://gitlab.freedesktop.org/libinput"
arch=(x86_64)
license=(custom:X11)
depends=('mtdev' 'systemd' 'libevdev' 'libwacom')
# upstream doesn't recommend building docs
makedepends=('gtk4' 'meson' 'wayland-protocols' 'check') # 'doxygen' 'graphviz' 'python-sphinx' 'python-recommonmark'
optdepends=('gtk4: libinput debug-gui'
'python-pyudev: libinput measure'
'python-libevdev: libinput measure')
options=(debug)
source=(https://gitlab.freedesktop.org/libinput/libinput/-/archive/$pkgver/$pkgname-$pkgver.tar.bz2)
sha512sums=('145b0e0760929137ab442b2030b4b42f6df54a3ae61c47c929e1a74857a170f0f2a56bb7522b7d1d9c0943028ac54c7728cf8d66a0c384f6118f31d6625ab44c')
#source=(https://freedesktop.org/software/$pkgname/$pkgname-$pkgver.tar.xz{,.sig})
#sha512sums=('f4b776d0da78c687ba21b430a04941ac6b43f68970c82ec9f7360358fdea5ed6a873948ce66a25bcdd64d4b95fa4bf705cc24dbc25c7c0f5fd2d0efbd763f298'
# 'SKIP')
#validpgpkeys=('3C2C43D9447D5938EF4551EBE23B7E70B467F0BF') # Peter Hutterer (Who-T) <office@who-t.net>
build() {
arch-meson $pkgname-$pkgver build \
-D udev-dir=/usr/lib/udev \
-D documentation=false
# Print config
meson configure build
meson compile -C build
}
check() {
meson test -C build --print-errorlogs
}
package() {
meson install -C build --destdir "$pkgdir"
install -Dvm644 $pkgname-$pkgver/COPYING \
"$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}

View File

@ -0,0 +1,53 @@
# Contributor: Andreas Radke <andyrtr@archlinux.org>
_pkgname=libinput
pkgname=static-compat-$_pkgname
pkgver=1.20.0
pkgrel=2
pkgdesc="Input device management and event handling library"
url="https://gitlab.freedesktop.org/libinput"
arch=(x86_64)
license=(custom:X11)
depends=('static-compat-mtdev' 'static-compat-systemd-libs' 'static-compat-libevdev' 'static-compat-libwacom')
# upstream doesn't recommend building docs
makedepends=('static-compat-meson' 'static-compat-wayland') # 'check' 'doxygen' 'graphviz' 'python-sphinx' 'python-recommonmark'
options=(staticlibs !emptydirs)
source=(https://gitlab.freedesktop.org/libinput/libinput/-/archive/$pkgver/$_pkgname-$pkgver.tar.bz2)
sha512sums=('145b0e0760929137ab442b2030b4b42f6df54a3ae61c47c929e1a74857a170f0f2a56bb7522b7d1d9c0943028ac54c7728cf8d66a0c384f6118f31d6625ab44c')
#source=(https://freedesktop.org/software/$_pkgname/$_pkgname-$pkgver.tar.xz{,.sig})
#sha512sums=('f4b776d0da78c687ba21b430a04941ac6b43f68970c82ec9f7360358fdea5ed6a873948ce66a25bcdd64d4b95fa4bf705cc24dbc25c7c0f5fd2d0efbd763f298'
# 'SKIP')
#validpgpkeys=('3C2C43D9447D5938EF4551EBE23B7E70B467F0BF') # Peter Hutterer (Who-T) <office@who-t.net>
prepare() {
sed -i 's|shared_library|library|g' $_pkgname-$pkgver/meson.build
}
build() {
export LDFLAGS+=' -lrt -pthread'
source static-compat-environment
static-compat-meson $_pkgname-$pkgver build \
-D udev-dir="$static_compat_prefix"/lib/udev \
-D documentation=false \
-D debug-gui=false \
-D tests=false # requires check
# Print config
meson configure build
meson compile -C build
}
check() {
source static-compat-environment
meson test -C build --print-errorlogs
}
package() {
source static-compat-environment
meson install -C build --destdir "$pkgdir"
install -Dvm644 $_pkgname-$pkgver/COPYING \
"$pkgdir/usr/share/licenses/$pkgname/LICENSE"
rm -r "$pkgdir/$static_compat_prefix"/share/{man,zsh}
}

View File

@ -0,0 +1,51 @@
# Contributor: David Runge <dvzrv@archlinux.org>
# Contributor: Gaetan Bisson <bisson@archlinux.org>
# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: Simone Sclavi 'Ito' <darkhado@gmail.com>
_pkgname=libjpeg-turbo
pkgname=static-compat-$_pkgname
pkgver=2.1.3
pkgrel=1
pkgdesc="JPEG image codec with accelerated baseline compression and decompression"
arch=(x86_64)
url="https://libjpeg-turbo.org/"
license=(BSD)
depends=(glibc-static-compat)
makedepends=(static-compat-cmake nasm)
options=(staticlibs)
source=(https://sourceforge.net/projects/$_pkgname/files/$pkgver/$_pkgname-$pkgver.tar.gz{,.sig})
sha512sums=('975c9835de7d70c6c8c5a1959adfa18f7f956bc9946fde8f1b40c1d853245c38a3118ac06b93841ec3e90be6945c38d687d062b371496c2ee9b5638d7f60418d'
'SKIP')
b2sums=('87ef47105e66b2ee918e95962ac59963b6adea5b49ab0db692810aee0a13a215a0ef7fe0b549ecd5151274549e12d09eb0b42439bf0a4bc1ad2c4e62dcceb77c'
'SKIP')
validpgpkeys=('0338C8D8D9FDA62CF9C421BD7EC2DBB6F4DBF434') # The libjpeg-turbo Project (Signing key for official binaries) <information@libjpeg-turbo.org>
build() {
source static-compat-environment
static-compat-cmake -DCMAKE_INSTALL_LIBDIR="$static_compat_prefix"/lib \
-DWITH_JAVA=OFF\
-DWITH_JPEG8=ON \
-W no-dev \
-B build \
-S $_pkgname-$pkgver
make VERBOSE=1 -C build
}
check() {
source static-compat-environment
make test -C build
}
package() {
source static-compat-environment
make VERBOSE=1 DESTDIR="$pkgdir" docdir="$static_compat_prefix"/share/doc/$_pkgname exampledir="$static_compat_prefix"/share/doc/$_pkgname install -C build
install -d "$pkgdir/usr/share/licenses/$pkgname"
ln -s ../../doc/$_pkgname/LICENSE.md "$pkgdir/usr/share/licenses/$pkgname"
# header required by some dependants
# https://bugs.archlinux.org/task/24787
install -vDm 644 $_pkgname-$pkgver/jpegint.h "$pkgdir/$static_compat_prefix/include"
rm -r "$pkgdir/$static_compat_prefix"/share
find "$pkgdir/$static_compat_prefix"/lib -iname '*.so*' -delete
}

View File

@ -4,40 +4,42 @@
# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
_pkgname=libpng
pkgname=$_pkgname-static
pkgname=static-compat-$_pkgname
pkgver=1.6.37
pkgrel=3
pkgdesc="A collection of routines used to create PNG format graphics files"
arch=('x86_64')
url="http://www.libpng.org/pub/png/libpng.html"
license=('custom')
depends=('zlib' 'sh')
depends=('static-compat-zlib' 'sh')
makedepends=('static-compat-configure')
options=(!emptydirs staticlibs)
validpgpkeys=('8048643BA2C840F4F92A195FF54984BFA16C640F') # Glenn Randers-Pehrson (mozilla) <glennrp@gmail.com>
source=("https://downloads.sourceforge.net/sourceforge/$_pkgname/$_pkgname-$pkgver.tar.xz")
sha256sums=('505e70834d35383537b6491e7ae8641f1a4bed1876dbfe361201fc80868d88ca')
build() {
source static-compat-environment
cd $_pkgname-$pkgver
./configure \
--prefix=/usr/static \
static-compat-configure \
--disable-shared \
--enable-static
make
}
check() {
source static-compat-environment
cd $_pkgname-$pkgver
make check
}
package() {
source static-compat-environment
cd $_pkgname-$pkgver
make DESTDIR="$pkgdir" install
rm -r "$pkgdir"/usr/static/share/man
rm -r "$pkgdir/$static_compat_prefix"/share/man
install -D -m0644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}

View File

@ -1,30 +1,31 @@
# Contributor: Jan de Groot <jgc@archlinux.org>
_pkgname=libsm
pkgname=$_pkgname-static
pkgname=static-compat-$_pkgname
pkgver=1.2.3
pkgrel=2
pkgdesc="X11 Session Management library"
arch=('x86_64')
license=('custom')
url="https://xorg.freedesktop.org/"
depends=('libice-static' 'util-linux-static')
makedepends=('xorg-util-macros' 'xtrans' 'xorgproto')
depends=('static-compat-libice' 'static-compat-util-linux')
makedepends=('xorg-util-macros' 'static-compat-xtrans' 'static-compat-xorgproto' 'static-compat-configure')
options=(!emptydirs staticlibs)
source=(${url}/releases/individual/lib/libSM-${pkgver}.tar.bz2)
sha512sums=('74c42e27029db78475e62025b4711dbac5e22d2f8e8a24be98a1c31b03c0fc4afe859928f851800ea0b76854f12147900dc4f27bbfd3d8ea45daaaf24b70a903')
build() {
source static-compat-environment
cd libSM-${pkgver}
export PKG_CONFIG_PATH=/usr/static/lib/pkgconfig:/usr/lib/pkgconfig
./configure --prefix=/usr/static --disable-shared --enable-static --sysconfdir=/etc
static-compat-configure --disable-shared --enable-static --sysconfdir=/etc
make
}
package() {
source static-compat-environment
cd libSM-${pkgver}
make DESTDIR="${pkgdir}" install
rm -r "${pkgdir}/usr/static/share/doc"
rm -r "$pkgdir/$static_compat_prefix"/share/doc
install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
}

View File

@ -0,0 +1,43 @@
# Contributor: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
_pkgname=libwacom
pkgname=static-compat-$_pkgname
pkgver=2.2.0
pkgrel=1
pkgdesc="Library to identify Wacom tablets and their features"
arch=('x86_64')
url="https://github.com/linuxwacom/libwacom/wiki"
license=('MIT')
depends=('static-compat-glib2' 'static-compat-systemd-libs' 'static-compat-libgudev')
makedepends=('static-compat-libxml2' 'static-compat-meson')
checkdepends=('python-pytest' 'python-libevdev' 'python-pyudev')
options=('staticlibs')
validpgpkeys=('3C2C43D9447D5938EF4551EBE23B7E70B467F0BF')
source=(https://github.com/linuxwacom/libwacom/releases/download/${_pkgname}-${pkgver}/${_pkgname}-${pkgver}.tar.xz{,.sig})
# https://github.com/linuxwacom/libwacom/releases
sha256sums=('e62ac9edb522d36ad2fa99adca35ddc02067383d4668eeaa13d7efccc30bb8c8'
'SKIP')
prepare() {
sed -i 's|shared_library|library|g' $_pkgname-$pkgver/meson.build
}
build() {
export LDFLAGS+=' -llzma -lz -lm -lrt'
source static-compat-environment
static-compat-meson build $_pkgname-$pkgver
ninja -C build
}
check() {
source static-compat-environment
ninja test -C build
}
package() {
source static-compat-environment
DESTDIR="$pkgdir" ninja install -C build
install -D -m644 $_pkgname-$pkgver/COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
find "$pkgdir/$static_compat_prefix" -iname '*.so*' -delete
rm -r "$pkgdir/$static_compat_prefix"/share/man
}

View File

@ -0,0 +1,45 @@
# Contributor: Andreas Radke <andyrtr@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>
_pkgname=libx11
pkgname=static-compat-$_pkgname
pkgver=1.7.5
pkgrel=3
pkgdesc="X11 client-side library"
arch=(x86_64)
url="https://xorg.freedesktop.org/"
depends=('static-compat-libxcb')
makedepends=('static-compat-configure' 'xorg-util-macros' 'static-compat-xtrans' 'static-compat-xorgproto')
license=('custom')
options=(!emptydirs staticlibs)
source=(${url}/releases/individual/lib/libX11-${pkgver}.tar.xz{,.sig})
sha512sums=('ef33e2f631226cab27657f46e1fd4cfc928f62f928d8297474e7b993017c8f92b60272eed6515990cdf3a9d34581837b7a3896e584f3546dd26f3790034df347'
'SKIP')
#validpgpkeys=('4A193C06D35E7C670FA4EF0BA2FB9E081F2D130E') # Alan Coopersmith <alanc@freedesktop.org>
#validpgpkeys=('C41C985FDCF1E5364576638B687393EE37D128F8') # Matthieu Herrb <matthieu.herrb@laas.fr>
validpgpkeys=('3BB639E56F861FA2E86505690FDD682D974CA72A') # Matt Turner <mattst88@gmail.com>
#validpgpkeys=('995ED5C8A6138EB0961F18474C09DD83CAAA50B2') # Adam Jackson <ajax@nwnk.net>
#validpgpkeys=('C383B778255613DFDB409D91DB221A6900000011') # "Keith Packard <keithp@keithp.com>"
build() {
source static-compat-environment
cd libX11-${pkgver}
static-compat-configure --disable-shared --enable-static --disable-xf86bigfont
make
}
check() {
source static-compat-environment
cd libX11-${pkgver}
make check
}
package() {
source static-compat-environment
cd "${srcdir}/libX11-${pkgver}"
make DESTDIR="${pkgdir}" install
rm -r "$pkgdir/$static_compat_prefix"/share/{man,doc}
install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
}

View File

@ -1,45 +0,0 @@
# Contributor: Andreas Radke <andyrtr@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>
_pkgname=libx11
pkgname=$_pkgname-static
pkgver=1.7.0
pkgrel=3
pkgdesc="X11 client-side library"
arch=(x86_64)
url="https://xorg.freedesktop.org/"
# keep xorgproto runtime dependency
# https://lists.archlinux.org/pipermail/arch-dev-public/2019-December/029767.html
depends=('libxcb-static' 'xorgproto')
makedepends=('xorg-util-macros' 'libx11' 'xtrans')
license=('custom')
options=(!emptydirs staticlibs)
source=(${url}/releases/individual/lib/libX11-${pkgver}.tar.bz2{,.sig})
sha512sums=('f661ca90350fd8a94f054b00f12f5122cea068ebff706acfd399462236c189a296a2358d17d16166635101cf56cc19303dd407873a159932d093c9f33556f9fb'
'SKIP')
validpgpkeys=('4A193C06D35E7C670FA4EF0BA2FB9E081F2D130E') # Alan Coopersmith <alanc@freedesktop.org>
validpgpkeys+=('C41C985FDCF1E5364576638B687393EE37D128F8') # Matthieu Herrb <matthieu.herrb@laas.fr>
validpgpkeys+=('3BB639E56F861FA2E86505690FDD682D974CA72A') # Matt Turner <mattst88@gmail.com>
validpgpkeys+=('995ED5C8A6138EB0961F18474C09DD83CAAA50B2') # Adam Jackson <ajax@nwnk.net>
validpgpkeys=('C383B778255613DFDB409D91DB221A6900000011') # "Keith Packard <keithp@keithp.com>"
build() {
cd libX11-${pkgver}
#export PKG_CONFIG_PATH=/usr/static/lib/pkgconfig:/usr/lib/pkgconfig
./configure --prefix=/usr/static --disable-shared --enable-static --disable-xf86bigfont
make
}
check() {
cd libX11-${pkgver}
make check
}
package() {
cd "${srcdir}/libX11-${pkgver}"
make DESTDIR="${pkgdir}" install
rm -r "$pkgdir"/usr/static/share/{man,doc}
install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
}

View File

@ -3,14 +3,14 @@
# Contributor: Alexander Baldeck <alexander@archlinux.org>
_pkgname=libxau
pkgname=$_pkgname-static
pkgname=static-compat-$_pkgname
pkgver=1.0.9
pkgrel=3
pkgdesc="X11 authorisation library"
arch=('x86_64')
url="https://xorg.freedesktop.org/"
depends=('glibc')
makedepends=('xorgproto')
depends=('glibc-static-compat')
makedepends=('static-compat-configure' 'static-compat-xorgproto')
license=('custom')
options=(!emptydirs staticlibs)
source=(${url}/releases/individual/lib/libXau-${pkgver}.tar.bz2{,.sig})
@ -19,15 +19,17 @@ sha512sums=('3ca454ba466a807ea28b0f715066d73dc76ad312697b121d43e4d5766215052e9b7
'SKIP')
build() {
source static-compat-environment
cd libXau-${pkgver}
./configure --prefix=/usr/static --disable-shared --enable-static --sysconfdir=/etc
static-compat-configure --disable-shared --enable-static --sysconfdir=/etc
make
}
package() {
source static-compat-environment
cd libXau-${pkgver}
make DESTDIR="${pkgdir}" install
rm -r "$pkgdir"/usr/static/share/man
rm -r "$pkgdir/$static_compat_prefix"/share/man
install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
}

View File

@ -3,14 +3,14 @@
# Contributor: Alexander Baldeck <alexander@archlinux.org>
_pkgname=libxcb
pkgname=$_pkgname-static
pkgname=static-compat-$_pkgname
pkgver=1.14
pkgrel=1
pkgdesc="X11 client-side library"
arch=('x86_64')
url="https://xcb.freedesktop.org/"
depends=('xcb-proto' 'libxdmcp' 'libxau-static')
makedepends=('libxslt' 'python' 'xorg-util-macros' 'xorgproto')
depends=('static-compat-xcb-proto' 'static-compat-libxdmcp' 'static-compat-libxau')
makedepends=('libxslt' 'python' 'xorg-util-macros' 'static-compat-xorgproto' 'static-compat-configure')
license=('custom')
options=(!emptydirs staticlibs)
source=(https://xorg.freedesktop.org/archive/individual/lib/$_pkgname-$pkgver.tar.xz{,.sig})
@ -20,9 +20,9 @@ validpgpkeys=('A66D805F7C9329B4C5D82767CCC4F07FAC641EFF') # "Daniel Stone <danie
validpgpkeys+=('3BB639E56F861FA2E86505690FDD682D974CA72A') # "Matt Turner <mattst88@gmail.com>"
build() {
source static-compat-environment
cd "$_pkgname-$pkgver"
export PKG_CONFIG_PATH=/usr/static/lib/pkgconfig:/usr/lib/pkgconfig
./configure --prefix=/usr/static \
static-compat-configure \
--enable-xinput \
--enable-xkb \
--disable-shared \
@ -31,14 +31,16 @@ build() {
}
check() {
source static-compat-environment
cd $_pkgname-$pkgver
make -k check
}
package() {
source static-compat-environment
cd "$_pkgname-$pkgver"
make DESTDIR="$pkgdir" install
rm -r "${pkgdir}"/usr/static/share/{doc,man}
rm -r "${pkgdir}/$static_compat_prefix"/share/{doc,man}
install -m755 -d "$pkgdir/usr/share/licenses/$pkgname"
install -m644 COPYING "$pkgdir/usr/share/licenses/$pkgname"
}

View File

@ -0,0 +1,34 @@
# Contributor: Jan de Groot <jgc@archlinux.org>
_pkgname=libxcomposite
pkgname=static-compat-$_pkgname
pkgver=0.4.5
pkgrel=3
pkgdesc="X11 Composite extension library"
arch=('x86_64')
url="https://xorg.freedesktop.org/"
license=('custom')
depends=('static-compat-libxfixes')
makedepends=('static-compat-configure' 'static-compat-xorgproto')
options=(staticlibs !docs !emptydirs)
source=("${url}/releases/individual/lib/libXcomposite-${pkgver}.tar.bz2"{,.sig})
sha512sums=('502fd51fd9097bb3ca72174ac5b25b9d3b1ff240d32c4765199df03d89337d94b4ddea49e90b177b370862430089d966ce9c38988337156352cfeae911c2d3d5'
'SKIP')
validpgpkeys=('4A193C06D35E7C670FA4EF0BA2FB9E081F2D130E') # "Alan Coopersmith <alan.coopersmith@oracle.com>"
build() {
source static-compat-environment
cd libXcomposite-${pkgver}
static-compat-configure --enable-static --disable-shared
make
}
package() {
source static-compat-environment
cd libXcomposite-${pkgver}
make DESTDIR="${pkgdir}" install
rm -r "$pkgdir/$static_compat_prefix"/share/man
install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
}

View File

@ -0,0 +1,31 @@
# Contributor: Jan de Groot <jgc@archlinux.org>
_pkgname=libxdamage
pkgname=static-compat-$_pkgname
pkgver=1.1.5
pkgrel=3
pkgdesc="X11 damaged region extension library"
arch=('x86_64')
url="https://xorg.freedesktop.org/"
license=('custom')
depends=('static-compat-libxfixes')
makedepends=('static-compat-xorgproto' 'static-compat-configure')
options=(staticlibs !emptydirs)
source=(${url}/releases/individual/lib/libXdamage-${pkgver}.tar.bz2{,.sig})
sha512sums=('a3ca6cc33b1727f717a3e2aa5593f660508a81a47918a0aa949e9e8fba105e303fe5071983b48caac92feea0fe6e8e01620805e4d19b41f21f20d837b191c124'
'SKIP')
validpgpkeys=('4A193C06D35E7C670FA4EF0BA2FB9E081F2D130E') # "Alan Coopersmith <alan.coopersmith@oracle.com>"
build() {
source static-compat-environment
cd libXdamage-${pkgver}
static-compat-configure --disable-shared --enable-static
make
}
package() {
source static-compat-environment
cd libXdamage-${pkgver}
make DESTDIR="${pkgdir}" install
install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
}

View File

@ -1,16 +1,16 @@
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: Andreas Radke <andyrtr@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>
_pkgname=libxdmcp
pkgname=$_pkgname-static
pkgname=static-compat-$_pkgname
pkgver=1.1.3
pkgrel=3
pkgdesc="X11 Display Manager Control Protocol library"
arch=('x86_64')
url="https://xorg.freedesktop.org/"
license=('custom')
depends=('glibc')
makedepends=('xorg-util-macros' 'xorgproto')
depends=('glibc-static-compat')
makedepends=('xorg-util-macros' 'static-compat-xorgproto' 'static-compat-configure')
options=(!emptydirs staticlibs)
source=(${url}/releases/individual/lib/libXdmcp-${pkgver}.tar.bz2{,.sig})
sha512sums=('cb1d4650f97d66e73acd2465ec7d757b9b797cce2f85e301860a44997a461837eea845ec9bd5b639ec5ca34c804f8bdd870697a5ce3f4e270b687c9ef74f25ec'
@ -18,15 +18,17 @@ sha512sums=('cb1d4650f97d66e73acd2465ec7d757b9b797cce2f85e301860a44997a461837eea
validpgpkeys=('4A193C06D35E7C670FA4EF0BA2FB9E081F2D130E') # Alan Coopersmith <alan.coopersmith@oracle.com>
build() {
source static-compat-environment
cd libXdmcp-${pkgver}
./configure --prefix=/usr/static --disable-shared --enable-static --sysconfdir=/etc
static-compat-configure --disable-shared --enable-static --sysconfdir=/etc
make
}
package() {
source static-compat-environment
cd libXdmcp-${pkgver}
make DESTDIR="${pkgdir}" install
rm -r "$pkgdir"/usr/static/share/doc
rm -r "$pkgdir/$static_compat_prefix"/share/doc
install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"

View File

@ -2,15 +2,15 @@
# Contributor: Jan de Groot <jgc@archlinux.org>
_pkgname=libxext
pkgname=$_pkgname-static
pkgname=static-compat-$_pkgname
pkgver=1.3.4
pkgrel=3
pkgdesc="X11 miscellaneous extensions library"
arch=('x86_64')
url="https://xorg.freedesktop.org/"
license=('custom')
depends=('libx11-static')
makedepends=('xorg-util-macros' 'xorgproto')
depends=('static-compat-libx11')
makedepends=('xorg-util-macros' 'static-compat-xorgproto' 'static-compat-configure')
options=(!emptydirs staticlibs)
source=(${url}/releases/individual/lib/libXext-${pkgver}.tar.bz2{,.sig})
sha512sums=('09146397d95f80c04701be1cc0a9c580ab5a085842ac31d17dfb6d4c2e42b4253b89cba695e54444e520be359883a76ffd02f42484c9e2ba2c33a5a40c29df4a'
@ -19,16 +19,17 @@ validpgpkeys=('3C2C43D9447D5938EF4551EBE23B7E70B467F0BF') # "Peter Hutterer (Who
validpgpkeys+=('4A193C06D35E7C670FA4EF0BA2FB9E081F2D130E') # Alan Coopersmith <alan.coopersmith@oracle.com>
build() {
source static-compat-environment
cd libXext-${pkgver}
export PKG_CONFIG_PATH=/usr/static/lib/pkgconfig:/usr/lib/pkgconfig
./configure --prefix=/usr/static --sysconfdir=/etc --disable-shared --enable-static
static-compat-configure --sysconfdir=/etc --disable-shared --enable-static
make
}
package() {
source static-compat-environment
cd libXext-${pkgver}
make DESTDIR="${pkgdir}" install
rm -r "$pkgdir"/usr/static/share/{doc,man}
rm -r "$pkgdir/$static_compat_prefix"/share/{doc,man}
install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"

View File

@ -0,0 +1,37 @@
# Contributor: Andreas Radke <andyrtr@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>
_pkgname=libxfixes
pkgname=static-compat-$_pkgname
pkgver=6.0.0
pkgrel=1
pkgdesc="X11 miscellaneous 'fixes' extension library"
arch=('x86_64')
url="https://xorg.freedesktop.org/"
license=('custom')
depends=('static-compat-libx11')
makedepends=('static-compat-xorgproto' 'static-compat-configure')
options=(staticlibs !emptydirs)
source=(${url}/releases/individual/lib/libXfixes-${pkgver}.tar.bz2{,.sig})
sha512sums=('1985ef156f382e9a7e1cc7e044e0f626de1e4c82557a511cbcf6431994c0ac25b1f8b3a0293bd3089331593db8ce01d3a71ddec68f19b5fe6029d5082fb6885d'
'SKIP')
validpgpkeys=('C41C985FDCF1E5364576638B687393EE37D128F8') # Matthieu Herrb <matthieu.herrb@laas.fr>
validpgpkeys+=('3C2C43D9447D5938EF4551EBE23B7E70B467F0BF') # Peter Hutterer (Who-T) <office@who-t.net>
build() {
source static-compat-environment
cd "libXfixes-${pkgver}"
static-compat-configure --disable-shared --enable-static
make
}
package() {
source static-compat-environment
cd "libXfixes-${pkgver}"
make DESTDIR="${pkgdir}" install
rm -r "$pkgdir/$static_compat_prefix"/share/man
install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
}

View File

@ -3,16 +3,15 @@
# Contributor: Mladen Pejakovic <pejakm@gmail.com>
_pkgname=libxkbcommon
pkgname=$_pkgname-static
pkgver=1.0.3
pkgname=static-compat-$_pkgname
pkgver=1.4.0
pkgrel=1
pkgdesc="Keymap handling library for toolkits and window systems"
url="https://xkbcommon.org/"
arch=(x86_64)
license=(custom)
depends=(libxcb-static xkeyboard-config libxml2-static wayland-static libxml2-static)
makedepends=(xkeyboard-config libxml2 libxcb wayland wayland-protocols doxygen
git meson)
depends=(static-compat-libxcb xkeyboard-config static-compat-libxml2 static-compat-wayland)
makedepends=(xkeyboard-config wayland-protocols doxygen git static-compat-meson)
checkdepends=(xorg-server-xvfb libgl)
options=(!emptydirs !docs staticlibs)
_commit=c60b77ea512bef92e481be38972b58dd71a34180 # tags/xkbcommon-1.0.3^0
@ -29,22 +28,24 @@ prepare() {
}
build() {
export PKG_CONFIG_PATH=/usr/static/lib/pkgconfig:/usr/lib/pkgconfig
source static-compat-environment
export PKG_CONFIG_PATH=$static_compat_prefix/lib/pkgconfig:/usr/share/pkgconfig
export PATH=$PWD:$PATH
printf '#!/usr/bin/bash\nexec /usr/bin/pkg-config --static "$@"\n' > pkg-config
chmod +x pkg-config
arch-meson $_pkgname build \
--prefix /usr/static \
--default-library static \
static-compat-meson $_pkgname build \
-Denable-docs=false
meson compile -C build
}
check() {
source static-compat-environment
xvfb-run -s '-nolisten local' meson test -C build --print-errorlogs
}
package() {
source static-compat-environment
DESTDIR="$pkgdir" meson install -C build
rm -r "$pkgdir/$static_compat_prefix"/share
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 $_pkgname/LICENSE
}

View File

@ -0,0 +1,78 @@
# Contributor: Levente Polyak <anthraxx[at]archlinux[dot]org>
# Contributor: Jan de Groot <jgc@archlinux.org>
# Contributor: Tom Gundersen <teg@jklm.no>
# Contributor: John Proctor <jproctor@prium.net>
_pkgname=libxml2
pkgname=static-compat-$_pkgname
pkgver=2.9.13
pkgrel=8
pkgdesc='XML parsing library, version 2'
url='http://www.xmlsoft.org/'
arch=(x86_64)
license=(MIT)
depends=(static-compat-zlib static-compat-xz)
makedepends=(git)
options=(!emptydirs staticlibs)
_commit=41a34e1f4ffae2ce401600dbb5fe43f8fe402641 # tags/v2.9.10^0
source=("git+https://gitlab.gnome.org/GNOME/libxml2.git#commit=$_commit"
libxml2-2.9.8-python3-unicode-errors.patch
no-fuzz.diff
https://www.w3.org/XML/Test/xmlts20130923.tar.gz)
sha256sums=('SKIP'
'37eb81a8ec6929eed1514e891bff2dd05b450bcf0c712153880c485b7366c17c'
'3fc010d8c42b93e6d6f1fca6b598a561e9d2c8780ff3ca0c76a31efabaea404f'
'9b61db9f5dbffa545f4b8d78422167083a8568c59bd1129f94138f936cf6fc1f')
pkgver() {
cd libxml2
git describe --tags | sed 's/-rc/rc/;s/^v//;s/\([^-]*-g\)/r\1/;s/-/./g'
}
prepare() {
source static-compat-environment
cd libxml2
mkdir build
# Use xmlconf from conformance test suite
ln -s xmlconf build/xmlconf
# https://src.fedoraproject.org/rpms/libxml2/tree/rawhide
git apply -3 ../libxml2-2.9.8-python3-unicode-errors.patch
# Do not run fuzzing tests
git apply -3 ../no-fuzz.diff
autoreconf -fiv
}
build() (
source static-compat-environment
cd libxml2/build
static-compat-configure \
--disable-shared \
--enable-static \
--with-threads \
--without-history \
--without-icu \
--without-docbook \
--without-html
sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0 /g' libtool
make
)
#check() {
# source static-compat-environment
# make -C libxml2/build check
#}
package() {
source static-compat-environment
make -C libxml2/build DESTDIR="$pkgdir" install
rm -r "$pkgdir/$static_compat_prefix"/{bin,share/man,share/doc,share/gtk-doc}
install -Dm 644 libxml2/COPYING -t "$pkgdir/usr/share/licenses/$pkgname"
}
# vim: ts=2 sw=2 et:

Some files were not shown because too many files have changed in this diff Show More