Package: parted Version: 2.3-9.1 Severity: normal Tags: patch pending Dear maintainer,
I've prepared an NMU for parted (versioned as 2.3-9.2) and uploaded it to DELAYED/7. Please feel free to tell me if I should delay it longer. Regards.
diff -u parted-2.3/debian/changelog parted-2.3/debian/changelog --- parted-2.3/debian/changelog +++ parted-2.3/debian/changelog @@ -1,3 +1,12 @@ +parted (2.3-9.2) unstable; urgency=low + + * Non-maintainer upload. + * Add partition table re-read on hurd-i386 (Closes: #669936). + * Backport gnulib fix for set but not used variables (Closes: #676590). + * Update ABI symbol list (Closes: #676591). + + -- Samuel Thibault <sthiba...@debian.org> Fri, 08 Jun 2012 02:04:11 +0200 + parted (2.3-9.1) unstable; urgency=low * Non-maintainer upload. diff -u parted-2.3/debian/patches/series parted-2.3/debian/patches/series --- parted-2.3/debian/patches/series +++ parted-2.3/debian/patches/series @@ -26,3 +26,6 @@ + kfreebsd_lvm.patch hurd-partition-path.patch non-registered-device.diff +hurd-reread.patch +gnulib.patch diff -u parted-2.3/debian/patches/update-abi-symbols.patch parted-2.3/debian/patches/update-abi-symbols.patch --- parted-2.3/debian/patches/update-abi-symbols.patch +++ parted-2.3/debian/patches/update-abi-symbols.patch @@ -200,7 +200,7 @@ FUNC:ped_round_down_to FUNC:ped_round_to_nearest FUNC:ped_round_up_to -@@ -406,45 +449,112 @@ +@@ -406,45 +449,116 @@ FUNC:ped_unit_parse FUNC:ped_unit_parse_custom FUNC:ped_unit_set_default @@ -258,11 +258,15 @@ +FUNC:version_etc_ar +FUNC:version_etc_arn +FUNC:version_etc_va ++FUNC:x2nrealloc +FUNC:x2realloc +FUNC:xalloc_die +FUNC:xcalloc ++FUNC:xcharalloc +FUNC:xmalloc +FUNC:xmemdup ++FUNC:xnmalloc ++FUNC:xnrealloc +FUNC:xrealloc +FUNC:xstrdup +FUNC:xstrndup only in patch2: unchanged: --- parted-2.3.orig/debian/patches/gnulib.patch +++ parted-2.3/debian/patches/gnulib.patch @@ -0,0 +1,22 @@ +--- a/lib/regex_internal.c.orig 2012-06-08 02:15:54.083227641 +0200 ++++ b/lib/regex_internal.c 2012-06-08 02:20:44.364702306 +0200 +@@ -738,16 +738,18 @@ + unsigned char buf[6]; + size_t mbclen; + ++ const unsigned char *pp = p; + if (BE (pstr->trans != NULL, 0)) + { + int i = mlen < 6 ? mlen : 6; + while (--i >= 0) + buf[i] = pstr->trans[p[i]]; ++ pp = buf; + } + /* XXX Don't use mbrtowc, we know which conversion + to use (UTF-8 -> UCS4). */ + memset (&cur_state, 0, sizeof (cur_state)); +- mbclen = __mbrtowc (&wc2, (const char *) p, mlen, ++ mbclen = __mbrtowc (&wc2, (const char *) pp, mlen, + &cur_state); + if (raw + offset - p <= mbclen + && mbclen < (size_t) -2) only in patch2: unchanged: --- parted-2.3.orig/debian/patches/hurd-reread.patch +++ parted-2.3/debian/patches/hurd-reread.patch @@ -0,0 +1,118 @@ +--- a/libparted/arch/gnu.c.original 2012-04-22 00:06:18.000000000 +0000 ++++ b/libparted/arch/gnu.c 2012-04-22 02:34:58.000000000 +0000 +@@ -185,7 +185,7 @@ + if (!dev->arch_specific) + goto error_free_path; + +- dev->type = PED_DEVICE_FILE; /* FIXME? */ ++ dev->type = PED_DEVICE_UNKNOWN; /* It's deprecated anyway */ + dev->open_count = 0; + dev->read_only = 0; + dev->external_mode = 0; +@@ -204,11 +204,83 @@ + return NULL; + } + +-static int +-_kernel_reread_part_table (PedDevice* dev) +-{ +- /* XXX: We must wait for partfs to be finished. */ +- return 1; ++/* Ask the kernel and translators to reload the partition table. ++ XXX: Will probably be replaced by some RPC to partfs when it's finished. In ++ the meantime, gnumach's glue layer will pass BLKRRPART to the Linux drivers. ++ */ ++#define BLKRRPART 0x125F ++static int ++_reread_part_table (PedDevice* dev) ++{ ++ struct store *store = GNU_SPECIFIC (dev)->store; ++ int retry_count = 9; ++ int len = strlen (dev->path); ++ char path[len + 3 + 1]; ++ int i; ++ int done = 1; ++ ++ sync (); ++ ++ if(strcmp (store->class->name, "device") == 0) { ++ while (device_set_status (store->port, BLKRRPART, NULL, 0)) { ++ retry_count--; ++ sync (); ++ if (retry_count == 3) ++ sleep (1); /* Pause to allow system to settle */ ++ ++ if (!retry_count) { ++ ped_exception_throw ( ++ PED_EXCEPTION_WARNING, ++ PED_EXCEPTION_IGNORE, ++ _("WARNING: the kernel failed to re-read the " ++ "partition table on %s (%s). As a result, " ++ "it may not reflect all of your changes " ++ "until after reboot."), ++ dev->path, strerror (errno)); ++ return 0; ++ } ++ } ++ } ++ ++ i = 1; ++ while (1) { ++ file_t node; ++ error_t err; ++ ++ /* Throw away all active parted-based translators */ ++ snprintf (path, sizeof (path), "%ss%u", dev->path, i); ++ node = file_name_lookup (path, O_NOTRANS, 0666); ++ if (node == MACH_PORT_NULL) { ++ if (errno == ENOENT) ++ /* Finished looping over them */ ++ break; ++ ++ ped_exception_throw ( ++ PED_EXCEPTION_WARNING, ++ PED_EXCEPTION_IGNORE, ++ _("Warning: unable to open %s (%s). As a " ++ "result, it may not reflect all of your " ++ "changes until after reboot."), ++ path, strerror (errno)); ++ done = 0; ++ } ++ ++ err = file_set_translator (node, 0, FS_TRANS_SET, ++ 0, 0, 0, MACH_PORT_NULL, MACH_MSG_TYPE_COPY_SEND); ++ if (err) { ++ ped_exception_throw ( ++ PED_EXCEPTION_WARNING, ++ PED_EXCEPTION_IGNORE, ++ _("Warning: failed to make translator go away " ++ "on %s (%s). As a result, it may not reflect " ++ "all of your changes until after reboot."), ++ dev->path, strerror (errno)); ++ done = 0; ++ } ++ i++; ++ } ++ ++ return done; + } + + /* Free the memory associated with a PedDevice structure. */ +@@ -355,7 +427,7 @@ + _flush_cache (dev); + + if (dev->dirty && dev->type != PED_DEVICE_FILE) { +- if (_kernel_reread_part_table (dev)) ++ if (_reread_part_table (dev)) + dev->dirty = 0; + } + +@@ -858,7 +930,7 @@ + static int + gnu_disk_commit (PedDisk* disk) + { +- return 1; ++ return _reread_part_table (disk->dev); + } + + static PedDeviceArchOps gnu_dev_ops = {