Date: Tuesday, December 28, 2021 @ 16:19:36 Author: dvzrv Revision: 1085682
upgpkg: fltk 1.3.8-1: Upgrade to 1.3.8. Drop fltk-examples altogether as it is painful to build and install. Provide -ffat-lto-objects to CFLAGS and CXXFLAGS so that no static libraries are mangled. Simplify quoting in file. Simplify installation of files in split packages. Modified: fltk/trunk/PKGBUILD ----------+ PKGBUILD | 110 +++++++++++++++++++++---------------------------------------- 1 file changed, 39 insertions(+), 71 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2021-12-28 16:10:07 UTC (rev 1085681) +++ PKGBUILD 2021-12-28 16:19:36 UTC (rev 1085682) @@ -1,99 +1,67 @@ # Maintainer: David Runge <[email protected]> pkgbase=fltk -pkgname=('fltk' 'fltk-docs' 'fltk-examples') -pkgver=1.3.7 +pkgname=(fltk fltk-docs) +pkgver=1.3.8 pkgrel=1 pkgdesc="Graphical user interface toolkit for X" -arch=('x86_64') -license=('custom' 'LGPL') +arch=(x86_64) +license=(custom:FLTK) url="https://www.fltk.org/" -makedepends=('alsa-lib' 'cmake' 'doxygen' 'fontconfig' 'libglvnd' -'libjpeg-turbo' 'libpng' 'mesa' 'libx11' 'libxcursor' 'libxfixes' 'libxft' -'libxinerama' 'libxrender') +makedepends=(alsa-lib cmake doxygen fontconfig libglvnd libjpeg-turbo libpng +mesa libx11 libxcursor libxfixes libxft libxinerama libxrender) source=("${pkgname}-${pkgver}.tar.gz::https://github.com/${pkgbase}/${pkgbase}/archive/release-${pkgver}.tar.gz") -sha512sums=('aad131027e88fac3fe73d7e0abfc2602cdc195388f14b29b58d654cb49b780e6ff2ef4270935730b45cd3d366f9e8c8fa3c27a4f17b1f6e8c8fd1f9a0a73c308') -b2sums=('54934d7992f7bacf7a3561dd252839ea21b279d23559963665e398252ecc85dedea819a7db0572305d7266aec9b38997d89313ba98406ff120013ee8f2096594') +sha512sums=('197848d3b80a65cca936daf4f0b74609f0fe8332a4cd11af53385fb2aa45ad698b1e239a48732b118cd3cb189bc531711b72fb2eeeb85be887dc6c5a558fa4b3') +b2sums=('d0a963a38b62ea8cf1d5fe57fab6664fc64083ff41f17847d737f71bfff08578c682deefb9847a9ab5b93210fce2afbfc2020bdfcde714947beac9b3f7c84358') -prepare() { - mv -v "${pkgbase}-release-${pkgver}" "${pkgbase}-${pkgver}" +_pick() { + local p="$1" f d; shift + for f; do + d="$srcdir/$p/${f#$pkgdir/}" + mkdir -p "$(dirname "$d")" + mv "$f" "$d" + rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")" + done } build() { - cd "${pkgbase}-${pkgver}" - cmake -DCMAKE_INSTALL_PREFIX='/usr' \ - -DFLTK_LIBDIR='/usr/lib' \ - -DCMAKE_BUILD_TYPE='None' \ - -DOPTION_CREATE_LINKS=ON \ - -DOPTION_BUILD_EXAMPLES=OFF \ + # fat-lto-objects is required for non-mangled .a files in fltk + CFLAGS+=" -ffat-lto-objects" + CXXFLAGS+=" -ffat-lto-objects" + + cmake -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_BUILD_TYPE=None \ + -DFLTK_LIBDIR=/usr/lib \ -DOPTION_BUILD_SHARED_LIBS=ON \ -DOPTION_BUILD_HTML_DOCUMENTATION=ON \ -DOPTION_INSTALL_HTML_DOCUMENTATION=ON \ -Wno-dev \ -B build \ - -S . + -S "${pkgbase}-release-${pkgver}" make VERBOSE=1 -C build - make -C build/documentation html - cmake -DCMAKE_INSTALL_PREFIX='/usr' \ - -DFLTK_LIBDIR='/usr/lib' \ - -DCMAKE_BUILD_TYPE='None' \ - -DOPTION_BUILD_EXAMPLES=ON \ - -Wno-dev \ - -B build-examples \ - -S . - make VERBOSE=1 -C build-examples + make VERBOSE=1 -C build/documentation html } package_fltk() { - depends=('gcc-libs' 'glibc' 'hicolor-icon-theme' 'libfontconfig.so' - 'libglvnd' 'libjpeg-turbo' 'libpng' 'libx11' 'libxcursor' 'libxext' - 'libxfixes' 'libxft' 'libxinerama' 'libxrender') - provides=('libfltk_images.so' 'libfltk_gl.so' 'libfltk_forms.so' 'libfltk.so') - options=('!docs' 'staticlibs') + depends=(gcc-libs glibc hicolor-icon-theme libfontconfig.so + libglvnd libjpeg-turbo libpng libx11 libxcursor libxext + libxfixes libxft libxinerama libxrender) + provides=(libfltk_images.so libfltk_gl.so libfltk_forms.so libfltk.so) + options=(!docs staticlibs) - cd "${pkgbase}-${pkgver}" - make DESTDIR="${pkgdir}/" install -C build - install -vDm 644 COPYING -t "${pkgdir}/usr/share/licenses/${pkgname}/" - # removing man pages of examples + make VERBOSE=1 DESTDIR="${pkgdir}/" install -C build + install -vDm 644 "${pkgbase}-release-${pkgver}"/COPYING -t "${pkgdir}/usr/share/licenses/${pkgname}/" + # remove man pages of examples rm -rvf "${pkgdir}/usr/share/man/man6" + ( + cd "${pkgdir}" + _pick fltk-docs usr/share/doc/${pkgname}/html + ) } package_fltk-docs() { pkgdesc+=" (documentation)" - cd "${pkgbase}-${pkgver}" - make DESTDIR="$pkgdir" install -C build/documentation html - install -vDm 644 COPYING -t "${pkgdir}/usr/share/licenses/${pkgname}/" + mv -v fltk-docs/* "$pkgdir" + install -vDm 644 "${pkgbase}-release-${pkgver}"/COPYING -t "${pkgdir}/usr/share/licenses/${pkgname}/" } - -package_fltk-examples() { - pkgdesc+=" (examples)" - depends=('gcc-libs' 'glibc' 'hicolor-icon-theme' 'libasound.so' - 'libfontconfig.so' 'libjpeg-turbo' 'libpng' 'libx11' 'libxcursor' 'libxext' - 'libxfixes' 'libxft' 'libxinerama' 'libxrender') - options=('!docs') - - cd "${pkgbase}-${pkgver}" - make DESTDIR="$pkgdir" install -C build-examples - # example apps and integration files, that are not covered by make install - for app in {blocks,checkers,sudoku}; do - install -vDm 755 "build-examples/bin/test/$app" -t "${pkgdir}/usr/bin/" - install -vDm 644 "test/desktop/$app.desktop" \ - -t "${pkgdir}/usr/share/applications/" - install -vDm 644 "test/desktop/$app-32.png" \ - "${pkgdir}/usr/share/icons/hicolor/32x32/apps/$app.png" - install -vDm 644 "test/desktop/$app-128.png" \ - "${pkgdir}/usr/share/icons/hicolor/128x128/apps/$app.png" - done - install -vDm 644 COPYING -t "${pkgdir}/usr/share/licenses/${pkgname}/" - # removing any non-examples files - rm -rfv "${pkgdir}/usr/bin/fltk-config" \ - "${pkgdir}/usr/include" \ - "${pkgdir}/usr/lib" \ - "${pkgdir}/usr/share/applications/fluid.desktop" \ - "${pkgdir}/usr/share/man/man"{1,3} \ - "${pkgdir}/usr/share/fltk" \ - "${pkgdir}/usr/share/icons/hicolor/"{48,64}* \ - "${pkgdir}/usr/share/mime" - find "${pkgdir}" -type f -iname "*fluid*" -exec rm -rvf {} \; -}
