From 63b76faeead26894a5bbc6b2ffdd8c885163140c Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Fri, 17 Sep 2021 16:54:57 -0400 Subject: [PATCH] Break translators out of haiku.hpkg into a separate haiku_datatranslators.hpkg. Translators and media-plugins are the main source of dependencies in haiku.hpkg, and thus the main source of packages being pulled into chroots, especially HaikuPorter chroots. (FFmpeg pulls in a rather large array of sub- dependencies, itself.) So, here we break all the translators into their own sub-package. For now, haiku.hpkg is declared to depend on haiku_datatranslators, so that users will not suddenly update and have no translators. In the future, this will be dropped. Note that this is only done for the primary arch at present. Secondary architecture translators remain in the main secondary package for now. Change-Id: Id0b352f34f7110b79ec7787792bf3ae0edab4054 Reviewed-on: https://review.haiku-os.org/c/haiku/+/4477 Reviewed-by: waddlesplash --- build/jam/HaikuPackages | 1 + build/jam/PackageRules | 1 + build/jam/images/HaikuImage | 1 + build/jam/packages/Haiku | 2 - build/jam/packages/HaikuDataTranslators | 9 +++ build/jam/repositories/Haiku | 1 + src/data/package_infos/generic/haiku | 37 +---------- .../generic/haiku_datatranslators | 62 +++++++++++++++++++ src/data/package_infos/x86_gcc2/haiku | 31 +--------- 9 files changed, 79 insertions(+), 66 deletions(-) create mode 100644 build/jam/packages/HaikuDataTranslators create mode 100644 src/data/package_infos/generic/haiku_datatranslators diff --git a/build/jam/HaikuPackages b/build/jam/HaikuPackages index 8efe6419cf..cfa52a51a3 100644 --- a/build/jam/HaikuPackages +++ b/build/jam/HaikuPackages @@ -2,6 +2,7 @@ # subdirectory. local packages = [ FFilterByBuildFeatures HaikuDevel + HaikuDataTranslators HaikuExtras HaikuLoader HaikuSource diff --git a/build/jam/PackageRules b/build/jam/PackageRules index 6384f16ac1..d201c7db5c 100644 --- a/build/jam/PackageRules +++ b/build/jam/PackageRules @@ -99,6 +99,7 @@ rule PreprocessPackageOrRepositoryInfo target : source : architecture # placeholder substitutions have been performed. local defines = HAIKU_PACKAGING_ARCH=$(architecture) + HAIKU_PACKAGING_ARCH_$(architecture) HAIKU_$(HAIKU_BUILD_TYPE:U)_BUILD ; local sedReplacements = %HAIKU_PACKAGING_ARCH%,$(architecture) ; if $(secondaryArchitecture) { diff --git a/build/jam/images/HaikuImage b/build/jam/images/HaikuImage index 6e93dc8a8d..46cea5ea4a 100644 --- a/build/jam/images/HaikuImage +++ b/build/jam/images/HaikuImage @@ -17,6 +17,7 @@ include [ FDirName $(HAIKU_BUILD_RULES_DIR) HaikuPackages ] ; AddPackageFilesToHaikuImage system packages : haiku_loader.hpkg haiku.hpkg + haiku_datatranslators.hpkg haiku_$(TARGET_PACKAGING_ARCHS[2-]).hpkg : nameFromMetaInfo diff --git a/build/jam/packages/Haiku b/build/jam/packages/Haiku index fe8471e0b5..adc444d6d9 100644 --- a/build/jam/packages/Haiku +++ b/build/jam/packages/Haiku @@ -214,7 +214,6 @@ AddBootModuleSymlinksToPackage # add-ons AddFilesToPackage add-ons accelerants : $(SYSTEM_ADD_ONS_ACCELERANTS) ; -AddFilesToPackage add-ons Translators : $(SYSTEM_ADD_ONS_TRANSLATORS) ; AddFilesToPackage add-ons locale catalogs : $(SYSTEM_ADD_ONS_LOCALE_CATALOGS) ; AddFilesToPackage add-ons mail_daemon inbound_protocols : POP3 @@ -225,7 +224,6 @@ AddFilesToPackage add-ons mail_daemon inbound_filters AddFilesToPackage add-ons mail_daemon outbound_filters : Fortune ; AddFilesToPackage add-ons media : $(SYSTEM_ADD_ONS_MEDIA) ; -AddFilesToPackage add-ons media plugins : $(SYSTEM_ADD_ONS_MEDIA_PLUGINS) ; AddFilesToPackage add-ons Network\ Settings : IPv4Interface IPv6Interface DNSClientService Hostname FTPService SSHService diff --git a/build/jam/packages/HaikuDataTranslators b/build/jam/packages/HaikuDataTranslators new file mode 100644 index 0000000000..212b733fe4 --- /dev/null +++ b/build/jam/packages/HaikuDataTranslators @@ -0,0 +1,9 @@ +local architecture = $(HAIKU_PACKAGING_ARCHS[1]) ; + +local dataTranslatorsPackage = haiku_datatranslators.hpkg ; +HaikuPackage $(dataTranslatorsPackage) ; + +AddFilesToPackage add-ons Translators : $(SYSTEM_ADD_ONS_TRANSLATORS) ; +AddFilesToPackage add-ons media plugins : $(SYSTEM_ADD_ONS_MEDIA_PLUGINS) ; + +BuildHaikuPackage $(dataTranslatorsPackage) : haiku_datatranslators ; diff --git a/build/jam/repositories/Haiku b/build/jam/repositories/Haiku index 52d6eb47e0..2543fd6a07 100644 --- a/build/jam/repositories/Haiku +++ b/build/jam/repositories/Haiku @@ -10,6 +10,7 @@ SEARCH on $(repoInfo) = $(HAIKU_TOP)/src/data/repository_infos ; local secondaryArchs = $(TARGET_PACKAGING_ARCHS[2-]) ; local packages = [ FFilterByBuildFeatures haiku + haiku_datatranslators haiku_devel haiku_loader diff --git a/src/data/package_infos/generic/haiku b/src/data/package_infos/generic/haiku index ebf8032bfb..ad168edd85 100644 --- a/src/data/package_infos/generic/haiku +++ b/src/data/package_infos/generic/haiku @@ -51,6 +51,8 @@ provides { } requires { + haiku_datatranslators + noto >= 2.7 #ifdef HAIKU_REGULAR_BUILD noto_sans_cjk_jp @@ -105,46 +107,11 @@ requires { #endif #ifdef HAIKU_REGULAR_BUILD -#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_ffmpeg_ENABLED - lib:libavcodec >= 58 - lib:libavfilter >= 7 - lib:libavformat >= 58 - lib:libavutil >= 56 - lib:libswresample >= 3 -#endif #ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_expat_ENABLED lib:libexpat #endif #ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_gutenprint_ENABLED lib:libgutenprint >= 8 #endif -#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_libicns_ENABLED - lib:libicns -#endif -#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_openexr_ENABLED - lib:libilmimf_2_4 - lib:libilmimfutil_2_4 -#endif -#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_jasper_ENABLED - lib:libjasper -#endif -#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_jpeg_ENABLED - lib:libjpeg -#endif -#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_libpng_ENABLED - lib:libpng16 -#endif -#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_libavif_ENABLED - lib:libavif >= 12 -#endif -#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_tiff_ENABLED - lib:libtiff >= 5.6 -#endif -#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_libwebp_ENABLED - lib:libwebp -#endif -#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_libraw_ENABLED - lib:libraw >= 19 -#endif #endif } diff --git a/src/data/package_infos/generic/haiku_datatranslators b/src/data/package_infos/generic/haiku_datatranslators new file mode 100644 index 0000000000..7f58ccee2f --- /dev/null +++ b/src/data/package_infos/generic/haiku_datatranslators @@ -0,0 +1,62 @@ +name haiku_datatranslators +version %HAIKU_VERSION% +architecture %HAIKU_PACKAGING_ARCH% +summary "Haiku data translators" +description "Standard data translators and media format plugins" + +packager "The Haiku build system" +vendor "Haiku Project" + +copyrights "2001-2021 Haiku, Inc." +licenses MIT + +provides { + haiku_datatranslators=%HAIKU_VERSION% +} + +requires { + haiku + +#ifdef HAIKU_REGULAR_BUILD +#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_ffmpeg_ENABLED + lib:libavcodec >= 58 + lib:libavfilter >= 7 + lib:libavformat >= 58 + lib:libavutil >= 56 + lib:libswresample >= 3 +#endif +#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_libicns_ENABLED + lib:libicns +#endif +#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_openexr_ENABLED +#ifdef HAIKU_PACKAGING_ARCH_x86_gcc2 + lib:libilmimf + lib:libilmimfutil +#else + lib:libilmimf_2_4 + lib:libilmimfutil_2_4 +#endif +#endif +#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_jasper_ENABLED + lib:libjasper +#endif +#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_jpeg_ENABLED + lib:libjpeg +#endif +#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_libpng_ENABLED + lib:libpng16 +#endif +#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_libavif_ENABLED + lib:libavif >= 12 +#endif +#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_tiff_ENABLED + lib:libtiff >= 5.6 +#endif +#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_libwebp_ENABLED + lib:libwebp +#endif +#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_libraw_ENABLED + lib:libraw >= 19 +#endif +#endif +} diff --git a/src/data/package_infos/x86_gcc2/haiku b/src/data/package_infos/x86_gcc2/haiku index fa9970259b..d06a29795b 100644 --- a/src/data/package_infos/x86_gcc2/haiku +++ b/src/data/package_infos/x86_gcc2/haiku @@ -48,6 +48,8 @@ provides { } requires { + haiku_datatranslators + noto >= 2.7 #ifdef HAIKU_REGULAR_BUILD noto_sans_cjk_jp @@ -91,45 +93,16 @@ requires { #endif #ifdef HAIKU_REGULAR_BUILD -#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_ffmpeg_ENABLED - lib:libavcodec >= 58 - lib:libavfilter >= 7 - lib:libavformat >= 58 - lib:libavutil >= 56 - lib:libswresample >= 3 -#endif #ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_expat_ENABLED lib:libexpat #endif #ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_gutenprint_ENABLED lib:libgutenprint >= 8 #endif -#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_libicns_ENABLED - lib:libicns -#endif -#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_openexr_ENABLED - lib:libilmimf - lib:libilmimfutil -#endif -#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_jasper_ENABLED - lib:libjasper -#endif -#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_jpeg_ENABLED - lib:libjpeg -#endif -#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_libpng_ENABLED - lib:libpng16 -#endif #ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_openssl_ENABLED lib:libssl lib:libcrypto #endif -#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_tiff_ENABLED - lib:libtiff >= 5.6 -#endif -#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_libwebp_ENABLED - lib:libwebp -#endif #ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_zstd_ENABLED lib:libzstd >= 1 #endif