From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Fri, 24 Jan 2025 20:06:20 +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 1tbP0W-003y7v-0U for lore@lore.pengutronix.de; Fri, 24 Jan 2025 20:06:20 +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 1tbP0W-0004Ot-En; Fri, 24 Jan 2025 20:06:20 +0100 Received: from dude04.red.stw.pengutronix.de ([2a0a:edc0:0:1101:1d::ac]) by metis.whiteo.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1tbP0F-0004OL-5n; Fri, 24 Jan 2025 20:06:03 +0100 From: Jonas Rebmann Date: Fri, 24 Jan 2025 20:06:02 +0100 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20250124-gptfdisk-v1-1-a612ad41fb4a@pengutronix.de> X-B4-Tracking: v=1; b=H4sIAJnkk2cC/6tWKk4tykwtVrJSqFYqSi3LLM7MzwNyDHUUlJIzE vPSU3UzU4B8JSMDI1MDQyMT3fSCkrSUzOJs3SRz8+RU8xRDQ0tLIyWg8oKi1LTMCrBR0bG1tQA YF6rvWgAAAA== X-Change-ID: 20250124-gptfdisk-b77ce7d11992 To: ptxdist X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=6822; i=jre@pengutronix.de; h=from:subject:message-id; bh=uuvOkZ1okD/VD726fHlUD+d5hqDnXFDXBfFc6gd9hnY=; b=owGbwMvMwCF2ZcYT3onnbjcwnlZLYkif/GTW61lbkwQ5DIWuN/zb5rRR8tbd86X/vT/47537d zF3yXmXRx2lLAxiHAyyYoossWpyCkLG/tfNKu1iYeawMoEMYeDiFICJfGliZNhwNsRULWHG/cwT 5dkTL2mXzxLTWSMTf1Jf9MC6qTYqzKwMfyXe/b3sM3GtUPzSdIm9/09lLul45/BVXSp4bXbKajF +dXYA X-Developer-Key: i=jre@pengutronix.de; a=openpgp; fpr=0B7B750D5D3CD21B3B130DE8B61515E135CD49B5 Subject: [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 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 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 + 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 + +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 --- base-commit: 1b82c74e1f1f2048cb08a381def774ea2f8e7227 change-id: 20250124-gptfdisk-b77ce7d11992 Best regards, -- Jonas Rebmann