commit: f408fff21e7bbab0c4c7ca2925fb9ba7e47c74d9 Author: Christopher Byrne <salah.coronya <AT> gmail <DOT> com> AuthorDate: Fri Feb 16 05:45:16 2024 +0000 Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> CommitDate: Wed Feb 19 21:16:54 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f408fff2
app-misc/brewtarget: Add 4.0.17 Closes: https://bugs.gentoo.org/609056 Closes: https://bugs.gentoo.org/943181 Signed-off-by: Christopher Byrne <salah.coronya <AT> gmail.com> Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org> app-misc/brewtarget/Manifest | 1 + app-misc/brewtarget/brewtarget-4.0.17.ebuild | 52 ++++++++++++++++++++++ .../brewtarget-4.0.17-dont-touch-CFLAGS.patch | 13 ++++++ .../files/brewtarget-4.0.17-find-lupdate.patch | 15 +++++++ .../files/brewtarget-4.0.17-fix-docdir.patch | 13 ++++++ .../brewtarget-4.0.17-no-boost-libbacktrace.patch | 49 ++++++++++++++++++++ .../brewtarget-4.0.17-silence-compiler-noise.patch | 49 ++++++++++++++++++++ .../brewtarget-4.0.17-unbundle-valijson.patch | 29 ++++++++++++ 8 files changed, 221 insertions(+) diff --git a/app-misc/brewtarget/Manifest b/app-misc/brewtarget/Manifest index f73d703c8b43..fe2144aced59 100644 --- a/app-misc/brewtarget/Manifest +++ b/app-misc/brewtarget/Manifest @@ -1 +1,2 @@ +DIST brewtarget-4.0.17.tar.gz 14504859 BLAKE2B 8362f75509faa80a426cb1475333d818e43ca159ee7048361672fd70fe4ebe16ab37d088fecc70953c6e59b51a8c7c83639c210dabd419b55316bde2b02fb808 SHA512 cc8d8fb0b02ec3dbc581d4055b9b46c013795479832340309da5ca19b4a28bad96d4614fe57647281c0e59f1e0d1d6ac5822f5f2b759b1023efd83e8b6c1618b DIST brewtarget_2.3.1.orig.tar.xz 9449200 BLAKE2B 00eda709c6665b2353380d013d55a59068d79f70368e843296f43d2f947c741ed526d4f6820f18c4d5e96866274bce76b2235cc50595882f58f397f651858bf3 SHA512 2ff29496df6df1b4507594905f5b3cdedd472a3e767c5f5dda00d306d092a7bec6f9d67350a830416f0ab457553339ba2f9dd2ea8476ed1dfa7dd4c49adda086 diff --git a/app-misc/brewtarget/brewtarget-4.0.17.ebuild b/app-misc/brewtarget/brewtarget-4.0.17.ebuild new file mode 100644 index 000000000000..b98b22546f71 --- /dev/null +++ b/app-misc/brewtarget/brewtarget-4.0.17.ebuild @@ -0,0 +1,52 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# All tests currently timeout even with a large timeout multiliplier +# so they are commented out and disabled for now + +EAPI=8 + +inherit meson xdg + +DESCRIPTION="Application to create and manage beer recipes" +HOMEPAGE="https://www.brewtarget.beer/" +SRC_URI="https://github.com/Brewtarget/brewtarget/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-3 WTFPL-2" +SLOT="0" +KEYWORDS="~amd64" + +BDEPEND=" + dev-cpp/valijson + dev-qt/qttools:6[linguist] + virtual/pandoc +" +DEPEND=" + dev-libs/boost:=[stacktrace] + dev-libs/openssl:= + dev-libs/xalan-c + dev-libs/xerces-c + dev-qt/qtbase:6[gui,network,sql,sqlite,widgets,xml] + dev-qt/qtmultimedia:6 + dev-qt/qtsvg:6 +" +RDEPEND="${DEPEND}" + +PATCHES=( + # This patch must come first. The next patch requires it. + "${FILESDIR}/${PN}-4.0.17-no-boost-libbacktrace.patch" + "${FILESDIR}/${PN}-4.0.17-unbundle-valijson.patch" + "${FILESDIR}/${PN}-4.0.17-find-lupdate.patch" + "${FILESDIR}/${PN}-4.0.17-fix-docdir.patch" + # These 2 patches must come last + # sed -i -e "/^[^#]/ s/static : true/static : false/g" meson.build + "${FILESDIR}/${PN}-4.0.17-silence-compiler-noise.patch" + # sed -i -e "s/if compiler.get_id() == 'gcc'/if false/" meson.build + "${FILESDIR}/${PN}-4.0.17-dont-touch-CFLAGS.patch" +) + +src_test() { + local -x QT_QPA_PLATFORM=offscreen + + meson_src_test +} diff --git a/app-misc/brewtarget/files/brewtarget-4.0.17-dont-touch-CFLAGS.patch b/app-misc/brewtarget/files/brewtarget-4.0.17-dont-touch-CFLAGS.patch new file mode 100644 index 000000000000..36d62865329e --- /dev/null +++ b/app-misc/brewtarget/files/brewtarget-4.0.17-dont-touch-CFLAGS.patch @@ -0,0 +1,13 @@ +diff --git a/meson.build b/meson.build +index 4952a515..d22a6cac 100644 +--- a/meson.build ++++ b/meson.build +@@ -1568,7 +1568,7 @@ endif + #======================================================================================================================= + #========================================= Compiler-specific settings & flags ========================================== + #======================================================================================================================= +-if compiler.get_id() == 'gcc' ++if false + # + # -g3 should give even more debugging information than -g (which is equivalent to -g2) + # diff --git a/app-misc/brewtarget/files/brewtarget-4.0.17-find-lupdate.patch b/app-misc/brewtarget/files/brewtarget-4.0.17-find-lupdate.patch new file mode 100644 index 000000000000..393e16b08cd6 --- /dev/null +++ b/app-misc/brewtarget/files/brewtarget-4.0.17-find-lupdate.patch @@ -0,0 +1,15 @@ +diff --git a/meson.build b/meson.build +index 506e5aa0..0ea58970 100644 +--- a/meson.build ++++ b/meson.build +@@ -1272,7 +1272,9 @@ if host_machine.system() == 'windows' + elif host_machine.system() == 'linux' + lupdate_name = 'lupdate' + endif +-lupdate_executable = find_program(lupdate_name, required : true) ++lupdate_executable = find_program(lupdate_name, ++ dirs: qtCommonDependencies.get_variable(pkgconfig: 'bindir'), ++ required : true) + + # + # Call lupdate to ensure the .ts files are synced with the source code. We need: diff --git a/app-misc/brewtarget/files/brewtarget-4.0.17-fix-docdir.patch b/app-misc/brewtarget/files/brewtarget-4.0.17-fix-docdir.patch new file mode 100644 index 000000000000..2548810910e9 --- /dev/null +++ b/app-misc/brewtarget/files/brewtarget-4.0.17-fix-docdir.patch @@ -0,0 +1,13 @@ +diff --git a/meson.build b/meson.build +index 506e5aa0..04b2c81f 100644 +--- a/meson.build ++++ b/meson.build +@@ -1205,7 +1205,7 @@ filesToInstall_license = 'LICENSE' + if host_machine.system() == 'linux' + #============================================= Linux Install Directories ============================================ + installSubDir_data = 'share/' + projectName +- installSubDir_doc = 'share/doc/' + projectName ++ installSubDir_doc = 'share/doc/' + projectName + '-' + meson.project_version() + installSubDir_bin = 'bin' + # According to https://specifications.freedesktop.org/menu-spec/menu-spec-1.0.html#paths, .desktop files need to live + # in one of the $XDG_DATA_DIRS/applications/. (Note that $XDG_DATA_DIRS is a colon-separated list of directories, diff --git a/app-misc/brewtarget/files/brewtarget-4.0.17-no-boost-libbacktrace.patch b/app-misc/brewtarget/files/brewtarget-4.0.17-no-boost-libbacktrace.patch new file mode 100644 index 000000000000..77dee642e4da --- /dev/null +++ b/app-misc/brewtarget/files/brewtarget-4.0.17-no-boost-libbacktrace.patch @@ -0,0 +1,49 @@ +diff --git a/meson.build b/meson.build +index 506e5aa0..a044596d 100644 +--- a/meson.build ++++ b/meson.build +@@ -419,11 +419,6 @@ qtTestRunnerDependencies = dependency('qt6', version : minVersionOfQt, modules: + # For Boost, per https://mesonbuild.com/Dependencies.html#boost, we only need to supply module names for libraries we + # need to link against. For the header-only Boost libraries, the 'boost' dependency suffices. + boostModules = [] +-if host_machine.system() == 'linux' +- boostModules += 'stacktrace_backtrace' +- add_global_arguments('-DBOOST_STACKTRACE_LINK', language : 'cpp') +- add_global_arguments('-DBOOST_STACKTRACE_USE_BACKTRACE', language : 'cpp') +-endif + boostDependency = dependency('boost', + version : '>=1.79.0', + modules : boostModules, +@@ -479,14 +474,6 @@ if host_machine.system() != 'windows' + endif + endif + +-# Note that, unlike, say, the parameters to include_directories(), the dirs argument to find_library() must be absolute +-# paths +-libbacktraceDir = join_paths(meson.project_source_root(), 'third-party/libbacktrace/.libs') +-backtraceDependency = compiler.find_library('backtrace', +- required : true, +- static : true, +- dirs : [libbacktraceDir]) +- + #======================================== Find the other libraries we depend on ======================================== + # + # See https://mesonbuild.com/Reference-manual_returned_dep.html for what info we can pull from a dependency object +@@ -537,7 +524,6 @@ message('OpenSSL Library:', openSslDependency.name(), 'found =', openSslDependen + + #==================================================== Other headers ==================================================== + # Other directories to search in for headers. Meson will barf an error if any of these directories does not exist. +-includeDirs = include_directories('src', 'third-party/valijson/include', 'third-party/libbacktrace') + + + #======================================================================================================================= +@@ -1311,8 +1297,7 @@ commonDependencies = [qtCommonDependencies, + xalanDependency, + boostDependency, + dlDependency, +- openSslDependency, # This isn't strictly needed for the testRunner, but no harm comes from including it +- backtraceDependency] ++ openSslDependency] # This isn't strictly needed for the testRunner, but no harm comes from including it + mainExeDependencies = commonDependencies + qtMainExeDependencies + testRunnerDependencies = commonDependencies + qtTestRunnerDependencies + diff --git a/app-misc/brewtarget/files/brewtarget-4.0.17-silence-compiler-noise.patch b/app-misc/brewtarget/files/brewtarget-4.0.17-silence-compiler-noise.patch new file mode 100644 index 000000000000..bd96184d24fc --- /dev/null +++ b/app-misc/brewtarget/files/brewtarget-4.0.17-silence-compiler-noise.patch @@ -0,0 +1,49 @@ +diff --git a/meson.build b/meson.build +index 4952a515..17b99d26 100644 +--- a/meson.build ++++ b/meson.build +@@ -343,7 +343,7 @@ qtCommonDependencies = dependency('qt6', + 'Widgets', + 'Xml'], # TBD: Not sure we need this any more + include_type : 'system', +- static : true) ++ static : false) + # The Qt Gui module is only needed for the main program. (We don't want the tests to try to load it or it could barf + # in a GitHub action that does not have a display running.) + qtMainExeDependencies = dependency('qt6', version : minVersionOfQt, modules: ['Gui']) +@@ -422,7 +422,7 @@ boostModules = [] + boostDependency = dependency('boost', + version : '>=1.79.0', + modules : boostModules, +- static : true) ++ static : false) + message('Boost:', boostDependency.name(), 'found =', boostDependency.found(), 'version =', boostDependency.version()) + + # +@@ -489,7 +489,7 @@ endif + xercesDependency = dependency('XercesC', + version : '>=3.2.2', + required : true, +- static : true) ++ static : false) + xercesLibPaths = xercesDependency.get_variable(cmake : 'PACKAGE_LIBRARIES') + message('Xerces Library:', xercesDependency.name(), 'found =', xercesDependency.found(), + 'version =', xercesDependency.version(), 'path(s)=', xercesLibPaths) +@@ -497,7 +497,7 @@ sharedLibraryPaths += xercesLibPaths + xalanDependency = dependency('XalanC', + version : '>=1.11.0', + required : true, +- static : true) ++ static : false) + xalanLibPaths = xalanDependency.get_variable(cmake : 'PACKAGE_LIBRARIES') + message('Xalan Library:', xalanDependency.name(), 'found =', xalanDependency.found(), + 'version =', xalanDependency.version(), 'path(s)=', xalanLibPaths) +@@ -512,7 +512,7 @@ sharedLibraryPaths += xalanLibPaths + openSslDependency = dependency('OpenSSL', + version : '>=3.0.2', + required : true, +- static : true) ++ static : false) + #openSslLibPaths = openSslDependency.get_variable(cmake : 'PACKAGE_LIBRARIES') + message('OpenSSL Library:', openSslDependency.name(), 'found =', openSslDependency.found(), + 'version =', openSslDependency.version()) diff --git a/app-misc/brewtarget/files/brewtarget-4.0.17-unbundle-valijson.patch b/app-misc/brewtarget/files/brewtarget-4.0.17-unbundle-valijson.patch new file mode 100644 index 000000000000..f6e5475441ee --- /dev/null +++ b/app-misc/brewtarget/files/brewtarget-4.0.17-unbundle-valijson.patch @@ -0,0 +1,29 @@ +diff --git a/meson.build b/meson.build +index a044596d..381a7d79 100644 +--- a/meson.build ++++ b/meson.build +@@ -519,12 +519,10 @@ message('OpenSSL Library:', openSslDependency.name(), 'found =', openSslDependen + #sharedLibraryPaths += openSslLibPaths + + #====================================================== Valijson ======================================================= +-# Don't need to do anything special, other than set include directories below, as it's header-only and we pull it in as +-# a Git submodule. +- ++valijsonDependency = declare_dependency(include_directories: get_option('prefix')/get_option('includedir')/'valijson') + #==================================================== Other headers ==================================================== + # Other directories to search in for headers. Meson will barf an error if any of these directories does not exist. +- ++includeDirs = include_directories('src', 'third-party/libbacktrace') + + #======================================================================================================================= + #============================================= Extra Windows dependencies ============================================== +@@ -1297,7 +1295,8 @@ commonDependencies = [qtCommonDependencies, + xalanDependency, + boostDependency, + dlDependency, +- openSslDependency] # This isn't strictly needed for the testRunner, but no harm comes from including it ++ openSslDependency, # This isn't strictly needed for the testRunner, but no harm comes from including it ++ valijsonDependency] + mainExeDependencies = commonDependencies + qtMainExeDependencies + testRunnerDependencies = commonDependencies + qtTestRunnerDependencies +