-
Notifications
You must be signed in to change notification settings - Fork 613
/
PKGBUILD
132 lines (115 loc) · 4.29 KB
/
PKGBUILD
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# Maintainer: Felix Yan <felixonmars@archlinux.org>
# Contributor: Andrea Scarpino <andrea@archlinux.org>
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - -no-reduce-relocations -- not available on ARM
# - explicitly disable x86 optimizations
# - -no-feature-getentropy for old kernel compatibility
# - remove ltcg from qmake-config.patch, CONFIG+=fat-static-lto from qmake call
pkgbase=qt5-base
pkgname=(qt5-base qt5-xcb-private-headers)
_basever=5.15.15
pkgver=5.15.15+kde+r136
pkgrel=1
_commit=d04a259f4040865b446fea9a7d808feb41aa03fd
arch=('x86_64')
url='https://www.qt.io'
license=('GPL3' 'LGPL3' 'FDL' 'custom')
pkgdesc='A cross-platform application and UI framework'
depends=('libjpeg-turbo' 'xcb-util-keysyms' 'xcb-util-renderutil' 'libgl' 'fontconfig' 'xdg-utils'
'shared-mime-info' 'xcb-util-wm' 'libxrender' 'libxi' 'sqlite' 'xcb-util-image' 'mesa'
'tslib' 'libinput' 'libxkbcommon-x11' 'libproxy' 'libcups' 'double-conversion' 'md4c')
makedepends=('libfbclient' 'mariadb-libs' 'unixodbc' 'postgresql-libs' 'alsa-lib' 'gst-plugins-base-libs'
'gtk3' 'libpulse' 'cups' 'freetds' 'vulkan-headers' 'git')
optdepends=('qt5-svg: to use SVG icon themes'
'qt5-wayland: to run Qt applications in a Wayland session'
'postgresql-libs: PostgreSQL driver'
'mariadb-libs: MariaDB driver'
'unixodbc: ODBC driver'
'libfbclient: Firebird/iBase driver'
'freetds: MS SQL driver'
'gtk3: GTK platform plugin'
'perl: for fixqt4headers and syncqt')
conflicts=('qtchooser')
groups=('qt5')
_pkgfqn=${pkgbase/5-/}
source=(kde-$_pkgfqn::git+https://invent.kde.org/qt/qt/$_pkgfqn#commit=$_commit
work-around-pyside2-brokenness.patch
qmake-cflags.patch
qmake-config.patch)
sha256sums=('078581fee6b468b2e538906a09b1c0de8da2d97e29ebc99f6114f2c872026c75'
'6a4ec2bfcf4e7cff73346762b252cc28be5ca0ed79fde5e69350efe229b43adc'
'5411edbe215c24b30448fac69bd0ba7c882f545e8cf05027b2b6e2227abc5e78'
'4abc22150fa3e06b2fdcec32146abc9be4e316692aa4d5bd5aa53b4b726783fa')
pkgver() {
cd kde-$_pkgfqn
echo "$_basever+kde+r"`git rev-list --count v$_basever-lts-lgpl..$_commit` | sed -e 's|+kde+r0||'
}
prepare() {
cd kde-$_pkgfqn
patch -p1 < ../work-around-pyside2-brokenness.patch
patch -p1 < ../qmake-cflags.patch # Use system CFLAGS in qmake
patch -p1 < ../qmake-config.patch # Don't strip binaries with qmake and use -ltcg, cf. QTBUG-73834
sed -i 's/ltcg//' mkspecs/common/gcc-base.conf
}
build() {
cd kde-$_pkgfqn
./configure -confirm-license -opensource -v \
-prefix /usr \
-docdir /usr/share/doc/qt \
-headerdir /usr/include/qt \
-archdatadir /usr/lib/qt \
-datadir /usr/share/qt \
-sysconfdir /etc/xdg \
-examplesdir /usr/share/doc/qt/examples \
-plugin-sql-{psql,mysql,sqlite,odbc,ibase} \
-system-sqlite \
-openssl-linked \
-nomake examples \
-no-rpath \
-dbus-linked \
-system-harfbuzz \
-journald \
-libproxy \
-no-mimetype-database \
-no-use-gold-linker \
-no-reduce-relocations \
-no-strip \
-no-sse2 \
-no-sse3 \
-no-ssse3 \
-no-sse4.1 \
-no-sse4.2 \
-no-avx \
-no-avx2 \
-no-feature-getentropy
# No configure flag for fat static libs with lto
bin/qmake -- -redo
make
}
package_qt5-base() {
pkgdesc='A cross-platform application and UI framework'
depends+=(qt5-translations)
cd kde-$_pkgfqn
make INSTALL_ROOT="${pkgdir}" install
install -Dm644 LICENSE* -t "$pkgdir"/usr/share/licenses/$pkgbase
# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
find "${pkgdir}/usr/lib" -type f -name '*.prl' \
-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;
# Fix wrong qmake path in pri file
sed -i "s|${srcdir}/${_pkgfqn}|/usr|" \
"${pkgdir}"/usr/lib/qt/mkspecs/modules/qt_lib_bootstrap_private.pri
# Symlinks for backwards compatibility
for b in "${pkgdir}"/usr/bin/*; do
ln -s $(basename $b) "${pkgdir}"/usr/bin/$(basename $b)-qt5
done
}
package_qt5-xcb-private-headers() {
pkgdesc='Private headers for Qt5 Xcb'
depends=("qt5-base=$pkgver")
optdepends=()
groups=()
conflicts=()
cd kde-$_pkgfqn
install -d -m755 "$pkgdir"/usr/include/qtxcb-private
cp -r src/plugins/platforms/xcb/*.h "$pkgdir"/usr/include/qtxcb-private/
}