SliTaz Packages

Community Doc Forum Pro Shop Bugs Hg
.

Receipt for package "plop"

# SliTaz package receipt.

PACKAGE="plop"
VERSION="5.0.15"
CATEGORY="base-system"
SHORT_DESC="USB / IDE-CD / PCMCIA CardBus and others boot utility."
MAINTAINER="pascal.bellard@slitaz.org"
LICENSE="other"
WEB_SITE="https://www.plop.at/en/bootmanagers.html"
TARBALL="plpbt-$VERSION.zip"
WGET_URL="https://download.plop.at/files/bootmngr/$TARBALL"

BUILD_DEPENDS="xz lz4 lzsa"

# What is the latest version available today?
current_version()
{
    wget -O - $WEB_SITE 2>/dev/null | \
    sed '/td align=center/!d;s|.*center>||;s|</.*||;q'
}

asm()
{
    cc -o $1.o -Wa,-a=$1.lst -c $1.S
    objcopy --only-section=.text -O binary $1.o $1.bin
}

tune_lzma()
{
    cp $stuff/*.S .
    nice=$1
    while [ -n "$2" ]; do
        sed "s|^#define PROP_$2 .*|#define PROP_$2 $3|" -i unlzma.S
        shift 2
    done
    cp plpbt.bin plop
    cp plpbt.bin plop.bin
    dd if=/dev/zero bs=1 count=500 seek=3 conv=notrunc of=plop.bin 2> /dev/null
    for c in lzma lz4x2 lzsa1x2 lzsa2x2 ; do
        sed "s|uncompress|un${c%x2}|" < $stuff/unpack.S > unpack.S
        cp $stuff/pack .
        sed "s/VERSION/$VERSION/;s|lzma1=|&nice=$nice,|" -i pack
        cp pack pack.bak
        asm bootloader
        asm unpack
        cp unpack.lst unpack.lst.${c%x2}
        ./pack --build bootloader.bin unpack.bin
        PACKER=${c%x2} ./pack plop.bin plop.${c%x2}
        [ $(stat -c %s plop.${c%x2}) -lt $(stat -c %s plop) ] && cp plop.${c%x2} plop
        if [ "${c#*x}" = "2" ]; then
            cp pack.bak pack
            sed -e "s|^#define DOUBLE_PACKED|#define DOUBLE_PACKED    1 // $i|" -i unpack.S
            asm unpack
            ./pack --build bootloader.bin unpack.bin
            PACKER=${c%x2} ./pack plop.bin plop.$c
            mv unpack.lst unpack.lst.$c
        fi
    done
    true
}

# Rules to configure and make the package.
compile_rules()
{
    while read ofs data name; do
        echo -en "\x$data" | \
        dd conv=notrunc of=plpbt.bin bs=1 seek=$((0x$ofs)) 2> /dev/null
    done <<EOT
0288    00    videoMode=text
0295    00    stars=off
0299    01    font=bios
029A    00    zoomanimation=off
EOT
    tune_lzma 76,mf=bt2 LC 0 PB 0
}

# Rules to gen a SliTaz package suitable for Tazpkg.
genpkg_rules()
{
    mkdir -p $fs/boot $install/usr/share
    cp $src/plop $fs/boot/plop.exe
    cp -a $src/doc $install/usr/share
    cp -a $src/*.txt $src/*.TXT $install/usr/share/doc
}

# Pre and post install commands for Tazpkg.
post_install()
{
    [ -s $1/boot/isolinux/isolinux.cfg ] &&
    ! grep -qs '/plop.exe' $1/boot/isolinux/isolinux.cfg &&
    sed -i 's|i18n.cfg|&\n\
LABEL plop usb pcmcia\
    MENU LABEL USB/PCMCIA boot\
    KERNEL /boot/plop.exe|' $1/boot/isolinux/isolinux.cfg
    true
}
6025 packages and 203154 files in current database (Thu Apr 25 06:17:47 2024)