diff options
author | Eli Schwartz <eschwartz@archlinux.org> | 2020-05-04 12:48:34 -0400 |
---|---|---|
committer | Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> | 2020-05-04 20:58:35 +0200 |
commit | 7c37754b1c8a1a71f94932c484c4fd2299caa768 (patch) | |
tree | b714a9d4923a151e179d44fe30a8288466ff80b5 /libre/icu-parabola/PKGBUILD | |
parent | afc15703678cda346910f9ffe487253e40acede9 (diff) | |
download | abslibre-7c37754b1c8a1a71f94932c484c4fd2299caa768.tar.gz abslibre-7c37754b1c8a1a71f94932c484c4fd2299caa768.tar.bz2 abslibre-7c37754b1c8a1a71f94932c484c4fd2299caa768.zip |
icu-parabola: convert to install in /usr/lib and not conflict with icu
Following the same pattern as some AUR packages (icu65 and so on), make
this package just provide compat libs. There's no need to try building
packages against an old icu version, we just want to make sure programs
which are linked to an older libicu*.so can use it.
The libprovides recently added in Arch Linux are introduced as well.
They won't break anything, they simply add another way to depend on this
package, which is more convenient than the current use in package()
functions of:
local _icu_ver
_icu_ver=$(pacman -S --print-format='%v' icu)
depends+=("icu>=${_icu_ver}" "icu<$((${_icu_ver%%.*} + 1))")
(which has other problems, like not being the version which is built
against, but rather the version that a pacman -S icu would install or
upgrade to -- partial upgrades are bad, but that doesn't mean break it
if someone does so)
Expected use of this package:
depends+=('icu' 'libicui18n.so')
... added to a Parabola package which uses icu, to make it depend on the
Arch icu package (and ensure it is preferred in all cases) and
additionally to depend on any package providing the correct version of
the libicu*.so dependent libraries. If all goes well, the icu package
will be pulled in as a dependency. If all doesn't go well, then packages
fall back on additionally installing this package for compatibility
purposes, and all still goes well.
Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Diffstat (limited to 'libre/icu-parabola/PKGBUILD')
-rw-r--r-- | libre/icu-parabola/PKGBUILD | 52 |
1 files changed, 32 insertions, 20 deletions
diff --git a/libre/icu-parabola/PKGBUILD b/libre/icu-parabola/PKGBUILD index df7f991c8..3763c73ae 100644 --- a/libre/icu-parabola/PKGBUILD +++ b/libre/icu-parabola/PKGBUILD @@ -53,45 +53,56 @@ # So the idea is to only use it for libraries that often have this issue. # # Changes: -# - Changed the configure prefix (to allow both sets of libraries to be co-exist) -# - Added icu-parabola.conf and a .install to run ldconfig after installation in -# order to take into account the path of this library version. +# - remove all files other than libicu*.so.* +# - depend on icu; this is needed because if the package is installed on its +# own, ldconfig will create untracked symlinks which were supposed to be +# installed by the icu package. pkgname=icu-parabola _pkgname=icu -pkgver=67.1 -pkgrel=1 +pkgver=65.1 +pkgrel=3 pkgrel+=.parabola2 pkgdesc="International Components for Unicode library" +pkgdesc+=" (compatibility libraries for the previous release)" arch=(x86_64) arch+=(armv7h i686) url="http://site.icu-project.org/home" license=('custom:icu') depends=('gcc-libs' 'sh') +depends+=('icu') makedepends=('python') -# provides=(libicu{data,i18n,io,test,tu,uc}.so) # TODO: is this needed - or will it break stuff? -source=(https://github.com/unicode-org/icu/releases/download/release-${pkgver//./-}/${_pkgname}4c-${pkgver//./_}-src.tgz{,.asc}) +provides=(libicu{data,i18n,io,test,tu,uc}.so) +source=(https://github.com/unicode-org/icu/releases/download/release-${pkgver//./-}/${_pkgname}4c-${pkgver//./_}-src.tgz{,.asc} + icu-65.1-initialized-buffer-uloc_getKeywordValue.patch::https://github.com/unicode-org/icu/commit/fab4c3c719.patch + icu-65.1-prevent-SEGV_MAPERR-in-append.patch::https://github.com/unicode-org/icu/commit/b7d08bc04a.patch) # https://github.com/unicode-org/icu/releases/download/release-65-1/SHASUM512.txt - no checksum file for v67 release -sha512sums=('4779f1ce1ca7976f6fad6768853ea8c540da54d11509e3b6cfd864a04b5f2db1c3d4b546387f91ad02fb90804525bc37d2543173f0d705d6ca11dc6f2b7640a8' - 'SKIP') -validpgpkeys=('BA90283A60D67BA0DD910A893932080F4FB419E3') # "Steven R. Loomis (filfla-signing) <srloomis@us.ibm.com>" -validpgpkeys+=('9731166CD8E23A83BEE7C6D3ACA5DBE1FD8FABF1') # "Steven R. Loomis (ICU Project) <srl@icu-project.org>" +sha512sums=('8f1ef33e1f4abc9a8ee870331c59f01b473d6da1251a19ce403f822f3e3871096f0791855d39c8f20c612fc49cda2c62c06864aa32ddab2dbd186d2b21ce9139' + 'SKIP' + '8898fe0fa9805304cd2fc02c00ab1131861836f4d11887f82450c2378666cb03bce0c5038d3f0bdcdd1c1cdee2a00a61ef85602ed0e0c74ad2e58578b1940123' + '580283cdd95fb7b8410cb3a6c0f47a6c8e53e0fdc9c213b04cd133ba4120381533ff2aef89ddab968150754bd9ca3a536d5c592c6881e625eb8ee6de8723de1b') +validpgpkeys=('BA90283A60D67BA0DD910A893932080F4FB419E3') # "Steven R. Loomis (filfla-signing) <srloomis@us.ibm.com>" +validpgpkeys+=('9731166CD8E23A83BEE7C6D3ACA5DBE1FD8FABF1') # "Steven R. Loomis (ICU Project) <srl@icu-project.org>" validpgpkeys+=('FFA9129A180D765B7A5BEA1C9B432B27D1BA20D7') # "Fredrik Roubert <fredrik@roubert.name>" validpgpkeys+=('E4098B78AFC94394F3F49AA903996C7C83F12F11') # "keybase.io/srl295 <srl295@keybase.io>" -validpgpkeys=('4569BBC09DA846FC91CBD21CE1BBA44593CF2AE0') # "Steven R. Loomis (codesign-qormi) <srloomis@us.ibm.com>" +validpgpkeys+=('4569BBC09DA846FC91CBD21CE1BBA44593CF2AE0') # "Steven R. Loomis (codesign-qormi) <srloomis@us.ibm.com>" prepare() { cd icu - # icu-parabola.conf will go in /etc/ld.so.conf.d - echo "/opt/parabola/icu/lib" > icu-parabola.conf + # https://unicode-org.atlassian.net/browse/ICU-20884 + patch -Np2 -i ../icu-65.1-initialized-buffer-uloc_getKeywordValue.patch + + # https://github.com/unicode-org/icu/pull/971 + patch -Np2 -i ../icu-65.1-prevent-SEGV_MAPERR-in-append.patch } build() { cd icu/source - ./configure --prefix=/opt/parabola/icu \ + ./configure --prefix=/usr \ + --sysconfdir=/etc \ --mandir=/usr/share/man \ - --sbindir=/opt/parabola/icu/bin + --sbindir=/usr/bin make } @@ -104,10 +115,11 @@ package() { cd icu/source make -j1 DESTDIR="${pkgdir}" install - # Add - install -d ${pkgdir}/etc/ld.so.conf.d/ - install -Dm644 "${srcdir}"/icu/icu-parabola.conf "${pkgdir}/etc/ld.so.conf.d/icu-parabola.conf" - # Install license install -Dm644 "${srcdir}"/icu/LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" + + # to avoid conflicts against the preferred 'icu' package, we remove all files + # except the actual shared libraries + rm -r "${pkgdir}"/usr/{bin,include,lib/{icu,pkgconfig},share} + rm "${pkgdir}"/usr/lib/*.so } |