commit:     1e2360d46cbb8839d8382753f9d665f3aa6dbf36
Author:     Takuya Wakazono <pastalian46 <AT> gmail <DOT> com>
AuthorDate: Sun Jul 28 12:19:42 2024 +0000
Commit:     Lucio Sauer <watermanpaint <AT> posteo <DOT> net>
CommitDate: Sun Jul 28 12:21:42 2024 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=1e2360d4

sys-apps/dnf5: new package, add 5.2.5.0

Signed-off-by: Takuya Wakazono <pastalian46 <AT> gmail.com>

 sys-apps/dnf5/Manifest                             |  1 +
 sys-apps/dnf5/dnf5-5.2.5.0.ebuild                  | 75 ++++++++++++++++++++++
 .../dnf5/files/dnf5-5.2.5.0-remove-empty-dir.patch | 10 +++
 .../dnf5/files/dnf5-5.2.5.0-sandbox-test.patch     | 18 ++++++
 sys-apps/dnf5/metadata.xml                         | 11 ++++
 5 files changed, 115 insertions(+)

diff --git a/sys-apps/dnf5/Manifest b/sys-apps/dnf5/Manifest
new file mode 100644
index 000000000..626508bd3
--- /dev/null
+++ b/sys-apps/dnf5/Manifest
@@ -0,0 +1 @@
+DIST dnf5-5.2.5.0.tar.gz 1303914 BLAKE2B 
c9fd30aaa74e7e063b1ffbce645a839ba1b82aad92bae70299254a6a62e087246d006af58205f46720f57c1f1eb193eaabe323b6b8d67b31b4ce763b98e573f5
 SHA512 
9339bdb39a2b55006941909bd9c5e2ebba01258a15952952c346d88bb270cf51b2db91d1938b2bb8ace3c20c58dab3ec11b25454394d270de76580ea6ee49980

diff --git a/sys-apps/dnf5/dnf5-5.2.5.0.ebuild 
b/sys-apps/dnf5/dnf5-5.2.5.0.ebuild
new file mode 100644
index 000000000..3274237e9
--- /dev/null
+++ b/sys-apps/dnf5/dnf5-5.2.5.0.ebuild
@@ -0,0 +1,75 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="Command-line package manager"
+HOMEPAGE="https://github.com/rpm-software-management/dnf5";
+SRC_URI="https://github.com/rpm-software-management/dnf5/archive/refs/tags/${PV}.tar.gz
 -> ${P}.tar.gz"
+
+LICENSE="GPL-2+ LGPL-2.1+"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="nls systemd test"
+PROPERTIES="test_network"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+       >=app-arch/rpm-4.17.0
+       dev-cpp/sdbus-c++:=
+       dev-cpp/toml11
+       >=dev-db/sqlite-3.35.0:3
+       >=dev-libs/glib-2.46.0:2
+       dev-libs/json-c:=
+       dev-libs/libfmt:=
+       >=dev-libs/librepo-1.17.1
+       >=dev-libs/libsolv-0.7.25
+       dev-libs/libxml2
+       sys-apps/util-linux
+       >=sys-libs/libmodulemd-2.11.2
+       systemd? ( sys-apps/systemd:= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+       dev-python/breathe
+       dev-python/sphinx
+       virtual/pkgconfig
+       test? (
+               app-arch/createrepo_c
+               dev-util/cppunit
+       )
+"
+
+PATCHES=(
+       # Prevent empty cache directory from being created.
+       "${FILESDIR}/${P}-remove-empty-dir.patch"
+       # Prevent test suite from writing to system files.
+       "${FILESDIR}/${P}-sandbox-test.patch"
+)
+
+src_prepare() {
+       cmake_src_prepare
+       # Replace hardcoded TMPDIR.
+       # sed -i "s|/tmp/|${T}/|" test/libdnf5/utils/test_fs.cpp || die
+}
+
+src_configure() {
+       local mycmakeargs=(
+               -DWITH_HTML=OFF
+               -DWITH_PERL5=OFF
+               -DWITH_PYTHON3=OFF
+               -DWITH_RUBY=OFF
+               -DWITH_ZCHUNK=OFF
+               -DWITH_SYSTEMD=$(usex systemd)
+               -DWITH_TESTS=$(usex test)
+               -DWITH_TRANSLATIONS=$(usex nls)
+       )
+       cmake_src_configure
+}
+
+src_compile() {
+       cmake_src_compile
+       cmake_src_compile doc-man
+}

diff --git a/sys-apps/dnf5/files/dnf5-5.2.5.0-remove-empty-dir.patch 
b/sys-apps/dnf5/files/dnf5-5.2.5.0-remove-empty-dir.patch
new file mode 100644
index 000000000..e82fdb6fa
--- /dev/null
+++ b/sys-apps/dnf5/files/dnf5-5.2.5.0-remove-empty-dir.patch
@@ -0,0 +1,10 @@
+--- a/libdnf5/CMakeLists.txt
++++ b/libdnf5/CMakeLists.txt
+@@ -136,7 +136,6 @@ configure_file("libdnf5.pc.in" 
${CMAKE_CURRENT_BINARY_DIR}/libdnf5.pc @ONLY)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libdnf5.pc DESTINATION 
${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig)
+ 
+ # Makes an empty directory for libdnf5 cache
+-install(DIRECTORY DESTINATION 
"${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/cache/libdnf5")
+ 
+ # Makes an empty directory for libdnf5 distribution drop-in configuration 
files
+ install(DIRECTORY DESTINATION 
"${CMAKE_INSTALL_PREFIX}/share/dnf5/libdnf.conf.d")

diff --git a/sys-apps/dnf5/files/dnf5-5.2.5.0-sandbox-test.patch 
b/sys-apps/dnf5/files/dnf5-5.2.5.0-sandbox-test.patch
new file mode 100644
index 000000000..2f5fe26da
--- /dev/null
+++ b/sys-apps/dnf5/files/dnf5-5.2.5.0-sandbox-test.patch
@@ -0,0 +1,18 @@
+Prevent test suite from writing to system files.
+--- a/test/data/build-rpms-and-repos.sh
++++ b/test/data/build-rpms-and-repos.sh
+@@ -32,12 +32,14 @@ function build_rpms() {
+ 
+     # Note: _build_name_fmt requires escaped %% for use in headerSprintf()
+     rpmbuild -ba \
++        --dbpath "${RPMBUILD_TOPDIR}" \
+         --define="_topdir ${RPMBUILD_TOPDIR}" \
+         --define="_srcrpmdir ${TARGET_DIR}" \
+         --define="_rpmdir ${TARGET_DIR}" \
+         --define="_build_name_fmt 
%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm" \
+         --define="_source_payload w1.gzdio" \
+         --define="_binary_payload w1.gzdio" \
++        --nodeps \
+         "${SPEC}"
+ 
+     rm -rf "${RPMBUILD_TOPDIR}"

diff --git a/sys-apps/dnf5/metadata.xml b/sys-apps/dnf5/metadata.xml
new file mode 100644
index 000000000..2db61dc2c
--- /dev/null
+++ b/sys-apps/dnf5/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+  <maintainer type="person">
+    <email>[email protected]</email>
+    <name>Takuya Wakazono</name>
+  </maintainer>
+  <upstream>
+    <remote-id type="github">rpm-software-management/dnf5</remote-id>
+  </upstream>
+</pkgmetadata>

Reply via email to