diff --git a/.gitignore b/.gitignore index 846037a8fe..7b9bf5bef4 100644 --- a/.gitignore +++ b/.gitignore @@ -119,7 +119,9 @@ packages/mediacenter/ packages/linux-driver-addons/ # Kodi addons (no MEDIACENTER in ArchR) -packages/addons/ +# Kodi addons (no MEDIACENTER in ArchR) - keep addon-depends for shared libraries +packages/addons/* +!packages/addons/addon-depends/ # Platform-specific bootloaders/tools (not RK3326) packages/tools/bcm2835-bootloader/ diff --git a/packages/addons/addon-depends/chrome-depends/atk/package.mk b/packages/addons/addon-depends/chrome-depends/atk/package.mk new file mode 100644 index 0000000000..8d0d3b217e --- /dev/null +++ b/packages/addons/addon-depends/chrome-depends/atk/package.mk @@ -0,0 +1,16 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="atk" +PKG_VERSION="2.38.0" +PKG_SHA256="ac4de2a4ef4bd5665052952fe169657e65e895c5057dffb3c2a810f6191a0c36" +PKG_LICENSE="GPL" +PKG_SITE="http://library.gnome.org/devel/atk/" +PKG_URL="https://ftp.gnome.org/pub/gnome/sources/atk/${PKG_VERSION:0:4}/atk-${PKG_VERSION}.tar.xz" +PKG_DEPENDS_TARGET="toolchain glib" +PKG_LONGDESC="Provides the set of accessibility interfaces that are implemented by other applications." +PKG_BUILD_FLAGS="+pic" + +PKG_MESON_OPTS_TARGET="-Ddocs=false \ + -Dintrospection=false" diff --git a/packages/addons/addon-depends/chrome-depends/cups/package.mk b/packages/addons/addon-depends/chrome-depends/cups/package.mk new file mode 100644 index 0000000000..e94eda9f79 --- /dev/null +++ b/packages/addons/addon-depends/chrome-depends/cups/package.mk @@ -0,0 +1,28 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2017 Escalade +# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="cups" +PKG_VERSION="2.4.12" +PKG_SHA256="7a4d32822b320aa2999b18fdfc4ce5ca9ad204fe6302ff69e6c24b21f8d0eaa0" +PKG_LICENSE="GPL" +PKG_SITE="http://www.cups.org" +PKG_URL="https://github.com/openprinting/cups/archive/v${PKG_VERSION}.tar.gz" +PKG_DEPENDS_TARGET="toolchain gnutls zlib" +PKG_LONGDESC="CUPS printing system." +PKG_BUILD_FLAGS="+pic -sysroot" + +PKG_CONFIGURE_OPTS_TARGET="--libdir=/usr/lib \ + --disable-gssapi \ + --with-dnssd=no \ + --with-tls=gnutls + --disable-unit-tests" + +pre_configure_target() { + cd .. + rm -rf .${TARGET_NAME} +} + +makeinstall_target() { + make BUILDROOT="${INSTALL}" install +} diff --git a/packages/addons/addon-depends/faad2/package.mk b/packages/addons/addon-depends/faad2/package.mk new file mode 100644 index 0000000000..eceb47976c --- /dev/null +++ b/packages/addons/addon-depends/faad2/package.mk @@ -0,0 +1,18 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv) +# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="faad2" +PKG_VERSION="2.11.2" +PKG_SHA256="3fcbd305e4abd34768c62050e18ca0986f7d9c5eca343fb98275418013065c0e" +PKG_LICENSE="GPL" +PKG_SITE="https://github.com/knik0/faad2/" +PKG_URL="https://github.com/knik0/faad2/archive/${PKG_VERSION}.tar.gz" +PKG_DEPENDS_TARGET="toolchain" +PKG_LONGDESC="An MPEG-4 AAC decoder." + +PKG_CMAKE_OPTS_TARGET="-DBUILD_SHARED_LIBS=OFF" + +post_makeinstall_target() { + rm -rf ${INSTALL}/usr/bin +} diff --git a/packages/addons/addon-depends/ffmpegx-depends/x264/package.mk b/packages/addons/addon-depends/ffmpegx-depends/x264/package.mk new file mode 100644 index 0000000000..2d2c5d816f --- /dev/null +++ b/packages/addons/addon-depends/ffmpegx-depends/x264/package.mk @@ -0,0 +1,42 @@ +# SPDX-License-Identifier: GPL-2.0-only +# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="x264" +PKG_VERSION="ff620d0c3c4f717ab393892983d43458d27e4bed" +PKG_SHA256="c6945fe9c3cdd7b0d2f89250ae696a51db59e3506af4d28d03616c9edd1e519b" +PKG_LICENSE="GPL" +PKG_SITE="http://www.videolan.org/developers/x264.html" +PKG_URL="https://code.videolan.org/videolan/x264/-/archive/${PKG_VERSION}/x264-${PKG_VERSION}.tar.bz2" +PKG_DEPENDS_TARGET="toolchain" +PKG_LONGDESC="x264 codec" + +if [ "${TARGET_ARCH}" = "x86_64" ]; then + PKG_DEPENDS_TARGET+=" nasm:host" +fi + +pre_configure_target() { + cd ${PKG_BUILD} + rm -rf .${TARGET_NAME} + + if [ "${TARGET_ARCH}" = "x86_64" ]; then + export AS="${TOOLCHAIN}/bin/nasm" + else + PKG_X264_ASM="--disable-asm" + fi +} + +configure_target() { + ./configure \ + --cross-prefix="${TARGET_PREFIX}" \ + --extra-cflags="${CFLAGS}" \ + --extra-ldflags="${LDFLAGS}" \ + --host="${TARGET_NAME}" \ + --prefix="/usr" \ + --sysroot="${SYSROOT_PREFIX}" \ + ${PKG_X264_ASM} \ + --disable-cli \ + --enable-lto \ + --enable-pic \ + --enable-static \ + --enable-strip +} diff --git a/packages/addons/addon-depends/ffmpegx-depends/x265/package.mk b/packages/addons/addon-depends/ffmpegx-depends/x265/package.mk new file mode 100644 index 0000000000..129a7973b0 --- /dev/null +++ b/packages/addons/addon-depends/ffmpegx-depends/x265/package.mk @@ -0,0 +1,18 @@ +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="x265" +PKG_VERSION="4.1" +PKG_SHA256="53c9363dba429eab3123ffcfda28065c5e7a8b5e21efa0a5f23bc5b89340d390" +PKG_ARCH="x86_64" +PKG_LICENSE="GPL" +PKG_SITE="https://www.videolan.org/developers/x265.html" +PKG_URL="https://bitbucket.org/multicoreware/x265_git/get/${PKG_VERSION}.tar.bz2" +PKG_DEPENDS_TARGET="toolchain" +PKG_LONGDESC="x265 is a H.265/HEVC video encoder application library" +PKG_TOOLCHAIN="make" + +pre_configure_target() { + LDFLAGS+=" -ldl" + ${CMAKE} -G "Unix Makefiles" ./source +} diff --git a/packages/addons/addon-depends/hidapi/package.mk b/packages/addons/addon-depends/hidapi/package.mk new file mode 100644 index 0000000000..fa03c4b281 --- /dev/null +++ b/packages/addons/addon-depends/hidapi/package.mk @@ -0,0 +1,12 @@ +# SPDX-License-Identifier: GPL-2.0-only +# Copyright (C) 2023-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="hidapi" +PKG_VERSION="0.15.0" +PKG_SHA256="5d84dec684c27b97b921d2f3b73218cb773cf4ea915caee317ac8fc73cef8136" +PKG_LICENSE="HIDAPI-orig" +PKG_SITE="http://libusb.info/" +PKG_URL="https://github.com/libusb/hidapi/archive/refs/tags/hidapi-${PKG_VERSION}.tar.gz" +PKG_DEPENDS_TARGET="toolchain libusb" +PKG_LONGDESC="HIDAPI is a multi-platform library which allows an application to interface with USB and Bluetooth HID-Class devices." +PKG_TOOLCHAIN="cmake" diff --git a/packages/addons/addon-depends/polkit/package.mk b/packages/addons/addon-depends/polkit/package.mk new file mode 100644 index 0000000000..3ac6e078a5 --- /dev/null +++ b/packages/addons/addon-depends/polkit/package.mk @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: GPL-2.0-only +# Copyright (C) 2023-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="polkit" +PKG_VERSION="126" +PKG_SHA256="2814a7281989f6baa9e57bd33bbc5e148827e2721ccef22aaf28ab2b376068e8" +PKG_LICENSE="GPL" +PKG_SITE="https://polkit.pages.freedesktop.org/polkit" +PKG_URL="https://github.com/polkit-org/polkit/archive/${PKG_VERSION}.tar.gz" +PKG_DEPENDS_TARGET="toolchain expat glib systemd" +PKG_LONGDESC="polkit provides an authorization API intended to be used by privileged programs offering service to unprivileged programs" +PKG_BUILD_FLAGS="-sysroot" + +PKG_MESON_OPTS_TARGET="-Dauthfw=shadow \ + -Dsession_tracking=logind \ + -Dlibs-only=true \ + -Dintrospection=false" diff --git a/packages/addons/addon-depends/system-tools-depends/depends/oniguruma/package.mk b/packages/addons/addon-depends/system-tools-depends/depends/oniguruma/package.mk new file mode 100644 index 0000000000..9810f94583 --- /dev/null +++ b/packages/addons/addon-depends/system-tools-depends/depends/oniguruma/package.mk @@ -0,0 +1,11 @@ +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="oniguruma" +PKG_VERSION="6.9.10" +PKG_SHA256="2a5cfc5ae259e4e97f86b68dfffc152cdaffe94e2060b770cb827238d769fc05" +PKG_LICENSE="BSD" +PKG_SITE="https://github.com/kkos/oniguruma" +PKG_URL="https://github.com/kkos/oniguruma/releases/download/v${PKG_VERSION}/onig-${PKG_VERSION}.tar.gz" +PKG_DEPENDS_TARGET="toolchain" +PKG_LONGDESC="A regular expression library" diff --git a/packages/addons/addon-depends/system-tools-depends/jq/package.mk b/packages/addons/addon-depends/system-tools-depends/jq/package.mk new file mode 100644 index 0000000000..18718ff860 --- /dev/null +++ b/packages/addons/addon-depends/system-tools-depends/jq/package.mk @@ -0,0 +1,18 @@ +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) + +PKG_NAME="jq" +PKG_VERSION="1.8.1" +PKG_SHA256="2be64e7129cecb11d5906290eba10af694fb9e3e7f9fc208a311dc33ca837eb0" +PKG_LICENSE="MIT" +PKG_SITE="https://jqlang.github.io/jq/" +PKG_URL="https://github.com/jqlang/jq/releases/download/${PKG_NAME}-${PKG_VERSION}/${PKG_NAME}-${PKG_VERSION}.tar.gz" +PKG_DEPENDS_TARGET="toolchain oniguruma" +PKG_LONGDESC="Command-line JSON processor" +PKG_BUILD_FLAGS="-sysroot" + +PKG_CONFIGURE_OPTS_TARGET="--disable-shared \ + --enable-static \ + --disable-docs \ + --disable-maintainer-mode \ + --disable-valgrind" diff --git a/projects/ArchR/packages/compat/box86/package.mk b/projects/ArchR/packages/compat/box86/package.mk index e4c9eafdee..4d32d1157e 100644 --- a/projects/ArchR/packages/compat/box86/package.mk +++ b/projects/ArchR/packages/compat/box86/package.mk @@ -6,7 +6,7 @@ PKG_VERSION="0579f8b9c47d87d700724f4cce559b06cbd2b0f5" PKG_LICENSE="MIT" PKG_SITE="https://github.com/ptitSeb/box86" PKG_URL="${PKG_SITE}.git" -PKG_DEPENDS_TARGET="toolchain ncurses SDL2 libXdmcp libXft libXcomposite cups libogg" +PKG_DEPENDS_TARGET="toolchain ncurses SDL2 libXdmcp libXft libXcomposite libogg" PKG_LONGDESC="Box86 lets you run x86 Linux programs (such as games) on non-x86 Linux systems, like ARM." PKG_TOOLCHAIN="cmake" diff --git a/projects/ArchR/packages/graphics/gtk3/package.mk b/projects/ArchR/packages/graphics/gtk3/package.mk index d8fe044868..4a3d2ef9bb 100644 --- a/projects/ArchR/packages/graphics/gtk3/package.mk +++ b/projects/ArchR/packages/graphics/gtk3/package.mk @@ -1,13 +1,39 @@ -# SPDX-License-Identifier: GPL-2.0 -# Copyright (C) 2024-present ArchR (https://github.com/archr-linux/Arch-R) +# SPDX-License-Identifier: GPL-2.0-or-later +# Copyright (C) 2017 Escalade +# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) +# Copyright (C) 2026 ArchR (standalone - original sourced from packages/addons/) -. ${ROOT}/packages/addons/addon-depends/chrome-depends/gtk3/package.mk +PKG_NAME="gtk3" +PKG_VERSION="3.24.42" +PKG_SHA256="50f89f615092d4dd01bbd759719f8bd380e5f149f6fd78a94725e2de112377e2" +PKG_LICENSE="LGPL" +PKG_SITE="https://www.gtk.org/" +PKG_URL="https://ftp.gnome.org/pub/gnome/sources/gtk+/${PKG_VERSION:0:4}/gtk+-${PKG_VERSION}.tar.xz" +PKG_DEPENDS_TARGET="toolchain at-spi2-atk atk cairo gdk-pixbuf glib libX11 libXi libXrandr libepoxy pango libxkbcommon wayland wayland-protocols libpng tiff libjpeg-turbo libffi glew" +PKG_DEPENDS_CONFIG="libXft pango gdk-pixbuf shared-mime-info" +PKG_LONGDESC="A library for creating graphical user interfaces for the X Window System." -PKG_DEPENDS_TARGET="toolchain at-spi2-atk atk cairo gdk-pixbuf glib libX11 libXi libXrandr libepoxy pango libxkbcommon wayland wayland-protocols libepoxy libpng tiff libjpeg-turbo libffi glew" +PKG_MESON_OPTS_TARGET="-Dbroadway_backend=false \ + -Dcloudproviders=false \ + -Dcolord=no \ + -Ddemos=false \ + -Dexamples=false \ + -Dgtk_doc=false \ + -Dintrospection=false \ + -Dman=false \ + -Dprint_backends=file,lpr \ + -Dquartz_backend=false \ + -Dtests=false \ + -Dwayland_backend=true \ + -Dwin32_backend=false \ + -Dxinerama=no \ + -Dbuiltin_immodules=yes \ + -Dx11_backend=true" -unset PKG_BUILD_FLAGS - -PKG_MESON_OPTS_TARGET="${PKG_MESON_OPTS_TARGET/-Dwayland_backend=false/-Dwayland_backend=true}" +pre_configure_target() { + export LD_LIBRARY_PATH="${TOOLCHAIN}/lib:${LD_LIBRARY_PATH}" + export GLIB_COMPILE_RESOURCES=glib-compile-resources GLIB_MKENUMS=glib-mkenums GLIB_GENMARSHAL=glib-genmarshal +} post_makeinstall_target() { ${TOOLCHAIN}/bin/glib-compile-schemas ${INSTALL}/usr/share/glib-2.0/schemas diff --git a/projects/ArchR/packages/sysutils/btrfs-progs/package.mk b/projects/ArchR/packages/sysutils/btrfs-progs/package.mk index b9a1c45639..73d1d8bc16 100644 --- a/projects/ArchR/packages/sysutils/btrfs-progs/package.mk +++ b/projects/ArchR/packages/sysutils/btrfs-progs/package.mk @@ -1,10 +1,27 @@ # SPDX-License-Identifier: GPL-2.0 -# Copyright (C) 2024-present ArchR (https://github.com/archr-linux/Arch-R) - -. ${ROOT}/packages/addons/tools/btrfs-progs/package.mk +# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) +# Copyright (C) 2026 ArchR (standalone - original sourced from packages/addons/) +PKG_NAME="btrfs-progs" +PKG_VERSION="6.14" +PKG_SHA256="5a85b791f0f32a4994e864ac4cb7abccce08e56db3010a1855ad0edeebc70b4c" PKG_ARCH="aarch64" -PKG_CONFIGURE_OPTS_TARGET+=" --disable-zstd" +PKG_LICENSE="GPL" +PKG_SITE="https://btrfs.readthedocs.io/" +PKG_URL="https://github.com/kdave/btrfs-progs/archive/v${PKG_VERSION}.tar.gz" +PKG_DEPENDS_TARGET="toolchain util-linux zlib systemd lzo" +PKG_LONGDESC="Tools for the btrfs filesystem" +PKG_TOOLCHAIN="configure" + +PKG_CONFIGURE_OPTS_TARGET="--disable-backtrace \ + --disable-convert \ + --disable-documentation \ + --disable-python \ + --disable-zstd" + +pre_configure_target() { + ./autogen.sh +} makeinstall_target() { mkdir -p ${INSTALL}/usr/sbin diff --git a/projects/ArchR/packages/sysutils/usb-modeswitch/package.mk b/projects/ArchR/packages/sysutils/usb-modeswitch/package.mk index 52e7984d8f..b3f292654c 100644 --- a/projects/ArchR/packages/sysutils/usb-modeswitch/package.mk +++ b/projects/ArchR/packages/sysutils/usb-modeswitch/package.mk @@ -1,5 +1,12 @@ -# Copyright (C) 2024-present ArchR (https://github.com/archr-linux/Arch-R) +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) +# Copyright (C) 2026 ArchR (standalone - original sourced from packages/addons/) -. ${ROOT}/packages/addons/addon-depends/system-tools-depends/usb-modeswitch/package.mk - -unset PKG_BUILD_FLAGS +PKG_NAME="usb-modeswitch" +PKG_VERSION="2.6.2" +PKG_SHA256="f7abd337784a9d1bd39cb8a587518aff6f2a43d916145eafd80b1b8b7146db66" +PKG_LICENSE="GPL" +PKG_SITE="http://www.draisberghof.de/usb_modeswitch/" +PKG_URL="http://www.draisberghof.de/usb_modeswitch/${PKG_NAME}-${PKG_VERSION}.tar.bz2" +PKG_DEPENDS_TARGET="toolchain libusb" +PKG_LONGDESC="USB_ModeSwitch - Handling Mode-Switching USB Devices on Linux" diff --git a/projects/ArchR/packages/tools/sound/mpg123/package.mk b/projects/ArchR/packages/tools/sound/mpg123/package.mk index 602b41a20c..384d839b77 100644 --- a/projects/ArchR/packages/tools/sound/mpg123/package.mk +++ b/projects/ArchR/packages/tools/sound/mpg123/package.mk @@ -1,14 +1,18 @@ # SPDX-License-Identifier: GPL-2.0 -# Copyright (C) 2024-present ArchR (https://github.com/archr-linux/Arch-R) +# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) +# Copyright (C) 2026 ArchR (https://github.com/archr-linux/Arch-R) +# Standalone: original sourced from packages/addons/ which is gitignored -. ${ROOT}/packages/addons/addon-depends/multimedia-tools-depends/mpg123/package.mk - -PKG_DEPENDS_TARGET+=" SDL2 openal-soft" +PKG_NAME="mpg123" +PKG_VERSION="1.33.0" +PKG_SHA256="2290e3aede6f4d163e1a17452165af33caad4b5f0948f99429cfa2d8385faa9d" +PKG_LICENSE="LGPLv2" +PKG_SITE="https://www.mpg123.org/" +PKG_URL="https://downloads.sourceforge.net/sourceforge/mpg123/mpg123-${PKG_VERSION}.tar.bz2" +PKG_DEPENDS_TARGET="toolchain alsa-lib SDL2 openal-soft" +PKG_LONGDESC="A console based real time MPEG Audio Player for Layer 1, 2 and 3." PKG_BUILD_FLAGS="+pic" -if [ "${PIPEWIRE}" = yes ]; then - PKG_DEPENDS_TARGET="${PKG_DEPENDS_TARGET} pipewire" - PKG_CONFIGURE_OPTS_TARGET="${PKG_CONFIGURE_OPTS_TARGET} --with-default-audio=pulse --with-audio=pulse" +if [ "${PIPEWIRE_SUPPORT}" = "yes" ]; then + PKG_DEPENDS_TARGET+=" pipewire" fi - -unset PKG_CONFIGURE_OPTS_TARGET