Fix 'make bumpver' to handle multiple decimal points. (dcantrell)
- Add support for hfs_esp flag (dcantrell) - Add support for esp flag (bcl) - Add support for irst flag (bcl) - Add support for msftdata flag (bcl) - Subject: [PATCH] pyparted: export ped_disk_new functionality (rnsastry) - Convert Constraint to __ped.Constraint in partition.getMaxGeometry() (chris) - Do not traceback when calling setlocale (#875354). (clumens) - Enable 'make check' in the spec file, patch for koji use - Add armv7l to the list of acceptable arches for gpt and msdos disklabels
This commit is contained in:
parent
4d98c9bdd8
commit
d762da2316
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,3 +1,4 @@
|
||||
pyparted-3.8.tar.gz
|
||||
/pyparted-3.9.tar.gz
|
||||
/pyparted-3.10.tar.gz
|
||||
/pyparted-3.9.1.tar.gz
|
||||
|
||||
@ -1,42 +0,0 @@
|
||||
From a43c9ca4e0fb600d425f50d11287f7c4fddee5f3 Mon Sep 17 00:00:00 2001
|
||||
From: Chris Lumens <clumens@redhat.com>
|
||||
Date: Fri, 14 Dec 2012 13:06:43 -0500
|
||||
Subject: [PATCH 01/03] Do not traceback when calling setlocale (#875354).
|
||||
|
||||
This is just a debugging luxury. It's not worth additional tracebacks.
|
||||
---
|
||||
src/parted/decorators.py | 13 +++++++++++--
|
||||
1 file changed, 11 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/parted/decorators.py b/src/parted/decorators.py
|
||||
index 2b583ad..737f72c 100644
|
||||
--- a/src/parted/decorators.py
|
||||
+++ b/src/parted/decorators.py
|
||||
@@ -24,13 +24,22 @@ import locale
|
||||
import functools
|
||||
|
||||
def localeC(fn):
|
||||
+ # setlocale is not thread-safe, and anaconda (at least) may call this from
|
||||
+ # another thread. This is just a luxury to have untranslated tracebacks,
|
||||
+ # so it's not worth tracebacking itself.
|
||||
+ def _setlocale(l):
|
||||
+ try:
|
||||
+ locale.setlocale(locale.LC_MESSAGES, l)
|
||||
+ except:
|
||||
+ pass
|
||||
+
|
||||
@functools.wraps(fn)
|
||||
def new(*args, **kwds):
|
||||
oldlocale = locale.getlocale(locale.LC_MESSAGES)
|
||||
- locale.setlocale(locale.LC_MESSAGES, 'C')
|
||||
+ _setlocale('C')
|
||||
try:
|
||||
ret = fn(*args, **kwds)
|
||||
finally:
|
||||
- locale.setlocale(locale.LC_MESSAGES, oldlocale)
|
||||
+ _setlocale(oldlocale)
|
||||
return ret
|
||||
return new
|
||||
--
|
||||
1.8.1.2
|
||||
|
||||
@ -1,26 +0,0 @@
|
||||
From 760a3b7c39a59c2e0f131b40e0a48bdf8240f637 Mon Sep 17 00:00:00 2001
|
||||
From: Chris Tyler <chris@tylers.info>
|
||||
Date: Fri, 11 Jan 2013 13:42:29 -0500
|
||||
Subject: [PATCH 02/03] Convert Constraint to __ped.Constraint in
|
||||
partition.getMaxGeometry()
|
||||
|
||||
---
|
||||
src/parted/partition.py | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/parted/partition.py b/src/parted/partition.py
|
||||
index 20b6f41..ee3e2d0 100644
|
||||
--- a/src/parted/partition.py
|
||||
+++ b/src/parted/partition.py
|
||||
@@ -166,7 +166,7 @@ class Partition(object):
|
||||
def getMaxGeometry(self, constraint):
|
||||
"""Given a constraint, return the maximum Geometry that self can be
|
||||
grown to. Raises Partitionexception on error."""
|
||||
- return parted.Geometry(PedGeometry=self.disk.getPedDisk().get_max_partition_geometry(self.__partition, constraint))
|
||||
+ return parted.Geometry(PedGeometry=self.disk.getPedDisk().get_max_partition_geometry(self.__partition, constraint.getPedConstraint()))
|
||||
|
||||
@localeC
|
||||
def isFlagAvailable(self, flag):
|
||||
--
|
||||
1.8.1.2
|
||||
|
||||
@ -1,131 +0,0 @@
|
||||
From 36384816c56d666bbf3492ddcc531bf4c4a38674 Mon Sep 17 00:00:00 2001
|
||||
From: Nageswara R Sastry <rnsastry@linux.vnet.ibm.com>
|
||||
Date: Thu, 23 May 2013 09:14:10 -0400
|
||||
Subject: [PATCH 03/03] Subject: [PATCH] pyparted: export ped_disk_new
|
||||
functionality
|
||||
|
||||
Fixed Block Access (FBA) DASDs are mainframe-specific disk devices
|
||||
which are layed out as a sequence of 512-byte sectors. In contrast
|
||||
to ECKD DASDs, these disks do not require formatting and resemble
|
||||
the LBA layout of non-mainframe disks. Despite this resemblance,
|
||||
the Linux kernel applies special handling during partition detection
|
||||
for FBA DASDs, resulting in a single, immutable partition being
|
||||
reported.
|
||||
|
||||
While actual FBA DASD hardware is no longer available, the z/VM
|
||||
hypervisor can simulate FBA DASD disks, backed by either ECKD or
|
||||
SCSI devices.
|
||||
|
||||
This patch adds support for FBA DASD partitions and successful
|
||||
installation by Anaconda.
|
||||
|
||||
Signed-off-by: Nageswara R Sastry <rnsastry@linux.vnet.ibm.com>
|
||||
---
|
||||
include/pydisk.h | 1 +
|
||||
src/_pedmodule.c | 7 +++++++
|
||||
src/parted/__init__.py | 9 +++++++++
|
||||
src/pydisk.c | 32 ++++++++++++++++++++++++++++++++
|
||||
4 files changed, 49 insertions(+)
|
||||
|
||||
diff --git a/include/pydisk.h b/include/pydisk.h
|
||||
index c0bf92e..a2bcc4f 100644
|
||||
--- a/include/pydisk.h
|
||||
+++ b/include/pydisk.h
|
||||
@@ -152,6 +152,7 @@ PyObject *py_ped_disk_get_partition(PyObject *, PyObject *);
|
||||
PyObject *py_ped_disk_get_partition_by_sector(PyObject *, PyObject *);
|
||||
PyObject *py_ped_disk_extended_partition(PyObject *, PyObject *);
|
||||
PyObject *py_ped_disk_new_fresh(PyObject *, PyObject *);
|
||||
+PyObject *py_ped_disk_new(PyObject *, PyObject *);
|
||||
|
||||
#endif /* PYDISK_H_INCLUDED */
|
||||
|
||||
diff --git a/src/_pedmodule.c b/src/_pedmodule.c
|
||||
index add0e8c..efdf831 100644
|
||||
--- a/src/_pedmodule.c
|
||||
+++ b/src/_pedmodule.c
|
||||
@@ -162,6 +162,11 @@ PyDoc_STRVAR(disk_new_fresh_doc,
|
||||
"will have to use the commit_to_dev() method to write the new label to\n"
|
||||
"the disk.");
|
||||
|
||||
+PyDoc_STRVAR(disk_new_doc,
|
||||
+"disk_new(Device) -> Disk\n\n"
|
||||
+"Given the Device, create a new Disk object. And probe, read the details of\n"
|
||||
+"the disk.");
|
||||
+
|
||||
PyDoc_STRVAR(disk_flag_get_name_doc,
|
||||
"disk_flag_get_name(integer) -> string\n\n"
|
||||
"Return a name for a disk flag constant. If an invalid flag is provided,\n"
|
||||
@@ -252,6 +257,8 @@ static struct PyMethodDef PyPedModuleMethods[] = {
|
||||
METH_VARARGS, partition_flag_next_doc},
|
||||
{"disk_new_fresh", (PyCFunction) py_ped_disk_new_fresh,
|
||||
METH_VARARGS, disk_new_fresh_doc},
|
||||
+ {"disk_new", (PyCFunction) py_ped_disk_new,
|
||||
+ METH_VARARGS, disk_new_doc},
|
||||
{"disk_flag_get_name", (PyCFunction) py_ped_disk_flag_get_name,
|
||||
METH_VARARGS, disk_flag_get_name_doc},
|
||||
{"disk_flag_get_by_name", (PyCFunction) py_ped_disk_flag_get_by_name,
|
||||
diff --git a/src/parted/__init__.py b/src/parted/__init__.py
|
||||
index 01f9575..0eb23d2 100644
|
||||
--- a/src/parted/__init__.py
|
||||
+++ b/src/parted/__init__.py
|
||||
@@ -418,6 +418,15 @@ def freshDisk(device, ty):
|
||||
return Disk(PedDisk=peddisk)
|
||||
|
||||
@localeC
|
||||
+def newDisk(device):
|
||||
+ """Return a Disk object for this Device. Read the partition table off
|
||||
+ a device (if one is found)."""
|
||||
+ from _ped import disk_new
|
||||
+
|
||||
+ peddisk = disk_new(device.getPedDevice())
|
||||
+ return Disk(PedDisk=peddisk)
|
||||
+
|
||||
+@localeC
|
||||
def version():
|
||||
"""Return a dict containing the pyparted and libparted versions."""
|
||||
from _ped import libparted_version
|
||||
diff --git a/src/pydisk.c b/src/pydisk.c
|
||||
index f58eeef..4e70f55 100644
|
||||
--- a/src/pydisk.c
|
||||
+++ b/src/pydisk.c
|
||||
@@ -2004,5 +2004,37 @@ PyObject *py_ped_disk_new_fresh(PyObject *s, PyObject *args) {
|
||||
return (PyObject *) ret;
|
||||
}
|
||||
|
||||
+PyObject *py_ped_disk_new(PyObject *s, PyObject *args) {
|
||||
+ _ped_Device *in_device = NULL;
|
||||
+ PedDevice *device = NULL;
|
||||
+ PedDisk *disk = NULL;
|
||||
+ _ped_Disk *ret = NULL;
|
||||
+
|
||||
+ if (!PyArg_ParseTuple(args, "O!", &_ped_Device_Type_obj, &in_device)) {
|
||||
+ return NULL;
|
||||
+ }
|
||||
+
|
||||
+ if ((device = _ped_Device2PedDevice((PyObject *) in_device)) == NULL) {
|
||||
+ return NULL;
|
||||
+ }
|
||||
+
|
||||
+ if ((disk = ped_disk_new(device)) == NULL) {
|
||||
+ if (partedExnRaised) {
|
||||
+ partedExnRaised = 0;
|
||||
+
|
||||
+ if (!PyErr_ExceptionMatches(PartedException) &&
|
||||
+ !PyErr_ExceptionMatches(PyExc_NotImplementedError))
|
||||
+ PyErr_SetString(DiskException, partedExnMessage);
|
||||
+ } else {
|
||||
+ PyErr_Format(DiskException, "Could not create new disk label on %s", disk->dev->path);
|
||||
+ }
|
||||
+
|
||||
+ return NULL;
|
||||
+ }
|
||||
+
|
||||
+ ret = PedDisk2_ped_Disk(disk);
|
||||
+ return (PyObject *) ret;
|
||||
+}
|
||||
+
|
||||
/* vim:tw=78:ts=4:et:sw=4
|
||||
*/
|
||||
--
|
||||
1.8.1.2
|
||||
|
||||
54
patch0
Normal file
54
patch0
Normal file
@ -0,0 +1,54 @@
|
||||
diff -up pyparted-3.9.1/src/parted/__init__.py.orig pyparted-3.9.1/src/parted/__init__.py
|
||||
--- pyparted-3.9.1/src/parted/__init__.py.orig 2013-09-03 11:27:51.000000000 -0400
|
||||
+++ pyparted-3.9.1/src/parted/__init__.py 2013-09-09 13:38:22.525766774 -0400
|
||||
@@ -313,9 +313,9 @@ def Deprecated(mod, deprecated={}):
|
||||
__archLabels = (('amiga', 'ppc(64)?$'),
|
||||
('bsd', 'alpha$'),
|
||||
('dasd', 's390x?$'),
|
||||
- ('gpt', 'i[3-6]86$|x86_64$|ia64$|ppc(64)?$'),
|
||||
+ ('gpt', 'i[3-6]86$|x86_64$|ia64$|ppc(64)?$|armv7l$'),
|
||||
('mac', 'ppc(64)?$'),
|
||||
- ('msdos', 'i[3-6]86$|x86_64$|s390x?$|alpha$|ia64$|ppc(64)?$'),
|
||||
+ ('msdos', 'i[3-6]86$|x86_64$|s390x?$|alpha$|ia64$|ppc(64)?$|armv7l$'),
|
||||
('sun', 'sparc(64)?$'))
|
||||
|
||||
def getLabels(arch=None):
|
||||
diff -up pyparted-3.9.1/tests/test_parted_parted.py.orig pyparted-3.9.1/tests/test_parted_parted.py
|
||||
--- pyparted-3.9.1/tests/test_parted_parted.py.orig 2013-09-03 11:27:51.000000000 -0400
|
||||
+++ pyparted-3.9.1/tests/test_parted_parted.py 2013-09-09 13:38:00.338766774 -0400
|
||||
@@ -59,6 +59,7 @@ class GetLabelsTestCase(unittest.TestCas
|
||||
self.assertSetEqual(parted.getLabels('ppc64'), {'amiga', 'gpt', 'mac', 'msdos'})
|
||||
self.assertSetEqual(parted.getLabels('alpha'), {'bsd', 'msdos'})
|
||||
self.assertSetEqual(parted.getLabels('ia64'), {'gpt', 'msdos'})
|
||||
+ self.assertSetEqual(parted.getLabels('armv7l'), {'gpt', 'msdos'})
|
||||
|
||||
class GetDeviceTestCase(RequiresDeviceNode):
|
||||
def runTest(self):
|
||||
diff -up pyparted-3.9.1/tests/test__ped_ped.py.orig pyparted-3.9.1/tests/test__ped_ped.py
|
||||
--- pyparted-3.9.1/tests/test__ped_ped.py.orig 2013-09-03 11:27:51.000000000 -0400
|
||||
+++ pyparted-3.9.1/tests/test__ped_ped.py 2013-09-09 13:29:51.028766774 -0400
|
||||
@@ -203,14 +203,18 @@ class DeviceGetNextTestCase(unittest.Tes
|
||||
_ped.device_probe_all()
|
||||
lst = self.getDeviceList(_ped.device_get_next)
|
||||
|
||||
- # Now the test cases.
|
||||
- self.assertGreater(len(lst), 0)
|
||||
- self.assertRaises(TypeError, _ped.device_get_next, None)
|
||||
+ # Now the test cases. This only works if we get any devices back,
|
||||
+ # which may not be possible depending on what is executing the test
|
||||
+ # cases. Automated build systems may not provide this functionality,
|
||||
+ # so just skip the tests that do not matter when there are no
|
||||
+ # devices returned.
|
||||
+ if len(lst) > 0:
|
||||
+ self.assertRaises(TypeError, _ped.device_get_next, None)
|
||||
|
||||
- for ele in lst:
|
||||
- self.assertTrue(isinstance(ele, _ped.Device))
|
||||
+ for ele in lst:
|
||||
+ self.assertTrue(isinstance(ele, _ped.Device))
|
||||
|
||||
- self.assertRaises(IndexError, _ped.device_get_next, lst[-1])
|
||||
+ self.assertRaises(IndexError, _ped.device_get_next, lst[-1])
|
||||
|
||||
class DeviceProbeAllTestCase(RequiresDevice, BuildList):
|
||||
def runTest(self):
|
||||
@ -1,21 +1,20 @@
|
||||
Summary: Python module for GNU parted
|
||||
Name: pyparted
|
||||
Epoch: 1
|
||||
Version: 3.9
|
||||
Release: 4%{?dist}
|
||||
Version: 3.9.1
|
||||
Release: 1%{?dist}
|
||||
License: GPLv2+
|
||||
Group: System Environment/Libraries
|
||||
URL: http://fedorahosted.org/pyparted
|
||||
|
||||
Source0: http://fedorahosted.org/releases/p/y/%{name}/%{name}-%{version}.tar.gz
|
||||
Patch1: 0001-Do-not-traceback-when-calling-setlocale-875354.patch
|
||||
Patch2: 0002-Convert-Constraint-to-__ped.Constraint-in-partition..patch
|
||||
Patch3: 0003-Subject-PATCH-pyparted-export-ped_disk_new-functiona.patch
|
||||
Patch0: patch0
|
||||
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(id -u -n)
|
||||
BuildRequires: python-devel
|
||||
BuildRequires: parted-devel >= 3.1
|
||||
BuildRequires: parted-devel >= 3.1-14
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: e2fsprogs
|
||||
|
||||
%description
|
||||
Python module for the parted library. It is used for manipulating
|
||||
@ -23,9 +22,7 @@ partition tables.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch1 -p 1
|
||||
%patch2 -p 1
|
||||
%patch3 -p 1
|
||||
%patch0 -p1
|
||||
|
||||
%build
|
||||
make %{?_smp_mflags}
|
||||
@ -34,6 +31,9 @@ make %{?_smp_mflags}
|
||||
rm -rf %{buildroot}
|
||||
make install DESTDIR=%{buildroot}
|
||||
|
||||
%check
|
||||
make test
|
||||
|
||||
%clean
|
||||
rm -rf %{buildroot}
|
||||
|
||||
@ -45,10 +45,23 @@ rm -rf %{buildroot}
|
||||
%{python_sitearch}/%{name}-%{version}-*.egg-info
|
||||
|
||||
%changelog
|
||||
* Mon Sep 09 2013 David Cantrell <dcantrell@redhat.com> - 3.9.1-1
|
||||
- Fix 'make bumpver' to handle multiple decimal points. (dcantrell)
|
||||
- Add support for hfs_esp flag (dcantrell)
|
||||
- Add support for esp flag (bcl)
|
||||
- Add support for irst flag (bcl)
|
||||
- Add support for msftdata flag (bcl)
|
||||
- Subject: [PATCH] pyparted: export ped_disk_new functionality (rnsastry)
|
||||
- Convert Constraint to __ped.Constraint in partition.getMaxGeometry()
|
||||
(chris)
|
||||
- Do not traceback when calling setlocale (#875354). (clumens)
|
||||
- Enable 'make check' in the spec file, patch for koji use
|
||||
- Add armv7l to the list of acceptable arches for gpt and msdos disklabels
|
||||
|
||||
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:3.9-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
||||
|
||||
* Wed Jul 08 2013 David Cantrell <dcantrell@redhat.com> - 3.9-3
|
||||
* Mon Jul 08 2013 David Cantrell <dcantrell@redhat.com> - 3.9-3
|
||||
- Revert to pyparted-3.9 plus critical patches due to issues with the 3.10
|
||||
release which are actively being worked on. The 3.10 release does not
|
||||
work with the installer right now.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user