aboutsummaryrefslogtreecommitdiff
path: root/system
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2022-02-10 15:33:47 -0500
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2022-02-12 13:32:49 +0700
commited93848ce597bcc1a39bb720a994b5e0a19394c0 (patch)
tree5686fbadf96b39a89c5e9921e5aea7b35fd69465 /system
parent96d63f87e28a8175c1c21f4c8a12f565fd9df055 (diff)
system/mbootpack: Fix 15.0 build.
Signed-off-by: B. Watson <yalhcru@gmail.com> Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'system')
-rw-r--r--system/mbootpack/README13
-rw-r--r--system/mbootpack/mbootpack.SlackBuild37
2 files changed, 30 insertions, 20 deletions
diff --git a/system/mbootpack/README b/system/mbootpack/README
index d22e86a4c7e6d..d613e4069ec3b 100644
--- a/system/mbootpack/README
+++ b/system/mbootpack/README
@@ -1,8 +1,9 @@
mbootpack (Multiboot kernel and modules)
-This is a tool that takes a multiboot kernel and modules (e.g. a Xen VMM,
-linux kernel and initrd), and packages them up as a single file that looks
-like a bzImage linux kernel. The aim is to allow you to boot multiboot
-kernels (in particular, Xen) using bootloaders that don't support multiboot
-(i.e. pretty much anything except GRUB and SYSLINUX). This is, as you might
-expect, pretty grim stuff, involving lots of lovely 16-bit real-mode code.
+This is a tool that takes a multiboot kernel and modules (e.g. a Xen
+VMM, linux kernel and initrd), and packages them up as a single file
+that looks like a bzImage linux kernel. The aim is to allow you to
+boot multiboot kernels (in particular, Xen) using bootloaders that
+don't support multiboot (i.e. pretty much anything except GRUB and
+SYSLINUX). This is, as you might expect, pretty grim stuff, involving
+lots of lovely 16-bit real-mode code.
diff --git a/system/mbootpack/mbootpack.SlackBuild b/system/mbootpack/mbootpack.SlackBuild
index acfab323404b2..c80727cbfb993 100644
--- a/system/mbootpack/mbootpack.SlackBuild
+++ b/system/mbootpack/mbootpack.SlackBuild
@@ -22,6 +22,11 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# 20220210 bkw: Modified by SlackBuilds.org:
+# - BUILD=3.
+# - build with clang (gcc fails *hard*).
+# - only install the actual mbootpack binary in /usr/bin.
+
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=mbootpack
@@ -38,9 +43,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
@@ -75,25 +77,32 @@ cd $PRGNAM-$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 {} \+
# Some fixes from ALT Linux folks
patch -p1 <$CWD/patches/mbootpack-0.6a-alt3.patch
-make
+# 20220210 bkw: actually use SLKCFLAGS.
+sed -i -e "s,-O3,$SLKCFLAGS," Makefile
-# We have to do things manually since mbootpack doesn't have make install
-mkdir -p $PKG/usr/{bin,man/man1}
-cp -a bootsect mbootpack mkhex setup $PKG/usr/bin
-cp -a mbootpack.man $PKG/usr/man/man1/mbootpack.1
+# 20220210 bkw: speeds up the sed scripts slightly.
+export LANG=C
-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
+# 20220210 bkw: gcc fails *badly* at compiling this, and I'm not sure why.
+# We end up with giant (like 130MB) .c source files and gcc either gets
+# OOM-killed or starves everything else of CPU. clang seems fine though.
+# -I- is an error in clang.
+sed -i -e 's,-I-,-iquote,' Makefile
+make CC=clang
-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
+# We have to do things manually since mbootpack doesn't have make install.
+# 20220210 bkw: looking at the ALT linux package, the bootsect, mkhex,
+# setup binaries don't belong in the package.
+mkdir -p $PKG/usr/{bin,man/man1}
+install -s $PRGNAM $PKG/usr/bin
+gzip -9c $PRGNAM.man > $PKG/usr/man/man1/$PRGNAM.1.gz
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a Changes GPL README $PKG/usr/doc/$PRGNAM-$VERSION