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/functions b/config/functions index e7d7002a85..82bb424673 100644 --- a/config/functions +++ b/config/functions @@ -792,10 +792,14 @@ 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 } +get_install_dir() { + get_pkg_variable "$1" PKG_INSTALL +} + get_pkg_version() { get_pkg_variable "$1" PKG_VERSION } @@ -843,14 +847,14 @@ 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" - 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() { @@ -1026,7 +1030,13 @@ 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="$BUILD/install_pkg/${PKG_NAME}-${PKG_VERSION}" + elif [[ "${1}" =~ :init$ ]]; then + PKG_INSTALL="$BUILD/install_init/${PKG_NAME}-${PKG_VERSION}" + fi fi build_with_debug && BUILD_WITH_DEBUG="yes" || BUILD_WITH_DEBUG="no" @@ -1127,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 } @@ -1171,17 +1181,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/config/path b/config/path index 480069ca55..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 @@ -57,7 +56,6 @@ FAKEROOT_SCRIPT=$BUILD/.fakeroot if [ -z "$INSTALL" ]; then INSTALL=$BUILD/image/system fi -INSTALL_INIT=$BUILD/image/initramfs/root-image . config/sources 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/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/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/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 } diff --git a/packages/addons/browser/chrome/package.mk b/packages/addons/browser/chrome/package.mk index 5e3d68a17b..57d62585a0 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 @@ -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 @@ -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 456bec317d..2b07071973 100644 --- a/packages/addons/service/lcdd/package.mk +++ b/packages/addons/service/lcdd/package.mk @@ -40,11 +40,11 @@ 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/ + 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/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 diff --git a/packages/addons/service/minidlna/package.mk b/packages/addons/service/minidlna/package.mk index 7f7a30258e..4649167159 100644 --- a/packages/addons/service/minidlna/package.mk +++ b/packages/addons/service/minidlna/package.mk @@ -29,14 +29,14 @@ 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" } 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 + 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/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/ } 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/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 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/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/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 588adefb71..50a172e8e7 100644 --- a/packages/addons/service/ttyd/package.mk +++ b/packages/addons/service/ttyd/package.mk @@ -20,9 +20,9 @@ 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 - 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..dd6a3fbc61 100644 --- a/packages/addons/service/tvheadend42/package.mk +++ b/packages/addons/service/tvheadend42/package.mk @@ -82,12 +82,12 @@ 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)" + 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" @@ -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/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 } 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/linux/package.mk b/packages/linux/package.mk index e15950ad30..aff7f816b8 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -6,9 +6,8 @@ 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_INIT="toolchain" -PKG_NEED_UNPACK="$LINUX_DEPENDS $(get_pkg_directory busybox)" +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" PKG_STAMP="$KERNEL_TARGET $KERNEL_MAKE_EXTRACMD" @@ -125,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" @@ -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 @@ -250,9 +253,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+ 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 \ 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() { 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/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/packages/sysutils/dosfstools/package.mk b/packages/sysutils/dosfstools/package.mk index 03c05722a3..4a4cb79b35 100644 --- a/packages/sysutils/dosfstools/package.mk +++ b/packages/sysutils/dosfstools/package.mk @@ -17,13 +17,17 @@ 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() } 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 } 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 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" diff --git a/packages/virtual/initramfs/package.mk b/packages/virtual/initramfs/package.mk index cbc35a12b8..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="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" + 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 diff --git a/scripts/build b/scripts/build index cd75277be5..0077e7e939 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}" @@ -385,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") @@ -403,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") @@ -450,24 +449,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 + 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 "*.a" \ - -o -name "*.la" \ -o -name "*.o" \ -o -name "*.in" \ -o -name ".git*" \) \ @@ -493,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/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 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 diff --git a/scripts/install b/scripts/install index d0a22ac58e..f4d4ea95e0 100755 --- a/scripts/install +++ b/scripts/install @@ -137,10 +137,28 @@ 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 + 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 \ + --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 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