diff options
author | Patrick J Volkerding <volkerdi@slackware.com> | 2022-03-08 04:39:53 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2022-03-09 13:29:58 +0100 |
commit | 013aa123f33c828e0014f87895c96f9f048cf0f2 (patch) | |
tree | 14b4bebfb2890693bac72b471984ea6a8dcc4a52 /patches/source | |
parent | 83d9a46441a29284329a151acb8f22fed76b40ab (diff) | |
download | current-013aa123f33c828e0014f87895c96f9f048cf0f2.tar.gz current-013aa123f33c828e0014f87895c96f9f048cf0f2.tar.xz |
Tue Mar 8 04:39:53 UTC 202220220308043953_15.0
patches/packages/boost-1.78.0-x86_64-2_slack15.0.txz: Rebuilt.
This update has been patched to fix a regression:
Boost.Build silently skips installation of library headers and binaries in
some cases.
Thanks to Willy Sudiarto Raharjo.
Diffstat (limited to 'patches/source')
-rw-r--r-- | patches/source/boost/0001-b2-fix-install.patch | 80 | ||||
-rwxr-xr-x | patches/source/boost/boost.SlackBuild | 199 | ||||
-rw-r--r-- | patches/source/boost/slack-desc | 19 |
3 files changed, 298 insertions, 0 deletions
diff --git a/patches/source/boost/0001-b2-fix-install.patch b/patches/source/boost/0001-b2-fix-install.patch new file mode 100644 index 000000000..c513cc54c --- /dev/null +++ b/patches/source/boost/0001-b2-fix-install.patch @@ -0,0 +1,80 @@ +https://github.com/bfgroup/b2/pull/113 + +From 62e7321669f66a90e2a90c8f31af34f59ebc5d7a Mon Sep 17 00:00:00 2001 +From: Dmitry Arkhipov <grisumbras@gmail.com> +Date: Thu, 9 Dec 2021 08:11:57 +0300 +Subject: [PATCH] Don't skip install targets if there's <build>no in ureqs + +--- + src/tools/stage.jam | 4 ++++ + test/install_build_no.py | 26 ++++++++++++++++++++++++++ + test/test_all.py | 1 + + 3 files changed, 31 insertions(+) + create mode 100755 test/install_build_no.py + +Index: boost_1_78_0/tools/build/src/tools/stage.jam +=================================================================== +--- boost_1_78_0.orig/tools/build/src/tools/stage.jam 2021-12-09 16:30:45.956457531 +0300 ++++ boost_1_78_0/tools/build/src/tools/stage.jam 2021-12-09 16:30:45.952457519 +0300 +@@ -476,10 +476,14 @@ class install-target-class : basic-targe + } + DELETE_MODULE $(result) ; + return [ sequence.unique $(result2) ] ; + } + ++ rule skip-from-usage-requirements ( ) ++ { ++ } ++ + # Returns true iff 'type' is subtype of some element of 'types-to-include'. + # + local rule include-type ( type : types-to-include * ) + { + local found ; +Index: boost_1_78_0/tools/build/test/install_build_no.py +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ boost_1_78_0/tools/build/test/install_build_no.py 2021-12-09 16:30:45.953457522 +0300 +@@ -0,0 +1,26 @@ ++#!/usr/bin/python ++ ++# Copyright 2021 Dmitry Arkhipov (grisumbras@gmail.com) ++# Distributed under the Boost Software License, Version 1.0. ++# (See accompanying file LICENSE.txt or https://www.bfgroup.xyz/b2/LICENSE.txt) ++ ++# Check that <build>no in usage-requirements of dependencies does not affect ++# install rule, i.e. a skipped installed target does not affect insallation of ++# other targets. ++ ++import BoostBuild ++ ++t = BoostBuild.Tester() ++ ++t.write("a.cpp", "int main() {}\n") ++ ++t.write("jamroot.jam", """ ++make x : : maker : <build>no ; ++exe a : a.cpp ; ++install install : x a ; ++""") ++ ++t.run_build_system() ++t.expect_addition("install/a.exe") ++ ++t.cleanup() +Index: boost_1_78_0/tools/build/test/test_all.py +=================================================================== +--- boost_1_78_0.orig/tools/build/test/test_all.py 2021-12-09 16:30:45.956457531 +0300 ++++ boost_1_78_0/tools/build/test/test_all.py 2021-12-09 16:30:45.953457522 +0300 +@@ -248,10 +248,11 @@ tests = ["abs_workdir", + "implicit_dependency", + "indirect_conditional", + "inherit_toolset", + "inherited_dependency", + "inline", ++ "install_build_no", + "libjpeg", + "liblzma", + "libpng", + "libtiff", + "libzstd", diff --git a/patches/source/boost/boost.SlackBuild b/patches/source/boost/boost.SlackBuild new file mode 100755 index 000000000..23822567f --- /dev/null +++ b/patches/source/boost/boost.SlackBuild @@ -0,0 +1,199 @@ +#!/bin/bash + +# Copyright 2007, 2008, 2012 Eric Hameleers, Eindhoven, NL +# Copyright 2007-2008, 2013, 2014, 2017 Heinz Wiesinger, Amsterdam, NL +# Copyright 2008, 2009, 2010, 2013, 2014, 2015, 2017, 2018, 2020, 2021 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# bjam-build system mostly taken from SlackBuild by Eric Hameleers +# Script modified by Robby Workman - no copyright claims or added terms +# Modified 2012 by Eric Hameleers <alien at slackware.com> for ARM port. + +cd $(dirname $0) ; CWD=$(pwd) + +PKGNAM=boost +VERSION=${VERSION:-$(echo $PKGNAM_*.tar.?z | rev | cut -f 3- -d . | rev | cut -f 2- -d _)} +BUILD=${BUILD:-2_slack15.0} + +PKG_VERSION=$(echo $VERSION | tr _ .) # Leave this alone +NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} + +# Automatically determine the architecture we're building on: +MARCH=$( uname -m ) +if [ -z "$ARCH" ]; then + case "$MARCH" in + i?86) export ARCH=i586 ;; + armv7hl) export ARCH=$MARCH ;; + arm*) export ARCH=arm ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) export ARCH=$MARCH ;; + esac +fi + +# If the variable PRINT_PACKAGE_NAME is set, then this script will report what +# the name of the created package would be, and then exit. This information +# could be useful to other scripts. +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PKGNAM-$PKG_VERSION-$ARCH-$BUILD.txz" + exit 0 +fi + +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +elif [ "$ARCH" = "armv7hl" ]; then + SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16" + LIBDIRSUFFIX="" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +PYTHON_VERSION=$(python2 -c 'import sys; print("{}.{}".format(sys.version_info.major, sys.version_info.minor))') +PYTHON3_VERSION=$(python3 -c 'import sys; print("{}.{}".format(sys.version_info.major, sys.version_info.minor))') + +TMP=${TMP:-/tmp} +PKG=$TMP/package-boost + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf boost_$VERSION +tar xvf $CWD/boost_$VERSION.tar.?z || exit 1 +cd boost_$VERSION || exit 1 + +zcat $CWD/0001-b2-fix-install.patch.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \+ -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \+ + +# First build bjam, the boost build system: +./bootstrap.sh \ + --with-toolset=gcc \ + --with-icu \ + --with-python=/usr/bin/python2 || exit 1 + +# # Next, we build boost using bjam +./b2 \ + $NUMJOBS \ + --layout=system \ + --build-dir=build-python2 \ + --prefix=/usr \ + --libdir=/usr/lib$LIBDIRSUFFIX \ + --build-type=minimal \ + toolset=gcc \ + variant=release \ + debug-symbols=off \ + link=shared \ + threading=multi \ + runtime-link=shared \ + python=$PYTHON_VERSION \ + cflags="$SLKCFLAGS" \ + cxxflags="$SLKCFLAGS $EXTRA_CXXFLAGS" \ + stage || exit 1 + +# # And then install boost.. +./b2 \ + $NUMJOBS \ + --layout=system \ + --build-dir=build-python2 \ + --prefix=$PKG/usr \ + --libdir=$PKG/usr/lib$LIBDIRSUFFIX \ + --build-type=minimal \ + toolset=gcc \ + variant=release \ + debug-symbols=off \ + link=shared \ + threading=multi \ + runtime-link=shared \ + python=$PYTHON_VERSION \ + cflags="$SLKCFLAGS" \ + cxxflags="$SLKCFLAGS $EXTRA_CXXFLAGS" \ + install || exit 1 + +# one more run to build libboost_python3.. +sed -e '/using python/ s@;@: /usr/include/python${PYTHON_VERSION/3*/${PYTHON_VERSION}} ;@' \ + -i bootstrap.sh + +./bootstrap.sh \ + --with-toolset=gcc \ + --with-icu \ + --with-python=/usr/bin/python3 \ + --with-libraries=python || exit 1 + +./b2 \ + $NUMJOBS \ + --layout=system \ + --build-dir=build-python3 \ + --prefix=/usr \ + --libdir=/usr/lib$LIBDIRSUFFIX \ + --build-type=minimal \ + toolset=gcc \ + variant=release \ + debug-symbols=off \ + link=shared \ + threading=multi \ + runtime-link=shared \ + python=$PYTHON3_VERSION \ + cflags="$SLKCFLAGS" \ + cxxflags="$SLKCFLAGS $EXTRA_CXXFLAGS" \ + stage || exit 1 + +./b2 \ + $NUMJOBS \ + --layout=system \ + --build-dir=build-python3 \ + --prefix=$PKG/usr \ + --libdir=$PKG/usr/lib$LIBDIRSUFFIX \ + --build-type=minimal \ + toolset=gcc \ + variant=release \ + debug-symbols=off \ + link=shared \ + threading=multi \ + runtime-link=shared \ + python=$PYTHON3_VERSION \ + cflags="$SLKCFLAGS" \ + cxxflags="$SLKCFLAGS $EXTRA_CXXFLAGS" \ + install || exit 1 + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +mkdir -p $PKG/usr/doc/boost-$PKG_VERSION +# Do not copy 44MB of developer 'doc/html' into our package... +cp -a LICENSE* index.html $PKG/usr/doc/boost-$PKG_VERSION +find $PKG/usr/doc -type f -exec chmod 0644 {} \+ + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n /tmp/boost-$PKG_VERSION-$ARCH-$BUILD.txz diff --git a/patches/source/boost/slack-desc b/patches/source/boost/slack-desc new file mode 100644 index 000000000..50f9fea38 --- /dev/null +++ b/patches/source/boost/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +boost: boost (Boost C++ Libraries) +boost: +boost: Boost provides free peer-reviewed portable C++ source libraries. +boost: The emphasis is on libraries that work well with the C++ Standard +boost: Library. One goal is to establish "existing practice" and provide +boost: reference implementations so that the Boost libraries are suitable +boost: for eventual standardization. +boost: +boost: Homepage: https://www.boost.org/ +boost: +boost: |