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.
This commit is contained in:
parent
f30a7c0e4d
commit
6427527f2b
42
0001-Do-not-traceback-when-calling-setlocale-875354.patch
Normal file
42
0001-Do-not-traceback-when-calling-setlocale-875354.patch
Normal file
@ -0,0 +1,42 @@
|
||||
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
|
||||
|
||||
@ -0,0 +1,26 @@
|
||||
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
|
||||
|
||||
131
0003-Subject-PATCH-pyparted-export-ped_disk_new-functiona.patch
Normal file
131
0003-Subject-PATCH-pyparted-export-ped_disk_new-functiona.patch
Normal file
@ -0,0 +1,131 @@
|
||||
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
|
||||
|
||||
@ -1,12 +1,16 @@
|
||||
Summary: Python module for GNU parted
|
||||
Name: pyparted
|
||||
Version: 3.10
|
||||
Release: 2%{?dist}
|
||||
Epoch: 1
|
||||
Version: 3.9
|
||||
Release: 3%{?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
|
||||
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(id -u -n)
|
||||
BuildRequires: python-devel
|
||||
@ -19,6 +23,9 @@ partition tables.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch1 -p 1
|
||||
%patch2 -p 1
|
||||
%patch3 -p 1
|
||||
|
||||
%build
|
||||
make %{?_smp_mflags}
|
||||
@ -33,11 +40,16 @@ rm -rf %{buildroot}
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%doc AUTHORS BUGS COPYING ChangeLog NEWS README TODO
|
||||
%{python_sitearch}/_ped.so
|
||||
%{python_sitearch}/_pedmodule.so
|
||||
%{python_sitearch}/parted
|
||||
%{python_sitearch}/%{name}-%{version}-*.egg-info
|
||||
|
||||
%changelog
|
||||
* Wed 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.
|
||||
|
||||
* Thu May 23 2013 David Cantrell <dcantrell@redhat.com> - 3.10-2
|
||||
- Fix build errors.
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user