Browse Source

system/mbootpack: Fix 15.0 build.

Signed-off-by: B. Watson <yalhcru@gmail.com>

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
pull/169/head
B. Watson 4 years ago
committed by Willy Sudiarto Raharjo
parent
commit
ed93848ce5
No known key found for this signature in database GPG Key ID: 3F617144D7238786
  1. 13
      system/mbootpack/README
  2. 37
      system/mbootpack/mbootpack.SlackBuild

13
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.

37
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

Loading…
Cancel
Save