Compare commits

..

1 Commits

Author SHA1 Message Date
Martchus e97a875c6c WIP: cmake-static 2021-09-24 21:56:01 +02:00
1137 changed files with 13230 additions and 29476 deletions

View File

@ -1,23 +0,0 @@
---
name: Issue with binary repository
about: Report an issue about the binary repository mentioned in the README
title: ''
labels: bug
assignees: ''
---
Before reporting and issue, make sure to have **followed the instructions** on
https://martchus.no-ip.biz/repo/arch/ownstuff.
Note that packages are always built against the latest Arch Linux repository
so other distributions such as Manjaro are *not* supported.
Please prefer the `ftp.f3l.de` mirror as `martchus.no-ip.biz` is self-hosted.
---
Affected package (name and version): …
Used mirror: …
Brief description of the problem: …

View File

@ -1,32 +0,0 @@
---
name: General issue
about: Ask a question or report a problem about a specific (set of) packages
title: ''
labels:
assignees: ''
---
**Before reporting an issue**, check whether there are pinned/recent comments on
the AUR and whether your request is really in-line with
https://wiki.archlinux.org/title/PKGBUILD.
**For more general discussions and questions** about related topics such as
mingw-w64 packaging in general, feel free to open or join a discussion on
https://github.com/Martchus/PKGBUILDs/discussions.
**Note that I cannot help with AUR helpers.** Please report problems with AUR
helpers to their vendors.
**Note that only Arch Linux is supported.** Packages may not build on other
distributions such as Manjaro.
---
Relevant packages: …
Your modifications to the build environment (e.g. changes in `makepkg.conf`):
Question/request or brief description of the problem:

19
.github/stale.yml vendored
View File

@ -1,19 +0,0 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 60
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
# Issues with these labels will never be considered stale
exemptLabels:
- pinned
- security
- feature request
- enhancement
# Label to use when marking an issue as stale
staleLabel: stale
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false

253
README.md
View File

