SliTaz Packages

Community Doc Forum Pro Shop Bugs Hg
.

Receipt for package "linux-libre"

# SliTaz package receipt.

PACKAGE="linux-libre"
VERSION="3.18.129-gnu"
CATEGORY="base-system"
SHORT_DESC="The Linux Libre kernel and modules."
MAINTAINER="gokhlayeh@slitaz.org"
LICENSE="GPL2"
PROVIDE="linux"
TARBALL="$PACKAGE-$VERSION.vcdiff"
WEB_SITE="http://www.fsfla.org/ikiwiki/selibre/linux-libre/"
WGET_URL="http://linux-libre.fsfla.org/pub/linux-libre/releases/old/gen6/$VERSION/$TARBALL"
EXTRA_SOURCE_FILES="https://mirrors.edge.kernel.org/pub/linux/kernel/v${VERSION%%.*}.x/linux-${VERSION%-gnu}.tar.xz"

DEPENDS="kmod"
BUILD_DEPENDS="slitaz-toolchain perl git xz lzma patch kmod bc \
sysfsutils-dev libtool glib-dev libwrap libwrap-dev udev-dev xdelta"

# What is the latest version available today?
current_version()
{
    wget -O - http://linux-libre.fsfla.org/pub/linux-libre/releases/ 2> /dev/null | \
    sed '/-gnu/!d;s|.*ref="||;s|/".*||' | sed '$!d'
}

# Rules to configure and make the package.
compile_rules()
{
    [ -s "$SOURCES_REPOSITORY/$(basename $EXTRA_SOURCE_FILES)" ] ||
            busybox wget -P "$SOURCES_REPOSITORY/" "$EXTRA_SOURCE_FILES" 
    xzcat < $SOURCES_REPOSITORY//$(basename $EXTRA_SOURCE_FILES) > $(basename $EXTRA_SOURCE_FILES .xz) 
    xdelta3 -d $TARBALL
    tar xf ${TARBALL/vcdiff/tar}
    mv linux-*/* .

    # SliTaz db
    rm -rf $WOK/$PACKAGE/slitaz && mkdir $WOK/$PACKAGE/slitaz
    echo "$WGET_URL" > $WOK/$PACKAGE/slitaz/url
    cp $stuff/gztazmod.sh $stuff/list_modules.sh $WOK/$PACKAGE/slitaz
    cp $stuff/bootloader.sh $WOK/$PACKAGE/slitaz
    
    # Apply patches
    echo "Applying patches..."
    while read patch_file; do
        echo "$patch_file" >> $WOK/$PACKAGE/slitaz/patches
        cp $stuff/$patch_file $WOK/$PACKAGE/slitaz
        if [ -f done.$patch_file ]; then
            echo "Skipping $patch_file"
            continue
        fi
        echo "Apply $patch_file"
        patch -p1 < $WOK/$PACKAGE/slitaz/$patch_file || return 1
        touch done.$patch_file
    done <<EOT
$PACKAGE-lzma-$VERSION.u
$PACKAGE-freeinitrd-$VERSION.u
$PACKAGE-efi-$VERSION.u
EOT

    make mrproper
    cd tools/lguest
    make $MAKEFLAGS lguest || return 1
    cd $src

    # Build bzImage without modules first
    cp -f $stuff/$PACKAGE-$VERSION-slitaz.config .config
    sed -i 's/CONFIG_MODULES=y/# CONFIG_MODULES is not set/' .config

    yes '' | make oldconfig
    make $MAKEFLAGS bzImage || return 1
    [ -d $DESTDIR ] || mkdir -p $DESTDIR
    mv arch/x86/boot/bzImage $DESTDIR
    mv System.map System.map-without-modules

    # Build bzImage with modules
    cp -f $stuff/$PACKAGE-$VERSION-slitaz.config .config
    make oldconfig
    ln .config $WOK/$PACKAGE/slitaz/config
    make $MAKEFLAGS bzImage &&
    make $MAKEFLAGS modules &&
    make INSTALL_MOD_PATH=$DESTDIR modules_install &&
    make INSTALL_HDR_PATH=$DESTDIR/usr headers_install &&
    [ -s arch/x86/boot/bzImage ] || return 1
    mkdir -p $DESTDIR/boot 2> /dev/null
    mv arch/x86/boot/bzImage $DESTDIR/boot/vmlinuz-$VERSION-slitaz

    # Compress all modules.
    $stuff/gztazmod.sh $DESTDIR/lib/modules/$VERSION-slitaz
    ln System.map System.map-modules
    ln Module.symvers Module.symvers-modules
}

# Rules to gen a SliTaz package suitable for Tazpkg.
genpkg_rules()
{
    local path
    cp -a $install/boot $fs
    # Compress all modules.
    #$stuff/gztazmod.sh $install/lib/modules/$VERSION-slitaz
    path=$fs/lib/modules/$VERSION-slitaz/kernel
    mkdir -p $path
    cp -a $install/lib/modules/$VERSION-slitaz/mo* \
        $fs/lib/modules/$VERSION-slitaz
    # Get the base modules
    export src
    export _pkg
    mkdir $WOK/$PACKAGE/tmp
    $stuff/list_modules.sh \
    $(cat stuff/modules-$VERSION.list) > $WOK/$PACKAGE/tmp/modules.list
    while read module; do
        dir=$(dirname $module)
        [ -d $path/$dir ] || mkdir -p $path/$dir
        cp -a $install/lib/modules/$VERSION-slitaz/kernel/$module $path/$dir
    done < $WOK/$PACKAGE/tmp/modules.list
    # Remove unresolved links
    rm -f $fs/lib/modules/$VERSION-slitaz/build
    rm -f $fs/lib/modules/$VERSION-slitaz/source

    # Pack all packages with a kernel module
    for i in $(cd $WOK; grep -l '^WANTED="linux-libre"' */receipt); do
        [ ! -d "$install/lib/modules/$VERSION-slitaz" ] && return 1
        cook ${i%/receipt}
    done

    # Check and echo any module in kernel .config that's not added to
    # one of linux-* pkgs
    export PACKAGE
    $stuff/check_modules.sh
}

# Pre and post install commands for Tazpkg.
post_install()
{
    chroot "$1/" depmod -a $VERSION-slitaz
    # GRUB stuff.
    if [ -f "$1/boot/grub/menu.lst" ]; then
        root_dev=$(cat "$1/boot/grub/menu.lst" | grep root= | sed 's/.*root=\([^ ]*\).*/\1/' | head -n 1)
        grub_dev=$(cat "$1/boot/grub/menu.lst" | grep "root (" | head -n 1)
        # Add new kernel entry in case of upgrade for installed system.
        if ! grep -q $PACKAGE-$VERSION-slitaz "$1/boot/grub/menu.lst"; then
            cat >> "$1/boot/grub/menu.lst" <<EOT

title SliTaz GNU/Linux (Kernel $VERSION-slitaz)
$grub_dev
kernel /boot/vmlinuz-$VERSION-slitaz root=$root_dev
EOT
        fi
        # Display information message.
        cat <<EOT
----
GRUB is installed, these tree lines must be in your /boot/grub/menu.lst:

title  SliTaz GNU/Linux (Kernel $VERSION-slitaz)
$grub_dev
kernel /boot/vmlinuz-$VERSION-slitaz root=$root_dev
----
EOT
    fi
    true
}
6025 packages and 203154 files in current database (Thu Apr 25 06:17:47 2024)