From 137af17762a8d7acba48a8df4942abf9761dfa47 Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Mon, 3 Jul 2023 05:13:29 -0400 Subject: [PATCH] development/guile2.2: Fix /usr/info files. Signed-off-by: B. Watson Signed-off-by: Willy Sudiarto Raharjo --- development/guile2.2/doinst.sh | 6 +++ development/guile2.2/guile2.2.SlackBuild | 65 ++++++++++++++++-------- 2 files changed, 50 insertions(+), 21 deletions(-) create mode 100644 development/guile2.2/doinst.sh diff --git a/development/guile2.2/doinst.sh b/development/guile2.2/doinst.sh new file mode 100644 index 0000000000..1bef502028 --- /dev/null +++ b/development/guile2.2/doinst.sh @@ -0,0 +1,6 @@ +if [ -x /usr/bin/install-info -a -d usr/info ]; then + ( cd usr/info + rm -f dir + for i in *.info*; do /usr/bin/install-info $i dir 2>/dev/null; done + ) +fi diff --git a/development/guile2.2/guile2.2.SlackBuild b/development/guile2.2/guile2.2.SlackBuild index 0b94e57e8c..d9ec12d721 100644 --- a/development/guile2.2/guile2.2.SlackBuild +++ b/development/guile2.2/guile2.2.SlackBuild @@ -22,12 +22,17 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# 20230630 bkw: Modified by SlackBuilds.org, BUILD=2: +# - fix the info files so the info command can actually display them. +# - add doinst.sh to handle /usr/info/dir. +# - rm generic INSTALL from doc dir. + cd $(dirname $0) ; CWD=$(pwd) PRGNAM=guile2.2 SRCNAM=guile VERSION=${VERSION:-2.2.7} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} @@ -39,9 +44,6 @@ if [ -z "$ARCH" ]; then 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 "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" exit 0 @@ -76,9 +78,9 @@ cd $SRCNAM-$VERSION chown -R root:root . find -L . \ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ - -o -perm 511 \) -exec chmod 755 {} \; -o \ + -o -perm 511 \) -exec chmod 755 {} + -o \ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ - -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} + CFLAGS="$SLKCFLAGS" \ ./configure \ @@ -113,27 +115,46 @@ find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | gr find $PKG/usr/man -type f -exec gzip -9 {} \; for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done -# Compress info files -if [ -d $PKG/usr/info ]; then - ( cd $PKG/usr/info - rm -f dir - gzip -9 * - # rename them so that they will not overwrite Slackware's files from the guile 3.0 package - for i in {1..10} - do - mv guile.info-$i.gz guile2.2.info-$i.gz - done - mv guile.info.gz guile2.2.info.gz - mv r5rs.info.gz r5rs2.2.info.gz - ) -fi +# 20230629 bkw: +# +# Fix the info files. This is required for them to work with the info +# command; simply renaming them doesn't work. If you try it, you won't +# see the guile 2.2 stuff in the info directory... and if you try +# "info guile2.2" or even "info /usr/info/guile2.2.info.gz" with the +# previous BUILD (4), it will show you the guile 3.0 documentation +# instead (seriously). Surgery is required. +# +# r5rs.info is almost identical to the one in Slackware, so leave it +# out of this package. +# +# This is a lot of work to do, but it results in proper info files: +# they show up in the index (if you just type "info"), without +# conflicting with Slackware's guile info files. And you can also run +# "info guile2.2" to display them. +# +# The alternative to this messy solution would be to rm -rf $PKG/usr/info +# and just not ship the .info files. But I kinda hate to do that. +# +rm -f $PKG/usr/info/* +GV="$( echo $VERSION | cut -d. -f1,2 )" +( cd doc/ref + sed -i '/^guile\.info-/s,guile,guile'$GV, guile.info + sed -i \ + -e '/\* Guile Ref/s,.*,* Guile '$GV' Reference: (guile'$GV'). The Guile '$GV' reference manual.,' \ + -e '/^File: guile\.info/s,guile,guile'$GV, \ + guile.info* + rename guile. guile$GV. guile.info* + for i in guile$GV.info*; do + gzip -9c < $i > $PKG/usr/info/$( basename $i ).gz + done +) # Avoid duplicate with Slackware's guile.m4 # It can detect newer and older versions of guile installed on system mv $PKG/usr/share/aclocal/guile.m4 $PKG/usr/share/aclocal/guile22.m4 mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION -cp -a AUTHORS COPYING* GUILE-VERSION HACKING INSTALL LICENSE NEWS README* THANKS \ +cp -a AUTHORS COPYING* GUILE-VERSION HACKING LICENSE NEWS README* THANKS \ $PKG/usr/doc/$PRGNAM-$VERSION cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild @@ -144,6 +165,8 @@ rm -f $PKG/usr/lib*/*.la mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc +cat $CWD/doinst.sh > $PKG/install/doinst.sh +cat $CWD/doinst.sh > $PKG/install/douninst.sh cd $PKG /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE