├── .github ├── dependabot.yml └── workflows │ ├── check.yml │ └── nightly.yml ├── .gitignore ├── GNUmakefile ├── LICENSE ├── README.md ├── base-files ├── bin ├── etc │ ├── group │ ├── hostname │ ├── passwd │ ├── profile │ └── shells ├── lib ├── lib64 ├── root │ ├── .keep │ ├── hello.c │ ├── hello.cc │ └── hello.v ├── run │ └── .keep ├── sbin ├── tmp │ └── .keep ├── usr │ ├── lib64 │ └── sbin └── var │ ├── log │ └── .keep │ └── run ├── bochsrc ├── build-support ├── CMakeToolchain-x86_64.txt ├── bash │ ├── bash.bash_logout │ └── bash.bashrc ├── checklibs.sh ├── checklibtool.sh ├── checksoname.sh ├── checkstatic.sh ├── checkstripped.sh ├── checksysroot.sh ├── cmake-host │ └── Platform │ │ └── Vinix.cmake ├── config.guess ├── config.sub ├── cross-llvm-config ├── cross_file-x86_64.txt ├── gcc │ ├── c89 │ └── c99 ├── limine.conf ├── makeiso.sh ├── nano │ └── nanorc ├── v │ └── v.c.patch └── xorg-server │ └── xorg.conf ├── host-recipes ├── binutils ├── file ├── gcc ├── libgcc-binaries ├── limine ├── pkg-config └── v ├── init ├── .gitignore ├── main.v └── v.mod ├── jinx-config ├── jinx-config-debug ├── kernel ├── .gitignore ├── GNUmakefile ├── asm │ └── int_thunks_asm.S ├── c │ ├── ctype.h │ ├── inttypes.h │ ├── locale.h │ ├── memory.c │ ├── printf.c │ ├── pthread.h │ ├── stdio.h │ ├── stdlib.h │ ├── string.h │ ├── symbols.h │ ├── sys │ │ ├── time.h │ │ ├── types.h │ │ └── wait.h │ └── unistd.h ├── get-deps ├── linker.ld ├── main.v ├── modules │ ├── acpi │ │ ├── acpi.v │ │ └── madt.v │ ├── bitmap │ │ └── bitmap.v │ ├── block │ │ └── partition │ │ │ └── partition.v │ ├── dev │ │ ├── ahci │ │ │ └── ahci.v │ │ ├── ata │ │ │ └── ata.v │ │ ├── console │ │ │ └── console.v │ │ ├── fbdev │ │ │ ├── api │ │ │ │ ├── driver.v │ │ │ │ └── linux_uapi.v │ │ │ ├── fbdev.v │ │ │ └── simple │ │ │ │ └── simple.v │ │ ├── hda │ │ │ ├── hda.v │ │ │ ├── oss │ │ │ │ ├── dsp.v │ │ │ │ └── mixer.v │ │ │ └── stream.v │ │ ├── mouse │ │ │ └── mouse.v │ │ ├── nvme │ │ │ └── nvme.v │ │ ├── random │ │ │ └── random.v │ │ ├── serial │ │ │ └── serial.v │ │ └── streams │ │ │ └── streams.v │ ├── elf │ │ └── elf.v │ ├── errno │ │ └── errno.v │ ├── event │ │ ├── event.v │ │ └── eventstruct │ │ │ └── eventstruct.v │ ├── file │ │ └── file.v │ ├── flanterm │ │ └── flanterm.v │ ├── fs │ │ ├── devtmpfs.v │ │ ├── ext2 │ │ │ └── ext2.v │ │ ├── inotify.v │ │ ├── tmpfs.v │ │ └── vfs.v │ ├── futex │ │ └── futex.v │ ├── initramfs │ │ └── initramfs.v │ ├── ioctl │ │ ├── common.v │ │ ├── fbio.v │ │ └── term.v │ ├── katomic │ │ └── katomic.v │ ├── klock │ │ └── klock.v │ ├── kprint │ │ └── kprint.v │ ├── lib │ │ ├── bit.v │ │ ├── math.v │ │ ├── panic.v │ │ └── stubs │ │ │ ├── file.v │ │ │ ├── misc.v │ │ │ ├── pthread.v │ │ │ └── string.v │ ├── limine │ │ └── limine.v │ ├── memory │ │ ├── mmap │ │ │ └── mmap.v │ │ ├── physical.v │ │ └── virtual.v │ ├── net │ │ └── hostname.v │ ├── pci │ │ ├── device.v │ │ └── scan.v │ ├── pipe │ │ └── pipe.v │ ├── proc │ │ └── proc.v │ ├── resource │ │ └── resource.v │ ├── sched │ │ └── sched.v │ ├── socket │ │ ├── public │ │ │ └── public.v │ │ ├── socket.v │ │ └── unix │ │ │ └── unix.v │ ├── stat │ │ └── stat.v │ ├── syscall │ │ ├── syscall.v │ │ └── table │ │ │ └── syscall_table.v │ ├── term │ │ └── term.v │ ├── termios │ │ └── termios.v │ ├── time │ │ ├── pit.v │ │ ├── sys │ │ │ └── syscalls.v │ │ └── time.v │ ├── uacpi │ │ └── uacpi.v │ ├── userland │ │ ├── signalfd.v │ │ └── userland.v │ └── x86 │ │ ├── apic │ │ └── apic.v │ │ ├── cpu │ │ ├── cpu.v │ │ ├── initialisation │ │ │ └── initialisation.v │ │ └── local │ │ │ └── local.v │ │ ├── gdt │ │ └── gdt.v │ │ ├── hpet │ │ └── hpet.v │ │ ├── idt │ │ └── idt.v │ │ ├── isr │ │ └── isr.v │ │ ├── kio │ │ └── kio.v │ │ ├── msr │ │ └── msr.v │ │ └── smp │ │ └── smp.v └── v.mod ├── patches ├── ace-of-penguins │ └── jinx-working-patch.patch ├── bash │ └── jinx-working-patch.patch ├── binutils │ └── jinx-working-patch.patch ├── cmatrix │ └── jinx-working-patch.patch ├── coreutils │ └── jinx-working-patch.patch ├── gcc-host │ └── jinx-working-patch.patch ├── gdbm │ └── jinx-working-patch.patch ├── gettext │ └── jinx-working-patch.patch ├── git │ └── jinx-working-patch.patch ├── glib │ └── jinx-working-patch.patch ├── grep │ └── jinx-working-patch.patch ├── libjpeg-turbo │ └── jinx-working-patch.patch ├── libpsl │ └── jinx-working-patch.patch ├── libxcb │ └── jinx-working-patch.patch ├── libzip │ └── jinx-working-patch.patch ├── llvm │ └── jinx-working-patch.patch ├── m4 │ └── jinx-working-patch.patch ├── mesa-demos │ └── jinx-working-patch.patch ├── mesa │ └── jinx-working-patch.patch ├── ncurses │ └── jinx-working-patch.patch ├── openssl │ └── jinx-working-patch.patch ├── python │ └── jinx-working-patch.patch ├── readline │ └── jinx-working-patch.patch ├── rsync │ └── jinx-working-patch.patch ├── sdl2-compat │ └── jinx-working-patch.patch ├── xbps │ └── jinx-working-patch.patch ├── xf86-input-keyboard │ └── jinx-working-patch.patch ├── xf86-input-mouse │ └── jinx-working-patch.patch ├── xf86-video-fbdev │ └── jinx-working-patch.patch ├── xorg-proto │ └── jinx-working-patch.patch ├── xorg-server │ └── jinx-working-patch.patch ├── xorg-xinit │ └── jinx-working-patch.patch ├── xorriso │ └── jinx-working-patch.patch └── zlib │ └── jinx-working-patch.patch ├── recipes ├── ace-of-penguins ├── at-spi2-core ├── autoconf-archive ├── base ├── base-files ├── bash ├── bash-completion ├── bc ├── binutils ├── bzip2 ├── cairo ├── cglm ├── cmatrix ├── core-libs ├── coreutils ├── curl ├── dbus ├── diffutils ├── file ├── findutils ├── fontconfig ├── freeglut ├── freestnd-c-hdrs ├── freestnd-cxx-hdrs ├── freetype2 ├── fribidi ├── frigg ├── gawk ├── gcc ├── gdbm ├── gdk-pixbuf ├── gettext ├── git ├── glib ├── glu ├── gmp ├── graphite2 ├── grep ├── groff ├── gsettings-desktop-schemas ├── gtk+-3 ├── gzip ├── harfbuzz ├── hicolor-icon-theme ├── icu ├── init ├── kernel ├── less ├── libarchive ├── libatomic ├── libepoxy ├── libexpat ├── libffi ├── libfontenc ├── libgcc ├── libgcrypt ├── libgpg-error ├── libice ├── libiconv ├── libidn2 ├── libintl ├── libjpeg-turbo ├── libpipeline ├── libpng ├── libpsl ├── libsm ├── libstdc++ ├── libtiff ├── libtool ├── libunistring ├── libwebp ├── libx11 ├── libxau ├── libxaw ├── libxcb ├── libxcrypt ├── libxcursor ├── libxcvt ├── libxdamage ├── libxdmcp ├── libxext ├── libxfixes ├── libxfont2 ├── libxft ├── libxi ├── libxinerama ├── libxkbcommon ├── libxkbfile ├── libxml ├── libxmu ├── libxpm ├── libxrandr ├── libxrender ├── libxshmfence ├── libxt ├── libxtst ├── libxv ├── libxxf86vm ├── libzip ├── limine ├── llvm ├── lua ├── lz4 ├── m4 ├── make ├── man-db ├── mate-icon-theme ├── mesa ├── mesa-demos ├── mlibc ├── mlibc-headers ├── mpc ├── mpfr ├── nano ├── nasm ├── ncurses ├── nettle ├── nyancat ├── openssh ├── openssl ├── pango ├── patch ├── pcre2 ├── pixman ├── pkg-config ├── popt ├── python ├── readline ├── rsync ├── sdl2-compat ├── sdl3 ├── sed ├── sqlite ├── taisei ├── tar ├── texinfo ├── tinyvvm ├── tree ├── ttf-dejavu ├── ttf-liberation ├── tzdata ├── util-vinix ├── v ├── xbitmaps ├── xbps ├── xcb-proto ├── xcb-util ├── xf86-input-keyboard ├── xf86-input-mouse ├── xf86-video-fbdev ├── xkeyboard-config ├── xorg-font-util ├── xorg-proto ├── xorg-server ├── xorg-twm ├── xorg-util-macros ├── xorg-xauth ├── xorg-xclock ├── xorg-xeyes ├── xorg-xfontsel ├── xorg-xinit ├── xorg-xkbcomp ├── xorg-xkbutils ├── xorg-xlsfonts ├── xorg-xmessage ├── xorg-xmodmap ├── xorg-xprop ├── xorg-xrandr ├── xorg-xrdb ├── xorg-xset ├── xorg-xsetroot ├── xorg-xwininfo ├── xorriso ├── xtrans ├── xxhash ├── xz ├── zlib └── zstd ├── screenshot0.png ├── screenshot1.png ├── source-recipes ├── gcc-host └── libgcc-binaries └── util-vinix ├── .gitignore ├── GNUmakefile ├── chsh ├── main.v └── v.mod ├── fetch ├── main.v └── v.mod ├── lscpu ├── cpu_x64.v ├── main.v └── v.mod └── mount ├── main.v └── v.mod /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: github-actions 4 | directory: "/" 5 | schedule: 6 | interval: "daily" 7 | target-branch: main 8 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /jinx 2 | /builds 3 | /host-builds 4 | /host-pkgs 5 | /pkgs 6 | /sources 7 | /sysroot 8 | /iso_root 9 | /vinix.iso 10 | /initramfs.tar 11 | /.vscode 12 | /.jinx-cache 13 | /ovmf 14 | *.hdd 15 | *.elf 16 | *.bin 17 | *.a 18 | *.o 19 | -------------------------------------------------------------------------------- /base-files/bin: -------------------------------------------------------------------------------- 1 | usr/bin -------------------------------------------------------------------------------- /base-files/etc/group: -------------------------------------------------------------------------------- 1 | root:x:0: 2 | bin:x:1:daemon 3 | tty:x:5: 4 | disk:x:6: 5 | daemon:x:8: 6 | lp:x:9: 7 | kmem:x:15: 8 | lpadmin:x:19: 9 | dialout:x:20: 10 | cdrom:x:24: 11 | tape:x:26: 12 | audio:x:29: 13 | video:x:44: 14 | nogroup:x:99: 15 | input:x:108: 16 | -------------------------------------------------------------------------------- /base-files/etc/hostname: -------------------------------------------------------------------------------- 1 | vinix 2 | -------------------------------------------------------------------------------- /base-files/etc/passwd: -------------------------------------------------------------------------------- 1 | root:x:0:0::/root:/bin/bash 2 | -------------------------------------------------------------------------------- /base-files/etc/profile: -------------------------------------------------------------------------------- 1 | # /etc/profile 2 | 3 | # This file from Arch Linux. 4 | 5 | # Append "$1" to $PATH when not already in. 6 | # This function API is accessible to scripts in /etc/profile.d 7 | append_path () { 8 | case ":$PATH:" in 9 | *:"$1":*) 10 | ;; 11 | *) 12 | PATH="${PATH:+$PATH:}$1" 13 | esac 14 | } 15 | 16 | # Append our default paths 17 | append_path '/usr/local/sbin' 18 | append_path '/usr/local/bin' 19 | append_path '/usr/bin' 20 | 21 | # Force PATH to be environment 22 | export PATH 23 | 24 | # Load profiles from /etc/profile.d 25 | if test -d /etc/profile.d/; then 26 | for profile in /etc/profile.d/*.sh; do 27 | test -r "$profile" && . "$profile" 28 | done 29 | unset profile 30 | fi 31 | 32 | # Unload our profile API functions 33 | unset -f append_path 34 | 35 | # Source global bash config, when interactive but not posix or sh mode 36 | if test "$BASH" &&\ 37 | test "$PS1" &&\ 38 | test -z "$POSIXLY_CORRECT" &&\ 39 | test "${0#-}" != sh &&\ 40 | test -r /etc/bash.bashrc 41 | then 42 | . /etc/bash.bashrc 43 | fi 44 | 45 | # Termcap is outdated, old, and crusty, kill it. 46 | unset TERMCAP 47 | 48 | # Man is much better than us at figuring this out 49 | unset MANPATH 50 | -------------------------------------------------------------------------------- /base-files/etc/shells: -------------------------------------------------------------------------------- 1 | /bin/sh 2 | /bin/bash 3 | -------------------------------------------------------------------------------- /base-files/lib: -------------------------------------------------------------------------------- 1 | usr/lib -------------------------------------------------------------------------------- /base-files/lib64: -------------------------------------------------------------------------------- 1 | usr/lib -------------------------------------------------------------------------------- /base-files/root/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/vinix/318463f73740310cb7f5cda64edeaaac48738109/base-files/root/.keep -------------------------------------------------------------------------------- /base-files/root/hello.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(void) { 4 | puts("Hello world"); 5 | } 6 | -------------------------------------------------------------------------------- /base-files/root/hello.cc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main() { 4 | std::cout << "Hello world" << std::endl; 5 | } 6 | -------------------------------------------------------------------------------- /base-files/root/hello.v: -------------------------------------------------------------------------------- 1 | fn main() { 2 | println('Hello world') 3 | } 4 | -------------------------------------------------------------------------------- /base-files/run/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/vinix/318463f73740310cb7f5cda64edeaaac48738109/base-files/run/.keep -------------------------------------------------------------------------------- /base-files/sbin: -------------------------------------------------------------------------------- 1 | usr/bin -------------------------------------------------------------------------------- /base-files/tmp/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/vinix/318463f73740310cb7f5cda64edeaaac48738109/base-files/tmp/.keep -------------------------------------------------------------------------------- /base-files/usr/lib64: -------------------------------------------------------------------------------- 1 | lib -------------------------------------------------------------------------------- /base-files/usr/sbin: -------------------------------------------------------------------------------- 1 | bin -------------------------------------------------------------------------------- /base-files/var/log/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/vinix/318463f73740310cb7f5cda64edeaaac48738109/base-files/var/log/.keep -------------------------------------------------------------------------------- /base-files/var/run: -------------------------------------------------------------------------------- 1 | ../run -------------------------------------------------------------------------------- /bochsrc: -------------------------------------------------------------------------------- 1 | ata0-slave: type=cdrom, path=vinix.iso, status=inserted 2 | boot: cdrom 3 | com1: enabled=1 4 | memory: guest=1024, host=1024 5 | clock: sync=none, time0=utc 6 | cpuid: level=6, fsgsbase=true 7 | -------------------------------------------------------------------------------- /build-support/CMakeToolchain-x86_64.txt: -------------------------------------------------------------------------------- 1 | set(CMAKE_SYSTEM_NAME Vinix) 2 | set(CMAKE_SYSTEM_PROCESSOR x86_64) 3 | 4 | set(CMAKE_FIND_ROOT_PATH /sysroot) 5 | 6 | set(CMAKE_C_COMPILER x86_64-vinix-mlibc-gcc) 7 | set(CMAKE_CXX_COMPILER x86_64-vinix-mlibc-g++) 8 | 9 | # search for programs in the build host directories 10 | SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) 11 | # for libraries and headers in the target directories 12 | SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) 13 | SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) 14 | 15 | # flags for shared libraries 16 | set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,") 17 | set(CMAKE_PLATFORM_USES_PATH_WHEN_NO_SONAME 1) 18 | -------------------------------------------------------------------------------- /build-support/bash/bash.bash_logout: -------------------------------------------------------------------------------- 1 | # 2 | # /etc/bash.bash_logout 3 | # 4 | -------------------------------------------------------------------------------- /build-support/bash/bash.bashrc: -------------------------------------------------------------------------------- 1 | # 2 | # /etc/bash.bashrc 3 | # 4 | 5 | # If not running interactively, don't do anything 6 | [[ $- != *i* ]] && return 7 | 8 | [[ $DISPLAY ]] && shopt -s checkwinsize 9 | 10 | HISTCONTROL=ignoredups 11 | HISTSIZE=-1 12 | HISTFILESIZE=-1 13 | 14 | NORMAL="\[\e[0m\]" 15 | RED="\[\e[1;31m\]" 16 | GREEN="\[\e[1;32m\]" 17 | if [[ $EUID == 0 ]] ; then 18 | PS1="$RED\u@\h [ $NORMAL\w$RED ]# $NORMAL" 19 | else 20 | PS1="$GREEN\u@\h [ $NORMAL\w$GREEN ]\$ $NORMAL" 21 | fi 22 | 23 | unset RED GREEN NORMAL 24 | 25 | alias ls='ls --color=auto' 26 | alias grep='grep --color=auto' 27 | alias diff='diff --color=auto' 28 | 29 | case ${TERM} in 30 | Eterm*|alacritty*|aterm*|foot*|gnome*|konsole*|kterm*|putty*|rxvt*|tmux*|xterm*) 31 | PROMPT_COMMAND+=('printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"') 32 | 33 | ;; 34 | screen*) 35 | PROMPT_COMMAND+=('printf "\033_%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"') 36 | ;; 37 | esac 38 | 39 | if [[ -r /usr/share/bash-completion/bash_completion ]]; then 40 | . /usr/share/bash-completion/bash_completion 41 | fi 42 | -------------------------------------------------------------------------------- /build-support/checklibs.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | set -e 4 | 5 | TMPDIR="$(mktemp -d)" 6 | ./jinx install "$TMPDIR" '*' 7 | for i in $(find "$TMPDIR"/ -name '*.so*'); do readelf -d $i 2>/dev/null | grep NEEDED | grep libc.so.6 && echo $i; done 8 | rm -rf "$TMPDIR" 9 | -------------------------------------------------------------------------------- /build-support/checklibtool.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | set -e 4 | 5 | TMPDIR="$(mktemp -d)" 6 | ./jinx install "$TMPDIR" '*' 7 | find "$TMPDIR"/ -name '*.la' 8 | rm -rf "$TMPDIR" 9 | -------------------------------------------------------------------------------- /build-support/checksoname.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | TMPDIR="$(mktemp -d)" 4 | ./jinx install "$TMPDIR" '*' 5 | rm -rf "$TMPDIR/bin" "$TMPDIR/sbin" "$TMPDIR/lib" "$TMPDIR/lib64" "$TMPDIR/usr/sbin" "$TMPDIR/usr/lib64" 6 | for f in $(find "$TMPDIR" -name '*.so*' -type f); do 7 | if ! readelf --dynamic "$f" >/dev/null 2>&1; then 8 | continue 9 | fi 10 | if ! readelf --dynamic "$f" | grep -q 'SONAME'; then 11 | echo "$f has no soname" 12 | fi 13 | done 14 | rm -rf "$TMPDIR" 15 | -------------------------------------------------------------------------------- /build-support/checkstatic.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | set -e 4 | 5 | TMPDIR="$(mktemp -d)" 6 | ./jinx install "$TMPDIR" '*' 7 | find "$TMPDIR"/ -name '*.a' 8 | rm -rf "$TMPDIR" 9 | -------------------------------------------------------------------------------- /build-support/checkstripped.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | set -e 4 | 5 | TMPDIR="$(mktemp -d)" 6 | ./jinx install "$TMPDIR" '*' 7 | for f in $(find "$TMPDIR"); do file "$f" | grep 'not stripped' || true; done 8 | rm -rf "$TMPDIR" 9 | -------------------------------------------------------------------------------- /build-support/checksysroot.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | TMPDIR="$(mktemp -d)" 4 | ./jinx install "$TMPDIR" '*' 5 | rm -rf "$TMPDIR/bin" "$TMPDIR/sbin" "$TMPDIR/lib" "$TMPDIR/lib64" "$TMPDIR/usr/sbin" "$TMPDIR/usr/lib64" 6 | for f in $(find "$TMPDIR" -type f); do 7 | stuff="$(strings "$f" | grep '/sysroot' | grep -v Assertion | grep -v '\--enable-languages')" 8 | if [ -z "$stuff" ]; then 9 | continue 10 | fi 11 | echo "in $f" 12 | echo "$stuff" 13 | done 14 | rm -rf "$TMPDIR" 15 | -------------------------------------------------------------------------------- /build-support/cmake-host/Platform/Vinix.cmake: -------------------------------------------------------------------------------- 1 | include(Platform/UnixPaths) 2 | -------------------------------------------------------------------------------- /build-support/cross_file-x86_64.txt: -------------------------------------------------------------------------------- 1 | [binaries] 2 | c = 'x86_64-vinix-mlibc-gcc' 3 | cpp = 'x86_64-vinix-mlibc-g++' 4 | ar = 'x86_64-vinix-mlibc-ar' 5 | nm = 'x86_64-vinix-mlibc-nm' 6 | strip = 'x86_64-vinix-mlibc-strip' 7 | pkg-config = 'x86_64-vinix-mlibc-pkg-config' 8 | llvm-config = '/base_dir/build-support/cross-llvm-config' 9 | 10 | [host_machine] 11 | system = 'vinix' 12 | cpu_family = 'x86_64' 13 | cpu = 'x86_64' 14 | endian = 'little' 15 | -------------------------------------------------------------------------------- /build-support/gcc/c89: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | fl="-std=c89" 4 | for opt; do 5 | case "$opt" in 6 | -ansi|-std=c89|-std=iso9899:1990) fl="";; 7 | -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2 8 | exit 1;; 9 | esac 10 | done 11 | exec gcc $fl ${1+"$@"} 12 | -------------------------------------------------------------------------------- /build-support/gcc/c99: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | fl="-std=c99" 4 | for opt; do 5 | case "$opt" in 6 | -std=c99|-std=iso9899:1999) fl="";; 7 | -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2 8 | exit 1;; 9 | esac 10 | done 11 | exec gcc $fl ${1+"$@"} 12 | -------------------------------------------------------------------------------- /build-support/limine.conf: -------------------------------------------------------------------------------- 1 | timeout: 3 2 | 3 | /Vinix 4 | protocol: limine 5 | kernel_path: boot():/boot/vinix 6 | module_path: boot():/boot/initramfs.tar 7 | -------------------------------------------------------------------------------- /build-support/makeiso.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -ex 4 | 5 | # Build the sysroot with jinx and build limine. 6 | rm -rf sysroot 7 | set -f 8 | ./jinx build-if-needed base $PKGS_TO_INSTALL 9 | ./jinx install "sysroot" base $PKGS_TO_INSTALL 10 | set +f 11 | if ! [ -d host-pkgs/limine ]; then 12 | ./jinx host-build limine 13 | fi 14 | 15 | # Make an initramfs with the sysroot. 16 | ( cd sysroot && tar cf ../initramfs.tar * ) 17 | 18 | # Prepare the iso and boot directories. 19 | rm -rf iso_root 20 | mkdir -pv iso_root/boot 21 | cp sysroot/usr/share/vinix/vinix iso_root/boot/ 22 | cp initramfs.tar iso_root/boot/ 23 | cp build-support/limine.conf iso_root/boot/ 24 | 25 | # Install the limine binaries. 26 | cp host-pkgs/limine/usr/local/share/limine/limine-bios.sys iso_root/boot/ 27 | cp host-pkgs/limine/usr/local/share/limine/limine-bios-cd.bin iso_root/boot/ 28 | cp host-pkgs/limine/usr/local/share/limine/limine-uefi-cd.bin iso_root/boot/ 29 | mkdir -pv iso_root/EFI/BOOT 30 | cp host-pkgs/limine/usr/local/share/limine/BOOT*.EFI iso_root/EFI/BOOT/ 31 | 32 | # Create the disk image. 33 | xorriso -as mkisofs -R -r -J -b boot/limine-bios-cd.bin \ 34 | -no-emul-boot -boot-load-size 4 -boot-info-table -hfsplus \ 35 | -apm-block-size 2048 --efi-boot boot/limine-uefi-cd.bin \ 36 | -efi-boot-part --efi-boot-image --protective-msdos-label \ 37 | iso_root -o vinix.iso 38 | 39 | # Install limine. 40 | host-pkgs/limine/usr/local/bin/limine bios-install vinix.iso 41 | -------------------------------------------------------------------------------- /build-support/nano/nanorc: -------------------------------------------------------------------------------- 1 | set nowrap 2 | set softwrap 3 | set historylog 4 | include /usr/share/nano/*.nanorc 5 | -------------------------------------------------------------------------------- /build-support/v/v.c.patch: -------------------------------------------------------------------------------- 1 | --- v.c 2025-02-20 03:51:33.241023614 +0100 2 | +++ v.c-patched 2025-02-20 06:13:44.421172638 +0100 3 | @@ -2052,6 +2052,8 @@ 4 | 5 | // added by module `os`, file: debugger_linux.c.v:3: 6 | 7 | +/* 8 | + 9 | #if defined(__has_include) 10 | 11 | #if __has_include() 12 | @@ -2064,6 +2066,7 @@ 13 | #include 14 | #endif 15 | 16 | +*/ 17 | 18 | #if !defined(_WIN32) 19 | // added by module `os`, file: fd.c.v:6: 20 | -------------------------------------------------------------------------------- /build-support/xorg-server/xorg.conf: -------------------------------------------------------------------------------- 1 | Section "Module" 2 | Load "fbdev" 3 | EndSection 4 | 5 | Section "Device" 6 | Identifier "Card0" 7 | Driver "fbdev" 8 | EndSection 9 | -------------------------------------------------------------------------------- /host-recipes/binutils: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=binutils 4 | from_source=binutils 5 | revision=1 6 | imagedeps="build-essential" 7 | hostdeps="pkg-config" 8 | 9 | configure() { 10 | CFLAGS="$HOST_CFLAGS" \ 11 | CXXFLAGS="$HOST_CXXFLAGS" \ 12 | LDFLAGS="$HOST_LDFLAGS" \ 13 | "${source_dir}"/configure \ 14 | --prefix="${prefix}" \ 15 | --target=${OS_TRIPLET} \ 16 | --with-sysroot="${sysroot_dir}" \ 17 | --enable-separate-code \ 18 | --enable-cet \ 19 | --enable-default-execstack=no \ 20 | --enable-deterministic-archives \ 21 | --enable-gold \ 22 | --enable-ld=default \ 23 | --enable-new-dtags \ 24 | --enable-plugins \ 25 | --enable-relro \ 26 | --enable-threads \ 27 | --disable-nls \ 28 | --disable-werror \ 29 | --with-pic 30 | } 31 | 32 | build() { 33 | make -j${parallelism} 34 | } 35 | 36 | package() { 37 | DESTDIR="${dest_dir}" make install 38 | 39 | strip_command=strip \ 40 | post_package_strip 41 | } 42 | -------------------------------------------------------------------------------- /host-recipes/file: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=file 4 | from_source=file 5 | revision=1 6 | imagedeps="file build-essential" 7 | 8 | configure() { 9 | CFLAGS="$HOST_CFLAGS" \ 10 | CXXFLAGS="$HOST_CXXFLAGS" \ 11 | LDFLAGS="$HOST_LDFLAGS" \ 12 | "${source_dir}"/configure \ 13 | --prefix=${prefix} \ 14 | --sysconfdir=/etc \ 15 | --localstatedir=/var \ 16 | --disable-nls \ 17 | --disable-static 18 | } 19 | 20 | build() { 21 | make -j${parallelism} 22 | } 23 | 24 | package() { 25 | DESTDIR="${dest_dir}" make install 26 | 27 | strip_command=strip \ 28 | post_package_strip 29 | } 30 | -------------------------------------------------------------------------------- /host-recipes/gcc: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=gcc 4 | from_source=gcc-host 5 | clean_workdirs=no 6 | revision=1 7 | imagedeps="experimental:build-essential" 8 | hostdeps="pkg-config" 9 | hostrundeps="binutils" 10 | deps="mlibc-headers" 11 | 12 | configure() { 13 | cp -rp "${source_dir}"/. ./ 14 | mkdir -p build && cd build 15 | 16 | CFLAGS="$HOST_CFLAGS" \ 17 | CXXFLAGS="$HOST_CXXFLAGS" \ 18 | LDFLAGS="$HOST_LDFLAGS" \ 19 | CFLAGS_FOR_TARGET="$TARGET_CFLAGS" \ 20 | CXXFLAGS_FOR_TARGET="$TARGET_CXXFLAGS" \ 21 | ../configure \ 22 | --prefix="${prefix}" \ 23 | --target=${OS_TRIPLET} \ 24 | --with-sysroot="${sysroot_dir}" \ 25 | --disable-nls \ 26 | --with-linker-hash-style=gnu \ 27 | --enable-linker-build-id \ 28 | --enable-languages=c,c++,lto \ 29 | --enable-default-pie \ 30 | --enable-default-ssp \ 31 | --disable-multilib \ 32 | --enable-initfini-array \ 33 | --enable-shared \ 34 | --enable-host-shared 35 | } 36 | 37 | build() { 38 | cd build 39 | make -j${parallelism} all-gcc 40 | } 41 | 42 | package() { 43 | cd build 44 | DESTDIR="${dest_dir}" make install-gcc 45 | 46 | strip_command=strip \ 47 | post_package_strip 48 | } 49 | -------------------------------------------------------------------------------- /host-recipes/libgcc-binaries: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libgcc-binaries 4 | from_source=libgcc-binaries 5 | revision=1 6 | 7 | package() { 8 | mkdir -p ${dest_dir}${prefix}/libgcc-binaries 9 | cp -rv ${source_dir}/. ${dest_dir}${prefix}/libgcc-binaries/ 10 | } 11 | -------------------------------------------------------------------------------- /host-recipes/limine: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=limine 4 | from_source=limine 5 | revision=1 6 | hostdeps="gcc pkg-config" 7 | imagedeps="nasm build-essential mtools" 8 | 9 | configure() { 10 | if [ "$ARCHITECTURE" = "x86_64" ]; then 11 | X86_FLAGS="--enable-bios \ 12 | --enable-bios-cd \ 13 | --enable-bios-pxe \ 14 | --enable-uefi-ia32 \ 15 | " 16 | fi 17 | 18 | CFLAGS="$HOST_CFLAGS" \ 19 | CXXFLAGS="$HOST_CXXFLAGS" \ 20 | LDFLAGS="$HOST_LDFLAGS -static" \ 21 | "${source_dir}"/configure \ 22 | --prefix="${prefix}" \ 23 | TOOLCHAIN_FOR_TARGET=${OS_TRIPLET} \ 24 | $X86_FLAGS \ 25 | --enable-uefi-$ARCHITECTURE \ 26 | --enable-uefi-cd 27 | } 28 | 29 | build() { 30 | make -j${parallelism} 31 | } 32 | 33 | package() { 34 | DESTDIR="${dest_dir}" make install 35 | 36 | strip_command=strip \ 37 | post_package_strip 38 | } 39 | -------------------------------------------------------------------------------- /host-recipes/pkg-config: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=pkg-config 4 | from_source=pkg-config 5 | revision=1 6 | imagedeps="build-essential" 7 | 8 | configure() { 9 | CFLAGS="$HOST_CFLAGS" \ 10 | CXXFLAGS="$HOST_CXXFLAGS" \ 11 | LDFLAGS="$HOST_LDFLAGS" \ 12 | "${source_dir}"/configure \ 13 | --prefix="${prefix}" 14 | } 15 | 16 | build() { 17 | make -j${parallelism} 18 | } 19 | 20 | package() { 21 | DESTDIR="${dest_dir}" make install 22 | mkdir -p "${dest_dir}${prefix}/share/pkgconfig/personality.d" 23 | cat <"${dest_dir}${prefix}/share/pkgconfig/personality.d/${OS_TRIPLET}.personality" 24 | Triplet: ${OS_TRIPLET} 25 | SysrootDir: ${sysroot_dir} 26 | DefaultSearchPaths: ${sysroot_dir}/usr/lib/pkgconfig:${sysroot_dir}/usr/share/pkgconfig 27 | SystemIncludePaths: ${sysroot_dir}/usr/include 28 | SystemLibraryPaths: ${sysroot_dir}/usr/lib 29 | EOF 30 | ln -s pkgconf "${dest_dir}${prefix}/bin/${OS_TRIPLET}-pkg-config" 31 | 32 | strip_command=strip \ 33 | post_package_strip 34 | } 35 | -------------------------------------------------------------------------------- /host-recipes/v: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=v 4 | from_source=v 5 | revision=1 6 | imagedeps="build-essential" 7 | 8 | build() { 9 | cp -rpf ${source_dir}/. ./ 10 | set -x 11 | cc $HOST_CFLAGS $HOST_CPPFLAGS -w -std=gnu99 $HOST_LDFLAGS vc/v.c -lm -lpthread -o v 12 | set +x 13 | } 14 | 15 | package() { 16 | rm -rf "${dest_dir}${prefix}"/v 17 | mkdir -p "${dest_dir}${prefix}"/v 18 | cp -r . "${dest_dir}${prefix}"/v/ 19 | rm -rf "${dest_dir}${prefix}"/v/.git 20 | 21 | mkdir -p "${dest_dir}${prefix}"/bin 22 | ln -sf ../v/v "${dest_dir}${prefix}"/bin/v 23 | 24 | strip_command=strip \ 25 | post_package_strip 26 | } 27 | -------------------------------------------------------------------------------- /init/.gitignore: -------------------------------------------------------------------------------- 1 | init 2 | -------------------------------------------------------------------------------- /init/main.v: -------------------------------------------------------------------------------- 1 | module main 2 | 3 | import os 4 | 5 | #include 6 | 7 | fn C.sethostname(name charptr, len u64) int 8 | 9 | fn main() { 10 | println('Vinix Init started') 11 | 12 | os.setenv('HOME', '/root', true) 13 | os.setenv('TERM', 'linux', true) 14 | os.setenv('PATH', '/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin', true) 15 | os.setenv('USER', 'root', true) 16 | os.setenv('LOGNAME', 'root', true) 17 | os.setenv('SHELL', '/bin/bash', true) 18 | os.setenv('MAIL', '/var/mail', true) 19 | os.setenv('XDG_RUNTIME_DIR', '/run', true) 20 | 21 | os.chdir('/root') or { panic('Could not move to root') } 22 | 23 | // Read hostname from /etc/hostname and pass to the kernel. 24 | hostname_file := os.read_file('/etc/hostname') or { 'vinix' } 25 | mut length := u64(0) 26 | for length < hostname_file.len && hostname_file[length] != `\n` { 27 | length++ 28 | } 29 | C.sethostname(hostname_file[..length].str, length) 30 | 31 | for { 32 | os.system("exec -a '-bash' bash --login") 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /init/v.mod: -------------------------------------------------------------------------------- 1 | Module { 2 | name: 'Vinix Init' 3 | description: 'PID 1 for Vinix' 4 | version: '0.0.0' 5 | license: 'GPL-2.0' 6 | dependencies: [] 7 | } 8 | -------------------------------------------------------------------------------- /jinx-config-debug: -------------------------------------------------------------------------------- 1 | . ${base_dir}/jinx-config 2 | 3 | PROD=false 4 | TARGET_CFLAGS="$TARGET_CFLAGS -g" 5 | -------------------------------------------------------------------------------- /kernel/.gitignore: -------------------------------------------------------------------------------- 1 | /freestnd-c-hdrs 2 | /cc-runtime* 3 | /c/flanterm 4 | /c/nanoprintf* 5 | /c/uacpi 6 | /uacpi-repository 7 | /bin 8 | /obj 9 | -------------------------------------------------------------------------------- /kernel/c/ctype.h: -------------------------------------------------------------------------------- 1 | #ifndef _CTYPE_H 2 | #define _CTYPE_H 3 | 4 | 5 | #endif 6 | -------------------------------------------------------------------------------- /kernel/c/inttypes.h: -------------------------------------------------------------------------------- 1 | #ifndef _INTTYPES_H 2 | #define _INTTYPES_H 3 | 4 | #include 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /kernel/c/locale.h: -------------------------------------------------------------------------------- 1 | #ifndef _LOCALE_H 2 | #define _LOCALE_H 3 | 4 | 5 | #endif 6 | -------------------------------------------------------------------------------- /kernel/c/memory.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | void *memcpy(void *restrict dest, const void *restrict src, size_t n) { 6 | uint8_t *restrict pdest = (uint8_t *restrict)dest; 7 | const uint8_t *restrict psrc = (const uint8_t *restrict)src; 8 | 9 | for (size_t i = 0; i < n; i++) { 10 | pdest[i] = psrc[i]; 11 | } 12 | 13 | return dest; 14 | } 15 | 16 | void *memset(void *s, int c, size_t n) { 17 | uint8_t *p = (uint8_t *)s; 18 | 19 | for (size_t i = 0; i < n; i++) { 20 | p[i] = (uint8_t)c; 21 | } 22 | 23 | return s; 24 | } 25 | 26 | void *memmove(void *dest, const void *src, size_t n) { 27 | uint8_t *pdest = (uint8_t *)dest; 28 | const uint8_t *psrc = (const uint8_t *)src; 29 | 30 | if (src > dest) { 31 | for (size_t i = 0; i < n; i++) { 32 | pdest[i] = psrc[i]; 33 | } 34 | } else if (src < dest) { 35 | for (size_t i = n; i > 0; i--) { 36 | pdest[i-1] = psrc[i-1]; 37 | } 38 | } 39 | 40 | return dest; 41 | } 42 | 43 | int memcmp(const void *s1, const void *s2, size_t n) { 44 | const uint8_t *p1 = (const uint8_t *)s1; 45 | const uint8_t *p2 = (const uint8_t *)s2; 46 | 47 | for (size_t i = 0; i < n; i++) { 48 | if (p1[i] != p2[i]) { 49 | return p1[i] < p2[i] ? -1 : 1; 50 | } 51 | } 52 | 53 | return 0; 54 | } 55 | -------------------------------------------------------------------------------- /kernel/c/pthread.h: -------------------------------------------------------------------------------- 1 | #ifndef _PTHREAD_H 2 | #define _PTHREAD_H 3 | 4 | struct __thread_data { 5 | void *ptr; 6 | }; 7 | 8 | struct __threadattr { 9 | void *ptr; 10 | }; 11 | 12 | typedef struct __thread_data *pthread_t; 13 | 14 | #endif 15 | -------------------------------------------------------------------------------- /kernel/c/stdio.h: -------------------------------------------------------------------------------- 1 | #ifndef _STDIO_H 2 | #define _STDIO_H 3 | 4 | #include 5 | #include 6 | 7 | struct __file { 8 | void *ptr; 9 | }; 10 | 11 | typedef struct __file FILE; 12 | 13 | int printf(const char *restrict format, ...); 14 | int fprintf(FILE *restrict stream, const char *restrict format, ...); 15 | int printf_panic(const char *restrict format, ...); 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /kernel/c/stdlib.h: -------------------------------------------------------------------------------- 1 | #ifndef _STDLIB_H 2 | #define _STDLIB_H 3 | 4 | 5 | #endif 6 | -------------------------------------------------------------------------------- /kernel/c/string.h: -------------------------------------------------------------------------------- 1 | #ifndef _STRING_H 2 | #define _STRING_H 3 | 4 | #include 5 | 6 | void *memcpy(void *restrict dest, const void *restrict src, size_t n); 7 | void *memset(void *s, int c, size_t n); 8 | void *memmove(void *dest, const void *src, size_t n); 9 | int memcmp(const void *s1, const void *s2, size_t n); 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /kernel/c/symbols.h: -------------------------------------------------------------------------------- 1 | #ifndef _SYMBOLS_H 2 | #define _SYMBOLS_H 3 | 4 | extern char text_start[]; 5 | extern char text_end[]; 6 | extern char rodata_start[]; 7 | extern char rodata_end[]; 8 | extern char data_start[]; 9 | extern char data_end[]; 10 | 11 | extern char interrupt_thunks[]; 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /kernel/c/sys/time.h: -------------------------------------------------------------------------------- 1 | #ifndef _SYS_TIME_H 2 | #define _SYS_TIME_H 3 | 4 | 5 | #endif 6 | -------------------------------------------------------------------------------- /kernel/c/sys/types.h: -------------------------------------------------------------------------------- 1 | #ifndef _SYS_TYPES_H 2 | #define _SYS_TYPES_H 3 | 4 | 5 | #endif 6 | -------------------------------------------------------------------------------- /kernel/c/sys/wait.h: -------------------------------------------------------------------------------- 1 | #ifndef _SYS_WAIT_H 2 | #define _SYS_WAIT_H 3 | 4 | 5 | #endif 6 | -------------------------------------------------------------------------------- /kernel/c/unistd.h: -------------------------------------------------------------------------------- 1 | #ifndef _UNISTD_H 2 | #define _UNISTD_H 3 | 4 | 5 | #endif 6 | -------------------------------------------------------------------------------- /kernel/modules/bitmap/bitmap.v: -------------------------------------------------------------------------------- 1 | module bitmap 2 | 3 | import memory 4 | import lib 5 | 6 | pub struct GenericBitmap { 7 | mut: 8 | raw_bitmap voidptr 9 | entry_cnt u64 10 | } 11 | 12 | pub fn (mut bmp GenericBitmap) initialise(entry_cnt u64) { 13 | bmp.entry_cnt = entry_cnt 14 | bmp.raw_bitmap = memory.calloc(lib.div_roundup(entry_cnt, u64(8)), 1) 15 | } 16 | 17 | pub fn (bmp GenericBitmap) alloc() ?u64 { 18 | for i := u64(0); i < bmp.entry_cnt; i++ { 19 | if lib.bittest(bmp.raw_bitmap, i) == false { 20 | lib.bitset(bmp.raw_bitmap, i) 21 | return i 22 | } 23 | } 24 | return none 25 | } 26 | 27 | pub fn (bmp GenericBitmap) free_entry(index u64) { 28 | if index < bmp.entry_cnt { 29 | lib.bitreset(bmp.raw_bitmap, index) 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /kernel/modules/dev/fbdev/api/driver.v: -------------------------------------------------------------------------------- 1 | module api 2 | 3 | pub struct FramebufferInfo { 4 | pub mut: 5 | base voidptr 6 | size u64 7 | driver &FramebufferDriver 8 | variable FBVarScreenInfo 9 | fixed FBFixScreenInfo 10 | } 11 | 12 | pub struct FramebufferDriver { 13 | pub mut: 14 | name string 15 | init fn () = unsafe { nil } 16 | // those below are filled in during registration, must be null. 17 | register_device fn (FramebufferInfo) ? = unsafe { nil } 18 | } 19 | -------------------------------------------------------------------------------- /kernel/modules/event/eventstruct/eventstruct.v: -------------------------------------------------------------------------------- 1 | module eventstruct 2 | 3 | import klock 4 | 5 | pub const max_listeners = 32 6 | 7 | pub struct EventListener { 8 | pub mut: 9 | thrd voidptr 10 | which u64 11 | } 12 | 13 | pub struct Event { 14 | pub mut: 15 | @lock klock.Lock 16 | pending u64 17 | listeners_i u64 18 | listeners [max_listeners]EventListener 19 | } 20 | -------------------------------------------------------------------------------- /kernel/modules/flanterm/flanterm.v: -------------------------------------------------------------------------------- 1 | module flanterm 2 | 3 | @[c_extern] 4 | fn C.flanterm_fb_init(_malloc voidptr, _free voidptr, 5 | framebuffer &u32, width u64, height u64, pitch u64, 6 | red_mask_size u8, red_mask_shift u8, 7 | green_mask_size u8, green_mask_shift u8, 8 | blue_mask_size u8, blue_mask_shift u8, 9 | canvas &u32, 10 | ansi_colours &u32, ansi_bright_colours &u32, 11 | default_bg &u32, default_fg &u32, 12 | default_bg_bright &u32, default_fg_bright &u32, 13 | font voidptr, font_width u64, font_height u64, font_spacing u64, 14 | font_scale_x u64, font_scale_y u64, 15 | margin u64) voidptr 16 | 17 | @[c_extern] 18 | fn C.flanterm_write(context voidptr, buf charptr, count u64) 19 | @[c_extern] 20 | fn C.flanterm_get_dimensions(context voidptr, cols &u64, rows &u64) 21 | @[c_extern] 22 | fn C.flanterm_set_callback(context voidptr, callback voidptr) 23 | -------------------------------------------------------------------------------- /kernel/modules/ioctl/common.v: -------------------------------------------------------------------------------- 1 | module ioctl 2 | 3 | // https://github.com/torvalds/linux/blob/5bfc75d92efd494db37f5c4c173d3639d4772966/include/uapi/asm-generic/ioctl.h 4 | 5 | pub const fionread = 0x541b 6 | 7 | pub const ioc_nrbits = 8 8 | pub const ioc_typebits = 8 9 | pub const ioc_sizebits = 14 10 | pub const ioc_dirbits = 2 11 | 12 | pub const ioc_nrmask = ((1 << ioc_nrbits) - 1) 13 | pub const ioc_typemask = ((1 << ioc_typebits) - 1) 14 | pub const ioc_sizemask = ((1 << ioc_sizebits) - 1) 15 | pub const ioc_dirmask = ((1 << ioc_dirbits) - 1) 16 | 17 | pub const ioc_nrshift = 0 18 | pub const ioc_typeshift = (ioc_nrshift + ioc_nrbits) 19 | pub const ioc_sizeshift = (ioc_typeshift + ioc_typebits) 20 | pub const ioc_dirshift = (ioc_sizeshift + ioc_sizebits) 21 | 22 | @[inline] 23 | pub fn ioctl_dir(ioc u32) u32 { 24 | return (ioc >> ioc_dirshift) & ioc_dirmask 25 | } 26 | 27 | @[inline] 28 | pub fn ioctl_type(ioc u32) u32 { 29 | return (ioc >> ioc_typeshift) & ioc_typemask 30 | } 31 | 32 | @[inline] 33 | pub fn ioctl_size(ioc u32) u32 { 34 | return (ioc >> ioc_sizeshift) & ioc_sizemask 35 | } 36 | 37 | @[inline] 38 | pub fn ioctl_nr(ioc u32) u32 { 39 | return (ioc >> ioc_nrshift) & ioc_nrmask 40 | } 41 | -------------------------------------------------------------------------------- /kernel/modules/ioctl/fbio.v: -------------------------------------------------------------------------------- 1 | module ioctl 2 | 3 | pub const fbioget_vscreeninfo = 0x4600 4 | pub const fbioput_vscreeninfo = 0x4601 5 | pub const fbioget_fscreeninfo = 0x4602 6 | pub const fbiogetcmap = 0x4604 7 | pub const fbioputcmap = 0x4605 8 | pub const fbiopan_display = 0x4606 9 | pub const fbioblank = 0x4611 10 | -------------------------------------------------------------------------------- /kernel/modules/ioctl/term.v: -------------------------------------------------------------------------------- 1 | module ioctl 2 | 3 | pub const tcgets = 0x5401 4 | 5 | pub const tcsets = 0x5402 6 | 7 | pub const tcsetsw = 0x5403 8 | 9 | pub const tcsetsf = 0x5404 10 | 11 | pub const tiocsctty = 0x540e 12 | 13 | pub const tiocgwinsz = 0x5413 14 | 15 | pub struct WinSize { 16 | pub mut: 17 | ws_row u16 18 | ws_col u16 19 | ws_xpixel u16 20 | ws_ypixel u16 21 | } 22 | -------------------------------------------------------------------------------- /kernel/modules/klock/klock.v: -------------------------------------------------------------------------------- 1 | module klock 2 | 3 | import katomic 4 | import x86.cpu 5 | 6 | pub struct Lock { 7 | pub mut: 8 | l bool 9 | ints bool 10 | } 11 | 12 | fn C.__builtin_return_address(int) voidptr 13 | 14 | pub fn (mut l Lock) acquire() { 15 | for { 16 | if l.test_and_acquire() == true { 17 | return 18 | } 19 | asm volatile amd64 { 20 | pause 21 | ; ; ; memory 22 | } 23 | } 24 | } 25 | 26 | pub fn (mut l Lock) release() { 27 | katomic.store(mut &l.l, false) 28 | cpu.interrupt_toggle(l.ints) 29 | } 30 | 31 | pub fn (mut l Lock) test_and_acquire() bool { 32 | ints := cpu.interrupt_toggle(false) 33 | 34 | ret := katomic.cas(mut &l.l, false, true) 35 | if ret == true { 36 | l.ints = ints 37 | } else { 38 | cpu.interrupt_toggle(ints) 39 | } 40 | 41 | return ret 42 | } 43 | -------------------------------------------------------------------------------- /kernel/modules/kprint/kprint.v: -------------------------------------------------------------------------------- 1 | @[has_globals] 2 | module kprint 3 | 4 | import klock 5 | import dev.serial 6 | import term 7 | 8 | @[markused] 9 | __global ( 10 | printf_lock klock.Lock 11 | kprint_lock klock.Lock 12 | ) 13 | 14 | pub fn syscall_kprint(_ voidptr, message charptr) { 15 | $if !prod { 16 | msglen := unsafe { u64(C.strlen(message)) } 17 | 18 | kprint_lock.acquire() 19 | 20 | unsafe { 21 | for i := 0; i < msglen; i++ { 22 | serial.out(message[i]) 23 | } 24 | serial.out(`\n`) 25 | } 26 | kprint_lock.release() 27 | } 28 | } 29 | 30 | pub fn kwrite(message charptr, msglen u64) { 31 | kprint_lock.acquire() 32 | 33 | $if !prod { 34 | unsafe { 35 | for i := 0; i < msglen; i++ { 36 | serial.out(message[i]) 37 | } 38 | } 39 | } 40 | 41 | term.print(message, msglen) 42 | 43 | kprint_lock.release() 44 | } 45 | 46 | fn C.byteptr_vstring(byteptr) string 47 | fn C.byteptr_vstring_with_len(byteptr, int) string 48 | fn C.char_vstring(charptr) string 49 | -------------------------------------------------------------------------------- /kernel/modules/lib/bit.v: -------------------------------------------------------------------------------- 1 | module lib 2 | 3 | pub fn bittest(bitmap voidptr, index u64) bool { 4 | unsafe { 5 | mut fbitmap := &u64(bitmap) 6 | bits_type := sizeof(u64) * 8 7 | test_index := index % bits_type 8 | test_sample := fbitmap[index / bits_type] 9 | return ((test_sample >> test_index) & u64(1)) != 0 10 | } 11 | } 12 | 13 | pub fn bitset(bitmap voidptr, index u64) { 14 | unsafe { 15 | mut fbitmap := &u64(bitmap) 16 | bits_type := sizeof(u64) * 8 17 | test_index := index % bits_type 18 | fbitmap[index / bits_type] |= u64(1) << test_index 19 | } 20 | } 21 | 22 | pub fn bitreset(bitmap voidptr, index u64) { 23 | unsafe { 24 | mut fbitmap := &u64(bitmap) 25 | bits_type := sizeof(u64) * 8 26 | test_index := index % bits_type 27 | fbitmap[index / bits_type] &= ~(u64(1) << test_index) 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /kernel/modules/lib/math.v: -------------------------------------------------------------------------------- 1 | module lib 2 | 3 | pub fn div_roundup[T](a T, b T) T { 4 | return (a + (b - 1)) / b 5 | } 6 | 7 | pub fn align_up(value u64, alignment u64) u64 { 8 | return div_roundup(value, alignment) * alignment 9 | } 10 | 11 | pub fn align_down(value u64, alignment u64) u64 { 12 | return (value / alignment) * alignment 13 | } 14 | 15 | pub fn power(base u64, exp u64) u64 { 16 | mut result := u64(1) 17 | mut tmp_base := base 18 | mut tmp_exp := exp 19 | 20 | for { 21 | if tmp_exp & 1 != 0 { 22 | result *= tmp_base 23 | } 24 | 25 | tmp_exp >>= 1 26 | 27 | if tmp_exp <= 0 { 28 | break 29 | } 30 | 31 | tmp_base *= tmp_base 32 | } 33 | 34 | return result 35 | } 36 | -------------------------------------------------------------------------------- /kernel/modules/lib/stubs/file.v: -------------------------------------------------------------------------------- 1 | @[has_globals] 2 | module stubs 3 | 4 | import lib 5 | import kprint 6 | 7 | struct C.__file {} 8 | 9 | type FILE = C.__file 10 | 11 | @[markused] 12 | __global ( 13 | stdin = &FILE(unsafe { nil }) 14 | stdout = &FILE(unsafe { nil }) 15 | stderr = &FILE(unsafe { nil }) 16 | ) 17 | 18 | @[export: 'fflush'] 19 | pub fn fflush(stream &FILE) int { 20 | return 0 21 | } 22 | 23 | @[export: 'getchar'] 24 | pub fn getchar() int { 25 | lib.kpanic(unsafe { nil }, c'getchar is a stub') 26 | } 27 | 28 | @[export: 'getc'] 29 | pub fn getc(stream &FILE) int { 30 | lib.kpanic(unsafe { nil }, c'getc is a stub') 31 | } 32 | 33 | @[export: 'fgets'] 34 | pub fn fgets(str charptr, count u64, stream &FILE) charptr { 35 | lib.kpanic(unsafe { nil }, c'fgets is a stub') 36 | } 37 | 38 | @[export: 'popen'] 39 | pub fn popen(command &char, typ &char) &FILE { 40 | lib.kpanic(unsafe { nil }, c'popen is a stub') 41 | } 42 | 43 | @[export: 'pclose'] 44 | pub fn pclose(stream &FILE) int { 45 | lib.kpanic(unsafe { nil }, c'pclose is a stub') 46 | } 47 | 48 | @[export: 'write'] 49 | pub fn write(fd int, buf voidptr, count u64) i64 { 50 | if fd != 1 && fd != 2 { 51 | lib.kpanic(unsafe { nil }, c'write to fd != 1 && fd != 2 is a stub') 52 | } 53 | 54 | kprint.kwrite(charptr(buf), count) 55 | 56 | return i64(count) 57 | } 58 | 59 | @[export: 'isatty'] 60 | pub fn isatty(fd int) int { 61 | return 1 62 | } 63 | -------------------------------------------------------------------------------- /kernel/modules/lib/stubs/misc.v: -------------------------------------------------------------------------------- 1 | module stubs 2 | 3 | import lib 4 | 5 | @[export: '__ctype_tolower_loc'] 6 | pub fn ctype_tolower_loc() &&int { 7 | lib.kpanic(unsafe { nil }, c'__ctype_tolower_loc is a stub') 8 | } 9 | 10 | @[export: '__ctype_toupper_loc'] 11 | pub fn ctype_toupper_loc() &&int { 12 | lib.kpanic(unsafe { nil }, c'__ctype_toupper_loc is a stub') 13 | } 14 | 15 | @[export: 'exit'] 16 | @[noreturn] 17 | pub fn kexit(code int) { 18 | lib.kpanic(unsafe { nil }, c'Kernel has called exit()') 19 | } 20 | -------------------------------------------------------------------------------- /kernel/modules/lib/stubs/pthread.v: -------------------------------------------------------------------------------- 1 | module stubs 2 | 3 | import lib 4 | import sched 5 | import event 6 | import proc 7 | 8 | struct C.__thread_data {} 9 | 10 | struct C.__threadattr {} 11 | 12 | @[export: 'pthread_create'] 13 | pub fn pthread_create(t &&C.__thread_data, attr &C.__threadattr, start_routine fn (voidptr) voidptr, arg voidptr) int { 14 | if attr != unsafe { nil } { 15 | lib.kpanic(unsafe { nil }, c'pthread_create() called with non-NULL attr') 16 | } 17 | 18 | unsafe { 19 | mut ptr := &voidptr(t) 20 | *ptr = sched.new_kernel_thread(voidptr(start_routine), arg, true) 21 | } 22 | return 0 23 | } 24 | 25 | @[export: 'pthread_detach'] 26 | pub fn pthread_detach(t &C.__thread_data) int { 27 | return 0 28 | } 29 | 30 | @[export: 'pthread_join'] 31 | pub fn pthread_join(t &C.__thread_data, mut retval voidptr) int { 32 | unsafe { 33 | *retval = event.pthread_wait(&proc.Thread(t)) 34 | } 35 | return 0 36 | } 37 | 38 | @[export: 'pthread_exit'] 39 | @[noreturn] 40 | pub fn pthread_exit(retval voidptr) { 41 | event.pthread_exit(retval) 42 | for {} 43 | } 44 | -------------------------------------------------------------------------------- /kernel/modules/net/hostname.v: -------------------------------------------------------------------------------- 1 | @[has_globals] 2 | module net 3 | 4 | import errno 5 | 6 | const hostname_len = 64 7 | 8 | __global ( 9 | hostname [hostname_len]char 10 | ) 11 | 12 | pub fn syscall_gethostname(_ voidptr, name charptr, len u64) (u64, u64) { 13 | real_len := unsafe { C.strlen(&hostname[0]) } 14 | 15 | if len < real_len { 16 | return errno.err, errno.enametoolong 17 | } 18 | 19 | unsafe { C.memcpy(name, &hostname[0], real_len + 1) } 20 | return 0, 0 21 | } 22 | 23 | pub fn syscall_sethostname(_ voidptr, name charptr, len u64) (u64, u64) { 24 | if len > hostname_len - 1 { 25 | return errno.err, errno.einval 26 | } 27 | 28 | unsafe { C.memcpy(&hostname[0], name, len) } 29 | hostname[len] = char(`\0`) 30 | 31 | return 0, 0 32 | } 33 | -------------------------------------------------------------------------------- /kernel/modules/socket/public/public.v: -------------------------------------------------------------------------------- 1 | module public 2 | 3 | import resource { Resource } 4 | 5 | pub const af_inet = 2 6 | pub const af_inet6 = 10 7 | pub const af_unix = 1 8 | pub const af_local = 1 9 | pub const af_unspec = 0 10 | pub const af_netlink = 16 11 | 12 | pub const sock_nonblock = 0o4000 13 | pub const sock_cloexec = 0o2000000 14 | 15 | pub interface Socket { 16 | Resource 17 | mut: 18 | bind(handle voidptr, _addr voidptr, addrlen u32) ? 19 | connect(handle voidptr, _addr voidptr, addrlen u32) ? 20 | peername(handle voidptr, _addr voidptr, addrlen &u32) ? 21 | listen(handle voidptr, backlog int) ? 22 | accept(handle voidptr) ?&Resource 23 | recvmsg(handle voidptr, msg &MsgHdr, flags int) ?u64 24 | } 25 | 26 | pub struct IoVec { 27 | pub mut: 28 | iov_base voidptr 29 | iov_len u64 30 | } 31 | 32 | pub struct MsgHdr { 33 | pub mut: 34 | msg_name voidptr 35 | msg_namelen u32 36 | msg_iov &IoVec 37 | msg_iovlen u64 38 | msg_control voidptr 39 | msg_controllen u64 40 | msg_flags int 41 | } 42 | -------------------------------------------------------------------------------- /kernel/modules/stat/stat.v: -------------------------------------------------------------------------------- 1 | module stat 2 | 3 | import time 4 | 5 | pub const ifmt = 0xf000 6 | pub const ifblk = 0x6000 7 | pub const ifchr = 0x2000 8 | pub const ififo = 0x1000 9 | pub const ifreg = 0x8000 10 | pub const ifdir = 0x4000 11 | pub const iflnk = 0xa000 12 | pub const ifsock = 0xc000 13 | pub const ifpipe = 0x3000 14 | 15 | pub fn isblk(mode u32) bool { 16 | return (mode & ifmt) == ifblk 17 | } 18 | 19 | pub fn ischr(mode u32) bool { 20 | return (mode & ifmt) == ifchr 21 | } 22 | 23 | pub fn isifo(mode u32) bool { 24 | return (mode & ifmt) == ififo 25 | } 26 | 27 | pub fn isreg(mode u32) bool { 28 | return (mode & ifmt) == ifreg 29 | } 30 | 31 | pub fn isdir(mode u32) bool { 32 | return (mode & ifmt) == ifdir 33 | } 34 | 35 | pub fn islnk(mode u32) bool { 36 | return (mode & ifmt) == iflnk 37 | } 38 | 39 | pub fn issock(mode u32) bool { 40 | return (mode & ifmt) == ifsock 41 | } 42 | 43 | pub struct Stat { 44 | pub mut: 45 | dev u64 46 | ino u64 47 | nlink u64 48 | mode u32 49 | uid u32 50 | gid u32 51 | pad0 u32 52 | rdev u64 53 | size i64 54 | blksize i64 55 | blocks i64 56 | atim time.TimeSpec 57 | mtim time.TimeSpec 58 | ctim time.TimeSpec 59 | pad1 [3]i64 60 | } 61 | 62 | pub const dt_unknown = 0 63 | pub const dt_fifo = 1 64 | pub const dt_chr = 2 65 | pub const dt_dir = 4 66 | pub const dt_blk = 6 67 | pub const dt_reg = 8 68 | pub const dt_lnk = 10 69 | pub const dt_sock = 12 70 | pub const dt_wht = 14 71 | 72 | pub struct Dirent { 73 | pub mut: 74 | ino u64 75 | off u64 76 | reclen u16 77 | @type u8 78 | name [1024]u8 79 | } 80 | -------------------------------------------------------------------------------- /kernel/modules/syscall/syscall.v: -------------------------------------------------------------------------------- 1 | module syscall 2 | 3 | import x86.cpu.local as cpulocal 4 | // import userland 5 | 6 | @[markused] 7 | fn leave(context &cpulocal.GPRState) { 8 | asm volatile amd64 { 9 | cli 10 | } 11 | 12 | // userland.dispatch_a_signal(context) 13 | } 14 | 15 | @[_naked] 16 | fn syscall_entry() { 17 | asm volatile amd64 { 18 | swapgs // Save user stack 19 | mov gs:[32], rsp // Switch to kernel stack 20 | mov rsp, gs:[24] 21 | push 0x3b 22 | push gs:[32] 23 | push r11 24 | push 0x43 25 | push rcx 26 | push 0 27 | push r15 28 | push r14 29 | push r13 30 | push r12 31 | push r11 32 | push r10 33 | push r9 34 | push r8 35 | push rbp 36 | push rdi 37 | push rsi 38 | push rdx 39 | push rcx 40 | push rbx 41 | push rax 42 | mov eax, es 43 | push rax 44 | mov eax, ds 45 | push rax 46 | sti // syscall num 47 | mov gs:[40], rdi 48 | xor rbp, rbp 49 | mov rbx, rdi 50 | mov rcx, r10 51 | mov rdi, rsp 52 | lea rax, [rip + syscall_table] 53 | call [rax + rbx * 8 + 0] 54 | mov [rsp + 16], rax 55 | mov [rsp + 40], rdx 56 | mov rdi, rsp 57 | call syscall__leave 58 | pop rax 59 | mov ds, eax 60 | pop rax 61 | mov es, eax 62 | pop rax 63 | pop rbx 64 | pop rcx 65 | pop rdx 66 | pop rsi 67 | pop rdi 68 | pop rbp 69 | pop r8 70 | pop r9 71 | pop r10 72 | pop r11 73 | pop r12 74 | pop r13 75 | pop r14 76 | pop r15 // Restore user stack 77 | mov rsp, gs:[32] 78 | swapgs 79 | sysretq 80 | ; ; ; memory 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /kernel/modules/termios/termios.v: -------------------------------------------------------------------------------- 1 | module termios 2 | 3 | pub const brkint = 0o0002 4 | 5 | pub const ignpar = 0o0004 6 | 7 | pub const echo = 0o0010 8 | 9 | pub const echoe = 0o0020 10 | 11 | pub const echok = 0o0040 12 | 13 | pub const echonl = 0o0100 14 | 15 | pub const icanon = 0o0002 16 | 17 | pub const inlcr = 0o0100 18 | 19 | pub const igncr = 0o0200 20 | 21 | pub const icrnl = 0o0400 22 | 23 | pub const ixon = 0o2000 24 | 25 | pub const imaxbel = 0o20000 26 | 27 | pub const iexten = 0o100000 28 | 29 | pub const isig = 0o0001 30 | 31 | pub const noflsh = 0o0200 32 | 33 | pub const tostop = 0o0400 34 | 35 | pub const echoctl = 0o1000 36 | 37 | pub const echoprt = 0o2000 38 | 39 | pub const echoke = 0o4000 40 | 41 | pub const opost = 0o0001 42 | 43 | pub const onlcr = 0o0004 44 | 45 | pub const cs8 = 0o0060 46 | 47 | pub const cread = 0o0200 48 | 49 | pub const nccs = 32 50 | 51 | pub const veof = 4 52 | 53 | pub const veol = 11 54 | 55 | pub const verase = 2 56 | 57 | pub const vintr = 0 58 | 59 | pub const vkill = 3 60 | 61 | pub const vmin = 6 62 | 63 | pub const vquit = 1 64 | 65 | pub const vstart = 8 66 | 67 | pub const vstop = 9 68 | 69 | pub const vsusp = 10 70 | 71 | pub const vtime = 5 72 | 73 | pub const vdiscard = 13 74 | 75 | pub const vreprint = 12 76 | 77 | pub const vwerase = 14 78 | 79 | pub const vlnext = 15 80 | 81 | pub const b38400 = 15 82 | 83 | pub struct Termios { 84 | pub mut: 85 | c_iflag u32 86 | c_oflag u32 87 | c_cflag u32 88 | c_lflag u32 89 | c_line u8 90 | c_cc [nccs]u8 91 | ibaud u32 92 | obaud u32 93 | } 94 | 95 | pub fn ctrl(c u8) u8 { 96 | return c & 0o37 97 | } 98 | -------------------------------------------------------------------------------- /kernel/modules/time/pit.v: -------------------------------------------------------------------------------- 1 | module time 2 | 3 | import x86.kio 4 | import x86.idt 5 | import x86.cpu.local as cpulocal 6 | 7 | pub const pit_dividend = u64(1193182) 8 | 9 | pub fn pit_get_current_count() u16 { 10 | kio.port_out[u8](0x43, 0) 11 | lo := kio.port_in[u8](0x40) 12 | hi := kio.port_in[u8](0x40) 13 | return (u16(hi) << 8) | lo 14 | } 15 | 16 | pub fn pit_set_reload_value(new_count u16) { 17 | // Channel 0, lo/hi access mode, mode 2 (rate generator) 18 | kio.port_out[u8](0x43, 0x34) 19 | kio.port_out[u8](0x40, u8(new_count)) 20 | kio.port_out[u8](0x40, u8(new_count >> 8)) 21 | } 22 | 23 | pub fn pit_set_frequency(frequency u64) { 24 | mut new_divisor := pit_dividend / frequency 25 | if pit_dividend % frequency > frequency / 2 { 26 | new_divisor++ 27 | } 28 | 29 | pit_set_reload_value(u16(new_divisor)) 30 | } 31 | 32 | fn C.x86__apic__io_apic_set_irq_redirect(lapic_id u32, vector u8, irq u8, status bool) 33 | 34 | pub fn pit_initialise() { 35 | pit_set_frequency(timer_frequency) 36 | 37 | vect := idt.allocate_vector() 38 | 39 | print('timer: PIT vector is 0x${vect:x}\n') 40 | 41 | interrupt_table[vect] = voidptr(pit_handler) 42 | 43 | C.x86__apic__io_apic_set_irq_redirect(cpu_locals[0].lapic_id, vect, 0, true) 44 | } 45 | 46 | fn C.x86__apic__lapic_eoi() 47 | 48 | fn pit_handler(num u32, gpr_state &cpulocal.GPRState) { 49 | timer_handler() 50 | C.x86__apic__lapic_eoi() 51 | } 52 | -------------------------------------------------------------------------------- /kernel/modules/x86/cpu/local/local.v: -------------------------------------------------------------------------------- 1 | @[has_globals] 2 | module local 3 | 4 | import x86.cpu 5 | 6 | @[packed] 7 | pub struct TSS { 8 | pub mut: 9 | unused0 u32 10 | rsp0 u64 11 | rsp1 u64 12 | rsp2 u64 13 | unused1 u64 14 | ist1 u64 15 | ist2 u64 16 | ist3 u64 17 | ist4 u64 18 | ist5 u64 19 | ist6 u64 20 | ist7 u64 21 | unused2 u64 22 | iopb u32 23 | } 24 | 25 | pub struct GPRState { 26 | pub mut: 27 | ds u64 28 | es u64 29 | rax u64 30 | rbx u64 31 | rcx u64 32 | rdx u64 33 | rsi u64 34 | rdi u64 35 | rbp u64 36 | r8 u64 37 | r9 u64 38 | r10 u64 39 | r11 u64 40 | r12 u64 41 | r13 u64 42 | r14 u64 43 | r15 u64 44 | err u64 45 | rip u64 46 | cs u64 47 | rflags u64 48 | rsp u64 49 | ss u64 50 | } 51 | 52 | pub const abort_stack_size = 128 53 | 54 | pub struct Local { 55 | pub mut: 56 | cpu_number u64 57 | zero u64 58 | tss TSS 59 | lapic_id u32 60 | lapic_timer_freq u64 61 | online u64 62 | is_idle bool 63 | last_run_queue_index int 64 | abort_stack [abort_stack_size]u64 65 | aborted bool 66 | } 67 | 68 | __global ( 69 | cpu_locals []&Local 70 | ) 71 | 72 | pub fn current() &Local { 73 | ints := cpu.interrupt_state() 74 | if ints != false { 75 | panic('Attempted to get current CPU struct without disabling ints') 76 | } 77 | 78 | mut cpu_number := u64(0) 79 | asm volatile amd64 { 80 | mov cpu_number, gs:[0] 81 | ; =r (cpu_number) 82 | } 83 | return cpu_locals[cpu_number] 84 | } 85 | -------------------------------------------------------------------------------- /kernel/modules/x86/idt/idt.v: -------------------------------------------------------------------------------- 1 | @[has_globals] 2 | module idt 3 | 4 | import klock 5 | 6 | @[packed] 7 | struct IDTPointer { 8 | size u16 9 | address voidptr 10 | } 11 | 12 | @[packed] 13 | struct IDTEntry { 14 | pub mut: 15 | offset_low u16 16 | selector u16 17 | ist u8 18 | flags u8 19 | offset_mid u16 20 | offset_hi u32 21 | reserved u32 22 | } 23 | 24 | __global ( 25 | idt_pointer IDTPointer 26 | idt_entries [256]IDTEntry 27 | idt_free_vector = u8(32) 28 | idt_lock klock.Lock 29 | ) 30 | 31 | pub fn allocate_vector() u8 { 32 | idt_lock.acquire() 33 | if idt_free_vector == 0xf0 { 34 | panic('IDT exhausted') 35 | } 36 | ret := idt_free_vector++ 37 | idt_lock.release() 38 | return ret 39 | } 40 | 41 | __global ( 42 | interrupt_table [256]voidptr 43 | ) 44 | 45 | pub fn initialise() { 46 | reload() 47 | } 48 | 49 | pub fn reload() { 50 | idt_pointer = IDTPointer{ 51 | size: u16((sizeof(IDTEntry) * 256) - 1) 52 | address: &idt_entries 53 | } 54 | 55 | asm volatile amd64 { 56 | lidt ptr 57 | ; ; m (idt_pointer) as ptr 58 | ; memory 59 | } 60 | } 61 | 62 | pub fn set_ist(vector u16, ist u8) { 63 | idt_entries[vector].ist = ist 64 | } 65 | 66 | pub fn register_handler(vector u16, handler voidptr, ist u8, flags u8) { 67 | address := u64(handler) 68 | 69 | idt_entries[vector] = IDTEntry{ 70 | offset_low: u16(address) 71 | selector: kernel_code_seg 72 | ist: ist 73 | flags: flags 74 | offset_mid: u16(address >> 16) 75 | offset_hi: u32(address >> 32) 76 | reserved: 0 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /kernel/modules/x86/kio/kio.v: -------------------------------------------------------------------------------- 1 | module kio 2 | 3 | pub fn port_in[T](port u16) T { 4 | mut ret := T(0) 5 | asm volatile amd64 { 6 | in ret, port 7 | ; =a (ret) 8 | ; Nd (port) 9 | ; memory 10 | } 11 | return ret 12 | } 13 | 14 | pub fn port_out[T](port u16, value T) { 15 | asm volatile amd64 { 16 | out port, value 17 | ; ; a (value) 18 | Nd (port) 19 | ; memory 20 | } 21 | } 22 | 23 | pub fn mmin[T](addr &T) T { 24 | mut ret := T(0) 25 | asm volatile amd64 { 26 | mov ret, [addr] 27 | ; =r (ret) 28 | ; r (addr) 29 | ; memory 30 | } 31 | return ret 32 | } 33 | 34 | pub fn mmout[T](addr &T, value T) { 35 | asm volatile amd64 { 36 | mov [addr], value 37 | ; ; r (addr) 38 | r (value) 39 | ; memory 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /kernel/modules/x86/msr/msr.v: -------------------------------------------------------------------------------- 1 | module msr 2 | 3 | pub fn rdmsr(msr u32) u64 { 4 | mut eax := u32(0) 5 | mut edx := u32(0) 6 | asm volatile amd64 { 7 | rdmsr 8 | ; =a (eax) 9 | =d (edx) 10 | ; c (msr) 11 | ; memory 12 | } 13 | return (u64(edx) << 32) | eax 14 | } 15 | 16 | pub fn wrmsr(msr u32, value u64) { 17 | eax := u32(value) 18 | edx := value >> 32 19 | asm volatile amd64 { 20 | wrmsr 21 | ; ; a (eax) 22 | d (edx) 23 | c (msr) 24 | ; memory 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /kernel/modules/x86/smp/smp.v: -------------------------------------------------------------------------------- 1 | @[has_globals] 2 | module smp 3 | 4 | import limine 5 | import memory 6 | import katomic 7 | import x86.cpu.local as cpulocal 8 | import x86.cpu.initialisation as cpuinit 9 | 10 | __global ( 11 | bsp_lapic_id = u32(0) 12 | smp_ready = false 13 | ) 14 | 15 | @[_linker_section: '.requests'] 16 | @[cinit] 17 | __global ( 18 | volatile smp_req = limine.LimineSMPRequest{ 19 | flags: 1 // x2apic allowed 20 | response: unsafe { nil } 21 | } 22 | ) 23 | 24 | pub fn initialise() { 25 | if smp_req.response == unsafe { nil } { 26 | panic('SMP bootloader response missing') 27 | } 28 | smp_tag := smp_req.response 29 | 30 | println('smp: BSP LAPIC ID: ${smp_tag.bsp_lapic_id:x}') 31 | println('smp: Total CPU count: ${smp_tag.cpu_count}') 32 | println('smp: Using x2APIC: ${x2apic_mode}') 33 | 34 | smp_info_array := smp_tag.cpus 35 | 36 | bsp_lapic_id = smp_tag.bsp_lapic_id 37 | 38 | for i := u64(0); i < smp_tag.cpu_count; i++ { 39 | mut cpu_local := unsafe { &cpulocal.Local(memory.malloc(sizeof(cpulocal.Local))) } 40 | cpu_locals << cpu_local 41 | 42 | mut smp_info := unsafe { smp_info_array[i] } 43 | 44 | smp_info.extra_argument = u64(cpu_local) 45 | 46 | cpu_local.cpu_number = i 47 | 48 | if smp_info.lapic_id == smp_tag.bsp_lapic_id { 49 | cpuinit.initialise(smp_info) 50 | continue 51 | } 52 | 53 | smp_info.goto_address = cpuinit.initialise 54 | 55 | for katomic.load(&cpu_local.online) == 0 {} 56 | } 57 | 58 | smp_ready = true 59 | 60 | print('smp: All CPUs online!\n') 61 | } 62 | -------------------------------------------------------------------------------- /kernel/v.mod: -------------------------------------------------------------------------------- 1 | Module { 2 | name: 'Vinix' 3 | description: 'An operating system written in the V programming language' 4 | version: '0.0.0' 5 | license: 'GPL-2.0' 6 | dependencies: [] 7 | } 8 | -------------------------------------------------------------------------------- /patches/cmatrix/jinx-working-patch.patch: -------------------------------------------------------------------------------- 1 | diff -urN --no-dereference cmatrix-clean/cmatrix.c cmatrix-workdir/cmatrix.c 2 | --- cmatrix-clean/cmatrix.c 3 | +++ cmatrix-workdir/cmatrix.c 4 | @@ -32,6 +32,8 @@ 5 | #include 6 | #include 7 | #include 8 | +#include 9 | +#include 10 | 11 | #ifndef EXCLUDE_CONFIG_H 12 | #include "config.h" 13 | -------------------------------------------------------------------------------- /patches/coreutils/jinx-working-patch.patch: -------------------------------------------------------------------------------- 1 | diff -urN --no-dereference coreutils-clean/gnulib-tests/getlocalename_l-unsafe.c coreutils-workdir/gnulib-tests/getlocalename_l-unsafe.c 2 | --- coreutils-clean/gnulib-tests/getlocalename_l-unsafe.c 3 | +++ coreutils-workdir/gnulib-tests/getlocalename_l-unsafe.c 4 | @@ -469,6 +469,8 @@ 5 | struct gl_locale_category_t *plc = 6 | &locale->category[gl_log2_lcmask_to_index (gl_log2_lc_mask (category))]; 7 | return (struct string_with_storage) { plc->name, STORAGE_OBJECT }; 8 | +#elif defined __mlibc__ 9 | + return (struct string_with_storage) { "C", STORAGE_INDEFINITE }; 10 | #elif __GLIBC__ >= 2 && !defined __UCLIBC__ 11 | /* Work around an incorrect definition of the _NL_LOCALE_NAME macro in 12 | glibc < 2.12. 13 | diff -urN --no-dereference coreutils-clean/lib/getlocalename_l-unsafe.c coreutils-workdir/lib/getlocalename_l-unsafe.c 14 | --- coreutils-clean/lib/getlocalename_l-unsafe.c 15 | +++ coreutils-workdir/lib/getlocalename_l-unsafe.c 16 | @@ -469,6 +469,8 @@ 17 | struct gl_locale_category_t *plc = 18 | &locale->category[gl_log2_lcmask_to_index (gl_log2_lc_mask (category))]; 19 | return (struct string_with_storage) { plc->name, STORAGE_OBJECT }; 20 | +#elif defined __mlibc__ 21 | + return (struct string_with_storage) { "C", STORAGE_INDEFINITE }; 22 | #elif __GLIBC__ >= 2 && !defined __UCLIBC__ 23 | /* Work around an incorrect definition of the _NL_LOCALE_NAME macro in 24 | glibc < 2.12. 25 | -------------------------------------------------------------------------------- /patches/gdbm/jinx-working-patch.patch: -------------------------------------------------------------------------------- 1 | diff -urN --no-dereference gdbm-clean/tools/gdbmapp.h gdbm-workdir/tools/gdbmapp.h 2 | --- gdbm-clean/tools/gdbmapp.h 3 | +++ gdbm-workdir/tools/gdbmapp.h 4 | @@ -16,6 +16,7 @@ 5 | 6 | #include 7 | #include 8 | +#include 9 | #include "gettext.h" 10 | #ifdef HAVE_LOCALE_H 11 | # include 12 | diff -urN --no-dereference gdbm-clean/tools/var.c gdbm-workdir/tools/var.c 13 | --- gdbm-clean/tools/var.c 14 | +++ gdbm-workdir/tools/var.c 15 | @@ -14,6 +14,7 @@ 16 | You should have received a copy of the GNU General Public License 17 | along with GDBM. If not, see . */ 18 | 19 | +#include 20 | #include "gdbmtool.h" 21 | 22 | #define VARF_DFL 0x00 /* Default flags -- everything disabled */ 23 | -------------------------------------------------------------------------------- /patches/git/jinx-working-patch.patch: -------------------------------------------------------------------------------- 1 | diff -urN --no-dereference git-clean/config.mak.uname git-workdir/config.mak.uname 2 | --- git-clean/config.mak.uname 3 | +++ git-workdir/config.mak.uname 4 | @@ -4,12 +4,12 @@ 5 | # Microsoft's Safe Exception Handling in libraries (such as zlib). 6 | # Typically required for VS2013+/32-bit compilation on Vista+ versions. 7 | 8 | -uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not') 9 | -uname_M := $(shell sh -c 'uname -m 2>/dev/null || echo not') 10 | -uname_O := $(shell sh -c 'uname -o 2>/dev/null || echo not') 11 | -uname_R := $(shell sh -c 'uname -r 2>/dev/null || echo not') 12 | -uname_P := $(shell sh -c 'uname -p 2>/dev/null || echo not') 13 | -uname_V := $(shell sh -c 'uname -v 2>/dev/null || echo not') 14 | +uname_S := Vinix 15 | +uname_M := x86_64 16 | +uname_O := Vinix 17 | +uname_R := 0.0.0 18 | +uname_P := unknown 19 | +uname_V := 0.0.0 20 | 21 | ifneq ($(findstring MINGW,$(uname_S)),) 22 | uname_S := MINGW 23 | -------------------------------------------------------------------------------- /patches/glib/jinx-working-patch.patch: -------------------------------------------------------------------------------- 1 | diff -urN --no-dereference glib-clean/gio/gcredentialsprivate.h glib-workdir/gio/gcredentialsprivate.h 2 | --- glib-clean/gio/gcredentialsprivate.h 3 | +++ glib-workdir/gio/gcredentialsprivate.h 4 | @@ -104,7 +104,7 @@ 5 | */ 6 | #undef G_CREDENTIALS_HAS_PID 7 | 8 | -#ifdef __linux__ 9 | +#if defined(__linux__) || defined(__vinix__) 10 | #define G_CREDENTIALS_SUPPORTED 1 11 | #define G_CREDENTIALS_USE_LINUX_UCRED 1 12 | #define G_CREDENTIALS_NATIVE_TYPE G_CREDENTIALS_TYPE_LINUX_UCRED 13 | diff -urN --no-dereference glib-clean/glib/glib-init.c glib-workdir/glib/glib-init.c 14 | --- glib-clean/glib/glib-init.c 15 | +++ glib-workdir/glib/glib-init.c 16 | @@ -31,6 +31,7 @@ 17 | #include "gmem.h" /* for g_mem_gc_friendly */ 18 | 19 | #include 20 | +#include 21 | #include 22 | #include 23 | #include 24 | diff -urN --no-dereference glib-clean/glib/gstrfuncs.c glib-workdir/glib/gstrfuncs.c 25 | --- glib-clean/glib/gstrfuncs.c 26 | +++ glib-workdir/glib/gstrfuncs.c 27 | @@ -35,6 +35,7 @@ 28 | #include 29 | #include 30 | #include 31 | +#include 32 | #include 33 | #include 34 | #include 35 | -------------------------------------------------------------------------------- /patches/grep/jinx-working-patch.patch: -------------------------------------------------------------------------------- 1 | diff -urN --no-dereference grep-clean/gnulib-tests/getlocalename_l-unsafe.c grep-workdir/gnulib-tests/getlocalename_l-unsafe.c 2 | --- grep-clean/gnulib-tests/getlocalename_l-unsafe.c 3 | +++ grep-workdir/gnulib-tests/getlocalename_l-unsafe.c 4 | @@ -469,6 +469,8 @@ 5 | struct gl_locale_category_t *plc = 6 | &locale->category[gl_log2_lcmask_to_index (gl_log2_lc_mask (category))]; 7 | return (struct string_with_storage) { plc->name, STORAGE_OBJECT }; 8 | +#elif defined __mlibc__ 9 | + return (struct string_with_storage) { "C", STORAGE_INDEFINITE }; 10 | #elif __GLIBC__ >= 2 && !defined __UCLIBC__ 11 | /* Work around an incorrect definition of the _NL_LOCALE_NAME macro in 12 | glibc < 2.12. 13 | -------------------------------------------------------------------------------- /patches/libpsl/jinx-working-patch.patch: -------------------------------------------------------------------------------- 1 | diff -urN --no-dereference libpsl-clean/src/psl.c libpsl-workdir/src/psl.c 2 | --- libpsl-clean/src/psl.c 3 | +++ libpsl-workdir/src/psl.c 4 | @@ -64,6 +64,7 @@ 5 | #include 6 | #include 7 | #include 8 | +#include 9 | #ifdef HAVE_STRINGS_H 10 | # include 11 | #endif 12 | -------------------------------------------------------------------------------- /patches/libxcb/jinx-working-patch.patch: -------------------------------------------------------------------------------- 1 | diff -urN --no-dereference libxcb-clean/configure libxcb-workdir/configure 2 | --- libxcb-clean/configure 3 | +++ libxcb-workdir/configure 4 | @@ -21028,7 +21028,7 @@ 5 | NEEDED="xau >= 0.99.2" 6 | case $host_os in 7 | linux*|darwin*|solaris*|dragonfly*|freebsd*|netbsd*) ;; 8 | - *) NEEDED="$NEEDED pthread-stubs" ;; 9 | + *) NEEDED="$NEEDED" ;; 10 | esac 11 | 12 | pkg_failed=no 13 | diff -urN --no-dereference libxcb-clean/doc/Makefile.in libxcb-workdir/doc/Makefile.in 14 | --- libxcb-clean/doc/Makefile.in 15 | +++ libxcb-workdir/doc/Makefile.in 16 | @@ -518,8 +518,8 @@ 17 | $(mkinstalldirs) '$(DESTDIR)$(htmldir)'; \ 18 | fi 19 | @for d in $(docdirs); do \ 20 | - echo "cp -pR $$d '$(DESTDIR)$(htmldir)/'"; \ 21 | - cp -pR $$d '$(DESTDIR)$(htmldir)/'; \ 22 | + echo "cp -R $$d '$(DESTDIR)$(htmldir)/'"; \ 23 | + cp -R $$d '$(DESTDIR)$(htmldir)/'; \ 24 | done 25 | 26 | uninstall-local: 27 | -------------------------------------------------------------------------------- /patches/libzip/jinx-working-patch.patch: -------------------------------------------------------------------------------- 1 | diff -urN --no-dereference libzip-clean/lib/zip_close.c libzip-workdir/lib/zip_close.c 2 | --- libzip-clean/lib/zip_close.c 3 | +++ libzip-workdir/lib/zip_close.c 4 | @@ -36,6 +36,7 @@ 5 | 6 | #include 7 | #include 8 | +#include 9 | #ifdef _WIN32 10 | #include 11 | #include 12 | diff -urN --no-dereference libzip-clean/lib/zip_name_locate.c libzip-workdir/lib/zip_name_locate.c 13 | --- libzip-clean/lib/zip_name_locate.c 14 | +++ libzip-workdir/lib/zip_name_locate.c 15 | @@ -33,9 +33,9 @@ 16 | 17 | 18 | #include 19 | -#ifdef HAVE_STRINGS_H 20 | +//#ifdef HAVE_STRINGS_H 21 | #include 22 | -#endif 23 | +//#endif 24 | 25 | #include "zipint.h" 26 | 27 | diff -urN --no-dereference libzip-clean/src/ziptool.c libzip-workdir/src/ziptool.c 28 | --- libzip-clean/src/ziptool.c 29 | +++ libzip-workdir/src/ziptool.c 30 | @@ -38,6 +38,7 @@ 31 | #include 32 | #include 33 | #include 34 | +#include 35 | #include 36 | #ifdef HAVE_UNISTD_H 37 | #include 38 | -------------------------------------------------------------------------------- /patches/m4/jinx-working-patch.patch: -------------------------------------------------------------------------------- 1 | diff -urN --no-dereference m4-clean/tests/strerror_r.c m4-workdir/tests/strerror_r.c 2 | --- m4-clean/tests/strerror_r.c 3 | +++ m4-workdir/tests/strerror_r.c 4 | @@ -21,7 +21,7 @@ 5 | 6 | /* Enable declaration of sys_nerr and sys_errlist in on NetBSD. */ 7 | #define _NETBSD_SOURCE 1 8 | - 9 | +#undef _GNU_SOURCE 10 | /* Specification. */ 11 | #include 12 | 13 | -------------------------------------------------------------------------------- /patches/mesa-demos/jinx-working-patch.patch: -------------------------------------------------------------------------------- 1 | diff -urN --no-dereference mesa-demos-clean/meson.build mesa-demos-workdir/meson.build 2 | --- mesa-demos-clean/meson.build 3 | +++ mesa-demos-workdir/meson.build 4 | @@ -99,7 +99,7 @@ 5 | endif 6 | 7 | dep_glx = dependency('glx', required: false, disabler : true) 8 | -if not dep_glx.found() and host_machine.system() == 'darwin' 9 | +if not dep_glx.found() and (host_machine.system() == 'darwin' or host_machine.system() == 'vinix') 10 | # xquartz doesn't have a glx.pc, but it does have the header. And all the 11 | # symbols reside in libGL, so let's just use that. 12 | if cc.check_header('GL/glx.h', dependencies: dep_x11) 13 | -------------------------------------------------------------------------------- /patches/rsync/jinx-working-patch.patch: -------------------------------------------------------------------------------- 1 | diff -urN --no-dereference rsync-clean/lib/compat.c rsync-workdir/lib/compat.c 2 | --- rsync-clean/lib/compat.c 3 | +++ rsync-workdir/lib/compat.c 4 | @@ -156,11 +156,11 @@ 5 | /* some systems don't take the 2nd argument */ 6 | int sys_gettimeofday(struct timeval *tv) 7 | { 8 | -#ifdef HAVE_GETTIMEOFDAY_TZ 9 | +//#ifdef HAVE_GETTIMEOFDAY_TZ 10 | return gettimeofday(tv, NULL); 11 | -#else 12 | - return gettimeofday(tv); 13 | -#endif 14 | +//#else 15 | +// return gettimeofday(tv); 16 | +//#endif 17 | } 18 | 19 | /* Return the int64 number as a string. If the human_flag arg is non-zero, 20 | -------------------------------------------------------------------------------- /patches/xorriso/jinx-working-patch.patch: -------------------------------------------------------------------------------- 1 | diff -urN --no-dereference xorriso-clean/libjte/checksum.c xorriso-workdir/libjte/checksum.c 2 | --- xorriso-clean/libjte/checksum.c 3 | +++ xorriso-workdir/libjte/checksum.c 4 | @@ -16,6 +16,7 @@ 5 | #include 6 | #include 7 | #include 8 | +#include 9 | #include 10 | #include 11 | 12 | -------------------------------------------------------------------------------- /patches/zlib/jinx-working-patch.patch: -------------------------------------------------------------------------------- 1 | diff -urN --no-dereference zlib-clean/configure zlib-workdir/configure 2 | --- zlib-clean/configure 3 | +++ zlib-workdir/configure 4 | @@ -227,7 +227,7 @@ 5 | uname=`(uname -s || echo unknown) 2>/dev/null` 6 | fi 7 | case "$uname" in 8 | - Linux* | linux* | *-linux* | GNU | GNU/* | solaris*) 9 | + Linux* | linux* | *-linux* | GNU | GNU/* | solaris* | vinix*) 10 | case "$mname" in 11 | *sparc*) 12 | LDFLAGS="${LDFLAGS} -Wl,--no-warn-rwx-segments" ;; 13 | -------------------------------------------------------------------------------- /recipes/ace-of-penguins: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=ace-of-penguins 4 | version=1.4 5 | revision=1 6 | tarball_url="https://www.delorie.com/store/ace/ace-${version}.tar.gz" 7 | tarball_blake2b=62d32bcada9a945d0a409757ca24c8c5c032e905528d56a51b95f82844c6c8057d39763016fa05015877f23313d842effeaaa362507bb049816d7cf6bdf01a1a 8 | imagedeps="build-essential libpng-dev" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs libx11 libxpm libpng zlib" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure \ 18 | CFLAGS="$TARGET_CFLAGS -std=gnu17" \ 19 | BUILD_CFLAGS="$HOST_CFLAGS" \ 20 | BUILD_CPPFLAGS="$HOST_CPPFLAGS" \ 21 | BUILD_LDFLAGS="$HOST_LDFLAGS" 22 | } 23 | 24 | build() { 25 | make -j${parallelism} 26 | } 27 | 28 | package() { 29 | DESTDIR="${dest_dir}" make install 30 | 31 | post_package_strip 32 | } 33 | -------------------------------------------------------------------------------- /recipes/at-spi2-core: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=at-spi2-core 4 | version=2.56.2 5 | revision=1 6 | tarball_url="https://download.gnome.org/sources/at-spi2-core/2.56/at-spi2-core-${version}.tar.xz" 7 | tarball_blake2b="12dff02209243cde88108eced8b2757bdce3dff20eff95a362d00de610374aabeedbc8878a60c11ac28f0e71918f74caf0083c07d652bd06b656c27d4238579f" 8 | imagedeps="meson ninja-build libglib2.0-dev" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs bash dbus glib gsettings-desktop-schemas libx11 libxi libxkbcommon libxml libxtst" 11 | 12 | configure() { 13 | meson_configure \ 14 | -Dsystemd_user_dir=/tmp \ 15 | -Dintrospection=disabled 16 | } 17 | 18 | build() { 19 | ninja -j${parallelism} 20 | } 21 | 22 | package() { 23 | DESTDIR="${dest_dir}" ninja install 24 | 25 | post_package_strip 26 | } 27 | -------------------------------------------------------------------------------- /recipes/autoconf-archive: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=autoconf-archive 4 | version=2024.10.16 5 | revision=1 6 | tarball_url="https://ftp.gnu.org/gnu/autoconf-archive/autoconf-archive-${version}.tar.xz" 7 | tarball_blake2b="64554b7258c527f2e6bb115bec08e358bd4f10b940cdbe58c073fb3bdeccab78897250766e600b7e5fd79a76d633135d1caf2c7e81893bd68cab704073cac2c5" 8 | 9 | package() { 10 | mkdir -p "${dest_dir}${prefix}"/share/aclocal 11 | cp -r "${source_dir}"/m4/. "${dest_dir}${prefix}"/share/aclocal/ 12 | 13 | post_package_strip 14 | } 15 | -------------------------------------------------------------------------------- /recipes/base: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=base 4 | skip_pkg_check=yes 5 | version=0.0 6 | revision=1 7 | deps="base-files kernel init bash binutils bzip2 coreutils diffutils findutils gawk gcc gmp grep gzip less make mpc mpfr nano ncurses pcre2 readline sed tar tzdata util-vinix xbps xz zlib zstd" 8 | -------------------------------------------------------------------------------- /recipes/base-files: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=base-files 4 | skip_pkg_check=yes 5 | version=0.0 6 | revision=1 7 | source_dir="base-files" 8 | 9 | package() { 10 | cp -r ${source_dir}/. "${dest_dir}"/ 11 | } 12 | -------------------------------------------------------------------------------- /recipes/bash-completion: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=bash-completion 4 | version=2.16.0 5 | revision=1 6 | tarball_url="https://github.com/scop/bash-completion/releases/download/${version}/bash-completion-${version}.tar.xz" 7 | tarball_blake2b="389be47536f8f9aa383ff85bf19a00562b30b6d3e3652feaa01284987af13c2dc9850b59341956dd8e94e54251cd36902a60d5e3420ebfa2567216546144f675" 8 | hostdeps="gcc pkg-config" 9 | deps="bash" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/bc: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=bc 4 | repology_id=gnu-bc 5 | version=1.08.1 6 | revision=1 7 | tarball_url="https://ftp.gnu.org/gnu/bc/bc-${version}.tar.gz" 8 | tarball_blake2b="51d1bac17f31bb7dbb044c28752cccfe59dd5bcb78a2c3bfa66a345577ea3aee37fef8d7efae83a57e41ae77d7317008f3682dfbc3165c76888770636deead01" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs mpfr gmp readline" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | cp -rp "${source_dir}"/. ./ 18 | 19 | configure_script_path=./configure \ 20 | autotools_configure \ 21 | CFLAGS="$TARGET_CFLAGS -std=gnu17" 22 | } 23 | 24 | build() { 25 | make -j${parallelism} 26 | } 27 | 28 | package() { 29 | DESTDIR="${dest_dir}" PREFIX="${prefix}" make install 30 | 31 | post_package_strip 32 | } 33 | -------------------------------------------------------------------------------- /recipes/binutils: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=binutils 4 | version=2.44 5 | revision=1 6 | tarball_url="https://ftp.gnu.org/gnu/binutils/binutils-with-gold-${version}.tar.xz" 7 | tarball_blake2b="d749d5fbab2d6c2455bf9a988daa5c5ab9ecd9ecd63e4be022bc06483ebc996588c515ee4b931ff2ba7bcf43242068c0747e1cad50740523b2073df5a338614f" 8 | imagedeps="build-essential" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs zlib zstd" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure \ 18 | --target=${OS_TRIPLET} \ 19 | --with-build-sysroot=${sysroot_dir} \ 20 | --enable-separate-code \ 21 | --enable-cet \ 22 | --enable-colored-disassembly \ 23 | --enable-default-execstack=no \ 24 | --enable-deterministic-archives \ 25 | --enable-gold \ 26 | --enable-ld=default \ 27 | --enable-new-dtags \ 28 | --enable-plugins \ 29 | --enable-relro \ 30 | --enable-threads \ 31 | --disable-werror \ 32 | --with-pic \ 33 | --with-system-zlib 34 | } 35 | 36 | build() { 37 | make -j${parallelism} 38 | } 39 | 40 | package() { 41 | DESTDIR="${dest_dir}" make install 42 | 43 | # Remove unnecessary directory 44 | rm -rf "${dest_dir}${prefix}"/${OS_TRIPLET} 45 | 46 | # Remove static libraries 47 | rm -rf "${dest_dir}${prefix}"/lib/*.a 48 | 49 | post_package_strip 50 | } 51 | -------------------------------------------------------------------------------- /recipes/cairo: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=cairo 4 | repology_id=cairo-graphics-library 5 | version=1.18.4 6 | revision=1 7 | tarball_url="https://cairographics.org/releases/cairo-${version}.tar.xz" 8 | tarball_blake2b="976de469b077dac964d15257e5d2edf271df720d45370c6cd6ee1d1df79aec5b1e1126a2fb1954c5f5dd74b0b83f32e44d3e442f983d436aa7f389807615b3ed" 9 | imagedeps="meson ninja-build binutils" 10 | hostdeps="gcc pkg-config" 11 | deps="core-libs fontconfig freetype2 glib libpng libx11 libxcb libxext libxrender pixman zlib" 12 | 13 | configure() { 14 | meson_configure \ 15 | -Dxlib-xcb=enabled \ 16 | -Dzlib=enabled \ 17 | -Dtee=enabled \ 18 | -Dtests=disabled 19 | } 20 | 21 | build() { 22 | ninja -j${parallelism} 23 | } 24 | 25 | package() { 26 | DESTDIR="${dest_dir}" ninja install 27 | 28 | post_package_strip 29 | } 30 | -------------------------------------------------------------------------------- /recipes/cglm: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=cglm 4 | version=0.9.6 5 | revision=1 6 | tarball_url="https://github.com/recp/cglm/archive/refs/tags/v${version}.tar.gz" 7 | tarball_blake2b="a51bfb6d9198f4ecf6b1bcc56b346df963e56d5229c226bfa6d3bdccfbb3e25c30e33eccfc3614402a61286e9e87dc1e63e2b8f22e4d0fd640232f40b5a4db70" 8 | imagedeps="meson ninja-build" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs" 11 | 12 | configure() { 13 | meson_configure 14 | } 15 | 16 | build() { 17 | ninja -j${parallelism} 18 | } 19 | 20 | package() { 21 | DESTDIR="${dest_dir}" ninja install 22 | 23 | post_package_strip 24 | } 25 | -------------------------------------------------------------------------------- /recipes/cmatrix: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=cmatrix 4 | version=2.0 5 | revision=1 6 | tarball_url="https://github.com/abishekvashok/cmatrix/releases/download/v${version}/cmatrix-v${version}-Butterscotch.tar" 7 | tarball_blake2b="4eec8df0021da2ee5f4e46cd8de30bbd52fe81073aaa4dbaf0f111b6c44be2f4fd7b640e842fabfe9bb0fe21a76cdd926fd8535086c6b6d6c0073de6f06174ae" 8 | imagedeps="cmake ninja-build" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs ncurses" 11 | 12 | configure() { 13 | cmake_configure 14 | } 15 | 16 | build() { 17 | ninja -j${parallelism} 18 | } 19 | 20 | package() { 21 | DESTDIR="${dest_dir}" ninja install 22 | 23 | post_package_strip 24 | } 25 | -------------------------------------------------------------------------------- /recipes/core-libs: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=core-libs 4 | skip_pkg_check=yes 5 | version=0.0 6 | revision=1 7 | deps="mlibc libgcc libstdc++ libatomic libintl libiconv libxcrypt tzdata" 8 | -------------------------------------------------------------------------------- /recipes/coreutils: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=coreutils 4 | version=9.7 5 | revision=1 6 | tarball_url="https://ftp.gnu.org/gnu/coreutils/coreutils-${version}.tar.xz" 7 | tarball_blake2b="e5e5f7ec26c3952eb6a25988f78d3a1f8a70cf97a2fbc7b433dfcd1721cd38e6e0a8b9cb83f854a22df325bcb5ea8c4534c5a217273762cd5d575b381db69ee8" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure \ 17 | CFLAGS="$TARGET_CFLAGS -DSLOW_BUT_NO_HACKS" 18 | } 19 | 20 | build() { 21 | make -j${parallelism} 22 | } 23 | 24 | package() { 25 | DESTDIR="${dest_dir}" make install 26 | 27 | post_package_strip 28 | } 29 | -------------------------------------------------------------------------------- /recipes/curl: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=curl 4 | version=8.13.0 5 | revision=1 6 | tarball_url="https://curl.se/download/curl-${version}.tar.xz" 7 | tarball_blake2b="6869634ad50f015d5c7526699034d5a3f27d9588bc32eacc8080dbd6c690f63b1f25cee40d3fdf8fd9dd8535c305ea9c5edf1d5a02bc6d9ce60fd8c88230aca0" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs openssl zlib zstd libpsl" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure \ 17 | --enable-threaded-resolver \ 18 | --with-openssl 19 | } 20 | 21 | build() { 22 | make -j${parallelism} 23 | } 24 | 25 | package() { 26 | DESTDIR="${dest_dir}" make install 27 | 28 | post_package_strip 29 | } 30 | -------------------------------------------------------------------------------- /recipes/dbus: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=dbus 4 | version=1.16.2 5 | revision=1 6 | git_url="https://gitlab.freedesktop.org/dbus/dbus.git" 7 | commit=958bf9db2100553bcd2fe2a854e1ebb42e886054 8 | imagedeps="git meson ninja-build" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs libexpat" 11 | 12 | configure() { 13 | meson_configure \ 14 | -Druntime_dir=/run \ 15 | -Ddoxygen_docs=disabled \ 16 | -Dxml_docs=disabled \ 17 | -Dsystemd_system_unitdir=no \ 18 | -Dsystemd_user_unitdir=no \ 19 | -Dsystem_pid_file=/run/dbus/pid \ 20 | -Dsystem_socket=/run/dbus/system_bus_socket \ 21 | -Dselinux=disabled \ 22 | -Dapparmor=disabled \ 23 | -Dlibaudit=disabled \ 24 | -Dkqueue=disabled \ 25 | -Dlaunchd=disabled \ 26 | -Dsystemd=disabled \ 27 | -Dmodular_tests=disabled 28 | } 29 | 30 | build() { 31 | ninja -j${parallelism} 32 | } 33 | 34 | package() { 35 | DESTDIR="${dest_dir}" ninja install 36 | 37 | touch "${dest_dir}/${prefix}"/share/dbus-1/session.d/.keep 38 | touch "${dest_dir}"/var/lib/dbus/.keep 39 | 40 | post_package_strip 41 | } 42 | -------------------------------------------------------------------------------- /recipes/diffutils: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=diffutils 4 | version=3.12 5 | revision=1 6 | tarball_url="https://ftp.gnu.org/gnu/diffutils/diffutils-${version}.tar.xz" 7 | tarball_blake2b="5b4593b39da71578d7f975603abe9359be215b9ac76548a6ab0d6e3838bb103c7ffcddf7fa01abcd5c6289db9a2f16b43aa3d5e846a9aa4b8db866763c2660de" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | gl_cv_func_strcasecmp_works=yes \ 17 | autotools_configure 18 | } 19 | 20 | build() { 21 | make -j${parallelism} 22 | } 23 | 24 | package() { 25 | DESTDIR="${dest_dir}" make install 26 | 27 | post_package_strip 28 | } 29 | -------------------------------------------------------------------------------- /recipes/file: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=file 4 | version=5.46 5 | revision=1 6 | tarball_url="https://astron.com/pub/file/file-${version}.tar.gz" 7 | tarball_blake2b="2b1df136f01c253cc490b483c644403da0674692ef97ef9e1239878328cfb8ce2bc418c14626145719c69acab00d56b63b5340a2b56c276c996b1e6ad1bfe9b6" 8 | hostdeps="gcc pkg-config file" 9 | deps="core-libs bzip2 xz zlib zstd" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/findutils: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=findutils 4 | version=4.10.0 5 | revision=1 6 | tarball_url="https://ftp.gnu.org/gnu/findutils/findutils-${version}.tar.xz" 7 | tarball_blake2b="2eebdcb425c04170d17afb80e7270ba095bd691660d961dcfa731141633d3bb597d0b47d69ed17e891ef884a36d4c232885097e45b41d3d3ac79dbeae6ee2282" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure \ 17 | --without-selinux 18 | } 19 | 20 | build() { 21 | make -j${parallelism} 22 | } 23 | 24 | package() { 25 | DESTDIR="${dest_dir}" make install 26 | 27 | post_package_strip 28 | } 29 | -------------------------------------------------------------------------------- /recipes/fontconfig: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=fontconfig 4 | version=2.16.2 5 | revision=1 6 | git_url="https://gitlab.freedesktop.org/fontconfig/fontconfig.git" 7 | commit=c1bdf4f542f56d3b5035ec2806ed7a685f831c1b 8 | imagedeps="git meson ninja-build gperf" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs freetype2 libexpat libxml" 11 | 12 | configure() { 13 | meson_configure \ 14 | -Dxml-backend=libxml2 15 | } 16 | 17 | build() { 18 | ninja -j${parallelism} 19 | } 20 | 21 | package() { 22 | DESTDIR="${dest_dir}" ninja install 23 | 24 | rm -v "${dest_dir}${prefix}"/lib/*.a 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/freeglut: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=freeglut 4 | version=3.6.0 5 | revision=1 6 | tarball_url="https://github.com/freeglut/freeglut/releases/download/v${version}/freeglut-${version}.tar.gz" 7 | tarball_blake2b="c42985013aafbe0e21369295f67355f2b498f284289fceed9baff5de6a46b7fee2a2ee07e00c136f65caa9159b635df82030a112eae101f9f82751abd76636e4" 8 | imagedeps="cmake ninja-build git" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs libxi mesa glu" 11 | 12 | configure() { 13 | CFLAGS="$TARGET_CFLAGS -std=gnu17" \ 14 | CXXFLAGS="$TARGET_CXXFLAGS" \ 15 | LDFLAGS="$TARGET_LDFLAGS" \ 16 | cmake_configure_noflags \ 17 | -DFREEGLUT_BUILD_DEMOS=OFF \ 18 | -DFREEGLUT_BUILD_STATIC_LIBS=OFF 19 | } 20 | 21 | build() { 22 | ninja -j${parallelism} 23 | } 24 | 25 | package() { 26 | DESTDIR="${dest_dir}" ninja install 27 | 28 | post_package_strip 29 | } 30 | -------------------------------------------------------------------------------- /recipes/freestnd-c-hdrs: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=freestnd-c-hdrs 4 | skip_pkg_check=yes 5 | version=0.0git 6 | revision=1 7 | git_url="https://codeberg.org/osdev/freestnd-c-hdrs.git" 8 | commit=4039f438fb1dc1064d8e98f70e1cf122f91b763b 9 | 10 | build() { 11 | cp -rpf "${source_dir}"/. ./ 12 | } 13 | 14 | package() { 15 | DESTDIR="${dest_dir}" PREFIX="${prefix}" make install 16 | } 17 | -------------------------------------------------------------------------------- /recipes/freestnd-cxx-hdrs: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=freestnd-cxx-hdrs 4 | skip_pkg_check=yes 5 | version=0.0git 6 | revision=1 7 | git_url="https://codeberg.org/osdev/freestnd-cxx-hdrs.git" 8 | commit=85096df5361a4d7ef2ce46947e555ec248c2858e 9 | 10 | build() { 11 | cp -rpf "${source_dir}"/. ./ 12 | } 13 | 14 | package() { 15 | DESTDIR="${dest_dir}" PREFIX="${prefix}" make install 16 | } 17 | -------------------------------------------------------------------------------- /recipes/freetype2: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=freetype2 4 | repology_id=freetype 5 | version=2.13.3 6 | revision=1 7 | tarball_url="https://download.savannah.gnu.org/releases/freetype/freetype-${version}.tar.xz" 8 | tarball_blake2b="f9591c6998df02b072adaf38a968e91deae8ed4d53ea0cb74d08982c4f0e48b1a98c1378a698164e4f730f07a3b0bea308a94fcc2e2b8ce9967dbf9478b599bd" 9 | imagedeps="build-essential" 10 | hostdeps="gcc pkg-config" 11 | deps="core-libs bzip2 libpng zlib" 12 | 13 | prepare() { 14 | autotools_recursive_regen 15 | } 16 | 17 | configure() { 18 | autotools_configure \ 19 | --enable-freetype-config \ 20 | --with-harfbuzz=no 21 | } 22 | 23 | build() { 24 | make -j${parallelism} 25 | } 26 | 27 | package() { 28 | DESTDIR="${dest_dir}" make install 29 | 30 | post_package_strip 31 | } 32 | -------------------------------------------------------------------------------- /recipes/fribidi: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=fribidi 4 | version=1.0.16 5 | revision=1 6 | tarball_url="https://github.com/fribidi/fribidi/releases/download/v${version}/fribidi-${version}.tar.xz" 7 | tarball_blake2b="9a0dce6152ba0f0ca4a42a83ca0f6d234fb9fef2a681d274aab6922e3394b70430e677fd549b17b13d928d733c0e72a7e3527cfb461971bbfd155ec1bd5e738c" 8 | imagedeps="meson ninja-build build-essential" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs" 11 | 12 | configure() { 13 | meson_configure 14 | } 15 | 16 | build() { 17 | ninja -j${parallelism} 18 | } 19 | 20 | package() { 21 | DESTDIR="${dest_dir}" ninja install 22 | 23 | post_package_strip 24 | } 25 | -------------------------------------------------------------------------------- /recipes/frigg: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=frigg 4 | skip_pkg_check=yes 5 | version=0.0git 6 | revision=1 7 | git_url="https://github.com/managarm/frigg.git" 8 | commit=41b8f556db2646c4417d227b5174a66f03d86a43 9 | imagedeps="meson ninja-build" 10 | hostdeps="pkg-config" 11 | 12 | configure() { 13 | meson_configure \ 14 | --includedir=share/frigg/include \ 15 | -Dbuild_tests=disabled 16 | } 17 | 18 | build() { 19 | ninja -j${parallelism} 20 | } 21 | 22 | package() { 23 | DESTDIR="${dest_dir}" ninja install 24 | 25 | post_package_strip 26 | } 27 | -------------------------------------------------------------------------------- /recipes/gawk: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=gawk 4 | version=5.3.2 5 | revision=1 6 | tarball_url="https://ftp.gnu.org/gnu/gawk/gawk-${version}.tar.xz" 7 | tarball_blake2b="8536777bb45c63d737ef08b3f1b98285cb29ec54400e35b2139c2bc66b464e3ec4950274614d95d94dc7eae18c57333b7c30a44d993855258155fc82b749042a" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs mpfr gmp readline" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/gdbm: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=gdbm 4 | version=1.25 5 | revision=1 6 | tarball_url="https://ftp.gnu.org/gnu/gdbm/gdbm-${version}.tar.gz" 7 | tarball_blake2b="6abf5f77823dda7ebcaa775d58f7a311c8f73c7521fe223398b5cb4b4831ad177cfd87fd42f2b24ca2fc5984af7d51abcc5e509ceb6aab2746a52aecb550654b" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs readline" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure \ 17 | --enable-libgdbm-compat 18 | } 19 | 20 | build() { 21 | make -j${parallelism} 22 | } 23 | 24 | package() { 25 | DESTDIR="${dest_dir}" make install 26 | 27 | post_package_strip 28 | } 29 | -------------------------------------------------------------------------------- /recipes/gdk-pixbuf: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=gdk-pixbuf 4 | version=2.42.12 5 | revision=1 6 | tarball_url="https://download.gnome.org/sources/gdk-pixbuf/2.42/gdk-pixbuf-${version}.tar.xz" 7 | tarball_blake2b="718a96c9efb836a275692ccbc403df0eb285918c5867d344406f660898c7ce8aad8cce7187faf7f6e9cdcfd1b051d5384f57644d946b888baddbaafb8f99309c" 8 | imagedeps="meson ninja-build libglib2.0-dev" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs glib libjpeg-turbo libpng libx11 libtiff" 11 | 12 | configure() { 13 | meson_configure \ 14 | -Dgio_sniffing=false \ 15 | -Dman=false 16 | } 17 | 18 | build() { 19 | ninja -j${parallelism} 20 | } 21 | 22 | package() { 23 | DESTDIR="${dest_dir}" ninja install 24 | 25 | post_package_strip 26 | } 27 | -------------------------------------------------------------------------------- /recipes/gettext: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=gettext 4 | repology_srcname=gettext 5 | version=0.24.1 6 | revision=1 7 | tarball_url="https://ftp.gnu.org/gnu/gettext/gettext-${version}.tar.xz" 8 | tarball_blake2b="248960052c6f54aa9bc4c3b43822e7353d64152480103ced9e02c2abf298d3e7b48a69c0c03a6c61a76299cfcd0f6ed01e9d5c250f7d41cf21b20b0074eea5a3" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure 18 | } 19 | 20 | build() { 21 | make -j${parallelism} 22 | } 23 | 24 | package() { 25 | DESTDIR="${dest_dir}" make install 26 | 27 | # Remove conflicting libintl files 28 | rm -f "${dest_dir}${prefix}"/include/libintl.h 29 | rm -f "${dest_dir}${prefix}"/lib/libintl.so* 30 | rm -f "${dest_dir}${prefix}"/share/locale/locale.alias 31 | 32 | post_package_strip 33 | } 34 | -------------------------------------------------------------------------------- /recipes/git: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=git 4 | version=2.45.2 5 | revision=1 6 | tarball_url="https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz" 7 | tarball_blake2b="477acc786c26e0b04843ad6d07333607b2274d587263d72c6d036cade725e6f62f8c773903f401c799de71527d0473589afc507eec02f445e0c148dd7cbf407c" 8 | imagedeps="build-essential libcurl4-gnutls-dev" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs python zlib curl openssl openssh" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | cp -rp ${source_dir}/. . 18 | 19 | configure_script_path=./configure \ 20 | ac_cv_iconv_omits_bom=yes \ 21 | ac_cv_fread_reads_directories=no \ 22 | ac_cv_snprintf_returns_bogus=no \ 23 | autotools_configure \ 24 | CFLAGS="$TARGET_CFLAGS -std=gnu17" \ 25 | --with-gitconfig=/etc/gitconfig \ 26 | --with-python=python3 27 | } 28 | 29 | build() { 30 | make -j${parallelism} 31 | } 32 | 33 | package() { 34 | DESTDIR="${dest_dir}" make install 35 | 36 | post_package_strip 37 | } 38 | -------------------------------------------------------------------------------- /recipes/glib: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=glib 4 | version=2.84.1 5 | revision=1 6 | tarball_url="https://download.gnome.org/sources/glib/2.84/glib-${version}.tar.xz" 7 | tarball_blake2b="d20ade482eb95873adaefc656e22c57e6712a6263a4812e448220040e30144919331cb279566a89a2ab46495b46d6a79e3821e491317587325fa3a64b40d62cc" 8 | imagedeps="meson ninja-build python3-docutils" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs pcre2 libffi zlib" 11 | 12 | configure() { 13 | meson_configure \ 14 | -Dglib_debug=disabled \ 15 | -Dman-pages=enabled \ 16 | -Dsysprof=disabled \ 17 | -Dintrospection=disabled \ 18 | -Dxattr=false 19 | } 20 | 21 | build() { 22 | ninja -j${parallelism} 23 | } 24 | 25 | package() { 26 | DESTDIR="${dest_dir}" ninja install 27 | 28 | post_package_strip 29 | } 30 | -------------------------------------------------------------------------------- /recipes/glu: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=glu 4 | version=9.0.3 5 | revision=1 6 | tarball_url="https://archive.mesa3d.org/glu/glu-${version}.tar.xz" 7 | tarball_blake2b="a6fc842004dcca4243ef285e26806afdfb931d21985ad8f9a3f03f438e66b810718bf04e588044ed8db99990e49f806d346dc2ce69cfa91450f046a4dfa39136" 8 | imagedeps="meson ninja-build" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs mesa" 11 | 12 | configure() { 13 | meson_configure \ 14 | -Dgl_provider=gl 15 | } 16 | 17 | build() { 18 | ninja -j${parallelism} 19 | } 20 | 21 | package() { 22 | DESTDIR="${dest_dir}" ninja install 23 | 24 | post_package_strip 25 | } 26 | -------------------------------------------------------------------------------- /recipes/gmp: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=gmp 4 | version=6.3.0 5 | revision=1 6 | tarball_url="https://ftp.gnu.org/gnu/gmp/gmp-${version}.tar.xz" 7 | tarball_blake2b="a865129e2b3f634ec5bad7f97ed89532e43f5662ac47a7d8ab7f0df8c9f8d0886bd984651422e2573c2163bca69c0547c248147ec90880accbd53db97dc0ddee" 8 | imagedeps="build-essential" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure \ 18 | CFLAGS="$TARGET_CFLAGS -std=gnu17" \ 19 | --enable-cxx 20 | } 21 | 22 | build() { 23 | make -j${parallelism} 24 | } 25 | 26 | package() { 27 | DESTDIR="${dest_dir}" make install 28 | 29 | post_package_strip 30 | } 31 | -------------------------------------------------------------------------------- /recipes/graphite2: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=graphite2 4 | version=1.3.14 5 | revision=1 6 | tarball_url="https://github.com/silnrsi/graphite/releases/download/${version}/graphite2-${version}.tgz" 7 | tarball_blake2b="72bf6736aaa8476a89e44ef53c5b6c94f45d815fe1a451ba6b3696bfe023971210975dee4a9c8cb3042f36442e4efecf5baf171ef4230ad2b10694a89865f918" 8 | imagedeps="cmake ninja-build" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs" 11 | 12 | configure() { 13 | cmake_configure 14 | } 15 | 16 | build() { 17 | ninja -j${parallelism} 18 | } 19 | 20 | package() { 21 | DESTDIR="${dest_dir}" ninja install 22 | 23 | post_package_strip 24 | } 25 | -------------------------------------------------------------------------------- /recipes/grep: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=grep 4 | version=3.12 5 | revision=1 6 | tarball_url="https://ftp.gnu.org/gnu/grep/grep-${version}.tar.xz" 7 | tarball_blake2b="93d06bce04793f4b4c94d92febc6092f669e50e1bfc1bef3c911a2ca322560bdab8619e88a05a4d6ea4908b2d01da1926a99a22eecc513bd48b8957984bdfa12" 8 | imagedeps="gperf" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs pcre2" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure 18 | } 19 | 20 | build() { 21 | make -j${parallelism} 22 | } 23 | 24 | package() { 25 | DESTDIR="${dest_dir}" make install 26 | 27 | post_package_strip 28 | } 29 | -------------------------------------------------------------------------------- /recipes/groff: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=groff 4 | version=1.23.0 5 | revision=1 6 | tarball_url="https://ftp.gnu.org/gnu/groff/groff-${version}.tar.gz" 7 | tarball_blake2b="9fc5a2302f034761a17f0639a04b82c536ba8a7db15b062dd736e0011fc5a27fddcaf035af128d09f06762825d9bb965e8f5561e4be7a9fea3fe86ca5f6cb2dd" 8 | imagedeps="groff" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure \ 18 | CFLAGS="$TARGET_CFLAGS -std=gnu17" 19 | } 20 | 21 | build() { 22 | make -j${parallelism} GROFFBIN=groff GROFF_BIN_PATH=/usr/bin 23 | } 24 | 25 | package() { 26 | DESTDIR="${dest_dir}" make install 27 | 28 | rm -f "${dest_dir}${prefix}/lib/charset.alias" 29 | 30 | # Move documentation to the correct location 31 | mv ${dest_dir}${prefix}/share/doc/groff-${version} ${dest_dir}${prefix}/share/doc/groff 32 | 33 | post_package_strip 34 | } 35 | -------------------------------------------------------------------------------- /recipes/gsettings-desktop-schemas: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=gsettings-desktop-schemas 4 | version=48.0 5 | revision=1 6 | tarball_url="https://download.gnome.org/sources/gsettings-desktop-schemas/48/gsettings-desktop-schemas-${version}.tar.xz" 7 | tarball_blake2b="b65b7c2e5c1951623b07cbe6e5c7b39c8dd5ccf222bcac18a1fb5b92d21ce072ffe51d89202b173394ece4dcd23ad1936b844c39fc76facaf1f704583a0603bd" 8 | imagedeps="meson ninja-build libglib2.0-dev" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs glib" 11 | 12 | prepare() { 13 | sed -i -r 's:"(/system):"/org/gnome\1:g' schemas/*.in 14 | } 15 | 16 | configure() { 17 | meson_configure \ 18 | -Dintrospection=false 19 | } 20 | 21 | build() { 22 | ninja -j${parallelism} 23 | } 24 | 25 | package() { 26 | DESTDIR="${dest_dir}" ninja install 27 | 28 | glib-compile-schemas "${dest_dir}${prefix}"/share/glib-2.0/schemas 29 | rm "${dest_dir}${prefix}"/share/glib-2.0/schemas/gschemas.compiled 30 | 31 | post_package_strip 32 | } 33 | -------------------------------------------------------------------------------- /recipes/gtk+-3: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=gtk+-3 4 | repology_id=gtk 5 | repology_srcname=gtk3 6 | version=3.24.49 7 | revision=1 8 | git_url="https://gitlab.gnome.org/GNOME/gtk.git" 9 | commit=198aeace1e9e119c77f4d669bd8efdf337828ad1 10 | imagedeps="meson ninja-build libglib2.0-dev libgdk-pixbuf-2.0 python3-packaging" 11 | hostdeps="gcc pkg-config" 12 | deps="core-libs at-spi2-core cairo glib gdk-pixbuf libx11 libxext libxcb libxinerama libxrender libxrandr libxfixes libxdamage pango fribidi libepoxy libxkbcommon fontconfig freetype2 libxi harfbuzz libxcursor gsettings-desktop-schemas dbus hicolor-icon-theme" 13 | 14 | configure() { 15 | meson_configure \ 16 | -Dprint_backends=file \ 17 | -Dintrospection=false \ 18 | -Dx11_backend=true \ 19 | -Dbroadway_backend=true \ 20 | -Dwayland_backend=false \ 21 | -Dcolord=no 22 | } 23 | 24 | build() { 25 | ninja -j${parallelism} 26 | } 27 | 28 | package() { 29 | DESTDIR="${dest_dir}" ninja install 30 | 31 | glib-compile-schemas "${dest_dir}${prefix}"/share/glib-2.0/schemas 32 | rm "${dest_dir}${prefix}"/share/glib-2.0/schemas/gschemas.compiled 33 | 34 | post_package_strip 35 | } 36 | -------------------------------------------------------------------------------- /recipes/gzip: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=gzip 4 | version=1.14 5 | revision=1 6 | tarball_url="https://ftp.gnu.org/gnu/gzip/gzip-${version}.tar.xz" 7 | tarball_blake2b="32f7241bd9f3b7f73a59905a5bc9abf4e360e787f692cbb00ad28d48abee52744846d10c07ce2f7aaa3e66bc4b6ab9cd4f1b8e98854bb7d1ec010ae0d5146932" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/harfbuzz: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=harfbuzz 4 | version=11.2.0 5 | revision=1 6 | tarball_url="https://github.com/harfbuzz/harfbuzz/releases/download/${version}/harfbuzz-${version}.tar.xz" 7 | tarball_blake2b="112693a42120407c25b8bf84ed14f7a481810f34557132e5902e5eeaa967071d0aa785961541b7779b7d36f353c54b6f3167c3ab6bdb81238a69d385dab3ebfe" 8 | imagedeps="meson ninja-build" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs graphite2 glib zlib freetype2 cairo icu" 11 | 12 | configure() { 13 | cp -rp "${source_dir}"/. ./ 14 | 15 | mkdir build && cd build 16 | 17 | meson_source_dir=.. \ 18 | meson_configure \ 19 | -Dcpp_std=c++17 \ 20 | -Dgraphite2=enabled \ 21 | -Dglib=enabled \ 22 | -Dgobject=disabled \ 23 | -Dicu=enabled \ 24 | -Dfreetype=enabled \ 25 | -Dcairo=enabled \ 26 | -Dintrospection=disabled \ 27 | -Dtests=disabled 28 | 29 | cd .. 30 | } 31 | 32 | build() { 33 | ( cd build && ninja -j${parallelism} ) 34 | } 35 | 36 | package() { 37 | ( cd build && DESTDIR="${dest_dir}" ninja install ) 38 | 39 | post_package_strip 40 | } 41 | -------------------------------------------------------------------------------- /recipes/hicolor-icon-theme: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=hicolor-icon-theme 4 | version=0.18 5 | revision=1 6 | tarball_url="https://icon-theme.freedesktop.org/releases/hicolor-icon-theme-${version}.tar.xz" 7 | tarball_blake2b="afa724777d1bfcb40fc94477a473a6c12958888ef442bd3f672abb98eaac5c4f91e025c8c131690c5557d369182e7f687fed745d604509bdffdac269bf0bcdde" 8 | imagedeps="meson ninja-build" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs" 11 | 12 | configure() { 13 | meson_configure 14 | } 15 | 16 | build() { 17 | ninja -j${parallelism} 18 | } 19 | 20 | package() { 21 | DESTDIR="${dest_dir}" ninja install 22 | } 23 | -------------------------------------------------------------------------------- /recipes/icu: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=icu 4 | version=77.1 5 | revision=1 6 | tarball_url="https://github.com/unicode-org/icu/releases/download/release-77-1/icu4c-77_1-src.tgz" 7 | tarball_blake2b="7ee4457dbb9abfee543aa91314e052282fb1c73e5fd9d9b21777d2ea32ae29c3eb3d83a78aafc7d00530435c014aa0f6196faf82ed67593c844e28395ab4720e" 8 | source_imagedeps="build-essential pkg-config" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | cp source/config/{mh-linux,mh-unknown} 15 | 16 | mkdir -p cross-build 17 | cd cross-build 18 | 19 | ${source_dir}/source/configure \ 20 | CFLAGS="$HOST_CFLAGS" \ 21 | CXXFLAGS="$HOST_CXXFLAGS" \ 22 | LDFLAGS="$HOST_LDFLAGS" \ 23 | --prefix=/usr/local 24 | 25 | make -j${parallelism} 26 | cd .. 27 | } 28 | 29 | configure() { 30 | configure_script_path=${source_dir}/source/configure \ 31 | autotools_configure \ 32 | --with-cross-build=${source_dir}/cross-build 33 | } 34 | 35 | build() { 36 | make -j${parallelism} 37 | } 38 | 39 | package() { 40 | DESTDIR="${dest_dir}" make install 41 | 42 | post_package_strip 43 | } 44 | -------------------------------------------------------------------------------- /recipes/init: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=init 4 | skip_pkg_check=yes 5 | version=0.0git 6 | revision=1 7 | source_dir="init" 8 | hostdeps="gcc v" 9 | deps="core-libs" 10 | 11 | build() { 12 | cp -rp "${source_dir}"/. ./ 13 | 14 | set -x 15 | 16 | local PROD_FLAG="" 17 | if [ "$PROD" = "true" ]; then 18 | PROD_FLAG="-prod" 19 | fi 20 | VCROSS_COMPILER_NAME=${OS_TRIPLET}-gcc v -os vinix -gc none $PROD_FLAG -cflags "$TARGET_CFLAGS" -ldflags "$TARGET_LDFLAGS" . 21 | 22 | set +x 23 | } 24 | 25 | package() { 26 | install -d "${dest_dir}/usr/bin" 27 | install init "${dest_dir}/usr/bin/" 28 | 29 | post_package_strip 30 | } 31 | -------------------------------------------------------------------------------- /recipes/kernel: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=kernel 4 | skip_pkg_check=yes 5 | version=0.0git 6 | revision=1 7 | source_dir="kernel" 8 | source_imagedeps="git" 9 | source_allow_network="yes" 10 | hostdeps="gcc v" 11 | deps="core-libs" 12 | 13 | prepare() { 14 | ./get-deps 15 | } 16 | 17 | build() { 18 | cp -rpf "${source_dir}"/. ./ 19 | 20 | make -j${parallelism} \ 21 | PROD="$PROD" \ 22 | CC=${OS_TRIPLET}-gcc \ 23 | LD=${OS_TRIPLET}-ld \ 24 | AR=${OS_TRIPLET}-ar \ 25 | OBJDUMP=${OS_TRIPLET}-objdump 26 | } 27 | 28 | package() { 29 | make install PREFIX="${prefix}" DESTDIR="${dest_dir}" 30 | 31 | post_package_strip 32 | } 33 | -------------------------------------------------------------------------------- /recipes/less: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=less 4 | version=668 5 | revision=1 6 | tarball_url="https://www.greenwoodsoftware.com/less/less-${version}.tar.gz" 7 | tarball_blake2b="0f6a85a1c66577dd2a28682a6f8399e42fdbe9fc1498b2e89c6bb7c47109e8d3ab934abe5dd998b2c8dfacfb174ad9daeb79b3d4c13df22fa035ea792b2eaf5e" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs ncurses" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | make install DESTDIR="${dest_dir}" 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/libarchive: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libarchive 4 | version=3.7.9 5 | revision=1 6 | tarball_url="https://github.com/libarchive/libarchive/releases/download/v${version}/libarchive-${version}.tar.xz" 7 | tarball_blake2b="7bcfb3fe8ffd9452f3d71cdc738144069594030278572ebba0bb247ad74fd68ec19822f281364878228ee311976e216614d4764e56c5fb7f98801695ab7aa7f4" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs zlib xz zstd libexpat libxml" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/libatomic: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libatomic 4 | from_source=gcc-host 5 | clean_workdirs=no 6 | skip_pkg_check=yes 7 | revision=1 8 | hostdeps="gcc pkg-config" 9 | imagedeps="experimental:build-essential" 10 | deps="mlibc libgcc libstdc++" 11 | 12 | build() { 13 | cd "${base_dir}"/host-builds/gcc/build 14 | 15 | make -j${parallelism} all-target-libatomic 16 | } 17 | 18 | package() { 19 | cd "${base_dir}"/host-builds/gcc/build 20 | 21 | rm -rf tmp_libatomic_dir 22 | mkdir tmp_libatomic_dir 23 | 24 | DESTDIR="$(realpath tmp_libatomic_dir)" make install-target-libatomic 25 | 26 | mkdir -p "${dest_dir}${prefix}" 27 | cp -r tmp_libatomic_dir/usr/local/${OS_TRIPLET}/* "${dest_dir}${prefix}"/ 28 | 29 | # Copy libatomic into GCC's tree else it will complain. 30 | mkdir -p "${base_dir}"/host-pkgs/gcc/usr/local/${OS_TRIPLET} 31 | cp -r tmp_libatomic_dir/usr/local/${OS_TRIPLET}/* "${base_dir}"/host-pkgs/gcc/usr/local/${OS_TRIPLET}/ 32 | } 33 | -------------------------------------------------------------------------------- /recipes/libepoxy: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libepoxy 4 | version=1.5.10 5 | revision=1 6 | tarball_url="https://download.gnome.org/sources/libepoxy/1.5/libepoxy-${version}.tar.xz" 7 | tarball_blake2b="105267b1b19acf8c86e5e9d23741dfc738e014de4f0b30f88e7ec22f98497cc8e006d729f17b5698780ca1dd782bad99f73ae685b2bf882b77670bb6c4b959c9" 8 | imagedeps="meson ninja-build" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs mesa xorg-proto libx11" 11 | 12 | configure() { 13 | meson_configure \ 14 | -Degl=no \ 15 | -Dtests=false 16 | } 17 | 18 | build() { 19 | ninja -j${parallelism} 20 | } 21 | 22 | package() { 23 | DESTDIR="${dest_dir}" ninja install 24 | 25 | post_package_strip 26 | } 27 | -------------------------------------------------------------------------------- /recipes/libexpat: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libexpat 4 | repology_id=expat 5 | version=2.7.1 6 | revision=1 7 | tarball_url="https://github.com/libexpat/libexpat/releases/download/R_2_7_1/expat-${version}.tar.xz" 8 | tarball_blake2b="243ef1c3578234135018d31b567c88a50cadddac86441e4d4a6d6330e113596edbad13b40c79f541d49487e7df98d798032d39ec28b7d67d22f46e4290d14519" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure 18 | } 19 | 20 | build() { 21 | make -j${parallelism} 22 | } 23 | 24 | package() { 25 | DESTDIR="${dest_dir}" make install 26 | 27 | post_package_strip 28 | } 29 | -------------------------------------------------------------------------------- /recipes/libffi: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libffi 4 | version=3.4.8 5 | revision=1 6 | tarball_url="https://github.com/libffi/libffi/releases/download/v${version}/libffi-${version}.tar.gz" 7 | tarball_blake2b="10b3d970dc598fb8689bca49751cda499ddc5216baf89d38625385b0d42d57f10d15cce3c4c044c9c73a4fce384c26f2a8e1b99269e9db1174c2631201c6bfd4" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/libfontenc: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libfontenc 4 | version=1.1.8 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/lib/libfontenc-${version}.tar.gz" 7 | tarball_blake2b="6d613cf17a3414fadb3961eea5493de33bbcdc6d19909d1ac7fa10d9b9c4eba59478f5fa59ac4758a86307fb2c04f40dbcc345203be9161e939de73bc7f93d3a" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs xorg-proto zlib" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/libgcc: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libgcc 4 | from_source=gcc-host 5 | clean_workdirs=no 6 | skip_pkg_check=yes 7 | revision=1 8 | hostdeps="gcc pkg-config" 9 | imagedeps="experimental:build-essential" 10 | deps="mlibc" 11 | 12 | build() { 13 | cd "${base_dir}"/host-builds/gcc/build 14 | 15 | make -j${parallelism} all-target-libgcc 16 | } 17 | 18 | package() { 19 | cd "${base_dir}"/host-builds/gcc/build 20 | 21 | rm -rf tmp_libgcc_dir 22 | mkdir tmp_libgcc_dir 23 | 24 | DESTDIR="$(realpath tmp_libgcc_dir)" make install-target-libgcc 25 | 26 | mkdir -p "${dest_dir}${prefix}" 27 | 28 | cp -r tmp_libgcc_dir/usr/local/lib "${dest_dir}${prefix}"/ 29 | cp -r tmp_libgcc_dir/usr/local/${OS_TRIPLET}/* "${dest_dir}${prefix}"/ 30 | 31 | # Copy libgcc into GCC's tree else it will complain. 32 | mkdir -p "${base_dir}"/host-pkgs/gcc/usr/local/lib 33 | cp -r tmp_libgcc_dir/usr/local/lib/* "${base_dir}"/host-pkgs/gcc/usr/local/lib/ 34 | } 35 | -------------------------------------------------------------------------------- /recipes/libgcrypt: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libgcrypt 4 | version=1.11.0 5 | revision=1 6 | tarball_url="https://www.gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-${version}.tar.gz" 7 | tarball_blake2b="8676efd76a93c6bb9cbfc227d101164782a51f2e399a8c073bf821ee2906c92382b57dd9ef6dae93f9825aca114f32d02dc31d18324e79252457112a0e30c3f3" 8 | imagedeps="build-essential libgpg-error-dev" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs libgpg-error" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure \ 18 | --disable-dev-random \ 19 | --with-libgpg-error-prefix="${sysroot_dir}${prefix}" 20 | } 21 | 22 | build() { 23 | make -j${parallelism} 24 | } 25 | 26 | package() { 27 | DESTDIR="${dest_dir}" make install 28 | 29 | post_package_strip 30 | } 31 | -------------------------------------------------------------------------------- /recipes/libgpg-error: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libgpg-error 4 | version=1.55 5 | revision=1 6 | tarball_url="https://www.gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-${version}.tar.gz" 7 | tarball_blake2b="5d222849c48aba34257f8c402c51318bcdf66a2c485668b852b322763d090b90d0724e2a0d9857f615bb87227d36720b2595593f7727c54688f5ba08c3c8eafc" 8 | imagedeps="build-essential" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs" 11 | 12 | prepare() { 13 | cp -v src/syscfg/lock-obj-pub.$ARCHITECTURE-unknown-linux-gnu.h src/syscfg/lock-obj-pub.vinix-mlibc.h 14 | 15 | autotools_recursive_regen 16 | } 17 | 18 | configure() { 19 | autotools_configure 20 | } 21 | 22 | build() { 23 | make -j${parallelism} \ 24 | CFLAGS_FOR_BUILD="$HOST_CFLAGS" \ 25 | CXXFLAGS_FOR_BUILD="$HOST_CXXFLAGS" \ 26 | LDFLAGS_FOR_BUILD="$HOST_LDFLAGS" 27 | } 28 | 29 | package() { 30 | DESTDIR="${dest_dir}" make install 31 | 32 | post_package_strip 33 | } 34 | -------------------------------------------------------------------------------- /recipes/libice: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libice 4 | version=1.1.2 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/lib/libICE-${version}.tar.gz" 7 | tarball_blake2b="4715895d10490c526d72032653f52b04d3c3d8f1b6be9fb2ff65a081c5dfccbaa14932588e24a16c8c48e6cc6b348c53f8ce1ccba82e8ca0bbf645b0f82123cd" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs xorg-proto xtrans" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/libiconv: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libiconv 4 | version=1.18 5 | revision=1 6 | tarball_url="https://ftp.gnu.org/gnu/libiconv/libiconv-${version}.tar.gz" 7 | tarball_blake2b="374e7a7299d4814d372d8e63246c11f403f9fc990be5b129d016b92a875d2f8e9697ef4ef5cbd2e7b7fc97dff427c6b8abf6a99da792fcabd6fc36af38cd4723" 8 | imagedeps="binutils" 9 | hostdeps="gcc pkg-config" 10 | deps="mlibc libgcc libstdc++ libatomic" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure 18 | } 19 | 20 | build() { 21 | make -j${parallelism} 22 | } 23 | 24 | package() { 25 | DESTDIR="${dest_dir}" make install 26 | 27 | # Move documentation into a sub-directory 28 | mkdir -p "${dest_dir}${prefix}/share/doc/libiconv" 29 | mv "${dest_dir}${prefix}/share/doc"/*.html "${dest_dir}${prefix}/share/doc/libiconv/" 30 | 31 | mkdir -p "${dest_dir}${prefix}/lib/pkgconfig" 32 | cat <"${dest_dir}${prefix}/lib/pkgconfig/iconv.pc" 33 | prefix=${prefix} 34 | exec_prefix=\${prefix} 35 | bindir=\${exec_prefix}/bin 36 | libdir=\${exec_prefix}/lib 37 | includedir=\${prefix}/include 38 | 39 | Name: iconv 40 | Description: libiconv library 41 | Version: ${version} 42 | Libs: -L\${libdir} -liconv 43 | Cflags: -I\${includedir} 44 | EOF 45 | 46 | post_package_strip 47 | } 48 | -------------------------------------------------------------------------------- /recipes/libidn2: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | name=libidn2 4 | version=2.3.8 5 | revision=1 6 | tarball_url="https://ftp.gnu.org/gnu/libidn/libidn2-${version}.tar.gz" 7 | tarball_blake2b="8b34975a5a469353ac960ade97d0b67080e811c0d0eb7b11dcb6a4b352753da59b17c812bab8c969877bfe027fc3de0a36b7c6b75942811f17938b676238fb3d" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs libunistring" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/libintl: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libintl 4 | skip_pkg_check=yes 5 | from_source=gettext 6 | revision=1 7 | hostdeps="gcc pkg-config" 8 | deps="mlibc libgcc libstdc++ libatomic libiconv" 9 | 10 | configure() { 11 | autotools_configure \ 12 | --without-emacs \ 13 | --without-lispdir \ 14 | `# Normally this controls nls behavior in general, but the libintl` \ 15 | `# subdir is skipped unless this is explicitly set.` \ 16 | --enable-nls \ 17 | `# This magic flag enables libintl.` \ 18 | --with-included-gettext \ 19 | --disable-c++ \ 20 | --disable-libasprintf \ 21 | --disable-java \ 22 | --enable-threads=posix \ 23 | --disable-curses \ 24 | --without-git \ 25 | --without-cvs \ 26 | --without-bzip2 \ 27 | --without-xz 28 | 29 | sed -i 's/touch $@//g' gettext-runtime/intl/Makefile 30 | } 31 | 32 | build() { 33 | make -C gettext-runtime/intl -j${parallelism} 34 | } 35 | 36 | package() { 37 | DESTDIR="${dest_dir}" make -C gettext-runtime/intl install 38 | 39 | post_package_strip 40 | } 41 | -------------------------------------------------------------------------------- /recipes/libjpeg-turbo: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libjpeg-turbo 4 | version=3.1.0 5 | revision=1 6 | tarball_url="https://github.com/libjpeg-turbo/libjpeg-turbo/archive/refs/tags/${version}.tar.gz" 7 | tarball_blake2b="cd02ff01525a8a720f28a3766f18941244cd8e6776ae22735730e0392dc9e9e0659c075aaad7e3371d7e3f9306a4dc8e4514fcb90a00e5ce442f0534ec393862" 8 | imagedeps="cmake ninja-build git nasm" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs" 11 | 12 | configure() { 13 | cmake_configure \ 14 | -DWITH_JPEG8=ON 15 | } 16 | 17 | build() { 18 | ninja -j${parallelism} 19 | } 20 | 21 | package() { 22 | DESTDIR="${dest_dir}" ninja install 23 | 24 | post_package_strip 25 | } 26 | -------------------------------------------------------------------------------- /recipes/libpipeline: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libpipeline 4 | version=1.5.8 5 | revision=1 6 | tarball_url="https://download.savannah.nongnu.org/releases/libpipeline/libpipeline-${version}.tar.gz" 7 | tarball_blake2b="1feb1a9493fd0850b4e3e446619e7e042bd97d8c0bbb3e13a91d90d6cde3ca2c17fb8a3ca256f65291dadc4d8703ad5d3a795839bf8280adc4547b3ec3d2da7d" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/libpng: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libpng 4 | version=1.6.48 5 | revision=1 6 | tarball_url="https://download.sourceforge.net/libpng/libpng-${version}.tar.xz" 7 | tarball_blake2b="2aec3b237d8cf2109186518a1604d9d10e0ef6739730988e01b91f20d48dcd736a293d3c96bed719807778a68273d1bf5cc2467fc19852dbfffd39295fcbf515" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs zlib" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/libpsl: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libpsl 4 | version=0.21.5 5 | revision=1 6 | tarball_url="https://github.com/rockdaboot/libpsl/releases/download/${version}/libpsl-${version}.tar.gz" 7 | tarball_blake2b="a0076f622b85df99f866de6707850ac216b764bdb68c6d516f4603da42dac8eae3ee4c53d68dbb6af6f779c2c7f1b9caab74c8b558209b1f6823f95c13fc3ceb" 8 | imagedeps="meson ninja-build" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs libidn2 libunistring" 11 | 12 | configure() { 13 | meson_configure 14 | } 15 | 16 | build() { 17 | ninja -j${parallelism} 18 | } 19 | 20 | package() { 21 | DESTDIR="${dest_dir}" ninja install 22 | 23 | post_package_strip 24 | } 25 | -------------------------------------------------------------------------------- /recipes/libsm: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libsm 4 | version=1.2.6 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/lib/libSM-${version}.tar.gz" 7 | tarball_blake2b="90bb1c08acc213cf0fbb766505d3f0973dab0ac989d1c76e88ef26a6cfedeeb27a7db06f8d3a794514888bcbc9998939978ffb4371ede330f8b98f3cb48b7a1b" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs xorg-proto libice" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/libstdc++: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libstdc++ 4 | from_source=gcc-host 5 | clean_workdirs=no 6 | skip_pkg_check=yes 7 | revision=1 8 | hostdeps="gcc pkg-config" 9 | imagedeps="experimental:build-essential" 10 | deps="mlibc libgcc" 11 | 12 | build() { 13 | cd "${base_dir}"/host-builds/gcc/build 14 | 15 | make -j${parallelism} all-target-libstdc++-v3 16 | } 17 | 18 | package() { 19 | cd "${base_dir}"/host-builds/gcc/build 20 | 21 | rm -rf tmp_libstdc++_dir 22 | mkdir tmp_libstdc++_dir 23 | 24 | DESTDIR="$(realpath tmp_libstdc++_dir)" make install-target-libstdc++-v3 25 | 26 | # For some reason this also installs libgcc even though it shouldn't... 27 | # Remove it. 28 | rm -fv tmp_libstdc++_dir/usr/local/${OS_TRIPLET}/lib/libgcc* 29 | 30 | mkdir -p "${dest_dir}${prefix}" 31 | 32 | cp -r tmp_libstdc++_dir/usr/local/share "${dest_dir}${prefix}"/ 33 | cp -r tmp_libstdc++_dir/usr/local/${OS_TRIPLET}/* "${dest_dir}${prefix}"/ 34 | 35 | # Copy libstdc++ and headers into GCC's tree else it will complain. 36 | mkdir -p "${base_dir}"/host-pkgs/gcc/usr/local/${OS_TRIPLET} 37 | cp -r tmp_libstdc++_dir/usr/local/${OS_TRIPLET}/* "${base_dir}"/host-pkgs/gcc/usr/local/${OS_TRIPLET}/ 38 | } 39 | -------------------------------------------------------------------------------- /recipes/libtiff: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libtiff 4 | repology_id=tiff 5 | version=4.7.0 6 | revision=1 7 | tarball_url="https://download.osgeo.org/libtiff/tiff-${version}.tar.xz" 8 | tarball_blake2b="a5df7f3ae71821a13ff5a31db012191dd1b022b1c87fe81f90fd4b4a1349b7aa15d7b336d5fa8ac9e84edcfac5fe46214d9ea54790cb037438c6a5334980c11e" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs freeglut libjpeg-turbo zlib zstd xz" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure \ 18 | --without-x \ 19 | --enable-zlib \ 20 | --enable-zstd \ 21 | --enable-jpeg \ 22 | --enable-lzma \ 23 | --disable-webp \ 24 | --enable-cxx 25 | } 26 | 27 | build() { 28 | make -j${parallelism} 29 | } 30 | 31 | package() { 32 | DESTDIR="${dest_dir}" make install 33 | 34 | # Move documentation to the correct location 35 | mv ${dest_dir}${prefix}/share/doc/tiff-${version} ${dest_dir}${prefix}/share/doc/tiff 36 | 37 | post_package_strip 38 | } 39 | -------------------------------------------------------------------------------- /recipes/libtool: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libtool 4 | version=2.5.4 5 | revision=1 6 | tarball_url="https://ftp.gnu.org/gnu/libtool/libtool-${version}.tar.xz" 7 | tarball_blake2b="47de3c49a690d44d7ddd5e3b5e4090c91dc5fbb9c40fc4a3963e150fb7329326ee3e21b8c149974726171c4b0380028e0efc7a369c4f04357eea46f69852e1cc" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | sed -Ei "s|/sysroot(/)?|/|g;s|/${prefix}|/|g" "${dest_dir}${prefix}"/bin/libtool 27 | 28 | post_package_strip 29 | } 30 | -------------------------------------------------------------------------------- /recipes/libunistring: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libunistring 4 | version=1.3 5 | revision=1 6 | tarball_url="https://ftp.gnu.org/gnu/libunistring/libunistring-${version}.tar.xz" 7 | tarball_blake2b="213d24ea4ba5e960a030bd83fc1b6c9d9a5e33d63ade8874e2a15d1b7a0acbe4b2d03df18065f6c17f01bfed94f7e70ef474e713f5c5ad2375cf2438457b0379" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/libwebp: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libwebp 4 | version=1.5.0 5 | revision=1 6 | tarball_url="https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${version}.tar.gz" 7 | tarball_blake2b="68e94f5592556ac4b57011a94abc651a187b23ca7cddd6791aec3f62bede7a7c176d4a67f8170a83990a6ff290a6716011bdb117818657b63bd3e21a8d5ed59e" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs libjpeg-turbo libpng freeglut sdl2-compat libtiff" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure \ 17 | --enable-libwebpmux \ 18 | --enable-libwebpdemux \ 19 | --enable-libwebpdecoder \ 20 | --enable-libwebpextras \ 21 | --enable-swap-16bit-csp 22 | } 23 | 24 | build() { 25 | make -j${parallelism} 26 | } 27 | 28 | package() { 29 | DESTDIR="${dest_dir}" make install 30 | 31 | post_package_strip 32 | } 33 | -------------------------------------------------------------------------------- /recipes/libx11: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libx11 4 | version=1.8.12 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/lib/libX11-${version}.tar.xz" 7 | tarball_blake2b="f4bdb69abb2add723ca84832ef35f239659228c1f5a3f53631f0d4d4afa7030512b9ba65479464f3efecca0e09d1f758e3b92b139dd5e716fac1b8caaf5bb98d" 8 | imagedeps="build-essential" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs xorg-proto libxcb xtrans" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure \ 18 | --with-keysymdefdir=${sysroot_dir}/usr/include/X11 19 | } 20 | 21 | build() { 22 | make -j${parallelism} 23 | } 24 | 25 | package() { 26 | DESTDIR="${dest_dir}" make install 27 | 28 | post_package_strip 29 | } 30 | -------------------------------------------------------------------------------- /recipes/libxau: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libxau 4 | version=1.0.12 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/lib/libXau-${version}.tar.gz" 7 | tarball_blake2b="f3f388352496eb2d18650bdf535e76dfe6dbdce8c20bdf0f3c99ee4fc72df469d7c4a44728d76a9102423e525cc7f52984ee03fdcbfd236cbfac8e7d8d17ba84" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs xorg-proto" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/libxaw: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libxaw 4 | version=1.0.16 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/lib/libXaw-${version}.tar.gz" 7 | tarball_blake2b="d303a6b1f586ce96c6aa2505929cd019c7383d77f55ec6be27765190fcddfa7e32e896ca8497148c9771b21f09960b5de836328608261b23da8dd892b9c3ee99" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs libxmu libxpm" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/libxcb: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libxcb 4 | version=1.17.0 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/lib/libxcb-${version}.tar.xz" 7 | tarball_blake2b="e2a35606981c00f9f18e5590cdc26c7c2efd8f832c37dc4dc82db47e2870bf4ff48786162c5a8eb713cb5f3a305eb22d334e4b0ff631bf0e047f1b79cb0701d3" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs xorg-proto libxau libxdmcp xcb-proto" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/libxcrypt: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libxcrypt 4 | version=4.4.38 5 | revision=1 6 | tarball_url="https://github.com/besser82/libxcrypt/releases/download/v${version}/libxcrypt-${version}.tar.xz" 7 | tarball_blake2b="42d594fe36f61a1b5343d9fda22541b09373fe74c587537db8203f9c92120b6c73edef2e1b3d7febda14ae979845405b5fdaeb31dd2b89eedc423b0924ea7cff" 8 | imagedeps="python3-passlib" 9 | hostdeps="gcc pkg-config" 10 | deps="mlibc libgcc libstdc++ libatomic" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure \ 18 | --enable-obsolete-api=yes \ 19 | --disable-xcrypt-compat-files 20 | } 21 | 22 | build() { 23 | make -j${parallelism} 24 | } 25 | 26 | package() { 27 | DESTDIR="${dest_dir}" make install 28 | 29 | post_package_strip 30 | } 31 | -------------------------------------------------------------------------------- /recipes/libxcursor: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libxcursor 4 | version=1.2.3 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/lib/libXcursor-${version}.tar.gz" 7 | tarball_blake2b="6f6df48d861b7ffa88dab6bdba850db46a5cbdfc080150365de2ae98bdb79a208a4d0caae4442fcc6ff81334d3d67c5ae16eca2aa627af705d0bc47db32151bb" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs libxrender libxfixes libx11" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/libxcvt: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libxcvt 4 | version=0.1.3 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/lib/libxcvt-${version}.tar.xz" 7 | tarball_blake2b="ae104743153077454ba8923d7b8bbe77d834e4795fd735de9e42617c3e49fd63052ad37214e7ab45e3f5884cd6038b60c0ff7c52f8a7892e0dea4630aaf0abad" 8 | imagedeps="meson ninja-build" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs" 11 | 12 | configure() { 13 | meson_configure 14 | } 15 | 16 | build() { 17 | ninja -j${parallelism} 18 | } 19 | 20 | package() { 21 | DESTDIR="${dest_dir}" ninja install 22 | 23 | post_package_strip 24 | } 25 | -------------------------------------------------------------------------------- /recipes/libxdamage: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libxdamage 4 | version=1.1.6 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/lib/libXdamage-${version}.tar.gz" 7 | tarball_blake2b="e8fcdbb3b93b7f3a74b10adbb4ceaccc963c7f9ce4fe0edee5842fde7d26cbb2cf3061f073c9ca400baa8378d06ed83c8c751495febb1aeb86a27058d74b1543" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs xorg-proto libx11 libxfixes" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/libxdmcp: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libxdmcp 4 | version=1.1.5 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/lib/libXdmcp-${version}.tar.gz" 7 | tarball_blake2b="15120e372940c78749e62b240624a4b6b0f65a485d3591193e55615db8e77d44247814c04e5e58604ae1a12484d8c53eac1a5db982bfb34f721c6ab4036743c3" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs xorg-proto" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/libxext: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libxext 4 | version=1.3.6 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/lib/libXext-${version}.tar.gz" 7 | tarball_blake2b="1f137f06c237bafec737886484d990e686130e84c8af0db3f47a87e8970d953e8030872e3f0f8b4dff15cfd786fb15e13331fecc0b320f1cf75fbb1629ff970a" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs xorg-proto libx11" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/libxfixes: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libxfixes 4 | version=6.0.1 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/lib/libXfixes-${version}.tar.gz" 7 | tarball_blake2b="22be454b2db230057204932ae75aacb2b56523b25b14e501d7e7a2a664e57ae6bcbfa56b6fac4d42d3f8ef770c41debe0eec25451dd70baa9cfc83b1a10e4649" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs xorg-proto libx11" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/libxfont2: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libxfont2 4 | version=2.0.7 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/lib/libXfont2-${version}.tar.gz" 7 | tarball_blake2b="3a82122366751ee96ba3e7ce020a9e5845527539b787897c664d4dc2977772beab7f04d3890a10ee2697f0ae5b5d6838d1fe62cf1c7942799d6a8210d2e82b57" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs xorg-util-macros xorg-proto libx11 xtrans freetype2 fontconfig bzip2 libfontenc zlib" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure \ 17 | --with-bzip2 \ 18 | --disable-devel-docs \ 19 | --disable-selective-werror 20 | } 21 | 22 | build() { 23 | make -j${parallelism} 24 | } 25 | 26 | package() { 27 | DESTDIR="${dest_dir}" make install 28 | 29 | post_package_strip 30 | } 31 | -------------------------------------------------------------------------------- /recipes/libxft: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libxft 4 | version=2.3.9 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/lib/libXft-${version}.tar.gz" 7 | tarball_blake2b="e9bb0920ed91b30ba867d48a3676af4ce1728e407448030f8731cd344b4d09ab2605617f129a1187f1f175cc03a779f9c36be6d4b56e470a240a13fa88e41a71" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs xorg-util-macros xorg-proto libx11 libxrender freetype2 fontconfig" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/libxi: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libxi 4 | version=1.8.2 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/lib/libXi-${version}.tar.gz" 7 | tarball_blake2b="aa9bd4cdcc519bf8b9029766d07e160a2847f3f6808ae5a125f90cd84e8e981436e8cdce2cabe9d58eaba39946b88026d5814c6d19f2cc94e9e4cd69d6bc8e2d" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs xorg-proto libxext libxfixes" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/libxinerama: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libxinerama 4 | version=1.1.5 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/lib/libXinerama-${version}.tar.gz" 7 | tarball_blake2b="ac24af05ae483e7f8476cb5fdf901ae80c592a766387e9f662ceeae5906a55e8529b35fcd01b6893289007e30788fd9e3a507af95870acfa6b25b25b159024a5" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs libx11 libxext xorg-util-macros xorg-proto" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/libxkbcommon: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libxkbcommon 4 | version=1.9.1 5 | revision=1 6 | git_url="https://github.com/xkbcommon/libxkbcommon.git" 7 | commit=7df431ac4d0d36639876318a4c69198b03ee50ba 8 | imagedeps="git meson ninja-build" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs libxcb libxml xkeyboard-config" 11 | 12 | configure() { 13 | meson_configure \ 14 | -Dxkb-config-root="$prefix"/share/X11/xkb \ 15 | -Denable-x11=true \ 16 | -Denable-wayland=false 17 | } 18 | 19 | build() { 20 | ninja -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" ninja install 25 | 26 | mkdir -p "${dest_dir}${prefix}/share/X11/xkb" 27 | touch "${dest_dir}${prefix}/share/X11/xkb/.keep" 28 | 29 | post_package_strip 30 | } 31 | -------------------------------------------------------------------------------- /recipes/libxkbfile: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libxkbfile 4 | version=1.1.3 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/lib/libxkbfile-${version}.tar.gz" 7 | tarball_blake2b="07e4f082ab280a5d9ecbd20191167c25c05a530906b79af715d9758d45751157415f9ecf6223c87cab10488b1f3726187437a4ce2cafd1339c88ae32af7c7eb0" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs xorg-util-macros xorg-proto libx11" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/libxml: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libxml 4 | repology_id=libxml2 5 | version=2.14.2 6 | revision=1 7 | tarball_url="https://download.gnome.org/sources/libxml2/2.14/libxml2-${version}.tar.xz" 8 | tarball_blake2b="2331234ed60358168298d04c83162bfe7d08e6fc77091fe1ecf8384e68902ab745f039dc807d12dda3124313724806bd7fb651de975dbc60fdaf963bac043ff8" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs zlib icu readline" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure \ 18 | --with-threads \ 19 | --disable-ipv6 \ 20 | --without-python \ 21 | --with-history \ 22 | --with-icu 23 | } 24 | 25 | build() { 26 | make -j${parallelism} 27 | } 28 | 29 | package() { 30 | DESTDIR="${dest_dir}" make install 31 | 32 | post_package_strip 33 | } 34 | -------------------------------------------------------------------------------- /recipes/libxmu: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libxmu 4 | version=1.2.1 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/lib/libXmu-${version}.tar.gz" 7 | tarball_blake2b="79cb21601f19a72fc771bb7fbde59d0fd3febdcf8fc6c6def91e2d8d9a99df4c7a9e633d819fe93df0cbd774a642cf39d44219c1fdbc154be28ba9086571cbb6" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs libxext libxt" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/libxpm: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libxpm 4 | version=3.5.17 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/lib/libXpm-${version}.tar.gz" 7 | tarball_blake2b="0acc342fb0aebad04a2d68f60106ad8f52910b2ca65d402bfda09e5914ab92b2b2b9d57680bbb6c6f1c8767971e9cffc1315337f6645fb61940a9cb5ccdf80c0" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs libxext libxt" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/libxrandr: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libxrandr 4 | version=1.5.4 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/lib/libXrandr-${version}.tar.gz" 7 | tarball_blake2b="d5dd5ef33c4452fac7d2c5f16afc15d9e2dcb4e721824ca6e412c6a990ab529003e1beea087afad9dedbcceab17953e066700dac7df0b2aac2cec404335ba93f" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs xorg-proto libx11 libxrender libxext" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/libxrender: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libxrender 4 | version=0.9.12 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/lib/libXrender-${version}.tar.gz" 7 | tarball_blake2b="27a8745b6c833022d7714114c6fdd80ef594e288e00a01bd5d4657e43c34558a338ff65cabdcc2065aa7dec7a8595c74277103ddae9aedf6ea2fe4ef7501dc73" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs xorg-proto libx11" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/libxshmfence: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libxshmfence 4 | version=1.3.3 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/lib/libxshmfence-${version}.tar.gz" 7 | tarball_blake2b="22191b13b00fca8717c81c43b77102b8cc720c81057ea8a3355404b61bcbd049a6f58c9ad0f9cf93c4d3e9a387795b5c206f3fc563dfe4c5061b042bc49569ff" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs xorg-proto" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/libxt: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libxt 4 | version=1.3.1 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/lib/libXt-${version}.tar.gz" 7 | tarball_blake2b="124036245a76703a5bb2379fd0b6605dc665cc58b9df657cfc3b0214574dcad6f46490ee76be8ea7d157afa84940c5ee8edaca37983ff6ec7deb572f51985703" 8 | imagedeps="build-essential" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs libx11 libsm" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure \ 18 | --with-appdefaultdir=/etc/X11/app-defaults 19 | } 20 | 21 | build() { 22 | make -j${parallelism} 23 | } 24 | 25 | package() { 26 | DESTDIR="${dest_dir}" make install 27 | 28 | post_package_strip 29 | } 30 | -------------------------------------------------------------------------------- /recipes/libxtst: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libxtst 4 | version=1.2.5 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/lib/libXtst-${version}.tar.gz" 7 | tarball_blake2b="5a8569f8818dce0afccba3efac34a54c967e90350deba61fd52c061309105e17481b574d70b609243956447c1bffdff67892d6782206412310ef134ccb6f6736" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs xorg-proto libxext libxi libx11" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/libxv: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libxv 4 | version=1.0.13 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/lib/libXv-${version}.tar.gz" 7 | tarball_blake2b="bcd9ddfaed0cbf94e387f6c5fe3c0105550c9bca4be07e00527d50dcc34e0ac58ba616d7fec32b80f31e4a302ee25cba6a3382fa94f93b2ebe3368d3d76d3368" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs xorg-proto libx11 libxext" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/libxxf86vm: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libxxf86vm 4 | version=1.1.6 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/lib/libXxf86vm-${version}.tar.gz" 7 | tarball_blake2b="403425049f78ecf8eeddd01797ea21d51853a0165d9d8ca9513b05d85b61d7cbddac91290fba054d1cca08f43b165efd2e441cf4ff3b4b7e9e5fe59a6daf7d3e" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs xorg-proto libxext" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/libzip: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libzip 4 | version=1.11.3 5 | revision=1 6 | tarball_url="https://github.com/nih-at/libzip/releases/download/v${version}/libzip-${version}.tar.xz" 7 | tarball_blake2b="3296ff48ce853687ea4fbe310130c2468c87990da9a6c285acb09406afb23fe2240fb27a94c23db8b2ad58bd7b80f5b6e84d0702957792d0baddd13487c483dd" 8 | imagedeps="cmake ninja-build git" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs zlib bzip2 xz zstd openssl" 11 | 12 | configure() { 13 | cmake_configure \ 14 | -DENABLE_GNUTLS=OFF \ 15 | -DBUILD_DOC=OFF 16 | } 17 | 18 | build() { 19 | ninja -j${parallelism} 20 | } 21 | 22 | package() { 23 | DESTDIR="${dest_dir}" ninja install 24 | 25 | post_package_strip 26 | } 27 | -------------------------------------------------------------------------------- /recipes/limine: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=limine 4 | version=9.3.0 5 | revision=1 6 | tarball_url="https://github.com/limine-bootloader/limine/releases/download/v${version}/limine-${version}.tar.gz" 7 | tarball_blake2b="09db8fde9b1d3a78cbf9a7f5c29c295c658bc521db5f0dcf00497d191b942549eb7d8b4eb747904420f1fa8dad70ef09343d0139ed6f0ee1aba0d1b7c626a904" 8 | imagedeps="mtools nasm" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | if [ "$ARCHITECTURE" = "x86_64" ]; then 18 | X86_FLAGS="--enable-bios \ 19 | --enable-bios-cd \ 20 | --enable-bios-pxe \ 21 | --enable-uefi-ia32 \ 22 | " 23 | fi 24 | 25 | autotools_configure \ 26 | $X86_FLAGS \ 27 | --enable-uefi-$ARCHITECTURE \ 28 | --enable-uefi-cd \ 29 | TOOLCHAIN_FOR_TARGET=${OS_TRIPLET} 30 | } 31 | 32 | build() { 33 | make -j${parallelism} 34 | } 35 | 36 | package() { 37 | DESTDIR="${dest_dir}" make install 38 | 39 | post_package_strip 40 | } 41 | -------------------------------------------------------------------------------- /recipes/llvm: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=llvm 4 | version=20.1.3 5 | revision=1 6 | tarball_url="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz" 7 | tarball_blake2b="c738abb66dc82580a8f511829bcf87dd8deb8381bd073cd547e4eb02097c0190fa06488e5500cefce95953315432ee6ae3c103c491d08eca4b019e043691fc12" 8 | imagedeps="build-essential cmake ninja-build git" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs ncurses zlib zstd libffi" 11 | 12 | configure() { 13 | cmake_source_dir="${source_dir}/llvm" \ 14 | cmake_configure \ 15 | -UBUILD_SHARED_LIBS \ 16 | -UENABLE_STATIC \ 17 | -DLLVM_LINK_LLVM_DYLIB=ON \ 18 | -DLLVM_ENABLE_FFI=ON \ 19 | -DLLVM_ENABLE_EH=ON \ 20 | -DLLVM_ENABLE_RTTI=ON \ 21 | -DLLVM_ENABLE_PROJECTS="clang;lld" \ 22 | -DLLVM_DEFAULT_TARGET_TRIPLE=${OS_TRIPLET} \ 23 | -DLLVM_HOST_TRIPLE=${OS_TRIPLET} \ 24 | -Wno-dev 25 | } 26 | 27 | build() { 28 | ninja -j${parallelism} 29 | } 30 | 31 | package() { 32 | DESTDIR="${dest_dir}" ninja install 33 | 34 | rm -rf "${dest_dir}${prefix}"/lib/*.a 35 | 36 | post_package_strip 37 | } 38 | -------------------------------------------------------------------------------- /recipes/lua: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=lua 4 | version=5.4.7 5 | revision=1 6 | tarball_url="https://github.com/lua/lua/archive/refs/tags/v${version}.tar.gz" 7 | tarball_blake2b="9e4f589e78ded6d0665bf38c94080dc642762fc5b91fa47d6bd440a241e86000b6a82f9c4175b5ec509d01f753cc4a257c70c6219f41c1527742615425b9f876" 8 | imagedeps="git nasm" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs readline" 11 | 12 | build() { 13 | cp -rp "${source_dir}"/. ./ 14 | sed -i 's|^#define LUA_ROOT "/usr/local/"$|#define LUA_ROOT "/usr/"|' luaconf.h 15 | 16 | make MYLIBS="-lreadline -lncursesw -ltinfow" CFLAGS="$TARGET_CFLAGS -DLUA_USE_POSIX -DLUA_USE_DLOPEN -DLUA_USE_READLINE" MYLDFLAGS="$TARGET_LDFLAGS" CC=${OS_TRIPLET}-gcc AR="${OS_TRIPLET}-ar rcu" RANLIB=${OS_TRIPLET}-ranlib -j${parallelism} 17 | } 18 | 19 | package() { 20 | mkdir -p "${dest_dir}${prefix}"/bin 21 | cp lua "${dest_dir}${prefix}"/bin/ 22 | 23 | post_package_strip 24 | } 25 | -------------------------------------------------------------------------------- /recipes/lz4: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=lz4 4 | version=1.10.0 5 | revision=1 6 | tarball_url="https://github.com/lz4/lz4/releases/download/v${version}/lz4-${version}.tar.gz" 7 | tarball_blake2b="c87a939b748b0449e4f1869579ebc109704aa89e8699b6029217f6786c351d1b0329580dd3a955fe509efb113f29aecbafc83084d65d153f5d43610f4840a819" 8 | imagedeps="meson ninja-build" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs" 11 | 12 | configure() { 13 | meson_source_dir="${source_dir}"/build/meson \ 14 | meson_configure 15 | } 16 | 17 | build() { 18 | ninja -j${parallelism} 19 | } 20 | 21 | package() { 22 | DESTDIR="${dest_dir}" ninja install 23 | 24 | post_package_strip 25 | } 26 | -------------------------------------------------------------------------------- /recipes/m4: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=m4 4 | version=1.4.19 5 | revision=1 6 | tarball_url="https://ftp.gnu.org/gnu/m4/m4-${version}.tar.xz" 7 | tarball_blake2b="08694485a49c542761fa9a7db4d7609f4dfb08a5c6b785b57f2e14cf1f696c2a1c788bb5eb934e8159a632b63ff071dfe42511d0109d7b1828f46d33c8bf416a" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure \ 17 | CFLAGS="$TARGET_CFLAGS -std=gnu17" 18 | } 19 | 20 | build() { 21 | make -j${parallelism} 22 | } 23 | 24 | package() { 25 | DESTDIR="${dest_dir}" make install 26 | 27 | post_package_strip 28 | } 29 | -------------------------------------------------------------------------------- /recipes/make: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=make 4 | version=4.4.1 5 | revision=1 6 | tarball_url="https://ftp.gnu.org/gnu/make/make-${version}.tar.gz" 7 | tarball_blake2b="09a4ad8060259e36854b525ab610fd317a86f4926e44e3ab8adba75dccc8d4b445df9dd25ccfb4c25a54bc0e98238a9127e36401d74cbc3503a329eadcdf4995" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure \ 17 | CFLAGS="$TARGET_CFLAGS -std=gnu17" 18 | } 19 | 20 | build() { 21 | make -j${parallelism} 22 | } 23 | 24 | package() { 25 | DESTDIR="${dest_dir}" make install 26 | 27 | post_package_strip 28 | } 29 | -------------------------------------------------------------------------------- /recipes/man-db: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=man-db 4 | version=2.13.1 5 | revision=1 6 | tarball_url="https://download.savannah.nongnu.org/releases/man-db/man-db-${version}.tar.xz" 7 | tarball_blake2b="f0f61bbd91992e2be8343459addca4bb9892ad4887756a1e58e8dccf71d30fd4bfd105739f1c730d7e73088825508566c9c29e74a59d78453055db25c7a929c6" 8 | imagedeps="groff" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs bash gdbm groff less libpipeline zlib" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure \ 18 | --disable-setuid \ 19 | --with-systemdtmpfilesdir= \ 20 | --with-systemdsystemunitdir= \ 21 | --with-pager=${prefix}/bin/less 22 | } 23 | 24 | build() { 25 | make -j${parallelism} 26 | } 27 | 28 | package() { 29 | DESTDIR="${dest_dir}" make install 30 | 31 | post_package_strip 32 | } 33 | -------------------------------------------------------------------------------- /recipes/mate-icon-theme: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=mate-icon-theme 4 | version=1.28.0 5 | revision=1 6 | tarball_url="https://pub.mate-desktop.org/releases/1.28/mate-icon-theme-${version}.tar.xz" 7 | tarball_blake2b="18b7f43c5a1a0c8f9a45feb0d4941d659d67d98918227615d12acd176cc3cf96a8eb48c9d9bfebe4710417b3fffabc89d433d51c44b42df16bf62332a743b6ae" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure \ 17 | --disable-icon-mapping 18 | } 19 | 20 | build() { 21 | make -j${parallelism} 22 | } 23 | 24 | package() { 25 | DESTDIR="${dest_dir}" make install 26 | 27 | post_package_strip 28 | } 29 | -------------------------------------------------------------------------------- /recipes/mesa: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=mesa 4 | version=25.0.5 5 | revision=1 6 | tarball_url="https://archive.mesa3d.org/mesa-${version}.tar.xz" 7 | tarball_blake2b="f17f8c2a733fd3c37f346b9304241dc1d13e01df9c8c723b73b10279dd3c2ebed062ec1f15cdbc8b9936bae840a087b23ac38cae7d8982228d582d468ab8c9c9" 8 | imagedeps="meson ninja-build python3-mako python3-yaml glslang-tools" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs llvm libexpat libx11 libxcb libxext libxshmfence libxxf86vm libxrandr zlib zstd" 11 | 12 | configure() { 13 | meson_configure \ 14 | -Dglx=xlib \ 15 | -Dplatforms=x11 \ 16 | -Dgallium-drivers=llvmpipe,softpipe \ 17 | -Dvulkan-drivers=swrast \ 18 | -Dosmesa=true \ 19 | -Dvideo-codecs=all 20 | } 21 | 22 | build() { 23 | ninja -j${parallelism} 24 | } 25 | 26 | package() { 27 | DESTDIR="${dest_dir}" ninja install 28 | 29 | post_package_strip 30 | } 31 | -------------------------------------------------------------------------------- /recipes/mesa-demos: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=mesa-demos 4 | version=9.0.0 5 | revision=1 6 | tarball_url="https://archive.mesa3d.org/demos/mesa-demos-${version}.tar.xz" 7 | tarball_blake2b="426211886344e88616670f0da8c71385e0ab86fd7dab60c7a477b165f33d2f7bd5fd9297f1f67c78e60fed5c98ab8851c1bd4ae92a6b0b486fd158196b109eb0" 8 | imagedeps="meson ninja-build" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs freetype2 mesa glu libx11 libxext" 11 | 12 | configure() { 13 | meson_configure \ 14 | -Dgles1=disabled \ 15 | -Dosmesa=disabled \ 16 | -Dlibdrm=disabled \ 17 | -Dx11=enabled \ 18 | -Dwith-system-data-files=true 19 | } 20 | 21 | build() { 22 | ninja -j${parallelism} 23 | } 24 | 25 | package() { 26 | DESTDIR="${dest_dir}" ninja install 27 | 28 | post_package_strip 29 | } 30 | -------------------------------------------------------------------------------- /recipes/mlibc: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=mlibc 4 | skip_pkg_check=yes 5 | version=0.0git 6 | revision=1 7 | git_url="https://github.com/managarm/mlibc.git" 8 | commit=1183d85f914f3c7cea56961edbf472b49b22d92b 9 | imagedeps="meson ninja-build" 10 | hostdeps="gcc pkg-config libgcc-binaries" 11 | builddeps="freestnd-c-hdrs freestnd-cxx-hdrs frigg" 12 | deps="mlibc-headers" 13 | 14 | configure() { 15 | CFLAGS="$TARGET_CFLAGS" \ 16 | CXXFLAGS="$TARGET_CXXFLAGS" \ 17 | LDFLAGS="$TARGET_LDFLAGS -Wl,/usr/local/libgcc-binaries/libgcc-$ARCHITECTURE.a" \ 18 | meson_configure_noflags \ 19 | --buildtype=release \ 20 | -Dno_headers=true \ 21 | -Ddefault_library=both \ 22 | -Dlibgcc_dependency=false \ 23 | -Duse_freestnd_hdrs=enabled 24 | } 25 | 26 | build() { 27 | ninja -j${parallelism} 28 | } 29 | 30 | package() { 31 | DESTDIR="${dest_dir}" ninja install 32 | } 33 | -------------------------------------------------------------------------------- /recipes/mlibc-headers: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=mlibc-headers 4 | skip_pkg_check=yes 5 | revision=1 6 | from_source=mlibc 7 | imagedeps="meson ninja-build" 8 | hostdeps="pkg-config" 9 | 10 | configure() { 11 | meson_configure \ 12 | -Dheaders_only=true 13 | } 14 | 15 | build() { 16 | ninja -j${parallelism} 17 | } 18 | 19 | package() { 20 | DESTDIR="${dest_dir}" ninja install 21 | } 22 | -------------------------------------------------------------------------------- /recipes/mpc: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=mpc 4 | repology_id=gnumpc 5 | version=1.3.1 6 | revision=1 7 | tarball_url="https://ftp.gnu.org/gnu/mpc/mpc-${version}.tar.gz" 8 | tarball_blake2b="76434e6f8830af3571836d51576bfebbc9701e9bbb5c4686f134081cd96cd90ae02f7ff42bf9e3957c7a7ba92b6b2d9cdabe18f0269271147521cd7f6a2d551c" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs gmp mpfr" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure 18 | } 19 | 20 | build() { 21 | make -j${parallelism} 22 | } 23 | 24 | package() { 25 | DESTDIR="${dest_dir}" make install 26 | 27 | post_package_strip 28 | } 29 | -------------------------------------------------------------------------------- /recipes/mpfr: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=mpfr 4 | version=4.2.2 5 | revision=1 6 | tarball_url="https://ftp.gnu.org/gnu/mpfr/mpfr-${version}.tar.xz" 7 | tarball_blake2b="6bbf5658e70fbb673a3b65246a6bac708d1571aa6943c6742efd92f468ac71e6f0fe351b757f7133440ea312d9a5fc3549acd89d54f4d975c58bdc204d7b21ec" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs gmp" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure \ 17 | --enable-static=no \ 18 | --enable-shared=yes \ 19 | --enable-thread-safe \ 20 | --with-pic 21 | } 22 | 23 | build() { 24 | make -j${parallelism} 25 | } 26 | 27 | package() { 28 | DESTDIR="${dest_dir}" make install 29 | 30 | post_package_strip 31 | } 32 | -------------------------------------------------------------------------------- /recipes/nano: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=nano 4 | version=8.4 5 | revision=1 6 | tarball_url="https://ftp.gnu.org/gnu/nano/nano-${version}.tar.xz" 7 | tarball_blake2b="2e5dbe6982ef9d284c6e018abad593bf383f27c85047241bafaa098948b73897c0a81b63aa453385ac93afc1c398936464d5a1fb024d00936ad383c5e5e4403f" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs ncurses file" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | gl_cv_func_strcasecmp_works=yes \ 17 | autotools_configure 18 | } 19 | 20 | build() { 21 | make -j${parallelism} 22 | } 23 | 24 | package() { 25 | DESTDIR="${dest_dir}" make install 26 | 27 | mkdir -p "${dest_dir}"/etc 28 | cp -v "${base_dir}"/build-support/nano/nanorc "${dest_dir}"/etc/ 29 | 30 | post_package_strip 31 | } 32 | -------------------------------------------------------------------------------- /recipes/nasm: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=nasm 4 | version=2.16.03 5 | revision=1 6 | tarball_url="https://web.archive.org/web/20250310173238if_/https://www.nasm.us/pub/nasm/releasebuilds/${version}/nasm-${version}.tar.xz" 7 | tarball_blake2b="742cbf330341fde9f778d8ca13e8c06199f48796d47028ac973d39e3d9e434450cdfebe89f6ab248d372bdaeb0c88a25eb7153a39b66fc05e770523d4c9e11e9" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/nettle: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=nettle 4 | version=3.10.1 5 | revision=1 6 | tarball_url="https://ftp.gnu.org/gnu/nettle/nettle-${version}.tar.gz" 7 | tarball_blake2b="da2e82e647904e855a0e0bd1efee3b610b33de1a722f5d652deeca083d1983c5ee66754233a0917d3bb91bb5a527a3e80cd5fe18f7c25986076b2388910995b5" 8 | imagedeps="build-essential" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs gmp" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure \ 18 | CFLAGS="$TARGET_CFLAGS -std=gnu17" 19 | } 20 | 21 | build() { 22 | make -j${parallelism} 23 | } 24 | 25 | package() { 26 | DESTDIR="${dest_dir}" make install 27 | 28 | post_package_strip 29 | } 30 | -------------------------------------------------------------------------------- /recipes/nyancat: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=nyancat 4 | version=1.5.2 5 | revision=1 6 | tarball_url="https://github.com/klange/nyancat/archive/refs/tags/${version}.tar.gz" 7 | tarball_blake2b="4c197c7d630edc7184b57fd2b33fb422a69120e2db2994bc326e772278bca9fa1cc8a837da747bc7a9114090d43133ad48e22ed3319fc92485f82c1e7b5e67b9" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs" 10 | 11 | build() { 12 | cp -rp "${source_dir}"/. ./ 13 | 14 | make \ 15 | CC=${OS_TRIPLET}-gcc \ 16 | CFLAGS="$TARGET_CFLAGS -std=c99" \ 17 | CPPFLAGS="$TARGET_CPPFLAGS" \ 18 | LDFLAGS="$TARGET_LDFLAGS" \ 19 | -j${parallelism} 20 | } 21 | 22 | package() { 23 | install -d "${dest_dir}${prefix}"/bin 24 | install src/nyancat "${dest_dir}${prefix}"/bin/ 25 | install -d "${dest_dir}${prefix}"/share/man/man1 26 | install -m 644 nyancat.1 "${dest_dir}${prefix}"/share/man/man1/ 27 | 28 | post_package_strip 29 | } 30 | -------------------------------------------------------------------------------- /recipes/openssh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=openssh 4 | version=10.0p1 5 | revision=1 6 | tarball_url="https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${version}.tar.gz" 7 | tarball_blake2b="4ce353adf75aade8f4b2a223ad13e2f92cd23d1e60b4ee52bad0eaf036571229438cd9760dfa99c0e10fa09a8ac47b2bfb04eb183fb7b9287ac564ec75316a75" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs zlib openssl" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | ossh_cv_utmpx_h_has_ut_addr=no \ 17 | autotools_configure \ 18 | --sysconfdir=/etc/ssh \ 19 | --disable-strip \ 20 | --with-ssl-engine \ 21 | --with-privsep-user=nobody \ 22 | --with-privsep-path=${prefix}/share/empty.sshd \ 23 | --with-default-path=${prefix}/local/sbin:${prefix}/local/bin:${prefix}/bin \ 24 | --without-zlib-version-check \ 25 | --with-xauth=/usr/bin/xauth \ 26 | --with-pid-dir=/run 27 | } 28 | 29 | build() { 30 | make -j${parallelism} 31 | } 32 | 33 | package() { 34 | install -v -m700 -d "${dest_dir}${prefix}"/share/empty.sshd 35 | install -v -d "${dest_dir}"/run 36 | 37 | DESTDIR="${dest_dir}" make install 38 | 39 | post_package_strip 40 | } 41 | -------------------------------------------------------------------------------- /recipes/openssl: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=openssl 4 | version=1.1.1w 5 | revision=1 6 | tarball_url="https://github.com/openssl/openssl/releases/download/OpenSSL_1_1_1w/openssl-${version}.tar.gz" 7 | tarball_blake2b="2fdba6ca0188928ab2f74e606136afca66cfa0467170fa6298ef160b64ac6fdcad1e81e5dd14013ce0e9921d0f7417edec531cd0beaf1196fec704c2c6d48395" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs zlib" 10 | 11 | configure() { 12 | CC=${OS_TRIPLET}-gcc \ 13 | CXX=${OS_TRIPLET}-g++ \ 14 | AR=${OS_TRIPLET}-ar \ 15 | CFLAGS="$TARGET_CFLAGS" \ 16 | CXXFLAGS="$TARGET_CXXFLAGS" \ 17 | LDFLAGS="$TARGET_LDFLAGS" \ 18 | ${source_dir}/Configure \ 19 | --prefix=${prefix} \ 20 | --openssldir=/etc/ssl \ 21 | --libdir=lib \ 22 | ${OS_TRIPLET} \ 23 | shared \ 24 | zlib-dynamic \ 25 | no-afalgeng 26 | } 27 | 28 | build() { 29 | make -j${parallelism} 30 | } 31 | 32 | package() { 33 | # Disable installing static libraries. 34 | sed -i '/INSTALL_LIBS/s/libcrypto.a libssl.a//' Makefile 35 | 36 | DESTDIR="${dest_dir}" make DESTDIR="${dest_dir}" MANSUFFIX=ssl install 37 | 38 | post_package_strip 39 | } 40 | -------------------------------------------------------------------------------- /recipes/pango: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=pango 4 | version=1.56.3 5 | revision=1 6 | tarball_url="https://download.gnome.org/sources/pango/1.56/pango-${version}.tar.xz" 7 | tarball_blake2b="02b12409a0d16090ebde13e6d92b2053468e32b4b97eb0f758e05ea2ffc44141367b77cef7bb2b701785a4f9f9071d06e47a6d4974e2aa5839571fd0de19efc3" 8 | imagedeps="meson ninja-build libglib2.0-dev" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs glib fontconfig freetype2 fribidi cairo libx11 harfbuzz libxft" 11 | 12 | configure() { 13 | meson_configure \ 14 | -Dintrospection=disabled 15 | } 16 | 17 | build() { 18 | ninja -j${parallelism} 19 | } 20 | 21 | package() { 22 | DESTDIR="${dest_dir}" ninja install 23 | 24 | post_package_strip 25 | } 26 | -------------------------------------------------------------------------------- /recipes/patch: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=patch 4 | version=2.8 5 | revision=1 6 | tarball_url="https://ftp.gnu.org/gnu/patch/patch-${version}.tar.xz" 7 | tarball_blake2b="687f566201adb2e32c3832b911adaddd9994aacb25b66886d6315bfe2752e09fd551b3856a39024b8472b2d95efebf412d4a7c085812a13620de811073a397ad" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | rm -f "${dest_dir}${prefix}/lib/charset.alias" 27 | 28 | post_package_strip 29 | } 30 | -------------------------------------------------------------------------------- /recipes/pcre2: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=pcre2 4 | version=10.45 5 | revision=1 6 | tarball_url="https://github.com/PCRE2Project/pcre2/releases/download/pcre2-${version}/pcre2-${version}.tar.gz" 7 | tarball_blake2b="e871e052853fac51d92fbfb5a2bb7a15b2830582315cfed047df8147c04f30c5a5e1ddd7275f6f894c33e2e170afdb2611937592907a29a025d665341e93b46a" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs bzip2 readline zlib" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure \ 17 | --enable-unicode \ 18 | --enable-jit \ 19 | --enable-pcre2-16 \ 20 | --enable-pcre2-32 \ 21 | --enable-pcre2grep-libz \ 22 | --enable-pcre2grep-libbz2 \ 23 | --enable-pcre2test-libreadline 24 | } 25 | 26 | build() { 27 | make -j${parallelism} 28 | } 29 | 30 | package() { 31 | DESTDIR="${dest_dir}" make install 32 | 33 | post_package_strip 34 | } 35 | -------------------------------------------------------------------------------- /recipes/pixman: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=pixman 4 | version=0.46.0 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/lib/pixman-${version}.tar.xz" 7 | tarball_blake2b="5fc9d0df2f685afc1931ac12757d7ec0369c1f90b51f79b696479a2edd0c13e0684938871166318ca5c78b4955195ba5517e98e4666803b9062f4ed2b6593afa" 8 | imagedeps="meson ninja-build" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs libpng" 11 | 12 | configure() { 13 | meson_configure 14 | } 15 | 16 | build() { 17 | ninja -j${parallelism} 18 | } 19 | 20 | package() { 21 | DESTDIR="${dest_dir}" ninja install 22 | 23 | post_package_strip 24 | } 25 | -------------------------------------------------------------------------------- /recipes/pkg-config: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=pkg-config 4 | repology_id=pkgconf 5 | version=2.4.3 6 | revision=1 7 | tarball_url="https://distfiles.ariadne.space/pkgconf/pkgconf-${version}.tar.xz" 8 | tarball_blake2b="5ca90b1b97e5516369e7042952418d5046faee02ff67144b0805c3c007507c42400825cfe73ac2c4df3f11dab4d5abba24b52abe930a3b25abbcbbddb3a06a31" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure 18 | } 19 | 20 | build() { 21 | make -j${parallelism} 22 | } 23 | 24 | package() { 25 | DESTDIR="${dest_dir}" make install 26 | 27 | ln -s pkgconf "${dest_dir}${prefix}"/bin/pkg-config 28 | 29 | post_package_strip 30 | } 31 | -------------------------------------------------------------------------------- /recipes/popt: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=popt 4 | version=1.19 5 | revision=1 6 | tarball_url="https://ftp.osuosl.org/pub/rpm/popt/releases/popt-1.x/popt-${version}.tar.gz" 7 | tarball_blake2b="8f8965e2d339f0413e8d1da421ea7556526f39f089a822063d6fdc35b781a7c7ea84a91d6af3e25902c1f045f564ef956fc69cd4625e6cc008c9e3ca34923a9d" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/python: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=python 4 | repology_srcname=python 5 | version=3.13.3 6 | revision=1 7 | tarball_url="https://www.python.org/ftp/python/${version}/Python-${version}.tar.xz" 8 | tarball_blake2b="24ac47c13cbfa4dc9ce6ae4d18d7b5310f83ac1f4f18722138ef07e01cb8ac37edf6f4301983cb468f533b9b475b5a9d761d3044e61c7ccaa99dceadb954fe34" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs bzip2 xz zlib openssl ncurses readline gdbm libexpat libffi" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | ac_cv_file__dev_ptmx=yes \ 18 | ac_cv_file__dev_ptc=yes \ 19 | ac_cv_func_sched_setscheduler=no \ 20 | ac_cv_buggy_getaddrinfo=no \ 21 | autotools_configure \ 22 | --build=$ARCHITECTURE \ 23 | --with-computed-gotos \ 24 | --disable-optimizations \ 25 | --enable-ipv6 \ 26 | --with-system-expat \ 27 | --enable-loadable-sqlite-extensions \ 28 | --without-ensurepip \ 29 | --with-tzpath=${prefix}/share/zoneinfo \ 30 | --with-build-python=python3 \ 31 | --without-static-libpython 32 | } 33 | 34 | build() { 35 | make -j${parallelism} 36 | } 37 | 38 | package() { 39 | DESTDIR="${dest_dir}" make install 40 | 41 | ln -sfv python3 "${dest_dir}${prefix}"/bin/python 42 | ln -sfv python3-config "${dest_dir}${prefix}"/bin/python-config 43 | ln -sfv pydoc3 "${dest_dir}${prefix}"/bin/pydoc 44 | ln -sfv idle3 "${dest_dir}${prefix}"/bin/idle 45 | 46 | post_package_strip 47 | } 48 | -------------------------------------------------------------------------------- /recipes/readline: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=readline 4 | _patch=13 5 | version=8.2p${_patch} 6 | revision=1 7 | tarball_url="https://ftp.gnu.org/gnu/readline/readline-8.2.tar.gz" 8 | tarball_blake2b="7974322b9c092a756a79e537df08e8532f8e0fcb598f77732e28287c33ebec9e9837ed88b43334c310892d56a871b423903f0f564def2fbe700a1004f2ae7b18" 9 | source_allow_network="yes" 10 | hostdeps="gcc pkg-config" 11 | deps="core-libs ncurses" 12 | 13 | prepare() { 14 | for p in $(seq -w 0${_patch}); do 15 | curl -L https://ftp.gnu.org/gnu/readline/readline-8.2-patches/readline82-$p | patch -p0 16 | done 17 | 18 | autotools_recursive_regen 19 | } 20 | 21 | configure() { 22 | autotools_configure \ 23 | --enable-multibyte \ 24 | --with-curses 25 | } 26 | 27 | build() { 28 | make SHLIB_LIBS="-lncursesw -ltinfow" -j${parallelism} 29 | } 30 | 31 | package() { 32 | make install DESTDIR="${dest_dir}" 33 | 34 | post_package_strip 35 | } 36 | -------------------------------------------------------------------------------- /recipes/rsync: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=rsync 4 | version=3.4.1 5 | revision=1 6 | tarball_url="https://www.samba.org/ftp/rsync/src/rsync-${version}.tar.gz" 7 | tarball_blake2b="79c1cad697547059ee241e20c26d7f97bed3ad062deb856d31a617fead333a2d9f62c7c47c1efaf70033dbc358fe547d034c35e8181abb51a1fc893557882bc7" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs lz4 openssl xxhash zlib zstd" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure \ 17 | --with-included-zlib=no 18 | } 19 | 20 | build() { 21 | make -j${parallelism} 22 | } 23 | 24 | package() { 25 | DESTDIR="${dest_dir}" make install 26 | 27 | post_package_strip 28 | } 29 | -------------------------------------------------------------------------------- /recipes/sdl2-compat: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=sdl2-compat 4 | version=2.32.56 5 | revision=1 6 | tarball_url="https://github.com/libsdl-org/sdl2-compat/releases/download/release-${version}/sdl2-compat-${version}.tar.gz" 7 | tarball_blake2b="ffe635f2f2f220715752185587a4c4cc343acbfe1c17cd96afe176a65354926902b9d26d09c1688130a74561036da808aadc2f93467d4634bf692ffe69b26e57" 8 | imagedeps="cmake ninja-build git" 9 | hostdeps="gcc pkg-config" 10 | deps="sdl3" 11 | 12 | configure() { 13 | cmake_configure \ 14 | -DSDL2COMPAT_STATIC=OFF \ 15 | -DSDL2COMPAT_TEST_LIBRARY=OFF 16 | } 17 | 18 | build() { 19 | ninja -j${parallelism} 20 | } 21 | 22 | package() { 23 | DESTDIR="${dest_dir}" ninja install 24 | 25 | rm -v "${dest_dir}${prefix}"/lib/*.a 26 | 27 | post_package_strip 28 | } 29 | -------------------------------------------------------------------------------- /recipes/sdl3: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=sdl3 4 | version=3.2.12 5 | revision=1 6 | tarball_url="https://github.com/libsdl-org/SDL/releases/download/release-${version}/SDL3-${version}.tar.gz" 7 | tarball_blake2b="319e6e8f7348047d2aaa80ccd8b6a321e601a9bce58c338915b7c5a0e62b96d50ebd4de4ef47f9e5613f10c2c5f26220e769e19d8629cb590da92b42dd0731ab" 8 | imagedeps="cmake ninja-build git" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs libx11 libxext libxcursor libxi libxfixes libxrandr libxrender libxxf86vm mesa" 11 | 12 | configure() { 13 | cmake_configure \ 14 | -DSDL_ALTIVEC=OFF \ 15 | -DSDL_DISKAUDIO=OFF \ 16 | -DSDL_OPENGL=ON \ 17 | -DSDL_OPENGLES=ON \ 18 | -DSDL_PTHREADS=ON \ 19 | -DSDL_PTHREADS_SEM=OFF \ 20 | -DSDL_OSS=OFF \ 21 | -DSDL_ALSA=OFF \ 22 | -DSDL_JACK=OFF \ 23 | -DSDL_PULSEAUDIO=OFF \ 24 | -DSDL_SNDIO=OFF \ 25 | -DSDL_RPATH=OFF \ 26 | -DSDL_X11=ON \ 27 | -DSDL_WAYLAND=OFF \ 28 | -DSDL_RPI=OFF \ 29 | -DSDL_COCOA=OFF \ 30 | -DSDL_DIRECTX=OFF \ 31 | -DSDL_WASAPI=OFF \ 32 | -DSDL_RENDER_D3D=OFF \ 33 | -DSDL_VIVANTE=OFF \ 34 | -DSDL_VULKAN=OFF \ 35 | -DSDL_KMSDRM=OFF \ 36 | -DSDL_HIDAPI=ON \ 37 | -DSDL_SHARED=ON \ 38 | -DSDL_STATIC=OFF \ 39 | -DSDL_TEST_LIBRARY=OFF 40 | } 41 | 42 | build() { 43 | ninja -j${parallelism} 44 | } 45 | 46 | package() { 47 | DESTDIR="${dest_dir}" ninja install 48 | 49 | post_package_strip 50 | } 51 | -------------------------------------------------------------------------------- /recipes/sed: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=sed 4 | version=4.9 5 | revision=1 6 | tarball_url="https://ftp.gnu.org/gnu/sed/sed-${version}.tar.xz" 7 | tarball_blake2b="6c7c7dc782b87c3bd0b5e826ba46c2f1dc7bd8c1159945fcf14b394711742964628774cf9f27d844b672721d7849e6c31992d82fafb9ed4118b7feb60406d1e1" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/sqlite: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=sqlite 4 | version=3.49.1 5 | revision=1 6 | tarball_url="https://sqlite.org/2025/sqlite-autoconf-3490100.tar.gz" 7 | tarball_blake2b="08f9379977b9a7962de5283cb532ecdd500e6e9b00d5e64e14e323777b47ea90e15745528d441328b7907060b7f594dc5054b327b471189477e595c0575c43a0" 8 | imagedeps="build-essential" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs readline zlib" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | "${source_dir}/configure" \ 18 | --host=${OS_TRIPLET} \ 19 | --prefix=${prefix} \ 20 | --sysconfdir=/etc \ 21 | --localstatedir=/var \ 22 | --bindir=${prefix}/bin \ 23 | --sbindir=${prefix}/bin \ 24 | --libdir=${prefix}/lib \ 25 | --sysroot=${sysroot_dir} \ 26 | --soname=legacy \ 27 | --disable-static \ 28 | --enable-shared \ 29 | --enable-fts4 \ 30 | --enable-fts5 \ 31 | --enable-readline \ 32 | --with-readline-header=${sysroot_dir}${prefix}/include/readline/readline.h \ 33 | CFLAGS="$TARGET_CFLAGS -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_ENABLE_UNLOCK_NOTIFY=1 -DSQLITE_ENABLE_DBSTAT_VTAB=1 -DSQLITE_SECURE_DELETE=1" \ 34 | LDFLAGS="$TARGET_LDFLAGS" 35 | } 36 | 37 | build() { 38 | make -j${parallelism} 39 | } 40 | 41 | package() { 42 | DESTDIR="${dest_dir}" make install 43 | 44 | post_package_strip 45 | } 46 | -------------------------------------------------------------------------------- /recipes/taisei: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=taisei 4 | version=1.4.2 5 | revision=1 6 | tarball_url="https://github.com/taisei-project/taisei/releases/download/v${version}/taisei-${version}.tar.xz" 7 | tarball_blake2b="382e6e02013573f4218a073ad9d19cd128f0b4366d3f3f586e8ab4de9a5948ffedd13a22cefc9a8af04cccd2cf0205c9d6c738b125fd332b363606acd5938e4a" 8 | imagedeps="meson ninja-build build-essential" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs freetype2 libpng sdl2-compat libwebp zlib cglm openssl" 11 | 12 | configure() { 13 | meson_configure \ 14 | -Ddocs=disabled \ 15 | -Da_default=null \ 16 | -Db_lto=false \ 17 | -Da_sdl=disabled 18 | } 19 | 20 | build() { 21 | ninja -j${parallelism} 22 | } 23 | 24 | package() { 25 | DESTDIR="${dest_dir}" ninja install 26 | 27 | post_package_strip 28 | } 29 | -------------------------------------------------------------------------------- /recipes/tar: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=tar 4 | version=1.35 5 | revision=1 6 | tarball_url="https://ftp.gnu.org/gnu/tar/tar-${version}.tar.xz" 7 | tarball_blake2b="e1a200d21f433cd7d917dd979db16919a9167056ae62cf7d038a6118e56b2fe419cd4a396eee66f1f4dc13a8dc380e23f6ffd7ee0ca84e5dd9ad9411f60e002c" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | LIBS="-liconv -lintl" \ 17 | autotools_configure \ 18 | --enable-backup-scripts 19 | } 20 | 21 | build() { 22 | make -j${parallelism} 23 | } 24 | 25 | package() { 26 | DESTDIR="${dest_dir}" make install 27 | 28 | post_package_strip 29 | } 30 | -------------------------------------------------------------------------------- /recipes/texinfo: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=texinfo 4 | version=7.2 5 | revision=1 6 | tarball_url="https://ftp.gnu.org/pub/gnu/texinfo/texinfo-${version}.tar.xz" 7 | tarball_blake2b="fc6bd020310a437a73d5723d257ca3da1d15329e9e668fa78c49ac77759c2c990d4422c2a7071b217ea214b88389a0cbb43d3fcfa5fe9bf9651270167b15c342" 8 | source_imagedeps="build-essential" 9 | imagedeps="build-essential help2man" 10 | hostdeps="gcc pkg-config" 11 | deps="core-libs ncurses bash gzip" 12 | 13 | prepare() { 14 | autotools_recursive_regen 15 | 16 | mkdir build && cd build 17 | ../configure \ 18 | CFLAGS="$HOST_CFLAGS" \ 19 | CPPFLAGS="$HOST_CPPFLAGS" \ 20 | LDFLAGS="$HOST_LDFLAGS" 21 | 22 | make -j${parallelism} 23 | make -C info makedoc 24 | 25 | cd .. 26 | mv build/info/makedoc info/ 27 | rm -rf build 28 | } 29 | 30 | configure() { 31 | texinfo_cv_sys_iconv_converts_euc_cn=y \ 32 | autotools_configure \ 33 | --disable-perl-xs 34 | 35 | mkdir -p tools/info 36 | cp -v "${source_dir}"/info/makedoc tools/info/ 37 | } 38 | 39 | build() { 40 | make -j${parallelism} 41 | } 42 | 43 | package() { 44 | DESTDIR="${dest_dir}" make install 45 | 46 | post_package_strip 47 | } 48 | -------------------------------------------------------------------------------- /recipes/tinyvvm: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=tinyvvm 4 | skip_pkg_check=yes 5 | version=0.0git 6 | revision=1 7 | git_url="https://github.com/Eliyaan/tinyvvm.git" 8 | commit=85ddc187770c833818f3e8dacf1a8d7dd8d2b444 9 | hostdeps="gcc pkg-config v" 10 | deps="core-libs libx11" 11 | 12 | build() { 13 | cp -rp "${source_dir}"/. ./ 14 | 15 | set -x 16 | 17 | VCROSS_COMPILER_NAME=${OS_TRIPLET}-gcc \ 18 | v \ 19 | -os vinix \ 20 | -gc none \ 21 | -prod \ 22 | -autofree \ 23 | -cflags "$TARGET_CFLAGS" \ 24 | -ldflags "$TARGET_LDFLAGS" \ 25 | . 26 | 27 | set +x 28 | } 29 | 30 | package() { 31 | install -d "${dest_dir}/usr/bin" 32 | install tinyvvm "${dest_dir}/usr/bin/" 33 | 34 | post_package_strip 35 | } 36 | -------------------------------------------------------------------------------- /recipes/tree: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=tree 4 | repology_id=tree-steve-baker 5 | version=2.2.1 6 | revision=1 7 | tarball_url="https://gitlab.com/OldManProgrammer/unix-tree/-/archive/${version}/unix-tree-${version}.tar.gz" 8 | tarball_blake2b="7c6bc3249634320aaef8be0c6fd9143faf3c5b6c507c7c3d724efd9e8a8ce8957362665312829c6fdcae7bbc4670b194e45a1f51efc8bb00fcc3237b21ffd058" 9 | hostdeps="gcc" 10 | deps="core-libs" 11 | 12 | build() { 13 | cp -rp "${source_dir}"/. ./ 14 | CC=${OS_TRIPLET}-gcc \ 15 | CFLAGS="${TARGET_CFLAGS}" \ 16 | CPPFLAGS="${TARGET_CPPFLAGS}" \ 17 | LDFLAGS="${TARGET_LDFLAGS}" \ 18 | make \ 19 | -j${parallelism} 20 | } 21 | 22 | package() { 23 | make PREFIX="${dest_dir}${prefix}" install 24 | 25 | post_package_strip 26 | } 27 | -------------------------------------------------------------------------------- /recipes/ttf-dejavu: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=ttf-dejavu 4 | repology_id=fonts:dejavu 5 | version=2.37 6 | revision=1 7 | tarball_url="https://sourceforge.net/projects/dejavu/files/dejavu/${version}/dejavu-fonts-ttf-${version}.tar.bz2" 8 | tarball_blake2b="d8614907887f20967fc7c75cb33b636a0eb5c682a076ccc7aef09f4ac243507afc005ef90d0b2aeee6a4a6a1ff3d5ce4fac0d1722a382525b3883ef53cdec26a" 9 | deps="core-libs" 10 | 11 | build() { 12 | cp -r ${source_dir}/. ./ 13 | } 14 | 15 | package() { 16 | mkdir -p "${dest_dir}${prefix}/share/fonts/truetype" 17 | cp -r ttf/* "${dest_dir}${prefix}/share/fonts/truetype/" 18 | } 19 | -------------------------------------------------------------------------------- /recipes/ttf-liberation: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=ttf-liberation 4 | repology_id=fonts:liberation 5 | version=2.1.5 6 | revision=1 7 | tarball_url="https://github.com/liberationfonts/liberation-fonts/files/7261482/liberation-fonts-ttf-${version}.tar.gz" 8 | tarball_blake2b="9c9469b42becd8ccdfa0314b5f2c0fe7c1c59095c67ddc7dc656fe4ed951511e50f78da52c98700ed6f36549aacf4727339c1a786c5f16cc63d8a266318ca3d8" 9 | deps="core-libs" 10 | 11 | build() { 12 | cp -r ${source_dir}/. ./ 13 | } 14 | 15 | package() { 16 | mkdir -p "${dest_dir}${prefix}/share/fonts/truetype" 17 | cp -r * "${dest_dir}${prefix}/share/fonts/truetype/" 18 | } 19 | -------------------------------------------------------------------------------- /recipes/util-vinix: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=util-vinix 4 | skip_pkg_check=yes 5 | version=0.0git 6 | revision=1 7 | source_dir="util-vinix" 8 | hostdeps="gcc v" 9 | deps="core-libs" 10 | 11 | build() { 12 | cp -rp "${source_dir}"/. ./ 13 | 14 | make -j1 \ 15 | PROD="$PROD" \ 16 | CC=${OS_TRIPLET}-gcc \ 17 | VFLAGS="-os vinix -gc none" \ 18 | CFLAGS="$TARGET_CFLAGS" \ 19 | LDFLAGS="$TARGET_LDFLAGS" 20 | } 21 | 22 | package() { 23 | make install PREFIX="${prefix}" DESTDIR="${dest_dir}" 24 | 25 | post_package_strip 26 | } 27 | -------------------------------------------------------------------------------- /recipes/v: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=v 4 | repology_id=vlang 5 | version=0.0git 6 | revision=1 7 | git_url="https://github.com/vlang/v.git" 8 | commit=dd859eae55cf4e69346851fe285b9af104c8ffb7 9 | source_allow_network="yes" 10 | source_imagedeps="git" 11 | hostdeps="gcc" 12 | deps="core-libs" 13 | 14 | prepare() { 15 | git clone https://github.com/vlang/vc.git \ 16 | --revision=216b1cdc8b1acad5b03e9cf8767f44f2742bf8f5 \ 17 | --depth=1 18 | 19 | cd vc 20 | rm -rf .git 21 | patch -p0 <"${base_dir}"/build-support/v/v.c.patch 22 | } 23 | 24 | build() { 25 | cp -rpf ${source_dir}/. ./ 26 | 27 | set -x 28 | ${OS_TRIPLET}-gcc $TARGET_CFLAGS $TARGET_CPPFLAGS -w -std=gnu99 $TARGET_LDFLAGS vc/v.c -o v 29 | set +x 30 | } 31 | 32 | package() { 33 | rm -rf "${dest_dir}${prefix}"/v 34 | mkdir -p "${dest_dir}${prefix}"/v 35 | cp -r . "${dest_dir}${prefix}"/v/ 36 | rm -rf "${dest_dir}${prefix}"/v/.git 37 | 38 | mkdir -p "${dest_dir}${prefix}"/bin 39 | ln -sf ../v/v "${dest_dir}${prefix}"/bin/v 40 | 41 | post_package_strip 42 | } 43 | -------------------------------------------------------------------------------- /recipes/xbitmaps: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xbitmaps 4 | version=1.1.3 5 | revision=1 6 | tarball_url="https://www.x.org/pub/individual/data/xbitmaps-${version}.tar.gz" 7 | tarball_blake2b="b5bde889f7b821952ec7102c04ee35145e3434e49cb8b6f78de61519f3679a68269fdeb49885be2747288bb66722f954459e65c530058578ab542d9750a2a5a8" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs xorg-util-macros" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/xbps: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xbps 4 | version=0.59.2 5 | revision=1 6 | tarball_url="https://github.com/void-linux/xbps/archive/refs/tags/${version}.tar.gz" 7 | tarball_blake2b="cabe5676eb1611271f255c75f4439f3ef4ea6096d6fc26f0982da471556e1fd1733cb76a6d5857d3546513b157e8a3493624d09d989134f3f6d7763c55e98a83" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs libarchive openssl zlib" 10 | 11 | configure() { 12 | cp -rp "${source_dir}"/. ./ 13 | 14 | CFLAGS="$TARGET_CFLAGS -Wno-error" \ 15 | CPPFLAGS="$TARGET_CPPFLAGS" \ 16 | LDFLAGS="$TARGET_LDFLAGS" \ 17 | ./configure \ 18 | --verbose \ 19 | --host=${OS_TRIPLET} \ 20 | --prefix="${prefix}" \ 21 | --sysconfdir=/etc 22 | } 23 | 24 | build() { 25 | make -j${parallelism} \ 26 | AR="${OS_TRIPLET}-ar" \ 27 | RANLIB="${OS_TRIPLET}-ranlib" 28 | } 29 | 30 | package() { 31 | DESTDIR="${dest_dir}" make install 32 | 33 | # Remove static libraries 34 | rm "${dest_dir}${prefix}"/lib/*.a 35 | 36 | post_package_strip 37 | } 38 | -------------------------------------------------------------------------------- /recipes/xcb-proto: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xcb-proto 4 | version=1.17.0 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/proto/xcb-proto-${version}.tar.xz" 7 | tarball_blake2b="0f46d040062fca4f6b598bdb7ab7a254b9aefce198812af82fd2112e06e88277e3c9e0a3bab161930b56688e71e1848bb859d4f33588f9496fe7399f9758b9a7" 8 | imagedeps="libxml2" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure 18 | } 19 | 20 | build() { 21 | make -j${parallelism} 22 | } 23 | 24 | package() { 25 | DESTDIR="${dest_dir}" make install 26 | 27 | post_package_strip 28 | } 29 | -------------------------------------------------------------------------------- /recipes/xcb-util: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xcb-util 4 | version=0.4.1 5 | revision=1 6 | tarball_url="https://xcb.freedesktop.org/dist/xcb-util-${version}.tar.xz" 7 | tarball_blake2b="bcde73073590c56771af6233f1a04a692197a756ef9ce70b6e0bd3625ad6d61f99f4c671dcfae39c8dd66e3225f40f7e9b42dd115ffe83a561e48a9808bf00e3" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs libxcb" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/xf86-input-keyboard: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xf86-input-keyboard 4 | repology_id=xdrv:keyboard 5 | version=2.1.0 6 | revision=1 7 | tarball_url="https://www.x.org/releases/individual/driver/xf86-input-keyboard-${version}.tar.gz" 8 | tarball_blake2b="a3d440b1e49df09ee50938a80c98c5274acaffd8824f0cb912844ae26831d3814c4cc2c23b52dbce88847a5bd33614b09b99f01d72ba102905e30166a52412f0" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs xorg-server xorg-util-macros" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure 18 | } 19 | 20 | build() { 21 | make -j${parallelism} 22 | } 23 | 24 | package() { 25 | DESTDIR="${dest_dir}" make install 26 | 27 | post_package_strip 28 | } 29 | -------------------------------------------------------------------------------- /recipes/xf86-input-mouse: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xf86-input-mouse 4 | repology_id=xdrv:mouse 5 | version=1.9.5 6 | revision=1 7 | tarball_url="https://xorg.freedesktop.org/archive/individual/driver/xf86-input-mouse-${version}.tar.gz" 8 | tarball_blake2b="67f4de10424d640913fcafc2292f342a1e993d33e4ecc3c152e818953e19deaba796b96c29e0c07a4f4b74a1eb3bc1c41c3e5ab868cade02c21a90e2556da53f" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs xorg-server xorg-util-macros" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure 18 | } 19 | 20 | build() { 21 | make -j${parallelism} 22 | } 23 | 24 | package() { 25 | DESTDIR="${dest_dir}" make install 26 | 27 | post_package_strip 28 | } 29 | -------------------------------------------------------------------------------- /recipes/xf86-video-fbdev: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xf86-video-fbdev 4 | repology_id=xdrv:fbdev 5 | version=0.5.1 6 | revision=1 7 | tarball_url="https://www.x.org/releases/individual/driver/xf86-video-fbdev-${version}.tar.gz" 8 | tarball_blake2b="02523bc6c38e71c6334b247bf13d54ba32e3f2e3208ad150df5085385f5b9b41d39466a7e307480d0bef154f17b8e5dd05b62923cfdb52672229d2c829fb4ca5" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs xorg-server xorg-util-macros" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure \ 18 | --disable-pciaccess 19 | } 20 | 21 | build() { 22 | make -j${parallelism} \ 23 | SYSROOT=${sysroot_dir} 24 | } 25 | 26 | package() { 27 | DESTDIR="${dest_dir}" make install 28 | 29 | post_package_strip 30 | } 31 | -------------------------------------------------------------------------------- /recipes/xkeyboard-config: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xkeyboard-config 4 | version=2.44 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/data/xkeyboard-config/xkeyboard-config-${version}.tar.xz" 7 | tarball_blake2b="6abb485ef5c9cb1292afaed22ac72026dc22c0a08c3bf04ca29f8dd61d68cbf06e511fe095628a0ab6dec7766374318c4b5bddeb2c4da8a8a692bbbbf4b4e83b" 8 | imagedeps="meson ninja-build" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs xorg-xkbcomp" 11 | 12 | configure() { 13 | meson_configure \ 14 | -Dxorg-rules-symlinks=true 15 | } 16 | 17 | build() { 18 | ninja -j${parallelism} 19 | } 20 | 21 | package() { 22 | DESTDIR="${dest_dir}" ninja install 23 | 24 | post_package_strip 25 | } 26 | -------------------------------------------------------------------------------- /recipes/xorg-font-util: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xorg-font-util 4 | repology_id=font-util 5 | version=1.4.1 6 | revision=1 7 | tarball_url="https://www.x.org/archive/individual/font/font-util-${version}.tar.xz" 8 | tarball_blake2b="5a7cee52aa58cecc85f5168963038b65d921bc33615e86a833cba5aec007d61bb05fa3b200ed9b192d9ab9291d53065443711f8eac976242b2013cd7b9fc494a" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs xorg-util-macros" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure 18 | } 19 | 20 | build() { 21 | make -j${parallelism} 22 | } 23 | 24 | package() { 25 | DESTDIR="${dest_dir}" make install 26 | 27 | post_package_strip 28 | } 29 | -------------------------------------------------------------------------------- /recipes/xorg-proto: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xorg-proto 4 | repology_id=xorgproto 5 | version=2024.1 6 | revision=1 7 | tarball_url="https://www.x.org/releases/individual/proto/xorgproto-${version}.tar.xz" 8 | tarball_blake2b="a3850f8594e8b4240f731dce696c3ab8310c3b2419117dea3141a093a690d9bc16652e64eb5516073145309c65327bd14be2eaa8843c04de25c8eff6c46d3c1d" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs xorg-util-macros" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure 18 | } 19 | 20 | build() { 21 | make -j${parallelism} 22 | } 23 | 24 | package() { 25 | DESTDIR="${dest_dir}" make install 26 | 27 | post_package_strip 28 | } 29 | -------------------------------------------------------------------------------- /recipes/xorg-twm: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xorg-twm 4 | repology_id=twm 5 | version=1.0.13.1 6 | revision=1 7 | tarball_url="https://www.x.org/pub/individual/app/twm-${version}.tar.xz" 8 | tarball_blake2b="ab965119974ca9a2079d1f6e5d51f44278debd2e231159fb39af2e5468e4e6620ed764baafc3b5df51366b639bc55b0d868fe876d2cfef07aac92656cfd471b9" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs libxmu" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure 18 | } 19 | 20 | build() { 21 | make -j${parallelism} 22 | } 23 | 24 | package() { 25 | DESTDIR="${dest_dir}" make install 26 | 27 | post_package_strip 28 | } 29 | -------------------------------------------------------------------------------- /recipes/xorg-util-macros: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xorg-util-macros 4 | repology_id=util-macros 5 | version=1.20.2 6 | revision=1 7 | tarball_url="https://www.x.org/archive/individual/util/util-macros-${version}.tar.gz" 8 | tarball_blake2b="57c880e87b7714234d220897736864401277a609a2038a018b551f495868c6ac9ef3257a8df367369635a304440386877f287dd7d27e42616def00ec1dc1b55e" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure 18 | } 19 | 20 | build() { 21 | make -j${parallelism} 22 | } 23 | 24 | package() { 25 | DESTDIR="${dest_dir}" make install 26 | 27 | post_package_strip 28 | } 29 | -------------------------------------------------------------------------------- /recipes/xorg-xauth: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xorg-xauth 4 | repology_id=xauth 5 | version=1.1.4 6 | revision=1 7 | tarball_url="https://www.x.org/releases/individual/app/xauth-${version}.tar.xz" 8 | tarball_blake2b="60f693118531058e5114a80e0e34eb8a429c3ce0d8ef168fea21924afa21139abb58b63e64c745c69df7f7e2a0540636f9d5ab32ed6d0019f9bc7cfa92724a7e" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs libxmu libxau libxext libx11" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure 18 | } 19 | 20 | build() { 21 | make -j${parallelism} 22 | } 23 | 24 | package() { 25 | DESTDIR="${dest_dir}" make install 26 | 27 | post_package_strip 28 | } 29 | -------------------------------------------------------------------------------- /recipes/xorg-xclock: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xorg-xclock 4 | repology_id=xclock 5 | version=1.1.1 6 | revision=1 7 | tarball_url="https://xorg.freedesktop.org/archive/individual/app/xclock-${version}.tar.gz" 8 | tarball_blake2b="4fd77b8f1f0962774dd0e6295f7482c05be8107e1606a9705ccd2864d2c9b37adda4a41a6704c6e1363edd2b7e704324799c4feaff39e218b326b66274b48187" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs libx11 libxmu libxaw libxrender libxft libxkbfile" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure \ 18 | --with-appdefaultdir=/etc/X11/app-defaults 19 | } 20 | 21 | build() { 22 | make -j${parallelism} 23 | } 24 | 25 | package() { 26 | DESTDIR="${dest_dir}" make install 27 | 28 | post_package_strip 29 | } 30 | -------------------------------------------------------------------------------- /recipes/xorg-xeyes: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xorg-xeyes 4 | repology_id=xeyes 5 | version=1.3.0 6 | revision=1 7 | tarball_url="https://xorg.freedesktop.org/archive/individual/app/xeyes-${version}.tar.gz" 8 | tarball_blake2b="76f24c332bf93cb64b6c53c0bbd662f74be96cc08e05a8aec81ed23c25cb80c1b6258f98e824f7bbe9184b7d882d28e98e1e645f20cf2c3a07f480bd5b479395" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs libx11 libxt libxext libxmu libxrender libxi libxcb" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure 18 | } 19 | 20 | build() { 21 | make -j${parallelism} 22 | } 23 | 24 | package() { 25 | DESTDIR="${dest_dir}" make install 26 | 27 | post_package_strip 28 | } 29 | -------------------------------------------------------------------------------- /recipes/xorg-xfontsel: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xorg-xfontsel 4 | repology_id=xfontsel 5 | version=1.1.1 6 | revision=1 7 | tarball_url="https://www.x.org/pub/individual/app/xfontsel-${version}.tar.xz" 8 | tarball_blake2b="89d06f85cdd6b1a363711b6b59937d3f7ba6dad4ffd1c1fb2fa2604aa52e7d883726dc72d8d9d96060d7fedcd2c4ca20f30621d28d0174b1b66151705d899864" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs libxmu libxaw libxt libx11" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure \ 18 | --with-appdefaultdir=/etc/X11/app-defaults 19 | } 20 | 21 | build() { 22 | make -j${parallelism} 23 | } 24 | 25 | package() { 26 | DESTDIR="${dest_dir}" make install 27 | 28 | post_package_strip 29 | } 30 | -------------------------------------------------------------------------------- /recipes/xorg-xinit: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xorg-xinit 4 | repology_id=xinit 5 | version=1.4.4 6 | revision=1 7 | tarball_url="https://www.x.org/releases/individual/app/xinit-${version}.tar.xz" 8 | tarball_blake2b="54da6f5d31658a228987d4e3a17636bb5f3a36bc7067dfc8bcbe35c2944831e320edd7a92b172a55b2db41d6d757b22cfa2b712beb9d17c8f39d539a4294ba23" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs libx11 xorg-xauth xorg-xmodmap xorg-xrdb" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure 18 | } 19 | 20 | build() { 21 | make -j${parallelism} 22 | } 23 | 24 | package() { 25 | DESTDIR="${dest_dir}" make install 26 | 27 | post_package_strip 28 | } 29 | -------------------------------------------------------------------------------- /recipes/xorg-xkbcomp: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xorg-xkbcomp 4 | version=1.4.7 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/app/xkbcomp-${version}.tar.gz" 7 | tarball_blake2b="75131c5aea7f6861b198638fcb595e741ea7847a408c008bd4b9d8498e8a4476d8f8cfe841f01626ee8ade432a6f76f375aa76dea1822402b4d6b18aeb39fc21" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs libxkbfile libx11" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/xorg-xkbutils: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xorg-xkbutils 4 | repology_id=xkbutils 5 | version=1.0.6 6 | revision=1 7 | tarball_url="https://www.x.org/archive/individual/app/xkbutils-${version}.tar.xz" 8 | tarball_blake2b="af97210ded0e5d1d5ce99e71c50c3ade19b5fe926596a3816a8fcbe7ea6b65f08d5216792a45cb4df3191b6f5fc3db059ee1b1b05ecf0fea408562088f6489e4" 9 | hostdeps="gcc pkg-config" 10 | builddeps="xorg-proto" 11 | deps="core-libs libx11 libxt libxaw" 12 | 13 | prepare() { 14 | autotools_recursive_regen 15 | } 16 | 17 | configure() { 18 | autotools_configure 19 | } 20 | 21 | build() { 22 | make -j${parallelism} 23 | } 24 | 25 | package() { 26 | DESTDIR="${dest_dir}" make install 27 | 28 | post_package_strip 29 | } 30 | -------------------------------------------------------------------------------- /recipes/xorg-xlsfonts: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xorg-xlsfonts 4 | version=1.0.8 5 | revision=1 6 | tarball_url="https://www.x.org/pub/individual/app/xlsfonts-${version}.tar.xz" 7 | tarball_blake2b="16ff4ba039f3122844c44c907fbfaff0fbbe6f219bd96cf7154179cbb5865b7911c3af926750dd702917f04a103c889cccea3aa03b48d2a4a47885b448b268e4" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs libx11" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/xorg-xmessage: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xorg-xmessage 4 | repology_id=xmessage 5 | version=1.0.7 6 | revision=1 7 | tarball_url="https://www.x.org/pub/individual/app/xmessage-${version}.tar.xz" 8 | tarball_blake2b="e2068bdaee66360296b0767b6f110bde5a3fd54b4213b2fc56929c56578ea589e38511011424d6c79da5b35821bf8772e951c299f3c4de093cf64efb8da015ef" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs libxaw libx11 libxt" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure \ 18 | --with-appdefaultdir=/etc/X11/app-defaults 19 | } 20 | 21 | build() { 22 | make -j${parallelism} 23 | } 24 | 25 | package() { 26 | DESTDIR="${dest_dir}" make install 27 | 28 | post_package_strip 29 | } 30 | -------------------------------------------------------------------------------- /recipes/xorg-xmodmap: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xorg-xmodmap 4 | repology_id=xmodmap 5 | version=1.0.11 6 | revision=1 7 | tarball_url="https://www.x.org/releases/individual/app/xmodmap-${version}.tar.xz" 8 | tarball_blake2b="d50611e762b665b18c370ea49d981d7820f16e2e10450bbb2ebc76c867a3a4e75d68e7dacfb9e610849770afa95f4d757863953217aac8e13509b386bdb8131d" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs libx11" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure 18 | } 19 | 20 | build() { 21 | make -j${parallelism} 22 | } 23 | 24 | package() { 25 | DESTDIR="${dest_dir}" make install 26 | 27 | post_package_strip 28 | } 29 | -------------------------------------------------------------------------------- /recipes/xorg-xprop: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xorg-xprop 4 | repology_id=xprop 5 | version=1.2.8 6 | revision=1 7 | tarball_url="https://www.x.org/pub/individual/app/xprop-${version}.tar.gz" 8 | tarball_blake2b="3e5d8a4a9164d745cc881af296bec57a2c1320a194888c07aecb53e1facd13e0b1179b940d70af95603934756b5a0426d450ac55706d56f0b8053d2174e74631" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs libx11" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure 18 | } 19 | 20 | build() { 21 | make -j${parallelism} 22 | } 23 | 24 | package() { 25 | DESTDIR="${dest_dir}" make install 26 | 27 | post_package_strip 28 | } 29 | -------------------------------------------------------------------------------- /recipes/xorg-xrandr: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xorg-xrandr 4 | repology_id=xrandr 5 | version=1.5.3 6 | revision=1 7 | tarball_url="https://www.x.org/pub/individual/app/xrandr-${version}.tar.xz" 8 | tarball_blake2b="a2f253e0027976ef1bbf346361f6cfcfb575db36f134ec21e234f733fe7e70959d401c6b078a0d6d0297021aeff12eef57e4fdc865c86531784e439927385995" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs libxmu libxaw libxt libx11 libxrandr" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure \ 18 | --with-appdefaultdir=/etc/X11/app-defaults 19 | } 20 | 21 | build() { 22 | make -j${parallelism} 23 | } 24 | 25 | package() { 26 | DESTDIR="${dest_dir}" make install 27 | 28 | post_package_strip 29 | } 30 | -------------------------------------------------------------------------------- /recipes/xorg-xrdb: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xorg-xrdb 4 | repology_id=xrdb 5 | version=1.2.2 6 | revision=1 7 | tarball_url="https://www.x.org/releases/individual/app/xrdb-${version}.tar.xz" 8 | tarball_blake2b="fbf396089a82db2a21866527f7d847f106164e1ce10795a2f96e34d5165311f4ed718eee10429792fc4fe273529af3350c41d765cb067c6310707bcc976bfdbe" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs libx11 libxmu" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure 18 | } 19 | 20 | build() { 21 | make -j${parallelism} 22 | } 23 | 24 | package() { 25 | DESTDIR="${dest_dir}" make install 26 | 27 | post_package_strip 28 | } 29 | -------------------------------------------------------------------------------- /recipes/xorg-xset: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xorg-xset 4 | repology_id=xset 5 | version=1.2.5 6 | revision=1 7 | tarball_url="https://www.x.org/pub/individual/app/xset-${version}.tar.xz" 8 | tarball_blake2b="81d93de0bd2a5f0d76937109a8f16f5e1d5074ec5209ea373d9f4b3f5064ac15a9e3c9cdc850cbe6103469fcdfc4d69df033ce7bbf80e22b507d3664e49911a9" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs libxmu" 11 | 12 | prepare() { 13 | autotools_recursive_regen 14 | } 15 | 16 | configure() { 17 | autotools_configure \ 18 | --without-fontcache 19 | } 20 | 21 | build() { 22 | make -j${parallelism} 23 | } 24 | 25 | package() { 26 | DESTDIR="${dest_dir}" make install 27 | 28 | post_package_strip 29 | } 30 | -------------------------------------------------------------------------------- /recipes/xorg-xsetroot: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xorg-xsetroot 4 | repology_id=xsetroot 5 | version=1.1.3 6 | revision=1 7 | tarball_url="https://www.x.org/archive/individual/app/xsetroot-${version}.tar.gz" 8 | tarball_blake2b="b904a9f622883d050751026966341daac1e31ac7c66a6bc54ee6e370c7f096aa5158c7fdc37feb796c7ff7720f654cf9ec194e4ecdb95a3049f3021afee2cb8e" 9 | hostdeps="gcc pkg-config" 10 | builddeps="xbitmaps" 11 | deps="core-libs libx11 libxmu libxcursor" 12 | 13 | prepare() { 14 | autotools_recursive_regen 15 | } 16 | 17 | configure() { 18 | autotools_configure 19 | } 20 | 21 | build() { 22 | make -j${parallelism} 23 | } 24 | 25 | package() { 26 | DESTDIR="${dest_dir}" make install 27 | 28 | post_package_strip 29 | } 30 | -------------------------------------------------------------------------------- /recipes/xorg-xwininfo: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xorg-xwininfo 4 | repology_id=xwininfo 5 | version=1.1.6 6 | revision=1 7 | tarball_url="https://www.x.org/pub/individual/app/xwininfo-${version}.tar.xz" 8 | tarball_blake2b="d23d175d6083d95ef5f5df79fb1c88b4d92c618dbec90ee3dc4ae07fe2c5600b9c4dd00dcf3a32b512b51ecf9c6a11e5e7a5bb398f2cb479bdea05b076e5fd73" 9 | hostdeps="gcc pkg-config" 10 | builddeps="libx11" 11 | deps="core-libs libxcb" 12 | 13 | prepare() { 14 | autotools_recursive_regen 15 | } 16 | 17 | configure() { 18 | autotools_configure 19 | } 20 | 21 | build() { 22 | make -j${parallelism} 23 | } 24 | 25 | package() { 26 | DESTDIR="${dest_dir}" make install 27 | 28 | post_package_strip 29 | } 30 | -------------------------------------------------------------------------------- /recipes/xorriso: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xorriso 4 | repology_id=libisoburn 5 | version=1.5.6 6 | revision=1 7 | tarball_url="https://ftp.gnu.org/gnu/xorriso/xorriso-${version}.pl02.tar.gz" 8 | tarball_blake2b="5f453cb3b1583865c71947c3ce95d87ea138b87605429fa756e34f0ddedb34037381ef81893bb69ecac9a2bd4302648f22f4cc930bf5567d509d1e26e6530f6b" 9 | imagedeps="gperf" 10 | hostdeps="gcc pkg-config" 11 | deps="core-libs pcre2" 12 | 13 | prepare() { 14 | autotools_recursive_regen 15 | } 16 | 17 | configure() { 18 | autotools_configure 19 | } 20 | 21 | build() { 22 | make -j${parallelism} 23 | } 24 | 25 | package() { 26 | DESTDIR="${dest_dir}" make install 27 | 28 | post_package_strip 29 | } 30 | -------------------------------------------------------------------------------- /recipes/xtrans: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xtrans 4 | version=1.6.0 5 | revision=1 6 | tarball_url="https://www.x.org/archive/individual/lib/xtrans-${version}.tar.gz" 7 | tarball_blake2b="446035fb78ec796c1534f36dc687b40fbe6227d47a623039314117a85cc4b3e37971934790932e46a6dc362de70dfb58ccd1fae43518461789ce8854e27adba8" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs xorg-util-macros" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/xxhash: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xxhash 4 | version=0.8.3 5 | revision=1 6 | tarball_url="https://github.com/Cyan4973/xxHash/archive/refs/tags/v${version}.tar.gz" 7 | tarball_blake2b="75923c7c5df3490062791fa02ccddfb7281b3646e2b3e4b4a0c0d611c339e07c8d9cb656777fd0fcec9cda484f7b33edf080116bb011f70d6b8299cda63afa4e" 8 | hostdeps="gcc" 9 | deps="core-libs" 10 | 11 | build() { 12 | cp -rp "${source_dir}"/. ./ 13 | 14 | CC="${OS_TRIPLET}-gcc" \ 15 | AR="${OS_TRIPLET}-ar" \ 16 | CFLAGS="${TARGET_CFLAGS}" \ 17 | CXXFLAGS="${TARGET_CXXFLAGS}" \ 18 | CPPFLAGS="${TARGET_CPPFLAGS}" \ 19 | LDFLAGS="${TARGET_LDFLAGS}" \ 20 | make \ 21 | -j${parallelism} 22 | } 23 | 24 | package() { 25 | DESTDIR="${dest_dir}" PREFIX="${prefix}" make install 26 | 27 | rm -fv "${dest_dir}${prefix}"/lib/libxxhash.a 28 | 29 | post_package_strip 30 | } 31 | -------------------------------------------------------------------------------- /recipes/xz: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=xz 4 | version=5.8.1 5 | revision=1 6 | tarball_url="https://github.com/tukaani-project/xz/releases/download/v${version}/xz-${version}.tar.xz" 7 | tarball_blake2b="f11be3971e181bb49b6a92d3cc07ebb1c6b5fb53bc5d079e0952eed94f069656cffb37a2e2e8f068a5f119c6ef5ee565b3ac9978a5afa24a40d49607d492d176" 8 | hostdeps="gcc pkg-config" 9 | deps="core-libs" 10 | 11 | prepare() { 12 | autotools_recursive_regen 13 | } 14 | 15 | configure() { 16 | autotools_configure 17 | } 18 | 19 | build() { 20 | make -j${parallelism} 21 | } 22 | 23 | package() { 24 | DESTDIR="${dest_dir}" make install 25 | 26 | post_package_strip 27 | } 28 | -------------------------------------------------------------------------------- /recipes/zlib: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=zlib 4 | version=1.3.1 5 | revision=1 6 | tarball_url="https://github.com/madler/zlib/archive/refs/tags/v${version}.tar.gz" 7 | tarball_blake2b="6d15d8f3c8feaf602043bb6e72316ee721c33ef24e110e3bf03fb12eac9703fd29e352268d202ecd2f18b526b4f1dbd90c8046e01ad8e64ddce3e55ad5db513e" 8 | imagedeps="patchelf" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs" 11 | 12 | configure() { 13 | prefix="${prefix}" \ 14 | CHOST="${OS_TRIPLET}" \ 15 | CFLAGS="${TARGET_CFLAGS}" \ 16 | CXXFLAGS="${TARGET_CXXFLAGS}" \ 17 | CPPFLAGS="${TARGET_CPPFLAGS}" \ 18 | LDFLAGS="${TARGET_LDFLAGS}" \ 19 | ${source_dir}/configure 20 | } 21 | 22 | build() { 23 | make -j${parallelism} 24 | } 25 | 26 | package() { 27 | DESTDIR="${dest_dir}" make install 28 | # Remove static libraries 29 | rm -rf "${dest_dir}${prefix}"/lib/*.a 30 | 31 | # libz.so.${version} is created without soname... fix that 32 | patchelf --set-soname libz.so.${version} "${dest_dir}${prefix}/lib/libz.so.${version}" 33 | 34 | post_package_strip 35 | } 36 | -------------------------------------------------------------------------------- /recipes/zstd: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=zstd 4 | version=1.5.7 5 | revision=1 6 | tarball_url="https://github.com/facebook/zstd/releases/download/v${version}/zstd-${version}.tar.gz" 7 | tarball_blake2b="ef6bcf13bbb79edce2de21ef4860b01dcb4d2dd47ebd03657d5331c3bb1a207ef128e99ed907a32e787dca7bb51df225ebd8abb2097d03d02c003ca713e1e271" 8 | imagedeps="cmake ninja-build" 9 | hostdeps="gcc pkg-config" 10 | deps="core-libs zlib xz lz4" 11 | 12 | configure() { 13 | cmake_source_dir="$source_dir/build/cmake" \ 14 | cmake_configure \ 15 | -DZSTD_ZLIB_SUPPORT=ON \ 16 | -DZSTD_LZMA_SUPPORT=ON \ 17 | -DZSTD_LZ4_SUPPORT=ON \ 18 | -DZSTD_BUILD_CONTRIB=OFF \ 19 | -DZSTD_BUILD_STATIC=OFF \ 20 | -DZSTD_BUILD_TESTS=OFF \ 21 | -DZSTD_PROGRAMS_LINK_SHARED=ON 22 | } 23 | 24 | build() { 25 | ninja -j${parallelism} 26 | } 27 | 28 | package() { 29 | DESTDIR="${dest_dir}" ninja install 30 | 31 | post_package_strip 32 | } 33 | -------------------------------------------------------------------------------- /screenshot0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/vinix/318463f73740310cb7f5cda64edeaaac48738109/screenshot0.png -------------------------------------------------------------------------------- /screenshot1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/vinix/318463f73740310cb7f5cda64edeaaac48738109/screenshot1.png -------------------------------------------------------------------------------- /source-recipes/gcc-host: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=gcc-host 4 | version=15.1.0 5 | tarball_url="https://ftp.gnu.org/gnu/gcc/gcc-${version}/gcc-${version}.tar.xz" 6 | tarball_blake2b="a902ce99db4e93615879e435bcd0b96d5a16ea0af42598ca0e6d12913b2ce3651a98574c3264b2717b848e6b5a823b403ccca0adde463938d5b41aa3f1da0d34" 7 | allow_network="yes" 8 | 9 | prepare() { 10 | ./contrib/download_prerequisites 11 | 12 | # Gettext causes issues and we don't want it anyways. 13 | rm -rf gettext* 14 | 15 | autotools_recursive_regen 16 | } 17 | -------------------------------------------------------------------------------- /source-recipes/libgcc-binaries: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | name=libgcc-binaries 4 | version=28257019ce04f784337cb9c3125abb4d02cef14d 5 | git_url="https://codeberg.org/osdev/libgcc-binaries.git" 6 | commit=${version} 7 | -------------------------------------------------------------------------------- /util-vinix/.gitignore: -------------------------------------------------------------------------------- 1 | *.c 2 | chsh/chsh 3 | fetch/fetch 4 | lscpu/lscpu 5 | mount/mount 6 | -------------------------------------------------------------------------------- /util-vinix/chsh/v.mod: -------------------------------------------------------------------------------- 1 | Module { 2 | name: 'CHSH' 3 | description: 'chsh utility for util-vinix' 4 | version: '0.0.0' 5 | license: 'GPL-2.0' 6 | dependencies: [] 7 | } 8 | -------------------------------------------------------------------------------- /util-vinix/fetch/v.mod: -------------------------------------------------------------------------------- 1 | Module { 2 | name: 'Fetch' 3 | description: 'Fetch utility for util-vinix' 4 | version: '0.0.0' 5 | license: 'GPL-2.0' 6 | dependencies: [] 7 | } 8 | -------------------------------------------------------------------------------- /util-vinix/lscpu/main.v: -------------------------------------------------------------------------------- 1 | module main 2 | 3 | import os 4 | import cpu 5 | 6 | fn main() { 7 | mut idx := 1 8 | for idx < os.args.len { 9 | match os.args[idx] { 10 | '--help' { 11 | println('Usage: ${os.args[0]}') 12 | println('') 13 | println('List CPU architecture information') 14 | println('') 15 | println('Options:') 16 | println('--help display this help') 17 | println('--version display version information') 18 | exit(0) 19 | } 20 | '--version' { 21 | println('lscpu from util-vinix') 22 | exit(0) 23 | } 24 | else { 25 | println("Unexpected argument '${os.args[idx]}'") 26 | exit(1) 27 | } 28 | } 29 | idx++ 30 | } 31 | 32 | info := cpu.get_cpu_info() or { 33 | println('Could not fetch CPU information') 34 | exit(1) 35 | } 36 | info.print() 37 | } 38 | -------------------------------------------------------------------------------- /util-vinix/lscpu/v.mod: -------------------------------------------------------------------------------- 1 | Module { 2 | name: 'LSCPU' 3 | description: 'lscpu equivalent for util-vinix' 4 | version: '0.0.0' 5 | license: 'GPL-2.0' 6 | dependencies: [] 7 | } 8 | -------------------------------------------------------------------------------- /util-vinix/mount/v.mod: -------------------------------------------------------------------------------- 1 | Module { 2 | name: 'Mount' 3 | description: 'mount equivalent for util-vinix' 4 | version: '0.0.0' 5 | license: 'GPL-2.0' 6 | dependencies: [] 7 | } 8 | --------------------------------------------------------------------------------