wok view ipxe/receipt @ rev 24091

get-pcem-roms: version less
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sat Jul 17 19:56:00 2021 +0000 (2021-07-17)
parents bd734fc43792
children 46dcc80bef41
line source
1 # SliTaz package receipt.
3 PACKAGE="ipxe"
4 VERSION="1.21.1"
5 CATEGORY="system-tools"
6 SHORT_DESC="Open source network boot firmware."
7 MAINTAINER="pascal.bellard@slitaz.org"
8 LICENSE="GPL2"
9 WEB_SITE="https://ipxe.org/"
10 TARBALL="$PACKAGE-$VERSION.tar.gz"
11 WGET_URL="https://github.com/ipxe/ipxe/archive/v$VERSION.tar.gz"
13 SPLIT="ipxe-pxe ipxelinux"
14 DEPENDS=""
15 BUILD_DEPENDS="perl wget liblzma-dev syslinux"
17 current_version()
18 {
19 wget -O - ${WGET_URL%/arch*}/releases 2>/dev/null | \
20 sed '/archive.*tar/!d;s|.*/v\(.*\).tar.*|\1|;q'
21 }
23 # Rules to configure and make the package.
24 compile_rules()
25 {
26 cd $src/src
27 patch -p1 < $stuff/cmd_isgt.u
28 sed -i 's|SIZEOF_LOW_4GB / SIZEOF_2MB_PAGE|1 << (SIZEOF_LOW_4GB_LOG2 - SIZEOF_2MB_PAGE_LOG2)|' arch/x86/transitions/librm.S
29 sed -i 's/-llzma/& -lpthread/' Makefile.*
30 sed -i 's|//\(#define.*CONSOLE_FRAMEBUFFER\)|\1|' config/console.h
31 sed -i 's|//\(#define.*CONSOLE_SERIAL\)|\1|' config/console.h
32 sed -e 's|//\(#define.*IMAGE_PNG\)|\1|' \
33 -e 's|.*\(NET_PROTO_IPV6\)|#define \1|' \
34 -e 's|undef \(DOWNLOAD_PROTO_HTTPS\)|define \1|' \
35 -e 's|.*\(VLAN_CMD\)|#define \1|' \
36 -e 's|.*\(CERT_CMD\)|#define \1|' \
37 -e 's|//\(#define.*CONSOLE_CMD\)|\1|' \
38 -e 's|//\(#define.*REBOOT_CMD\)|\1|' -i config/general.h
39 sed -i "s|\(TAG_LINE \"\)|\1${VERSION#*-} -- |" config/branding.h
40 sed -i 's|//\(#define.*CPUID_SETTINGS\)|\1|' config/settings.h
41 pxelinux="$(ls $WOK/syslinux/source/*/core/pxelinux.0)"
42 make bin-i386-efi/snponly.efi EMBED=$stuff/ipxelinux.ipxe,$pxelinux &&
43 mv bin-i386-efi/snponly.efi bin-i386-efi/ipxelinux.efi
44 make bin-i386-efi/ipxe.efi bin-i386-efi/snponly.efi EMBED=$stuff/ipxe.cmd
46 sed -i 's|//\(#define.*MEMMAP_SETTINGS\)|\1|' config/settings.h
47 make bin/undionly.kkkpxe EMBED=$stuff/ipxelinux.ipxe,$pxelinux &&
48 mv bin/undionly.kkkpxe bin/ipxelinux.0
49 make bin/undionly.pxe bin/undionly.kpxe bin/undionly.kkpxe \
50 bin/undionly.kkkpxe bin/ipxe.pxe bin/ipxe.kpxe bin/ipxe.kkpxe \
51 bin/ipxe.kkkpxe bin/ipxe.nbi bin/ipxe.lkrn \
52 bin/ipxe.exe EMBED=$stuff/ipxe.cmd
53 cp $stuff/bootloader.S .
54 cc -o bootloader.o -Wa,-a=bootloader.lst -c bootloader.S
55 objcopy -O binary bootloader.o bootloader.bin
56 size=$(stat -c %s bin/ipxe.lkrn)
57 while read ofs val ; do
58 printf '\\\\x%02X\\\\x%02X' $(($val & 255)) $(($val / 256)) | \
59 xargs echo -en|dd bs=1 conv=notrunc of=bootloader.bin seek=$ofs
60 done 2> /dev/null <<EOT
61 4 $((($size+511)/512))
62 14 $((($size+15)/16))
63 EOT
64 }
66 # Rules to gen a SliTaz package suitable for Tazpkg.
67 genpkg_rules()
68 {
69 mkdir -p $fs/boot $install/usr/share
70 cp -a $src/src/doc $install/usr/share
71 cp -a $src/src/bin/ipxe.lkrn $fs/boot/ipxe.exe
72 dd if=$src/src/bootloader.bin of=$fs/boot/ipxe.exe conv=notrunc
73 }
75 # Pre and post install commands for Tazpkg.
76 post_install()
77 {
78 [ -s $1/boot/isolinux/isolinux.cfg ] &&
79 ! grep -qs 'Web Boot' $1/boot/isolinux/isolinux.cfg &&
80 sed -i 's|i18n.cfg|&\n\
81 LABEL web zeb\
82 MENU LABEL Web Boot\
83 KERNEL /boot/ipxe.exe|' $1/boot/isolinux/isolinux.cfg
84 true
85 }