Merge remote-tracking branch 'origin/HEAD'

This commit is contained in:
kevadesu 2025-02-05 15:50:52 +01:00
commit be714f5707
3 changed files with 226 additions and 89 deletions

View file

@ -53,6 +53,8 @@ eic.config.create.shells - creates the simple but necessary /etc/shells file
eic.config.systemd.disableScreenClearing <yes/no> - decide whether systemd should clear the screen at the end of the boot sequence or not
eic.config.systemd.limitCoreDumpSize <(Number)(G/M/K/B) - limits core dump size to value specified as argument
eic.linux.install - the final boss: install the Linux kernel to the system. can take 0.4-32 SBUs (typically 2.5), MIGHT also be heavy
eic.rpm.install - installs RPM
eic.eko.install - installs the Eko wrapper for RPM (RPM Package Manager)
eic.help - show this message
"
}
@ -148,73 +150,61 @@ EOF
function eic.essentials.install() {
pushd /sources/ || eic.error D404_SRC
tar -xvf gettext*xz
mv gettext-0.22.5 gettext
pushd gettext/
./configure --disable-shared
make
cp -v gettext-tools/src/{msgfmt,msgmerge,xgettext} /usr/bin
./configure --disable-shared
make
cp -v gettext-tools/src/{msgfmt,msgmerge,xgettext} /usr/bin
popd
tar -xvf bison*xz
mv bison-3.8.2 bison
pushd bison/
./configure --prefix=/usr \
--docdir=/usr/share/doc/bison-3.8.2
make
make install
./configure --prefix=/usr \
--docdir=/usr/share/doc/bison-3.8.2
make
make install
popd
tar -xvf perl*xz
mv perl-5.40.0 perl
pushd perl/
sh Configure -des \
-D prefix=/usr \
-D vendorprefix=/usr \
-D useshrplib \
-D privlib=/usr/lib/perl5/5.40/core_perl \
-D archlib=/usr/lib/perl5/5.40/core_perl \
-D sitelib=/usr/lib/perl5/5.40/site_perl \
-D sitearch=/usr/lib/perl5/5.40/site_perl \
-D vendorlib=/usr/lib/perl5/5.40/vendor_perl \
-D vendorarch=/usr/lib/perl5/5.40/vendor_perl
make
make install
sh Configure -des \
-D prefix=/usr \
-D vendorprefix=/usr \
-D useshrplib \
-D privlib=/usr/lib/perl5/5.40/core_perl \
-D archlib=/usr/lib/perl5/5.40/core_perl \
-D sitelib=/usr/lib/perl5/5.40/site_perl \
-D sitearch=/usr/lib/perl5/5.40/site_perl \
-D vendorlib=/usr/lib/perl5/5.40/vendor_perl \
-D vendorarch=/usr/lib/perl5/5.40/vendor_perl
make
make install
popd
tar -xvf Python*xz
mv Python-3.12.5 python
pushd python/
./configure --prefix=/usr \
--enable-shared \
--without-ensurepip
make
make install
./configure --prefix=/usr \
--enable-shared \
--without-ensurepip
make
make install
popd
tar -xvf texinfo*xz
mv texinfo-7.1 texinfo
pushd texinfo/
./configure --prefix=/usr
make
make install
./configure --prefix=/usr
make
make install
popd
tar -xvf util-linux*.xz
mv util-linux-2.40.2 util-linux
pushd util-linux/
mkdir -pv /var/lib/hwclock
./configure --libdir=/usr/lib \
--runstatedir=/run \
--disable-chfn-chsh \
--disable-login \
--disable-nologin \
--disable-su \
--disable-setpriv \
--disable-runuser \
--disable-pylibmount \
--disable-static \
--disable-liblastlog2 \
--without-python \
ADJTIME_PATH=/var/lib/hwclock/adjtime \
--docdir=/usr/share/doc/util-linux-2.40.2
make
make install
mkdir -pv /var/lib/hwclock
./configure --libdir=/usr/lib \
--runstatedir=/run \
--disable-chfn-chsh \
--disable-login \
--disable-nologin \
--disable-su \
--disable-setpriv \
--disable-runuser \
--disable-pylibmount \
--disable-static \
--disable-liblastlog2 \
--without-python \
ADJTIME_PATH=/var/lib/hwclock/adjtime \
--docdir=/usr/share/doc/util-linux-2.40.2
make
make install
popd
popd
}
@ -227,13 +217,10 @@ function eic.clean() {
function eic.system.build() {
pushd /sources
tar -xvf man-pages-6.9.1.tar.xz
mv man-pages-6.9.1.tar.xz man-pages
pushd man-pages
rm -v man3/crypt*
make prefix=/usr install
popd
tar -xvf iana-etc-20240806.tar.gz
pushd iana-etc-20240806
cp services protocols /etc
popd
@ -360,8 +347,6 @@ include /etc/ld.so.conf.d/*.conf
EOF
mkdir -pv /etc/ld.so.conf.d
popd
tar -xvf zlib-1.3.1.tar.gz
mv zlib-1.3.1 zlib
pushd zlib/
./configure --prefix=/usr
make
@ -369,15 +354,13 @@ EOF
make install
rm -fv /usr/lib/libz.a
popd
tar -xvf bzip2-1.0.8.tar.gz
mv bzip2-1.0.8 bzip2
pushd bzip2/
patch -Np1 -i ../bzip2-1.0.8-install_docs-1.patch
sed -i 's@\(ln -s -f \)$(PREFIX)/bin/@\1@' Makefile
sed -i "s@(PREFIX)/man@(PREFIX)/share/man@g" Makefile
make -f Makefile-libbz2_so
make clean
make
make CFLAGS="-fPIC" LDFLAGS="-fPIC"
make PREFIX=/usr install
cp -av libbz2.so.* /usr/lib
ln -sv libbz2.so.1.0.8 /usr/lib/libbz2.so
@ -395,15 +378,11 @@ EOF
make check
make install
popd
tar -xvf lz4-1.10.0.tar.gz
mv lz4-1.10.0 lz4
pushd lz4/
make BUILD_STATIC=no PREFIX=/usr
make -j1 check
make BUILD_STATIC=no PREFIX=/usr install
popd
tar -xvf zstd-1.5.6.tar.gz
mv zstd-1.5.6 zstd
pushd zstd/
make prefix=/usr
make check
@ -416,8 +395,6 @@ EOF
make check
make install
popd
tar -xvf readline-8.2.13.tar.gz
mv readline-8.2.13 readline
pushd readline/
sed -i '/MV.*old/d' Makefile.in
sed -i '/{OLDSUFF}/c:' support/shlib-install
@ -436,16 +413,12 @@ EOF
make check
make install
popd
tar -xvf bc-6.7.6.tar.xz
mv bc-6.7.6 bc
pushd bc/
CC=gcc ./configure --prefix=/usr -G -O3 -r
make
make test
make install
popd
tar -xvf flex-2.6.4.tar.gz
mv flex-2.6.4 flex
pushd flex/
./configure --prefix=/usr \
--docdir=/usr/share/doc/flex-2.6.4 \
@ -456,8 +429,6 @@ EOF
ln -sv flex /usr/bin/lex
ln -sv flex.1 /usr/share/man/man1/lex.1
popd
tar -xvf tcl8.6.14-src.tar.gz
mv tcl8.6.14 tcl
pushd tcl/
SRCDIR=$(pwd)
cd unix
@ -494,8 +465,6 @@ EOF
mkdir -v -p /usr/share/doc/tcl-8.6.14
cp -v -r ./html/* /usr/share/doc/tcl-8.6.14
popd
tar -xvf expect5.45.4.tar.gz
mv expect5.45.4 expect
pushd expect/
eic.system.build.expect.intervention() {
if [[ $(python3 -c 'from pty import spawn; spawn(["echo", "ok"])') != "ok" ]]; then
@ -534,8 +503,6 @@ EOF
make install
ln -svf expect5.45.4/libexpect5.45.4.so /usr/lib
popd
tar -xvf dejagnu-1.6.3.tar.gz
mv dejagnu-1.6.3 dejagnu
pushd dejagnu/
mkdir -v build
cd build
@ -547,8 +514,6 @@ EOF
install -v -dm755 /usr/share/doc/dejagnu-1.6.3
install -v -m644 doc/dejagnu.{html,txt} /usr/share/doc/dejagnu-1.6.3
popd
tar -xvf pkgconf-2.3.0.tar.xz
mv pkgconf-2.3.0 pkgconf
pushd pkgconf/
./configure --prefix=/usr \
--disable-static \
@ -579,8 +544,6 @@ EOF
make tooldir=/usr install
rm -fv /usr/lib/lib{bfd,ctf,ctf-nobfd,gprofng,opcodes,sframe}.a
popd
tar -xvf gmp-6.3.0.tar.xz
mv gmp-6.3.0 gmp
pushd gmp/
./configure --prefix=/usr \
--enable-cxx \
@ -618,8 +581,6 @@ EOF
make install
make install-html
popd
tar -xvf mpfr-4.2.1.tar.xz
mv mpfr-4.2.1 mpfr
pushd mpfr/
./configure --prefix=/usr \
--disable-static \
@ -631,8 +592,6 @@ EOF
make install
make install-html
popd
tar -xvf mpc-1.3.1.tar.gz
mv mpc-1.3.1 mpc
pushd mpc/
./configure --prefix=/usr \
--disable-static \
@ -1927,6 +1886,173 @@ EOF
popd
}
function eic.rpm.install() {
# Enter /sources/ directory
pushd /sources/
# Extract needed packages for compiling RPM
bunzip2 -v -v rpm-4.18.0.tar.bz2
tar -xvf rpm-4.18.0*.tar
mv rpm-4.18.0 rpm
tar -xvf debugedit*.tar.xz
mv debugedit-0.3 debugedit
tar -xvf lua*.gz
mv lua-5.4.7 lua
tar -xvf popt-*.tar.gz
mv popt-1.19 popt
tar -xvf curl-*.tar.xz
mv curl-8.9.1 curl
tar -xvf libarchive-3.7.4.tar.xz
mv libarchive-3.7.4 libarchive
tar -xvf nghttp2-*.xz
mv nghttp2-1.64.0 nghttp2
tar -xvf libuv-*.gz
mv libuv-v1.50.0 libuv
tar -xvf sqlite-autoconf-3480000.tar.gz
tar -xvf libgcrypt-1.11.0.tar.bz2
tar -xvf libgpg-error-1.50.tar.bz2
mv libgcrypt-1.11.0 libgcrypt
mv libgpg-error-1.50 libgpg-error
pushd libgpg-error/
./configure --prefix=/usr &&
make
make install
install -v -m644 -D README /usr/share/doc/libgpg-error-1.50/README
popd
pushd libgcrypt/
./configure --prefix=/usr &&
make &&
make -C doc html &&
makeinfo --html --no-split -o doc/gcrypt_nochunks.html doc/gcrypt.texi &&
makeinfo --plaintext -o doc/gcrypt.txt doc/gcrypt.texi
make install &&
install -v -dm755 /usr/share/doc/libgcrypt-1.11.0 &&
install -v -m644 README doc/{README.apichanges,fips*,libgcrypt*} \
/usr/share/doc/libgcrypt-1.11.0 &&
install -v -dm755 /usr/share/doc/libgcrypt-1.11.0/html &&
install -v -m644 doc/gcrypt.html/* \
/usr/share/doc/libgcrypt-1.11.0/html &&
install -v -m644 doc/gcrypt_nochunks.html \
/usr/share/doc/libgcrypt-1.11.0 &&
install -v -m644 doc/gcrypt.{txt,texi} \
/usr/share/doc/libgcrypt-1.11.0
popd
pushd libarchive/
./configure --prefix=/usr --disable-static &&
make
make install
popd
pushd curl/
./configure --prefix=/usr \
--disable-static \
--with-openssl \
--enable-threaded-resolver \
--with-ca-path=/etc/ssl/certs \
--without-libpsl
make
make install &&
rm -rf docs/examples/.deps &&
find docs \( -name Makefile\* -o \
-name \*.1 -o \
-name \*.3 -o \
-name CMakeLists.txt \) -delete &&
cp -v -R docs -T /usr/share/doc/curl-8.9.1
popd
pushd nghttp2/
./configure --prefix=/usr \
--disable-static \
--enable-lib-only \
--docdir=/usr/share/doc/nghttp2-1.64.0 &&
make
make install
popd
pushd libuv/
sh autogen.sh &&
./configure --prefix=/usr --disable-static &&
make
make install
popd
pushd debugedit/
./configure --prefix=/usr
make
make install
popd
pushd lua/
cat > lua.pc << "EOF"
V=5.4
R=5.4.7
prefix=/usr
INSTALL_BIN=${prefix}/bin
INSTALL_INC=${prefix}/include
INSTALL_LIB=${prefix}/lib
INSTALL_MAN=${prefix}/share/man/man1
INSTALL_LMOD=${prefix}/share/lua/${V}
INSTALL_CMOD=${prefix}/lib/lua/${V}
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: Lua
Description: An Extensible Extension Language
Version: ${R}
Requires:
Libs: -L${libdir} -llua -lm -ldl
Cflags: -I${includedir}
EOF
patch -Np1 -i ../lua-5.4.7-shared_library-1.patch
make linux
make all install
make INSTALL_TOP=/usr \
INSTALL_DATA="cp -d" \
INSTALL_MAN=/usr/share/man/man1 \
TO_LIB="liblua.so liblua.so.5.4 liblua.so.5.4.7" \
install &&
mkdir -pv /usr/share/doc/lua-5.4.7 &&
cp -v doc/*.{html,css,gif,png} /usr/share/doc/lua-5.4.7 &&
install -v -m644 -D lua.pc /usr/lib/pkgconfig/lua.pc
popd
pushd popt/
./configure --prefix=/usr --disable-static
make
make install
popd
pushd /sources/elfutils/
make -C libdw install
install -vm644 config/libdw.pc /usr/lib/pkgconfig
rm /usr/lib/libdw.a
popd
pushd sqlite-autoconf-3480000/
./configure --prefix=/usr \
--disable-static \
--enable-fts{4,5} \
CPPFLAGS="-D SQLITE_ENABLE_COLUMN_METADATA=1 \
-D SQLITE_ENABLE_UNLOCK_NOTIFY=1 \
-D SQLITE_ENABLE_DBSTAT_VTAB=1 \
-D SQLITE_SECURE_DELETE=1" &&
make
make install
popd
pushd /sources/rpm
./autogen.sh --noconfigure
./configure --prefix=/usr
make
make install
popd
popd
}
function eic.eko.install() {
echo "Not implemented"
}
function eic.signoff() {
echo 12.2-systemd-tylux > /etc/lfs-release
cat > /etc/lsb-release << "EOF"

View file

@ -9,7 +9,7 @@ Working on the guide, at [RSCC](https://rootsource.cc/Articles/tylkolinux-instal
## To do
- [ ] ~~Make a package manager~~ ~~*Nix will be used*~~ Nah fuck that we need an actual package manager
- [X] ~~Make a package manager~~ ~~*Nix will be used*~~ Nah fuck that we need an actual package manager, and we used RPM!
- [X] Try to make system bootable

View file

@ -88,4 +88,15 @@ https://www.linuxfromscratch.org/patches/lfs/12.2/expect-5.45.4-gcc14-1.patch
https://www.linuxfromscratch.org/patches/lfs/12.2/glibc-2.40-fhs-1.patch
https://www.linuxfromscratch.org/patches/lfs/12.2/kbd-2.6.4-backspace-1.patch
https://www.nano-editor.org/dist/v8/nano-8.1.tar.xz
https://dist.libuv.org/dist/v1.50.0/libuv-v1.50.0.tar.gz
https://github.com/nghttp2/nghttp2/releases/download/v1.64.0/nghttp2-1.64.0.tar.xz
https://sqlite.org/2025/sqlite-autoconf-3480000.tar.gz
https://www.gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.11.0.tar.bz2
https://www.gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.50.tar.bz2
https://ftp.osuosl.org/pub/rpm/releases/rpm-4.18.x/rpm-4.18.0.tar.bz2
https://github.com/libarchive/libarchive/releases/download/v3.7.7/libarchive-3.7.7.tar.xz
https://curl.se/download/curl-8.11.1.tar.xz
https://ftp.osuosl.org/pub/rpm/popt/releases/popt-1.x/popt-1.19.tar.gz
https://www.lua.org/ftp/lua-5.4.7.tar.gz
https://sourceware.org/pub/debugedit/0.3/debugedit-0.3.tar.xz
https://www.kernel.org/pub/software/scm/git/git-2.48.1.tar.xz