From 0d185bd99f9e40913f678af0fc224add2e1d2f14 Mon Sep 17 00:00:00 2001 From: fanquake Date: Mon, 11 Nov 2024 16:19:06 +0000 Subject: [PATCH 1/7] doc: update depends doc to prefer .cmake outputs --- depends/packages.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/depends/packages.md b/depends/packages.md index 7a7a42afa10..6b458f22dd4 100644 --- a/depends/packages.md +++ b/depends/packages.md @@ -153,8 +153,8 @@ Most autotools projects can be properly staged using: ## Build outputs: In general, the output of a depends package should not contain any libtool -archives. Instead, the package should output `.pc` (`pkg-config`) files where -possible. +archives or `.pc` (`pkg-config`) files. Instead, the package should output +`.cmake` (CMake) files where possible. From the [Gentoo Wiki entry](https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Handling_Libtool_Archives): From e3e648cf410d30185927d031c81a85d5fa890b8c Mon Sep 17 00:00:00 2001 From: fanquake Date: Mon, 11 Nov 2024 16:07:41 +0000 Subject: [PATCH 2/7] depends: drop pkg-config option from Qt build --- depends/packages/qt.mk | 6 ++---- depends/patches/qt/fix_qt_pkgconfig.patch | 11 ----------- 2 files changed, 2 insertions(+), 15 deletions(-) delete mode 100644 depends/patches/qt/fix_qt_pkgconfig.patch diff --git a/depends/packages/qt.mk b/depends/packages/qt.mk index 917e1799322..4bae6403bf2 100644 --- a/depends/packages/qt.mk +++ b/depends/packages/qt.mk @@ -10,7 +10,6 @@ $(package)_linguist_tools = lrelease lupdate lconvert $(package)_patches = qt.pro $(package)_patches += qttools_src.pro $(package)_patches += mac-qmake.conf -$(package)_patches += fix_qt_pkgconfig.patch $(package)_patches += no-xlib.patch $(package)_patches += dont_hardcode_pwd.patch $(package)_patches += qtbase-moc-ignore-gcc-macro.patch @@ -64,6 +63,7 @@ $(package)_config_opts += -no-mimetype-database $(package)_config_opts += -no-mtdev $(package)_config_opts += -no-openssl $(package)_config_opts += -no-openvg +$(package)_config_opts += -no-pkg-config $(package)_config_opts += -no-reduce-relocations $(package)_config_opts += -no-schannel $(package)_config_opts += -no-sctp @@ -84,7 +84,6 @@ $(package)_config_opts += -nomake examples $(package)_config_opts += -nomake tests $(package)_config_opts += -nomake tools $(package)_config_opts += -opensource -$(package)_config_opts += -pkg-config $(package)_config_opts += -prefix $(host_prefix) $(package)_config_opts += -qt-libpng $(package)_config_opts += -qt-pcre @@ -226,7 +225,6 @@ define $(package)_preprocess_cmds cp $($(package)_patch_dir)/qttools_src.pro qttools/src/src.pro && \ patch -p1 -i $($(package)_patch_dir)/fix-macos-linker.patch && \ patch -p1 -i $($(package)_patch_dir)/dont_hardcode_pwd.patch && \ - patch -p1 -i $($(package)_patch_dir)/fix_qt_pkgconfig.patch && \ patch -p1 -i $($(package)_patch_dir)/no-xlib.patch && \ patch -p1 -i $($(package)_patch_dir)/qtbase-moc-ignore-gcc-macro.patch && \ patch -p1 -i $($(package)_patch_dir)/memory_resource.patch && \ @@ -273,6 +271,6 @@ define $(package)_stage_cmds endef define $(package)_postprocess_cmds - rm -rf doc/ native/lib/ && \ + rm -rf doc/ native/lib/ lib/pkgconfig/ && \ rm -f lib/lib*.la endef diff --git a/depends/patches/qt/fix_qt_pkgconfig.patch b/depends/patches/qt/fix_qt_pkgconfig.patch deleted file mode 100644 index 73f4d89f735..00000000000 --- a/depends/patches/qt/fix_qt_pkgconfig.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- old/qtbase/mkspecs/features/qt_module.prf -+++ new/qtbase/mkspecs/features/qt_module.prf -@@ -269,7 +269,7 @@ load(qt_installs) - load(qt_targets) - - # this builds on top of qt_common --!internal_module:if(unix|mingw):!if(darwin:debug_and_release:CONFIG(debug, debug|release)) { -+if(unix|mingw):!if(darwin:debug_and_release:CONFIG(debug, debug|release)) { - CONFIG += create_pc - QMAKE_PKGCONFIG_DESTDIR = pkgconfig - host_build: \ From 8ca85651c8350a6edb069eae0f88cf03c6eae0d5 Mon Sep 17 00:00:00 2001 From: fanquake Date: Mon, 11 Nov 2024 15:37:53 +0000 Subject: [PATCH 3/7] guix: move pkg-config to Linux builds This is no-longer needed for macOS or Windows, and is only required on Linux for a Qt sub dependency (fontconfig to find freetype). --- contrib/guix/manifest.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/guix/manifest.scm b/contrib/guix/manifest.scm index e5ebecbf939..4ee98c096e6 100644 --- a/contrib/guix/manifest.scm +++ b/contrib/guix/manifest.scm @@ -512,7 +512,6 @@ inspecting signatures in Mach-O binaries.") gcc-toolchain-12 cmake-minimal gnu-make - pkg-config ;; Scripting python-minimal ;; (3.10) ;; Git @@ -528,6 +527,7 @@ inspecting signatures in Mach-O binaries.") osslsigncode)) ((string-contains target "-linux-") (list bison + pkg-config (list gcc-toolchain-12 "static") (make-bitcoin-cross-toolchain target))) ((string-contains target "darwin") From 17e79c92607e2e32b48ffd388828184c5d1a65df Mon Sep 17 00:00:00 2001 From: fanquake Date: Wed, 13 Nov 2024 10:28:55 +0000 Subject: [PATCH 4/7] depends: fully remove libtool archives from Qt build `Qt5Zlib.la` was hanging around. --- depends/packages/qt.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/depends/packages/qt.mk b/depends/packages/qt.mk index 4bae6403bf2..727dcfc9eff 100644 --- a/depends/packages/qt.mk +++ b/depends/packages/qt.mk @@ -272,5 +272,5 @@ endef define $(package)_postprocess_cmds rm -rf doc/ native/lib/ lib/pkgconfig/ && \ - rm -f lib/lib*.la + rm -f lib/lib*.la lib/Qt5*.la endef From a8fe1fd38bf496356dc4f28963d4edfa75fe04a5 Mon Sep 17 00:00:00 2001 From: fanquake Date: Wed, 13 Nov 2024 10:51:54 +0000 Subject: [PATCH 5/7] depends: better cleanup after fontconfig --- depends/packages/fontconfig.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/depends/packages/fontconfig.mk b/depends/packages/fontconfig.mk index 6baaecc55a7..bd20d7c9ff7 100644 --- a/depends/packages/fontconfig.mk +++ b/depends/packages/fontconfig.mk @@ -29,5 +29,5 @@ define $(package)_stage_cmds endef define $(package)_postprocess_cmds - rm -rf var lib/*.la + rm -rf bin etc share var lib/*.la endef From 319a4e82614283afb3dbc5d38ff3b9d17fb911b3 Mon Sep 17 00:00:00 2001 From: fanquake Date: Thu, 14 Nov 2024 13:27:34 +0000 Subject: [PATCH 6/7] depends: drop sqlite pkgconfig file --- depends/packages/sqlite.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/depends/packages/sqlite.mk b/depends/packages/sqlite.mk index d803a375a6e..1cb2e299b9b 100644 --- a/depends/packages/sqlite.mk +++ b/depends/packages/sqlite.mk @@ -31,5 +31,6 @@ define $(package)_stage_cmds endef define $(package)_postprocess_cmds + rm -rf lib/pkgconfig && \ rm lib/*.la endef From bcd82b13f4649e57d7d106856aab7b2a6296d728 Mon Sep 17 00:00:00 2001 From: TheCharlatan Date: Thu, 14 Nov 2024 10:58:14 +0100 Subject: [PATCH 7/7] Remove pkgconfig from toolchain file --- depends/toolchain.cmake.in | 9 --------- 1 file changed, 9 deletions(-) diff --git a/depends/toolchain.cmake.in b/depends/toolchain.cmake.in index 37a0c670ddf..69ff3cfb74e 100644 --- a/depends/toolchain.cmake.in +++ b/depends/toolchain.cmake.in @@ -87,15 +87,6 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT CMAKE_HOST_APPLE) set(CMAKE_FRAMEWORK_PATH "@OSX_SDK@/System/Library/Frameworks") endif() - -# Customize pkg-config behaviour. -cmake_path(APPEND CMAKE_FIND_ROOT_PATH "lib" "pkgconfig" OUTPUT_VARIABLE pkg_config_path) -set(ENV{PKG_CONFIG_PATH} ${pkg_config_path}) -set(ENV{PKG_CONFIG_LIBDIR} ${pkg_config_path}) -unset(pkg_config_path) -set(PKG_CONFIG_ARGN --static) - - # Set configuration options for the main build system. set(qt_packages @qt_packages@) if("${qt_packages}" STREQUAL "")