SliTaz Packages

Community Doc Forum Pro Shop Bugs Hg
.

Receipt for package "syslinux"

# SliTaz package receipt.

PACKAGE="syslinux"
VERSION="4.06"
CATEGORY="base-system"
SHORT_DESC="LiveCD ISO bootloader (isolinux)"
MAINTAINER="pankso@slitaz.org"
LICENSE="GPL2"
TARBALL="$PACKAGE-$VERSION.tar.xz"
WEB_SITE="https://www.syslinux.org/"
WGET_URL="https://www.kernel.org/pub/linux/utils/boot/syslinux/$TARBALL"
LINLD="$WOK/linld/source"
CONFIG_FILES="/boot/isolinux/*.cfg /boot/isolinux/kbd"
TAGS="boot"

BUILD_DEPENDS="wget kbd-base perl nasm dev86 lzma mingw32-gcc upx posixovl \
util-linux-uuid-dev advancecomp libidn linld e2fsprogs gcc49"

current_version()
{
    wget -O - $(dirname $WGET_URL) 2>/dev/null | \
    sed "/$PACKAGE-[0-9]/!d;/tar/!d;s|.*$PACKAGE-\\(.*\\).tar.*\".*|\\1|" | sort -Vr | sed q
}

# Rules to gen a SliTaz package suitable for Tazpkg.
compile_rules()
{
    # Patch to be build with glibc 2.28
    # see https://github.com/buildroot/buildroot/commit/c91e7da5cf6ecf4690148751f72a4185da6243a0
    patch -p1 < $stuff/build_with_glibc-2.28.patch

    rm -f $src/core/isolinux.bin
    for i in loadhigh iso9660 readconfig keytab-lilo lzop-1.03-gcc6 fixes-4.07 ; do
        patch -p 0 < $stuff/extra/$i.u
    done
    cp $stuff/tools/isohybrid.sh .
    cp $stuff/extra/md5sum.c com32/modules
    grep -q md5sum.c32 com32/modules/Makefile ||
        sed -i 's/ifcpu64.c32/ifcpu64.c32 md5sum.c32/' com32/modules/Makefile
    export LDFLAGS=''
    make clean
    echo "make all: LDFLAGS=$LDFLAGS"
    make CC='gcc-49' all 2>&1 | sed 's/NO_WERROR=1/NO_Werror=1/;/syslinux64.exe/d'
    echo "make core: LDFLAGS=$LDFLAGS"
    make CC='gcc-49' -C core
    make CC='gcc-49' -C com32
    ./isohybrid.sh --build
    sed -i 's/loadkeys -m/loadkeys -u -m/' utils/keytab-lilo    # for ru.kbd
    mkdir kbd
    for i in /usr/share/kbd/keymaps/i386/*/*.map.gz; do
        [ "$(basename $(dirname $i))" = 'include' ] && continue
        utils/keytab-lilo /usr/share/kbd/keymaps/i386/qwerty/us.map.gz \
            $i > kbd/$(basename $i .map.gz)
    done
    cp -a $stuff/iso2exe .
    cp $LINLD/*/linld.com iso2exe
    make CC='gcc-49' -C iso2exe
}

