diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..1d8a5be --- /dev/null +++ b/.editorconfig @@ -0,0 +1,8 @@ +root = true +[*] +insert_final_newline = true +trim_trailing_whitespace = true + +[*.{c,h,sh}] +indent_style = tab +tab_width = 4 diff --git a/INSTALL.md b/INSTALL.md new file mode 100644 index 0000000..a260c10 --- /dev/null +++ b/INSTALL.md @@ -0,0 +1,70 @@ +# Iglunix Installation Guide + +## Getting an installation image +There are two ways of getting hold of an install image: From the releases tab on +GitHub and with [iglunix-autobuild](https://github.com/iglunix/iglunix-autobuild). + +### Using Autobuild +``` +git clone https://github.com/iglunix/iglunix-autobuild +cd iglunix-autobuild +./autobuild.sh +./chroot.sh +./img.sh +``` + +### Writing the image +Write the image to a USB to boot on the target computer. +Make sure to triple check which disk you're writing to. +``` +dd if=build/iglunix.img of=/dev/sdX bs=64M +``` + +## Disk Partitioning +Iglunix recommends a two partition layout with an MBR partition table, a FAT +formatted boot partition and an EXT4 formated root partition. The following +is a guide on how to do it where `/dev/disk` is the target install disk. +``` +fdisk /dev/disk +>o +>n +>p +>1 +>2048 +>+512M +>t +>ef +>n +>p +>2 +> +> +>w + +mkfs.vfat -n BOOT /dev/disk1 +mkfs.ext4 -L ROOT /dev/disk2 +mkdir /install_root +mount /dev/disk2 /install_root +mkdir /install_root/boot +mount /dev/disk1 /install_root/boot +``` + +## Extracting Packages +For any packages you want to install +``` +tar -I zstd -xf /mnt/..tar.zst -C /install_root +``` + +## The init system +Use https://github.com/iglunix/iglunix/tree/main/init not https://github.com/iglunix/init + +## Installing Bootloaders + +``` +limine-deploy /dev/disk +cp /usr/share/limine/limine.sys /install_root/boot +# If the oslo package wasn't installed earlier and you want UEFI support +cp /usr/share/limine/BOOTX64.EFI /install_root/boot/efi/boot/bootx64.efi +``` +Edit `/install_root/boot/efi/oslo/entries.ini` and `/install_root/boot/limine.cfg` +accordingly diff --git a/README.md b/README.md index ea3d7c2..eaf52ce 100644 --- a/README.md +++ b/README.md @@ -7,16 +7,20 @@ To create an ISO from a non-iglunix OS please see https://github.com/iglunix/igl ## Is this GNU/Linux No, GNU currently contributes roughly 10 MiB of code in the base system whilst, -LLVM and Linux both contribute aproximately 1 GiB each. Instead we suggest that +LLVM and Linux both contribute approximately 1 GiB each. Instead we suggest that one should refer to Igluinx running on the Linux kernel as LLVM/Musl/Linux. LLVM and Linux because they are the two largest packages and make up the majority of the base system, and Musl to be explicit about the C library, target triple and to differentiate it from any system using LLVM's libc (which will may very well likely use in the future). +## Instalation +See [INSTALL.md](INSTALL.md) + ## Discord Join us at [link](https://discord.gg/NKB9qD2bMx) + ## Web Browsers -Iglunix currently has qtwebengine running (with sandboxing broken on atleast -aarch64). This does require 3 extra GNU dependencies ontop of GNU Make: -`gperf`, `gm4`, `bison`. This also requires dbus however it is only needed -at build time and for this reason we are working on a stub implementation. +Iglunix has Firefox ESR packaged requiring 2 extra GNU packages: `gm4` and +`autoconf`. Iglunix may switch to using a patched version of webkit gtk with +openssl and maybe ffmpeg replacing gstreamer. ## Replacements LUT |standard tool | iglunix tool | use | |--------------|--------------------|----------------------------------| |glibc | musl | libc | -|glibc | libexecinfo | backtrace functions | +|glibc | libexecinfo | Backtrace functions | |libstdc++ | libc++ | C++ standard library | -|libgcc | libunwind | stack unwinding | -|libgcc | complier-rt | compiler builtins | -|flex | reflex | POSIX lex | +|libgcc | libunwind | Stack unwinding | +|libgcc | compiler-rt | Compiler builtins | |bison | byacc | POSIX yacc | |coreutils | toybox+busybox | POSIX utilities | |gcc | clang | C++ compiler | -|zlib | zlib-ng | compression library | +|zlib | zlib-ng | Compression library | |gmake | bmake, others | POSIX Make implementation | |ninja | samurai | Ninja build implementation | |GNU M4 | OpenBSD M4 | POSIX M4 implementation | |ncurses | netbsd-curses | X/Open Curses implementation | |bash | mksh | Shell | |Linux PAM | Open PAM | Pluggable Authentication Modules | -|sudo | doas | privalidge esculation | -|pkg-config | pkgconf | package configuration tool | - - - -## TODO (lots more TODO items in the Discord) - - LLVM (Work out how to split packages) - - QEMU for multiarch (need lots of work on glibr to get this to build) +|sudo | doas | Privilege escalation | +|pkg-config | pkgconf | Package configuration tool | +|e2fsprogs | make_ext4fs | Make an ext4 file system | diff --git a/bad/README.md b/bad/README.md index fe39dc0..7412a30 100644 --- a/bad/README.md +++ b/bad/README.md @@ -2,3 +2,6 @@ Bad packages are packages included that we want to remove our dependency on. All of these packages should eventually be removed. + + - `autoconf` is required for building `firefox` + - `gmake` is required for building a number of packages diff --git a/bad/autoconf/autoconf.sh.patch b/bad/autoconf/autoconf.sh.patch new file mode 100644 index 0000000..6be3138 --- /dev/null +++ b/bad/autoconf/autoconf.sh.patch @@ -0,0 +1,23 @@ +--- a/autoconf.sh ++++ b/autoconf.sh +@@ -115,13 +115,14 @@ + # Use the frozen version of Autoconf if available. + r= f= + # Some non-GNU m4's don't reject the --help option, so give them /dev/null. +-case `$M4 --help < /dev/null 2>&1` in +-*reload-state*) test -r $AC_MACRODIR/autoconf.m4f && { r=--reload f=f; } ;; +-*traditional*) ;; +-*) echo Autoconf requires GNU m4 1.1 or later >&2; rm -f $tmpin; exit 1 ;; +-esac ++# case `$M4 --help < /dev/null 2>&1` in ++# *reload-state*) test -r $AC_MACRODIR/autoconf.m4f && { r=--reload f=f; } ;; ++# *traditional*) ;; ++# *) echo Autoconf requires GNU m4 1.1 or later >&2; rm -f $tmpin; exit 1 ;; ++# esac + +-$M4 -I$AC_MACRODIR $use_localdir $r autoconf.m4$f $infile > $tmpout || ++# $M4 -I$AC_MACRODIR $use_localdir $r autoconf.m4$f $infile > $tmpout || ++$M4 -g -D__GNU__ -I$AC_MACRODIR $use_localdir autoconf.m4 $infile -> $tmpout || + { rm -f $tmpin $tmpout; exit 2; } + + # You could add your own prefixes to pattern if you wanted to check for diff --git a/bad/autoconf/autoheader.sh.patch b/bad/autoconf/autoheader.sh.patch new file mode 100644 index 0000000..599293a --- /dev/null +++ b/bad/autoconf/autoheader.sh.patch @@ -0,0 +1,11 @@ +--- autoconf-2.13/autoheader.sh ++++ old/autoheader.sh +@@ -122,7 +122,7 @@ + # Extract assignments of SYMS, TYPES, FUNCS, HEADERS, and LIBS from the + # modified autoconf processing of the input file. The sed hair is + # necessary to win for multi-line macro invocations. +-eval "`$M4 -I$AC_MACRODIR $use_localdir $r autoheader.m4$f $infile | ++eval "`$M4 -g -D__gnu__ -I$AC_MACRODIR $use_localdir autoheader.m4 $infile | + sed -n -e ' + : again + /^@@@.*@@@$/s/^@@@\(.*\)@@@$/\1/p diff --git a/bad/autoconf/build.sh b/bad/autoconf/build.sh new file mode 100644 index 0000000..a9a60ef --- /dev/null +++ b/bad/autoconf/build.sh @@ -0,0 +1,31 @@ +pkgname=autoconf +pkgver=2.13 + +fetch() { + curl "https://ftp.gnu.org/gnu/autoconf/autoconf-$pkgver.tar.gz" -o $pkgname-$pkgver.tar.gz + tar -xf $pkgname-$pkgver.tar.gz + cd $pkgname-$pkgver + patch -p1 < ../../makefile-m4f.patch + patch -p1 < ../../autoconf.sh.patch + patch -p1 < ../../autoheader.sh.patch +} + +build() { + cd $pkgname-$pkgver + ./configure \ + --prefix=/usr/bad/autoconf/ \ + --build=$TRIPLE \ + --host=$TRIPLE + + make +} + +package() { + cd $pkgname-$pkgver + make install DESTDIR=$pkgdir +} + +license() { + cd $pkgname-$pkgver + cat COPYING +} diff --git a/bad/autoconf/makefile-m4f.patch b/bad/autoconf/makefile-m4f.patch new file mode 100644 index 0000000..1de0172 --- /dev/null +++ b/bad/autoconf/makefile-m4f.patch @@ -0,0 +1,70 @@ +--- src/autoconf-2.13/Makefile.in ++++ Makefile.in +@@ -33,8 +33,8 @@ + # Programs that are ALWAYS installed (and are created in the build dir). + ASCRIPTS = autoconf autoheader autoreconf autoupdate ifnames + +-# M4 input that is frozen. +-M4FROZEN = autoconf.m4f autoheader.m4f ++# Don't freeze anything with OpenBSD m4 ++M4FROZEN = + + # All programs, including those only installed if you have perl. + SCRIPTS = $(ASCRIPTS) @SCRIPTS@ +--- a/Makefile.in ++++ b/Makefile.in +@@ -137,23 +137,23 @@ + cd testsuite && ${MAKE} AUTOCONF=${bindir}/autoconf $@ + + installdirs: +- $(SHELL) ${srcdir}/mkinstalldirs $(bindir) $(infodir) $(acdatadir) ++ $(SHELL) ${srcdir}/mkinstalldirs $(DESTDIR)/$(bindir) $(DESTDIR)/$(acdatadir) + + install: all $(M4FILES) acconfig.h installdirs install-info + for p in $(ASCRIPTS); do \ +- $(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed '$(transform)'`; \ ++ $(INSTALL_PROGRAM) $$p $(DESTDIR)/$(bindir)/`echo $$p|sed '$(transform)'`; \ + done + for i in $(M4FROZEN); do \ +- $(INSTALL_DATA) $$i $(acdatadir)/$$i; \ ++ $(INSTALL_DATA) $$i $(DESTDIR)/$(acdatadir)/$$i; \ + done + for i in $(M4FILES) acconfig.h; do \ +- $(INSTALL_DATA) $(srcdir)/$$i $(acdatadir)/$$i; \ ++ $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)/$(acdatadir)/$$i; \ + done + -if test -f autoscan; then \ +- $(INSTALL_PROGRAM) autoscan $(bindir)/`echo autoscan|sed '$(transform)'`; \ ++ $(INSTALL_PROGRAM) autoscan $(DESTDIR)/$(bindir)/`echo autoscan|sed '$(transform)'`; \ + for i in acfunctions acheaders acidentifiers acprograms \ + acmakevars; do \ +- $(INSTALL_DATA) $(srcdir)/$$i $(acdatadir)/$$i; \ ++ $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)/$(acdatadir)/$$i; \ + done; \ + else :; fi + +@@ -161,11 +161,11 @@ + install-info: info installdirs + if test -f autoconf.info; then \ + for i in *.info*; do \ +- $(INSTALL_DATA) $$i $(infodir)/$$i; \ ++ $(INSTALL_DATA) $$i $(DESTDIR)/$(infodir)/$$i; \ + done; \ + else \ + for i in $(srcdir)/*.info*; do \ +- $(INSTALL_DATA) $$i $(infodir)/`echo $$i | sed 's|^$(srcdir)/||'`; \ ++ $(INSTALL_DATA) $$i $(DESTDIR)/$(infodir)/`echo $$i | sed 's|^$(srcdir)/||'`; \ + done; \ + fi + +--- a/Makefile.in ++++ b/Makefile.in +@@ -139,7 +139,7 @@ + installdirs: + $(SHELL) ${srcdir}/mkinstalldirs $(DESTDIR)/$(bindir) $(DESTDIR)/$(infodir) $(DESTDIR)/$(acdatadir) + +-install: all $(M4FILES) acconfig.h installdirs install-info ++install: all $(M4FILES) acconfig.h installdirs + for p in $(ASCRIPTS); do \ + $(INSTALL_PROGRAM) $$p $(DESTDIR)/$(bindir)/`echo $$p|sed '$(transform)'`; \ + done diff --git a/bad/bad/build.sh b/bad/bad/build.sh new file mode 100644 index 0000000..7a64565 --- /dev/null +++ b/bad/bad/build.sh @@ -0,0 +1,28 @@ +pkgname=bad +pkgver=main + +fetch() { + curl -L "https://github.com/iglunix/bad/archive/refs/heads/main.tar.gz" -o $pkgname-$pkgver.tar.gz + tar -xf $pkgname-$pkgver.tar.gz +} + +build() { + cd $pkgname-$pkgver + [ -z "$WITH_CROSS" ] || export CFLAGS="$CFLAGS --target=$TRIPLE --sysroot=$WITH_CROSS_DIR" + make +} + +package() { + cd $pkgname-$pkgver + make install DESTDIR=$pkgdir PREFIX=/usr +} + +license() { + cd $pkgname-$pkgver + cat LICENSE +# cat COPYING +} + +backup() { + return +} diff --git a/bad/gm4/build.sh b/bad/gm4/build.sh new file mode 100644 index 0000000..ca90051 --- /dev/null +++ b/bad/gm4/build.sh @@ -0,0 +1,31 @@ +pkgname=gm4 +pkgver=1.4.19 + +fetch() { + curl "http://ftp.gnu.org/pub/gnu/m4/m4-$pkgver.tar.xz" -o $pkgname-$pkgver.tar.xz + tar -xf $pkgname-$pkgver.tar.xz + mv m4-$pkgver gm4-$pkgver +} + +build() { + cd $pkgname-$pkgver + ./configure \ + --prefix=/usr \ + --build=$TRIPLE \ + --program-prefix=g \ + --host=$TRIPLE \ + --disable-nls + + make +} + +package() { + cd $pkgname-$pkgver + make install DESTDIR=$pkgdir +} + +license() { + cd $pkgname-$pkgver + cat LICENSE +# cat COPYING +} diff --git a/bad/gmake/build.sh b/bad/gmake/build.sh index eee32e9..eb9ab3c 100644 --- a/bad/gmake/build.sh +++ b/bad/gmake/build.sh @@ -4,9 +4,10 @@ pkgrel=1 deps="musl" bad="gmake" ext="doc:dev" +auto_cross fetch() { - curl "https://ftp.gnu.org/gnu/make/make-4.3.tar.gz" -o $pkgname-$pkgver.tar.gz + curl "https://ftp.gnu.org/gnu/make/make-$pkgver.tar.gz" -o $pkgname-$pkgver.tar.gz tar -xf $pkgname-$pkgver.tar.gz mv make-$pkgver $pkgname-$pkgver } @@ -14,34 +15,40 @@ fetch() { build() { cd $pkgname-$pkgver ./configure \ - --prefix=/usr \ + --prefix=/usr/bad/gmake \ --program-prefix=g \ - --disable-nls + --disable-nls \ + --build=$HOST_TRIPLE \ + --host=$TRIPLE make } package() { cd $pkgname-$pkgver - ./make install DESTDIR=$pkgdir - rm -r $pkgdir/usr/share - rm -r $pkgdir/usr/include + make install DESTDIR=$pkgdir + rm -r $pkgdir/usr/bad/gmake/share + rm -r $pkgdir/usr/bad/gmake/include } package_doc() { cd $pkgname-$pkgver - ./make install DESDIR=$pkgdir - rm -r $pkgdir/usr/bin - rm -r $pkgdir/usr/share/info - rm -r $pkgdir/usr/include + make install DESDIR=$pkgdir + rm -r $pkgdir/usr/bad/gmake/bin + rm -r $pkgdir/usr/bad/gmake/share/info + rm -r $pkgdir/usr/bad/gmake/include } package_dev() { cd $pkgname-$pkgver - ./make install DESTDIR=$pkgdir - rm -r $pkgdir/usr/bin - rm -r $pkgdir/usr/share + make install DESTDIR=$pkgdir + rm -r $pkgdir/usr/bad/gmake/bin + rm -r $pkgdir/usr/bad/gmake/share } license() { cd $pkgname-$pkgver cat COPYING } + +backup() { + return +} diff --git a/base/bmake/build.sh b/base/bmake/build.sh index 00a1563..0b393a5 100644 --- a/base/bmake/build.sh +++ b/base/bmake/build.sh @@ -1,8 +1,8 @@ -pkgver=20210420 +pkgver=20220303 pkgname=bmake mkdeps="" deps="" -ext="doc" +auto_cross fetch() { curl http://www.crufty.net/ftp/pub/sjg/bmake-$pkgver.tar.gz -o $pkgname-$pkgver.tar.gz @@ -15,20 +15,20 @@ fetch() { build() { cd $pkgname-$pkgver - ./configure --prefix=/usr --with-default-sys-path=/usr/share/mk - sh ./make-bootstrap.sh + ./configure --prefix=/usr --with-default-sys-path=/usr/share/mk --build=$HOST_TRIPLE --host=$ARCH-linux-musl --with-machine-arch=$ARCH + MANTARGET=man sh ./make-bootstrap.sh } package() { cd $pkgname-$pkgver - ./bmake -m ./mk install DESTDIR=$pkgdir - ln -sr $pkgdir/usr/bin/bmake $pkgdir/usr/bin/make - rm -r $pkgdir/usr/share/man + bmake -m ./mk install -f Makefile DESTDIR=$pkgdir MANTARGET=man prefix=/usr/ BINDIR=/usr/bin + ln -s bmake $pkgdir/usr/bin/make + rm -rf $pkgdir/usr/share/man/cat1 + install -Dm644 ./bmake.1 $pkgdir/usr/share/man/man1 } -package_doc() { - cd $pkgname-$pkgver - install -Dm644 ./bmake.1 $pkgdir/usr/share/man/man1/bmake.1 +backup() { + return } license() { diff --git a/base/bmake/no-test.patch b/base/bmake/no-test.patch index 1ad8ab7..afbf474 100644 --- a/base/bmake/no-test.patch +++ b/base/bmake/no-test.patch @@ -1,11 +1,11 @@ ---- ../bmakeb/bmake/boot-strap 2020-11-13 21:47:25.000000000 +0000 -+++ boot-strap 2020-12-27 17:26:13.126598658 +0000 -@@ -431,7 +431,7 @@ +--- a/boot-strap ++++ b/boot-strap +@@ -420,7 +420,7 @@ op_test() { [ -x bmake ] || op_build -- Bmake test || exit 1 -+ #Bmake test || exit 1 +- Bmake test "$@" || exit 1 ++ #Bmake test "$@" || exit 1 } op_clean() { diff --git a/base/byacc/build.sh b/base/byacc/build.sh index 9226c89..fe75624 100644 --- a/base/byacc/build.sh +++ b/base/byacc/build.sh @@ -1,13 +1,13 @@ -pkgver=20210802 +pkgver=20220128 pkgname=byacc -deps="" +deps="musl" mkdeps="bmake" bad="" -ext="doc" +auto_cross fetch() { - curl https://invisible-island.net/datafiles/release/byacc.tar.gz -o $pkgname-$pkgver.tar.gz - tar -xf $pkgname-$pkgver.tar.gz + curl "ftp://ftp.invisible-island.net/byacc/byacc-$pkgver.tgz" -O + tar -xf $pkgname-$pkgver.tgz # Merged upstream; Don't need # cp ../reader-mesa.patch . } @@ -17,7 +17,9 @@ build() { ./configure \ --prefix=/usr \ --program-prefix=b \ - --enable-btyacc + --enable-btyacc \ + --build=$HOST_TRIPLE \ + --host=$TRIPLE # patch -p1 < ../reader-mesa.patch make } @@ -26,13 +28,10 @@ package() { cd $pkgname-$pkgver make install DESTDIR=$pkgdir ln -sr $pkgdir/usr/bin/byacc $pkgdir/usr/bin/yacc - rm -r $pkgdir/usr/share } -package_doc() { - cd $pkgname-$pkgver - make install DESTDIR=$pkgdir - rm -r $pkgdir/usr/bin +backup() { + return } license() { diff --git a/base/ca-certificates/build.sh b/base/ca-certificates/build.sh deleted file mode 100644 index 2b43120..0000000 --- a/base/ca-certificates/build.sh +++ /dev/null @@ -1,59 +0,0 @@ -pkgname=ca-certificates -pkgver=202200601 -pkgrel=2 -ext=doc -mkdeps="gmake" -deps="libressl" -bad="gmake" - -fetch(){ - curl http://ftp.debian.org/debian/pool/main/c/ca-certificates/ca-certificates_20200601~deb10u2.tar.xz -o $pkgname-$pkgver.tar.gz - tar -xf $pkgname-$pkgver.tar.gz - mv work $pkgname-$pkgver - cd $pkgname-$pkgver - #patch -p1 < ../../libressl-update-rehash.patch -} - - -build() { - cd $pkgname-$pkgver - gmake -} - -package() { - cd $pkgname-$pkgver - mkdir -p $pkgdir/usr/bin - mkdir -p $pkgdir/usr/sbin - mkdir -p $pkgdir/etc/ssl/ - mkdir -p $pkgdir/etc/ca-certificates/update.d - mkdir -p $pkgdir/usr/share/ca-certificates/ - - gmake install DESTDIR="$pkgdir" - - ( - echo "# Automatically generated by ${pkgname}-${pkgver}-${pkgrel}" - echo "# $(date -u)" - echo "# Do not edit." - cd "$pkgdir"/usr/share/ca-certificates - find . -name '*.crt' | sort | cut -b3- - ) > "$pkgdir"/etc/ca-certificates.conf - - cat > "$pkgdir"/etc/ca-certificates/update.d/certhash <<-EOF - #!/bin/sh - exec openssl certhash /etc/ssl/certs - EOF - - cat "$pkgdir"/usr/share/ca-certificates/mozilla/*.crt > $pkgdir/etc/ssl/cert.pem - chmod +x "$pkgdir"/etc/ca-certificates/update.d/certhash -} - -package_doc() { - cd $pkgname-$pkgver - install -d $pkgdir/usr/share/man/man8 - install -Dm644 ./sbin/update-ca-certificates.8 $pkgdir/usr/share/man/man8 -} - -license() { - cd $pkgname-$pkgver - cat debian/copyright -} diff --git a/base/ca-certificates/libressl-update-rehash.patch b/base/ca-certificates/libressl-update-rehash.patch deleted file mode 100644 index 566deb6..0000000 --- a/base/ca-certificates/libressl-update-rehash.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- a/sbin/update-ca-certificates -+++ b/sbin/update-ca-certificates -@@ -183,9 +183,9 @@ - done - if [ "$verbose" = 0 ] - then -- openssl rehash . > /dev/null -+ openssl certhash . > /dev/null - else -- openssl rehash -v . -+ openssl certhash -v . - fi - fi - diff --git a/base/cmake/build.sh b/base/cmake/build.sh index 4e33871..1fd5001 100644 --- a/base/cmake/build.sh +++ b/base/cmake/build.sh @@ -1,50 +1,59 @@ -pkgver=3.19.2 +pkgver=3.23.1 pkgname=cmake pkgrel=1 -mkdeps="samu" +mkdeps="samurai" deps="" bad="" ext="" fetch() { - curl "https://cmake.org/files/v3.19/cmake-3.19.2.tar.gz" -o $pkgname-$pkgver.tar.gz + curl "https://cmake.org/files/v3.23/cmake-$pkgver.tar.gz" -o $pkgname-$pkgver.tar.gz tar -xf $pkgname-$pkgver.tar.gz } build() { cd $pkgname-$pkgver - ./bootstrap \ - --prefix=/usr \ - --mandir=/share/man \ - --datadir=/share/$pkgname \ - --docdir=/share/doc/$pkgname \ - --generator=Ninja \ - --no-system-libs + if [ -z "$WITH_CROSS" ]; then + ./bootstrap \ + --prefix=/usr \ + --mandir=/share/man \ + --datadir=/share/$pkgname \ + --docdir=/share/doc/$pkgname \ + --generator=Ninja \ + --no-system-libs + else + mkdir -p build + cd build + cmake -G Ninja .. \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_SYSTEM_NAME=Linux \ + -DCMAKE_SYSROOT=$WITH_CROSS_DIR \ + -DCMAKE_C_COMPILER_TARGET=$TRIPLE \ + -DCMAKE_CXX_COMPILER_TARGET=$TRIPLE \ + -DCMAKE_ASM_COMPILER_TARGET=$TRIPLE \ + -DHAVE_POLL_FINE_EXITCODE=OFF \ + -DHAVE_POLL_FINE_EXITCODE__TRYRUN_OUTPUT=OFF \ + -DCMAKE_PREFIX_PATH=$WITH_CROSS_DIR \ + -DBUILD_CursesDialog=OFF + fi samu } package() { cd $pkgname-$pkgver + if [ ! -z "$WITH_CROSS" ]; then + cd build + fi DESTDIR=$pkgdir samu install } -package_doc() { - cd $pkgname-$pkgver - gmake install DESDIR=$pkgdir - rm -r $pkgdir/usr/bin - rm -r $pkgdir/usr/share/info - rm -r $pkgdir/usr/include -} -package_dev() { - cd $pkgname-$pkgver - gmake install DESTDIR=$pkgdir - rm -r $pkgdir/usr/bin - rm -r $pkgdir/usr/share +backup() { + return } license() { cd $pkgname-$pkgver - cat COPYING + cat Copyright.txt } diff --git a/base/compiler-rt/build.sh b/base/compiler-rt/build.sh new file mode 100644 index 0000000..e0299eb --- /dev/null +++ b/base/compiler-rt/build.sh @@ -0,0 +1,71 @@ +pkgname=compiler-rt +pkgver=14.0.1 +deps=linux + +fetch() { + curl -L "https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/compiler-rt-$pkgver.src.tar.xz" -o $pkgname-$pkgver.tar.xz + # for c++ headers + # curl -L "https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/libcxx-$pkgver.src.tar.xz" -o libcxx-$pkgver.tar.xz + # musl required for C headers + curl -O "http://musl.libc.org/releases/musl-1.2.2.tar.gz" + tar -xf $pkgname-$pkgver.tar.xz + mv $pkgname-$pkgver.src $pkgname-$pkgver + # tar -xf libcxx-$pkgver.tar.xz + # mv libcxx-$pkgver.src libcxx-$pkgver + # cp ../__config_site libcxx-$pkgver/include + mkdir $pkgname-$pkgver/build + tar -xf musl-1.2.2.tar.gz + cd musl-1.2.2 + CFLAGS="--sysroot=/usr/$ARCH-linux-musl --target=$TRIPLE" ./configure --prefix=$(pwd)/../libc --target=$TRIPLE + bad --gmake gmake install-headers +} + + +build() { + cd $pkgname-$pkgver + cd build + cmake -G Ninja ../ \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr/lib/clang/$pkgver/ \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_C_COMPILER_TARGET=$TRIPLE \ + -DCMAKE_CXX_COMPILER_TARGET=$TRIPLE \ + -DCMAKE_ASM_COMPILER_TARGET=$TRIPLE \ + -DCMAKE_C_COMPILER_WORKS=ON \ + -DCMAKE_CXX_COMPILER_WORKS=ON \ + -DCMAKE_SYSROOT=/usr/$ARCH-linux-musl \ + -DCMAKE_C_FLAGS_INIT="-I $(pwd)/../../libc/include " \ + -DCMAKE_C_FLAGS="-I $(pwd)/../../libc/include" \ + -DCMAKE_CXX_FLAGS_INIT="-I $(pwd)/../../libc/include" \ + -DCMAKE_CXX_FLAGS="-I $(pwd)/../../libc/include" \ + -DCOMPILER_RT_USE_BUILTINS_LIBRARY=OFF \ + -DCOMPILER_RT_DEFAULT_TARGET_ONLY=OFF \ + -DCOMPILER_RT_INCLUDE_TESTS=OFF \ + -DCOMPILER_RT_BUILD_SANITIZERS=OFF \ + -DCOMPILER_RT_BUILD_XRAY=OFF \ + -DCOMPILER_RT_BUILD_MEMPROF=OFF \ + -DCOMPILER_RT_BUILD_ORC=OFF \ + -DCOMPILER_RT_INCLUDE_TESTS=OFF \ + -DCOMPILER_RT_BUILD_LIBFUZZER=OFF \ + -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON \ + -DCOMPILER_RT_BUILD_PROFILE=OFF \ + -DCAN_TARGET_$ARCH=ON \ + -DCMAKE_SIZEOF_VOID_P=8 + + samu +} + +package() { + cd $pkgname-$pkgver + cd build + DESTDIR=$pkgdir samu install +} + +backup() { + return +} + +license() { + cd $pkgname-$pkgver + cat LICENSE.TXT +} diff --git a/base/curl/build.sh b/base/curl/build.sh index 64336f7..1a1e6e7 100644 --- a/base/curl/build.sh +++ b/base/curl/build.sh @@ -1,11 +1,11 @@ -pkgver=7.77.0 +pkgver=7.81.0 pkg_ver=$(echo $pkgver | tr '.' '_') pkgname=curl pkgrel=1 -mkdeps="samu:cmake" +mkdeps="" deps="openssl" bad="" -ext="doc:dev" +auto_cross fetch() { curl -L "https://github.com/curl/curl/releases/download/curl-$pkg_ver/curl-$pkgver.tar.xz" -o $pkgname-$pkgver.tar.gz @@ -14,34 +14,20 @@ fetch() { build() { cd $pkgname-$pkgver - mkdir build - cd build - cmake -G Ninja ../ \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DCMAKE_INSTALL_LIBDIR=lib \ - -DCURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt - samu + ./configure --prefix=/usr \ + --build=$HOST_TRIPLE \ + --host=$TRIPLE \ + --with-openssl + make } package() { cd $pkgname-$pkgver - cd build - DESTDIR=$pkgdir samu install - rm -r $pkgdir/usr/share - rm -r $pkgdir/usr/include - rm -r $pkgdir/usr/lib/pkgconfig - rm -r $pkgdir/usr/lib/cmake + make DESTDIR=$pkgdir install } -package_dev() { - cd $pkgname-$pkgver - cd build - DESTDIR=$pkgdir samu install - rm -r $pkgdir/usr/share - rm -r $pkgdir/usr/bin - rm $pkgdir/usr/lib/*.so - rm $pkgdir/usr/lib/*.so.* +backup() { + return } license() { diff --git a/pkgs/doas/build.ninja b/base/doas/build.ninja similarity index 100% rename from pkgs/doas/build.ninja rename to base/doas/build.ninja diff --git a/pkgs/doas/build.sh b/base/doas/build.sh similarity index 50% rename from pkgs/doas/build.sh rename to base/doas/build.sh index d8aa530..77a35ca 100644 --- a/pkgs/doas/build.sh +++ b/base/doas/build.sh @@ -3,9 +3,10 @@ pkgname=doas pkgrel=1 bad="gmake" ext="doc" +auto_cross fetch() { - curl -L "https://github.com/Duncaen/OpenDoas/releases/download/v6.8/opendoas-$pkgver.tar.xz" -o $pkgname-$pkgver.tar.xz + curl -L "https://github.com/Duncaen/OpenDoas/releases/download/v$pkgver/opendoas-$pkgver.tar.xz" -o $pkgname-$pkgver.tar.xz tar -xf $pkgname-$pkgver.tar.xz mv opendoas-$pkgver $pkgname-$pkgver cp ../build.ninja $pkgname-$pkgver @@ -13,26 +14,23 @@ fetch() { build() { cd $pkgname-$pkgver - ./configure --prefix=/usr - gmake + ./configure --prefix=/usr \ + --without-pam + bad --gmake gmake } package() { cd $pkgname-$pkgver install -d $pkgdir/usr/bin - install -Dm4755 doas $pkgdir/usr/bin -} - -package_doc() { - cd $pkgname-$pkgver - install -d $pkgdir/usr/share/man/ - install -d $pkgdir/usr/share/man/man1 - install -d $pkgdir/usr/share/man/man5 - install -Dm644 doas.1 $pkgdir/usr/share/man/man1 - install -Dm644 doas.conf.5 $pkgdir/usr/share/man/man5 + install -Dm755 doas $pkgdir/usr/bin + chmod u+s $pkgdir/usr/bin/doas } license() { cd $pkgname-$pkgver cat LICENSE } + +backup() { + return +} diff --git a/base/expat/build.sh b/base/expat/build.sh index a9bde9a..4225483 100644 --- a/base/expat/build.sh +++ b/base/expat/build.sh @@ -4,6 +4,7 @@ bad="" mkdeps="bmake" deps="" ext="dev" +auto_cross fetch() { pkgver_r=$(echo $pkgver | tr '.' '_') @@ -14,30 +15,22 @@ fetch() { build() { cd $pkgname-$pkgver ./configure \ - --prefix=/usr + --prefix=/usr \ + --build=$HOST_TRIPLE \ + --host=$TRIPLE make } package() { cd $pkgname-$pkgver make install DESTDIR=$pkgdir - rm $pkgdir/usr/lib/*.a - rm $pkgdir/usr/lib/*.la - rm -r $pkgdir/usr/include - rm -r $pkgdir/usr/lib/pkgconfig - rm -r $pkgdir/usr/share -} - -package_dev() { - cd $pkgname-$pkgver - make install DESTDIR=$pkgdir - rm -r $pkgdir/usr/bin - rm -r $pkgdir/usr/share - rm $pkgdir/usr/lib/*.so - rm $pkgdir/usr/lib/*.so.* } license() { cd $pkgname-$pkgver cat COPYING } + +backup() { + return +} diff --git a/base/fakeroot/build.sh b/base/fakeroot/build.sh new file mode 100644 index 0000000..efaeb56 --- /dev/null +++ b/base/fakeroot/build.sh @@ -0,0 +1,30 @@ +pkgname=fakeroot +pkgver=1.26 + +fetch() { + curl "https://deb.debian.org/debian/pool/main/f/fakeroot/fakeroot_$pkgver.orig.tar.gz" -o $pkgname-$pkgver.tar.xz + tar -xf $pkgname-$pkgver.tar.xz + patch -p1 < ../../no64.patch + patch -p1 < ../../stdint.patch +} + +build() { + cd $pkgname-$pkgver + ./configure \ + --prefix=/usr \ + --build=$TRIPLE \ + --host=$TRIPLE + + bad --gmake gmake +} + +package() { + cd $pkgname-$pkgver + bad --gmake gmake install DESTDIR=$pkgdir +} + +license() { + cd $pkgname-$pkgver + cat LICENSE +# cat COPYING +} diff --git a/base/fakeroot/no64.patch b/base/fakeroot/no64.patch new file mode 100644 index 0000000..ff95f96 --- /dev/null +++ b/base/fakeroot/no64.patch @@ -0,0 +1,17 @@ +--- a/libfakeroot.c ++++ b/libfakeroot.c +@@ -81,12 +81,14 @@ + #define SEND_STAT64(a,b,c) send_stat64(a,b,c) + #define SEND_GET_STAT(a,b) send_get_stat(a,b) + #define SEND_GET_STAT64(a,b) send_get_stat64(a,b) ++#define SEND_GET_XATTR(a,b,c) send_get_xattr(a,b,c) + #define SEND_GET_XATTR64(a,b,c) send_get_xattr64(a,b,c) + #else + #define SEND_STAT(a,b,c) send_stat(a,b) + #define SEND_STAT64(a,b,c) send_stat64(a,b) + #define SEND_GET_STAT(a,b) send_get_stat(a) + #define SEND_GET_STAT64(a,b) send_get_stat64(a) ++#define SEND_GET_XATTR(a,b,c) send_get_xattr(a,b) + #define SEND_GET_XATTR64(a,b,c) send_get_xattr64(a,b) + #endif + diff --git a/base/fakeroot/stdint.patch b/base/fakeroot/stdint.patch new file mode 100644 index 0000000..efe227d --- /dev/null +++ b/base/fakeroot/stdint.patch @@ -0,0 +1,34 @@ +--- a/faked.c ++++ b/faked.c +@@ -514,11 +514,11 @@ + + #ifdef FAKEROOT_DB_PATH + if (find_path(i->buf.dev, i->buf.ino, roots, path)) +- fprintf(f,"mode=%llo,uid=%llu,gid=%llu,nlink=%llu,rdev=%llu %s\n", ++ fprintf(f,"mode=%"PRIo64",uid=%"PRIu64",gid=%"PRIu64",nlink=%"PRIu64",rdev=%"PRIu64" %s\n", + (uint64_t) i->buf.mode,(uint64_t) i->buf.uid,(uint64_t) i->buf.gid, + (uint64_t) i->buf.nlink,(uint64_t) i->buf.rdev,path); + #else +- fprintf(f,"dev=%llx,ino=%llu,mode=%llo,uid=%llu,gid=%llu,nlink=%llu,rdev=%llu\n", ++ fprintf(f,"dev=%"PRIx64",ino=%"PRIu64",mode=%"PRIo64",uid=%"PRIu64",gid=%"PRIu64",nlink=%"PRIu64",rdev=%"PRIu64"\n", + (uint64_t) i->buf.dev,(uint64_t) i->buf.ino,(uint64_t) i->buf.mode, + (uint64_t) i->buf.uid,(uint64_t) i->buf.gid,(uint64_t) i->buf.nlink, + (uint64_t) i->buf.rdev); +@@ -544,7 +544,7 @@ + + while(1){ + #ifdef FAKEROOT_DB_PATH +- r=scanf("mode=%llo,uid=%llu,gid=%llu,nlink=%llu,rdev=%llu "DB_PATH_SCAN"\n", ++ r=scanf("mode=%"PRIo64",uid=%"PRIu64",gid=%"PRIu64",nlink=%"PRIu64",rdev=%"PRIu64" "DB_PATH_SCAN"\n", + &stmode, &stuid, &stgid, &stnlink, &strdev, &path); + if (r != 6) + break; +@@ -559,7 +559,7 @@ + stdev = path_st.st_dev; + stino = path_st.st_ino; + #else +- r=scanf("dev=%llx,ino=%llu,mode=%llo,uid=%llu,gid=%llu,nlink=%llu,rdev=%llu\n", ++ r=scanf("dev=%"PRIx64",ino=%"PRIu64",mode=%"PRIo64",uid=%"PRIu64",gid=%"PRIu64",nlink=%"PRIu64",rdev=%"PRIu64"\n", + &stdev, &stino, &stmode, &stuid, &stgid, &stnlink, &strdev); + if (r != 7) + break; diff --git a/base/flex/build.sh b/base/flex/build.sh new file mode 100644 index 0000000..ecc66f3 --- /dev/null +++ b/base/flex/build.sh @@ -0,0 +1,36 @@ +pkgname=flex +pkgver=2.6.4 +auto_cross + +fetch() { + curl -L "https://github.com/westes/flex/releases/download/v2.6.4/flex-$pkgver.tar.gz" -o $pkgname-$pkgver.tar.gz + tar -xf $pkgname-$pkgver.tar.gz +} + +build() { + cd $pkgname-$pkgver + [ -z "$WITH_CROSS" ] || extra_flags=--disable-bootstrap + + ./configure \ + --prefix=/usr \ + --build=$HOST_TRIPLE \ + --host=$TRIPLE \ + $extra_flags + + make +} + +package() { + cd $pkgname-$pkgver + make install DESTDIR=$pkgdir + ln -sr $pkgdir/usr/bin/flex $pkgdir/usr/bin/lex +} + +license() { + cd $pkgname-$pkgver + cat COPYING +} + +backup() { + return +} diff --git a/base/gettext-tiny/build.sh b/base/gettext-tiny/build.sh index 744bed7..a219bf6 100644 --- a/base/gettext-tiny/build.sh +++ b/base/gettext-tiny/build.sh @@ -1,7 +1,7 @@ pkgname=gettext-tiny pkgver=master -mkdeps="kati" deps="" +auto_cross fetch() { curl -L "https://github.com/sabotage-linux/gettext-tiny/archive/master.tar.gz" -o $pkgname-$pkgver.tar.gz @@ -10,12 +10,12 @@ fetch() { build() { cd $pkgname-$pkgver - ckati + bad --gmake gmake } package() { cd $pkgname-$pkgver - ckati install DESTDIR=$pkgdir prefix=/usr + bad --gmake gmake install DESTDIR=$pkgdir prefix=/usr } license() { @@ -23,3 +23,7 @@ license() { cat LICENSE # cat COPYING } + +backup() { + return +} diff --git a/base/git/build.sh b/base/git/build.sh index 929911e..f97627a 100644 --- a/base/git/build.sh +++ b/base/git/build.sh @@ -14,22 +14,22 @@ fetch() { build() { cd $pkgname-$pkgver # gmake NO_PERL=1 NO_REGEX=NeedsStartEnd NO_TCLTK=1 NO_MSGFMT_EXTENDED_OPTIONS=1 prefix=/usr gitexecdir=lib/gitcore INSTALL_SYMLINKS=1 - gmake NO_REGEX=NeedsStartEnd NO_TCLTK=1 NO_MSGFMT_EXTENDED_OPTIONS=1 prefix=/usr gitexecdir=lib/gitcore INSTALL_SYMLINKS=1 + bad --gmake gmake NO_REGEX=NeedsStartEnd NO_TCLTK=1 NO_MSGFMT_EXTENDED_OPTIONS=1 prefix=/usr gitexecdir=lib/gitcore INSTALL_SYMLINKS=1 # Need to run twice for it to work ¯\_(ツ)_/¯ # Some issue with `msgfmt` 'cause I'm using gettext-tiny but idk why it works on the second run # gmake NO_PERL=1 NO_REGEX=NeedsStartEnd NO_TCLTK=1 NO_MSGFMT_EXTENDED_OPTIONS=1 prefix=/usr gitexecdir=lib/gitcore INSTALL_SYMLINKS=1 - gmake NO_REGEX=NeedsStartEnd NO_TCLTK=1 NO_MSGFMT_EXTENDED_OPTIONS=1 prefix=/usr gitexecdir=lib/gitcore INSTALL_SYMLINKS=1 + bad --gmake gmake NO_REGEX=NeedsStartEnd NO_TCLTK=1 NO_MSGFMT_EXTENDED_OPTIONS=1 prefix=/usr gitexecdir=lib/gitcore INSTALL_SYMLINKS=1 } package() { cd $pkgname-$pkgver # gmake NO_PERL=1 NO_REGEX=NeedsStartEnd NO_TCLTK=1 NO_MSGFMT_EXTENDED_OPTIONS=1 install prefix=/usr gitexecdir=lib/gitcore DESTDIR=$pkgdir INSTALL_SYMLINKS=1 - gmake NO_REGEX=NeedsStartEnd NO_TCLTK=1 NO_MSGFMT_EXTENDED_OPTIONS=1 install prefix=/usr gitexecdir=lib/gitcore DESTDIR=$pkgdir INSTALL_SYMLINKS=1 + bad --gmake gmake NO_REGEX=NeedsStartEnd NO_TCLTK=1 NO_MSGFMT_EXTENDED_OPTIONS=1 install prefix=/usr gitexecdir=lib/gitcore DESTDIR=$pkgdir INSTALL_SYMLINKS=1 } package_doc() { # gmake NO_PERL=1 NO_REGEX=NeedsStartEnd NO_TCLTK=1 NO_MSGFMT_EXTENDED_OPTIONS=1 install-man prefix=/usr DESTDIR=$pkgdir INSTALL_SYMLINKS=1 - gmake NO_REGEX=NeedsStartEnd NO_TCLTK=1 NO_MSGFMT_EXTENDED_OPTIONS=1 install-man prefix=/usr DESTDIR=$pkgdir INSTALL_SYMLINKS=1 + bad --gmake gmake NO_REGEX=NeedsStartEnd NO_TCLTK=1 NO_MSGFMT_EXTENDED_OPTIONS=1 install-man prefix=/usr DESTDIR=$pkgdir INSTALL_SYMLINKS=1 } license() { diff --git a/base/iglupkg/build.sh b/base/iglupkg/build.sh new file mode 100644 index 0000000..8739c5c --- /dev/null +++ b/base/iglupkg/build.sh @@ -0,0 +1,25 @@ +pkgname=iglupkg +pkgver=main + +fetch() { + curl -L "https://github.com/iglunix/iglupkg/archive/refs/heads/main.tar.gz" -o $pkgname-$pkgver.tar.xz + tar -xf $pkgname-$pkgver.tar.xz +} + +build() { + return +} + +package() { + cd $pkgname-$pkgver + make install DESTDIR=$pkgdir PREFIX=/usr +} + +license() { + cd $pkgname-$pkgver + return +} + +backup() { + return +} diff --git a/base/kakoune/build.sh b/base/kakoune/build.sh index c5788d7..26edf8c 100644 --- a/base/kakoune/build.sh +++ b/base/kakoune/build.sh @@ -12,12 +12,12 @@ fetch() { build() { cd $pkgname-$pkgver - ckati + bad --gmake gmake } package() { cd $pkgname-$pkgver - ckati install DESTDIR=$pkgdir PREFIX=/usr + bad --gmake gmake install DESTDIR=$pkgdir PREFIX=/usr rm -r $pkgdir/usr/share/doc rm -r $pkgdir/usr/share/man rm -r $pkgdir/usr/libexec @@ -35,3 +35,7 @@ license() { cd $pkgname-$pkgver cat UNLICENSE } + +backup() { + return +} diff --git a/base/kati/build.sh b/base/kati/build.sh index 0530753..c64348d 100644 --- a/base/kati/build.sh +++ b/base/kati/build.sh @@ -9,7 +9,7 @@ fetch() { build() { cd $pkgname-$pkgver - gmake + bad --gmake gmake } package() { diff --git a/base/libcxx/build.sh b/base/libcxx/build.sh new file mode 100644 index 0000000..31a577f --- /dev/null +++ b/base/libcxx/build.sh @@ -0,0 +1,63 @@ +pkgver=14.0.1 +pkgname=libcxx +bad="" +ext="dev" + +fetch() { + curl -L "https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/llvm-project-$pkgver.src.tar.xz" -o $pkgname-$pkgver.tar.xz + tar -xf $pkgname-$pkgver.tar.xz + mv llvm-project-$pkgver.src $pkgname-$pkgver +} + +build() { + cd $pkgname-$pkgver + PREFIX=/usr + [ -z "$FOR_CROSS" ] || PREFIX=$FOR_CROSS_DIR + [ -z "$WITH_CROSS" ] || cmake_extra_flags=-DCMAKE_SYSROOT=$WITH_CROSS_DIR + + mkdir -p build + cd build + cmake -G Ninja -Wno-dev \ + -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi" \ + -DLIBCXX_ENABLE_FILESYSTEM=ON \ + -DLIBCXX_USE_COMPILER_RT=ON \ + -DLIBCXX_HAS_MUSL_LIBC=ON \ + -DLIBCXXABI_USE_COMPILER_RT=ON \ + -DLIBCXXABI_USE_LLVM_UNWINDER=ON \ + -DLIBCXX_ENABLE_STATIC=OFF \ + -DLIBCXX_HAS_ATOMIC_LIB=OFF \ + -DCMAKE_C_COMPILER=$CC \ + -DCMAKE_CXX_COMPILER=$CXX \ + -DCMAKE_C_COMPILER_TARGET=$ARCH-linux-musl \ + -DCMAKE_CXX_COMPILER_TARGET=$ARCH-linux-musl \ + -DCMAKE_C_FLAGS="$CFLAGS" \ + -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ + $cmake_extra_flags \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_CXX_COMPILER_WORKS=1 \ + -DCMAKE_SKIP_BUILD_RPATH=0 \ + -DCMAKE_BUILD_WITH_INSTALL_RPATH=1 \ + -DCMAKE_INSTALL_RPATH='${ORIGIN}/../lib' \ + ../runtimes + + samu -j$JOBS +} + +package() { + cd $pkgname-$pkgver + cd build + DESTDIR=$pkgdir samu install +} + +backup() { + return +} + +package_dev() { + echo "No... Shut" +} + +license() { + cd $pkgname-$pkgver + cat */LICENSE.TXT +} diff --git a/base/libelf/build.sh b/base/libelf/build.sh new file mode 100644 index 0000000..c8334da --- /dev/null +++ b/base/libelf/build.sh @@ -0,0 +1,47 @@ +pkgname=libelf +pkgver=0.186 +auto_cross + +fetch() { + curl -LO "https://sourceware.org/elfutils/ftp/$pkgver/elfutils-$pkgver.tar.bz2" + tar -xf elfutils-$pkgver.tar.bz2 + cd elfutils-$pkgver + patch -p1 < ../../musl.patch +} + +if [ -z "$FOR_CROSS" ]; then + PREFIX=/usr +else + PREFIX=$FOR_CROSS_DIR +fi + +build() { + cd elfutils-$pkgver + export CFLAGS="$CFLAGS -Wno-error" + ./configure \ + --prefix=$PREFIX \ + --sysconfdir=/etc \ + --build=$HOST_TRIPLE \ + --host=$TRIPLE \ + --disable-symbol-versioning \ + --disable-debuginfod \ + --disable-libdebuginfod \ + --disable-nls \ + ac_cv_c99=yes + + bad --gmake gmake -C lib + bad --gmake gmake -C libelf +} + +package() { + cd elfutils-$pkgver + bad --gmake gmake -C libelf install DESTDIR=$pkgdir +} + +backup() { + return +} + +license() { + return +} diff --git a/base/libelf/musl.patch b/base/libelf/musl.patch new file mode 100644 index 0000000..a37912f --- /dev/null +++ b/base/libelf/musl.patch @@ -0,0 +1,59 @@ +diff --git a/configure b/configure +index d03dab4..7fc88bd 100755 +--- a/configure ++++ b/configure +@@ -7758,7 +7758,7 @@ LIBS="$saved_LIBS" + case "$ac_cv_search_argp_parse" in + no) { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 + $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-as_fn_error $? "failed to find argp_parse ++: $? "failed to find argp_parse + See \`config.log' for more details" "$LINENO" 5; } ;; + -l*) argp_LDADD="$ac_cv_search_argp_parse" ;; + *) argp_LDADD= ;; +@@ -7826,7 +7826,7 @@ LIBS="$saved_LIBS" + case "$ac_cv_search_fts_close" in + no) { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 + $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-as_fn_error $? "failed to find fts_close ++: $? "failed to find fts_close + See \`config.log' for more details" "$LINENO" 5; } ;; + -l*) fts_LIBS="$ac_cv_search_fts_close" ;; + *) fts_LIBS= ;; +@@ -7894,7 +7894,7 @@ LIBS="$saved_LIBS" + case "$ac_cv_search__obstack_free" in + no) { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 + $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +-as_fn_error $? "failed to find _obstack_free ++: $? "failed to find _obstack_free + See \`config.log' for more details" "$LINENO" 5; } ;; + -l*) obstack_LIBS="$ac_cv_search__obstack_free" ;; + *) obstack_LIBS= ;; +diff --git a/lib/Makefile.in b/lib/Makefile.in +index 41ff5f7..0c81496 100644 +--- a/lib/Makefile.in ++++ b/lib/Makefile.in +@@ -117,8 +117,8 @@ libeu_a_AR = $(AR) $(ARFLAGS) + libeu_a_LIBADD = + am_libeu_a_OBJECTS = xasprintf.$(OBJEXT) xstrdup.$(OBJEXT) \ + xstrndup.$(OBJEXT) xmalloc.$(OBJEXT) next_prime.$(OBJEXT) \ +- crc32.$(OBJEXT) crc32_file.$(OBJEXT) color.$(OBJEXT) \ +- error.$(OBJEXT) printversion.$(OBJEXT) ++ crc32.$(OBJEXT) crc32_file.$(OBJEXT) \ ++ error.$(OBJEXT) + libeu_a_OBJECTS = $(am_libeu_a_OBJECTS) + AM_V_P = $(am__v_P_@AM_V@) + am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +@@ -406,10 +406,10 @@ textrel_check = if $(READELF) -d $@ | fgrep -q TEXTREL; then $(textrel_found); f + noinst_LIBRARIES = libeu.a + libeu_a_SOURCES = xasprintf.c xstrdup.c xstrndup.c xmalloc.c next_prime.c \ + crc32.c crc32_file.c \ +- color.c error.c printversion.c ++ error.c + + noinst_HEADERS = fixedsizehash.h libeu.h system.h dynamicsizehash.h list.h \ +- eu-config.h color.h printversion.h bpf.h \ ++ eu-config.h bpf.h \ + atomics.h stdatomic-fbsd.h dynamicsizehash_concurrent.h + + EXTRA_DIST = dynamicsizehash.c dynamicsizehash_concurrent.c diff --git a/base/libffi/build.sh b/base/libffi/build.sh index 80f9484..2be4125 100644 --- a/base/libffi/build.sh +++ b/base/libffi/build.sh @@ -2,6 +2,7 @@ pkgver=3.3 pkgname=libffi bad="gmake" ext="dev" +auto_cross fetch() { curl -L "https://github.com/libffi/libffi/releases/download/v3.3/libffi-3.3.tar.gz" -o $pkgname-$pkgver.tar.gz @@ -10,21 +11,27 @@ fetch() { build() { cd $pkgname-$pkgver - ./configure --prefix=/usr - gmake + ./configure --prefix=$PREFIX \ + --build=$HOST_TRIPLE \ + --host=$TRIPLE + bad --gmake gmake } package() { cd $pkgname-$pkgver - gmake install DESTDIR=$pkgdir + bad --gmake gmake install DESTDIR=$pkgdir } package_dev() { cd $pkgname-$pkgver - gmake install DESTDIR=$pkgdir + bad --gmake gmake install DESTDIR=$pkgdir } license() { cd $pkgname-$pkgver cat LICENSE } + +backup() { + return +} diff --git a/base/libnl-tiny/build.sh b/base/libnl-tiny/build.sh index 4620f55..30702f9 100644 --- a/base/libnl-tiny/build.sh +++ b/base/libnl-tiny/build.sh @@ -9,12 +9,12 @@ fetch() { build() { cd $pkgname-$pkgver - gmake prefix=/usr all CC=cc + bad --gmake gmake prefix=/usr all CC=cc } package() { cd $pkgname-$pkgver - gmake prefix=/usr DESTDIR=$pkgdir install + bad --gmake gmake prefix=/usr DESTDIR=$pkgdir install } license() { diff --git a/base/libunwind/build.sh b/base/libunwind/build.sh new file mode 100644 index 0000000..bbb26be --- /dev/null +++ b/base/libunwind/build.sh @@ -0,0 +1,70 @@ +pkgver=14.0.1 +pkgname=libunwind +bad="" +ext="dev" + +fetch() { + curl -L "https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/llvm-project-$pkgver.src.tar.xz" -o $pkgname-$pkgver.tar.xz + tar -xf $pkgname-$pkgver.tar.xz + mv llvm-project-$pkgver.src $pkgname-$pkgver +} + +build() { + cd $pkgname-$pkgver + + PREFIX=/usr + + [ -z "$FOR_CROSS" ] || PREFIX=$FOR_CROSS_DIR + + if [ ! -z "$WITH_CROSS" ]; then + cmake_extra_flags=-DCMAKE_SYSROOT=$WITH_CROSS_DIR + fi + + mkdir -p build + cd build + cmake -G Ninja -Wno-dev \ + -DLLVM_ENABLE_RUNTIMES="libunwind" \ + -DLIBUNWIND_USE_COMPILER_RT=ON \ + -DLIBUNWIND_SUPPORTS_FNO_EXCEPTIONS_FLAG=1 \ + -DLIBCXXABI_USE_LLVM_UNWINDER=YES \ + -DLIBCXX_HAS_MUSL_LIBC=ON \ + -DCMAKE_ASM_COMPILER=$CC \ + -DCMAKE_C_COMPILER=$CC \ + -DCMAKE_CXX_COMPILER=$CXX \ + -DCMAKE_ASM_COMPILER_TARGET=$ARCH-linux-musl \ + -DCMAKE_C_COMPILER_TARGET=$ARCH-linux-musl \ + -DCMAKE_CXX_COMPILER_TARGET=$ARCH-linux-musl \ + -DCMAKE_C_FLAGS="$CFLAGS" \ + -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ + -DCMAKE_ASM_FLAGS="$CFLAGS" \ + -DCMAKE_SHARED_LINKER_FLAGS="$LDFLAGS -unwindlib=none" \ + $cmake_extra_flags \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_C_COMPILER_WORKS=1 \ + -DCMAKE_CXX_COMPILER_WORKS=1 \ + -DCMAKE_SKIP_BUILD_RPATH=0 \ + -DCMAKE_BUILD_WITH_INSTALL_RPATH=1 \ + -DCMAKE_INSTALL_RPATH='${ORIGIN}/../lib' \ + ../runtimes + + samu -j$JOBS +} + +package() { + cd $pkgname-$pkgver + cd build + DESTDIR=$pkgdir samu install +} + +backup() { + return +} + +package_dev() { + echo "No... Shut" +} + +license() { + cd $pkgname-$pkgver + cat */LICENSE.TXT +} diff --git a/base/llvm/build.sh b/base/llvm/build.sh index 25c4cbf..a5fbb82 100644 --- a/base/llvm/build.sh +++ b/base/llvm/build.sh @@ -1,4 +1,4 @@ -pkgver=12.0.1 +pkgver=14.0.1 pkgname=llvm bad="" ext="dev" @@ -8,92 +8,119 @@ fetch() { tar -xf $pkgname-$pkgver.tar.gz mv llvm-project-$pkgver.src $pkgname-$pkgver - # fixes relaxation cd $pkgname-$pkgver patch -p1 < ../../riscv-relax.patch - - cp -n ../default.llvm.conf /etc/iglupkg/llvm.conf - [ ../default/llvm.conf -nt /etc/iglupkg/llvm.conf ] && echo "WARNING: the default config file is newer than your config file." done } build() { cd $pkgname-$pkgver + + if [ ! -z "$WITH_CROSS" ]; then + EXTRA_ARGS="-DCMAKE_SYSROOT=$WITH_CROSS_DIR \ + -DCMAKE_C_COMPILER_WORKS=ON \ + -DCMAKE_CXX_COMPILER_WORKS=ON \ + -DCMAKE_SYSTEM_NAME=Linux \ + -DLLVM_TABLEGEN=$(pwd)/host-build/bin/llvm-tblgen \ + -DCLANG_TABLEGEN=$(pwd)/host-build/bin/clang-tblgen \ + -DLLVM_CONFIG_PATH=/usr/bin/llvm-config \ + -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \ + -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \ + -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY" + mkdir -p host-build + cd host-build + cmake -G Ninja -Wno-dev \ + -DLLVM_ENABLE_PROJECTS='clang' \ + -DCMAKE_C_COMPILER=cc \ + -DCMAKE_CXX_COMPILER=c++ \ + ../llvm + + samu llvm-tblgen clang-tblgen + + cd .. + fi + mkdir -p build cd build - cmake -G Ninja -Wno-dev \ - -DCMAKE_C_COMPILER_TARGET=$TRIPLE \ - -DCMAKE_CXX_COMPILER_TARGET=$TRIPLE \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DCMAKE_BUILD_TYPE=Release \ - -DLLVM_VERSION_SUFFIX="" \ - -DLLVM_APPEND_VC_REV=OFF \ - -DLLVM_ENABLE_PROJECTS="libunwind;libcxxabi;libcxx;compiler-rt;llvm;lld;clang;clang-tools-extra;lldb" \ - -DLLVM_ENABLE_LLD=ON \ - -DLLVM_TARGETS_TO_BUILD="all" \ - -DLLVM_INSTALL_BINUTILS_SYMLINKS=ON \ - -DLLVM_INSTALL_CCTOOLS_SYMLINKS=ON \ - -DLLVM_INCLUDE_EXAMPLES=OFF \ - -DLLVM_ENABLE_PIC=ON \ - -DLLVM_ENABLE_LTO=OFF \ - -DLLVM_INCLUDE_GO_TESTS=OFF \ - -DLLVM_INCLUDE_TESTS=OFF \ - -DLLVM_HOST_TRIPLE=$TRIPLE \ - -DLLVM_DEFAULT_TARGET_TRIPLE=$TRIPLE \ - -DLLVM_ENABLE_LIBXML2=OFF \ - -DLLVM_ENABLE_ZLIB=OFF\ - -DLLVM_BUILD_LLVM_DYLIB=ON \ - -DLLVM_LINK_LLVM_DYLIB=ON \ - -DLLVM_OPTIMIZED_TABLEGEN=ON \ - -DLLVM_INCLUDE_BENCHMARKS=OFF \ - -DLLVM_INCLUDE_DOCS=ON \ - -DLLVM_TOOL_LLVM_ITANIUM_DEMANGLE_FUZZER_BUILD=OFF \ - -DLLVM_TOOL_LLVM_MC_ASSEMBLE_FUZZER_BUILD=OFF \ - -DLLVM_TOOL_LLVM_MC_DISASSEMBLE_FUZZER_BUILD=OFF \ - -DLLVM_TOOL_LLVM_OPT_FUZZER_BUILD=OFF \ - -DLLVM_TOOL_LLVM_MICROSOFT_DEMANGLE_FUZZER_BUILD=OFF \ - -DLLVM_TOOL_LLVM_GO_BUILD=OFF \ - -DLLVM_INSTALL_UTILS=ON \ - -DLLVM_ENABLE_LIBCXX=ON \ - -DLLVM_STATIC_LINK_CXX_STDLIB=ON \ - -DLLVM_ENABLE_LIBEDIT=OFF \ - -DLLVM_ENABLE_TERMINFO=OFF \ - -DLIBCXX_ENABLE_FILESYSTEM=ON \ - -DLIBCXX_USE_COMPILER_RT=ON \ - -DLIBCXX_HAS_MUSL_LIBC=ON \ - -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON \ - -DLIBCXX_STATICALLY_LINK_ABI_IN_SHARED_LIBRARY=ON \ - -DLIBCXX_STATICALLY_LINK_ABI_IN_STATIC_LIBRARY=ON \ - -DLIBCXX_INSTALL_LIBRARY=ON \ - -DLIBCXXABI_ENABLE_ASSERTIONS=ON \ - -DLIBCXXABI_USE_COMPILER_RT=ON \ - -DLIBCXXABI_USE_LLVM_UNWINDER=ON \ - -DLIBCXXABI_ENABLE_STATIC_UNWINDER=ON \ - -DLIBCXXABI_STATICALLY_LINK_UNWINDER_IN_SHARED_LIBRARY=YES \ - -DLIBCXXABI_ENABLE_SHARED=OFF \ - -DLIBCXXABI_ENABLE_STATIC=ON \ - -DLIBCXXABI_INSTALL_LIBRARY=ON \ - -DLIBUNWIND_ENABLE_SHARED=ON \ - -DLIBUNWIND_ENABLE_STATIC=ON \ - -DLIBUNWIND_INSTALL_LIBRARY=ON \ - -DLIBUNWIND_USE_COMPILER_RT=ON \ - -DCLANG_DEFAULT_LINKER=lld \ - -DCLANG_DEFAULT_CXX_STDLIB='libc++' \ - -DCLANG_DEFAULT_RTLIB=compiler-rt \ - -DCLANG_DEFAULT_UNWINDLIB=libunwind \ - -DCLANG_VENDOR="Iglunix" \ - -DCLANG_ENABLE_STATIC_ANALYZER=OFF \ - -DCLANG_ENABLE_ARCMT=OFF \ - -DCLANG_LINK_CLANG_DYLIB=OFF \ - -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON \ - -DCOMPILER_RT_DEFAULT_TARGET_ONLY=OFF \ - -DCOMPILER_RT_INCLUDE_TESTS=OFF \ - -DCOMPILER_RT_BUILD_SANITIZERS=OFF \ - -DCOMPILER_RT_BUILD_XRAY=OFF \ - -DCOMPILER_RT_BUILD_MEMPROF=OFF \ - -DCOMPILER_RT_INCLUDE_TESTS=OFF \ - -DCOMPILER_RT_BUILD_LIBFUZZER=OFF \ - -DENABLE_EXPERIMENTAL_NEW_PASS_MANAGER=TRUE \ - ../llvm + cmake -G Ninja -Wno-dev \ + -DCMAKE_C_COMPILER_TARGET=$TRIPLE \ + -DCMAKE_CXX_COMPILER_TARGET=$TRIPLE \ + -DCMAKE_C_COMPILER=$CC \ + -DCMAKE_CXX_COMPILER=$CXX \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_BUILD_TYPE=Release \ + -DLLVM_VERSION_SUFFIX="" \ + -DLLVM_APPEND_VC_REV=OFF \ + -DLLVM_ENABLE_PROJECTS="llvm;lld;clang" \ + -DLLVM_ENABLE_LLD=ON \ + -DLLVM_TARGETS_TO_BUILD="all" \ + -DLLVM_INSTALL_BINUTILS_SYMLINKS=ON \ + -DLLVM_INSTALL_CCTOOLS_SYMLINKS=ON \ + -DLLVM_INCLUDE_EXAMPLES=OFF \ + -DLLVM_ENABLE_PIC=ON \ + -DLLVM_ENABLE_LTO=OFF \ + -DLLVM_INCLUDE_GO_TESTS=OFF \ + -DLLVM_INCLUDE_TESTS=OFF \ + -DLLVM_HOST_TRIPLE=$TRIPLE \ + -DLLVM_DEFAULT_TARGET_TRIPLE=$TRIPLE \ + -DLLVM_ENABLE_LIBXML2=OFF \ + -DLLVM_ENABLE_ZLIB=OFF\ + -DLLVM_BUILD_LLVM_DYLIB=ON \ + -DLLVM_LINK_LLVM_DYLIB=ON \ + -DLLVM_OPTIMIZED_TABLEGEN=ON \ + -DLLVM_INCLUDE_BENCHMARKS=OFF \ + -DLLVM_INCLUDE_DOCS=ON \ + -DLLVM_TOOL_LLVM_ITANIUM_DEMANGLE_FUZZER_BUILD=OFF \ + -DLLVM_TOOL_LLVM_MC_ASSEMBLE_FUZZER_BUILD=OFF \ + -DLLVM_TOOL_LLVM_MC_DISASSEMBLE_FUZZER_BUILD=OFF \ + -DLLVM_TOOL_LLVM_OPT_FUZZER_BUILD=OFF \ + -DLLVM_TOOL_LLVM_MICROSOFT_DEMANGLE_FUZZER_BUILD=OFF \ + -DLLVM_TOOL_LLVM_GO_BUILD=OFF \ + -DLLVM_INSTALL_UTILS=ON \ + -DLLVM_ENABLE_LIBCXX=ON \ + -DLLVM_STATIC_LINK_CXX_STDLIB=ON \ + -DLLVM_ENABLE_LIBEDIT=OFF \ + -DLLVM_ENABLE_TERMINFO=OFF \ + -DLIBCXX_ENABLE_FILESYSTEM=ON \ + -DLIBCXX_USE_COMPILER_RT=ON \ + -DLIBCXX_HAS_MUSL_LIBC=ON \ + -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON \ + -DLIBCXX_STATICALLY_LINK_ABI_IN_SHARED_LIBRARY=ON \ + -DLIBCXX_STATICALLY_LINK_ABI_IN_STATIC_LIBRARY=ON \ + -DLIBCXX_INSTALL_LIBRARY=ON \ + -DLIBCXXABI_ENABLE_ASSERTIONS=ON \ + -DLIBCXXABI_USE_COMPILER_RT=ON \ + -DLIBCXXABI_USE_LLVM_UNWINDER=ON \ + -DLIBCXXABI_ENABLE_STATIC_UNWINDER=ON \ + -DLIBCXXABI_STATICALLY_LINK_UNWINDER_IN_SHARED_LIBRARY=YES \ + -DLIBCXXABI_ENABLE_SHARED=OFF \ + -DLIBCXXABI_ENABLE_STATIC=ON \ + -DLIBCXXABI_INSTALL_LIBRARY=ON \ + -DLIBUNWIND_ENABLE_SHARED=ON \ + -DLIBUNWIND_ENABLE_STATIC=ON \ + -DLIBUNWIND_INSTALL_LIBRARY=ON \ + -DLIBUNWIND_USE_COMPILER_RT=ON \ + -DCLANG_DEFAULT_LINKER=lld \ + -DCLANG_DEFAULT_CXX_STDLIB='libc++' \ + -DCLANG_DEFAULT_RTLIB=compiler-rt \ + -DCLANG_DEFAULT_UNWINDLIB=libunwind \ + -DCLANG_VENDOR="Iglunix" \ + -DCLANG_ENABLE_STATIC_ANALYZER=OFF \ + -DCLANG_ENABLE_ARCMT=OFF \ + -DCLANG_LINK_CLANG_DYLIB=OFF \ + -DCLANG_TOOLING_BUILD_AST_INTROSPECTION=OFF \ + -DCOMPILER_RT_USE_BUILTINS_LIBRARY=OFF \ + -DCOMPILER_RT_DEFAULT_TARGET_ONLY=OFF \ + -DCOMPILER_RT_INCLUDE_TESTS=OFF \ + -DCOMPILER_RT_BUILD_SANITIZERS=OFF \ + -DCOMPILER_RT_BUILD_XRAY=OFF \ + -DCOMPILER_RT_BUILD_MEMPROF=OFF \ + -DCOMPILER_RT_INCLUDE_TESTS=OFF \ + -DCOMPILER_RT_BUILD_LIBFUZZER=OFF \ + -DENABLE_EXPERIMENTAL_NEW_PASS_MANAGER=TRUE \ + $EXTRA_ARGS \ + -DHAVE_CXX_ATOMICS_WITHOUT_LIB=ON \ + -DHAVE_CXX_ATOMICS64_WITHOUT_LIB=ON \ + ../llvm samu -j$JOBS } @@ -102,10 +129,15 @@ package() { cd $pkgname-$pkgver cd build DESTDIR=$pkgdir samu install - ln -sr $pkgdir/usr/bin/clang $pkgdir/usr/bin/cc - ln -sr $pkgdir/usr/bin/clang $pkgdir/usr/bin/c89 - ln -sr $pkgdir/usr/bin/clang $pkgdir/usr/bin/c99 - ln -sr $pkgdir/usr/bin/clang++ $pkgdir/usr/bin/c++ + ln -s clang $pkgdir/usr/bin/cc + ln -s clang $pkgdir/usr/bin/c89 + ln -s clang $pkgdir/usr/bin/c99 + ln -s clang++ $pkgdir/usr/bin/c++ + ln -s ld.lld $pkgdir/usr/bin/ld +} + +backup() { + return } package_dev() { diff --git a/pkgs/man-pages-posix/build.sh b/base/man-pages-posix/build.sh similarity index 92% rename from pkgs/man-pages-posix/build.sh rename to base/man-pages-posix/build.sh index 0559329..ad0139c 100644 --- a/pkgs/man-pages-posix/build.sh +++ b/base/man-pages-posix/build.sh @@ -7,8 +7,7 @@ fetch() { } build() { - cd $pkgname-$pkgver - make + return } package() { @@ -16,6 +15,10 @@ package() { make install DESTDIR=$pkgdir } +backup() { + return +} + license() { cd $pkgname-$pkgver cat POSIX-COPYRIGHT diff --git a/base/meson/build.sh b/base/meson/build.sh index 51a2f83..9f1a025 100644 --- a/base/meson/build.sh +++ b/base/meson/build.sh @@ -1,8 +1,7 @@ -pkgver=0.58.1 +pkgver=0.60.2 pkgname=meson deps=python bad="" -ext="doc" fetch() { curl -L "https://github.com/mesonbuild/meson/releases/download/$pkgver/meson-$pkgver.tar.gz" -o $pkgname-$pkgver.tar.gz @@ -22,8 +21,8 @@ package() { python setup.py install --prefix=/usr --root=$pkgdir } -package_doc() { - echo $pkgdir +backup() { + return } license() { diff --git a/base/mksh/build.sh b/base/mksh/build.sh index 96e180e..6c7f7f1 100644 --- a/base/mksh/build.sh +++ b/base/mksh/build.sh @@ -5,7 +5,7 @@ bad="" ext="doc" fetch() { - curl https://www.mirbsd.org/MirOS/dist/mir/mksh/mksh-R59c.tgz -o $pkgname-$pkgver.tar.gz + curl http://www.mirbsd.org/MirOS/dist/mir/mksh/mksh-R59c.tgz -o $pkgname-$pkgver.tar.gz tar -xf $pkgname-$pkgver.tar.gz } @@ -24,11 +24,8 @@ package() { ln -sr $pkgdir/bin/lksh $pkgdir/bin/sh } -package_doc() { - cd $pkgname - install -d $pkgdir/usr/share/man/man1 - install -Dm 644 ./mksh.1 $pkgdir/usr/share/man/man1 - install -Dm 644 ./lksh.1 $pkgdir/usr/share/man/man1 +backup() { + return } license() { diff --git a/base/netbsd-curses/build.sh b/base/netbsd-curses/build.sh index a25846a..a56b681 100644 --- a/base/netbsd-curses/build.sh +++ b/base/netbsd-curses/build.sh @@ -1,42 +1,29 @@ pkgver=master pkgname=netbsd-curses -bad="" +bad="gmake" deps="musl" ext="doc:dev" +auto_cross fetch() { curl -L "https://github.com/sabotage-linux/netbsd-curses/archive/master.tar.gz" -o $pkgname-$pkgver.tar.gz tar -xf $pkgname-$pkgver.tar.gz + cd $pkgname-$pkgver + patch -p1 < ../../cross.patch } build() { cd $pkgname-$pkgver - ckati + bad --gmake gmake PREFIX=/usr HOSTCC=cc CROSSCOMPILING=1 LDFLAGS_HOST= CFLAGS_HOST= } package() { cd $pkgname-$pkgver - ckati install DESTDIR=$pkgdir PREFIX=/usr - rm -r $pkgdir/usr/share - rm $pkgdir/usr/lib/*.a - rm -r $pkgdir/usr/include - rm -r $pkgdir/usr/lib/pkgconfig + bad --gmake gmake install DESTDIR=$pkgdir PREFIX=/usr HOSTCC=cc CROSSCOMPILING=1 LDFLAGS_HOST= CFLAGS_HOST= } -package_doc() { - cd $pkgname-$pkgver - ckati install DESTDIR=$pkgdir PREFIX=/usr - rm -r $pkgdir/usr/bin - rm -r $pkgdir/usr/lib - rm -r $pkgdir/usr/include -} - -package_dev() { - cd $pkgname-$pkgver - ckati install DESTDIR=$pkgdir PREFIX=/usr - rm $pkgdir/usr/lib/*.so - rm -r $pkgdir/usr/share - rm -r $pkgdir/usr/bin +backup() { + return } license() { diff --git a/base/netbsd-curses/cross.patch b/base/netbsd-curses/cross.patch new file mode 100644 index 0000000..895700a --- /dev/null +++ b/base/netbsd-curses/cross.patch @@ -0,0 +1,47 @@ +--- a/GNUmakefile ++++ b/GNUmakefile +@@ -477,7 +477,7 @@ + $(RANLIB) $@ + + $(TI_LIBSO): $(TI_LOBJS) +- $(CC) -shared -o $@ $^ -Wl,-soname=$(notdir $@) ++ $(CC) $(LDFLAGS) -shared -o $@ $^ -Wl,-soname=$(notdir $@) + + libterminfo/hash.c: libterminfo/genhash libterminfo/term.h + @echo "Generating terminfo hash" +@@ -514,7 +514,7 @@ + + $(CU_LIBSO): $(TI_LIBSO) + $(CU_LIBSO): $(CU_LOBJS) +- $(CC) -shared -o $@ $^ -Wl,-soname=$(notdir $@) ++ $(CC) $(LDFLAGS) -shared -o $@ $^ -Wl,-soname=$(notdir $@) + + libcurses/fileio.h: libcurses/shlib_version libcurses/genfileioh.awk + $(AWK) -f ./genfileioh.awk < ./shlib_version > ./fileio.h +@@ -526,7 +526,7 @@ + + $(PA_LIBSO): $(CU_LIBSO) + $(PA_LIBSO): $(PA_LOBJS) +- $(CC) -shared -o $@ $^ -Wl,-soname=$(notdir $@) ++ $(CC) $(LDFLAGS) -shared -o $@ $^ -Wl,-soname=$(notdir $@) + + $(ME_LIBA): $(ME_OBJS) + rm -f $@ +@@ -535,7 +535,7 @@ + + $(ME_LIBSO): $(CU_LIBSO) + $(ME_LIBSO): $(ME_LOBJS) +- $(CC) -shared -o $@ $^ -Wl,-soname=$(notdir $@) ++ $(CC) $(LDFLAGS) -shared -o $@ $^ -Wl,-soname=$(notdir $@) + + $(FO_LIBA): $(FO_OBJS) + rm -f $@ +@@ -544,7 +544,7 @@ + + $(FO_LIBSO): $(CU_LIBSO) + $(FO_LIBSO): $(FO_LOBJS) +- $(CC) -shared -o $@ $^ -Wl,-soname=$(notdir $@) ++ $(CC) $(LDFLAGS) -shared -o $@ $^ -Wl,-soname=$(notdir $@) + + # Allow terminfo descriptions to be compiled into libterminfo + ${TERMINFODIR}/terminfo.cdb: $(TOOL_TIC) ${TERMINFODIR}/terminfo diff --git a/base/om4/build.sh b/base/om4/build.sh index e3334a7..d7c01cc 100644 --- a/base/om4/build.sh +++ b/base/om4/build.sh @@ -4,16 +4,20 @@ pkgrel=1 deps="musl" bad="" ext="doc" +auto_cross fetch() { curl -L "https://github.com/ibara/m4/releases/download/om4-6.7/om4-6.7.tar.gz" -o $pkgname-$pkgver.tar.xz tar -xf $pkgname-$pkgver.tar.xz + cd $pkgname-$pkgver + patch -p1 < ../../m4-hand-written-lexer.patch + patch -p1 < ../../configure.patch } build() { cd $pkgname-$pkgver ./configure --prefix=/ - make + make -j1 } package() { @@ -24,7 +28,7 @@ package() { } package_doc() { - cd $pkgname-$pkgver + cd $pkgname-$pkgver install -d $pkgdir/usr/share/man/man1 install -Dm644 m4.1 $pkgdir/usr/share/man/man1 } @@ -33,3 +37,7 @@ license() { cd $pkgname-$pkgver echo "Source are a combination of BSD and ISC licensed files" } + +backup() { + return +} diff --git a/base/om4/configure.patch b/base/om4/configure.patch new file mode 100644 index 0000000..4c1dbac --- /dev/null +++ b/base/om4/configure.patch @@ -0,0 +1,21 @@ +--- a/configure ++++ b/configure +@@ -10,16 +10,8 @@ + EOF + $CC -o conftest conftest.c > /dev/null 2>&1 + if [ $? -eq 0 ] ; then ++ cc="$CC" ++ return 0 +- ./conftest +- if [ $? -eq 0 ] ; then +- rm -f conftest conftest.c +- cc="$CC" +- return 0 +- else +- echo "could not build working executables" +- echo "Please ensure your C compiler is a native compiler" +- exit 1 +- fi + else + rm -f conftest conftest.c + fi diff --git a/base/om4/m4-hand-written-lexer.patch b/base/om4/m4-hand-written-lexer.patch new file mode 100644 index 0000000..307cf10 --- /dev/null +++ b/base/om4/m4-hand-written-lexer.patch @@ -0,0 +1,327 @@ +From edf250c633bef40e7e37dafc9fc393dd2ad9074f Mon Sep 17 00:00:00 2001 +From: Michael Forney +Date: Tue, 10 Apr 2018 13:37:14 -0700 +Subject: [PATCH] m4: Use hand-written lexer to avoid cycle in bootstrap + +--- + tokenizer.c | 191 +++++++++++++++++++++++++++++++++++++++++ + tokenizer.l | 109 ----------------------- + 2 files changed, 191 insertions(+), 109 deletions(-) + create mode 100644 tokenizer.c + delete mode 100644 tokenizer.l + +diff --git a/tokenizer.c b/tokenizer.c +new file mode 100644 +index 00000000000..fa19fc65035 +--- /dev/null ++++ b/tokenizer.c +@@ -0,0 +1,191 @@ ++/* $OpenBSD: tokenizer.l,v 1.10 2017/06/17 01:55:16 bcallah Exp $ */ ++/* ++ * Copyright (c) 2004 Marc Espie ++ * ++ * Permission to use, copy, modify, and distribute this software for any ++ * purpose with or without fee is hereby granted, provided that the above ++ * copyright notice and this permission notice appear in all copies. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ++ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ++ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ++ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ++ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ++ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ++ */ ++#include "parser.h" ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++extern void m4_warnx(const char *, ...); ++extern int mimic_gnu; ++extern int32_t yylval; ++static const char *yypos; ++ ++void ++yy_scan_string(const char *s) ++{ ++ yypos = s; ++} ++ ++static int32_t ++number(const char *yytext, size_t yylen) ++{ ++ long l; ++ ++ errno = 0; ++ l = strtol(yytext, NULL, 0); ++ if (((l == LONG_MAX || l == LONG_MIN) && errno == ERANGE) || ++ l > INT32_MAX || l < INT32_MIN) ++ m4_warnx("numeric overflow in expr: %.*s", (int)yylen, yytext); ++ return l; ++} ++ ++static int32_t ++parse_radix(const char *yytext, size_t yylen) ++{ ++ long base; ++ char *next; ++ long l; ++ int d; ++ ++ l = 0; ++ base = strtol(yytext+2, &next, 0); ++ if (base > 36 || next == NULL) { ++ m4_warnx("error in number %.*s", (int)yylen, yytext); ++ } else { ++ next++; ++ while (*next != 0) { ++ if (*next >= '0' && *next <= '9') ++ d = *next - '0'; ++ else if (*next >= 'a' && *next <= 'z') ++ d = *next - 'a' + 10; ++ else { ++ assert(*next >= 'A' && *next <= 'Z'); ++ d = *next - 'A' + 10; ++ } ++ if (d >= base) { ++ m4_warnx("error in number %.*s", (int)yylen, yytext); ++ return 0; ++ } ++ l = base * l + d; ++ next++; ++ } ++ } ++ return l; ++} ++ ++static int ++isodigit(int c) ++{ ++ return c >= '0' && c <= '7'; ++} ++ ++int yylex(void) ++{ ++ const char *start; ++ ++next: ++ start = yypos; ++ switch (*yypos) { ++ case ' ': ++ case '\t': ++ case '\n': ++ ++yypos; ++ goto next; ++ case '<': ++ switch (yypos[1]) { ++ case '=': ++ yypos += 2; ++ return LE; ++ case '<': ++ yypos += 2; ++ return LSHIFT; ++ } ++ break; ++ case '>': ++ switch (yypos[1]) { ++ case '=': ++ yypos += 2; ++ return GE; ++ case '>': ++ yypos += 2; ++ return RSHIFT; ++ } ++ break; ++ case '=': ++ if (yypos[1] != '=') ++ break; ++ yypos += 2; ++ return EQ; ++ case '!': ++ if (yypos[1] != '=') ++ break; ++ yypos += 2; ++ return NE; ++ case '&': ++ if (yypos[1] != '&') ++ break; ++ yypos += 2; ++ return LAND; ++ case '|': ++ if (yypos[1] != '|') ++ break; ++ yypos += 2; ++ return LOR; ++ case '*': ++ if (!mimic_gnu || yypos[1] != '*') ++ break; ++ yypos += 2; ++ return EXPONENT; ++ case '0': ++ switch (*++yypos) { ++ case 'x': ++ case 'X': ++ if (!isxdigit(*++yypos)) ++ return ERROR; ++ do ++yypos; ++ while (isxdigit(*yypos)); ++ break; ++ case 'r': ++ case 'R': ++ if (!mimic_gnu) ++ break; ++ if (!isdigit(*++yypos)) ++ return ERROR; ++ do ++yypos; ++ while (isdigit(*yypos)); ++ if (*yypos != ':') ++ return ERROR; ++ if (!isalnum(*++yypos)) ++ return ERROR; ++ do ++yypos; ++ while (isalnum(*yypos)); ++ yylval = parse_radix(start, yypos - start); ++ return NUMBER; ++ default: ++ do ++yypos; ++ while (isodigit(*yypos)); ++ break; ++ } ++ yylval = number(start, yypos - start); ++ return NUMBER; ++ case '\0': ++ return '\0'; ++ } ++ if (isdigit(*yypos)) { ++ do ++yypos; ++ while (isdigit(*yypos)); ++ yylval = number(start, yypos - start); ++ return NUMBER; ++ } ++ ++ return *yypos++; ++} +diff --git a/tokenizer.l b/tokenizer.l +deleted file mode 100644 +index 94f02fb6085..00000000000 +--- a/tokenizer.l ++++ /dev/null +@@ -1,109 +0,0 @@ +-%{ +-/* $OpenBSD: tokenizer.l,v 1.10 2017/06/17 01:55:16 bcallah Exp $ */ +-/* +- * Copyright (c) 2004 Marc Espie +- * +- * Permission to use, copy, modify, and distribute this software for any +- * purpose with or without fee is hereby granted, provided that the above +- * copyright notice and this permission notice appear in all copies. +- * +- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +- */ +-#include "parser.h" +-#include +-#include +-#include +-#include +-#include +- +-extern void m4_warnx(const char *, ...); +-extern int mimic_gnu; +-extern int32_t yylval; +- +-int32_t number(void); +-int32_t parse_radix(void); +-%} +- +-delim [ \t\n] +-ws {delim}+ +-hex 0[xX][0-9a-fA-F]+ +-oct 0[0-7]* +-dec [1-9][0-9]* +-radix 0[rR][0-9]+:[0-9a-zA-Z]+ +- +-%option noyywrap +- +-%% +-{ws} {/* just skip it */} +-{hex}|{oct}|{dec} { yylval = number(); return(NUMBER); } +-{radix} { if (mimic_gnu) { +- yylval = parse_radix(); return(NUMBER); +- } else { +- return(ERROR); +- } +- } +-"<=" { return(LE); } +-">=" { return(GE); } +-"<<" { return(LSHIFT); } +-">>" { return(RSHIFT); } +-"==" { return(EQ); } +-"!=" { return(NE); } +-"&&" { return(LAND); } +-"||" { return(LOR); } +-"**" { if (mimic_gnu) { return (EXPONENT); } } +-. { return yytext[0]; } +-%% +- +-int32_t +-number() +-{ +- long l; +- +- errno = 0; +- l = strtol(yytext, NULL, 0); +- if (((l == LONG_MAX || l == LONG_MIN) && errno == ERANGE) || +- l > INT32_MAX || l < INT32_MIN) +- m4_warnx("numeric overflow in expr: %s", yytext); +- return l; +-} +- +-int32_t +-parse_radix() +-{ +- long base; +- char *next; +- long l; +- int d; +- +- l = 0; +- base = strtol(yytext+2, &next, 0); +- if (base > 36 || next == NULL) { +- m4_warnx("error in number %s", yytext); +- } else { +- next++; +- while (*next != 0) { +- if (*next >= '0' && *next <= '9') +- d = *next - '0'; +- else if (*next >= 'a' && *next <= 'z') +- d = *next - 'a' + 10; +- else { +- assert(*next >= 'A' && *next <= 'Z'); +- d = *next - 'A' + 10; +- } +- if (d >= base) { +- m4_warnx("error in number %s", yytext); +- return 0; +- } +- l = base * l + d; +- next++; +- } +- } +- return l; +-} +- +-- +2.17.0 + diff --git a/extra/openssh/build.sh b/base/openssh/build.sh similarity index 81% rename from extra/openssh/build.sh rename to base/openssh/build.sh index 155094a..aa7d761 100644 --- a/extra/openssh/build.sh +++ b/base/openssh/build.sh @@ -1,5 +1,5 @@ pkgname=openssh -pkgver=8.6p1 +pkgver=8.8p1 fetch() { curl "https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-$pkgver.tar.gz" -o $pkgname-$pkgver.tar.xz @@ -10,8 +10,8 @@ build() { cd $pkgname-$pkgver ./configure \ --prefix=/usr \ - --build=x86_64-unknown-linux-musl \ - --host=x86_64-unknown-linux-musl \ + --build=$TRIPLE \ + --host=$TRIPLE \ --libexecdir=/usr/lib make @@ -22,6 +22,10 @@ package() { make install DESTDIR=$pkgdir } +backup() { + return +} + license() { cd $pkgname-$pkgver cat LICENCE diff --git a/base/openssl/build.sh b/base/openssl/build.sh index 199bcb3..1be2319 100644 --- a/base/openssl/build.sh +++ b/base/openssl/build.sh @@ -1,16 +1,20 @@ pkgname=openssl pkgver=3.0.0 ext="dev" +auto_cross fetch() { curl "https://www.openssl.org/source/openssl-$pkgver.tar.gz" -o $pkgname-$pkgver.tar.xz tar -xf $pkgname-$pkgver.tar.xz } +PREFIX=/usr +[ -z "$FOR_CROSS" ] || PREFIX=$FOR_CROSS_DIR + build() { cd $pkgname-$pkgver ./Configure \ - --prefix=/usr \ + --prefix=/$PREFIX \ --openssldir=/etc/ssl \ --libdir=lib \ linux-generic64 \ @@ -27,14 +31,16 @@ build() { package() { cd $pkgname-$pkgver make install_sw DESTDIR=$pkgdir - rm -rf $pkgdir/usr/lib/pkgconf - rm -rf $pkgdir/usr/include + if [ -z "$FOR_CROSS" ]; then + install -d $pkgdir/usr/sbin + install -Dm755 ../../update-ca.sh $pkgdir/usr/sbin/update-ca + else + rm -rf $pkgdir/$PREFIX/bin + fi } -package_dev() { - cd $pkgname-$pkgver - make install_sw DESTDIR=$pkgdir - rm -rf $pkgdir/usr/bin +backup() { + return } license() { diff --git a/base/openssl/update-ca.sh b/base/openssl/update-ca.sh new file mode 100755 index 0000000..040c441 --- /dev/null +++ b/base/openssl/update-ca.sh @@ -0,0 +1,2 @@ +#!/bin/sh +curl -L https://curl.haxx.se/ca/cacert.pem -o /etc/ssl/cert.pem diff --git a/base/oslo/build.sh b/base/oslo/build.sh new file mode 100644 index 0000000..947c8f9 --- /dev/null +++ b/base/oslo/build.sh @@ -0,0 +1,39 @@ +pkgname=oslo +pkgver=main + +fetch() { + curl -L "https://github.com/iglunix/oslo/archive/refs/heads/main.tar.gz" -o $pkgname-$pkgver.tar.gz + tar -xf $pkgname-$pkgver.tar.gz +} + +build() { + cd $pkgname-$pkgver + make ARCH=$ARCH +} + +case $ARCH in + aarch64) + _a=aa64 + ;; + x86_64) + _a=x64 + ;; + *) + exit 1 + ;; +esac + +package() { + cd $pkgname-$pkgver + install -Dm755 oslo.efi $pkgdir/boot/efi/boot/boot$_a.efi + install -Dm644 efi/oslo/entries.ini $pkgdir/boot/efi/oslo/entries.ini +} + +license() { + cd $pkgname-$pkgver + cat license.txt +} + +backup() { + echo boot/efi/oslo/entries.ini +} diff --git a/base/perl/build.sh b/base/perl/build.sh index c346ec9..19fd417 100644 --- a/base/perl/build.sh +++ b/base/perl/build.sh @@ -1,8 +1,8 @@ pkgname=perl -pkgver=5.32.1 +pkgver=5.34.0 fetch() { - curl "https://www.cpan.org/src/5.0/perl-5.32.1.tar.gz" -o $pkgname-$pkgver.tar.xz + curl "https://www.cpan.org/src/5.0/perl-$pkgver.tar.gz" -o $pkgname-$pkgver.tar.xz tar -xf $pkgname-$pkgver.tar.xz } @@ -47,6 +47,10 @@ package() { rm -rf $pkgdir/usr/share/man } +backup() { + return +} + license() { cd $pkgname-$pkgver cat Copying diff --git a/base/python/build.sh b/base/python/build.sh index 3842b35..dcff112 100644 --- a/base/python/build.sh +++ b/base/python/build.sh @@ -1,7 +1,8 @@ pkgname=python -pkgver=3.9.6 +pkgver=3.10.4 bad="" ext="doc" +auto_cross fetch() { curl "https://www.python.org/ftp/python/$pkgver/Python-$pkgver.tar.xz" -o $pkgname-$pkgver.tar.xz @@ -10,28 +11,32 @@ fetch() { } build() { - cd $pkgname-$pkgver + cd $pkgname-$pkgver ./configure \ --prefix=/usr \ - --build=$TARGET \ - --host=$TARGET \ + --build=$HOST_TRIPLE \ + --host=$TRIPLE \ --with-system-ffi=true \ --with-ssl-default-suites=openssl \ - ax_cv_c_float_words_bigendian=no + --without-ensure-pip \ + ax_cv_c_float_words_bigendian=no \ + ac_cv_buggy_getaddrinfo=no \ + ac_cv_file__dev_ptmx=yes \ + ac_cv_file__dev_ptc=no make } package() { cd $pkgname-$pkgver make install DESTDIR=$pkgdir - rm -r $pkgdir/usr/lib/python3.9/test - rm -r $pkgdir/usr/lib/python3.9/ctypes/test - rm -r $pkgdir/usr/lib/python3.9/distutils/tests - rm -r $pkgdir/usr/lib/python3.9/idlelib/idle_test - rm -r $pkgidr/usr/lib/python3.9/lib2to3/tests - rm -r $pkgidr/usr/lib/python3.9/sqlite3/test - rm -r $pkgdir/usr/lib/python3.9/tkinter/test - rm -r $pkgdir/usr/lib/python3.9/unittest/test + rm -r $pkgdir/usr/lib/python3.10/test + rm -r $pkgdir/usr/lib/python3.10/ctypes/test + rm -r $pkgdir/usr/lib/python3.10/distutils/tests + rm -r $pkgdir/usr/lib/python3.10/idlelib/idle_test + rm -r $pkgidr/usr/lib/python3.10/lib2to3/tests + rm -r $pkgidr/usr/lib/python3.10/sqlite3/test + rm -r $pkgdir/usr/lib/python3.10/tkinter/test + rm -r $pkgdir/usr/lib/python3.10/unittest/test rm -r $pkgdir/usr/share ln -sr $pkgdir/usr/bin/python3 $pkgdir/usr/bin/python } diff --git a/base/rust/abyss-install-template-shebang.patch b/base/rust/abyss-install-template-shebang.patch deleted file mode 100644 index e81b579..0000000 --- a/base/rust/abyss-install-template-shebang.patch +++ /dev/null @@ -1,10 +0,0 @@ -The script seems to be POSIX-sh (+ local) compatible. - ---- a/src/tools/rust-installer/install-template.sh -+++ b/src/tools/rust-installer/install-template.sh -@@ -1,4 +1,4 @@ --#!/bin/bash -+#!/bin/sh - # Copyright 2014 The Rust Project Developers. See the COPYRIGHT - # file at the top-level directory of this distribution and at - # http://rust-lang.org/COPYRIGHT. diff --git a/base/rust/abyss-libunwind.patch b/base/rust/abyss-libunwind.patch deleted file mode 100644 index f581434..0000000 --- a/base/rust/abyss-libunwind.patch +++ /dev/null @@ -1,38 +0,0 @@ -diff --git a/library/unwind/build.rs b/library/unwind/build.rs -index 24bcd40c..51777664 100644 ---- a/library/unwind/build.rs -+++ b/library/unwind/build.rs -@@ -19,7 +19,7 @@ - } else if target.contains("linux") { - // linking for Linux is handled in lib.rs - if target.contains("musl") { -- llvm_libunwind::compile(); -+ println!("cargo:rustc-link-lib=unwind"); - } else if target.contains("android") { - let build = cc::Build::new(); -diff --git a/library/unwind/src/lib.rs b/library/unwind/src/lib.rs -index dbdefa47..dca1897b 100644 ---- a/library/unwind/src/lib.rs -+++ b/library/unwind/src/lib.rs -@@ -39,7 +39,7 @@ cfg_if::cfg_if! { - - #[cfg(target_env = "musl")] - #[link(name = "unwind", kind = "static", cfg(target_feature = "crt-static"))] --#[link(name = "gcc_s", cfg(not(target_feature = "crt-static")))] -+#[link(name = "unwind", cfg(not(target_feature = "crt-static")))] - extern "C" {} - - // When building with crt-static, we get `gcc_eh` from the `libc` crate, since -diff -Naur rustc-1.48.0-src.orig/src/bootstrap/dist.rs rustc-1.48.0-src/src/bootstrap/dist.rs ---- rustc-1.48.0-src.orig/src/bootstrap/dist.rs 2020-12-22 16:39:30.504249113 +0100 -+++ rustc-1.48.0-src/src/bootstrap/dist.rs 2020-12-22 16:42:08.663006830 +0100 -@@ -1016,7 +1016,7 @@ - copy_src_dirs( - builder, - &builder.src, -- &["library", "src/llvm-project/libunwind"], -+ &["library"], - &[ - // not needed and contains symlinks which rustup currently - // chokes on when unpacking. - diff --git a/base/rust/alpine-move-py.patch b/base/rust/alpine-move-py.patch deleted file mode 100644 index 21be36f..0000000 --- a/base/rust/alpine-move-py.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- a/src/etc/rust-gdb -+++ b/src/etc/rust-gdb -@@ -12,7 +12,7 @@ - - # Find out where the pretty printer Python module is - RUSTC_SYSROOT="$("$RUSTC" --print=sysroot)" --GDB_PYTHON_MODULE_DIRECTORY="$RUSTC_SYSROOT/lib/rustlib/etc" -+GDB_PYTHON_MODULE_DIRECTORY="$RUSTC_SYSROOT/share/rust/etc" - - # Run GDB with the additional arguments that load the pretty printers - # Set the environment variable `RUST_GDB` to overwrite the call to a - # Set the environment variable `RUST_GDB` to overwrite the call to a ---- a/src/etc/rust-lldb -+++ b/src/etc/rust-lldb -@@ -8,7 +8,7 @@ - - # Find out where to look for the pretty printer Python module - RUSTC_SYSROOT=$(rustc --print sysroot) --RUST_LLDB="$RUSTC_SYSROOT/lib/rustlib/$host/bin/lldb" -+RUST_LLDB="$RUSTC_SYSROOT/share/rust/etc" - - lldb=lldb - if [ -f "$RUST_LLDB" ]; then diff --git a/base/rust/libressl.patch b/base/rust/libressl.patch deleted file mode 100644 index c21b5e5..0000000 --- a/base/rust/libressl.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/vendor/openssl-sys/build/main.rs -+++ b/vendor/openssl-sys/build/main.rs -@@ -232,6 +232,7 @@ - (3, 2, _) => ('3', '2', 'x'), - (3, 3, 0) => ('3', '3', '0'), - (3, 3, 1) => ('3', '3', '1'), -+ (3, 3, 2) => ('3', '3', '2'), - _ => version_error(), - }; - diff --git a/base/rust/vendored-ssl.patch b/base/rust/vendored-ssl.patch deleted file mode 100644 index a72f51a..0000000 --- a/base/rust/vendored-ssl.patch +++ /dev/null @@ -1,65 +0,0 @@ ---- a/vendor/openssl-sys/Cargo.toml -+++ b/vendor/openssl-sys/Cargo.toml -@@ -33,12 +33,11 @@ - - [build-dependencies.openssl-src] - version = "111.0.1" --optional = true - - [build-dependencies.pkg-config] - version = "0.3.9" - - [features] --vendored = ["openssl-src"] -+vendored = [] - [target."cfg(target_env = \"msvc\")".build-dependencies.vcpkg] - version = "0.2.8" -Only in ../../rust-1.49.0/vendor/openssl-sys: Cargo.toml.1 ---- a/vendor/openssl-sys/build/main.rs -+++ b/vendor/openssl-sys/build/main.rs -@@ -2,7 +2,6 @@ - - extern crate autocfg; - extern crate cc; --#[cfg(feature = "vendored")] - extern crate openssl_src; - extern crate pkg_config; - #[cfg(target_env = "msvc")] -@@ -16,7 +15,6 @@ - mod cfgs; - - mod find_normal; --#[cfg(feature = "vendored")] - mod find_vendored; - - enum Version { -@@ -44,15 +42,14 @@ - } - - fn find_openssl(target: &str) -> (PathBuf, PathBuf) { -- #[cfg(feature = "vendored")] - { - // vendor if the feature is present, unless - // OPENSSL_NO_VENDOR exists and isn't `0` -- if env("OPENSSL_NO_VENDOR").map_or(true, |s| s == "0") { -+ //if env("OPENSSL_NO_VENDOR").map_or(true, |s| s == "0") { - return find_vendored::get_openssl(target); -- } -+ //} - } -- find_normal::get_openssl(target) -+ //find_normal::get_openssl(target) - } - - fn main() { ---- a/vendor/openssl-src/src/lib.rs -+++ b/vendor/openssl-src/src/lib.rs -@@ -58,7 +58,7 @@ - { - Command::new("gmake") - } else { -- Command::new("make") -+ Command::new("gmake") - } - } - diff --git a/base/samurai/build.sh b/base/samurai/build.sh index 283208a..2e89749 100644 --- a/base/samurai/build.sh +++ b/base/samurai/build.sh @@ -1,6 +1,7 @@ pkgver=1.2 pkgname=samurai pkgrel=1 +auto_cross fetch() { curl -L "http://github.com/michaelforney/samurai/releases/download/1.2/$pkgname-$pkgver.tar.gz" -o $pkgname-$pkgver.tar.gz @@ -9,7 +10,7 @@ fetch() { build() { cd $pkgname-$pkgver - samu + make LDFLAGS="$LDFLAGS" } package() { @@ -22,3 +23,7 @@ license() { cd $pkgname-$pkgver cat LICENSE } + +backup() { + return +} diff --git a/base/toybox/build.sh b/base/toybox/build.sh index 62eb73b..884e915 100644 --- a/base/toybox/build.sh +++ b/base/toybox/build.sh @@ -1,32 +1,36 @@ -pkgver=0.8.5 +pkgver=0.8.7 pkgname=toybox pkgrel=1 -deps="musl:pci-ids" +deps="musl" fetch() { - curl "http://www.landley.net/toybox/downloads/$pkgname-$pkgver.tar.gz" -o $pkgname-$pkgver.tar.gz + curl -O "https://landley.net/toybox/downloads/toybox-$pkgver.tar.gz" tar -xf $pkgname-$pkgver.tar.gz + curl "https://pci-ids.ucw.cz/v2.2/pci.ids" -o pci.ids cd $pkgname-$pkgver patch -p1 < ../../ls-colour.patch - patch -p1 < ../../mksh-make.patch + patch -p1 < ../../mksh.patch + patch -p1 < ../../xxd-i.patch } build() { cd $pkgname-$pkgver - CPUS=1 gmake defconfig - CPUS=1 gmake + CPUS=1 bad --gmake gmake defconfig + sed 's|# CONFIG_SH is not set|CONFIG_SH=y|' .config > /tmp/_ + mv /tmp/_ .config + CPUS=1 bad --gmake gmake +} + +backup() { + return } package() { + install -d $pkgdir/usr/share/misc + install -Dm 644 pci.ids $pkgdir/usr/share/misc + cd $pkgname-$pkgver -# install -d $pkgdir/bin -# install -Dm755 ./toybox $pkgdir/bin/ -# ln -sr $pkgdir/bin/toybox $pkgdir/bin/ln -# ln -sr $pkgdir/bin/toybox $pkgdir/bin/uname -# install -d $pkgdir/usr/bin -# ln -sr $pkgdir/bin/toybox $pkgdir/usr/bin/install -# ln -sr $pkgdir/bin/toybox $pkgdir/usr/bin/lspci - gmake PREFIX=$pkgdir install + bad --gmake gmake PREFIX=$pkgdir install # Provided by NetBSD Curses rm $pkgdir/usr/bin/clear @@ -35,6 +39,10 @@ package() { # LLVM Provides this rm $pkgdir/usr/bin/readelf # rm $pkgdir/usr/bin/tar + + # MKSH provides this + rm $pkgdir/bin/sh + rm $pkgdir/bin/bash } license() { diff --git a/base/toybox/lspci-fix-ids.patch b/base/toybox/lspci-fix-ids.patch new file mode 100644 index 0000000..04694a8 --- /dev/null +++ b/base/toybox/lspci-fix-ids.patch @@ -0,0 +1,55 @@ +--- a/toys/other/lspci.c ++++ b/toys/other/lspci.c +@@ -78,18 +78,45 @@ + + fseek(TT.db, 0, SEEK_SET); + while (!vbig || !dbig) { ++ int tc = 0; // tab count + s = p; + if (!fgets(s, sizeof(toybuf)-(p-toybuf)-1, TT.db)) break; +- while (isspace(*s)) s++; ++ while (*s == ' ') s++; + if (*s == '#') continue; +- if (vbig && s == p) break; +- if (strstart(&s, vbig ? device : vendor)) { +- if (vbig) dbig = s+2; +- else vbig = s+2; +- s += strlen(s); +- s[-1] = 0; // trim ending newline +- p = s + 1; ++ while (*s == '\t') { s++; tc++; } ++ switch (tc) { ++ case 0: ++ if (strstart(&s, vendor)) { ++ vbig = s + 2; ++ s += strlen(s); ++ s[-1] = 0; ++ p = s + 1; ++ } ++ break; ++ case 1: ++ if (vbig && strstart(&s, device)) { ++ dbig = s + 2; ++ s += strlen(s); ++ s[-1] = 0; ++ p = s + 1; ++ } ++ break; ++ case 2: ++ if (strstart(&s, vendor)) { ++ s+=5; ++ if (strstart(&s, device)) ++ printf("subven: %s\n", s); ++ } ++ break; + } ++ ++ // if (strstart(&s, vbig ? device : vendor)) { ++ // if (vbig) dbig = s+2; ++ // else vbig = s+2; ++ // s += strlen(s); ++ // s[-1] = 0; // trim ending newline ++ // p = s + 1; ++ // } + } + } diff --git a/base/toybox/mksh-make.patch b/base/toybox/mksh-make.patch deleted file mode 100644 index ddd6241..0000000 --- a/base/toybox/mksh-make.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/scripts/make.sh b/scripts/make.sh -index 5b2d5d81..2c5e4b93 100755 ---- a/scripts/make.sh -+++ b/scripts/make.sh -@@ -106,8 +106,7 @@ genbuildsh() - echo '$BUILD $FILES $LINK' - } - --if ! cmp -s <(genbuildsh 2>/dev/null | head -n 6 ; echo LINK="'"$LDOPTIMIZE $LDFLAGS) \ -- <(head -n 7 generated/build.sh 2>/dev/null | $SED '7s/ -o .*//') -+if [ "$(genbuildsh 2>/dev/null | head -n 6 ; echo LINK="'"$LDOPTIMIZE $LDFLAGS)" != "$(head -n 7 generated/build.sh 2>/dev/null | $SED '7s/ -o .*//')" ] - then - echo -n "Library probe" - diff --git a/base/toybox/mksh.patch b/base/toybox/mksh.patch new file mode 100644 index 0000000..16fe711 --- /dev/null +++ b/base/toybox/mksh.patch @@ -0,0 +1,35 @@ +--- a/scripts/genconfig.sh ++++ b/scripts/genconfig.sh +@@ -16,7 +16,7 @@ + # Symbol name is first argument, flags second, feed C file to stdin + probesymbol() + { +- probecc "${@:2}" 2>/dev/null && DEFAULT=y || DEFAULT=n ++ probecc "$2" 2>/dev/null && DEFAULT=y || DEFAULT=n + rm a.out 2>/dev/null + echo -e "config $1\n\tbool\n\tdefault $DEFAULT\n" || exit 1 + } +--- a/scripts/portability.sh ++++ b/scripts/portability.sh +@@ -35,7 +35,7 @@ + fi + + # Centos 7 bug workaround, EOL June 30 2024. TODO +-DASHN=-n; wait -n 2>/dev/null; [ $? -eq 2 ] && unset DASHN ++# DASHN=-n; wait -n 2>/dev/null; [ $? -eq 2 ] && unset DASHN + + # If the build is using gnu tools, make them behave less randomly. + export LANG=c +--- a/scripts/make.sh ++++ b/scripts/make.sh +@@ -76,8 +76,8 @@ + echo -e "\$BUILD lib/*.c $TOYFILES \$LINK -o $OUTNAME" + } + +-if ! cmp -s <(genbuildsh 2>/dev/null | head -n 5) \ +- <(head -n 5 "$GENDIR"/build.sh 2>/dev/null | $SED '5s/ -o .*//') ++if [ "$(genbuildsh 2>/dev/null | head -n 5)" != \ ++ "$(head -n 5 "$GENDIR"/build.sh 2>/dev/null | $SED '5s/ -o .*//')" ] + then + echo -n "Library probe" + diff --git a/base/toybox/xxd-i.patch b/base/toybox/xxd-i.patch new file mode 100644 index 0000000..fb1bc77 --- /dev/null +++ b/base/toybox/xxd-i.patch @@ -0,0 +1,46 @@ +--- a/toys/other/xxd.c ++++ b/toys/other/xxd.c +@@ -77,11 +77,13 @@ static void do_xxd(int fd, char *name) + + static void do_xxd_include(int fd, char *name) + { ++ long long total = 0; + int c = 1, i, len; + + // The original xxd outputs a header/footer if given a filename (not stdin). + // We don't, which means that unlike the original we can implement -ri. + while ((len = read(fd, toybuf, sizeof(toybuf))) > 0) { ++ total += len; + for (i = 0; i < len; ++i) { + printf("%s%#.02x", c > 1 ? ", " : " ", toybuf[i]); + if (c++ == TT.c) { +--- a/toys/other/xxd.c ++++ b/toys/other/xxd.c +@@ -80,7 +80,12 @@ + int c = 1, i, len; + + // The original xxd outputs a header/footer if given a filename (not stdin). +- // We don't, which means that unlike the original we can implement -ri. ++ // We don't, which means that unlike the original we can implement -ri ++ printf("unsigned char %s", isdigit(name[0]) ? "__": ""); ++ for (char *n = name; *n; n++) ++ putchar(*n == '.' ? '_' : *n); ++ puts("[] = {"); ++ + while ((len = read(fd, toybuf, sizeof(toybuf))) > 0) { + total += len; + for (i = 0; i < len; ++i) { +@@ -91,6 +96,13 @@ + } + } + } ++ puts("};"); ++ printf("unsigned int %s", isdigit(name[0]) ? "__": ""); ++ for (char *n = name; *n; n++) ++ putchar(*n == '.' ? '_' : *n); ++ ++ printf("_len = %lld;\n", total); ++ + if (len < 0) perror_msg_raw(name); + if (c > 1) xputc('\n'); + } diff --git a/base/wpa_supplicant/build.sh b/base/wpa_supplicant/build.sh index 1eb62b0..c2efaf7 100644 --- a/base/wpa_supplicant/build.sh +++ b/base/wpa_supplicant/build.sh @@ -25,7 +25,7 @@ build() { package() { cd $pkgname-$pkgver cd $pkgname - gmake install DESTDIR=$pkgdir BINDIR=/usr/sbin + bad --gmake gmake install DESTDIR=$pkgdir BINDIR=/usr/sbin } license() { diff --git a/base/zlib-ng/build.sh b/base/zlib-ng/build.sh index f41c715..3193081 100644 --- a/base/zlib-ng/build.sh +++ b/base/zlib-ng/build.sh @@ -10,12 +10,21 @@ fetch() { build() { cd $pkgname-$pkgver cd build + + PREFIX=/usr + + [ -z "$WITH_CROSS" ] || cmake_extra_flags="-DCMAKE_CROSSCOMPILING=ON \ + -DCMAKE_SYSROOT=$WITH_CROSS_DIR \ + -DCMAKE_C_COMPILER_TARGET=$ARCH-linux-musl" + [ -z "$FOR_CROSS" ] || PREFIX=$FOR_CROSS_DIR + cmake -G Ninja ../ \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ -DCMAKE_INSTALL_LIBDIR=lib \ - -DZLIB_COMPAT=ON - + -DZLIB_COMPAT=ON \ + $cmake_extra_flags + samu } @@ -29,3 +38,7 @@ license() { cd $pkgname-$pkgver cat LICENSE.md } + +backup() { + return +} diff --git a/base/zstd/build.sh b/base/zstd/build.sh index f0872bb..fd9e28d 100644 --- a/base/zstd/build.sh +++ b/base/zstd/build.sh @@ -1,5 +1,6 @@ pkgname=zstd -pkgver=1.5.0 +pkgver=1.5.2 +auto_cross fetch() { curl -L "https://github.com/facebook/zstd/releases/download/v$pkgver/zstd-$pkgver.tar.gz" -o $pkgname-$pkgver.tar.xz @@ -9,12 +10,12 @@ fetch() { build() { cd $pkgname-$pkgver - gmake + bad --gmake gmake } package() { cd $pkgname-$pkgver - gmake install PREFIX=/usr DESTDIR=$pkgdir + bad --gmake gmake install PREFIX=/usr DESTDIR=$pkgdir } license() { @@ -22,3 +23,7 @@ license() { cat LICENSE # cat COPYING } + +backup() { + return +} diff --git a/bootstrap/README.md b/bootstrap/README.md new file mode 100644 index 0000000..36853bf --- /dev/null +++ b/bootstrap/README.md @@ -0,0 +1,3 @@ +# Bootstrap +These packages are not meant to be used in a complete Iglunix system but are +ment as a stepping stone to build the full packages. diff --git a/bootstrap/rust/build.sh b/bootstrap/rust/build.sh new file mode 100644 index 0000000..1a08efd --- /dev/null +++ b/bootstrap/rust/build.sh @@ -0,0 +1,33 @@ +pkgname=rust +pkgver=beta + +fetch() { + curl "https://static.rust-lang.org/dist/rust-$pkgver-$ARCH-unknown-linux-musl.tar.gz" -o rust.tar.gz + tar -xf rust.tar.gz +} + +build() { + [ -f libgcc_s.so ] \ + || clang -shared -o libgcc_s.so \ + -Wl,--allow-multiple-definition -Wl,--whole-archive \ + $(clang -print-libgcc-file-name) -lunwind +} + +package() { + [ -f $pkgdir/opt/rust/lib/rustlib/uninstall.sh ] \ + || ./rust-$pkgver-$ARCH-unknown-linux-musl/install.sh \ + --disable-ldconfig \ + --destdir=$pkgdir \ + --prefix=/opt/rust + + [ -f $pkgdir/opt/rust/lib/libgcc_s.so.1 ] \ + || cp ./libgcc_s.so $pkgdir/opt/rust/lib/libgcc_s.so.1 +} + +backup() { + return +} + +license() { + return +} diff --git a/extra/autossh/build.sh b/extra/autossh/build.sh new file mode 100644 index 0000000..a4473d3 --- /dev/null +++ b/extra/autossh/build.sh @@ -0,0 +1,34 @@ +pkgname=autossh +pkgver=1.4g + +fetch() { + curl "https://www.harding.motd.ca/autossh/autossh-$pkgver.tgz" -LO + tar -xf $pkgname-$pkgver.tgz +} + +build() { + cd $pkgname-$pkgver + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --build=$TRIPLE \ + --host=$TRIPLE + + make +} + +package() { + cd $pkgname-$pkgver + make install DESTDIR=$pkgdir +} + +backup() { + return +} + +license() { + cd $pkgname-$pkgver + cat LICENSE +# cat COPYING +} diff --git a/extra/distcc/build.sh b/extra/distcc/build.sh index 8a82dd2..eddca3e 100644 --- a/extra/distcc/build.sh +++ b/extra/distcc/build.sh @@ -15,12 +15,12 @@ build() { --host=x86_64-unknown-linux-musl \ --without-libiberty - gmake + bad --gmake gmake } package() { cd $pkgname-$pkgver - gmake install DESTDIR=$pkgdir + bad --gmake gmake install DESTDIR=$pkgdir install -d $pkgdir/usr/lib/distcc ln -sr $pkgdir/usr/bin/distcc $pkgdir/usr/lib/distcc/cc diff --git a/pkgs/exa/build.sh b/extra/exa/build.sh similarity index 100% rename from pkgs/exa/build.sh rename to extra/exa/build.sh diff --git a/pkgs/extra-cmake-modules/build.sh b/extra/extra-cmake-modules/build.sh similarity index 100% rename from pkgs/extra-cmake-modules/build.sh rename to extra/extra-cmake-modules/build.sh diff --git a/base/go/build.sh b/extra/go/build.sh similarity index 100% rename from base/go/build.sh rename to extra/go/build.sh diff --git a/pkgs/heirloom-doctools/build.sh b/extra/heirloom-doctools/build.sh similarity index 84% rename from pkgs/heirloom-doctools/build.sh rename to extra/heirloom-doctools/build.sh index d38e9d0..bece1b7 100644 --- a/pkgs/heirloom-doctools/build.sh +++ b/extra/heirloom-doctools/build.sh @@ -15,18 +15,18 @@ fetch() { build() { cd $pkgname-$pkgver ./configure - gmake + bad --gmake gmake } package() { cd $pkgname-$pkgver - gmake install ROOT=$pkgdir + bad --gmake gmake install ROOT=$pkgdir rm -r $pkgdir/usr/share } package_doc() { cd $pkgname-$pkgver - gmake install ROOT=$pkgdir + bad --gmake gmake install ROOT=$pkgdir rm -r $pkgdir/usr/lib rm -r $pkgdir/usr/bin } diff --git a/pkgs/heirloom-doctools/mk.config b/extra/heirloom-doctools/mk.config similarity index 100% rename from pkgs/heirloom-doctools/mk.config rename to extra/heirloom-doctools/mk.config diff --git a/extra/json-c/build.sh b/extra/json-c/build.sh new file mode 100644 index 0000000..5a15c94 --- /dev/null +++ b/extra/json-c/build.sh @@ -0,0 +1,30 @@ +pkgname=json-c +pkgver=0.15 + +fetch() { + curl -L "https://s3.amazonaws.com/json-c_releases/releases/json-c-$pkgver.tar.gz" -o $pkgname-$pkgver.tar.xz + tar -xf $pkgname-$pkgver.tar.xz + mkdir $pkgname-$pkgver/build +} + +build() { + cd $pkgname-$pkgver + cd build + cmake -G Ninja ../ \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=lib + samu +} + +package() { + cd $pkgname-$pkgver + cd build + DESTDIR=$pkgdir samu install +} + +license() { + cd $pkgname-$pkgver + cat LICENSE +# cat COPYING +} diff --git a/base/libexecinfo/build.sh b/extra/libexecinfo/build.sh similarity index 100% rename from base/libexecinfo/build.sh rename to extra/libexecinfo/build.sh diff --git a/extra/libxml2/build.sh b/extra/libxml2/build.sh index e92fd15..ce6120b 100644 --- a/extra/libxml2/build.sh +++ b/extra/libxml2/build.sh @@ -11,17 +11,17 @@ fetch() { build() { cd $pkgname-$pkgver ./configure --prefix=/usr --without-python - gmake + bad --gmake gmake } package() { cd $pkgname-$pkgver - gmake install DESTDIR=$pkgdir + bad --gmake gmake install DESTDIR=$pkgdir } package_dev() { cd $pkgname-$pkgver - gmake install DESTDIR=$pkgdir + bad --gmake gmake install DESTDIR=$pkgdir } license() { diff --git a/extra/lynx/build.sh b/extra/lynx/build.sh index dad99b4..5f0f2d6 100644 --- a/extra/lynx/build.sh +++ b/extra/lynx/build.sh @@ -16,12 +16,12 @@ build() { --build=x86_64-unknown-linux-musl \ --host=x86_64-unknown-linux-musl - gmake + bad --gmake gmake } package() { cd $pkgname-$pkgver - gmake install DESTDIR=$pkgdir + bad --gmake gmake install DESTDIR=$pkgdir } license() { diff --git a/extra/mold/build.sh b/extra/mold/build.sh index 38e0d09..8e42f09 100644 --- a/extra/mold/build.sh +++ b/extra/mold/build.sh @@ -11,12 +11,12 @@ fetch() { build() { cd $pkgname-$pkgver - gmake + bad --gmake gmake } package() { cd $pkgname-$pkgver - gmake install DESTDIR=$pkgdir + bad --gmake gmake install DESTDIR=$pkgdir ln -sr $pkgdir/usr/bin/mold $pkgdir/usr/bin/ld.mold } diff --git a/extra/nodejs/build.sh b/extra/nodejs/build.sh new file mode 100644 index 0000000..8e54976 --- /dev/null +++ b/extra/nodejs/build.sh @@ -0,0 +1,38 @@ +pkgname=nodejs +pkgver=16.6.1 + +fetch() { + curl -L "https://nodejs.org/dist/v$pkgver/node-v$pkgver.tar.gz" -o $pkgname-$pkgver.tar.xz + tar -xf $pkgname-$pkgver.tar.xz + mv node-v$pkgver $pkgname-$pkgver + cd $pkgname-$pkgver + sed -i 's/-latomic//' node.gyp +} + +build() { + cd $pkgname-$pkgver + ./configure \ + --shared-zlib \ + --shared-openssl \ + --with-intl=none \ + --without-etw \ + --without-dtrace \ + --without-report \ + --without-node-snapshot \ + --without-node-code-cache \ + --ninja + + samu -C out/Release +} + +package() { + cd $pkgname-$pkgver + + ./tools/install.py install $pkgdir /usr +} + +license() { + cd $pkgname-$pkgver + cat LICENSE +# cat COPYING +} diff --git a/extra/nodejs/remove-latomic.patch b/extra/nodejs/remove-latomic.patch new file mode 100644 index 0000000..81e2f69 --- /dev/null +++ b/extra/nodejs/remove-latomic.patch @@ -0,0 +1,27 @@ +From 8dbc49deefb50f4af05710d3e6ad1ca7ff6dbfac Mon Sep 17 00:00:00 2001 +From: Ishimoto Shinobu +Date: Sun, 21 Feb 2021 09:43:21 +0900 +Subject: [PATCH] remove -latomic library + +Signed-off-by: Ishimoto Shinobu +--- + node.gyp | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/node.gyp b/node.gyp +index 131461de..051d2816 100644 +--- a/node.gyp ++++ b/node.gyp +@@ -343,9 +343,6 @@ + '-Wl,-bnoerrmsg', + ], + }], +- ['OS == "linux" and llvm_version != "0.0"', { +- 'libraries': ['-latomic'], +- }], + ], + }, + +-- +2.29.2 + diff --git a/base/openpam/build.sh b/extra/openpam/build.sh similarity index 100% rename from base/openpam/build.sh rename to extra/openpam/build.sh diff --git a/extra/flex/build.sh b/extra/pcre/build.sh similarity index 67% rename from extra/flex/build.sh rename to extra/pcre/build.sh index 39472bb..52b52e2 100644 --- a/extra/flex/build.sh +++ b/extra/pcre/build.sh @@ -1,8 +1,8 @@ -pkgname=flex -pkgver=2.6.4 +pkgname=pcre +pkgver=8.45 fetch() { - curl -L "https://github.com/westes/flex/releases/download/v2.6.4/flex-$pkgver.tar.gz" -o $pkgname-$pkgver.tar.gz + curl "https://ftp.pcre.org/pub/pcre/pcre-$pkgver.tar.gz" -o $pkgname-$pkgver.tar.gz tar -xf $pkgname-$pkgver.tar.gz } @@ -21,6 +21,10 @@ package() { make install DESTDIR=$pkgdir } +backup() { + return +} + license() { cd $pkgname-$pkgver cat LICENSE diff --git a/extra/pcre2/build.sh b/extra/pcre2/build.sh new file mode 100644 index 0000000..c853b18 --- /dev/null +++ b/extra/pcre2/build.sh @@ -0,0 +1,31 @@ +pkgname=pcre2 +pkgver=10.39 + +fetch() { + curl -L "https://github.com/PhilipHazel/pcre2/releases/download/pcre2-10.39/pcre2-$pkgver.tar.bz2" -o $pkgname-$pkgver.tar.gz + tar -xf $pkgname-$pkgver.tar.gz +} + +build() { + cd $pkgname-$pkgver + ./configure \ + --prefix=/usr \ + --build=$TRIPLE \ + --host=$TRIPLE + + make +} + +package() { + cd $pkgname-$pkgver + make install DESTDIR=$pkgdir +} + +backup() { + return +} + +license() { + cd $pkgname-$pkgver + cat COPYING +} diff --git a/base/pfetch/build.sh b/extra/pfetch/build.sh similarity index 100% rename from base/pfetch/build.sh rename to extra/pfetch/build.sh diff --git a/base/rust/alpine-crt.patch b/extra/rust/alpine-crt.patch similarity index 100% rename from base/rust/alpine-crt.patch rename to extra/rust/alpine-crt.patch diff --git a/base/rust/build.sh b/extra/rust/build.sh similarity index 82% rename from base/rust/build.sh rename to extra/rust/build.sh index cd47012..035774d 100644 --- a/base/rust/build.sh +++ b/extra/rust/build.sh @@ -21,8 +21,7 @@ _clear_vendor_checksums() { sed -i 's/\("files":{\)[^}]*/\1/' vendor/$1/.cargo-checksum.json } -# export RUSTROOT="/usr" -export RUSTROOT="/usr/src/rust-bootstrap/build/rust-root" +export RUSTROOT="/opt/rust/" fetch() { curl "https://static.rust-lang.org/dist/rustc-$pkgver-src.tar.gz" -o $pkgname-$pkgver.tar.xz @@ -33,38 +32,30 @@ fetch() { cp ../*.patch . cd $pkgname-$pkgver - patch -p1 < ../alpine-move-py.patch - patch -p1 < ../abyss-install-template-shebang.patch patch -p1 < ../alpine-crt.patch patch -p1 < ../libexec.patch - patch -p1 < ../llvm_crt.patch - patch -p1 < ../unfreeze.patch - patch -p1 < ../libresslssl.patch + patch -p1 < ../fix-curl.patch sed -i /LD_LIBRARY_PATH/d src/bootstrap/bootstrap.py - _clear_vendor_checksums libc - _clear_vendor_checksums openssl-sys - _clear_vendor_checksums openssl-src - _clear_vendor_checksums openssl - - cd .. + _clear_vendor_checksums curl + _clear_vendor_checksums curl-sys } build() { cd $pkgname-$pkgver - + # --tools="cargo,rls,rustfmt,src" \ OPENSSL_LIB_DIR=/usr/lib/ ./configure \ --build="$TRIPLE" \ --host="$TRIPLE" \ --target="$TRIPLE" \ --prefix="/usr" \ --musl-root="/usr" \ - --release-channel="beta" \ + --release-channel="nightly" \ --enable-local-rust \ --local-rust-root=$RUSTROOT \ --disable-docs \ --enable-extended \ - --tools="cargo,rls,rustfmt,src" \ + --tools="cargo,rustfmt,rls,src" \ --enable-vendor \ --disable-locked-deps \ --enable-option-checking \ @@ -84,7 +75,8 @@ build() { --set="target.$TRIPLE.cc=cc" \ --set="target.$TRIPLE.cxx=c++" \ --set="target.$TRIPLE.ar=ar" \ - --set="target.$TRIPLE.linker=cc" + --set="target.$TRIPLE.linker=cc" \ + --disable-llvm-static-stdcpp sed 's/#deny-warnings = .*/deny-warnings = false/' -i config.toml # sed 's|deny(warnings,|deny(|' -i src/bootstrap/lib.rs @@ -97,6 +89,10 @@ package() { DESTDIR="$pkgdir" ./x.py install } +backup() { + return +} + license() { cd $pkgname-$pkgver cat LICENSE-MIT diff --git a/extra/rust/fix-curl.patch b/extra/rust/fix-curl.patch new file mode 100644 index 0000000..3e9e182 --- /dev/null +++ b/extra/rust/fix-curl.patch @@ -0,0 +1,13 @@ +diff --git a/vendor/curl-sys/build.rs b/vendor/curl-sys/build.rs +index 24475cc..3249440 100644 +--- a/vendor/curl-sys/build.rs ++++ b/vendor/curl-sys/build.rs +@@ -111,6 +111,8 @@ fn main() { + .include("curl/lib") + .include("curl/include") + .define("BUILDING_LIBCURL", None) ++ .define("CURL_CA_BUNDLE", "\"/etc/ssl/cert.pem\"") ++ .define("CURL_CA_PATH", "\"/etc/ssl/certs\"") + .define("CURL_DISABLE_DICT", None) + .define("CURL_DISABLE_GOPHER", None) + .define("CURL_DISABLE_IMAP", None) diff --git a/base/rust/libexec.patch b/extra/rust/libexec.patch similarity index 100% rename from base/rust/libexec.patch rename to extra/rust/libexec.patch diff --git a/base/rust/llvm_crt.patch b/extra/rust/llvm_crt.patch similarity index 100% rename from base/rust/llvm_crt.patch rename to extra/rust/llvm_crt.patch diff --git a/base/rust/unfreeze.patch b/extra/rust/unfreeze.patch similarity index 100% rename from base/rust/unfreeze.patch rename to extra/rust/unfreeze.patch diff --git a/gui/sqlite/build.sh b/extra/sqlite/build.sh similarity index 100% rename from gui/sqlite/build.sh rename to extra/sqlite/build.sh diff --git a/extra/xxhash/build.sh b/extra/xxhash/build.sh index 62d3a88..76758b3 100644 --- a/extra/xxhash/build.sh +++ b/extra/xxhash/build.sh @@ -10,12 +10,12 @@ fetch() { build() { cd $pkgname-$pkgver - gmake PREFIX=/usr + bad --gmake gmake PREFIX=/usr } package() { cd $pkgname-$pkgver - gmake install PREFIX=/usr DESTDIR=$pkgdir + bad --gmake gmake install PREFIX=/usr DESTDIR=$pkgdir } license() { diff --git a/extra/yasm/build.sh b/extra/yasm/build.sh new file mode 100644 index 0000000..5c7e6bd --- /dev/null +++ b/extra/yasm/build.sh @@ -0,0 +1,32 @@ +pkgname=yasm +pkgver=1.3.0 + +fetch() { + curl -L "https://github.com/yasm/yasm/releases/download/v$pkgver/yasm-$pkgver.tar.gz" -o $pkgname-$pkgver.tar.xz + tar -xf $pkgname-$pkgver.tar.xz +} + +build() { + cd $pkgname-$pkgver + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + # --build=$TRIPLE \ + # --host=$TRIPLE + + make +} + +package() { + cd $pkgname-$pkgver + make install DESTDIR=$pkgdir +} + +backup() { + return +} + +license() { + cd $pkgname-$pkgver + cat COPYING +} diff --git a/base/zig/build.sh b/extra/zig/build.sh similarity index 100% rename from base/zig/build.sh rename to extra/zig/build.sh diff --git a/base/zig/llvm-req-arch.patch b/extra/zig/llvm-req-arch.patch similarity index 100% rename from base/zig/llvm-req-arch.patch rename to extra/zig/llvm-req-arch.patch diff --git a/extra/zip/build.sh b/extra/zip/build.sh new file mode 100644 index 0000000..f641c3b --- /dev/null +++ b/extra/zip/build.sh @@ -0,0 +1,29 @@ +pkgname=zip +pkgver=30 + +fetch() { + curl "https://fossies.org/linux/misc/zip$pkgver.tar.gz" -o $pkgname-$pkgver.tar.xz + tar -xf $pkgname-$pkgver.tar.xz + mv zip$pkgver $pkgname-$pkgver +} + +build() { + cd $pkgname-$pkgver + + make -f unix/Makefile generic +} + +package() { + cd $pkgname-$pkgver + make -f unix/Makefile install prefix=$pkgdir/usr +} + +backup() { + return +} + +license() { + cd $pkgname-$pkgver + cat LICENSE +# cat COPYING +} diff --git a/gnome/atk/build.sh b/gnome/atk/build.sh new file mode 100644 index 0000000..1ce45d4 --- /dev/null +++ b/gnome/atk/build.sh @@ -0,0 +1,36 @@ +pkgname=atk +_pkgver=2.36 +pkgver=$_pkgver.0 + +fetch() { + curl -L "https://download.gnome.org/sources/atk/$_pkgver/atk-$pkgver.tar.xz" -o $pkgname-$pkgver.tar.xz + tar -xf $pkgname-$pkgver.tar.xz + mkdir $pkgname-$pkgver/build +} + +build() { + cd $pkgname-$pkgver + cd build + meson .. \ + --buildtype=release \ + --prefix=/usr \ + --libexecdir=lib \ + -Dintrospection=false \ + -Ddocs=false + samu +} + +package() { + cd $pkgname-$pkgver + cd build + DESTDIR=$pkgdir samu install +} + +backup() { + return +} + +license() { + cd $pkgname-$pkgver + cat COPYING +} diff --git a/gnome/dbus-glib/build.sh b/gnome/dbus-glib/build.sh new file mode 100644 index 0000000..e271505 --- /dev/null +++ b/gnome/dbus-glib/build.sh @@ -0,0 +1,36 @@ +pkgname=dbus-glib +pkgver=0.112 + +fetch() { + curl "https://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-$pkgver.tar.gz" -o $pkgname-$pkgver.tar.gz + tar -xf $pkgname-$pkgver.tar.gz + mkdir $pkgname-$pkgver/build +} + +build() { + cd $pkgname-$pkgver + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --build=$TRIPLE \ + --host=$TRIPLE + + bad --gmake gmake +} + +package() { + cd $pkgname-$pkgver + bad --gmake gmake install DESTDIR=$pkgdir + rm -rf $pkgdir/etc + rm -rf $pkgdir/usr/libexec + rm -rf $pkgdir/usr/share/gtk-doc +} + +license() { + cd $pkgname-$pkgver + cat COPYING +} + +backup() { + return +} diff --git a/gnome/gdk-pixbuf/build.sh b/gnome/gdk-pixbuf/build.sh new file mode 100644 index 0000000..cd5f891 --- /dev/null +++ b/gnome/gdk-pixbuf/build.sh @@ -0,0 +1,45 @@ +pkgname=gdk-pixbuf +_pkgver=2.42 +pkgver=$_pkgver.6 + +fetch() { + curl -L "https://download.gnome.org/sources/gdk-pixbuf/$_pkgver/gdk-pixbuf-$pkgver.tar.xz" -o $pkgname-$pkgver.tar.xz + tar -xf $pkgname-$pkgver.tar.xz + mkdir $pkgname-$pkgver/build + rm $pkgdir-$pkgver/subprojects/*.wrap +} + +build() { + cd $pkgname-$pkgver + cd build + meson .. \ + --buildtype=release \ + --prefix=/usr \ + --libexecdir=lib \ + -Ddebug=false \ + -Djpeg=true \ + -Dpng=true \ + -Dtiff=false \ + -Ddocs=false \ + -Dman=false \ + -Dgio_sniffing=false \ + -Dinstalled_tests=false \ + -Dbuiltin_loaders=all + samu +} + +package() { + cd $pkgname-$pkgver + cd build + DESTDIR=$pkgdir samu install +} + +backup() { + return +} + +license() { + cd $pkgname-$pkgver + cat LICENSE +# cat COPYING +} diff --git a/gnome/glib/build.sh b/gnome/glib/build.sh new file mode 100644 index 0000000..d088f4a --- /dev/null +++ b/gnome/glib/build.sh @@ -0,0 +1,38 @@ +pkgname=glib +_pkgver=2.68 +pkgver=$_pkgver.4 + +fetch() { + curl -L "https://download.gnome.org/sources/glib/$_pkgver/glib-$pkgver.tar.xz" -o $pkgname-$pkgver.tar.xz + tar -xf $pkgname-$pkgver.tar.xz + mkdir $pkgname-$pkgver/build +} + +build() { + cd $pkgname-$pkgver + cd build + meson .. \ + --buildtype=release \ + --prefix=/usr \ + --libexecdir=lib \ + -Dtests=false \ + -Dnls=disabled + samu +} + +package() { + cd $pkgname-$pkgver + cd build + DESTDIR=$pkgdir samu install + + rm -rf $pkgdir/usr/share/bash-completion + rm -rf $pkgdir/usr/share/gdb + + rm -rf $pkgdir/usr/bin/gdbus* +} + +license() { + cd $pkgname-$pkgver + cat LICENSE +# cat COPYING +} diff --git a/gnome/gtk+/build.sh b/gnome/gtk+/build.sh new file mode 100644 index 0000000..d31e729 --- /dev/null +++ b/gnome/gtk+/build.sh @@ -0,0 +1,62 @@ +pkgname=gtk+ +_pkgver=3.24 +pkgver=$_pkgver.31 + +fetch() { + curl -L "https://download.gnome.org/sources/gtk+/$_pkgver/gtk%2B-$pkgver.tar.xz" -o $pkgname-$pkgver.tar.xz + tar -xf $pkgname-$pkgver.tar.xz + mkdir -p $pkgname-$pkgver/build + cd $pkgname-$pkgver + patch -p1 < ../../no-fribidi.patch + + # Remove 'atk-bridge' dependency which removes the 'dbus' dependency. + sed '/atkbridge_dep/d;/atk-bridge-2.0/d' meson.build > _ + mv -f _ meson.build + sed '/atkbridge_dep,/d' gtk/meson.build > _ + mv -f _ gtk/meson.build + + sed '//d;/atk_bridge_adaptor_init/d' \ + gtk/a11y/gtkaccessibility.c > _ + mv -f _ gtk/a11y/gtkaccessibility.c + +} + +build() { + cd $pkgname-$pkgver + cd build + meson .. \ + --buildtype=release \ + --prefix=/usr \ + --libexecdir=lib \ + --localstatedir=/var \ + -Dx11_backend=false \ + -Dprint_backends=auto \ + -Dwayland_backend=true \ + -Dwin32_backend=false \ + -Dquartz_backend=false \ + -Dcolord=no \ + -Ddemos=false \ + -Dexamples=false \ + -Dtests=false \ + -Dinstalled_tests=false \ + -Dgtk_doc=false \ + -Dintrospection=false + + samu +} + +package() { + cd $pkgname-$pkgver + cd build + DESTDIR=$pkgdir samu install +} + +backup() { + return +} + +license() { + cd $pkgname-$pkgver + cat LICENSE +# cat COPYING +} diff --git a/gnome/gtk+/no-fribidi.patch b/gnome/gtk+/no-fribidi.patch new file mode 100644 index 0000000..360c378 --- /dev/null +++ b/gnome/gtk+/no-fribidi.patch @@ -0,0 +1,60 @@ +diff --git a/gdk/gdk.c b/gdk/gdk.c +index f0869a6..2f3c039 100644 +--- a/gdk/gdk.c ++++ b/gdk/gdk.c +@@ -44,7 +44,6 @@ + #include + #include + +-#include + + + /** +@@ -1118,17 +1117,6 @@ gdk_disable_multidevice (void) + PangoDirection + gdk_unichar_direction (gunichar ch) + { +- FriBidiCharType fribidi_ch_type; +- +- G_STATIC_ASSERT (sizeof (FriBidiChar) == sizeof (gunichar)); +- +- fribidi_ch_type = fribidi_get_bidi_type (ch); +- +- if (!FRIBIDI_IS_STRONG (fribidi_ch_type)) +- return PANGO_DIRECTION_NEUTRAL; +- else if (FRIBIDI_IS_RTL (fribidi_ch_type)) +- return PANGO_DIRECTION_RTL; +- else + return PANGO_DIRECTION_LTR; + } + +diff --git a/gtk/gtkpango.c b/gtk/gtkpango.c +index aaac4cc..a76ad57 100644 +--- a/gtk/gtkpango.c ++++ b/gtk/gtkpango.c +@@ -25,7 +25,6 @@ + #include "config.h" + #include "gtkpango.h" + #include +-#include + #include "gtkintl.h" + + #define GTK_TYPE_FILL_LAYOUT_RENDERER (_gtk_fill_layout_renderer_get_type()) +@@ -1326,17 +1325,6 @@ _gtk_pango_attr_list_merge (PangoAttrList *into, + PangoDirection + _gtk_pango_unichar_direction (gunichar ch) + { +- FriBidiCharType fribidi_ch_type; +- +- G_STATIC_ASSERT (sizeof (FriBidiChar) == sizeof (gunichar)); +- +- fribidi_ch_type = fribidi_get_bidi_type (ch); +- +- if (!FRIBIDI_IS_STRONG (fribidi_ch_type)) +- return PANGO_DIRECTION_NEUTRAL; +- else if (FRIBIDI_IS_RTL (fribidi_ch_type)) +- return PANGO_DIRECTION_RTL; +- else + return PANGO_DIRECTION_LTR; + } + diff --git a/gnome/pango/build.sh b/gnome/pango/build.sh new file mode 100644 index 0000000..2e0721b --- /dev/null +++ b/gnome/pango/build.sh @@ -0,0 +1,31 @@ +pkgname=pango +_pkgver=1.49 +pkgver=$_pkgver.1 + +fetch() { + curl -L "https://download.gnome.org/sources/pango/$_pkgver/pango-$pkgver.tar.xz" -o $pkgname-$pkgver.tar.xz + tar -xf $pkgname-$pkgver.tar.xz + mkdir $pkgname-$pkgver/build +} + +build() { + cd $pkgname-$pkgver + cd build + meson .. \ + --buildtype=release \ + --prefix=/usr \ + --libexecdir=lib + samu +} + +package() { + cd $pkgname-$pkgver + cd build + DESTDIR=$pkgdir samu install +} + +license() { + cd $pkgname-$pkgver + cat LICENSE +# cat COPYING +} diff --git a/gui/alsa-sndio/build.sh b/gui/alsa-sndio/build.sh index 4367e85..8691e24 100644 --- a/gui/alsa-sndio/build.sh +++ b/gui/alsa-sndio/build.sh @@ -8,12 +8,12 @@ fetch() { build() { cd $pkgname-$pkgver - gmake PREFIX=/usr + bad --gmake gmake PREFIX=/usr } package() { cd $pkgname-$pkgver - gmake install DESTDIR=$pkgdir PREFIX=/usr + bad --gmake gmake install DESTDIR=$pkgdir PREFIX=/usr } license() { diff --git a/gui/autotiling-rs/build.sh b/gui/autotiling-rs/build.sh new file mode 100644 index 0000000..b789ec9 --- /dev/null +++ b/gui/autotiling-rs/build.sh @@ -0,0 +1,30 @@ +pkgname=autotiling-rs +pkgver=0.1.3 + +_clear_vendor_checksums() { + sed -i 's/\("files":{\)[^}]*/\1/' vendor/$1/.cargo-checksum.json +} + +fetch() { + curl -L "https://github.com/ammgws/autotiling-rs/archive/refs/tags/v$pkgver.tar.gz" -o $pkgname-$pkgver.tar.xz + tar -xf $pkgname-$pkgver.tar.xz + cd $pkgname-$pkgver + mkdir -p .cargo + /usr/src/rust-bootstrap/build/rust-root/bin/cargo vendor > .cargo/config +} + +build() { + cd $pkgname-$pkgver + cargo build --release --locked --all-features +} + +package() { + cd $pkgname-$pkgver + install -Dm755 target/release/$pkgname $pkgdir/usr/bin/$pkgname +} + +license() { + cd $pkgname-$pkgver + cat LICENSE +# cat COPYING +} diff --git a/gui/cairo/build.sh b/gui/cairo/build.sh index daa9a82..5108112 100644 --- a/gui/cairo/build.sh +++ b/gui/cairo/build.sh @@ -14,7 +14,7 @@ build() { --buildtype=release \ --prefix=/usr \ --libexecdir=lib \ - -Dglib=disabled + -Dglib=enabled samu } @@ -24,6 +24,10 @@ package() { DESTDIR=$pkgdir samu install } +backup() { + return +} + license() { cd $pkgname-$pkgver cat COPYING* diff --git a/gui/ffmpeg/build.sh b/gui/ffmpeg/build.sh index 11034ec..15e98e7 100644 --- a/gui/ffmpeg/build.sh +++ b/gui/ffmpeg/build.sh @@ -13,12 +13,12 @@ build() { --enable-openssl \ --cc=cc - gmake + bad --gmake gmake } package() { cd $pkgname-$pkgver - gmake install DESTDIR=$pkgdir + bad --gmake gmake install DESTDIR=$pkgdir } license() { diff --git a/gui/firefox/avoid-redefinition.patch b/gui/firefox/avoid-redefinition.patch new file mode 100644 index 0000000..af11c50 --- /dev/null +++ b/gui/firefox/avoid-redefinition.patch @@ -0,0 +1,15 @@ +Author: Rasmus Thomsen +Reason: FF is mixing userspace net headers (net/if.h) and kernelspace ones +(linux/if.h), leading to redefinitions. We need to include net/if.h before +linux/if.h because linux/if.h has redifinition guards whereas net/if.h doesnt +Upstream: No +--- a/dom/media/webrtc/transport/third_party/nICEr/src/stun/addrs-netlink.c.orig 2020-07-28 19:24:32.359751046 +0200 ++++ b/dom/media/webrtc/transport/third_party/nICEr/src/stun/addrs-netlink.c 2020-07-28 19:24:37.856343751 +0200 +@@ -31,6 +31,7 @@ + */ + + #if defined(LINUX) ++#include + #include "addrs-netlink.h" + #include + #include diff --git a/gui/firefox/build.sh b/gui/firefox/build.sh new file mode 100644 index 0000000..9f141b5 --- /dev/null +++ b/gui/firefox/build.sh @@ -0,0 +1,95 @@ +pkgname=firefox +pkgver=101.0 +mkdeps="cbindgen:rust" + +fetch() { + #curl "https://ftp.mozilla.org/pub/firefox/releases/${pkgver}esr/source/firefox-${pkgver}esr.source.tar.xz" -o $pkgname-$pkgver.tar.xz + #curl "https://hg.mozilla.org/mozilla-unified/archive/26726cd430955db041e5de33d9792bb816c57608.zip" -o $pkgname-$pkgver.zip + curl "https://archive.mozilla.org/pub/firefox/releases/${pkgver}b3/source/firefox-${pkgver}b3.source.tar.xz" -o $pkgname-$pkgver.tar.xz + tar -xf $pkgname-$pkgver.tar.xz + cd $pkgname-$pkgver + # patch -p1 < ../../no-x11.patch + # patch -p1 < ../../fix-clang-as.patch + patch -p1 < ../../avoid-redefinition.patch + patch -p1 < ../../libcxx.patch + patch -p1 < ../../grefptr.patch + patch -p1 < ../../sandbox-allow-select.patch + # patch -p1 < ../../sandbox-fork.patch + # patch -p1 < ../../sandbox-sched.patch +} + +build() { + cd $pkgname-$pkgver + ulimit -n 4096 + + + export MACH_USE_SYSTEM_PYTHON=1 + export CXXSTDLIB=c++ + export LDFLAGS="$LDFLAGS -Wl,-rpath=/usr/lib/firefox/,--enable-new-dtags" + + cat > .mozconfig << EOF +ac_add_options --enable-default-toolkit=cairo-gtk3-wayland +ac_add_options --prefix=/usr +ac_add_options --libdir=/usr/lib +ac_add_options --disable-alsa +ac_add_options --enable-dbus +ac_add_options --enable-strip +ac_add_options --enable-release +ac_add_options --enable-rust-simd +ac_add_options --enable-install-strip +ac_add_options --enable-official-branding +ac_add_options --enable-application=browser +ac_add_options --enable-optimize="-O3 -w" +ac_add_options --without-system-libvpx +ac_add_options --without-system-ffi +ac_add_options --without-system-png +ac_add_options --without-system-jpeg +ac_add_options --without-system-zlib +ac_add_options --without-system-pixman +ac_add_options --without-system-nss +ac_add_options --without-system-nspr +ac_add_options --enable-linker=lld +ac_add_options --disable-tests +ac_add_options --disable-vtune +ac_add_options --disable-updater +ac_add_options --disable-jemalloc +ac_add_options --disable-callgrind +ac_add_options --disable-profiling +ac_add_options --disable-necko-wifi +ac_add_options --disable-crashreporter +ac_add_options --enable-pulseaudio +ac_add_options --disable-accessibility +ac_add_options --disable-debug +ac_add_options --disable-debug-symbols +ac_add_options --disable-parental-controls +ac_add_options --disable-system-extension-dirs +ac_add_options --enable-webrtc +ac_add_options --disable-elf-hack +ac_add_options --without-wasm-sandboxed-libraries +#ac_add_options MOZ_PGO=1 +EOF + + # bad --gmake --gm4 --autoconf ./mach clobber + bad --gmake --gm4 --autoconf ./mach build +} + +package() { + cd $pkgname-$pkgver + + export MACH_USE_SYSTEM_PYTHON=1 + export CXXSTDLIB=c++ + export RUSTFLAGS='-C target-feature=-crt-static' + export LDFLAGS="$LDFLAGS -Wl,-rpath=/usr/lib/firefox/,--enable-new-dtags" + + DESTDIR=$pkgdir bad --gmake --gm4 --autoconf ./mach install +} + +backup() { + return +} + +license() { + cd $pkgname-$pkgver + cat LICENSE +# cat COPYING +} diff --git a/gui/firefox/grefptr.patch b/gui/firefox/grefptr.patch new file mode 100644 index 0000000..d0f5692 --- /dev/null +++ b/gui/firefox/grefptr.patch @@ -0,0 +1,10 @@ +--- a/widget/gtk/nsClipboard.cpp ++++ b/widget/gtk/nsClipboard.cpp +@@ -31,6 +31,7 @@ + #include "nsIObserverService.h" + #include "mozilla/Services.h" + #include "mozilla/RefPtr.h" ++#include "GRefPtr.h" + #include "mozilla/SchedulerGroup.h" + #include "mozilla/StaticPrefs_widget.h" + #include "mozilla/TimeStamp.h" diff --git a/gui/firefox/libcxx.patch b/gui/firefox/libcxx.patch new file mode 100644 index 0000000..d14cdc8 --- /dev/null +++ b/gui/firefox/libcxx.patch @@ -0,0 +1,69 @@ +--- a/memory/mozalloc/throw_gcc.h ++++ b/memory/mozalloc/throw_gcc.h +@@ -74,50 +74,66 @@ __throw_bad_function_call(void) { + mozalloc_abort("fatal: STL threw bad_function_call"); + } + ++#if !defined(_LIBCPP_VERSION) + MOZ_THROW_NORETURN MOZ_THROW_EXPORT MOZ_THROW_INLINE void __throw_logic_error( + const char* msg) { + mozalloc_abort(msg); + } ++#endif // _LIBCPP_VERSION + ++#if !defined(_LIBCPP_VERSION) + MOZ_THROW_NORETURN MOZ_THROW_EXPORT MOZ_THROW_INLINE void __throw_domain_error( + const char* msg) { + mozalloc_abort(msg); + } ++#endif // _LIBCPP_VERSION + ++#if !defined(_LIBCPP_VERSION) + MOZ_THROW_NORETURN MOZ_THROW_EXPORT MOZ_THROW_INLINE void + __throw_invalid_argument(const char* msg) { + mozalloc_abort(msg); + } ++#endif // _LIBCPP_VERSION + ++#if !defined(_LIBCPP_VERSION) + MOZ_THROW_NORETURN MOZ_THROW_EXPORT MOZ_THROW_INLINE void __throw_length_error( + const char* msg) { + mozalloc_abort(msg); + } ++#endif // _LIBCPP_VERSION + ++#if !defined(_LIBCPP_VERSION) + MOZ_THROW_NORETURN MOZ_THROW_EXPORT MOZ_THROW_INLINE void __throw_out_of_range( + const char* msg) { + mozalloc_abort(msg); + } ++#endif // _LIBCPP_VERSION + + MOZ_THROW_NORETURN MOZ_THROW_EXPORT MOZ_THROW_INLINE void __throw_runtime_error( + const char* msg) { + mozalloc_abort(msg); + } + ++#if !defined(_LIBCPP_VERSION) + MOZ_THROW_NORETURN MOZ_THROW_EXPORT MOZ_THROW_INLINE void __throw_range_error( + const char* msg) { + mozalloc_abort(msg); + } ++#endif // _LIBCPP_VERSION + ++#if !defined(_LIBCPP_VERSION) + MOZ_THROW_NORETURN MOZ_THROW_EXPORT MOZ_THROW_INLINE void + __throw_overflow_error(const char* msg) { + mozalloc_abort(msg); + } ++#endif // _LIBCPP_VERSION + ++#if !defined(_LIBCPP_VERSION) + MOZ_THROW_NORETURN MOZ_THROW_EXPORT MOZ_THROW_INLINE void + __throw_underflow_error(const char* msg) { + mozalloc_abort(msg); + } ++#endif // _LIBCPP_VERSION + + MOZ_THROW_NORETURN MOZ_THROW_EXPORT MOZ_THROW_INLINE void __throw_ios_failure( + const char* msg) { diff --git a/gui/firefox/sandbox-allow-select.patch b/gui/firefox/sandbox-allow-select.patch new file mode 100644 index 0000000..ce38dfd --- /dev/null +++ b/gui/firefox/sandbox-allow-select.patch @@ -0,0 +1,26 @@ +--- a/security/sandbox/linux/SandboxFilter.cpp ++++ b/security/sandbox/linux/SandboxFilter.cpp +@@ -1992,20 +1992,23 @@ + Arg new_limit(2); + return If(AllOf(pid == 0, new_limit == 0), Allow()) + .Else(InvalidSyscall()); + } + #endif // DESKTOP + + // Bug 1640612 + case __NR_uname: + return Allow(); + ++ CASES_FOR_select: ++ return Allow(); ++ + default: + return SandboxPolicyCommon::EvaluateSyscall(sysno); + } + } + }; + + UniquePtr GetSocketProcessSandboxPolicy( + SandboxBrokerClient* aMaybeBroker) { + return UniquePtr( + new SocketProcessSandboxPolicy(aMaybeBroker)); diff --git a/gui/fontconfig/build.sh b/gui/fontconfig/build.sh index d1f9608..4fce02c 100644 --- a/gui/fontconfig/build.sh +++ b/gui/fontconfig/build.sh @@ -1,20 +1,27 @@ pkgname=fontconfig -pkgver=2.13.93 +pkgver=2.13.94 fetch() { - curl "https://www.freedesktop.org/software/fontconfig/release/fontconfig-2.13.93.tar.gz" -o $pkgname-$pkgver.tar.xz + curl "https://www.freedesktop.org/software/fontconfig/release/$pkgname-$pkgver.tar.gz" -o $pkgname-$pkgver.tar.xz tar -xf $pkgname-$pkgver.tar.xz cp ../fcobjshash.h $pkgname-$pkgver/src mkdir $pkgname-$pkgver/build + cd $pkgname-$pkgver + sed -i 's/fcobjshash\.h/fcjunk.h/' src/meson.build + sed -i "s/find_program(\'gperf/find_program(\'true/" meson.build } build() { cd $pkgname-$pkgver + cd build meson .. \ --buildtype=release \ --prefix=/usr \ - --libexecdir=lib + --libexecdir=lib \ + -Ddocs=disabled \ + -Dnls=disabled \ + -Dtests=disabled samu } diff --git a/gui/foot/build.sh b/gui/foot/build.sh new file mode 100644 index 0000000..c14bb09 --- /dev/null +++ b/gui/foot/build.sh @@ -0,0 +1,42 @@ +pkgname=foot +pkgver=1.10.3 + +fetch() { + curl -L "https://codeberg.org/dnkl/foot/archive/$pkgver.tar.gz" -o $pkgname-$pkgver.tar.gz + curl -L "https://codeberg.org/dnkl/fcft/archive/2.4.5.tar.gz" -o fcft.tar.gz + curl -L "https://codeberg.org/dnkl/tllist/archive/1.0.5.tar.gz" -o tllist.tar.gz + tar -xf $pkgname-$pkgver.tar.gz + mv $pkgname $pkgname-$pkgver + mkdir $pkgname-$pkgver/build + tar -xf fcft.tar.gz -C $pkgname-$pkgver/subprojects + tar -xf tllist.tar.gz -C $pkgname-$pkgver/subprojects + cd $pkgname-$pkgver + patch -p1 < ../../netbsd-tic.patch +} + +build() { + cd $pkgname-$pkgver + cd build + meson .. \ + --buildtype=release \ + --prefix=/usr \ + --libexecdir=lib \ + -Dterminfo=enabled \ + -Ddefault-terminfo=foot + samu +} + +backup() { + return +} + +package() { + cd $pkgname-$pkgver + cd build + DESTDIR=$pkgdir samu install +} + +license() { + cd $pkgname-$pkgver + cat LICENSE +} diff --git a/gui/foot/netbsd-tic.patch b/gui/foot/netbsd-tic.patch new file mode 100644 index 0000000..de8672e --- /dev/null +++ b/gui/foot/netbsd-tic.patch @@ -0,0 +1,23 @@ +--- a/meson.build ++++ b/meson.build +@@ -43,7 +43,7 @@ + join_paths(get_option('prefix'), terminfo_install_location))], + language: 'c') + else +- terminfo_install_location = join_paths(get_option('datadir'), 'terminfo') ++ terminfo_install_location = get_option('datadir') + endif + + # Compute the relative path used by compiler invocations. +@@ -262,9 +262,9 @@ + ) + custom_target( + 'terminfo', +- output: get_option('default-terminfo')[0], ++ output: 'terminfo.cdb', + input: preprocessed, +- command: [tic, '-x', '-o', '@OUTDIR@', '-e', '@0@,@0@-direct'.format(get_option('default-terminfo')), '@INPUT@'], ++ command: [tic, '-x', '-o', '@OUTPUT@', '@INPUT@'], + install: true, + install_dir: terminfo_install_location + ) diff --git a/gui/freetype-harbuzz/build.sh b/gui/freetype-harbuzz/build.sh new file mode 100644 index 0000000..6ae76e7 --- /dev/null +++ b/gui/freetype-harbuzz/build.sh @@ -0,0 +1,98 @@ +f_pkgver=2.11.0 +h_pkgver=3.0.0 + +pkgname=freetype-harfbuzz +pkgver=$f_pkgver+$h_pkgver + +fetch() { + curl "https://download-mirror.savannah.gnu.org/releases/freetype/freetype-$f_pkgver.tar.xz" \ + -o freetype-$f_pkgver.tar.xz + + tar -xf freetype-$f_pkgver.tar.xz + mkdir -p freetype-$f_pkgver/build + + curl -L "https://github.com/harfbuzz/harfbuzz/releases/download/$h_pkgver/harfbuzz-$h_pkgver.tar.xz" \ + -o harfbuzz-$h_pkgver.tar.xz + + tar -xf harfbuzz-$h_pkgver.tar.xz + mkdir -p harfbuzz-$h_pkgver/build +} + +build() { + mkdir tmp_install + export DESTDIR=$(pwd)/tmp_install + mkdir -p $DESTDIR/usr/include/harfbuzz + # cp harfbuzz-$h_pkgver/src/hb-ft.h $DESTDIR/usr/include/harfbuzz + + # Point Freetype to the Harfbuzz files. + export CFLAGS="$CFLAGS -I$DESTDIR/usr/include/harfbuzz" + export CFLAGS="$CFLAGS -L$DESTDIR/usr/lib " + export PKG_CONFIG_PATH=$DESTDIR/usr/lib/pkgconfig + + # Point Harfbuzz to the Freetype files. + export CXXFLAGS="$CXXFLAGS -I$DESTDIR/usr/include/freetype2" + export CXXFLAGS="$CXXFLAGS -L$DESTDIR/usr/lib" + + cd freetype-$f_pkgver/build + meson .. \ + --buildtype=release \ + --prefix=/usr \ + --libexecdir=lib \ + -Dbzip2=disabled \ + -Dzlib=disabled \ + -Dharbuzz=disabled + + samu + + samu install + + cd ../../ + + cd harfbuzz-$h_pkgver/ + + ./configure \ + --prefix=/usr \ + --with-bzip2=no \ + --with-png=no \ + --with-brotli=no + + bad --gmake gmake + bad --gmake gmake install + + cd .. + + cd freetype-$f_pkgver/build + meson .. \ + --buildtype=release \ + --prefix=/usr \ + --libexecdir=lib \ + -Dbzip2=disabled \ + -Dzlib=disabled \ + -Dharfbuzz=enabled + --reconfigure + + samu +} + + + +package() { + cd freetype-$f_pkgver + cd build + DESTDIR=$pkgdir samu install + cd ../../ + cd harfbuzz-$h_pkgver + cd build + DESTDIR=$pkgdir samu install +} + +backup() { + return +} + +license() { + cd freetype-$f_pkgver + cat LICENSE + cd harfbuzz-$h_pkgver + cat COPYING +} diff --git a/gui/freetype-harbuzz/ft_meson.patch b/gui/freetype-harbuzz/ft_meson.patch new file mode 100644 index 0000000..349f4ec --- /dev/null +++ b/gui/freetype-harbuzz/ft_meson.patch @@ -0,0 +1,11 @@ +--- src/freetype-2.11.0/meson.build ++++ meson.build +@@ -276,6 +276,8 @@ + if libpng_dep.found() + ftoption_command += ['--enable=FT_CONFIG_OPTION_USE_PNG'] + ft2_deps += [libpng_dep] ++else ++ ftoption_command += ['--disable=FT_CONFIG_OPTION_USE_PNG'] + endif + + # Harfbuzz support diff --git a/gui/freetype-harbuzz/meson.build b/gui/freetype-harbuzz/meson.build new file mode 100644 index 0000000..023e650 --- /dev/null +++ b/gui/freetype-harbuzz/meson.build @@ -0,0 +1,411 @@ +# +# Meson project file for FreeType 2 +# + +# Copyright (C) 2020-2021 by +# David Turner, Robert Wilhelm, and Werner Lemberg. +# +# This file is part of the FreeType project, and may only be used, modified, +# and distributed under the terms of the FreeType project license, +# LICENSE.TXT. By continuing to use, modify, or distribute this file you +# indicate that you have read the license and understand and accept it +# fully. + +# +# Say +# +# meson configure +# +# to see all configuration options and their default values. For example, +# to build only a shared version of FreeType, override the default value +# with +# +# meson setup -Ddefault_library=shared +# + +project('freetype2', 'c', + meson_version: '>= 0.55.0', + default_options: ['default_library=both'], + version: run_command('builds/meson/extract_freetype_version.py', + 'include/freetype/freetype.h').stdout().strip(), +) + + +# Only meson >= 0.57 can read a file and assign its contents to a +# variable; we thus use an external command to have this functionality +# with older versions, too. + +python = import('python') +python_exe = python.find_installation(required: true) + +ft2_so_version = run_command(python_exe, + files('builds/meson/extract_libtool_version.py'), + '--soversion', + files('builds/unix/configure.raw')).stdout().strip() + +ft2_pkgconfig_version = run_command(python_exe, + files('builds/meson/extract_libtool_version.py'), + files('builds/unix/configure.raw')).stdout().strip() + +ft2_includes = include_directories('include') + + +# Generate a custom `ftmodule.h` version based on the content of +# `modules.cfg`. + +ftmodule_h = custom_target('ftmodule.h', + output: 'ftmodule.h', + input: 'modules.cfg', + command: [python_exe, files('builds/meson/parse_modules_cfg.py'), + '--format=ftmodule.h', '@INPUT@', '--output', '@OUTPUT@'], + install: true, + install_dir: 'include/freetype2/freetype/config', +) +ft2_sources = [ftmodule_h] + + +# FreeType 2 modules. + +ft_main_modules = run_command(python_exe, + files('builds/meson/parse_modules_cfg.py'), + '--format=main-modules', + files('modules.cfg')).stdout().strip().split() + +ft2_sources += files([ + 'src/base/ftbase.c', + 'src/base/ftinit.c', +]) + +foreach mod: ft_main_modules + source = mod + if mod == 'winfonts' + source = 'winfnt' + elif mod == 'cid' + source = 'type1cid' + endif + ft2_sources += 'src/@0@/@1@.c'.format(mod, source) +endforeach + +# NOTE: The `gzip` and `bzip2` aux modules are handled through options. +ft_aux_modules = run_command(python_exe, + files('builds/meson/parse_modules_cfg.py'), + '--format=aux-modules', + files('modules.cfg')).stdout().strip().split() + +foreach auxmod: ft_aux_modules + source = auxmod + # Most sources are named `src//.c`, but there are a few + # exceptions handled here. + if auxmod == 'cache' + source = 'ftcache' + elif auxmod == 'lzw' + source = 'ftlzw' + elif auxmod == 'gzip' or auxmod == 'bzip2' + # Handled through options instead, see below. + continue + endif + ft2_sources += 'src/@0@/@1@.c'.format(auxmod, source) +endforeach + + +# FreeType 2 base extensions. +# To be configured in `modules.cfg`. + +base_extensions = run_command(python_exe, + files('builds/meson/parse_modules_cfg.py'), + '--format=base-extensions-list', + files('modules.cfg')).stdout().split() + +foreach ext: base_extensions + ft2_sources += files('src/base/' + ext) +endforeach + + +# Header files. + +ft2_public_headers = files([ + 'include/freetype/freetype.h', + 'include/freetype/ftadvanc.h', + 'include/freetype/ftbbox.h', + 'include/freetype/ftbdf.h', + 'include/freetype/ftbitmap.h', + 'include/freetype/ftbzip2.h', + 'include/freetype/ftcache.h', + 'include/freetype/ftchapters.h', + 'include/freetype/ftcid.h', + 'include/freetype/ftcolor.h', + 'include/freetype/ftdriver.h', + 'include/freetype/fterrdef.h', + 'include/freetype/fterrors.h', + 'include/freetype/ftfntfmt.h', + 'include/freetype/ftgasp.h', + 'include/freetype/ftglyph.h', + 'include/freetype/ftgxval.h', + 'include/freetype/ftgzip.h', + 'include/freetype/ftimage.h', + 'include/freetype/ftincrem.h', + 'include/freetype/ftlcdfil.h', + 'include/freetype/ftlist.h', + 'include/freetype/ftlzw.h', + 'include/freetype/ftmac.h', + 'include/freetype/ftmm.h', + 'include/freetype/ftmodapi.h', + 'include/freetype/ftmoderr.h', + 'include/freetype/ftotval.h', + 'include/freetype/ftoutln.h', + 'include/freetype/ftparams.h', + 'include/freetype/ftpfr.h', + 'include/freetype/ftrender.h', + 'include/freetype/ftsizes.h', + 'include/freetype/ftsnames.h', + 'include/freetype/ftstroke.h', + 'include/freetype/ftsynth.h', + 'include/freetype/ftsystem.h', + 'include/freetype/fttrigon.h', + 'include/freetype/fttypes.h', + 'include/freetype/ftwinfnt.h', + 'include/freetype/t1tables.h', + 'include/freetype/ttnameid.h', + 'include/freetype/tttables.h', + 'include/freetype/tttags.h', +]) + +ft2_config_headers = files([ + 'include/freetype/config/ftconfig.h', + 'include/freetype/config/ftheader.h', + 'include/freetype/config/ftstdlib.h', + 'include/freetype/config/integer-types.h', + 'include/freetype/config/mac-support.h', + 'include/freetype/config/public-macros.h', +]) + +ft2_defines = ['-DFT2_BUILD_LIBRARY=1'] + + +# System support file. + +cc = meson.get_compiler('c') + +# NOTE: msys2 on Windows has `unistd.h` and `fcntl.h` but not `sys/mman.h`! +has_unistd_h = cc.has_header('unistd.h') +has_fcntl_h = cc.has_header('fcntl.h') +has_sys_mman_h = cc.has_header('sys/mman.h') + +mmap_option = get_option('mmap') + +use_unix_ftsystem_c = false +if mmap_option.disabled() + ft2_sources += files(['src/base/ftsystem.c',]) +elif host_machine.system() == 'windows' + ft2_sources += files(['builds/windows/ftsystem.c',]) +else + if has_unistd_h and has_fcntl_h and has_sys_mman_h + # This version of `ftsystem.c` uses `mmap` to read input font files. + ft2_sources += files(['builds/unix/ftsystem.c',]) + use_unix_ftsystem_c = true + elif mmap_option.enabled() + error('mmap was enabled via options but is not available,' + + ' required headers were not found!') + else + ft2_sources += files(['src/base/ftsystem.c',]) + endif +endif + + +# Debug support file +# +# NOTE: Some specialized versions exist for other platforms not supported by +# Meson. Most implementation differences are extremely minor, i.e., in the +# implementation of `FT_Message` and `FT_Panic`, and getting the `FT2_DEBUG` +# value from the environment, when this is supported. A smaller refactor +# might make these platform-specific files much smaller, and could be moved +# into `ftsystem.c` as well. +# +if host_machine.system() == 'windows' + winmod = import('windows') + ft2_sources += [ + 'builds/windows/ftdebug.c', + winmod.compile_resources('src/base/ftver.rc'), + ] +else + ft2_sources += 'src/base/ftdebug.c' +endif + +ft2_deps = [] + + +# Generate `ftoption.h` based on available dependencies. + +process_header_command = [python_exe, + files('builds/meson/process_ftoption_h.py'), + '@INPUT@', '--output=@OUTPUT@'] +ftoption_command = process_header_command + + +# GZip support +zlib_dep = dependency('zlib', + required: get_option('zlib'), + fallback: 'zlib') + +if zlib_dep.found() + ftoption_command += [ + '--enable=FT_CONFIG_OPTION_USE_ZLIB', + '--enable=FT_CONFIG_OPTION_SYSTEM_ZLIB', + ] + ft2_sources += files(['src/gzip/ftgzip.c',]) + ft2_deps += [zlib_dep] +else + ftoption_command += ['--disable=FT_CONFIG_OPTION_USE_ZLIB'] +endif + +# BZip2 support +bzip2_dep = cc.find_library('bz2', + required: get_option('bzip2')) + +if bzip2_dep.found() + ftoption_command += ['--enable=FT_CONFIG_OPTION_USE_BZIP2'] + ft2_sources += files(['src/bzip2/ftbzip2.c',]) + ft2_deps += [bzip2_dep] +endif + +# PNG support +libpng_dep = dependency('libpng', + required: get_option('png'), + fallback: 'libpng') + +if libpng_dep.found() + ftoption_command += ['--enable=FT_CONFIG_OPTION_USE_PNG'] + ft2_deps += [libpng_dep] +else + ftoption_command += ['--disable=FT_CONFIG_OPTION_USE_PNG'] +endif + +# Harfbuzz support +harfbuzz_dep = dependency('harfbuzz', + version: '>= 2.0.0', + required: get_option('harfbuzz')) + +if harfbuzz_dep.found() + ftoption_command += ['--enable=FT_CONFIG_OPTION_USE_HARFBUZZ'] + ft2_deps += [harfbuzz_dep] +endif + +# Brotli decompression support +brotli_dep = dependency('libbrotlidec', + required: get_option('brotli')) + +if brotli_dep.found() + ftoption_command += ['--enable=FT_CONFIG_OPTION_USE_BROTLI'] + ft2_deps += [brotli_dep] +endif + +# We can now generate `ftoption.h`. +ftoption_h = custom_target('ftoption.h', + input: 'include/freetype/config/ftoption.h', + output: 'ftoption.h', + command: ftoption_command, + install: true, + install_dir: 'include/freetype2/freetype/config', +) +ft2_sources += ftoption_h +ft2_defines += ['-DFT_CONFIG_OPTIONS_H='] + +if host_machine.system() == 'windows' + ft2_defines += ['-DDLL_EXPORT=1'] +endif + + +# Generate `ftconfig.h`. + +ftconfig_command = process_header_command +if has_unistd_h + ftconfig_command += '--enable=HAVE_UNISTD_H' +endif +if has_fcntl_h + ftconfig_command += '--enable=HAVE_FCNTL_H' +endif + +if use_unix_ftsystem_c + ftconfig_h_in = files('builds/unix/ftconfig.h.in') + ftconfig_h = custom_target('ftconfig.h', + input: ftconfig_h_in, + output: 'ftconfig.h', + command: ftconfig_command, + install: true, + install_dir: 'include/freetype2/freetype/config', + ) + ft2_sources += ftconfig_h + ft2_defines += ['-DFT_CONFIG_CONFIG_H='] +endif + + +ft2_lib = library('freetype', + sources: ft2_sources + [ftmodule_h], + c_args: ft2_defines, + gnu_symbol_visibility: 'hidden', + include_directories: ft2_includes, + dependencies: ft2_deps, + install: true, + version: ft2_so_version, +) + + +# To be used by other projects including this one through `subproject`. +freetype_dep = declare_dependency( + include_directories: ft2_includes, + link_with: ft2_lib, + version: ft2_pkgconfig_version) + +meson.override_dependency('freetype2', freetype_dep) + + +# NOTE: Using both `install_dir` and `subdir` doesn't seem to work below, +# i.e., the subdir value seems to be ignored, contrary to examples in the +# Meson documentation. +install_headers('include/ft2build.h', + install_dir: 'include/freetype2') +install_headers(ft2_public_headers, + install_dir: 'include/freetype2/freetype') +install_headers(ft2_config_headers, + install_dir: 'include/freetype2/freetype/config') + + +pkgconfig = import('pkgconfig') + +pkgconfig.generate(ft2_lib, + filebase: 'freetype2', + name: 'FreeType 2', + description: 'A free, high-quality, and portable font engine.', + url: 'https://freetype.org', + subdirs: 'freetype2', + version: ft2_pkgconfig_version, +) + +if get_option('tests').enabled() + subdir('tests') +endif + +# NOTE: Unlike the old `make refdoc` command, this generates the +# documentation under `$BUILD/docs/` since Meson doesn't support modifying +# the source root directory (which is a good thing). +gen_docs = custom_target('freetype2 reference documentation', + output: 'docs', + input: ft2_public_headers + ft2_config_headers, + command: [python_exe, + files('builds/meson/generate_reference_docs.py'), + '--version=' + meson.project_version(), + '--input-dir=' + meson.source_root(), + '--output-dir=@OUTPUT@' + ], +) + + +summary({'OS': host_machine.system(), + 'Zlib': zlib_dep.found() ? 'yes' : 'no', + 'Bzip2': bzip2_dep.found() ? 'yes' : 'no', + 'Png': libpng_dep.found() ? 'yes' : 'no', + 'Harfbuzz': harfbuzz_dep.found() ? 'yes' : 'no', + 'Brotli': brotli_dep.found() ? 'yes' : 'no', + }, section: 'Configuration Options Summary:') + +# EOF diff --git a/gui/freetype/build.sh b/gui/freetype/build.sh index c1fb57e..1d14ff7 100644 --- a/gui/freetype/build.sh +++ b/gui/freetype/build.sh @@ -1,5 +1,5 @@ pkgname=freetype -pkgver=2.10.4 +pkgver=2.11.0 fetch() { curl "https://download-mirror.savannah.gnu.org/releases/freetype/freetype-$pkgver.tar.xz" -o $pkgname-$pkgver.tar.xz @@ -24,6 +24,10 @@ package() { DESTDIR=$pkgdir samu install } +backup() { + return +} + license() { cd $pkgname-$pkgver cat LICENSE diff --git a/gui/harfbuzz/build.sh b/gui/harfbuzz/build.sh index 2765085..b4d4215 100644 --- a/gui/harfbuzz/build.sh +++ b/gui/harfbuzz/build.sh @@ -1,8 +1,8 @@ pkgname=harfbuzz -pkgver=2.7.4 +pkgver=3.0.0 fetch() { - curl -L "https://github.com/harfbuzz/harfbuzz/releases/download/2.7.4/harfbuzz-2.7.4.tar.xz" -o $pkgname-$pkgver.tar.xz + curl -L "https://github.com/harfbuzz/harfbuzz/releases/download/$pkgver/harfbuzz-$pkgver.tar.xz" -o $pkgname-$pkgver.tar.xz tar -xf $pkgname-$pkgver.tar.xz mkdir $pkgname-$pkgver/build } @@ -10,7 +10,7 @@ fetch() { build() { cd $pkgname-$pkgver cd build - meson .. \ + CFLAGS="$CFLAGS -Wunused-but-set-variable" meson .. \ --buildtype=release \ --prefix=/usr \ --libexecdir=lib \ diff --git a/gui/i3status-rs/build.sh b/gui/i3status-rs/build.sh new file mode 100644 index 0000000..eb4c0b8 --- /dev/null +++ b/gui/i3status-rs/build.sh @@ -0,0 +1,30 @@ +pkgname=i3status-rust +pkgver=0.20.4 + +_clear_vendor_checksums() { + sed -i 's/\("files":{\)[^}]*/\1/' vendor/$1/.cargo-checksum.json +} + +fetch() { + curl -L "https://github.com/greshake/i3status-rust/archive/refs/tags/v$pkgver.tar.gz" -o $pkgname-$pkgver.tar.xz + tar -xf $pkgname-$pkgver.tar.xz + cd $pkgname-$pkgver + mkdir -p .cargo + /usr/src/rust-bootstrap/build/rust-root/bin/cargo vendor > .cargo/config +} + +build() { + cd $pkgname-$pkgver + cargo build --release --locked --all-features +} + +package() { + cd $pkgname-$pkgver + install -Dm755 target/release/i3status-rs $pkgdir/usr/bin/i3status-rs +} + +license() { + cd $pkgname-$pkgver + cat LICENSE +# cat COPYING +} diff --git a/gui/icu/build.sh b/gui/icu/build.sh index c0c53be..80e4a97 100644 --- a/gui/icu/build.sh +++ b/gui/icu/build.sh @@ -18,13 +18,13 @@ build() { --build=$TRIPLE \ --host=$TRIPLE - gmake + bad --gmake gmake } package() { cd $pkgname-$pkgver cd source - gmake install DESTDIR=$pkgdir + bad --gmake gmake install DESTDIR=$pkgdir } license() { diff --git a/gui/libdrm/build.sh b/gui/libdrm/build.sh index 9cf740e..8e5be2c 100644 --- a/gui/libdrm/build.sh +++ b/gui/libdrm/build.sh @@ -1,8 +1,7 @@ -pkgver=2.4.106 +pkgver=2.4.109 pkgname=libdrm dep="libpciaccess" bad="" -ext="dev" fetch() { curl -L "https://dri.freedesktop.org/libdrm/libdrm-$pkgver.tar.xz" -o $pkgname-$pkgver.tar.gz @@ -20,9 +19,8 @@ package() { DESTDIR=$pkgdir samu -C build install } -package_dev() { - cd $pkgname-$pkgver - DESTDIR=$pkgdir samu -C build install +backup() { + return } license() { diff --git a/gui/libpng/build.sh b/gui/libpng/build.sh index 99d31f1..57ec63c 100644 --- a/gui/libpng/build.sh +++ b/gui/libpng/build.sh @@ -10,6 +10,7 @@ build() { cd $pkgname-$pkgver ./configure \ --prefix=/usr \ + --with-zlib-prefix=/usr \ --build=$TRIPLE \ --host=$TRIPLE @@ -21,6 +22,10 @@ package() { make install DESTDIR=$pkgdir } +backup() { + return +} + license() { cd $pkgname-$pkgver cat LICENSE diff --git a/gui/libudev-zero/build.sh b/gui/libudev-zero/build.sh index d0ccab6..3f2c92e 100644 --- a/gui/libudev-zero/build.sh +++ b/gui/libudev-zero/build.sh @@ -1,5 +1,5 @@ pkgname=libudev-zero -pkgver=0.5.2 +pkgver=1.0.0 fetch() { curl -L "https://github.com/illiliti/libudev-zero/archive/$pkgver.tar.gz" -o $pkgname-$pkgver.tar.xz @@ -18,7 +18,10 @@ package() { make install PREFIX=/usr DESTDIR=$pkgdir install -d $pkgdir/usr/sbin install -Dm755 ./contrib/libudev-zero-hotplug-helper $pkgdir/usr/sbin/ - install -Dm755 ./contrib/helper.sh $pkgdir/usr/sbin/libudev-zero-hotplug-helper.sh +} + +backup() { + return } license() { diff --git a/gui/mesa/build.sh b/gui/mesa/build.sh index 36266c3..48bfdf9 100644 --- a/gui/mesa/build.sh +++ b/gui/mesa/build.sh @@ -1,12 +1,12 @@ pkgname=mesa #pkgver=21.2.1 -pkgver=v3dv-vk-ext-vertex-attribute-divisor +pkgver=main deps="musl:wayland:wayland-protocols:llvm:zlib-ng:expat:libffi:libdrm:python-mako" ext=dev fetch() { - curl "https://archive.mesa3d.org/$pkgname-$pkgver.tar.xz" -o $pkgname-$pkgver.tar.gz - curl "https://gitlab.freedesktop.org/Ella-0/mesa/-/archive/v3dv-vk-ext-vertex-attribute-divisor/mesa-v3dv-vk-ext-vertex-attribute-divisor.tar.gz" -o $pkgname-$pkgver.tar.gz +# curl "https://archive.mesa3d.org/$pkgname-$pkgver.tar.xz" -o $pkgname-$pkgver.tar.gz + curl "https://gitlab.freedesktop.org/mesa/mesa/-/archive/main/mesa-main.tar.gz" -o $pkgname-$pkgver.tar.gz tar -xf $pkgname-$pkgver.tar.gz mkdir $pkgname-$pkgver/build cp ../byacc-out-mid-build.patch . diff --git a/gui/mesa/v3d.patch b/gui/mesa/v3d.patch new file mode 100644 index 0000000..21d85a5 --- /dev/null +++ b/gui/mesa/v3d.patch @@ -0,0 +1,10 @@ +--- a/src/gallium/drivers/v3d/v3dx_format_table.c ++++ b/src/gallium/drivers/v3d/v3dx_format_table.c +@@ -70,6 +70,7 @@ + FORMAT(R8G8B8A8_SNORM, NO, RGBA8_SNORM, SWIZ_XYZW, 16, 0), + FORMAT(R8G8B8X8_SNORM, NO, RGBA8_SNORM, SWIZ_XYZ1, 16, 0), + FORMAT(R10G10B10A2_UNORM, RGB10_A2, RGB10_A2, SWIZ_XYZW, 16, 0), ++ FORMAT(R10G10B10X2_UNORM, RGB10_A2, RGB10_A2, SWIZ_XYZW, 16, 0), + FORMAT(R10G10B10A2_UINT, RGB10_A2UI, RGB10_A2UI, SWIZ_XYZW, 16, 0), + + FORMAT(A4B4G4R4_UNORM, ABGR4444, RGBA4, SWIZ_XYZW, 16, 0), diff --git a/gui/mesa/v3dx_format_table.c b/gui/mesa/v3dx_format_table.c new file mode 100644 index 0000000..ed4ab51 --- /dev/null +++ b/gui/mesa/v3dx_format_table.c @@ -0,0 +1,364 @@ +/* + * Copyright © 2014-2018 Broadcom + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#include "util/format/u_format.h" + +#include "v3d_context.h" +#include "broadcom/cle/v3dx_pack.h" +#include "broadcom/common/v3d_macros.h" +#include "v3d_format_table.h" + +#define SWIZ(x,y,z,w) { \ + PIPE_SWIZZLE_##x, \ + PIPE_SWIZZLE_##y, \ + PIPE_SWIZZLE_##z, \ + PIPE_SWIZZLE_##w \ +} + +#define FORMAT(pipe, rt, tex, swiz, return_size, return_channels) \ + [PIPE_FORMAT_##pipe] = { \ + true, \ + V3D_OUTPUT_IMAGE_FORMAT_##rt, \ + TEXTURE_DATA_FORMAT_##tex, \ + swiz, \ + return_size, \ + return_channels, \ + } + +#define SWIZ_X001 SWIZ(X, 0, 0, 1) +#define SWIZ_XY01 SWIZ(X, Y, 0, 1) +#define SWIZ_XYZ1 SWIZ(X, Y, Z, 1) +#define SWIZ_XYZW SWIZ(X, Y, Z, W) +#define SWIZ_YZWX SWIZ(Y, Z, W, X) +#define SWIZ_YZW1 SWIZ(Y, Z, W, 1) +#define SWIZ_ZYXW SWIZ(Z, Y, X, W) +#define SWIZ_ZYX1 SWIZ(Z, Y, X, 1) +#define SWIZ_XXXY SWIZ(X, X, X, Y) +#define SWIZ_XXX1 SWIZ(X, X, X, 1) +#define SWIZ_XXXX SWIZ(X, X, X, X) +#define SWIZ_000X SWIZ(0, 0, 0, X) + +static const struct v3d_format format_table[] = { + FORMAT(B8G8R8A8_UNORM, RGBA8, RGBA8, SWIZ_ZYXW, 16, 0), + FORMAT(B8G8R8X8_UNORM, RGBA8, RGBA8, SWIZ_ZYX1, 16, 0), + FORMAT(B8G8R8A8_SRGB, SRGB8_ALPHA8, RGBA8, SWIZ_ZYXW, 16, 0), + FORMAT(B8G8R8X8_SRGB, SRGB8_ALPHA8, RGBA8, SWIZ_ZYX1, 16, 0), + FORMAT(R8G8B8A8_UNORM, RGBA8, RGBA8, SWIZ_XYZW, 16, 0), + FORMAT(R8G8B8X8_UNORM, RGBA8, RGBA8, SWIZ_XYZ1, 16, 0), + FORMAT(R8G8B8A8_SRGB, SRGB8_ALPHA8, RGBA8, SWIZ_XYZW, 16, 0), + FORMAT(R8G8B8X8_SRGB, SRGB8_ALPHA8, RGBA8, SWIZ_XYZ1, 16, 0), + FORMAT(R8G8B8A8_SNORM, NO, RGBA8_SNORM, SWIZ_XYZW, 16, 0), + FORMAT(R8G8B8X8_SNORM, NO, RGBA8_SNORM, SWIZ_XYZ1, 16, 0), + FORMAT(R10G10B10A2_UNORM, RGB10_A2, RGB10_A2, SWIZ_XYZW, 16, 0), + FORMAT(R10G10B10X2_UNORM, RGB10_A2, RGB10_A2, SWIZ_XYZW, 16, 0), + FORMAT(R10G10B10A2_UINT, RGB10_A2UI, RGB10_A2UI, SWIZ_XYZW, 16, 0), + + FORMAT(A4B4G4R4_UNORM, ABGR4444, RGBA4, SWIZ_XYZW, 16, 0), + + FORMAT(A1B5G5R5_UNORM, ABGR1555, RGB5_A1, SWIZ_XYZW, 16, 0), + FORMAT(X1B5G5R5_UNORM, ABGR1555, RGB5_A1, SWIZ_XYZ1, 16, 0), + FORMAT(B5G6R5_UNORM, BGR565, RGB565, SWIZ_XYZ1, 16, 0), + + FORMAT(R8_UNORM, R8, R8, SWIZ_X001, 16, 0), + FORMAT(R8_SNORM, NO, R8_SNORM, SWIZ_X001, 16, 0), + FORMAT(R8G8_UNORM, RG8, RG8, SWIZ_XY01, 16, 0), + FORMAT(R8G8_SNORM, NO, RG8_SNORM, SWIZ_XY01, 16, 0), + + FORMAT(R16_UNORM, NO, R16, SWIZ_X001, 32, 1), + FORMAT(R16_SNORM, NO, R16_SNORM, SWIZ_X001, 32, 1), + FORMAT(R16_FLOAT, R16F, R16F, SWIZ_X001, 16, 0), + FORMAT(R32_FLOAT, R32F, R32F, SWIZ_X001, 32, 1), + + FORMAT(R16G16_UNORM, NO, RG16, SWIZ_XY01, 32, 2), + FORMAT(R16G16_SNORM, NO, RG16_SNORM, SWIZ_XY01, 32, 2), + FORMAT(R16G16_FLOAT, RG16F, RG16F, SWIZ_XY01, 16, 0), + FORMAT(R32G32_FLOAT, RG32F, RG32F, SWIZ_XY01, 32, 2), + + FORMAT(R16G16B16A16_UNORM, NO, RGBA16, SWIZ_XYZW, 32, 4), + FORMAT(R16G16B16A16_SNORM, NO, RGBA16_SNORM, SWIZ_XYZW, 32, 4), + FORMAT(R16G16B16A16_FLOAT, RGBA16F, RGBA16F, SWIZ_XYZW, 16, 0), + FORMAT(R32G32B32A32_FLOAT, RGBA32F, RGBA32F, SWIZ_XYZW, 32, 4), + + /* If we don't have L/A/LA16, mesa/st will fall back to RGBA16. */ + FORMAT(L16_UNORM, NO, R16, SWIZ_XXX1, 32, 1), + FORMAT(L16_SNORM, NO, R16_SNORM, SWIZ_XXX1, 32, 1), + FORMAT(I16_UNORM, NO, R16, SWIZ_XXXX, 32, 1), + FORMAT(I16_SNORM, NO, R16_SNORM, SWIZ_XXXX, 32, 1), + FORMAT(A16_UNORM, NO, R16, SWIZ_000X, 32, 1), + FORMAT(A16_SNORM, NO, R16_SNORM, SWIZ_000X, 32, 1), + FORMAT(L16A16_UNORM, NO, RG16, SWIZ_XXXY, 32, 2), + FORMAT(L16A16_SNORM, NO, RG16_SNORM, SWIZ_XXXY, 32, 2), + + FORMAT(A8_UNORM, NO, R8, SWIZ_000X, 16, 0), + FORMAT(L8_UNORM, NO, R8, SWIZ_XXX1, 16, 0), + FORMAT(I8_UNORM, NO, R8, SWIZ_XXXX, 16, 0), + FORMAT(L8A8_UNORM, NO, RG8, SWIZ_XXXY, 16, 0), + + FORMAT(R8_SINT, R8I, R8I, SWIZ_X001, 16, 0), + FORMAT(R8_UINT, R8UI, R8UI, SWIZ_X001, 16, 0), + FORMAT(R8G8_SINT, RG8I, RG8I, SWIZ_XY01, 16, 0), + FORMAT(R8G8_UINT, RG8UI, RG8UI, SWIZ_XY01, 16, 0), + FORMAT(R8G8B8A8_SINT, RGBA8I, RGBA8I, SWIZ_XYZW, 16, 0), + FORMAT(R8G8B8A8_UINT, RGBA8UI, RGBA8UI, SWIZ_XYZW, 16, 0), + + FORMAT(R16_SINT, R16I, R16I, SWIZ_X001, 16, 0), + FORMAT(R16_UINT, R16UI, R16UI, SWIZ_X001, 16, 0), + FORMAT(R16G16_SINT, RG16I, RG16I, SWIZ_XY01, 16, 0), + FORMAT(R16G16_UINT, RG16UI, RG16UI, SWIZ_XY01, 16, 0), + FORMAT(R16G16B16A16_SINT, RGBA16I, RGBA16I, SWIZ_XYZW, 16, 0), + FORMAT(R16G16B16A16_UINT, RGBA16UI, RGBA16UI, SWIZ_XYZW, 16, 0), + + FORMAT(R32_SINT, R32I, R32I, SWIZ_X001, 32, 1), + FORMAT(R32_UINT, R32UI, R32UI, SWIZ_X001, 32, 1), + FORMAT(R32G32_SINT, RG32I, RG32I, SWIZ_XY01, 32, 2), + FORMAT(R32G32_UINT, RG32UI, RG32UI, SWIZ_XY01, 32, 2), + FORMAT(R32G32B32A32_SINT, RGBA32I, RGBA32I, SWIZ_XYZW, 32, 4), + FORMAT(R32G32B32A32_UINT, RGBA32UI, RGBA32UI, SWIZ_XYZW, 32, 4), + + FORMAT(A8_SINT, R8I, R8I, SWIZ_000X, 16, 0), + FORMAT(A8_UINT, R8UI, R8UI, SWIZ_000X, 16, 0), + FORMAT(A16_SINT, R16I, R16I, SWIZ_000X, 16, 0), + FORMAT(A16_UINT, R16UI, R16UI, SWIZ_000X, 16, 0), + FORMAT(A32_SINT, R32I, R32I, SWIZ_000X, 32, 1), + FORMAT(A32_UINT, R32UI, R32UI, SWIZ_000X, 32, 1), + + FORMAT(R11G11B10_FLOAT, R11F_G11F_B10F, R11F_G11F_B10F, SWIZ_XYZ1, 16, 0), + FORMAT(R9G9B9E5_FLOAT, NO, RGB9_E5, SWIZ_XYZ1, 16, 0), + +#if V3D_VERSION >= 40 + FORMAT(S8_UINT_Z24_UNORM, D24S8, DEPTH24_X8, SWIZ_XXXX, 32, 1), + FORMAT(X8Z24_UNORM, D24S8, DEPTH24_X8, SWIZ_XXXX, 32, 1), + FORMAT(S8X24_UINT, S8, RGBA8UI, SWIZ_XXXX, 16, 1), + FORMAT(Z32_FLOAT, D32F, DEPTH_COMP32F, SWIZ_XXXX, 32, 1), + FORMAT(Z16_UNORM, D16, DEPTH_COMP16,SWIZ_XXXX, 32, 1), + + /* Pretend we support this, but it'll be separate Z32F depth and S8. */ + FORMAT(Z32_FLOAT_S8X24_UINT, D32F, DEPTH_COMP32F, SWIZ_XXXX, 32, 1), + FORMAT(X32_S8X24_UINT, S8, R8UI, SWIZ_XXXX, 16, 1), +#else + FORMAT(S8_UINT_Z24_UNORM, ZS_DEPTH24_STENCIL8, DEPTH24_X8, SWIZ_XXXX, 32, 1), + FORMAT(X8Z24_UNORM, ZS_DEPTH24_STENCIL8, DEPTH24_X8, SWIZ_XXXX, 32, 1), + FORMAT(S8X24_UINT, NO, R32F, SWIZ_XXXX, 32, 1), + FORMAT(Z32_FLOAT, ZS_DEPTH_COMPONENT32F, R32F, SWIZ_XXXX, 32, 1), + FORMAT(Z16_UNORM, ZS_DEPTH_COMPONENT16, DEPTH_COMP16, SWIZ_XXXX, 32, 1), + + /* Pretend we support this, but it'll be separate Z32F depth and S8. */ + FORMAT(Z32_FLOAT_S8X24_UINT, ZS_DEPTH_COMPONENT32F, R32F, SWIZ_XXXX, 32, 1), +#endif + + FORMAT(ETC2_RGB8, NO, RGB8_ETC2, SWIZ_XYZ1, 16, 0), + FORMAT(ETC2_SRGB8, NO, RGB8_ETC2, SWIZ_XYZ1, 16, 0), + FORMAT(ETC2_RGB8A1, NO, RGB8_PUNCHTHROUGH_ALPHA1, SWIZ_XYZW, 16, 0), + FORMAT(ETC2_SRGB8A1, NO, RGB8_PUNCHTHROUGH_ALPHA1, SWIZ_XYZW, 16, 0), + FORMAT(ETC2_RGBA8, NO, RGBA8_ETC2_EAC, SWIZ_XYZW, 16, 0), + FORMAT(ETC2_SRGBA8, NO, RGBA8_ETC2_EAC, SWIZ_XYZW, 16, 0), + FORMAT(ETC2_R11_UNORM, NO, R11_EAC, SWIZ_X001, 16, 0), + FORMAT(ETC2_R11_SNORM, NO, SIGNED_R11_EAC, SWIZ_X001, 16, 0), + FORMAT(ETC2_RG11_UNORM, NO, RG11_EAC, SWIZ_XY01, 16, 0), + FORMAT(ETC2_RG11_SNORM, NO, SIGNED_RG11_EAC, SWIZ_XY01, 16, 0), + + FORMAT(DXT1_RGB, NO, BC1, SWIZ_XYZ1, 16, 0), + FORMAT(DXT1_SRGB, NO, BC1, SWIZ_XYZ1, 16, 0), + FORMAT(DXT1_RGBA, NO, BC1, SWIZ_XYZW, 16, 0), + FORMAT(DXT1_SRGBA, NO, BC1, SWIZ_XYZW, 16, 0), + FORMAT(DXT3_RGBA, NO, BC2, SWIZ_XYZW, 16, 0), + FORMAT(DXT3_SRGBA, NO, BC2, SWIZ_XYZW, 16, 0), + FORMAT(DXT5_RGBA, NO, BC3, SWIZ_XYZW, 16, 0), + FORMAT(DXT5_SRGBA, NO, BC3, SWIZ_XYZW, 16, 0), +}; + +const struct v3d_format * +v3dX(get_format_desc)(enum pipe_format f) +{ + if (f < ARRAY_SIZE(format_table) && format_table[f].present) + return &format_table[f]; + else + return NULL; +} + +void +v3dX(get_internal_type_bpp_for_output_format)(uint32_t format, + uint32_t *type, + uint32_t *bpp) +{ + switch (format) { + case V3D_OUTPUT_IMAGE_FORMAT_RGBA8: +#if V3D_VERSION < 41 + case V3D_OUTPUT_IMAGE_FORMAT_RGBX8: +#endif + case V3D_OUTPUT_IMAGE_FORMAT_RGB8: + case V3D_OUTPUT_IMAGE_FORMAT_RG8: + case V3D_OUTPUT_IMAGE_FORMAT_R8: + case V3D_OUTPUT_IMAGE_FORMAT_ABGR4444: + case V3D_OUTPUT_IMAGE_FORMAT_BGR565: + case V3D_OUTPUT_IMAGE_FORMAT_ABGR1555: + *type = V3D_INTERNAL_TYPE_8; + *bpp = V3D_INTERNAL_BPP_32; + break; + + case V3D_OUTPUT_IMAGE_FORMAT_RGBA8I: + case V3D_OUTPUT_IMAGE_FORMAT_RG8I: + case V3D_OUTPUT_IMAGE_FORMAT_R8I: + *type = V3D_INTERNAL_TYPE_8I; + *bpp = V3D_INTERNAL_BPP_32; + break; + + case V3D_OUTPUT_IMAGE_FORMAT_RGBA8UI: + case V3D_OUTPUT_IMAGE_FORMAT_RG8UI: + case V3D_OUTPUT_IMAGE_FORMAT_R8UI: + *type = V3D_INTERNAL_TYPE_8UI; + *bpp = V3D_INTERNAL_BPP_32; + break; + + case V3D_OUTPUT_IMAGE_FORMAT_SRGB8_ALPHA8: + case V3D_OUTPUT_IMAGE_FORMAT_SRGB: + case V3D_OUTPUT_IMAGE_FORMAT_RGB10_A2: + case V3D_OUTPUT_IMAGE_FORMAT_R11F_G11F_B10F: +#if V3D_VERSION < 41 + case V3D_OUTPUT_IMAGE_FORMAT_SRGBX8: +#endif + case V3D_OUTPUT_IMAGE_FORMAT_RGBA16F: + /* Note that sRGB RTs are stored in the tile buffer at 16F, + * and the conversion to sRGB happens at tilebuffer + * load/store. + */ + *type = V3D_INTERNAL_TYPE_16F; + *bpp = V3D_INTERNAL_BPP_64; + break; + + case V3D_OUTPUT_IMAGE_FORMAT_RG16F: + case V3D_OUTPUT_IMAGE_FORMAT_R16F: + *type = V3D_INTERNAL_TYPE_16F; + /* Use 64bpp to make sure the TLB doesn't throw away the alpha + * channel before alpha test happens. + */ + *bpp = V3D_INTERNAL_BPP_64; + break; + + case V3D_OUTPUT_IMAGE_FORMAT_RGBA16I: + *type = V3D_INTERNAL_TYPE_16I; + *bpp = V3D_INTERNAL_BPP_64; + break; + case V3D_OUTPUT_IMAGE_FORMAT_RG16I: + case V3D_OUTPUT_IMAGE_FORMAT_R16I: + *type = V3D_INTERNAL_TYPE_16I; + *bpp = V3D_INTERNAL_BPP_32; + break; + + case V3D_OUTPUT_IMAGE_FORMAT_RGB10_A2UI: + case V3D_OUTPUT_IMAGE_FORMAT_RGBA16UI: + *type = V3D_INTERNAL_TYPE_16UI; + *bpp = V3D_INTERNAL_BPP_64; + break; + case V3D_OUTPUT_IMAGE_FORMAT_RG16UI: + case V3D_OUTPUT_IMAGE_FORMAT_R16UI: + *type = V3D_INTERNAL_TYPE_16UI; + *bpp = V3D_INTERNAL_BPP_32; + break; + + case V3D_OUTPUT_IMAGE_FORMAT_RGBA32I: + *type = V3D_INTERNAL_TYPE_32I; + *bpp = V3D_INTERNAL_BPP_128; + break; + case V3D_OUTPUT_IMAGE_FORMAT_RG32I: + *type = V3D_INTERNAL_TYPE_32I; + *bpp = V3D_INTERNAL_BPP_64; + break; + case V3D_OUTPUT_IMAGE_FORMAT_R32I: + *type = V3D_INTERNAL_TYPE_32I; + *bpp = V3D_INTERNAL_BPP_32; + break; + + case V3D_OUTPUT_IMAGE_FORMAT_RGBA32UI: + *type = V3D_INTERNAL_TYPE_32UI; + *bpp = V3D_INTERNAL_BPP_128; + break; + case V3D_OUTPUT_IMAGE_FORMAT_RG32UI: + *type = V3D_INTERNAL_TYPE_32UI; + *bpp = V3D_INTERNAL_BPP_64; + break; + case V3D_OUTPUT_IMAGE_FORMAT_R32UI: + *type = V3D_INTERNAL_TYPE_32UI; + *bpp = V3D_INTERNAL_BPP_32; + break; + + case V3D_OUTPUT_IMAGE_FORMAT_RGBA32F: + *type = V3D_INTERNAL_TYPE_32F; + *bpp = V3D_INTERNAL_BPP_128; + break; + case V3D_OUTPUT_IMAGE_FORMAT_RG32F: + *type = V3D_INTERNAL_TYPE_32F; + *bpp = V3D_INTERNAL_BPP_64; + break; + case V3D_OUTPUT_IMAGE_FORMAT_R32F: + *type = V3D_INTERNAL_TYPE_32F; + *bpp = V3D_INTERNAL_BPP_32; + break; + + default: + /* Provide some default values, as we'll be called at RB + * creation time, even if an RB with this format isn't + * supported. + */ + *type = V3D_INTERNAL_TYPE_8; + *bpp = V3D_INTERNAL_BPP_32; + break; + } +} + +bool +v3dX(tfu_supports_tex_format)(enum V3DX(Texture_Data_Formats) format, + bool for_mipmap) +{ + switch (format) { + case TEXTURE_DATA_FORMAT_R8: + case TEXTURE_DATA_FORMAT_R8_SNORM: + case TEXTURE_DATA_FORMAT_RG8: + case TEXTURE_DATA_FORMAT_RG8_SNORM: + case TEXTURE_DATA_FORMAT_RGBA8: + case TEXTURE_DATA_FORMAT_RGBA8_SNORM: + case TEXTURE_DATA_FORMAT_RGB565: + case TEXTURE_DATA_FORMAT_RGBA4: + case TEXTURE_DATA_FORMAT_RGB5_A1: + case TEXTURE_DATA_FORMAT_RGB10_A2: + case TEXTURE_DATA_FORMAT_R16: + case TEXTURE_DATA_FORMAT_R16_SNORM: + case TEXTURE_DATA_FORMAT_RG16: + case TEXTURE_DATA_FORMAT_RG16_SNORM: + case TEXTURE_DATA_FORMAT_RGBA16: + case TEXTURE_DATA_FORMAT_RGBA16_SNORM: + case TEXTURE_DATA_FORMAT_R16F: + case TEXTURE_DATA_FORMAT_RG16F: + case TEXTURE_DATA_FORMAT_RGBA16F: + case TEXTURE_DATA_FORMAT_R11F_G11F_B10F: + case TEXTURE_DATA_FORMAT_R4: + return true; + case TEXTURE_DATA_FORMAT_RGB9_E5: + case TEXTURE_DATA_FORMAT_R32F: + case TEXTURE_DATA_FORMAT_RG32F: + case TEXTURE_DATA_FORMAT_RGBA32F: + return !for_mipmap; + default: + return false; + } +} diff --git a/gui/pango/build.sh b/gui/pango/build.sh new file mode 100644 index 0000000..3938f94 --- /dev/null +++ b/gui/pango/build.sh @@ -0,0 +1,46 @@ +pkgname=pango +_pkgver=1.48 +pkgver=$_pkgver.10 + +fetch() { + curl -L "https://download.gnome.org/sources/pango/$_pkgver/pango-$pkgver.tar.xz" -o $pkgname-$pkgver.tar.xz + tar -xf $pkgname-$pkgver.tar.xz + mkdir $pkgname-$pkgver/build + cd $pkgname-$pkgver + rm -rf subprojects + : > tests/meson.build + : > examples/meson.build + : > docs/meson.build + patch -p1 < ../../no-fribidi.patch +} + +build() { + cd $pkgname-$pkgver + cd build + meson .. \ + --buildtype=release \ + --prefix=/usr \ + --libexecdir=lib \ + -Dgir=false \ + -Dgtk_doc=false \ + -Dxft=disabled \ + -Dintrospection=disabled \ + -Dinstall_tests=false + samu +} + +package() { + cd $pkgname-$pkgver + cd build + DESTDIR=$pkgdir samu install +} + +backup() { + return +} + +license() { + cd $pkgname-$pkgver + cat LICENSE +# cat COPYING +} diff --git a/gui/pango/no-fribidi.patch b/gui/pango/no-fribidi.patch new file mode 100644 index 0000000..33737c7 --- /dev/null +++ b/gui/pango/no-fribidi.patch @@ -0,0 +1,228 @@ +diff --git a/meson.build b/meson.build +index 6d8de0b..93141b0 100644 +--- a/meson.build ++++ b/meson.build +@@ -191,7 +191,6 @@ endif + pango_deps = [] + + glib_req_version = '>= 2.62' +-fribidi_req_version = '>= 1.0.6' + libthai_req_version = '>= 0.1.9' + harfbuzz_req_version = '>= 2.2.0' + fontconfig_req_version = '>= 2.11.91' +@@ -211,10 +210,6 @@ gio_dep = dependency('gio-2.0', version: glib_req_version, + fallback: ['glib', 'libgio_dep']) + pango_deps += [glib_dep, gobject_dep, gio_dep] + +-fribidi_dep = dependency('fribidi', version: fribidi_req_version, +- fallback: ['fribidi', 'libfribidi_dep'], +- default_options: ['docs=false']) +-pango_deps += fribidi_dep + + thai_dep = dependency('libthai', version: libthai_req_version, required: get_option('libthai')) + if thai_dep.found() +diff --git a/pango/pango-bidi-type.c b/pango/pango-bidi-type.c +index 32858f7..ca8adfc 100644 +--- a/pango/pango-bidi-type.c ++++ b/pango/pango-bidi-type.c +@@ -23,13 +23,20 @@ + + #include + +-#include +- + #undef PANGO_DISABLE_DEPRECATED + + #include "pango-bidi-type.h" + #include "pango-utils.h" + ++typedef uint32_t FriBidiChar; ++typedef uint32_t FriBidiCharType; ++typedef uint32_t FriBidiBracketType; ++typedef int FriBidiStrIndex; ++typedef int FriBidiParType; ++typedef signed char FriBidiLevel; ++ ++#define FRIBIDI_PAR_LTR (0x00000010L | 0x00000100L) ++ + /** + * pango_bidi_type_for_unichar: + * @ch: a Unicode character +@@ -48,40 +55,7 @@ + PangoBidiType + pango_bidi_type_for_unichar (gunichar ch) + { +- FriBidiCharType fribidi_ch_type; +- +- G_STATIC_ASSERT (sizeof (FriBidiChar) == sizeof (gunichar)); +- +- fribidi_ch_type = fribidi_get_bidi_type (ch); +- +- switch (fribidi_ch_type) +- { +- case FRIBIDI_TYPE_LTR: return PANGO_BIDI_TYPE_L; +- case FRIBIDI_TYPE_LRE: return PANGO_BIDI_TYPE_LRE; +- case FRIBIDI_TYPE_LRO: return PANGO_BIDI_TYPE_LRO; +- case FRIBIDI_TYPE_RTL: return PANGO_BIDI_TYPE_R; +- case FRIBIDI_TYPE_AL: return PANGO_BIDI_TYPE_AL; +- case FRIBIDI_TYPE_RLE: return PANGO_BIDI_TYPE_RLE; +- case FRIBIDI_TYPE_RLO: return PANGO_BIDI_TYPE_RLO; +- case FRIBIDI_TYPE_PDF: return PANGO_BIDI_TYPE_PDF; +- case FRIBIDI_TYPE_EN: return PANGO_BIDI_TYPE_EN; +- case FRIBIDI_TYPE_ES: return PANGO_BIDI_TYPE_ES; +- case FRIBIDI_TYPE_ET: return PANGO_BIDI_TYPE_ET; +- case FRIBIDI_TYPE_AN: return PANGO_BIDI_TYPE_AN; +- case FRIBIDI_TYPE_CS: return PANGO_BIDI_TYPE_CS; +- case FRIBIDI_TYPE_NSM: return PANGO_BIDI_TYPE_NSM; +- case FRIBIDI_TYPE_BN: return PANGO_BIDI_TYPE_BN; +- case FRIBIDI_TYPE_BS: return PANGO_BIDI_TYPE_B; +- case FRIBIDI_TYPE_SS: return PANGO_BIDI_TYPE_S; +- case FRIBIDI_TYPE_WS: return PANGO_BIDI_TYPE_WS; +- case FRIBIDI_TYPE_ON: return PANGO_BIDI_TYPE_ON; +- case FRIBIDI_TYPE_LRI: return PANGO_BIDI_TYPE_LRI; +- case FRIBIDI_TYPE_RLI: return PANGO_BIDI_TYPE_RLI; +- case FRIBIDI_TYPE_FSI: return PANGO_BIDI_TYPE_FSI; +- case FRIBIDI_TYPE_PDI: return PANGO_BIDI_TYPE_PDI; +- default: +- return PANGO_BIDI_TYPE_ON; +- } ++ return PANGO_BIDI_TYPE_L; + } + + /* Some bidi-related functions */ +@@ -116,36 +90,12 @@ pango_log2vis_get_embedding_levels (const gchar *text, + glong n_chars, i; + guint8 *embedding_levels_list; + const gchar *p; +- FriBidiParType fribidi_base_dir; + FriBidiCharType *bidi_types; + FriBidiBracketType *bracket_types; +- FriBidiLevel max_level; +- FriBidiCharType ored_types = 0; +- FriBidiCharType anded_strongs = FRIBIDI_TYPE_RLE; + + G_STATIC_ASSERT (sizeof (FriBidiLevel) == sizeof (guint8)); + G_STATIC_ASSERT (sizeof (FriBidiChar) == sizeof (gunichar)); + +- switch (*pbase_dir) +- { +- case PANGO_DIRECTION_LTR: +- case PANGO_DIRECTION_TTB_RTL: +- fribidi_base_dir = FRIBIDI_PAR_LTR; +- break; +- case PANGO_DIRECTION_RTL: +- case PANGO_DIRECTION_TTB_LTR: +- fribidi_base_dir = FRIBIDI_PAR_RTL; +- break; +- case PANGO_DIRECTION_WEAK_RTL: +- fribidi_base_dir = FRIBIDI_PAR_WRTL; +- break; +- case PANGO_DIRECTION_WEAK_LTR: +- case PANGO_DIRECTION_NEUTRAL: +- default: +- fribidi_base_dir = FRIBIDI_PAR_WLTR; +- break; +- } +- + if (length < 0) + length = strlen (text); + +@@ -157,20 +107,11 @@ pango_log2vis_get_embedding_levels (const gchar *text, + + for (i = 0, p = text; p < text + length; p = g_utf8_next_char(p), i++) + { +- gunichar ch = g_utf8_get_char (p); +- FriBidiCharType char_type = fribidi_get_bidi_type (ch); +- + if (i == n_chars) + break; + +- bidi_types[i] = char_type; +- ored_types |= char_type; +- if (FRIBIDI_IS_STRONG (char_type)) +- anded_strongs &= char_type; +- if (G_UNLIKELY(bidi_types[i] == FRIBIDI_TYPE_ON)) +- bracket_types[i] = fribidi_get_bracket (ch); +- else +- bracket_types[i] = FRIBIDI_NO_BRACKET; ++ bidi_types[i] = FRIBIDI_PAR_LTR; ++ bracket_types[i] = 0; + } + + /* Short-circuit (malloc-expensive) FriBidi call for unidirectional +@@ -187,56 +128,12 @@ pango_log2vis_get_embedding_levels (const gchar *text, + * o base_dir doesn't have an RTL taste. + * o there are letters, and base_dir is weak. + */ +- if (!FRIBIDI_IS_ISOLATE (ored_types) && +- !FRIBIDI_IS_RTL (ored_types) && +- !FRIBIDI_IS_ARABIC (ored_types) && +- (!FRIBIDI_IS_RTL (fribidi_base_dir) || +- (FRIBIDI_IS_WEAK (fribidi_base_dir) && +- FRIBIDI_IS_LETTER (ored_types)) +- )) +- { +- /* all LTR */ +- fribidi_base_dir = FRIBIDI_PAR_LTR; + memset (embedding_levels_list, 0, n_chars); +- goto resolved; +- } +- /* The case that all resolved levels will be RTL is much more complex. +- * No isolates, no numbers, all strongs are RTL, and one of +- * the following: +- * +- * o base_dir has an RTL taste (may be weak). +- * o there are letters, and base_dir is weak. +- */ +- else if (!FRIBIDI_IS_ISOLATE (ored_types) && +- !FRIBIDI_IS_NUMBER (ored_types) && +- FRIBIDI_IS_RTL (anded_strongs) && +- (FRIBIDI_IS_RTL (fribidi_base_dir) || +- (FRIBIDI_IS_WEAK (fribidi_base_dir) && +- FRIBIDI_IS_LETTER (ored_types)) +- )) +- { +- /* all RTL */ +- fribidi_base_dir = FRIBIDI_PAR_RTL; +- memset (embedding_levels_list, 1, n_chars); +- goto resolved; +- } +- +- +- max_level = fribidi_get_par_embedding_levels_ex (bidi_types, bracket_types, n_chars, +- &fribidi_base_dir, +- (FriBidiLevel*)embedding_levels_list); +- +- if (G_UNLIKELY(max_level == 0)) +- { +- /* fribidi_get_par_embedding_levels() failed. */ +- memset (embedding_levels_list, 0, length); +- } + +-resolved: + g_free (bidi_types); + g_free (bracket_types); + +- *pbase_dir = (fribidi_base_dir == FRIBIDI_PAR_LTR) ? PANGO_DIRECTION_LTR : PANGO_DIRECTION_RTL; ++ *pbase_dir = PANGO_DIRECTION_LTR; + + return embedding_levels_list; + } +@@ -260,17 +157,6 @@ resolved: + PangoDirection + pango_unichar_direction (gunichar ch) + { +- FriBidiCharType fribidi_ch_type; +- +- G_STATIC_ASSERT (sizeof (FriBidiChar) == sizeof (gunichar)); +- +- fribidi_ch_type = fribidi_get_bidi_type (ch); +- +- if (!FRIBIDI_IS_STRONG (fribidi_ch_type)) +- return PANGO_DIRECTION_NEUTRAL; +- else if (FRIBIDI_IS_RTL (fribidi_ch_type)) +- return PANGO_DIRECTION_RTL; +- else + return PANGO_DIRECTION_LTR; + } + diff --git a/gui/pipewire/build.sh b/gui/pipewire/build.sh new file mode 100644 index 0000000..0549167 --- /dev/null +++ b/gui/pipewire/build.sh @@ -0,0 +1,71 @@ +pkgname=pipewire +pkgver=0.3.42 + +fetch() { + curl "https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/$pkgver/pipewire-$pkgver.tar.bz2" -o $pkgname-$pkgver.tar.bz2 + tar -xf $pkgname-$pkgver.tar.bz2 + mkdir $pkgname-$pkgver/build +} + +build() { + cd $pkgname-$pkgver + cd build + meson .. \ + --buildtype=release \ + --prefix=/usr \ + --libexecdir=lib \ + -Ddocs=disabled \ + -Dexamples=disabled \ + -Dman=disabled \ + -Dinstalled_tests=disabled \ + -Dgstreamer=disabled \ + -Dsystemd=disabled \ + -Dpipewire-jack=disabled \ + -Dpipewire-alsa=enabled \ + -Dpipewire-v4l2=disabled \ + -Dspa-plugins=enabled \ + -Dalsa=enabled \ + -Daudiomixer=enabled \ + -Dbluez5=disabled \ + -Dcontrol=enabled \ + -Daudiotestsrc=enabled \ + -Dffmpeg=disabled \ + -Djack=disabled \ + -Dsupport=enabled \ + -Devl=disabled \ + -Dv4l2=disabled \ + -Ddbus=enabled \ + -Dlibcamera=disabled \ + -Dvideoconvert=disabled \ + -Dvideotestsrc=disabled \ + -Dvolume=enabled \ + -Dvulkan=disabled \ + -Dpw-cat=disabled \ + -Dudev=disabled \ + -Dsdl2=disabled \ + -Dsndfile=disabled \ + -Dlibpulse=disabled \ + -Droc=disabled \ + -Davahi=disabled \ + -Dlibusb=disabled \ + -Draop=disabled \ + -Dlv2=disabled \ + -Dsession-managers="[]" + + samu +} + +package() { + cd $pkgname-$pkgver + cd build + DESTDIR=$pkgdir samu install +} + +backup() { + return +} + +license() { + cd $pkgname-$pkgver + cat COPYING +} diff --git a/gui/qtbase/build.sh b/gui/qtbase/build.sh index 4e65cfc..64d1e20 100644 --- a/gui/qtbase/build.sh +++ b/gui/qtbase/build.sh @@ -20,13 +20,13 @@ build() { -platform linux-clang-libc++ \ -prefix /usr - gmake + bad --gmake gmake } package() { cd $pkgname-$pkgver cd build - gmake INSTALL_ROOT=$pkgdir install + bad --gmake gmake INSTALL_ROOT=$pkgdir install } license() { diff --git a/gui/qtdeclarative/build.sh b/gui/qtdeclarative/build.sh index d27c302..0320433 100644 --- a/gui/qtdeclarative/build.sh +++ b/gui/qtdeclarative/build.sh @@ -11,12 +11,12 @@ build() { cd $pkgname-$pkgver qmake - gmake + bad --gmake gmake } package() { cd $pkgname-$pkgver - gmake INSTALL_ROOT=$pkgdir install + bad --gmake gmake INSTALL_ROOT=$pkgdir install } license() { diff --git a/gui/qtwayland/build.sh b/gui/qtwayland/build.sh index d285ee4..4691702 100644 --- a/gui/qtwayland/build.sh +++ b/gui/qtwayland/build.sh @@ -11,12 +11,12 @@ build() { cd $pkgname-$pkgver qmake - gmake + bad --gmake gmake } package() { cd $pkgname-$pkgver - gmake INSTALL_ROOT=$pkgdir install + bad --gmake gmake INSTALL_ROOT=$pkgdir install } license() { diff --git a/gui/qtwebengine/build.sh b/gui/qtwebengine/build.sh index 3d861ab..1ca2c7b 100644 --- a/gui/qtwebengine/build.sh +++ b/gui/qtwebengine/build.sh @@ -16,12 +16,12 @@ build() { cd $pkgname-$pkgver qmake - gmake + bad --gmake gmake } package() { cd $pkgname-$pkgver - gmake INSTALL_ROOT=$pkgdir install + bad --gmake gmake INSTALL_ROOT=$pkgdir install } license() { diff --git a/gui/seatd/build.sh b/gui/seatd/build.sh index f36f1f2..cfcb640 100644 --- a/gui/seatd/build.sh +++ b/gui/seatd/build.sh @@ -1,5 +1,5 @@ pkgname=seatd -pkgver=0.5.0 +pkgver=0.6.3 fetch() { curl "https://git.sr.ht/~kennylevinsen/seatd/archive/$pkgver.tar.gz" -o $pkgname-$pkgver.tar.xz @@ -25,6 +25,10 @@ package() { DESTDIR=$pkgdir samu install } +backup() { + return +} + license() { cd $pkgname-$pkgver cat LICENSE diff --git a/gui/sndio/build.sh b/gui/sndio/build.sh index 061184a..0cef4f3 100644 --- a/gui/sndio/build.sh +++ b/gui/sndio/build.sh @@ -13,12 +13,12 @@ build() { --prefix=/usr \ --enable-alsa - gmake + bad --gmake gmake } package() { cd $pkgname-$pkgver - gmake install DESTDIR=$pkgdir + bad --gmake gmake install DESTDIR=$pkgdir rm -rf $pkgdir/usr/share/man @@ -28,7 +28,7 @@ package() { package_dev() { cd $pkgname-$pkgver - gmake install DESTDIR=$pkgdir + bad --gmake gmake install DESTDIR=$pkgdir rm -rf $pkgdir/usr/bin rm -rf $pkgdir/usr/share/man @@ -37,7 +37,7 @@ package_dev() { package_doc() { cd $pkgname-$pkgver - gmake install DESTDIR=$pkgdir + bad --gmake gmake install DESTDIR=$pkgdir rm -rf $pkgdir/usr/lib rm -rf $pkgdir/usr/bin diff --git a/gui/sway/build.sh b/gui/sway/build.sh index f0daca6..a819564 100644 --- a/gui/sway/build.sh +++ b/gui/sway/build.sh @@ -2,33 +2,28 @@ pkgname=sway pkgver=master fetch() { - curl -L "https://github.com/DCVIII/sway/archive/refs/heads/master.tar.gz" -o $pkgname-$pkgver.tar.gz - # local wlroots isn't new enough - curl -L "https://github.com/swaywm/wlroots/archive/refs/heads/master.tar.gz" -o wlroots-master.tar.gz + # curl -L "https://github.com/swaywm/sway/releases/download/$pkgver/sway-$pkgver.tar.gz" -o $pkgname-$pkgver.tar.xz + curl -L "https://github.com/swaywm/sway/archive/refs/heads/master.tar.gz" -o $pkgname-$pkgver.tar.gz tar -xf $pkgname-$pkgver.tar.gz - tar -xf wlroots-master.tar.gz - mkdir $pkgname-$pkgver/subprojects - mv wlroots-master $pkgname-$pkgver/subprojects/wlroots mkdir $pkgname-$pkgver/build + cd $pkgname-$pkgver } build() { cd $pkgname-$pkgver cd build - CFLAGS=-'Wno-unused-const-variable -Wno-unused-function -Wno-error' \ meson .. \ --buildtype=release \ --prefix=/usr \ --libexecdir=lib \ - -Dexamples=false \ + -Ddefault-wallpaper=true \ + -Dzsh-completions=true \ + -Dbash-completions=false \ + -Dfish-completions=false \ -Dxwayland=disabled \ - -Dxcb-errors=disabled \ - -Dxcb-icccm=disbeld \ - -Dwlroots:examples=false \ - -Dwlroots:xcb-errors=disabled \ - -Dwlroots:x11-backend=disabled \ - -Dwlroots:default_library=static - + -Dtray=disabled \ + -Dgdk-pixbuf=disabled \ + -Dman-pages=disabled samu } @@ -36,9 +31,10 @@ package() { cd $pkgname-$pkgver cd build DESTDIR=$pkgdir samu install +} - rm -rf $pkgdir/usr/lib/ - rm -rf $pkgdir/usr/include/ +backup() { + echo /etc/sway/config } license() { diff --git a/gui/swaybg/build.sh b/gui/swaybg/build.sh new file mode 100644 index 0000000..23896e4 --- /dev/null +++ b/gui/swaybg/build.sh @@ -0,0 +1,30 @@ +pkgname=swaybg +pkgver=1.1 + +fetch() { + curl -L "https://github.com/swaywm/swaybg/releases/download/v$pkgver/swaybg-$pkgver.tar.gz" -o $pkgname-$pkgver.tar.gz + tar -xf $pkgname-$pkgver.tar.gz + mkdir $pkgname-$pkgver/build +} + +build() { + cd $pkgname-$pkgver + cd build + meson .. \ + --buildtype=release \ + --prefix=/usr \ + --libexecdir=lib + samu +} + +package() { + cd $pkgname-$pkgver + cd build + DESTDIR=$pkgdir samu install +} + +license() { + cd $pkgname-$pkgver + cat LICENSE +# cat COPYING +} diff --git a/gui/vulkan-headers/build.sh b/gui/vulkan-headers/build.sh index 3bd47f4..29189c6 100644 --- a/gui/vulkan-headers/build.sh +++ b/gui/vulkan-headers/build.sh @@ -1,8 +1,8 @@ pkgname=vulkan-headers -pkgver=1.2.182 +pkgver=1.2.196 fetch() { - curl -L "https://github.com/KhronosGroup/Vulkan-Headers/archive/v1.2.182.tar.gz" -o $pkgname-$pkgver.tar.xz + curl -L "https://github.com/KhronosGroup/Vulkan-Headers/archive/v$pkgver.tar.gz" -o $pkgname-$pkgver.tar.xz tar -xf $pkgname-$pkgver.tar.xz mv Vulkan-Headers-$pkgver $pkgname-$pkgver mkdir $pkgname-$pkgver/build diff --git a/gui/wayland-protocols/build.sh b/gui/wayland-protocols/build.sh index 2239f7f..8f5483a 100644 --- a/gui/wayland-protocols/build.sh +++ b/gui/wayland-protocols/build.sh @@ -1,21 +1,31 @@ pkgname=wayland-protocols -pkgver=1.21 -deps="pkgconf:wayland" +pkgver=1.24 +deps="musl:pkgconf:wayland" fetch() { curl "https://wayland.freedesktop.org/releases/wayland-protocols-$pkgver.tar.xz" -o $pkgname-$pkgver.tar.xz tar -xf $pkgname-$pkgver.tar.xz + mkdir $pkgname-$pkgver/build } build() { cd $pkgname-$pkgver - ./configure --prefix=/usr - make + cd build + meson .. \ + --buildtype=release \ + --prefix=/usr \ + --libexecdir=lib + samu } package() { cd $pkgname-$pkgver - make DESTDIR=$pkgdir install + cd build + DESTDIR=$pkgdir samu install +} + +backup() { + return } license() { diff --git a/gui/wayland/build.sh b/gui/wayland/build.sh index 6c8bcba..ce68c57 100644 --- a/gui/wayland/build.sh +++ b/gui/wayland/build.sh @@ -1,9 +1,8 @@ pkgname=wayland -pkgver=1.19.0 -deps="libxml2" +pkgver=1.20.0 fetch() { - curl "https://wayland.freedesktop.org/releases/wayland-1.19.0.tar.xz" -o $pkgname-$pkgver.tar.xz + curl "https://wayland.freedesktop.org/releases/wayland-$pkgver.tar.xz" -o $pkgname-$pkgver.tar.xz tar -xf $pkgname-$pkgver.tar.xz mkdir $pkgname-$pkgver/build } @@ -14,7 +13,11 @@ build() { meson .. \ --buildtype=release \ --prefix=/usr \ - -Ddocumentation=false + -Dlibraries=true \ + -Dscanner=true \ + -Dtests=false \ + -Ddocumentation=false \ + -Ddtd_validation=false samu } @@ -24,6 +27,10 @@ package() { DESTDIR=$pkgdir samu install } +backup() { + return +} + license() { cd $pkgname-$pkgver cat COPYING diff --git a/gui/wlroots/build.sh b/gui/wlroots/build.sh index fd9793e..8cfdbd9 100644 --- a/gui/wlroots/build.sh +++ b/gui/wlroots/build.sh @@ -1,9 +1,8 @@ pkgname=wlroots -pkgver=0.14.0 -ext="dev" +pkgver=0.15.0 fetch() { - curl -L "https://github.com/swaywm/wlroots/releases/download/$pkgver/wlroots-$pkgver.tar.gz" -o $pkgname-$pkgver.tar.xz + curl -L "https://gitlab.freedesktop.org/wlroots/wlroots/-/archive/$pkgver/wlroots-$pkgver.tar.gz" -o $pkgname-$pkgver.tar.xz tar -xf $pkgname-$pkgver.tar.xz mkdir $pkgname-$pkgver/build } @@ -15,7 +14,11 @@ build() { --buildtype=release \ --prefix=/usr \ --libexecdir=lib \ - -Dlibseat=enabled + -Dxcb-errors=disabled \ + -Dxwayland=disabled \ + -Dexamples=false \ + -Drenderers="['gles2', 'vulkan']" \ + -Dbackends="['drm', 'libinput']" samu } @@ -23,16 +26,10 @@ package() { cd $pkgname-$pkgver cd build DESTDIR=$pkgdir samu install - rm -r $pkgdir/usr/include - rm -r $pkgdir/usr/lib/pkgconfig } -package_dev() { - cd $pkgname-$pkgver - cd build - DESTDIR=$pkgdir samu install - rm $pkgdir/usr/lib/*.so - rm $pkgdir/usr/lib/*.so.* +backup() { + return } license() { diff --git a/gui/xkeyboard-config/build.sh b/gui/xkeyboard-config/build.sh new file mode 100644 index 0000000..9b1e031 --- /dev/null +++ b/gui/xkeyboard-config/build.sh @@ -0,0 +1,30 @@ +pkgname=xkeyboard-config +pkgver=2.33 + +fetch() { + curl "https://xorg.freedesktop.org/archive/individual/data/$pkgname/$pkgname-$pkgver.tar.bz2" -o $pkgname-$pkgver.tar.xz + tar -xf $pkgname-$pkgver.tar.xz + mkdir $pkgname-$pkgver/build +} + +build() { + cd $pkgname-$pkgver + cd build + meson .. \ + --buildtype=release \ + --prefix=/usr \ + --libexecdir=lib + samu +} + +package() { + cd $pkgname-$pkgver + cd build + DESTDIR=$pkgdir samu install +} + +license() { + cd $pkgname-$pkgver + cat LICENSE +# cat COPYING +} diff --git a/linux/busybox/build.sh b/linux/busybox/build.sh index 345db0c..c612d0f 100644 --- a/linux/busybox/build.sh +++ b/linux/busybox/build.sh @@ -1,4 +1,4 @@ -pkgver=1.33.1 +pkgver=1.34.1 pkgname=busybox bad=gmake deps="musl" @@ -7,14 +7,17 @@ pkgrel=1 fetch() { curl "https://busybox.net/downloads/busybox-$pkgver.tar.bz2" -o $pkgname-$pkgver.tar.gz tar -xf $pkgname-$pkgver.tar.gz + cd $pkgname-$pkgver + # patch -p1 < ../../clang-fix.patch + # patch -p1 < ../../modprobe.patch # cp ../man.sh . } build() { cd $pkgname-$pkgver - gmake HOSTCC=cc CC=cc CFLAGS=-O0 defconfig - gmake HOSTCC=cc CC=cc CFLAGS=-O0 - gmake HOSTCC=cc CC=cc CFLAGS=-O0 install + bad --gmake gmake HOSTCC=cc CC=$CC CFLAGS=-O0 defconfig + bad --gmake gmake HOSTCC=cc CC=$CC CFLAGS=-O0 + bad --gmake gmake HOSTCC=cc CC=$CC CFLAGS=-O0 install } package() { @@ -27,7 +30,7 @@ package() { # install -Dm755 ../man.sh $pkgdir/etc/profile.d install -Dm755 ./examples/udhcp/simple.script $pkgdir/usr/share/udhcpc/default.script - + rm $pkgdir/linuxrc rm $pkgdir/bin/ln rm $pkgdir/bin/uname @@ -192,6 +195,10 @@ package() { rm $pkgdir/usr/bin/man } +backup() { + return +} + license() { cd $pkgname-$pkgver cat LICENSE diff --git a/linux/busybox/clang-fix.patch b/linux/busybox/clang-fix.patch new file mode 100644 index 0000000..ce77652 --- /dev/null +++ b/linux/busybox/clang-fix.patch @@ -0,0 +1 @@ +You are being redirected. \ No newline at end of file diff --git a/linux/busybox/modprobe.patch b/linux/busybox/modprobe.patch new file mode 100644 index 0000000..e69de29 diff --git a/linux/limine/build.sh b/linux/limine/build.sh index 753f021..7eaf892 100644 --- a/linux/limine/build.sh +++ b/linux/limine/build.sh @@ -1,30 +1,33 @@ pkgname=limine -pkgver=2.55 +pkgver=3.4.4 mkdeps="nasm:llvm" +auto_cross fetch() { - curl -L "https://github.com/limine-bootloader/limine/releases/download/v$pkgver/limine-v$pkgver.tar.xz" -o $pkgname-$pkgver.tar.xz + curl -L "https://github.com/limine-bootloader/limine/releases/download/v$pkgver/limine-$pkgver.tar.xz" -o $pkgname-$pkgver.tar.xz tar -xf $pkgname-$pkgver.tar.xz - mv $pkgname-v$pkgver $pkgname-$pkgver } build() { cd $pkgname-$pkgver - gmake limine-bios bin/limine-install CC="clang" TOOLCHAIN="llvm" TOOLCHAIN_CC="clang" TOOLCHAIN_LD="ld.lld" -j1 + export LIMINE_CC=clang + bad --gmake ./configure \ + --build=$HOST_TRIPLE \ + --host=$TRIPLE \ + --prefix=/usr + bad --gmake gmake } package() { cd $pkgname-$pkgver - mkdir -p $pkgdir/usr/sbin/ - install -m 755 ./bin/limine-install $pkgdir/usr/sbin/ - mkdir -p $pkgdir/usr/share/limine/ - install -m 644 ./bin/limine-cd.bin $pkgdir/usr/share/limine/ - install -m 644 ./bin/limine-hdd.bin $pkgdir/usr/share/limine/ - install -m 644 ./bin/limine-pxe.bin $pkgdir/usr/share/limine/ - install -m 644 ./bin/limine.sys $pkgdir/usr/share/limine/ + bad --gmake gmake install DESTDIR=$pkgdir } license() { cd $pkgname-$pkgver cat LICENSE.md } + +backup() { + return +} diff --git a/linux/linux/build.sh b/linux/linux/build.sh index b154dc0..155f020 100644 --- a/linux/linux/build.sh +++ b/linux/linux/build.sh @@ -1,49 +1,119 @@ -pkgver=5.13.8 pkgname=linux pkgrel=1 ext="dev" +# setting the KERNEL_TREE environment variable changes the source +# location and updates the pkgver accordingly +# +# currently the following valuse for KERNEL_TREE are supported: +# - mainline - latest stable linux kernel release with alpine's config +# +# - asahi - latest asahi kernel from git with config taken form their PKGBUILD +# repo +# +# - rpi - latest raspberry pi kernel release with defconfig +# +# - visionfive - latest starfive-tech kernel from the vision five branch with +# visionfive_defconfig +# +# - megi - latest megi kernel with pinephone_pro_defconfig +# +# TODO: +# add KERNEL_CONFIG option to override config used when compiling + +if [ -z "$KERNEL_TREE" ]; then + KERNEL_TREE=mainline +fi + +case "$KERNEL_TREE" in + mainline) + pkgver=5.19.1 + src_tar="https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-$pkgver.tar.xz" + fetch_config="https://git.alpinelinux.org/aports/plain/community/linux-edge/config-edge.$(uname -m)" + config=olddefconfig + ;; + asahi) + pkgver=asahi + src_tar="https://github.com/AsahiLinux/linux/archive/refs/heads/asahi.tar.gz" + fetch_config="https://raw.githubusercontent.com/AsahiLinux/PKGBUILDs/main/linux-asahi/config" + config=olddefconfig + ;; + visionfive) + pkgver=visionfive + src_tar="https://github.com/starfive-tech/linux/archive/refs/heads/visionfive.tar.gz" + config=visionfive_defconfig + ;; + *) + fatal "KERNEL_TREE $KERNEL_TREE isn't supported yet" + ;; +esac + fetch() { - curl "https://raw.githubusercontent.com/kisslinux/website/master/site/dist/kernel-no-perl.patch" -o kernel-no-perl.patch - curl "https://cdn.kernel.org/pub/linux/kernel/v5.x/$pkgname-$pkgver.tar.xz" -o $pkgname-$pkgver.tar.xz - tar -xf $pkgname-$pkgver.tar.xz - cd $pkgname-$pkgver + curl -L "$src_tar" -o $pkgname-$pkgver.tar + tar -xf $pkgname-$pkgver.tar # use Alpine's kernel config so we don't have to maintain one - curl "https://git.alpinelinux.org/aports/plain/community/linux-edge/config-edge.$(uname -m)" -o .config - patch -p1 < ../kernel-no-perl.patch - patch -p1 < ../../kernel-byacc.patch - patch -p1 < ../../reflex.patch + [ ! -z "$fetch_config" ] && curl "$fetch_config" -o .config + cd $pkgname-$pkgver + echo "#!/bin/true" > scripts/check-local-export } +_arch=$ARCH +case $_arch in +aarch64*) _arch="arm64" ;; +riscv64*) _arch="riscv" ;; +ppc64le*) _arch="powerpc" ;; +esac + +if [ ! -z "$WITH_CROSS" ]; then + export CROSS_COMPILE=$WITH_CROSS-linux-musl +fi + +if [ ! -z "$FOR_CROSS" ]; then + export HEADS_ONLY=1 +fi + + build() { cd $pkgname-$pkgver - # gmake CC=cc CXX=c++ HOSTCC=cc HOSTCXX=c++ YACC=yacc LLVM_IAS=1 defconfig - gmake CC=cc CXX=c++ HOSTCC=cc HOSTCXX=c++ LEX=reflex YACC=yacc LLVM_IAS=1 olddefconfig - # gmake CC=cc CXX=c++ HOSTCC=cc HOSTCXX=c++ LEX=lex YACC=yacc LLVM_IAS=1 menuconfig - # cp .config ../../$(uname -m).config.new - sed -i 's/CONFIG_UNWINDER_ORC=y/# CONFIG_UNWINDER_ORC is not set/g' .config - sed -i 's/# CONFIG_UNWINDER_FRAME_POINTER is not set/CONFIG_UNWINDER_FRAME_POINTER=y/g' .config - gmake CC=cc CXX=c++ HOSTCC=cc HOSTCXX=c++ LEX=reflex YACC=yacc LLVM_IAS=1 + [ ! -z "$fetch_config" ] && cp ../.config . + bad --gmake gmake CC=clang HOSTCC=clang YACC=yacc LLVM=1 LLVM_IAS=1 ARCH=$_arch "$config" + + # sed -i 's/CONFIG_UNWINDER_ORC=y/# CONFIG_UNWINDER_ORC is not set/g' .config + # sed -i 's/# CONFIG_UNWINDER_FRAME_POINTER is not set/CONFIG_UNWINDER_FRAME_POINTER=y/g' .config + + if [ -z "$HEADS_ONLY" ]; then + bad --gmake gmake CC=clang HOSTCC=clang YACC=yacc LLVM=1 LLVM_IAS=1 ARCH=$_arch + fi } package() { cd $pkgname-$pkgver - install -d $pkgdir/boot - gmake CC=cc CXX=c++ HOSTCC=cc HOSTCXX=c++ YACC=yacc LLVM_IAS=1 INSTALL_PATH=$pkgdir/boot install - gmake CC=cc CXX=c++ HOSTCC=cc HOSTCXX=c++ YACC=yacc LLVM_IAS=1 INSTALL_MOD_PATH=$pkgdir/ modules_install + + if [ -z "$HEADS_ONLY" ]; then + install -d $pkgdir/boot + bad --gmake gmake CC=cc HOSTCC=cc YACC=yacc LLVM=1 LLVM_IAS=1 ARCH=$_arch INSTALL_PATH=$pkgdir/boot install + + set +e # depmod causes errors and not all configs have dtbs + bad --gmake gmake CC=cc HOSTCC=cc YACC=yacc LLVM=1 LLVM_IAS=1 ARCH=$_arch INSTALL_DTBS_PATH=$pkgdir/boot/dtbs dtbs_install + bad --gmake gmake CC=cc HOSTCC=cc YACC=yacc LLVM=1 LLVM_IAS=1 ARCH=$_arch INSTALL_MOD_PATH=$pkgdir/ modules_install + set -e + fi + + bad --gmake gmake CC=cc HOSTCC=cc YACC=yacc LLVM=1 LLVM_IAS=1 ARCH=$_arch headers + find -name '.*' -exec rm {} \; + rm -f usr/include/Makefile + if [ -z "$FOR_CROSS" ]; then + install -d $pkgdir/usr/ + cp -r usr/include $pkgdir/usr/ + else + install -d $pkgdir/$FOR_CROSS_DIR/ + cp -r usr/include $pkgdir/$FOR_CROSS_DIR/ + fi } -package_dev() { - cd $pkgname-$pkgver - if stat /usr/bin/rsync 2>/dev/null /dev/null; then - gmake CC=cc CXX=c++ HOSTCC=cc HOSTCXX=c++ YACC=yacc LLVM_IAS=1 INSTALL_HDR_PATH=$pkgdir/usr headers_install - else - gmake CC=cc CXX=c++ HOSTCC=cc HOSTCXX=c++ YACC=yacc LLVM_IAS=1 headers - find -name '.*' -exec rm {} \; - rm usr/include/Makefile - cp -r usr/include $pkgdir/usr - fi +backup() { + return } license() { diff --git a/linux/linux/v3d-enable.patch b/linux/linux/v3d-enable.patch new file mode 100644 index 0000000..e9d1e54 --- /dev/null +++ b/linux/linux/v3d-enable.patch @@ -0,0 +1,30 @@ +From 24662c14b45852c2d5fc4721b1494bce8345319d Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Thu, 15 Aug 2019 12:02:34 +0100 +Subject: [PATCH] configs: arm64/bcm2711: Enable V3D + +Enable the V3D driver, which depends on BCM2835_POWER. + +Originally submitted by GitHub user 'phire' in a slightly different +form. + +See: https://github.com/raspberrypi/linux/pull/3063 + +Signed-off-by: Phil Elwell +--- + drivers/gpu/drm/v3d/Kconfig | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/v3d/Kconfig b/drivers/gpu/drm/v3d/Kconfig +index 9a5c44606337e..b0e0486979642 100644 +--- a/drivers/gpu/drm/v3d/Kconfig ++++ b/drivers/gpu/drm/v3d/Kconfig +@@ -1,7 +1,7 @@ + # SPDX-License-Identifier: GPL-2.0-only + config DRM_V3D + tristate "Broadcom V3D 3.x and newer" +- depends on ARCH_BCM || ARCH_BCMSTB || COMPILE_TEST ++ depends on ARCH_BCM || ARCH_BCMSTB || ARCH_BCM2835 || COMPILE_TEST + depends on DRM + depends on COMMON_CLK + depends on MMU diff --git a/linux/make_ext4fs/build.sh b/linux/make_ext4fs/build.sh new file mode 100644 index 0000000..088b230 --- /dev/null +++ b/linux/make_ext4fs/build.sh @@ -0,0 +1,31 @@ +pkgname=make_ext4fs +pkgver=main +mkdeps=toybox:bmake:llvm +deps=musl:zlib-ng +auto_cross + +fetch() { + curl -L "https://github.com/iglunix/make_ext4fs/archive/refs/heads/main.tar.gz" -o $pkgname-$pkgver.tar.gz + tar -xf $pkgname-$pkgver.tar.gz +} + +build() { + cd $pkgname-$pkgver + make +} + +package() { + cd $pkgname-$pkgver + install -d $pkgdir/sbin + install -Dm755 ./make_ext4fs $pkgdir/sbin/mkfs.ext4 +} + +license() { + cd $pkgname-$pkgver + cat LICENSE +# cat COPYING +} + +backup() { + return +} diff --git a/linux/musl/bits.meson.build b/linux/musl/bits.meson.build new file mode 100644 index 0000000..3e3bd59 --- /dev/null +++ b/linux/musl/bits.meson.build @@ -0,0 +1,32 @@ +alltypes_h = custom_target( + 'alltypes.h', + output : 'alltypes.h', + input : [ + meson.project_source_root() + '/tools/mkalltypes.sed', + meson.project_source_root() + '/arch/'+arch+'/bits/alltypes.h.in', + meson.project_source_root() + '/include/alltypes.h.in' + ], + command : ['sed', '-f', '@INPUT0@', '@INPUT1@', '@INPUT2@'], + capture : true, + install : true, + install_dir : 'include/bits/' +) + +syscall_h_in = custom_target( + 'syscall.in', + output : 'syscall.in', + input : meson.project_source_root() + '/arch/'+arch+'/bits/syscall.h.in', + command : ['sed', '-n', '-e', 's/__NR_/SYS_/p', '@INPUT@'], + capture : true +) + +syscall_h = custom_target( + 'syscall.h', + output : 'syscall.h', + input : [ meson.project_source_root() + '/arch/'+arch+'/bits/syscall.h.in', syscall_h_in ], + command : ['cat', '@INPUT0@', '@INPUT1@'], + capture : true, + install : true, + install_dir : 'include/bits/' +) + diff --git a/linux/musl/build.sh b/linux/musl/build.sh index 9330ded..36c962b 100644 --- a/linux/musl/build.sh +++ b/linux/musl/build.sh @@ -8,37 +8,44 @@ ext="dev" fetch() { curl "https://musl.libc.org/releases/$pkgname-$pkgver.tar.gz" -o $pkgname-$pkgver.tar.gz tar -xf $pkgname-$pkgver.tar.gz + ln -s /usr/bin/cc $ARCH-linux-musl-cc + cd $pkgname-$pkgver } + +if [ -z "$FOR_CROSS" ]; then + PREFIX=/usr +else + PREFIX=$FOR_CROSS_DIR +fi + + build() { cd $pkgname-$pkgver - ./configure \ - --prefix=/usr \ - --build=$(uname -m)-unknown-linux-musl \ - --host=$(uname -m)-unknown-linux-musl \ - --enable-wrapper=no - gmake + + + CC=$(pwd)/../$ARCH-linux-musl-cc ./configure \ + --prefix=$PREFIX \ + --target=$TRIPLE \ + --disable-wrapper + + bad --gmake gmake } package() { cd $pkgname-$pkgver - gmake install DESTDIR=$pkgdir - rm -r $pkgdir/usr/include - install -d $pkgdir/usr/bin - - rm $pkgdir/lib/ld-musl-$(uname -m).so.1 - mv $pkgdir/usr/lib/libc.so $pkgdir/lib/ld-musl-$(uname -m).so.1 - - ln -sr $pkgdir/lib/ld-musl-$(uname -m).so.1 $pkgdir/usr/lib/libc.so - - ln -sr $pkgdir/lib/ld-musl-$(uname -m).so.1 $pkgdir/usr/bin/ldd + bad --gmake gmake DESTDIR=$pkgdir install + rm $pkgdir/lib/ld-musl-$ARCH.so.1 + mv $pkgdir/$PREFIX/lib/libc.so $pkgdir/lib/ld-musl-$ARCH.so.1 + ln -sr $pkgdir/lib/ld-musl-$ARCH.so.1 $pkgdir/$PREFIX/lib/libc.so + if [ -z "$FOR_CROSS" ]; then + install -d $pkgdir/$PREFIX/bin + ln -sr $pkgdir/lib/ld-musl-$ARCH.so.1 $pkgdir/$PREFIX/bin/ldd + fi } -package_dev() { - cd $pkgname-$pkgver - gmake install DESTDIR=$pkgdir - rm $pkgdir/usr/lib/*.so - rm -rf $pkgdir/lib +backup() { + return } license() { diff --git a/linux/musl/crt.meson.build b/linux/musl/crt.meson.build new file mode 100644 index 0000000..23c4b25 --- /dev/null +++ b/linux/musl/crt.meson.build @@ -0,0 +1,45 @@ +Scrt1 = custom_target('Scrt1.o', + output : 'Scrt1.o', + input : 'Scrt1.c', + command : [ cc.cmd_array(), inc_dir_flags, c_args, '-DCRT', '-c', '-o', '@OUTPUT@', '@INPUT@' ], + depends : [ alltypes_h, syscall_h, version_h ], + install : true, + install_dir: 'lib' +) + +rcrt1 = custom_target('rcrt1.o', + output : 'rcrt1.o', + input : 'rcrt1.c', + command : [ cc.cmd_array(), inc_dir_flags, c_args, '-DCRT', '-c', '-o', '@OUTPUT@', '@INPUT@' ], + depends : [ alltypes_h, syscall_h, version_h ], + install : true, + install_dir: 'lib' +) + +crt1 = custom_target('crt1.o', + output : 'crt1.o', + input : 'crt1.c', + command : [ cc.cmd_array(), inc_dir_flags, c_args, '-DCRT', '-c', '-o', '@OUTPUT@', '@INPUT@' ], + depends : [ alltypes_h, syscall_h, version_h ], + install : true, + install_dir: 'lib' +) + +crti = custom_target('crti.o', + output : 'crti.o', + input : target_machine.cpu_family() + '/crti.s', + command : [ cc.cmd_array(), inc_dir_flags, c_args, '-DCRT', '-c', '-o', '@OUTPUT@', '@INPUT@' ], + depends : [ alltypes_h, syscall_h, version_h ], + install : true, + install_dir: 'lib' +) + +crtn = custom_target('crtn.o', + output : 'crtn.o', + input : target_machine.cpu_family() + '/crtn.s', + command : [ cc.cmd_array(), inc_dir_flags, c_args, '-DCRT', '-c', '-o', '@OUTPUT@', '@INPUT@' ], + depends : [ alltypes_h, syscall_h, version_h ], + install : true, + install_dir: 'lib' +) + diff --git a/linux/musl/glob.sh b/linux/musl/glob.sh new file mode 100755 index 0000000..959e6a2 --- /dev/null +++ b/linux/musl/glob.sh @@ -0,0 +1,23 @@ +#!/bin/sh + +ARCH=$1 +MALLOC_IMPL=mallocng + +ARCH_FILES=src/*/x86_64/*.[csS] + +HAVE=$(echo $ARCH_FILES | tr ' ' '\n' | sed 's|'$ARCH/'||g' | cut -d'.' -f 1) +echo $ARCH_FILES | tr ' ' '\n' + +FILES=$(echo src/*/*.[csS] | tr ' ' '\n') +for have in $HAVE; do + FILES=$(echo $FILES | tr ' ' '\n' | grep -v $have'.[csS]') +done + +echo $FILES | tr ' ' '\n' + +echo src/malloc/$MALLOC_IMPL/*.[csS] | tr ' ' '\n' + +#find src/*/ -maxdepth 1 -name '*.[csS]' + +#find src/*/$ARCH -maxdepth 1 -name '*.[csS]' + diff --git a/linux/musl/globbits.sh b/linux/musl/globbits.sh new file mode 100755 index 0000000..a6d4a20 --- /dev/null +++ b/linux/musl/globbits.sh @@ -0,0 +1,13 @@ +#!/bin/sh +ARCH=$1 + +ARCH_INC=arch/$ARCH/bits/*.h +echo $ARCH_INC | tr ' ' '\n' + +HAVE=$(echo $ARCH_INC | tr ' ' '\n' | sed 's|'$ARCH'|generic|g') + +INCLUDES=arch/generic/bits/*.h +for inc in $HAVE; do + INCLUDES=$(echo $INCLUDES | tr ' ' '\n' | grep -v $inc) +done +echo $INCLUDES | tr ' ' '\n' diff --git a/linux/musl/meson.build b/linux/musl/meson.build new file mode 100644 index 0000000..483817d --- /dev/null +++ b/linux/musl/meson.build @@ -0,0 +1,139 @@ +project('musl', 'c', version : '1.2.2', license : 'MIT') + +cc = meson.get_compiler('c') +cmd = cc.cmd_array() +cmd += '--print-libgcc-file-name' +libgcc = run_command(cmd) +libgcc = libgcc.stdout().strip() + +arch = target_machine.cpu() + + +message('libgcc: ', libgcc) + +globbed_sources = run_command(meson.project_source_root() + '/glob.sh', target_machine.cpu_family()) +newline= ''' +''' +globbed_sources = globbed_sources.stdout().strip().split(newline) + + +globbed_headers = run_command(meson.project_source_root() + '/globbits.sh', target_machine.cpu_family()) + +globbed_headers = globbed_headers.stdout().strip().split(newline) + +install_headers(globbed_headers, subdir: 'bits') +install_headers( + run_command('find', meson.project_source_root() + '/include/', '-name', '*.h').stdout().strip().split(newline) +) +install_headers( + run_command('find', meson.project_source_root() + '/include/net', '-name', '*.h').stdout().strip().split(newline), + subdir: 'net' +) +install_headers( + run_command('find', meson.project_source_root() + '/include/netpacket', '-name', '*.h').stdout().strip().split(newline), + subdir: 'netpacket' +) +install_headers( + run_command('find', meson.project_source_root() + '/include/sys', '-name', '*.h').stdout().strip().split(newline), + subdir: 'sys' +) +install_headers( + run_command('find', meson.project_source_root() + '/include/scsi', '-name', '*.h').stdout().strip().split(newline), + subdir: 'scsi' +) +install_headers( + run_command('find', meson.project_source_root() + '/include/arpa', '-name', '*.h').stdout().strip().split(newline), + subdir: 'arpa' +) +install_headers( + run_command('find', meson.project_source_root() + '/include/netinet', '-name', '*.h').stdout().strip().split(newline), + subdir: 'netinet' +) + +subdir('bits/') + +message(globbed_headers) + +c_args = [ + '-pipe', + '-fomit-frame-pointer', + '-fno-unwind-tables', + '-fno-asynchronous-unwind-tables', + '-ffunction-sections', + '-fdata-sections', + '-std=c99', '-ffreestanding', '-nostdinc', + '-D_XOPEN_SOURCE=700', + '-fno-stack-protector', + '-fPIC' +] + +ld_args = [ + '-nostdlib', + '-Wl,--dynamic-list='+meson.project_source_root()+'/dynamic.list', + '-Wl,-e,_dlstart', + libgcc +] + + +inc_dir_flags = [ + '-I'+meson.project_source_root()+'/arch/' + arch, + '-I'+meson.project_source_root()+'/arch/generic', + '-I'+meson.project_source_root()+'/src/internal', + '-I'+meson.project_source_root()+'/src/include', + '-I'+meson.project_source_root()+'/include', + '-I'+meson.project_build_root() +] + +inc_dirs = include_directories( + 'arch/' + arch, + 'arch/generic', + 'src/internal', + 'src/include', + 'include' +) + + +ldso_sources = [ + 'ldso/dlstart.c', + 'ldso/dynlink.c', +] + +version_h = custom_target( + 'version.h', + output : 'version.h', + command : [ meson.project_source_root()+'/version_h.sh' ], + capture : true +) + +shared_library('c', + ldso_sources, + globbed_sources, + alltypes_h, + syscall_h, + version_h, + c_args: c_args, link_args: ld_args, + include_directories: inc_dirs, + install: true +) + +static_library('c', + ldso_sources, + globbed_sources, + alltypes_h, + syscall_h, + version_h, + c_args: c_args, link_args: ld_args, + include_directories: inc_dirs, + install: true +) + +static_library('crypt', install: true) +static_library('dl', install: true) +static_library('m', install: true) +static_library('rt', install: true) +static_library('pthread', install: true) +static_library('util', install: true) +static_library('xnet', install: true) + +subdir('crt') + diff --git a/linux/musl/version_h.sh b/linux/musl/version_h.sh new file mode 100755 index 0000000..3e88631 --- /dev/null +++ b/linux/musl/version_h.sh @@ -0,0 +1,2 @@ +#!/bin/sh +printf '#define VERSION "%s"\n' $(sh ./tools/version.sh) diff --git a/linux/raspberrypi-linux/build.sh b/linux/raspberrypi-linux/build.sh index 575306c..180245c 100644 --- a/linux/raspberrypi-linux/build.sh +++ b/linux/raspberrypi-linux/build.sh @@ -1,49 +1,49 @@ -pkgver=1.20210303-1 +pkgver=1.20211007 pkgname=raspberrypi-linux -ext="dev" fetch() { - curl "https://raw.githubusercontent.com/kisslinux/website/master/site/dist/kernel-no-perl.patch" -o kernel-no-perl.patch - curl -L "https://github.com/raspberrypi/linux/archive/refs/tags/raspberrypi-kernel_$pkgver.tar.gz" -o $pkgname-$pkgver.tar.gz + curl -L "https://github.com/raspberrypi/linux/archive/refs/tags/$pkgver.tar.gz" -o $pkgname-$pkgver.tar.gz tar -xf $pkgname-$pkgver.tar.gz mv linux-raspberrypi-kernel_$pkgver $pkgname-$pkgver cd $pkgname-$pkgver - patch -p1 < ../kernel-no-perl.patch patch -p1 < ../../kernel-byacc.patch # patch -p1 < ../../reflex.patch } build() { cd $pkgname-$pkgver - gmake ARCH=arm64 CC=cc HOSTCC=cc LEX=flex YACC=yacc LLVM=1 LLVM_IAS=1 bcm2711_defconfig - gmake ARCH=arm64 CC=cc HOSTCC=cc LEX=flex YACC=yacc LLVM=1 LLVM_IAS=1 + bad --gmake gmake ARCH=arm64 CC=cc HOSTCC=cc LEX=flex YACC=yacc LLVM=1 LLVM_IAS=1 bcm2711_defconfig + bad --gmake gmake ARCH=arm64 CC=cc HOSTCC=cc LEX=flex YACC=yacc LLVM=1 LLVM_IAS=1 } package() { cd $pkgname-$pkgver install -d $pkgdir/boot cp arch/arm64/boot/Image $pkgdir/boot/kernel8.img - gmake ARCH=arm64 CC=cc HOSTCC=cc LEX=flex YACC=yacc LLVM=1 LLVM_IAS=1 INSTALL_PATH=$pkgdir/boot install - gmake ARCH=arm64 CC=cc HOSTCC=cc LEX=flex YACC=yacc LLVM=1 LLVM_IAS=1 INSTALL_DTBS_PATH=$pkgdir/boot dtbs_install - gmake ARCH=arm64 CC=cc HOSTCC=cc LEX=flex YACC=yacc LLVM=1 LLVM_IAS=1 INSTALL_MOD_PATH=$pkgdir/ modules_install + bad --gmake gmake ARCH=arm64 CC=cc HOSTCC=cc LEX=flex YACC=yacc LLVM=1 LLVM_IAS=1 INSTALL_PATH=$pkgdir/boot install + bad --gmake gmake ARCH=arm64 CC=cc HOSTCC=cc LEX=flex YACC=yacc LLVM=1 LLVM_IAS=1 INSTALL_DTBS_PATH=$pkgdir/boot dtbs_install + bad --gmake gmake ARCH=arm64 CC=cc HOSTCC=cc LEX=flex YACC=yacc LLVM=1 LLVM_IAS=1 INSTALL_MOD_PATH=$pkgdir/ modules_install mv $pkgdir/boot/broadcom/* $pkgdir/boot/ rmdir $pkgdir/boot/broadcom -} -package_dev() { - cd $pkgname-$pkgver if stat /usr/bin/rsync 2>/dev/null /dev/null; then - gmake ARCH=arm64 CC=cc HOSTCC=cc LEX=flex YACC=yacc LLVM=1 LLVM_IAS=1 INSTALL_HDR_PATH=$pkgdir/usr headers_install + echo "using rsync" + bad --gmake gmake ARCH=arm64 CC=cc HOSTCC=cc LEX=flex YACC=yacc LLVM=1 LLVM_IAS=1 INSTALL_HDR_PATH=$pkgdir/usr headers_install else - gmake ARCH=arm64 CC=cc HOSTCC=cc LEX=flex YACC=yacc LLVM=1 LLVM_IAS=1 headers + bad --gmake gmake ARCH=arm64 CC=cc HOSTCC=cc LEX=flex YACC=yacc LLVM=1 LLVM_IAS=1 headers find -name '.*' -exec rm {} \; rm usr/include/Makefile - cp -r usr/include $pkgdir/usr + install -d $pkgdir/usr/ + cp -r usr/include $pkgdir/usr/ fi } +backup() { + return +} + license() { cd $pkgname-$pkgver cat COPYING diff --git a/linux/rpi-linux-rev2/build.sh b/linux/rpi-linux-rev2/build.sh new file mode 100644 index 0000000..aee5e3d --- /dev/null +++ b/linux/rpi-linux-rev2/build.sh @@ -0,0 +1,50 @@ +pkgver=rpi-5.10.y +pkgname=linux +pkgrel=1 +ext="dev" + +fetch() { + fetch_tar "$pkgname-$pkgver.tar.gz" f633fabf55892cf19fc9173d2b8df779 "https://github.com/raspberrypi/linux/archive/refs/heads/$pkgver.tar.gz" + cd $pkgname-$pkgver + + patch -p1 < ../../kernel-byacc.patch + curl 'https://cgit.freedesktop.org/drm/drm/patch/?id=26a4dc29b74a137f45665089f6d3d633fcc9b662' | patch -p1 +} + +_arch=$ARCH +case $_arch in +aarch64*) _arch="arm64" ;; +esac + +build() { + cd $pkgname-$pkgver + bad --gmake gmake CC=cc CXX=c++ HOSTCC=cc HOSTCXX=c++ YACC=yacc LLVM_IAS=1 ARCH=$_arch bcm2711_defconfig + bad --gmake gmake CC=cc CXX=c++ HOSTCC=cc HOSTCXX=c++ YACC=yacc LLVM_IAS=1 ARCH=$_arch +} + +package() { + cd $pkgname-$pkgver + install -d $pkgdir/boot + bad --gmake gmake CC=cc CXX=c++ HOSTCC=cc HOSTCXX=c++ YACC=yacc LLVM_IAS=1 ARCH=$_arch INSTALL_PATH=$pkgdir/boot install + bad --gmake gmake CC=cc HOSTCC=cc LEX=flex YACC=yacc LLVM=1 LLVM_IAS=1 ARCH=$_arch INSTALL_DTBS_PATH=$pkgdir/boot dtbs_install + bad --gmake gmake CC=cc CXX=c++ HOSTCC=cc HOSTCXX=c++ YACC=yacc LLVM_IAS=1 ARCH=$_arch INSTALL_MOD_PATH=$pkgdir/ modules_install + + if stat /usr/bin/rsync 2>/dev/null /dev/null; then + bad --gmake gmake CC=cc CXX=c++ HOSTCC=cc HOSTCXX=c++ YACC=yacc LLVM_IAS=1 ARCH=$_arch INSTALL_HDR_PATH=$pkgdir/usr headers_install + else + bad --gmake gmake CC=cc CXX=c++ HOSTCC=cc HOSTCXX=c++ YACC=yacc LLVM_IAS=1 ARCH=$_arch headers + find -name '.*' -exec rm {} \; + rm usr/include/Makefile + install -d $pkgdir/usr/ + cp -r usr/include $pkgdir/usr/ + fi +} + +backup() { + return +} + +license() { + cd $pkgname-$pkgver + cat COPYING +} diff --git a/linux/rpi-linux-rev2/kernel-byacc.patch b/linux/rpi-linux-rev2/kernel-byacc.patch new file mode 100644 index 0000000..b2aa286 --- /dev/null +++ b/linux/rpi-linux-rev2/kernel-byacc.patch @@ -0,0 +1,35 @@ +diff --git a/scripts/Makefile.host b/scripts/Makefile.host +index 4c51c95d40f4..64e98e1d4825 100644 +--- a/scripts/Makefile.host ++++ b/scripts/Makefile.host +@@ -11,7 +11,7 @@ $(obj)/%.lex.c: $(src)/%.l FORCE + # YACC + # --------------------------------------------------------------------------- + quiet_cmd_bison = YACC $(basename $@).[ch] +- cmd_bison = $(YACC) -o $(basename $@).c --defines=$(basename $@).h -t -l $< ++ cmd_bison = $(YACC) -b $(basename $(basename $@)) -d -t -l $< + + $(obj)/%.tab.c $(obj)/%.tab.h: $(src)/%.y FORCE + $(call if_changed,bison) +--- a/scripts/genksyms/Makefile ++++ b/scripts/genksyms/Makefile +@@ -14,7 +14,7 @@ + ifeq ($(findstring 1,$(KBUILD_EXTRA_WARN)),) + + quiet_cmd_bison_no_warn = $(quiet_cmd_bison) +- cmd_bison_no_warn = $(YACC) --version >/dev/null; \ ++ cmd_bison_no_warn = $(YACC) -V >/dev/null; \ + $(cmd_bison) 2>/dev/null + + $(obj)/pars%.tab.c $(obj)/pars%.tab.h: $(src)/pars%.y FORCE +--- a/scripts/genksyms/lex.l ++++ b/scripts/genksyms/lex.l +@@ -19,6 +19,8 @@ + #include "genksyms.h" + #include "parse.tab.h" + ++extern YYSTYPE yylval; ++ + /* We've got a two-level lexer here. We let flex do basic tokenization + and then we categorize those basic tokens in the second stage. */ + #define YY_DECL static int yylex1(void) diff --git a/gui/alacritty/build.sh b/old/alacritty/build.sh similarity index 100% rename from gui/alacritty/build.sh rename to old/alacritty/build.sh diff --git a/extra/bin86/build.sh b/old/bin86/build.sh similarity index 82% rename from extra/bin86/build.sh rename to old/bin86/build.sh index 4683541..460556d 100644 --- a/extra/bin86/build.sh +++ b/old/bin86/build.sh @@ -10,14 +10,14 @@ fetch() { build() { cd $pkgname-$pkgver - gmake PREFIX=/usr + bad --gmake gmake PREFIX=/usr } package() { cd $pkgname-$pkgver install -d $pkgdir/usr/bin install -d $pkgdir/usr/share/man/man1 - gmake PREFIX=$pkgdir/usr MANDIR=$pkgdir/usr/share/man/man1 install + bad --gmake gmake PREFIX=$pkgdir/usr MANDIR=$pkgdir/usr/share/man/man1 install } license() { diff --git a/extra/dropbear/build.sh b/old/dropbear/build.sh similarity index 69% rename from extra/dropbear/build.sh rename to old/dropbear/build.sh index 9cda9ad..765e98d 100644 --- a/extra/dropbear/build.sh +++ b/old/dropbear/build.sh @@ -15,12 +15,12 @@ build() { --build=x86_64-unknown-linux-musl \ --host=x86_64-unknown-linux-musl - gmake PROGRAMS='dropbear dbclient dropbearkey dropbearconvert scp' + bad --gmake gmake PROGRAMS='dropbear dbclient dropbearkey dropbearconvert scp' } package() { cd $pkgname-$pkgver - gmake install DESTDIR=$pkgdir PROGRAMS='dropbear dbclient dropbearkey dropbearconvert scp' + bad --gmake gmake install DESTDIR=$pkgdir PROGRAMS='dropbear dbclient dropbearkey dropbearconvert scp' ln -sr $pkgdir/usr/sbin/dropbear $pkgdir/usr/sbin/sshd ln -sr $pkgdir/usr/bin/dbclient $pkgdir/usr/bin/ssh rm -r $pkgdir/usr/share @@ -28,7 +28,7 @@ package() { package_doc() { cd $pkgname-$pkgver - gmake install DESTDIR=$pkgdir PROGRAMS='dropbear dbclient dropbearkey dropbearconvert scp' + bad --gmake gmake install DESTDIR=$pkgdir PROGRAMS='dropbear dbclient dropbearkey dropbearconvert scp' rm -r $pkgdir/usr/bin rm -r $pkgdir/usr/sbin } diff --git a/pkgs/e2fsprogs/build.sh b/old/e2fsprogs/build.sh similarity index 98% rename from pkgs/e2fsprogs/build.sh rename to old/e2fsprogs/build.sh index ea56348..65d14e1 100644 --- a/pkgs/e2fsprogs/build.sh +++ b/old/e2fsprogs/build.sh @@ -19,7 +19,7 @@ build() { #--exec_prefix=/ - gmake + bad --gmake gmake } package() { diff --git a/extra/glibr/build.sh b/old/glibr/build.sh similarity index 100% rename from extra/glibr/build.sh rename to old/glibr/build.sh diff --git a/gui/graphicsmagick/build.sh b/old/graphicsmagick/build.sh similarity index 100% rename from gui/graphicsmagick/build.sh rename to old/graphicsmagick/build.sh diff --git a/gui/imagemagick/build.sh b/old/imagemagick/build.sh similarity index 100% rename from gui/imagemagick/build.sh rename to old/imagemagick/build.sh diff --git a/pkgs/kbd/build.sh b/old/kbd/build.sh similarity index 100% rename from pkgs/kbd/build.sh rename to old/kbd/build.sh diff --git a/old/libnl/build.sh b/old/libnl/build.sh index 41ac795..4a04fbd 100644 --- a/old/libnl/build.sh +++ b/old/libnl/build.sh @@ -27,11 +27,11 @@ build() { patch -p1 < ../byacc-p-makefile.patch - gmake + bad --gmake gmake patch -p1 < ../byacc-comment-defines.patch - gmake + bad --gmake gmake } package() { diff --git a/linux/lilo/build.sh b/old/lilo/build.sh similarity index 96% rename from linux/lilo/build.sh rename to old/lilo/build.sh index caa75e6..3704927 100644 --- a/linux/lilo/build.sh +++ b/old/lilo/build.sh @@ -28,12 +28,12 @@ fetch() { build() { cd $pkgname-$pkgver - gmake CC="${CC:-clang}" + bad --gmake gmake CC="${CC:-clang}" } package() { cd $pkgname-$pkgver - gmake install DESTDIR=$pkgdir + bad --gmake gmake install DESTDIR=$pkgdir } license() { diff --git a/linux/lilo/checkit.patch b/old/lilo/checkit.patch similarity index 100% rename from linux/lilo/checkit.patch rename to old/lilo/checkit.patch diff --git a/base/pci-ids/build.sh b/old/pci-ids/build.sh similarity index 100% rename from base/pci-ids/build.sh rename to old/pci-ids/build.sh diff --git a/pkgs/rawk/build.sh b/old/rawk/build.sh similarity index 100% rename from pkgs/rawk/build.sh rename to old/rawk/build.sh diff --git a/pkgs/rawk/cp-u.patch b/old/rawk/cp-u.patch similarity index 100% rename from pkgs/rawk/cp-u.patch rename to old/rawk/cp-u.patch diff --git a/base/reflex/build.sh b/old/reflex/build.sh similarity index 100% rename from base/reflex/build.sh rename to old/reflex/build.sh diff --git a/gui/river/build.sh b/old/river/build.sh similarity index 100% rename from gui/river/build.sh rename to old/river/build.sh diff --git a/pkgs/rsync/build.sh b/old/rsync/build.sh similarity index 100% rename from pkgs/rsync/build.sh rename to old/rsync/build.sh diff --git a/gui/swc/build.sh b/old/swc/build.sh similarity index 80% rename from gui/swc/build.sh rename to old/swc/build.sh index 1d401eb..9325ca1 100644 --- a/gui/swc/build.sh +++ b/old/swc/build.sh @@ -12,12 +12,12 @@ build() { cd $pkgname-$pkgver cp ../config.mk . - gmake PREFIX=/usr CC=cc + bad --gmake gmake PREFIX=/usr CC=cc } package() { cd $pkgname-$pkgver - gmake install DESTDIR=$pkgdir PREFIX=/usr + bad --gmake gmake install DESTDIR=$pkgdir PREFIX=/usr } license() { diff --git a/gui/swc/config.mk b/old/swc/config.mk similarity index 100% rename from gui/swc/config.mk rename to old/swc/config.mk diff --git a/gui/swvkc/build.sh b/old/swvkc/build.sh similarity index 100% rename from gui/swvkc/build.sh rename to old/swvkc/build.sh diff --git a/pkgs/tiny-linux-bootloader/bsect.patch b/old/tiny-linux-bootloader/bsect.patch similarity index 100% rename from pkgs/tiny-linux-bootloader/bsect.patch rename to old/tiny-linux-bootloader/bsect.patch diff --git a/pkgs/tiny-linux-bootloader/build.patch b/old/tiny-linux-bootloader/build.patch similarity index 100% rename from pkgs/tiny-linux-bootloader/build.patch rename to old/tiny-linux-bootloader/build.patch diff --git a/pkgs/tiny-linux-bootloader/build.sh b/old/tiny-linux-bootloader/build.sh similarity index 100% rename from pkgs/tiny-linux-bootloader/build.sh rename to old/tiny-linux-bootloader/build.sh diff --git a/pkgs/tiny-linux-bootloader/fstab b/old/tiny-linux-bootloader/fstab similarity index 100% rename from pkgs/tiny-linux-bootloader/fstab rename to old/tiny-linux-bootloader/fstab diff --git a/pkgs/tiny-linux-bootloader/remove-dead.patch b/old/tiny-linux-bootloader/remove-dead.patch similarity index 100% rename from pkgs/tiny-linux-bootloader/remove-dead.patch rename to old/tiny-linux-bootloader/remove-dead.patch diff --git a/pkgs/toolchain-aarch64/build.sh b/old/toolchain-aarch64/build.sh similarity index 96% rename from pkgs/toolchain-aarch64/build.sh rename to old/toolchain-aarch64/build.sh index 48b5704..281d64c 100644 --- a/pkgs/toolchain-aarch64/build.sh +++ b/old/toolchain-aarch64/build.sh @@ -49,8 +49,8 @@ build() { --target=aarch64-unknown-linux-musl \ --enable-wrappers=no - gmake - gmake install DESTDIR=$pkgdir + bad --gmake gmake + bad --gmake gmake install DESTDIR=$pkgdir } package() { diff --git a/pkgs/util-linux/build.sh b/old/util-linux/build.sh similarity index 100% rename from pkgs/util-linux/build.sh rename to old/util-linux/build.sh diff --git a/gui/velox/build.sh b/old/velox/build.sh similarity index 82% rename from gui/velox/build.sh rename to old/velox/build.sh index bbce74c..34a07e7 100644 --- a/gui/velox/build.sh +++ b/old/velox/build.sh @@ -13,12 +13,12 @@ build() { cp ../config.mk . cp ../velox.conf . - gmake PREFIX=/usr CC=cc + bad --gmake gmake PREFIX=/usr CC=cc } package() { cd $pkgname-$pkgver - gmake install DESTDIR=$pkgdir PREFIX=/usr + bad --gmake gmake install DESTDIR=$pkgdir PREFIX=/usr install -d $pkgdir/etc install -Dm644 velox.conf $pkgdir/etc/ } diff --git a/gui/velox/config.mk b/old/velox/config.mk similarity index 100% rename from gui/velox/config.mk rename to old/velox/config.mk diff --git a/gui/velox/velox.conf b/old/velox/velox.conf similarity index 100% rename from gui/velox/velox.conf rename to old/velox/velox.conf diff --git a/gui/webkit/build.sh b/old/webkit/build.sh similarity index 100% rename from gui/webkit/build.sh rename to old/webkit/build.sh diff --git a/gui/wld/build.sh b/old/wld/build.sh similarity index 77% rename from gui/wld/build.sh rename to old/wld/build.sh index 3d6764b..89ac4af 100644 --- a/gui/wld/build.sh +++ b/old/wld/build.sh @@ -9,12 +9,12 @@ fetch() { build() { cd $pkgname-$pkgver - gmake PREFIX=/usr CC=cc + bad --gmake gmake PREFIX=/usr CC=cc } package() { cd $pkgname-$pkgver - gmake install DESTDIR=$pkgdir PREFIX=/usr + bad --gmake gmake install DESTDIR=$pkgdir PREFIX=/usr } license() { diff --git a/pkgs/cava/build.sh b/pkgs/cava/build.sh new file mode 100644 index 0000000..edeed0a --- /dev/null +++ b/pkgs/cava/build.sh @@ -0,0 +1,28 @@ +pkgname=cava +pkgver=0.7.4 + +fetch() { + curl -L "https://github.com/karlstav/cava/archive/refs/tags/$pkgver.tar.gz" -o $pkgname-$pkgver.tar.xz + tar -xf $pkgname-$pkgver.tar.xz +} + +build() { + cd $pkgname-$pkgver + ./configure \ + --prefix=/usr \ + --build=$TRIPLE \ + --host=$TRIPLE + + make +} + +package() { + cd $pkgname-$pkgver + make install DESTDIR=$pkgdir +} + +license() { + cd $pkgname-$pkgver + cat LICENSE +# cat COPYING +} diff --git a/pkgs/imv/build.sh b/pkgs/imv/build.sh new file mode 100644 index 0000000..03c14b1 --- /dev/null +++ b/pkgs/imv/build.sh @@ -0,0 +1,32 @@ +pkgname=imv +pkgver=4.2.0 + +fetch() { + curl -L "https://github.com/eXeC64/imv/archive/refs/tags/v$pkgver.tar.gz" -o $pkgname-$pkgver.tar.xz + tar -xf $pkgname-$pkgver.tar.xz + mkdir $pkgname-$pkgver/build +} + +build() { + cd $pkgname-$pkgver + cd build + meson .. \ + --buildtype=release \ + --prefix=/usr \ + --libexecdir=lib \ + -Dlibrsvg=disabled \ + -Dwindows=wayland + samu +} + +package() { + cd $pkgname-$pkgver + cd build + DESTDIR=$pkgdir samu install +} + +license() { + cd $pkgname-$pkgver + cat LICENSE +# cat COPYING +} diff --git a/pkgs/kak-lsp/build.sh b/pkgs/kak-lsp/build.sh index 5b5f296..e69de29 100644 --- a/pkgs/kak-lsp/build.sh +++ b/pkgs/kak-lsp/build.sh @@ -1,24 +0,0 @@ -pkgname=kak-lsp -pkgver=9.0.0 - -fetch() { - curl -L "https://github.com/kak-lsp/kak-lsp/archive/v$pkgver.tar.gz" -o $pkgname-$pkgver.tar.xz - tar -xf $pkgname-$pkgver.tar.xz -} - -build() { - cd $pkgname-$pkgver - cargo build --release --locked --all-features -} - -package() { - cd $pkgname-$pkgver - install -Dm755 target/release/$pkgname $pkgdir/usr/bin/ - install -Dm644 rc/lsp.kak $pkgdir/usr/share/kak-lsp/rc/ - install -Dm644 kak-lsp.toml $pkgdir/usr/share/kak-lsp/examples/ -} - -license() { - cd $pkgname-$pkgver - cat UNLICENSE -} diff --git a/pkgs/libslirp/build.sh b/pkgs/libslirp/build.sh new file mode 100644 index 0000000..fa3d8c7 --- /dev/null +++ b/pkgs/libslirp/build.sh @@ -0,0 +1,31 @@ +pkgname=libslirp +pkgver=4.6.1 + +fetch() { + curl "https://gitlab.freedesktop.org/slirp/libslirp/-/archive/v$pkgver/libslirp-v$pkgver.tar.bz2" -o $pkgname-$pkgver.tar.bz2 + tar -xf $pkgname-$pkgver.tar.bz2 + mv $pkgname-v$pkgver $pkgname-$pkgver + mkdir $pkgname-$pkgver/build +} + +build() { + cd $pkgname-$pkgver + cd build + meson .. \ + --buildtype=release \ + --prefix=/usr \ + --libexecdir=lib + samu +} + +package() { + cd $pkgname-$pkgver + cd build + DESTDIR=$pkgdir samu install +} + +license() { + cd $pkgname-$pkgver + cat LICENSE +# cat COPYING +} diff --git a/pkgs/nasm/build.sh b/pkgs/nasm/build.sh index 032c8e6..1c27ca3 100644 --- a/pkgs/nasm/build.sh +++ b/pkgs/nasm/build.sh @@ -15,18 +15,18 @@ build(){ --build=x86_64-unknown-linux-musl \ --host=x86_64-unknown-linux-musl \ --prefix=/usr - gmake + bad --gmake gmake } package() { cd $pkgname-$pkgver - gmake DESTDIR="$pkgdir" install + bad --gmake gmake DESTDIR="$pkgdir" install rm -r $pkgdir/usr/share } package_doc() { cd $pkgname-$pkgver - gmake DESTDIR="$pkgdir" install + bad --gmake gmake DESTDIR="$pkgdir" install rm -r $pkgdir/usr/bin } diff --git a/pkgs/pipewire/build.sh b/pkgs/pipewire/build.sh deleted file mode 100644 index 4ee4f5e..0000000 --- a/pkgs/pipewire/build.sh +++ /dev/null @@ -1,40 +0,0 @@ -pkgname=pipewire -pkgver=0.3.27 - -fetch() { - curl "https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/$pkgver/pipewire-$pkgver.tar.bz2" -o $pkgname-$pkgver.tar.xz - tar -xf $pkgname-$pkgver.tar.xz - mkdir $pkgname-$pkgver/build - - cp ../no-dbus.patch . - cd $pkgname-$pkgver - patch -p1 < ../no-dbus.patch -} - -build() { - cd $pkgname-$pkgver - cd build - meson .. \ - --buildtype=release \ - --prefix=/usr \ - --libexecdir=lib \ - -Dbluez5=disabled \ - -Dlibcamera=disabled \ - -Dexamples=disabled \ - -Dgstreamer=disabled \ - -Dlibpulse=disabled \ - -Dmedia-session=enabled \ - -Dpw-cat=enabled - samu -} - -package() { - cd $pkgname-$pkgver - cd build - DESTDIR=$pkgdir samu install -} - -license() { - cd $pkgname-$pkgver - cat COPYING -} diff --git a/pkgs/pipewire/no-dbus.patch b/pkgs/pipewire/no-dbus.patch deleted file mode 100644 index 54b363e..0000000 --- a/pkgs/pipewire/no-dbus.patch +++ /dev/null @@ -1,84 +0,0 @@ ---- a/meson.build -+++ b/meson.build -@@ -306,7 +306,7 @@ - rt_lib = cc.find_library('rt', required : false) # clock_gettime - dl_lib = cc.find_library('dl', required : false) - pthread_lib = dependency('threads') --dbus_dep = dependency('dbus-1') -+dbus_dep = dependency('dbus-1', required : false) - sdl_dep = dependency('sdl2', required : get_option('sdl2')) - ncurses_dep = dependency('ncursesw', required : false) - sndfile_dep = dependency('sndfile', version : '>= 1.0.20', required : get_option('sndfile')) ---- a/src/modules/meson.build -+++ b/src/modules/meson.build -@@ -110,30 +110,30 @@ - dependencies : pipewire_module_protocol_deps, - ) - --pipewire_module_protocol_pulse_deps = pipewire_module_protocol_deps -- - if dbus_dep.found() -+ pipewire_module_protocol_pulse_deps = pipewire_module_protocol_deps -+ - pipewire_module_protocol_pulse_deps += dbus_dep --endif - --pipewire_module_protocol_pulse = shared_library('pipewire-module-protocol-pulse', -- [ 'module-protocol-pulse.c', -- 'module-protocol-pulse/manager.c', -- 'module-protocol-pulse/pulse-server.c', -- 'module-protocol-pulse/modules/module-loopback.c', -- 'module-protocol-pulse/modules/module-native-protocol-tcp.c', -- 'module-protocol-pulse/modules/module-null-sink.c', -- 'module-protocol-pulse/modules/module-remap-sink.c', -- 'module-protocol-pulse/modules/module-remap-source.c', -- 'module-protocol-pulse/modules/module-simple-protocol-tcp.c', -- ], -- c_args : pipewire_module_c_args, -- include_directories : [configinc, spa_inc], -- install : true, -- install_dir : modules_install_dir, -- install_rpath: modules_install_dir, -- dependencies : pipewire_module_protocol_pulse_deps, --) -+ pipewire_module_protocol_pulse = shared_library('pipewire-module-protocol-pulse', -+ [ 'module-protocol-pulse.c', -+ 'module-protocol-pulse/manager.c', -+ 'module-protocol-pulse/pulse-server.c', -+ 'module-protocol-pulse/modules/module-loopback.c', -+ 'module-protocol-pulse/modules/module-native-protocol-tcp.c', -+ 'module-protocol-pulse/modules/module-null-sink.c', -+ 'module-protocol-pulse/modules/module-remap-sink.c', -+ 'module-protocol-pulse/modules/module-remap-source.c', -+ 'module-protocol-pulse/modules/module-simple-protocol-tcp.c', -+ ], -+ c_args : pipewire_module_c_args, -+ include_directories : [configinc, spa_inc], -+ install : true, -+ install_dir : modules_install_dir, -+ install_rpath: modules_install_dir, -+ dependencies : pipewire_module_protocol_pulse_deps, -+ ) -+endif - - pipewire_module_protocol_simple = shared_library('pipewire-module-protocol-simple', - [ 'module-protocol-simple.c' ], ---- a/spa/plugins/support/meson.build -+++ b/spa/plugins/support/meson.build -@@ -32,6 +32,7 @@ - install_dir : spa_plugindir / 'support') - endif - -+if dbus_dep.found() - spa_dbus_sources = ['dbus.c'] - - spa_dbus_lib = shared_library('spa-dbus', -@@ -40,7 +41,7 @@ - dependencies : [dbus_dep, ], - install : true, - install_dir : spa_plugindir / 'support') -- -+endif - - if systemd_dep.found() - spa_journal_sources = ['journal.c'] diff --git a/pkgs/qtbase/build.sh b/pkgs/qtbase/build.sh index 0cef6bf..e69de29 100644 --- a/pkgs/qtbase/build.sh +++ b/pkgs/qtbase/build.sh @@ -1,37 +0,0 @@ -pkgname=qtbase -pkgver=5.12 - -fetch() { - curl "https://invent.kde.org/qt/qt/qtbase/-/archive/$pkgver/qtbase-$pkgver.tar.gz" -o $pkgname-$pkgver.tar.xz - tar -xf $pkgname-$pkgver.tar.xz - mkdir $pkgname-$pkgver/build - mkdir $pkgname-$pkgver/.git -} - -build() { - cd $pkgname-$pkgver - cd build - - ../configure \ - -opensource \ - -confirm-license \ - -nomake examples \ - -nomake tests \ - -platform linux-clang-libc++ \ - -no-openssl \ - -prefix /usr - - gmake -} - -package() { - cd $pkgname-$pkgver - cd build - gmake INSTALL_ROOT=$pkgdir install -} - -license() { - cd $pkgname-$pkgver - cat LICENSE* -# cat COPYING -} diff --git a/pkgs/qtbase/musl-socket.patch b/pkgs/qtbase/musl-socket.patch index 11b9181..e69de29 100644 --- a/pkgs/qtbase/musl-socket.patch +++ b/pkgs/qtbase/musl-socket.patch @@ -1,11 +0,0 @@ ---- a/mkspecs/linux-clang/qplatformdefs.h -+++ b/mkspecs/linux-clang/qplatformdefs.h -@@ -81,7 +81,7 @@ - - #undef QT_SOCKLEN_T - --#if defined(__GLIBC__) && (__GLIBC__ >= 2) -+#if defined(__GLIBC__) && (__GLIBC__ >= 2) || !defined(__GLIBC__) - #define QT_SOCKLEN_T socklen_t - #else - #define QT_SOCKLEN_T int diff --git a/pkgs/qtbase/qplatformdefs.h b/pkgs/qtbase/qplatformdefs.h index f5d0562..e69de29 100644 --- a/pkgs/qtbase/qplatformdefs.h +++ b/pkgs/qtbase/qplatformdefs.h @@ -1,95 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the qmake spec of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QPLATFORMDEFS_H -#define QPLATFORMDEFS_H - -// Get Qt defines/settings - -#include "qglobal.h" - -// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs - -// 1) need to reset default environment if _BSD_SOURCE is defined -// 2) need to specify POSIX thread interfaces explicitly in glibc 2.0 -// 3) it seems older glibc need this to include the X/Open stuff -#ifndef _GNU_SOURCE -# define _GNU_SOURCE -#endif - -#include - -// We are hot - unistd.h should have turned on the specific APIs we requested - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define QT_USE_XOPEN_LFS_EXTENSIONS -#include "../common/posix/qplatformdefs.h" - -#undef QT_SOCKLEN_T - -#if defined(__GLIBC__) && (__GLIBC__ >= 2) || !defined(__GLIBC__) -#define QT_SOCKLEN_T socklen_t -#else -#define QT_SOCKLEN_T int -#endif - -#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500) -#define QT_SNPRINTF ::snprintf -#define QT_VSNPRINTF ::vsnprintf -#endif - -#endif // QPLATFORMDEFS_H diff --git a/pkgs/qtwayland/build.sh b/pkgs/qtwayland/build.sh index ed1ebcc..e69de29 100644 --- a/pkgs/qtwayland/build.sh +++ b/pkgs/qtwayland/build.sh @@ -1,26 +0,0 @@ -pkgname=qtwayland -pkgver=5.12 - -fetch() { - curl "https://invent.kde.org/qt/qt/$pkgname/-/archive/$pkgver/$pkgname-$pkgver.tar.gz" -o $pkgname-$pkgver.tar.xz - tar -xf $pkgname-$pkgver.tar.xz - mkdir $pkgname-$pkgver/.git -} - -build() { - cd $pkgname-$pkgver - - qmake - gmake -} - -package() { - cd $pkgname-$pkgver - gmake INSTALL_ROOT=$pkgdir install -} - -license() { - cd $pkgname-$pkgver - cat LICENSE -# cat COPYING -} diff --git a/pkgs/ribidi/build.sh b/pkgs/ribidi/build.sh deleted file mode 100644 index f32a601..0000000 --- a/pkgs/ribidi/build.sh +++ /dev/null @@ -1,30 +0,0 @@ -pkgname=ribidi -pkgver=main - -fetch() { - curl -L "https://github.com/iglunix/ribidi/archive/refs/heads/main.tar.gz" -o $pkgname-$pkgver.tar.xz - tar -xf $pkgname-$pkgver.tar.xz -} - -build() { - cd $pkgname-$pkgver - cargo build --release --all-features -} - -package() { - cd $pkgname-$pkgver - install -Dm755 target/release/lib$pkgname.so $pkgdir/usr/lib/ - install -Dm644 include/ribidi.h $pkgdir/usr/include/ribidi/ - install -d $pkgdir/usr/include/fribidi - ln -sr $pkgdir/usr/include/ribidi/ribidi.h $pkgdir/usr/include/fribidi/fribidi.h - - - install -Dm644 $pkgname.pc $pkgdir/usr/lib/pkgconfig/ - install -Dm644 f$pkgname.pc $pkgdir/usr/lib/pkgconfig/ -} - -license() { - cd $pkgname-$pkgver - cat LICENSE -# cat COPYING -} diff --git a/pkgs/squashfs-tools/build.sh b/pkgs/squashfs-tools/build.sh index 03c88df..11e09d7 100644 --- a/pkgs/squashfs-tools/build.sh +++ b/pkgs/squashfs-tools/build.sh @@ -9,13 +9,13 @@ fetch() { build() { cd $pkgname-$pkgver cd $pkgname - gmake + bad --gmake gmake } package() { cd $pkgname-$pkgver cd $pkgname - gmake install INSTALL_DIR=$pkgdir/usr/bin + bad --gmake gmake install INSTALL_DIR=$pkgdir/usr/bin } license() { diff --git a/pkgs/strace/build.sh b/pkgs/strace/build.sh new file mode 100644 index 0000000..017059c --- /dev/null +++ b/pkgs/strace/build.sh @@ -0,0 +1,28 @@ +pkgname=strace +pkgver=5.13 + +fetch() { + curl "https://strace.io/files/$pkgver/strace-$pkgver.tar.xz" -o $pkgname-$pkgver.tar.xz + tar -xf $pkgname-$pkgver.tar.xz +} + +build() { + cd $pkgname-$pkgver + ./configure \ + --prefix=/usr \ + --build=$TRIPLE \ + --host=$TRIPLE + + make +} + +package() { + cd $pkgname-$pkgver + make install DESTDIR=$pkgdir +} + +license() { + cd $pkgname-$pkgver + cat LICENSE +# cat COPYING +} diff --git a/pkgs/vulkan-validation-layers/build.sh b/pkgs/vulkan-validation-layers/build.sh new file mode 100644 index 0000000..fde01bd --- /dev/null +++ b/pkgs/vulkan-validation-layers/build.sh @@ -0,0 +1,34 @@ +pkgname=vulkan-validation-layers +pkgver=1.2.184 + +fetch() { + curl -L "https://github.com/KhronosGroup/Vulkan-ValidationLayers/archive/refs/tags/v$pkgver.tar.gz" -o $pkgname-$pkgver.tar.xz + tar -xf $pkgname-$pkgver.tar.xz + mv Vulkan-ValidationLayers-$pkgver $pkgname-$pkgver + mkdir $pkgname-$pkgver/build +} + +build() { + cd $pkgname-$pkgver + cd build + ../scripts/update_deps.py + cmake -G Ninja ../ \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DBUILD_WSI_XLIB_SUPPORT=OFF \ + -DBUILD_WSI_XCB_SUPPORT=OFF + samu +} + +package() { + cd $pkgname-$pkgver + cd build + DESTDIR=$pkgdir samu install +} + +license() { + cd $pkgname-$pkgver + cat LICENSE +# cat COPYING +} diff --git a/scripts/buildbase.sh b/scripts/buildbase.sh new file mode 100755 index 0000000..dde13c9 --- /dev/null +++ b/scripts/buildbase.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +cd base + diff --git a/scripts/iglu.sh b/scripts/iglu.sh index 0de0116..b0ed380 100755 --- a/scripts/iglu.sh +++ b/scripts/iglu.sh @@ -187,7 +187,7 @@ elif [ "$i" = "1" ]; then deps=$(grep deps /tmp/iglunix/$bname_we/usr/share/iglupkg/$bname | tr '=' '\n' | grep -v deps | tr ':' '\n') for dep in $deps; do stat /usr/share/iglupkg/$dep > /dev/null 2> /dev/null || dep_not_found $dep - done + done tar -I zstd -xf $1 -C / rm -r /tmp/iglunix/$bname_we elif [ "$f" = "1" ]; then diff --git a/scripts/iglupkg b/scripts/iglupkg new file mode 100755 index 0000000..42146d9 --- /dev/null +++ b/scripts/iglupkg @@ -0,0 +1,125 @@ +#!/bin/sh +export JOBS="$(nproc)" + +#export RUSTFLAGS="-C target-cpu=native" +export CC=clang +export CXX=clang++ +export ARCH=$(uname -m) +export KERN=linux +export ABI=musl +export TRIPLE=$ARCH-unknown-$KERN-$ABI + +#export CFLAGS="-march=native" +#export CXXFLAGS="-march=native" + +stat /etc/iglupkg.conf > /dev/null 2> /dev/null && . /etc/iglupkg.conf + +export SAMUFLAGS=-j$JOBS + +. ./build.sh +dir=$(pwd) +stat out > /dev/null && rm -rf out +mkdir out + +srcdir=$(pwd)/src + +function do_fetch() { + mkdir -p src + cd src + srcdir=$(pwd) + srcdir=$srcdir fetch + touch $srcdir/.fetched +} + +function do_build() { + srcdir=$(pwd) + srcdir=$srcdir build + touch $srcdir/.built +} + +stat src/.fetched > /dev/null 2>/dev/null || do_fetch +stat src/.fetched > /dev/null 2>/dev/null && echo '========================' +stat src/.fetched > /dev/null 2>/dev/null && echo 'Warning: Already Fetched' +stat src/.fetched > /dev/null 2>/dev/null && echo '========================' + +cd $srcdir +MAKEFLAGS=-j$JOBS stat .built > /dev/null 2> /dev/null || build + +stat .built > /dev/null 2>/dev/null && echo '========================' +stat .built > /dev/null 2>/dev/null && echo ' Warning: Already Built ' +stat .built > /dev/null 2>/dev/null && echo '========================' + +cd $srcdir + +echo " +. $dir/build.sh +mkdir -p $dir/out/$pkgname +pkgdir=$dir/out/$pkgname package + + +mkdir -p $dir/out/$pkgname/usr/share/iglupkg + +cat > $dir/out/$pkgname/usr/share/iglupkg/$pkgname << EOF +[pkg] +name=$pkgname +ver=$pkgver +deps=$deps + +[license] +EOF + +chmod 644 $dir/out/$pkgname/usr/share/iglupkg/$pkgname +cd $srcdir +license >> $dir/out/$pkgname/usr/share/iglupkg/$pkgname + +echo >> $dir/out/$pkgname/usr/share/iglupkg/$pkgname +echo [fs] >> $dir/out/$pkgname/usr/share/iglupkg/$pkgname + +cd $dir/out/$pkgname/ +find * >> $dir/out/$pkgname/usr/share/iglupkg/$pkgname + +cd $dir/out/$pkgname +tar -I zstd -cf ../$pkgname.$pkgver.tar.zst * +if [ $ext ]; then + +echo $ext | tr ':' '\n' | while read e; do + echo \$e + + cd $srcdir + mkdir -p $dir/out/$pkgname-\$e + pkgdir=$dir/out/$pkgname-\$e + + package_\$(echo \$e | tr '-' '_') + + mkdir -p $dir/out/$pkgname-\$e/usr/share/iglupkg + + cat > $dir/out/$pkgname-\$e/usr/share/iglupkg/$pkgname-\$e << EOF +[pkg] +name=$pkgname-\$e +ver=$pkgver +deps=$pkgname + +[license] +EOF + + chmod 644 $dir/out/$pkgname-\$e/usr/share/iglupkg/$pkgname-\$e + cd $srcdir + license >> $dir/out/$pkgname-\$e/usr/share/iglupkg/$pkgname-\$e + + echo >> $dir/out/$pkgname-\$e/usr/share/iglupkg/$pkgname-\$e + echo [fs] >> $dir/out/$pkgname-\$e/usr/share/iglupkg/$pkgname-\$e + + cd $dir/out/$pkgname-\$e + + find * >> $dir/out/$pkgname-\$e/usr/share/iglupkg/$pkgname-\$e + + cd $dir/out/$pkgname-\$e + tar -I zstd -cf ../$pkgname-\$e.$pkgver.tar.zst * + +done + +fi + + +" | sh +cd $dir diff --git a/scripts/iglupkg.sh b/scripts/iglupkg.sh index aae71c0..b64e3ae 100755 --- a/scripts/iglupkg.sh +++ b/scripts/iglupkg.sh @@ -25,13 +25,14 @@ function do_fetch() { mkdir -p src cd src srcdir=$(pwd) fetch + touch .fetched } srcdir=$(pwd)/src -stat src > /dev/null 2>/dev/null || do_fetch -stat src > /dev/null 2>/dev/null && echo '==========================================' -stat src > /dev/null 2>/dev/null && echo 'Warning: `./src/` found: not running fetch' -stat src > /dev/null 2>/dev/null && echo '==========================================' +stat src/.fetched > /dev/null 2>/dev/null || do_fetch +stat src/.fetched > /dev/null 2>/dev/null && echo '========================' +stat src/.fetched > /dev/null 2>/dev/null && echo 'Warning: Already Fetched' +stat src/.fetched > /dev/null 2>/dev/null && echo '========================' cd $srcdir diff --git a/scripts/install-pc.sh b/scripts/install-pc.sh new file mode 100644 index 0000000..7edaf98 --- /dev/null +++ b/scripts/install-pc.sh @@ -0,0 +1,3 @@ +#!/bin/sh +# TODO: +# should create x86_64 compatible, bios booting ISO diff --git a/scripts/install-pi.sh b/scripts/install-pi.sh new file mode 100755 index 0000000..0d8a034 --- /dev/null +++ b/scripts/install-pi.sh @@ -0,0 +1,115 @@ +#!/bin/sh + + +DIR=$(realpath $(dirname $0)/..) +echo $DIR +cd $DIR + +function install_pkg { + echo Installing $2 + cd $DIR/$1/$2/ + stat $DIR/$1/$2/out/*.tar.* > /dev/null 2> /dev/null && echo "Already built $2" + stat $DIR/$1/$2/out/*.tar.* > /dev/null 2> /dev/null || iglupkg + + stat $DIR/out/usr/share/iglupkg/$2 > /dev/null 2> /dev/null && echo "Already installed $2" + stat $DIR/out/usr/share/iglupkg/$2 > /dev/null 2> /dev/null || tar -C $DIR/out -xf $DIR/$1/$2/out/$2.*.tar.zst -I zstd + + stat $DIR/$1/$2/out/$2-dev.tar.zst > /dev/null 2> /dev/null || return + stat $DIR/out/usr/share/iglupkg/$2-dev > /dev/null 2> /dev/null && echo "Already installed $2-dev" + stat $DIR/out/usr/share/iglupkg/$2-dev > /dev/null 2> /dev/null || tar -C $DIR/out -xf $DIR/$1/$2/out/$2-dev.*.tar.zst -I zstd + + cd $DIR +} + +# install_pkg linux raspberrypi-linux +install_pkg linux raspberrypi-firmware +install_pkg linux linux-firmware +install_pkg linux make_ext4fs +install_pkg linux musl +install_pkg linux busybox + +install_pkg base bmake +install_pkg base byacc +install_pkg base ca-certificates +install_pkg base cmake +install_pkg base curl +install_pkg base expat +install_pkg base fakeroot +install_pkg base gettext-tiny +install_pkg base git +install_pkg base go +install_pkg base iglunix +install_pkg base kakoune +install_pkg base kati +install_pkg base lc-make +install_pkg base libexecinfo +install_pkg base libffi +install_pkg base libnl-tiny +install_pkg base llvm +install_pkg base meson +install_pkg base mksh +install_pkg base netbsd-curses +install_pkg base om4 +install_pkg base openpam +install_pkg base openssh +install_pkg base openssl +install_pkg base pci-ids +install_pkg base pfetch +install_pkg base pkgconf +install_pkg base python +install_pkg base python-mako +install_pkg base python-setuptools +install_pkg base flex +install_pkg base rust +install_pkg base samurai +install_pkg base toybox +install_pkg base wpa_supplicant +install_pkg base zig +install_pkg base zlib-ng +install_pkg base zstd + +exit 1 + +function install + +linux/raspberrypi-linux +linux/raspberrypi-firmware +linux/busybox + +base/bmake +base/byacc +base/ca-certificates +base/cmake +base/curl +base/expat +base/gettext-tiny +base/git +base/go +base/iglunix +base/kakoune +base/kati +base/lc-make +base/libexecinfo +base/libffi +base/libnl-tiny +base/llvm +base/meson +base/mksh +base/netbsd-curses +base/om4 +base/openpam +base/openssl +base/pci-ids +base/pfetch +base/pkgconf +base/python +base/python-mako +base/python-setuptools +base/reflex +base/rust +base/samurai +base/toybox +base/wpa_supplicant +base/zig +base/zlib-ng +base/zstd diff --git a/scripts/install.sh b/scripts/install.sh index b720226..b2b349f 100644 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -1,5 +1,4 @@ #!/bin/sh -. ./build_utils -packages=(musl mksh bmake gmake llvm libressl cmake curl rsync flex byacc om4 zlib samurai libffi python ca-certificates expat gettext-tiny git kati netbsd-curses kakoune iglunix rust toybox busybox less pci-ids heirloom-doctools) -cp_packages /mnt + + diff --git a/snd/libpulse/build.sh b/snd/libpulse/build.sh new file mode 100644 index 0000000..1778373 --- /dev/null +++ b/snd/libpulse/build.sh @@ -0,0 +1,44 @@ +pkgname=libpulse +pkgver=15.99.1 + +fetch() { + curl -L "https://freedesktop.org/software/pulseaudio/releases/pulseaudio-$pkgver.tar.xz" -o $pkgname-$pkgver.tar.bz2 + tar -xf $pkgname-$pkgver.tar.bz2 + mv pulseaudio-$pkgver $pkgname-$pkgver + mkdir $pkgname-$pkgver/build + cd $pkgname-$pkgver +} + +build() { + cd $pkgname-$pkgver + cd build + meson .. \ + --buildtype=release \ + --prefix=/usr \ + --libexecdir=lib \ + -Ddaemon=false \ + -Dtests=false \ + -Ddoxygen=false \ + -Dclient=true \ + -Dgtk=disabled \ + -Dman=false + samu +} + +package() { + cd $pkgname-$pkgver + cd build + DESTDIR=$pkgdir samu install + rm -rf $pkgdir/usr/share/locale + rm -rf $pkgdir/usr/share/bash* +} + +backup() { + return +} + +license() { + cd $pkgname-$pkgver + cat LICENSE +# cat COPYING +} diff --git a/snd/libsndfile/build.sh b/snd/libsndfile/build.sh new file mode 100644 index 0000000..e56e658 --- /dev/null +++ b/snd/libsndfile/build.sh @@ -0,0 +1,34 @@ +pkgname=libsndfile +pkgver=1.0.31 + +fetch() { + curl -L "https://github.com/libsndfile/libsndfile/releases/download/$pkgver/libsndfile-$pkgver.tar.bz2" -o $pkgname-$pkgver.tar.bz2 + tar -xf $pkgname-$pkgver.tar.bz2 + mkdir $pkgname-$pkgver/build +} + +build() { + cd $pkgname-$pkgver + cd build + cmake -G Ninja ../ \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DBUILD_SHARED_LIBS=ON + samu +} + +package() { + cd $pkgname-$pkgver + cd build + DESTDIR=$pkgdir samu install +} + +backup() { + return +} + +license() { + cd $pkgname-$pkgver + cat COPYING +} diff --git a/snd/ncspot/build.sh b/snd/ncspot/build.sh new file mode 100644 index 0000000..379ec6b --- /dev/null +++ b/snd/ncspot/build.sh @@ -0,0 +1,56 @@ +pkgname=ncspot +pkgver=0.9.6 + +_clear_vendor_checksums() { + sed -i 's/\("files":{\)[^}]*/\1/' vendor/$1/.cargo-checksum.json +} + +fetch() { + curl -L "https://github.com/hrkfdn/ncspot/archive/refs/tags/v$pkgver.tar.gz" -o $pkgname-$pkgver.tar.gz + # # curl -L "https://github.com/sfackler/rust-openssl/archive/refs/tags/openssl-v0.10.34.tar.gz" -o rust-openssl.tar.gz + # curl -L "https://github.com/Ella-0/ncurses-rs/archive/refs/heads/master.tar.gz" -o ncurses.tar.gz + # curl -L "https://github.com/Ella-0/pancurses/archive/refs/heads/master.tar.gz" -o pancurses.tar.gz + # tar -xf ncurses.tar.gz + # mv ncurses-rs-master ncurses + # tar -xf pancurses.tar.gz + # mv pancurses-master pancurses + tar -xf $pkgname-$pkgver.tar.gz + # cp ../cursive_ptr.patch . + cd $pkgname-$pkgver + mkdir -p .cargo + cargo vendor > .cargo/config + # # _clear_vendor_checksums openssl-sys + # # _clear_vendor_checksums openssl + # _clear_vendor_checksums ncurses + # _clear_vendor_checksums pancurses + # _clear_vendor_checksums cursive + # # cp -r ../rust-openssl-openssl-v0.10.34/openssl/ vendor/ + # # cp -r ../rust-openssl-openssl-v0.10.34/openssl-sys/ vendor/ + # cp -r ../ncurses/ vendor/ + # cp -r ../pancurses/ vendor/ + # # sed vendor/openssl/Cargo.toml -i -e 's/0.10.34/0.10.33/g' + # # sed vendor/openssl/Cargo.toml -i -e 's/0.9.62/0.9.61/g' + # # sed vendor/openssl-sys/Cargo.toml -i -e 's/0.9.62/0.9.61/g' + # sed vendor/ncurses/Cargo.toml -i -e 's/5.100.0/5.101.0/g' + # patch -p1 < ../cursive_ptr.patch +} + +build() { + cd $pkgname-$pkgver + cargo build --release --no-default-features --features cursive/termion-backend,pulseaudio_backend +} + +package() { + cd $pkgname-$pkgver + install -Dm 755 target/release/$pkgname $pkgdir/usr/bin/ +} + +backup() { + return +} + +license() { + cd $pkgname-$pkgver + cat LICENSE +# cat COPYING +} diff --git a/snd/ncspot/cursive_ptr.patch b/snd/ncspot/cursive_ptr.patch new file mode 100644 index 0000000..342ef6c --- /dev/null +++ b/snd/ncspot/cursive_ptr.patch @@ -0,0 +1,11 @@ +--- a/vendor/cursive/src/backends/curses/pan.rs ++++ b/vendor/cursive/src/backends/curses/pan.rs +@@ -70,7 +70,7 @@ + pancurses::mouseinterval(0); + pancurses::mousemask( + pancurses::ALL_MOUSE_EVENTS | pancurses::REPORT_MOUSE_POSITION, +- ::std::ptr::null_mut(), ++ None, + ); + + // This asks the terminal to provide us with mouse drag events diff --git a/snd/pipewire/build.sh b/snd/pipewire/build.sh new file mode 100644 index 0000000..0d54b2a --- /dev/null +++ b/snd/pipewire/build.sh @@ -0,0 +1,77 @@ +pkgname=pipewire +pkgver=0.3.48 +mver=0.4.1 + +fetch() { + curl "https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/$pkgver/pipewire-$pkgver.tar.bz2" -o $pkgname-$pkgver.tar.bz2 + curl "https://gitlab.freedesktop.org/pipewire/media-session/-/archive/$mver/media-session-$mver.tar.bz2" -O + tar -xf $pkgname-$pkgver.tar.bz2 + mkdir $pkgname-$pkgver/build + tar -xf media-session-$mver.tar.bz2 -C $pkgname-$pkgver/subprojects/ + mv $pkgname-$pkgver/subprojects/media-session-$mver $pkgname-$pkgver/subprojects/media-session + cd $pkgname-$pkgver + patch -p1 < ../../libudev-zero.patch +} + +build() { + cd $pkgname-$pkgver + cd build + meson .. \ + --buildtype=release \ + --prefix=/usr \ + --libexecdir=lib \ + -Ddocs=disabled \ + -Dexamples=disabled \ + -Dman=disabled \ + -Dinstalled_tests=disabled \ + -Dgstreamer=disabled \ + -Dsystemd=disabled \ + -Dpipewire-jack=disabled \ + -Dpipewire-alsa=enabled \ + -Dpipewire-v4l2=disabled \ + -Dspa-plugins=enabled \ + -Dalsa=enabled \ + -Daudiomixer=enabled \ + -Dbluez5=disabled \ + -Dcontrol=enabled \ + -Daudiotestsrc=enabled \ + -Dffmpeg=disabled \ + -Djack=disabled \ + -Dsupport=enabled \ + -Devl=disabled \ + -Dv4l2=disabled \ + -Ddbus=enabled \ + -Dlibcamera=disabled \ + -Dvideoconvert=disabled \ + -Dvideotestsrc=disabled \ + -Dvolume=enabled \ + -Dvulkan=disabled \ + -Dpw-cat=enabled \ + -Dudev=enabled \ + -Dsdl2=disabled \ + -Dsndfile=enabled \ + -Dlibpulse=enabled \ + -Droc=disabled \ + -Davahi=disabled \ + -Dlibusb=disabled \ + -Draop=disabled \ + -Dlv2=disabled \ + -Dsession-managers="['media-session']" + + samu +} + +package() { + cd $pkgname-$pkgver + cd build + DESTDIR=$pkgdir samu install +} + +backup() { + return +} + +license() { + cd $pkgname-$pkgver + cat COPYING +} diff --git a/snd/pipewire/libudev-zero.patch b/snd/pipewire/libudev-zero.patch new file mode 100644 index 0000000..a34220e --- /dev/null +++ b/snd/pipewire/libudev-zero.patch @@ -0,0 +1,37 @@ +diff --git a/spa/plugins/alsa/alsa-udev.c b/spa/plugins/alsa/alsa-udev.c +index 61ad1af..52510b5 100644 +--- a/spa/plugins/alsa/alsa-udev.c ++++ b/spa/plugins/alsa/alsa-udev.c +@@ -148,9 +148,6 @@ static uint32_t get_card_id(struct impl *this, struct udev_device *dev) + if ((str = udev_device_get_property_value(dev, "SOUND_CLASS")) && spa_streq(str, "modem")) + return SPA_ID_INVALID; + +- if (udev_device_get_property_value(dev, "SOUND_INITIALIZED") == NULL) +- return SPA_ID_INVALID; +- + if ((str = udev_device_get_property_value(dev, "DEVPATH")) == NULL) + return SPA_ID_INVALID; + +@@ -627,7 +624,7 @@ static int enum_devices(struct impl *this) + + for (devices = udev_enumerate_get_list_entry(enumerate); devices; + devices = udev_list_entry_get_next(devices)) { +- struct udev_device *dev; ++ struct udev_device *dev, *pdev; + + dev = udev_device_new_from_syspath(this->udev, udev_list_entry_get_name(devices)); + if (dev == NULL) +@@ -635,6 +632,13 @@ static int enum_devices(struct impl *this) + + process_device(this, ACTION_ADD, dev); + ++ pdev = udev_device_get_parent(dev); ++ if (pdev) { ++ process_device(this, ACTION_ADD, pdev); ++ } ++ ++ /* no need to call udev_device_unref(pdev) here. ++ udev_device_unref() will free parent device implicitly */ + udev_device_unref(dev); + } + udev_enumerate_unref(enumerate); diff --git a/templates/simple.build.sh b/templates/simple.build.sh index ddbebfb..54abde0 100644 --- a/templates/simple.build.sh +++ b/templates/simple.build.sh @@ -10,6 +10,7 @@ build() { cd $pkgname-$pkgver ./configure \ --prefix=/usr \ + --sysconfdir=/etc \ --build=$TRIPLE \ --host=$TRIPLE