@ -9,8 +9,7 @@ Contains PKGBUILD files for creating Arch Linux packages:
* misc packages, eg. Subtitle Composer, openelec-dvb-firmware, Jangouts * misc packages, eg. Subtitle Composer, openelec-dvb-firmware, Jangouts
* `mingw-w64-*` packages which allow to build for Windows under Arch Linux, * `mingw-w64-*` packages which allow to build for Windows under Arch Linux,
eg. FreeType 2, Qt 5 and Qt 6 eg. FreeType 2, Qt 5 and Qt 6
* `static-compat-*` packages containing static libraries to build self-contained * `*-static` packages containing static libraries
applications running on older GNU/Linux distributions under Arch Linux
* `android-*` packages which allow to build for Android under Arch Linux, * `android-*` packages which allow to build for Android under Arch Linux,
eg. iconv, Boost, OpenSSL, CppUnit, Qt 5 and Kirigami eg. iconv, Boost, OpenSSL, CppUnit, Qt 5 and Kirigami
* `apple-darwin-*` packages which allow to build for MaxOS X under Arch * `apple-darwin-*` packages which allow to build for MaxOS X under Arch
@ -44,154 +43,16 @@ The repository is focusing on x86_64 but some packages are also provided for
i686 and aarch64. i686 and aarch64.
Note that I can not assure that required rebuilds always happen fast enough Note that I can not assure that required rebuilds always happen fast enough
(since the official developers obviously don't wait for me before releasing their (since the offical developers obviously don't wait for me before releasing their
packages from staging). packages from staging).
Requests regarding binary packages can be tracked on the issue tracker of this Requests regarding binary packages can be tracked on the issue tracker of this
GitHub project as well, e.g. within the [general discussion GitHub project as well, e.g. within the [general discussion
issue](https://github.com/Martchus/PKGBUILDs/issues/94). issue](https://github.com/Martchus/PKGBUILDs/issues/94).
## Container image, building packages within a container ## Docker image
The directory `devel/container` contains the script `imagebuild` to build a Checkout the repository
container image suitable to run Arch Linux's `makepkg` script so you can build [docker-mingw-qt5](https://github.com/mdimura/docker-mingw-qt5).
from PKGBUILDs on any environment where Docker, Podman or any other suitable
container runtime is available.
It also contains a script called `makecontainerpkg` which behaves like
`makechrootpkg` from Arch Linux's devtools but uses the previously mentioned
container image. Therefore it does *not* require devtools, a chroot setup and
systemd-nsapwn. Instead, any container runtime should be sufficient (tested with
Docker and Podman).
The usage of `makecontainerpkg` is very similar to `makechrootpkg`. Simply run
the script in a directory containing a `PKGBUILD` file. If the directory
contains a file called `pacman.conf` and/or `makepkg.conf` those files are
configured to be used during the build. The call syntax is the following:
```
makecontainerpkg [cre args] --- [makepkg args]
```
Set the environment variable `CRE` to the container runtime executable (by
default `docker`) and set `CRE_IMAGE` to use a different container image.
Note that you can also set the environment variable `TOOL` to invoke a different
tool instead of `makepkg`, e.g. `TOOL=updpkgsums makecontainerpkg` can be used
to update checksums.
Example where the host pacman cache and ccache directories are mounted into the
container and a package rebuild is forced via `makepkg`'s flag `-f`:
```
makecontainerpkg -v /var/cache/pacman/pkg/ -v /run/media/devel/ccache:/ccache -- -f CCACHE_DIR=/ccache
```
Example using podman on a non-Arch system:
```
CRE=podman ../../devel/container/makecontainerpkg -v /hdd/cache/pacman/pkg:/var/cache/pacman/pkg -v /hdd/chroot/remote-config-x86_64:/cfg
```
It makes still sense to specify a cache directory, even though pacman is not
used on the host system. Here also a directory containing a custom `pacman.conf`
and `makepkg.conf` is mounted into the container.
### Podman-specific remarks
To use podman (instead of Docker) simply set `export CRE=podman`.
To be able to run podman without root, you need to ensure user/group IDs can be
mapped. The mapping is configured in the files `/etc/subuid` and `/etc/subgid`.
Use `sudo usermod --add-subuids 200000-265536 --add-subgids 200000-265536 $USER`
to configure it for the current user and verify the configuration via
`grep $USER /etc/sub{u,g}id`. Finally, run `podman system migrate` to apply.
To change storage paths so e.g. containers are stored at a different location,
edit `~/.config/containers/storage.conf` (or `/etc/containers/storage.conf` for
system-wide configuration) to set `runroot` and `graphroot` to different
locations.
### Investigation of build failures
By default, `makecontainerpkg` removes the container in the end. Set `DEBUG=1`
to prevent that. Then one can use e.g. `podman container exec -it … bash` to
enter the container for manual investigation. Set `DEBUG=on-failure` to only
keep the container in case of a failure.
### Using Arch-packages on another distribution via a container
If you want to cross-compile software on non-Arch distributions you can make use
of the `android-*` and `mingw-w64-*` packages provided by this repository using
an Arch Linux container. The container image mentioned before is also suitable
for this purpose.
Here are some example commands how one might do that:
```
# do basic container setup
containers/create-devel-container-example
# start interactive shell in container
podman container exec -it archlinux-devel-container bash
# install stuff you want, e.g. mingw-w64 or android Qt packages
podman container exec -it archlinux-devel-container \
pacman -Syu ninja git mingw-w64-cmake qt6-{base,tools} mingw-w64-qt6-{base,tools,translations,svg,5compat}
podman container exec -it archlinux-devel-container \
pacman -Syu clang ninja git extra-cmake-modules android-cmake qt6-{base,tools,declarative,shadertools} android-aarch64-qt6-{base,declarative,tools,translations,svg,5compat} android-aarch64-{boost,libiconv,qqc2-breeze-style}
# configure the build using mingw-w64 packages, e.g. run CMake
podman container exec -it archlinux-devel-container x86_64-w64-mingw32-cmake \
-G Ninja \
-S /src/c++/cmake/PianoBooster \
-B /build/pianobooster-x86_64-w64-mingw32-release \
-DPKG_CONFIG_EXECUTABLE:FILEPATH=/usr/bin/x86_64-w64-mingw32-pkg-config \
-DQT_PACKAGE_NAME:STRING=Qt6
# conduct the build using mingw-w64 packages, e.g. invoke Ninja build system via CMake
podman container exec -it archlinux-devel-container bash -c '
source /usr/bin/mingw-env x86_64-w64-mingw32 && \
cmake --build /build/pianobooster-x86_64-w64-mingw32-release --verbose'
# configure the build using android packages, e.g. run CMake
podman container exec -it archlinux-devel-container bash -c '
android_arch=aarch64
export PATH=/usr/lib/jvm/java-17-openjdk/bin:$PATH
source /usr/bin/android-env $android_arch && \
android-$android_arch-cmake \
-G Ninja \
-S /src/c++/cmake/subdirs/passwordmanager \
-B /build/passwordmanager-android-$android_arch-release \
-DCMAKE_FIND_ROOT_PATH="${ANDROID_PREFIX}" \
-DANDROID_SDK_ROOT="${ANDROID_HOME}" \
-DPKG_CONFIG_EXECUTABLE:FILEPATH=/usr/bin/android-$android_arch-pkg-config \
-DQT_PACKAGE_PREFIX:STRING=Qt6 \
-DKF_PACKAGE_PREFIX:STRING=KF6'
# conduct the build using android packages, e.g. invoke Ninja build system via CMake
podman container exec -it archlinux-devel-container bash -c '
export PATH=/usr/lib/jvm/java-17-openjdk/bin:$PATH
source /usr/bin/android-env aarch64 && \
cmake --build /build/passwordmanager-android-aarch64-release --verbose'
# use additional Android-related tooling from container
# note: These are just example values. The ports for pairing and connection are distinct.
phone_ip=192.168.178.42 pairing_port=34765 pairing_code=922102 connection_port=32991
podman container exec -it archlinux-devel-container \
/opt/android-sdk/platform-tools/adb pair "$phone_ip:$pairing_port" "$pairing_code"
podman container exec -it archlinux-devel-container \
/opt/android-sdk/platform-tools/adb connect "$phone_ip:$connection_port"
podman container exec -it archlinux-devel-container \
/opt/android-sdk/platform-tools/adb logcat
# get rid of the container when no longer needed
podman container stop archlinux-devel-container
podman container rm archlinux-devel-container
```
Note that these commands are intended to be run without root (see section
"Podman-specific remarks" for details). In this case files that are created
from within the container in the build and source directories will have your
normal user/group outside the container which is quite convenient (within the
container they will be owned by root).
### Other approaches
There's also the 3rdparty repository
[docker-mingw-qt5](https://github.com/mdimura/docker-mingw-qt5) which contains
an image with many mingw-w64 package pre-installed.
## Structure ## Structure
Each package is in its own subdirectoy: Each package is in its own subdirectoy:
@ -210,12 +71,6 @@ where `default-pkg-name` is the default package name (eg. `qt5-base`) and
The repository does not contain `.SRCINFO` files. The repository does not contain `.SRCINFO` files.
---
The subdirectoy `devel` contains additional files, mainly for development
purposes. The subdirectoy `devel/archive` contains old packages that are no
longer updated (at least not via this repository).
## Generated PKGBUILDs ## Generated PKGBUILDs
To avoid repetition some PKGBUILDs are generated. These PKGBUILDs are determined To avoid repetition some PKGBUILDs are generated. These PKGBUILDs are determined
by the presence of the file `PKGBUILD.sh.ep` besides the actual `PKGBUILD` file. by the presence of the file `PKGBUILD.sh.ep` besides the actual `PKGBUILD` file.
@ -243,7 +98,7 @@ usually preserve the original patches and create a new branch, eg.
So in this case it would make sense to contribute directly there. To fix an So in this case it would make sense to contribute directly there. To fix an
existing patch, just create a fixup commit. This (unusual) fixup workflow aims existing patch, just create a fixup commit. This (unusual) fixup workflow aims
to keep the number of additional changes as small as possible. to keep the number of additional changes as small as possbile.
To get the patches into the PKGBUILD files, the script To get the patches into the PKGBUILD files, the script
`devel/qt5/update-patches.sh` is used. `devel/qt5/update-patches.sh` is used.
@ -270,11 +125,11 @@ cause conflicts. However, the workflow is quite simple:
## Brief documentation about mingw-w64-qt packages ## Brief documentation about mingw-w64-qt packages
The Qt project does not support building Qt under GNU/Linux when targeting The Qt project does not support building Qt under GNU/Linux when targeting
mingw-w64. With Qt 6 they also stopped 32-bit builds. They also don't provide mingw-w64. With Qt 6 they also stopped 32-bit builds. They also don't provide
static builds targeting mingw-w64. They are also relying a lot on their bundled static builds the mingw-w64 target. They are also relying a lot on their bundled
libraries while my builds aim to build dependencies separately. So expect some libraries while my builds aim to build dependencies separately. So expect some
rough edges when using my packaging. rough edges when using my packaging.
Nevertheless it make sense to follow the official documentation. For concrete Neverthless it make sense to follow the official documentation. For concrete
examples how to use this packaging with CMake, just checkout the mingw-w64 examples how to use this packaging with CMake, just checkout the mingw-w64
variants of e.g. `syncthingtray` within this repository. The Arch Wiki also has variants of e.g. `syncthingtray` within this repository. The Arch Wiki also has
a [section about mingw-w64 a [section about mingw-w64
@ -287,28 +142,25 @@ they would require `fxc.exe` to build.
Currently, I test with qmake and CMake. With both build systems it is possible Currently, I test with qmake and CMake. With both build systems it is possible
to use either the shared or the static libraries. Please read the comments in to use either the shared or the static libraries. Please read the comments in
the PKGBUILD file itself and the pinned comments in [the the PKGBUILD file itself and the pinned comments in [the
AUR](https://aur.archlinux.org/packages/mingw-w64-qt5-base) for further AUR](https://aur.archlinux.org/packages/mingw-w64-qt5-base) for futher
information. information.
There are also pkg-config files, but those aren't really tested. There are also pkg-config files, but those aren't really tested.
`qbs` and `windeployqt` currently don't work very well (see issues). Using the qbs and windeployqt currently don't work very well (see issues). Using the
static libraries or mxedeployqt might be an alternative to windeployqt. static libraries or mxedeployqt might be an alternative for windeployqt.
### Tested build and deployment tools for mingw-w64-qt6 packages ### Tested build and deployment tools for mingw-w64-qt6 packages
In order to build a Qt-based project using mingw-w64-qt6 packages one also needs In order to build a Qt-based project using mingw-w64-qt6 packages one also needs
to install the regular `qt6-base` package for development tools such as `moc`. to install the regular `qt6-base` package for development tools such as moc. The
The packages `qt6-tools`, `qt6-declarative` and `qt6-shadertools` contain also packages `qt6-tools` and `qt6-declarative` contain also native binaries which
native binaries which might be required by some projects. At this point the might be required by some projects. At this point the setup can break if the
setup can break if the version of regular packages and the versions of the version of regular packages and the versions of the mingw-w64 packages differ. I
mingw-w64 packages differ. I cannot do anything about it except trying to cannot do anything about it except trying to upgrade the mingw-w64 packages as
upgrade the mingw-w64 packages as fast as possible. There's actually a lengthy fast as possible. There's actually a lengthy discussion about this topi on the
discussion about this topic on the [Qt development
[Qt development mailinglist](https://lists.qt-project.org/pipermail/development/2021-September/041732.html) mailinglist](https://lists.qt-project.org/pipermail/development/2021-September/
so the situation might improve in the future. Note that as of 041732.html) so the situation might improve in the future.
qtbase commit `5ffc744b791a114a3180a425dd26e298f7399955` (requires Qt > 6.2.1)
one can specify `-DQT_NO_PACKAGE_VERSION_CHECK=TRUE` to ignore the strict
versioning check.
Currently, I test only CMake. It is possible to use either the shared or the Currently, I test only CMake. It is possible to use either the shared or the
static libraries. The static libraries are installed into a nested prefix static libraries. The static libraries are installed into a nested prefix
@ -353,7 +205,7 @@ are a wrapper around the regular `wine` binary ensuring all the DLLs provided by
a distinct `wine` prefix so your usual configuration (e.g. tailored to run a distinct `wine` prefix so your usual configuration (e.g. tailored to run
certain games) does not go into the way and is also not messed with. certain games) does not go into the way and is also not messed with.
Here are nevertheless some useful hints to run WINE manually: Here are neverthless some useful hints to run WINE manually:
* Set the environment variable `WINEPREFIX` to use a distinct WINE-prefix if * Set the environment variable `WINEPREFIX` to use a distinct WINE-prefix if
wanted. wanted.
@ -377,50 +229,25 @@ Here are nevertheless some useful hints to run WINE manually:
* See https://wiki.winehq.org/Wine_User's_Guide for more information * See https://wiki.winehq.org/Wine_User's_Guide for more information
## Static GNU/Linux libraries ## Static GNU/Linux libraries
This repository contains several `static-compat-*` packages providing static This repository contains several `*-static` packages providing static libraries
libraries intended to distribute "self-contained" executables. These libraries intended to distribute "self-contained" executables. These packages are still
are built against an older version of glibc to be able to run on older experimental and are not be regularily updated at this point.
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 and
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 regularly
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.
To use the packages, simply invoke `/usr/static-compat/bin/g++` instead of It would conceivable to build even Qt as a static library and make even a fully
`/usr/bin/g++`. The package `static-compat-environment` provides a script to set statically linked executable. However, it would not be possible to support
a few environment variables to make this easier. There are also packages OpenGL because glvnd and vendor provided OpenGL libraries are always dynamic
providing build system wrappers such as `static-compat-cmake`. 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
It would be conceivable to make fully statically linked executables. However, it partially statically linked build instead where libc/OpenGL/X11/Wayland are
would not be possible to support OpenGL because glvnd and vendor provided OpenGL assumed to be provided by the GNU/Linux system but other libraries like Qt are
libraries are always dynamic libraries. It makes also no sense to link against linked against statically. This would be similar to AppImage where a lot of
glibc (and possibly other core libraries) statically as they might use `dlopen`. libraries are bundled but certain "core libraries" are expected to be provided
Therefore this setup aims for a partially statically linked build instead, where by the system.
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.
Examples for resulting binaries can be found in the release sections of my
projects [Tag Editor](https://github.com/Martchus/tageditor/releases) and
[Syncthing Tray](https://github.com/Martchus/syncthingtray/releases). Those are
Qt 6 applications and the resulting binaries run on the mentioned platforms
supporting X11 and Wayland natively.
Note that I decided to let static libraries live within the subprefix Note that I decided to let static libraries live within the subprefix
`/usr/static-compat` (in contrast to `-static` packages found in the AUR). The `/usr/static` (in contrast to packages found in the AUR). The reason is that the
main reason is that my packaging requires a custom glibc/GCC build for version might not be kept 100 % in sync with the shared counterpart. Hence it
compatibility and I suppose that simply needs to live within its own prefix. makes sense to make the static packages independent with their own headers and
Besides, the version might not be kept 100 % in sync with the shared configuration files to avoid problems due to mismatching versions. Besides, some
counterpart. Hence it makes sense to make the static packages independent with projects (such as Qt) do not support installing shared and static libraries
their own headers and configuration files to avoid problems due to mismatching within the same prefix at the same time because the config files would clash.
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-2024 Marius Kittler
All code is licensed under [GPL-2-or-later](LICENSE).

View File

@ -1,52 +0,0 @@
_pkgname=alsa-lib
pkgname=static-compat-$_pkgname
pkgver=1.2.10
pkgrel=3
pkgdesc="An alternative implementation of Linux sound support"
arch=(x86_64)
url="https://www.alsa-project.org"
license=(LGPL-2.1-or-later)
depends=('gcc-libs-static-compat')
makedepends=('static-compat-configure')
source=(
https://www.alsa-project.org/files/pub/lib/$_pkgname-$pkgver.tar.bz2{,.sig}
$_pkgname-1.2.10-config_header.patch::https://github.com/alsa-project/alsa-lib/commit/0e3dfb9f705ca78be34cd70fd59d67c431e29cc7.patch
)
sha512sums=('4ccbd1dc5a612044571c26290923009e4c3f7959b30a5d0bed47daa68bbefaff9059c4f0fa3bc16f22c1eed2d36f079139369f40243da5921ae4de02a4541939'
'SKIP'
'4c10050fb92da9c61e08eb742b60245314362bf8b7f5c34d5edade2f0bcaa0930c1d30267db0a95de2391c01a4aa59f5565423a1c41e42471f3dc9614b4d9b8a')
b2sums=('b2e4f8431e61f5bb56b2b5d124e67d5a68bbca3c647bebfa93f5e5ff092ec9ef3f6cb6315801fcd93e21151784814ff238d357313b8b44f32d4e7c9ee565388f'
'SKIP'
'73ce802cfcefed592d3820e4e8fdc2cfcb0666e60e07ede87f5581acf751e2c7552bc9347c1075552337047ec4c2cb64dbc92433d4e4b2e52cf6cad36f2679f2')
validpgpkeys=('F04DF50737AC1A884C4B3D718380596DA6E59C91') # ALSA Release Team (Package Signing Key v1) <release@alsa-project.org>
prepare() {
source static-compat-environment
# fix crashes with 32bit applications: https://bugs.archlinux.org/task/79628
patch -Np1 -d $_pkgname-$pkgver -i ../$_pkgname-1.2.10-config_header.patch
cd $_pkgname-$pkgver
autoreconf -fiv
}
build() {
source static-compat-environment
# -flto=auto is not supported: https://github.com/alsa-project/alsa-lib/issues/110
CFLAGS+=" -flto-partition=none"
cd $_pkgname-$pkgver
static-compat-configure --prefix=/usr --disable-shared --enable-static --without-debug
# prevent excessive overlinking due to libtool
sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
make
}
check() {
source static-compat-environment
export LD_LIBRARY_PATH="$_pkgname-$pkgver/src/.libs/:$LD_LIBRARY_PATH"
make -k check -C $_pkgname-$pkgver || true
}
package() {
source static-compat-environment
make DESTDIR="$pkgdir" install -C $_pkgname-$pkgver
rm -r $pkgdir/usr/{bin,share/alsa,share/aclocal}
}

View File

@ -6,26 +6,21 @@
_reponame=arch-repo-manager _reponame=arch-repo-manager
pkgname=arch-repo-manager-git pkgname=arch-repo-manager-git
_name=${pkgname%-git} _name=${pkgname%-git}
_liburing=OFF pkgver=78.d920368
pkgver=340.599185d pkgrel=2
pkgrel=3
arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64') arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64')
pkgdesc='Tool for managing custom Arch Linux repositories' pkgdesc='Tool for managing custom Arch Linux repositories'
license=('GPL') license=('GPL')
depends=('libc++utilities-git.so' 'libpasswordfile-git.so' 'libboost_filesystem.so' 'libarchive.so' 'libcrypto.so' 'libssl.so' 'lmdb' depends=('c++utilities-git' 'boost-libs' 'libarchive')
'devtools-custom>=1.1.1')
[[ $_liburing != OFF ]] && depends+=('liburing.so')
optdepends=('reflective-rapidjson-git: development with libpkg/librepomgr' optdepends=('reflective-rapidjson-git: development with libpkg/librepomgr'
"$_name-doc: API documentation") "$_name-doc: API documentation")
makedepends=('cmake' 'git' 'ninja' 'boost' 'catch2' 'rapidjson-git' 'reflective-rapidjson-git') makedepends=('cmake' 'git' 'ninja' 'boost' 'rapidjson-git' 'reflective-rapidjson-git')
checkdepends=('cppunit') checkdepends=('cppunit')
provides=(libpkg-git.so librepomgr-git.so) options=(!strip)
options=(debug)
url="https://github.com/Martchus/${_reponame}" url="https://github.com/Martchus/${_reponame}"
source=("${_reponame}::${MARTCHUS_GIT_URL_PREFIX:-git+https://github.com/Martchus}/${_reponame}.git" source=("${_reponame}::${MARTCHUS_GIT_URL_PREFIX_PRIVATE:-git://github.com/Martchus}/${_reponame}.git"
"lmdb-safe::${MARTCHUS_GIT_URL_PREFIX:-git+https://github.com/Martchus}/lmdb-safe.git" 'tabulate::git://github.com/p-ranav/tabulate.git')
'tabulate::git+https://github.com/p-ranav/tabulate.git') sha256sums=('SKIP' 'SKIP')
sha256sums=('SKIP' 'SKIP' 'SKIP')
pkgver() { pkgver() {
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame}" cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame}"
@ -35,10 +30,8 @@ pkgver() {
prepare() { prepare() {
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame}" cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame}"
for submodule in tabulate lmdb-safe ; do rm -r 3rdparty/tabulate
rm -r 3rdparty/$submodule ln -sr ../tabulate 3rdparty/tabulate
ln -sr ../$submodule 3rdparty/$submodule
done
} }
build() { build() {
@ -53,7 +46,6 @@ build() {
-DBUILD_SHARED_LIBS:BOOL=ON \ -DBUILD_SHARED_LIBS:BOOL=ON \
-DDUMMY_BUILD_ACTION_ENABLED:BOOL=ON \ -DDUMMY_BUILD_ACTION_ENABLED:BOOL=ON \
-DREFLECTION_GENERATOR_EXECUTABLE:FILEPATH='/usr/bin/reflective_rapidjson_generator-git' \ -DREFLECTION_GENERATOR_EXECUTABLE:FILEPATH='/usr/bin/reflective_rapidjson_generator-git' \
-DBOOST_ASIO_IO_URING:BOOL=$_liburing \
. .
VERBOSE=1 ninja VERBOSE=1 ninja
} }

View File

@ -2,7 +2,7 @@
# Contributor: Florian Bruhin (The Compiler) <archlinux.org@the-compiler.org> # Contributor: Florian Bruhin (The Compiler) <archlinux.org@the-compiler.org>
pkgname=baikal pkgname=baikal
pkgver=0.9.5 pkgver=0.8.0
pkgrel=1 pkgrel=1
pkgdesc='Lightweight CalDAV+CardDAV server' pkgdesc='Lightweight CalDAV+CardDAV server'
url='http://sabre.io/baikal/' url='http://sabre.io/baikal/'
@ -12,21 +12,17 @@ depends=('php')
optdepends=('sqlite: Database' 'mariadb: Alternate database' 'php-sqlite: To use the sqlite backend') optdepends=('sqlite: Database' 'mariadb: Alternate database' 'php-sqlite: To use the sqlite backend')
source=("https://github.com/fruux/Baikal/releases/download/$pkgver/baikal-$pkgver.zip" source=("https://github.com/fruux/Baikal/releases/download/$pkgver/baikal-$pkgver.zip"
'baikal.install') 'baikal.install')
sha512sums=('e544ed39047788bf001c81a44eb69a3db30a871253cb6bf12b54d5d476eaadc63d723192d41b67f2cf908a72d4c722def03d853df68b7fd464a4093e08ed0f19' sha1sums=('a3a9975e809f301e856b037ae56e21c77a9e99e3'
'4e28980100ce9fc820a6c40a9cd528a90d62997ac18fb4ea353d8eaba58b320f9c653ba9b066036ff598f1d5a0aafb49ba444f9187c0d3616cbe6fa45222ca3f') 'deb948e61c3cd8d6ad560321f78c0b288f7a6210')
options=('!strip') options=('!strip')
install=baikal.install install=baikal.install
prepare() {
cd "${srcdir}/baikal/vendor/sabre/dav"
}
package() { package() {
cd "${srcdir}/baikal" cd "${srcdir}/baikal"
install -dm 755 "$pkgdir"/usr/share/{webapps,doc}"/$pkgname" install -dm 755 "$pkgdir"/usr/share/{webapps,doc}"/$pkgname"
install -dm 700 "$pkgdir/var/lib/$pkgname" install -dm 700 -o http -g http "$pkgdir/var/lib/$pkgname"
install -dm 700 "$pkgdir/var/lib/$pkgname/config" install -dm 700 -o http -g http "$pkgdir/var/lib/$pkgname/config"
cp -R Core html vendor "$pkgdir/usr/share/webapps/$pkgname" cp -R Core html vendor "$pkgdir/usr/share/webapps/$pkgname"
install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname" install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname"
ln -s "/var/lib/$pkgname" "$pkgdir/usr/share/webapps/$pkgname/Specific" ln -s "/var/lib/$pkgname" "$pkgdir/usr/share/webapps/$pkgname/Specific"

View File

@ -12,7 +12,7 @@ makedepends=('git')
provides=("$_pkgname") provides=("$_pkgname")
conflicts=("$_pkgname") conflicts=("$_pkgname")
install="$pkgname.install" install="$pkgname.install"
source=("git+https://github.com/Martchus/${_pkgname}.git#branch=adjustments") source=("git://github.com/Martchus/${_pkgname}.git#branch=adjustments")
md5sums=('SKIP') md5sums=('SKIP')
pkgver() { pkgver() {

View File

@ -4,8 +4,8 @@
# you also find the URL of a binary repository. # you also find the URL of a binary repository.
pkgname=bento4 pkgname=bento4
pkgver=1.6.0.641 pkgver=1.6.0.637
_pkgverstr=1-6-0-641 _pkgverstr=1-6-0-637
pkgrel=1 pkgrel=1
pkgdesc='C++ class library and tools designed to read and write ISO-MP4 files' pkgdesc='C++ class library and tools designed to read and write ISO-MP4 files'
arch=('i686' 'x86_64' 'arm' 'armv6h' 'armv7h' 'aarch64') arch=('i686' 'x86_64' 'arm' 'armv6h' 'armv7h' 'aarch64')
@ -14,34 +14,26 @@ license=('GPL')
makedepends=('cmake') makedepends=('cmake')
optdepends=('python') optdepends=('python')
source=("http://zebulon.bok.net/Bento4/source/Bento4-SRC-${_pkgverstr}.zip") source=("http://zebulon.bok.net/Bento4/source/Bento4-SRC-${_pkgverstr}.zip")
sha256sums=('8258faf0de7253f2aac016018f33d4a04c16d9060735e14ec8711f84aaedf0c8') sha1sums=('45b627e73253a3e03fa31af3b843f2c194f85793')
build() { build() {
cd "${srcdir}" cd "${srcdir}"
sed -i "s/ STATIC / SHARED /" CMakeLists.txt sed -i "s/ STATIC / SHARED /" CMakeLists.txt
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="/usr" -DCMAKE_SKIP_BUILD_RPATH=ON cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="/usr" -DCMAKE_SKIP_BUILD_RPATH=ON
cmake --build . make
} }
package() { package() {
cd "${srcdir}" cd "${srcdir}"
# install manually (there's no install target)
mkdir -p "${pkgdir}/usr/"{bin,lib,lib/bento4}
find -iname '*.so' -exec cp --target-directory="${pkgdir}/usr/lib" {} \;
find -maxdepth 1 -executable -type f -exec cp --target-directory="${pkgdir}/usr/bin" {} \;
find Source/Python/utils -iname '*.py' -exec cp --target-directory="${pkgdir}/usr/lib/bento4" {} \;
for file in mp4dash mp4dashclone mp4hls; do
sed -e 's!/../utils/!/../lib/bento4/!' "Source/Python/wrappers/$file" > "${pkgdir}/usr/bin/$file"
chmod 755 "${pkgdir}/usr/bin/$file"
done
# prevent conflict with libmp4v2 # prevent conflict with libmp4v2
suffix=-bento4
for conflicting_file in mp4extract mp4info; do for conflicting_file in mp4extract mp4info; do
mv "${pkgdir}/usr/bin/$conflicting_file" "${pkgdir}/usr/bin/$conflicting_file$suffix" mv $conflicting_file $conflicting_file-bento4
find "${pkgdir}/usr/lib/bento4" -iname '*.py' -exec sed -i -e "s#\(Bento4Command(.*\)\b$conflicting_file\b#\1$conflicting_file$suffix#g" {} \;
done done
# install manually (there's no install target)
mkdir -p "${pkgdir}/usr/"{lib,bin}
find -iname '*.so' -exec mv --target-directory="${pkgdir}/usr/lib" {} \;
find -maxdepth 1 -executable -type f -exec mv --target-directory="${pkgdir}/usr/bin" {} \;
} }

View File

@ -1,71 +1,59 @@
# Maintainer of official package: Felix Yan <felixonmars@archlinux.org> # $Id: PKGBUILD 182460 2016-07-07 13:03:56Z spupykin $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Maintainer: rubenvb vanboxem <dottie> ruben <attie> gmail <dottie> com
# Same as official package but uses symlinks instead of hard links allowing # Same as official package but uses symlinks instead of hard links allowing
# installation when /usr/i686-w64-mingw32 and /usr/x86_64-w64-mingw32 are # installation when /usr/i686-w64-mingw32 and /usr/x86_64-w64-mingw32 are
# bound from another partition. # bound from another partition.
_targets="i686-w64-mingw32 x86_64-w64-mingw32"
pkgname=mingw-w64-binutils-symlinks pkgname=mingw-w64-binutils-symlinks
pkgver=2.42 pkgver=2.32
pkgrel=1 pkgrel=1
pkgdesc="Cross binutils for the MinGW-w64 cross-compiler" pkgdesc="Cross binutils for the MinGW-w64 cross-compiler (uses symlinks instead of hard links)"
arch=('x86_64') arch=('i686' 'x86_64')
url="http://www.gnu.org/software/binutils" url="http://www.gnu.org/software/binutils"
license=(GPL-2.0-or-later GPL-3.0-or-later LGPL-2.0-or-later LGPL-3.0-or-later GFDL-1.3 FSFAP) license=('GPL')
groups=('mingw-w64-toolchain' 'mingw-w64') groups=('mingw-w64-toolchain' 'mingw-w64')
depends=('zlib') depends=('zlib')
provides=('mingw-w64-binutils') provides=('mingw-w64-binutils')
conflicts=('mingw-w64-binutils'); conflicts=('mingw-w64-binutils')
options=('!libtool' '!emptydirs') options=('!libtool' '!emptydirs')
validpgpkeys=('3A24BC1E8FB409FA9F14371813FCEF89DD9E3C4F') # Nick Clifton (Chief Binutils Maintainer) <nickc@redhat.com> validpgpkeys=('3A24BC1E8FB409FA9F14371813FCEF89DD9E3C4F')
source=("https://ftp.gnu.org/gnu/binutils/binutils-${pkgver}.tar.gz"{,.sig}) source=("https://ftp.gnu.org/gnu/binutils/binutils-${pkgver}.tar.gz"{,.sig})
sha512sums=('1e4ee462513eadd3c540e4782f9661df62ecbcd4d6297d61dcc0845ae7d30243c57571787706af3bb4d561e4350609d7057307290e81d76290a301f159a6abc5' sha256sums=('9b0d97b3d30df184d302bced12f976aa1e5fbf4b0be696cdebc6cca30411a46e'
'SKIP') 'SKIP')
_targets="i686-w64-mingw32 x86_64-w64-mingw32"
prepare() { prepare() {
cd "$srcdir"/binutils-${pkgver} cd ${srcdir}/binutils-${pkgver}
#do not install libiberty #do not install libiberty
sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in
# hack! - libiberty configure tests for header files using "$CPP $CPPFLAGS"
sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" libiberty/configure
} }
build() { build() {
# Fix the check for limits.h and certain other checks by dropping the fortify flag from CPPFLAGS
# note: Otherwise libiberty/config.h lacks HAVE_LIMITS_H and the compilation runs into errors like:
# /build/gcc-static-compat/src/gcc/libiberty/fibheap.c:38:25: error: LONG_MIN undeclared (first use in this function)
# 38 | #define FIBHEAPKEY_MIN LONG_MIN
# | ^~~~~~~~
# /build/gcc-static-compat/src/gcc/libiberty/fibheap.c:220:30: note: in expansion of macro FIBHEAPKEY_MIN
# 220 | if (okey == key && okey != FIBHEAPKEY_MIN)
# | ^~~~~~~~~~~~~~
# /build/gcc-static-compat/src/gcc/libiberty/fibheap.c:36:1: note: LONG_MIN is defined in header <limits.h>; did you forget to #include <limits.h>?
# 35 | #include "fibheap.h"
# +++ |+#include <limits.h>
CPPFLAGS=${CPPFLAGS/-D_FORTIFY_SOURCE=2}
for _target in $_targets; do for _target in $_targets; do
echo "Building ${_target} cross binutils" msg "Building ${_target} cross binutils"
mkdir -p "$srcdir"/binutils-${_target} && cd "${srcdir}/binutils-${_target}" mkdir -p ${srcdir}/binutils-${_target} && cd "${srcdir}/binutils-${_target}"
"$srcdir"/binutils-${pkgver}/configure --prefix=/usr \ $srcdir/binutils-${pkgver}/configure --prefix=/usr \
--target=${_target} \ --target=${_target} \
--infodir=/usr/share/info/${_target} \ --infodir=/usr/share/info/${_target} \
--enable-lto --enable-plugins \ --enable-lto --enable-plugins \
--enable-deterministic-archives \ --enable-deterministic-archives \
--disable-multilib --disable-nls \ --disable-multilib --disable-nls \
--disable-werror --disable-werror
make -O make
done done
} }
package() { package() {
for _target in ${_targets}; do for _target in ${_targets}; do
echo "Installing ${_target} cross binutils" msg "Installing ${_target} cross binutils"
cd "$srcdir"/binutils-${_target} cd ${srcdir}/binutils-${_target}
make DESTDIR="$pkgdir" install make DESTDIR=${pkgdir} install
rm "$pkgdir"/usr/lib/bfd-plugins/libdep.so
done done
cd "${pkgdir}/usr/bin" cd "${pkgdir}/usr/bin"
for file in *; do for file in *; do
if [[ ! -L $file ]] && [[ ! -d $file ]]; then if [[ ! -L $file ]] && [[ ! -d $file ]]; then

View File

@ -1,62 +0,0 @@
# Maintainer of official package: Felix Yan <felixonmars@archlinux.org>
pkgname=mingw-w64-binutils
pkgver=2.42
pkgrel=1
pkgdesc="Cross binutils for the MinGW-w64 cross-compiler"
arch=('x86_64')
url="http://www.gnu.org/software/binutils"
license=(GPL-2.0-or-later GPL-3.0-or-later LGPL-2.0-or-later LGPL-3.0-or-later GFDL-1.3 FSFAP)
groups=('mingw-w64-toolchain' 'mingw-w64')
depends=('zlib')
options=('!libtool' '!emptydirs')
validpgpkeys=('3A24BC1E8FB409FA9F14371813FCEF89DD9E3C4F') # Nick Clifton (Chief Binutils Maintainer) <nickc@redhat.com>
source=("https://ftp.gnu.org/gnu/binutils/binutils-${pkgver}.tar.gz"{,.sig})
sha512sums=('1e4ee462513eadd3c540e4782f9661df62ecbcd4d6297d61dcc0845ae7d30243c57571787706af3bb4d561e4350609d7057307290e81d76290a301f159a6abc5'
'SKIP')
_targets="i686-w64-mingw32 x86_64-w64-mingw32"
prepare() {
cd "$srcdir"/binutils-${pkgver}
#do not install libiberty
sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in
}
build() {
# Fix the check for limits.h and certain other checks by dropping the fortify flag from CPPFLAGS
# note: Otherwise libiberty/config.h lacks HAVE_LIMITS_H and the compilation runs into errors like:
# /build/gcc-static-compat/src/gcc/libiberty/fibheap.c:38:25: error: LONG_MIN undeclared (first use in this function)
# 38 | #define FIBHEAPKEY_MIN LONG_MIN
# | ^~~~~~~~
# /build/gcc-static-compat/src/gcc/libiberty/fibheap.c:220:30: note: in expansion of macro FIBHEAPKEY_MIN
# 220 | if (okey == key && okey != FIBHEAPKEY_MIN)
# | ^~~~~~~~~~~~~~
# /build/gcc-static-compat/src/gcc/libiberty/fibheap.c:36:1: note: LONG_MIN is defined in header <limits.h>; did you forget to #include <limits.h>?
# 35 | #include "fibheap.h"
# +++ |+#include <limits.h>
CPPFLAGS=${CPPFLAGS/-D_FORTIFY_SOURCE=2}
for _target in $_targets; do
echo "Building ${_target} cross binutils"
mkdir -p "$srcdir"/binutils-${_target} && cd "${srcdir}/binutils-${_target}"
"$srcdir"/binutils-${pkgver}/configure --prefix=/usr \
--target=${_target} \
--infodir=/usr/share/info/${_target} \
--enable-lto --enable-plugins \
--enable-deterministic-archives \
--disable-multilib --disable-nls \
--disable-werror
make -O
done
}
package() {
for _target in ${_targets}; do
echo "Installing ${_target} cross binutils"
cd "$srcdir"/binutils-${_target}
make DESTDIR="$pkgdir" install
rm "$pkgdir"/usr/lib/bfd-plugins/libdep.so
done
}

View File

@ -4,7 +4,7 @@
# you also find the URL of a binary repository. # you also find the URL of a binary repository.
pkgname=blackwidowcontrol pkgname=blackwidowcontrol
pkgver=1.1.0 pkgver=1.0.2
pkgrel=1 pkgrel=1
pkgdesc='Python script to enable macro keys of the Razer BlackWidow keyboard under GNU/Linux' pkgdesc='Python script to enable macro keys of the Razer BlackWidow keyboard under GNU/Linux'
url='https://github.com/Martchus/blackwidowcontrol' url='https://github.com/Martchus/blackwidowcontrol'
@ -12,7 +12,7 @@ arch=('any')
license=('GPL') license=('GPL')
depends=('python-pyusb') depends=('python-pyusb')
source=("${pkgname}-${pkgver}.tar.gz::https://github.com/Martchus/${pkgname}/archive/v${pkgver}.tar.gz") source=("${pkgname}-${pkgver}.tar.gz::https://github.com/Martchus/${pkgname}/archive/v${pkgver}.tar.gz")
sha256sums=('bd679a4574de8a4d2b7ab4d56bf57559cf3bff130104636b82d083a62251c00d') sha256sums=('813a0726c78b8f057adf2d92a731c21e2afcd94d5b518625f4dc118db9d8216c')
package() { package() {
local _srcdir="${srcdir}/${PROJECT_DIR_NAME:-$pkgname-$pkgver}" local _srcdir="${srcdir}/${PROJECT_DIR_NAME:-$pkgname-$pkgver}"

View File

@ -3,146 +3,153 @@
# All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where
# you also find the URL of a binary repository. # you also find the URL of a binary repository.
_android_arch=aarch64 _pkgname=boost
pkgname=android-${_android_arch}-boost _pkg_arch=aarch64
pkgver=1.84.0 _android_arch=arm64-v8a
pkgrel=1 _android_toolchain=$_pkg_arch-linux-android
_andoird_toolchain_dir=$_android_toolchain
_android_platform=24
_android_target=$_android_toolchain$_android_platform
_android_prefix=/opt/android-libs/$_pkg_arch
_android_ndk_path=/opt/android-ndk
_boost_arch=arm
_boost_address_model=64
pkgname=android-$_pkg_arch-$_pkgname
pkgver=1.76.0
_srcname=boost_${pkgver//./_} _srcname=boost_${pkgver//./_}
pkgrel=1
url='https://www.boost.org/'
arch=('any') arch=('any')
pkgdesc="Free peer-reviewed portable C++ source libraries (Android, ${_android_arch})"
url="https://www.boost.org/"
license=('custom') license=('custom')
depends=("android-${_android_arch}-bzip2" pkgdesc="Free peer-reviewed portable C++ source libraries (Android, $_pkg_arch)"
"android-${_android_arch}-icu" depends=("android-$_pkg_arch-libiconv")
"android-${_android_arch}-zlib" options=(!buildflags staticlibs !strip !emptydirs)
"android-${_android_arch}-zstd") makedepends=('bzip2' 'zlib' 'android-ndk' 'android-sdk')
makedepends=('android-environment') conflicts=("android-$_pkgname-$_android_arch")
if [[ $_android_arch == aarch64 ]] || [[ $_android_arch == x86-64 ]]; then replaces=("android-$_pkgname-$_android_arch")
makedepends+=("android-${_android_arch}-openmpi") source=(https://boostorg.jfrog.io/artifactory/main/release/$pkgver/source/$_srcname.tar.gz
optdepends+=("android-${_android_arch}-openmpi: for mpi support") $_pkgname-ublas-c++20-iterator.patch::https://github.com/boostorg/ublas/commit/a31e5cffa85f.patch
fi no-versioned-shlibs.patch)
options=(!strip !buildflags staticlibs !emptydirs) sha256sums=('7bd7ddceec1a1dfdcbdb3e609b60d01739c38390a5f956385a12f3122049f0ca'
source=("https://boostorg.jfrog.io/artifactory/main/release/$pkgver/source/$_srcname.tar.bz2" 'aa38addb40d5f44b4a8472029b475e7e6aef1c460509eb7d8edf03491dc1b5ee'
"boost-1.81.0-phoenix-multiple-definitions.patch" 'd82d0f15064812dcabb3456a7bcb1db0e0f6145980e4728e638372e0fd35af23')
"boost-ublas-c++20-iterator.patch::https://github.com/boostorg/ublas/commit/a31e5cffa85f.patch"
"disable-version-check.patch")
md5sums=('9dcd632441e4da04a461082ebbafd337'
'cb1c25777e9b85af62366e7c930244b8'
'326826bf610c63c23247e70e648ff104'
'6290eb4fa0cab451aac92e12e85ef073')
prepare() { prepare() {
cd "${srcdir}/$_srcname" cd ${_srcname}
source android-env ${_android_arch}
# https://github.com/boostorg/phoenix/issues/111
patch -Np1 -i ../boost-1.81.0-phoenix-multiple-definitions.patch
# https://github.com/boostorg/ublas/pull/97 # https://github.com/boostorg/ublas/pull/97
patch -Np2 -i ../boost-ublas-c++20-iterator.patch patch -Np2 -i ../$_pkgname-ublas-c++20-iterator.patch
patch -p1 -i ../disable-version-check.patch
patch -i ../no-versioned-shlibs.patch
} }
build() { build() {
cd "${srcdir}/$_srcname" local _stagedir="${srcdir}/stagedir"
source android-env ${_android_arch} local jobs="$(sed -e 's/.*\(-j *[0-9]\+\).*/\1/' <<< ${MAKEFLAGS})"
local target_flags=" \
--target=$_android_target"
local common_flags=" \
$target_flags \
-isystem $_android_ndk_path/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1 \
-isystem $_android_ndk_path/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include \
-isystem $_android_ndk_path/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/$_android_toolchain \
-fexceptions \
-no-canonical-prefixes \
-D__ANDROID_API__=$_android_platform \
-O3 \
-fPIC \
-DBOOST_ASIO_HAS_STD_STRING_VIEW=1"
local ld_flags=" \
$target_flags \
-fexceptions \
$_android_ndk_path/sources/cxx-stl/llvm-libc++/libs/$_android_arch/libc++_shared.so \
-nostdlib++"
# Platform specific patches cd ${_srcname}
case "$_android_arch" in
aarch64)
_boost_arch=arm
_boost_address_model=64
;;
armv7a-eabi)
_boost_arch=arm
_boost_address_model=32
;;
x86)
_boost_arch=x86
_boost_address_model=32
;;
x86-64)
_boost_arch=x86
_boost_address_model=64
;;
*)
;;
esac
./bootstrap.sh -with-toolset=gcc ./bootstrap.sh --with-toolset=gcc
# support for OpenMPI install -Dm755 tools/build/src/engine/b2 "${_stagedir}"/bin/b2
if [[ _boost_address_model == 64 ]]; then
_boost_mpi='using mpi ;'
else
_boost_mpi=''
fi
userConfigs=$srcdir/$_srcname/user-config.jam # Support for OpenMPI
echo "using mpi ;" >> project-config.jam
cat << EOF > "${userConfigs}" # boostbook is needed by quickbook
${_boost_mpi} install -dm755 "${_stagedir}"/share/boostbook
using clang : android : ${ANDROID_CXX} : cp -a tools/boostbook/{xsl,dtd} "${_stagedir}"/share/boostbook/
<archiver>${ANDROID_AR} \
<assembler>${ANDROID_AS}
;
EOF
./b2 install \ export PATH=$_android_ndk_path/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
--prefix="$srcdir/fakeinstall" \
--user-config="${userConfigs}" \ # default "minimal" install: "release link=shared,static
--layout=system \ # runtime-link=shared threading=single,multi"
--with-atomic \ # --layout=tagged will add the "-mt" suffix for multithreaded libraries
--with-chrono \ # and installs includes in $_android_prefix/include/boost.
--with-container \ # --layout=system no longer adds the -mt suffix for multi-threaded libs.
--with-date_time \ # install to ${_stagedir} for consistency with regular boost package
--with-exception \ "${_stagedir}"/bin/b2 \
--with-fiber \ --with-atomic \
--with-filesystem \ --with-chrono \
--with-graph \ --with-container \
--with-graph_parallel \ --with-date_time \
--with-iostreams \ --with-exception \
--with-locale \ --with-fiber \
--with-log \ --with-filesystem \
--with-math \ --with-graph \
--with-mpi \ --with-graph_parallel \
--with-program_options \ --with-iostreams \
--with-random \ --with-locale \
--with-regex \ --with-log \
--with-serialization \ --with-math \
--with-system \ --with-mpi \
--with-test \ --with-program_options \
--with-thread \ --with-random \
--with-timer \ --with-regex \
--with-type_erasure \ --with-serialization \
--with-wave \ --with-system \
--with-stacktrace \ --with-test \
-sICONV_PATH="${ANDROID_PREFIX}" \ --with-thread \
variant=release \ --with-timer \
debug-symbols=off \ --with-type_erasure \
runtime-link=shared \ --with-wave \
link=shared,static \ --with-stacktrace \
target-os=android \ variant=release \
toolset=clang-android \ debug-symbols=off \
architecture=$_boost_arch \ threading=multi \
threading=multi \ runtime-link=shared \
address-model=$_boost_address_model \ link=shared,static \
cflags="${CXXFLAGS}" \ target-os=android \
cxxflags="${CFLAGS}" \ toolset=clang-android \
linkflags="${LDFLAGS}" architecture=$_boost_arch \
address-model=$_boost_address_model \
-sICONV_PATH="/opt/android-libs/$_pkg_arch" \
cflags="$common_flags" \
cxxflags="$common_flags -frtti -std=c++14" \
linkflags="$ld_flags" \
--layout=system \
${jobs} \
\
--prefix="${_stagedir}" \
install
} }
package() { package() {
cd "${srcdir}/$_srcname" local _stagedir="${srcdir}/stagedir"
source android-env ${_android_arch} install -dm755 "${pkgdir}"$_android_prefix
cp -a "${_stagedir}"/{include,share} "${pkgdir}"$_android_prefix
find "${srcdir}/fakeinstall"/lib -iname '*.a' -exec $ANDROID_STRIP -g {} \; local libdir="${pkgdir}"$_android_prefix/lib
find "${srcdir}/fakeinstall"/lib -iname '*.so' -exec $ANDROID_STRIP --strip-unneeded {} \; install -d "${libdir}"
cp -a "${_stagedir}"/lib/*.a "${libdir}"/
install -dm755 "$pkgdir/${ANDROID_PREFIX_LIB}/" install -dm755 "${pkgdir}"$_android_prefix
cp -a "${srcdir}/fakeinstall"/lib/*.{a,so} "$pkgdir/${ANDROID_PREFIX_LIB}/" cp -a "${_stagedir}"/lib "${pkgdir}"$_android_prefix
cp -a "${srcdir}/fakeinstall"/lib/cmake "$pkgdir/${ANDROID_PREFIX_LIB}/"
cp -a "${srcdir}/fakeinstall"/include "$pkgdir/${ANDROID_PREFIX}/"
install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname" LICENSE_1_0.txt install -Dm644 "${srcdir}/"${_srcname}/LICENSE_1_0.txt \
"${pkgdir}"$_android_prefix/share/licenses/boost/LICENSE_1_0.txt
local strip=$_android_ndk_path/toolchains/$_android_toolchain-4.9/prebuilt/linux-x86_64/bin/$_android_toolchain-strip
find "${libdir}" -iname '*.a' -exec $strip -g {} \;
find "${libdir}" -iname '*.so' -exec $strip --strip-unneeded {} \;
} }
# vim: ts=2 sw=2 et:

View File

@ -1,11 +0,0 @@
https://bugs.gentoo.org/887041
https://github.com/boostorg/phoenix/issues/111
--- a/boost/phoenix/stl.hpp
+++ b/boost/phoenix/stl.hpp
@@ -11,6 +11,5 @@
#include <boost/phoenix/stl/algorithm.hpp>
#include <boost/phoenix/stl/container.hpp>
-#include <boost/phoenix/stl/tuple.hpp>
#endif

View File

@ -1,59 +0,0 @@
From a31e5cffa85f58b64a39fa7c4a1bd3bd9228b069 Mon Sep 17 00:00:00 2001
From: Conrad Poelman <cpgithub@stellarscience.com>
Date: Tue, 4 Aug 2020 17:20:40 -0400
Subject: [PATCH] Remove deprecated inheritance from std::iterator (#97)
std::iterator was deprecated in C++17 and removed in C++20. I replaced the inheritance with the 5 equivalent typedefs, even though they're not all used by ublas, for compatibility in case clients depend on them.
---
.../boost/numeric/ublas/detail/iterator.hpp | 24 ++++++++++++++-----
1 file changed, 18 insertions(+), 6 deletions(-)
diff --git a/include/boost/numeric/ublas/detail/iterator.hpp b/include/boost/numeric/ublas/detail/iterator.hpp
index 1723a301c..7aebf2f9f 100644
--- a/include/boost/numeric/ublas/detail/iterator.hpp
+++ b/include/boost/numeric/ublas/detail/iterator.hpp
@@ -107,8 +107,12 @@ namespace boost { namespace numeric { namespace ublas {
* via the post increment operator.
*/
template<class IC, class I, class T>
- struct forward_iterator_base:
- public std::iterator<IC, T> {
+ struct forward_iterator_base {
+ typedef IC iterator_category;
+ typedef T value_type;
+ typedef std::ptrdiff_t difference_type;
+ typedef T* pointer;
+ typedef T& reference;
typedef I derived_iterator_type;
typedef T derived_value_type;
@@ -145,8 +149,12 @@ namespace boost { namespace numeric { namespace ublas {
* via the post increment and post decrement operator.
*/
template<class IC, class I, class T>
- struct bidirectional_iterator_base:
- public std::iterator<IC, T> {
+ struct bidirectional_iterator_base {
+ typedef IC iterator_category;
+ typedef T value_type;
+ typedef std::ptrdiff_t difference_type;
+ typedef T* pointer;
+ typedef T& reference;
typedef I derived_iterator_type;
typedef T derived_value_type;
@@ -200,8 +208,12 @@ namespace boost { namespace numeric { namespace ublas {
*/
template<class IC, class I, class T, class D = std::ptrdiff_t>
// ISSUE the default for D seems rather dangerous as it can easily be (silently) incorrect
- struct random_access_iterator_base:
- public std::iterator<IC, T> {
+ struct random_access_iterator_base {
+ typedef IC iterator_category;
+ typedef T value_type;
+ typedef D difference_type;
+ typedef T* pointer;
+ typedef T& reference;
typedef I derived_iterator_type;
typedef T derived_value_type;
typedef D derived_difference_type;

View File

@ -1,33 +1,27 @@
--- a/tools/build/src/tools/common.jam 2023-02-03 10:57:59.385098144 +0100 --- a/tools/build/src/tools/common.jam 2019-09-18 16:03:02.035995695 +0200
+++ b/tools/build/src/tools/common.jam 2023-02-03 11:00:34.982146918 +0100 +++ b/tools/build/src/tools/common.jam 2019-09-18 16:03:36.386156355 +0200
@@ -1127,18 +1127,18 @@ @@ -974,16 +974,16 @@
import $(toolset) ;
local tool-version = [ $(toolset).get-full-version $(command) ] ;
- import version ;
- if ! [ version.version-compatible [ SPLIT_BY_CHARACTERS $(version) : . ]
- : [ SPLIT_BY_CHARACTERS $(tool-version) : . ] ]
- {
- errors.error toolset $(toolset) "initialization:"
- : version '$(version)' requested but
- '$(tool)-$(version)' not found and version
- '$(tool-version:J=.)' of default '$(command)'
- does not match
- : initialized from [ errors.nearest-user-location ]
- ;
- }
+ #import version ;
+ #if ! [ version.version-compatible [ SPLIT_BY_CHARACTERS $(version) : . ]
+ # : [ SPLIT_BY_CHARACTERS $(tool-version) : . ] ]
+ #{
+ # errors.error toolset $(toolset) "initialization:"
+ # : version '$(version)' requested but
+ # '$(tool)-$(version)' not found and version
+ # '$(tool-version:J=.)' of default '$(command)'
+ # does not match
+ # : initialized from [ errors.nearest-user-location ]
+ # ;
+ #}
} }
#3) default: no command and no version specified, try using "$(tool)"
else # From GCC 5, versioning changes and minor becomes patch
- if $(tag) = gcc && [ numbers.less 4 $(version[1]) ]
- {
- version = $(version[1]) ;
- }
+ #if $(tag) = gcc && [ numbers.less 4 $(version[1]) ]
+ #{
+ # version = $(version[1]) ;
+ #}
# Ditto, from Clang 4
- if ( $(tag) = clang || $(tag) = clangw ) && [ numbers.less 3 $(version[1]) ]
- {
- version = $(version[1]) ;
- }
+ #if ( $(tag) = clang || $(tag) = clangw ) && [ numbers.less 3 $(version[1]) ]
+ #{
+ # version = $(version[1]) ;
+ #}
# On intel, version is not added, because it does not matter and it is the
# version of vc used as backend that matters. Ideally, we should encode the

View File

@ -0,0 +1,11 @@
--- boostcpp.jam.old 2018-08-01 22:50:40.000000000 +0200
+++ boostcpp.jam 2018-10-07 01:48:30.175912524 +0200
@@ -154,7 +154,7 @@
# libFoo.1.2.3.dylib format. AIX linkers do not accept version suffixes
# either. Pgi compilers can not accept a library with version suffix.
if $(type) = SHARED_LIB &&
- ! [ $(property-set).get <target-os> ] in windows cygwin darwin aix &&
+ ! [ $(property-set).get <target-os> ] in windows cygwin darwin aix android &&
! [ $(property-set).get <toolset> ] in pgi
{
result = $(result).$(BOOST_VERSION) ;

View File

@ -3,146 +3,153 @@
# All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where
# you also find the URL of a binary repository. # you also find the URL of a binary repository.
_android_arch=armv7a-eabi _pkgname=boost
pkgname=android-${_android_arch}-boost _pkg_arch=armv7a-eabi
pkgver=1.84.0 _android_arch=armeabi-v7a
pkgrel=1 _android_toolchain=arm-linux-androideabi
_andoird_toolchain_dir=$_android_toolchain
_android_platform=24 # https://developer.android.com/about/dashboards/
_android_target=armv7a-linux-androideabi$_android_platform
_android_prefix=/opt/android-libs/$_pkg_arch
_android_ndk_path=/opt/android-ndk
_boost_arch=arm
_boost_address_model=32
pkgname=android-$_pkg_arch-$_pkgname
pkgver=1.76.0
_srcname=boost_${pkgver//./_} _srcname=boost_${pkgver//./_}
pkgrel=1
url='https://www.boost.org/'
arch=('any') arch=('any')
pkgdesc="Free peer-reviewed portable C++ source libraries (Android, ${_android_arch})"
url="https://www.boost.org/"
license=('custom') license=('custom')
depends=("android-${_android_arch}-bzip2" pkgdesc="Free peer-reviewed portable C++ source libraries (Android, $_pkg_arch)"
"android-${_android_arch}-icu" depends=("android-$_pkg_arch-libiconv")
"android-${_android_arch}-zlib" options=(!buildflags staticlibs !strip !emptydirs)
"android-${_android_arch}-zstd") makedepends=('bzip2' 'zlib' 'android-ndk' 'android-sdk')
makedepends=('android-environment') conflicts=("android-$_pkgname-$_android_arch")
if [[ $_android_arch == aarch64 ]] || [[ $_android_arch == x86-64 ]]; then replaces=("android-$_pkgname-$_android_arch")
makedepends+=("android-${_android_arch}-openmpi") source=(https://boostorg.jfrog.io/artifactory/main/release/$pkgver/source/$_srcname.tar.gz
optdepends+=("android-${_android_arch}-openmpi: for mpi support") $_pkgname-ublas-c++20-iterator.patch::https://github.com/boostorg/ublas/commit/a31e5cffa85f.patch
fi no-versioned-shlibs.patch)
options=(!strip !buildflags staticlibs !emptydirs) sha256sums=('7bd7ddceec1a1dfdcbdb3e609b60d01739c38390a5f956385a12f3122049f0ca'
source=("https://boostorg.jfrog.io/artifactory/main/release/$pkgver/source/$_srcname.tar.bz2" 'aa38addb40d5f44b4a8472029b475e7e6aef1c460509eb7d8edf03491dc1b5ee'
"boost-1.81.0-phoenix-multiple-definitions.patch" 'd82d0f15064812dcabb3456a7bcb1db0e0f6145980e4728e638372e0fd35af23')
"boost-ublas-c++20-iterator.patch::https://github.com/boostorg/ublas/commit/a31e5cffa85f.patch"
"disable-version-check.patch")
md5sums=('9dcd632441e4da04a461082ebbafd337'
'cb1c25777e9b85af62366e7c930244b8'
'326826bf610c63c23247e70e648ff104'
'6290eb4fa0cab451aac92e12e85ef073')
prepare() { prepare() {
cd "${srcdir}/$_srcname" cd ${_srcname}
source android-env ${_android_arch}
# https://github.com/boostorg/phoenix/issues/111
patch -Np1 -i ../boost-1.81.0-phoenix-multiple-definitions.patch
# https://github.com/boostorg/ublas/pull/97 # https://github.com/boostorg/ublas/pull/97
patch -Np2 -i ../boost-ublas-c++20-iterator.patch patch -Np2 -i ../$_pkgname-ublas-c++20-iterator.patch
patch -p1 -i ../disable-version-check.patch
patch -i ../no-versioned-shlibs.patch
} }
build() { build() {
cd "${srcdir}/$_srcname" local _stagedir="${srcdir}/stagedir"
source android-env ${_android_arch} local jobs="$(sed -e 's/.*\(-j *[0-9]\+\).*/\1/' <<< ${MAKEFLAGS})"
local target_flags=" \
--target=$_android_target"
local common_flags=" \
$target_flags \
-isystem $_android_ndk_path/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1 \
-isystem $_android_ndk_path/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include \
-isystem $_android_ndk_path/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/$_android_toolchain \
-fexceptions \
-no-canonical-prefixes \
-D__ANDROID_API__=$_android_platform \
-O3 \
-fPIC \
-DBOOST_ASIO_HAS_STD_STRING_VIEW=1"
local ld_flags=" \
$target_flags \
-fexceptions \
$_android_ndk_path/sources/cxx-stl/llvm-libc++/libs/$_android_arch/libc++_shared.so \
-nostdlib++"
# Platform specific patches cd ${_srcname}
case "$_android_arch" in
aarch64)
_boost_arch=arm
_boost_address_model=64
;;
armv7a-eabi)
_boost_arch=arm
_boost_address_model=32
;;
x86)
_boost_arch=x86
_boost_address_model=32
;;
x86-64)
_boost_arch=x86
_boost_address_model=64
;;
*)
;;
esac
./bootstrap.sh -with-toolset=gcc ./bootstrap.sh --with-toolset=gcc
# support for OpenMPI install -Dm755 tools/build/src/engine/b2 "${_stagedir}"/bin/b2
if [[ _boost_address_model == 64 ]]; then
_boost_mpi='using mpi ;'
else
_boost_mpi=''
fi
userConfigs=$srcdir/$_srcname/user-config.jam # Support for OpenMPI
echo "using mpi ;" >> project-config.jam
cat << EOF > "${userConfigs}" # boostbook is needed by quickbook
${_boost_mpi} install -dm755 "${_stagedir}"/share/boostbook
using clang : android : ${ANDROID_CXX} : cp -a tools/boostbook/{xsl,dtd} "${_stagedir}"/share/boostbook/
<archiver>${ANDROID_AR} \
<assembler>${ANDROID_AS}
;
EOF
./b2 install \ export PATH=$_android_ndk_path/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
--prefix="$srcdir/fakeinstall" \
--user-config="${userConfigs}" \ # default "minimal" install: "release link=shared,static
--layout=system \ # runtime-link=shared threading=single,multi"
--with-atomic \ # --layout=tagged will add the "-mt" suffix for multithreaded libraries
--with-chrono \ # and installs includes in $_android_prefix/include/boost.
--with-container \ # --layout=system no longer adds the -mt suffix for multi-threaded libs.
--with-date_time \ # install to ${_stagedir} for consistency with regular boost package
--with-exception \ "${_stagedir}"/bin/b2 \
--with-fiber \ --with-atomic \
--with-filesystem \ --with-chrono \
--with-graph \ --with-container \
--with-graph_parallel \ --with-date_time \
--with-iostreams \ --with-exception \
--with-locale \ --with-fiber \
--with-log \ --with-filesystem \
--with-math \ --with-graph \
--with-mpi \ --with-graph_parallel \
--with-program_options \ --with-iostreams \
--with-random \ --with-locale \
--with-regex \ --with-log \
--with-serialization \ --with-math \
--with-system \ --with-mpi \
--with-test \ --with-program_options \
--with-thread \ --with-random \
--with-timer \ --with-regex \
--with-type_erasure \ --with-serialization \
--with-wave \ --with-system \
--with-stacktrace \ --with-test \
-sICONV_PATH="${ANDROID_PREFIX}" \ --with-thread \
variant=release \ --with-timer \
debug-symbols=off \ --with-type_erasure \
runtime-link=shared \ --with-wave \
link=shared,static \ --with-stacktrace \
target-os=android \ variant=release \
toolset=clang-android \ debug-symbols=off \
architecture=$_boost_arch \ threading=multi \
threading=multi \ runtime-link=shared \
address-model=$_boost_address_model \ link=shared,static \
cflags="${CXXFLAGS}" \ target-os=android \
cxxflags="${CFLAGS}" \ toolset=clang-android \
linkflags="${LDFLAGS}" architecture=$_boost_arch \
address-model=$_boost_address_model \
-sICONV_PATH="/opt/android-libs/$_pkg_arch" \
cflags="$common_flags" \
cxxflags="$common_flags -frtti -std=c++14" \
linkflags="$ld_flags" \
--layout=system \
${jobs} \
\
--prefix="${_stagedir}" \
install
} }
package() { package() {
cd "${srcdir}/$_srcname" local _stagedir="${srcdir}/stagedir"
source android-env ${_android_arch} install -dm755 "${pkgdir}"$_android_prefix
cp -a "${_stagedir}"/{include,share} "${pkgdir}"$_android_prefix
find "${srcdir}/fakeinstall"/lib -iname '*.a' -exec $ANDROID_STRIP -g {} \; local libdir="${pkgdir}"$_android_prefix/lib
find "${srcdir}/fakeinstall"/lib -iname '*.so' -exec $ANDROID_STRIP --strip-unneeded {} \; install -d "${libdir}"
cp -a "${_stagedir}"/lib/*.a "${libdir}"/
install -dm755 "$pkgdir/${ANDROID_PREFIX_LIB}/" install -dm755 "${pkgdir}"$_android_prefix
cp -a "${srcdir}/fakeinstall"/lib/*.{a,so} "$pkgdir/${ANDROID_PREFIX_LIB}/" cp -a "${_stagedir}"/lib "${pkgdir}"$_android_prefix
cp -a "${srcdir}/fakeinstall"/lib/cmake "$pkgdir/${ANDROID_PREFIX_LIB}/"
cp -a "${srcdir}/fakeinstall"/include "$pkgdir/${ANDROID_PREFIX}/"
install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname" LICENSE_1_0.txt install -Dm644 "${srcdir}/"${_srcname}/LICENSE_1_0.txt \
"${pkgdir}"$_android_prefix/share/licenses/boost/LICENSE_1_0.txt
local strip=$_android_ndk_path/toolchains/$_android_toolchain-4.9/prebuilt/linux-x86_64/bin/$_android_toolchain-strip
find "${libdir}" -iname '*.a' -exec $strip -g {} \;
find "${libdir}" -iname '*.so' -exec $strip --strip-unneeded {} \;
} }
# vim: ts=2 sw=2 et:

View File

@ -1,11 +0,0 @@
https://bugs.gentoo.org/887041
https://github.com/boostorg/phoenix/issues/111
--- a/boost/phoenix/stl.hpp
+++ b/boost/phoenix/stl.hpp
@@ -11,6 +11,5 @@
#include <boost/phoenix/stl/algorithm.hpp>
#include <boost/phoenix/stl/container.hpp>
-#include <boost/phoenix/stl/tuple.hpp>
#endif

View File

@ -1,59 +0,0 @@
From a31e5cffa85f58b64a39fa7c4a1bd3bd9228b069 Mon Sep 17 00:00:00 2001
From: Conrad Poelman <cpgithub@stellarscience.com>
Date: Tue, 4 Aug 2020 17:20:40 -0400
Subject: [PATCH] Remove deprecated inheritance from std::iterator (#97)
std::iterator was deprecated in C++17 and removed in C++20. I replaced the inheritance with the 5 equivalent typedefs, even though they're not all used by ublas, for compatibility in case clients depend on them.
---
.../boost/numeric/ublas/detail/iterator.hpp | 24 ++++++++++++++-----
1 file changed, 18 insertions(+), 6 deletions(-)
diff --git a/include/boost/numeric/ublas/detail/iterator.hpp b/include/boost/numeric/ublas/detail/iterator.hpp
index 1723a301c..7aebf2f9f 100644
--- a/include/boost/numeric/ublas/detail/iterator.hpp
+++ b/include/boost/numeric/ublas/detail/iterator.hpp
@@ -107,8 +107,12 @@ namespace boost { namespace numeric { namespace ublas {
* via the post increment operator.
*/
template<class IC, class I, class T>
- struct forward_iterator_base:
- public std::iterator<IC, T> {
+ struct forward_iterator_base {
+ typedef IC iterator_category;
+ typedef T value_type;
+ typedef std::ptrdiff_t difference_type;
+ typedef T* pointer;
+ typedef T& reference;
typedef I derived_iterator_type;
typedef T derived_value_type;
@@ -145,8 +149,12 @@ namespace boost { namespace numeric { namespace ublas {
* via the post increment and post decrement operator.
*/
template<class IC, class I, class T>
- struct bidirectional_iterator_base:
- public std::iterator<IC, T> {
+ struct bidirectional_iterator_base {
+ typedef IC iterator_category;
+ typedef T value_type;
+ typedef std::ptrdiff_t difference_type;
+ typedef T* pointer;
+ typedef T& reference;
typedef I derived_iterator_type;
typedef T derived_value_type;
@@ -200,8 +208,12 @@ namespace boost { namespace numeric { namespace ublas {
*/
template<class IC, class I, class T, class D = std::ptrdiff_t>
// ISSUE the default for D seems rather dangerous as it can easily be (silently) incorrect
- struct random_access_iterator_base:
- public std::iterator<IC, T> {
+ struct random_access_iterator_base {
+ typedef IC iterator_category;
+ typedef T value_type;
+ typedef D difference_type;
+ typedef T* pointer;
+ typedef T& reference;
typedef I derived_iterator_type;
typedef T derived_value_type;
typedef D derived_difference_type;

View File

@ -1,33 +1,27 @@
--- a/tools/build/src/tools/common.jam 2023-02-03 10:57:59.385098144 +0100 --- a/tools/build/src/tools/common.jam 2019-09-18 16:03:02.035995695 +0200
+++ b/tools/build/src/tools/common.jam 2023-02-03 11:00:34.982146918 +0100 +++ b/tools/build/src/tools/common.jam 2019-09-18 16:03:36.386156355 +0200
@@ -1127,18 +1127,18 @@ @@ -974,16 +974,16 @@
import $(toolset) ;
local tool-version = [ $(toolset).get-full-version $(command) ] ;
- import version ;
- if ! [ version.version-compatible [ SPLIT_BY_CHARACTERS $(version) : . ]
- : [ SPLIT_BY_CHARACTERS $(tool-version) : . ] ]
- {
- errors.error toolset $(toolset) "initialization:"
- : version '$(version)' requested but
- '$(tool)-$(version)' not found and version
- '$(tool-version:J=.)' of default '$(command)'
- does not match
- : initialized from [ errors.nearest-user-location ]
- ;
- }
+ #import version ;
+ #if ! [ version.version-compatible [ SPLIT_BY_CHARACTERS $(version) : . ]
+ # : [ SPLIT_BY_CHARACTERS $(tool-version) : . ] ]
+ #{
+ # errors.error toolset $(toolset) "initialization:"
+ # : version '$(version)' requested but
+ # '$(tool)-$(version)' not found and version
+ # '$(tool-version:J=.)' of default '$(command)'
+ # does not match
+ # : initialized from [ errors.nearest-user-location ]
+ # ;
+ #}
} }
#3) default: no command and no version specified, try using "$(tool)"
else # From GCC 5, versioning changes and minor becomes patch
- if $(tag) = gcc && [ numbers.less 4 $(version[1]) ]
- {
- version = $(version[1]) ;
- }
+ #if $(tag) = gcc && [ numbers.less 4 $(version[1]) ]
+ #{
+ # version = $(version[1]) ;
+ #}
# Ditto, from Clang 4
- if ( $(tag) = clang || $(tag) = clangw ) && [ numbers.less 3 $(version[1]) ]
- {
- version = $(version[1]) ;
- }
+ #if ( $(tag) = clang || $(tag) = clangw ) && [ numbers.less 3 $(version[1]) ]
+ #{
+ # version = $(version[1]) ;
+ #}
# On intel, version is not added, because it does not matter and it is the
# version of vc used as backend that matters. Ideally, we should encode the

View File

@ -0,0 +1,11 @@
--- boostcpp.jam.old 2018-08-01 22:50:40.000000000 +0200
+++ boostcpp.jam 2018-10-07 01:48:30.175912524 +0200
@@ -154,7 +154,7 @@
# libFoo.1.2.3.dylib format. AIX linkers do not accept version suffixes
# either. Pgi compilers can not accept a library with version suffix.
if $(type) = SHARED_LIB &&
- ! [ $(property-set).get <target-os> ] in windows cygwin darwin aix &&
+ ! [ $(property-set).get <target-os> ] in windows cygwin darwin aix android &&
! [ $(property-set).get <toolset> ] in pgi
{
result = $(result).$(BOOST_VERSION) ;

View File

@ -3,146 +3,153 @@
# All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where
# you also find the URL of a binary repository. # you also find the URL of a binary repository.
_android_arch=x86-64 _pkgname=boost
pkgname=android-${_android_arch}-boost _pkg_arch=x86-64
pkgver=1.84.0 _android_arch=x86_64
pkgrel=1 _android_toolchain=x86_64-linux-android$_android_platform
_andoird_toolchain_dir=$_android_arch
_android_platform=24 # https://developer.android.com/about/dashboards/
_android_target=$_android_toolchain
_android_prefix=/opt/android-libs/$_pkg_arch
_android_ndk_path=/opt/android-ndk
_boost_arch=x86
_boost_address_model=64
pkgname=android-$_pkg_arch-$_pkgname
pkgver=1.76.0
_srcname=boost_${pkgver//./_} _srcname=boost_${pkgver//./_}
pkgrel=1
url='https://www.boost.org/'
arch=('any') arch=('any')
pkgdesc="Free peer-reviewed portable C++ source libraries (Android, ${_android_arch})"
url="https://www.boost.org/"
license=('custom') license=('custom')
depends=("android-${_android_arch}-bzip2" pkgdesc="Free peer-reviewed portable C++ source libraries (Android, $_pkg_arch)"
"android-${_android_arch}-icu" depends=("android-$_pkg_arch-libiconv")
"android-${_android_arch}-zlib" options=(!buildflags staticlibs !strip !emptydirs)
"android-${_android_arch}-zstd") makedepends=('bzip2' 'zlib' 'android-ndk' 'android-sdk')
makedepends=('android-environment') conflicts=("android-$_pkgname-$_android_arch")
if [[ $_android_arch == aarch64 ]] || [[ $_android_arch == x86-64 ]]; then replaces=("android-$_pkgname-$_android_arch")
makedepends+=("android-${_android_arch}-openmpi") source=(https://boostorg.jfrog.io/artifactory/main/release/$pkgver/source/$_srcname.tar.gz
optdepends+=("android-${_android_arch}-openmpi: for mpi support") $_pkgname-ublas-c++20-iterator.patch::https://github.com/boostorg/ublas/commit/a31e5cffa85f.patch
fi no-versioned-shlibs.patch)
options=(!strip !buildflags staticlibs !emptydirs) sha256sums=('7bd7ddceec1a1dfdcbdb3e609b60d01739c38390a5f956385a12f3122049f0ca'
source=("https://boostorg.jfrog.io/artifactory/main/release/$pkgver/source/$_srcname.tar.bz2" 'aa38addb40d5f44b4a8472029b475e7e6aef1c460509eb7d8edf03491dc1b5ee'
"boost-1.81.0-phoenix-multiple-definitions.patch" 'd82d0f15064812dcabb3456a7bcb1db0e0f6145980e4728e638372e0fd35af23')
"boost-ublas-c++20-iterator.patch::https://github.com/boostorg/ublas/commit/a31e5cffa85f.patch"
"disable-version-check.patch")
md5sums=('9dcd632441e4da04a461082ebbafd337'
'cb1c25777e9b85af62366e7c930244b8'
'326826bf610c63c23247e70e648ff104'
'6290eb4fa0cab451aac92e12e85ef073')
prepare() { prepare() {
cd "${srcdir}/$_srcname" cd ${_srcname}
source android-env ${_android_arch}
# https://github.com/boostorg/phoenix/issues/111
patch -Np1 -i ../boost-1.81.0-phoenix-multiple-definitions.patch
# https://github.com/boostorg/ublas/pull/97 # https://github.com/boostorg/ublas/pull/97
patch -Np2 -i ../boost-ublas-c++20-iterator.patch patch -Np2 -i ../$_pkgname-ublas-c++20-iterator.patch
patch -p1 -i ../disable-version-check.patch
patch -i ../no-versioned-shlibs.patch
} }
build() { build() {
cd "${srcdir}/$_srcname" local _stagedir="${srcdir}/stagedir"
source android-env ${_android_arch} local jobs="$(sed -e 's/.*\(-j *[0-9]\+\).*/\1/' <<< ${MAKEFLAGS})"
local target_flags=" \
--target=$_android_target"
local common_flags=" \
$target_flags \
-isystem $_android_ndk_path/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1 \
-isystem $_android_ndk_path/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include \
-isystem $_android_ndk_path/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/$_android_toolchain \
-fexceptions \
-no-canonical-prefixes \
-D__ANDROID_API__=$_android_platform \
-O3 \
-fPIC \
-DBOOST_ASIO_HAS_STD_STRING_VIEW=1"
local ld_flags=" \
$target_flags \
-fexceptions \
$_android_ndk_path/sources/cxx-stl/llvm-libc++/libs/$_android_arch/libc++_shared.so \
-nostdlib++"
# Platform specific patches cd ${_srcname}
case "$_android_arch" in
aarch64)
_boost_arch=arm
_boost_address_model=64
;;
armv7a-eabi)
_boost_arch=arm
_boost_address_model=32
;;
x86)
_boost_arch=x86
_boost_address_model=32
;;
x86-64)
_boost_arch=x86
_boost_address_model=64
;;
*)
;;
esac
./bootstrap.sh -with-toolset=gcc ./bootstrap.sh --with-toolset=gcc
# support for OpenMPI install -Dm755 tools/build/src/engine/b2 "${_stagedir}"/bin/b2
if [[ _boost_address_model == 64 ]]; then
_boost_mpi='using mpi ;'
else
_boost_mpi=''
fi
userConfigs=$srcdir/$_srcname/user-config.jam # Support for OpenMPI
echo "using mpi ;" >> project-config.jam
cat << EOF > "${userConfigs}" # boostbook is needed by quickbook
${_boost_mpi} install -dm755 "${_stagedir}"/share/boostbook
using clang : android : ${ANDROID_CXX} : cp -a tools/boostbook/{xsl,dtd} "${_stagedir}"/share/boostbook/
<archiver>${ANDROID_AR} \
<assembler>${ANDROID_AS}
;
EOF
./b2 install \ export PATH=$_android_ndk_path/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
--prefix="$srcdir/fakeinstall" \
--user-config="${userConfigs}" \ # default "minimal" install: "release link=shared,static
--layout=system \ # runtime-link=shared threading=single,multi"
--with-atomic \ # --layout=tagged will add the "-mt" suffix for multithreaded libraries
--with-chrono \ # and installs includes in $_android_prefix/include/boost.
--with-container \ # --layout=system no longer adds the -mt suffix for multi-threaded libs.
--with-date_time \ # install to ${_stagedir} for consistency with regular boost package
--with-exception \ "${_stagedir}"/bin/b2 \
--with-fiber \ --with-atomic \
--with-filesystem \ --with-chrono \
--with-graph \ --with-container \
--with-graph_parallel \ --with-date_time \
--with-iostreams \ --with-exception \
--with-locale \ --with-fiber \
--with-log \ --with-filesystem \
--with-math \ --with-graph \
--with-mpi \ --with-graph_parallel \
--with-program_options \ --with-iostreams \
--with-random \ --with-locale \
--with-regex \ --with-log \
--with-serialization \ --with-math \
--with-system \ --with-mpi \
--with-test \ --with-program_options \
--with-thread \ --with-random \
--with-timer \ --with-regex \
--with-type_erasure \ --with-serialization \
--with-wave \ --with-system \
--with-stacktrace \ --with-test \
-sICONV_PATH="${ANDROID_PREFIX}" \ --with-thread \
variant=release \ --with-timer \
debug-symbols=off \ --with-type_erasure \
runtime-link=shared \ --with-wave \
link=shared,static \ --with-stacktrace \
target-os=android \ variant=release \
toolset=clang-android \ debug-symbols=off \
architecture=$_boost_arch \ threading=multi \
threading=multi \ runtime-link=shared \
address-model=$_boost_address_model \ link=shared,static \
cflags="${CXXFLAGS}" \ target-os=android \
cxxflags="${CFLAGS}" \ toolset=clang-android \
linkflags="${LDFLAGS}" architecture=$_boost_arch \
address-model=$_boost_address_model \
-sICONV_PATH="/opt/android-libs/$_pkg_arch" \
cflags="$common_flags" \
cxxflags="$common_flags -frtti -std=c++14" \
linkflags="$ld_flags" \
--layout=system \
${jobs} \
\
--prefix="${_stagedir}" \
install
} }
package() { package() {
cd "${srcdir}/$_srcname" local _stagedir="${srcdir}/stagedir"
source android-env ${_android_arch} install -dm755 "${pkgdir}"$_android_prefix
cp -a "${_stagedir}"/{include,share} "${pkgdir}"$_android_prefix
find "${srcdir}/fakeinstall"/lib -iname '*.a' -exec $ANDROID_STRIP -g {} \; local libdir="${pkgdir}"$_android_prefix/lib
find "${srcdir}/fakeinstall"/lib -iname '*.so' -exec $ANDROID_STRIP --strip-unneeded {} \; install -d "${libdir}"
cp -a "${_stagedir}"/lib/*.a "${libdir}"/
install -dm755 "$pkgdir/${ANDROID_PREFIX_LIB}/" install -dm755 "${pkgdir}"$_android_prefix
cp -a "${srcdir}/fakeinstall"/lib/*.{a,so} "$pkgdir/${ANDROID_PREFIX_LIB}/" cp -a "${_stagedir}"/lib "${pkgdir}"$_android_prefix
cp -a "${srcdir}/fakeinstall"/lib/cmake "$pkgdir/${ANDROID_PREFIX_LIB}/"
cp -a "${srcdir}/fakeinstall"/include "$pkgdir/${ANDROID_PREFIX}/"
install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname" LICENSE_1_0.txt install -Dm644 "${srcdir}/"${_srcname}/LICENSE_1_0.txt \
"${pkgdir}"$_android_prefix/share/licenses/boost/LICENSE_1_0.txt
local strip=$_android_ndk_path/toolchains/$_android_toolchain-4.9/prebuilt/linux-x86_64/bin/$_android_toolchain-strip
find "${libdir}" -iname '*.a' -exec $strip -g {} \;
find "${libdir}" -iname '*.so' -exec $strip --strip-unneeded {} \;
} }
# vim: ts=2 sw=2 et:

View File

@ -1,11 +0,0 @@
https://bugs.gentoo.org/887041
https://github.com/boostorg/phoenix/issues/111
--- a/boost/phoenix/stl.hpp
+++ b/boost/phoenix/stl.hpp
@@ -11,6 +11,5 @@
#include <boost/phoenix/stl/algorithm.hpp>
#include <boost/phoenix/stl/container.hpp>
-#include <boost/phoenix/stl/tuple.hpp>
#endif

View File

@ -1,59 +0,0 @@
From a31e5cffa85f58b64a39fa7c4a1bd3bd9228b069 Mon Sep 17 00:00:00 2001
From: Conrad Poelman <cpgithub@stellarscience.com>
Date: Tue, 4 Aug 2020 17:20:40 -0400
Subject: [PATCH] Remove deprecated inheritance from std::iterator (#97)
std::iterator was deprecated in C++17 and removed in C++20. I replaced the inheritance with the 5 equivalent typedefs, even though they're not all used by ublas, for compatibility in case clients depend on them.
---
.../boost/numeric/ublas/detail/iterator.hpp | 24 ++++++++++++++-----
1 file changed, 18 insertions(+), 6 deletions(-)
diff --git a/include/boost/numeric/ublas/detail/iterator.hpp b/include/boost/numeric/ublas/detail/iterator.hpp
index 1723a301c..7aebf2f9f 100644
--- a/include/boost/numeric/ublas/detail/iterator.hpp
+++ b/include/boost/numeric/ublas/detail/iterator.hpp
@@ -107,8 +107,12 @@ namespace boost { namespace numeric { namespace ublas {
* via the post increment operator.
*/
template<class IC, class I, class T>
- struct forward_iterator_base:
- public std::iterator<IC, T> {
+ struct forward_iterator_base {
+ typedef IC iterator_category;
+ typedef T value_type;
+ typedef std::ptrdiff_t difference_type;
+ typedef T* pointer;
+ typedef T& reference;
typedef I derived_iterator_type;
typedef T derived_value_type;
@@ -145,8 +149,12 @@ namespace boost { namespace numeric { namespace ublas {
* via the post increment and post decrement operator.
*/
template<class IC, class I, class T>
- struct bidirectional_iterator_base:
- public std::iterator<IC, T> {
+ struct bidirectional_iterator_base {
+ typedef IC iterator_category;
+ typedef T value_type;
+ typedef std::ptrdiff_t difference_type;
+ typedef T* pointer;
+ typedef T& reference;
typedef I derived_iterator_type;
typedef T derived_value_type;
@@ -200,8 +208,12 @@ namespace boost { namespace numeric { namespace ublas {
*/
template<class IC, class I, class T, class D = std::ptrdiff_t>
// ISSUE the default for D seems rather dangerous as it can easily be (silently) incorrect
- struct random_access_iterator_base:
- public std::iterator<IC, T> {
+ struct random_access_iterator_base {
+ typedef IC iterator_category;
+ typedef T value_type;
+ typedef D difference_type;
+ typedef T* pointer;
+ typedef T& reference;
typedef I derived_iterator_type;
typedef T derived_value_type;
typedef D derived_difference_type;

View File

@ -1,33 +1,27 @@
--- a/tools/build/src/tools/common.jam 2023-02-03 10:57:59.385098144 +0100 --- a/tools/build/src/tools/common.jam 2019-09-18 16:03:02.035995695 +0200
+++ b/tools/build/src/tools/common.jam 2023-02-03 11:00:34.982146918 +0100 +++ b/tools/build/src/tools/common.jam 2019-09-18 16:03:36.386156355 +0200
@@ -1127,18 +1127,18 @@ @@ -974,16 +974,16 @@
import $(toolset) ;
local tool-version = [ $(toolset).get-full-version $(command) ] ;
- import version ;
- if ! [ version.version-compatible [ SPLIT_BY_CHARACTERS $(version) : . ]
- : [ SPLIT_BY_CHARACTERS $(tool-version) : . ] ]
- {
- errors.error toolset $(toolset) "initialization:"
- : version '$(version)' requested but
- '$(tool)-$(version)' not found and version
- '$(tool-version:J=.)' of default '$(command)'
- does not match
- : initialized from [ errors.nearest-user-location ]
- ;
- }
+ #import version ;
+ #if ! [ version.version-compatible [ SPLIT_BY_CHARACTERS $(version) : . ]
+ # : [ SPLIT_BY_CHARACTERS $(tool-version) : . ] ]
+ #{
+ # errors.error toolset $(toolset) "initialization:"
+ # : version '$(version)' requested but
+ # '$(tool)-$(version)' not found and version
+ # '$(tool-version:J=.)' of default '$(command)'
+ # does not match
+ # : initialized from [ errors.nearest-user-location ]
+ # ;
+ #}
} }
#3) default: no command and no version specified, try using "$(tool)"
else # From GCC 5, versioning changes and minor becomes patch
- if $(tag) = gcc && [ numbers.less 4 $(version[1]) ]
- {
- version = $(version[1]) ;
- }
+ #if $(tag) = gcc && [ numbers.less 4 $(version[1]) ]
+ #{
+ # version = $(version[1]) ;
+ #}
# Ditto, from Clang 4
- if ( $(tag) = clang || $(tag) = clangw ) && [ numbers.less 3 $(version[1]) ]
- {
- version = $(version[1]) ;
- }
+ #if ( $(tag) = clang || $(tag) = clangw ) && [ numbers.less 3 $(version[1]) ]
+ #{
+ # version = $(version[1]) ;
+ #}
# On intel, version is not added, because it does not matter and it is the
# version of vc used as backend that matters. Ideally, we should encode the

View File

@ -0,0 +1,11 @@
--- boostcpp.jam.old 2018-08-01 22:50:40.000000000 +0200
+++ boostcpp.jam 2018-10-07 01:48:30.175912524 +0200
@@ -154,7 +154,7 @@
# libFoo.1.2.3.dylib format. AIX linkers do not accept version suffixes
# either. Pgi compilers can not accept a library with version suffix.
if $(type) = SHARED_LIB &&
- ! [ $(property-set).get <target-os> ] in windows cygwin darwin aix &&
+ ! [ $(property-set).get <target-os> ] in windows cygwin darwin aix android &&
! [ $(property-set).get <toolset> ] in pgi
{
result = $(result).$(BOOST_VERSION) ;

View File

@ -3,146 +3,153 @@
# All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where # All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where
# you also find the URL of a binary repository. # you also find the URL of a binary repository.
_pkgname=boost
_pkg_arch=x86
_android_arch=x86 _android_arch=x86
pkgname=android-${_android_arch}-boost _android_toolchain=i686-linux-android$_android_platform
pkgver=1.84.0 _andoird_toolchain_dir=$_android_arch
pkgrel=1 _android_platform=24 # https://developer.android.com/about/dashboards/
_android_target=$_android_toolchain
_android_prefix=/opt/android-libs/$_pkg_arch
_android_ndk_path=/opt/android-ndk
_boost_arch=x86
_boost_address_model=32
pkgname=android-$_pkg_arch-$_pkgname
pkgver=1.76.0
_srcname=boost_${pkgver//./_} _srcname=boost_${pkgver//./_}
pkgrel=1
url='https://www.boost.org/'
arch=('any') arch=('any')
pkgdesc="Free peer-reviewed portable C++ source libraries (Android, ${_android_arch})"
url="https://www.boost.org/"
license=('custom') license=('custom')
depends=("android-${_android_arch}-bzip2" pkgdesc="Free peer-reviewed portable C++ source libraries (Android, $_pkg_arch)"
"android-${_android_arch}-icu" depends=("android-$_pkg_arch-libiconv")
"android-${_android_arch}-zlib" options=(!buildflags staticlibs !strip !emptydirs)
"android-${_android_arch}-zstd") makedepends=('bzip2' 'zlib' 'android-ndk' 'android-sdk')
makedepends=('android-environment') conflicts=("android-$_pkgname-$_android_arch")
if [[ $_android_arch == aarch64 ]] || [[ $_android_arch == x86-64 ]]; then replaces=("android-$_pkgname-$_android_arch")
makedepends+=("android-${_android_arch}-openmpi") source=(https://boostorg.jfrog.io/artifactory/main/release/$pkgver/source/$_srcname.tar.gz
optdepends+=("android-${_android_arch}-openmpi: for mpi support") $_pkgname-ublas-c++20-iterator.patch::https://github.com/boostorg/ublas/commit/a31e5cffa85f.patch
fi no-versioned-shlibs.patch)
options=(!strip !buildflags staticlibs !emptydirs) sha256sums=('7bd7ddceec1a1dfdcbdb3e609b60d01739c38390a5f956385a12f3122049f0ca'
source=("https://boostorg.jfrog.io/artifactory/main/release/$pkgver/source/$_srcname.tar.bz2" 'aa38addb40d5f44b4a8472029b475e7e6aef1c460509eb7d8edf03491dc1b5ee'
"boost-1.81.0-phoenix-multiple-definitions.patch" 'd82d0f15064812dcabb3456a7bcb1db0e0f6145980e4728e638372e0fd35af23')
"boost-ublas-c++20-iterator.patch::https://github.com/boostorg/ublas/commit/a31e5cffa85f.patch"
"disable-version-check.patch")
md5sums=('9dcd632441e4da04a461082ebbafd337'
'cb1c25777e9b85af62366e7c930244b8'
'326826bf610c63c23247e70e648ff104'
'6290eb4fa0cab451aac92e12e85ef073')
prepare() { prepare() {
cd "${srcdir}/$_srcname" cd ${_srcname}
source android-env ${_android_arch}
# https://github.com/boostorg/phoenix/issues/111
patch -Np1 -i ../boost-1.81.0-phoenix-multiple-definitions.patch
# https://github.com/boostorg/ublas/pull/97 # https://github.com/boostorg/ublas/pull/97
patch -Np2 -i ../boost-ublas-c++20-iterator.patch patch -Np2 -i ../$_pkgname-ublas-c++20-iterator.patch
patch -p1 -i ../disable-version-check.patch
patch -i ../no-versioned-shlibs.patch
} }
build() { build() {
cd "${srcdir}/$_srcname" local _stagedir="${srcdir}/stagedir"
source android-env ${_android_arch} local jobs="$(sed -e 's/.*\(-j *[0-9]\+\).*/\1/' <<< ${MAKEFLAGS})"
local target_flags=" \
--target=$_android_target"
local common_flags=" \
$target_flags \
-isystem $_android_ndk_path/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1 \
-isystem $_android_ndk_path/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include \
-isystem $_android_ndk_path/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/$_android_toolchain \
-fexceptions \
-no-canonical-prefixes \
-D__ANDROID_API__=$_android_platform \
-O3 \
-fPIC \
-DBOOST_ASIO_HAS_STD_STRING_VIEW=1"
local ld_flags=" \
$target_flags \
-fexceptions \
$_android_ndk_path/sources/cxx-stl/llvm-libc++/libs/$_android_arch/libc++_shared.so \
-nostdlib++"
# Platform specific patches cd ${_srcname}
case "$_android_arch" in
aarch64)
_boost_arch=arm
_boost_address_model=64
;;
armv7a-eabi)
_boost_arch=arm
_boost_address_model=32
;;
x86)
_boost_arch=x86
_boost_address_model=32
;;
x86-64)
_boost_arch=x86
_boost_address_model=64
;;
*)
;;
esac
./bootstrap.sh -with-toolset=gcc ./bootstrap.sh --with-toolset=gcc
# support for OpenMPI install -Dm755 tools/build/src/engine/b2 "${_stagedir}"/bin/b2
if [[ _boost_address_model == 64 ]]; then
_boost_mpi='using mpi ;'
else
_boost_mpi=''
fi
userConfigs=$srcdir/$_srcname/user-config.jam # Support for OpenMPI
echo "using mpi ;" >> project-config.jam
cat << EOF > "${userConfigs}" # boostbook is needed by quickbook
${_boost_mpi} install -dm755 "${_stagedir}"/share/boostbook
using clang : android : ${ANDROID_CXX} : cp -a tools/boostbook/{xsl,dtd} "${_stagedir}"/share/boostbook/
<archiver>${ANDROID_AR} \
<assembler>${ANDROID_AS}
;
EOF
./b2 install \ export PATH=$_android_ndk_path/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
--prefix="$srcdir/fakeinstall" \
--user-config="${userConfigs}" \ # default "minimal" install: "release link=shared,static
--layout=system \ # runtime-link=shared threading=single,multi"
--with-atomic \ # --layout=tagged will add the "-mt" suffix for multithreaded libraries
--with-chrono \ # and installs includes in $_android_prefix/include/boost.
--with-container \ # --layout=system no longer adds the -mt suffix for multi-threaded libs.
--with-date_time \ # install to ${_stagedir} for consistency with regular boost package
--with-exception \ "${_stagedir}"/bin/b2 \
--with-fiber \ --with-atomic \
--with-filesystem \ --with-chrono \
--with-graph \ --with-container \
--with-graph_parallel \ --with-date_time \
--with-iostreams \ --with-exception \
--with-locale \ --with-fiber \
--with-log \ --with-filesystem \
--with-math \ --with-graph \
--with-mpi \ --with-graph_parallel \
--with-program_options \ --with-iostreams \
--with-random \ --with-locale \
--with-regex \ --with-log \
--with-serialization \ --with-math \
--with-system \ --with-mpi \
--with-test \ --with-program_options \
--with-thread \ --with-random \
--with-timer \ --with-regex \
--with-type_erasure \ --with-serialization \
--with-wave \ --with-system \
--with-stacktrace \ --with-test \
-sICONV_PATH="${ANDROID_PREFIX}" \ --with-thread \
variant=release \ --with-timer \
debug-symbols=off \ --with-type_erasure \
runtime-link=shared \ --with-wave \
link=shared,static \ --with-stacktrace \
target-os=android \ variant=release \
toolset=clang-android \ debug-symbols=off \
architecture=$_boost_arch \ threading=multi \
threading=multi \ runtime-link=shared \
address-model=$_boost_address_model \ link=shared,static \
cflags="${CXXFLAGS}" \ target-os=android \
cxxflags="${CFLAGS}" \ toolset=clang-android \
linkflags="${LDFLAGS}" architecture=$_boost_arch \
address-model=$_boost_address_model \
-sICONV_PATH="/opt/android-libs/$_pkg_arch" \
cflags="$common_flags" \
cxxflags="$common_flags -frtti -std=c++14" \
linkflags="$ld_flags" \
--layout=system \
${jobs} \
\
--prefix="${_stagedir}" \
install
} }
package() { package() {
cd "${srcdir}/$_srcname" local _stagedir="${srcdir}/stagedir"
source android-env ${_android_arch} install -dm755 "${pkgdir}"$_android_prefix
cp -a "${_stagedir}"/{include,share} "${pkgdir}"$_android_prefix
find "${srcdir}/fakeinstall"/lib -iname '*.a' -exec $ANDROID_STRIP -g {} \; local libdir="${pkgdir}"$_android_prefix/lib
find "${srcdir}/fakeinstall"/lib -iname '*.so' -exec $ANDROID_STRIP --strip-unneeded {} \; install -d "${libdir}"
cp -a "${_stagedir}"/lib/*.a "${libdir}"/
install -dm755 "$pkgdir/${ANDROID_PREFIX_LIB}/" install -dm755 "${pkgdir}"$_android_prefix
cp -a "${srcdir}/fakeinstall"/lib/*.{a,so} "$pkgdir/${ANDROID_PREFIX_LIB}/" cp -a "${_stagedir}"/lib "${pkgdir}"$_android_prefix
cp -a "${srcdir}/fakeinstall"/lib/cmake "$pkgdir/${ANDROID_PREFIX_LIB}/"
cp -a "${srcdir}/fakeinstall"/include "$pkgdir/${ANDROID_PREFIX}/"
install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname" LICENSE_1_0.txt install -Dm644 "${srcdir}/"${_srcname}/LICENSE_1_0.txt \
"${pkgdir}"$_android_prefix/share/licenses/boost/LICENSE_1_0.txt
local strip=$_android_ndk_path/toolchains/$_android_toolchain-4.9/prebuilt/linux-x86_64/bin/$_android_toolchain-strip
find "${libdir}" -iname '*.a' -exec $strip -g {} \;
find "${libdir}" -iname '*.so' -exec $strip --strip-unneeded {} \;
} }
# vim: ts=2 sw=2 et:

View File

@ -1,11 +0,0 @@
https://bugs.gentoo.org/887041
https://github.com/boostorg/phoenix/issues/111
--- a/boost/phoenix/stl.hpp
+++ b/boost/phoenix/stl.hpp
@@ -11,6 +11,5 @@
#include <boost/phoenix/stl/algorithm.hpp>
#include <boost/phoenix/stl/container.hpp>
-#include <boost/phoenix/stl/tuple.hpp>
#endif

View File

@ -1,59 +0,0 @@
From a31e5cffa85f58b64a39fa7c4a1bd3bd9228b069 Mon Sep 17 00:00:00 2001
From: Conrad Poelman <cpgithub@stellarscience.com>
Date: Tue, 4 Aug 2020 17:20:40 -0400
Subject: [PATCH] Remove deprecated inheritance from std::iterator (#97)
std::iterator was deprecated in C++17 and removed in C++20. I replaced the inheritance with the 5 equivalent typedefs, even though they're not all used by ublas, for compatibility in case clients depend on them.
---
.../boost/numeric/ublas/detail/iterator.hpp | 24 ++++++++++++++-----
1 file changed, 18 insertions(+), 6 deletions(-)
diff --git a/include/boost/numeric/ublas/detail/iterator.hpp b/include/boost/numeric/ublas/detail/iterator.hpp
index 1723a301c..7aebf2f9f 100644
--- a/include/boost/numeric/ublas/detail/iterator.hpp
+++ b/include/boost/numeric/ublas/detail/iterator.hpp
@@ -107,8 +107,12 @@ namespace boost { namespace numeric { namespace ublas {
* via the post increment operator.
*/
template<class IC, class I, class T>
- struct forward_iterator_base:
- public std::iterator<IC, T> {
+ struct forward_iterator_base {
+ typedef IC iterator_category;
+ typedef T value_type;
+ typedef std::ptrdiff_t difference_type;
+ typedef T* pointer;
+ typedef T& reference;
typedef I derived_iterator_type;
typedef T derived_value_type;
@@ -145,8 +149,12 @@ namespace boost { namespace numeric { namespace ublas {
* via the post increment and post decrement operator.
*/
template<class IC, class I, class T>
- struct bidirectional_iterator_base:
- public std::iterator<IC, T> {
+ struct bidirectional_iterator_base {
+ typedef IC iterator_category;
+ typedef T value_type;
+ typedef std::ptrdiff_t difference_type;
+ typedef T* pointer;
+ typedef T& reference;
typedef I derived_iterator_type;
typedef T derived_value_type;
@@ -200,8 +208,12 @@ namespace boost { namespace numeric { namespace ublas {
*/
template<class IC, class I, class T, class D = std::ptrdiff_t>
// ISSUE the default for D seems rather dangerous as it can easily be (silently) incorrect
- struct random_access_iterator_base:
- public std::iterator<IC, T> {
+ struct random_access_iterator_base {
+ typedef IC iterator_category;
+ typedef T value_type;
+ typedef D difference_type;
+ typedef T* pointer;
+ typedef T& reference;
typedef I derived_iterator_type;
typedef T derived_value_type;
typedef D derived_difference_type;

View File

@ -1,33 +1,27 @@
--- a/tools/build/src/tools/common.jam 2023-02-03 10:57:59.385098144 +0100 --- a/tools/build/src/tools/common.jam 2019-09-18 16:03:02.035995695 +0200
+++ b/tools/build/src/tools/common.jam 2023-02-03 11:00:34.982146918 +0100 +++ b/tools/build/src/tools/common.jam 2019-09-18 16:03:36.386156355 +0200
@@ -1127,18 +1127,18 @@ @@ -974,16 +974,16 @@
import $(toolset) ;
local tool-version = [ $(toolset).get-full-version $(command) ] ;
- import version ;
- if ! [ version.version-compatible [ SPLIT_BY_CHARACTERS $(version) : . ]
- : [ SPLIT_BY_CHARACTERS $(tool-version) : . ] ]
- {
- errors.error toolset $(toolset) "initialization:"
- : version '$(version)' requested but
- '$(tool)-$(version)' not found and version
- '$(tool-version:J=.)' of default '$(command)'
- does not match
- : initialized from [ errors.nearest-user-location ]
- ;
- }
+ #import version ;
+ #if ! [ version.version-compatible [ SPLIT_BY_CHARACTERS $(version) : . ]
+ # : [ SPLIT_BY_CHARACTERS $(tool-version) : . ] ]
+ #{
+ # errors.error toolset $(toolset) "initialization:"
+ # : version '$(version)' requested but
+ # '$(tool)-$(version)' not found and version
+ # '$(tool-version:J=.)' of default '$(command)'
+ # does not match
+ # : initialized from [ errors.nearest-user-location ]
+ # ;
+ #}
} }
#3) default: no command and no version specified, try using "$(tool)"
else # From GCC 5, versioning changes and minor becomes patch
- if $(tag) = gcc && [ numbers.less 4 $(version[1]) ]
- {
- version = $(version[1]) ;
- }
+ #if $(tag) = gcc && [ numbers.less 4 $(version[1]) ]
+ #{
+ # version = $(version[1]) ;
+ #}
# Ditto, from Clang 4
- if ( $(tag) = clang || $(tag) = clangw ) && [ numbers.less 3 $(version[1]) ]
- {
- version = $(version[1]) ;
- }
+ #if ( $(tag) = clang || $(tag) = clangw ) && [ numbers.less 3 $(version[1]) ]
+ #{
+ # version = $(version[1]) ;
+ #}
# On intel, version is not added, because it does not matter and it is the
# version of vc used as backend that matters. Ideally, we should encode the

View File

@ -0,0 +1,11 @@
--- boostcpp.jam.old 2018-08-01 22:50:40.000000000 +0200
+++ boostcpp.jam 2018-10-07 01:48:30.175912524 +0200
@@ -154,7 +154,7 @@
# libFoo.1.2.3.dylib format. AIX linkers do not accept version suffixes
# either. Pgi compilers can not accept a library with version suffix.
if $(type) = SHARED_LIB &&
- ! [ $(property-set).get <target-os> ] in windows cygwin darwin aix &&
+ ! [ $(property-set).get <target-os> ] in windows cygwin darwin aix android &&
! [ $(property-set).get <toolset> ] in pgi
{
result = $(result).$(BOOST_VERSION) ;

View File

@ -1,6 +1,6 @@
_pkgbase=boost _pkgbase=boost
pkgname=boost-doc pkgname=boost-doc
pkgver=1.81.0 pkgver=1.76.0
_srcname=boost_${pkgver//./_} _srcname=boost_${pkgver//./_}
pkgrel=1 pkgrel=1
pkgdesc='Free peer-reviewed portable C++ source libraries (HTML documentation)' pkgdesc='Free peer-reviewed portable C++ source libraries (HTML documentation)'
@ -8,8 +8,8 @@ url='https://www.boost.org/'
arch=('x86_64') arch=('x86_64')
license=('custom') license=('custom')
makedepends=() makedepends=()
source=(https://boostorg.jfrog.io/artifactory/main/release/$pkgver/source/$_srcname.tar.bz2) source=(https://boostorg.jfrog.io/artifactory/main/release/$pkgver/source/$_srcname.tar.gz)
sha256sums=('71feeed900fbccca04a3b4f2f84a7c217186f28a940ed8b7ed4725986baf99fa') sha256sums=('7bd7ddceec1a1dfdcbdb3e609b60d01739c38390a5f956385a12f3122049f0ca')
options=(!strip) options=(!strip)
package() { package() {

View File

@ -1,85 +0,0 @@
# 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.81.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.bz2
boost-1.81.0-phoenix-multiple-definitions.patch
$_pkgname-ublas-c++20-iterator.patch::https://github.com/boostorg/ublas/commit/a31e5cffa85f.patch)
sha256sums=('71feeed900fbccca04a3b4f2f84a7c217186f28a940ed8b7ed4725986baf99fa'
'3ebf428ef6be090a7b56a233330375539ac429333b83708e28fe5db049cfecdb'
'aa38addb40d5f44b4a8472029b475e7e6aef1c460509eb7d8edf03491dc1b5ee')
prepare() {
cd $_srcname
# https://github.com/boostorg/phoenix/issues/111
patch -Np1 -i ../boost-1.81.0-phoenix-multiple-definitions.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} "$pkgdir/$static_compat_prefix"/
install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname" $_srcname/LICENSE_1_0.txt
}

View File

@ -1 +0,0 @@
../android-aarch64/boost-1.81.0-phoenix-multiple-definitions.patch

View File

@ -1,17 +1,17 @@
# Maintainer in AUR: drakkan <nicola.murino at gmail dot com> # Maintainer of AUR version: drakkan <nicola.murino at gmail dot com>
# This version includes the static library as well (in contrast # This version removes the -R flag from the pkg-config file (required to build Qt 6
# to the version found in the AUR). # which relies on the pkg-config file).
pkgname=mingw-w64-brotli pkgname=mingw-w64-brotli
_pkgname=brotli _pkgname=brotli
_gitcommit=ed738e842d2fbdf2d6459e39267a633c4a9b2f5d _gitcommit=e61745a6b7add50d380cfd7d3883dd6c62fc2c71
pkgver=1.1.0 pkgver=1.0.9
pkgrel=2 pkgrel=2
pkgdesc='Brotli compression library (mingw-w64)' pkgdesc='Brotli compression library (mingw-w64)'
arch=('any') arch=('any')
license=('MIT') license=('MIT')
url='https://github.com/google/brotli.git' url='https://github.com/google/brotli'
depends=('mingw-w64-gcc') depends=('mingw-w64-gcc')
makedepends=('mingw-w64-cmake' 'git') makedepends=('mingw-w64-cmake' 'git')
options=('!buildflags' '!strip' 'staticlibs') options=('!buildflags' '!strip' 'staticlibs')
@ -29,11 +29,7 @@ build() {
for _arch in ${_architectures}; do for _arch in ${_architectures}; do
cd "$srcdir"/${_pkgname} cd "$srcdir"/${_pkgname}
mkdir -p build-${_arch} && pushd build-${_arch} mkdir -p build-${_arch} && pushd build-${_arch}
${_arch}-cmake -DBUILD_SHARED_LIBS=ON .. ${_arch}-cmake ..
make
popd
mkdir -p build-${_arch}-static && pushd build-${_arch}-static
${_arch}-cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=/usr/$_arch/static ..
make make
popd popd
done done
@ -41,9 +37,8 @@ build() {
package() { package() {
for _arch in ${_architectures}; do for _arch in ${_architectures}; do
make -C "${srcdir}/${_pkgname}/build-${_arch}-static" DESTDIR="${pkgdir}" install cd "${srcdir}/${_pkgname}/build-${_arch}"
make -C "${srcdir}/${_pkgname}/build-${_arch}" DESTDIR="${pkgdir}" install make DESTDIR="${pkgdir}" install
ln -s --verbose --relative --target-directory="$pkgdir"/usr/${_arch}/lib "$pkgdir"/usr/${_arch}/static/lib/*.a
find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \; find "${pkgdir}/usr/${_arch}" -name "*.exe" -exec ${_arch}-strip --strip-all {} \;
${_arch}-strip --strip-unneeded "$pkgdir"/usr/${_arch}/bin/*.dll ${_arch}-strip --strip-unneeded "$pkgdir"/usr/${_arch}/bin/*.dll
${_arch}-strip -g "$pkgdir"/usr/${_arch}/lib/*.a ${_arch}-strip -g "$pkgdir"/usr/${_arch}/lib/*.a

View File

@ -1,47 +0,0 @@
# 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=ed738e842d2fbdf2d6459e39267a633c4a9b2f5d
pkgver=1.1.0
pkgrel=2
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')
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
cmake --build build -v
}
check() {
source static-compat-environment
cd ${pkgbase}
cd build
ctest --output-on-failure --stop-on-failure -j$(nproc)
}
package() {
source static-compat-environment
cd ${pkgbase}
DESTDIR="$pkgdir" cmake --install build
find "$pkgdir/$static_compat_prefix" -iname '*.so*' -delete
install -Dm 644 LICENSE -t "$pkgdir/usr/share/licenses/$pkgname"
}

View File

@ -1,18 +0,0 @@
pkgname=buildenv
pkgver=1
pkgrel=2
pkgdesc='Build environment for my Arch Linux package builds'
arch=('any')
license=('GPL-2.0-or-later')
url='https://github.com/Martchus/PKGBUILDs'
depends=('base-devel' 'multilib-devel')
source=(android.sh parallel.sh)
sha256sums=(SKIP SKIP)
package() {
cd "$srcdir"
mkdir -p "$pkgdir/usr/share/makepkg/buildenv"
for src in android parallel; do
cp -v "$src.sh" "$pkgdir/usr/share/makepkg/buildenv/$src.sh"
done
}

View File

@ -1,12 +0,0 @@
#!/usr/bin/bash
[[ -n "$LIBMAKEPKG_BUILDENV_ANDROID_SH" ]] && return
LIBMAKEPKG_BUILDENV_ANDROID_SH=1
buildenv_functions+=('buildenv_android')
buildenv_vars+=('ANDROID_MINIMUM_PLATFORM')
buildenv_android() {
# set minimum Android version to Android 7.0
ANDROID_MINIMUM_PLATFORM=24
}

View File

@ -1,10 +0,0 @@
#!/usr/bin/bash
[[ -n "$LIBMAKEPKG_BUILDENV_PARALLEL_SH" ]] && return
LIBMAKEPKG_BUILDENV_PARALLEL_SH=1
buildenv_functions+=('buildenv_parallel')
buildenv_parallel() {
[[ $MAKEFLAGS ]] || MAKEFLAGS=-j$(nproc)
}

View File

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

View File

@ -5,7 +5,7 @@
_reponame=cpp-utilities _reponame=cpp-utilities
pkgname=c++utilities pkgname=c++utilities
pkgver=5.24.8 pkgver=5.11.1
pkgrel=1 pkgrel=1
arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64') arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64')
pkgdesc='Common C++ classes and routines such as argument parser, IO and conversion utilities' pkgdesc='Common C++ classes and routines such as argument parser, IO and conversion utilities'
@ -14,10 +14,13 @@ depends=('gcc-libs')
optdepends=("$pkgname-doc: API documentation") optdepends=("$pkgname-doc: API documentation")
makedepends=('cmake' 'ninja') makedepends=('cmake' 'ninja')
checkdepends=('cppunit') checkdepends=('cppunit')
provides=(libc++utilities.so)
url="https://github.com/Martchus/${_reponame}" url="https://github.com/Martchus/${_reponame}"
source=("${pkgname}-${pkgver}.tar.gz::https://github.com/Martchus/${_reponame}/archive/v${pkgver}.tar.gz") source=("${pkgname}-${pkgver}.tar.gz::https://github.com/Martchus/${_reponame}/archive/v${pkgver}.tar.gz")
sha256sums=('2175b45a53f5c71bb022aea1409535a82b115ce76dbcc5123b3be39f8557858a') sha256sums=('cd36c39b10f1884bcb7c49337891a4ade157e6bc12ee40526387a0f717c33bda')
prepare() {
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}"
}
build() { build() {
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}" cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}"

View File

@ -6,15 +6,15 @@
_name=c++utilities _name=c++utilities
_reponame=cpp-utilities _reponame=cpp-utilities
pkgname=$_name-doc pkgname=$_name-doc
pkgver=5.24.8 pkgver=5.11.1
pkgrel=1 pkgrel=1
arch=('any') arch=('any')
pkgdesc='Common C++ classes and routines such as argument parser, IO and conversion utilities (API documentation)' pkgdesc='Common C++ classes and routines such as argument parser, IO and conversion utilities (API documentation)'
license=('GPL') license=('GPL')
makedepends=('cmake' 'ninja' 'doxygen' 'graphviz') makedepends=('cmake' 'ninja' 'doxygen' 'dia' 'graphviz')
url="https://github.com/Martchus/${_reponame}" url="https://github.com/Martchus/${_reponame}"
source=("${_name}-${pkgver}.tar.gz::https://github.com/Martchus/${_reponame}/archive/v${pkgver}.tar.gz") source=("${_name}-${pkgver}.tar.gz::https://github.com/Martchus/${_reponame}/archive/v${pkgver}.tar.gz")
sha256sums=('2175b45a53f5c71bb022aea1409535a82b115ce76dbcc5123b3be39f8557858a') sha256sums=('cd36c39b10f1884bcb7c49337891a4ade157e6bc12ee40526387a0f717c33bda')
build() { build() {
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}" cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}"

View File

@ -6,7 +6,7 @@
_reponame=cpp-utilities _reponame=cpp-utilities
pkgname=c++utilities-git pkgname=c++utilities-git
_name=${pkgname%-git} _name=${pkgname%-git}
pkgver=989.6390182 pkgver=917.e6e7a63
pkgrel=2 pkgrel=2
arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64') arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64')
pkgdesc='Common C++ classes and routines such as argument parser, IO and conversion utilities' pkgdesc='Common C++ classes and routines such as argument parser, IO and conversion utilities'
@ -15,7 +15,8 @@ depends=('gcc-libs')
optdepends=("$_name-doc: API documentation") optdepends=("$_name-doc: API documentation")
makedepends=('cmake' 'git' 'ninja') makedepends=('cmake' 'git' 'ninja')
checkdepends=('cppunit') checkdepends=('cppunit')
provides=(libc++utilities-git.so) #provides=("${_name}")
#conflicts=("${_name}")
url="https://github.com/Martchus/${_reponame}" url="https://github.com/Martchus/${_reponame}"
source=("${_reponame}::${MARTCHUS_GIT_URL_PREFIX:-git+https://github.com/Martchus}/${_reponame}.git") source=("${_reponame}::${MARTCHUS_GIT_URL_PREFIX:-git+https://github.com/Martchus}/${_reponame}.git")
sha256sums=('SKIP') sha256sums=('SKIP')

View File

@ -6,18 +6,18 @@
_reponame=cpp-utilities _reponame=cpp-utilities
pkgname=mingw-w64-c++utilities pkgname=mingw-w64-c++utilities
_name=${pkgname#mingw-w64-} _name=${pkgname#mingw-w64-}
pkgver=5.24.8 pkgver=5.11.1
pkgrel=1 pkgrel=1
arch=('any') arch=('any')
pkgdesc='Common C++ classes and routines such as argument parser, IO and conversion utilities (mingw-w64)' pkgdesc='Common C++ classes and routines such as argument parser, IO and conversion utilities (mingw-w64)'
license=('GPL') license=('GPL')
depends=('mingw-w64-crt' 'mingw-w64-libiconv' 'mingw-w64-boost') depends=('mingw-w64-crt' 'mingw-w64-libiconv')
optdepends=("$_name-doc: API documentation") optdepends=("$_name-doc: API documentation")
checkdepends=('mingw-w64-cppunit' 'mingw-w64-wine') checkdepends=('mingw-w64-cppunit' 'mingw-w64-wine')
makedepends=('mingw-w64-gcc' 'mingw-w64-cmake' 'ninja') makedepends=('mingw-w64-gcc' 'mingw-w64-cmake' 'ninja')
url="https://github.com/Martchus/${_reponame}" url="https://github.com/Martchus/${_reponame}"
source=("${_name}-${pkgver}.tar.gz::https://github.com/Martchus/${_reponame}/archive/v${pkgver}.tar.gz") source=("${_name}-${pkgver}.tar.gz::https://github.com/Martchus/${_reponame}/archive/v${pkgver}.tar.gz")
sha256sums=('2175b45a53f5c71bb022aea1409535a82b115ce76dbcc5123b3be39f8557858a') sha256sums=('cd36c39b10f1884bcb7c49337891a4ade157e6bc12ee40526387a0f717c33bda')
options=(!buildflags staticlibs !strip !emptydirs) options=(!buildflags staticlibs !strip !emptydirs)
_architectures=('i686-w64-mingw32' 'x86_64-w64-mingw32') _architectures=('i686-w64-mingw32' 'x86_64-w64-mingw32')

View File

@ -1,49 +0,0 @@
# 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.24.8
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=('2175b45a53f5c71bb022aea1409535a82b115ce76dbcc5123b3be39f8557858a')
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

@ -5,17 +5,14 @@
pkgname=cmake-format pkgname=cmake-format
pkgver=0.6.13 pkgver=0.6.13
pkgrel=3 pkgrel=1
pkgdesc='Source code formatter for CMake listfiles' pkgdesc='Source code formatter for CMake listfiles'
arch=('any') arch=('any')
url='https://github.com/cheshirekow/cmake_format' url='https://github.com/cheshirekow/cmake_format'
license=('GPL-3.0-or-later') license=('GPL3')
depends=('python-six>=1.13.0') depends=('python-setuptools' 'python-six>=1.13.0')
makedepends=('python-setuptools') optdepends=('python-yaml>=5.3' 'python-jinja>=2.10.3' 'python-argcomplete: automatic shell completion')
optdepends=('python-yaml>=5.3: YAML config files' 'python-jinja>=2.10.3: complete HTML annotation' 'python-argcomplete: automatic shell completion')
checkdepends=('cmake') checkdepends=('cmake')
provides=('python-cmakelang')
conflicts=('python-cmakelang')
source=("$pkgname-$pkgver.tar.gz::https://github.com/cheshirekow/cmake_format/archive/v${pkgver}.tar.gz") source=("$pkgname-$pkgver.tar.gz::https://github.com/cheshirekow/cmake_format/archive/v${pkgver}.tar.gz")
sha512sums=('eb7fde540860b6119d0bb528f22592fb4b507f9319aeda0999da10bcc89ee1348fd7d701fc49aa5dac7616e1577e436cbd73de94dbbab0cafdf28e1812612342') sha512sums=('eb7fde540860b6119d0bb528f22592fb4b507f9319aeda0999da10bcc89ee1348fd7d701fc49aa5dac7616e1577e436cbd73de94dbbab0cafdf28e1812612342')

View File

@ -1,6 +1,6 @@
pkgname=mingw-w64-cmake-static pkgname=mingw-w64-cmake-static
pkgver=1 pkgver=1
pkgrel=4 pkgrel=2
arch=('any') arch=('any')
pkgdesc='CMake wrapper for MinGW (mingw-w64, static)' pkgdesc='CMake wrapper for MinGW (mingw-w64, static)'
depends=('mingw-w64-cmake') depends=('mingw-w64-cmake')

View File

@ -5,8 +5,7 @@
include("/usr/share/mingw/toolchain-@TRIPLE@.cmake") include("/usr/share/mingw/toolchain-@TRIPLE@.cmake")
# prefer libraries from "static" sub-prefix # prefer libraries from "static" sub-prefix
set(CMAKE_STATIC_PREFIX "/usr/@TRIPLE@/static") set(CMAKE_FIND_ROOT_PATH "/usr/@TRIPLE@/static;${CMAKE_FIND_ROOT_PATH}")
set(CMAKE_FIND_ROOT_PATH "${CMAKE_STATIC_PREFIX};${CMAKE_FIND_ROOT_PATH}")
# prefer static libraries # prefer static libraries
# note: It is of no use to set the real variable CMAKE_FIND_LIBRARY_SUFFIXES here because it gets overridden by CMake # note: It is of no use to set the real variable CMAKE_FIND_LIBRARY_SUFFIXES here because it gets overridden by CMake
@ -22,16 +21,13 @@ set(BOOST_USE_STATIC_LIBS ON)
set(Vulkan_LIBRARY "/usr/@TRIPLE@/lib/libvulkan.dll.a" CACHE FILEPATH "shared Vulkan IDC library") set(Vulkan_LIBRARY "/usr/@TRIPLE@/lib/libvulkan.dll.a" CACHE FILEPATH "shared Vulkan IDC library")
# workaround limitations in upstream pkg-config files and CMake find modules # workaround limitations in upstream pkg-config files and CMake find modules
set(pkgcfg_lib_libbrotlicommon_brotlicommon "${CMAKE_STATIC_PREFIX}/lib/libbrotlicommon.a" CACHE INTERNAL "static libbrotlicommon") set(pkgcfg_lib_libbrotlicommon_brotlicommon "/usr/@TRIPLE@/lib/libbrotlicommon-static.a" CACHE INTERNAL "static libbrotlicommon")
set(pkgcfg_lib_libbrotlienc_brotlienc "${CMAKE_STATIC_PREFIX}/lib/libbrotlienc.a;${CMAKE_STATIC_PREFIX}/lib/libbrotlicommon.a" CACHE INTERNAL "static libbrotliend") set(pkgcfg_lib_libbrotlienc_brotlienc "/usr/@TRIPLE@/lib/libbrotlienc-static.a;/usr/@TRIPLE@/lib/libbrotlicommon-static.a" CACHE INTERNAL "static libbrotliend")
set(pkgcfg_lib_libbrotlidec_brotlidec "${CMAKE_STATIC_PREFIX}/lib/libbrotlidec.a;${CMAKE_STATIC_PREFIX}/lib/libbrotlicommon.a" CACHE INTERNAL "static libbrotlidec") set(pkgcfg_lib_libbrotlidec_brotlidec "/usr/@TRIPLE@/lib/libbrotlidec-static.a;/usr/@TRIPLE@/lib/libbrotlicommon-static.a" CACHE INTERNAL "static libbrotlidec")
set(libbrotlicommon_STATIC_LDFLAGS "${pkgcfg_lib_libbrotlicommon_brotlicommon}" CACHE INTERNAL "static libbrotlicommon") set(libbrotlicommon_STATIC_LDFLAGS "${pkgcfg_lib_libbrotlicommon_brotlicommon}" CACHE INTERNAL "static libbrotlicommon")
set(libbrotlienc_STATIC_LDFLAGS "${pkgcfg_lib_libbrotlienc_brotlienc}" CACHE INTERNAL "static libbrotliend") set(libbrotlienc_STATIC_LDFLAGS "${pkgcfg_lib_libbrotlienc_brotlienc}" CACHE INTERNAL "static libbrotliend")
set(libbrotlidec_STATIC_LDFLAGS "${pkgcfg_lib_libbrotlidec_brotlidec}" CACHE INTERNAL "static libbrotlidec") set(libbrotlidec_STATIC_LDFLAGS "${pkgcfg_lib_libbrotlidec_brotlidec}" CACHE INTERNAL "static libbrotlidec")
# disable use of find modules that don't work for static libraries
set(CMAKE_DISABLE_FIND_PACKAGE_harfbuzz TRUE)
# define dependencies of various static libraries as CMake doesn't pull them reliably automatically # define dependencies of various static libraries as CMake doesn't pull them reliably automatically
# note: It would be possible to deduce the dependencies via pkg-config. However, for simplicity I'm hard-coding the dependencies for now. # note: It would be possible to deduce the dependencies via pkg-config. However, for simplicity I'm hard-coding the dependencies for now.
# In some cases the pkg-config file wouldn't work anyways because it is only covering the shared version (despite use of `-static`). # In some cases the pkg-config file wouldn't work anyways because it is only covering the shared version (despite use of `-static`).
@ -40,6 +36,6 @@ set(POSTGRESQL_DEPENDENCIES "-lpgcommon;-lpgport;-lintl;-lssl;-lcrypto;-lshell32
set(MYSQL_DEPENDENCIES "-lssl;-lcrypto;-lshlwapi;-lgdi32;-lws2_32;-lpthread;-lz;-lm" CACHE INTERNAL "dependencies of static MySQL/MariaDB libraries") set(MYSQL_DEPENDENCIES "-lssl;-lcrypto;-lshlwapi;-lgdi32;-lws2_32;-lpthread;-lz;-lm" CACHE INTERNAL "dependencies of static MySQL/MariaDB libraries")
set(LIBPNG_DEPENDENCIES "-lz" CACHE INTERNAL "dependencies of static libpng") set(LIBPNG_DEPENDENCIES "-lz" CACHE INTERNAL "dependencies of static libpng")
set(GLIB2_DEPENDENCIES "-lintl;-lws2_32;-lole32;-lwinmm;-lshlwapi;-lm" CACHE INTERNAL "dependencies of static Glib2") set(GLIB2_DEPENDENCIES "-lintl;-lws2_32;-lole32;-lwinmm;-lshlwapi;-lm" CACHE INTERNAL "dependencies of static Glib2")
set(FREETYPE_DEPENDENCIES "-lbz2;-lharfbuzz;-lfreetype;-lbrotlidec;-lbrotlicommon" CACHE INTERNAL "dependencies of static FreeType2 library") set(FREETYPE_DEPENDENCIES "-lbz2;-lharfbuzz;-lfreetype;-lbrotlidec-static;-lbrotlicommon-static" CACHE INTERNAL "dependencies of static FreeType2 library")
set(HARFBUZZ_DEPENDENCIES "-lglib-2.0;${GLIB2_DEPENDENCIES};-lintl;-lm;-lfreetype;-lgraphite2" CACHE INTERNAL "dependencies of static HarfBuzz library") set(HARFBUZZ_DEPENDENCIES "-lglib-2.0;${GLIB2_DEPENDENCIES};-lintl;-lm;-lfreetype;-lgraphite2" CACHE INTERNAL "dependencies of static HarfBuzz library")
set(DBUS1_DEPENDENCIES "-lws2_32;-liphlpapi;-ldbghelp" CACHE INTERNAL "dependencies of static D-Bus1 library") set(DBUS1_DEPENDENCIES "-lws2_32;-liphlpapi;-ldbghelp" CACHE INTERNAL "dependencies of static D-Bus1 library")

View File

@ -1,25 +0,0 @@
pkgname=static-compat-cmake
pkgver=1
pkgrel=2
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

@ -1,14 +0,0 @@
#!/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

@ -1,17 +0,0 @@
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++)
# specify the root path of 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)
# disable use of find modules that don't work for static libraries
set(CMAKE_DISABLE_FIND_PACKAGE_harfbuzz TRUE)

22
cmake/static/PKGBUILD Normal file
View File

@ -0,0 +1,22 @@
pkgname=cmake-static
pkgver=1
pkgrel=1
arch=('any')
pkgdesc='CMake wrapper for using static libraries and glibc compat header'
depends=('cmake')
license=("GPL")
url='https://github.com/martchus/pkgbuilds'
source=(cmake-static.sh
toolchain-static.cmake
glibc-2.17.h::https://raw.githubusercontent.com/billziss-gh/glibc-compat/master/glibc-2.17.h)
sha256sums=('SKIP' 'SKIP' 'TODO')
package() {
install -d "${pkgdir}"/usr/bin
install -d "${pkgdir}"/usr/share/cmake-static
install -d "${pkgdir}"/usr/static/{toolchain,include}
install -m 644 toolchain-static.cmake "${pkgdir}"/usr/static/toolchain
install -m 644 glibc-2.17.h "${pkgdir}"/usr/static/include
install -m 755 cmake-static "${pkgdir}"/usr/bin/cmake-static
}

View File

@ -0,0 +1,10 @@
#!/bin/sh
static_prefix=/usr/static
PATH=${static_prefix}/bin:$PATH cmake \
-DCMAKE_INSTALL_PREFIX:PATH="${static_prefix}" \
-DCMAKE_INSTALL_LIBDIR:PATH=lib \
-DBUILD_SHARED_LIBS:BOOL=OFF \
-DCMAKE_TOOLCHAIN_FILE=/usr/share/static/toolchain/toolchain-static.cmake \
"$@"

View File

@ -0,0 +1,39 @@
# This toolchain file helps building a mostly statically linked executable by
# defining certain variables. It is mainly focusing on dependencies used by Qt.
# prefer libraries from "static" sub-prefix
set(CMAKE_FIND_ROOT_PATH "/usr/static;${CMAKE_FIND_ROOT_PATH}")
# prefer static libraries
# note: It is of no use to set the real variable CMAKE_FIND_LIBRARY_SUFFIXES
# here because it gets overridden by CMake after loading the toolchain
# file. The project needs to make the actual override if enforcing static
# libraries is required.
set(CMAKE_FIND_LIBRARY_SUFFIXES_OVERRIDE ".a;.so")
set(CMAKE_EXE_LINKER_FLAGS "$ENV{LDFLAGS} -static-libgcc -static-libstdc++" CACHE STRING "linker flags for static builds" FORCE)
set(CMAKE_C_FLAGS "$ENV{CFLAGS} -include /usr/static/include/glibc-2.17.h" CACHE STRING "C flags for static builds" FORCE)
set(CMAKE_CPP_FLAGS "$ENV{CPPFLAGS} -include /usr/static/include/glibc-2.17.h" CACHE STRING "Cpp flags for static builds" FORCE)
set(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} -include /usr/static/include/glibc-2.17.h" CACHE STRING "C++ flags for static builds" FORCE)
set(OPENSSL_USE_STATIC_LIBS ON)
set(BOOST_USE_STATIC_LIBS ON)
# workaround limitations in upstream pkg-config files and CMake find modules
set(pkgcfg_lib_libbrotlicommon_brotlicommon "/usr/lib/libbrotlicommon-static.a" CACHE INTERNAL "static libbrotlicommon")
set(pkgcfg_lib_libbrotlienc_brotlienc "/usr/lib/libbrotlienc-static.a;/usr/lib/libbrotlicommon-static.a" CACHE INTERNAL "static libbrotliend")
set(pkgcfg_lib_libbrotlidec_brotlidec "/usr/lib/libbrotlidec-static.a;/usr/lib/libbrotlicommon-static.a" CACHE INTERNAL "static libbrotlidec")
set(libbrotlicommon_STATIC_LDFLAGS "${pkgcfg_lib_libbrotlicommon_brotlicommon}" CACHE INTERNAL "static libbrotlicommon")
set(libbrotlienc_STATIC_LDFLAGS "${pkgcfg_lib_libbrotlienc_brotlienc}" CACHE INTERNAL "static libbrotliend")
set(libbrotlidec_STATIC_LDFLAGS "${pkgcfg_lib_libbrotlidec_brotlidec}" CACHE INTERNAL "static libbrotlidec")
# define dependencies of various static libraries as CMake doesn't pull them
# reliably automatically
# note: It would be possible to deduce the dependencies via pkg-config. However,
# for simplicity I'm hard-coding the dependencies for now. In some cases the
# pkg-config file wouldn't work anyways because it is only covering the shared
# version (despite use of `-static`).
set(OPENSSL_DEPENDENCIES "-ldl;-pthread" CACHE INTERNAL "dependencies of static OpenSSL libraries")
set(LIBPNG_DEPENDENCIES "-lz" CACHE INTERNAL "dependencies of static libpng")
set(GLIB2_DEPENDENCIES "-pthread" CACHE INTERNAL "dependencies of static Glib2")
set(FREETYPE_DEPENDENCIES "-lbz2;-lharfbuzz;-lfreetype;-lbrotlidec-static;-lbrotlicommon-static" CACHE INTERNAL "dependencies of static FreeType2 library")
set(HARFBUZZ_DEPENDENCIES "-lglib-2.0;${GLIB2_DEPENDENCIES};-lm;-lfreetype;-lgraphite2" CACHE INTERNAL "dependencies of static HarfBuzz library")
set(DBUS1_DEPENDENCIES "-pthread" CACHE INTERNAL "dependencies of static D-Bus1 library")

View File

@ -1,17 +0,0 @@
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

@ -1,19 +0,0 @@
#!/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" \
"$@"

View File

@ -1,31 +0,0 @@
# 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

@ -7,7 +7,7 @@
_name=cppunit _name=cppunit
pkgname=mingw-w64-cppunit pkgname=mingw-w64-cppunit
pkgver=1.15.1 pkgver=1.15.0
pkgrel=1 pkgrel=1
pkgdesc="A C++ unit testing framework (mingw-w64)" pkgdesc="A C++ unit testing framework (mingw-w64)"
arch=('any') arch=('any')
@ -17,7 +17,7 @@ depends=('mingw-w64-crt')
makedepends=('mingw-w64-gcc' 'mingw-w64-configure') makedepends=('mingw-w64-gcc' 'mingw-w64-configure')
options=(!strip !buildflags !libtool staticlibs !emptydirs) options=(!strip !buildflags !libtool staticlibs !emptydirs)
source=("https://dev-www.libreoffice.org/src/${_name}-${pkgver}.tar.gz") source=("https://dev-www.libreoffice.org/src/${_name}-${pkgver}.tar.gz")
sha256sums=('89c5c6665337f56fd2db36bc3805a5619709d51fb136e51937072f63fcc717a7') sha256sums=('1c61dfdb430e04ebb411e4b80fbd49fe7e63a1be0209a76d7c07501f02834922')
_architectures="i686-w64-mingw32 x86_64-w64-mingw32" _architectures="i686-w64-mingw32 x86_64-w64-mingw32"

View File

@ -1,33 +0,0 @@
_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

@ -1,80 +0,0 @@
# 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.
_realname=cppwinrt
pkgname=mingw-w64-${_realname}
pkgver=2.0.240111.5
_windows_rs_ver=0.52.0
pkgrel=1
arch=('any')
pkgdesc='C++ language projection for Windows Runtime (WinRT) APIs (mingw-w64)'
url='https://aka.ms/cppwinrt'
license=('spdx:MIT')
depends=('mingw-w64-crt')
makedepends=('mingw-w64-gcc' 'mingw-w64-cmake' 'mingw-w64-wine' 'ninja' 'git')
source=("https://github.com/microsoft/cppwinrt/archive/${pkgver}/${_realname}-${pkgver}.tar.gz"
"https://github.com/microsoft/windows-rs/archive/${_windows_rs_ver}/windows-rs-${_windows_rs_ver}.tar.gz")
sha256sums=('5ec49e9de3467161ef93185f0c627be6ed37200f19e18ac79e29e47fbeb69d0d'
'fa6f1ad3677ee46ded34ad8811fc365a783d9aa414206a60b52dff261db85ef3')
options=(!buildflags staticlibs !strip !emptydirs)
_architectures=('i686-w64-mingw32' 'x86_64-w64-mingw32')
build() {
cd ${_realname}-${pkgver}
for _arch in "${_architectures[@]}"; do
mkdir -p "build-${_arch}" && pushd "build-${_arch}"
# build cppwinrt.exe
${_arch}-cmake \
-G Ninja \
-DCMAKE_BUILD_TYPE:STRING='Release' \
-DCMAKE_INSTALL_PREFIX="/usr/${_arch}" \
-DCPPWINRT_BUILD_VERSION="${pkgver}" \
-DBUILD_TESTING=OFF \
../
cmake --build .
# add Windows metadata
# note: The metadata comes from https://github.com/microsoft/win32metadata. However, at this point
# this build script cannot make use of that. Instead, one has to just point it to the metadata files
# usually found under C:/Windows/System32/WinMetadata via the WIN_METADATA environment variable.
input=()
if [[ -d $WIN_METADATA ]]; then
ln -s "$WIN_METADATA" win-metadata
input+=(-input win-metadata)
else
echo "You need to provide metadata files usually found under C:/Windows/System32/WinMetadata on a
Windows system and point this build script to it via the WIN_METADATA environment variable.
Otherwise this package will not contain all headers that are required by e.g. Qt 6."
fi
# add rust metadata provided by https://github.com/microsoft/windows-rs
echo "SPDX-License-Identifier: MIT OR Apache-2.0
SPDX-FileCopyrightText: Copyright (c) Microsoft Corporation
Generated using .winmd files from https://github.com/microsoft/windows-rs
" > license.txt
ln -s "${srcdir}/windows-rs-${_windows_rs_ver}/crates/libs/bindgen/default" rust-metadata
input+=(-license license.txt -input rust-metadata)
# generate headers using cppwinrt.exe
${_arch}-wine cppwinrt.exe "${input[@]}" -output "output"
popd
done
}
package() {
cd ${_realname}-${pkgver}
for _arch in "${_architectures[@]}"; do
pushd "build-${_arch}"
DESTDIR="${pkgdir}" cmake --install .
mkdir "${pkgdir}/usr/${_arch}/include"
cp -vr --target-directory="${pkgdir}/usr/${_arch}/include" output/*
${_arch}-strip --strip-all "$pkgdir"/usr/${_arch}/bin/*.exe
popd
done
install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE" "${pkgdir}/share/licenses/${pkgname}/LICENSE"
}

View File

@ -1,59 +0,0 @@
# Maintainer: Zion Nimchuk <zionnimchuk@gmail.com>
# Contributor: Martchus <martchus@gmx.net>
_pkgbase='cubeb'
pkgname=$_pkgbase-git
pkgver=r1534.dc511c6
provides=("cubeb=$pkgver" 'libcubeb.so')
conflicts=('cubeb')
pkgrel=2
pkgdesc="A cross platform audio library"
arch=('i686' 'x86_64')
url="https://github.com/mozilla/cubeb"
license=('GPL2')
depends=('sndio' 'alsa-lib' 'speexdsp')
makedepends=('git' 'cmake' 'libpulse' 'alsa-lib' 'jack2' 'sndio')
optdepends=('libpulse: for PulseAudio support'
'jack2: for JACK support')
source=("$_pkgbase::git+https://github.com/mozilla/cubeb"
'git+https://github.com/arsenm/sanitizers-cmake')
md5sums=('SKIP'
'SKIP')
pkgver() {
cd "$srcdir/$_pkgbase"
echo "r$(git rev-list --count HEAD).$(git rev-parse --short HEAD)"
}
prepare() {
cd "$srcdir/$_pkgbase"
mkdir -p build
git submodule init
git config submodule.cmake/sanitizers-cmake.url "$srcdir/sanitizers-cmake"
git submodule update
}
build() {
cd "$srcdir/$_pkgbase/build"
cmake .. \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_TESTS=False \
-DBUILD_SHARED_LIBS=true \
-DCMAKE_INSTALL_LIBDIR=/usr/lib \
-DUSE_PULSE=true \
-DUSE_ALSA=true \
-DUSE_JACK=true \
-DUSE_SNDIO=true \
-DUSE_OPENSL=false \
-DUSE_KAI=false
# What even is kai?
make
}
package() {
cd "$srcdir/$_pkgbase/build"
make DESTDIR="$pkgdir/" install
}

View File

@ -1,74 +0,0 @@
# Contributor: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>
# Contributor: Tom Gundersen <teg@jklm.no>
# Contributor: Link Dupont <link@subpop.net>
_pkgname=dbus
pkgname=static-compat-$_pkgname
pkgver=1.14.4
pkgrel=1
pkgdesc="Freedesktop.org message bus system"
url="https://wiki.freedesktop.org/www/Software/dbus/"
arch=(x86_64)
license=(GPL custom)
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"
no-fatal-warnings.diff)
sha256sums=('SKIP'
'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
git apply -3 ../no-fatal-warnings.diff
NOCONFIGURE=1 ./autogen.sh
}
build() {
source static-compat-environment
cd dbus
static-compat-configure \
--sysconfdir=/etc \
--localstatedir=/var \
--libexecdir="$static_compat_prefix"/lib/dbus-1.0 \
runstatedir=/run \
--enable-inotify \
--disable-audit \
--disable-systemd \
--enable-user-session \
--disable-xml-docs \
--disable-doxygen-docs \
--disable-ducktype-docs \
--disable-shared \
--enable-static \
--without-x
make
}
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}
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
}
# vim:set sw=2 sts=-1 et:

65
dbus/static/PKGBUILD Normal file
View File

@ -0,0 +1,65 @@
# Contributor: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>
# Contributor: Tom Gundersen <teg@jklm.no>
# Contributor: Link Dupont <link@subpop.net>
_pkgname=dbus
pkgname=$_pkgname-static
pkgver=1.12.20
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)
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"
no-fatal-warnings.diff)
sha256sums=('SKIP'
'6958eeec07557b92a28419eb1702331ee2f0a6fd17285e37dfb6130b9fa4cf6e')
#validpgpkeys=('DA98F25C0871C49A59EAFF2C4DE8FF2A63C7CC90') # Simon McVittie <simon.mcvittie@collabora.co.uk>
prepare() {
cd dbus
# Allow us to enable checks without them being fatal
patch -Np1 -i ../no-fatal-warnings.diff
NOCONFIGURE=1 ./autogen.sh
}
build() {
cd dbus
./configure \
--prefix=/usr/static \
--sysconfdir=/etc \
--localstatedir=/var \
--libexecdir=/usr/static/lib/dbus-1.0 \
runstatedir=/run \
--enable-inotify \
--disable-audit \
--disable-systemd \
--enable-user-session \
--disable-xml-docs \
--disable-doxygen-docs \
--disable-ducktype-docs \
--disable-shared \
--enable-static \
--without-x
make
}
check() {
make -C dbus check
}
package() {
DESTDIR="$pkgdir" make -C dbus install
rm -r "$pkgdir"/{etc,var,usr/lib,usr/static/bin,usr/static/share/doc}
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 dbus/COPYING
}
# vim:set sw=2 et:

View File

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

View File

@ -23,7 +23,7 @@ for pkgbuild_file in "${PKGBUILD_DIR:-.}"/*/*/PKGBUILD; do
|| $project_name == 'qt5-webkit' # even revived version is dead || $project_name == 'qt5-webkit' # even revived version is dead
|| $project_name == 'qt5-webview' # does not build for Windows, would require qt5-webengine || $project_name == 'qt5-webview' # does not build for Windows, would require qt5-webengine
|| $project_name == 'qt5-canvas3d' # removed from official releases || $project_name == 'qt5-canvas3d' # removed from official releases
|| $project_name == 'qt5-script' # extra case (still released, not on KDE branch) || $project_name == 'qt6-3d' # removed in beta1
|| $variant == 'mingw-w64-test' # just our own 'test' package (not used anymore) || $variant == 'mingw-w64-test' # just our own 'test' package (not used anymore)
]] && continue ]] && continue
@ -49,9 +49,7 @@ for pkgbuild_file in "${PKGBUILD_DIR:-.}"/*/*/PKGBUILD; do
# check if template exists and modify template instead # check if template exists and modify template instead
template=$pkgbuild_file.sh.ep template=$pkgbuild_file.sh.ep
layoutname=$pkgname layout=$bindir/generator/templates/layouts/$pkgname.sh.ep
[[ $layoutname =~ android-aarch64-.* ]] && layoutname=android-${pkgname##android-aarch64-}
layout=$bindir/generator/templates/layouts/$layoutname.sh.ep
if [[ -f $layout ]]; then if [[ -f $layout ]]; then
[[ $VERBOSE ]] && echo "Considering layout $pkgname.sh.ep for $trimmed_path" [[ $VERBOSE ]] && echo "Considering layout $pkgname.sh.ep for $trimmed_path"
pkgbuild_file=$layout pkgbuild_file=$layout

View File

@ -1,17 +0,0 @@
FROM archlinux:base as base
MAINTAINER Martchus <martchus@gmx.net>
RUN mkdir -p /startdir /build && \
groupadd -g 1000 builduser && \
useradd -m -d /build -u 1000 -g 1000 -s /bin/bash builduser && \
chown -R builduser:builduser /startdir /build && \
echo 'builduser ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers && \
pacman-key --init && \
pacman-key --recv-keys B9E36A7275FC61B464B67907E06FE8F53CDC6A4C && \
pacman-key --finger B9E36A7275FC61B464B67907E06FE8F53CDC6A4C && \
pacman-key --lsign-key B9E36A7275FC61B464B67907E06FE8F53CDC6A4C && \
pacman -Sy --verbose --noconfirm --needed archlinux-keyring && \
pacman -Syu --verbose --noconfirm --needed base-devel pacman-contrib ccache && \
pacman -Scc --noconfirm && \
paccache -r -k0 && \
rm -rf /usr/share/man/* /tmp/* /var/tmp/*

View File

@ -1,5 +0,0 @@
#!/bin/bash
set -e
export LOGDEST=$PWD SRCPKGDEST=$PWD SRCDEST=$PWD PKGDEST=$PWD BUILDDIR=/build
export BUILDTOOL=makecontainerbuild BUILDTOOLVER="0.0.1"
exec

View File

@ -1,8 +0,0 @@
#!/bin/bash
set -e
[ "$(whoami)" == root ] && sudo= || sudo=sudo
for config_file in {/cfg/,}{makepkg,pacman}.conf; do
[[ -f $config_file ]] && $sudo cp --target-directory=/etc "$config_file"
done
[[ -f PKGBUILD ]] && source PKGBUILD
$sudo pacman -Syu --noconfirm --needed "${depends[@]}" "${makedepends[@]}" "${checkdepends[@]}"

View File

@ -1,19 +0,0 @@
#!/bin/bash
dev_dir=/hdd
bindir=$(dirname "$0")
# create a directory to store builds and new container and start it
mkdir -p "$dev_dir/build/container"
# create container sharing pacman cache, chroot directory and build and source directory with host
podman container create -it \
--name archlinux-devel-container \
-v "$dev_dir/cache/pacman/pkg:/var/cache/pacman/pkg" \
-v "$dev_dir/build/container:/build" \
-v "$dev_dir/projects:/src" \
-v "$dev_dir/chroot/remote-config-x86_64:/cfg" \
archlinux-base-devel
# configure pacman to use config from mounted directory
podman container start archlinux-devel-container
podman container exec archlinux-devel-container bash -c "$(cat "$bindir/containersync")"

View File

@ -1,5 +0,0 @@
#!/bin/bash
set -e
bindir=$(dirname "$0")
${CRE:-docker} image pull archlinux
${CRE:-docker} image build --no-cache --tag "${CRE_IMAGE:-archlinux-base-devel}" "$bindir/base-devel"

View File

@ -1,102 +0,0 @@
#!/bin/bash
set -e
# make tool to invoke configurable via environment variable to be able to invoke
# other tools like `repo-add` or `updpkgsums` as well
tool=${TOOL:-makepkg}
[[ $tool == 'makepkg' ]] && single_run= no_sync= || single_run=1 no_sync=1
# make basic arguments for cre
if [[ $CONTAINER ]]; then
name=$CONTAINER
else
if [[ $PKGNAME ]]; then
pkgname=$PKGNAME
else
source PKGBUILD
pkgname=$(echo "$pkgname" | tr '+' 'p')
fi
uuid=$(cat /proc/sys/kernel/random/uuid)
name=$tool-$pkgname-$uuid
fi
cre_args=(--name "$name" --workdir "/startdir" -v "$PWD":/startdir -it)
cre_rm_args=(--force)
# use "builduser" that has been created via the Dockerfile
uid=1000 gid=1000
if [[ $CRE == 'podman' ]]; then
cre_args+=(--userns="keep-id:uid=$uid,gid=$gid")
cre_rm_args+=(--time 0)
else
cre_args+=(--user="$uid:$gid")
# caveat: In contrast to Podman this gives a wrong gid for newly created files by
# default. Maybe it would help to pass `--userns-remap=…` to `dockerd`.
fi
# parse arguments
script_args= read_script_args=
for arg in "$@"; do
if [[ $read_script_args ]]; then
if [[ $arg == '--nodeps' ]] || [[ $arg == '-d' ]]; then
no_sync=1
elif [[ $arg == '--printsrcinfo' ]] || [[ $arg == '--help' ]] || [[ $arg == '-h' ]]; then
no_sync=1
single_run=1
fi
script_args+=" '$arg'"
else
if [[ $arg == '--' ]]; then
read_script_args=1
else
cre_args+=("$arg")
fi
fi
done
# add arguments from environment
if [[ $PACMAN_PKG_CACHE_DIR ]]; then
cre_args+=(-v "$PACMAN_PKG_CACHE_DIR":/var/cache/pacman/pkg)
fi
if [[ $CONTAINER_BUILD_CFG_DIR ]]; then
cre_args+=(-v "$CONTAINER_BUILD_CFG_DIR":/cfg)
fi
if [[ $CONTAINER_BUILD_CCACHE_DIR ]]; then
cre_args+=(-v "$CONTAINER_BUILD_CCACHE_DIR":/ccache)
script_args+=' CCACHE_DIR=/ccache'
fi
# load "containerbuild" and "containersync" script
bindir=$(dirname "$0")
script=$(cat "$bindir/containerbuild")
if ! [[ $no_sync ]]; then
script_sync=$(cat "$bindir/containersync")
fi
# invoke containerized build
ec=0 cre=${CRE:-docker}
if ! [[ $CONTAINER ]]; then
image=${CRE_IMAGE:-archlinux-base-devel}
if [[ $single_run ]]; then
"$cre" container run "${cre_args[@]}" "$image" bash \
-c "$script_sync $script '$tool' $script_args" || ec=$?
exit $ec
fi
"$cre" container create "${cre_args[@]}" "$image"
"$cre" container start "$name"
fi
"$cre" container exec "$name" bash \
-c "$script_sync $script '$tool' $script_args" || ec=$?
# stop and remove container unless we want to keep it for debugging
[[ $ec == 0 && $DEBUG == on-failure || -z $DEBUG ]] && \
"$cre" container rm "${cre_rm_args[@]}" "$name"
# log message about commands to use for investigation
[[ $ec != 0 ]] && [[ $DEBUG ]] && echo \
"You may investigate the failure via:
$cre exec -it '$name' bash
$cre mount '$name'
You may retry the build using the same container again via:
CONTAINER='$name' DEBUG='$DEBUG' $0 $@"
exit $ec

View File

@ -1,26 +0,0 @@
#!/bin/bash
set -e # abort on first error
shopt -s nullglob
bindir=$(dirname "$0")
source "$bindir/../versions.sh"
expected_version=${versions[qt5]}.*
arch_pkgbuilds=$1
[[ $arch_pkgbuilds ]] && cd "$arch_pkgbuilds"
echo "expected version: $expected_version"
for pkgbuild in qt5-*/PKGBUILD ; do
git -C "${pkgbuild%/PKGBUILD}" pull --rebase origin main
done
for pkgbuild in qt5-*/PKGBUILD ; do
source "$pkgbuild"
if [[ $pkgname != qt5-doc ]] && [[ $pkgver =~ $expected_version ]] && [[ $_commit ]]; then
if [[ $pkgver == "${versions[qt5]}" ]]; then
pkgver=0
fi
echo "${pkgname##qt5-} => [${pkgver##*+r}, '$_commit']",
fi
done

View File

@ -1,5 +1,6 @@
#!/usr/bin/perl #!/usr/bin/perl
use Encode 'encode';
use FindBin; use FindBin;
use Mojolicious; use Mojolicious;
use Mojo::File 'path'; use Mojo::File 'path';
@ -11,7 +12,7 @@ use strict;
use utf8; use utf8;
my @vcs_0_variant_suffixes = (qw(git svn hg)); my @vcs_0_variant_suffixes = (qw(git svn hg));
my @cfg_0_variant_suffixes = (qw(static static-compat)); my @cfg_0_variant_suffixes = (qw(static));
my @cfg_1_variant_suffixes = (qw(doc test cli angle dynamic opengl noopengl)); 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); my @variant_suffixes = (\@vcs_0_variant_suffixes, \@cfg_0_variant_suffixes, \@cfg_1_variant_suffixes);
@ -46,8 +47,7 @@ sub _render_deps {
my ($package_prefix, $controller, @d) = @_; my ($package_prefix, $controller, @d) = @_;
my $prefix = $controller->stash('package_name_prefix'); my $prefix = $controller->stash('package_name_prefix');
my $suffix = $controller->stash('package_name_suffix'); my $suffix = $controller->stash('package_name_suffix');
my $quote = $prefix =~ qr/^(mingw-w64|android)/ ? "'" : ''; return join(' ', map { "'${prefix}${package_prefix}-${_}${suffix}'" } @d);
return join(' ', map { "${quote}${prefix}${package_prefix}-${_}${suffix}${quote}" } @d);
} }
sub _render_optdeps { sub _render_optdeps {
my ($package_prefix, $controller, %d) = @_; my ($package_prefix, $controller, %d) = @_;
@ -75,46 +75,13 @@ $mojolicious->helper(expand_libs => sub {
# define revisions of Qt modules from KDE fork # define revisions of Qt modules from KDE fork
my %kde_fork_revisions = ( my %kde_fork_revisions = (
# module => [rev, 'commit on KDE fork', 'version bump to be reverted'], # module => [rev, 'commit on KDE fork', 'version bump to be reverted' ],
activeqt => [0, '014285857ef1cfb2d9965cf7bad871bbc336ce60'], base => [222, 'd2bd04d9fe03912097d3246b7d03ef14f425256b', '6344955d17e17e2398720fe60c34cfc2a4a95208'],
winextras => [0, 'e6a85ae3306867400b8700600152949656eb21f7'], declarative => [26, '4f08a2da5b0da675cf6a75683a43a106f5a1e7b8', '568763928a78b52373932b01be17e040f7c3fa50'],
'3d' => [0, '67bee4599a28e1cadc14ed9ea4adc7061e250b90'], tools => [17, '33693a928986006d79c1ee743733cde5966ac402', 'dbe0567470db2b369a9fdb28d9fbac38be3e2d60'],
base => [138, 'b9906b5233a80cab372c95ac4dd68b25bdca0646'], svg => [7, 'cfc616978b52a396b2ef6900546f7fc086d7cab3', '9aac88424a1b76e0198b52437af58a6d94aff8e9'],
charts => [0, '3f3f14d69a509c3e8027bfb5d7ffca9b4f3ef003'], wayland => [23, 'fcc2f57cefa66339c8cb6632f45a47fbb99bb60d', '30cb2a87fcc6265232cb5a3ffce9836da6e531d6'],
connectivity => [4, '8024ef3d7269665ba104f528e5e284df9d9d8ae9'],
datavis3d => [0, '6ac6d23a8f558f36f1162b419858cc44dccd4d2b'],
declarative => [30, 'b99568135aa60de96ca2e121dc2e8d83fb1ca886'],
gamepad => [0, '44255e2ae53a14e9a3fb671da0782ec5d396220a'],
graphicaleffects => [0, '895f9753940156dda05aa83d3c7655571514407e'],
imageformats => [7, '63ec444cc7b30c45d4c8beb2c1071a1157d689eb'],
location => [6, 'c576985da4e6a4a0b85d5229263777e7197494e0'],
lottie => [0, '62f17bbc0ae8649178ac484afc434dbad16d6351'],
multimedia => [2, '7514352532f41d9f0f8b8d722e360b1854442731'],
networkauth => [0, 'ed2291d454fac207f6b1555d30b9227e51be611b'],
purchasing => [0, '7f4ead6f3e6431acee63987a0a1753ff140ac2d2'],
quick3d => [1, 'a0c37ca7615e95d69bcf6de8f19607bd46e8c37a'],
quickcontrols => [0, '77fbfa8d313bbdb8fb762f15dd6173a067be55e3'],
quickcontrols2 => [5, '1fc98160580fc7b791e20d34ba986c9992cae9c5'],
quicktimeline => [0, '29394e35db43acb20e7b4d5e978a733f5b4232a6'],
remoteobjects => [0, '18ef1cdce7bc4c93415f38f1c220ab697aa75908'],
scxml => [0, '6074956c2089dd0507d2930c638fa8c930f4e21c'],
sensors => [0, '7f8b55744f87155a4979dd8ba405bd7feec03042'],
serialbus => [0, '5efce7d821bad2f5db95ff3ada5eeddccbb58920'],
serialport => [0, 'fc0b6affe244e40366bd624d6e01c62712568eb8'],
speech => [1, '9b3738febbc751820ede496e8d619c5be56548dc'],
svg => [6, '080fed6443e9e7b2ad30e61f31163e9481dfad0f'],
tools => [4, 'ba4c633c4a4731ead0c376b908bf5449796f7de1'],
translations => [0, '40aabebd04a30ccef374bf20a7bfaa1d8d665b7f'],
virtualkeyboard => [0, '80565aa7fc37ecdb1c08e585d4ae3060618e3338'],
wayland => [60, '9c82b5461736f59a06923ab68c6f7584ecab4f77'],
webchannel => [3, 'c78ad286a90e3d7986292b4a6036a9927bbc155f'],
webglplugin => [0, '80257933d3bf3a026455d71106e6b3e70dead765'],
websockets => [2, '2c2b7691ae231f43129d7f2b43984c30883ca4b1'],
webview => [0, '3d9289d73c5c03ed5b2fe246589d0d81cfdaa22e'],
x11extras => [0, '415ac0d58521be2bb00ef4cecdb16f0b9001e88c'],
xmlpatterns => [0, 'eb59017f04b44667e0c6778aa3995f8e86c98e48'],
); );
# $rev := git rev-list --count v5.15.2..$commit_on_kde_fork
# find templates; populate "pages" array # find templates; populate "pages" array
my @pages; my @pages;
@ -264,5 +231,5 @@ for my $page (@pages) {
$controller->stash($template_stash_variables) if defined $template_stash_variables; $controller->stash($template_stash_variables) if defined $template_stash_variables;
my $output = $controller->render_to_string(%$template_params); my $output = $controller->render_to_string(%$template_params);
$log->debug($output); $log->debug($output);
$output_file->spew($output, 'UTF-8'); $output_file->spurt(encode('UTF-8', $output));
} }

View File

@ -1 +0,0 @@
android-qt6-base.sh.ep

View File

@ -14,18 +14,18 @@
_android_arch=<%= $variant_prefix_part =~ s/android-// && $variant_prefix_part %> _android_arch=<%= $variant_prefix_part =~ s/android-// && $variant_prefix_part %>
pkgname=<%= $package_name %> pkgname=<%= $package_name %>
_qtver=6.7.1 _qtver=6.1.2
pkgver=${_qtver/-/} pkgver=${_qtver/-/}
pkgrel=1 pkgrel=1
arch=(any) arch=(any)
url='https://www.qt.io' url='https://www.qt.io'
license=(GPL3 LGPL3 FDL custom) license=(GPL3 LGPL3 FDL custom)
pkgdesc='A cross-platform application and UI framework (android)' pkgdesc='A cross-platform application and UI framework (android)'
depends=('java-runtime-headless-openjdk>=11' 'ant' 'android-ndk' 'android-sdk' 'android-sdk-build-tools' depends=('java-runtime-headless-openjdk=8' 'ant' 'android-ndk' 'android-sdk' 'android-sdk-build-tools'
'android-sdk-platform-tools' 'android-platform' "android-${_android_arch}-libjpeg-turbo" 'android-sdk-platform-tools' 'android-platform' "android-${_android_arch}-libjpeg-turbo"
"android-${_android_arch}-libpng" "android-${_android_arch}-openssl" "android-${_android_arch}-zlib") "android-${_android_arch}-libpng" "android-${_android_arch}-openssl" "android-${_android_arch}-zlib")
makedepends=('android-cmake<%= $static_suffix %>' 'android-pkg-config' makedepends=('android-cmake<%= $static_suffix %>' 'android-pkg-config'
'java-environment-openjdk=17' 'qt6-base' 'ninja') 'java-environment-openjdk=8' 'qt6-base' 'ninja')
optdepends=('qt6-base: development tools') optdepends=('qt6-base: development tools')
options=('!strip' '!buildflags' 'staticlibs' '!emptydirs') options=('!strip' '!buildflags' 'staticlibs' '!emptydirs')
groups=(android-${_android_arch}-qt6) groups=(android-${_android_arch}-qt6)
@ -51,7 +51,6 @@ prepare () {
% } % }
build() { build() {
export PATH=/usr/lib/jvm/java-17-openjdk/bin:$PATH
source android-env ${_android_arch} source android-env ${_android_arch}
android-${_android_arch}-cmake<%== $static_suffix %> -G Ninja -B build-$_android_arch -S $_pkgfqn \\ android-${_android_arch}-cmake<%== $static_suffix %> -G Ninja -B build-$_android_arch -S $_pkgfqn \\
% if ($static_variant) { % if ($static_variant) {
@ -97,7 +96,7 @@ package() {
source android-env ${_android_arch} source android-env ${_android_arch}
DESTDIR="$pkgdir" cmake --install build-$_android_arch DESTDIR="$pkgdir" cmake --install build-$_android_arch
install -Dm644 $_pkgfqn/LICENSES/* -t "$pkgdir"/usr/share/licenses/$pkgname install -Dm644 $_pkgfqn/LICENSE* -t "$pkgdir"/usr/share/licenses/$pkgname
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir # Drop QMAKE_PRL_BUILD_DIR because reference the build dir
find "$pkgdir/${ANDROID_PREFIX}/<%== $static_variant ? 'static/' : '' %>" -type f -name '*.prl' \\ find "$pkgdir/${ANDROID_PREFIX}/<%== $static_variant ? 'static/' : '' %>" -type f -name '*.prl' \\

View File

@ -32,7 +32,6 @@ prepare () {
% } % }
build() { build() {
export PATH=/usr/lib/jvm/java-17-openjdk/bin:$PATH
source android-env ${_android_arch} source android-env ${_android_arch}
<%== content_for 'before_build_config' %>\ <%== content_for 'before_build_config' %>\
android-${_android_arch}-cmake<%== $static_suffix %> -G Ninja -B build-$_android_arch -S $_pkgfqn \\ android-${_android_arch}-cmake<%== $static_suffix %> -G Ninja -B build-$_android_arch -S $_pkgfqn \\

View File

@ -31,10 +31,9 @@
_qt_module=qt<%== $qt_module %> _qt_module=qt<%== $qt_module %>
pkgname=<%= $package_name %> pkgname=<%= $package_name %>
pkgver=5.15.13<%== $kde_fork_revision ? "+kde+r$kde_fork_revision->[0]" : '' %> pkgver=5.15.2<%== $kde_fork_revision ? "+kde+r$kde_fork_revision->[0]" : '' %>
pkgrel=1 pkgrel=1
% if ($kde_fork_revision) { % if ($kde_fork_revision) {
_basever=${pkgver%%+*}
_commit=<%== $kde_fork_revision->[1] %> _commit=<%== $kde_fork_revision->[1] %>
% } % }
pkgdesc='A cross-platform application and UI framework, <%= $opengl_backend %> OpenGL backend (mingw-w64)' pkgdesc='A cross-platform application and UI framework, <%= $opengl_backend %> OpenGL backend (mingw-w64)'
@ -43,7 +42,7 @@ url='https://www.qt.io/'
license=('GPL3' 'LGPL3' 'FDL' 'custom') license=('GPL3' 'LGPL3' 'FDL' 'custom')
depends=('mingw-w64-crt' 'mingw-w64-zlib' 'mingw-w64-libjpeg-turbo' 'mingw-w64-sqlite' depends=('mingw-w64-crt' 'mingw-w64-zlib' 'mingw-w64-libjpeg-turbo' 'mingw-w64-sqlite'
'mingw-w64-libpng' 'mingw-w64-openssl' 'mingw-w64-dbus' 'mingw-w64-harfbuzz' 'mingw-w64-libpng' 'mingw-w64-openssl' 'mingw-w64-dbus' 'mingw-w64-harfbuzz'
'mingw-w64-pcre2'<%== $static_variant ? " 'mingw-w64-zstd'" : "" %>) 'mingw-w64-pcre2')
% if ($static_variant) { % if ($static_variant) {
depends+=(${pkgname%-static}) # the static version relies on the shared version for build tools and headers depends+=(${pkgname%-static}) # the static version relies on the shared version for build tools and headers
% } % }
@ -88,14 +87,14 @@ _architectures='i686-w64-mingw32 x86_64-w64-mingw32'
% if ($kde_fork_revision) { % if ($kde_fork_revision) {
pkgver() { pkgver() {
cd $_pkgfqn cd $_pkgfqn
echo "$_basever+kde+r"`git rev-list --count v$_basever-lts-lgpl..$_commit` echo "5.15.2+kde+r"`git rev-list --count origin/5.15.2..$_commit`
} }
% } % }
prepare() { prepare() {
cd "${srcdir}/${_pkgfqn}" cd "${srcdir}/${_pkgfqn}"
% if ($kde_fork_revision && defined $kde_fork_revision->[2]) { % if ($kde_fork_revision) {
git revert -n <%== $kde_fork_revision->[2] %> # Revert version bump git revert -n <%== $kde_fork_revision->[2] %> # Revert version bump
% } % }

View File

@ -23,12 +23,7 @@ pkgname=mingw-w64-qt5-<%== $qt_module %><%== $static_variant ? '-static' : '' %>
<%== content %>\ <%== content %>\
% if ($kde_fork_revision) { % if ($kde_fork_revision) {
_commit=<%== $kde_fork_revision->[1] %> _commit=<%== $kde_fork_revision->[1] %>
_basever=${pkgver%%+*}
% if ($kde_fork_revision->[0] > 0) {
pkgver+=+kde+r<%== $kde_fork_revision->[0] %> pkgver+=+kde+r<%== $kde_fork_revision->[0] %>
% }
makedepends+=('git')
% } elsif (stash('is_lts')) {
makedepends+=('git') makedepends+=('git')
% } % }
options=('!strip' '!buildflags' 'staticlibs') options=('!strip' '!buildflags' 'staticlibs')
@ -37,15 +32,12 @@ url='https://www.qt.io/'
% if ($kde_fork_revision) { % if ($kde_fork_revision) {
_pkgfqn=${_qt_module} _pkgfqn=${_qt_module}
source=(git+https://invent.kde.org/qt/qt/$_pkgfqn#commit=$_commit\ source=(git+https://invent.kde.org/qt/qt/$_pkgfqn#commit=$_commit\
% } elsif (stash('is_lts')) {
_pkgfqn=${_qt_module}
source=(git+https://code.qt.io/qt/$_pkgfqn.git#tag=v${pkgver}-lts\
% } else { % } else {
_pkgfqn="${_qt_module}-everywhere-src-${pkgver}" _pkgfqn="${_qt_module}-everywhere-src-${pkgver}"
source=("https://download.qt.io/official_releases/qt/${pkgver%.*}/${pkgver}/submodules/${_pkgfqn}.tar.xz"\ source=("https://download.qt.io/official_releases/qt/${pkgver%.*}/${pkgver}/submodules/${_pkgfqn}.tar.xz"\
% } % }
<%== include 'fragments/source_file_list', relevant_files => $patch_files %>) <%== include 'fragments/source_file_list', relevant_files => $patch_files %>)
% if ($qt_module_sha256 =~ qr/missing/) { % if ($kde_fork_revision) {
sha256sums=('SKIP'\ sha256sums=('SKIP'\
% } else { % } else {
sha256sums=('<%== $qt_module_sha256 %>'\ sha256sums=('<%== $qt_module_sha256 %>'\
@ -78,14 +70,14 @@ _configurations+=('CONFIG+=actually_a_shared_build <%== content_for 'shared_conf
% if ($kde_fork_revision) { % if ($kde_fork_revision) {
pkgver() { pkgver() {
cd $_pkgfqn cd $_pkgfqn
echo "$_basever+kde+r"`git rev-list --count v$_basever-lts-lgpl..$_commit` echo "5.15.2+kde+r"`git rev-list --count origin/5.15.2..$_commit`
} }
% } % }
% if ($patch_files->size || content_for('prepare')->size || $kde_fork_revision) { % if ($patch_files->size || content_for('prepare')->size || $kde_fork_revision) {
prepare() { prepare() {
cd "${srcdir}/${_pkgfqn}" cd "${srcdir}/${_pkgfqn}"
% if ($kde_fork_revision && defined $kde_fork_revision->[2]) { % if ($kde_fork_revision) {
git revert -n <%== $kde_fork_revision->[2] %> # Revert version bump git revert -n <%== $kde_fork_revision->[2] %> # Revert version bump
% } % }

View File

@ -14,14 +14,14 @@
% } % }
pkgname=<%= $package_name %> pkgname=<%= $package_name %>
_qtver=6.7.1 _qtver=6.1.3
pkgver=${_qtver/-/} pkgver=${_qtver/-/}
pkgrel=1 pkgrel=1
arch=(any) arch=(any)
url='https://www.qt.io' url='https://www.qt.io'
license=(GPL3 LGPL3 FDL custom) license=(GPL3 LGPL3 FDL custom)
pkgdesc='A cross-platform application and UI framework (mingw-w64)' pkgdesc='A cross-platform application and UI framework (mingw-w64)'
depends=('mingw-w64-crt' 'mingw-w64-cppwinrt' 'mingw-w64-zlib' 'mingw-w64-libjpeg-turbo' 'mingw-w64-sqlite' depends=('mingw-w64-crt' 'mingw-w64-zlib' 'mingw-w64-libjpeg-turbo' 'mingw-w64-sqlite'
'mingw-w64-libpng' 'mingw-w64-openssl' 'mingw-w64-dbus' 'mingw-w64-harfbuzz' 'mingw-w64-libpng' 'mingw-w64-openssl' 'mingw-w64-dbus' 'mingw-w64-harfbuzz'
'mingw-w64-brotli' 'mingw-w64-pcre2' 'mingw-w64-zstd') 'mingw-w64-brotli' 'mingw-w64-pcre2' 'mingw-w64-zstd')
makedepends=('mingw-w64-cmake<%= $static_suffix %>' 'mingw-w64-postgresql' 'mingw-w64-mariadb-connector-c' makedepends=('mingw-w64-cmake<%= $static_suffix %>' 'mingw-w64-postgresql' 'mingw-w64-mariadb-connector-c'
@ -38,13 +38,7 @@ source=("https://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/subm
sha256sums=('<%== $qt_module_sha256 %>'\ sha256sums=('<%== $qt_module_sha256 %>'\
<%== include 'fragments/sha256_list', relevant_files => $patch_files %>) <%== include 'fragments/sha256_list', relevant_files => $patch_files %>)
# disable i686 build because 32-bit Windows is generally not supported by upstream and _architectures='i686-w64-mingw32 x86_64-w64-mingw32'
# it does not build anymore as of GCC 14 (probably due to commit 9a19fa8b616f83474c35cc5b34a3865073ced829)
# remarks:
# - This is in-line with MSYS2's packaging of mingw-w64 Qt 6 packages.
# - You may override MINGW_W64_QT6_ARCHS by adding the variable to `/etc/makepkg.conf` in case you
# nevertheless want to attempt the i686 build.
_architectures=${MINGW_W64_QT6_ARCHS:-x86_64-w64-mingw32}
% if ($patch_files->size || content_for('prepare')->size) { % if ($patch_files->size || content_for('prepare')->size) {
prepare () { prepare () {
@ -64,22 +58,12 @@ prepare () {
build() { build() {
for _arch in ${_architectures}; do for _arch in ${_architectures}; do
export PKG_CONFIG=/usr/bin/$_arch-pkg-config export PKG_CONFIG=/usr/bin/$_arch-pkg-config
local _enable_winrt_support=ON
if [[ ! -e /usr/${_arch}/include/winrt/Windows.Foundation.h ]]; then
echo "cppwinrt headers seem incomplete, disabling FEATURE_cpp_winrt"
_enable_winrt_support=OFF
fi
$_arch-cmake<%== $static_suffix %> -G Ninja -B build-$_arch -S $_pkgfqn \\ $_arch-cmake<%== $static_suffix %> -G Ninja -B build-$_arch -S $_pkgfqn \\
-DCMAKE_CXX_STANDARD=20 \\
-DCMAKE_CXX_FLAGS="$CXX_FLAGS -std=c++20" \\
% if ($static_variant) { % if ($static_variant) {
-DCMAKE_INSTALL_PREFIX:PATH="/usr/$_arch/static" \\ -DCMAKE_INSTALL_PREFIX:PATH="/usr/$_arch/static" \\
-DFEATURE_static_runtime=ON \\ -DFEATURE_static_runtime=ON \\
-DFEATURE_openssl_linked=ON \\ -DFEATURE_openssl_linked=ON \\
% } % }
-DFEATURE_cpp_winrt=$_enable_winrt_support \\
-DFEATURE_pkg_config=ON \\ -DFEATURE_pkg_config=ON \\
-DFEATURE_system_pcre2=ON \\ -DFEATURE_system_pcre2=ON \\
-DFEATURE_system_freetype=ON \\ -DFEATURE_system_freetype=ON \\
@ -101,7 +85,7 @@ package() {
for _arch in ${_architectures}; do for _arch in ${_architectures}; do
DESTDIR="$pkgdir" cmake --install build-$_arch DESTDIR="$pkgdir" cmake --install build-$_arch
install -Dm644 $_pkgfqn/LICENSES/* -t "$pkgdir"/usr/share/licenses/$pkgname install -Dm644 $_pkgfqn/LICENSE* -t "$pkgdir"/usr/share/licenses/$pkgname
% unless ($static_variant) { % unless ($static_variant) {
# Add symlinks of DLLs in usual bin directory # Add symlinks of DLLs in usual bin directory

View File

@ -15,7 +15,7 @@ _pkgfqn="qt<%== $qt_module %>-everywhere-src-${_qtver}"
sha256sums=('<%== stash('git_commit') ? 'SKIP' : $qt_module_sha256 %>'\ sha256sums=('<%== stash('git_commit') ? 'SKIP' : $qt_module_sha256 %>'\
<%== include 'fragments/sha256_list', relevant_files => $patch_files %>) <%== include 'fragments/sha256_list', relevant_files => $patch_files %>)
_architectures=${MINGW_W64_QT6_ARCHS:-x86_64-w64-mingw32} _architectures='i686-w64-mingw32 x86_64-w64-mingw32'
% if ($patch_files->size || content_for('prepare')->size) { % if ($patch_files->size || content_for('prepare')->size) {
prepare () { prepare () {
@ -39,7 +39,6 @@ build() {
$_arch-cmake<%== $static_suffix %> -G Ninja -B build-$_arch -S $_pkgfqn \\ $_arch-cmake<%== $static_suffix %> -G Ninja -B build-$_arch -S $_pkgfqn \\
% if ($static_variant) { % if ($static_variant) {
-DCMAKE_INSTALL_PREFIX:PATH="/usr/$_arch/static" \\ -DCMAKE_INSTALL_PREFIX:PATH="/usr/$_arch/static" \\
-DCMAKE_DISABLE_FIND_PACKAGE_harfbuzz=TRUE \\
-DFEATURE_static_runtime=ON \\ -DFEATURE_static_runtime=ON \\
% } % }
-DFEATURE_pkg_config=ON<%== content_for 'additional_cmake_args' %> -DFEATURE_pkg_config=ON<%== content_for 'additional_cmake_args' %>

View File

@ -1,112 +0,0 @@
# 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.7.1
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-xcb-util-cursor 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 \\
-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 \\
-DQT_FEATURE_dynamicgl=OFF \\
-DQT_FEATURE_opengl_dynamic=OFF \\
-DGLIB2_USE_PKG_CONFIG=ON \\
-DWAYLAND_USE_PKG_CONFIG=ON \\
-DCMAKE_DISABLE_FIND_PACKAGE_harfbuzz=TRUE \\
-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 \\
-DGLESv2_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/LICENSES/* -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
}

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