From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Thu, 30 Jan 2025 14:13:36 +0100 Received: from metis.whiteo.stw.pengutronix.de ([2a0a:edc0:2:b01:1d::104]) by lore.white.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1tdUMR-006LZU-2e for lore@lore.pengutronix.de; Thu, 30 Jan 2025 14:13:36 +0100 Received: from localhost ([127.0.0.1] helo=metis.whiteo.stw.pengutronix.de) by metis.whiteo.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1tdUMS-00029w-9k; Thu, 30 Jan 2025 14:13:36 +0100 Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1tdUMC-00029c-8K; Thu, 30 Jan 2025 14:13:20 +0100 Received: from pty.whiteo.stw.pengutronix.de ([2a0a:edc0:2:b01:1d::c5]) by drehscheibe.grey.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1tdUMC-002dfr-0C; Thu, 30 Jan 2025 14:13:20 +0100 Received: from mol by pty.whiteo.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1tdUMB-004cTA-39; Thu, 30 Jan 2025 14:13:19 +0100 Date: Thu, 30 Jan 2025 14:13:19 +0100 From: Michael Olbrich To: Roland Hieber Message-ID: Mail-Followup-To: Roland Hieber , Jonas Rebmann , ptxdist References: <20250124-gptfdisk-v1-1-a612ad41fb4a@pengutronix.de> <20250129142414.qgtmdypwx3q4o4ze@pengutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250129142414.qgtmdypwx3q4o4ze@pengutronix.de> X-Sent-From: Pengutronix Hildesheim X-URL: http://www.pengutronix.de/ X-Accept-Language: de,en X-Accept-Content-Type: text/plain X-IRC: #ptxdist @freenode Subject: Re: [ptxdist] [PATCH] gptfdisk: add new package X-BeenThere: ptxdist@pengutronix.de X-Mailman-Version: 2.1.29 Precedence: list List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Cc: Jonas Rebmann , ptxdist Sender: "ptxdist" X-SA-Exim-Connect-IP: 127.0.0.1 X-SA-Exim-Mail-From: ptxdist-bounces@pengutronix.de X-SA-Exim-Scanned: No (on metis.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false On Wed, Jan 29, 2025 at 03:24:14PM +0100, Roland Hieber wrote: > On Fri, Jan 24, 2025 at 08:06:02PM +0100, Jonas Rebmann wrote: > > GPT fdisk is a set of tools to work with GUID partition tables: gdisk, > > cgdisk, sgdisk and fixparts > > > > Of particular interest to embedded devices is sgdisk, the noninteractive > > tool, which, amongst other functionality, allows relocating the backup > > (alternative) GPT header to the end of the disk. This may be needed > > after flashing a GPT disk image created for a smaller disk size e.g. to > > account for fluctuation in disk size amongst hardware revisions. > > > > The curses based cgdisk makes use of the wide char ncurses variant. As > > ptxdist currently, unlike some linux distributions, does not set up > > ncursesw/ncurses.h as a symlink to ncurses.h, gptfdisk is patched to > > include ncurses from the standard path. > > > > Signed-off-by: Jonas Rebmann > > --- > > ...urses-never-include-ncurses-from-ncursesw.patch | 24 +++++++ > > patches/gptfdisk-1.0.10/series | 4 ++ > > rules/gptfdisk.in | 42 +++++++++++ > > rules/gptfdisk.make | 82 ++++++++++++++++++++++ > > 4 files changed, 152 insertions(+) > > > > diff --git a/patches/gptfdisk-1.0.10/0001-gptcurses-never-include-ncurses-from-ncursesw.patch b/patches/gptfdisk-1.0.10/0001-gptcurses-never-include-ncurses-from-ncursesw.patch > > new file mode 100644 > > index 0000000000000000000000000000000000000000..f320e8eb1802e8b15418c5a57fa53a05d99a21c1 > > --- /dev/null > > +++ b/patches/gptfdisk-1.0.10/0001-gptcurses-never-include-ncurses-from-ncursesw.patch > > @@ -0,0 +1,24 @@ > > +From: Jonas Rebmann > > +Date: Fri, 24 Jan 2025 15:21:29 +0100 > > +Subject: [PATCH] gptcurses: never include ncurses from ncursesw > > + > > +--- > > + gptcurses.cc | 4 ---- > > + 1 file changed, 4 deletions(-) > > + > > +diff --git a/gptcurses.cc b/gptcurses.cc > > +index b47670094d73..476fc43d6cdb 100644 > > +--- a/gptcurses.cc > > ++++ b/gptcurses.cc > > +@@ -23,11 +23,7 @@ > > + #include > > + #include > > + #include > > +-#if defined (__APPLE__) || (__FreeBSD__) > > + #include > > +-#else > > +-#include > > +-#endif > > + #include "gptcurses.h" > > + #include "support.h" > > + > > diff --git a/patches/gptfdisk-1.0.10/series b/patches/gptfdisk-1.0.10/series > > new file mode 100644 > > index 0000000000000000000000000000000000000000..d8006ace5377ef0eeb23e2e3e4174474a53560b6 > > --- /dev/null > > +++ b/patches/gptfdisk-1.0.10/series > > @@ -0,0 +1,4 @@ > > +# generated by git-ptx-patches > > +#tag:base --start-number 1 > > +0001-gptcurses-never-include-ncurses-from-ncursesw.patch > > +# f271468e860c32391bf01fdd0d73b3ac - git-ptx-patches magic > > diff --git a/rules/gptfdisk.in b/rules/gptfdisk.in > > new file mode 100644 > > index 0000000000000000000000000000000000000000..6632effd34e7ad30f06cc93f3f57b8b3ceffc9a3 > > --- /dev/null > > +++ b/rules/gptfdisk.in > > @@ -0,0 +1,42 @@ > > +## SECTION=disk_and_file > > + > > +config GPTFDISK This should be menuconfig and ... > > + tristate > > + prompt "gptfdisk" prompt "gptfdisk " (add enough spaces to align the '->' in 'ptxdist menuconfig'). > > + select LIBUUID > > + select LIBPOPT if GPTFDISK_SGDISK > > + select NCURSES if GPTFDISK_CGDISK > > + select NCURSES_WIDE_CHAR if GPTFDISK_CGDISK > > + help > > + GPT fdisk is a set of text-mode partitioning tools. The gdisk, > > + cgdisk, and sgdisk programs work on Globally Unique Identifier (GUID) > > + Partition Table (GPT) disks, rather than on the older (and once more > > + common) Master Boot Record (MBR) partition tables. > > + > > +if GPTFDISK > > + > > +config GPTFDISK_GDISK > > + bool > > + prompt "gdisk" > > + help > > + Interactive GUID partition table (GPT) manipulator > > + > > +config GPTFDISK_CGDISK > > + bool > > + prompt "cgdisk" > > + help > > + Curses-based GUID partition table (GPT) manipulator > > + > > +config GPTFDISK_SGDISK > > + bool > > + prompt "sgdisk" > > + help > > + Command-line GUID partition table (GPT) manipulator for Linux and Unix > > + > > +config GPTFDISK_FIXPARTS > > + bool > > + prompt "fixparts" > > + help > > + MBR partition table repair utility > > + > > +endif > > diff --git a/rules/gptfdisk.make b/rules/gptfdisk.make > > new file mode 100644 > > index 0000000000000000000000000000000000000000..29455dc9332bbe33ac14afb37c170dab2ceeb35e > > --- /dev/null > > +++ b/rules/gptfdisk.make > > @@ -0,0 +1,82 @@ > > +# -*-makefile-*- > > +# > > +# Copyright (C) 2025 by Jonas Rebmann > > +# > > +# For further information about the PTXdist project and license conditions > > +# see the README file. > > +# > > + > > +# > > +# We provide this package > > +# > > +PACKAGES-$(PTXCONF_GPTFDISK) += gptfdisk > > + > > +# > > +# Paths and names > > +# > > +GPTFDISK_VERSION := 1.0.10 > > +GPTFDISK_MD5 := 1970269eb7a97560e238611524b7797a > > +GPTFDISK := gptfdisk-$(GPTFDISK_VERSION) > > +GPTFDISK_SUFFIX := tar.gz > > +GPTFDISK_URL := https://downloads.sourceforge.net/project/gptfdisk/gptfdisk/$(GPTFDISK_VERSION)/$(GPTFDISK).$(GPTFDISK_SUFFIX) > > +GPTFDISK_SOURCE := $(SRCDIR)/$(GPTFDISK).$(GPTFDISK_SUFFIX) > > +GPTFDISK_DIR := $(BUILDDIR)/$(GPTFDISK) > > +GPTFDISK_LICENSE := GPL-2.0-only > > +GPTFDISK_LICENSE_FILES := file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 > > + > > +# ---------------------------------------------------------------------------- > > +# Prepare > > +# ---------------------------------------------------------------------------- > > + > > +GPTFDISK_TOOLS-$(PTXCONF_GPTFDISK_GDISK) += gdisk > > +GPTFDISK_TOOLS-$(PTXCONF_GPTFDISK_CGDISK) += cgdisk > > +GPTFDISK_TOOLS-$(PTXCONF_GPTFDISK_SGDISK) += sgdisk > > +GPTFDISK_TOOLS-$(PTXCONF_GPTFDISK_FIXPARTS) += fixparts > > + > > +ifeq ($(strip $(GPTFDISK_TOOLS-y)),) > > +$(error At least one PTXCONF_GPTFDISK_* option must be enabled) > > +endif > > As a bonus you could put a warning in the menu file: > > comment "At least one GPTFDISK_* option must be enabled!" > depends on !GPTFDISK_GDISK && !GPTFDISK_CGDISK && !GPTFDISK_SGDISK && !GPTFDISK_FIXPARTS > > (similar to the busybox vs. coreutils comments), but I think catching it in the > make file is sufficient as well. I think it's a good idea. We cannot really enforce it but having this message sounds nice. Michael > > + > > +GPTFDISK_CONF_TOOL := NO > > + > > +GPTFDISK_MAKE_ENV := \ > > + $(CROSS_ENV) \ > > + PREFIX=/usr > > + > > +GPTFDISK_MAKE_OPT := \ > > + TARGET=linux \ > > + $(GPTFDISK_TOOLS-y) > > + > > +# ---------------------------------------------------------------------------- > > +# Install > > +# ---------------------------------------------------------------------------- > > + > > +$(STATEDIR)/gptfdisk.install: > > + @$(call targetinfo) > > + @$(call world/execute, GPTFDISK, \ > > + install -m755 -v \ > > + $(addprefix $(GPTFDISK_DIR)/,$(GPTFDISK_TOOLS-y)) \ > > + $(GPTFDISK_PKGDIR)/usr/bin/) > > + @$(call touch) > > + > > +# ---------------------------------------------------------------------------- > > +# Target-Install > > +# ---------------------------------------------------------------------------- > > + > > +$(STATEDIR)/gptfdisk.targetinstall: > > + @$(call targetinfo) > > + > > + @$(call install_init, gptfdisk) > > + @$(call install_fixup, gptfdisk,PRIORITY,optional) > > + @$(call install_fixup, gptfdisk,SECTION,base) > > + @$(call install_fixup, gptfdisk,AUTHOR,"Jonas Rebmann ") > > + @$(call install_fixup, gptfdisk,DESCRIPTION,"GPT disk partitioning tools") > > + > > + @$(foreach tool,$(GPTFDISK_TOOLS-y), \ > > + $(call install_copy, gptfdisk, 0, 0, 0755, -, /usr/bin/$(tool))$(ptx/nl)) > > + > > + @$(call install_finish, gptfdisk) > > + > > + @$(call touch) > > + > > +# vim: syntax=make > > Reviewed-by: Roland Hieber > > - Roland > > > > > --- > > base-commit: 1b82c74e1f1f2048cb08a381def774ea2f8e7227 > > change-id: 20250124-gptfdisk-b77ce7d11992 > > > > Best regards, > > -- > > Jonas Rebmann > > > > > > > > -- > Roland Hieber, Pengutronix e.K. | rhi@pengutronix.de | > Steuerwalder Str. 21 | https://www.pengutronix.de/ | > 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | > Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | > > -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |