From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Thu, 30 Jan 2025 10:32:43 +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 1tdQug-006HmK-1B for lore@lore.pengutronix.de; Thu, 30 Jan 2025 10:32:43 +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 1tdQug-0001y9-Md; Thu, 30 Jan 2025 10:32:42 +0100 Received: from ptz.office.stw.pengutronix.de ([2a0a:edc0:0:900:1d::77] helo=[127.0.0.1]) by metis.whiteo.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1tdQuP-0001xv-24; Thu, 30 Jan 2025 10:32:25 +0100 Message-ID: Date: Thu, 30 Jan 2025 10:32:24 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: ptxdist@pengutronix.de, Roland Hieber References: <20250124-gptfdisk-v1-1-a612ad41fb4a@pengutronix.de> <20250129142414.qgtmdypwx3q4o4ze@pengutronix.de> Content-Language: en-US From: Jonas Rebmann In-Reply-To: <20250129142414.qgtmdypwx3q4o4ze@pengutronix.de> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit 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 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 Hi, On 29/01/2025 15.24, 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 The Patch is not ready for merge. >> 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 >> + tristate >> + prompt "gptfdisk" >> + 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 will consider it. Will create a v2 anyway because we noticed the present check may be evaluated when PTXCONF_GPTFDISK is unselected, leading to ptxdist erroring solely because the rule is present. >> + >> +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 >> >> >> > -- Pengutronix e.K. | Jonas Rebmann | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-9 |