Merge pull request #62757 from lightbulbjim/libblockdev-sgdisk

libblockdev: add gptfdisk as a dependency
This commit is contained in:
worldofpeace 2019-06-08 01:03:41 -04:00 committed by GitHub
commit 059ce69f39
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 57 additions and 3 deletions

View File

@ -1,5 +1,5 @@
{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, gtk-doc, libxslt, docbook_xsl
, docbook_xml_dtd_43, python3, gobject-introspection, glib, udev, kmod, parted, libyaml
{ stdenv, fetchFromGitHub, substituteAll, autoreconfHook, pkgconfig, gtk-doc, libxslt, docbook_xsl
, docbook_xml_dtd_43, python3, gobject-introspection, glib, udev, kmod, parted, gptfdisk, libyaml
, cryptsetup, lvm2, dmraid, utillinux, libbytesize, libndctl, nss, volume_key
}:
@ -17,6 +17,13 @@ in stdenv.mkDerivation rec {
outputs = [ "out" "dev" "devdoc" ];
patches = [
(substituteAll {
src = ./fix-paths.patch;
sgdisk = "${gptfdisk}/bin/sgdisk";
})
];
postPatch = ''
patchShebangs scripts
'';
@ -26,7 +33,7 @@ in stdenv.mkDerivation rec {
];
buildInputs = [
glib udev kmod parted cryptsetup lvm2 dmraid utillinux libbytesize libndctl nss volume_key libyaml
glib udev kmod parted gptfdisk cryptsetup lvm2 dmraid utillinux libbytesize libndctl nss volume_key libyaml
];
meta = with stdenv.lib; {

View File

@ -0,0 +1,47 @@
--- a/src/plugins/part.c
+++ b/src/plugins/part.c
@@ -146,7 +146,7 @@ static GMutex deps_check_lock;
#define DEPS_LAST 2
static const UtilDep deps[DEPS_LAST] = {
- {"sgdisk", "0.8.6", NULL, "GPT fdisk \\(sgdisk\\) version ([\\d\\.]+)"},
+ {"@sgdisk@", "0.8.6", NULL, "GPT fdisk \\(sgdisk\\) version ([\\d\\.]+)"},
{"sfdisk", NULL, NULL, NULL},
};
@@ -355,7 +355,7 @@ gboolean bd_part_create_table (const gchar *disk, BDPartTableType type, gboolean
}
static gchar* get_part_type_guid_and_gpt_flags (const gchar *device, int part_num, guint64 *flags, GError **error) {
- const gchar *args[4] = {"sgdisk", NULL, device, NULL};
+ const gchar *args[4] = {"@sgdisk@", NULL, device, NULL};
gchar *output = NULL;
gchar **lines = NULL;
gchar **line_p = NULL;
@@ -1325,7 +1325,7 @@ gboolean bd_part_resize_part (const gchar *disk, const gchar *part, guint64 size
static gboolean set_gpt_flag (const gchar *device, int part_num, BDPartFlag flag, gboolean state, GError **error) {
- const gchar *args[5] = {"sgdisk", "--attributes", NULL, device, NULL};
+ const gchar *args[5] = {"@sgdisk@", "--attributes", NULL, device, NULL};
int bit_num = 0;
gboolean success = FALSE;
@@ -1351,7 +1351,7 @@ static gboolean set_gpt_flag (const gchar *device, int part_num, BDPartFlag flag
}
static gboolean set_gpt_flags (const gchar *device, int part_num, guint64 flags, GError **error) {
- const gchar *args[5] = {"sgdisk", "--attributes", NULL, device, NULL};
+ const gchar *args[5] = {"@sgdisk@", "--attributes", NULL, device, NULL};
guint64 real_flags = 0;
gchar *mask_str = NULL;
gboolean success = FALSE;
@@ -1791,7 +1791,7 @@ gboolean bd_part_set_part_name (const gchar *disk, const gchar *part, const gcha
* Tech category: %BD_PART_TECH_GPT-%BD_PART_TECH_MODE_MODIFY_PART
*/
gboolean bd_part_set_part_type (const gchar *disk, const gchar *part, const gchar *type_guid, GError **error) {
- const gchar *args[5] = {"sgdisk", "--typecode", NULL, disk, NULL};
+ const gchar *args[5] = {"@sgdisk@", "--typecode", NULL, disk, NULL};
const gchar *part_num_str = NULL;
gboolean success = FALSE;
guint64 progress_id = 0;