commit:     a11e14dc7b67dc0e99e5f8fbfbe2a78872984539
Author:     Marek Szuba <marecki <AT> gentoo <DOT> org>
AuthorDate: Wed Mar  1 23:08:19 2023 +0000
Commit:     Marek Szuba <marecki <AT> gentoo <DOT> org>
CommitDate: Wed Mar  1 23:11:59 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a11e14dc

sys-libs/libblockdev: fix documentation building on non-bash systems

Closes: https://bugs.gentoo.org/890993
Signed-off-by: Marek Szuba <marecki <AT> gentoo.org>

 .../files/libblockdev-2.28-sh_tests.patch          |  23 ++++
 sys-libs/libblockdev/libblockdev-2.28-r1.ebuild    | 136 +++++++++++++++++++++
 2 files changed, 159 insertions(+)

diff --git a/sys-libs/libblockdev/files/libblockdev-2.28-sh_tests.patch 
b/sys-libs/libblockdev/files/libblockdev-2.28-sh_tests.patch
new file mode 100644
index 000000000000..2fbeaf49f233
--- /dev/null
+++ b/sys-libs/libblockdev/files/libblockdev-2.28-sh_tests.patch
@@ -0,0 +1,23 @@
+bash is fine with "test . == ." but e.g. dash fails on not having
+the two dots quoted as strings.
+
+--- a/docs/Makefile.am
++++ b/docs/Makefile.am
+@@ -2,7 +2,7 @@
+ 
+ html-doc.stamp: ${srcdir}/libblockdev-docs.xml 
${srcdir}/libblockdev-sections.txt $(wildcard ${srcdir}/../src/plugins/*.[ch]) 
$(wildcard ${srcdir}/../src/lib/*.[ch]) $(wildcard 
${srcdir}/../src/utils/*.[ch])
+       touch ${builddir}/html-doc.stamp
+-      test ${builddir} == ${srcdir} || cp ${srcdir}/libblockdev-sections.txt 
${srcdir}/libblockdev-docs.xml ${builddir}
++      test "${builddir}" == "${srcdir}" || cp 
${srcdir}/libblockdev-sections.txt ${srcdir}/libblockdev-docs.xml ${builddir}
+       gtkdoc-scan --rebuild-types --module=libblockdev 
--source-dir=${srcdir}/../src/plugins/ --source-dir=${srcdir}/../src/lib/ 
--source-dir=${srcdir}/../src/utils/
+       gtkdoc-mkdb --module=libblockdev --output-format=xml 
--source-dir=${srcdir}/../src/plugins/ --source-dir=${srcdir}/../src/lib/ 
--source-dir=${srcdir}/../src/utils/ --source-suffixes=c,h
+       test -d ${builddir}/html || mkdir ${builddir}/html
+@@ -13,7 +13,7 @@
+       -rm -rf ${builddir}/html
+       -rm -rf ${builddir}/xml
+       test ! -f ${builddir}/html-doc.stamp || rm ${builddir}/html-doc.stamp
+-      test ${builddir} == ${srcdir} || rm -f 
${builddir}/libblockdev-sections.txt ${builddir}/libblockdev-docs.xml
++      test "${builddir}" == "${srcdir}" || rm -f 
${builddir}/libblockdev-sections.txt ${builddir}/libblockdev-docs.xml
+ 
+ install-data-local:
+       test -d ${DESTDIR}${datadir}/gtk-doc/html/libblockdev || mkdir -p 
${DESTDIR}${datadir}/gtk-doc/html/libblockdev

diff --git a/sys-libs/libblockdev/libblockdev-2.28-r1.ebuild 
b/sys-libs/libblockdev/libblockdev-2.28-r1.ebuild
new file mode 100644
index 000000000000..0fa5e1d604f8
--- /dev/null
+++ b/sys-libs/libblockdev/libblockdev-2.28-r1.ebuild
@@ -0,0 +1,136 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+inherit autotools python-single-r1 xdg-utils
+
+DESCRIPTION="A library for manipulating block devices"
+HOMEPAGE="https://github.com/storaged-project/libblockdev";
+if [[ "${PV}" == *9999 ]] ; then
+       inherit git-r3
+       EGIT_REPO_URI="https://github.com/storaged-project/libblockdev.git";
+       BDEPEND="
+               sys-devel/autoconf-archive
+       "
+else
+       MY_PV="${PV}-1"
+       
SRC_URI="https://github.com/storaged-project/${PN}/releases/download/${MY_PV}/${P}.tar.gz";
+       KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~loong ~mips ~ppc ~ppc64 
~riscv ~sparc ~x86"
+fi
+LICENSE="LGPL-2+"
+SLOT="0"
+IUSE="bcache +cryptsetup device-mapper dmraid escrow gtk-doc introspection lvm 
kbd test +tools vdo"
+# Tests require root. In a future release, we may be able to run a smaller
+# subset with new run_tests.py arguments.
+RESTRICT="!test? ( test ) test"
+
+RDEPEND="
+       >=dev-libs/glib-2.42.2
+       dev-libs/libbytesize
+       >=sys-apps/kmod-19
+       >=sys-apps/util-linux-2.27
+       >=sys-block/parted-3.1
+       cryptsetup? (
+               escrow? (
+                       >=dev-libs/nss-3.18.0
+                       dev-libs/volume_key
+               )
+               >=sys-fs/cryptsetup-1.6.7:=
+       )
+       device-mapper? ( sys-fs/lvm2 )
+       dmraid? (
+               sys-fs/dmraid
+               sys-fs/lvm2
+       )
+       lvm? (
+               sys-fs/lvm2
+               virtual/udev
+       )
+       vdo? ( dev-libs/libyaml )
+       ${PYTHON_DEPS}
+"
+
+DEPEND="
+       ${RDEPEND}
+"
+
+# TODO: relax libbytesize condition once it has gained py3.11 support
+BDEPEND+="
+       dev-util/gtk-doc-am
+       gtk-doc? ( dev-util/gtk-doc )
+       introspection? ( >=dev-libs/gobject-introspection-1.3.0 )
+       test? (
+               $(python_gen_cond_dep '
+                       dev-libs/libbytesize[python,${PYTHON_USEDEP}]
+               ' python3_{9..10} )
+               sys-block/targetcli-fb
+       )
+"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}
+               escrow? ( cryptsetup )"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-2.28-sh_tests.patch
+)
+
+pkg_setup() {
+       python-single-r1_pkg_setup
+}
+
+src_prepare() {
+       xdg_environment_reset #623992
+       default
+
+       # https://bugs.gentoo.org/744289
+       find -type f \( -name "Makefile.am" -o -name "configure.ac" \) -print0 \
+               | xargs --null sed "s@ -Werror@@" -i || die
+
+       eautoreconf
+}
+
+src_configure() {
+       local myeconfargs=(
+               --with-btrfs
+               --with-fs
+               --with-part
+               --with-python3
+               --without-mpath
+               --without-nvdimm
+               --without-python2
+               $(use_enable introspection)
+               $(use_enable test tests)
+               $(use_with bcache)
+               $(use_with cryptsetup crypto)
+               $(use_with device-mapper dm)
+               $(use_with dmraid)
+               $(use_with escrow)
+               $(use_with gtk-doc)
+               $(use_with kbd)
+               $(use_with lvm lvm)
+               $(use_with lvm lvm-dbus)
+               $(use_with tools)
+               $(use_with vdo)
+       )
+       econf "${myeconfargs[@]}"
+}
+
+src_test() {
+       # See http://storaged.org/libblockdev/ch03.html
+       # The 'check' target just does Pylint.
+       # ... but it needs root.
+       emake test
+}
+
+src_install() {
+       default
+       find "${ED}" -type f -name "*.la" -delete || die
+       # This is installed even with USE=-lvm, but libbd_lvm are omitted so it
+       # doesn't work at all.
+       if ! use lvm ; then
+               rm -f "${ED}"/usr/bin/lvm-cache-stats || die
+       fi
+       python_optimize #718576
+}

Reply via email to