diff --git a/Jamfile b/Jamfile index 3fe9024754..14f20d119a 100644 --- a/Jamfile +++ b/Jamfile @@ -20,7 +20,7 @@ for architectureObject in [ MultiArchSubDirSetup ] { # Include required packages: # primary architecture AddHaikuImageSystemPackages [ FFilterByBuildFeatures - bash bc freetype libsolv zlib + bash bc freetype zlib !gcc2 @{ coreutils icu74 }@ gcc2 @{ coreutils_x86 icu icu74_x86@secondary_x86 }@ @@ -66,7 +66,7 @@ if $(HAIKU_PACKAGING_ARCHS[2]) { in [ MultiArchSubDirSetup $(HAIKU_PACKAGING_ARCHS[2-]) ] { on $(architectureObject) { AddHaikuImageSystemPackages [ FFilterByBuildFeatures - freetype icu libsolv zlib + freetype icu zlib regular_image @{ ffmpeg6 glu jasper jpeg libavif libicns libpng16 libwebp mesa diff --git a/build/jam/BuildFeatures b/build/jam/BuildFeatures index 0914548e22..74e111a794 100644 --- a/build/jam/BuildFeatures +++ b/build/jam/BuildFeatures @@ -510,30 +510,6 @@ if [ IsPackageAvailable libedit_devel ] { } -# libsolv -if [ IsPackageAvailable libsolv_devel ] { - ExtractBuildFeatureArchives libsolv : - file: base libsolv - runtime: lib - file: devel libsolv_devel - depends: base - libraries: - $(developLibDir)/libsolv.so - $(developLibDir)/libsolvext.so - headers: $(developHeadersDir) - # sources are required for the primary architecture only - primary @{ - file: source libsolv_source - sources: develop/sources/%portRevisionedName%/sources - }@ - ; - - EnableBuildFeatures libsolv ; -} else { - unavailableBuildFeatures += libsolv ; -} - - # qrencode if [ IsPackageAvailable qrencode_kdl_devel ] { ExtractBuildFeatureArchives libqrencode_kdl : diff --git a/build/jam/DefaultBuildProfiles b/build/jam/DefaultBuildProfiles index b21c4fe6e0..446d720c2a 100644 --- a/build/jam/DefaultBuildProfiles +++ b/build/jam/DefaultBuildProfiles @@ -218,7 +218,6 @@ rule DefineDefaultBuildProfiles freetype gcc icu@gcc2 icu74@!gcc2 - libsolv libedit ncurses6 zlib diff --git a/src/build/libpackage/solver/Jamfile b/src/build/libpackage/solver/Jamfile index d8d9e36066..b1b162bfaf 100644 --- a/src/build/libpackage/solver/Jamfile +++ b/src/build/libpackage/solver/Jamfile @@ -1,9 +1,6 @@ SubDir HAIKU_TOP src build libpackage solver ; -UseBuildFeatureHeaders libsolv ; - -local libsolvHeaders = [ BuildFeatureAttribute libsolv : headers : path ] ; -UseHeaders [ FDirName $(libsolvHeaders) solv ] ; +UseHeaders [ FDirName $(HAIKU_TOP) src libs libsolv ] : true ; UsePrivateHeaders shared ; @@ -19,10 +16,7 @@ BuildPlatformSharedLibrary libpackage-add-on-libsolv_build.so : LibsolvSolver.cpp : - libsolvext_build.so libsolv_build.so + libsolvext_build.a libsolv_build.a libpackage_build.so libbe_build.so $(HOST_LIBSTDC++) ; - -Includes [ FGristFiles LibsolvSolver.cpp ] - : [ BuildFeatureAttribute libsolv : headers ] ; diff --git a/src/build/libsolv/Jamfile b/src/build/libsolv/Jamfile index 3cedcf7d79..49f32d2d9e 100644 --- a/src/build/libsolv/Jamfile +++ b/src/build/libsolv/Jamfile @@ -1,21 +1,15 @@ SubDir HAIKU_TOP src build libsolv ; local libsolvSourceBaseDirectory - = [ BuildFeatureAttribute libsolv : sources : path ] ; -local libsolvSourceDirectory = [ FDirName $(libsolvSourceBaseDirectory) src ] ; + = [ FDirName $(HAIKU_TOP) src libs libsolv ] ; +local libsolvSourceDirectory + = [ FDirName $(libsolvSourceBaseDirectory) solv ] ; local libsolvextSourceDirectory = [ FDirName $(libsolvSourceBaseDirectory) ext ] ; -local libsolvMajor = 0 ; -local libsolvMinor = 3 ; -local libsolvPatch = 0 ; -local libsolvVersion = $(libsolvMajor).$(libsolvMinor).$(libsolvPatch) ; - DEFINES = LIBSOLV_INTERNAL HAIKU - ENABLE_HAIKU - VERSION=\\\"$(libsolvVersion)\\\" _GNU_SOURCE ; @@ -40,6 +34,9 @@ switch $(HOST_PLATFORM) { SubDirCcFlags -Wno-sign-compare -Wno-missing-prototypes ; +SubDirCcFlags $(HOST_PIC_CCFLAGS) ; +SubDirC++Flags $(HOST_PIC_C++FLAGS) ; + # libsolv @@ -54,11 +51,8 @@ local libsolvSources = [ FGristFiles ] ; LOCATE on $(libsolvSources) = $(libsolvSourceDirectory) ; -Depends $(libsolvSources) : [ BuildFeatureAttribute libsolv : sources ] ; -MakeLocate libsolv_build.so : $(HOST_BUILD_COMPATIBILITY_LIB_DIR) ; - -BuildPlatformSharedLibrary libsolv_build.so +BuildPlatformStaticLibrary libsolv_build.a : $(libsolvSources) ; @@ -73,44 +67,10 @@ local libsolvextSources = [ FGristFiles ] ; LOCATE on $(libsolvextSources) = $(libsolvextSourceDirectory) ; -Depends $(libsolvextSources) : [ BuildFeatureAttribute libsolv : sources ] ; -USES_BE_API on libsolvext_build.so = true ; +USES_BE_API on libsolvext_build.a = true ; -MakeLocate libsolvext_build.so : $(HOST_BUILD_COMPATIBILITY_LIB_DIR) ; - -BuildPlatformSharedLibrary libsolvext_build.so +BuildPlatformStaticLibrary libsolvext_build.a : $(libsolvextSources) - : - libsolv_build.so - libpackage_build.so - z ; - - -# generate solvversion.h - -actions GenerateLibsolvVersionHeader -{ - sed -e s,@VERSION@,$(LIBSOLV_VERSION),g \ - -e s,@LIBSOLV_MAJOR@,$(LIBSOLV_MAJOR),g \ - -e s,@LIBSOLV_MINOR@,$(LIBSOLV_MINOR),g \ - -e s,@LIBSOLV_PATCH@,$(LIBSOLV_PATCH),g \ - $(2) > $(1) -} - -local versionHeaderIn = solvversion.h.in ; -LOCATE on $(versionHeaderIn) = $(libsolvSourceDirectory) ; -Depends $(versionHeaderIn) : [ BuildFeatureAttribute libsolv : sources ] ; - -local versionHeader = [ FGristFiles solvversion.h ] ; -MakeLocate $(versionHeader) : $(LOCATE_SOURCE) ; -Depends $(versionHeader) : $(versionHeaderIn) ; -LIBSOLV_VERSION on $(versionHeader) = $(libsolvVersion) ; -LIBSOLV_MAJOR on $(versionHeader) = $(libsolvMajor) ; -LIBSOLV_MINOR on $(versionHeader) = $(libsolvMinor) ; -LIBSOLV_PATCH on $(versionHeader) = $(libsolvPatch) ; -GenerateLibsolvVersionHeader $(versionHeader) : $(versionHeaderIn) ; - -Includes $(libsolvSources) $(libsolvextSources) : $(versionHeader) ; diff --git a/src/data/package_infos/generic/haiku b/src/data/package_infos/generic/haiku index 795f005962..5422913207 100644 --- a/src/data/package_infos/generic/haiku +++ b/src/data/package_infos/generic/haiku @@ -101,10 +101,6 @@ requires { #ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_ncurses_ENABLED lib:libncurses >= 6.0 #endif -#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_libsolv_ENABLED - lib:libsolv - lib:libsolvext -#endif #ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_openssl_ENABLED lib:libssl lib:libcrypto diff --git a/src/data/package_infos/x86/haiku_secondary b/src/data/package_infos/x86/haiku_secondary index ba6ccd25b4..95d2c35a76 100644 --- a/src/data/package_infos/x86/haiku_secondary +++ b/src/data/package_infos/x86/haiku_secondary @@ -36,7 +36,5 @@ requires { lib:libtiff_%HAIKU_SECONDARY_PACKAGING_ARCH% >= 5.2 lib:libwebp_%HAIKU_SECONDARY_PACKAGING_ARCH% #endif - lib:libsolv_%HAIKU_SECONDARY_PACKAGING_ARCH% - lib:libsolvext_%HAIKU_SECONDARY_PACKAGING_ARCH% lib:libz_%HAIKU_SECONDARY_PACKAGING_ARCH% } diff --git a/src/data/package_infos/x86_64/haiku_secondary b/src/data/package_infos/x86_64/haiku_secondary index 14b6b101d1..fe968dfefb 100644 --- a/src/data/package_infos/x86_64/haiku_secondary +++ b/src/data/package_infos/x86_64/haiku_secondary @@ -33,8 +33,6 @@ requires { lib:libjpeg_%HAIKU_SECONDARY_PACKAGING_ARCH% lib:libpng_%HAIKU_SECONDARY_PACKAGING_ARCH% #endif - lib:libsolv_%HAIKU_SECONDARY_PACKAGING_ARCH% - lib:libsolvext_%HAIKU_SECONDARY_PACKAGING_ARCH% #ifndef HAIKU_SECONDARY_PACKAGING_ARCH_X86_GCC2 lib:libstdc++_%HAIKU_SECONDARY_PACKAGING_ARCH% lib:libsupc++_%HAIKU_SECONDARY_PACKAGING_ARCH% diff --git a/src/data/package_infos/x86_gcc2/haiku_secondary b/src/data/package_infos/x86_gcc2/haiku_secondary index 6f6942a455..aced659df6 100644 --- a/src/data/package_infos/x86_gcc2/haiku_secondary +++ b/src/data/package_infos/x86_gcc2/haiku_secondary @@ -43,8 +43,6 @@ requires { lib:libswresample_%HAIKU_SECONDARY_PACKAGING_ARCH% >= 4 lib:libzstd_%HAIKU_SECONDARY_PACKAGING_ARCH% >= 1 #endif - lib:libsolv_%HAIKU_SECONDARY_PACKAGING_ARCH% - lib:libsolvext_%HAIKU_SECONDARY_PACKAGING_ARCH% lib:libstdc++_%HAIKU_SECONDARY_PACKAGING_ARCH% lib:libsupc++_%HAIKU_SECONDARY_PACKAGING_ARCH% lib:libz_%HAIKU_SECONDARY_PACKAGING_ARCH% diff --git a/src/kits/package/solver/libsolv/Jamfile b/src/kits/package/solver/libsolv/Jamfile index 9780ecade5..c6841b7f35 100644 --- a/src/kits/package/solver/libsolv/Jamfile +++ b/src/kits/package/solver/libsolv/Jamfile @@ -6,25 +6,20 @@ local architectureObject ; for architectureObject in [ MultiArchSubDirSetup ] { on $(architectureObject) { - UseBuildFeatureHeaders libsolv ; - - local libsolvHeaders - = [ BuildFeatureAttribute libsolv : headers : path ] ; - UseHeaders [ FDirName $(libsolvHeaders) solv ] ; + UseHeaders [ FDirName $(HAIKU_TOP) src libs libsolv ] : true ; + UsePrivateHeaders shared ; AddResources $(libsolv) : LibsolvSolver.rdef ; - UsePrivateHeaders shared ; - SharedLibrary [ MultiArchDefaultGristFiles libpackage-add-on-libsolv.so ] : LibsolvSolver.cpp : package - [ BuildFeatureAttribute libsolv : libraries ] + [ MultiArchDefaultGristFiles libsolv.a libsolvext.a ] be [ TargetLibstdc++ ] ; @@ -32,8 +27,5 @@ for architectureObject in [ MultiArchSubDirSetup ] { # External headers use the C++20 reserved keyword `requires` ObjectC++Flags LibsolvSolver.cpp : -Wno-error=c++20-compat ; } - - Includes [ FGristFiles LibsolvSolver.cpp ] - : [ BuildFeatureAttribute libsolv : headers ] ; } } diff --git a/src/libs/Jamfile b/src/libs/Jamfile index a88c11a6ae..f4c00760f9 100644 --- a/src/libs/Jamfile +++ b/src/libs/Jamfile @@ -8,6 +8,7 @@ SubInclude HAIKU_TOP src libs glut ; SubInclude HAIKU_TOP src libs gnu ; SubInclude HAIKU_TOP src libs icon ; SubInclude HAIKU_TOP src libs iconv ; +SubInclude HAIKU_TOP src libs libsolv ; SubInclude HAIKU_TOP src libs libtelnet ; SubInclude HAIKU_TOP src libs linprog ; SubInclude HAIKU_TOP src libs mapm ; diff --git a/src/libs/libsolv/Jamfile b/src/libs/libsolv/Jamfile new file mode 100644 index 0000000000..f45fa5b004 --- /dev/null +++ b/src/libs/libsolv/Jamfile @@ -0,0 +1,40 @@ +SubDir HAIKU_TOP src libs libsolv ; + +DEFINES = + LIBSOLV_INTERNAL + HAIKU + _GNU_SOURCE + + HAVE_STRCHRNUL + HAVE_FOPENCOOKIE + ; + +SubDirCcFlags -Wno-sign-compare -Wno-missing-prototypes ; + +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + SEARCH_SOURCE += [ FDirName $(SUBDIR) solv ] ; + SEARCH_SOURCE += [ FDirName $(SUBDIR) ext ] ; + + UseBuildFeatureHeaders zlib ; + Includes [ FGristFiles solv_xfopen.c ] + : [ BuildFeatureAttribute zlib : headers ] ; + + StaticLibrary [ MultiArchDefaultGristFiles libsolv.a ] : + bitmap.c chksum.c md5.c sha1.c sha2.c + pool.c poolarch.c poolvendor.c poolid.c strpool.c dirpool.c + solver.c solverdebug.c solvable.c + repo_solv.c repo_write.c repo.c repodata.c repopage.c + selection.c transaction.c policy.c rules.c problems.c + evr.c util.c queue.c + solvversion.c + ; + + StaticLibrary [ MultiArchDefaultGristFiles libsolvext.a ] : + repo_haiku.cpp + solv_xfopen.c + testcase.c + ; + } +} diff --git a/src/libs/libsolv/solv/repo_haiku.h b/src/libs/libsolv/solv/repo_haiku.h new file mode 120000 index 0000000000..4ee814df4c --- /dev/null +++ b/src/libs/libsolv/solv/repo_haiku.h @@ -0,0 +1 @@ +../ext/repo_haiku.h \ No newline at end of file diff --git a/src/tools/get_package_dependencies/Jamfile b/src/tools/get_package_dependencies/Jamfile index 0bba9b052a..1d93496db1 100644 --- a/src/tools/get_package_dependencies/Jamfile +++ b/src/tools/get_package_dependencies/Jamfile @@ -10,6 +10,5 @@ BuildPlatformMain get_package_dependencies : get_package_dependencies.cpp : libpackage-add-on-libsolv_build.so - libsolvext_build.so libsolv_build.so libpackage_build.so $(HOST_LIBBE) $(HOST_LIBSUPC++) $(HOST_LIBSTDC++) ;