diff options
-rw-r--r-- | libre/icu-parabola/PKGBUILD | 41 |
1 files changed, 28 insertions, 13 deletions
diff --git a/libre/icu-parabola/PKGBUILD b/libre/icu-parabola/PKGBUILD index 3763c73ae..8cbed9676 100644 --- a/libre/icu-parabola/PKGBUILD +++ b/libre/icu-parabola/PKGBUILD @@ -1,6 +1,7 @@ # Maintainer (Arch): Andreas Radke <andyrtr@archlinux.org> # Contributor (Arch): Art Gramlich <art@gramlich-net.com> # Contributor (Parabola): Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> +# Contributor (Parabola): Eli Schwartz <eschwartz@archlinux.org> # parabola changes and rationale: # @@ -36,21 +37,35 @@ # direction. # # In the meantime, this version of ICU is meant to enable Parabola packages to -# link against it. This enables all the Parabola packages to depend only on this -# ICU version while the packages coming from upstream distributions would only -# depend on that distribution's ICU. +# link against it at runtime. This enables all the Parabola packages to depend +# only on the ICU version, which is usually the upstream distribution's ICU but +# is occasionally this ICU if the Parabola package has not yet been rebuilt +# after an ICU update. # -# The downside of this workaround is that it consumes more resources and it -# doesn't scale: If we want to avoid all the breakages introduced by that issue, -# we would then need to have a Parabola version of all the dependencies of the -# Parabola packages, which has many issues: -# - It would increase the work of Parabola maintainers as we would need to -# manually sync with upstream and build the PKGBUILDs of each dependency. -# - Without compression or deduplication, such libraries would use twice the -# amount of storage, or even RAM if two programs depending on two different -# version of the library are running at the same time. +# It is inspired by the admittedly awkward hack of versioned library +# dependencies more commonly seen in e.g. the AUR as 'icu65' or somesuch which +# proprietary binaries built against Debian's ICU will depend on, but awkward +# is in the eyes of the beholder and this elegantly scales to Parabola's needs, +# without consuming increasing resources, which is the best definition of "not +# awkward". # -# So the idea is to only use it for libraries that often have this issue. +# To use it, simply add the following dependency to any package which parabola +# has built or rebuilt: +# +# depends=('libicui18n.so') +# +# or whichever shared library is reported by readelf -d /path/to/compiled/ELF/file +# and, every time the upstream distribution upgrades ICU, update this package +# as well, to ensure it always stays exactly one version behind. +# +# This works well for ICU, even for packages which link to both the older and +# newer versions of libicu*.so, since ICU uses versioned symbols as reported by +# +# nm -D --demangle --with-symbol-versions /path/to/library +# +# However, caution must be taken before implementing the same idea for other +# libraries. So the idea is to only use it for libraries that often have this +# issue. # # Changes: # - remove all files other than libicu*.so.* |