Compare commits

...

10 Commits

Author SHA1 Message Date
30540602bd before index-conflict changes 2025-11-18 19:46:36 +03:00
28ba2135ec trim + fixes 2025-09-18 12:21:01 +03:00
35fafb1ca6 config update 2025-09-04 10:26:09 +03:00
cce69cabb2 readme add 2025-09-02 21:42:31 +03:00
968216f5f2 update modules 2025-09-02 20:01:30 +03:00
bcb6dcca1d update install module 2025-08-31 16:30:55 +03:00
fee9e64314 project rename to AeroPkg 2025-08-29 17:37:46 +03:00
7942284237 updated gnu repo 2025-08-29 17:25:21 +03:00
12583471f1 upd parser 2025-08-25 00:34:04 +03:00
eeb4377bb3 updated build-script format 2025-08-23 07:04:59 +03:00
144 changed files with 2593 additions and 758 deletions

3
.gitignore vendored
View File

@ -4,10 +4,9 @@
!.cargo
!.cargo/**
!install.sh
!Readme.md
!src
!src/**
!assets
!assets/**
!tests
!tests/**

View File

@ -1,11 +1,13 @@
[package]
name='sexpkg'
name='aeropkg'
version='0.1.0'
edition='2024'
[dependencies]
clap = "4.5.39"
rayon = "1.10.0"
glob = "0.3"
chrono = { version = "0.4", features = ["serde"] }
[profile.release]
opt-level = 3

27
Readme.md Normal file
View File

@ -0,0 +1,27 @@
## Advantages
> ### Cross libc
> +0-15% performance, depending on the application
> packages use the most appropriate libc library
> ### Profile-guided optimization
> +5-20% performance, optimization for any usage scenario
> (to use in build set pgo=true in env)
## Flexibility
> ### Simple insulation
> At the repository level
> Packages with completely incompatible libraries are separated into different repositories:
> /pkg/\<repo\>
>
> Between the packages
> Packages are installed as "packages" in different folders:
> /pkg/\<repo\>/\<pkgname\>
>
> The repository combines files /pkg/\<repo\>/\<pkgname\>/{bin, lib, ...} to /pkg/\<repo\>/{bin, lib, ...}
> ### Storage optimization
> Final Assembly Philosophy:
> After the final system build, when no more packages need to be installed.
> Flexible removal of all unused files by reading time
## Easy to use
> Isolating packages makes it easy to find a configuration
> `pkg config \<pkgname\>` squirrel makes it even easier

50
assets/etc/aeropkg.md Normal file
View File

@ -0,0 +1,50 @@
Aeropkg config file
=
> # Repository
> Global settings
``` cfg *** Repository list and priority ***
gnu /pkg/gnu/aeropkg/var/gnu
musl /pkg/gnu/aeropkg/var/musl
```
> # Env
> Block name `env *** env ***`
> Global process environment
>
> Block name's `env *** env [repo] [stages] ***`
> Install subcommand environment
> Repo, stages - optional
> Valid stages: download, patch, build, config.
> `Params`
> save_source=true (default: none)
> pgo=generate|use (default: none)
> disable=true|false (default: false)
``` env *** env ***
SHELL=/bin/sh
```
``` env *** env gnu ***
save_source=true
```
> # Hooks
> Block format `sh *** hook [repo] [stages] ***`
> Execute a shell script for a specific repository
>
> Repo, stages - optional
> Valid stages: download, patch, build, config.
> # Trim
> Block format `cfg *** Trim rules ***`
> Trimming removes unused files for a specified period
>
> Relative paths with /pkg/<repo>, support wildcard
> Add ! to exclude
``` cfg *** Trim rules ***
!**
!aeropkg
```

View File

@ -1,14 +0,0 @@
Sexpkg's config file
=
``` cfg *** Repository list and priority ***
gnu /pkg/gnu/sexpkg/var/gnu
musl /pkg/gnu/sexpkg/var/musl
```
``` cfg *** Clean exclude ***
*
```
``` cfg *** Clean include ***
```

23
assets/var/gnu/7z.md Normal file
View File

@ -0,0 +1,23 @@
7z 25.01
=
https://github.com/ip7z/7zip/archive/refs/tags/25.01.tar.gz
``` sh *** build ***
cd CPP/7zip/Bundles/Alone2
make -f makefile.gcc
mkdir -p /pkg/gnu/7z/bin
cp _o/7zz /pkg/gnu/7z/bin/
ln /pkg/gnu/7z/bin/7zz /pkg/gnu/7z/bin/7z
```
``` sh *** config ***
cat > /pkg/gnu/7z/bin/unzip <<'EOF'
#!/bin/bash
if [ "$1" = "-n" ]; then
shift
fi
7z x -y "$@" >/dev/null 2>&1
[ $? -le 1 ] && exit 0 || exit 1
EOF
chmod +x /pkg/gnu/7z/bin/unzip
```

View File

@ -0,0 +1,13 @@
autoconf 2.72
=
wget https://ftp.gnu.org/gnu/autoconf/autoconf-2.72.tar.xz
``` sh *** build ***
./configure \
--prefix=/pkg/gnu/autoconf &&
make -j$(nproc) && make install &&
```
``` cfg *** run deps ***
m4
```

View File

@ -0,0 +1,13 @@
automake 1.17
=
https://ftp.gnu.org/gnu/automake/automake-1.17.tar.xz
``` sh *** build ***
./configure \
--prefix=/pkg/gnu/automake &&
make -j$(nproc) && make install
```
``` cfg *** build deps ***
make
```

14
assets/var/gnu/bash.md Normal file
View File

@ -0,0 +1,14 @@
bash 5.2.37
=
https://ftp.gnu.org/gnu/bash/bash-5.2.37.tar.gz
``` sh *** build ***
grep -q '#include <unistd.h>' lib/termcap/tparam.c || sed -i '/# include <stdlib.h>/a #include <unistd.h>' lib/termcap/tparam.c &&
./configure --prefix=/pkg/gnu/bash &&
make -j$(nproc) && make install &&
ln /pkg/gnu/bash/bin/bash /pkg/gnu/bash/bin/sh
```
``` cfg *** build deps ***
ncurses
```

11
assets/var/gnu/bc.md Normal file
View File

@ -0,0 +1,11 @@
bc 1.0.8.2
=
https://ftp.gnu.org/gnu/bc/bc-1.08.2.tar.lz
``` sh *** build ***
./configure --prefix=/pkg/gnu/bc && make -j$(nproc) && make install
```
``` cfg *** build deps ***
readline
```

View File

@ -0,0 +1,15 @@
binutils 2.44
=
https://ftp.gnu.org/gnu/binutils/binutils-2.44.tar.xz
``` sh *** build ***
./configure \
--disable-nls \
--prefix=/pkg/gnu/binutils &&
make -j$(nproc) && make install
```
``` cfg *** build deps ***
linux
```

11
assets/var/gnu/bison.md Normal file
View File

@ -0,0 +1,11 @@
bison 3.8.2
=
https://ftp.gnu.org/gnu/bison/bison-3.8.2.tar.xz
``` sh *** build ***
./configure --prefix=/pkg/gnu/bison && make -j$(nproc) && make install
```
``` cfg *** run deps ***
m4
```

7
assets/var/gnu/bzip2.md Normal file
View File

@ -0,0 +1,7 @@
bzip2
=
https://gitlab.com/federicomenaquintero/bzip2/-/archive/master/bzip2-master.tar.gz
``` sh *** build ***
meson setup .. --prefix=/pkg/gnu/bzip2 && ninja && ninja install
```

12
assets/var/gnu/cmake.md Normal file
View File

@ -0,0 +1,12 @@
cmake 4.0.2
=
https://github.com/Kitware/CMake/releases/download/v4.0.2/cmake-4.0.2.tar.gz
``` sh *** build ***
./configure --prefix=/pkg/gnu/cmake && make -j$(nproc) && make install
```
``` cfg *** build deps ***
ncurses
zlib
```

View File

@ -0,0 +1,11 @@
coreutils 9.6
=
https://ftp.gnu.org/gnu/coreutils/coreutils-9.6.tar.xz
``` sh *** build ***
FORCE_UNSAFE_CONFIGURE=1 \
./configure \
--enable-install-program=hostname \
--prefix=/pkg/gnu/coreutils &&
make -j$(nproc) && make install
```

16
assets/var/gnu/curl.md Normal file
View File

@ -0,0 +1,16 @@
curl 8.14.1
=
https://github.com/curl/curl/releases/download/curl-8_14_1/curl-8.14.1.tar.gz
``` sh *** build ***
./configure \
--prefix=/pkg/gnu/curl \
--disable-docs \
--with-openssl \
--with-ca-path=/pkg/gnu/openssl/ssl/certs/ &&
make -j$(nproc) && make install
```
``` cfg *** build deps ***
zlib
```

12
assets/var/gnu/dash.md Normal file
View File

@ -0,0 +1,12 @@
dash 0.5.12
=
http://deb.debian.org/debian/pool/main/d/dash/dash_0.5.12.orig.tar.gz
``` sh *** build ***
./configure \
--disable-static \
--enable-shared \
--prefix=/pkg/gnu/dash &&
make -j$(nproc) && make install &&
ln /pkg/gnu/dash/bin/dash /pkg/gnu/dash/bin/sh
```

12
assets/var/gnu/dbus.md Normal file
View File

@ -0,0 +1,12 @@
dbus 1.16.2
=
https://gitlab.freedesktop.org/dbus/dbus/-/archive/dbus-1.16.2/dbus-dbus-1.16.2.tar.gz
``` sh *** build ***
mkdir build; cd build &&
cmake -DCMAKE_INSTALL_PREFIX=/pkg/gnu/dbus .. && make -j$(nproc) && make install
```
``` cfg *** build deps ***
expat
```

7
assets/var/gnu/dhcp.md Normal file
View File

@ -0,0 +1,7 @@
dhcp 4.4.3
=
https://ftp.isc.org/isc/dhcp/4.4.3-P1/dhcp-4.4.3-P1.tar.gz
``` sh *** build ***
./configure --prefix=/pkg/gnu/dhcp && make -j$(nproc) && make install
```

View File

@ -0,0 +1,7 @@
diffutils 3.12
=
https://ftp.gnu.org/gnu/diffutils/diffutils-3.12.tar.xz
``` sh *** build ***
./configure --prefix=/pkg/gnu/diffutils && make -j$(nproc) && make install
```

7
assets/var/gnu/ed.md Normal file
View File

@ -0,0 +1,7 @@
ed 1.21.1
=
https://ftp.gnu.org/gnu/ed/ed-1.21.1.tar.lz
``` sh *** build ***
./configure --prefix=/pkg/gnu/ed && make -j$(nproc) && make install
```

View File

@ -0,0 +1,7 @@
elfutils 0.193
=
https://sourceware.org/elfutils/ftp/0.193/elfutils-0.193.tar.bz2
``` sh *** build ***
./configure --prefix=/pkg/gnu/elfutils --enable-libdebuginfod --enable-debuginfod && make -j$(nproc) && make install
```

10
assets/var/gnu/ell.md Normal file
View File

@ -0,0 +1,10 @@
ell
=
git://git.kernel.org/pub/scm/libs/ell/ell.git
``` sh *** build ***
libtoolize && ./bootstrap &&
./configure --prefix=/pkg/gnu/ell &&
make -j$(nproc) && make install
```

View File

@ -0,0 +1,11 @@
execline 2.9.7
=
https://skarnet.org/software/execline/execline-2.9.7.0.tar.gz
``` sh *** bulid ***
./configure --prefix=/pkg/gnu/execline --with-sysdeps=/pkg/gnu/skalibs/lib/skalibs/sysdeps && make -j$(nproc) && make install
```
``` cfg *** build deps ***
skalibs
```

7
assets/var/gnu/expat.md Normal file
View File

@ -0,0 +1,7 @@
expat 2.7.1
=
https://github.com/libexpat/libexpat/releases/download/R_2_7_1/expat-2.7.1.tar.gz
``` sh *** build ***
./configure --prefix=/pkg/gnu/expat && make -j$(nproc) && make install
```

7
assets/var/gnu/file.md Normal file
View File

@ -0,0 +1,7 @@
file 5.46
=
http://ftp.astron.com/pub/file/file-5.46.tar.gz
``` sh *** build ***
./configure --prefix=/pkg/gnu/file && make -j$(nproc) && make install
```

View File

@ -0,0 +1,9 @@
findutils 4.10.0
=
https://ftp.gnu.org/gnu/findutils/findutils-4.10.0.tar.xz
``` sh *** build ***
./configure \
--prefix=/pkg/gnu/findutils &&
make -j$(nproc) && make install
```

14
assets/var/gnu/flex.md Normal file
View File

@ -0,0 +1,14 @@
flex 2.6.4
=
https://github.com/westes/flex/archive/refs/tags/v2.6.4.tar.gz
``` sh *** build ***
./autogen.sh &&
./configure \
--prefix=/pkg/gnu/flex &&
make -j$(nproc) && make install
```
``` cfg *** run deps ***
m4
```

7
assets/var/gnu/fzf.md Normal file
View File

@ -0,0 +1,7 @@
fzf 0.65.2
=
https://github.com/junegunn/fzf/archive/refs/tags/v0.65.2.tar.gz
``` sh *** build ***
make install PREFIX=/pkg/gnu/fzf FZF_VERSION=0.65.2 FZF_REVISION=tarball
```

9
assets/var/gnu/gawk.md Normal file
View File

@ -0,0 +1,9 @@
gawk 5.3.2
=
https://ftp.gnu.org/gnu/gawk/gawk-5.3.2.tar.xz
``` sh *** build ***
./configure \
--prefix=/pkg/gnu/gawk &&
make -j$(nproc) && make install
```

34
assets/var/gnu/gcc.md Normal file
View File

@ -0,0 +1,34 @@
gcc 15.1.0
=
https://ftp.gnu.org/gnu/gcc/gcc-15.1.0/gcc-15.1.0.tar.xz
``` sh *** patch ***
rg -l "/lib64/ld-linux-x86-64.so.2" ./ | xargs sed -i 's|/lib64/ld-linux-x86-64.so.2|/pkg/gnu/lib/ld-linux-x86-64.so.2|g'
```
``` sh *** build ***
mkdir build; cd build &&
../configure \
--prefix=/pkg/gnu/gcc \
--disable-multilib \
--enable-languages=c,c++ \
--disable-werror &&
make -j$(nproc) && make install &&
ln /pkg/gnu/gcc/bin/gcc /pkg/gnu/gcc/bin/cc
```
``` cfg *** build deps ***
gmp
mpfr
mpc
isl
zstd
zlib
```
``` cfg *** run deps ***
binutils
ripgrep
sed
```

34
assets/var/gnu/gcc14.md Normal file
View File

@ -0,0 +1,34 @@
gcc14 14.3.0
=
https://ftp.gnu.org/gnu/gcc/gcc-14.3.0/gcc-14.3.0.tar.xz
``` sh *** patch ***
rg -l "/lib64/ld-linux-x86-64.so.2" ./ | xargs sed -i 's|/lib64/ld-linux-x86-64.so.2|/pkg/gnu/lib/ld-linux-x86-64.so.2|g'
```
``` sh *** build ***
mkdir build; cd build &&
../configure \
--prefix=/pkg/gnu/gcc14 \
--disable-multilib \
--enable-languages=c,c++ \
--disable-werror &&
make -j$(nproc) && make install &&
ln /pkg/gnu/gcc14/bin/gcc /pkg/gnu/gcc14/bin/cc
```
``` cfg *** build deps ***
gmp
mpfr
mpc
isl
zstd
zlib
```
``` cfg *** run deps ***
binutils
ripgrep
sed
```

View File

@ -0,0 +1,7 @@
gettext 0.25
=
https://ftp.gnu.org/gnu/gettext/gettext-0.25.tar.xz
``` sh *** build ***
./configure --prefix=/pkg/gnu/gettext && make -j$(nproc) && make install
```

27
assets/var/gnu/git.md Normal file
View File

@ -0,0 +1,27 @@
git 2.49
=
https://github.com/git/git/archive/refs/tags/v2.49.0.tar.gz
``` sh *** build ***
make configure &&
./configure \
--prefix=/pkg/gnu/git \
--without-tcltk &&
make -j$(nproc) && make install
```
``` sh *** config ***
mkdir -p /pkg/gnu/git/etc
git config --system http.sslCAInfo /pkg/gnu/openssl/ssl/cacert.pem
```
``` cfg *** build deps ***
curl
pcre2
zlib
libxcrypt
```
``` cfg *** run deps ***
perl
```

14
assets/var/gnu/glib.md Normal file
View File

@ -0,0 +1,14 @@
glib 2.85
=
https://download.gnome.org/sources/glib/2.85/glib-2.85.0.tar.xz
``` sh *** build ***
mkdir build; cd build &&
meson setup --prefix=/pkg/gnu/glib .. &&
ninja -C . && ninja install
```
``` cfg *** build deps ***
pcre2
libffi
```

View File

@ -1,18 +1,30 @@
glibc 2.41
=
https://ftp.gnu.org/gnu/libc/{name}-{version}.tar.xz
https://ftp.gnu.org/gnu/libc/glibc-2.41.tar.xz
``` sh *** build.sctipt ***
``` sh *** build ***
mkdir build; cd build &&
../configure \
--prefix=/pkg/gnu/glibc \
--with-headers=/pkg/gnu/linux/include \
--disable-multilib \
--enable-install-ldconfig &&
make -j$(nproc) && make install
--with-headers=/pkg/gnu/linux/include \
--disable-multilib \
--enable-install-ldconfig \
--prefix=/pkg/gnu/glibc &&
make -j$(nproc) && make install &&
mkdir -p /pkg/gnu/glibc/{share/i18n/charmaps,lib/locale,etc/ld.so.conf.d} &&
cp localedata/charmaps/* /pkg/gnu/glibc/share/i18n/charmaps/ &&
```
``` cfg *** dependencies ***
binutils
``` sh *** config ***
echo "include /pkg/gnu/glibc/etc/ld.so.conf.d/*.conf" > /pkg/gnu/glibc/etc/ld.so.conf &&
echo "/pkg/gnu/lib" > /pkg/gnu/glibc/etc/ld.so.conf.d/lib.conf &&
/pkg/gnu/glibc/bin/localedef -i en_US -f UTF-8 en_US.UTF-8 &&
sed -i 's|/pkg/gnu/glibc/lib64/ld-linux-x86-64.so.2|/pkg/gnu/glibc/lib/ld-linux-x86-64.so.2|g' /pkg/gnu/glibc/bin/ldd
```
``` cfg *** build deps ***
linux
```
``` cfg *** run deps ***
binutils
```

19
assets/var/gnu/gmp.md Normal file
View File

@ -0,0 +1,19 @@
gmp 6.3.0
=
https://ftp.gnu.org/gnu/gmp/gmp-6.3.0.tar.xz
``` sh *** build ***
./configure \
--enable-cxx \
--prefix=/pkg/gnu/gmp &&
make -j$(nproc) && make install
```
``` cfg *** build deps ***
linux
glibc
```
``` cfg *** run deps ***
binutils
```

15
assets/var/gnu/go-1.4.md Normal file
View File

@ -0,0 +1,15 @@
go 1.4.3
=
https://go.dev/dl/go1.4.3.src.tar.gz
``` sh *** build ***
cd src
export CC="gcc -std=gnu99"
export CGO_ENABLED=0
export GOROOT_FINAL=/pkg/gnu/go-1.4
./make.bash
mkdir -p /pkg/gnu/go-1.4/
cp -r ../bin /pkg/gnu/go-1.4
cp -r ../lib /pkg/gnu/go-1.4
cp -r ../include /pkg/gnu/go-1.4
```

16
assets/var/gnu/go.md Normal file
View File

@ -0,0 +1,16 @@
go 1.25.1
=
https://go.dev/dl/go1.25.1.linux-amd64.tar.gz
``` sh *** build ***
export GOROOT_BOOTSTRAP=/pkg/src/go/.go-bootstrap
export PKG_HOME=/pkg/gnu/go
export GOROOT_FINAL=/pkg/gnu/go
mkdir -p $GOROOT_BOOTSTRAP
cp -rPl ./* $GOROOT_BOOTSTRAP
cd src
./make.bash
cd ..
mkdir -p $PKG_HOME
cp -rPl ./* $PKG_HOME
```

14
assets/var/gnu/grep.md Normal file
View File

@ -0,0 +1,14 @@
grep 3.11
=
https://mirror.truenetwork.ru/gnu/grep/grep-3.11.tar.xz
``` sh *** build ***
./configure \
--prefix=/pkg/gnu/grep &&
make -j$(nproc) && make install
```
``` cfg *** build deps ***
pcre2
```

7
assets/var/gnu/gzip.md Normal file
View File

@ -0,0 +1,7 @@
gzip 1.13
=
https://mirror.truenetwork.ru/gnu/gzip/gzip-1.13.tar.xz
``` sh *** build ***
./configure --prefix=/pkg/gnu/gzip && make -j$(nproc) && make install
```

View File

@ -0,0 +1,7 @@
inetutils 2.6
=
https://ftp.gnu.org/gnu/inetutils/inetutils-2.6.tar.xz
``` sh *** build ***
./configure --prefix=/pkg/gnu/inetutils --with-libcap && make -j$(nproc) && make install
```

View File

@ -0,0 +1,20 @@
iproute2 6.14
=
https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/snapshot/iproute2-6.14.0.tar.gz
``` sh *** patch ***
sed -i \
-e 's|PREFIX?=/usr|PREFIX?=/pkg/gnu/iproute2/|' \
-e 's|/sbin|/pkg/gnu/iproute2/sbin|' \
-e 's|/etc/netns|/pkg/gnu/iproute2/etc/netns|' \
-e 's|/etc/iproute2|/pkg/gnu/iproute2/etc/|' \
-e 's|\$(DESTDIR)/usr/include|\$(PREFIX)/include|' Makefile
```
``` sh *** build ***
./configure --prefix=/pkg/gnu/iproute2 && make -j$(nproc) && make install && mkdir -p /pkg/gnu/iproute2/etc/netns
```
``` cfg *** run deps ***
sed
```

9
assets/var/gnu/isl.md Normal file
View File

@ -0,0 +1,9 @@
isl 0.27
=
https://libisl.sourceforge.io/isl-0.27.tar.xz
``` sh *** build ***
./configure \
--prefix=/pkg/gnu/isl &&
make -j$(nproc) && make install
```

19
assets/var/gnu/iwd.md Normal file
View File

@ -0,0 +1,19 @@
iwd
=
git://git.kernel.org/pub/scm/network/wireless/iwd.git
``` sh *** build ***
libtoolize && ./bootstrap &&
./configure \
--disable-systemd-service \
--disable-manual-pages \
--prefix=/pkg/gnu/iwd &&
make -j$(nproc) && make install
```
``` cfg *** build deps ***
dbus
readline
ncurses
ell
```

10
assets/var/gnu/json-c.md Normal file
View File

@ -0,0 +1,10 @@
json-c 0.18
=
https://github.com/json-c/json-c/archive/refs/tags/json-c-0.18-20240915.tar.gz
``` sh *** build ***
mkdir build; cd build &&
../cmake-configure -DCMAKE_POLICY_VERSION_MINIMUM=3.5 .. &&
cmake -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DCMAKE_INSTALL_PREFIX=/pkg/gnu/json-c .. && make -j$(nproc) && make install
```

17
assets/var/gnu/kmod.md Normal file
View File

@ -0,0 +1,17 @@
kmod 34.2
=
https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git/snapshot/kmod-34.2.tar.gz
``` sh *** patch ***
libtoolize &&
printf '\nnoarch_pkgconfigdir = /pkg/gnu/lib/pkgconfig\npkgconfigdir = /pkg/gnu/lib/pkgconfig\n' >> Makefile.am
```
``` sh *** build ***
./autogen.sh && ./configure --prefix=/pkg/gnu/kmod --disable-manpages && make -j$(nproc) && make install
```
``` cfg *** run deps ***
libtool
coreutils
```

11
assets/var/gnu/libbsd.md Normal file
View File

@ -0,0 +1,11 @@
libbsd 0.12.2
=
https://libbsd.freedesktop.org/releases/libbsd-0.12.2.tar.xz
``` sh *** build ***
./configure --prefix=/pkg/gnu/libbsd && make -j$(nproc) && make install
```
``` cfg *** build deps ***
libmd
```

8
assets/var/gnu/libcap.md Normal file
View File

@ -0,0 +1,8 @@
libcap 2.76
=
https://git.kernel.org/pub/scm/libs/libcap/libcap.git/snapshot/libcap-2.76.tar.gz
``` sh *** build ***
make -j$(nproc) &&
make install prefix=/pkg/gnu/libcap2 libdir=/pkg/gnu/libcap2/lib
```

View File

@ -0,0 +1,13 @@
libeconf 0.8.0
=
https://github.com/openSUSE/libeconf/archive/refs/tags/v0.8.0.tar.gz
``` sh *** build ***
mkdir build
cd build
meson setup \
--prefix=/pkg/gnu/libeconf \
--libdir=lib \
--buildtype=release \
..
```

7
assets/var/gnu/libffi.md Normal file
View File

@ -0,0 +1,7 @@
libffi 3.5.1
=
https://github.com/libffi/libffi/releases/download/v3.5.1/libffi-3.5.1.tar.gz
``` sh *** build ***
./configure --prefix=/pkg/gnu/libffi && make -j$(nproc) && make install
```

7
assets/var/gnu/libmd.md Normal file
View File

@ -0,0 +1,7 @@
libmd 1.1.0
=
https://archive.hadrons.org/software/libmd/libmd-1.1.0.tar.xz
``` sh *** build ***
./configure --prefix=/pkg/gnu/libmd && make -j$(nproc) && make install
```

11
assets/var/gnu/libpsl.md Normal file
View File

@ -0,0 +1,11 @@
libpsl 0.21.5
=
https://github.com/rockdaboot/libpsl/releases/download/0.21.5/libpsl-0.21.5.tar.gz
``` sh *** build ***
./configure --prefix=/pkg/gnu/libpsl && make -j$(nproc) && make install
```
``` cfg *** build deps ***
libunistring
```

View File

@ -0,0 +1,9 @@
libtool 2.5.4
=
https://mirror.ihost.md/gnu/libtool/libtool-2.5.4.tar.xz
``` sh *** build ***
./configure \
--prefix=/pkg/gnu/libtool &&
make -j$(nproc) && make install
```

View File

@ -0,0 +1,7 @@
libunistring 1.3
=
https://ftp.gnu.org/gnu/libunistring/libunistring-1.3.tar.xz
``` sh *** build ***
./configure --prefix=/pkg/gnu/libunistring && make -j$(nproc) && make install
```

View File

@ -0,0 +1,7 @@
libunwind 1.8.2
=
https://github.com/libunwind/libunwind/releases/download/v1.8.2/libunwind-1.8.2.tar.gz
``` sh *** build ***
./configure --prefix=/pkg/gnu/libunwind && make -j$(nproc) && make install
```

10
assets/var/gnu/libuv.md Normal file
View File

@ -0,0 +1,10 @@
libuv 1.51
=
https://github.com/libuv/libuv/archive/refs/tags/v1.51.0.tar.gz
``` sh *** build ***
./autogen.sh &&
./configure --prefix=/pkg/gnu/libuv -disable-static &&
make -j$(nproc) &&
make install
```

View File

@ -0,0 +1,7 @@
libxcrypt 4.4.38
=
https://github.com/besser82/libxcrypt/releases/download/v4.4.38/libxcrypt-4.4.38.tar.xz
``` sh *** build ***
./configure --prefix=/pkg/gnu/libxcrypt && make -j$(nproc) && make install
```

View File

@ -0,0 +1,22 @@
linux-pam 1.7.0
=
https://github.com/linux-pam/linux-pam/releases/download/v1.7.0/Linux-PAM-1.7.0.tar.xz
``` sh *** build ***
mkdir build; cd build &&
meson setup --prefix=/pkg/gnu/linux-pam .. &&
ninja && ninja install
```
``` sh *** config ***
echo "LANG=en_US.UTF-8\nLC_ALL=en_US.UTF-8" >> /pkg/gnu/linux-pam/etc/environment
```
``` cfg *** build deps ***
libxcrypt
```
``` cfg *** run deps ***
meson
ninja
```

12
assets/var/gnu/linux.md Normal file
View File

@ -0,0 +1,12 @@
linux 6.17.8
=
https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.17.8.tar.xz
``` sh *** build ***
make ARCH=x86 INSTALL_HDR_PATH=/pkg/gnu/linux headers_install
```
``` cfg *** build deps ***
glibc
gcc
```

12
assets/var/gnu/lpeg.md Normal file
View File

@ -0,0 +1,12 @@
lpeg 1.1.0
=
https://www.inf.puc-rio.br/~roberto/lpeg/lpeg-1.1.0.tar.gz
``` sh *** build ***
make \
LUADIR=/pkg/gnu/lpeg/include \
LUA_LIBDIR=/pkg/gnu/lpeg/lib \
LUA_INC=-I/pkg/gnu/lpeg/include \
CC=gcc \
CFLAGS="-O2 -Wall -shared -fPIC"
```

8
assets/var/gnu/lua.md Normal file
View File

@ -0,0 +1,8 @@
lua 5.4.8
=
https://www.lua.org/ftp/lua-5.4.8.tar.gz
``` sh *** build ***
make linux INSTALL_TOP=/pkg/gnu/lua
make install INSTALL_TOP=/pkg/gnu/lua
```

7
assets/var/gnu/luajit.md Normal file
View File

@ -0,0 +1,7 @@
luajit 2.1
=
https://luajit.org/git/luajit.git
``` sh *** build ***
make install PREFIX=/pkg/gnu/luajit
```

View File

@ -0,0 +1,13 @@
luarocks 3.12.2
=
https://github.com/luarocks/luarocks/archive/refs/tags/v3.12.2.tar.gz
``` sh *** build ***
./configure --prefix=/pkg/gnu/luarocks
make -j$(nproc)
make install
```
``` cfg *** run deps ***
7z
```

18
assets/var/gnu/luv.md Normal file
View File

@ -0,0 +1,18 @@
luv 1.51
=
https://github.com/luvit/luv/releases/download/1.51.0-1/luv-1.51.0-1.tar.gz
``` sh *** build ***
mkdir -p build; cd build
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/pkg/gnu/luv \
-DLUA_BUILD_TYPE=System \
-DBUILD_SHARED_LIBS=ON
make -j$(nproc)
make install
```
``` cfg *** build deps ***
libuv
```

7
assets/var/gnu/lz4.md Normal file
View File

@ -0,0 +1,7 @@
lz4 1.10
=
https://github.com/lz4/lz4/releases/download/v1.10.0/lz4-1.10.0.tar.gz
``` sh *** build ***
cd build/cmake && cmake . -DCMAKE_INSTALL_PREFIX=/pkg/gnu/lz4 && make -j$(nproc) && make install
```

7
assets/var/gnu/lzip.md Normal file
View File

@ -0,0 +1,7 @@
lzip 1.25
=
https://download.savannah.gnu.org/releases/lzip/lzip-1.25.tar.gz
``` sh *** build ***
./configure --prefix=/pkg/gnu/lzip && make -j$(nproc) && make install
```

9
assets/var/gnu/m4.md Normal file
View File

@ -0,0 +1,9 @@
m4 1.4.20
=
https://ftp.gnu.org/gnu/m4/m4-1.4.20.tar.xz
``` sh *** build ***
./configure \
--prefix=/pkg/gnu/m4 &&
make -j$(nproc) && make install
```

13
assets/var/gnu/make.md Normal file
View File

@ -0,0 +1,13 @@
make 4.4.1
=
https://ftp.gnu.org/gnu/make/make-4.4.1.tar.gz
``` sh *** build ***
./configure \
--prefix=/pkg/gnu/make &&
make -j$(nproc) && make install
```
``` cfg *** run deps ***
coreutils
```

11
assets/var/gnu/meson.md Normal file
View File

@ -0,0 +1,11 @@
meson 1.8.1
=
https://github.com/mesonbuild/meson/releases/download/1.8.1/meson-1.8.1.tar.gz
``` sh *** build ***
./configure --prefix=/pkg/gnu/meson && make -j$(nproc) && make install
```
``` cfg *** build deps ***
python3
```

22
assets/var/gnu/mpc.md Normal file
View File

@ -0,0 +1,22 @@
mpc 1.3.1
=
https://ftp.gnu.org/gnu/mpc/mpc-1.3.1.tar.gz
``` sh *** build ***
./configure \
--with-gmp=/pkg/gnu/gmp \
--with-mpfr=/pkg/gnu/mpfr \
--prefix=/pkg/gnu/mpc &&
make -j$(nproc) && make install
```
``` cfg *** build deps ***
linux
glibc
gmp
mpfr
```
``` cfg *** run deps ***
binutils
```

20
assets/var/gnu/mpfr.md Normal file
View File

@ -0,0 +1,20 @@
mpfr 4.2.2
=
https://ftp.gnu.org/gnu/mpfr/mpfr-4.2.2.tar.xz
``` sh *** build ***
./configure \
--with-gmp=/pkg/gnu/gmp \
--prefix=/pkg/gnu/mpfr &&
make -j$(nproc) && make install
```
``` cfg *** build deps ***
linux
glibc
gmp
```
``` cfg *** run deps ***
binutils
```

32
assets/var/gnu/ncurses.md Normal file
View File

@ -0,0 +1,32 @@
ncurses 6.5
=
https://ftp.gnu.org/gnu/ncurses/ncurses-6.5.tar.gz
``` sh *** build ***
./configure \
--prefix=/pkg/gnu/ncurses \
--without-cxx-binding \
--without-debug \
--with-termlib \
--with-shared \
--enable-pc-files \
--with-pkg-config-libdir=/pkg/gnu/ncurses/lib/pkgconfig &&
make -j$(nproc) && make install && make clean &&
./configure \
--prefix=/pkg/gnu/ncurses \
--without-cxx-binding \
--without-debug \
--without-normal \
--with-termlib \
--with-shared \
--enable-pc-files \
--with-pkg-config-libdir=/pkg/gnu/ncurses/lib/pkgconfig \
--disable-widec &&
make -j$(nproc) && make install
```
``` cfg *** build deps ***
pkg-config
```
--enable-getcap \

25
assets/var/gnu/neovim.md Normal file
View File

@ -0,0 +1,25 @@
neovim nightly
=
https://github.com/neovim/neovim/archive/refs/tags/nightly.tar.gz
``` sh *** build ***
luarocks install lpeg
pkg link gnu luarocks
mkdir -p build; cd build
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/pkg/gnu/neovim
make -j&(nproc)
make install
```
``` cfg *** build deps ***
luv
tree-sitter
unibilium
utf8proc
```
``` cfg *** run deps ***
luajit
```

11
assets/var/gnu/nettle.md Normal file
View File

@ -0,0 +1,11 @@
nettle 3.10.2
=
https://ftp.gnu.org/gnu/nettle/nettle-3.10.2.tar.gz
``` sh *** build ***
./configure --prefix=/pkg/gnu/nettle --disable-static && make -j$(nproc) && make install
```
``` cfg *** build deps ***
gmp
```

15
assets/var/gnu/ninja.md Normal file
View File

@ -0,0 +1,15 @@
ninja 1.12.1
=
https://github.com/ninja-build/ninja/archive/refs/tags/v1.12.1.tar.gz
``` sh *** build ***
./configure.py --bootstrap &&
mkdir -p /pkg/gnu/ninja/bin
cp ninja /pkg/gnu/ninja/bin
```
``` cfg *** build deps ***
python3
re2c
cmake
```

20
assets/var/gnu/openssl.md Normal file
View File

@ -0,0 +1,20 @@
openssl 3.5.0
=
https://github.com/openssl/openssl/releases/download/openssl-3.5.0/openssl-3.5.0.tar.gz
``` sh *** build ***
./Configure --prefix=/pkg/gnu/openssl --libdir=lib linux-x86_64 shared zlib-dynamic && make -j$(nproc) && make install
```
``` sh *** config ***
wget https://curl.se/ca/cacert.pem -O /pkg/gnu/openssl/ssl/cacert.pem --no-check-certificate &&
csplit -f "/pkg/gnu/openssl/ssl/certs/cert-" -b "%03d.pem" "/pkg/gnu/openssl/ssl/cacert.pem" '/-----BEGIN CERTIFICATE-----/' '{*}' &>/dev/null &&
for cert in "/pkg/gnu/openssl/ssl/certs/"cert-*.pem; do
hash=$(openssl x509 -hash -noout -in "$cert")
mv "$cert" "/pkg/gnu/openssl/ssl/certs/$hash.$(find "/pkg/gnu/openssl/ssl/certs/" -maxdepth 1 -type f -name "$hash.*" | wc -l)"
done
```
``` cfg *** run deps ***
wget
```

16
assets/var/gnu/pcre2.md Normal file
View File

@ -0,0 +1,16 @@
pcre2 10.45
=
https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.45/pcre2-10.45.tar.gz
``` sh *** build ***
./configure \
--prefix=/pkg/gnu/pcre2 &&
make -j$(nproc) && make install
```
``` cfg *** run deps ***
autoconf
automake
make
libtool
```

6
assets/var/gnu/perl.md Normal file
View File

@ -0,0 +1,6 @@
perl 5.40.2
=
https://github.com/Perl/perl5/archive/refs/tags/v5.40.2.tar.gz
cd /source/perl5-5.40.2 && mkdir -p /pkg/gnu/perl5 && ./Configure -desA -Dprefix=/pkg/gnu/perl5 && make -j$(nproc) && make install #PERL5#################

View File

@ -0,0 +1,19 @@
pkg-config 0.29.2
=
https://pkg-config.freedesktop.org/releases/pkg-config-0.29.2.tar.gz
``` sh *** build ***
./configure \
--prefix=/pkg/gnu/pkg-config \
--with-pc-path=/pkg/gnu/lib/pkgconfig &&
make -j$(nproc) && make install &&
echo "/pkg/gnu/pkg-config/share/aclocal" >> /pkg/gnu/automake/share/aclocal/dirlist
```
``` cfg *** build deps ***
glib
```
``` cfg *** run deps ***
coreutils
```

19
assets/var/gnu/python3.md Normal file
View File

@ -0,0 +1,19 @@
python3 3.13.4
=
https://github.com/python/cpython/archive/refs/tags/v3.13.4.tar.gz
``` sh *** build ***
CFLAGS="-I/pkg/gnu/include/ncurses" ./configure --prefix=/pkg/gnu/python3 --enable-optimizations && make -j$(nproc) && make install
```
``` sh *** config ***
pip3 install setuptools
```
``` cfg *** build deps ***
ncurses
zlib
readline
sqlite
libxcrypt
```

11
assets/var/gnu/rdfind.md Normal file
View File

@ -0,0 +1,11 @@
rdfind 1.7.0
=
https://github.com/pauldreik/rdfind/archive/refs/tags/releases/1.7.0.tar.gz
``` sh *** build ***
./bootstrap.sh && ./configure --prefix=/pkg/gnu/rdfind && make -j$(nproc) && make install
```
``` cfg *** build deps ***
nettle
```

7
assets/var/gnu/re2c.md Normal file
View File

@ -0,0 +1,7 @@
re2c 4.2
=
https://github.com/skvadrik/re2c/releases/download/4.2/re2c-4.2.tar.xz
``` sh *** build ***
./configure --prefix=/pkg/gnu/re2c && make -j$(nproc) && make install
```

View File

@ -0,0 +1,30 @@
readline 8.3
=
https://ftp.gnu.org/gnu/readline/readline-8.3.tar.gz
``` sh *** build ***
export LIBS="-ltinfo"
./configure \
--prefix=/pkg/gnu/readline \
--with-curses \
--with-shared-termcap-library=tinfo &&
make -j$(nproc) && make install
sed -i 's/Requires\.private: termcap/Requires.private: tinfo/' /pkg/gnu/readline/lib/pkgconfig/readline.pc
```
``` cfg *** build deps ***
ncurses
```
Современные программы
Почти все современные программы (включая bash, gdb, iwd, python и т.д.) используют readline → ncurses → terminfo.
Лишь очень старые или экзотические системы (например, embedded без ncurses) всё ещё полагаются на termcap.
Если добавлять
export CPPFLAGS="-I/pkg/gnu/ncurses/include"
export LDFLAGS="-L/pkg/gnu/ncurses/lib -ltinfo"
export LIBS="-ltinfo"
То .pc файл конфигурацию наебнёт но из-за чего именно хуй его знает
если не добавлять то он не хавает в зависимость это
мб чёто определённое надо выдрочить хз

View File

@ -0,0 +1,9 @@
ripgrep 14.1.1
=
https://github.com/BurntSushi/ripgrep/archive/refs/tags/14.1.1.tar.gz
``` sh *** build ***
cargo build --release &&
mkdir -p /pkg/gnu/ripgrep/bin &&
cp target/release/rg /pkg/gnu/ripgrep/bin/
```

7
assets/var/gnu/rsync.md Normal file
View File

@ -0,0 +1,7 @@
rsync 3.4.1
=
https://github.com/RsyncProject/rsync/releases/download/v3.4.1/rsync-3.4.1.tar.gz
``` sh *** build ***
./configure --prefix=/pkg/gnu/rsync && make -j$(nproc) && make install
```

7
assets/var/gnu/rustup.md Normal file
View File

@ -0,0 +1,7 @@
rust
=
``` sh *** build ***
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | \
RUSTUP_HOME=/pkg/gnu/rustup CARGO_HOME=/pkg/gnu/cargo sh -s -- --no-modify-path -y --default-toolchain stable --profile default
```

View File

@ -0,0 +1,13 @@
s6-linux-utils 2.6.3
=
https://skarnet.org/software/s6-linux-utils/s6-linux-utils-2.6.3.0.tar.gz
``` sh *** build ***
./configure --prefix=/pkg/gnu/s6-linux-utils --with-sysdeps=/pkg/gnu/skalibs/lib/skalibs/sysdeps &&
make -j$(nproc) && make install
```
``` cfg *** build deps ***
skalibs
```

17
assets/var/gnu/s6.md Normal file
View File

@ -0,0 +1,17 @@
s6 2.13.2
=
https://skarnet.org/software/s6/s6-2.13.2.0.tar.gz
``` sh *** build ***
./configure --prefix=/pkg/gnu/s6 --with-sysdeps=/pkg/gnu/skalibs/lib/skalibs/sysdeps &&
make -j$(nproc) && make install && mkdir -p /pkg/gnu/s6/etc/service
```
``` sh *** config ***
echo '#!/pkg/gnu/bin/execlineb -P\n\n/pkg/gnu/bin/export PATH /bin:/pkg/musl/bin:/pkg/musl/sbin:/pkg/gnu/bin:/pkg/gnu/sbin\n/pkg/gnu/bin/exec s6-svscan /pkg/gnu/s6/etc/service/current' > /pkg/gnu/s6/bin/s6-init
```
``` cfg *** build deps ***
skalibs
aero-utils
```

9
assets/var/gnu/sed.md Normal file
View File

@ -0,0 +1,9 @@
sed 4.9
=
https://mirror.ihost.md/gnu/sed/sed-4.9.tar.xz
``` sh *** build ***
./configure \
--prefix=/pkg/gnu/sed &&
make -j$(nproc) && make install
```

17
assets/var/gnu/shadow.md Normal file
View File

@ -0,0 +1,17 @@
shadow 4.17.4
=
https://github.com/shadow-maint/shadow/releases/download/4.17.4/shadow-4.17.4.tar.xz
``` sh *** build ***
./configure --prefix=/pkg/gnu/shadow && make -j$(nproc) && make install
```
``` sh *** config ***
chmod u+s /pkg/gnu/bin/su
echo '/bin/bash\n/bin/zsh' > /etc/shells
```
``` cfg *** build deps ***
linux-pam
libbsd
```

View File

@ -0,0 +1,7 @@
skalibs 2.14.4
=
https://skarnet.org/software/skalibs/skalibs-2.14.4.0.tar.gz
``` sh *** build ***
./configure --prefix=/pkg/gnu/skalibs && make -j$(nproc) && make install
```

13
assets/var/gnu/sqlite.md Normal file
View File

@ -0,0 +1,13 @@
sqlite 3.50.4
=
https://www.sqlite.org/2025/sqlite-autoconf-3500400.tar.gz
```
./configure \
--prefix=/pkg/gnu/sqlite &&
make -j$(nproc) && make install
```
``` cfg *** build deps ***
zlib
```

11
assets/var/gnu/strace.md Normal file
View File

@ -0,0 +1,11 @@
strace 6.15
=
https://github.com/strace/strace/releases/download/v6.15/strace-6.15.tar.xz
``` sh *** build ***
./configure --prefix=/pkg/gnu/strace --enable-mpers=no && make -j$(nproc) && make install
```
``` cfg *** build deps ***
libunwind
```

8
assets/var/gnu/tar.md Normal file
View File

@ -0,0 +1,8 @@
tar 1.35
=
https://ftp.gnu.org/gnu/tar/tar-1.35.tar.xz
``` sh *** build ***
FORCE_UNSAFE_CONFIGURE=1 \
./configure --prefix=/pkg/gnu/tar && make -j$(nproc) && make install
```

12
assets/var/gnu/texinfo.md Normal file
View File

@ -0,0 +1,12 @@
texinfo 7.2
=
https://ftp.gnu.org/gnu/texinfo/texinfo-7.2.tar.xz
``` sh *** build ***
./configure --prefix=/pkg/gnu/texinfo && make -j$(nproc) && make install
```
``` cfg *** build deps ***
ncurses
perl
```

View File

@ -0,0 +1,8 @@
tree-sitter 0.25.10
=
https://github.com/tree-sitter/tree-sitter/archive/refs/tags/v0.25.10.tar.gz
``` sh *** build ***
make -j$(nproc)
make install PREFIX=/pkg/gnu/tree-sitter
```

9
assets/var/gnu/tzdb.md Normal file
View File

@ -0,0 +1,9 @@
tzdb 2025
=
https://data.iana.org/time-zones/releases/tzdb-2025b.tar.lz
``` sh *** build ***
make CC=gcc -j$(nproc) && make DESTDIR=/pkg/gnu/tzdb install &&
mv /pkg/gnu/tzdb/usr/* /pkg/gnu/tzdb/ &&
rm -r /pkg/gnu/tzdb/usr/
```

View File

@ -0,0 +1,8 @@
unibilium 2.0.0
=
https://github.com/mauke/unibilium/archive/refs/tags/v2.0.0.tar.gz
``` sh *** build ***
make -j$(nproc)
make install PREFIX=/pkg/gnu/unibilium
```

View File

@ -0,0 +1,12 @@
utf8proc 2.11.0
=
https://github.com/JuliaStrings/utf8proc/archive/refs/tags/v2.11.0.tar.gz
``` sh *** patch ***
sed -i "s|prefix=/usr/local|prefix=/pkg/gnu/utf8proc|" Makefile
```
``` sh *** build ***
make -j$(nproc)
make install
```

Some files were not shown because too many files have changed in this diff Show More