From b40cfcaa41f1ca26cdcf659273179249e4c7b152 Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Sun, 1 Dec 2019 09:17:58 +0100 Subject: [PATCH 01/30] build: remove dead variable INSTALL_INIT --- config/path | 1 - 1 file changed, 1 deletion(-) diff --git a/config/path b/config/path index 480069ca55..bf088f6684 100644 --- a/config/path +++ b/config/path @@ -57,7 +57,6 @@ FAKEROOT_SCRIPT=$BUILD/.fakeroot if [ -z "$INSTALL" ]; then INSTALL=$BUILD/image/system fi -INSTALL_INIT=$BUILD/image/initramfs/root-image . config/sources From 4cca6adcb8a754fbd5ca6dd96bf04b7f14674206 Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Tue, 3 Dec 2019 11:10:19 +0100 Subject: [PATCH 02/30] build: remove dead variabe STAMPS_NOARCH --- .gitignore | 1 - Makefile | 2 +- config/path | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 96833ce134..c268f21730 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,6 @@ # automatically downloaded source files /sources/ -/.stamps/ # prebuild target binarys to provide /target/ diff --git a/Makefile b/Makefile index 838cfd3a84..9de5e6c308 100644 --- a/Makefile +++ b/Makefile @@ -21,4 +21,4 @@ distclean: rm -rf ./.ccache ./$(BUILD_DIRS) src-pkg: - tar cvJf sources.tar.xz sources .stamps + tar cvJf sources.tar.xz sources diff --git a/config/path b/config/path index bf088f6684..74f2aade4b 100644 --- a/config/path +++ b/config/path @@ -33,7 +33,6 @@ THREAD_CONTROL=${BUILD}/.threads TARGET_ADDONS="$TARGET_IMG/$ADDONS/$ADDON_PATH" ADDON_BUILD="$BUILD/$ADDONS/$1" -STAMPS_NOARCH=.stamps STAMPS=$BUILD/.stamps STAMPS_INSTALL=$BUILD/image/.stamps DOCS=DOCS From 9c228ecd94bed0bd52ead15a230abeb5a53522e6 Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Tue, 3 Dec 2019 14:19:16 +0100 Subject: [PATCH 03/30] linux: remove PKG_DEPENDS_INIT There is no linux:init. --- packages/linux/package.mk | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/linux/package.mk b/packages/linux/package.mk index e15950ad30..e4ded8cbf6 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -7,7 +7,6 @@ PKG_LICENSE="GPL" PKG_SITE="http://www.kernel.org" PKG_DEPENDS_HOST="ccache:host rsync:host openssl:host" PKG_DEPENDS_TARGET="toolchain linux:host cpio:host kmod:host xz:host wireless-regdb keyutils $KERNEL_EXTRA_DEPENDS_TARGET" -PKG_DEPENDS_INIT="toolchain" PKG_NEED_UNPACK="$LINUX_DEPENDS $(get_pkg_directory busybox)" PKG_LONGDESC="This package contains a precompiled kernel image and the modules." PKG_IS_KERNEL_PKG="yes" From f8c8c9a3044b8c494adb1220127d8c0b67a4e12a Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Sat, 7 Dec 2019 12:16:04 +0100 Subject: [PATCH 04/30] build: use $INSTALL in *makeinstall_target() functions Don't hardcode .install_pkg here. --- .../addons/addon-depends/chrome-depends/unclutter/package.mk | 4 ++-- .../multimedia-tools-depends/opencaster/package.mk | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/addons/addon-depends/chrome-depends/unclutter/package.mk b/packages/addons/addon-depends/chrome-depends/unclutter/package.mk index 22b3251a23..c7809603d5 100644 --- a/packages/addons/addon-depends/chrome-depends/unclutter/package.mk +++ b/packages/addons/addon-depends/chrome-depends/unclutter/package.mk @@ -16,6 +16,6 @@ make_target() { } makeinstall_target() { - mkdir -p .install_pkg/usr/bin - install -m 755 unclutter .install_pkg/usr/bin/ + mkdir -p $INSTALL/usr/bin + install -m 755 unclutter $INSTALL/usr/bin/ } diff --git a/packages/addons/addon-depends/multimedia-tools-depends/opencaster/package.mk b/packages/addons/addon-depends/multimedia-tools-depends/opencaster/package.mk index 5deff8ae96..8fd94c3376 100644 --- a/packages/addons/addon-depends/multimedia-tools-depends/opencaster/package.mk +++ b/packages/addons/addon-depends/multimedia-tools-depends/opencaster/package.mk @@ -15,5 +15,5 @@ pre_configure_target() { } pre_makeinstall_target() { - mkdir -p $PKG_BUILD/.install_pkg + mkdir -p $INSTALL } From 267d57d7f36bedf31978eb5b5b515af678dd7fa0 Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Sat, 30 Nov 2019 12:31:03 +0100 Subject: [PATCH 05/30] build: add and use PKG_INSTALL Set it depending on the target, so there's no need to hardcode $PKG_BUILD/.install_[pkg|init] in multiple places. --- config/functions | 14 ++++++++++---- packages/addons/service/lcdd/package.mk | 6 +++--- packages/addons/service/minidlna/package.mk | 2 +- packages/addons/service/tinc/package.mk | 2 +- packages/addons/service/ttyd/package.mk | 2 +- packages/security/nss/package.mk | 4 ++-- scripts/build | 9 ++------- scripts/install | 6 ++---- 8 files changed, 22 insertions(+), 23 deletions(-) diff --git a/config/functions b/config/functions index e7d7002a85..62fd7b7698 100644 --- a/config/functions +++ b/config/functions @@ -1027,6 +1027,12 @@ source_package() { fi PKG_BUILD="$BUILD/${PKG_NAME}-${PKG_VERSION}" + + if [[ "${1}" =~ :target$ || "${1//:/}" = "${1}" ]]; then + PKG_INSTALL="${PKG_BUILD}/.install_pkg" + elif [[ "${1}" =~ :init$ ]]; then + PKG_INSTALL="${PKG_BUILD}/.install_init" + fi fi build_with_debug && BUILD_WITH_DEBUG="yes" || BUILD_WITH_DEBUG="no" @@ -1171,17 +1177,17 @@ install_binary_addon() { local addon_id="$1" addon_so mkdir -p $ADDON_BUILD/$addon_id/ - cp -R $PKG_BUILD/.install_pkg/usr/share/$MEDIACENTER/addons/$addon_id/* $ADDON_BUILD/$addon_id/ + cp -R $PKG_INSTALL/usr/share/$MEDIACENTER/addons/$addon_id/* $ADDON_BUILD/$addon_id/ addon_so=$(xmlstarlet sel -t -v "/addon/extension/@library_linux" $ADDON_BUILD/$addon_id/addon.xml || :) if [ -n "$addon_so" ]; then - cp -L $PKG_BUILD/.install_pkg/usr/lib/$MEDIACENTER/addons/$addon_id/$addon_so $ADDON_BUILD/$addon_id/ + cp -L $PKG_INSTALL/usr/lib/$MEDIACENTER/addons/$addon_id/$addon_so $ADDON_BUILD/$addon_id/ chmod +x $ADDON_BUILD/$addon_id/$addon_so fi - if [ -d $PKG_BUILD/.install_pkg/usr/lib/kernel-overlays/$addon_id ] ; then + if [ -d $PKG_INSTALL/usr/lib/kernel-overlays/$addon_id ] ; then mkdir -p $ADDON_BUILD/$addon_id/kernel-overlay - cp -PR $PKG_BUILD/.install_pkg/usr/lib/kernel-overlays/$addon_id/* $ADDON_BUILD/$addon_id/kernel-overlay + cp -PR $PKG_INSTALL/usr/lib/kernel-overlays/$addon_id/* $ADDON_BUILD/$addon_id/kernel-overlay fi } diff --git a/packages/addons/service/lcdd/package.mk b/packages/addons/service/lcdd/package.mk index 456bec317d..2cc6ed2e11 100644 --- a/packages/addons/service/lcdd/package.mk +++ b/packages/addons/service/lcdd/package.mk @@ -40,9 +40,9 @@ addon() { cp -PR $PKG_DIR/resources $ADDON_BUILD/$PKG_ADDON_ID - cp -PR $PKG_BUILD/.install_pkg/etc/LCDd.conf $ADDON_BUILD/$PKG_ADDON_ID/config/ - cp -PR $PKG_BUILD/.install_pkg/usr/lib $ADDON_BUILD/$PKG_ADDON_ID/lib/ - cp -PR $PKG_BUILD/.install_pkg/usr/sbin $ADDON_BUILD/$PKG_ADDON_ID/bin/ + cp -PR $PKG_INSTALL/etc/LCDd.conf $ADDON_BUILD/$PKG_ADDON_ID/config/ + cp -PR $PKG_INSTALL/usr/lib $ADDON_BUILD/$PKG_ADDON_ID/lib/ + cp -PR $PKG_INSTALL/usr/sbin $ADDON_BUILD/$PKG_ADDON_ID/bin/ cp -L $(get_build_dir serdisplib)/.install_pkg/usr/lib/libserdisp.so.1 $ADDON_BUILD/$PKG_ADDON_ID/lib/ diff --git a/packages/addons/service/minidlna/package.mk b/packages/addons/service/minidlna/package.mk index 7f7a30258e..d1f0cd847d 100644 --- a/packages/addons/service/minidlna/package.mk +++ b/packages/addons/service/minidlna/package.mk @@ -35,7 +35,7 @@ pre_configure_target() { addon() { mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin - cp -P $PKG_BUILD/.install_pkg/usr/sbin/minidlnad $ADDON_BUILD/$PKG_ADDON_ID/bin + cp -P $PKG_INSTALL/usr/sbin/minidlnad $ADDON_BUILD/$PKG_ADDON_ID/bin mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/lib cp -p $(get_build_dir libexif)/.install_pkg/usr/lib/libexif.so.12 $ADDON_BUILD/$PKG_ADDON_ID/lib diff --git a/packages/addons/service/tinc/package.mk b/packages/addons/service/tinc/package.mk index 795d1a16bd..d3fafb024e 100644 --- a/packages/addons/service/tinc/package.mk +++ b/packages/addons/service/tinc/package.mk @@ -32,6 +32,6 @@ make_target() { addon() { mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin - cp $PKG_BUILD/.install_pkg/usr/sbin/* \ + cp $PKG_INSTALL/usr/sbin/* \ $ADDON_BUILD/$PKG_ADDON_ID/bin } diff --git a/packages/addons/service/ttyd/package.mk b/packages/addons/service/ttyd/package.mk index 588adefb71..2ba739fa64 100644 --- a/packages/addons/service/ttyd/package.mk +++ b/packages/addons/service/ttyd/package.mk @@ -20,7 +20,7 @@ PKG_ADDON_TYPE="xbmc.service" addon() { mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin - cp -P $PKG_BUILD/.install_pkg/usr/bin/ttyd $ADDON_BUILD/$PKG_ADDON_ID/bin + cp -P $PKG_INSTALL/usr/bin/ttyd $ADDON_BUILD/$PKG_ADDON_ID/bin mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/lib cp -p $(get_build_dir json-c)/.install_pkg/usr/lib/libjson-c.so $ADDON_BUILD/$PKG_ADDON_ID/lib diff --git a/packages/security/nss/package.mk b/packages/security/nss/package.mk index e81fc48214..60cf565857 100644 --- a/packages/security/nss/package.mk +++ b/packages/security/nss/package.mk @@ -75,6 +75,6 @@ makeinstall_target() { cp -RL dist/{public,private}/nss/* $SYSROOT_PREFIX/usr/include/nss cp -L dist/Linux*/lib/pkgconfig/nss.pc $SYSROOT_PREFIX/usr/lib/pkgconfig - mkdir -p .install_pkg/usr/lib - cp -PL dist/Linux*/lib/*.so .install_pkg/usr/lib + mkdir -p $PKG_INSTALL/usr/lib + cp -PL dist/Linux*/lib/*.so $PKG_INSTALL/usr/lib } diff --git a/scripts/build b/scripts/build index cd75277be5..08b1bb7811 100755 --- a/scripts/build +++ b/scripts/build @@ -115,13 +115,8 @@ build_msg "CLR_TOOLCHAIN" "TOOLCHAIN" "${PKG_TOOLCHAIN}${_auto_toolchain}" setup_toolchain ${TARGET} ${PKG_TOOLCHAIN} # configure install directory -if [ "${TARGET}" = "target" ]; then - INSTALL="${PKG_BUILD}/.install_pkg" -elif [ "${TARGET}" = "init" ]; then - INSTALL="${PKG_BUILD}/.install_init" -else - unset INSTALL -fi +[ -n "${PKG_INSTALL}" ] && INSTALL="${PKG_INSTALL}" || unset INSTALL + # remove previous install files if [ -n "${INSTALL}" -a -d "${INSTALL}" ]; then rm -rf "${INSTALL}" diff --git a/scripts/install b/scripts/install index d0a22ac58e..2c0aec42e7 100755 --- a/scripts/install +++ b/scripts/install @@ -137,10 +137,8 @@ if [ "${TARGET}" = "target" ] ; then pkg_call_exists pre_install && pkg_call pre_install fi -if [ "${TARGET}" = "target" -a -d ${PKG_BUILD}/.install_pkg ]; then - cp -PR ${PKG_BUILD}/.install_pkg/* ${INSTALL} -elif [ "${TARGET}" = "init" -a -d ${PKG_BUILD}/.install_init ]; then - cp -PR ${PKG_BUILD}/.install_init/* ${INSTALL} +if [ -n "${PKG_INSTALL}" -a -d "${PKG_INSTALL}" ]; then + cp -PR ${PKG_INSTALL}/* ${INSTALL} fi if [ "${TARGET}" = "target" ] ; then From 3c8862a70180df70b3a7776835e1bc7fd293a854 Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Sat, 30 Nov 2019 12:31:03 +0100 Subject: [PATCH 06/30] build: add and use get_install_dir() Don't hardcode get_build_dir()/.install_pkg in multiple places. --- config/functions | 6 +++++- packages/addons/browser/chrome/package.mk | 10 +++++----- packages/addons/driver/sapphire/package.mk | 2 +- packages/addons/service/emby/package.mk | 4 ++-- packages/addons/service/emby4/package.mk | 4 ++-- packages/addons/service/lcdd/package.mk | 2 +- packages/addons/service/minidlna/package.mk | 4 ++-- packages/addons/service/mpd/package.mk | 4 ++-- packages/addons/service/pcscd/package.mk | 2 +- packages/addons/service/snapclient/package.mk | 2 +- packages/addons/service/touchscreen/package.mk | 2 +- packages/addons/service/ttyd/package.mk | 4 ++-- packages/addons/service/tvheadend42/package.mk | 2 +- packages/addons/service/vdr-addon/package.mk | 2 +- packages/addons/tools/dotnet-runtime/package.mk | 16 ++++++++-------- .../addons/tools/multimedia-tools/package.mk | 4 ++-- packages/addons/tools/system-tools/package.mk | 14 +++++++------- packages/sysutils/dosfstools/package.mk | 2 +- 18 files changed, 45 insertions(+), 41 deletions(-) diff --git a/config/functions b/config/functions index 62fd7b7698..17b248986d 100644 --- a/config/functions +++ b/config/functions @@ -796,6 +796,10 @@ get_build_dir() { fi } +get_install_dir() { + get_pkg_variable "$1" PKG_INSTALL +} + get_pkg_version() { get_pkg_variable "$1" PKG_VERSION } @@ -1133,7 +1137,7 @@ get_module_dir() { if [ -n "${_CACHED_KERNEL_MODULE_DIR}" ]; then echo "${_CACHED_KERNEL_MODULE_DIR}" else - basename $(ls -d $(get_build_dir linux)/.install_pkg/usr/lib/kernel-overlays/base/lib/modules/*) + basename $(ls -d $(get_install_dir linux)/usr/lib/kernel-overlays/base/lib/modules/*) fi } diff --git a/packages/addons/browser/chrome/package.mk b/packages/addons/browser/chrome/package.mk index 5e3d68a17b..1b5fbd7166 100644 --- a/packages/addons/browser/chrome/package.mk +++ b/packages/addons/browser/chrome/package.mk @@ -38,14 +38,14 @@ addon() { cp -PL $(get_build_dir atk)/.$TARGET_NAME/atk/libatk-1.0.so.0 $ADDON_BUILD/$PKG_ADDON_ID/lib # cairo - cp -PL $(get_build_dir cairo)/.install_pkg/usr/lib/libcairo-gobject.so.2 $ADDON_BUILD/$PKG_ADDON_ID/lib - cp -PL $(get_build_dir cairo)/.install_pkg/usr/lib/libcairo.so.2 $ADDON_BUILD/$PKG_ADDON_ID/lib + cp -PL $(get_install_dir cairo)/usr/lib/libcairo-gobject.so.2 $ADDON_BUILD/$PKG_ADDON_ID/lib + cp -PL $(get_install_dir cairo)/usr/lib/libcairo.so.2 $ADDON_BUILD/$PKG_ADDON_ID/lib # gdk-pixbuf - cp -PL $(get_build_dir gdk-pixbuf)/.install_pkg/usr/lib/libgdk_pixbuf-2.0.so.0 $ADDON_BUILD/$PKG_ADDON_ID/lib + cp -PL $(get_install_dir gdk-pixbuf)/usr/lib/libgdk_pixbuf-2.0.so.0 $ADDON_BUILD/$PKG_ADDON_ID/lib # gdk-pixbuf modules - cp -PL $(get_build_dir gdk-pixbuf)/.install_pkg/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/* $ADDON_BUILD/$PKG_ADDON_ID/gdk-pixbuf-modules + cp -PL $(get_install_dir gdk-pixbuf)/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/* $ADDON_BUILD/$PKG_ADDON_ID/gdk-pixbuf-modules # gtk3 gdk3 cp -PL $(get_build_dir gtk3)/.$TARGET_NAME/gtk/.libs/libgtk-3.so.0 $ADDON_BUILD/$PKG_ADDON_ID/lib @@ -97,7 +97,7 @@ addon() { cp -PL $(get_build_dir pango)/.$TARGET_NAME/pango/libpangoft2-1.0.so.0 $ADDON_BUILD/$PKG_ADDON_ID/lib # unclutter - cp -P $(get_build_dir unclutter)/.install_pkg/usr/bin/unclutter $ADDON_BUILD/$PKG_ADDON_ID/bin + cp -P $(get_install_dir unclutter)/usr/bin/unclutter $ADDON_BUILD/$PKG_ADDON_ID/bin } post_install_addon() { diff --git a/packages/addons/driver/sapphire/package.mk b/packages/addons/driver/sapphire/package.mk index fa9765db4d..0c8ddf28a6 100644 --- a/packages/addons/driver/sapphire/package.mk +++ b/packages/addons/driver/sapphire/package.mk @@ -60,5 +60,5 @@ addon() { cp $PKG_BUILD/sapphire_keymap.sh $ADDON_BUILD/$PKG_ADDON_ID/bin # bash - cp $(get_build_dir bash)/.install_pkg/usr/bin/bash $ADDON_BUILD/$PKG_ADDON_ID/bin + cp $(get_install_dir bash)/usr/bin/bash $ADDON_BUILD/$PKG_ADDON_ID/bin } diff --git a/packages/addons/service/emby/package.mk b/packages/addons/service/emby/package.mk index 88ff40914f..3b56918423 100644 --- a/packages/addons/service/emby/package.mk +++ b/packages/addons/service/emby/package.mk @@ -28,8 +28,8 @@ addon() { -d $ADDON_BUILD/$PKG_ADDON_ID/emby mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/lib - cp -L $(get_build_dir imagemagick)/.install_pkg/usr/lib/libMagickCore-7.Q16HDRI.so.? \ + cp -L $(get_install_dir imagemagick)/usr/lib/libMagickCore-7.Q16HDRI.so.? \ $ADDON_BUILD/$PKG_ADDON_ID/lib/ - cp -L $(get_build_dir imagemagick)/.install_pkg/usr/lib/libMagickWand-7.Q16HDRI.so \ + cp -L $(get_install_dir imagemagick)/usr/lib/libMagickWand-7.Q16HDRI.so \ $ADDON_BUILD/$PKG_ADDON_ID/lib/CORE_RL_Wand_.so } diff --git a/packages/addons/service/emby4/package.mk b/packages/addons/service/emby4/package.mk index 0472878aad..c1676b2fb9 100644 --- a/packages/addons/service/emby4/package.mk +++ b/packages/addons/service/emby4/package.mk @@ -28,8 +28,8 @@ addon() { -d $ADDON_BUILD/$PKG_ADDON_ID/emby mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/lib - cp -L $(get_build_dir imagemagick)/.install_pkg/usr/lib/libMagickCore-7.Q16HDRI.so.? \ + cp -L $(get_install_dir imagemagick)/usr/lib/libMagickCore-7.Q16HDRI.so.? \ $ADDON_BUILD/$PKG_ADDON_ID/lib/ - cp -L $(get_build_dir imagemagick)/.install_pkg/usr/lib/libMagickWand-7.Q16HDRI.so \ + cp -L $(get_install_dir imagemagick)/usr/lib/libMagickWand-7.Q16HDRI.so \ $ADDON_BUILD/$PKG_ADDON_ID/lib/CORE_RL_Wand_.so } diff --git a/packages/addons/service/lcdd/package.mk b/packages/addons/service/lcdd/package.mk index 2cc6ed2e11..2b07071973 100644 --- a/packages/addons/service/lcdd/package.mk +++ b/packages/addons/service/lcdd/package.mk @@ -44,7 +44,7 @@ addon() { cp -PR $PKG_INSTALL/usr/lib $ADDON_BUILD/$PKG_ADDON_ID/lib/ cp -PR $PKG_INSTALL/usr/sbin $ADDON_BUILD/$PKG_ADDON_ID/bin/ - cp -L $(get_build_dir serdisplib)/.install_pkg/usr/lib/libserdisp.so.1 $ADDON_BUILD/$PKG_ADDON_ID/lib/ + cp -L $(get_install_dir serdisplib)/usr/lib/libserdisp.so.1 $ADDON_BUILD/$PKG_ADDON_ID/lib/ sed -e "s|^DriverPath=.*$|DriverPath=/storage/.kodi/addons/service.lcdd/lib/lcdproc/|" \ -e "s|^#Foreground=.*$|Foreground=no|" \ diff --git a/packages/addons/service/minidlna/package.mk b/packages/addons/service/minidlna/package.mk index d1f0cd847d..4649167159 100644 --- a/packages/addons/service/minidlna/package.mk +++ b/packages/addons/service/minidlna/package.mk @@ -29,7 +29,7 @@ PKG_CONFIGURE_OPTS_TARGET="--disable-static \ --with-os-url="https://libreelec.tv"" pre_configure_target() { - export LDFLAGS="$LDFLAGS -L$(get_build_dir ffmpeg)/.install_pkg/usr/lib" + export LDFLAGS="$LDFLAGS -L$(get_install_dir ffmpeg)/usr/lib" export LIBS="$LIBS -lid3tag -lFLAC -logg -lz -lpthread -ldl -lm" } @@ -38,5 +38,5 @@ addon() { cp -P $PKG_INSTALL/usr/sbin/minidlnad $ADDON_BUILD/$PKG_ADDON_ID/bin mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/lib - cp -p $(get_build_dir libexif)/.install_pkg/usr/lib/libexif.so.12 $ADDON_BUILD/$PKG_ADDON_ID/lib + cp -p $(get_install_dir libexif)/usr/lib/libexif.so.12 $ADDON_BUILD/$PKG_ADDON_ID/lib } diff --git a/packages/addons/service/mpd/package.mk b/packages/addons/service/mpd/package.mk index 00aecb58a2..048a9f3d96 100644 --- a/packages/addons/service/mpd/package.mk +++ b/packages/addons/service/mpd/package.mk @@ -104,6 +104,6 @@ addon() { cp -P $(get_build_dir mpd-mpc)/.$TARGET_NAME/mpc $ADDON_BUILD/$PKG_ADDON_ID/bin mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/lib - cp -p $(get_build_dir libmpdclient)/.install_pkg/usr/lib/libmpdclient.so $ADDON_BUILD/$PKG_ADDON_ID/lib - cp -p $(get_build_dir libmpdclient)/.install_pkg/usr/lib/libmpdclient.so.2 $ADDON_BUILD/$PKG_ADDON_ID/lib + cp -p $(get_install_dir libmpdclient)/usr/lib/libmpdclient.so $ADDON_BUILD/$PKG_ADDON_ID/lib + cp -p $(get_install_dir libmpdclient)/usr/lib/libmpdclient.so.2 $ADDON_BUILD/$PKG_ADDON_ID/lib } diff --git a/packages/addons/service/pcscd/package.mk b/packages/addons/service/pcscd/package.mk index 82dd30e55e..4bdf2ffc39 100644 --- a/packages/addons/service/pcscd/package.mk +++ b/packages/addons/service/pcscd/package.mk @@ -22,7 +22,7 @@ PKG_ADDON_TYPE="xbmc.service" addon() { mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin/ - cp -Pa $(get_build_dir pcsc-lite)/.install_pkg/usr/sbin/pcscd $ADDON_BUILD/$PKG_ADDON_ID/bin/pcscd.bin + cp -Pa $(get_install_dir pcsc-lite)/usr/sbin/pcscd $ADDON_BUILD/$PKG_ADDON_ID/bin/pcscd.bin mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/drivers/serial cp -Pa $(get_build_dir ccid)/.$TARGET_NAME/src/.libs/libccidtwin.so $ADDON_BUILD/$PKG_ADDON_ID/drivers/serial diff --git a/packages/addons/service/snapclient/package.mk b/packages/addons/service/snapclient/package.mk index 965369dc35..c9a4de2027 100644 --- a/packages/addons/service/snapclient/package.mk +++ b/packages/addons/service/snapclient/package.mk @@ -23,6 +23,6 @@ addon() { "$ADDON_BUILD/$PKG_ADDON_ID/bin" mkdir -p "$ADDON_BUILD/$PKG_ADDON_ID/lib" - cp "$(get_build_dir alsa-plugins)/.install_pkg/usr/lib/alsa"/*.so \ + cp "$(get_install_dir alsa-plugins)/usr/lib/alsa"/*.so \ "$ADDON_BUILD/$PKG_ADDON_ID/lib" } diff --git a/packages/addons/service/touchscreen/package.mk b/packages/addons/service/touchscreen/package.mk index cb8e460ccb..b640efdef2 100644 --- a/packages/addons/service/touchscreen/package.mk +++ b/packages/addons/service/touchscreen/package.mk @@ -30,6 +30,6 @@ addon() { sed -e "s|@ADDON_VERSION@|$ADDON_VERSION|g" \ -i $ADDON_BUILD/$PKG_ADDON_ID/addon.xml - cp $(get_build_dir tslib)/.install_pkg/usr/bin/* $ADDON_BUILD/$PKG_ADDON_ID/bin + cp $(get_install_dir tslib)/usr/bin/* $ADDON_BUILD/$PKG_ADDON_ID/bin cp $(get_build_dir evtest)/.$TARGET_NAME/evtest $ADDON_BUILD/$PKG_ADDON_ID/bin } diff --git a/packages/addons/service/ttyd/package.mk b/packages/addons/service/ttyd/package.mk index 2ba739fa64..50a172e8e7 100644 --- a/packages/addons/service/ttyd/package.mk +++ b/packages/addons/service/ttyd/package.mk @@ -23,6 +23,6 @@ addon() { cp -P $PKG_INSTALL/usr/bin/ttyd $ADDON_BUILD/$PKG_ADDON_ID/bin mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/lib - cp -p $(get_build_dir json-c)/.install_pkg/usr/lib/libjson-c.so $ADDON_BUILD/$PKG_ADDON_ID/lib - cp -p $(get_build_dir libwebsockets)/.install_pkg/usr/lib/libwebsockets.so.14 $ADDON_BUILD/$PKG_ADDON_ID/lib + cp -p $(get_install_dir json-c)/usr/lib/libjson-c.so $ADDON_BUILD/$PKG_ADDON_ID/lib + cp -p $(get_install_dir libwebsockets)/usr/lib/libwebsockets.so.14 $ADDON_BUILD/$PKG_ADDON_ID/lib } diff --git a/packages/addons/service/tvheadend42/package.mk b/packages/addons/service/tvheadend42/package.mk index c497d0e396..073dcdc6dc 100644 --- a/packages/addons/service/tvheadend42/package.mk +++ b/packages/addons/service/tvheadend42/package.mk @@ -112,7 +112,7 @@ addon() { cp -P $PKG_BUILD/build.linux/tvheadend $ADDON_BUILD/$PKG_ADDON_ID/bin cp -P $PKG_BUILD/capmt_ca.so $ADDON_BUILD/$PKG_ADDON_ID/bin - cp -P $(get_build_dir comskip)/.install_pkg/usr/bin/comskip $ADDON_BUILD/$PKG_ADDON_ID/bin + cp -P $(get_install_dir comskip)/usr/bin/comskip $ADDON_BUILD/$PKG_ADDON_ID/bin # dvb-scan files mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/dvb-scan diff --git a/packages/addons/service/vdr-addon/package.mk b/packages/addons/service/vdr-addon/package.mk index d3d9847fef..cd54d0fba0 100644 --- a/packages/addons/service/vdr-addon/package.mk +++ b/packages/addons/service/vdr-addon/package.mk @@ -80,7 +80,7 @@ addon() { cp -P $VDR_PLUGIN_XMLTV2VDR/dist/epgdata2xmltv/epgdata2xmltv $ADDON_BUILD/$PKG_ADDON_ID/bin mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/lib - cp -PL $(get_build_dir tntnet)/.install_pkg/usr/lib/libtntnet.so.12 $ADDON_BUILD/$PKG_ADDON_ID/lib + cp -PL $(get_install_dir tntnet)/usr/lib/libtntnet.so.12 $ADDON_BUILD/$PKG_ADDON_ID/lib mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config/plugins/streamdev-server cp -PR $VDR_PLUGIN_STREAMVEV_DIR/streamdev-server/streamdevhosts.conf $ADDON_BUILD/$PKG_ADDON_ID/config/plugins/streamdev-server diff --git a/packages/addons/tools/dotnet-runtime/package.mk b/packages/addons/tools/dotnet-runtime/package.mk index 7006ab65ae..144c89c4f9 100644 --- a/packages/addons/tools/dotnet-runtime/package.mk +++ b/packages/addons/tools/dotnet-runtime/package.mk @@ -42,13 +42,13 @@ addon() { $ADDON_BUILD/$PKG_ADDON_ID/bin mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/libs - cp -L $(get_build_dir curl3)/.install_pkg/usr/lib/libcurl.so.? \ - $(get_build_dir krb5)/.install_pkg/usr/lib/libcom_err.so.? \ - $(get_build_dir krb5)/.install_pkg/usr/lib/libgssapi_krb5.so.? \ - $(get_build_dir krb5)/.install_pkg/usr/lib/libk5crypto.so.? \ - $(get_build_dir krb5)/.install_pkg/usr/lib/libkrb5.so.? \ - $(get_build_dir krb5)/.install_pkg/usr/lib/libkrb5support.so.? \ - $(get_build_dir lttng-ust)/.install_pkg/usr/lib/liblttng-ust.so.? \ - $(get_build_dir lttng-ust)/.install_pkg/usr/lib/liblttng-ust-tracepoint.so.? \ + cp -L $(get_install_dir curl3)/usr/lib/libcurl.so.? \ + $(get_install_dir krb5)/usr/lib/libcom_err.so.? \ + $(get_install_dir krb5)/usr/lib/libgssapi_krb5.so.? \ + $(get_install_dir krb5)/usr/lib/libk5crypto.so.? \ + $(get_install_dir krb5)/usr/lib/libkrb5.so.? \ + $(get_install_dir krb5)/usr/lib/libkrb5support.so.? \ + $(get_install_dir lttng-ust)/usr/lib/liblttng-ust.so.? \ + $(get_install_dir lttng-ust)/usr/lib/liblttng-ust-tracepoint.so.? \ $ADDON_BUILD/$PKG_ADDON_ID/libs } diff --git a/packages/addons/tools/multimedia-tools/package.mk b/packages/addons/tools/multimedia-tools/package.mk index c5426ddc52..475e6d8c08 100644 --- a/packages/addons/tools/multimedia-tools/package.mk +++ b/packages/addons/tools/multimedia-tools/package.mk @@ -36,10 +36,10 @@ addon() { cp -P $(get_build_dir mediainfo)/Project/GNU/CLI/mediainfo $ADDON_BUILD/$PKG_ADDON_ID/bin # mpg123 - cp -P $(get_build_dir mpg123)/.install_pkg/usr/bin/* $ADDON_BUILD/$PKG_ADDON_ID/bin/ + cp -P $(get_install_dir mpg123)/usr/bin/* $ADDON_BUILD/$PKG_ADDON_ID/bin/ # opencaster - cp -P $(get_build_dir opencaster)/.install_pkg/* $ADDON_BUILD/$PKG_ADDON_ID/bin/ + cp -P $(get_install_dir opencaster)/* $ADDON_BUILD/$PKG_ADDON_ID/bin/ # squeezelite cp -P $(get_build_dir squeezelite)/squeezelite $ADDON_BUILD/$PKG_ADDON_ID/bin/ diff --git a/packages/addons/tools/system-tools/package.mk b/packages/addons/tools/system-tools/package.mk index 8ec46a5b7f..a4b886af55 100644 --- a/packages/addons/tools/system-tools/package.mk +++ b/packages/addons/tools/system-tools/package.mk @@ -104,7 +104,7 @@ addon() { cp -P $(get_build_dir hid_mapper)/hid_mapper $ADDON_BUILD/$PKG_ADDON_ID/bin # htop - cp -P $(get_build_dir htop)/.install_pkg/usr/bin/htop $ADDON_BUILD/$PKG_ADDON_ID/bin + cp -P $(get_install_dir htop)/usr/bin/htop $ADDON_BUILD/$PKG_ADDON_ID/bin # i2c-tools cp -P $(get_build_dir i2c-tools)/tools/i2cdetect $ADDON_BUILD/$PKG_ADDON_ID/bin @@ -119,7 +119,7 @@ addon() { # jq cp -P $(get_build_dir jq)/.$TARGET_NAME/jq $ADDON_BUILD/$PKG_ADDON_ID/bin - cp -P $(get_build_dir oniguruma)/.install_pkg/usr/lib/libonig.so $ADDON_BUILD/$PKG_ADDON_ID/lib + cp -P $(get_install_dir oniguruma)/usr/lib/libonig.so $ADDON_BUILD/$PKG_ADDON_ID/lib # lm_sensors cp -P $(get_build_dir lm_sensors)/prog/sensors/sensors $ADDON_BUILD/$PKG_ADDON_ID/bin 2>/dev/null || : @@ -128,8 +128,8 @@ addon() { cp -P $(get_build_dir lshw)/src/lshw $ADDON_BUILD/$PKG_ADDON_ID/bin # mc - cp -Pa $(get_build_dir mc)/.install_pkg/usr/bin/* $ADDON_BUILD/$PKG_ADDON_ID/bin/ - cp -Pa $(get_build_dir mc)/.install_pkg/storage/.kodi/addons/virtual.system-tools/* $ADDON_BUILD/$PKG_ADDON_ID + cp -Pa $(get_install_dir mc)/usr/bin/* $ADDON_BUILD/$PKG_ADDON_ID/bin/ + cp -Pa $(get_install_dir mc)/storage/.kodi/addons/virtual.system-tools/* $ADDON_BUILD/$PKG_ADDON_ID # mrxvt cp -P $(get_build_dir mrxvt)/.$TARGET_NAME/src/mrxvt $ADDON_BUILD/$PKG_ADDON_ID/bin 2>/dev/null || : @@ -162,7 +162,7 @@ addon() { cp -P $(get_build_dir strace)/.$TARGET_NAME/strace $ADDON_BUILD/$PKG_ADDON_ID/bin # stress-ng - cp -P $(get_build_dir stress-ng)/.install_pkg/usr/bin/stress-ng $ADDON_BUILD/$PKG_ADDON_ID/bin + cp -P $(get_install_dir stress-ng)/usr/bin/stress-ng $ADDON_BUILD/$PKG_ADDON_ID/bin # unrar cp -P $(get_build_dir unrar)/unrar $ADDON_BUILD/$PKG_ADDON_ID/bin @@ -171,6 +171,6 @@ addon() { cp -P $(get_build_dir usb-modeswitch)/usb_modeswitch $ADDON_BUILD/$PKG_ADDON_ID/bin # vim - cp -P $(get_build_dir vim)/.install_pkg/usr/bin/vim $ADDON_BUILD/$PKG_ADDON_ID/bin - cp -Pa $(get_build_dir vim)/.install_pkg/storage/.kodi/addons/virtual.system-tools/data/vim/ $ADDON_BUILD/$PKG_ADDON_ID/data + cp -P $(get_install_dir vim)/usr/bin/vim $ADDON_BUILD/$PKG_ADDON_ID/bin + cp -Pa $(get_install_dir vim)/storage/.kodi/addons/virtual.system-tools/data/vim/ $ADDON_BUILD/$PKG_ADDON_ID/data } diff --git a/packages/sysutils/dosfstools/package.mk b/packages/sysutils/dosfstools/package.mk index 03c05722a3..f280ff86a5 100644 --- a/packages/sysutils/dosfstools/package.mk +++ b/packages/sysutils/dosfstools/package.mk @@ -23,7 +23,7 @@ make_init() { makeinstall_init() { mkdir -p $INSTALL/usr/sbin - cp ../.install_pkg/usr/sbin/fsck.fat $INSTALL/usr/sbin + cp $(get_install_dir dosfstools:target)/usr/sbin/fsck.fat $INSTALL/usr/sbin ln -sf fsck.fat $INSTALL/usr/sbin/fsck.msdos ln -sf fsck.fat $INSTALL/usr/sbin/fsck.vfat } From b56c0f06191bb83a052278491d41c8739bf4af28 Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Mon, 2 Dec 2019 15:06:55 +0100 Subject: [PATCH 07/30] build: add missing build stamp input data Always include project specific package files (e.g. projects/Amlogic/packages/systemd). --- config/functions | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/functions b/config/functions index 17b248986d..552488d5e2 100644 --- a/config/functions +++ b/config/functions @@ -847,7 +847,7 @@ get_all_package_names() { calculate_stamp() { local stamp data - stamp="$PKG_DIR $PROJECT_DIR/$PROJECT/patches/$PKG_NAME" + stamp="$PKG_DIR $PROJECT_DIR/$PROJECT/patches/$PKG_NAME $PROJECT_DIR/$PROJECT/packages/$PKG_NAME" [ -n "$DEVICE" ] && stamp+=" $PROJECT_DIR/$PROJECT/devices/$DEVICE/patches/$PKG_NAME" [ -n "$PKG_NEED_UNPACK" ] && stamp+=" $PKG_NEED_UNPACK" From ae663c98e9036f78bc04893073602eff96fc60c6 Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Mon, 2 Dec 2019 08:01:49 +0100 Subject: [PATCH 08/30] build: fix calculate_stamp() for multiple corner cases - follow symlinks (as used by RPi/Slice) - don't include hidden files like vi swap files (lol) - remove duplicates (like $LINUX_DEPENDS for linux itself) - sort by filename, not by hash - don't use one sha256sum process per file, use xargs to pass all files to one process. --- config/functions | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/functions b/config/functions index 552488d5e2..e9dcdcd0f0 100644 --- a/config/functions +++ b/config/functions @@ -851,10 +851,10 @@ calculate_stamp() { [ -n "$DEVICE" ] && stamp+=" $PROJECT_DIR/$PROJECT/devices/$DEVICE/patches/$PKG_NAME" [ -n "$PKG_NEED_UNPACK" ] && stamp+=" $PKG_NEED_UNPACK" - data="$(find ${stamp} -exec sha256sum {} \; 2>/dev/null | sed "s/ ${ROOT//\//\\/}\// /")" + data="$(find -L ${stamp} -type f -not -name '.*' 2>/dev/null | sed "s|^${ROOT}/||" | LC_ALL=C sort -u | xargs sha256sum)" [ -n "${PKG_STAMP}" ] && data+=$'\n'"$(echo "${PKG_STAMP}" | sha256sum)" - echo "${data}" | sort | sha256sum | cut -d" " -f1 + echo "${data}" | sha256sum | cut -d" " -f1 } target_has_feature() { From ab4e3a32569556c34bbc558a7374e33563bc0762 Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Tue, 3 Dec 2019 11:00:33 +0100 Subject: [PATCH 09/30] linux: ensure that the initramfs is always complete The build target calls the install script, and this short circuits the image/install/stamp logic. Wipe the initramfs/:init install stamps along $BUILD/initramfs to ensure everything gets installed when creating the ramdisk for the kernel. --- packages/linux/package.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/linux/package.mk b/packages/linux/package.mk index e4ded8cbf6..2214aa550e 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -124,6 +124,7 @@ makeinstall_host() { pre_make_target() { ( cd $ROOT rm -rf $BUILD/initramfs + rm -f ${STAMPS_INSTALL}/initramfs/install_target ${STAMPS_INSTALL}/*/install_init $SCRIPTS/install initramfs ) pkg_lock_status "ACTIVE" "linux:target" "build" From 408fce38ab732dde17ab0f6391f014a01a38c130 Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Sun, 1 Dec 2019 15:04:37 +0100 Subject: [PATCH 10/30] initramfs: fix description --- packages/virtual/initramfs/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/virtual/initramfs/package.mk b/packages/virtual/initramfs/package.mk index cbc35a12b8..ac962b4899 100644 --- a/packages/virtual/initramfs/package.mk +++ b/packages/virtual/initramfs/package.mk @@ -9,7 +9,7 @@ PKG_SITE="http://www.openelec.tv" PKG_URL="" PKG_DEPENDS_TARGET="toolchain libc:init busybox:init plymouth-lite:init util-linux:init e2fsprogs:init dosfstools:init fakeroot:host terminus-font:init" PKG_SECTION="virtual" -PKG_LONGDESC="debug is a Metapackage for installing initramfs" +PKG_LONGDESC="Metapackage for installing initramfs" if [ "$ISCSI_SUPPORT" = yes ]; then PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET open-iscsi:init" From 6e0d4e4ca2f916e8448506caaca5a3aa08c3a142 Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Mon, 2 Dec 2019 16:34:02 +0100 Subject: [PATCH 11/30] initramfs: move all :init dependencies to initramfs:init This allows us to automatically add them to PKG_NEED_UNPACK and add further logic based on initramfs:init. --- packages/virtual/initramfs/package.mk | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/virtual/initramfs/package.mk b/packages/virtual/initramfs/package.mk index ac962b4899..c31c5ba4f1 100644 --- a/packages/virtual/initramfs/package.mk +++ b/packages/virtual/initramfs/package.mk @@ -7,18 +7,23 @@ PKG_VERSION="" PKG_LICENSE="GPL" PKG_SITE="http://www.openelec.tv" PKG_URL="" -PKG_DEPENDS_TARGET="toolchain libc:init busybox:init plymouth-lite:init util-linux:init e2fsprogs:init dosfstools:init fakeroot:host terminus-font:init" +PKG_DEPENDS_INIT="libc:init busybox:init plymouth-lite:init util-linux:init e2fsprogs:init dosfstools:init terminus-font:init" +PKG_DEPENDS_TARGET="toolchain fakeroot:host initramfs:init" PKG_SECTION="virtual" PKG_LONGDESC="Metapackage for installing initramfs" if [ "$ISCSI_SUPPORT" = yes ]; then - PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET open-iscsi:init" + PKG_DEPENDS_INIT+=" open-iscsi:init" fi if [ "$INITRAMFS_PARTED_SUPPORT" = yes ]; then - PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET parted:init" + PKG_DEPENDS_INIT+=" parted:init" fi +for i in $PKG_DEPENDS_INIT; do + PKG_NEED_UNPACK+=" $(get_pkg_directory $i)" +done + post_install() { ( cd $BUILD/initramfs if [ "$TARGET_ARCH" = "x86_64" ]; then From f0638817a252c25cbc773eeb6503cb79b04979fb Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Mon, 2 Dec 2019 16:34:02 +0100 Subject: [PATCH 12/30] linux: depend on all initramfs dependencies, not just busybox's The initramfs in embedded, so rebuild if it changes. --- packages/linux/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/linux/package.mk b/packages/linux/package.mk index 2214aa550e..e8e9200ff0 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -7,7 +7,7 @@ PKG_LICENSE="GPL" PKG_SITE="http://www.kernel.org" PKG_DEPENDS_HOST="ccache:host rsync:host openssl:host" PKG_DEPENDS_TARGET="toolchain linux:host cpio:host kmod:host xz:host wireless-regdb keyutils $KERNEL_EXTRA_DEPENDS_TARGET" -PKG_NEED_UNPACK="$LINUX_DEPENDS $(get_pkg_directory busybox)" +PKG_NEED_UNPACK="$LINUX_DEPENDS $(get_pkg_directory initramfs) $(get_pkg_variable initramfs PKG_NEED_UNPACK)" PKG_LONGDESC="This package contains a precompiled kernel image and the modules." PKG_IS_KERNEL_PKG="yes" PKG_STAMP="$KERNEL_TARGET $KERNEL_MAKE_EXTRACMD" From 4197b75c8efb390db8af1e9d90a38e17c53ca877 Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Mon, 2 Dec 2019 16:34:02 +0100 Subject: [PATCH 13/30] build: include initramfs:init in the build plan Now with the dependencies in initramfs:init, we can include it in the build plan to parallalize it. But just build them there, the kernel package keeps installing them. --- packages/linux/package.mk | 2 +- scripts/genbuildplan.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/linux/package.mk b/packages/linux/package.mk index e8e9200ff0..069d757da9 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -6,7 +6,7 @@ PKG_NAME="linux" PKG_LICENSE="GPL" PKG_SITE="http://www.kernel.org" PKG_DEPENDS_HOST="ccache:host rsync:host openssl:host" -PKG_DEPENDS_TARGET="toolchain linux:host cpio:host kmod:host xz:host wireless-regdb keyutils $KERNEL_EXTRA_DEPENDS_TARGET" +PKG_DEPENDS_TARGET="toolchain linux:host cpio:host kmod:host xz:host wireless-regdb keyutils initramfs:init $KERNEL_EXTRA_DEPENDS_TARGET" PKG_NEED_UNPACK="$LINUX_DEPENDS $(get_pkg_directory initramfs) $(get_pkg_variable initramfs PKG_NEED_UNPACK)" PKG_LONGDESC="This package contains a precompiled kernel image and the modules." PKG_IS_KERNEL_PKG="yes" diff --git a/scripts/genbuildplan.py b/scripts/genbuildplan.py index 15e4dca4cf..b1f894e3e2 100755 --- a/scripts/genbuildplan.py +++ b/scripts/genbuildplan.py @@ -228,7 +228,7 @@ def get_build_steps(args, nodes, trigger_pkgs, built_pkgs): for pkg in resolved: if pkg.fqname not in built_pkgs: built_pkgs.append(pkg.fqname) - task = "build" if pkg.fqname.endswith(":host") or not install else "install" + task = "build" if pkg.fqname.endswith(":host") or pkg.fqname.endswith(":init") or not install else "install" yield(task, pkg.fqname) # Reduce the complete list of packages to a map of those packages that will From b9c904665416f2f9b1ccce8f012ab81a051e864c Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Fri, 6 Dec 2019 06:45:26 +0100 Subject: [PATCH 14/30] linux: merge post_install() into makeinstall_target() $PKG_BUILD, a build time variable, is accessed in post_install(), which is an install time function. Move it, so the regdb files are copied in a build time function instead. --- packages/linux/package.mk | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/linux/package.mk b/packages/linux/package.mk index 069d757da9..3760e5478a 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -250,9 +250,7 @@ makeinstall_target() { done cp -p arch/$TARGET_KERNEL_ARCH/boot/dts/overlays/README $INSTALL/usr/share/bootloader/overlays fi -} -post_install() { mkdir -p $INSTALL/$(get_full_firmware_dir)/ # regdb and signature is now loaded as firmware by 4.15+ From 78c1582d3af98bee214f5891d508c0f204d5579c Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Fri, 6 Dec 2019 09:23:47 +0100 Subject: [PATCH 15/30] atf: this is not a kernel package Remove PKG_IS_KERNEL_PKG since this is not building kernel modules. Add the kernel toolchain as dependency instead. --- packages/tools/atf/package.mk | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/tools/atf/package.mk b/packages/tools/atf/package.mk index 4fae2d031f..76b09dff98 100644 --- a/packages/tools/atf/package.mk +++ b/packages/tools/atf/package.mk @@ -8,10 +8,11 @@ PKG_ARCH="arm aarch64" PKG_LICENSE="BSD-3c" PKG_SITE="https://github.com/ARM-software/arm-trusted-firmware" PKG_URL="https://github.com/ARM-software/arm-trusted-firmware/archive/$PKG_VERSION.tar.gz" -PKG_DEPENDS_TARGET="toolchain gcc-arm-aarch64-linux-gnu" +PKG_DEPENDS_TARGET="toolchain" PKG_LONGDESC="ARM Trusted Firmware is a reference implementation of secure world software, including a Secure Monitor executing at Exception Level 3 and various Arm interface standards." PKG_TOOLCHAIN="manual" -PKG_IS_KERNEL_PKG="yes" + +[ -n "$KERNEL_TOOLCHAIN" ] && PKG_DEPENDS_TARGET+=" gcc-arm-$KERNEL_TOOLCHAIN:host" make_target() { CROSS_COMPILE="$TARGET_KERNEL_PREFIX" LDFLAGS="" CFLAGS="" make PLAT=$ATF_PLATFORM bl31 From 629ca9dd613c7f1265cc9a6bb4f1250278f7f3f4 Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Fri, 6 Dec 2019 09:25:08 +0100 Subject: [PATCH 16/30] u-boot: this is not a kernel package Remove PKG_IS_KERNEL_PKG since this is not building kernel modules. Add the kernel toolchain as dependency instead. --- packages/tools/u-boot/package.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/tools/u-boot/package.mk b/packages/tools/u-boot/package.mk index 57b0c8f552..2a25d62d40 100644 --- a/packages/tools/u-boot/package.mk +++ b/packages/tools/u-boot/package.mk @@ -9,9 +9,10 @@ PKG_SITE="https://www.denx.de/wiki/U-Boot" PKG_DEPENDS_TARGET="toolchain Python3:host swig:host" PKG_LONGDESC="Das U-Boot is a cross-platform bootloader for embedded systems." -PKG_IS_KERNEL_PKG="yes" PKG_STAMP="$UBOOT_SYSTEM $UBOOT_TARGET" +[ -n "$KERNEL_TOOLCHAIN" ] && PKG_DEPENDS_TARGET+=" gcc-arm-$KERNEL_TOOLCHAIN:host" + if [ -n "$UBOOT_FIRMWARE" ]; then PKG_DEPENDS_TARGET+=" $UBOOT_FIRMWARE" PKG_DEPENDS_UNPACK+=" $UBOOT_FIRMWARE" From 912a91619b9e804a1eb19ba420c99860de3ae017 Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Thu, 12 Dec 2019 09:05:15 +0100 Subject: [PATCH 17/30] build: don't wipe devel files from packages, just don't install them With the upcoming usage of the standard install_pkg folder for addon dependencies, the devel files need to be accessible, e.g. ffmpegx for tvheadend. So don't wipe them from the package install folder, just skip copying them to the image. --- scripts/build | 7 ------- scripts/install | 17 ++++++++++++++++- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/scripts/build b/scripts/build index 08b1bb7811..3b402e8410 100755 --- a/scripts/build +++ b/scripts/build @@ -445,24 +445,17 @@ export SYSROOT_PREFIX="${PKG_ORIG_SYSROOT_PREFIX}" if [ "${TARGET}" = "target" -o "${TARGET}" = "init" ]; then if [ -d ${INSTALL} ]; then - rm -rf ${INSTALL}/{usr/,}include - rm -rf ${INSTALL}/{usr/,}lib/cmake - rm -rf ${INSTALL}/{usr/,}lib/pkgconfig rm -rf ${INSTALL}/{usr/,}man - rm -rf ${INSTALL}/{usr/,}share/aclocal rm -rf ${INSTALL}/{usr/,}share/bash-completion rm -rf ${INSTALL}/{usr/,}share/doc rm -rf ${INSTALL}/{usr/,}share/gtk-doc rm -rf ${INSTALL}/{usr/,}share/info rm -rf ${INSTALL}/{usr/,}share/locale rm -rf ${INSTALL}/{usr/,}share/man - rm -rf ${INSTALL}/{usr/,}share/pkgconfig rm -rf ${INSTALL}/{usr/,}share/zsh rm -rf ${INSTALL}/{usr/,}var find ${INSTALL} \( -name "*.orig" \ -o -name "*.rej" \ - -o -name "*.a" \ - -o -name "*.la" \ -o -name "*.o" \ -o -name "*.in" \ -o -name ".git*" \) \ diff --git a/scripts/install b/scripts/install index 2c0aec42e7..5e435600ce 100755 --- a/scripts/install +++ b/scripts/install @@ -138,7 +138,22 @@ if [ "${TARGET}" = "target" ] ; then fi if [ -n "${PKG_INSTALL}" -a -d "${PKG_INSTALL}" ]; then - cp -PR ${PKG_INSTALL}/* ${INSTALL} + tar \ + -C "${PKG_INSTALL}" \ + --exclude=./usr/include \ + --exclude=./usr/lib/cmake \ + --exclude=./usr/lib/pkgconfig \ + --exclude=./usr/share/aclocal \ + --exclude=./usr/share/pkgconfig \ + --exclude=./include \ + --exclude=./lib/cmake \ + --exclude=./lib/pkgconfig \ + --exclude=./share/aclocal \ + --exclude=./share/pkgconfig \ + --exclude=./.* \ + --exclude='*.a' \ + --exclude='*.la' \ + -cf - . | tar -C "${INSTALL}" -xf - fi if [ "${TARGET}" = "target" ] ; then From d31c44664c9cc50f2d6dae64fb455d3f1eef5224 Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Thu, 12 Dec 2019 09:06:53 +0100 Subject: [PATCH 18/30] build: clean usr/local/ on packages too Some packages use configure_target() but don't set the /usr prefix. --- scripts/build | 18 +++++++++--------- scripts/install | 5 +++++ 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/scripts/build b/scripts/build index 3b402e8410..a1618d85c8 100755 --- a/scripts/build +++ b/scripts/build @@ -445,15 +445,15 @@ export SYSROOT_PREFIX="${PKG_ORIG_SYSROOT_PREFIX}" if [ "${TARGET}" = "target" -o "${TARGET}" = "init" ]; then if [ -d ${INSTALL} ]; then - rm -rf ${INSTALL}/{usr/,}man - rm -rf ${INSTALL}/{usr/,}share/bash-completion - rm -rf ${INSTALL}/{usr/,}share/doc - rm -rf ${INSTALL}/{usr/,}share/gtk-doc - rm -rf ${INSTALL}/{usr/,}share/info - rm -rf ${INSTALL}/{usr/,}share/locale - rm -rf ${INSTALL}/{usr/,}share/man - rm -rf ${INSTALL}/{usr/,}share/zsh - rm -rf ${INSTALL}/{usr/,}var + rm -rf ${INSTALL}/{usr/local/,usr/,}man + rm -rf ${INSTALL}/{usr/local/,usr/,}share/bash-completion + rm -rf ${INSTALL}/{usr/local/,usr/,}share/doc + rm -rf ${INSTALL}/{usr/local/,usr/,}share/gtk-doc + rm -rf ${INSTALL}/{usr/local/,usr/,}share/info + rm -rf ${INSTALL}/{usr/local/,usr/,}share/locale + rm -rf ${INSTALL}/{usr/local/,usr/,}share/man + rm -rf ${INSTALL}/{usr/local/,usr/,}share/zsh + rm -rf ${INSTALL}/{usr/local/,usr/,}var find ${INSTALL} \( -name "*.orig" \ -o -name "*.rej" \ -o -name "*.o" \ diff --git a/scripts/install b/scripts/install index 5e435600ce..f4d4ea95e0 100755 --- a/scripts/install +++ b/scripts/install @@ -140,6 +140,11 @@ fi if [ -n "${PKG_INSTALL}" -a -d "${PKG_INSTALL}" ]; then tar \ -C "${PKG_INSTALL}" \ + --exclude=./usr/local/include \ + --exclude=./usr/local/lib/cmake \ + --exclude=./usr/local/lib/pkgconfig \ + --exclude=./usr/local/share/aclocal \ + --exclude=./usr/local/share/pkgconfig \ --exclude=./usr/include \ --exclude=./usr/lib/cmake \ --exclude=./usr/lib/pkgconfig \ From 1dffafae2af37ea049c16b5a160746f317664b8c Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Sat, 7 Dec 2019 15:48:36 +0100 Subject: [PATCH 19/30] build: add a "sysroot" build flag Some addon dependencies do this locally on their own. With this, these packages can now use the standard makeinstall() functions and access build artifacts using get_install_dir() without polluting the sysroot folder. --- packages/readme.md | 1 + scripts/build | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/readme.md b/packages/readme.md index 133b76c3c8..4eac378cfc 100644 --- a/packages/readme.md +++ b/packages/readme.md @@ -127,6 +127,7 @@ Set the variable `PKG_BUILD_FLAGS` in the `package.mk` to enable/disable the sin | gold | enabled by `GOLD_SUPPORT` | target, init | do not use GOLD-Llinker (can only disable) | | parallel | enabled | all | `make` or `ninja` builds with multiple threads/processes (or not) | | strip | enabled | target | strips executables (or not) | +| sysroot | enabled | target | installs the package to the sysroot folder (or not) | ###### Example ``` diff --git a/scripts/build b/scripts/build index a1618d85c8..0ad2c76b6d 100755 --- a/scripts/build +++ b/scripts/build @@ -380,10 +380,13 @@ pkg_call_exists pre_makeinstall_${TARGET} && pkg_call pre_makeinstall_${TARGET} if pkg_call_exists makeinstall_${TARGET}; then pkg_call makeinstall_${TARGET} else + flag_enabled "sysroot" "yes" && INSTALL_TO_SYSROOT="yes" || INSTALL_TO_SYSROOT="no" + case "${PKG_TOOLCHAIN}:${TARGET}" in # ninja based builds "meson:target"|"cmake:target") - DESTDIR=${SYSROOT_PREFIX} ninja install ${PKG_MAKEINSTALL_OPTS_TARGET} + [ "${INSTALL_TO_SYSROOT}" = "yes" ] && \ + DESTDIR=${SYSROOT_PREFIX} ninja install ${PKG_MAKEINSTALL_OPTS_TARGET} DESTDIR=${INSTALL} ninja install ${PKG_MAKEINSTALL_OPTS_TARGET} ;; "meson:host"|"cmake:host") @@ -398,7 +401,8 @@ else # make based builds "configure:target"|"cmake-make:target"|"autotools:target"|"make:target") - make install DESTDIR=${SYSROOT_PREFIX} -j1 ${PKG_MAKEINSTALL_OPTS_TARGET} + [ "${INSTALL_TO_SYSROOT}" = "yes" ] && \ + make install DESTDIR=${SYSROOT_PREFIX} -j1 ${PKG_MAKEINSTALL_OPTS_TARGET} make install DESTDIR=${INSTALL} ${PKG_MAKEINSTALL_OPTS_TARGET} ;; "configure:host"|"cmake-make:host"|"autotools:host"|"make:host") From 93c1d6fc629aaa30dc5abcbe5f2a4e6a6cd16358 Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Sat, 7 Dec 2019 16:15:10 +0100 Subject: [PATCH 20/30] mariadb: disable installing to sysroot There's no need to use a hidden directory anymore or overwrite the default make install target. --- packages/addons/service/mariadb/package.mk | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/packages/addons/service/mariadb/package.mk b/packages/addons/service/mariadb/package.mk index fd6452e7dc..958e8106b5 100644 --- a/packages/addons/service/mariadb/package.mk +++ b/packages/addons/service/mariadb/package.mk @@ -13,7 +13,7 @@ PKG_DEPENDS_TARGET="toolchain binutils bzip2 libaio libxml2 lzo ncurses openssl PKG_SHORTDESC="MariaDB is a community-developed fork of the MySQL." PKG_LONGDESC="MariaDB (${PKG_VERSION}) is a fast SQL database server and a drop-in replacement for MySQL." PKG_TOOLCHAIN="cmake" -PKG_BUILD_FLAGS="-gold" +PKG_BUILD_FLAGS="-gold -sysroot" PKG_IS_ADDON="yes" PKG_SECTION="service" @@ -71,15 +71,13 @@ makeinstall_host() { : } -makeinstall_target() { - # use only for addon - DESTDIR=${PKG_BUILD}/.install_addon ninja ${NINJA_OPTS} install - rm -rf "${PKG_BUILD}/.install_addon/usr/mysql-test" +post_makeinstall_target() { + rm -rf "${PKG_INSTALL}/usr/mysql-test" } addon() { local ADDON="${ADDON_BUILD}/${PKG_ADDON_ID}" - local MARIADB="${PKG_BUILD}/.install_addon/usr" + local MARIADB="${PKG_INSTALL}/usr" mkdir -p ${ADDON}/bin mkdir -p ${ADDON}/config From 8b3b1d8cc8ecee226d298229f8db3e19d7460dcb Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Sat, 7 Dec 2019 15:33:03 +0100 Subject: [PATCH 21/30] ffmpegx: disable installing to sysroot There's no need to use a hidden directory anymore. --- packages/addons/addon-depends/comskip/package.mk | 6 +++--- packages/addons/addon-depends/ffmpegx/package.mk | 6 +----- packages/addons/service/tvheadend42/package.mk | 6 +++--- packages/addons/tools/ffmpeg-tools/package.mk | 2 +- 4 files changed, 8 insertions(+), 12 deletions(-) diff --git a/packages/addons/addon-depends/comskip/package.mk b/packages/addons/addon-depends/comskip/package.mk index 364cb01a2f..2f76219895 100644 --- a/packages/addons/addon-depends/comskip/package.mk +++ b/packages/addons/addon-depends/comskip/package.mk @@ -18,9 +18,9 @@ pre_configure_target() { export argtable2_LIBS="-L$(get_build_dir argtable2)/src/.libs -largtable2" # pass ffmpegx to build - PKG_CONFIG_PATH="$(get_build_dir ffmpegx)/.INSTALL_PKG/usr/local/lib/pkgconfig" - CFLAGS+=" -I$(get_build_dir ffmpegx)/.INSTALL_PKG/usr/local/include" - LDFLAGS+=" -L$(get_build_dir ffmpegx)/.INSTALL_PKG/usr/local/lib" + PKG_CONFIG_PATH="$(get_install_dir ffmpegx)/usr/local/lib/pkgconfig" + CFLAGS+=" -I$(get_install_dir ffmpegx)/usr/local/include" + LDFLAGS+=" -L$(get_install_dir ffmpegx)/usr/local/lib" } make_target() { diff --git a/packages/addons/addon-depends/ffmpegx/package.mk b/packages/addons/addon-depends/ffmpegx/package.mk index 1162c87bcb..56c2ce1c8d 100644 --- a/packages/addons/addon-depends/ffmpegx/package.mk +++ b/packages/addons/addon-depends/ffmpegx/package.mk @@ -9,7 +9,7 @@ PKG_SITE="https://ffmpeg.org" PKG_URL="https://ffmpeg.org/releases/ffmpeg-$PKG_VERSION.tar.xz" PKG_DEPENDS_TARGET="toolchain aom bzip2 gnutls libvorbis opus x264 zlib" PKG_LONGDESC="FFmpegx is an complete FFmpeg build to support encoding and decoding." -PKG_BUILD_FLAGS="-gold" +PKG_BUILD_FLAGS="-gold -sysroot" # Dependencies get_graphicdrivers @@ -176,7 +176,3 @@ configure_target() { --disable-hardcoded-tables \ } - -makeinstall_target() { - make install DESTDIR="$INSTALL/../.INSTALL_PKG" -} diff --git a/packages/addons/service/tvheadend42/package.mk b/packages/addons/service/tvheadend42/package.mk index 073dcdc6dc..cedfa24db9 100644 --- a/packages/addons/service/tvheadend42/package.mk +++ b/packages/addons/service/tvheadend42/package.mk @@ -82,9 +82,9 @@ pre_configure_target() { rm -rf .$TARGET_NAME # pass ffmpegx to build - PKG_CONFIG_PATH="$(get_build_dir ffmpegx)/.INSTALL_PKG/usr/local/lib/pkgconfig" - CFLAGS+=" -I$(get_build_dir ffmpegx)/.INSTALL_PKG/usr/local/include" - LDFLAGS+=" -L$(get_build_dir ffmpegx)/.INSTALL_PKG/usr/local/lib" + PKG_CONFIG_PATH="$(get_install_dir ffmpegx)/usr/local/lib/pkgconfig" + CFLAGS+=" -I$(get_install_dir ffmpegx)/usr/local/include" + LDFLAGS+=" -L$(get_install_dir ffmpegx)/usr/local/lib" # pass libhdhomerun to build CFLAGS+=" -I$(get_build_dir libhdhomerun)" diff --git a/packages/addons/tools/ffmpeg-tools/package.mk b/packages/addons/tools/ffmpeg-tools/package.mk index 257c402f8a..36272d76c5 100644 --- a/packages/addons/tools/ffmpeg-tools/package.mk +++ b/packages/addons/tools/ffmpeg-tools/package.mk @@ -19,5 +19,5 @@ PKG_ADDON_TYPE="xbmc.python.script" addon() { mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin/ - cp -L $(get_build_dir ffmpegx)/.INSTALL_PKG/usr/local/bin/* $ADDON_BUILD/$PKG_ADDON_ID/bin + cp -L $(get_install_dir ffmpegx)/usr/local/bin/* $ADDON_BUILD/$PKG_ADDON_ID/bin } From db4f6abed7bcef664b863f7919b6fd6299124a70 Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Sat, 7 Dec 2019 16:21:56 +0100 Subject: [PATCH 22/30] net-snmp: disable installing to sysroot --- packages/addons/service/net-snmp/package.mk | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/addons/service/net-snmp/package.mk b/packages/addons/service/net-snmp/package.mk index 079b0abce0..342bf178f1 100644 --- a/packages/addons/service/net-snmp/package.mk +++ b/packages/addons/service/net-snmp/package.mk @@ -14,6 +14,7 @@ PKG_SECTION="service" PKG_SHORTDESC="Simple Network Management Protocol utilities." PKG_LONGDESC="Simple Network Management Protocol (SNMP) is a widely used protocol for monitoring the health and welfare of network equipment." PKG_TOOLCHAIN="autotools" +PKG_BUILD_FLAGS="-sysroot" PKG_IS_ADDON="yes" PKG_ADDON_NAME="Net-SNMP" @@ -48,10 +49,10 @@ make_target() { } makeinstall_target() { - make install INSTALL_PREFIX=$PKG_BUILD/.$TARGET_NAME + make install INSTALL_PREFIX=$INSTALL } addon() { mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/lib - cp -r $PKG_BUILD/.$TARGET_NAME/storage/.kodi/addons/${PKG_ADDON_ID}/bin $PKG_BUILD/.$TARGET_NAME/storage/.kodi/userdata/addon_data/${PKG_ADDON_ID}/share $ADDON_BUILD/$PKG_ADDON_ID/ + cp -r $PKG_INSTALL/storage/.kodi/addons/${PKG_ADDON_ID}/bin $PKG_INSTALL/storage/.kodi/userdata/addon_data/${PKG_ADDON_ID}/share $ADDON_BUILD/$PKG_ADDON_ID/ } From af26416f08365603a6dca36fe6b1f691c358b855 Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Sat, 7 Dec 2019 16:39:07 +0100 Subject: [PATCH 23/30] cups: disable installing to sysroot --- packages/addons/addon-depends/chrome-depends/cups/package.mk | 4 ++-- packages/addons/browser/chrome/package.mk | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/addons/addon-depends/chrome-depends/cups/package.mk b/packages/addons/addon-depends/chrome-depends/cups/package.mk index 1ed87d1ef4..0f7d3d59be 100644 --- a/packages/addons/addon-depends/chrome-depends/cups/package.mk +++ b/packages/addons/addon-depends/chrome-depends/cups/package.mk @@ -10,7 +10,7 @@ PKG_SITE="http://www.cups.org" PKG_URL="https://github.com/apple/cups/archive/v$PKG_VERSION.tar.gz" PKG_DEPENDS_TARGET="toolchain openssl zlib" PKG_LONGDESC="CUPS printing system." -PKG_BUILD_FLAGS="+pic" +PKG_BUILD_FLAGS="+pic -sysroot" PKG_CONFIGURE_OPTS_TARGET="--libdir=/usr/lib \ --disable-gssapi \ @@ -25,5 +25,5 @@ pre_configure_target() { } makeinstall_target() { - make BUILDROOT="$INSTALL/../.INSTALL_PKG" + make BUILDROOT="$INSTALL" install } diff --git a/packages/addons/browser/chrome/package.mk b/packages/addons/browser/chrome/package.mk index 1b5fbd7166..57d62585a0 100644 --- a/packages/addons/browser/chrome/package.mk +++ b/packages/addons/browser/chrome/package.mk @@ -62,7 +62,7 @@ addon() { cp -PL $(get_build_dir at-spi2-core)/.$TARGET_NAME/atspi/libatspi.so.0 $ADDON_BUILD/$PKG_ADDON_ID/lib # libcups - cp -PL $(get_build_dir cups)/cups/libcups.so.2 $ADDON_BUILD/$PKG_ADDON_ID/lib + cp -PL $(get_install_dir cups)/usr/lib/libcups.so.2 $ADDON_BUILD/$PKG_ADDON_ID/lib # libxcb cp -PL $(get_build_dir chrome-libxcb)/.$TARGET_NAME/src/.libs/libxcb.so.1 $ADDON_BUILD/$PKG_ADDON_ID/lib From 61af0490efd54c6ceeefa6d9da8cc5d2e8d4b206 Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Sat, 30 Nov 2019 12:31:03 +0100 Subject: [PATCH 24/30] image: don't fish out kernel files out of its build dir Install the files required by $SCRIPTS/image to a hidden directory. That way, the files won't get copied to the system filesystem, but the script can access them without requiring access to the build directory, --- packages/linux/package.mk | 3 +++ scripts/image | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/linux/package.mk b/packages/linux/package.mk index 3760e5478a..aff7f816b8 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -225,6 +225,9 @@ make_target() { } makeinstall_target() { + mkdir -p $INSTALL/.image + cp -p arch/${TARGET_KERNEL_ARCH}/boot/${KERNEL_TARGET} System.map $INSTALL/.image/ + kernel_make INSTALL_MOD_PATH=$INSTALL/$(get_kernel_overlay_dir) modules_install rm -f $INSTALL/$(get_kernel_overlay_dir)/lib/modules/*/build rm -f $INSTALL/$(get_kernel_overlay_dir)/lib/modules/*/source diff --git a/scripts/image b/scripts/image index f2a8740100..d59220c294 100755 --- a/scripts/image +++ b/scripts/image @@ -208,7 +208,7 @@ MODVER=$(basename $(ls -d ${INSTALL}/usr/lib/kernel-overlays/base/lib/modules/*) find ${INSTALL}/usr/lib/kernel-overlays/base/lib/modules/${MODVER}/ -name *.ko | \ sed -e "s,${INSTALL}/usr/lib/kernel-overlays/base/lib/modules/${MODVER}/,," \ > ${INSTALL}/usr/lib/kernel-overlays/base/lib/modules/${MODVER}/modules.order -${TOOLCHAIN}/bin/depmod -b ${INSTALL}/usr/lib/kernel-overlays/base -a -e -F "${BUILD}/linux-$(kernel_version)/System.map" ${MODVER} 2>&1 +${TOOLCHAIN}/bin/depmod -b ${INSTALL}/usr/lib/kernel-overlays/base -a -e -F "$(get_install_dir linux)/.image/System.map" ${MODVER} 2>&1 # Strip kernel modules for MOD in $(find ${INSTALL}/usr/lib/kernel-overlays/ -type f -name *.ko); do @@ -226,7 +226,7 @@ mkdir -p ${TARGET_IMG} rm -rf ${TARGET_IMG}/${IMAGE_NAME}.kernel # Copy kernel to target dir -cp -PR ${BUILD}/linux-$(kernel_version)/arch/${TARGET_KERNEL_ARCH}/boot/${KERNEL_TARGET} ${TARGET_IMG}/${IMAGE_NAME}.kernel +cp -PR $(get_install_dir linux)/.image/${KERNEL_TARGET} ${TARGET_IMG}/${IMAGE_NAME}.kernel chmod 0644 ${TARGET_IMG}/${IMAGE_NAME}.kernel # Set mksquashfs options for each compression method From 8e4663912aa4883ef88820a4223f7630ec2df202 Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Sat, 30 Nov 2019 12:31:03 +0100 Subject: [PATCH 25/30] build: move install dirs out of the build dir Instead of cluttering $BUILD we now have - $BUILD/build sources and builds of packages - $BUILD/install_pkg installed packages - $BUILD/install_init installed packages for initramfs --- config/functions | 8 ++++---- scripts/build | 4 ++++ scripts/clean | 6 ++++-- scripts/unpack | 4 ++-- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/config/functions b/config/functions index e9dcdcd0f0..82bb424673 100644 --- a/config/functions +++ b/config/functions @@ -792,7 +792,7 @@ get_pkg_variable() { get_build_dir() { local _PKG_NAME="${1%:*}" _PKG_VERSION="$(get_pkg_version "$1")" if [ -n "$_PKG_NAME" -a -n "$_PKG_VERSION" ]; then - echo $BUILD/${_PKG_NAME}-${_PKG_VERSION} + echo $BUILD/build/${_PKG_NAME}-${_PKG_VERSION} fi } @@ -1030,12 +1030,12 @@ source_package() { fi fi - PKG_BUILD="$BUILD/${PKG_NAME}-${PKG_VERSION}" + PKG_BUILD="$BUILD/build/${PKG_NAME}-${PKG_VERSION}" if [[ "${1}" =~ :target$ || "${1//:/}" = "${1}" ]]; then - PKG_INSTALL="${PKG_BUILD}/.install_pkg" + PKG_INSTALL="$BUILD/install_pkg/${PKG_NAME}-${PKG_VERSION}" elif [[ "${1}" =~ :init$ ]]; then - PKG_INSTALL="${PKG_BUILD}/.install_init" + PKG_INSTALL="$BUILD/install_init/${PKG_NAME}-${PKG_VERSION}" fi fi diff --git a/scripts/build b/scripts/build index 0ad2c76b6d..0077e7e939 100755 --- a/scripts/build +++ b/scripts/build @@ -485,6 +485,10 @@ if [ "${TARGET}" = "target" -o "${TARGET}" = "init" ]; then fi fi +if [ -n "${INSTALL}" -a -d "${INSTALL}" ]; then + echo "INFO_PKG_NAME=\"${PKG_NAME}\"" > "${INSTALL}/.libreelec-package" +fi + cd ${ROOT} PKG_DEEPHASH=$(calculate_stamp) diff --git a/scripts/clean b/scripts/clean index 36ac2394d1..f6bdd60a5a 100755 --- a/scripts/clean +++ b/scripts/clean @@ -14,8 +14,10 @@ clean_package() { return fi - # Use a wilcard here to remove all versions of the package - for i in "${BUILD}/${1}-"*; do + # Use a wildcard here to remove all versions of the package + for i in "${BUILD}/build/${1}-"* \ + "${BUILD}/install_pkg/${1}-"* \ + "${BUILD}/install_init/${1}-"*; do if [ -d "${i}" -a -f "${i}/.libreelec-unpack" ]; then . "${i}/.libreelec-unpack" if [ "${STAMP_PKG_NAME}" = "${1}" ]; then diff --git a/scripts/unpack b/scripts/unpack index c88bf0769d..03980c6699 100755 --- a/scripts/unpack +++ b/scripts/unpack @@ -27,11 +27,11 @@ fi STAMP="${PKG_BUILD}/.libreelec-unpack" -mkdir -p ${BUILD} +mkdir -p ${BUILD}/build # Perform a wildcard match on the package to ensure old versions are cleaned too PKG_DEEPHASH= -for i in ${BUILD}/${PKG_NAME}-*; do +for i in ${BUILD}/build/${PKG_NAME}-*; do if [ -d ${i} -a -f "${i}/.libreelec-unpack" ] ; then . "${i}/.libreelec-unpack" if [ "${STAMP_PKG_NAME}" = "${PKG_NAME}" ]; then From 3af8801a011b1ebe89d4d81350c5df76628c907e Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Mon, 9 Dec 2019 08:42:39 +0100 Subject: [PATCH 26/30] dosfstools: stub configure_init() There's no point in configuring if not building. --- packages/sysutils/dosfstools/package.mk | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/sysutils/dosfstools/package.mk b/packages/sysutils/dosfstools/package.mk index f280ff86a5..4a4cb79b35 100644 --- a/packages/sysutils/dosfstools/package.mk +++ b/packages/sysutils/dosfstools/package.mk @@ -17,6 +17,10 @@ PKG_CONFIGURE_OPTS_TARGET="--enable-compat-symlinks" PKG_MAKE_OPTS_TARGET="PREFIX=/usr" PKG_MAKEINSTALL_OPTS_TARGET="PREFIX=/usr" +configure_init() { + : # reuse configure_target() +} + make_init() { : # reuse make_target() } From b86cffe84a01ef8cfe57e50074cec1871d60b3aa Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Wed, 4 Dec 2019 06:44:59 +0100 Subject: [PATCH 27/30] libshairplay: use the installed headers Avahi installs the required headers, there's no need to point to its build directory. --- packages/network/libshairplay/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/network/libshairplay/package.mk b/packages/network/libshairplay/package.mk index afbe86bb4b..c0969a18d9 100644 --- a/packages/network/libshairplay/package.mk +++ b/packages/network/libshairplay/package.mk @@ -13,7 +13,7 @@ PKG_LONGDESC="Apple airplay and raop protocol server" PKG_TOOLCHAIN="autotools" pre_configure_target() { - CFLAGS="$CFLAGS -I$(get_build_dir avahi)/avahi-compat-libdns_sd" + CFLAGS="$CFLAGS -I$SYSROOT_PREFIX/usr/include/avahi-compat-libdns_sd" } post_makeinstall_target() { From 14cf8f384248df1ee1ca0a4bbc7f7f1ef3f247a2 Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Wed, 11 Dec 2019 22:05:52 +0100 Subject: [PATCH 28/30] tvheadend42: use the installed headers libhdhomerun installs the required headers, there's no need to point to its build directory. --- packages/addons/service/tvheadend42/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/addons/service/tvheadend42/package.mk b/packages/addons/service/tvheadend42/package.mk index cedfa24db9..dd6a3fbc61 100644 --- a/packages/addons/service/tvheadend42/package.mk +++ b/packages/addons/service/tvheadend42/package.mk @@ -87,7 +87,7 @@ pre_configure_target() { LDFLAGS+=" -L$(get_install_dir ffmpegx)/usr/local/lib" # pass libhdhomerun to build - CFLAGS+=" -I$(get_build_dir libhdhomerun)" + CFLAGS+=" -I$SYSROOT_PREFIX/usr/include/hdhomerun" export CROSS_COMPILE="$TARGET_PREFIX" export CFLAGS+=" -I$SYSROOT_PREFIX/usr/include/iconv -L$SYSROOT_PREFIX/usr/lib/iconv" From 50e872d77014de116e51515c596a78f8fc2d6751 Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Wed, 4 Dec 2019 10:18:01 +0100 Subject: [PATCH 29/30] kodi: use -DFFMPEG_PATH There's no need to pass the path to the build folder, use the path to the installation instead. From kodi's FindFFMPEG.cmake: WARNING: this option is for developers as it will _disable ffmpeg version checks_! Consider using FFMPEG_PATH instead, which _does_ check library versions Before: -- Found FFMPEG: /toolchain/armv8a-libreelec-linux-gnueabihf/sysroot/usr (found version "undef") After: -- Found FFMPEG: /toolchain/armv8a-libreelec-linux-gnueabihf/sysroot/usr/include (found version "4.0") --- packages/mediacenter/kodi/package.mk | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/mediacenter/kodi/package.mk b/packages/mediacenter/kodi/package.mk index 982cd039da..50c0f41232 100644 --- a/packages/mediacenter/kodi/package.mk +++ b/packages/mediacenter/kodi/package.mk @@ -213,9 +213,8 @@ configure_package() { -DPYTHON_EXECUTABLE=$TOOLCHAIN/bin/$PKG_PYTHON_VERSION \ -DPYTHON_INCLUDE_DIRS=$SYSROOT_PREFIX/usr/include/$PKG_PYTHON_VERSION \ -DGIT_VERSION=$PKG_VERSION \ - -DWITH_FFMPEG=$(get_build_dir ffmpeg) \ + -DFFMPEG_PATH=$SYSROOT_PREFIX/usr \ -DENABLE_INTERNAL_FFMPEG=OFF \ - -DFFMPEG_INCLUDE_DIRS=$SYSROOT_PREFIX/usr \ -DENABLE_INTERNAL_CROSSGUID=OFF \ -DENABLE_UDEV=ON \ -DENABLE_DBUS=ON \ From e08407ce8261db7087430bfaba8d5529aba26c8d Mon Sep 17 00:00:00 2001 From: MilhouseVH Date: Sun, 29 Dec 2019 00:17:52 +0000 Subject: [PATCH 30/30] proftpd: incorrect $BUILD usage --- packages/addons/service/proftpd/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/addons/service/proftpd/package.mk b/packages/addons/service/proftpd/package.mk index c3684bea17..d118822d4a 100644 --- a/packages/addons/service/proftpd/package.mk +++ b/packages/addons/service/proftpd/package.mk @@ -55,7 +55,7 @@ addon() { cp $PKG_BUILD/.$TARGET_NAME/ftpwho $ADDON_BUILD/$PKG_ADDON_ID/bin cp $PKG_BUILD/.$TARGET_NAME/ftptop $ADDON_BUILD/$PKG_ADDON_ID/bin - cp $BUILD/whois*/mkpasswd $ADDON_BUILD/$PKG_ADDON_ID/bin + cp $(get_build_dir whois)/mkpasswd $ADDON_BUILD/$PKG_ADDON_ID/bin mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/locale cp $PKG_BUILD/.$TARGET_NAME/locale/* $ADDON_BUILD/$PKG_ADDON_ID/locale