MoinMoin Logo
  • Comments
  • Immutable Page
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
  • Login

Navigation

  • Start
  • Sitemap

Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

Revision 21 as of 2023-08-07 21:54:12
  • LinuxFromScratch

LinuxFromScratch

  • https://www.linuxfromscratch.org/

Linux From Scratch (LFS) is a project that provides you with step-by-step instructions for building your own custom Linux system, entirely from source code.

  • https://www.linuxfromscratch.org/lfs/downloads/stable/LFS-BOOK-11.3-NOCHUNKS.html

  • https://www.linuxfromscratch.org/hints/downloads/files/boot-cd_easy.txt

  • https://www.linuxfromscratch.org/lfs/downloads/stable/wget-list

List of the required downloads for LFS 11.3

Toggle line numbers
   1 # https://www.linuxfromscratch.org/lfs/downloads/stable/LFS-BOOK-11.3-NOCHUNKS.html
   2 
   3 cd ~
   4 mkdir lfs
   5 cd lfs
   6 wget https://www.linuxfromscratch.org/lfs/downloads/stable/wget-list
   7 xargs -l wget < wget-list
   8 
   9 # wget --input-file=wget-list --continue --directory-prefix=$LFS/sources
  10 mkdir sources
  11 mv *patch  *xz *gz   *bz2  sources/
  12 
  13 # As root 
  14 cd sources 
  15 chmod 666 . -R
  16 
  17 export LFS=/home/vagrant/lfs
  18 echo $LFS
  19 mkdir -pv $LFS
  20 
  21 cd $LFS 
  22 mkdir sources
  23 wget https://www.linuxfromscratch.org/lfs/downloads/stable/wget-list
  24 xargs -l wget < wget-list
  25 cd ..
  26  
  27 cat > version-check.sh << "EOF"
  28 #!/bin/bash
  29 # Simple script to list version numbers of critical development tools
  30 export LC_ALL=C
  31 bash --version | head -n1 | cut -d" " -f2-4
  32 MYSH=$(readlink -f /bin/sh)
  33 echo "/bin/sh -> $MYSH"
  34 echo $MYSH | grep -q bash || echo "ERROR: /bin/sh does not point to bash"
  35 unset MYSH
  36 
  37 echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3-
  38 bison --version | head -n1
  39 
  40 if [ -h /usr/bin/yacc ]; then
  41   echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`";
  42 elif [ -x /usr/bin/yacc ]; then
  43   echo yacc is `/usr/bin/yacc --version | head -n1`
  44 else
  45   echo "yacc not found"
  46 fi
  47 
  48 echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2
  49 diff --version | head -n1
  50 find --version | head -n1
  51 gawk --version | head -n1
  52 
  53 if [ -h /usr/bin/awk ]; then
  54   echo "/usr/bin/awk -> `readlink -f /usr/bin/awk`";
  55 elif [ -x /usr/bin/awk ]; then
  56   echo awk is `/usr/bin/awk --version | head -n1`
  57 else
  58   echo "awk not found"
  59 fi
  60 
  61 gcc --version | head -n1
  62 g++ --version | head -n1
  63 grep --version | head -n1
  64 gzip --version | head -n1
  65 cat /proc/version
  66 m4 --version | head -n1
  67 make --version | head -n1
  68 patch --version | head -n1
  69 echo Perl `perl -V:version`
  70 python3 --version
  71 sed --version | head -n1
  72 tar --version | head -n1
  73 makeinfo --version | head -n1  # texinfo version
  74 xz --version | head -n1
  75 
  76 echo 'int main(){}' > dummy.c && g++ -o dummy dummy.c
  77 if [ -x dummy ]
  78   then echo "g++ compilation OK";
  79   else echo "g++ compilation failed"; fi
  80 rm -f dummy.c dummy
  81 EOF
  82 
  83 sudo rm /bin/sh
  84 sudo ln -s /bin/bash /bin/sh
  85 sudo apt install bison texinfo gawk 
  86 
  87 bash version-check.sh
  88 
  89 # As root user  
  90 sudo bash 
  91 export LFS=/home/vagrant/lfs
  92 mkdir -pv $LFS/{etc,var} $LFS/usr/{bin,lib,sbin}
  93 
  94 for i in bin lib sbin; do
  95   ln -sv usr/$i $LFS/$i
  96 done
  97 
  98 case $(uname -m) in
  99   x86_64) mkdir -pv $LFS/lib64 ;;
 100 esac
 101 
 102 mkdir -pv $LFS/tools
 103 groupadd lfs
 104 useradd -s /bin/bash -g lfs -m -k /dev/null lfs
 105 echo -e "lfs\nlfs\n" | passwd lfs
 106 
 107 chown -v lfs $LFS/{usr{,/*},lib,var,etc,bin,sbin,tools,sources}
 108 chgrp -v lfs $LFS/{usr{,/*},lib,var,etc,bin,sbin,tools,sources}
 109 chmod 755 sources/ 
 110  
 111 case $(uname -m) in
 112   x86_64) chown -v lfs $LFS/lib64 ;;
 113 esac
 114 
 115 # Logged in as lfs user 
 116 su - lfs
 117 
 118 cat > ~/.bash_profile << "EOF"
 119 exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
 120 EOF
 121 
 122 cat > ~/.bashrc << "EOF"
 123 set +h
 124 umask 022
 125 LFS=/home/vagrant/lfs
 126 LC_ALL=POSIX
 127 LFS_TGT=$(uname -m)-lfs-linux-gnu
 128 PATH=/usr/bin
 129 if [ ! -L /bin ]; then PATH=/bin:$PATH; fi
 130 PATH=$LFS/tools/bin:$PATH
 131 CONFIG_SITE=$LFS/usr/share/config.site
 132 export LFS LC_ALL LFS_TGT PATH CONFIG_SITE
 133 EOF
 134 
 135 source ~/.bash_profile
 136 source ~/.bashrc 
 137 echo $LFS
 138 
 139 # Basic build steps 
 140 # cd /mnt/lfs/sources/
 141 # untar package as lfs user
 142 # go to package folder 
 143 # build 
 144 # go back to /mnt/lfs/sources/
 145 # delete extracted package 
 146 
 147 # binutils as lfs user  
 148 cd $LFS/sources/ 
 149 tar xvif binutils*.xz
 150 cd $(ls binutils*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 151 mkdir -v build
 152 cd build
 153 ../configure --prefix=$LFS/tools \
 154              --with-sysroot=$LFS \
 155              --target=$LFS_TGT   \
 156              --disable-nls       \
 157              --enable-gprofng=no \
 158              --disable-werror
 159 make
 160 make install 
 161 cd $LFS/sources/ 
 162 rm -rf $(ls binutils*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 163 
 164 # gcc 
 165 cd $LFS/sources/ 
 166 tar xvif gcc*.xz
 167 cd $(ls gcc*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 168 
 169 tar -xf ../mpfr-4.2.0.tar.xz
 170 mv -v mpfr-4.2.0 mpfr
 171 tar -xf ../gmp-6.2.1.tar.xz
 172 mv -v gmp-6.2.1 gmp
 173 tar -xf ../mpc-1.3.1.tar.gz
 174 mv -v mpc-1.3.1 mpc
 175 
 176 case $(uname -m) in
 177   x86_64)
 178     sed -e '/m64=/s/lib64/lib/' \
 179         -i.orig gcc/config/i386/t-linux64
 180  ;;
 181 esac
 182 
 183 mkdir -v build
 184 cd       build
 185 
 186 ../configure                  \
 187     --target=$LFS_TGT         \
 188     --prefix=$LFS/tools       \
 189     --with-glibc-version=2.37 \
 190     --with-sysroot=$LFS       \
 191     --with-newlib             \
 192     --without-headers         \
 193     --enable-default-pie      \
 194     --enable-default-ssp      \
 195     --disable-nls             \
 196     --disable-shared          \
 197     --disable-multilib        \
 198     --disable-threads         \
 199     --disable-libatomic       \
 200     --disable-libgomp         \
 201     --disable-libquadmath     \
 202     --disable-libssp          \
 203     --disable-libvtv          \
 204     --disable-libstdcxx       \
 205     --enable-languages=c,c++
 206 make 
 207 make install
 208 38m
 209 
 210 cd $LFS/sources/ 
 211 rm -rf $(ls gcc*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 212         
 213 # Linux-6.1.11 API Headers
 214 cd $LFS/sources/ 
 215 tar xvif linux*.xz
 216 cd $(ls linux*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 217 make mrproper
 218 make headers
 219 find usr/include -type f ! -name '*.h' -delete
 220 cp -rv usr/include $LFS/usr
 221 cd $LFS/sources/ 
 222 rm -rf $(ls linux*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 223 
 224 # glibc 
 225 cd $LFS/sources/ 
 226 tar xvif glibc*.xz
 227 cd $(ls glibc*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 228 case $(uname -m) in
 229     i?86)   ln -sfv ld-linux.so.2 $LFS/lib/ld-lsb.so.3
 230     ;;
 231     x86_64) ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64
 232             ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64/ld-lsb-x86-64.so.3
 233     ;;
 234 esac
 235 
 236 patch -Np1 -i ../glibc-2.37-fhs-1.patch
 237 mkdir -v build
 238 cd       build
 239 echo "rootsbindir=/usr/sbin" > configparms
 240 ../configure                             \
 241       --prefix=/usr                      \
 242       --host=$LFS_TGT                    \
 243       --build=$(../scripts/config.guess) \
 244       --enable-kernel=3.2                \
 245       --with-headers=$LFS/usr/include    \
 246       libc_cv_slibdir=/usr/lib
 247 make 
 248 
 249 make DESTDIR=$LFS install
 250 
 251 sed '/RTLDLIST=/s@/usr@@g' -i $LFS/usr/bin/ldd
 252 echo 'int main(){}' | $LFS_TGT-gcc -xc -
 253 readelf -l a.out | grep ld-linux 
 254 rm -v a.out
 255 
 256 $LFS/tools/libexec/gcc/$LFS_TGT/12.2.0/install-tools/mkheaders
 257 cd $LFS/sources/ 
 258 rm -rf $(ls glibc*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 259 
 260 # Libstdc++
 261 cd $LFS/sources/ 
 262 tar xvif gcc*.xz
 263 cd $(ls gcc*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 264 
 265 mkdir -v build
 266 cd       build
 267 
 268 ../libstdc++-v3/configure           \
 269     --host=$LFS_TGT                 \
 270     --build=$(../config.guess)      \
 271     --prefix=/usr                   \
 272     --disable-multilib              \
 273     --disable-nls                   \
 274     --disable-libstdcxx-pch         \
 275     --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/12.2.0
 276 make
 277 
 278 make DESTDIR=$LFS install
 279 rm -v $LFS/usr/lib/lib{stdc++,stdc++fs,supc++}.la       
 280 cd $LFS/sources/ 
 281 rm -rf $(ls gcc*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 282 
 283 # m4
 284 cd $LFS/sources/ 
 285 tar xvif m4*.xz
 286 cd $(ls m4*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 287 
 288 ./configure --prefix=/usr   \
 289             --host=$LFS_TGT \
 290             --build=$(build-aux/config.guess)
 291 make
 292 make[1]: Leaving directory '/home/vagrant/lfs/sources/m4-1.4.19'
 293 make: *** [Makefile:1974: all] Error 2
 294 
 295 cd $LFS/sources/ 
 296 tar xvif gcc*.xz
 297 cd $(ls gcc*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 298 cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \
 299   `dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/install-tools/include/limits.h  
 300 $LFS/tools/libexec/gcc/$LFS_TGT/12.2.0/install-tools/mkheaders
 301 cd $LFS/sources/ 
 302 cd $(ls m4*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 303 make 
 304 make DESTDIR=$LFS install
 305 cd $LFS/sources/ 
 306 rm -rf $(ls gcc*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 307 rm -rf $(ls m4*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 308 
 309 # ncurses
 310 cd $LFS/sources/ 
 311 tar xvzf ncurses*.gz
 312 cd $(ls ncurses*gz | sed  's/\.tar//g' | sed 's/\.gz//g' )
 313 
 314 sed -i s/mawk// configure
 315 
 316 mkdir build
 317 pushd build
 318   ../configure
 319   make -C include
 320   make -C progs tic
 321 popd
 322 
 323 ./configure --prefix=/usr                \
 324             --host=$LFS_TGT              \
 325             --build=$(./config.guess)    \
 326             --mandir=/usr/share/man      \
 327             --with-manpage-format=normal \
 328             --with-shared                \
 329             --without-normal             \
 330             --with-cxx-shared            \
 331             --without-debug              \
 332             --without-ada                \
 333             --disable-stripping          \
 334             --enable-widec
 335 time make
 336 
 337 make DESTDIR=$LFS TIC_PATH=$(pwd)/build/progs/tic install
 338 echo "INPUT(-lncursesw)" > $LFS/usr/lib/libncurses.so
 339 
 340 cd $LFS/sources/ 
 341 rm -rf $(ls ncurses*gz | sed  's/\.tar//g' | sed 's/\.gz//g' )
 342 
 343 # bash 
 344 cd $LFS/sources/ 
 345 tar xvzf bash*.gz
 346 cd $(ls bash*gz | sed  's/\.tar//g' | sed 's/\.gz//g' )
 347 
 348 ./configure --prefix=/usr                      \
 349             --build=$(sh support/config.guess) \
 350             --host=$LFS_TGT                    \
 351             --without-bash-malloc
 352 
 353 time make
 354 make DESTDIR=$LFS install
 355 ln -sv bash $LFS/bin/sh
 356 
 357 cd $LFS/sources/ 
 358 rm -rf $(ls bash*gz | sed  's/\.tar//g' | sed 's/\.gz//g' )
 359 
 360 # coreutils
 361 cd $LFS/sources/ 
 362 tar xvif coreutils*.xz
 363 cd $(ls coreutils*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 364 
 365 ./configure --prefix=/usr                     \
 366             --host=$LFS_TGT                   \
 367             --build=$(build-aux/config.guess) \
 368             --enable-install-program=hostname \
 369             --enable-no-install-program=kill,uptime
 370                         
 371 
 372 time make
 373 make DESTDIR=$LFS install
 374 
 375 mv -v $LFS/usr/bin/chroot              $LFS/usr/sbin
 376 mkdir -pv $LFS/usr/share/man/man8
 377 mv -v $LFS/usr/share/man/man1/chroot.1 $LFS/usr/share/man/man8/chroot.8
 378 sed -i 's/"1"/"8"/'                    $LFS/usr/share/man/man8/chroot.8
 379 
 380 cd $LFS/sources/ 
 381 rm -rf $(ls coreutils*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 382 
 383 # diffutils 
 384 cd $LFS/sources/ 
 385 tar xvif diffutils*.xz
 386 cd $(ls diffutils*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 387 
 388 ./configure --prefix=/usr --host=$LFS_TGT
 389 time make
 390 make DESTDIR=$LFS install
 391 
 392 cd $LFS/sources/ 
 393 rm -rf $(ls diffutils*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 394 
 395 # file 
 396 cd $LFS/sources/ 
 397 tar xvzf file*.gz
 398 cd $(ls file*gz | sed  's/\.tar//g' | sed 's/\.gz//g' )
 399 
 400 mkdir build
 401 pushd build
 402   ../configure --disable-bzlib      \
 403                --disable-libseccomp \
 404                --disable-xzlib      \
 405                --disable-zlib
 406   make
 407 popd
 408 
 409 ./configure --prefix=/usr --host=$LFS_TGT --build=$(./config.guess)
 410 time make FILE_COMPILE=$(pwd)/build/src/file
 411 make DESTDIR=$LFS install
 412 rm -v $LFS/usr/lib/libmagic.la
 413 
 414 cd $LFS/sources/ 
 415 rm -rf $(ls file*gz | sed  's/\.tar//g' | sed 's/\.gz//g' )
 416 
 417 # findutils 
 418 cd $LFS/sources/ 
 419 tar xvif findutils*.xz
 420 cd $(ls findutils*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 421 
 422 ./configure --prefix=/usr                   \
 423             --localstatedir=/var/lib/locate \
 424             --host=$LFS_TGT                 \
 425             --build=$(build-aux/config.guess)
 426 make
 427 make DESTDIR=$LFS install
 428 
 429 cd $LFS/sources/ 
 430 rm -rf $(ls findutils*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 431 
 432 # gawk 
 433 cd $LFS/sources/
 434 APP=gawk 
 435 tar xvif $APP*.xz
 436 cd $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 437 
 438 sed -i 's/extras//' Makefile.in
 439 ./configure --prefix=/usr   \
 440             --host=$LFS_TGT \
 441             --build=$(build-aux/config.guess)
 442 make
 443 make DESTDIR=$LFS install
 444 
 445 cd $LFS/sources/ 
 446 rm -rf $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 447 
 448 # grep 
 449 cd $LFS/sources/
 450 APP=grep  
 451 tar xvif $APP*.xz
 452 cd $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 453 
 454 ./configure --prefix=/usr   \
 455             --host=$LFS_TGT
 456 make
 457 make DESTDIR=$LFS install
 458 
 459 cd $LFS/sources/ 
 460 rm -rf $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 461 
 462 # gzip
 463 cd $LFS/sources/
 464 APP=gzip  
 465 tar xvif $APP*.xz
 466 cd $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 467 
 468 ./configure --prefix=/usr --host=$LFS_TGT
 469 make
 470 make DESTDIR=$LFS install
 471 
 472 cd $LFS/sources/ 
 473 rm -rf $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 474 
 475 # make
 476 cd $LFS/sources/
 477 APP=make  
 478 tar xvif $APP*.gz
 479 cd $(ls $APP*gz | sed  's/\.tar//g' | sed 's/\.gz//g' )
 480 
 481 sed -e '/ifdef SIGPIPE/,+2 d' \
 482     -e '/undef  FATAL_SIG/i FATAL_SIG (SIGPIPE);' \
 483     -i src/main.c
 484 
 485 ./configure --prefix=/usr   \
 486             --without-guile \
 487             --host=$LFS_TGT \
 488             --build=$(build-aux/config.guess)
 489 make
 490 make DESTDIR=$LFS install
 491 
 492 cd $LFS/sources/ 
 493 rm -rf $(ls $APP*gz | sed  's/\.tar//g' | sed 's/\.gz//g' )
 494 
 495 # patch
 496 cd $LFS/sources/
 497 APP=patch  
 498 tar xvif $APP*.xz
 499 cd $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 500 
 501 
 502 ./configure --prefix=/usr   \
 503             --host=$LFS_TGT \
 504             --build=$(build-aux/config.guess)
 505 make
 506 make DESTDIR=$LFS install
 507 
 508 cd $LFS/sources/ 
 509 rm -rf $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 510 
 511 # sed
 512 cd $LFS/sources/
 513 APP=sed  
 514 tar xvif $APP*.xz
 515 cd $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 516 
 517 ./configure --prefix=/usr   \
 518             --host=$LFS_TGT
 519 make
 520 make DESTDIR=$LFS install
 521 
 522 cd $LFS/sources/ 
 523 rm -rf $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 524 
 525 # tar
 526 cd $LFS/sources/
 527 APP=tar  
 528 tar xvif $APP*.xz
 529 cd $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 530 
 531 ./configure --prefix=/usr                     \
 532             --host=$LFS_TGT                   \
 533             --build=$(build-aux/config.guess)
 534 make
 535 make DESTDIR=$LFS install
 536 
 537 cd $LFS/sources/ 
 538 rm -rf $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 539 
 540 # xz
 541 cd $LFS/sources/
 542 APP=xz  
 543 tar xvif $APP*.xz
 544 cd $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 545 
 546 ./configure --prefix=/usr                     \
 547             --host=$LFS_TGT                   \
 548             --build=$(build-aux/config.guess) \
 549             --disable-static                  \
 550             --docdir=/usr/share/doc/xz-5.4.1
 551 make
 552 make DESTDIR=$LFS install
 553 rm -v $LFS/usr/lib/liblzma.la
 554 
 555 cd $LFS/sources/ 
 556 rm -rf $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 557 
 558 # binutils pass 2
 559 cd $LFS/sources/
 560 APP=binutils
 561 tar xvif $APP*.xz
 562 cd $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 563 
 564 sed '6009s/$add_dir//' -i ltmain.sh
 565 mkdir -v build
 566 cd       build
 567 
 568 ../configure                   \
 569     --prefix=/usr              \
 570     --build=$(../config.guess) \
 571     --host=$LFS_TGT            \
 572     --disable-nls              \
 573     --enable-shared            \
 574     --enable-gprofng=no        \
 575     --disable-werror           \
 576     --enable-64-bit-bfd
 577 
 578 make
 579 make DESTDIR=$LFS install
 580 rm -v $LFS/usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes}.{a,la}
 581 
 582 cd $LFS/sources/ 
 583 rm -rf $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 584 
 585 # gcc part 2 
 586 cd $LFS/sources/
 587 APP=gcc 
 588 tar xvif $APP*.xz
 589 cd $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 590 
 591 tar -xf ../mpfr-4.2.0.tar.xz
 592 mv -v mpfr-4.2.0 mpfr
 593 tar -xf ../gmp-6.2.1.tar.xz
 594 mv -v gmp-6.2.1 gmp
 595 tar -xf ../mpc-1.3.1.tar.gz
 596 mv -v mpc-1.3.1 mpc
 597 
 598 case $(uname -m) in
 599   x86_64)
 600     sed -e '/m64=/s/lib64/lib/' -i.orig gcc/config/i386/t-linux64
 601   ;;
 602 esac
 603 
 604 sed '/thread_header =/s/@.*@/gthr-posix.h/' \
 605     -i libgcc/Makefile.in libstdc++-v3/include/Makefile.in
 606 
 607 mkdir -v build
 608 cd       build
 609 
 610 ../configure                                       \
 611     --build=$(../config.guess)                     \
 612     --host=$LFS_TGT                                \
 613     --target=$LFS_TGT                              \
 614     LDFLAGS_FOR_TARGET=-L$PWD/$LFS_TGT/libgcc      \
 615     --prefix=/usr                                  \
 616     --with-build-sysroot=$LFS                      \
 617     --enable-default-pie                           \
 618     --enable-default-ssp                           \
 619     --disable-nls                                  \
 620     --disable-multilib                             \
 621     --disable-libatomic                            \
 622     --disable-libgomp                              \
 623     --disable-libquadmath                          \
 624     --disable-libssp                               \
 625     --disable-libvtv                               \
 626     --enable-languages=c,c++
 627 
 628 make
 629 make DESTDIR=$LFS install
 630 ln -sv gcc $LFS/usr/bin/cc
 631 
 632 cd $LFS/sources/ 
 633 rm -rf $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 634 
 635 # As root user  
 636 echo $LFS
 637 /home/vagrant/lfs
 638 cd $LFS
 639 chown -R root:root $LFS/{usr,lib,var,etc,bin,sbin,tools}
 640 case $(uname -m) in
 641   x86_64) chown -R root:root $LFS/lib64 ;;
 642 esac
 643 mkdir -pv $LFS/{dev,proc,sys,run}
 644 mount -v --bind /dev $LFS/dev
 645 
 646 mount -v --bind /dev/pts $LFS/dev/pts
 647 mount -vt proc proc $LFS/proc
 648 mount -vt sysfs sysfs $LFS/sys
 649 mount -vt tmpfs tmpfs $LFS/run
 650 
 651 if [ -h $LFS/dev/shm ]; then
 652   mkdir -pv $LFS/$(readlink $LFS/dev/shm)
 653 else
 654   mount -t tmpfs -o nosuid,nodev tmpfs $LFS/dev/shm
 655 fi
 656 
 657 chroot "$LFS" /usr/bin/env -i   \
 658     HOME=/root                  \
 659     TERM="$TERM"                \
 660     PS1='(lfs chroot) \u:\w\$ ' \
 661     PATH=/usr/bin:/usr/sbin     \
 662     /bin/bash --login
 663 # in chroot state the bash prompt will say "I have no name!"
 664 mkdir -pv /{boot,home,mnt,opt,srv}
 665 mkdir -pv /etc/{opt,sysconfig}
 666 mkdir -pv /lib/firmware
 667 mkdir -pv /media/{floppy,cdrom}
 668 mkdir -pv /usr/{,local/}{include,src}
 669 mkdir -pv /usr/local/{bin,lib,sbin}
 670 mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man}
 671 mkdir -pv /usr/{,local/}share/{misc,terminfo,zoneinfo}
 672 mkdir -pv /usr/{,local/}share/man/man{1..8}
 673 mkdir -pv /var/{cache,local,log,mail,opt,spool}
 674 mkdir -pv /var/lib/{color,misc,locate}
 675 
 676 ln -sfv /run /var/run
 677 ln -sfv /run/lock /var/lock
 678 
 679 install -dv -m 0750 /root
 680 install -dv -m 1777 /tmp /var/tmp
 681 
 682 ln -sv /proc/self/mounts /etc/mtab
 683 
 684 cat > /etc/hosts << "EOF"
 685 127.0.0.1  localhost $(hostname)
 686 ::1        localhost
 687 EOF
 688 
 689 cat > /etc/passwd << "EOF"
 690 root:x:0:0:root:/root:/bin/bash
 691 bin:x:1:1:bin:/dev/null:/usr/bin/false
 692 daemon:x:6:6:Daemon User:/dev/null:/usr/bin/false
 693 messagebus:x:18:18:D-Bus Message Daemon User:/run/dbus:/usr/bin/false
 694 uuidd:x:80:80:UUID Generation Daemon User:/dev/null:/usr/bin/false
 695 nobody:x:65534:65534:Unprivileged User:/dev/null:/usr/bin/false
 696 EOF
 697 
 698 cat > /etc/group << "EOF"
 699 root:x:0:
 700 bin:x:1:daemon
 701 sys:x:2:
 702 kmem:x:3:
 703 tape:x:4:
 704 tty:x:5:
 705 daemon:x:6:
 706 floppy:x:7:
 707 disk:x:8:
 708 lp:x:9:
 709 dialout:x:10:
 710 audio:x:11:
 711 video:x:12:
 712 utmp:x:13:
 713 usb:x:14:
 714 cdrom:x:15:
 715 adm:x:16:
 716 messagebus:x:18:
 717 input:x:24:
 718 mail:x:34:
 719 kvm:x:61:
 720 uuidd:x:80:
 721 wheel:x:97:
 722 users:x:999:
 723 nogroup:x:65534:
 724 EOF
 725 
 726 echo "tester:x:101:101::/home/tester:/bin/bash" >> /etc/passwd
 727 echo "tester:x:101:" >> /etc/group
 728 install -o tester -d /home/tester
 729 
 730 exec /usr/bin/bash --login
 731 
 732 touch /var/log/{btmp,lastlog,faillog,wtmp}
 733 chgrp -v utmp /var/log/lastlog
 734 chmod -v 664  /var/log/lastlog
 735 chmod -v 600  /var/log/btmp
 736 
 737 # gettext
 738 cd /sources/
 739 APP=gettext  
 740 tar xvif $APP*.xz
 741 cd $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 742 
 743 ./configure --disable-shared
 744 make
 745 cp -v gettext-tools/src/{msgfmt,msgmerge,xgettext} /usr/bin
 746 
 747 cd /sources/ 
 748 rm -rf $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 749 
 750 # bison 
 751 cd /sources/
 752 APP=bison   
 753 tar xvif $APP*.xz
 754 cd $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 755 
 756 ./configure --prefix=/usr \
 757             --docdir=/usr/share/doc/bison-3.8.2
 758 make
 759 make install
 760 cd /sources/ 
 761 rm -rf $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 762 
 763 # perl 
 764 cd /sources/
 765 APP=perl 
 766 tar xvif $APP*.xz
 767 cd $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 768 
 769 sh Configure -des                                        \
 770              -Dprefix=/usr                               \
 771              -Dvendorprefix=/usr                         \
 772              -Dprivlib=/usr/lib/perl5/5.36/core_perl     \
 773              -Darchlib=/usr/lib/perl5/5.36/core_perl     \
 774              -Dsitelib=/usr/lib/perl5/5.36/site_perl     \
 775              -Dsitearch=/usr/lib/perl5/5.36/site_perl    \
 776              -Dvendorlib=/usr/lib/perl5/5.36/vendor_perl \
 777              -Dvendorarch=/usr/lib/perl5/5.36/vendor_perl
 778 make
 779 make install
 780 
 781 cd /sources/ 
 782 rm -rf $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 783 
 784 # python 
 785 cd /sources/
 786 APP=Python 
 787 tar xvif $APP*.xz
 788 cd $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 789 
 790 ./configure --prefix=/usr   \
 791             --enable-shared \
 792             --without-ensurepip
 793 make
 794 make install
 795 cd /sources/ 
 796 rm -rf $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 797 
 798 # texinfo
 799 cd /sources/
 800 APP=texinfo 
 801 tar xvif $APP*.xz
 802 cd $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 803 
 804 ./configure --prefix=/usr
 805 make
 806 make install
 807 
 808 cd /sources/ 
 809 rm -rf $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 810 
 811 # util-linux
 812 cd /sources/
 813 APP=util-linux 
 814 tar xvif $APP*.xz
 815 cd $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 816 
 817 mkdir -pv /var/lib/hwclock
 818 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime    \
 819             --libdir=/usr/lib    \
 820             --docdir=/usr/share/doc/util-linux-2.38.1 \
 821             --disable-chfn-chsh  \
 822             --disable-login      \
 823             --disable-nologin    \
 824             --disable-su         \
 825             --disable-setpriv    \
 826             --disable-runuser    \
 827             --disable-pylibmount \
 828             --disable-static     \
 829             --without-python     \
 830             runstatedir=/run
 831 make
 832 make install
 833 
 834 cd /sources/ 
 835 rm -rf $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 836 
 837 # Cleaning
 838 rm -rf /usr/share/{info,man,doc}/*
 839 find /usr/{lib,libexec} -name \*.la -delete
 840 rm -rf /tools
 841 
 842 # Backup as root 
 843 exit # leave chroot 
 844 echo $LFS
 845 mountpoint -q $LFS/dev/shm && umount $LFS/dev/shm
 846 umount $LFS/dev/pts
 847 umount $LFS/{sys,proc,run,dev}
 848 cd $LFS
 849 tar -cJpf $HOME/lfs-temp-tools-11.3.tar.xz .
 850 
 851 # Restore as root if required 
 852 echo $LFS 
 853 cd $LFS
 854 rm -rf ./*
 855 tar -xpf $HOME/lfs-temp-tools-11.3.tar.xz
 856 
 857 # Prepare Virtual Kernel File Systems
 858 findmnt | grep $LFS
 859 mkdir -pv $LFS/{dev,proc,sys,run}
 860 mount -v --bind /dev $LFS/dev
 861 mount -v --bind /dev/pts $LFS/dev/pts
 862 mount -vt proc proc $LFS/proc
 863 mount -vt sysfs sysfs $LFS/sys
 864 mount -vt tmpfs tmpfs $LFS/run
 865 if [ -h $LFS/dev/shm ]; then
 866   mkdir -pv $LFS/$(readlink $LFS/dev/shm)
 867 else
 868   mount -t tmpfs -o nosuid,nodev tmpfs $LFS/dev/shm
 869 fi
 870 
 871 # Enter the chroot env
 872 chroot "$LFS" /usr/bin/env -i   \
 873     HOME=/root                  \
 874     TERM="$TERM"                \
 875     PS1='(lfs chroot) \u:\w\$ ' \
 876     PATH=/usr/bin:/usr/sbin     \
 877     /bin/bash --login
 878 
 879 # man pages 
 880 cd /sources/
 881 APP=man-pages
 882 tar xvif $APP*.xz
 883 cd $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 884 make prefix=/usr install
 885 cd /sources/ 
 886 rm -rf $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 887 
 888 # iana 
 889 cd /sources/
 890 APP=iana
 891 tar xvif $APP*.gz
 892 cd $(ls $APP*gz | sed  's/\.tar//g' | sed 's/\.gz//g' )
 893 
 894 cp services protocols /etc
 895 
 896 cd /sources/ 
 897 rm -rf $(ls $APP*gz | sed  's/\.tar//g' | sed 's/\.gz//g' )
 898 
 899 # glibc
 900 cd /sources/
 901 APP=glibc
 902 tar xvif $APP*.xz
 903 cd $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 904 
 905 patch -Np1 -i ../glibc-2.37-fhs-1.patch
 906 sed '/width -=/s/workend - string/number_length/' \
 907     -i stdio-common/vfprintf-process-arg.c
 908 mkdir -v build
 909 cd       build
 910 
 911 echo "rootsbindir=/usr/sbin" > configparms
 912 ../configure --prefix=/usr                            \
 913              --disable-werror                         \
 914              --enable-kernel=3.2                      \
 915              --enable-stack-protector=strong          \
 916              --with-headers=/usr/include              \
 917              libc_cv_slibdir=/usr/lib
 918 
 919 make
 920 make check
 921 touch /etc/ld.so.conf
 922 
 923 sed '/test-installation/s@$(PERL)@echo not running@' -i ../Makefile
 924 make install
 925 sed '/RTLDLIST=/s@/usr@@g' -i /usr/bin/ldd
 926 cp -v ../nscd/nscd.conf /etc/nscd.conf
 927 mkdir -pv /var/cache/nscd
 928 
 929 mkdir -pv /usr/lib/locale
 930 
 931 localedef -i POSIX -f UTF-8 C.UTF-8 2> /dev/null || true
 932 
 933 localedef -i en_US -f ISO-8859-1 en_US
 934 localedef -i en_US -f UTF-8 en_US.UTF-8
 935 
 936 localedef -i pt_PT -f ISO-8859-1 pt_PT
 937 localedef -i pt_PT@euro -f ISO-8859-15 pt_PT@euro
 938 localedef -i pt_PT -f UTF-8 pt_PT.UTF-8
 939 
 940 make localedata/install-locales
 941 localedef -i POSIX -f UTF-8 C.UTF-8 2> /dev/null || true
 942 localedef -i ja_JP -f SHIFT_JIS ja_JP.SJIS 2> /dev/null || true
 943 
 944 cat > /etc/nsswitch.conf << "EOF"
 945 passwd: files
 946 group: files
 947 shadow: files
 948 
 949 hosts: files dns
 950 networks: files
 951 
 952 protocols: files
 953 services: files
 954 ethers: files
 955 rpc: files
 956 EOF
 957 
 958 tar -xf ../../tzdata2022g.tar.gz
 959 
 960 ZONEINFO=/usr/share/zoneinfo
 961 mkdir -pv $ZONEINFO/{posix,right}
 962 
 963 for tz in etcetera southamerica northamerica europe africa antarctica  \
 964           asia australasia backward; do
 965     zic -L /dev/null   -d $ZONEINFO       ${tz}
 966     zic -L /dev/null   -d $ZONEINFO/posix ${tz}
 967     zic -L leapseconds -d $ZONEINFO/right ${tz}
 968 done
 969 
 970 cp -v zone.tab zone1970.tab iso3166.tab $ZONEINFO
 971 zic -d $ZONEINFO -p America/New_York
 972 unset ZONEINFO
 973 
 974 echo -e "7\n 37\n 1\n 1\n" | tzselect
 975 # 7\n 37\n 1\n 1\n
 976 # Europe Portugal Mainland yes 
 977 ln -sfv /usr/share/zoneinfo/Europe/Portugal /etc/localtime
 978 
 979 cat > /etc/ld.so.conf << "EOF"
 980 /usr/local/lib
 981 /opt/lib
 982 # Add an include directory
 983 include /etc/ld.so.conf.d/*.conf
 984 EOF
 985 
 986 mkdir -pv /etc/ld.so.conf.d
 987 cd /sources/ 
 988 rm -rf $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 989 
 990 # zlib 
 991 cd /sources/
 992 APP=zlib
 993 tar xvif $APP*.xz
 994 cd $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
 995 
 996 ./configure --prefix=/usr
 997 make
 998 make check
 999 make install
1000 rm -fv /usr/lib/libz.a
1001 
1002 cd /sources/ 
1003 rm -rf $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
1004 
1005 # bzip2
1006 cd /sources/
1007 APP=bzip2 
1008 tar xvif $APP*.gz
1009 cd $(ls $APP*gz | sed  's/\.tar//g' | sed 's/\.gz//g' )
1010 
1011 patch -Np1 -i ../bzip2-1.0.8-install_docs-1.patch
1012 sed -i 's@\(ln -s -f \)$(PREFIX)/bin/@\1@' Makefile
1013 sed -i "s@(PREFIX)/man@(PREFIX)/share/man@g" Makefile
1014 make -f Makefile-libbz2_so
1015 make clean
1016 make
1017 make PREFIX=/usr install
1018 cp -av libbz2.so.* /usr/lib
1019 ln -sv libbz2.so.1.0.8 /usr/lib/libbz2.so
1020 
1021 cp -v bzip2-shared /usr/bin/bzip2
1022 for i in /usr/bin/{bzcat,bunzip2}; do
1023   ln -sfv bzip2 $i
1024 done
1025 
1026 rm -fv /usr/lib/libbz2.a
1027 
1028 cd /sources/ 
1029 rm -rf $(ls $APP*gz | sed  's/\.tar//g' | sed 's/\.gz//g' )
1030 
1031 # xz
1032 cd /sources/
1033 APP=xz
1034 tar xvif $APP*.xz
1035 cd $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
1036 
1037 ./configure --prefix=/usr    \
1038             --disable-static \
1039             --docdir=/usr/share/doc/xz-5.4.1
1040 
1041 make
1042 make check
1043 make install
1044 
1045 cd /sources/ 
1046 rm -rf $(ls $APP*xz | sed  's/\.tar//g' | sed 's/\.xz//g' )
1047 
1048 # zstd
1049 cd /sources/
1050 APP=zstd
1051 tar xvif $APP*.gz
1052 cd $(ls $APP*gz | sed  's/\.tar//g' | sed 's/\.gz//g' )
1053 
1054 make prefix=/usr
1055 make check
1056 make prefix=/usr install
1057 rm -v /usr/lib/libzstd.a
1058 
1059 cd /sources/ 
1060 rm -rf $(ls $APP*gz | sed  's/\.tar//g' | sed 's/\.gz//g' )
1061 
1062 # file
1063 cd /sources/
1064 APP=file
1065 EXTENSION=gz
1066 tar xvif $APP*.$EXTENSION
1067 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1068 
1069 ./configure --prefix=/usr
1070 make
1071 make check
1072 make install
1073 
1074 cd /sources/ 
1075 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1076 
1077 # readline
1078 cd /sources/
1079 APP=readline
1080 tar xvif $APP*.gz
1081 cd $(ls $APP*gz | sed  's/\.tar//g' | sed 's/\.gz//g' )
1082 
1083 sed -i '/MV.*old/d' Makefile.in
1084 sed -i '/{OLDSUFF}/c:' support/shlib-install
1085 patch -Np1 -i ../readline-8.2-upstream_fix-1.patch
1086 
1087 ./configure --prefix=/usr    \
1088             --disable-static \
1089             --with-curses    \
1090             --docdir=/usr/share/doc/readline-8.2
1091 
1092 make SHLIB_LIBS="-lncursesw"
1093 make SHLIB_LIBS="-lncursesw" install
1094 install -v -m644 doc/*.{ps,pdf,html,dvi} /usr/share/doc/readline-8.2
1095 
1096 cd /sources/ 
1097 rm -rf $(ls $APP*gz | sed  's/\.tar//g' | sed 's/\.gz//g' )
1098 
1099 # m4
1100 cd /sources/
1101 APP=m4 
1102 EXTENSION=xz
1103 tar xvif $APP*.$EXTENSION
1104 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1105 
1106 ./configure --prefix=/usr
1107 make
1108 make check
1109 make install
1110 
1111 cd /sources/ 
1112 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1113 
1114 # bc
1115 cd /sources/
1116 APP=bc
1117 EXTENSION=xz
1118 tar xvif $APP*.$EXTENSION
1119 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1120 
1121 CC=gcc ./configure --prefix=/usr -G -O3 -r
1122 make
1123 make test
1124 make install
1125 
1126 cd /sources/ 
1127 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1128 
1129 # flex
1130 cd /sources/
1131 APP=flex
1132 EXTENSION=gz
1133 tar xvif $APP*.$EXTENSION
1134 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1135 
1136 ./configure --prefix=/usr \
1137             --docdir=/usr/share/doc/flex-2.6.4 \
1138             --disable-static
1139 
1140 make
1141 make check
1142 make install
1143 ln -sv flex /usr/bin/lex
1144 
1145 cd /sources/ 
1146 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1147 
1148 # tcl 
1149 cd /sources/
1150 APP=tcl8.6.13-src
1151 EXTENSION=gz
1152 FOLDER=tcl8.6.13
1153 tar xvzf $APP*.$EXTENSION
1154 cd $FOLDER
1155 
1156 SRCDIR=$(pwd)
1157 cd unix
1158 ./configure --prefix=/usr           \
1159             --mandir=/usr/share/man
1160 
1161 make
1162 sed -e "s|$SRCDIR/unix|/usr/lib|" \
1163     -e "s|$SRCDIR|/usr/include|"  \
1164     -i tclConfig.sh
1165 
1166 sed -e "s|$SRCDIR/unix/pkgs/tdbc1.1.5|/usr/lib/tdbc1.1.5|" \
1167     -e "s|$SRCDIR/pkgs/tdbc1.1.5/generic|/usr/include|"    \
1168     -e "s|$SRCDIR/pkgs/tdbc1.1.5/library|/usr/lib/tcl8.6|" \
1169     -e "s|$SRCDIR/pkgs/tdbc1.1.5|/usr/include|"            \
1170     -i pkgs/tdbc1.1.5/tdbcConfig.sh
1171 
1172 sed -e "s|$SRCDIR/unix/pkgs/itcl4.2.3|/usr/lib/itcl4.2.3|" \
1173     -e "s|$SRCDIR/pkgs/itcl4.2.3/generic|/usr/include|"    \
1174     -e "s|$SRCDIR/pkgs/itcl4.2.3|/usr/include|"            \
1175     -i pkgs/itcl4.2.3/itclConfig.sh
1176 
1177 unset SRCDIR
1178 
1179 make test
1180 make install
1181 
1182 chmod -v u+w /usr/lib/libtcl8.6.so
1183 
1184 make install-private-headers
1185 ln -sfv tclsh8.6 /usr/bin/tclsh
1186 mv /usr/share/man/man3/{Thread,Tcl_Thread}.3
1187 cd ..
1188 tar -xf ../tcl8.6.13-html.tar.gz --strip-components=1
1189 mkdir -v -p /usr/share/doc/tcl-8.6.13
1190 cp -v -r  ./html/* /usr/share/doc/tcl-8.6.13
1191 
1192 cd /sources/ 
1193 rm -rf $FOLDER
1194 
1195 # expect
1196 cd /sources/
1197 APP=expect
1198 EXTENSION=gz
1199 tar xvif $APP*.$EXTENSION
1200 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1201 
1202 ./configure --prefix=/usr           \
1203             --with-tcl=/usr/lib     \
1204             --enable-shared         \
1205             --mandir=/usr/share/man \
1206             --with-tclinclude=/usr/include
1207 
1208 make
1209 make test
1210 make install
1211 ln -svf expect5.45.4/libexpect5.45.4.so /usr/lib
1212                         
1213 cd /sources/ 
1214 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1215 
1216 
1217 # dejagnu
1218 cd /sources/
1219 APP=dejagnu
1220 EXTENSION=gz
1221 tar xvif $APP*.$EXTENSION
1222 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1223                         
1224 mkdir -v build
1225 cd       build
1226 
1227 ../configure --prefix=/usr
1228 makeinfo --html --no-split -o doc/dejagnu.html ../doc/dejagnu.texi
1229 makeinfo --plaintext       -o doc/dejagnu.txt  ../doc/dejagnu.texi
1230 
1231 make install
1232 install -v -dm755  /usr/share/doc/dejagnu-1.6.3
1233 install -v -m644   doc/dejagnu.{html,txt} /usr/share/doc/dejagnu-1.6.3
1234 
1235 make check
1236 
1237 cd /sources/ 
1238 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1239 
1240 
1241 # binutils
1242 cd /sources/
1243 APP=binutils
1244 EXTENSION=xz
1245 tar xvif $APP*.$EXTENSION
1246 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1247 
1248 expect -c "spawn ls"
1249 mkdir -v build
1250 cd       build
1251 
1252 ../configure --prefix=/usr       \
1253              --sysconfdir=/etc   \
1254              --enable-gold       \
1255              --enable-ld=default \
1256              --enable-plugins    \
1257              --enable-shared     \
1258              --disable-werror    \
1259              --enable-64-bit-bfd \
1260              --with-system-zlib
1261 make tooldir=/usr
1262 
1263 make -k check
1264 grep '^FAIL:' $(find -name '*.log')
1265 # expected to 12 tests fail 
1266 grep '^FAIL:' $(find -name '*.log') | wc -l 
1267 
1268 make tooldir=/usr install
1269 rm -fv /usr/lib/lib{bfd,ctf,ctf-nobfd,sframe,opcodes}.a
1270 rm -fv /usr/share/man/man1/{gprofng,gp-*}.1
1271 
1272 cd /sources/ 
1273 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1274 
1275 # gmp
1276 cd /sources/
1277 APP=gmp
1278 EXTENSION=xz
1279 tar xvif $APP*.$EXTENSION
1280 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1281 
1282 cp -v configfsf.guess config.guess
1283 cp -v configfsf.sub   config.sub
1284 
1285 ./configure --prefix=/usr    \
1286             --enable-cxx     \
1287             --disable-static \
1288             --docdir=/usr/share/doc/gmp-6.2.1
1289 make
1290 make html
1291 make check 2>&1 | tee gmp-check-log
1292 awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log
1293 # check all 197 pass 
1294 make install
1295 make install-html
1296 
1297 cd /sources/ 
1298 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1299 
1300 
1301 # mpfr
1302 cd /sources/
1303 APP=mpfr
1304 EXTENSION=xz
1305 tar xvif $APP*.$EXTENSION
1306 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1307 
1308 sed -e 's/+01,234,567/+1,234,567 /' \
1309     -e 's/13.10Pd/13Pd/'            \
1310     -i tests/tsprintf.c
1311 
1312 ./configure --prefix=/usr        \
1313             --disable-static     \
1314             --enable-thread-safe \
1315             --docdir=/usr/share/doc/mpfr-4.2.0
1316 make
1317 make html
1318 make check
1319 # ensure that all 197 tests passed
1320 make install
1321 make install-html
1322 
1323 cd /sources/ 
1324 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1325 
1326 # mpc 
1327 cd /sources/
1328 APP=mpc
1329 EXTENSION=gz
1330 tar xvif $APP*.$EXTENSION
1331 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1332 
1333 
1334 ./configure --prefix=/usr    \
1335             --disable-static \
1336             --docdir=/usr/share/doc/mpc-1.3.1
1337 
1338 make
1339 make html
1340 make check
1341 make install
1342 make install-html
1343 
1344 cd /sources/ 
1345 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1346 
1347 # attr
1348 cd /sources/
1349 APP=attr
1350 EXTENSION=gz
1351 tar xvif $APP*.$EXTENSION
1352 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1353 
1354 ./configure --prefix=/usr     \
1355             --disable-static  \
1356             --sysconfdir=/etc \
1357             --docdir=/usr/share/doc/attr-2.5.1
1358 
1359 make
1360 make check
1361 make install
1362 
1363 cd /sources/ 
1364 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1365 
1366 # acl
1367 cd /sources/
1368 APP=acl
1369 EXTENSION=xz
1370 tar xvif $APP*.$EXTENSION
1371 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1372 
1373 ./configure --prefix=/usr         \
1374             --disable-static      \
1375             --docdir=/usr/share/doc/acl-2.3.1
1376 
1377 make
1378 make install
1379 
1380 cd /sources/ 
1381 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1382 
1383 # libcap
1384 cd /sources/
1385 APP=libcap
1386 EXTENSION=xz
1387 tar xvif $APP*.$EXTENSION
1388 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1389 
1390 sed -i '/install -m.*STA/d' libcap/Makefile
1391 make prefix=/usr lib=lib
1392 make test
1393 make prefix=/usr lib=lib install
1394 
1395 cd /sources/ 
1396 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1397 
1398 # shadow
1399 cd /sources/
1400 APP=shadow
1401 EXTENSION=xz
1402 tar xvif $APP*.$EXTENSION
1403 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1404 
1405 sed -i 's/groups$(EXEEXT) //' src/Makefile.in
1406 find man -name Makefile.in -exec sed -i 's/groups\.1 / /'   {} \;
1407 find man -name Makefile.in -exec sed -i 's/getspnam\.3 / /' {} \;
1408 find man -name Makefile.in -exec sed -i 's/passwd\.5 / /'   {} \;
1409 
1410 sed -e 's:#ENCRYPT_METHOD DES:ENCRYPT_METHOD SHA512:' \
1411     -e 's@#\(SHA_CRYPT_..._ROUNDS 5000\)@\100@'       \
1412     -e 's:/var/spool/mail:/var/mail:'                 \
1413     -e '/PATH=/{s@/sbin:@@;s@/bin:@@}'                \
1414     -i etc/login.defs
1415 
1416 # no cracklib support   
1417 
1418 touch /usr/bin/passwd
1419 ./configure --sysconfdir=/etc \
1420             --disable-static  \
1421             --with-group-name-max-length=32
1422 
1423 make
1424 make exec_prefix=/usr install
1425 make -C man install-man
1426 
1427 pwconv
1428 grpconv
1429 mkdir -p /etc/default
1430 useradd -D --gid 999
1431 
1432 sed -i '/MAIL/s/yes/no/' /etc/default/useradd
1433 # input root pwd
1434 passwd root
1435                         
1436 cd /sources/ 
1437 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1438 
1439 # gcc
1440 cd /sources/
1441 APP=gcc
1442 EXTENSION=xz
1443 tar xvif $APP*.$EXTENSION
1444 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1445 
1446 case $(uname -m) in
1447   x86_64)
1448     sed -e '/m64=/s/lib64/lib/' \
1449         -i.orig gcc/config/i386/t-linux64
1450   ;;
1451 esac
1452 
1453 mkdir -v build
1454 cd       build
1455 
1456 ../configure --prefix=/usr            \
1457              LD=ld                    \
1458              --enable-languages=c,c++ \
1459              --enable-default-pie     \
1460              --enable-default-ssp     \
1461              --disable-multilib       \
1462              --disable-bootstrap      \
1463              --with-system-zlib
1464 
1465 time make # 43 SBU # real       65m28.356s
1466 ulimit -s 32768
1467 chown -Rv tester .
1468 su tester -c "PATH=$PATH make -k check" # started 16:14
1469 ../contrib/test_summary
1470 
1471 make install
1472 chown -v -R root:root \
1473     /usr/lib/gcc/$(gcc -dumpmachine)/12.2.0/include{,-fixed}
1474 ln -svr /usr/bin/cpp /usr/lib
1475 ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/12.2.0/liblto_plugin.so \
1476         /usr/lib/bfd-plugins/
1477 
1478 echo 'int main(){}' > dummy.c
1479 cc dummy.c -v -Wl,--verbose &> dummy.log
1480 readelf -l a.out | grep ': /lib'
1481 # should show
1482 # [Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
1483 
1484 grep -E -o '/usr/lib.*/S?crt[1in].*succeeded' dummy.log
1485 grep -B4 '^ /usr/include' dummy.log
1486 grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'
1487 grep "/lib.*/libc.so.6 " dummy.log
1488 rm -v dummy.c a.out dummy.log
1489 
1490 mkdir -pv /usr/share/gdb/auto-load/usr/lib
1491 mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib
1492 
1493 cd /sources/ 
1494 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1495 
1496 # pkg-config
1497 cd /sources/
1498 APP=pkg-config
1499 EXTENSION=gz
1500 tar xvif $APP*.$EXTENSION
1501 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1502 
1503 ./configure --prefix=/usr              \
1504             --with-internal-glib       \
1505             --disable-host-tool        \
1506             --docdir=/usr/share/doc/pkg-config-0.29.2
1507 make
1508 make check
1509 make install
1510 
1511 cd /sources/ 
1512 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1513 
1514 # ncurses
1515 cd /sources/
1516 APP=ncurses
1517 EXTENSION=gz
1518 tar xvif $APP*.$EXTENSION
1519 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1520 
1521 ./configure --prefix=/usr           \
1522             --mandir=/usr/share/man \
1523             --with-shared           \
1524             --without-debug         \
1525             --without-normal        \
1526             --with-cxx-shared       \
1527             --enable-pc-files       \
1528             --enable-widec          \
1529             --with-pkg-config-libdir=/usr/lib/pkgconfig
1530 
1531 make
1532 make DESTDIR=$PWD/dest install
1533 install -vm755 dest/usr/lib/libncursesw.so.6.4 /usr/lib
1534 rm -v  dest/usr/lib/libncursesw.so.6.4
1535 cp -av dest/* /
1536 
1537 for lib in ncurses form panel menu ; do
1538     rm -vf                    /usr/lib/lib${lib}.so
1539     echo "INPUT(-l${lib}w)" > /usr/lib/lib${lib}.so
1540     ln -sfv ${lib}w.pc        /usr/lib/pkgconfig/${lib}.pc
1541 done
1542 
1543 rm -vf                     /usr/lib/libcursesw.so
1544 echo "INPUT(-lncursesw)" > /usr/lib/libcursesw.so
1545 ln -sfv libncurses.so      /usr/lib/libcurses.so
1546 
1547 mkdir -pv      /usr/share/doc/ncurses-6.4
1548 cp -v -R doc/* /usr/share/doc/ncurses-6.4
1549 
1550 cd /sources/ 
1551 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1552 
1553 # sed 
1554 cd /sources/
1555 APP=sed
1556 EXTENSION=xz
1557 tar xvif $APP*.$EXTENSION
1558 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1559 
1560 ./configure --prefix=/usr
1561 
1562 make
1563 make html
1564 chown -Rv tester .
1565 su tester -c "PATH=$PATH make check"
1566 
1567 make install
1568 install -d -m755           /usr/share/doc/sed-4.9
1569 install -m644 doc/sed.html /usr/share/doc/sed-4.9
1570 
1571 cd /sources/ 
1572 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1573 
1574 # psmisc
1575 cd /sources/
1576 APP=psmisc
1577 EXTENSION=xz
1578 tar xvif $APP*.$EXTENSION
1579 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1580 
1581 ./configure --prefix=/usr
1582 make
1583 make install
1584 
1585 cd /sources/ 
1586 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1587 
1588 # gettext
1589 cd /sources/
1590 APP=gettext
1591 EXTENSION=xz
1592 tar xvif $APP*.$EXTENSION
1593 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1594 
1595 ./configure --prefix=/usr    \
1596             --disable-static \
1597             --docdir=/usr/share/doc/gettext-0.21.1
1598 
1599 make
1600 make check
1601 make install
1602 chmod -v 0755 /usr/lib/preloadable_libintl.so
1603 
1604 cd /sources/ 
1605 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1606 
1607 # bison 
1608 cd /sources/
1609 APP=bison
1610 EXTENSION=xz
1611 tar xvif $APP*.$EXTENSION
1612 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1613 
1614 ./configure --prefix=/usr --docdir=/usr/share/doc/bison-3.8.2
1615 make
1616 make check
1617 make install
1618 
1619 cd /sources/ 
1620 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1621 
1622 # grep
1623 cd /sources/
1624 APP=grep
1625 EXTENSION=xz
1626 tar xvif $APP*.$EXTENSION
1627 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1628 
1629 sed -i "s/echo/#echo/" src/egrep.sh
1630 ./configure --prefix=/usr
1631 make
1632 make check
1633 make install
1634 
1635 cd /sources/ 
1636 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1637 
1638 # bash
1639 cd /sources/
1640 APP=bash
1641 EXTENSION=gz
1642 tar xvif $APP*.$EXTENSION
1643 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1644 
1645 ./configure --prefix=/usr             \
1646             --without-bash-malloc     \
1647             --with-installed-readline \
1648             --docdir=/usr/share/doc/bash-5.2.15
1649 
1650 make
1651 chown -Rv tester .
1652 su -s /usr/bin/expect tester << EOF
1653 set timeout -1
1654 spawn make tests
1655 expect eof
1656 lassign [wait] _ _ _ value
1657 exit $value
1658 EOF
1659 
1660 make install
1661 exec /usr/bin/bash --login
1662 
1663 cd /sources/ 
1664 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1665 
1666 # libtool
1667 cd /sources/
1668 APP=libtool
1669 EXTENSION=xz
1670 tar xvif $APP*.$EXTENSION
1671 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1672 
1673 ./configure --prefix=/usr
1674 make
1675 make -k check
1676 make install
1677 rm -fv /usr/lib/libltdl.a
1678 
1679 cd /sources/ 
1680 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1681 
1682 # gdbm
1683 cd /sources/
1684 APP=gdbm
1685 EXTENSION=gz
1686 tar xvif $APP*.$EXTENSION
1687 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1688 
1689 ./configure --prefix=/usr    \
1690             --disable-static \
1691             --enable-libgdbm-compat
1692 
1693 make
1694 make check
1695 make install
1696 
1697 cd /sources/ 
1698 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1699 
1700 # gperf
1701 cd /sources/
1702 APP=gperf
1703 EXTENSION=gz
1704 tar xvif $APP*.$EXTENSION
1705 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1706 
1707 ./configure --prefix=/usr --docdir=/usr/share/doc/gperf-3.1
1708 make
1709 make -j1 check
1710 make install
1711 
1712 cd /sources/ 
1713 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1714 
1715 # expat
1716 cd /sources/
1717 APP=expat
1718 EXTENSION=xz
1719 tar xvif $APP*.$EXTENSION
1720 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1721 
1722 ./configure --prefix=/usr    \
1723             --disable-static \
1724             --docdir=/usr/share/doc/expat-2.5.0
1725 
1726 make
1727 make check
1728 make install
1729 install -v -m644 doc/*.{html,css} /usr/share/doc/expat-2.5.0
1730 
1731 cd /sources/ 
1732 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1733 
1734 # inetutils 
1735 cd /sources/
1736 APP=inetutils
1737 EXTENSION=xz
1738 tar xvif $APP*.$EXTENSION
1739 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1740 
1741 ./configure --prefix=/usr        \
1742             --bindir=/usr/bin    \
1743             --localstatedir=/var \
1744             --disable-logger     \
1745             --disable-whois      \
1746             --disable-rcp        \
1747             --disable-rexec      \
1748             --disable-rlogin     \
1749             --disable-rsh        \
1750             --disable-servers
1751 
1752 make
1753 make check
1754 make install
1755 mv -v /usr/{,s}bin/ifconfig
1756 cd /sources/ 
1757 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1758 
1759 # less
1760 cd /sources/
1761 APP=less
1762 EXTENSION=gz
1763 tar xvif $APP*.$EXTENSION
1764 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1765 
1766 ./configure --prefix=/usr --sysconfdir=/etc
1767 make
1768 make install
1769 
1770 cd /sources/ 
1771 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1772 
1773 # perl
1774 cd /sources/
1775 APP=perl
1776 EXTENSION=xz
1777 tar xvif $APP*.$EXTENSION
1778 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1779 
1780 export BUILD_ZLIB=False
1781 export BUILD_BZIP2=0
1782 
1783 sh Configure -des                                         \
1784              -Dprefix=/usr                                \
1785              -Dvendorprefix=/usr                          \
1786              -Dprivlib=/usr/lib/perl5/5.36/core_perl      \
1787              -Darchlib=/usr/lib/perl5/5.36/core_perl      \
1788              -Dsitelib=/usr/lib/perl5/5.36/site_perl      \
1789              -Dsitearch=/usr/lib/perl5/5.36/site_perl     \
1790              -Dvendorlib=/usr/lib/perl5/5.36/vendor_perl  \
1791              -Dvendorarch=/usr/lib/perl5/5.36/vendor_perl \
1792              -Dman1dir=/usr/share/man/man1                \
1793              -Dman3dir=/usr/share/man/man3                \
1794              -Dpager="/usr/bin/less -isR"                 \
1795              -Duseshrplib                                 \
1796              -Dusethreads
1797 make
1798 make test
1799 make install
1800 unset BUILD_ZLIB BUILD_BZIP2
1801 
1802 cd /sources/ 
1803 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1804 
1805 # XML-Parser
1806 cd /sources/
1807 APP=XML-Parser
1808 EXTENSION=gz
1809 tar xvif $APP*.$EXTENSION
1810 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1811 
1812 perl Makefile.PL
1813 make
1814 make test
1815 make install
1816 
1817 cd /sources/ 
1818 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1819 
1820 # intltool-0.51.0.tar.gz
1821 cd /sources/
1822 APP=intltool
1823 EXTENSION=gz
1824 tar xvif $APP*.$EXTENSION
1825 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1826 
1827 sed -i 's:\\\${:\\\$\\{:' intltool-update.in
1828 ./configure --prefix=/usr
1829 make
1830 make check
1831 make install
1832 install -v -Dm644 doc/I18N-HOWTO /usr/share/doc/intltool-0.51.0/I18N-HOWTO
1833 
1834 cd /sources/ 
1835 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1836 
1837 # autoconf-2.71.tar.xz
1838 cd /sources/
1839 APP=autoconf
1840 EXTENSION=xz
1841 tar xvif $APP*.$EXTENSION
1842 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1843 
1844 sed -e 's/SECONDS|/&SHLVL|/'               \
1845     -e '/BASH_ARGV=/a\        /^SHLVL=/ d' \
1846     -i.orig tests/local.at
1847 
1848 ./configure --prefix=/usr
1849 make
1850 make check
1851 make install
1852 
1853 cd /sources/ 
1854 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1855 
1856 # automake-1.16.5.tar.xz
1857 cd /sources/
1858 APP=automake
1859 EXTENSION=xz
1860 tar xvif $APP*.$EXTENSION
1861 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1862 
1863 ./configure --prefix=/usr --docdir=/usr/share/doc/automake-1.16.5
1864 
1865 make
1866 make -j4 check
1867 make install
1868 
1869 cd /sources/ 
1870 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1871 
1872 # openssl-3.0.8.tar.gz
1873 cd /sources/
1874 APP=openssl
1875 EXTENSION=gz
1876 tar xvif $APP*.$EXTENSION
1877 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1878 
1879 ./config --prefix=/usr         \
1880          --openssldir=/etc/ssl \
1881          --libdir=lib          \
1882          shared                \
1883          zlib-dynamic
1884 
1885 make
1886 make test
1887 sed -i '/INSTALL_LIBS/s/libcrypto.a libssl.a//' Makefile
1888 make MANSUFFIX=ssl install
1889 mv -v /usr/share/doc/openssl /usr/share/doc/openssl-3.0.8
1890 cp -vfr doc/* /usr/share/doc/openssl-3.0.8
1891 
1892 cd /sources/ 
1893 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1894 
1895 # kmod-30.tar.xz
1896 cd /sources/
1897 APP=kmod
1898 EXTENSION=xz
1899 tar xvif $APP*.$EXTENSION
1900 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1901 
1902 ./configure --prefix=/usr          \
1903             --sysconfdir=/etc      \
1904             --with-openssl         \
1905             --with-xz              \
1906             --with-zstd            \
1907             --with-zlib
1908 
1909 make
1910 make install
1911 
1912 for target in depmod insmod modinfo modprobe rmmod; do
1913   ln -sfv ../bin/kmod /usr/sbin/$target
1914 done
1915 
1916 ln -sfv kmod /usr/bin/lsmod
1917 
1918 cd /sources/ 
1919 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1920 
1921 # elfutils-0.188.tar.bz2
1922 cd /sources/
1923 APP=elfutils
1924 EXTENSION=bz2
1925 tar xvif $APP*.$EXTENSION
1926 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1927 
1928 ./configure --prefix=/usr                \
1929             --disable-debuginfod         \
1930             --enable-libdebuginfod=dummy
1931 
1932 make
1933 make check
1934 make -C libelf install
1935 install -vm644 config/libelf.pc /usr/lib/pkgconfig
1936 rm /usr/lib/libelf.a
1937 
1938 cd /sources/ 
1939 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1940 
1941 # libffi-3.4.4.tar.gz
1942 cd /sources/
1943 APP=libffi
1944 EXTENSION=gz
1945 tar xvzf $APP*.$EXTENSION
1946 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1947 
1948 ./configure --prefix=/usr          \
1949             --disable-static       \
1950             --with-gcc-arch=native
1951 
1952 make
1953 make check
1954 make install
1955 
1956 cd /sources/ 
1957 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1958 
1959 # Python-3.11.2.tar.xz
1960 cd /sources/
1961 APP=Python-3
1962 EXTENSION=xz
1963 tar xvif $APP*.$EXTENSION
1964 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1965 
1966 ./configure --prefix=/usr        \
1967             --enable-shared      \
1968             --with-system-expat  \
1969             --with-system-ffi    \
1970             --enable-optimizations
1971 
1972 make
1973 make install
1974 
1975 cat > /etc/pip.conf << "EOF"
1976 [global]
1977 root-user-action = ignore
1978 disable-pip-version-check = true
1979 EOF
1980 
1981 install -v -dm755 /usr/share/doc/python-3.11.2/html
1982 
1983 tar --strip-components=1  \
1984     --no-same-owner       \
1985     --no-same-permissions \
1986     -C /usr/share/doc/python-3.11.2/html \
1987     -xvf ../python-3.11.2-docs-html.tar.bz2
1988 
1989 cd /sources/ 
1990 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1991 
1992 # wheel-0.38.4.tar.gz
1993 cd /sources/
1994 APP=wheel
1995 EXTENSION=gz
1996 tar xvzf $APP*.$EXTENSION
1997 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
1998 
1999 PYTHONPATH=src pip3 wheel -w dist --no-build-isolation --no-deps $PWD
2000 pip3 install --no-index --find-links=dist wheel
2001 
2002 cd /sources/ 
2003 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2004 
2005 # ninja-1.11.1.tar.gz
2006 cd /sources/
2007 APP=ninja
2008 EXTENSION=gz
2009 tar xvzf $APP*.$EXTENSION
2010 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2011 
2012 export NINJAJOBS=4
2013 
2014 sed -i '/int Guess/a \
2015   int   j = 0;\
2016   char* jobs = getenv( "NINJAJOBS" );\
2017   if ( jobs != NULL ) j = atoi( jobs );\
2018   if ( j > 0 ) return j;\
2019 ' src/ninja.cc
2020 
2021 python3 configure.py --bootstrap
2022 
2023 ./ninja ninja_test
2024 ./ninja_test --gtest_filter=-SubprocessTest.SetWithLots
2025 
2026 install -vm755 ninja /usr/bin/
2027 install -vDm644 misc/bash-completion /usr/share/bash-completion/completions/ninja
2028 install -vDm644 misc/zsh-completion  /usr/share/zsh/site-functions/_ninja
2029 
2030 cd /sources/ 
2031 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2032 
2033 # meson-1.0.0.tar.gz
2034 cd /sources/
2035 APP=meson
2036 EXTENSION=gz
2037 tar xvzf $APP*.$EXTENSION
2038 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2039 
2040 pip3 wheel -w dist --no-build-isolation --no-deps $PWD
2041 pip3 install --no-index --find-links dist meson
2042 install -vDm644 data/shell-completions/bash/meson /usr/share/bash-completion/completions/meson
2043 install -vDm644 data/shell-completions/zsh/_meson /usr/share/zsh/site-functions/_meson
2044 
2045 cd /sources/ 
2046 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2047 
2048 # coreutils-9.1.tar.xz
2049 cd /sources/
2050 APP=coreutils
2051 EXTENSION=xz
2052 tar xvif $APP*.$EXTENSION
2053 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2054 
2055 patch -Np1 -i ../coreutils-9.1-i18n-1.patch
2056 
2057 autoreconf -fiv
2058 FORCE_UNSAFE_CONFIGURE=1 ./configure \
2059             --prefix=/usr            \
2060             --enable-no-install-program=kill,uptime
2061 
2062 make
2063 make NON_ROOT_USERNAME=tester check-root
2064 
2065 echo "dummy:x:102:tester" >> /etc/group
2066 
2067 chown -Rv tester . 
2068 su tester -c "PATH=$PATH make RUN_EXPENSIVE_TESTS=yes check"
2069 sed -i '/dummy/d' /etc/group
2070 
2071 make install
2072 
2073 mv -v /usr/bin/chroot /usr/sbin
2074 mv -v /usr/share/man/man1/chroot.1 /usr/share/man/man8/chroot.8
2075 sed -i 's/"1"/"8"/' /usr/share/man/man8/chroot.8
2076 
2077 cd /sources/ 
2078 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2079 
2080 # check-0.15.2.tar.gz
2081 cd /sources/
2082 APP=check
2083 EXTENSION=gz
2084 tar xvzf $APP*.$EXTENSION
2085 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2086 
2087 
2088 ./configure --prefix=/usr --disable-static
2089 
2090 make
2091 make check
2092 make docdir=/usr/share/doc/check-0.15.2 install
2093 
2094 cd /sources/ 
2095 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2096 
2097 # diffutils-3.9.tar.xz
2098 cd /sources/
2099 APP=diffutils
2100 EXTENSION=xz
2101 tar xvif $APP*.$EXTENSION
2102 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2103 
2104 ./configure --prefix=/usr
2105 make
2106 make check
2107 make install
2108 
2109 cd /sources/ 
2110 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2111 
2112 # gawk-5.2.1.tar.xz
2113 cd /sources/
2114 APP=gawk
2115 EXTENSION=xz
2116 tar xvif $APP*.$EXTENSION
2117 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2118 
2119 sed -i 's/extras//' Makefile.in
2120 ./configure --prefix=/usr
2121 make
2122 make check
2123 make LN='ln -f' install
2124 mkdir -pv                                   /usr/share/doc/gawk-5.2.1
2125 cp    -v doc/{awkforai.txt,*.{eps,pdf,jpg}} /usr/share/doc/gawk-5.2.1
2126 
2127 cd /sources/ 
2128 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2129 
2130 # findutils-4.9.0.tar.xz
2131 cd /sources/
2132 APP=findutils
2133 EXTENSION=xz
2134 tar xvif $APP*.$EXTENSION
2135 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2136 
2137 case $(uname -m) in
2138     i?86)   TIME_T_32_BIT_OK=yes ./configure --prefix=/usr --localstatedir=/var/lib/locate ;;
2139     x86_64) ./configure --prefix=/usr --localstatedir=/var/lib/locate ;;
2140 esac
2141 
2142 make
2143 chown -Rv tester .
2144 su tester -c "PATH=$PATH make check"
2145 make install
2146 
2147 cd /sources/ 
2148 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2149 
2150 # groff-1.22.4.tar.gz
2151 cd /sources/
2152 APP=groff
2153 EXTENSION=gz
2154 tar xvzf $APP*.$EXTENSION
2155 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2156 
2157 PAGE=A4 ./configure --prefix=/usr
2158 
2159 make
2160 make install
2161 
2162 cd /sources/ 
2163 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2164 
2165 # grub-2.06.tar.xz
2166 cd /sources/
2167 APP=grub
2168 EXTENSION=xz
2169 tar xvif $APP*.$EXTENSION
2170 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2171 
2172 unset {C,CPP,CXX,LD}FLAGS
2173 patch -Np1 -i ../grub-2.06-upstream_fixes-1.patch
2174 
2175 ./configure --prefix=/usr          \
2176             --sysconfdir=/etc      \
2177             --disable-efiemu       \
2178             --disable-werror
2179 
2180 make
2181 make install
2182 mv -v /etc/bash_completion.d/grub /usr/share/bash-completion/completions
2183 
2184 cd /sources/ 
2185 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2186 
2187 # gzip-1.12.tar.xz
2188 cd /sources/
2189 APP=gzip
2190 EXTENSION=xz
2191 tar xvif $APP*.$EXTENSION
2192 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2193 
2194 ./configure --prefix=/usr
2195 make
2196 make check
2197 make install
2198 
2199 cd /sources/ 
2200 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2201 
2202 # iproute2-6.1.0.tar.xz
2203 cd /sources/
2204 APP=iproute2
2205 EXTENSION=xz
2206 tar xvif $APP*.$EXTENSION
2207 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2208 
2209 sed -i /ARPD/d Makefile
2210 rm -fv man/man8/arpd.8
2211 
2212 make NETNS_RUN_DIR=/run/netns
2213 make SBINDIR=/usr/sbin install
2214 mkdir -pv             /usr/share/doc/iproute2-6.1.0
2215 cp -v COPYING README* /usr/share/doc/iproute2-6.1.0
2216 
2217 cd /sources/ 
2218 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2219 
2220 # kbd-2.5.1.tar.xz
2221 cd /sources/
2222 APP=kbd
2223 EXTENSION=xz
2224 tar xvif $APP*.$EXTENSION
2225 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2226 
2227 patch -Np1 -i ../kbd-2.5.1-backspace-1.patch
2228 
2229 sed -i '/RESIZECONS_PROGS=/s/yes/no/' configure
2230 sed -i 's/resizecons.8 //' docs/man/man8/Makefile.in
2231 
2232 ./configure --prefix=/usr --disable-vlock
2233 
2234 make
2235 make check
2236 make install
2237 
2238 mkdir -pv           /usr/share/doc/kbd-2.5.1
2239 cp -R -v docs/doc/* /usr/share/doc/kbd-2.5.1
2240 
2241 cd /sources/ 
2242 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2243 
2244 # libpipeline-1.5.7.tar.gz
2245 cd /sources/
2246 APP=libpipeline
2247 EXTENSION=gz
2248 tar xvzf $APP*.$EXTENSION
2249 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2250 
2251 ./configure --prefix=/usr
2252 make
2253 make check
2254 make install
2255 
2256 cd /sources/ 
2257 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2258 
2259 # make-4.4.tar.gz
2260 cd /sources/
2261 APP=make
2262 EXTENSION=gz
2263 tar xvzf $APP*.$EXTENSION
2264 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2265 
2266 sed -e '/ifdef SIGPIPE/,+2 d' \
2267     -e '/undef  FATAL_SIG/i FATAL_SIG (SIGPIPE);' \
2268     -i src/main.c
2269 
2270 ./configure --prefix=/usr
2271 make
2272 make check
2273 make install
2274 
2275 cd /sources/ 
2276 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2277 
2278 # patch-2.7.6.tar.xz
2279 cd /sources/
2280 APP=patch
2281 EXTENSION=xz
2282 tar xvif $APP*.$EXTENSION
2283 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2284 
2285 ./configure --prefix=/usr
2286 make
2287 make check
2288 make install
2289 
2290 cd /sources/ 
2291 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2292 
2293 # tar-1.34.tar.xz
2294 cd /sources/
2295 APP=tar
2296 EXTENSION=xz
2297 tar xvif $APP*.$EXTENSION
2298 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2299 
2300 FORCE_UNSAFE_CONFIGURE=1  \
2301 ./configure --prefix=/usr
2302 
2303 make
2304 make check
2305 make install
2306 make -C doc install-html docdir=/usr/share/doc/tar-1.34
2307 
2308 cd /sources/ 
2309 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2310 
2311 # texinfo-7.0.2.tar.xz
2312 cd /sources/
2313 APP=texinfo
2314 EXTENSION=xz
2315 tar xvif $APP*.$EXTENSION
2316 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2317 
2318 ./configure --prefix=/usr
2319 make
2320 make check
2321 make install
2322 make TEXMF=/usr/share/texmf install-tex
2323 
2324 cd /sources/ 
2325 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2326 
2327 # vim-9.0.1273.tar.xz
2328 cd /sources/
2329 APP=vim
2330 EXTENSION=xz
2331 tar xvif $APP*.$EXTENSION
2332 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
2333 
2334 echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h
2335 ./configure --prefix=/usr
2336 make
2337 chown -Rv tester .
2338 su tester -c "LANG=en_US.UTF-8 make -j1 test" &> vim-test.log
2339 make install
2340 
2341 ln -sv vim /usr/bin/vi
2342 for L in  /usr/share/man/{,*/}man1/vim.1; do
2343     ln -sv vim.1 $(dirname $L)/vi.1
2344 done
2345 
2346 ln -sv ../vim/vim90/doc /usr/share/doc/vim-9.0.1273
2347 
2348 cat > /etc/vimrc << "EOF"
2349 source $VIMRUNTIME/defaults.vim
2350 let skip_defaults_vim=1
2351 
2352 set nocompatible
2353 set backspace=2
2354 set mouse=
2355 syntax on
2356 if (&term == "xterm") || (&term == "putty")
2357   set background=dark
2358 endif
2359 
2360 EOF
2361 
2362 cd /sources/ 
2363 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )

Toggle line numbers
   1 # eudev-3.2.11.tar.gz
   2 cd /sources/
   3 APP=eudev
   4 EXTENSION=gz
   5 tar xvzf $APP*.$EXTENSION
   6 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
   7 
   8 sed -i '/udevdir/a udev_dir=${udevdir}' src/udev/udev.pc.in
   9 ./configure --prefix=/usr           \
  10             --bindir=/usr/sbin      \
  11             --sysconfdir=/etc       \
  12             --enable-manpages       \
  13             --disable-static
  14 
  15 make
  16 mkdir -pv /usr/lib/udev/rules.d
  17 mkdir -pv /etc/udev/rules.d
  18 
  19 make check
  20 make install
  21 
  22 tar -xvf ../udev-lfs-20171102.tar.xz
  23 make -f udev-lfs-20171102/Makefile.lfs install
  24 
  25 udevadm hwdb --update
  26 
  27 cd /sources/ 
  28 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
  29 
  30 # man-db-2.11.2.tar.xz
  31 cd /sources/
  32 APP=man-db
  33 EXTENSION=xz
  34 tar xvif $APP*.$EXTENSION
  35 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
  36 
  37 ./configure --prefix=/usr                         \
  38             --docdir=/usr/share/doc/man-db-2.11.2 \
  39             --sysconfdir=/etc                     \
  40             --disable-setuid                      \
  41             --enable-cache-owner=bin              \
  42             --with-browser=/usr/bin/lynx          \
  43             --with-vgrind=/usr/bin/vgrind         \
  44             --with-grap=/usr/bin/grap             \
  45             --with-systemdtmpfilesdir=            \
  46             --with-systemdsystemunitdir=
  47 make
  48 make check
  49 make install
  50                         
  51 cd /sources/ 
  52 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
  53 
  54 # procps-ng-4.0.2.tar.xz
  55 cd /sources/
  56 APP=procps
  57 EXTENSION=xz
  58 tar xvif $APP*.$EXTENSION
  59 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
  60 
  61 ./configure --prefix=/usr                           \
  62             --docdir=/usr/share/doc/procps-ng-4.0.2 \
  63             --disable-static                        \
  64             --disable-kill
  65 
  66 make
  67 make check
  68 make install
  69                         
  70 cd /sources/ 
  71 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
  72 
  73 # util-linux-2.38.1.tar.xz
  74 cd /sources/
  75 APP=util-linux
  76 EXTENSION=xz
  77 tar xvif $APP*.$EXTENSION
  78 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
  79 
  80 ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \
  81             --bindir=/usr/bin    \
  82             --libdir=/usr/lib    \
  83             --sbindir=/usr/sbin  \
  84             --disable-chfn-chsh  \
  85             --disable-login      \
  86             --disable-nologin    \
  87             --disable-su         \
  88             --disable-setpriv    \
  89             --disable-runuser    \
  90             --disable-pylibmount \
  91             --disable-static     \
  92             --without-python     \
  93             --without-systemd    \
  94             --without-systemdsystemunitdir \
  95             --docdir=/usr/share/doc/util-linux-2.38.1
  96 
  97 make
  98 chown -Rv tester .
  99 su tester -c "make -k check"
 100 make install
 101                         
 102 cd /sources/ 
 103 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
 104 
 105 # e2fsprogs-1.47.0.tar.gz
 106 cd /sources/
 107 APP=e2fsprogs
 108 EXTENSION=gz
 109 tar xvzf $APP*.$EXTENSION
 110 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
 111 
 112 mkdir -v build
 113 cd       build
 114 
 115 ../configure --prefix=/usr           \
 116              --sysconfdir=/etc       \
 117              --enable-elf-shlibs     \
 118              --disable-libblkid      \
 119              --disable-libuuid       \
 120              --disable-uuidd         \
 121              --disable-fsck
 122 
 123 make
 124 make check
 125 make install
 126 rm -fv /usr/lib/{libcom_err,libe2p,libext2fs,libss}.a
 127 gunzip -v /usr/share/info/libext2fs.info.gz
 128 install-info --dir-file=/usr/share/info/dir /usr/share/info/libext2fs.info
 129 makeinfo -o      doc/com_err.info ../lib/et/com_err.texinfo
 130 install -v -m644 doc/com_err.info /usr/share/info
 131 install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info
 132 sed 's/metadata_csum_seed,//' -i /etc/mke2fs.conf
 133                         
 134 cd /sources/ 
 135 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
 136 
 137 # sysklogd-1.5.1.tar.gz
 138 cd /sources/
 139 APP=sysklogd
 140 EXTENSION=gz
 141 tar xvzf $APP*.$EXTENSION
 142 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
 143 
 144 sed -i '/Error loading kernel symbols/{n;n;d}' ksym_mod.c
 145 sed -i 's/union wait/int/' syslogd.c
 146 
 147 make
 148 make BINDIR=/sbin install
 149 
 150 cat > /etc/syslog.conf << "EOF"
 151 auth,authpriv.* -/var/log/auth.log
 152 *.*;auth,authpriv.none -/var/log/sys.log
 153 daemon.* -/var/log/daemon.log
 154 kern.* -/var/log/kern.log
 155 mail.* -/var/log/mail.log
 156 user.* -/var/log/user.log
 157 *.emerg *
 158 EOF
 159                         
 160 cd /sources/ 
 161 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
 162 
 163 # sysvinit-3.06.tar.xz
 164 cd /sources/
 165 APP=sysvinit
 166 EXTENSION=xz
 167 tar xvif $APP*.$EXTENSION
 168 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
 169 
 170 patch -Np1 -i ../sysvinit-3.06-consolidated-1.patch
 171 make
 172 make install
 173                         
 174 cd /sources/ 
 175 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
 176 
 177 # Stripping 
 178 save_usrlib="$(cd /usr/lib; ls ld-linux*[^g])
 179              libc.so.6
 180              libthread_db.so.1
 181              libquadmath.so.0.0.0
 182              libstdc++.so.6.0.30
 183              libitm.so.1.0.0
 184              libatomic.so.1.2.0"
 185 
 186 cd /usr/lib
 187 
 188 for LIB in $save_usrlib; do
 189     objcopy --only-keep-debug $LIB $LIB.dbg
 190     cp $LIB /tmp/$LIB
 191     strip --strip-unneeded /tmp/$LIB
 192     objcopy --add-gnu-debuglink=$LIB.dbg /tmp/$LIB
 193     install -vm755 /tmp/$LIB /usr/lib
 194     rm /tmp/$LIB
 195 done
 196 
 197 online_usrbin="bash find strip"
 198 online_usrlib="libbfd-2.40.so
 199                libsframe.so.0.0.0
 200                libhistory.so.8.2
 201                libncursesw.so.6.4
 202                libm.so.6
 203                libreadline.so.8.2
 204                libz.so.1.2.13
 205                $(cd /usr/lib; find libnss*.so* -type f)"
 206 
 207 for BIN in $online_usrbin; do
 208     cp /usr/bin/$BIN /tmp/$BIN
 209     strip --strip-unneeded /tmp/$BIN
 210     install -vm755 /tmp/$BIN /usr/bin
 211     rm /tmp/$BIN
 212 done
 213 
 214 for LIB in $online_usrlib; do
 215     cp /usr/lib/$LIB /tmp/$LIB
 216     strip --strip-unneeded /tmp/$LIB
 217     install -vm755 /tmp/$LIB /usr/lib
 218     rm /tmp/$LIB
 219 done
 220 
 221 for i in $(find /usr/lib -type f -name \*.so* ! -name \*dbg) \
 222          $(find /usr/lib -type f -name \*.a)                 \
 223          $(find /usr/{bin,sbin,libexec} -type f); do
 224     case "$online_usrbin $online_usrlib $save_usrlib" in
 225         *$(basename $i)* )
 226             ;;
 227         * ) strip --strip-unneeded $i
 228             ;;
 229     esac
 230 done
 231 
 232 unset BIN LIB save_usrlib online_usrbin online_usrlib
 233 
 234 # Cleaning Up 
 235 rm -rf /tmp/*
 236 find /usr/lib /usr/libexec -name \*.la -delete
 237 find /usr -depth -name $(uname -m)-lfs-linux-gnu\* | xargs rm -rf
 238 userdel -r tester
 239 
 240 # lfs-bootscripts-20230101.tar.xz
 241 cd /sources/
 242 APP=lfs-bootscripts
 243 EXTENSION=xz
 244 tar xvif $APP*.$EXTENSION
 245 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
 246 
 247 make install
 248                         
 249 cd /sources/ 
 250 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
 251 
 252 bash /usr/lib/udev/init-net-rules.sh
 253 cat /etc/udev/rules.d/70-persistent-net.rules
 254 
 255 cat > /etc/sysconfig/ifconfig.eth0 << "EOF"
 256 ONBOOT=yes
 257 IFACE=eth0
 258 SERVICE=ipv4-static
 259 IP=192.168.1.2
 260 GATEWAY=192.168.1.1
 261 PREFIX=24
 262 BROADCAST=192.168.1.255
 263 EOF
 264 
 265 cat > /etc/resolv.conf << "EOF"
 266 domain <Your Domain Name>
 267 nameserver <IP address of your primary nameserver>
 268 nameserver <IP address of your secondary nameserver>
 269 EOF
 270 
 271 echo "vitux" > /etc/hostname
 272 
 273 cat > /etc/hosts << "EOF"
 274 127.0.0.1 localhost.localdomain localhost
 275 127.0.1.1 vitux.bitarus.mooo.com
 276 ::1       localhost ip6-localhost ip6-loopback
 277 ff02::1   ip6-allnodes
 278 ff02::2   ip6-allrouters
 279 EOF
 280 
 281 cat > /etc/inittab << "EOF"
 282 id:3:initdefault:
 283 si::sysinit:/etc/rc.d/init.d/rc S
 284 l0:0:wait:/etc/rc.d/init.d/rc 0
 285 l1:S1:wait:/etc/rc.d/init.d/rc 1
 286 l2:2:wait:/etc/rc.d/init.d/rc 2
 287 l3:3:wait:/etc/rc.d/init.d/rc 3
 288 l4:4:wait:/etc/rc.d/init.d/rc 4
 289 l5:5:wait:/etc/rc.d/init.d/rc 5
 290 l6:6:wait:/etc/rc.d/init.d/rc 6
 291 ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
 292 su:S06:once:/sbin/sulogin
 293 s1:1:respawn:/sbin/sulogin
 294 1:2345:respawn:/sbin/agetty --noclear tty1 9600
 295 2:2345:respawn:/sbin/agetty tty2 9600
 296 3:2345:respawn:/sbin/agetty tty3 9600
 297 4:2345:respawn:/sbin/agetty tty4 9600
 298 5:2345:respawn:/sbin/agetty tty5 9600
 299 6:2345:respawn:/sbin/agetty tty6 9600
 300 EOF
 301 
 302 cat > /etc/sysconfig/clock << "EOF"
 303 UTC=1
 304 # Set this to any options you might need to give to hwclock,
 305 # such as machine hardware clock type for Alphas.
 306 CLOCKPARAMS=
 307 EOF
 308 
 309 cat > /etc/sysconfig/console << "EOF"
 310 KEYMAP="pt-latin1"
 311 FONT="lat1-16 -m 8859-1"
 312 UNICODE="1"
 313 EOF
 314 
 315 locale -a
 316 locale -a | grep -i pt
 317 kk_KZ.pt154
 318 pt_BR
 319 pt_BR.iso88591
 320 pt_BR.utf8
 321 pt_PT
 322 pt_PT.iso88591
 323 pt_PT.iso885915@euro
 324 pt_PT.utf8
 325 pt_PT@euro
 326 
 327 cat > /etc/profile << "EOF"
 328 export LANG=pt_PT.utf8
 329 EOF
 330 
 331 cat > /etc/inputrc << "EOF"
 332 # Modified by Chris Lynn <roryo@roryo.dynup.net>
 333 # Allow the command prompt to wrap to the next line
 334 set horizontal-scroll-mode Off
 335 # Enable 8-bit input
 336 set meta-flag On
 337 set input-meta On
 338 # Turns off 8th bit stripping
 339 set convert-meta Off
 340 # Keep the 8th bit for display
 341 set output-meta On
 342 # none, visible or audible
 343 set bell-style none
 344 # All of the following map the escape sequence of the value
 345 # contained in the 1st argument to the readline specific functions
 346 "\eOd": backward-word
 347 "\eOc": forward-word
 348 # for linux console
 349 "\e[1~": beginning-of-line
 350 "\e[4~": end-of-line
 351 "\e[5~": beginning-of-history
 352 "\e[6~": end-of-history
 353 "\e[3~": delete-char
 354 "\e[2~": quoted-insert
 355 # for xterm
 356 "\eOH": beginning-of-line
 357 "\eOF": end-of-line
 358 # for Konsole
 359 "\e[H": beginning-of-line
 360 "\e[F": end-of-line
 361 EOF
 362 
 363 cat > /etc/shells << "EOF"
 364 /bin/sh
 365 /bin/bash
 366 EOF
 367 
 368 cat > /etc/fstab << "EOF"
 369 # file-system  mount-point  type     options             dump  fsck
 370 #                                                              order
 371 
 372 #/dev/<xxx>     /            <fff>    defaults            1     1
 373 #/dev/<yyy>     swap         swap     pri=1               0     0
 374 proc           /proc        proc     nosuid,noexec,nodev 0     0
 375 sysfs          /sys         sysfs    nosuid,noexec,nodev 0     0
 376 devpts         /dev/pts     devpts   gid=5,mode=620      0     0
 377 tmpfs          /run         tmpfs    defaults            0     0
 378 devtmpfs       /dev         devtmpfs mode=0755,nosuid    0     0
 379 tmpfs          /dev/shm     tmpfs    nosuid,nodev        0     0
 380 EOF
 381 
 382 # linux-6.1.11.tar.xz
 383 cd /sources/
 384 APP=linux
 385 EXTENSION=xz
 386 tar xvif $APP*.$EXTENSION
 387 cd $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
 388 
 389 make mrproper
 390 make menuconfig
 391                 
 392 # Processor type and features --->
 393 #    [*] Build a relocatable kernel [CONFIG_RELOCATABLE]
 394 #    [*]   Randomize the address of the kernel image (KASLR) [CONFIG_RANDOMIZE_BASE]
 395 # General setup --->
 396 #    [ ] Compile the kernel with warnings as errors [CONFIG_WERROR]
 397 #    < > Enable kernel headers through /sys/kernel/kheaders.tar.xz [CONFIG_IKHEADERS]
 398 # General architecture-dependent options  --->
 399 #    [*] Stack Protector buffer overflow detection [CONFIG_STACKPROTECTOR]
 400 #    [*]   Strong Stack Protector [CONFIG_STACKPROTECTOR_STRONG]
 401 # Device Drivers  --->
 402 #   Graphics support --->
 403 #    Frame buffer Devices --->
 404 #       <*> Support for frame buffer devices --->
 405 #    Console display driver support --->
 406 #       [*] Framebuffer Console support [CONFIG_FRAMEBUFFER_CONSOLE]
 407 #   Generic Driver Options  --->
 408 #    [ ] Support for uevent helper [CONFIG_UEVENT_HELPER]
 409 #    [*] Maintain a devtmpfs filesystem to mount at /dev [CONFIG_DEVTMPFS]
 410 #    [*]   Automount devtmpfs at /dev, after the kernel mounted the rootfs [CONFIG_DEVTMPFS_MOUNT]
 411 # Processor type and features --->
 412 #   [*] Support x2apic [CONFIG_X86_X2APIC]
 413 # Device Drivers --->
 414 #   [*] PCI Support ---> [CONFIG_PCI]
 415 #     [*] Message Signaled Interrupts (MSI and MSI-X) [CONFIG_PCI_MSI]
 416 #   [*] IOMMU Hardware Support ---> [CONFIG_IOMMU_SUPPORT]
 417 #     [*] Support for Interrupt Remapping [CONFIG_IRQ_REMAP]
 418 
 419 /sources/linux-6.1.11# find . -name .config
 420 ./.config
 421 
 422 cat .config | grep -e CONFIG_IRQ_REMAP -e CONFIG_IOMMU_SUPPORT=y -e CONFIG_PCI_MSI=y -e CONFIG_PCI=y -e CONFIG_X86_X2APIC=y  \
 423 -e CONFIG_DEVTMPFS_MOUNT -e CONFIG_DEVTMPFS=y -e CONFIG_UEVENT_HELPER -e CONFIG_FRAMEBUFFER_CONSOLE=y \
 424 -e CONFIG_STACKPROTECTOR=y -e CONFIG_STACKPROTECTOR_STRONG=y -e CONFIG_RELOCATABLE=y -e CONFIG_RANDOMIZE_BASE=y \
 425 -e CONFIG_WERROR -e CONFIG_IKHEADERS
 426 
 427 # # CONFIG_WERROR is not set
 428 # # CONFIG_IKHEADERS is not set
 429 # CONFIG_RELOCATABLE=y
 430 # CONFIG_RANDOMIZE_BASE=y
 431 # CONFIG_STACKPROTECTOR=y
 432 # CONFIG_STACKPROTECTOR_STRONG=y
 433 # CONFIG_PCI=y
 434 # CONFIG_PCI_MSI=y
 435 # # CONFIG_UEVENT_HELPER is not set
 436 # CONFIG_DEVTMPFS=y
 437 # CONFIG_DEVTMPFS_MOUNT=y
 438 # CONFIG_FRAMEBUFFER_CONSOLE=y
 439 # CONFIG_IOMMU_SUPPORT=y
 440 # CONFIG_IRQ_REMAP=y
 441 
 442 # https://www.linuxfromscratch.org/hints/downloads/files/kernel-configuration.txt
 443 
 444 make help 
 445 make
 446 make modules_install
 447 
 448 cp -iv arch/x86/boot/bzImage /boot/vmlinuz-6.1.11-lfs-11.3
 449 cp -iv System.map /boot/System.map-6.1.11
 450 cp -iv .config /boot/config-6.1.11
 451 install -d /usr/share/doc/linux-6.1.11
 452 cp -r Documentation/* /usr/share/doc/linux-6.1.11
 453 
 454 install -v -m755 -d /etc/modprobe.d
 455 
 456 cat > /etc/modprobe.d/usb.conf << "EOF"
 457 install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i ohci_hcd ; true
 458 install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i uhci_hcd ; true
 459 EOF
 460                 
 461 cd $LFS/sources/ 
 462 rm -rf $(ls $APP*$EXTENSION | sed  's/\.tar//g' | sed "s/\.$EXTENSION//g" )
 463 
 464 echo 11.3 > /etc/lfs-release
 465 
 466 cat > /etc/lsb-release << "EOF"
 467 DISTRIB_ID="Linux From Scratch"
 468 DISTRIB_RELEASE="11.3"
 469 DISTRIB_CODENAME="Vitux"
 470 DISTRIB_DESCRIPTION="Linux From Scratch"
 471 EOF
 472 
 473 cat > /etc/os-release << "EOF"
 474 NAME="Linux From Scratch"
 475 VERSION="11.3"
 476 ID=lfs
 477 PRETTY_NAME="Linux From Scratch 11.3"
 478 VERSION_CODENAME="Vitux"
 479 EOF
 480 
 481 cd / # as chroot
 482 du . -hs
 483 # 2.0G
 484 du  sources/ -hs
 485 # 603M  sources/
 486 sh version-check.sh
 487 
 488 # To make a backup, leave the chroot environment:
 489 exit
 490 mountpoint -q $LFS/dev/shm && umount $LFS/dev/shm
 491 umount $LFS/dev/pts
 492 umount $LFS/{sys,proc,run,dev}
 493 LFS=/home/vagrant/lfs 
 494 echo $LFS
 495 cd $LFS
 496 time tar -cJpf /root/lfs-build-11.3.tar.xz .
 497 # real  17m18.550s
 498 tar tvaf /root/lfs-build-11.3.tar.xz
 499 # -p, --preserve-permissions
 500 # -f, --file=ARCHIVE
 501 # -J, --xz Filter the archive through xz
 502 
 503 scp lfs*xz xyz@xyz.com:/media/LFS/

Add partition in VM to host LFS build

Toggle line numbers
   1 ## Add dymamic disk 8 GB to debian built with vagrant ....
   2 vagrant halt 
   3 ## settings storage sata add hard disk 
   4 ## create VDI dynamically allocated with 8 GB 
   5 vagrant up 
   6 ## sd 2:0:0:0: [sdb] 16777216 512-byte logical blocks: (8.59 GB/8.00 GiB)
   7 sudo cfdisk /dev/sdb
   8 ## label type gpt 
   9 ## new 8GB linux fs 
  10 ## write yes quit 
  11 sudo mkfs -v -t ext4 /dev/sdb1 
  12 export LFS=/mnt/lfs
  13 sudo mkdir -pv $LFS
  14 sudo mount -v -t ext4 /dev/sdb1 $LFS
  15 sudo bash 
  16 
  17 cat >>/etc/fstab << "EOF"
  18 /dev/sdb1  /mnt/lfs ext4   defaults      1     1
  19 EOF 
  20 
  21 exit 
  22 sudo bash 
  23 export LFS=/mnt/lfs
  24 cd ~
  25 cp lfs-build-11.3.tar.xz $LFS
  26 
  27 cd $LFS
  28 rm -rf ./*
  29 tar -xpf /root/lfs-build-11.3.tar.xz
  30 ls 
  31 chown root:root $LFS/*
  32 cat $LFS/etc/inittab
  33 cat $LFS/etc/fstab
  34 
  35 nano $LFS/etc/fstab
  36 # /dev/sdb1      /            ext4    defaults            1     1
  37 
  38 nano /etc/grub.d/40_custom
  39 # menuentry "GNU/Linux, Linux 6.1.11-lfs-11.3" {
  40 #         linux   /boot/vmlinuz-6.1.11-lfs-11.3 root=/dev/sdb1 ro
  41 # }
  42 update-grub
  43 
  44 vagrant reload 
  45 # select grun entry for lfs 
  46 # login with root:root 
  47 df -h # uses 2.7G
  48 rm lfs-build-11.3.tar.xz
  49 rm -rf sources/* 
  50 df -h # uses 1.4 GB
  51 

initramfs with static program

  • https://www.kernel.org/doc/html/latest/filesystems/ramfs-rootfs-initramfs.html#contents-of-initramfs

A good first step is to get initramfs to run a statically linked "hello world" program as init

Toggle line numbers
   1 sudo apt install qemu-system genisoimage
   2 
   3 cd /tmp 
   4 wget https://saimei.ftp.acc.umu.se/debian-cd/current/amd64/iso-cd/debian-12.1.0-amd64-netinst.iso
   5 sudo mount -o loop /vagrant/debian-12.1.0-amd64-netinst.iso /mnt/iso
   6 
   7 # reuse isolinux from debian iso
   8 mkdir /tmp/debiancd 
   9 mkdir /tmp/debiancd/isolinux 
  10 mkdir /tmp/debiancd/install.amd 
  11 cd /mnt/iso
  12 cp isolinux/isolinux.cfg isolinux/*c32 isolinux/menu.cfg isolinux/txt.cfg /tmp/debiancd/isolinux 
  13 cp install.amd/initrd.gz install.amd/vmlinuz /tmp/debiancd/install.amd/
  14 cp /mnt/iso/isolinux/isolinux.bin /tmp/debiancd/isolinux/
  15 
  16 # isolinux.cfg
  17 cat > debiancd/isolinux/isolinux.cfg << EOF 
  18 default bootcd
  19 prompt 1
  20 timeout 40
  21 
  22 label bootcd
  23   kernel /install.amd/vmlinuz
  24   append initrd=/install.amd/test.cpio.gz vga=788
  25 EOF
  26 
  27 # hello.c
  28 cat > hello.c << EOF
  29 #include <stdio.h>
  30 #include <unistd.h>
  31 
  32 int main(int argc, char *argv[])
  33 {
  34   printf("Hello world!\n");
  35   sleep(999999999);
  36 }
  37 EOF
  38 gcc -static hello.c -o init
  39 
  40 # build cpio initramfs
  41 echo init | cpio -o -H newc | gzip > test.cpio.gz
  42 cp test.cpio.gz debiancd/install.amd/test.cpio.gz
  43 
  44 cd /tmp/
  45 mkisofs -o /tmp/output.iso  -R -l -L -D -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -V "LFS_$(date +%Y%m%d)" /tmp/debiancd/ 
  46 rm /vagrant/output.iso
  47 cp output.iso /vagrant
  48 
  49 # the output.iso can be launched in VirtualBox booting the iso in a VM Other Linux, Linux 64 bit 
  50 
  51 # test with qemu
  52 qemu-system-x86_64  -kernel debiancd/install.amd/vmlinuz -initrd test.cpio.gz /dev/zero
  53 # test with qemu with kernel in debian system
  54 qemu-system-x86_64  -kernel /boot/vmlinuz-5.10.0-22-amd64 -initrd test.cpio.gz /dev/zero
  55 # test with qemu with kernel from lfs
  56 qemu-system-x86_64  -kernel /home/vagrant/lfs/boot/lfskernel -initrd test.cpio.gz /dev/zero
  57 # test with qemu with kernel from lfs
  58 qemu-system-x86_64  -kernel /home/vagrant/lfs/boot/vmlinuz-6.1.11-lfs-11.3 -initrd test.cpio.gz /dev/zero
  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01