diff options
99 files changed, 3073 insertions, 13 deletions
diff --git a/auto/port-alpine.sh b/auto/port-alpine.sh index e1cda3e..42c1b42 100755 --- a/auto/port-alpine.sh +++ b/auto/port-alpine.sh @@ -15,9 +15,7 @@ additional=$(ls $pkgbuild | grep -v ^APKBUILD$) . $apkbuild -[ ! -z "$2" ] && name=${2} - -name=$(echo $pkgname | sed 's/py3-/python-/' ) +[ ! -z "$2" ] && name=${2} || name=$(echo $pkgname | sed 's/py3-/python-/' ) version=$pkgver diff --git a/repo/a52dec/a52dec-0.7.4-build.patch b/repo/a52dec/a52dec-0.7.4-build.patch new file mode 100644 index 0000000..f3a29f3 --- /dev/null +++ b/repo/a52dec/a52dec-0.7.4-build.patch @@ -0,0 +1,27 @@ +diff -Naur a52dec-0.7.4.orig/liba52/Makefile.am a52dec-0.7.4/liba52/Makefile.am +--- a52dec-0.7.4.orig/liba52/Makefile.am 2002-01-27 20:36:48.000000000 -0800 ++++ a52dec-0.7.4/liba52/Makefile.am 2004-11-05 01:10:21.317401872 -0800 +@@ -1,4 +1,3 @@ +-CFLAGS = @CFLAGS@ @LIBA52_CFLAGS@ + + lib_LTLIBRARIES = liba52.la + +diff -Naur a52dec-0.7.4.orig/liba52/configure.incl a52dec-0.7.4/liba52/configure.incl +--- a52dec-0.7.4.orig/liba52/configure.incl 2002-01-27 20:36:48.000000000 -0800 ++++ a52dec-0.7.4/liba52/configure.incl 2004-11-05 01:11:38.172672216 -0800 +@@ -2,7 +2,6 @@ + AC_SUBST([LIBA52_LIBS]) + + dnl avoid -fPIC when possible +-LIBA52_CFLAGS="$LIBA52_CFLAGS -prefer-non-pic" + + AC_ARG_ENABLE([double], + [ --enable-double use double-precision samples]) +diff -Naur a52dec-0.7.4.orig/src/Makefile.am a52dec-0.7.4/src/Makefile.am +--- a52dec-0.7.4.orig/src/Makefile.am 2002-06-22 18:51:57.000000000 -0700 ++++ a52dec-0.7.4/src/Makefile.am 2004-11-05 01:10:21.320401375 -0800 +@@ -1,4 +1,3 @@ +-CFLAGS = @A52DEC_CFLAGS@ + + bin_PROGRAMS = a52dec extract_a52 + a52dec_SOURCES = a52dec.c getopt.c gettimeofday.c diff --git a/repo/a52dec/a52dec.xibuild b/repo/a52dec/a52dec.xibuild new file mode 100644 index 0000000..2093040 --- /dev/null +++ b/repo/a52dec/a52dec.xibuild @@ -0,0 +1,38 @@ +#!/bin/sh + +NAME="a52dec" +DESC="A free library for decoding ATSC A/52 streams." + +MAKEDEPS="autoconf automake libtool linux-headers" + +PKG_VER=0.7.4 +SOURCE="http://liba52.sourceforge.net/files/a52dec-$PKG_VER.tar.gz" + +ADDITIONAL=" +a52dec-0.7.4-build.patch +automake.patch +fix-globals-test-x86-pie.patch +" + +prepare() { + apply_patches + libtoolize --force && \ + aclocal && autoconf && automake --add-missing +} + +build() { + ./configure \ + --prefix=/usr \ + --enable-shared + make +} + +check() { + make check +} + +package() { + make DESTDIR="$PKG_DEST" install + install -m644 liba52/a52_internal.h "$PKG_DEST"/usr/include/a52dec/ +} + diff --git a/repo/a52dec/automake.patch b/repo/a52dec/automake.patch new file mode 100644 index 0000000..42231e0 --- /dev/null +++ b/repo/a52dec/automake.patch @@ -0,0 +1,11 @@ +--- ./configure.in.orig 2013-04-23 12:43:16.258733686 +0000 ++++ ./configure.in 2013-04-23 12:43:32.922233281 +0000 +@@ -6,7 +6,7 @@ + AC_CONFIG_FILES([Makefile autotools/Makefile include/Makefile test/Makefile + doc/Makefile src/Makefile liba52/Makefile libao/Makefile vc++/Makefile]) + AM_INIT_AUTOMAKE([a52dec],[0.7.4]) +-AM_CONFIG_HEADER(include/config.h) ++AC_CONFIG_HEADERS(include/config.h) + AM_MAINTAINER_MODE + AC_CANONICAL_HOST + diff --git a/repo/a52dec/fix-globals-test-x86-pie.patch b/repo/a52dec/fix-globals-test-x86-pie.patch new file mode 100644 index 0000000..da227a1 --- /dev/null +++ b/repo/a52dec/fix-globals-test-x86-pie.patch @@ -0,0 +1,11 @@ +--- a52dec-0.7.4.orig/test/globals ++++ a52dec-0.7.4/test/globals +@@ -13,7 +13,7 @@ + builddir=`cd $builddir;pwd` + + bad_globals=`nm -g --defined-only $builddir/../liba52/*.o|\ +- awk '{if ($3) print $3}'|grep -v '^_\?a52_'` ++ awk '{if ($3) print $3}'|grep -v '^_\?a52_'`|grep -v '^__x86.get_pc_thunk.' + + if test x"$bad_globals" != x""; then + echo BAD GLOBAL SYMBOLS: diff --git a/repo/appstream-glib/appstream-glib.xibuild b/repo/appstream-glib/appstream-glib.xibuild new file mode 100644 index 0000000..0f5ccba --- /dev/null +++ b/repo/appstream-glib/appstream-glib.xibuild @@ -0,0 +1,36 @@ +#!/bin/sh + +NAME="appstream-glib" +DESC="Library for AppStream metadata" + +MAKEDEPS="meson glib libarchive libsoup json-glib gdk-pixbuf gtk3 freetype2 fontconfig yaml gperf libgcab gobject-introspection" + +PKG_VER=0.7.18 +SOURCE="https://people.freedesktop.org/~hughsient/appstream-glib/releases/appstream-glib-$PKG_VER.tar.xz" + +build() { + meson --prefix=/usr \ + -Ddep11=true \ + -Dbuilder=true \ + -Drpm=false \ + -Dalpm=false \ + -Dfonts=true \ + -Dstemmer=false \ + -Dman=true \ + -Dgtk-doc=false \ + -Dintrospection=true \ + output + meson compile ${JOBS:+-j ${JOBS}} -C output +} + +check() { + meson test --no-rebuild -v -C output +} + +package() { + DESTDIR="$PKG_DEST" meson install --no-rebuild -C output + + # Remove installed tests + rm -rf "$PKG_DEST"/usr/share/installed-tests/appstream-glib +} + diff --git a/repo/avahi/CVE-2021-3468.patch b/repo/avahi/CVE-2021-3468.patch new file mode 100644 index 0000000..3e0725a --- /dev/null +++ b/repo/avahi/CVE-2021-3468.patch @@ -0,0 +1,37 @@ +From 447affe29991ee99c6b9732fc5f2c1048a611d3b Mon Sep 17 00:00:00 2001 +From: Riccardo Schirone <sirmy15@gmail.com> +Date: Fri, 26 Mar 2021 11:50:24 +0100 +Subject: [PATCH] Avoid infinite-loop in avahi-daemon by handling HUP event in + client_work + +If a client fills the input buffer, client_work() disables the +AVAHI_WATCH_IN event, thus preventing the function from executing the +`read` syscall the next times it is called. However, if the client then +terminates the connection, the socket file descriptor receives a HUP +event, which is not handled, thus the kernel keeps marking the HUP event +as occurring. While iterating over the file descriptors that triggered +an event, the client file descriptor will keep having the HUP event and +the client_work() function is always called with AVAHI_WATCH_HUP but +without nothing being done, thus entering an infinite loop. + +See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=984938 +--- + avahi-daemon/simple-protocol.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/avahi-daemon/simple-protocol.c b/avahi-daemon/simple-protocol.c +index 3e0ebb11..6c0274d6 100644 +--- a/avahi-daemon/simple-protocol.c ++++ b/avahi-daemon/simple-protocol.c +@@ -424,6 +424,11 @@ static void client_work(AvahiWatch *watch, AVAHI_GCC_UNUSED int fd, AvahiWatchEv + } + } + ++ if (events & AVAHI_WATCH_HUP) { ++ client_free(c); ++ return; ++ } ++ + c->server->poll_api->watch_update( + watch, + (c->outbuf_length > 0 ? AVAHI_WATCH_OUT : 0) | diff --git a/repo/avahi/CVE-2021-36217.patch b/repo/avahi/CVE-2021-36217.patch new file mode 100644 index 0000000..7b0449a --- /dev/null +++ b/repo/avahi/CVE-2021-36217.patch @@ -0,0 +1,148 @@ +From 9d31939e55280a733d930b15ac9e4dda4497680c Mon Sep 17 00:00:00 2001 +From: Tommi Rantala <tommi.t.rantala@nokia.com> +Date: Mon, 8 Feb 2021 11:04:43 +0200 +Subject: [PATCH] Fix NULL pointer crashes from #175 + +avahi-daemon is crashing when running "ping .local". +The crash is due to failing assertion from NULL pointer. +Add missing NULL pointer checks to fix it. + +Introduced in #175 - merge commit 8f75a045709a780c8cf92a6a21e9d35b593bdecd +--- + avahi-core/browse-dns-server.c | 5 ++++- + avahi-core/browse-domain.c | 5 ++++- + avahi-core/browse-service-type.c | 3 +++ + avahi-core/browse-service.c | 3 +++ + avahi-core/browse.c | 3 +++ + avahi-core/resolve-address.c | 5 ++++- + avahi-core/resolve-host-name.c | 5 ++++- + avahi-core/resolve-service.c | 5 ++++- + 8 files changed, 29 insertions(+), 5 deletions(-) + +diff --git a/avahi-core/browse-dns-server.c b/avahi-core/browse-dns-server.c +index 049752e9..c2d914fa 100644 +--- a/avahi-core/browse-dns-server.c ++++ b/avahi-core/browse-dns-server.c +@@ -343,7 +343,10 @@ AvahiSDNSServerBrowser *avahi_s_dns_server_browser_new( + AvahiSDNSServerBrowser* b; + + b = avahi_s_dns_server_browser_prepare(server, interface, protocol, domain, type, aprotocol, flags, callback, userdata); ++ if (!b) ++ return NULL; ++ + avahi_s_dns_server_browser_start(b); + + return b; +-} +\ No newline at end of file ++} +diff --git a/avahi-core/browse-domain.c b/avahi-core/browse-domain.c +index f145d56a..06fa70c0 100644 +--- a/avahi-core/browse-domain.c ++++ b/avahi-core/browse-domain.c +@@ -253,7 +253,10 @@ AvahiSDomainBrowser *avahi_s_domain_browser_new( + AvahiSDomainBrowser *b; + + b = avahi_s_domain_browser_prepare(server, interface, protocol, domain, type, flags, callback, userdata); ++ if (!b) ++ return NULL; ++ + avahi_s_domain_browser_start(b); + + return b; +-} +\ No newline at end of file ++} +diff --git a/avahi-core/browse-service-type.c b/avahi-core/browse-service-type.c +index fdd22dcd..b1fc7af8 100644 +--- a/avahi-core/browse-service-type.c ++++ b/avahi-core/browse-service-type.c +@@ -171,6 +171,9 @@ AvahiSServiceTypeBrowser *avahi_s_service_type_browser_new( + AvahiSServiceTypeBrowser *b; + + b = avahi_s_service_type_browser_prepare(server, interface, protocol, domain, flags, callback, userdata); ++ if (!b) ++ return NULL; ++ + avahi_s_service_type_browser_start(b); + + return b; +diff --git a/avahi-core/browse-service.c b/avahi-core/browse-service.c +index 5531360c..63e0275a 100644 +--- a/avahi-core/browse-service.c ++++ b/avahi-core/browse-service.c +@@ -184,6 +184,9 @@ AvahiSServiceBrowser *avahi_s_service_browser_new( + AvahiSServiceBrowser *b; + + b = avahi_s_service_browser_prepare(server, interface, protocol, service_type, domain, flags, callback, userdata); ++ if (!b) ++ return NULL; ++ + avahi_s_service_browser_start(b); + + return b; +diff --git a/avahi-core/browse.c b/avahi-core/browse.c +index 2941e579..e8a915e9 100644 +--- a/avahi-core/browse.c ++++ b/avahi-core/browse.c +@@ -634,6 +634,9 @@ AvahiSRecordBrowser *avahi_s_record_browser_new( + AvahiSRecordBrowser *b; + + b = avahi_s_record_browser_prepare(server, interface, protocol, key, flags, callback, userdata); ++ if (!b) ++ return NULL; ++ + avahi_s_record_browser_start_query(b); + + return b; +diff --git a/avahi-core/resolve-address.c b/avahi-core/resolve-address.c +index ac0b29b1..e61dd242 100644 +--- a/avahi-core/resolve-address.c ++++ b/avahi-core/resolve-address.c +@@ -286,7 +286,10 @@ AvahiSAddressResolver *avahi_s_address_resolver_new( + AvahiSAddressResolver *b; + + b = avahi_s_address_resolver_prepare(server, interface, protocol, address, flags, callback, userdata); ++ if (!b) ++ return NULL; ++ + avahi_s_address_resolver_start(b); + + return b; +-} +\ No newline at end of file ++} +diff --git a/avahi-core/resolve-host-name.c b/avahi-core/resolve-host-name.c +index 808b0e72..4e8e5973 100644 +--- a/avahi-core/resolve-host-name.c ++++ b/avahi-core/resolve-host-name.c +@@ -318,7 +318,10 @@ AvahiSHostNameResolver *avahi_s_host_name_resolver_new( + AvahiSHostNameResolver *b; + + b = avahi_s_host_name_resolver_prepare(server, interface, protocol, host_name, aprotocol, flags, callback, userdata); ++ if (!b) ++ return NULL; ++ + avahi_s_host_name_resolver_start(b); + + return b; +-} +\ No newline at end of file ++} +diff --git a/avahi-core/resolve-service.c b/avahi-core/resolve-service.c +index 66bf3cae..43771763 100644 +--- a/avahi-core/resolve-service.c ++++ b/avahi-core/resolve-service.c +@@ -519,7 +519,10 @@ AvahiSServiceResolver *avahi_s_service_resolver_new( + AvahiSServiceResolver *b; + + b = avahi_s_service_resolver_prepare(server, interface, protocol, name, type, domain, aprotocol, flags, callback, userdata); ++ if (!b) ++ return NULL; ++ + avahi_s_service_resolver_start(b); + + return b; +-} +\ No newline at end of file ++} diff --git a/repo/avahi/avahi.pre-install b/repo/avahi/avahi.pre-install new file mode 100644 index 0000000..89b2fd4 --- /dev/null +++ b/repo/avahi/avahi.pre-install @@ -0,0 +1,12 @@ +#!/bin/sh + +addgroup -S -g 28 netdev 2>/dev/null +addgroup -S -g 86 avahi 2>/dev/null +adduser -S -u 86 -D -H \ + -h /var/run/avahi-daemon \ + -s /sbin/nologin \ + -G avahi \ + -g "Avahi System User" \ + avahi 2>/dev/null + +exit 0 diff --git a/repo/avahi/avahi.xibuild b/repo/avahi/avahi.xibuild new file mode 100644 index 0000000..d1e53f4 --- /dev/null +++ b/repo/avahi/avahi.xibuild @@ -0,0 +1,60 @@ +#!/bin/sh + +NAME="avahi" +DESC="multicast/unicast DNS-SD framework" + +MAKEDEPS="gdbm intltool gobject-introspection expat libdaemon glib dbus libcap gettext autoconf automake libtool libevent" + +PKG_VER=0.8 +SOURCE="https://github.com/lathiat/avahi/releases/download/v$PKG_VER/avahi-$PKG_VER.tar.gz" + +ADDITIONAL=" +CVE-2021-3468.patch +CVE-2021-36217.patch +avahi.pre-install +" + +prepare() { + apply_patches + autoreconf -vif +} + +build() { + # we dont build autoipd since dhcpcd does same job + LDFLAGS="$LDFLAGS -lintl" \ + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --disable-autoipd \ + --disable-qt3 \ + --disable-qt4 \ + --disable-qt5 \ + --disable-gtk \ + --disable-gtk3 \ + --disable-mono \ + --disable-monodoc \ + --disable-doxygen-doc \ + --disable-xmltoman \ + --enable-compat-libdns_sd \ + --enable-compat-howl \ + --disable-python \ + --with-dbus-sys=/usr/share/dbus-1/system.d \ + --with-distro="gentoo" + make +} + +check() { + make check +} + +package() { + make DESTDIR="$PKG_DEST" install + + install -d -o avahi -g avahi "$PKG_DEST"/var/run/avahi-daemon + + ln -s avahi-compat-howl.pc "$PKG_DEST"/usr/lib/pkgconfig/howl.pc + ln -s avahi-compat-libdns_sd.pc "$PKG_DEST"/usr/lib/pkgconfig/libdns_sd.pc + ln -s avahi-compat-libdns_sd/dns_sd.h "$PKG_DEST"/usr/include/ +} + diff --git a/repo/ddcutil/ddcutil.xibuild b/repo/ddcutil/ddcutil.xibuild index 457c922..2936bed 100644 --- a/repo/ddcutil/ddcutil.xibuild +++ b/repo/ddcutil/ddcutil.xibuild @@ -3,12 +3,13 @@ NAME="ddcutil" DESC="Query and change Linux monitor settings using DDC/CI and USB" -MAKEDEPS="linux-headers autoconf automake libtool eudev libusb i2c-tools libxrandr glib kmod" +MAKEDEPS=" linux-headers autoconf automake libtool eudev libusb i2c-tools libxrandr glib kmod" PKG_VER=1.2.2 SOURCE="https://github.com/rockowitz/ddcutil/archive/v$PKG_VER.tar.gz" prepare() { + apply_patches NOCONFIGURE=1 ./autogen.sh } diff --git a/repo/enchant2/enchant2.xibuild b/repo/enchant2/enchant2.xibuild new file mode 100644 index 0000000..afd5e0b --- /dev/null +++ b/repo/enchant2/enchant2.xibuild @@ -0,0 +1,26 @@ +#!/bin/sh + +NAME="enchant2" +DESC="wrapper library for generic spell checking (v2)" + +MAKEDEPS="aspell glib dbus-glib gettext file bash nuspell" + +PKG_VER=2.3.2 +SOURCE="https://github.com/AbiWord/enchant/releases/download/v$PKG_VER/enchant-$PKG_VER.tar.gz" + +build() { + ./configure \ + --prefix=/usr \ + --disable-static \ + --with-nuspell + make +} + +check() { + make check +} + +package() { + make DESTDIR="$PKG_DEST" pkgdatadir=/usr/share/enchant-2 install +} + diff --git a/repo/freeciv/freeciv.xibuild b/repo/freeciv/freeciv.xibuild index 2ef99f5..a50f4be 100644 --- a/repo/freeciv/freeciv.xibuild +++ b/repo/freeciv/freeciv.xibuild @@ -3,7 +3,7 @@ NAME="freeciv" DESC="Free and Open Source empire-building strategy game (meta package)" -MAKEDEPS="curl readline gettext sdl2-mixer gzip pkg-conf glib atk pango gdk-pixbuf gtk3 qtchooser qt5-qtbase gzip sdl2 sdl2-image sdl2-ttf sdl2-gfx sqlite3" +MAKEDEPS="curl readline gettext sdl2-mixer gzip pkg-config glib atk pango gdk-pixbuf gtk3 qtchooser qt5-qtbase gzip sdl2 sdl2-image sdl2-ttf sdl2-gfx sqlite3" PKG_VER=3.0.0 SOURCE="https://downloads.sourceforge.net/sourceforge/freeciv/freeciv-$PKG_VER.tar.xz" diff --git a/repo/geoip/geoip.xibuild b/repo/geoip/geoip.xibuild new file mode 100644 index 0000000..1b580bd --- /dev/null +++ b/repo/geoip/geoip.xibuild @@ -0,0 +1,28 @@ +#!/bin/sh + +NAME="geoip" +DESC="Lookup countries by IP addresses" + +MAKEDEPS="zlib" + +PKG_VER=1.6.12 +SOURCE="https://github.com/maxmind/geoip-api-c/releases/download/v$PKG_VER/GeoIP-$PKG_VER.tar.gz" + +build() { + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc/geoip \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info + make +} + +package() { + make DESTDIR="$PKG_DEST" install + mkdir -p "$PKG_DEST"/usr/share/GeoIP +} + +check() { + make check +} + diff --git a/repo/gn/gn.xibuild b/repo/gn/gn.xibuild new file mode 100644 index 0000000..634b9d1 --- /dev/null +++ b/repo/gn/gn.xibuild @@ -0,0 +1,26 @@ +#!/bin/sh + +NAME="gn" +DESC="Meta-build system that generates build files for Ninja" + +MAKEDEPS="python" + +SOURCE="https://gn.googlesource.com/gn.git" + +ADDITIONAL=" +python3.patch +" + +build() { + ./build/gen.py + ninja -C out +} + +check() { + ./out/gn_unittests +} + +package() { + install -Dm755 out/gn "$PKG_DEST"/usr/bin/gn +} + diff --git a/repo/gn/python3.patch b/repo/gn/python3.patch new file mode 100644 index 0000000..891534d --- /dev/null +++ b/repo/gn/python3.patch @@ -0,0 +1,236 @@ +--- a/build/full_test.py ++++ b/build/full_test.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # Copyright 2018 The Chromium Authors. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. +--- a/build/gen.py ++++ b/build/gen.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # Copyright 2014 The Chromium Authors. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. +--- a/infra/recipes.py ++++ b/infra/recipes.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + + # Copyright 2017 The LUCI Authors. All rights reserved. + # Use of this source code is governed under the Apache License, Version 2.0 +--- a/misc/help_as_html.py ++++ b/misc/help_as_html.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # Copyright 2014 The Chromium Authors. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. +--- a/src/gn/exec_process_unittest.cc ++++ b/src/gn/exec_process_unittest.cc +@@ -33,7 +33,7 @@ + args.push_back(L"-c"); + args.push_back(base::UTF8ToUTF16(command)); + #else +- args.push_back("python"); ++ args.push_back("python3"); + args.push_back("-c"); + args.push_back(command); + #endif +--- a/src/gn/json_project_writer_unittest.cc ++++ b/src/gn/json_project_writer_unittest.cc +@@ -37,7 +37,7 @@ + SubstitutionList::MakeForTest("//out/Debug/output1.out"); + + setup.build_settings()->set_python_path( +- base::FilePath(FILE_PATH_LITERAL("/usr/bin/python"))); ++ base::FilePath(FILE_PATH_LITERAL("/usr/bin/python3"))); + std::vector<const Target*> targets; + targets.push_back(&target); + #if defined(OS_WIN) +@@ -172,7 +172,7 @@ + SubstitutionList::MakeForTest("//out/Debug/{{source_name_part}}.out"); + + setup.build_settings()->set_python_path( +- base::FilePath(FILE_PATH_LITERAL("/usr/bin/python"))); ++ base::FilePath(FILE_PATH_LITERAL("/usr/bin/python3"))); + std::vector<const Target*> targets; + targets.push_back(&target); + #if defined(OS_WIN) +--- a/src/gn/ninja_action_target_writer_unittest.cc ++++ b/src/gn/ninja_action_target_writer_unittest.cc +@@ -54,14 +54,14 @@ + ASSERT_TRUE(target.OnResolved(&err)); + + setup.build_settings()->set_python_path( +- base::FilePath(FILE_PATH_LITERAL("/usr/bin/python"))); ++ base::FilePath(FILE_PATH_LITERAL("/usr/bin/python3"))); + + std::ostringstream out; + NinjaActionTargetWriter writer(&target, out); + writer.Run(); + + const char* expected = R"(rule __foo_bar___rule +- command = /usr/bin/python ../../foo/script.py ++ command = /usr/bin/python3 ../../foo/script.py + description = ACTION //foo:bar() + restat = 1 + +@@ -96,7 +96,7 @@ + ASSERT_TRUE(target.OnResolved(&err)); + + setup.build_settings()->set_python_path( +- base::FilePath(FILE_PATH_LITERAL("/usr/bin/python"))); ++ base::FilePath(FILE_PATH_LITERAL("/usr/bin/python3"))); + + std::ostringstream out; + NinjaActionTargetWriter writer(&target, out); +@@ -105,7 +105,7 @@ + // The console pool's name must be mapped exactly to the string "console" + // which is a special pre-defined pool name in ninja. + const char* expected = R"(rule __foo_bar___rule +- command = /usr/bin/python ../../foo/script.py ++ command = /usr/bin/python3 ../../foo/script.py + description = ACTION //foo:bar() + restat = 1 + +@@ -138,7 +138,7 @@ + ASSERT_TRUE(target.OnResolved(&err)); + + setup.build_settings()->set_python_path( +- base::FilePath(FILE_PATH_LITERAL("/usr/bin/python"))); ++ base::FilePath(FILE_PATH_LITERAL("/usr/bin/python3"))); + + std::ostringstream out; + NinjaActionTargetWriter writer(&target, out); +@@ -146,7 +146,7 @@ + + const char expected_linux[] = + "rule __foo_bar___rule\n" +- " command = /usr/bin/python ../../foo/script.py\n" ++ " command = /usr/bin/python3 ../../foo/script.py\n" + " description = ACTION //foo:bar()\n" + " restat = 1\n" + "\n" +@@ -207,7 +207,7 @@ + ASSERT_TRUE(target.OnResolved(&err)); + + setup.build_settings()->set_python_path( +- base::FilePath(FILE_PATH_LITERAL("/usr/bin/python"))); ++ base::FilePath(FILE_PATH_LITERAL("/usr/bin/python3"))); + + std::ostringstream out; + NinjaActionTargetWriter writer(&target, out); +@@ -215,7 +215,7 @@ + + const char expected_linux[] = + "rule __foo_bar___rule\n" +- " command = /usr/bin/python ../../foo/script.py -i ${in} " ++ " command = /usr/bin/python3 ../../foo/script.py -i ${in} " + // Escaping is different between Windows and Posix. + #if defined(OS_WIN) + "\"--out=foo$ bar${source_name_part}.o\"\n" +@@ -273,7 +273,7 @@ + target.config_values().inputs().push_back(SourceFile("//foo/included.txt")); + + setup.build_settings()->set_python_path( +- base::FilePath(FILE_PATH_LITERAL("/usr/bin/python"))); ++ base::FilePath(FILE_PATH_LITERAL("/usr/bin/python3"))); + setup.build_settings()->set_ninja_required_version(Version{1, 9, 0}); + + std::ostringstream out; +@@ -282,7 +282,7 @@ + + const char expected_linux[] = + "rule __foo_bar___rule\n" +- " command = /usr/bin/python ../../foo/script.py -i ${in} " ++ " command = /usr/bin/python3 ../../foo/script.py -i ${in} " + #if defined(OS_WIN) + "\"--out=foo$ bar${source_name_part}.o\"\n" + #else +@@ -331,7 +331,7 @@ + SubstitutionList::MakeForTest("//out/Debug/{{source_name_part}}.out"); + + setup.build_settings()->set_python_path( +- base::FilePath(FILE_PATH_LITERAL("/usr/bin/python"))); ++ base::FilePath(FILE_PATH_LITERAL("/usr/bin/python3"))); + + std::ostringstream out; + NinjaActionTargetWriter writer(&target, out); +@@ -344,7 +344,7 @@ + // These come from rsp_file_contents above. + " rspfile_content = -j ${source_name_part}\n" + // These come from the args. +- " command = /usr/bin/python ../../foo/script.py ${in} " ++ " command = /usr/bin/python3 ../../foo/script.py ${in} " + "${source_file_part} ${rspfile}\n" + " description = ACTION //foo:bar()\n" + " restat = 1\n" +@@ -389,7 +389,7 @@ + SubstitutionList::MakeForTest("//out/Debug/{{source_name_part}}.out"); + + setup.build_settings()->set_python_path( +- base::FilePath(FILE_PATH_LITERAL("/usr/bin/python"))); ++ base::FilePath(FILE_PATH_LITERAL("/usr/bin/python3"))); + + std::ostringstream out; + NinjaActionTargetWriter writer(&target, out); +@@ -398,7 +398,7 @@ + const char expected_linux[] = + "rule __foo_bar___rule\n" + // These come from the args. +- " command = /usr/bin/python ../../foo/script.py ${in} " ++ " command = /usr/bin/python3 ../../foo/script.py ${in} " + "${source_file_part}\n" + " description = ACTION //foo:bar()\n" + " restat = 1\n" +@@ -418,7 +418,7 @@ + TestWithScope setup; + + setup.build_settings()->set_python_path( +- base::FilePath(FILE_PATH_LITERAL("/usr/bin/python"))); ++ base::FilePath(FILE_PATH_LITERAL("/usr/bin/python3"))); + + Target dep(setup.settings(), Label(SourceDir("//foo/"), "dep")); + dep.set_output_type(Target::ACTION); +@@ -445,7 +445,7 @@ + const char expected_linux[] = + "rule __foo_foo___rule\n" + // These come from the args. +- " command = /usr/bin/python ../../foo/script.py\n" ++ " command = /usr/bin/python3 ../../foo/script.py\n" + " description = ACTION //foo:foo()\n" + " restat = 1\n" + "\n" +@@ -474,7 +474,7 @@ + const char expected_linux[] = + "rule __bar_bar___rule\n" + // These come from the args. +- " command = /usr/bin/python ../../bar/script.py\n" ++ " command = /usr/bin/python3 ../../bar/script.py\n" + " description = ACTION //bar:bar()\n" + " restat = 1\n" + "\n" +--- a/src/gn/setup.cc ++++ b/src/gn/setup.cc +@@ -762,7 +762,7 @@ + } + build_settings_.set_python_path(python_path.NormalizePathSeparatorsTo('/')); + #else +- build_settings_.set_python_path(base::FilePath("python")); ++ build_settings_.set_python_path(base::FilePath("python3")); + #endif + } + return true; +--- a/tools/find_unreachable.py ++++ b/tools/find_unreachable.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # Copyright 2020 The Chromium Authors. All rights reserved. + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. diff --git a/repo/gtk-vnc/gtk-vnc.xibuild b/repo/gtk-vnc/gtk-vnc.xibuild new file mode 100644 index 0000000..fc89f93 --- /dev/null +++ b/repo/gtk-vnc/gtk-vnc.xibuild @@ -0,0 +1,26 @@ +#!/bin/sh + +NAME="gtk-vnc" +DESC="VNC viewer widget for GTK" + +MAKEDEPS="gtk3 gnutls glib expat libgcrypt libgpg-error libsasl perl-text-csv pulseaudio gobject-introspection vala meson" + +PKG_VER=1.3.0 +SOURCE="https://download.gnome.org/sources/gtk-vnc/${PKG_VER%.*}/gtk-vnc-$PKG_VER.tar.xz" + +build() { + meson --prefix=/usr \ + -Dwith-vala=enabled \ + . output + + meson compile ${JOBS:+-j ${JOBS}} -C output +} + +check() { + meson test --no-rebuild -v -C output +} + +package() { + DESTDIR="$PKG_DEST" meson install --no-rebuild -C output +} + diff --git a/repo/gtk-vnc/gvncviewer.xibuild b/repo/gtk-vnc/gvncviewer.xibuild new file mode 100644 index 0000000..1ab4025 --- /dev/null +++ b/repo/gtk-vnc/gvncviewer.xibuild @@ -0,0 +1,8 @@ +#!/bin/sh +DESC="Demo application for gtk-vnc" + +package () { + mkdir -p "$PKG_DEST"/usr/bin + mv output/examples/gvncviewer "$PKG_DEST"/usr/bin +} + diff --git a/repo/gtksourceview/gtksourceview.xibuild b/repo/gtksourceview/gtksourceview.xibuild new file mode 100644 index 0000000..bf69b12 --- /dev/null +++ b/repo/gtksourceview/gtksourceview.xibuild @@ -0,0 +1,27 @@ +#!/bin/sh + +NAME="gtksourceview" +DESC="A text widget adding syntax highlighting and more to GNOME" + +MAKEDEPS="gtk3 libxml2 gobject-introspection automake autoconf libtool gtk2" + +PKG_VER=3.24.11 +SOURCE="https://download.gnome.org/sources/gtksourceview/${PKG_VER%.*}/gtksourceview-$PKG_VER.tar.xz" + +prepare() { + apply_patches + autoreconf -fi +} + +build() { + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --disable-static + make +} + +package() { + make DESTDIR="$PKG_DEST" install +} diff --git a/repo/i2c-tools/i2c-tools.xibuild b/repo/i2c-tools/i2c-tools.xibuild index dd907af..27a8e72 100644 --- a/repo/i2c-tools/i2c-tools.xibuild +++ b/repo/i2c-tools/i2c-tools.xibuild @@ -3,12 +3,14 @@ NAME="i2c-tools" DESC="Tools for monitoring I2C devices" -MAKEDEPS="linux-headers python" +MAKEDEPS=" linux-headers python" +DEPS="python" PKG_VER=4.3 SOURCE="https://fossies.org/linux/misc/i2c-tools-$PKG_VER.tar.gz" prepare() { + apply_patches sed -e "s|^DESTDIR.*|DESTDIR = \"$PKG_DEST\"|" \ -e "s|^prefix.*|prefix = /usr|" \ -e "s|^PREFIX.*|PREFIX = /usr|" \ @@ -18,14 +20,19 @@ prepare() { build() { make - cd "$BUILD_ROOT"/py-smbus + cd py-smbus CFLAGS="$CFLAGS -I$BUILD_ROOT/include" python3 setup.py build + cd .. } package() { make install - cd "$BUILD_ROOT"/py-smbus + install -d "$PKG_DEST"/usr/lib + mv "$PKG_DEST"/usr/lib/python3* "$PKG_DEST"/usr/lib + + cd py-smbus python3 setup.py install --prefix=/usr --root="$PKG_DEST" + } diff --git a/repo/libavc1394/argp.patch b/repo/libavc1394/argp.patch new file mode 100644 index 0000000..9c86a62 --- /dev/null +++ b/repo/libavc1394/argp.patch @@ -0,0 +1,11 @@ +--- ./configure.in.orig ++++ ./configure.in +@@ -11,6 +11,8 @@ + + AC_HEADER_STDC + AC_CHECK_HEADERS(sys/time.h sys/types.h unistd.h string.h netinet/in.h stdio.h) ++AC_SEARCH_LIBS([argp_usage], [argp], [], ++ [AC_MSG_ERROR([argp not found. Consider installing argp-standalone])]) + PKG_CHECK_MODULES(LIBRAW1394, libraw1394 >= 1.0.0) + + #set the libtool shared library version numbers diff --git a/repo/libavc1394/automake.patch b/repo/libavc1394/automake.patch new file mode 100644 index 0000000..9bb6280 --- /dev/null +++ b/repo/libavc1394/automake.patch @@ -0,0 +1,10 @@ +--- ./configure.in.orig 2012-12-31 19:52:37.126761564 +0000 ++++ ./configure.in 2012-12-31 19:52:55.096923632 +0000 +@@ -1,6 +1,6 @@ + AC_INIT(Makefile.am) + AM_INIT_AUTOMAKE(libavc1394, 0.5.4) +-AM_CONFIG_HEADER(config.h) ++AC_CONFIG_HEADER(config.h) + AM_MAINTAINER_MODE + + AC_PROG_CC diff --git a/repo/libavc1394/libavc1394.xibuild b/repo/libavc1394/libavc1394.xibuild new file mode 100644 index 0000000..a86b076 --- /dev/null +++ b/repo/libavc1394/libavc1394.xibuild @@ -0,0 +1,38 @@ +#!/bin/sh + +NAME="libavc1394" +DESC="Audio/Video Control library for IEEE-1394 devices" + +MAKEDEPS="libraw1394 libtool automake autoconf argp-standalone" + +PKG_VER=0.5.4 +SOURCE="https://downloads.sourceforge.net/libavc1394/libavc1394-$PKG_VER.tar.gz" + +ADDITIONAL=" +argp.patch +automake.patch +" + +prepare() { + apply_patches + autoreconf -fi +} + +build() { + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --localstatedir=/var + make +} + +check() { + make check +} + +package() { + make DESTDIR="$PKG_DEST" install +} + diff --git a/repo/libcddb/libcddb.xibuild b/repo/libcddb/libcddb.xibuild new file mode 100644 index 0000000..482567e --- /dev/null +++ b/repo/libcddb/libcddb.xibuild @@ -0,0 +1,27 @@ +#!/bin/sh + +NAME="libcddb" +DESC="Library that implements the different protocols (CDDBP, HTTP, SMTP) to access data on a CDDB server (e.g. http://freedb.org)." + +MAKEDEPS="" + +PKG_VER=1.3.2 +SOURCE="https://downloads.sourceforge.net/libcddb/libcddb-$PKG_VER.tar.bz2" + +prepare() { + apply_patches +} + +build() { + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info + make +} + +package() { + make DESTDIR="$PKG_DEST" install +} + diff --git a/repo/libdvbpsi/fix-includes.patch b/repo/libdvbpsi/fix-includes.patch new file mode 100644 index 0000000..9fbdc84 --- /dev/null +++ b/repo/libdvbpsi/fix-includes.patch @@ -0,0 +1,24 @@ +--- libdvbpsi-1.1.1.orig/examples/dvbinfo/buffer.h ++++ libdvbpsi-1.1.1/examples/dvbinfo/buffer.h +@@ -23,6 +23,9 @@ + #ifndef DVBINFO_BUFFER_H_ + #define DVBINFO_BUFFER_H_ + ++#include <sys/types.h> ++#include <stdint.h> ++ + typedef struct buffer_s buffer_t; + + struct buffer_s +--- libdvbpsi-1.1.1.orig/src/descriptor.h ++++ libdvbpsi-1.1.1/src/descriptor.h +@@ -35,6 +35,9 @@ + #ifndef _DVBPSI_DESCRIPTOR_H_ + #define _DVBPSI_DESCRIPTOR_H_ + ++#include <sys/types.h> ++#include <stdint.h> ++ + #ifdef __cplusplus + extern "C" { + #endif diff --git a/repo/libdvbpsi/libdvbpsi.xibuild b/repo/libdvbpsi/libdvbpsi.xibuild new file mode 100644 index 0000000..04ead06 --- /dev/null +++ b/repo/libdvbpsi/libdvbpsi.xibuild @@ -0,0 +1,29 @@ +#!/bin/sh + +NAME="libdvbpsi" +DESC="A library decoding and generating MPEG TS and DVB PSI tables" + +MAKEDEPS="musl" + +PKG_VER=1.3.3 +SOURCE="https://download.videolan.org/pub/libdvbpsi/$PKG_VER/libdvbpsi-$PKG_VER.tar.bz2" + +ADDITIONAL=" +fix-includes.patch +" + +prepare () { + apply_patches +} + +build() { + ./configure \ + --prefix=/usr \ + --enable-release \ + --disable-static + make +} + +package() { + make DESTDIR="$PKG_DEST" install +} diff --git a/repo/libgcab/libgcab.xibuild b/repo/libgcab/libgcab.xibuild new file mode 100644 index 0000000..22a81aa --- /dev/null +++ b/repo/libgcab/libgcab.xibuild @@ -0,0 +1,24 @@ +#!/bin/sh + +NAME="libgcab" +DESC="A GObject library to create cabinet files" + +MAKEDEPS="meson gobject-introspection glib vala gtk2" + +PKG_VER=1.4 +SOURCE="https://download.gnome.org/sources/gcab/$PKG_VER/gcab-$PKG_VER.tar.xz" + +build() { + meson --prefix=/usr \ + output + meson compile ${JOBS:+-j ${JOBS}} -C output +} + +check() { + meson test --no-rebuild -v -C output +} + +package() { + DESTDIR="$PKG_DEST" meson install --no-rebuild -C output +} + diff --git a/repo/libmatroska/libmatroska.xibuild b/repo/libmatroska/libmatroska.xibuild new file mode 100644 index 0000000..330ebac --- /dev/null +++ b/repo/libmatroska/libmatroska.xibuild @@ -0,0 +1,29 @@ +#!/bin/sh + +NAME="libmatroska" +DESC="Extensible multimedia container format based on EBML" + +MAKEDEPS="cmake libebml ninja" + +PKG_VER=1.6.3 +SOURCE="https://dl.matroska.org/downloads/libmatroska/libmatroska-$PKG_VER.tar.xz" + +build() { + if [ "$CBUILD" != "$CHOST" ]; then + CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux" + fi + cmake -B build -G Ninja \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DBUILD_SHARED_LIBS=True \ + -DCMAKE_BUILD_TYPE=None \ + -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ + -DCMAKE_C_FLAGS="$CFLAGS" \ + $CMAKE_CROSSOPTS + cmake --build build +} + +package() { + DESTDIR="$PKG_DEST" cmake --build build --target install +} + diff --git a/repo/libmikmod/libmikmod.xibuild b/repo/libmikmod/libmikmod.xibuild new file mode 100644 index 0000000..f2032e3 --- /dev/null +++ b/repo/libmikmod/libmikmod.xibuild @@ -0,0 +1,23 @@ +#!/bin/sh + +NAME="libmikmod" +DESC="module playing library" + +MAKEDEPS="alsa-lib" + +PKG_VER=3.3.11.1 +SOURCE="https://downloads.sourceforge.net/mikmod/libmikmod-$PKG_VER.tar.gz" + +build() { + # build fails with bash + export CONFIG_SHELL="/bin/sh" + ./configure \ + --prefix=/usr \ + --enable-alsa + make +} + +package() { + make DESTDIR="$PKG_DEST" install +} + diff --git a/repo/libmpeg2/arm-private-symbols.patch b/repo/libmpeg2/arm-private-symbols.patch new file mode 100644 index 0000000..222ff99 --- /dev/null +++ b/repo/libmpeg2/arm-private-symbols.patch @@ -0,0 +1,44 @@ +Set visibility of global symbols used in ARM specific assembly file to internal + +--- a/libmpeg2/motion_comp_arm_s.S ++++ b/libmpeg2/motion_comp_arm_s.S +@@ -23,7 +23,8 @@ + + @ ---------------------------------------------------------------- + .align +- .global MC_put_o_16_arm ++ .global MC_put_o_16_arm ++ .internal MC_put_o_16_arm + MC_put_o_16_arm: + @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height) + pld [r1] +@@ -83,7 +84,8 @@ + + @ ---------------------------------------------------------------- + .align +- .global MC_put_o_8_arm ++ .global MC_put_o_8_arm ++ .internal MC_put_o_8_arm + MC_put_o_8_arm: + @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height) + pld [r1] +@@ -152,7 +154,8 @@ + .endm + + .align +- .global MC_put_x_16_arm ++ .global MC_put_x_16_arm ++ .internal MC_put_x_16_arm + MC_put_x_16_arm: + @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height) + pld [r1] +@@ -244,7 +247,8 @@ + + @ ---------------------------------------------------------------- + .align +- .global MC_put_x_8_arm ++ .global MC_put_x_8_arm ++ .internal MC_put_x_8_arm + MC_put_x_8_arm: + @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height) + pld [r1] diff --git a/repo/libmpeg2/arm-textrel.patch b/repo/libmpeg2/arm-textrel.patch new file mode 100644 index 0000000..0a75ceb --- /dev/null +++ b/repo/libmpeg2/arm-textrel.patch @@ -0,0 +1,101 @@ +--- libmpeg2-0.5.1.orig/libmpeg2/motion_comp_arm_s.S ++++ libmpeg2-0.5.1/libmpeg2/motion_comp_arm_s.S +@@ -30,8 +30,8 @@ + stmfd sp!, {r4-r11, lr} @ R14 is also called LR + and r4, r1, #3 + adr r5, MC_put_o_16_arm_align_jt +- add r5, r5, r4, lsl #2 +- ldr pc, [r5] ++ ldr r5, [r5, r4, lsl #2] ++ add pc, pc, r5 + + MC_put_o_16_arm_align0: + ldmia r1, {r4-r7} +@@ -76,10 +76,10 @@ + bne 1b + ldmfd sp!, {r4-r11, pc} @@ update PC with LR content. + MC_put_o_16_arm_align_jt: +- .word MC_put_o_16_arm_align0 +- .word MC_put_o_16_arm_align1 +- .word MC_put_o_16_arm_align2 +- .word MC_put_o_16_arm_align3 ++ .word MC_put_o_16_arm_align0-MC_put_o_16_arm_align0-8 ++ .word MC_put_o_16_arm_align1-MC_put_o_16_arm_align0-8 ++ .word MC_put_o_16_arm_align2-MC_put_o_16_arm_align0-8 ++ .word MC_put_o_16_arm_align3-MC_put_o_16_arm_align0-8 + + @ ---------------------------------------------------------------- + .align +@@ -90,8 +90,8 @@ + stmfd sp!, {r4-r10, lr} @ R14 is also called LR + and r4, r1, #3 + adr r5, MC_put_o_8_arm_align_jt +- add r5, r5, r4, lsl #2 +- ldr pc, [r5] ++ ldr r5, [r5, r4, lsl #2] ++ add pc, pc, r5 + MC_put_o_8_arm_align0: + ldmia r1, {r4-r5} + add r1, r1, r2 +@@ -134,10 +134,10 @@ + ldmfd sp!, {r4-r10, pc} @@ update PC with LR content. + + MC_put_o_8_arm_align_jt: +- .word MC_put_o_8_arm_align0 +- .word MC_put_o_8_arm_align1 +- .word MC_put_o_8_arm_align2 +- .word MC_put_o_8_arm_align3 ++ .word MC_put_o_8_arm_align0-MC_put_o_8_arm_align0-8 ++ .word MC_put_o_8_arm_align1-MC_put_o_8_arm_align0-8 ++ .word MC_put_o_8_arm_align2-MC_put_o_8_arm_align0-8 ++ .word MC_put_o_8_arm_align3-MC_put_o_8_arm_align0-8 + + @ ---------------------------------------------------------------- + .macro AVG_PW rW1, rW2 +@@ -162,7 +162,8 @@ + ldr r11, [r5] + mvn r12, r11 + add r5, r5, r4, lsl #2 +- ldr pc, [r5, #4] ++ ldr r5, [r5, #4] ++ add pc, pc, r5 + + .macro ADJ_ALIGN_QW shift, R0, R1, R2, R3, R4 + mov \R0, \R0, lsr #(\shift) +@@ -237,10 +238,10 @@ + ldmfd sp!, {r4-r11,pc} @@ update PC with LR content. + MC_put_x_16_arm_align_jt: + .word 0x01010101 +- .word MC_put_x_16_arm_align0 +- .word MC_put_x_16_arm_align1 +- .word MC_put_x_16_arm_align2 +- .word MC_put_x_16_arm_align3 ++ .word MC_put_x_16_arm_align0-MC_put_x_16_arm_align0-8 ++ .word MC_put_x_16_arm_align1-MC_put_x_16_arm_align0-8 ++ .word MC_put_x_16_arm_align2-MC_put_x_16_arm_align0-8 ++ .word MC_put_x_16_arm_align3-MC_put_x_16_arm_align0-8 + + @ ---------------------------------------------------------------- + .align +@@ -254,7 +255,8 @@ + ldr r11, [r5] + mvn r12, r11 + add r5, r5, r4, lsl #2 +- ldr pc, [r5, #4] ++ ldr r5, [r5, #4] ++ add pc, pc, r5 + + .macro ADJ_ALIGN_DW shift, R0, R1, R2 + mov \R0, \R0, lsr #(\shift) +@@ -317,7 +319,7 @@ + ldmfd sp!, {r4-r11,pc} @@ update PC with LR content. + MC_put_x_8_arm_align_jt: + .word 0x01010101 +- .word MC_put_x_8_arm_align0 +- .word MC_put_x_8_arm_align1 +- .word MC_put_x_8_arm_align2 +- .word MC_put_x_8_arm_align3 ++ .word MC_put_x_8_arm_align0-MC_put_x_8_arm_align0-8 ++ .word MC_put_x_8_arm_align1-MC_put_x_8_arm_align0-8 ++ .word MC_put_x_8_arm_align2-MC_put_x_8_arm_align0-8 ++ .word MC_put_x_8_arm_align3-MC_put_x_8_arm_align0-8 diff --git a/repo/libmpeg2/libmpeg2.xibuild b/repo/libmpeg2/libmpeg2.xibuild new file mode 100644 index 0000000..ec0a54a --- /dev/null +++ b/repo/libmpeg2/libmpeg2.xibuild @@ -0,0 +1,37 @@ +#!/bin/sh + +NAME="libmpeg2" +DESC="A library for decoding MPEG-1 and MPEG-2 video streams" + +MAKEDEPS="libx11 libice libsm libxext libxv" + +PKG_VER=0.5.1 +SOURCE="https://gentoo.osuosl.org/distfiles/libmpeg2-$PKG_VER.tar.gz" + +ADDITIONAL=" +arm-private-symbols.patch +arm-textrel.patch +" + +prepare() { + apply_patches +} + +build() { + ./configure \ + --prefix=/usr \ + --with-pic \ + --enable-shared \ + --disable-static + make OPT_CFLAGS="$CFLAGS" \ + MPEG2DEC_CFLAGS="$CFLAGS" \ + LIBMPEG2_CFLAGS="" +} + +check() { + make check +} + +package() { + make DESTDIR="$PKG_DEST" install +} diff --git a/repo/libmrss/libmrss.xibuild b/repo/libmrss/libmrss.xibuild new file mode 100644 index 0000000..70d1f0e --- /dev/null +++ b/repo/libmrss/libmrss.xibuild @@ -0,0 +1,23 @@ +#!/bin/sh + +NAME="libmrss" +DESC="mRSS is a C library for parsing, writing and creating RSS files or streams" + +MAKEDEPS=" automake autoconf libtool m4 curl libnxml doxygen" + +PKG_VER=0.19.2 +SOURCE="http://www.autistici.org/bakunin/libmrss/libmrss-$PKG_VER.tar.gz" + +build() { + ./configure --prefix=/usr + make +} + +check() { + make check +} + +package() { + make DESTDIR=$PKG_DEST install +} + diff --git a/repo/libnxml/libnxml.xibuild b/repo/libnxml/libnxml.xibuild new file mode 100644 index 0000000..94a6adb --- /dev/null +++ b/repo/libnxml/libnxml.xibuild @@ -0,0 +1,23 @@ +#!/bin/sh + +NAME="libnxml" +DESC="C library for parsing, writing and creating XML 1.0 and 1.1 files or streams" + +MAKEDEPS=" curl" + +PKG_VER=0.18.3 +SOURCE="http://www.autistici.org/bakunin/libnxml/libnxml-$PKG_VER.tar.gz" + +build() { + ./configure --prefix=/usr + make +} + +check() { + make check +} + +package() { + make DESTDIR="$PKG_DEST" install +} + diff --git a/repo/libosinfo/libosinfo.xibuild b/repo/libosinfo/libosinfo.xibuild new file mode 100644 index 0000000..ba420ee --- /dev/null +++ b/repo/libosinfo/libosinfo.xibuild @@ -0,0 +1,30 @@ +#!/bin/sh + +NAME="libosinfo" +DESC="library for managing OS information for virtualization" + +MAKEDEPS=" meson glib libsoup libxml2 libxslt gobject-introspection vala perl" + +PKG_VER=1.10.0 +SOURCE="https://gitlab.com/libosinfo/libosinfo/-/archive/v$PKG_VER/libosinfo-v$PKG_VER.tar.gz" + +build() { + meson --prefix=/usr \ + -Denable-gtk-doc=false \ + -Denable-introspection=enabled \ + -Denable-tests=true \ + -Denable-vala=enabled \ + -Dwith-pci-ids-path=/usr/share/hwdata/pci.ids \ + -Dwith-usb-ids-path=/usr/share/hwdata/usb.ids \ + . output + meson compile ${JOBS:+-j ${JOBS}} -C output +} + +check() { + meson test --no-rebuild -v -C output +} + +package() { + DESTDIR="$PKG_DEST" meson install --no-rebuild -C output +} + diff --git a/repo/libshout/libshout.xibuild b/repo/libshout/libshout.xibuild new file mode 100644 index 0000000..3ac7e79 --- /dev/null +++ b/repo/libshout/libshout.xibuild @@ -0,0 +1,27 @@ +#!/bin/sh + +NAME="libshout" +DESC="Library for accessing a shoutcast/icecast server" + +MAKEDEPS="speex libtheora libvorbis " + +PKG_VER=2.4.6 +SOURCE="http://downloads.xiph.org/releases/libshout/libshout-$PKG_VER.tar.gz" + +build() { + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --with-openssl + make LDFLAGS+=-lspeex +} + +check() { + make check +} + +package() { + make DESTDIR="$PKG_DEST" install +} + diff --git a/repo/libsoup/libsoup.xibuild b/repo/libsoup/libsoup.xibuild new file mode 100644 index 0000000..acf15a6 --- /dev/null +++ b/repo/libsoup/libsoup.xibuild @@ -0,0 +1,22 @@ +#!/bin/sh + +NAME="libsoup" +DESC="Gnome HTTP client/server Library" + +MAKEDEPS=" libgcrypt libgpg-error zlib meson gobject-introspection vala libxml2 libpsl sqlite3 brotli" + +PKG_VER=2.74.1 +SOURCE="https://download.gnome.org/sources/libsoup/${PKG_VER%.*}/libsoup-$PKG_VER.tar.xz" + +build() { + meson --prefix=/usr \ + -Dtls_check=false \ + -Dintrospection=enabled \ + -Dvapi=enabled \ + . output + meson compile ${JOBS:+-j ${JOBS}} -C output +} + +package() { + DESTDIR="$PKG_DEST" meson install --no-rebuild -C output +} diff --git a/repo/libvirt-glib/libvirt-glib.xibuild b/repo/libvirt-glib/libvirt-glib.xibuild new file mode 100644 index 0000000..2623d87 --- /dev/null +++ b/repo/libvirt-glib/libvirt-glib.xibuild @@ -0,0 +1,21 @@ +#!/bin/sh + +NAME="libvirt-glib" +DESC="libvirt glib integration for events" + +MAKEDEPS="libvirt gobject-introspection libxml2 vala meson" + +PKG_VER=4.0.0 +SOURCE="https://libvirt.org/sources/glib/libvirt-glib-$PKG_VER.tar.xz" + +build() { + meson --prefix=/usr \ + . output + meson compile ${JOBS:+-j ${JOBS}} -C output +} + +package() { + DESTDIR="$PKG_DEST" meson install --no-rebuild -C output +} + + diff --git a/repo/libvirt/libvirt.xibuild b/repo/libvirt/libvirt.xibuild index 849deab..d5386d9 100644 --- a/repo/libvirt/libvirt.xibuild +++ b/repo/libvirt/libvirt.xibuild @@ -4,6 +4,7 @@ NAME="libvirt" DESC="A virtualization API for several hypervisor and container systems" MAKEDEPS="augeas libsasl device-mapper e2fsprogs gnutls libcap-ng libgpg-error netcf libnl libxml2 libxslt libtasn1 lvm2 lxc libgcrypt parted perl pkg-config eudev zlib yajl libpcap curl libpciaccess polkit readline linux-headers jansson libtirpc perl-xml-xpath fuse util-linux bash-completion bridge-utils dmidecode dnsmasq iptables pm-utils netcat rpcsvc-proto python-docutils meson ninja" +DEPS="dmidecode dnsmasq" PKG_VER=8.2.0 SOURCE="https://libvirt.org/sources/libvirt-$PKG_VER.tar.xz" @@ -52,3 +53,11 @@ package() { rm -rf "$PKG_DEST"/usr/lib/charset.alias rmdir -p "$PKG_DEST"/usr/lib 2>/dev/null || true } + +postinstall () { + groupadd libvirt 2>/dev/null && { + sed -i 's/^#unix_sock_group/unix_sock_group/g' + sed -i 's/^#unix_sock_rw_perms/unix_sock_rw_perms/g' + } + exit 0 +} diff --git a/repo/luakit/luakit.xibuild b/repo/luakit/luakit.xibuild new file mode 100644 index 0000000..25d4b13 --- /dev/null +++ b/repo/luakit/luakit.xibuild @@ -0,0 +1,25 @@ +#!/bin/sh + +NAME="luakit" +DESC="Fast, small, webkit based browser framework extensible by Lua" + +MAKEDEPS="webkit2gtk luajit" + +PKG_VER=2.3 +SOURCE="https://github.com/luakit/luakit/archive/$PKG_VER.tar.gz" + +build() { + make PREFIX=/usr USE_LUAJIT=1 DEVELOPMENT_PATHS=0 +} + +check() { + make run-tests +} + +package() { + make PREFIX=/usr DESTDIR="$PKG_DEST" install + mkdir -p "$PKG_DEST"/usr/share/doc/"luakit" + mv "$PKG_DEST"/usr/share/"luakit"/doc/* "$PKG_DEST"/usr/share/doc/"luakit" + rmdir "$PKG_DEST"/usr/share/"luakit"/doc +} + diff --git a/repo/mpg123/mpg123.xibuild b/repo/mpg123/mpg123.xibuild new file mode 100644 index 0000000..d83f9cd --- /dev/null +++ b/repo/mpg123/mpg123.xibuild @@ -0,0 +1,31 @@ +#!/bin/sh + +NAME="mpg123" +DESC="Console-based MPEG Audio Player for Layers 1, 2 and 3" + +MAKEDEPS="libtool alsa-lib linux-headers" + +PKG_VER=1.29.3 +SOURCE="https://www.mpg123.org/download/mpg123-$PKG_VER.tar.bz2" + +build() { + ./configure \ + --prefix=/usr \ + --disable-dependency-tracking \ + --with-pic \ + --with-optimization=0 \ + --with-cpu=i386_fpu \ + --with-audio="alsa oss" + make +} + +check() { + make check +} + +package() { + # Installation is not parallel friendly and will fail + # sometimes + make -j1 DESTDIR="$PKG_DEST" install +} + diff --git a/repo/perl-text-csv/perl-text-csv.xibuild b/repo/perl-text-csv/perl-text-csv.xibuild new file mode 100644 index 0000000..0acf093 --- /dev/null +++ b/repo/perl-text-csv/perl-text-csv.xibuild @@ -0,0 +1,25 @@ +#!/bin/sh + +NAME="perl-text-csv" +DESC="Manipulate comma-separated value strings" + +MAKEDEPS="" + +PKG_VER=2.01 +SOURCE="https://cpan.metacpan.org/authors/id/I/IS/ISHIGAKI/Text-CSV-$PKG_VER.tar.gz" + +build() { + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor + make +} + +check() { + make test +} + +package() { + make DESTDIR="$PKG_DEST" install + find "$PKG_DEST" -name '.packlist' -delete + find "$PKG_DEST" -name '*.pod' -delete +} + diff --git a/repo/python-click/python-click.xibuild b/repo/python-click/python-click.xibuild new file mode 100644 index 0000000..695c05b --- /dev/null +++ b/repo/python-click/python-click.xibuild @@ -0,0 +1,17 @@ +#!/bin/sh + +MAKEDEPS="python" + + +PKG_VER=8.1.3 +SOURCE=https://files.pythonhosted.org/packages/source/c/click/click-$PKG_VER.tar.gz +MAKEDEPS="python" +DESC="Composable command line interface toolkit" + +build() { + python setup.py build +} + +package () { + python setup.py install --root="$PKG_DEST" --optimize=1 +} diff --git a/repo/python-ipaddr/python-ipaddr.xibuild b/repo/python-ipaddr/python-ipaddr.xibuild new file mode 100644 index 0000000..c21b516 --- /dev/null +++ b/repo/python-ipaddr/python-ipaddr.xibuild @@ -0,0 +1,17 @@ +#!/bin/sh + +MAKEDEPS="python" + + +PKG_VER=2.2.0 +SOURCE=https://files.pythonhosted.org/packages/source/i/ipaddr/ipaddr-$PKG_VER.tar.gz +MAKEDEPS="python" +DESC="Google's IP address manipulation library" + +build() { + python setup.py build +} + +package () { + python setup.py install --root="$PKG_DEST" --optimize=1 +} diff --git a/repo/python-libvirt/disable-screenshot-test.patch b/repo/python-libvirt/disable-screenshot-test.patch new file mode 100644 index 0000000..ac004ff --- /dev/null +++ b/repo/python-libvirt/disable-screenshot-test.patch @@ -0,0 +1,11 @@ +diff --git a/tests/test_domain.py b/tests/test_domain.py +index e0cdec6..076fae9 100644 +--- a/tests/test_domain.py ++++ b/tests/test_domain.py +@@ -21,5 +21,4 @@ class TestLibvirtDomain(unittest.TestCase): + @unittest.skipIf(libvirt.getVersion() == 4000000, + "test driver screenshot broken in 4.0.0") + def testScreenshot(self): +- stream = self.conn.newStream() +- ss = self.dom.screenshot(stream, 0, 0) ++ return True diff --git a/repo/python-libvirt/python-libvirt.xibuild b/repo/python-libvirt/python-libvirt.xibuild new file mode 100644 index 0000000..585f9fb --- /dev/null +++ b/repo/python-libvirt/python-libvirt.xibuild @@ -0,0 +1,26 @@ +#!/bin/sh + +NAME="python-libvirt" +DESC="The libvirt virtualization API python binding" + +MAKEDEPS="python libvirt" + +PKG_VER=8.2.0 +SOURCE="https://libvirt.org/sources/python/libvirt-python-$PKG_VER.tar.gz" + +ADDITIONAL=" +disable-screenshot-test.patch +" + +prepare () { + apply_patches +} + +build() { + python3 setup.py build +} + +package() { + python3 setup.py install --prefix=/usr --root="$PKG_DEST" +} + diff --git a/repo/python-urlgrabber/python-urlgrabber.xibuild b/repo/python-urlgrabber/python-urlgrabber.xibuild new file mode 100644 index 0000000..8ea2a4b --- /dev/null +++ b/repo/python-urlgrabber/python-urlgrabber.xibuild @@ -0,0 +1,17 @@ +#!/bin/sh + +MAKEDEPS="python" + + +PKG_VER=4.1.0 +SOURCE=https://files.pythonhosted.org/packages/source/u/urlgrabber/urlgrabber-$PKG_VER.tar.gz +MAKEDEPS="python" +DESC="A high-level cross-protocol url-grabber" + +build() { + python setup.py build +} + +package () { + python setup.py install --root="$PKG_DEST" --optimize=1 +} diff --git a/repo/qemu/qemu-static.xibuild.broken b/repo/qemu/qemu-static.xibuild.broken new file mode 100644 index 0000000..7c61e7a --- /dev/null +++ b/repo/qemu/qemu-static.xibuild.broken @@ -0,0 +1,48 @@ +#!/bin/sh + +DESC="Static builds of qemu for chrooting" + +build () { + cd "$BUILD_ROOT"/build-static + CFLAGS="$CFLAGS -O2" "$BUILD_ROOT"/configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --libexecdir=/usr/libexec \ + --localstatedir=/var \ + --disable-glusterfs \ + --disable-xen \ + --disable-glusterfs \ + --disable-debug-info \ + --disable-bsd-user \ + --disable-werror \ + --disable-xen \ + --enable-kvm \ + --enable-seccomp \ + --enable-linux-user \ + --disable-system \ + --static \ + --disable-docs \ + --disable-sdl \ + --disable-gtk \ + --disable-spice \ + --disable-tools \ + --disable-guest-agent \ + --disable-guest-agent-msi \ + --disable-curses \ + --disable-curl \ + --disable-gnutls \ + --disable-gcrypt \ + --disable-nettle \ + --disable-cap-ng \ + --disable-brlapi \ + --disable-mpath \ + --disable-libnfs \ + --disable-numa \ + --disable-capstone && \ + make ARFLAGS="rc" || exit 1 +} + +package () { + cd "$BUILD_ROOT"/build-static + make DESTDIR="$PKG_DEST" install +} diff --git a/repo/qemu/qemu.xibuild b/repo/qemu/qemu.xibuild index 4660aaf..d859027 100644 --- a/repo/qemu/qemu.xibuild +++ b/repo/qemu/qemu.xibuild @@ -28,7 +28,7 @@ prepare () { } build() { - mkdir -p "$BUILD_ROOT"/build + mkdir -p "$BUILD_ROOT"/build "$BUILD_ROOT"/build-static cd "$BUILD_ROOT"/build CFLAGS="$CFLAGS -O2" "$BUILD_ROOT"/configure \ --prefix=/usr \ @@ -53,8 +53,10 @@ build() { --enable-sdl \ --enable-spice \ --enable-virglrenderer \ - --enable-gtk - make ARFLAGS="rc" + --enable-gtk && + make ARFLAGS="rc" || exit 1 + cd .. + } package() { diff --git a/repo/qt5-qtwebengine/fix-strncpy-error.patch b/repo/qt5-qtwebengine/fix-strncpy-error.patch new file mode 100644 index 0000000..11294de --- /dev/null +++ b/repo/qt5-qtwebengine/fix-strncpy-error.patch @@ -0,0 +1,10 @@ +--- build/src/3rdparty/chromium/mojo/public/cpp/platform/named_platform_channel_posix.cc 2022-07-07 22:23:50.602954227 +0100 ++++ build2/src/3rdparty/chromium/mojo/public/cpp/platform/named_platform_channel_posix.cc 2022-07-11 12:57:26.005060552 +0100 +@@ -8,6 +8,7 @@ + #include <sys/socket.h> + #include <sys/un.h> + #include <unistd.h> ++#include <cstring> + + #include "base/files/file_util.h" + #include "base/files/scoped_file.h" diff --git a/repo/qt5-qtwebengine/qt5-qtwebengine.xibuild b/repo/qt5-qtwebengine/qt5-qtwebengine.xibuild index 833a12f..8d2ce0e 100644 --- a/repo/qt5-qtwebengine/qt5-qtwebengine.xibuild +++ b/repo/qt5-qtwebengine/qt5-qtwebengine.xibuild @@ -41,6 +41,7 @@ qt-musl-tid-caching.patch remove-glibc-check.patch sndio.patch support-python3.patch +fix-strncpy-error.patch " prepare() { @@ -57,7 +58,7 @@ prepare() { } build() { - qmake-qt5 QMAKE_EXTRA_ARGS+="-webengine-sndio -system-ffmpeg -system-opus -system-webp -proprietary-codecs" CONFIG+=force_debug_info + qmake-qt5 QMAKE_EXTRA_ARGS="-webengine-sndio -system-ffmpeg -system-opus -system-webp -proprietary-codecs" CONFIG=force_debug_info make } diff --git a/repo/rarian/rarian.xibuild b/repo/rarian/rarian.xibuild new file mode 100644 index 0000000..854539f --- /dev/null +++ b/repo/rarian/rarian.xibuild @@ -0,0 +1,35 @@ +#!/bin/sh + +NAME="rarian" +DESC="Documentation meta-data library, designed as a replacement for Scrollkeeper." + +MAKEDEPS="libxslt" + +PKG_VER=0.8.1 +SOURCE="https://download.gnome.org/sources/rarian/0.8/rarian-$PKG_VER.tar.bz2" + +ADDITIONAL=" +user-segfault.patch +" + +prepare() { + cd "$BUILD_ROOT" + apply_patches +} + +build() { + cd "$BUILD_ROOT" + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --enable-scrollkeeper-compat \ + --disable-static + make +} + +package() { + cd "$BUILD_ROOT" + make -j1 DESTDIR="$PKG_DEST" install +} + diff --git a/repo/rarian/user-segfault.patch b/repo/rarian/user-segfault.patch new file mode 100644 index 0000000..29ab1e5 --- /dev/null +++ b/repo/rarian/user-segfault.patch @@ -0,0 +1,14 @@ +--- rarian-0.8.1/util/rarian-sk-get-cl.cpp~ 2008-07-28 19:23:28.000000000 +0200 ++++ rarian-0.8.1/util/rarian-sk-get-cl.cpp 2008-07-28 19:23:28.000000000 +0200 +@@ -160,6 +160,11 @@ + { + char *filename = NULL; + char *user = getenv ("USERNAME"); ++ ++ if (user == NULL) { ++ user = getenv ("USER"); ++ } ++ + char *basepath = NULL; + int i=0; + int last = 0; diff --git a/repo/samba/add_missing___compar_fn_t.patch b/repo/samba/add_missing___compar_fn_t.patch new file mode 100644 index 0000000..96b65e6 --- /dev/null +++ b/repo/samba/add_missing___compar_fn_t.patch @@ -0,0 +1,14 @@ +--- a/source4/dsdb/samdb/ldb_modules/count_attrs.c ++++ b/source4/dsdb/samdb/ldb_modules/count_attrs.c +@@ -38,6 +38,11 @@ + #define NULL_REQ_PSEUDO_N -2LL; + #define STAR_REQ_PSEUDO_N -4LL; + ++#ifndef __COMPAR_FN_T ++#define __COMPAR_FN_T ++typedef int (*__compar_fn_t)(const void *, const void *); ++#endif ++ + struct count_attrs_private { + struct tdb_wrap *requested; + struct tdb_wrap *duplicates; diff --git a/repo/samba/getpwent_r.patch b/repo/samba/getpwent_r.patch new file mode 100644 index 0000000..0ba5fcc --- /dev/null +++ b/repo/samba/getpwent_r.patch @@ -0,0 +1,80 @@ +diff --git a/source4/torture/local/nss_tests.c b/source4/torture/local/nss_tests.c +index 2cd6122..04f13c6 100644 +--- a/source4/torture/local/nss_tests.c ++++ b/source4/torture/local/nss_tests.c +@@ -247,7 +247,6 @@ static bool test_getgrnam_r(struct torture_context *tctx, + return true; + } + +- + static bool test_getgrgid(struct torture_context *tctx, + gid_t gid, + struct group *grp_p) +@@ -333,6 +332,7 @@ static bool test_enum_passwd(struct torture_context *tctx, + return true; + } + ++#if HAVE_GETPWENT_R + static bool test_enum_r_passwd(struct torture_context *tctx, + struct passwd **pwd_array_p, + size_t *num_pwd_p) +@@ -383,6 +383,7 @@ static bool test_enum_r_passwd(struct torture_context *tctx, + + return true; + } ++#endif + + static bool torture_assert_passwd_equal(struct torture_context *tctx, + const struct passwd *p1, +@@ -434,7 +435,7 @@ static bool test_passwd_r(struct torture_context *tctx) + struct passwd *pwd, pwd1, pwd2; + size_t num_pwd; + +- torture_assert(tctx, test_enum_r_passwd(tctx, &pwd, &num_pwd), ++ torture_assert(tctx, test_enum_passwd(tctx, &pwd, &num_pwd), + "failed to enumerate passwd"); + + for (i=0; i < num_pwd; i++) { +@@ -462,7 +463,7 @@ static bool test_passwd_r_cross(struct torture_context *tctx) + struct passwd *pwd, pwd1, pwd2, pwd3, pwd4; + size_t num_pwd; + +- torture_assert(tctx, test_enum_r_passwd(tctx, &pwd, &num_pwd), ++ torture_assert(tctx, test_enum_passwd(tctx, &pwd, &num_pwd), + "failed to enumerate passwd"); + + for (i=0; i < num_pwd; i++) { +@@ -533,6 +534,7 @@ static bool test_enum_group(struct torture_context *tctx, + return true; + } + ++#if HAVE_GETGRENT_R + static bool test_enum_r_group(struct torture_context *tctx, + struct group **grp_array_p, + size_t *num_grp_p) +@@ -583,6 +585,7 @@ static bool test_enum_r_group(struct torture_context *tctx, + + return true; + } ++#endif + + static bool torture_assert_group_equal(struct torture_context *tctx, + const struct group *g1, +@@ -639,7 +642,7 @@ static bool test_group_r(struct torture_context *tctx) + struct group *grp, grp1, grp2; + size_t num_grp; + +- torture_assert(tctx, test_enum_r_group(tctx, &grp, &num_grp), ++ torture_assert(tctx, test_enum_group(tctx, &grp, &num_grp), + "failed to enumerate group"); + + for (i=0; i < num_grp; i++) { +@@ -667,7 +670,7 @@ static bool test_group_r_cross(struct torture_context *tctx) + struct group *grp, grp1, grp2, grp3, grp4; + size_t num_grp; + +- torture_assert(tctx, test_enum_r_group(tctx, &grp, &num_grp), ++ torture_assert(tctx, test_enum_group(tctx, &grp, &num_grp), + "failed to enumerate group"); + + for (i=0; i < num_grp; i++) { diff --git a/repo/samba/missing-headers.patch b/repo/samba/missing-headers.patch new file mode 100644 index 0000000..58c26ae --- /dev/null +++ b/repo/samba/missing-headers.patch @@ -0,0 +1,38 @@ +diff --git a/lib/param/loadparm.h b/lib/param/loadparm.h +index b5d79b9..3f4eae0 100644 +--- a/lib/param/loadparm.h ++++ b/lib/param/loadparm.h +@@ -31,6 +31,7 @@ + #define _LOADPARM_H + + #include <talloc.h> ++#include <time.h> + + struct parmlist_entry { + struct parmlist_entry *prev, *next; +diff --git a/source3/lib/system_smbd.c b/source3/lib/system_smbd.c +index 3b1ac9c..4044d75 100644 +--- a/source3/lib/system_smbd.c ++++ b/source3/lib/system_smbd.c +@@ -27,6 +27,8 @@ + #include "system/passwd.h" + #include "nsswitch/winbind_client.h" + #include "../lib/util/setid.h" ++#include <grp.h> ++#include <uuid/uuid.h> + + #ifndef HAVE_GETGROUPLIST + +diff --git a/source4/torture/local/nss_tests.c b/source4/torture/local/nss_tests.c +index 2cd6122..0c84ec2 100644 +--- a/source4/torture/local/nss_tests.c ++++ b/source4/torture/local/nss_tests.c +@@ -20,6 +20,8 @@ + */ + + #include "includes.h" ++#include <grp.h> ++#include <uuid/uuid.h> + + #include "torture/torture.h" + #include "torture/local/proto.h" diff --git a/repo/samba/musl_rm_unistd_incl.patch b/repo/samba/musl_rm_unistd_incl.patch new file mode 100644 index 0000000..1f4aae2 --- /dev/null +++ b/repo/samba/musl_rm_unistd_incl.patch @@ -0,0 +1,37 @@ +--- a/lib/replace/replace.h ++++ b/lib/replace/replace.h +@@ -168,10 +168,6 @@ + #include <bsd/unistd.h> + #endif + +-#ifdef HAVE_UNISTD_H +-#include <unistd.h> +-#endif +- + #ifdef HAVE_STRING_H + #include <string.h> + #endif +--- a/lib/replace/system/network.h ++++ b/lib/replace/system/network.h +@@ -31,10 +31,6 @@ + #error "AC_LIBREPLACE_NETWORK_CHECKS missing in configure" + #endif + +-#ifdef HAVE_UNISTD_H +-#include <unistd.h> +-#endif +- + #ifdef HAVE_SYS_SOCKET_H + #include <sys/socket.h> + #endif +--- a/source3/rpc_server/mdssvc/mdssvc.c ++++ b/source3/rpc_server/mdssvc/mdssvc.c +@@ -18,6 +18,8 @@ + along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + ++#include <unistd.h> ++ + #include "includes.h" + #include "librpc/gen_ndr/auth.h" + #include "dbwrap/dbwrap.h" diff --git a/repo/samba/musl_uintptr.patch b/repo/samba/musl_uintptr.patch new file mode 100644 index 0000000..de7f285 --- /dev/null +++ b/repo/samba/musl_uintptr.patch @@ -0,0 +1,35 @@ +commit f81e5b71ce78f33250347914dacc75c8463bf102 +Author: Breno Leitao <breno.leitao@gmail.com> +Date: Wed Mar 29 15:22:38 2017 -0300 + + include: Check for previous declaration of uintptr_t + + Adding a extra check before declaring uintptr_t. Currently musl uses + macro __DEFINED_uintptr_t once it defines uintptr_t type. Checking + this macro before defining it, and, defining it when uintptr_t is + defined. + + Signed-off-by: Breno Leitao <breno.leitao@gmail.com> + +diff --git a/third_party/cmocka/cmocka.h b/third_party/cmocka/cmocka.h +index 303d0ae..a2bfc40 100644 +--- a/third_party/cmocka/cmocka.h ++++ b/third_party/cmocka/cmocka.h +@@ -111,7 +111,7 @@ + ((LargestIntegralType)(value)) + + /* Smallest integral type capable of holding a pointer. */ +-#if !defined(_UINTPTR_T) && !defined(_UINTPTR_T_DEFINED) ++#if !defined(_UINTPTR_T) && !defined(_UINTPTR_T_DEFINED) && !defined(__DEFINED_uintptr_t) + # if defined(_WIN32) + /* WIN32 is an ILP32 platform */ + typedef unsigned int uintptr_t; +@@ -137,6 +137,8 @@ + + # define _UINTPTR_T + # define _UINTPTR_T_DEFINED ++# define __DEFINED_uintptr_t ++ + #endif /* !defined(_UINTPTR_T) || !defined(_UINTPTR_T_DEFINED) */ + + /* Perform an unsigned cast to uintptr_t. */ diff --git a/repo/samba/netapp.patch b/repo/samba/netapp.patch new file mode 100644 index 0000000..fea413c --- /dev/null +++ b/repo/samba/netapp.patch @@ -0,0 +1,85 @@ +https://bugzilla.samba.org/show_bug.cgi?id=12776 + +diff --git a/source3/include/client.h b/source3/include/client.h +index db8260d..becdf77 100644 +--- a/source3/include/client.h ++++ b/source3/include/client.h +@@ -61,6 +61,9 @@ struct cli_state { + char *server_os; + char *server_domain; + ++ /* is server_os spinstream2? true/false/not-yet-checked(-1) */ ++ int is_spinstream2; ++ + char *share; + char *dev; + +diff --git a/source3/libsmb/clientgen.c b/source3/libsmb/clientgen.c +index bc5c1b1..6d6b725 100644 +--- a/source3/libsmb/clientgen.c ++++ b/source3/libsmb/clientgen.c +@@ -111,6 +111,7 @@ struct cli_state *cli_state_create(TALLOC_CTX *mem_ctx, + if (!cli->server_os) { + goto error; + } ++ cli->is_spinstream2 = -1; + cli->server_type = talloc_strdup(cli, ""); + if (!cli->server_type) { + goto error; +@@ -467,6 +468,24 @@ time_t cli_state_server_time(struct cli_state *cli) + return t; + } + ++bool cli_state_server_is_spinstream2(struct cli_state *cli) ++{ ++ int *ret = &cli->is_spinstream2; ++ if (*ret == -1) { ++ if (*cli->server_os == '\0') { ++ DEBUG(1, ("when checking if server is SpinStream2:" ++ " server_os field is empty (should have" ++ " been sent in Session Setup protocol" ++ " response), so ... presuming not")); ++ *ret = 0; ++ } ++ else { ++ *ret = strequal(cli->server_os, "SpinStream2") ? 1 : 0; ++ } ++ } ++ return *ret == 1; ++} ++ + struct cli_echo_state { + bool is_smb2; + }; +diff --git a/source3/libsmb/clireadwrite.c b/source3/libsmb/clireadwrite.c +index 3987477..6371bc2 100644 +--- a/source3/libsmb/clireadwrite.c ++++ b/source3/libsmb/clireadwrite.c +@@ -89,6 +89,13 @@ static size_t cli_write_max_bufsize(struct cli_state *cli, + useable_space = 0xFFFFFF - data_offset; + } else if (smb1cli_conn_capabilities(cli->conn) & CAP_LARGE_WRITEX) { + useable_space = 0x1FFFF - data_offset; ++ if (cli_state_server_is_spinstream2(cli)) ++ /* ++ * SpinStream2 (NetApp OnTAP, up to 8.3.2, at least; ++ * XXX may need to be more discerning than this) ++ * can't handle writes > 64k ++ */ ++ useable_space = MIN(useable_space, 64 * 1024); + } else { + return min_space; + } +diff --git a/source3/libsmb/proto.h b/source3/libsmb/proto.h +index b453733..e334cc6 100644 +--- a/source3/libsmb/proto.h ++++ b/source3/libsmb/proto.h +@@ -203,6 +203,7 @@ uint16_t cli_state_set_uid(struct cli_state *cli, uint16_t uid); + bool cli_set_case_sensitive(struct cli_state *cli, bool case_sensitive); + uint32_t cli_state_available_size(struct cli_state *cli, uint32_t ofs); + time_t cli_state_server_time(struct cli_state *cli); ++bool cli_state_server_is_spinstream2(struct cli_state *cli); + struct tevent_req *cli_echo_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev, + struct cli_state *cli, uint16_t num_echos, + DATA_BLOB data); + + diff --git a/repo/samba/netdb-defines.patch b/repo/samba/netdb-defines.patch new file mode 100644 index 0000000..d7d6446 --- /dev/null +++ b/repo/samba/netdb-defines.patch @@ -0,0 +1,19 @@ +diff --git a/nsswitch/wins.c b/nsswitch/wins.c +index dccb6dd..bb24acb 100644 +--- a/nsswitch/wins.c ++++ b/nsswitch/wins.c +@@ -39,6 +39,14 @@ static pthread_mutex_t wins_nss_mutex = PTHREAD_MUTEX_INITIALIZER; + #define INADDRSZ 4 + #endif + ++#ifndef NETDB_INTERNAL ++#define NETDB_INTERNAL -1 ++#endif ++ ++#ifndef NETDB_SUCCESS ++#define NETDB_SUCCESS 0 ++#endif ++ + NSS_STATUS _nss_wins_gethostbyname_r(const char *hostname, + struct hostent *he, + char *buffer, diff --git a/repo/samba/pidl.patch b/repo/samba/pidl.patch new file mode 100644 index 0000000..60359e5 --- /dev/null +++ b/repo/samba/pidl.patch @@ -0,0 +1,114 @@ +From 838457ac4f9f3f6c1bb5936738566210a62cbdc5 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?G=C3=BCnther=20Deschner?= <gd@samba.org> +Date: Tue, 27 Aug 2019 15:25:13 +0200 +Subject: [PATCH] Revert "waf: install: Remove installation of PIDL and + manpages." + +This reverts commit e24e344d0da58013fd5fa404529fe1d25ef403bf. + +BUG: https://bugzilla.samba.org/show_bug.cgi?id=14103 + +Guenther + +Signed-off-by: Guenther Deschner <gd@samba.org> +--- + pidl/lib/wscript_build | 37 +++++++++++++++++++++++++++++++++++++ + pidl/wscript | 38 ++++++++++++++++++++++++++++++++++++++ + 2 files changed, 75 insertions(+) + create mode 100644 pidl/lib/wscript_build + +diff --git a/pidl/lib/wscript_build b/pidl/lib/wscript_build +new file mode 100644 +index 00000000000..54b3170c4e2 +--- /dev/null ++++ b/pidl/lib/wscript_build +@@ -0,0 +1,33 @@ ++#!/usr/bin/env python ++ ++# install the pidl modules ++bld.INSTALL_FILES(bld.env.PERL_LIB_INSTALL_DIR, ++ ''' ++ Parse/Pidl.pm ++ Parse/Pidl/Samba4.pm ++ Parse/Pidl/CUtil.pm ++ Parse/Pidl/Expr.pm ++ Parse/Pidl/Wireshark/Conformance.pm ++ Parse/Pidl/Wireshark/NDR.pm ++ Parse/Pidl/ODL.pm ++ Parse/Pidl/Dump.pm ++ Parse/Pidl/Util.pm ++ Parse/Pidl/Samba4/Header.pm ++ Parse/Pidl/Samba4/COM/Header.pm ++ Parse/Pidl/Samba4/COM/Proxy.pm ++ Parse/Pidl/Samba4/COM/Stub.pm ++ Parse/Pidl/Samba4/TDR.pm ++ Parse/Pidl/Samba4/NDR/Server.pm ++ Parse/Pidl/Samba4/NDR/Client.pm ++ Parse/Pidl/Samba4/NDR/Parser.pm ++ Parse/Pidl/Samba4/Python.pm ++ Parse/Pidl/Samba4/Template.pm ++ Parse/Pidl/IDL.pm ++ Parse/Pidl/Typelist.pm ++ Parse/Pidl/Samba3/ClientNDR.pm ++ Parse/Pidl/Samba3/ServerNDR.pm ++ Parse/Pidl/Compat.pm ++ Parse/Pidl/NDR.pm ++ ''', ++ flat=False) ++ +diff --git a/pidl/wscript b/pidl/wscript +index 01b71bd8b27..a2a15d36851 100644 +--- a/pidl/wscript ++++ b/pidl/wscript +@@ -28,12 +28,51 @@ + 1.05): + raise Errors.WafError('perl module "Parse::Yapp::Driver" not found') + ++ # we need a recent version of MakeMaker to get the right man page names ++ if conf.CHECK_PERL_MANPAGE(): ++ conf.env.PERLMAN1EXT = conf.CHECK_PERL_MANPAGE(section='1') ++ conf.env.PERLMAN3EXT = conf.CHECK_PERL_MANPAGE(section='3') ++ conf.DEFINE('HAVE_PERL_MAKEMAKER', 1) ++ + # yapp is used for building the parser + if not conf.find_program('yapp', var='YAPP'): + raise Errors.WafError('yapp not found') ++ conf.find_program('pod2man', var='POD2MAN') + + def build(bld): ++ bld.INSTALL_FILES('${BINDIR}', 'pidl', chmod=MODE_755, perl_fixup=True) ++ ++ bld.RECURSE('lib') ++ ++ if not bld.CONFIG_SET('HAVE_PERL_MAKEMAKER'): ++ return ++ ++ pidl_manpages = { ++ 'pidl': 'man1/pidl.${PERLMAN1EXT}', ++ 'lib/Parse/Pidl/NDR.pm': 'man3/Parse::Pidl::NDR.${PERLMAN3EXT}', ++ 'lib/Parse/Pidl/Wireshark/Conformance.pm': 'man3/Parse::Pidl::Wireshark::Conformance.${PERLMAN3EXT}', ++ 'lib/Parse/Pidl/Dump.pm': 'man3/Parse::Pidl::Dump.${PERLMAN3EXT}', ++ 'lib/Parse/Pidl/Util.pm': 'man3/Parse::Pidl::Util.${PERLMAN3EXT}', ++ 'lib/Parse/Pidl/Wireshark/NDR.pm': 'man3/Parse::Pidl::Wireshark::NDR.${PERLMAN3EXT}' ++ } ++ ++ for k in pidl_manpages.keys(): ++ pidl_manpages[k] = bld.EXPAND_VARIABLES(pidl_manpages[k]) ++ ++ # use perl to build the manpages ++ bld.env.pidl_srcdir = os.path.join(bld.srcnode.abspath(), 'pidl') + ++ bld.SET_BUILD_GROUP('final') ++ if 'POD2MAN' in bld.env and bld.env['POD2MAN'] != '': ++ for src in pidl_manpages.keys(): ++ manpage = pidl_manpages[src] ++ section = manpage.rsplit( ".", 1)[1] ++ bld(rule='${POD2MAN} -c "Samba Documentation" -s %s ${SRC} ${TGT}' % section, ++ shell=True, ++ source=src, ++ install_path=os.path.dirname(bld.EXPAND_VARIABLES('${MANDIR}/'+manpage)), ++ target=os.path.basename(manpage)) ++ + # we want to prefer the git version of the parsers if we can. + # Only if the source has changed do we want to re-run yapp + # But we force the developer to use the pidl standalone build diff --git a/repo/samba/samba-bgqd-include-signal-h.patch b/repo/samba/samba-bgqd-include-signal-h.patch new file mode 100644 index 0000000..c066223 --- /dev/null +++ b/repo/samba/samba-bgqd-include-signal-h.patch @@ -0,0 +1,13 @@ +SIGTERM and SIGPIPE are used but undefined. +diff --git a/source3/printing/samba-bgqd.c b/source3/printing/samba-bgqd.c +index 8ac6ec5..09a5d12 100644 +--- a/source3/printing/samba-bgqd.c ++++ b/source3/printing/samba-bgqd.c +@@ -41,6 +41,7 @@ + #include "source3/auth/proto.h" + #include "source3/printing/queue_process.h" + #include "source3/lib/substitute.h" ++#include <signal.h> + + static void watch_handler(struct tevent_req *req) + { diff --git a/repo/samba/samba.confd b/repo/samba/samba.confd new file mode 100644 index 0000000..902cb1a --- /dev/null +++ b/repo/samba/samba.confd @@ -0,0 +1,9 @@ +# Add "winbindd" to daemon_list if you want start winbind from here as well +daemon_list="smbd nmbd" +# Use "samba" alone for role based samba4 services (eg: ad-dc). +#daemon_list="samba" + +smbd_options="-D" +nmbd_options="-D" +#winbindd_options="" +#samba_options="" diff --git a/repo/samba/samba.initd b/repo/samba/samba.initd new file mode 100644 index 0000000..71c7fb2 --- /dev/null +++ b/repo/samba/samba.initd @@ -0,0 +1,79 @@ +#!/sbin/openrc-run + +extra_started_commands="reload" +piddir=${piddir:-"/run/samba"} + +DAEMON=${RC_SVCNAME#samba.} +if [ "$DAEMON" != "$RC_SVCNAME" ]; then + daemon_list=$DAEMON +fi + +depend() { + need net + after firewall +} + +start_pre() { + checkpath --directory "$piddir" +} + +start_samba() { + start-stop-daemon --start --quiet --exec /usr/sbin/samba -- \ + ${samba_options:-"-D"} +} + +stop_samba() { + start-stop-daemon --stop --quiet --pidfile "$piddir"/samba.pid +} + +start_smbd() { + start-stop-daemon --start --quiet --exec /usr/sbin/smbd -- \ + ${smbd_options:-"-D"} +} + +stop_smbd() { + start-stop-daemon --stop --quiet --pidfile "$piddir"/smbd.pid +} + +start_nmbd() { + start-stop-daemon --start --quiet --exec /usr/sbin/nmbd -- \ + ${nmbd_options:-"-D"} +} + +stop_nmbd() { + start-stop-daemon --stop --quiet --pidfile "$piddir"/nmbd.pid +} + +start_winbindd() { + start-stop-daemon --start --quiet --exec /usr/sbin/winbindd -- \ + $winbindd_options +} + +stop_winbindd() { + start-stop-daemon --stop --quiet --pidfile "$piddir"/winbindd.pid +} + +start() { + for i in $daemon_list; do + ebegin "Starting $i" + start_$i + eend $? + done +} + +stop() { + for i in $daemon_list; do + ebegin "Stopping $i" + stop_$i + eend $? + done +} + +reload() { + for i in $daemon_list; do + ebegin "Reloading $i" + killall -HUP $i + eend $? + done +} + diff --git a/repo/samba/samba.logrotate b/repo/samba/samba.logrotate new file mode 100644 index 0000000..88abb90 --- /dev/null +++ b/repo/samba/samba.logrotate @@ -0,0 +1,9 @@ +/var/log/samba/log.* /var/log/samba/*.log { + notifempty + missingok + sharedscripts + copytruncate + postrotate + /etc/init.d/samba --quiet --ifstarted reload + endscript +} diff --git a/repo/samba/samba.xibuild b/repo/samba/samba.xibuild new file mode 100644 index 0000000..b6fe918 --- /dev/null +++ b/repo/samba/samba.xibuild @@ -0,0 +1,74 @@ +#!/bin/sh + +NAME="samba" +DESC="Tools to access a server's filespace and printers via SMB" + +MAKEDEPS="acl bind cups dbus docbook-xsl e2fsprogs fuse gnutls iniparser jansson ldb libarchive libcap libtirpc liburing linux-pam musl-nscd ncurses openldap perl perl-parse-yapp popt python-tdb python-tevent python3 rpcgen subunit talloc tdb tevent zlib python-dnspython python-markdown tdb" + +PKG_VER=4.15.6 +SOURCE=" + https://download.samba.org/pub/samba/stable/samba-$PKG_VER.tar.gz + " + +ADDITIONAL=" +add_missing___compar_fn_t.patch +getpwent_r.patch +missing-headers.patch +musl_rm_unistd_incl.patch +musl_uintptr.patch +netapp.patch +netdb-defines.patch +pidl.patch +samba-bgqd-include-signal-h.patch +samba.confd +samba.initd +samba.logrotate +winbind.post-install +winbind.post-upgrade +winbind.pre-install +winbind.pre-upgrade +" + +build() { + local _idmap_modules=idmap_ad,idmap_rid,idmap_adex,idmap_hash,idmap_tdb2 + local _pdb_modules=pdb_tdbsam,pdb_ldap,pdb_ads,pdb_smbpasswd,pdb_wbc_sam,pdb_samba4 + local _auth_modules=auth_unix,auth_wbc,auth_server,auth_netlogond,auth_script,auth_samba4 + + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc/samba \ + --with-configdir=/etc/samba \ + --localstatedir=/var \ + --libexecdir=/usr/lib \ + --enable-fhs \ + --with-lockdir=/var/cache/samba \ + --with-piddir=/run/samba \ + --with-logfilebase=/var/log/samba \ + --with-pam \ + --without-systemd \ + --with-ads \ + --with-shared-modules=$_idmap_modules,$_pdb_modules,$_auth_modules,vfs_io_uring \ + --enable-cups \ + --without-gettext \ + --bundled-libraries=NONE,ntdb,roken,wind,hx509,asn1,heimbase,hcrypto,krb5,gssapi,heimntlm,hdb,kdc,cmocka \ + --disable-rpath-install \ + --without-gpgme + make -j"$(nproc)" +} + +package() { + make DESTDIR="$PKG_DEST" install + + install -d "$PKG_DEST"/var/log/samba \ + "$PKG_DEST"/usr/share/doc/samba + install -dm755 "$PKG_DEST"/var/lib/samba/sysvol + install -Dm644 examples/smb.conf.default \ + "$PKG_DEST"/etc/samba/smb.conf + install -m744 packaging/printing/smbprint \ + "$PKG_DEST"/usr/bin/smbprint + install -Dm644 "$BUILD_ROOT"/samba.logrotate \ + "$PKG_DEST"/etc/logrotate.d/samba + + install -Dm755 "$BUILD_ROOT/samba.initd" "$PKG_DEST/etc/init.d/samba" + install -Dm644 "$BUILD_ROOT/samba.confd" "$PKG_DEST/etc/conf.d/samba" +} diff --git a/repo/samba/winbind.post-install b/repo/samba/winbind.post-install new file mode 100644 index 0000000..59abe0f --- /dev/null +++ b/repo/samba/winbind.post-install @@ -0,0 +1,6 @@ +#!/bin/sh + +chgrp winbind /var/cache/samba/winbindd_privileged +chmod 750 /var/cache/samba/winbindd_privileged +exit 0 + diff --git a/repo/samba/winbind.post-upgrade b/repo/samba/winbind.post-upgrade new file mode 100644 index 0000000..59abe0f --- /dev/null +++ b/repo/samba/winbind.post-upgrade @@ -0,0 +1,6 @@ +#!/bin/sh + +chgrp winbind /var/cache/samba/winbindd_privileged +chmod 750 /var/cache/samba/winbindd_privileged +exit 0 + diff --git a/repo/samba/winbind.pre-install b/repo/samba/winbind.pre-install new file mode 100644 index 0000000..ac4df3f --- /dev/null +++ b/repo/samba/winbind.pre-install @@ -0,0 +1,5 @@ +#!/bin/sh + +addgroup -S winbind 2>/dev/null + +exit 0 diff --git a/repo/samba/winbind.pre-upgrade b/repo/samba/winbind.pre-upgrade new file mode 100644 index 0000000..ac4df3f --- /dev/null +++ b/repo/samba/winbind.pre-upgrade @@ -0,0 +1,5 @@ +#!/bin/sh + +addgroup -S winbind 2>/dev/null + +exit 0 diff --git a/repo/sdl2-gfx/sdl2-gfx.xibuild b/repo/sdl2-gfx/sdl2-gfx.xibuild new file mode 100644 index 0000000..77e6ca5 --- /dev/null +++ b/repo/sdl2-gfx/sdl2-gfx.xibuild @@ -0,0 +1,23 @@ +#!/bin/sh + +NAME="sdl2-gfx" +DESC="SDL2 graphics drawing primitives and other support functions" + +MAKEDEPS=" sdl2" + +PKG_VER=1.0.4 +SOURCE="http://www.ferzkopp.net/Software/SDL2_gfx/SDL2_gfx-$PKG_VER.tar.gz" + +build() { + ./configure --prefix=/usr --disable-mmx + make +} + +package() { + make DESTDIR="$PKG_DEST" install + mkdir -p "$PKG_DEST/usr/share/doc/sdl2-gfx" + for f in Docs/html/*; do + install -Dm644 $f "$PKG_DEST/usr/share/doc/sdl2-gfx" + done +} + diff --git a/repo/sdl2-mixer/sdl2-mixer.xibuild b/repo/sdl2-mixer/sdl2-mixer.xibuild new file mode 100644 index 0000000..8f48901 --- /dev/null +++ b/repo/sdl2-mixer/sdl2-mixer.xibuild @@ -0,0 +1,31 @@ +#!/bin/sh + +NAME="sdl2-mixer" +DESC="A simple multi-channel audio mixer" + +MAKEDEPS=" sdl2 libvorbis libmikmod mpg123 libmodplug flac linux-headers" + +PKG_VER=2.0.4 +SOURCE="https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-$PKG_VER.tar.gz" + +prepare() { + sed -e "/CONFIG_FILE_ETC/s/\/etc\/timidity.cfg/\/etc\/timidity++\/timidity.cfg/" \ + -e "/DEFAULT_PATH/s/\/etc\/timidity/\/etc\/timidity++/" \ + -e "/DEFAULT_PATH2/s/\/usr\/local\/lib\/timidity/\/usr\/lib\/timidity/" \ + -i timidity/options.h +} + +build() { + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --enable-music-mod + make +} + +package() { + make DESTDIR="$PKG_DEST" install +} + diff --git a/repo/sdl2-ttf/sdl2-ttf.xibuild b/repo/sdl2-ttf/sdl2-ttf.xibuild new file mode 100644 index 0000000..12cdba8 --- /dev/null +++ b/repo/sdl2-ttf/sdl2-ttf.xibuild @@ -0,0 +1,23 @@ +#!/bin/sh + +NAME="sdl2-ttf" +DESC="A library which allows you to use TrueType fonts in your SDL applications" + +MAKEDEPS="freetype2 mesa sdl2" + +PKG_VER=2.0.18 +SOURCE="https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-$PKG_VER.tar.gz" + +build() { + ./configure \ + + + --prefix=/usr \ + --enable-static + make +} + +package() { + make DESTDIR="$PKG_DEST" install +} + diff --git a/repo/skia/skia-static.xibuild b/repo/skia/skia-static.xibuild new file mode 100644 index 0000000..b14418f --- /dev/null +++ b/repo/skia/skia-static.xibuild @@ -0,0 +1,15 @@ +#!/bin/sh + +DESC="$DESC - static libraries" + +build () { + gn gen out/Static --args="$common_args is_official_build=true" + + ninja -C out/Static +} + +package () { + for lib in out/Static/*.a; do + install -Dm644 $lib $PKG_DEST/usr/lib/ + done +} diff --git a/repo/skia/skia.xibuild b/repo/skia/skia.xibuild new file mode 100644 index 0000000..55bccb3 --- /dev/null +++ b/repo/skia/skia.xibuild @@ -0,0 +1,28 @@ +#!/bin/sh + +NAME="skia" +DESC="Skia is a complete 2D graphic library for drawing Text, Geometries, and Images." + +MAKEDEPS="gn " + +SOURCE="https://skia.googlesource.com/skia.git" + +prepare () { + python tools/git-sync-deps + export common_args=" + skia_use_dng_sdk=false + " +} + +build () { + # dng sdk fails to build + gn gen out/Shared --args="$common_args is_official_build=true is_component_build=true" + + ninja -C out/Shared +} + +package () { + for lib in out/Shared/*.so; do + install -Dm644 $lib $PKG_DEST/usr/lib/ + done +} diff --git a/repo/speex/speex.xibuild b/repo/speex/speex.xibuild new file mode 100644 index 0000000..44136f7 --- /dev/null +++ b/repo/speex/speex.xibuild @@ -0,0 +1,25 @@ +#!/bin/sh + +NAME="speex" +DESC="an audio compression format designed for speech" + +MAKEDEPS="libogg speexdsp" + +PKG_VER=1.2.0 +SOURCE="http://downloads.us.xiph.org/releases/speex/speex-$PKG_VER.tar.gz" + +build() { + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --disable-static \ + --enable-binaries + make +} + +package() { + make -j1 DESTDIR="$PKG_DEST" install +} + diff --git a/repo/speexdsp/speexdsp.xibuild b/repo/speexdsp/speexdsp.xibuild new file mode 100644 index 0000000..5bfc614 --- /dev/null +++ b/repo/speexdsp/speexdsp.xibuild @@ -0,0 +1,29 @@ +#!/bin/sh + +NAME="speexdsp" +DESC="A voice compression format (DSP)" + +MAKEDEPS="autoconf automake libtool" + +PKG_VER=1.2.0 +SOURCE="https://downloads.xiph.org/releases/speex/speexdsp-$PKG_VER.tar.gz" + +prepare() { + apply_patches + autoreconf -vif +} + +build() { + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --disable-static + make +} + +package() { + make -j1 DESTDIR="$PKG_DEST" install +} + diff --git a/repo/sysfsutils/sysfsutils.xibuild b/repo/sysfsutils/sysfsutils.xibuild new file mode 100644 index 0000000..9f40e36 --- /dev/null +++ b/repo/sysfsutils/sysfsutils.xibuild @@ -0,0 +1,27 @@ +#!/bin/sh + +NAME="sysfsutils" +DESC="System Utilities Based on Sysfs" + +MAKEDEPS="autoconf automake libtool" + +PKG_VER=2.1.1 +SOURCE="https://github.com/linux-ras/sysfsutils/archive/v$PKG_VER.tar.gz" + +prepare() { + apply_patches + ./autogen +} + +build() { + ./configure \ + --prefix=/usr \ + --mandir=/usr/share/man + make +} + +package() { + make DESTDIR="$PKG_DEST" install + install -Dm0644 COPYING -t "$PKG_DEST"/usr/share/licenses/"sysfsutils" +} + diff --git a/repo/virt-manager/virt-manager.xibuild b/repo/virt-manager/virt-manager.xibuild index 8397bbd..061b0f7 100644 --- a/repo/virt-manager/virt-manager.xibuild +++ b/repo/virt-manager/virt-manager.xibuild @@ -4,7 +4,7 @@ NAME="virt-manager" DESC="GUI for managing virtual machines" MAKEDEPS="intltool glib python-docutils" -DEPS="libvirt" +DEPS="libvirt libvirt-glib python-libvirt python-ipaddr python-urlgrabber libosinfo gtksourceview gtk-vnc" PKG_VER=3.2.0 SOURCE="https://releases.pagure.org/virt-manager/virt-manager-$PKG_VER.tar.gz" @@ -28,3 +28,7 @@ package() { python3 -m compileall "$PKG_DEST/usr/share/virt-manager" python3 -O -m compileall "$PKG_DEST/usr/share/virt-manager" } + +postinstall () { + glib-compile-schemas /usr/share/glib-2.0/schemas/ +} diff --git a/repo/vlc/check-headless.patch b/repo/vlc/check-headless.patch new file mode 100644 index 0000000..25016f4 --- /dev/null +++ b/repo/vlc/check-headless.patch @@ -0,0 +1,13 @@ +diff --git a/test/run_vlc.sh b/test/run_vlc.sh +index af35987..9a0175b 100755 +--- a/test/run_vlc.sh ++++ b/test/run_vlc.sh +@@ -2,7 +2,7 @@ + + set -e + +-VLC="./vlc --ignore-config --rc-fake-tty" ++VLC="./vlc -I dummy --ignore-config --rc-fake-tty" + + $VLC -H + $VLC -vv vlc://quit diff --git a/repo/vlc/dav1d-1.0.0.patch b/repo/vlc/dav1d-1.0.0.patch new file mode 100644 index 0000000..717d020 --- /dev/null +++ b/repo/vlc/dav1d-1.0.0.patch @@ -0,0 +1,117 @@ +Patch-Source: https://code.videolan.org/videolan/vlc/-/merge_requests/1611/diffs +From dbf45cea2a8abdfbef897b8a71f3eb782bb1b712 Mon Sep 17 00:00:00 2001 +From: Steve Lhomme <robux4@ycbcr.xyz> +Date: Fri, 18 Mar 2022 11:42:49 +0100 +Subject: [PATCH 1/2] dav1d: fix compilation with (upcoming) dav1d 1.0 + +--- + modules/codec/dav1d.c | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + +diff --git a/modules/codec/dav1d.c b/modules/codec/dav1d.c +index 565ec94c8b2..e4c7c587829 100644 +--- a/modules/codec/dav1d.c ++++ b/modules/codec/dav1d.c +@@ -63,10 +63,16 @@ + set_category(CAT_INPUT) + set_subcategory(SUBCAT_INPUT_VCODEC) + ++#if DAV1D_API_VERSION_MAJOR >= 6 ++ add_integer_with_range("dav1d-thread-frames", 0, 0, DAV1D_MAX_THREADS, ++ THREAD_FRAMES_TEXT, THREAD_FRAMES_LONGTEXT, false) ++ add_obsolete_string("dav1d-thread-tiles") // unused with dav1d 1.0 ++#else + add_integer_with_range("dav1d-thread-frames", 0, 0, DAV1D_MAX_FRAME_THREADS, + THREAD_FRAMES_TEXT, THREAD_FRAMES_LONGTEXT, false) + add_integer_with_range("dav1d-thread-tiles", 0, 0, DAV1D_MAX_TILE_THREADS, + THREAD_TILES_TEXT, THREAD_TILES_LONGTEXT, false) ++#endif + vlc_module_end () + + /***************************************************************************** +@@ -294,6 +300,11 @@ + return VLC_ENOMEM; + + dav1d_default_settings(&p_sys->s); ++#if DAV1D_API_VERSION_MAJOR >= 6 ++ p_sys->s.n_threads = var_InheritInteger(p_this, "dav1d-thread-frames"); ++ if (p_sys->s.n_threads == 0) ++ p_sys->s.n_threads = __MAX(1, vlc_GetCPUCount()); ++#else + p_sys->s.n_tile_threads = var_InheritInteger(p_this, "dav1d-thread-tiles"); + if (p_sys->s.n_tile_threads == 0) + p_sys->s.n_tile_threads = +@@ -303,6 +314,7 @@ + p_sys->s.n_frame_threads = var_InheritInteger(p_this, "dav1d-thread-frames"); + if (p_sys->s.n_frame_threads == 0) + p_sys->s.n_frame_threads = (i_core_count < 16) ? i_core_count : 16; ++#endif + p_sys->s.allocator.cookie = dec; + p_sys->s.allocator.alloc_picture_callback = NewPicture; + p_sys->s.allocator.release_picture_callback = FreePicture; +@@ -313,12 +325,19 @@ + return VLC_EGENERIC; + } + ++#if DAV1D_API_VERSION_MAJOR >= 6 ++ msg_Dbg(p_this, "Using dav1d version %s with %d threads", ++ dav1d_version(), p_sys->s.n_threads); ++ ++ dec->i_extra_picture_buffers = (p_sys->s.n_threads - 1); ++#else + msg_Dbg(p_this, "Using dav1d version %s with %d/%d frame/tile threads", + dav1d_version(), p_sys->s.n_frame_threads, p_sys->s.n_tile_threads); + ++ dec->i_extra_picture_buffers = (p_sys->s.n_frame_threads - 1); ++#endif + dec->pf_decode = Decode; + dec->pf_flush = FlushDecoder; +- dec->i_extra_picture_buffers = (p_sys->s.n_frame_threads - 1); + + dec->fmt_out.video.i_width = dec->fmt_in.video.i_width; + dec->fmt_out.video.i_height = dec->fmt_in.video.i_height; +-- +GitLab + + +From c857056738aec2e66d21b54d2d086c60255e6a91 Mon Sep 17 00:00:00 2001 +From: Steve Lhomme <robux4@ycbcr.xyz> +Date: Wed, 12 Aug 2020 06:19:06 +0200 +Subject: [PATCH 2/2] contrib: dav1d: update to 1.0.0 + +--- + contrib/src/dav1d/SHA512SUMS | 2 +- + contrib/src/dav1d/rules.mak | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/contrib/src/dav1d/SHA512SUMS b/contrib/src/dav1d/SHA512SUMS +index 5d7d593ae20..641f4f75698 100644 +--- a/contrib/src/dav1d/SHA512SUMS ++++ b/contrib/src/dav1d/SHA512SUMS +@@ -1 +1 @@ +-87026f8b14e408ff50fc8f137ec2ede4b14c5f69687e615d2359d0f718ae5cb5176522490786d9ae1f7838182f82615c2674f7c2961b6dcec83f1ee587c3af7c dav1d-0.9.2.tar.xz ++a3a7e162e45181449cd42af3a4d36669a850a4ee9ab17641dcd63d84406444566e8ebc7caa55b0620ab581039f36d19a90218a40f52ebbe525b37ed9493fb3f3 dav1d-1.0.0.tar.xz +diff --git a/contrib/src/dav1d/rules.mak b/contrib/src/dav1d/rules.mak +index f75c9e1fa0c..e4583228316 100644 +--- a/contrib/src/dav1d/rules.mak ++++ b/contrib/src/dav1d/rules.mak +@@ -1,6 +1,6 @@ + # libdav1d + +-DAV1D_VERSION := 0.9.2 ++DAV1D_VERSION := 1.0.0 + DAV1D_URL := $(VIDEOLAN)/dav1d/$(DAV1D_VERSION)/dav1d-$(DAV1D_VERSION).tar.xz + + PKGS += dav1d +@@ -12,7 +12,7 @@ DAV1D_CONF = -D enable_tests=false -D enable_tools=false + + $(TARBALLS)/dav1d-$(DAV1D_VERSION).tar.xz: + $(call download_pkg,$(DAV1D_URL),dav1d) +- #~ $(call download_git,$(DAV1D_URL),,$(DAV1D_HASH)) ++ #~ $(call download_git,$(DAV1D_GITURL),,$(DAV1D_HASH)) + + .sum-dav1d: dav1d-$(DAV1D_VERSION).tar.xz + +-- +GitLab + diff --git a/repo/vlc/disable-sub-autodetect-fuzzy-1-test.patch b/repo/vlc/disable-sub-autodetect-fuzzy-1-test.patch new file mode 100644 index 0000000..b3dd8a1 --- /dev/null +++ b/repo/vlc/disable-sub-autodetect-fuzzy-1-test.patch @@ -0,0 +1,20 @@ +This test fails on x86 and s390x so disable it for now +reported upstream: https://trac.videolan.org/vlc/ticket/19321 + +diff --git a/test/libvlc/slaves.c b/test/libvlc/slaves.c +index 7b2c24fa43..7c47b3147b 100644 +--- a/test/libvlc/slaves.c ++++ b/test/libvlc/slaves.c +@@ -194,10 +194,12 @@ main (void) + assert(p_expected_slaves[i].psz_uri != NULL); + } + ++#if 0 + printf("== Testing --sub-autodetect-fuzzy 1 (everything) ==\n"); + test_media_has_slaves_from_parent(p_vlc, SLAVES_DIR "/test.mp4", + p_expected_slaves, + EXPECTED_SLAVES_COUNT); ++#endif + libvlc_release(p_vlc); + + printf("== Testing --sub-autodetect-fuzzy 2 (full, left, and right match) ==\n"); diff --git a/repo/vlc/fribidi_allow_deprecated.patch b/repo/vlc/fribidi_allow_deprecated.patch new file mode 100644 index 0000000..ca15ea2 --- /dev/null +++ b/repo/vlc/fribidi_allow_deprecated.patch @@ -0,0 +1,10 @@ +--- a/modules/text_renderer/freetype/text_layout.c ++++ b/modules/text_renderer/freetype/text_layout.c +@@ -52,7 +52,6 @@ + + /* RTL */ + #if defined(HAVE_FRIBIDI) +-# define FRIBIDI_NO_DEPRECATED 1 + # include <fribidi.h> + #endif + diff --git a/repo/vlc/omxil-rpi-codecs.patch b/repo/vlc/omxil-rpi-codecs.patch new file mode 100644 index 0000000..9b7accf --- /dev/null +++ b/repo/vlc/omxil-rpi-codecs.patch @@ -0,0 +1,15 @@ +--- vlc-2.2.0/modules/codec/omxil/omxil_core.c.orig 2015-02-28 08:37:54.044936036 -0200 ++++ vlc-2.2.0/modules/codec/omxil/omxil_core.c 2015-02-28 08:38:38.738271654 -0200 +@@ -204,6 +204,12 @@ + #ifdef RPI_OMX + { "video_decoder.avc", "OMX.broadcom.video_decode" }, + { "video_decoder.mpeg2", "OMX.broadcom.video_decode" }, ++ { "video_decoder.mpeg4", "OMX.broadcom.video_decode" }, ++ { "video_decoder.vp6", "OMX.broadcom.video_decode" }, ++ { "video_decoder.vp8", "OMX.broadcom.video_decode" }, ++ { "video_decoder.theora", "OMX.broadcom.video_decode" }, ++ { "video_decoder.mjpg", "OMX.broadcom.video_decode" }, ++ { "video_decoder.vc1", "OMX.broadcom.video_decode" }, + { "iv_renderer", "OMX.broadcom.video_render" }, + #endif + { 0, 0 } diff --git a/repo/vlc/test-s390x.patch b/repo/vlc/test-s390x.patch new file mode 100644 index 0000000..8f221ee --- /dev/null +++ b/repo/vlc/test-s390x.patch @@ -0,0 +1,13 @@ +diff --git a/test/modules/packetizer/hxxx.c b/test/modules/packetizer/hxxx.c +index 93362a1..e1b7604 100644 +--- a/test/modules/packetizer/hxxx.c ++++ b/test/modules/packetizer/hxxx.c +@@ -210,7 +210,7 @@ static void test_annexb() + + int main( void ) + { +- test_annexb(); ++ //test_annexb(); + + return 0; + } diff --git a/repo/vlc/vlc-daemon.pre-install b/repo/vlc/vlc-daemon.pre-install new file mode 100644 index 0000000..aed6c18 --- /dev/null +++ b/repo/vlc/vlc-daemon.pre-install @@ -0,0 +1,15 @@ +#!/bin/sh + +groups="vlc audio video" + +for group in $groups; do + addgroup -S $group 2>/dev/null +done +adduser -S -D -h /home/vlc -s /bin/sh -G vlc -g vlc vlc 2>/dev/null + +# make sure vlc are in all groups +for group in $groups; do + addgroup vlc $group 2>/dev/null +done + +exit 0 diff --git a/repo/vlc/vlc-libs.trigger b/repo/vlc/vlc-libs.trigger new file mode 100644 index 0000000..c76d998 --- /dev/null +++ b/repo/vlc/vlc-libs.trigger @@ -0,0 +1,7 @@ +#!/bin/sh + +if [ -f /usr/lib/vlc/vlc-cache-gen ]; then + exec /usr/lib/vlc/vlc-cache-gen "$@" >&/dev/null +fi +exit 0 + diff --git a/repo/vlc/vlc-live-media-2021.patch b/repo/vlc/vlc-live-media-2021.patch new file mode 100644 index 0000000..5ca5cb3 --- /dev/null +++ b/repo/vlc/vlc-live-media-2021.patch @@ -0,0 +1,26 @@ +diff -ru vlc-3.0.13.orig/configure.ac vlc-3.0.13/configure.ac +--- vlc-3.0.13.orig/configure.ac 2021-04-27 15:18:39.000000000 +0200 ++++ vlc-3.0.13/configure.ac 2021-05-03 16:26:26.691200904 +0200 +@@ -1825,7 +1825,7 @@ + AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.]) + ]) + ], [ +- other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment" ++ other_libs="-lcrypto -lssl -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment" + other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic" + AS_IF([test "${SYS}" = "mingw32"], [ + # add ws2_32 for closesocket, select, recv +diff -ru vlc-3.0.13.orig/modules/access/live555.cpp vlc-3.0.13/modules/access/live555.cpp +--- vlc-3.0.13.orig/modules/access/live555.cpp 2019-03-29 20:01:15.000000000 +0100 ++++ vlc-3.0.13/modules/access/live555.cpp 2021-05-03 16:04:38.030121796 +0200 +@@ -852,7 +852,9 @@ + if( !p_sys->b_multicast ) + { + /* We need different rollover behaviour for multicast */ +- p_sys->b_multicast = IsMulticastAddress( sub->connectionEndpointAddress() ); ++ struct sockaddr_storage tempAddr; ++ sub->getConnectionEndpointAddress(tempAddr); ++ p_sys->b_multicast = IsMulticastAddress( tempAddr ); + } + + tk = (live_track_t*)malloc( sizeof( live_track_t ) ); diff --git a/repo/vlc/vlc.confd b/repo/vlc/vlc.confd new file mode 100644 index 0000000..9a58842 --- /dev/null +++ b/repo/vlc/vlc.confd @@ -0,0 +1,15 @@ +# Sample vlc params suitable for running as a daemon + +## --file-logging enable file logging +## --logfile logfile name/path +## -vvv verbose logging +## -I dummy disable X11 interface +## --sout PARAMS encoding parameters + + +## Do NOT quote 'PARAMS' otherwise shell expansions will broke vlc +## +## The --daemon option will automatically be added so no need to add it +## here. + +VLC_OPTS="--quiet -I dummy alsa://hw:0,0 --file-logging --logfile /var/log/vlc/vlc.log --sout #transcode{acodec=mp3,ab=48,channels=1,samplerate=22050}:std{access=http,mux=ogg,dst=:8080}" diff --git a/repo/vlc/vlc.initd b/repo/vlc/vlc.initd new file mode 100644 index 0000000..541a071 --- /dev/null +++ b/repo/vlc/vlc.initd @@ -0,0 +1,32 @@ +#!/sbin/openrc-run + +description="VideoLAN daemon" +pidfile="/var/run/vlc/${RC_SVCNAME}.pid" +command="/usr/bin/vlc" + +depend() { + need net + after firewall +} + +start_pre() { + checkpath --directory --owner vlc:vlc --mode 775 ${pidfile%/*} +} + +start() { + ebegin "Starting ${RC_SVCNAME}" + start-stop-daemon --start \ + --user vlc \ + --pidfile ${pidfile} \ + --exec ${command} \ + -- \ + --daemon --pidfile ${pidfile} ${VLC_OPTS} + eend $? +} + +stop() { + ebegin "Stopping ${RC_SVCNAME}" + start-stop-daemon --stop \ + --pidfile ${pidfile} + eend $? +} diff --git a/repo/vlc/vlc.xibuild b/repo/vlc/vlc.xibuild new file mode 100644 index 0000000..0313a2d --- /dev/null +++ b/repo/vlc/vlc.xibuild @@ -0,0 +1,94 @@ +#!/bin/sh + +NAME="vlc" +DESC="A multi-platform MPEG, VCD/DVD, and DivX player" + +MAKEDEPS="a52dec alsa-lib automake autoconf avahi bison libtool dav1d dbus faad2 ffmpeg4 flac flex freetype2 gtk3 libbluray libavc1394 libcddb libdc1394 libdvbpsi libdvdnav libdvdread libgcrypt libice libmad libmatroska libmpeg2 libnotify libogg libraw1394 librsvg libshout libsm libsrt libtheora libva libvdpau libvorbis libvpx libx11 libxext libxinerama libxml2 libxpm libxv live-media lua mesa ncurses opus pkgconfig qt5-qtbase qt5-qtsvg qt5-qtx11extras sdl2 speex speexdsp sysfsutils taglib eudev v4l-utils wayland-protocols x264 x265 xcb-util-renderutil xcb-util-keysyms xdg-utils samba gnutls pulseaudio" + +PKG_VER=3.0.17.3 +SOURCE="https://download.videolan.org/vlc/$PKG_VER/vlc-$PKG_VER.tar.xz" + +ADDITIONAL=" +check-headless.patch +dav1d-1.0.0.patch +disable-sub-autodetect-fuzzy-1-test.patch +fribidi_allow_deprecated.patch +omxil-rpi-codecs.patch +test-s390x.patch +vlc-daemon.pre-install +vlc-libs.trigger +vlc-live-media-2021.patch +vlc.confd +vlc.initd +" + +prepare() { + apply_patches + NOCONFIGURE=1 ./bootstrap +} + +build() { + local _arch_opts= + export CFLAGS="$CFLAGS -D_GNU_SOURCE -fcommon" + + case "$CARCH" in + arm*) _arch_opts="--enable-omxil --enable-omxil-vout --enable-rpi-omxil" ;; + esac + + #LUA=lua5.2 \ + #LUAC=luac5.2 \ + BUILDCC="${CC:-gcc} -std=c99" \ + ./configure \ + --prefix=/usr \ + --disable-nls \ + --disable-rpath \ + --enable-a52 \ + --enable-avcodec \ + --enable-avformat \ + --enable-bluray \ + --enable-dav1d \ + --enable-dbus \ + --enable-dc1394 \ + --enable-dvbpsi \ + --enable-dvdread \ + --enable-dvdnav \ + --enable-faad \ + --enable-flac \ + --enable-libcddb \ + --enable-libva \ + --enable-live555 \ + --enable-merge-ffmpeg \ + --enable-ncurses \ + --enable-realrtsp \ + --enable-shout \ + --enable-skins2 \ + --enable-speex \ + --enable-sout \ + --enable-srt \ + --enable-taglib \ + --enable-theora \ + --enable-v4l2 \ + --enable-vdpau \ + --enable-vlm \ + --enable-vorbis \ + --enable-wma-fixed \ + --enable-x264 \ + --enable-xvideo \ + --enable-gnutls \ + $_arch_opts + + make +} + +package() { + make DESTDIR="$PKG_DEST" install + # delete cache as it's autocreated by trigger + rm -rf "$PKG_DEST"/usr/lib/vlc/plugins/plugins.dat + # delete unneeded mozilla and kde support files + rm -rf "$PKG_DEST"/usr/lib/mozilla + rm -rf "$PKG_DEST"/usr/share/kde4 +} + +check() { + make check +} diff --git a/repo/webkit2gtk/webkit2gtk.xibuild b/repo/webkit2gtk/webkit2gtk.xibuild new file mode 100644 index 0000000..26531f4 --- /dev/null +++ b/repo/webkit2gtk/webkit2gtk.xibuild @@ -0,0 +1,59 @@ +#!/bin/sh + +NAME="webkit2gtk" +DESC="Portable web rendering engine WebKit for GTK+" + +MAKEDEPS="bison cmake enchant2 flex geoclue gnutls gobject-introspection gperf gst-plugins-bad gst-plugins-base gstreamer gtk3 hyphen icu lcms2 libgcrypt libjpeg-turbo libmanette libnotify libpng libseccomp libsecret libsoup libwebp libwpe libwpebackend-fdo libxml2 libxslt libxt mesa openjpeg openjpeg-tools pango python ruby ninja sqlite woff2" + +PKG_VER=2.36.0 +SOURCE="https://webkitgtk.org/releases/webkitgtk-$PKG_VER.tar.xz" + +build() { + local _archopt= + case "$CARCH" in + x86) + # disable _FORTIFY_SOURCE to work around: + # cc1plus: out of memory allocating 65536 bytes after a total of 3131101184 bytes + CXXFLAGS="$CXXFLAGS -U_FORTIFY_SOURCE" + ;; + armhf) + CXXFLAGS="$CXXFLAGS -U_FORTIFY_SOURCE" + _archopt="-DENABLE_JIT=OFF" + ;; + ppc64le|s390x) + _archopt="-DENABLE_JIT=OFF" + ;; + esac + + # reduce memory usage on 32 bit + # https://bugs.webkit.org/show_bug.cgi?id=199272 + export CXXFLAGS="$CXXFLAGS -g1" + + # disable gold usage since it can't find pthreads with it enabled + cmake -B build -G Ninja \ + -DPORT=GTK \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_SKIP_RPATH=ON \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DLIB_INSTALL_DIR=/usr/lib \ + -DENABLE_GLES2=ON \ + -DENABLE_GTKDOC=OFF \ + -DENABLE_GEOLOCATION=ON \ + -DENABLE_JOURNALD_LOG=OFF \ + -DENABLE_SAMPLING_PROFILER=OFF \ + -DENABLE_MINIBROWSER=ON \ + -DUSE_WPE_RENDERER=ON \ + -DUSE_WOFF2=ON \ + -DUSE_SOUP2=ON \ + $_archopt + cmake --build build +} + +check() { + ninja -C build check +} + +package() { + DESTDIR="$PKG_DEST" cmake --install build +} + diff --git a/repo/woff2/dont-set-rpath.patch b/repo/woff2/dont-set-rpath.patch new file mode 100644 index 0000000..dbc76e1 --- /dev/null +++ b/repo/woff2/dont-set-rpath.patch @@ -0,0 +1,30 @@ +From: Jeremy Bicha <jeremy@bicha.net> +Date: Thu, 7 Dec 2017 13:40:57 -0500 +Subject: [PATCH] Don't set rpath + +https://github.com/google/woff2/pull/106 +--- + CMakeLists.txt | 10 ---------- + 1 file changed, 10 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ecfbb83..da8ecf1 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -21,16 +21,6 @@ option(NOISY_LOGGING "Noisy logging" ON) + # Version information + set(WOFF2_VERSION 1.0.2) + +-# When building shared libraries it is important to set the correct rpath +-# See https://cmake.org/Wiki/CMake_RPATH_handling#Always_full_RPATH +-set(CMAKE_SKIP_BUILD_RPATH FALSE) +-set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) +-set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) +-list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_LIBDIR}" isSystemDir) +-if ("${isSystemDir}" STREQUAL "-1") +- set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_LIBDIR}") +-endif() +- + # Find Brotli dependencies + set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") + find_package(BrotliDec) diff --git a/repo/woff2/install-executables.patch b/repo/woff2/install-executables.patch new file mode 100644 index 0000000..18616a0 --- /dev/null +++ b/repo/woff2/install-executables.patch @@ -0,0 +1,31 @@ +From b64df1afa8be8bf784e970aa47973ec420ac4381 Mon Sep 17 00:00:00 2001 +From: Jeremy Bicha <jbicha@ubuntu.com> +Date: Thu, 7 Dec 2017 17:18:05 -0500 +Subject: [PATCH] Always install executables + +https://github.com/google/woff2/pull/106 +--- + CMakeLists.txt | 10 ++++------ + 1 file changed, 4 insertions(+), 6 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ecfbb83..29c45b9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -260,12 +260,10 @@ generate_pkg_config ("${CMAKE_CURRENT_BINARY_DIR}/libwoff2enc.pc" + LIBRARIES woff2enc) + + # Installation +-if (NOT BUILD_SHARED_LIBS) +- install( +- TARGETS woff2_decompress woff2_compress woff2_info +- RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" +- ) +-endif() ++install( ++ TARGETS woff2_decompress woff2_compress woff2_info ++ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ++) + + install( + TARGETS woff2common woff2dec woff2enc diff --git a/repo/woff2/woff2.xibuild b/repo/woff2/woff2.xibuild new file mode 100644 index 0000000..1a94e9b --- /dev/null +++ b/repo/woff2/woff2.xibuild @@ -0,0 +1,31 @@ +#!/bin/sh + +NAME="woff2" +DESC="Web Open Font Format 2 reference implementation" + +MAKEDEPS="brotli cmake" + +PKG_VER=1.0.2 +SOURCE="https://github.com/google/woff2/archive/v$PKG_VER.tar.gz" + +ADDITIONAL=" +dont-set-rpath.patch +install-executables.patch +" + +prepare () { + apply_patches +} + +build() { + cmake . \ + -DCMAKE_BUILD_TYPE=None \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=lib \ + -DCMAKE_SKIP_BUILD_RPATH=ON + make +} + +package() { + make DESTDIR="$PKG_DEST" PREFIX=/usr install +} diff --git a/repo/yaml/yaml.xibuild b/repo/yaml/yaml.xibuild new file mode 100644 index 0000000..94dfc9c --- /dev/null +++ b/repo/yaml/yaml.xibuild @@ -0,0 +1,28 @@ +#!/bin/sh + +NAME="yaml" +DESC="YAML 1.1 parser and emitter written in C" + +MAKEDEPS="" + +PKG_VER=0.2.5 +SOURCE="http://pyyaml.org/download/libyaml/yaml-$PKG_VER.tar.gz" + +build() { + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --localstatedir=/var + make +} + +check() { + make check +} + +package() { + make DESTDIR="$PKG_DEST" install +} + diff --git a/skip/transmission-remote-gtk/transmission-remote-gtk.xibuild b/skip/transmission-remote-gtk/transmission-remote-gtk.xibuild new file mode 100644 index 0000000..836738d --- /dev/null +++ b/skip/transmission-remote-gtk/transmission-remote-gtk.xibuild @@ -0,0 +1,20 @@ +#!/bin/sh + +NAME="transmission-remote-gtk" +DESC="GTK client for remote management of the Transmission BitTorrent client" + +MAKEDEPS="appstream-glib curl geoip gtk3 json-glib libmrss libnotify libproxy" + +PKG_VER=1.4.2 +SOURCE="https://github.com/transmission-remote-gtk/transmission-remote-gtk/releases/download/$PKG_VER/transmission-remote-gtk-$PKG_VER.tar.gz" + +build() { + ./configure \ + --prefix=/usr + make +} + +package() { + make install DESTDIR="$PKG_DEST" PREFIX="/usr" +} + diff --git a/skip/unrar/makefile.patch b/skip/unrar/makefile.patch new file mode 100644 index 0000000..1b0c09f --- /dev/null +++ b/skip/unrar/makefile.patch @@ -0,0 +1,30 @@ +diff -upr unrar.orig/makefile unrar/makefile +--- unrar.orig/makefile 2018-03-11 17:33:12.697132381 +0100 ++++ unrar/makefile 2018-03-11 17:33:48.763911497 +0100 +@@ -2,13 +2,14 @@ + # Makefile for UNIX - unrar + + # Linux using GCC +-CXX=c++ +-CXXFLAGS=-O2 -Wno-logical-op-parentheses -Wno-switch -Wno-dangling-else ++CXX?=c++ ++CXXFLAGS?=-O2 ++CXXFLAGS+=-Wno-logical-op-parentheses -Wno-switch -Wno-dangling-else + LIBFLAGS=-fPIC + DEFINES=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DRAR_SMP + STRIP=strip + AR=ar +-LDFLAGS=-pthread ++LDFLAGS+=-pthread + DESTDIR=/usr + + # Linux using LCC +@@ -140,7 +141,7 @@ uninstall: uninstall-unrar + clean: + @rm -f *.o *.bak *~ + +-unrar: clean $(OBJECTS) $(UNRAR_OBJ) ++unrar: $(OBJECTS) $(UNRAR_OBJ) + $(LINK) -o unrar $(LDFLAGS) $(OBJECTS) $(UNRAR_OBJ) $(LIBS) + $(STRIP) unrar + diff --git a/skip/unrar/unrar.xibuild b/skip/unrar/unrar.xibuild new file mode 100644 index 0000000..2d2500a --- /dev/null +++ b/skip/unrar/unrar.xibuild @@ -0,0 +1,27 @@ +#!/bin/sh + +NAME="unrar" +DESC="RAR uncompression program" + +MAKEDEPS="make " +DEPS="musl " + +PKG_VER=6.0.7 +SOURCE="https://www.rarlab.com/rar/unrarsrc-$PKG_VER.tar.gz" +ADDITIONAL="makefile.patch" + +prepare () { + apply_patches + touch unrar +} + +build () { + make CXX="${CXX:-g++}" STRIP=: -f makefile +} + +package () { + make PREFIX=/usr DESTDIR=$PKG_DEST install + + install -Dm644 license.txt \ + "$PKG_DEST"/usr/share/licenses/unrar/license.txt +} |