summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Szuba <marecki@gentoo.org>2022-09-22 01:21:53 +0100
committerMarek Szuba <marecki@gentoo.org>2022-09-22 01:32:39 +0100
commit2dc57d72ada009425ab74d4ff46064a17d477782 (patch)
tree4b2032d3ebf422c9fc8677d108cfaeea045489cf /sys-apps
parentmedia-libs/mesa: Drop old versions (diff)
downloadgentoo-2dc57d72ada009425ab74d4ff46064a17d477782.tar.gz
gentoo-2dc57d72ada009425ab74d4ff46064a17d477782.tar.bz2
gentoo-2dc57d72ada009425ab74d4ff46064a17d477782.zip
sys-apps/gptfdisk: fix dev-libs/popt-1.19 incompatibility
Without this, starting gdisk linked against popt-1.19 fails with Problem opening (garbage) for reading! Error is 2. The specified file does not exist! (assuming gptfdisk has been emerged without tests; otherwise this does get caught by the test suite) Closes: https://bugs.gentoo.org/872131 Signed-off-by: Marek Szuba <marecki@gentoo.org>
Diffstat (limited to 'sys-apps')
-rw-r--r--sys-apps/gptfdisk/files/gptfdisk-1.0.9-popt_segv.patch22
-rw-r--r--sys-apps/gptfdisk/gptfdisk-1.0.9-r2.ebuild61
2 files changed, 83 insertions, 0 deletions
diff --git a/sys-apps/gptfdisk/files/gptfdisk-1.0.9-popt_segv.patch b/sys-apps/gptfdisk/files/gptfdisk-1.0.9-popt_segv.patch
new file mode 100644
index 000000000000..470defd33cf6
--- /dev/null
+++ b/sys-apps/gptfdisk/files/gptfdisk-1.0.9-popt_segv.patch
@@ -0,0 +1,22 @@
+--- a/gptcl.cc
++++ b/gptcl.cc
+@@ -156,9 +156,10 @@
+
+ // Assume first non-option argument is the device filename....
+ device = (char*) poptGetArg(poptCon);
+- poptResetContext(poptCon);
+
+ if (device != NULL) {
++ device = strdup(device);
++ poptResetContext(poptCon);
+ JustLooking(); // reset as necessary
+ BeQuiet(); // Tell called functions to be less verbose & interactive
+ if (LoadPartitions((string) device)) {
+@@ -498,6 +499,7 @@
+ cerr << "Error encountered; not saving changes.\n";
+ retval = 4;
+ } // if
++ free(device);
+ } // if (device != NULL)
+ poptFreeContext(poptCon);
+ return retval;
diff --git a/sys-apps/gptfdisk/gptfdisk-1.0.9-r2.ebuild b/sys-apps/gptfdisk/gptfdisk-1.0.9-r2.ebuild
new file mode 100644
index 000000000000..5ccaa186a5da
--- /dev/null
+++ b/sys-apps/gptfdisk/gptfdisk-1.0.9-r2.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic toolchain-funcs
+
+DESCRIPTION="GPT partition table manipulator for Linux"
+HOMEPAGE="https://www.rodsbooks.com/gdisk/"
+SRC_URI="mirror://sourceforge/${PN}/${PN}/${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="ncurses static"
+
+# libuuid from util-linux is required.
+RDEPEND="!static? (
+ dev-libs/popt
+ ncurses? ( sys-libs/ncurses:=[unicode(+)] )
+ kernel_linux? ( sys-apps/util-linux )
+ )"
+DEPEND="
+ ${RDEPEND}
+ static? (
+ dev-libs/popt[static-libs(+)]
+ ncurses? ( sys-libs/ncurses:=[unicode(+),static-libs(+)] )
+ kernel_linux? ( sys-apps/util-linux[static-libs(+)] )
+ )
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.0.9-libuuid.patch" #844073
+ "${FILESDIR}/${PN}-1.0.9-popt_segv.patch" #872131
+)
+
+src_prepare() {
+ default
+
+ tc-export CXX PKG_CONFIG
+
+ if ! use ncurses ; then
+ sed -i \
+ -e '/^all:/s: cgdisk::' \
+ Makefile || die
+ fi
+
+ sed \
+ -e '/g++/s:=:?=:g' \
+ -e 's:-lncursesw:$(shell $(PKG_CONFIG) --libs ncursesw):g' \
+ -i Makefile || die
+
+ use static && append-ldflags -static
+}
+
+src_install() {
+ dosbin gdisk sgdisk $(usex ncurses cgdisk '') fixparts
+ doman *.8
+ dodoc NEWS README
+}