Switch to using the vendored libsolv.

Package dependency resolution seems to still be working OK.
This commit is contained in:
Augustin Cavalier
2024-07-27 16:57:40 -04:00
parent f491972ca9
commit bc2428853f
14 changed files with 58 additions and 106 deletions
+2 -2
View File
@@ -20,7 +20,7 @@ for architectureObject in [ MultiArchSubDirSetup ] {
# Include required packages: # Include required packages:
# primary architecture # primary architecture
AddHaikuImageSystemPackages [ FFilterByBuildFeatures AddHaikuImageSystemPackages [ FFilterByBuildFeatures
bash bc freetype libsolv zlib bash bc freetype zlib
!gcc2 @{ coreutils icu74 }@ !gcc2 @{ coreutils icu74 }@
gcc2 @{ coreutils_x86 icu icu74_x86@secondary_x86 }@ gcc2 @{ coreutils_x86 icu icu74_x86@secondary_x86 }@
@@ -66,7 +66,7 @@ if $(HAIKU_PACKAGING_ARCHS[2]) {
in [ MultiArchSubDirSetup $(HAIKU_PACKAGING_ARCHS[2-]) ] { in [ MultiArchSubDirSetup $(HAIKU_PACKAGING_ARCHS[2-]) ] {
on $(architectureObject) { on $(architectureObject) {
AddHaikuImageSystemPackages [ FFilterByBuildFeatures AddHaikuImageSystemPackages [ FFilterByBuildFeatures
freetype icu libsolv zlib freetype icu zlib
regular_image @{ regular_image @{
ffmpeg6 glu jasper jpeg libavif libicns libpng16 libwebp mesa ffmpeg6 glu jasper jpeg libavif libicns libpng16 libwebp mesa
-24
View File
@@ -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 # qrencode
if [ IsPackageAvailable qrencode_kdl_devel ] { if [ IsPackageAvailable qrencode_kdl_devel ] {
ExtractBuildFeatureArchives libqrencode_kdl : ExtractBuildFeatureArchives libqrencode_kdl :
-1
View File
@@ -218,7 +218,6 @@ rule DefineDefaultBuildProfiles
freetype freetype
gcc gcc
icu@gcc2 icu74@!gcc2 icu@gcc2 icu74@!gcc2
libsolv
libedit libedit
ncurses6 ncurses6
zlib zlib
+2 -8
View File
@@ -1,9 +1,6 @@
SubDir HAIKU_TOP src build libpackage solver ; SubDir HAIKU_TOP src build libpackage solver ;
UseBuildFeatureHeaders libsolv ; UseHeaders [ FDirName $(HAIKU_TOP) src libs libsolv ] : true ;
local libsolvHeaders = [ BuildFeatureAttribute libsolv : headers : path ] ;
UseHeaders [ FDirName $(libsolvHeaders) solv ] ;
UsePrivateHeaders shared ; UsePrivateHeaders shared ;
@@ -19,10 +16,7 @@ BuildPlatformSharedLibrary libpackage-add-on-libsolv_build.so
: :
LibsolvSolver.cpp LibsolvSolver.cpp
: :
libsolvext_build.so libsolv_build.so libsolvext_build.a libsolv_build.a
libpackage_build.so libpackage_build.so
libbe_build.so $(HOST_LIBSTDC++) libbe_build.so $(HOST_LIBSTDC++)
; ;
Includes [ FGristFiles LibsolvSolver.cpp ]
: [ BuildFeatureAttribute libsolv : headers ] ;
+9 -49
View File
@@ -1,21 +1,15 @@
SubDir HAIKU_TOP src build libsolv ; SubDir HAIKU_TOP src build libsolv ;
local libsolvSourceBaseDirectory local libsolvSourceBaseDirectory
= [ BuildFeatureAttribute libsolv : sources : path ] ; = [ FDirName $(HAIKU_TOP) src libs libsolv ] ;
local libsolvSourceDirectory = [ FDirName $(libsolvSourceBaseDirectory) src ] ; local libsolvSourceDirectory
= [ FDirName $(libsolvSourceBaseDirectory) solv ] ;
local libsolvextSourceDirectory local libsolvextSourceDirectory
= [ FDirName $(libsolvSourceBaseDirectory) ext ] ; = [ FDirName $(libsolvSourceBaseDirectory) ext ] ;
local libsolvMajor = 0 ;
local libsolvMinor = 3 ;
local libsolvPatch = 0 ;
local libsolvVersion = $(libsolvMajor).$(libsolvMinor).$(libsolvPatch) ;
DEFINES = DEFINES =
LIBSOLV_INTERNAL LIBSOLV_INTERNAL
HAIKU HAIKU
ENABLE_HAIKU
VERSION=\\\"$(libsolvVersion)\\\"
_GNU_SOURCE _GNU_SOURCE
; ;
@@ -40,6 +34,9 @@ switch $(HOST_PLATFORM) {
SubDirCcFlags -Wno-sign-compare -Wno-missing-prototypes ; SubDirCcFlags -Wno-sign-compare -Wno-missing-prototypes ;
SubDirCcFlags $(HOST_PIC_CCFLAGS) ;
SubDirC++Flags $(HOST_PIC_C++FLAGS) ;
# libsolv # libsolv
@@ -54,11 +51,8 @@ local libsolvSources = [ FGristFiles
] ; ] ;
LOCATE on $(libsolvSources) = $(libsolvSourceDirectory) ; LOCATE on $(libsolvSources) = $(libsolvSourceDirectory) ;
Depends $(libsolvSources) : [ BuildFeatureAttribute libsolv : sources ] ;
MakeLocate libsolv_build.so : $(HOST_BUILD_COMPATIBILITY_LIB_DIR) ; BuildPlatformStaticLibrary libsolv_build.a
BuildPlatformSharedLibrary libsolv_build.so
: :
$(libsolvSources) $(libsolvSources)
; ;
@@ -73,44 +67,10 @@ local libsolvextSources = [ FGristFiles
] ; ] ;
LOCATE on $(libsolvextSources) = $(libsolvextSourceDirectory) ; 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) ; BuildPlatformStaticLibrary libsolvext_build.a
BuildPlatformSharedLibrary libsolvext_build.so
: :
$(libsolvextSources) $(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) ;
-4
View File
@@ -101,10 +101,6 @@ requires {
#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_ncurses_ENABLED #ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_ncurses_ENABLED
lib:libncurses >= 6.0 lib:libncurses >= 6.0
#endif #endif
#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_libsolv_ENABLED
lib:libsolv
lib:libsolvext
#endif
#ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_openssl_ENABLED #ifdef HAIKU_BUILD_FEATURE_%HAIKU_PACKAGING_ARCH%_openssl_ENABLED
lib:libssl lib:libssl
lib:libcrypto lib:libcrypto
@@ -36,7 +36,5 @@ requires {
lib:libtiff_%HAIKU_SECONDARY_PACKAGING_ARCH% >= 5.2 lib:libtiff_%HAIKU_SECONDARY_PACKAGING_ARCH% >= 5.2
lib:libwebp_%HAIKU_SECONDARY_PACKAGING_ARCH% lib:libwebp_%HAIKU_SECONDARY_PACKAGING_ARCH%
#endif #endif
lib:libsolv_%HAIKU_SECONDARY_PACKAGING_ARCH%
lib:libsolvext_%HAIKU_SECONDARY_PACKAGING_ARCH%
lib:libz_%HAIKU_SECONDARY_PACKAGING_ARCH% lib:libz_%HAIKU_SECONDARY_PACKAGING_ARCH%
} }
@@ -33,8 +33,6 @@ requires {
lib:libjpeg_%HAIKU_SECONDARY_PACKAGING_ARCH% lib:libjpeg_%HAIKU_SECONDARY_PACKAGING_ARCH%
lib:libpng_%HAIKU_SECONDARY_PACKAGING_ARCH% lib:libpng_%HAIKU_SECONDARY_PACKAGING_ARCH%
#endif #endif
lib:libsolv_%HAIKU_SECONDARY_PACKAGING_ARCH%
lib:libsolvext_%HAIKU_SECONDARY_PACKAGING_ARCH%
#ifndef HAIKU_SECONDARY_PACKAGING_ARCH_X86_GCC2 #ifndef HAIKU_SECONDARY_PACKAGING_ARCH_X86_GCC2
lib:libstdc++_%HAIKU_SECONDARY_PACKAGING_ARCH% lib:libstdc++_%HAIKU_SECONDARY_PACKAGING_ARCH%
lib:libsupc++_%HAIKU_SECONDARY_PACKAGING_ARCH% lib:libsupc++_%HAIKU_SECONDARY_PACKAGING_ARCH%
@@ -43,8 +43,6 @@ requires {
lib:libswresample_%HAIKU_SECONDARY_PACKAGING_ARCH% >= 4 lib:libswresample_%HAIKU_SECONDARY_PACKAGING_ARCH% >= 4
lib:libzstd_%HAIKU_SECONDARY_PACKAGING_ARCH% >= 1 lib:libzstd_%HAIKU_SECONDARY_PACKAGING_ARCH% >= 1
#endif #endif
lib:libsolv_%HAIKU_SECONDARY_PACKAGING_ARCH%
lib:libsolvext_%HAIKU_SECONDARY_PACKAGING_ARCH%
lib:libstdc++_%HAIKU_SECONDARY_PACKAGING_ARCH% lib:libstdc++_%HAIKU_SECONDARY_PACKAGING_ARCH%
lib:libsupc++_%HAIKU_SECONDARY_PACKAGING_ARCH% lib:libsupc++_%HAIKU_SECONDARY_PACKAGING_ARCH%
lib:libz_%HAIKU_SECONDARY_PACKAGING_ARCH% lib:libz_%HAIKU_SECONDARY_PACKAGING_ARCH%
+3 -11
View File
@@ -6,25 +6,20 @@ local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] { for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) { on $(architectureObject) {
UseBuildFeatureHeaders libsolv ; UseHeaders [ FDirName $(HAIKU_TOP) src libs libsolv ] : true ;
UsePrivateHeaders shared ;
local libsolvHeaders
= [ BuildFeatureAttribute libsolv : headers : path ] ;
UseHeaders [ FDirName $(libsolvHeaders) solv ] ;
AddResources $(libsolv) : AddResources $(libsolv) :
LibsolvSolver.rdef LibsolvSolver.rdef
; ;
UsePrivateHeaders shared ;
SharedLibrary SharedLibrary
[ MultiArchDefaultGristFiles libpackage-add-on-libsolv.so ] [ MultiArchDefaultGristFiles libpackage-add-on-libsolv.so ]
: :
LibsolvSolver.cpp LibsolvSolver.cpp
: :
package package
[ BuildFeatureAttribute libsolv : libraries ] [ MultiArchDefaultGristFiles libsolv.a libsolvext.a ]
be [ TargetLibstdc++ ] be [ TargetLibstdc++ ]
; ;
@@ -32,8 +27,5 @@ for architectureObject in [ MultiArchSubDirSetup ] {
# External headers use the C++20 reserved keyword `requires` # External headers use the C++20 reserved keyword `requires`
ObjectC++Flags LibsolvSolver.cpp : -Wno-error=c++20-compat ; ObjectC++Flags LibsolvSolver.cpp : -Wno-error=c++20-compat ;
} }
Includes [ FGristFiles LibsolvSolver.cpp ]
: [ BuildFeatureAttribute libsolv : headers ] ;
} }
} }
+1
View File
@@ -8,6 +8,7 @@ SubInclude HAIKU_TOP src libs glut ;
SubInclude HAIKU_TOP src libs gnu ; SubInclude HAIKU_TOP src libs gnu ;
SubInclude HAIKU_TOP src libs icon ; SubInclude HAIKU_TOP src libs icon ;
SubInclude HAIKU_TOP src libs iconv ; SubInclude HAIKU_TOP src libs iconv ;
SubInclude HAIKU_TOP src libs libsolv ;
SubInclude HAIKU_TOP src libs libtelnet ; SubInclude HAIKU_TOP src libs libtelnet ;
SubInclude HAIKU_TOP src libs linprog ; SubInclude HAIKU_TOP src libs linprog ;
SubInclude HAIKU_TOP src libs mapm ; SubInclude HAIKU_TOP src libs mapm ;
+40
View File
@@ -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
;
}
}
+1
View File
@@ -0,0 +1 @@
../ext/repo_haiku.h
@@ -10,6 +10,5 @@ BuildPlatformMain <build>get_package_dependencies :
get_package_dependencies.cpp get_package_dependencies.cpp
: :
libpackage-add-on-libsolv_build.so libpackage-add-on-libsolv_build.so
libsolvext_build.so libsolv_build.so
libpackage_build.so $(HOST_LIBBE) $(HOST_LIBSUPC++) $(HOST_LIBSTDC++) libpackage_build.so $(HOST_LIBBE) $(HOST_LIBSUPC++) $(HOST_LIBSTDC++)
; ;