Compare commits

..

1 Commits

Author SHA1 Message Date
Martchus de76ea4e68 Use templates for own projects 2020-12-01 17:21:14 +01:00
1182 changed files with 13182 additions and 35700 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

411
README.md
View File

@ -1,28 +1,20 @@
# PKGBUILDs
Contains PKGBUILD files for creating Arch Linux packages:
* Packages for my own applications and libraries such as
[Syncthing Tray](https://github.com/Martchus/syncthingtray),
[Tag Editor](https://github.com/Martchus/tageditor),
[Password Manager](https://github.com/Martchus/passwordmanager), ...
* Packages for my own applications and libraries such as [Syncthing Tray](https://github.com/Martchus/syncthingtray),
[Tag Editor](https://github.com/Martchus/tageditor), [Password Manager](https://github.com/Martchus/passwordmanager), ...
* Packages [I maintain in the AUR](https://aur.archlinux.org/packages/?O=0&SeB=M&K=Martchus&outdated=&SB=v&SO=d&PP=50&do_Search=Go):
* misc packages, eg. Subtitle Composer, openelec-dvb-firmware, Jangouts
* `mingw-w64-*` packages which allow to build for Windows under Arch Linux,
eg. FreeType 2, Qt 5 and Qt 6
* `static-compat-*` packages containing static libraries to build self-contained
applications running on older GNU/Linux distributions under Arch Linux
* `android-*` packages which allow to build for Android under Arch Linux,
eg. iconv, Boost, OpenSSL, CppUnit, Qt 5 and Kirigami
* `apple-darwin-*` packages which allow to build for MaxOS X under Arch
Linux, eg. osxcross and Qt 5 (still experimental)
* mingw-w64 packages which allow to build for Windows under Arch Linux, eg. FreeType 2 and Qt 5
* android packages which allow to build for Android under Arch Linux, eg. iconv, Boost, OpenSSL, CppUnit, Qt 5 and Kirigami
* apple-darwin packages which allow to build for MaxOS X under Arch Linux, eg. osxcross and Qt 5 (still experimental)
* Other packages imported from the AUR to build with slight modifications
So if you like to improve one of my AUR packages, just create a PR here.
## Binary repository
I also provide a [binary repository](https://martchus.no-ip.biz/repo/arch/ownstuff/os)
containing the packages found in this repository and a lot of packages found in
the AUR:
I also provide a [binary repository](https://martchus.no-ip.biz/repo/arch/ownstuff/os) containing the packages found
in this repository and a lot of packages found in the AUR:
```
[ownstuff-testing]
@ -36,195 +28,38 @@ Server = https://martchus.no-ip.biz/repo/arch/$repo/os/$arch
Server = https://ftp.f3l.de/~martchus/$repo/os/$arch
```
The testing repository is required if you have the official testing repository
enabled. (Packages contained by ownstuff-testing are linked against packages
found in the official testing repository.)
The testing repository is required if you have also enabled the official testing repository. (Packages contained by ownstuff-testing
are linked against packages found in the official testing repository.)
The repository is focusing on x86_64 but some packages are also provided for
i686 and aarch64.
The repository is focusing on x86_64 but some packages are also provided for i686 and aarch64.
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
packages from staging).
Note that I can not assure that required rebuilds always happen fast enough (since the offical developers obviously don't wait for
me before releasing their packages from staging).
Requests regarding binary packages can be tracked on the issue tracker of this
GitHub project as well, e.g. within the [general discussion
issue](https://github.com/Martchus/PKGBUILDs/issues/94).
## Container image, building packages within a container
The directory `devel/container` contains the script `imagebuild` to build a
container image suitable to run Arch Linux's `makepkg` script so you can build
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.
## Docker image
Checkout the repository [docker-mingw-qt5](https://github.com/mdimura/docker-mingw-qt5).
## Structure
Each package is in its own subdirectoy:
```
default-pkg-name/variant
```
where `default-pkg-name` is the default package name (eg. `qt5-base`) and
`variant` usually one of:
where `default-pkg-name` is the default package name (eg. `qt5-base`) and `variant` usually one of:
* `default`: the regular package
* `git`/`svn`/`hg`: the development version
* `mingw-w64`: the Windows version (i686/dw2 and x86_64/SEH)
* `android-{aarch64,armv7a-eabi,x86-64,x86}`: the Android version (currently
only aarch64 actively maintained/tested)
* `mingw-w64`: the Windows version (i686/SJLJ and x86_64/SEH)
* `android-{aarch64,armv7a-eabi,x86-64,x86}`: the Android version (currently only aarch64 actively maintained/tested)
* `apple-darwin`: the MacOS X version (still experimental)
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
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.
The `PKGBUILD` file is only present for read-only purposes in this case - do
*not* edit it manually. Instead, edit the `PKGBUILD.sh.ep` file and invoke
`devel/generator/generate.pl`. This requires the `perl-Mojolicious` package to
be installed. Set the environment variable `LOG_LEVEL` to adjust the log level
(e.g. `debug`/`info`/`warn`/`error`). Template layouts/fragments are stored
within `generator/templates`.
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. The `PKGBUILD` file is only present for read-only purposes in
this case - do *not* edit it manually. Instead, edit the `PKGBUILD.sh.ep` file and invoke `devel/generator/generate.pl`.
This requires the `perl-Mojolicious` package to be installed. Set the environment variable `LOG_LEVEL` to adjust the
log level (e.g. `debug`/`info`/`warn`/`error`). Template layouts/fragments are stored within `generator/templates`.
### Documentation about the used templating system
* [Syntax](https://mojolicious.org/perldoc/Mojo/Template#SYNTAX)
@ -232,195 +67,37 @@ within `generator/templates`.
* [Utilities](https://mojolicious.org/perldoc/Mojo/Util)
## Contributing to patches
Patches for most packages are managed in a fork of the project under my GitHub
profile. For instance, patches for `mingw-w64-qt5-base` are managed at
[github.com/Martchus/qtbase](https://github.com/Martchus/qtbase).
Patches for most packages are managed in a fork of the project under my GitHub profile. For instance,
patches for `mingw-w64-qt5-base` are managed at [github.com/Martchus/qtbase](https://github.com/Martchus/qtbase).
I usually create a dedicated branch for each version, eg. `5.10.1-mingw-w64`. It
contains all the patches based on Qt 5.10.1. When doing fixes later on, I
usually preserve the original patches and create a new branch, eg.
I usually create a dedicated branch for each version, eg. `5.10.1-mingw-w64`. It contains all the patches based on
Qt 5.10.1. When doing fixes later on, I usually preserve the original patches and create a new branch, eg.
`5.10.1-mingw-w64-fixes`.
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
to keep the number of additional changes as small as possible.
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 to keep the number of additional changes as small as possbile.
To get the patches into the PKGBUILD files, the script
`devel/qt5/update-patches.sh` is used.
To get the patches into the PKGBUILD files, the script `devel/qt5/update-patches.sh` is used.
### Mass rebasing of Qt patches
This is always done by me. Please don't try to help here because it will only
cause conflicts. However, the workflow is quite simple:
This is always done by me. Please don't try to help here because it will only cause conflicts. However, the
workflow is quite simple:
1. Run `devel/qt5/rebase-patches.sh` on all Qt repository forks or just
`devel/qt5/rebase-all-patches.sh`
* eg. `rebase-patches.sh 5.11.0 5.10.1 mingw-w64-fixes` to create branch
`5.11.0-mingw-w64` based on `5.10.1-mingw-w64-fixes`
* after fixing possible conflicts, run
`devel/qt5/continue-rebase-patches.sh`
1. Run `devel/qt5/rebase-patches.sh` on all Qt repository forks or just `devel/qt5/rebase-all-patches.sh`
* eg. `rebase-patches.sh 5.11.0 5.10.1 fixes` to create branch `5.11.0-mingw-w64` based on `5.10.1-mingw-w64-fixes`
* after fixing possible conflicts, run `devel/qt5/continue-rebase-patches.sh`
* otherwise, that's it
* all scripts need to run in the Git repository directory of the Qt module
except `rebase-all-patches.sh` which needs the environment variable
`QT_GIT_REPOS_DIR` to be set
2. Run `devel/qt5/update-patches.sh` or `devel/qt5/update-all-patches.sh` to
update PKGBUILDs
* eg. `devel/qt5/update-all-patches.sh "" mingw-w64 qt6` to consider all
mingw-w64-qt6-\* packages
* all scripts need to run in the Git repository directory of the Qt module except `rebase-all-patches.sh` which needs
the environment variable `QT_GIT_REPOS_DIR` to be set
2. Run `devel/qt5/update-patches.sh` or `devel/qt5/update-all-patches.sh` to update PKGBUILDs
## Brief documentation about mingw-w64-qt packages
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
static builds targeting mingw-w64. They are also relying a lot on their bundled
libraries while my builds aim to build dependencies separately. So expect some
rough edges when using my packaging.
## Supported build and deployment tools for mingw-w64-qt5 packages
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 the PKGBUILD file itself and the pinned comments in
[the AUR](https://aur.archlinux.org/packages/mingw-w64-qt5-base) for futher information.
Nevertheless it make sense to follow the official documentation. For concrete
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
a [section about mingw-w64
packaging](https://wiki.archlinux.org/index.php/MinGW_package_guidelines).
There are also pkgconfig files, but those aren't really tested.
Note that the ANGLE and "dynamic" variants of Qt 5 packages do not work because
they would require `fxc.exe` to build.
qbs and windeployqt currently don't work very well (see issues). Using mxedeployqt might be an alternative for
windeployqt.
### Tested build and deployment tools for mingw-w64-qt5 packages
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
the PKGBUILD file itself and the pinned comments in [the
AUR](https://aur.archlinux.org/packages/mingw-w64-qt5-base) for further
information.
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
static libraries or mxedeployqt might be an alternative to windeployqt.
### 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
to install the regular `qt6-base` package for development tools such as `moc`.
The packages `qt6-tools`, `qt6-declarative` and `qt6-shadertools` contain also
native binaries which might be required by some projects. At this point the
setup can break if the version of regular packages and the versions of the
mingw-w64 packages differ. I cannot do anything about it except trying to
upgrade the mingw-w64 packages as fast as possible. There's actually a lengthy
discussion about this topic on the
[Qt development mailinglist](https://lists.qt-project.org/pipermail/development/2021-September/041732.html)
so the situation might improve in the future. Note that as of
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
static libraries. The static libraries are installed into a nested prefix
(`/usr/i686-w64-mingw32/static` and `/usr/x86_64-w64-mingw32/static`) so this
prefix needs to be prepended to `CMAKE_FIND_ROOT_PATH` for using the static
libraries. To generally prefer static libraries one might use the helper scripts
provided by the `mingw-w64-cmake-static` package.
The build systems qbs and qmake are not tested. It looks like Qt's build system
does not install pkg-config files anymore and so far no effort has been taken to
enable them.
Note that windeployqt needed to be enabled by the official/regular `qt6-tools`
package but would likely not work very well anyways. Using the static libraries
or mxdeployqt might be an alternative for windeployqt.
### Static plugins and CMake
Qt 5 initially didn't support it so I added patches to make it work. After Qt 5
added support I still kept my own version because I didn't want to risk any
regressions (which would be tedious to deal with). So the [official
documentation](https://doc.qt.io/qt-5/qtcore-cmake-qt-import-plugins.html) does
**not** apply to my packages. One simply has to link against the targets of the
wanted static plugins manually.
However, for Qt 6 I dropped my patches and the official documentation applies. I
would still recommended to set the target property `QT_DEFAULT_PLUGINS` of
relevant targets to `0` and link against wanted plugin targets manually. At
least in my cases the list of plugins selected by default seemed needlessly
long. I would also recommended to set the CMake variable
`QT_SKIP_AUTO_QML_PLUGIN_INCLUSION` to a falsy value because this pulls in a lot
of dependencies which are likely not needed.
### Further documentation
The directory `qt5-base/mingw-w64` contains also a README with more Qt 5
specific information.
## Running Windows executables built using mingw-w64 packages with WINE
It is recommended to use the scripts `x86_64-w64-mingw32-wine` and
`i686-w64-mingw32-wine` provided by the `mingw-w64-wine` package. These scripts
are a wrapper around the regular `wine` binary ensuring all the DLLs provided by
`mingw-w64-*`-packages of the relevant architecture can be located. It also uses
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.
Here are nevertheless some useful hints to run WINE manually:
* Set the environment variable `WINEPREFIX` to use a distinct WINE-prefix if
wanted.
* Set `WINEPATH` for the search directories of needed DLLs, e.g.
`WINEPATH=$builds/libfoo;$builds/libbar;/usr/x86_64-w64-mingw32`.
* Set `WINEARCH` to `win32` for a 32-bit environment (`win64` is the default
which will get you a 64-bit environment)
* Set `WINEDLLOVERRIDES` to control loading DLLs, e.g.
`WINEDLLOVERRIDES=mscoree,mshtml=` disables the annoying Gecko popup.
* To set environment variables like `PATH` or `QT_PLUGIN_PATH` for the Windows
program itself use the following approach:
1. Open `regedit`
2. Go to `HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment`
3. Add/modify the variable, e.g. set
`PATH=C:\windows\system32;C:\windows;Z:\usr\x86_64-w64-mingw32\bin` and
`QT_PLUGIN_PATH=Z:/usr/x86_64-w64-mingw32/lib/qt6/plugins`
* It is possible to run apps in an headless environment but be aware that WINE
is not designed for this. For instance, when an application crashes WINE
still attempts to show the crash window and the application stays stuck in
that state.
* See https://wiki.winehq.org/Wine_User's_Guide for more information
## Static GNU/Linux libraries
This repository contains several `static-compat-*` packages providing static
libraries intended to distribute "self-contained" executables. These libraries
are built against an older version of glibc to be able to run on older
distributions without having to link against glibc statically. The resulting
binaries should run on distributions with glibc 2.26 or newer (or Linux 4.4 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
`/usr/bin/g++`. The package `static-compat-environment` provides a script to set
a few environment variables to make this easier. There are also packages
providing build system wrappers such as `static-compat-cmake`.
It would be conceivable to make fully statically linked executables. However, it
would not be possible to support OpenGL because glvnd and vendor provided OpenGL
libraries are always dynamic libraries. It makes also no sense to link against
glibc (and possibly other core libraries) statically as they might use `dlopen`.
Therefore this setup aims for a partially statically linked build instead, where
stable core libraries like glibc/pthreads/OpenGL/… are assumed to be provided by
the GNU/Linux system but other libraries like libstdc++, Boost and Qt are linked
against statically. This is similar to AppImage where a lot of libraries are
bundled but certain core libraries are expected to be provided by the system.
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
`/usr/static-compat` (in contrast to `-static` packages found in the AUR). The
main reason is that my packaging requires a custom glibc/GCC build for
compatibility and I suppose that simply needs to live within its own prefix.
Besides, the version might not be kept 100 % in sync with the shared
counterpart. Hence it makes sense to make the static packages independent with
their own headers and configuration files to avoid problems due to mismatching
versions. Additionally, some projects (such as Qt) do not support installing
shared and static libraries within the same prefix at the same time because the
config files would clash.
## Copyright notice and license
Copyright © 2015-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

@ -1,69 +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=arch-repo-manager
pkgname=arch-repo-manager-git
_name=${pkgname%-git}
_liburing=OFF
pkgver=340.599185d
pkgrel=3
arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64')
pkgdesc='Tool for managing custom Arch Linux repositories'
license=('GPL')
depends=('libc++utilities-git.so' 'libpasswordfile-git.so' 'libboost_filesystem.so' 'libarchive.so' 'libcrypto.so' 'libssl.so' 'lmdb'
'devtools-custom>=1.1.1')
[[ $_liburing != OFF ]] && depends+=('liburing.so')
optdepends=('reflective-rapidjson-git: development with libpkg/librepomgr'
"$_name-doc: API documentation")
makedepends=('cmake' 'git' 'ninja' 'boost' 'catch2' 'rapidjson-git' 'reflective-rapidjson-git')
checkdepends=('cppunit')
provides=(libpkg-git.so librepomgr-git.so)
options=(debug)
url="https://github.com/Martchus/${_reponame}"
source=("${_reponame}::${MARTCHUS_GIT_URL_PREFIX:-git+https://github.com/Martchus}/${_reponame}.git"
"lmdb-safe::${MARTCHUS_GIT_URL_PREFIX:-git+https://github.com/Martchus}/lmdb-safe.git"
'tabulate::git+https://github.com/p-ranav/tabulate.git')
sha256sums=('SKIP' 'SKIP' 'SKIP')
pkgver() {
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame}"
echo "$(git rev-list --count HEAD).$(git rev-parse --short HEAD)"
}
prepare() {
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame}"
for submodule in tabulate lmdb-safe ; do
rm -r 3rdparty/$submodule
ln -sr ../$submodule 3rdparty/$submodule
done
}
build() {
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame}"
cmake \
-G Ninja \
-DCMAKE_BUILD_TYPE:STRING='RelWithDebInfo' \
-DCMAKE_INSTALL_PREFIX:PATH='/usr' \
-DCONFIGURATION_NAME:STRING='git' \
-DCONFIGURATION_PACKAGE_SUFFIX:STRING='-git' \
-DCONFIGURATION_TARGET_SUFFIX:STRING='git' \
-DBUILD_SHARED_LIBS:BOOL=ON \
-DDUMMY_BUILD_ACTION_ENABLED:BOOL=ON \
-DREFLECTION_GENERATOR_EXECUTABLE:FILEPATH='/usr/bin/reflective_rapidjson_generator-git' \
-DBOOST_ASIO_IO_URING:BOOL=$_liburing \
.
VERBOSE=1 ninja
}
check() {
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame}"
ninja check
}
package() {
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame}"
DESTDIR="${pkgdir}" ninja install
}

View File

@ -2,7 +2,7 @@
# Contributor: Florian Bruhin (The Compiler) <archlinux.org@the-compiler.org>
pkgname=baikal
pkgver=0.9.5
pkgver=0.7.2
pkgrel=1
pkgdesc='Lightweight CalDAV+CardDAV server'
url='http://sabre.io/baikal/'
@ -12,23 +12,19 @@ depends=('php')
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"
'baikal.install')
sha512sums=('e544ed39047788bf001c81a44eb69a3db30a871253cb6bf12b54d5d476eaadc63d723192d41b67f2cf908a72d4c722def03d853df68b7fd464a4093e08ed0f19'
'4e28980100ce9fc820a6c40a9cd528a90d62997ac18fb4ea353d8eaba58b320f9c653ba9b066036ff598f1d5a0aafb49ba444f9187c0d3616cbe6fa45222ca3f')
sha1sums=('c5a5bd45c89e03603a2629cf90c705c3fbda34e6'
'deb948e61c3cd8d6ad560321f78c0b288f7a6210')
options=('!strip')
install=baikal.install
prepare() {
cd "${srcdir}/baikal/vendor/sabre/dav"
}
package() {
cd "${srcdir}/baikal"
install -dm 755 "$pkgdir"/usr/share/{webapps,doc}"/$pkgname"
install -dm 700 "$pkgdir/var/lib/$pkgname"
install -dm 700 "$pkgdir/var/lib/$pkgname/config"
install -dm 700 -o http -g http "$pkgdir/var/lib/$pkgname"
install -dm 700 -o http -g http "$pkgdir/var/lib/$pkgname/config"
cp -R Core html vendor "$pkgdir/usr/share/webapps/$pkgname"
install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname"
install -Dm644 CHANGELOG.md README.md "$pkgdir/usr/share/doc/$pkgname"
ln -s "/var/lib/$pkgname" "$pkgdir/usr/share/webapps/$pkgname/Specific"
ln -s "/var/lib/$pkgname/config" "$pkgdir/usr/share/webapps/$pkgname/config"
}

View File

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

View File

@ -4,8 +4,8 @@
# you also find the URL of a binary repository.
pkgname=bento4
pkgver=1.6.0.641
_pkgverstr=1-6-0-641
pkgver=1.6.0.637
_pkgverstr=1-6-0-637
pkgrel=1
pkgdesc='C++ class library and tools designed to read and write ISO-MP4 files'
arch=('i686' 'x86_64' 'arm' 'armv6h' 'armv7h' 'aarch64')
@ -14,34 +14,26 @@ license=('GPL')
makedepends=('cmake')
optdepends=('python')
source=("http://zebulon.bok.net/Bento4/source/Bento4-SRC-${_pkgverstr}.zip")
sha256sums=('8258faf0de7253f2aac016018f33d4a04c16d9060735e14ec8711f84aaedf0c8')
sha1sums=('45b627e73253a3e03fa31af3b843f2c194f85793')
build() {
cd "${srcdir}"
sed -i "s/ STATIC / SHARED /" CMakeLists.txt
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="/usr" -DCMAKE_SKIP_BUILD_RPATH=ON
cmake --build .
make
}
package() {
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
suffix=-bento4
for conflicting_file in mp4extract mp4info; do
mv "${pkgdir}/usr/bin/$conflicting_file" "${pkgdir}/usr/bin/$conflicting_file$suffix"
find "${pkgdir}/usr/lib/bento4" -iname '*.py' -exec sed -i -e "s#\(Bento4Command(.*\)\b$conflicting_file\b#\1$conflicting_file$suffix#g" {} \;
mv $conflicting_file $conflicting_file-bento4
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
# installation when /usr/i686-w64-mingw32 and /usr/x86_64-w64-mingw32 are
# bound from another partition.
_targets="i686-w64-mingw32 x86_64-w64-mingw32"
pkgname=mingw-w64-binutils-symlinks
pkgver=2.42
pkgver=2.32
pkgrel=1
pkgdesc="Cross binutils for the MinGW-w64 cross-compiler"
arch=('x86_64')
pkgdesc="Cross binutils for the MinGW-w64 cross-compiler (uses symlinks instead of hard links)"
arch=('i686' '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)
license=('GPL')
groups=('mingw-w64-toolchain' 'mingw-w64')
depends=('zlib')
provides=('mingw-w64-binutils')
conflicts=('mingw-w64-binutils');
conflicts=('mingw-w64-binutils')
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})
sha512sums=('1e4ee462513eadd3c540e4782f9661df62ecbcd4d6297d61dcc0845ae7d30243c57571787706af3bb4d561e4350609d7057307290e81d76290a301f159a6abc5'
sha256sums=('9b0d97b3d30df184d302bced12f976aa1e5fbf4b0be696cdebc6cca30411a46e'
'SKIP')
_targets="i686-w64-mingw32 x86_64-w64-mingw32"
prepare() {
cd "$srcdir"/binutils-${pkgver}
cd ${srcdir}/binutils-${pkgver}
#do not install libiberty
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() {
# 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 \
msg "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
make
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
msg "Installing ${_target} cross binutils"
cd ${srcdir}/binutils-${_target}
make DESTDIR=${pkgdir} install
done
cd "${pkgdir}/usr/bin"
for file in *; do
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.
pkgname=blackwidowcontrol
pkgver=1.1.0
pkgver=1.0.2
pkgrel=1
pkgdesc='Python script to enable macro keys of the Razer BlackWidow keyboard under GNU/Linux'
url='https://github.com/Martchus/blackwidowcontrol'
@ -12,7 +12,7 @@ arch=('any')
license=('GPL')
depends=('python-pyusb')
source=("${pkgname}-${pkgver}.tar.gz::https://github.com/Martchus/${pkgname}/archive/v${pkgver}.tar.gz")
sha256sums=('bd679a4574de8a4d2b7ab4d56bf57559cf3bff130104636b82d083a62251c00d')
sha256sums=('813a0726c78b8f057adf2d92a731c21e2afcd94d5b518625f4dc118db9d8216c')
package() {
local _srcdir="${srcdir}/${PROJECT_DIR_NAME:-$pkgname-$pkgver}"

View File

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

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

@ -1,50 +0,0 @@
# Contributor: Ronald van Haren <ronald.archlinux.org>
# Contributor: Judd <jvinet@zeroflux.org>
_pkgname=bzip2
pkgname=static-compat-$_pkgname
pkgver=1.0.8
pkgrel=1
pkgdesc="A high-quality data compression program"
arch=('x86_64')
license=('BSD')
url="https://sourceware.org/bzip2/"
depends=('glibc-static-compat')
makedepends=('static-compat-environment')
options=(staticlibs)
source=(https://sourceware.org/pub/bzip2/$_pkgname-$pkgver.tar.gz{,.sig}
bzip2.pc)
sha256sums=('ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269'
'SKIP'
'ad3c350428b73a1197e54d414a60fecfff23ecdd5059afd8ce2ca084d263064b')
validpgpkeys=('EC3CFE88F6CA0788774F5C1D1AA44BE649DE760A') # Mark Wielaard <mark@klomp.org>
prepare() {
cd $_pkgname-$pkgver
cp ../bzip2.pc bzip2.pc
sed "s|@VERSION@|$pkgver|" -i bzip2.pc
}
build() {
source static-compat-environment
cd $_pkgname-$pkgver
make libbz2.a CC="$CC $CFLAGS $CPPFLAGS $LDFLAGS"
}
check() {
source static-compat-environment
cd $_pkgname-$pkgver
make test
}
package() {
source static-compat-environment
cd $_pkgname-$pkgver
install -dm755 "$pkgdir/$static_compat_prefix"/{lib,include}
cp -a libbz2.a "$pkgdir/$static_compat_prefix"/lib
install -m644 bzlib.h "$pkgdir/$static_compat_prefix"/include/
install -Dm644 bzip2.pc -t "$pkgdir/$static_compat_prefix"/lib/pkgconfig
install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/${pkgname}/LICENSE
}

View File

@ -1,11 +0,0 @@
prefix=/usr/static
exec_prefix=/usr/static
bindir=${exec_prefix}/bin
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: bzip2
Description: A file compression library
Version: @VERSION@
Libs: -L${libdir} -lbz2
Cflags: -I${includedir}

View File

@ -5,7 +5,7 @@
_reponame=cpp-utilities
pkgname=c++utilities
pkgver=5.24.8
pkgver=5.8.0
pkgrel=1
arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64')
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")
makedepends=('cmake' 'ninja')
checkdepends=('cppunit')
provides=(libc++utilities.so)
url="https://github.com/Martchus/${_reponame}"
source=("${pkgname}-${pkgver}.tar.gz::https://github.com/Martchus/${_reponame}/archive/v${pkgver}.tar.gz")
sha256sums=('2175b45a53f5c71bb022aea1409535a82b115ce76dbcc5123b3be39f8557858a')
sha256sums=('20eb49249e94f07c09ee602246d2c74cd829c5f49b09559fced008e7b8651ce6')
prepare() {
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}"
}
build() {
cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}"

View File

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

View File

@ -6,7 +6,7 @@
_reponame=cpp-utilities
pkgname=c++utilities-git
_name=${pkgname%-git}
pkgver=989.6390182
pkgver=791.eadb261
pkgrel=2
arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'aarch64')
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")
makedepends=('cmake' 'git' 'ninja')
checkdepends=('cppunit')
provides=(libc++utilities-git.so)
#provides=("${_name}")
#conflicts=("${_name}")
url="https://github.com/Martchus/${_reponame}"
source=("${_reponame}::${MARTCHUS_GIT_URL_PREFIX:-git+https://github.com/Martchus}/${_reponame}.git")
sha256sums=('SKIP')

View File

@ -6,18 +6,18 @@
_reponame=cpp-utilities
pkgname=mingw-w64-c++utilities
_name=${pkgname#mingw-w64-}
pkgver=5.24.8
pkgver=5.8.0
pkgrel=1
arch=('any')
pkgdesc='Common C++ classes and routines such as argument parser, IO and conversion utilities (mingw-w64)'
license=('GPL')
depends=('mingw-w64-crt' 'mingw-w64-libiconv' 'mingw-w64-boost')
depends=('mingw-w64-crt' 'mingw-w64-libiconv')
optdepends=("$_name-doc: API documentation")
checkdepends=('mingw-w64-cppunit' 'mingw-w64-wine')
makedepends=('mingw-w64-gcc' 'mingw-w64-cmake' 'ninja')
url="https://github.com/Martchus/${_reponame}"
source=("${_name}-${pkgver}.tar.gz::https://github.com/Martchus/${_reponame}/archive/v${pkgver}.tar.gz")
sha256sums=('2175b45a53f5c71bb022aea1409535a82b115ce76dbcc5123b3be39f8557858a')
sha256sums=('20eb49249e94f07c09ee602246d2c74cd829c5f49b09559fced008e7b8651ce6')
options=(!buildflags staticlibs !strip !emptydirs)
_architectures=('i686-w64-mingw32' 'x86_64-w64-mingw32')
@ -68,7 +68,7 @@ check() {
msg2 "${_arch}-${_cfg}"
pushd "build-${_arch}-${_cfg}"
export WINEPATH="/usr/${_arch}/bin" WINEDEBUG=-all
[[ $_cfg == shared ]] && ninja check
ninja check || true
popd
done
done

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

View File

@ -1,42 +0,0 @@
# Maintainer: Gonzalo Exequiel Pedone <hipersayan DOT x AT gmail DOT com>
pkgname=android-cmake
pkgver=1
pkgrel=1
arch=('any')
pkgdesc="CMake wrapper for Android (android)"
depends=('cmake' 'android-environment' 'android-pkg-config')
license=("custom")
url="https://cmake.org/"
source=("android-cmake.sh"
"android-cmake-py.sh")
sha256sums=('SKIP'
'SKIP')
_architectures="aarch64 armv7a-eabi x86 x86-64"
_python_versions="27 35 36 37"
build() {
for _arch in ${_architectures}; do
source android-env ${_arch}
processor=$(basename ${ANDROID_CC})
processor="${processor%%-*}"
sed "s|@TRIPLE@|${_arch}|g" android-cmake.sh > android-${_arch}-cmake
for _pyver in ${_python_versions}; do
sed "s|@TRIPLE@|${_arch}|g;s|@PYMAJMIN@|${_pyver}|g" android-cmake-py.sh > android-${_arch}-cmake-py${_pyver}
done
done
}
package() {
install -d "${pkgdir}"/usr/bin
for _arch in ${_architectures}; do
source android-env ${_arch}
install -m 755 android-${_arch}-cmake "${pkgdir}"/usr/bin/
for _pyver in ${_python_versions}; do
install -m 755 android-${_arch}-cmake-py${_pyver} "${pkgdir}"/usr/bin/
done
done
}

View File

@ -1,9 +0,0 @@
#!/bin/sh
source android-env @TRIPLE@
android-@TRIPLE@-cmake \
-DPYTHON_INCLUDE_DIR=${ANDROID_PREFIX_INCLUDE}/python@PYMAJMIN@ \
-DPYTHON_LIBRARY=${ANDROID_PREFIX_LIB}/libpython@PYMAJMIN@.a \
-DPYTHON_EXECUTABLE=/usr/bin/android-@TRIPLE@-python@PYMAJMIN@-bin \
"$@"

View File

@ -1,33 +0,0 @@
#!/bin/sh
source android-env @TRIPLE@
default_android_pp_flags="-D_FORTIFY_SOURCE=2"
default_android_compiler_flags="$default_android_pp_flags -O2 -pipe -fno-plt -fexceptions --param=ssp-buffer-size=4"
default_android_linker_flags="-Wl,-O1,--sort-common,--as-needed"
export CPPFLAGS="${ANDROID_CPPFLAGS:-$default_android_pp_flags $CPPFLAGS}"
export CFLAGS="${ANDROID_CFLAGS:-$default_android_compiler_flags $CFLAGS}"
export CXXFLAGS="${ANDROID_CXXFLAGS:-$default_android_compiler_flags $CXXFLAGS}"
export LDFLAGS="${ANDROID_LDFLAGS:-$default_android_linker_flags $LDFLAGS}"
PATH=${ANDROID_PREFIX_BIN}:$PATH cmake \
-DCMAKE_INSTALL_PREFIX:PATH=${ANDROID_PREFIX} \
-DCMAKE_INSTALL_LIBDIR:PATH=lib \
-DINCLUDE_INSTALL_DIR:PATH=${ANDROID_PREFIX_INCLUDE} \
-DLIB_INSTALL_DIR:PATH=${ANDROID_PREFIX_LIB} \
-DSYSCONF_INSTALL_DIR:PATH=${ANDROID_PREFIX_ETC} \
-DSHARE_INSTALL_DIR:PATH=${ANDROID_PREFIX_SHARE} \
-DCMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES:PATH=${ANDROID_PREFIX_INCLUDE} \
-DCMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES:PATH=${ANDROID_PREFIX_INCLUDE} \
-DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK_HOME}/build/cmake/android.toolchain.cmake \
-DBUILD_SHARED_LIBS:BOOL=ON \
-DCMAKE_BUILD_TYPE=Release \
-DANDROID_ABI=${ANDROID_ABI} \
-DANDROID_NDK=${ANDROID_NDK_HOME} \
-DANDROID_NATIVE_API_LEVEL=${ANDROID_MINIMUM_PLATFORM} \
-DANDROID_TOOLCHAIN=clang \
-DCMAKE_C_FLAGS_RELEASE="$CFLAGS" \
-DCMAKE_CXX_FLAGS_RELEASE="$CXXFLAGS" \
-DCMAKE_SHARED_LINKER_FLAGS_RELEASE="$LDFLAGS" \
"$@"

View File

@ -1,6 +1,6 @@
pkgname=mingw-w64-cmake-static
pkgver=1
pkgrel=4
pkgrel=1
arch=('any')
pkgdesc='CMake wrapper for MinGW (mingw-w64, static)'
depends=('mingw-w64-cmake')
@ -13,8 +13,10 @@ _architectures="i686-w64-mingw32 x86_64-w64-mingw32"
build() {
for _arch in ${_architectures}; do
sed "s|@TRIPLE@|${_arch}|g;s|@PROCESSOR@|${_arch::-12}|g" toolchain-mingw-static.cmake > toolchain-${_arch}-static.cmake
sed "s|@TRIPLE@|${_arch}|g" mingw-cmake-static.sh > ${_arch}-cmake-static
for _variant in '' '-static'; do
sed "s|@TRIPLE@|${_arch}|g;s|@PROCESSOR@|${_arch::-12}|g" toolchain-mingw-static.cmake > toolchain-${_arch}-static.cmake
sed "s|@TRIPLE@|${_arch}|g" mingw-cmake-static.sh > ${_arch}-cmake-static
done
done
}

View File

@ -5,8 +5,7 @@
include("/usr/share/mingw/toolchain-@TRIPLE@.cmake")
# prefer libraries from "static" sub-prefix
set(CMAKE_STATIC_PREFIX "/usr/@TRIPLE@/static")
set(CMAKE_FIND_ROOT_PATH "${CMAKE_STATIC_PREFIX};${CMAKE_FIND_ROOT_PATH}")
set(CMAKE_FIND_ROOT_PATH "/usr/@TRIPLE@/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
@ -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")
# 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_libbrotlienc_brotlienc "${CMAKE_STATIC_PREFIX}/lib/libbrotlienc.a;${CMAKE_STATIC_PREFIX}/lib/libbrotlicommon.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_libbrotlicommon_brotlicommon "/usr/@TRIPLE@/lib/libbrotlicommon-static.a" CACHE INTERNAL "static libbrotlicommon")
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 "/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(libbrotlienc_STATIC_LDFLAGS "${pkgcfg_lib_libbrotlienc_brotlienc}" CACHE INTERNAL "static libbrotliend")
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
# 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`).
@ -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(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(FREETYPE_DEPENDENCIES "-lbz2;-lharfbuzz;-lfreetype;-lbrotlidec;-lbrotlicommon" CACHE INTERNAL "dependencies of static FreeType2 library")
set(FREETYPE_DEPENDENCIES "-lbz2;-lharfbuzz;-lfreetype" 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(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)

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

View File

@ -1,13 +0,0 @@
[Trigger]
Type = Path
Operation = Install
Operation = Upgrade
Operation = Remove
Target = etc/dbus-1/system.d/*.conf
Target = usr/share/dbus-1/system.d/*.conf
Target = usr/share/dbus-1/system-services/*.service
[Action]
Description = Reloading system bus configuration...
When = PostTransaction
Exec = /usr/share/libalpm/scripts/systemd-hook reload dbus

View File

@ -1,13 +0,0 @@
diff --git i/dbus/dbus-internals.c w/dbus/dbus-internals.c
index ab498b15..cf86f4ae 100644
--- i/dbus/dbus-internals.c
+++ w/dbus/dbus-internals.c
@@ -193,7 +193,7 @@ static dbus_bool_t warn_initted = FALSE;
* threads, the worst that will happen is that warnings get their default
* fatal/non-fatal nature. */
static dbus_bool_t fatal_warnings = FALSE;
-static dbus_bool_t fatal_warnings_on_check_failed = TRUE;
+static dbus_bool_t fatal_warnings_on_check_failed = FALSE;
static void
init_warnings(void)

View File

@ -1,8 +1,7 @@
#!/bin/bash
set -e # abort on first error
shopt -s nullglob
bindir=$(dirname "$0")
source "$bindir/versions.sh"
source "$(dirname $0)/versions.sh"
for pkgbuild_file in "${PKGBUILD_DIR:-.}"/*/*/PKGBUILD; do
trimmed_path=${pkgbuild_file#${PKGBUILD_DIR:-.}/}
@ -13,23 +12,15 @@ for pkgbuild_file in "${PKGBUILD_DIR:-.}"/*/*/PKGBUILD; do
# skip Git packages
[ ${variant##*-} == 'git' ] && continue
# skip android packages (for now)
qt6_pattern='qt6-.*' is_qt6=
[[ $project_name =~ $qt6_pattern ]] && is_qt6=1
[ ${variant%%-*} == 'android' ] && [[ ! $is_qt6 ]] && continue
# skip some of the packages
[[ $project_name == 'qt5-quick1' # removed from official releases
|| $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-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)
]] && continue
# skip default qt6 packages (provided by Arch Linux itself)
[[ $is_qt6 ]] && [[ $variant == 'default' ]] && continue
# treat all qt5-*/qt6-* packages as qt5/qt6
start=${project_name%%-*}
for qtver in 5 6; do
@ -49,19 +40,10 @@ for pkgbuild_file in "${PKGBUILD_DIR:-.}"/*/*/PKGBUILD; do
# check if template exists and modify template instead
template=$pkgbuild_file.sh.ep
layoutname=$pkgname
[[ $layoutname =~ android-aarch64-.* ]] && layoutname=android-${pkgname##android-aarch64-}
layout=$bindir/generator/templates/layouts/$layoutname.sh.ep
if [[ -f $layout ]]; then
[[ $VERBOSE ]] && echo "Considering layout $pkgname.sh.ep for $trimmed_path"
pkgbuild_file=$layout
elif [[ -f $template ]]; then
[[ $VERBOSE ]] && echo "Considering template $trimmed_path.sh.ep for $trimmed_path"
pkgbuild_file=$template
fi
[[ -f $template ]] && pkgbuild_file=$template
# apply new version
sed -i -e "s/^\(_qtver\|pkgver\)=[^\$][^<%]*/\1=$version/" -e "s/pkgrel=.*/pkgrel=1/" "$pkgbuild_file"
sed -i -e "s/^\(_qtver\|pkgver\)=[^\$].*/\1=$version/" -e "s/pkgrel=.*/pkgrel=1/" "$pkgbuild_file"
chmod 644 "$pkgbuild_file"
echo "$trimmed_path -> $version"

View File

@ -1,356 +0,0 @@
# Maintainer: Matt Harrison <matt@harrison.us.com>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
pkgbase=php73
_pkgbase=${pkgbase%73}
pkgname=("${pkgbase}"
"${pkgbase}-cgi"
"${pkgbase}-apache"
"${pkgbase}-fpm"
"${pkgbase}-embed"
"${pkgbase}-phpdbg"
"${pkgbase}-dblib"
"${pkgbase}-enchant"
"${pkgbase}-gd"
"${pkgbase}-imap"
"${pkgbase}-intl"
"${pkgbase}-sodium"
"${pkgbase}-odbc"
"${pkgbase}-pgsql"
"${pkgbase}-pspell"
"${pkgbase}-snmp"
"${pkgbase}-sqlite"
"${pkgbase}-tidy"
"${pkgbase}-xsl")
pkgver=7.3.30
pkgrel=1
arch=('x86_64')
license=('PHP')
url='https://www.php.net/'
makedepends=('apache' 'aspell' 'c-client' 'db' 'enchant' 'gd' 'gmp' 'icu' 'libsodium' 'libxslt' 'libzip' 'net-snmp'
'postgresql-libs' 'sqlite' 'systemd' 'tidy' 'unixodbc' 'curl' 'libtool' 'postfix' 'freetds' 'pcre2' 'libnsl')
checkdepends=('procps-ng')
source=("https://php.net/distributions/${_pkgbase}-${pkgver}.tar.xz"{,.asc}
'apache.patch' 'apache.conf' 'php-fpm.patch' 'php-fpm.tmpfiles' 'php.ini.patch'
'enchant-2.patch' 'freetype.patch')
sha256sums=('0ebfd656df0f3b1ea37ff2887f8f2d1a71cd160fb0292547c0ee0a99e58ffd1b'
'SKIP'
'62e5ceea3c90a3c6eab1166488f876e766efcfd7d4e973c44060a9e72d51a98a'
'ebc0af1ef3a6baccb013d0ccb29923895a7b22ff2d032e3bba802dc6328301ce'
'7e4736dc63746e8b58f0d76ccbcd14cf5f221864b61ba16e2fc736e1ac22f41a'
'c28997b08d3ea257a2435164e35d0340f42cd3306def6a94b6b8c0a2f5644def'
'cd3b12c1cd5860f77325ef5405b987eca9cd894cbc99bde6ea4bdbed78ff5d46'
'3992491eebaf5b31f6b00095a7276d11682f9a8aaff473bfb25afbdcfa6eba32'
'07c4648669dc05afc3c1ad5a4739768079c423b817eabf5296ca3d1ea5ffd163')
validpgpkeys=('CBAF69F173A0FEA4B537F470D66C9593118BCCB6'
'F38252826ACD957EF380D39F2F7956BC5DA04B5D')
prepare() {
cd ${srcdir}/${_pkgbase}-${pkgver}
patch -p0 -i ${srcdir}/apache.patch
patch -p0 -i ${srcdir}/php-fpm.patch
patch -p0 -i ${srcdir}/php.ini.patch
patch -p1 -i ${srcdir}/enchant-2.patch
patch -p1 -i ${srcdir}/freetype.patch
autoconf
rm tests/output/stream_isatty_*.phpt
}
build() {
# http://site.icu-project.org/download/61#TOC-Migration-Issues
CPPFLAGS+=' -DU_USING_ICU_NAMESPACE=1'
local _phpconfig="--srcdir=../${_pkgbase}-${pkgver} \
--config-cache \
--prefix=/usr \
--sbindir=/usr/bin \
--sysconfdir=/etc/${pkgbase} \
--localstatedir=/var \
--libdir=/usr/lib/${pkgbase} \
--datarootdir=/usr/share/${pkgbase} \
--datadir=/usr/share/${pkgbase} \
--program-suffix=${pkgbase#php} \
--with-layout=GNU \
--with-config-file-path=/etc/${pkgbase} \
--with-config-file-scan-dir=/etc/${pkgbase}/conf.d \
--disable-rpath \
--mandir=/usr/share/man \
--without-pear \
"
local _phpextensions="\
--enable-bcmath=shared \
--enable-calendar=shared \
--enable-dba=shared \
--enable-exif=shared \
--enable-ftp=shared \
--enable-intl=shared \
--enable-mbstring \
--enable-shmop=shared \
--enable-soap=shared \
--enable-sockets=shared \
--enable-sysvmsg=shared \
--enable-sysvsem=shared \
--enable-sysvshm=shared \
--enable-zip=shared \
--with-bz2=shared \
--with-curl=shared \
--with-db4=/usr \
--with-enchant=shared,/usr \
--with-freetype-dir=/usr \
--with-gd=shared,/usr \
--with-gdbm \
--with-gettext=shared \
--with-gmp=shared \
--with-iconv=shared \
--with-imap-ssl \
--with-imap=shared \
--with-kerberos=/usr \
--with-ldap=shared \
--with-ldap-sasl \
--with-libzip \
--with-mhash \
--with-mysql-sock=/run/mysqld/mysqld.sock \
--with-mysqli=shared,mysqlnd \
--with-openssl \
--with-password-argon2 \
--with-pcre-regex=/usr \
--with-pdo-dblib=shared,/usr \
--with-pdo-mysql=shared,mysqlnd \
--with-pdo-odbc=shared,unixODBC,/usr \
--with-pdo-pgsql=shared \
--with-pdo-sqlite=shared,/usr \
--with-pgsql=shared \
--with-pspell=shared \
--with-readline \
--with-snmp=shared \
--with-sodium=shared \
--with-sqlite3=shared,/usr \
--with-tidy=shared \
--with-unixODBC=shared,/usr \
--with-xmlrpc=shared \
--with-xsl=shared \
--with-zlib \
--enable-pcntl \
"
EXTENSION_DIR=/usr/lib/${pkgbase}/modules
export EXTENSION_DIR
mkdir ${srcdir}/build
cd ${srcdir}/build
ln -s ../${_pkgbase}-${pkgver}/configure
./configure ${_phpconfig} \
--enable-cgi \
--enable-fpm \
--with-fpm-systemd \
--with-fpm-acl \
--with-fpm-user=http \
--with-fpm-group=http \
--enable-embed=shared \
${_phpextensions}
make
# apache
# reuse the previous run; this will save us a lot of time
cp -a ${srcdir}/build ${srcdir}/build-apache
cd ${srcdir}/build-apache
./configure ${_phpconfig} \
--with-apxs2 \
${_phpextensions}
make
# phpdbg
cp -a ${srcdir}/build ${srcdir}/build-phpdbg
cd ${srcdir}/build-phpdbg
./configure ${_phpconfig} \
--enable-phpdbg \
${_phpextensions}
make
}
package_php73() {
pkgdesc='A general-purpose scripting language that is especially suited to web development'
depends=('libxml2' 'curl' 'libzip' 'pcre2' 'argon2')
replaces=('php73-ldap')
conflicts=('php73-ldap')
provides=("php73-ldap=${pkgver}" "php")
backup=("etc/${pkgbase}/php.ini")
cd ${srcdir}/build
make -j1 INSTALL_ROOT=${pkgdir} install-{modules,cli,build,headers,programs,pharcmd}
install -D -m644 ${srcdir}/${_pkgbase}-${pkgver}/php.ini-production ${pkgdir}/etc/${pkgbase}/php.ini
install -d -m755 ${pkgdir}/etc/${pkgbase}/conf.d/
# remove static modules
rm -f ${pkgdir}/usr/lib/${pkgbase}/modules/*.a
# remove modules provided by sub packages
rm -f ${pkgdir}/usr/lib/${pkgbase}/modules/{enchant,gd,imap,intl,sodium,odbc,pdo_dblib,pdo_odbc,pgsql,pdo_pgsql,pspell,snmp,sqlite3,pdo_sqlite,tidy,xsl}.so
# remove empty directory
rmdir ${pkgdir}/usr/include/php/include
# move include directory
mv ${pkgdir}/usr/include/php ${pkgdir}/usr/include/${pkgbase}
# fix phar symlink
rm ${pkgdir}/usr/bin/phar
ln -sf phar.phar73 ${pkgdir}/usr/bin/phar73
# rename executables
mv ${pkgdir}/usr/bin/phar.phar ${pkgdir}/usr/bin/phar.phar73
# rename man pages
mv ${pkgdir}/usr/share/man/man1/{phar,phar73}.1
mv ${pkgdir}/usr/share/man/man1/phar.{phar,phar73}.1
# fix paths in executables
sed -i "/^includedir=/c \includedir=/usr/include/${pkgbase}" ${pkgdir}/usr/bin/phpize73
sed -i "/^include_dir=/c \include_dir=/usr/include/${pkgbase}" ${pkgdir}/usr/bin/php-config73
# make phpize use php-config73
sed -i "/^\[ --with-php-config=/c \[ --with-php-config=PATH Path to php-config [php-config73]], php-config73, no)" ${pkgdir}/usr/lib/${pkgbase}/build/phpize.m4
}
package_php73-cgi() {
pkgdesc='CGI and FCGI SAPI for PHP'
depends=("${pkgbase}")
cd ${srcdir}/build
make -j1 INSTALL_ROOT=${pkgdir} install-cgi
}
package_php73-apache() {
pkgdesc='Apache SAPI for PHP'
depends=("${pkgbase}" 'apache' 'libnsl')
backup=("etc/httpd/conf/extra/${pkgbase}_module.conf")
install -D -m755 ${srcdir}/build-apache/libs/libphp7.so ${pkgdir}/usr/lib/httpd/modules/lib${pkgbase}.so
install -D -m644 ${srcdir}/apache.conf ${pkgdir}/etc/httpd/conf/extra/${pkgbase}_module.conf
}
package_php73-fpm() {
pkgdesc='FastCGI Process Manager for PHP'
depends=("${pkgbase}" 'systemd')
backup=("etc/${pkgbase}/php-fpm.conf" "etc/${pkgbase}/php-fpm.d/www.conf")
options=('!emptydirs')
cd ${srcdir}/build
make -j1 INSTALL_ROOT=${pkgdir} install-fpm
install -D -m644 sapi/fpm/php-fpm.service ${pkgdir}/usr/lib/systemd/system/${pkgbase}-fpm.service
install -D -m644 ${srcdir}/php-fpm.tmpfiles ${pkgdir}/usr/lib/tmpfiles.d/${pkgbase}-fpm.conf
}
package_php73-embed() {
pkgdesc='Embedded PHP SAPI library'
depends=("${pkgbase}" 'systemd-libs' 'libnsl')
options=('!emptydirs')
cd ${srcdir}/build
make -j1 INSTALL_ROOT=${pkgdir} PHP_SAPI=embed install-sapi
mv ${pkgdir}/usr/lib/libphp7.so ${pkgdir}/usr/lib/libphp-73.so
}
package_php73-phpdbg() {
pkgdesc='Interactive PHP debugger'
depends=("${pkgbase}")
options=('!emptydirs')
cd ${srcdir}/build-phpdbg
make -j1 INSTALL_ROOT=${pkgdir} install-phpdbg
}
package_php73-dblib() {
pkgdesc='dblib module for PHP'
depends=("${pkgbase}" 'freetds')
install -D -m755 ${srcdir}/build/modules/pdo_dblib.so ${pkgdir}/usr/lib/${pkgbase}/modules/pdo_dblib.so
}
package_php73-enchant() {
pkgdesc='enchant module for PHP'
depends=("${pkgbase}" 'enchant')
install -D -m755 ${srcdir}/build/modules/enchant.so ${pkgdir}/usr/lib/${pkgbase}/modules/enchant.so
}
package_php73-gd() {
pkgdesc='gd module for PHP'
depends=("${pkgbase}" 'gd')
install -D -m755 ${srcdir}/build/modules/gd.so ${pkgdir}/usr/lib/${pkgbase}/modules/gd.so
}
package_php73-imap() {
pkgdesc='imap module for PHP'
depends=("${pkgbase}" 'c-client')
install -D -m755 ${srcdir}/build/modules/imap.so ${pkgdir}/usr/lib/${pkgbase}/modules/imap.so
}
package_php73-intl() {
pkgdesc='intl module for PHP'
depends=("${pkgbase}" 'icu')
install -D -m755 ${srcdir}/build/modules/intl.so ${pkgdir}/usr/lib/${pkgbase}/modules/intl.so
}
package_php73-sodium() {
pkgdesc='sodium module for PHP'
depends=("${pkgbase}" 'libsodium')
install -D -m755 ${srcdir}/build/modules/sodium.so ${pkgdir}/usr/lib/${pkgbase}/modules/sodium.so
}
package_php73-odbc() {
pkgdesc='ODBC modules for PHP'
depends=("${pkgbase}" 'unixodbc')
install -D -m755 ${srcdir}/build/modules/odbc.so ${pkgdir}/usr/lib/${pkgbase}/modules/odbc.so
install -D -m755 ${srcdir}/build/modules/pdo_odbc.so ${pkgdir}/usr/lib/${pkgbase}/modules/pdo_odbc.so
}
package_php73-pgsql() {
pkgdesc='PostgreSQL modules for PHP'
depends=("${pkgbase}" 'postgresql-libs')
install -D -m755 ${srcdir}/build/modules/pgsql.so ${pkgdir}/usr/lib/${pkgbase}/modules/pgsql.so
install -D -m755 ${srcdir}/build/modules/pdo_pgsql.so ${pkgdir}/usr/lib/${pkgbase}/modules/pdo_pgsql.so
}
package_php73-pspell() {
pkgdesc='pspell module for PHP'
depends=("${pkgbase}" 'aspell')
install -D -m755 ${srcdir}/build/modules/pspell.so ${pkgdir}/usr/lib/${pkgbase}/modules/pspell.so
}
package_php73-snmp() {
pkgdesc='snmp module for PHP'
depends=("${pkgbase}" 'net-snmp')
install -D -m755 ${srcdir}/build/modules/snmp.so ${pkgdir}/usr/lib/${pkgbase}/modules/snmp.so
}
package_php73-sqlite() {
pkgdesc='sqlite module for PHP'
depends=("${pkgbase}" 'sqlite')
install -D -m755 ${srcdir}/build/modules/sqlite3.so ${pkgdir}/usr/lib/${pkgbase}/modules/sqlite3.so
install -D -m755 ${srcdir}/build/modules/pdo_sqlite.so ${pkgdir}/usr/lib/${pkgbase}/modules/pdo_sqlite.so
}
package_php73-tidy() {
pkgdesc='tidy module for PHP'
depends=("${pkgbase}" 'tidy')
install -D -m755 ${srcdir}/build/modules/tidy.so ${pkgdir}/usr/lib/${pkgbase}/modules/tidy.so
}
package_php73-xsl() {
pkgdesc='xsl module for PHP'
depends=("${pkgbase}" 'libxslt')
install -D -m755 ${srcdir}/build/modules/xsl.so ${pkgdir}/usr/lib/${pkgbase}/modules/xsl.so
}

View File

@ -1,13 +0,0 @@
# Required modules: dir_module, php7_module
<IfModule dir_module>
<IfModule php7_module>
DirectoryIndex index.php index.html
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
</IfModule>
</IfModule>

View File

@ -1,10 +0,0 @@
--- sapi/apache2handler/config.m4.orig
+++ sapi/apache2handler/config.m4
@@ -113,7 +113,6 @@
PHP_BUILD_THREAD_SAFE
fi
else
- APACHE_THREADED_MPM=`$APXS_HTTPD -V | grep 'threaded:.*yes'`
if test -n "$APACHE_THREADED_MPM"; then
PHP_BUILD_THREAD_SAFE
fi

View File

@ -1,61 +0,0 @@
--- php-7.1.13/ext/enchant/config.m4.orig 2018-01-03 02:32:29.000000000 +0000
+++ php-7.1.13/ext/enchant/config.m4 2018-01-21 22:10:03.788875780 +0000
@@ -14,9 +14,9 @@
ENCHANT_SEARCH_DIRS="/usr/local /usr"
fi
for i in $ENCHANT_SEARCH_DIRS; do
- if test -f $i/include/enchant/enchant.h; then
+ if test -f $i/include/enchant-2/enchant.h; then
ENCHANT_DIR=$i
- ENCHANT_INCDIR=$i/include/enchant
+ ENCHANT_INCDIR=$i/include/enchant-2
elif test -f $i/include/enchant.h; then
ENCHANT_DIR=$i
ENCHANT_INCDIR=$i/include
@@ -31,7 +31,7 @@
AC_DEFINE(HAVE_ENCHANT,1,[ ])
PHP_SUBST(ENCHANT_SHARED_LIBADD)
- PHP_ADD_LIBRARY_WITH_PATH(enchant, $ENCHANT_LIBDIR, ENCHANT_SHARED_LIBADD)
+ PHP_ADD_LIBRARY_WITH_PATH(enchant-2, $ENCHANT_LIBDIR, ENCHANT_SHARED_LIBADD)
PHP_ADD_INCLUDE($ENCHANT_INCDIR)
PHP_CHECK_LIBRARY(enchant, enchant_broker_set_param,
[
--- php-7.2.1/ext/enchant/enchant.c.orig 2018-01-02 22:36:05.000000000 +0000
+++ php-7.2.1/ext/enchant/enchant.c 2018-01-21 22:34:50.205791491 +0000
@@ -741,7 +741,7 @@
for (i = 0; i < n_sugg; i++) {
add_next_index_string(sugg, suggs[i]);
}
- enchant_dict_free_suggestions(pdict->pdict, suggs);
+ enchant_dict_free_string_list(pdict->pdict, suggs);
}
@@ -798,7 +798,7 @@
add_next_index_string(return_value, suggs[i]);
}
- enchant_dict_free_suggestions(pdict->pdict, suggs);
+ enchant_dict_free_string_list(pdict->pdict, suggs);
}
}
/* }}} */
@@ -818,7 +818,7 @@
PHP_ENCHANT_GET_DICT;
- enchant_dict_add_to_personal(pdict->pdict, word, wordlen);
+ enchant_dict_add(pdict->pdict, word, wordlen);
}
/* }}} */
@@ -856,7 +856,7 @@
PHP_ENCHANT_GET_DICT;
- RETURN_BOOL(enchant_dict_is_in_session(pdict->pdict, word, wordlen));
+ RETURN_BOOL(enchant_dict_is_added(pdict->pdict, word, wordlen));
}
/* }}} */

View File

@ -1,38 +0,0 @@
diff -u -r php-7.2.5/ext/gd/config.m4 php-7.2.5-freetype/ext/gd/config.m4
--- php-7.2.5/ext/gd/config.m4 2018-04-24 17:09:54.000000000 +0200
+++ php-7.2.5-freetype/ext/gd/config.m4 2018-05-09 14:49:03.647108948 +0200
@@ -186,6 +186,9 @@
AC_DEFUN([PHP_GD_FREETYPE2],[
if test "$PHP_FREETYPE_DIR" != "no"; then
+ AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+
+ AC_MSG_CHECKING([for freetype])
for i in $PHP_FREETYPE_DIR /usr/local /usr; do
if test -f "$i/bin/freetype-config"; then
FREETYPE2_DIR=$i
@@ -194,13 +197,20 @@
fi
done
- if test -z "$FREETYPE2_DIR"; then
+ if test -n "$FREETYPE2_CONFIG"; then
+ FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
+ FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
+ AC_MSG_RESULT([found in $FREETYPE2_DIR])
+ elif test "$PKG_CONFIG" != "no" && $PKG_CONFIG --exists freetype2; then
+ FREETYPE2_DIR=pkg-config
+ FREETYPE2_CFLAGS=`$PKG_CONFIG freetype2 --cflags`
+ FREETYPE2_LIBS=`$PKG_CONFIG freetype2 --libs`
+ AC_MSG_RESULT([found by pkg-config])
+ else
+ AC_MSG_RESULT([not found])
AC_MSG_ERROR([freetype-config not found.])
fi
- FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags`
- FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs`
-
PHP_EVAL_INCLINE($FREETYPE2_CFLAGS)
PHP_EVAL_LIBLINE($FREETYPE2_LIBS, GD_SHARED_LIBADD)
AC_DEFINE(HAVE_LIBFREETYPE,1,[ ])

View File

@ -1,48 +0,0 @@
#!/bin/bash
. PKGBUILD
makepkg -o --nodeps --noprepare --skipinteg
pushd src/${_pkgbase}-${pkgver}
sed '/APACHE_THREADED_MPM=/d' -i.orig sapi/apache2handler/config.m4
sed 's/.conf.default/.conf/g' -i.orig sapi/fpm/Makefile.frag
sed \
-e 's#run/php-fpm.pid#/run/php73-fpm/php-fpm.pid#' \
-e 's#^;error_log =.*#error_log = syslog#' \
-i.orig sapi/fpm/php-fpm.conf.in
sed \
-e 's#^listen =.*#listen = /run/php73-fpm/php-fpm.sock#' \
-e 's#^;listen.owner =#listen.owner =#' \
-e 's#^;listen.group =#listen.group =#' \
-e 's#^;chdir =.*#;chdir = /srv/http#' \
-i.orig sapi/fpm/www.conf.in
sed \
-e 's#^PIDFile=.*#PIDFile=/run/php73-fpm/php-fpm.pid#' \
-e 's#^ExecStart=@EXPANDED_SBINDIR@/php-fpm --nodaemonize#ExecStart=@EXPANDED_SBINDIR@/php-fpm73 --nodaemonize#' \
-i.orig sapi/fpm/php-fpm.service.in
extensions=";extension=bcmath\n;extension=bz2\n;extension=calendar\nextension=curl\n;extension=dba\n;extension=enchant\n;extension=exif\n;extension=ftp\n;extension=gd\n;extension=gettext\n;extension=gmp\n;extension=iconv\n;extension=imap\n;extension=intl\n;extension=sodium\n;extension=ldap\n;extension=mysqli\n;extension=odbc\n;zend_extension=opcache\n;extension=pdo_dblib\n;extension=pdo_mysql\n;extension=pdo_odbc\n;extension=pdo_pgsql\n;extension=pdo_sqlite\n;extension=pgsql\n;extension=pspell\n;extension=shmop\n;extension=snmp\n;extension=soap\n;extension=sockets\n;extension=sqlite3\n;extension=sysvmsg\n;extension=sysvsem\n;extension=sysvshm\n;extension=tidy\n;extension=xmlrpc\n;extension=xsl\nextension=zip\n"
sed \
-r ":a;N;\$!ba;s/; Notes for Windows environments :\n.+;?extension=\w+\n/${extensions}/g" \
-i.orig php.ini-production
sed \
-e 's#^;extension_dir = "\./"$#extension_dir = "/usr/lib/php73/modules/"#g' \
-i php.ini-production
diff -u sapi/apache2handler/config.m4.orig sapi/apache2handler/config.m4 | filterdiff --clean --remove-timestamps > ../../apache.patch
diff -u sapi/fpm/Makefile.frag.orig sapi/fpm/Makefile.frag | filterdiff --clean --remove-timestamps > ../../php-fpm.patch
diff -u sapi/fpm/php-fpm.conf.in.orig sapi/fpm/php-fpm.conf.in | filterdiff --clean --remove-timestamps >> ../../php-fpm.patch
diff -u sapi/fpm/www.conf.in.orig sapi/fpm/www.conf.in | filterdiff --clean --remove-timestamps >> ../../php-fpm.patch
diff -u sapi/fpm/php-fpm.service.in.orig sapi/fpm/php-fpm.service.in | filterdiff --clean --remove-timestamps >> ../../php-fpm.patch
diff -u php.ini-production.orig php.ini-production | filterdiff --clean --remove-timestamps > ../../php.ini.patch
popd

View File

@ -1,17 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQJABAABCAAqFiEEy69p8XOg/qS1N/Rw1myVkxGLzLYFAmEkxKQMHGNtYkBwaHAu
bmV0AAoJENZslZMRi8y2NpUQAIz+HE6allfMtMxMkmMdKS8RbidxCKpaA3HXLIVH
T8SEl8qOPDSFlrSyXEBMx7uUSge0ezC38y3mKFvb1STSfUb5q4UqCrvJ76MEybfl
MCvbHR53n6D5jir2nryF3MZWwZWAr/Pg6e18P/+7PgUVqWtlXDOWPPo8zRhKb9Gy
OnfwnVe4Ad2TIlobwo56VjHeM3N0fdOGhd1rlCm6rBNMUcjsVOI7FOqHzXR3T1O1
y0MtSkIsG9IefiawTrpoSUo7CrkUkUFnJcjp4ix9q6zPkKyIiJh8BdW5iBxfnjFj
6TnTM/U1wknU07VO7/zBZK3rbvgnI95lOLcdgzwVj29cLkknT2dAAzo9oMr97eig
55mL2f3oyL8foNPKGF2wcLtCPTvd7xBQMUfPc02k2wyCUJYc/JnKk/UIQzr3D9S/
aQ1ZJPzNcDdiosVW71gBxy1cmubeLNqQI8LSPFQv4ORlC2hfWhnqyu66cWwgU9N/
PGWY+4N9HBiE+Xq7zqV2uexbQUwdF/Tn9UdNM5raDTsX1c6MZUSC/GljPRZsoJUE
hR/MqAuuMt4XIFNasEYryVmaaqmiDjU5agcZOeji7GwbYBZS28JzFmaw/2jLNId4
jDaiUKssh64pINgzqvt8Tp3MN08W54afV16rqR3jTKXaBhaOPNpGUpVS8bBczMWb
ERZJ
=ykrU
-----END PGP SIGNATURE-----

View File

@ -1,76 +0,0 @@
--- sapi/fpm/Makefile.frag.orig
+++ sapi/fpm/Makefile.frag
@@ -15,8 +15,8 @@
else \
echo "Installing PHP FPM defconfig: $(INSTALL_ROOT)$(sysconfdir)/" && \
$(mkinstalldirs) $(INSTALL_ROOT)$(sysconfdir)/php-fpm.d; \
- $(INSTALL_DATA) sapi/fpm/php-fpm.conf $(INSTALL_ROOT)$(sysconfdir)/php-fpm.conf.default; \
- $(INSTALL_DATA) sapi/fpm/www.conf $(INSTALL_ROOT)$(sysconfdir)/php-fpm.d/www.conf.default; \
+ $(INSTALL_DATA) sapi/fpm/php-fpm.conf $(INSTALL_ROOT)$(sysconfdir)/php-fpm.conf; \
+ $(INSTALL_DATA) sapi/fpm/www.conf $(INSTALL_ROOT)$(sysconfdir)/php-fpm.d/www.conf; \
fi
@echo "Installing PHP FPM man page: $(INSTALL_ROOT)$(mandir)/man8/"
--- sapi/fpm/php-fpm.conf.in.orig
+++ sapi/fpm/php-fpm.conf.in
@@ -14,14 +14,14 @@
; Pid file
; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@
; Default Value: none
-;pid = run/php-fpm.pid
+;pid = /run/php73-fpm/php-fpm.pid
; Error log file
; If it's set to "syslog", log is sent to syslogd instead of being written
; into a local file.
; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@
; Default Value: log/php-fpm.log
-;error_log = log/php-fpm.log
+error_log = syslog
; syslog_facility is used to specify what type of program is logging the
; message. This lets syslogd specify that messages from different facilities
--- sapi/fpm/www.conf.in.orig
+++ sapi/fpm/www.conf.in
@@ -33,7 +33,7 @@
; (IPv6 and IPv4-mapped) on a specific port;
; '/path/to/unix/socket' - to listen on a unix socket.
; Note: This value is mandatory.
-listen = 127.0.0.1:9000
+listen = /run/php73-fpm/php-fpm.sock
; Set listen(2) backlog.
; Default Value: 511 (-1 on FreeBSD and OpenBSD)
@@ -44,8 +44,8 @@
; BSD-derived systems allow connections regardless of permissions.
; Default Values: user and group are set as the running user
; mode is set to 0660
-;listen.owner = @php_fpm_user@
-;listen.group = @php_fpm_group@
+listen.owner = @php_fpm_user@
+listen.group = @php_fpm_group@
;listen.mode = 0660
; When POSIX Access Control Lists are supported you can set them using
; these options, value is a comma separated list of user/group names.
@@ -370,7 +370,7 @@
; Chdir to this directory at the start.
; Note: relative path can be used.
; Default Value: current directory or / when chroot
-;chdir = /var/www
+;chdir = /srv/http
; Redirect worker stdout and stderr into main error log. If not set, stdout and
; stderr will be redirected to /dev/null according to FastCGI specs.
--- sapi/fpm/php-fpm.service.in.orig
+++ sapi/fpm/php-fpm.service.in
@@ -8,8 +8,8 @@
[Service]
Type=@php_fpm_systemd@
-PIDFile=@EXPANDED_LOCALSTATEDIR@/run/php-fpm.pid
-ExecStart=@EXPANDED_SBINDIR@/php-fpm --nodaemonize --fpm-config @EXPANDED_SYSCONFDIR@/php-fpm.conf
+PIDFile=/run/php73-fpm/php-fpm.pid
+ExecStart=@EXPANDED_SBINDIR@/php-fpm73 --nodaemonize --fpm-config @EXPANDED_SYSCONFDIR@/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
PrivateTmp=true

View File

@ -1 +0,0 @@
d /run/php73-fpm 755 root root

View File

@ -1,78 +0,0 @@
--- php.ini-production.orig
+++ php.ini-production
@@ -751,7 +751,7 @@
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
-;extension_dir = "./"
+extension_dir = "/usr/lib/php73/modules/"
; On windows:
;extension_dir = "ext"
@@ -899,48 +899,44 @@
; deprecated in a future PHP major version. So, when it is possible, please
; move to the new ('extension=<ext>) syntax.
;
-; Notes for Windows environments :
-;
-; - Many DLL files are located in the extensions/ (PHP 4) or ext/ (PHP 5+)
-; extension folders as well as the separate PECL DLL download (PHP 5+).
-; Be sure to appropriately set the extension_dir directive.
-;
+;extension=bcmath
;extension=bz2
-;extension=curl
-;extension=fileinfo
-;extension=gd2
+;extension=calendar
+extension=curl
+;extension=dba
+;extension=enchant
+;extension=exif
+;extension=ftp
+;extension=gd
;extension=gettext
;extension=gmp
-;extension=intl
+;extension=iconv
;extension=imap
-;extension=interbase
+;extension=intl
+;extension=sodium
;extension=ldap
-;extension=mbstring
-;extension=exif ; Must be after mbstring as it depends on it
;extension=mysqli
-;extension=oci8_12c ; Use with Oracle Database 12c Instant Client
;extension=odbc
-;extension=openssl
-;extension=pdo_firebird
+;zend_extension=opcache
+;extension=pdo_dblib
;extension=pdo_mysql
-;extension=pdo_oci
;extension=pdo_odbc
;extension=pdo_pgsql
;extension=pdo_sqlite
;extension=pgsql
+;extension=pspell
;extension=shmop
-
-; The MIBS data available in the PHP distribution must be installed.
-; See http://www.php.net/manual/en/snmp.installation.php
;extension=snmp
-
;extension=soap
;extension=sockets
-;extension=sodium
;extension=sqlite3
+;extension=sysvmsg
+;extension=sysvsem
+;extension=sysvshm
;extension=tidy
;extension=xmlrpc
;extension=xsl
+extension=zip
;;;;;;;;;;;;;;;;;;;
; Module Settings ;

View File

@ -1,29 +0,0 @@
From dbe68d96e7da8ba5e5484e6ad0bbd78c9b0a8eec Mon Sep 17 00:00:00 2001
From: Martchus <martchus@gmx.net>
Date: Sun, 9 Dec 2018 14:29:59 +0100
Subject: [PATCH] Disable mapboxgl
---
src/plugins/geoservices/geoservices.pro | 9 ---------
1 file changed, 9 deletions(-)
diff --git a/src/plugins/geoservices/geoservices.pro b/src/plugins/geoservices/geoservices.pro
index b81ad34a..98308c97 100644
--- a/src/plugins/geoservices/geoservices.pro
+++ b/src/plugins/geoservices/geoservices.pro
@@ -7,12 +7,3 @@ qtConfig(geoservices_mapbox): SUBDIRS += mapbox
qtConfig(geoservices_esri): SUBDIRS += esri
qtConfig(geoservices_itemsoverlay): SUBDIRS += itemsoverlay
qtConfig(geoservices_osm): SUBDIRS += osm
-
-qtConfig(geoservices_mapboxgl) {
- !exists(../../3rdparty/mapbox-gl-native/mapbox-gl-native.pro) {
- warning("Submodule mapbox-gl-native does not exist. Run 'git submodule update --init' on qtlocation.")
- } else {
- SUBDIRS += mapboxgl ../../3rdparty/mapbox-gl-native
- mapboxgl.depends = ../../3rdparty/mapbox-gl-native
- }
-}
--
2.23.0

View File

@ -1,40 +0,0 @@
From 2c8ca36b5f87ccfc039c0b669c80f21205769758 Mon Sep 17 00:00:00 2001
From: Martchus <martchus@gmx.net>
Date: Sun, 9 Dec 2018 14:28:07 +0100
Subject: [PATCH 1/4] Fix clang/libc++ build under Android
---
mkspecs/android-clang/qmake.conf | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/mkspecs/android-clang/qmake.conf b/mkspecs/android-clang/qmake.conf
index 05b7979142..83d030793b 100644
--- a/mkspecs/android-clang/qmake.conf
+++ b/mkspecs/android-clang/qmake.conf
@@ -30,11 +30,12 @@ QMAKE_CFLAGS += -gcc-toolchain $$NDK_TOOLCHAIN_PATH -fno-limit-debug-info
QMAKE_LINK = $$QMAKE_CXX $$QMAKE_CFLAGS -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a -nostdlib++
equals(ANDROID_TARGET_ARCH, armeabi-v7a): QMAKE_LINK += -Wl,--exclude-libs,libunwind.a
-QMAKE_CFLAGS += -DANDROID_HAS_WSTRING --sysroot=$$NDK_ROOT/sysroot \
+QMAKE_CFLAGS += -DANDROID_HAS_WSTRING --sysroot=$$ANDROID_PLATFORM_ROOT_PATH \
-isystem $$NDK_ROOT/sysroot/usr/include/$$NDK_TOOLS_PREFIX \
-isystem $$NDK_ROOT/sources/cxx-stl/llvm-libc++/include \
-isystem $$NDK_ROOT/sources/android/support/include \
- -isystem $$NDK_ROOT/sources/cxx-stl/llvm-libc++abi/include
+ -isystem $$NDK_ROOT/sources/cxx-stl/llvm-libc++abi/include \
+ -isystem $$NDK_ROOT/sysroot/usr/include
ANDROID_SOURCES_CXX_STL_LIBDIR = $$NDK_ROOT/sources/cxx-stl/llvm-libc++/libs/$$ANDROID_TARGET_ARCH
@@ -44,6 +45,8 @@ ANDROID_USE_LLVM = true
exists($$ANDROID_SOURCES_CXX_STL_LIBDIR/libc++.so): \
ANDROID_CXX_STL_LIBS = -lc++
+else: exists($$ANDROID_SOURCES_CXX_STL_LIBDIR/libc++_shared.so): \
+ ANDROID_CXX_STL_LIBS = -lc++_shared
else: \
ANDROID_CXX_STL_LIBS = $$ANDROID_SOURCES_CXX_STL_LIBDIR/libc++.so.$$replace(ANDROID_PLATFORM, "android-", "")
--
2.23.0

View File

@ -1,34 +0,0 @@
From 996c53a388705a0bbf778faaf7660efad98e1eff Mon Sep 17 00:00:00 2001
From: Martchus <martchus@gmx.net>
Date: Sun, 9 Dec 2018 14:31:30 +0100
Subject: [PATCH 2/4] Fix androiddeployqt search paths
---
src/tools/androiddeployqt/main.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/tools/androiddeployqt/main.cpp b/src/tools/androiddeployqt/main.cpp
index 01c392f8f9..9600d657cb 100644
--- a/src/tools/androiddeployqt/main.cpp
+++ b/src/tools/androiddeployqt/main.cpp
@@ -1721,7 +1721,7 @@ bool scanImports(Options *options, QSet<QString> *usedDependencies)
rootPath += QLatin1Char('/');
QStringList importPaths;
- importPaths += shellQuote(options->qtInstallDirectory + QLatin1String("/qml"));
+ importPaths += shellQuote(options->qtInstallDirectory + QLatin1String("/lib/qt/qml"));
importPaths += shellQuote(rootPath);
for (const QString &qmlImportPath : qAsConst(options->qmlImportPaths))
importPaths += shellQuote(qmlImportPath);
@@ -1857,7 +1857,7 @@ bool readDependencies(Options *options)
return false;
// Jam in the dependencies of the platform plugin, since the application will crash without it
- if (!readDependenciesFromElf(options, options->qtInstallDirectory + QLatin1String("/plugins/platforms/android/libqtforandroid.so"), &usedDependencies, &remainingDependencies))
+ if (!readDependenciesFromElf(options, options->qtInstallDirectory + QLatin1String("/lib/qt/plugins/platforms/android/libqtforandroid.so"), &usedDependencies, &remainingDependencies))
return false;
while (!remainingDependencies.isEmpty()) {
--
2.23.0

View File

@ -1,24 +0,0 @@
From a71a1223328539ee403884a24d1dbc5a685d40dd Mon Sep 17 00:00:00 2001
From: Martchus <martchus@gmx.net>
Date: Sun, 7 Apr 2019 09:54:49 +0200
Subject: [PATCH 3/4] Support pkg-config under Android
from https://aur.archlinux.org/cgit/aur.git/commit/?h=android-aarch64-qt5&id=d901da324b2ceea2ac99b48137cb82b2bd920c77
---
mkspecs/android-clang/qmake.conf | 3 +++
1 file changed, 3 insertions(+)
diff --git a/mkspecs/android-clang/qmake.conf b/mkspecs/android-clang/qmake.conf
index 83d030793b..8f145a2bb7 100644
--- a/mkspecs/android-clang/qmake.conf
+++ b/mkspecs/android-clang/qmake.conf
@@ -53,3 +53,6 @@ else: \
QMAKE_CFLAGS_OPTIMIZE_SIZE = -Oz
include(../common/android-base-tail.conf)
+
+QMAKE_PKG_CONFIG = $$[QT_INSTALL_PREFIX]
+QMAKE_PKG_CONFIG = android-$$section(QMAKE_PKG_CONFIG, /, 3, 3)-pkg-config
--
2.23.0

View File

@ -1,24 +0,0 @@
From 9cd435c730949e29104bbfa2bdd82ed2c662ca3d Mon Sep 17 00:00:00 2001
From: Martchus <martchus@gmx.net>
Date: Sat, 7 Sep 2019 13:21:37 +0200
Subject: [PATCH 4/4] Use pkg-config to find libjpeg
---
src/gui/configure.json | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/gui/configure.json b/src/gui/configure.json
index 6280b4dfa2..206f83984a 100644
--- a/src/gui/configure.json
+++ b/src/gui/configure.json
@@ -373,6 +373,7 @@
},
"headers": "jpeglib.h",
"sources": [
+ { "type": "pkgConfig", "args": "libjpeg" },
{ "libs": "-llibjpeg", "condition": "config.msvc" },
"-ljpeg"
]
--
2.23.0

View File

@ -1,29 +0,0 @@
From dbe68d96e7da8ba5e5484e6ad0bbd78c9b0a8eec Mon Sep 17 00:00:00 2001
From: Martchus <martchus@gmx.net>
Date: Sun, 9 Dec 2018 14:29:59 +0100
Subject: [PATCH] Disable mapboxgl
---
src/plugins/geoservices/geoservices.pro | 9 ---------
1 file changed, 9 deletions(-)
diff --git a/src/plugins/geoservices/geoservices.pro b/src/plugins/geoservices/geoservices.pro
index b81ad34a..98308c97 100644
--- a/src/plugins/geoservices/geoservices.pro
+++ b/src/plugins/geoservices/geoservices.pro
@@ -7,12 +7,3 @@ qtConfig(geoservices_mapbox): SUBDIRS += mapbox
qtConfig(geoservices_esri): SUBDIRS += esri
qtConfig(geoservices_itemsoverlay): SUBDIRS += itemsoverlay
qtConfig(geoservices_osm): SUBDIRS += osm
-
-qtConfig(geoservices_mapboxgl) {
- !exists(../../3rdparty/mapbox-gl-native/mapbox-gl-native.pro) {
- warning("Submodule mapbox-gl-native does not exist. Run 'git submodule update --init' on qtlocation.")
- } else {
- SUBDIRS += mapboxgl ../../3rdparty/mapbox-gl-native
- mapboxgl.depends = ../../3rdparty/mapbox-gl-native
- }
-}
--
2.23.0

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