# Rules to gen a SliTaz package suitable for Tazpkg.
genpkg_rules()
{
    mkdir -p $fs/boot/isolinux $install/usr/share/doc
    cp $stuff/iso2exe/README* $install/usr/share/doc
    cp $stuff/iso2exe/init.custom $install/usr/share/doc
    cp $src/doc/*.txt $install/usr/share/doc
    cp -a $src/man $install/usr/share/
    cp $LINLD/*/linld.com $fs/boot
    cp -a $src/core/isolinux.bin $fs/boot/isolinux
    lzma e $src/com32/modules/md5sum.c32 $fs/boot/isolinux/c32box.c32
    lzma e $src/com32/menu/vesamenu.c32 $fs/boot/isolinux/vesamenu.c32
    # $stuff/isolinux.msg is the old way the have a splash image.
    cp $stuff/*.cfg $stuff/*.txt $stuff/help.* $stuff/opts.* $fs/boot/isolinux
    rm -f $fs/boot/isolinux/common.cfg $fs/boot/isolinux/default.cfg
    rm -f $fs/boot/isolinux/display.txt
    while read label kbd loc tz menu; do
        for i in ${kbd/,/ }; do
             [ -e $src/kbd/$i ] || continue
            map=" $i"
            [ ${kbd#*,} = $i ] && map=
            cat >> $fs/boot/isolinux/i18n.cfg <<EOT
LABEL $label
    MENU LABEL $menu
    com32 c32box.c32
    append kbd$map lang=$loc kmap=${kbd#*,} tz=$tz

EOT
            break
        done
    done <<EOT
br        br-abnt2    pt_BR    America/Sao_Paulo    Brasil (abnt2)
br_ac\ brac    us-acentos    pt_BR    America/Sao_Paulo    Brasil (us-acentos)
cz        cz-lat2        cs_CZ    Europe/Prague        Cesky
dk        dk-latin1    da_DK    Europe/Copenhagen    Dansk
de        de-latin1    de_DE    Europe/Berlin        Deutsch
de_CH\ deCH    de_CH-latin1    de_CH    Europe/Zurich        Deutsch Schweiz
gr        gr        el_GR    Europe/Helsinki        Ellinika
en        uk        en_GB    Europe/London        English UK
us        us        en_US    America/New_York    English US
us_ac\ usac    us-acentos    en_US    America/New_York    English US (acentos)
us_dv\ usdv    dvorak        en_US    America/New_York    English US (dvorak)
us_dl\ usdl    dvorak-l    en_US    America/New_York    English US (dvorak-l)
us_dr\ usdr    dvorak-r    en_US    America/New_York    English US (dvorak-r)
es        es        es_ES    Europe/Madrid        Espanol
fr        fr-latin1    fr_FR    Europe/Paris        Francais
be        be-latin1    fr_BE    Europe/Brussels        Francais Belgique
ca        cf        fr_CA    America/Montreal    Francais Canada
fr_CH\ frCH    fr_CH-latin1    fr_CH    Europe/Zurich        Francais Suisse
cr        hr,croat    hr_HR    Europe/Zagreb        Hrvatski
is        is-latin1    is_IS    Atlantic/Reykjavik    Islenska
it        it        it_IT    Europe/Rome        Italiano
hu        hu        hu_HU    Europe/Budapest        Magyar
nl        nl2        nl_NL    Europe/Amsterdam    Nederlands
no\ nb        no-latin1    nb_NO    Europe/Oslo        Norsk (Bokmal)
nn        no-latin1    nn_NO    Europe/Oslo        Norsk (Nynorsk)
po        pl2        pl_PL    Europe/Warsaw        Polski
pt        pt-latin1    pt_PT    Europe/Lisbon        Portugues
ru        ru        ru_RU    Europe/Moscow        Russian
ru_uk\ uk    ru        ru_UA    Europe/Kiev        Russian Ukraine
sl        slovene        sl_SI    Europe/Ljubljana    Slovenski
fi        fi        fi_FI    Europe/Helsinki        Suomi
se        se-lat6        sv_SE    Europe/Stockholm    Svenska
tr        trq        tr_TR    Asia/Istanbul        Turkce
EOT
#grpc        gr-pc        el_GR    Europe/Helsinki        Ellinika
#jp        jp106        ja_JP    Asia/Tokyo        Japanese
#sg        sg-latin1    de_CH    Europe/Zurich        Deutsch Schweiz (sg)
#tr5        tr_q-latin5    tr_TR    Asia/Istanbul        Turkce (latin5)

    cat >> $fs/boot/isolinux/i18n.cfg <<EOT
LABEL exit
    MENU LABEL Back to main menu

MENU EXIT
MENU END
EOT
    sed -i 's/^LABEL us$/&\n    MENU DEFAULT/' $fs/boot/isolinux/i18n.cfg
    chown root.root $src/kbd/*
    touch -t 197001010100.00 $src/kbd/*
    for kbd in $(cd $src/kbd; ls | tee ../kbd.l); do
        msg="Invalid file kbd/$kbd"
        [ -s $src/kbd/$kbd ] && msg="Unused: file kbd/$kbd" &&
        grep -q "[= ]$kbd " $fs/boot/isolinux/i18n.cfg && continue
        sed -i "/^$kbd\$/d" $src/kbd.l
        echo "$msg"
    done
    ( cd $src/kbd; cpio -o -H newc < ../kbd.l ) > $fs/boot/isolinux/kbd
    lzma e $fs/boot/isolinux/kbd $fs/boot/isolinux/kbd.lzma # Add size field
    mv -f $fs/boot/isolinux/kbd.lzma $fs/boot/isolinux/kbd
    chown root.root $fs/boot/isolinux/*
}

# Pre and post install commands for Tazpkg.
post_install()
{
    sed -i "/MENU TITLE SliTaz GNU\/Linux/ s| [0-9X]*$| $(date +%Y%m%d)|" \
        "$1/boot/isolinux/isolinux.cfg"
    sed '/MENU TITLE/!d;s/MENU TITLE //' > $1/etc/slitaz-version \
        < "$1/boot/isolinux/isolinux.cfg"
    for i in $(grep -ls boot/isolinux/isolinux.cfg \
            $1/var/lib/tazpkg/installed/*/receipt); do
        pkg=$(basename ${i%/*})
        [ "$pkg" != "$PACKAGE" ] &&
        echo "Reconfigue $pkg ..." &&
        root=/ chroot "$1/" tazpkg reconfigure $pkg
    done
}
6025 packages and 203154 files in current database (Thu Apr 25 06:17:47 2024)