[SOLVED] SBo guile1.8 build error on slackware64-15.0
SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
rm -rf $backupdir; exit $rc
api-compound.texi:908: input error: utf8 "\xA0" does not map to Unicode at /usr/share/texinfo/Texinfo/ParserNonXS.pm line 1816, <FH> line 908.
gh.texi:1000: must be after `@deftypefun' to use `@deftypefunx'
fdl.texi:411: raising the section level of @appendixsubsec which is too low
make[2]: *** [Makefile:401: guile.info] Error 1
make[2]: Leaving directory '/tmp/SBo/guile-1.8.8/doc/ref'
make[1]: *** [Makefile:417: install-recursive] Error 1
make[1]: Leaving directory '/tmp/SBo/guile-1.8.8/doc'
make: *** [Makefile:530: install-recursive] Error 1
Can anyone help, or maybe try this SBo to see if it works, or is the problem just on my system only?
Distribution: Slackware64 {15.0,-current}, FreeBSD, stuff on QEMU
Posts: 462
Rep:
So that .texi file has nbsp in line 908. Perhaps someone slipped up and edited it on a Windows machine. Patching the bad character out gets past that file, but there's an issue with gh.texi as well.
I'll be AFK for the next several hours, but will try to have another look if I can.
I'm a bit behind the curve last updated 15.0 with Wed Apr 27 21:43:51 UTC 2022
Have 100+ SlackBuilds.org scripts.
guile1.8-1.8.8 compiles here.
It (guile1.8 SBo) used to work for me on slackware64-14.2. I'm curious how it is still working on your slackware64-15.0 when it is not working for me nor on the clean VM mentioned above. Is there anything really different about your slackware64-15.0 installation that is different than a stock installation? Have you replaced some of the slackware packages, or only added more SBo alongside the slackware packages?
When I upgraded from 14.2 to 15.0, I followed UPGRADE.TXT up to the point where it says to then install "everything else." For everything else, I switched to slackpkg and the usual install-new, upgrade-all, and clean-system steps. All of my old SBo and self-made (makepkg) packages were removed. I moved almost all .new files into place as the current files. After this, I think that I am running more or less a new install of slackware64-15.0.
I would like to try to compile the guile1.8 SBo package and just have it skip the whole doc/ directory and whatever it is doing in there. I don't think I really need the docs. The errors appear to have to do with making or installing the docs.
I need guile1.8 for TeXmacs. If I really have to, I might try using the TeXmacs binary download from its homepage.
I tried to hack the guile1.8.SlackBuild some on my own, but there are still errors. Take a look below.
1st, I used iconv to convert the .info and .texi files to utf-8. This cleared some errors.
2nd, there were more errors, and I found a patch file on a gentoo site that cleared some more errors.
3rd, there remain more errors about subsections needing to be raised up a level.
It seems like there will just be more and more errors!
There was also a segfault during the build process:
Code:
[Sat Jun 4 16:45:28 2022] lt-guile[16667]: segfault at 7ffca8f62000 ip 00007f2b23a386d0 sp 00007ffca8f603f0 error 4 in libguile.so.17.4.0[7f2b23a14000+82000]
[Sat Jun 4 16:45:28 2022] Code: 0f 1f 84 00 00 00 00 00 66 90 48 85 f6 74 4b 41 55 49 89 fd 41 54 49 89 f4 55 53 31 db 48 83 ec 08 66 0f 1f 84 00 00 00 00 00 <49> 8b 6c dd 00 48 89 ef e8 c3 ee fd ff 48 85 c0 78 08 48 89 ef e8
I'm not sure about the right approach or method for patching all of the errors. I have not tried to make patches in a long time.
Code:
#!/bin/bash
# Copyright 2013-2016 Willy Sudiarto Raharjo <willysr@slackbuilds.org>
# 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 BY THE AUTHOR ``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.
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=guile1.8
SRCNAM=guile
VERSION=${VERSION:-1.8.8}
BUILD=${BUILD:-4}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
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
fi
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $SRCNAM-$VERSION
tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
cd $SRCNAM-$VERSION
# fix segfault - thanks gentoo maintainers.
patch -p1 -i $CWD/guile-1.8.8-gcc46.patch
# [PATCH] Fix texinfo files for makeinfo-5.1 - thanks gentoo maintainers.
# https://464044.bugs.gentoo.org/attachment.cgi?id=345952
patch -p1 -i $CWD/0001-Fix-texinfo-files-for-makeinfo-5.1.patch
## [PATCH] Fix "guile-tut.texi:449: raising the section level of @subsection which is too low"
## https://464044.bugs.gentoo.org/attachment.cgi?id=370994
## This patch is malformed - do not use
#patch -p0 -i $CWD/doc_tutorial_guile-tut.texi.patch
# there are still errors with the docs (how to skip the docs?)
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 \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
# docs: fix text file character encoding to be utf-8
# there are still more problems with the docs (how to skip?)
for i in doc/*/*.{info,texi} ; do
iconv --verbose -f windows-1251 -t utf-8 $i -o __TEMPFILE
# some files are empty with no output, so we must touch to make output file if empty
touch __TEMPFILE
mv __TEMPFILE $i
done
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--infodir=/usr/info \
--mandir=/usr/man \
--with-threads \
--program-suffix=1.8 \
--disable-error-on-warning \
--disable-static \
--build=$ARCH-slackware-linux \
--without-doc
make -j1 LDFLAGS+="-lpthread"
make install DESTDIR=$PKG
rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/*.la
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
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 it so that it will not overwrite Slackware's guile 2.0 package
for i in {1..7}
do
mv guile.info-$i.gz guile1.8.info-$i.gz
done
mv guile.info.gz guile1.8.info.gz
mv r5rs.info.gz r5rs1.8.info.gz
)
fi
# Avoid duplicate with Slackware's guile.m4
# It can detect newer (2.0) and older (1.8) version of guile installed on system
mv $PKG/usr/share/aclocal/guile.m4 $PKG/usr/share/aclocal/guile18.m4
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a AUTHORS COPYING* GUILE-VERSION HACKING INSTALL LICENSE NEWS README* THANKS \
$PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
# Fix guile-config1.8 info
sed -i '1s/guile/guile1.8/' -i $PKG/usr/bin/guile-config1.8
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
Distribution: Slackware64 {15.0,-current}, FreeBSD, stuff on QEMU
Posts: 462
Rep:
OK, I think I've got it working with a UTF-8 locale. There were a few more fixes needed (I think they're pretty much all in the Gentoo patch set in one place or another); those are in 15-fixes.patch. Also, guile.info-7 flat-out refused to build no matter what I did (possibly snarf-related?), so I just copied the info files into $PKG/usr/info ahead of time.
I never did see any segfaults, but maybe the Gentoo patch guile-1.8.8-gcc5.patch could be helpful in that case (didn't have to use it here, but YMMV).
OK, I think I've got it working with a UTF-8 locale. There were a few more fixes needed (I think they're pretty much all in the Gentoo patch set in one place or another); those are in 15-fixes.patch. Also, guile.info-7 flat-out refused to build no matter what I did (possibly snarf-related?), so I just copied the info files into $PKG/usr/info ahead of time.
I never did see any segfaults, but maybe the Gentoo patch guile-1.8.8-gcc5.patch could be helpful in that case (didn't have to use it here, but YMMV).
Thank you very much! This works. I patched it the same as you did, not using guile-1.8.8-gcc5.patch (if I get segfaults later, then I may try rebuilding with it). Maybe your patched guile1.8.SlackBuild and those .patch files can be sent to slackbuilds.org.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.