From 9ae0e33fdcac4a032afa6c356b706042a495b014 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?s=C3=A0m?= Date: Sat, 1 Feb 2025 19:06:35 +0100 Subject: [PATCH 1/6] Starting work on RPM compilation --- Einrichter-in-chroot.sh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Einrichter-in-chroot.sh b/Einrichter-in-chroot.sh index 2766851..3b393b2 100755 --- a/Einrichter-in-chroot.sh +++ b/Einrichter-in-chroot.sh @@ -53,6 +53,8 @@ eic.config.create.shells - creates the simple but necessary /etc/shells file eic.config.systemd.disableScreenClearing - 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 " } @@ -1927,6 +1929,19 @@ EOF popd } +function eic.rpm.install() { + # Enter /sources/ directory + pushd /sources/ + # Extract needed packages for compiling RPM + tar -xvf rpm*.bz + mv rpm-4.20.0 rpm + tar -xvf +} + +function eic.eko.install() { + +} + function eic.signoff() { echo 12.2-systemd-tylux > /etc/lfs-release cat > /etc/lsb-release << "EOF" From 738d504a19c3e16da94d3b3d1bf7c1ca8b9d4f94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?s=C3=A0m?= Date: Sat, 1 Feb 2025 21:27:59 +0100 Subject: [PATCH 2/6] Worked on it a bit more --- Einrichter-in-chroot.sh | 74 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 72 insertions(+), 2 deletions(-) diff --git a/Einrichter-in-chroot.sh b/Einrichter-in-chroot.sh index 3b393b2..72bca7e 100755 --- a/Einrichter-in-chroot.sh +++ b/Einrichter-in-chroot.sh @@ -1935,11 +1935,81 @@ function eic.rpm.install() { # Extract needed packages for compiling RPM tar -xvf rpm*.bz mv rpm-4.20.0 rpm - tar -xvf + tar -xvf cmake*.tar.gz + mv cmake-3.31.5 cmake + tar -xvf debugedit*.tar.xz + mv debugedit-0.3 debugedit + tar -xvf lua*.gz + mv lua-5.4.7 lua + pushd cmake/ + sed -i '/"lib64"/s/64//' Modules/GNUInstallDirs.cmake + ./bootstrap --prefix=/usr \ + --system-libs \ + --mandir=/share/man \ + --no-system-jsoncpp \ + --no-system-cppdap \ + --no-system-librhash \ + --docdir=/share/doc/cmake-3.31.5 + 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 + popd +} + +function eic.rpm.install.fr() { + pushd /sources/rpm + mkdir _build + cd _build + cmake .. + make + make install + popd } function eic.eko.install() { - + echo "Not implemented" } function eic.signoff() { From b0186c3810d398371fa3e86172809a3eafe6780e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?s=C3=A0m?= Date: Sun, 2 Feb 2025 16:47:20 +0100 Subject: [PATCH 3/6] awawawaw --- Einrichter-in-chroot.sh | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/Einrichter-in-chroot.sh b/Einrichter-in-chroot.sh index 72bca7e..1439647 100755 --- a/Einrichter-in-chroot.sh +++ b/Einrichter-in-chroot.sh @@ -1941,6 +1941,36 @@ function eic.rpm.install() { 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 + 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 cmake/ sed -i '/"lib64"/s/64//' Modules/GNUInstallDirs.cmake ./bootstrap --prefix=/usr \ @@ -1995,6 +2025,11 @@ EOF install -v -m644 -D lua.pc /usr/lib/pkgconfig/lua.pc popd + pushd popt/ + ./configure --prefix=/usr --disable-static + make + make install + popd popd } From b0c00208786439882a905fe8bd9d35def8e96c90 Mon Sep 17 00:00:00 2001 From: kevadesu Date: Mon, 3 Feb 2025 01:53:41 +0100 Subject: [PATCH 4/6] IT WORKSSS --- Einrichter-in-chroot.sh | 100 ++++++++++++++++++++++++++++++++++++---- wget-list-systemd | 5 ++ 2 files changed, 96 insertions(+), 9 deletions(-) diff --git a/Einrichter-in-chroot.sh b/Einrichter-in-chroot.sh index 1439647..e6c3bde 100755 --- a/Einrichter-in-chroot.sh +++ b/Einrichter-in-chroot.sh @@ -379,7 +379,7 @@ EOF 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 @@ -1933,8 +1933,6 @@ function eic.rpm.install() { # Enter /sources/ directory pushd /sources/ # Extract needed packages for compiling RPM - tar -xvf rpm*.bz - mv rpm-4.20.0 rpm tar -xvf cmake*.tar.gz mv cmake-3.31.5 cmake tar -xvf debugedit*.tar.xz @@ -1947,6 +1945,11 @@ function eic.rpm.install() { 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 pushd libarchive/ ./configure --prefix=/usr --disable-static && make @@ -1971,6 +1974,20 @@ function eic.rpm.install() { 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 cmake/ sed -i '/"lib64"/s/64//' Modules/GNUInstallDirs.cmake ./bootstrap --prefix=/usr \ @@ -2030,16 +2047,81 @@ EOF 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 popd } function eic.rpm.install.fr() { - pushd /sources/rpm - mkdir _build - cd _build - cmake .. - make - make install + pushd /sources + bunzip2 -v -v rpm-4.20.0.tar.bz2 + tar -xvf rpm*.tar + mv rpm-4.20.0 rpm + pushd /sources/rpm + mkdir _build + cd _build + cmake -D WITH_AUDIT:BOOL=OFF -D WITH_SELINUX:BOOL=OFF -D WITH_SEQUOIA:BOOL=OFF -D WITH_OPENSSL:BOOL=ON -D ENABLE_TESTSUITE:BOOL=OFF .. + make + make install + popd + popd +} + +function eic.rpm.install.fr2() { + pushd /sources + bunzip2 -v -v rpm-4.18.0.tar.bz2 + tar -xvf rpm-4.18.0*.tar + 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 /sources/rpm-4.18.0 + ./autogen.sh --noconfigure + ./configure --prefix=/usr + make + make install + popd popd } diff --git a/wget-list-systemd b/wget-list-systemd index 557f7a3..a5dcf46 100644 --- a/wget-list-systemd +++ b/wget-list-systemd @@ -88,3 +88,8 @@ 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 From e8a8727ef5e93a5da2669a3a5bb41780116470f4 Mon Sep 17 00:00:00 2001 From: kevadesu Date: Mon, 3 Feb 2025 02:05:55 +0100 Subject: [PATCH 5/6] Finally finished RPM Successfully edited the script to include the RPM building option. This in summary pretty much removes unnecessary code, and updates the wget list accordingly. --- Einrichter-in-chroot.sh | 99 ++++++++++++++--------------------------- wget-list-systemd | 6 +++ 2 files changed, 39 insertions(+), 66 deletions(-) diff --git a/Einrichter-in-chroot.sh b/Einrichter-in-chroot.sh index e6c3bde..08b1ae0 100755 --- a/Einrichter-in-chroot.sh +++ b/Einrichter-in-chroot.sh @@ -1933,8 +1933,9 @@ function eic.rpm.install() { # Enter /sources/ directory pushd /sources/ # Extract needed packages for compiling RPM - tar -xvf cmake*.tar.gz - mv cmake-3.31.5 cmake + 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 @@ -1950,6 +1951,36 @@ function eic.rpm.install() { 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 @@ -1988,18 +2019,6 @@ function eic.rpm.install() { make make install popd - pushd cmake/ - sed -i '/"lib64"/s/64//' Modules/GNUInstallDirs.cmake - ./bootstrap --prefix=/usr \ - --system-libs \ - --mandir=/share/man \ - --no-system-jsoncpp \ - --no-system-cppdap \ - --no-system-librhash \ - --docdir=/share/doc/cmake-3.31.5 - make - make install - popd pushd debugedit/ ./configure --prefix=/usr make @@ -2064,59 +2083,7 @@ EOF make make install popd - popd -} - -function eic.rpm.install.fr() { - pushd /sources - bunzip2 -v -v rpm-4.20.0.tar.bz2 - tar -xvf rpm*.tar - mv rpm-4.20.0 rpm pushd /sources/rpm - mkdir _build - cd _build - cmake -D WITH_AUDIT:BOOL=OFF -D WITH_SELINUX:BOOL=OFF -D WITH_SEQUOIA:BOOL=OFF -D WITH_OPENSSL:BOOL=ON -D ENABLE_TESTSUITE:BOOL=OFF .. - make - make install - popd - popd -} - -function eic.rpm.install.fr2() { - pushd /sources - bunzip2 -v -v rpm-4.18.0.tar.bz2 - tar -xvf rpm-4.18.0*.tar - 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 /sources/rpm-4.18.0 ./autogen.sh --noconfigure ./configure --prefix=/usr make diff --git a/wget-list-systemd b/wget-list-systemd index a5dcf46..bb3709a 100644 --- a/wget-list-systemd +++ b/wget-list-systemd @@ -93,3 +93,9 @@ https://github.com/nghttp2/nghttp2/releases/download/v1.64.0/nghttp2-1.64.0.tar. 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 From 1648a4f841986abcd5eddd6d916116a6d54e8000 Mon Sep 17 00:00:00 2001 From: Samantha Londrois <161859153+nek0zyx@users.noreply.github.com> Date: Mon, 3 Feb 2025 02:13:03 +0100 Subject: [PATCH 6/6] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9a68be1..6884fd9 100644 --- a/README.md +++ b/README.md @@ -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