diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.gitignore b/.gitignore index 09746ad..58dd8ea 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,16 @@ -/pyparted-pyparted-3.10.4.tar.gz +/pyparted-3.10.6.tar.gz +/pyparted-3.10.7.tar.gz +/pyparted-3.11.0.tar.gz +/pyparted-3.11.2.tar.gz +/pyparted-3.11.2.tar.gz.asc +/pyparted-3.11.3.tar.gz +/pyparted-3.11.4.tar.gz +/pyparted-3.11.4.tar.gz.asc +/pyparted-3.11.5.tar.gz +/pyparted-3.11.5.tar.gz.asc +/pyparted-3.11.7.tar.gz +/pyparted-3.11.7.tar.gz.asc +/pyparted-3.12.0.tar.gz +/pyparted-3.12.0.tar.gz.asc +/pyparted-3.13.0.tar.gz +/pyparted-3.13.0.tar.gz.asc diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..d71584a --- /dev/null +++ b/gating.yaml @@ -0,0 +1,6 @@ +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_testing +rules: + - !PassingTestCaseRule {test_case_name: dist.depcheck} diff --git a/keyring.gpg b/keyring.gpg new file mode 100644 index 0000000..10fab63 Binary files /dev/null and b/keyring.gpg differ diff --git a/plans/run-tests.fmf b/plans/run-tests.fmf new file mode 100644 index 0000000..cf8a582 --- /dev/null +++ b/plans/run-tests.fmf @@ -0,0 +1,9 @@ +summary: Run pyparted tests +prepare: + how: install + package: + - python3-pyparted +execute: + script: | + fallocate -l 1G $PWD/disk.img + ./tests/scripts/pyparted-tests $PWD/disk.img diff --git a/pyparted.spec b/pyparted.spec index 59be362..ad79d71 100644 --- a/pyparted.spec +++ b/pyparted.spec @@ -1,101 +1,407 @@ -%define with_python3 1 +Summary: Python module for GNU parted +Name: pyparted +Epoch: 1 +Version: 3.13.0 +Release: 17%{?dist} +License: GPL-2.0-or-later +URL: https://github.com/dcantrell/pyparted -Summary: Python module for GNU parted -Name: pyparted -Epoch: 1 -Version: 3.10.4 -Release: 1%{?dist} -License: GPLv2+ -Group: System Environment/Libraries -URL: https://github.com/dcantrell/%{name} +Source0: https://github.com/dcantrell/pyparted/releases/download/v%{version}/%{name}-%{version}.tar.gz +Source1: https://github.com/dcantrell/pyparted/releases/download/v%{version}/%{name}-%{version}.tar.gz.asc +Source2: keyring.gpg +Source3: trustdb.gpg -Source0: https://github.com/dcantrell/%{name}/releases/%{name}-%{name}-%{version}.tar.gz - -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(id -u -n) -BuildRequires: python-devel -%if 0%{?with_python3} -BuildRequires: python3-devel -%endif -BuildRequires: parted-devel >= 3.1-14 +BuildRequires: make +BuildRequires: gcc +BuildRequires: parted-devel >= 3.4 BuildRequires: pkgconfig BuildRequires: e2fsprogs +BuildRequires: gnupg2 +BuildRequires: python3-devel +BuildRequires: python3-setuptools %description Python module for the parted library. It is used for manipulating partition tables. -%if 0%{?with_python3} %package -n python3-pyparted Summary: Python 3 module for GNU parted -Group: System Environment/Libraries %description -n python3-pyparted Python module for the parted library. It is used for manipulating partition tables. This package provides Python 3 bindings for parted. -%endif %prep -%setup -q -n %{name}-%{name}-%{version} +# Verify source archive signature +gpg --no-default-keyring --keyring %{SOURCE2} --trustdb-name %{SOURCE3} --verify %{SOURCE1} %{SOURCE0} || exit 1 -%if 0%{?with_python3} -rm -rf %{py3dir} -cp -a . %{py3dir} -%endif +%autosetup %build -make %{?_smp_mflags} - -%if 0%{?with_python3} -pushd %{py3dir} -PYTHON=python3 make %{?_smp_mflags} -popd -%endif - -%install -rm -rf %{buildroot} -make install DESTDIR=%{buildroot} - -%if 0%{?with_python3} -pushd %{py3dir} -PYTHON=python3 make install DESTDIR=%{buildroot} -popd -%endif +%make_build CFLAGS="%{optflags} -fcommon" %check make test -%if 0%{?with_python3} -pushd %{py3dir} -PYTHON=python3 make test -popd -%endif +%install +%make_install -%clean -rm -rf %{buildroot} - -%files -%defattr(-,root,root,-) -%doc AUTHORS BUGS COPYING NEWS README TODO -%{python_sitearch}/_ped.so -%{python_sitearch}/parted -%{python_sitearch}/%{name}-%{version}-*.egg-info - -%if 0%{?with_python3} %files -n python3-pyparted -%defattr(-,root,root,-) -%doc AUTHORS BUGS COPYING NEWS README TODO +%doc AUTHORS HACKING NEWS README.md RELEASE TODO +%license LICENSE %{python3_sitearch}/_ped.*.so %{python3_sitearch}/parted %{python3_sitearch}/%{name}-%{version}-*.egg-info -%endif %changelog -* Tue May 05 2015 David Cantrell - 1:3.10.4-1 -- Upgrade to pyparted-3.10.4 for multiple fixes and to add a Python 3 - subpackage (#1196402) +* Wed Jul 22 2026 Python Maint - 1:3.13.0-17 +- Rebuilt for Python 3.15.0b4 ABI change -* Mon Dec 01 2014 Adam Williamson - 1:3.9.5-3 -- backport resetNumber() function from 3.10 (needed to fix RHBZ #1166598) +* Thu Jul 16 2026 Fedora Release Engineering - 1:3.13.0-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild + +* Wed Jun 03 2026 Python Maint - 1:3.13.0-15 +- Rebuilt for Python 3.15 + +* Sat Jan 17 2026 Fedora Release Engineering - 1:3.13.0-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Fri Sep 19 2025 Python Maint - 1:3.13.0-13 +- Rebuilt for Python 3.14.0rc3 bytecode + +* Fri Aug 15 2025 Python Maint - 1:3.13.0-12 +- Rebuilt for Python 3.14.0rc2 bytecode + +* Fri Jul 25 2025 Fedora Release Engineering - 1:3.13.0-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Sun Jun 15 2025 Yaakov Selkowitz - 1:3.13.0-10 +- Drop unused six dependency + +* Mon Jun 02 2025 Python Maint - 1:3.13.0-9 +- Rebuilt for Python 3.14 + +* Sat Jan 18 2025 Fedora Release Engineering - 1:3.13.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Fri Jul 19 2024 Fedora Release Engineering - 1:3.13.0-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Fri Jun 07 2024 Python Maint - 1:3.13.0-6 +- Rebuilt for Python 3.13 + +* Fri Jan 26 2024 Fedora Release Engineering - 1:3.13.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 1:3.13.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jul 21 2023 Fedora Release Engineering - 1:3.13.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Jun 22 2023 Python Maint - 1:3.13.0-2 +- Rebuilt for Python 3.12 + +* Wed Jun 21 2023 David Cantrell - 1:3.13.0-1 +- Upgrade to pyparted-3.13.0 + +* Thu Jun 15 2023 Python Maint - 1:3.12.0-11 +- Rebuilt for Python 3.12 + +* Wed Jun 14 2023 David Cantrell - 1:3.12.0-10 +- Use non-deprecated syntax for the %%patch macros + +* Tue Jun 13 2023 Python Maint - 1:3.12.0-9 +- Rebuilt for Python 3.12 + +* Thu Mar 02 2023 David Cantrell - 1:3.12.0-8 +- Fix FTBFS with _ped.disktype test case for gpt (#2171656) +- Update License tag to SPDX expression + +* Fri Jan 20 2023 Fedora Release Engineering - 1:3.12.0-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Fri Jul 22 2022 Fedora Release Engineering - 1:3.12.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Tue Jun 21 2022 David Cantrell - 1:3.12.0-5 +- Patch pyparted to handle PED_DISK_TYPE_PARTITION_TYPE_ID for the + msdos disk type and PED_DISK_TYPE_PARTITION_TYPE_UUID for the gpt + label (#2098792) + +* Mon Jun 20 2022 Adam Williamson - 1:3.12.0-4 +- Backport PR #92 to fix tests with parted 3.5 (#2098792) + +* Mon Jun 13 2022 Python Maint - 1:3.12.0-3 +- Rebuilt for Python 3.11 + +* Mon Mar 07 2022 David Cantrell - 3.12.0-2 +- BR python3-setuptools + +* Mon Mar 07 2022 David Cantrell - 3.12.0-1 +- Upgrade to pyparted-3.12.0 + +* Fri Jan 21 2022 Fedora Release Engineering - 1:3.11.7-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Jul 23 2021 Fedora Release Engineering - 1:3.11.7-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Thu Jun 03 2021 Python Maint - 1:3.11.7-3 +- Rebuilt for Python 3.10 + +* Wed Jan 27 2021 Fedora Release Engineering - 1:3.11.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Fri Oct 23 2020 David Cantrell - 1:3.11.7-1 +- Upgrade to pyparted-3.11.7 (BZ#1890443) +- Set PY_SSIZE_T_CLEAN for the build (bcl) +- add nvme support +- Update RELEASE file to make last step be "make pypi" (dcantrell) + +* Tue Jul 14 2020 Tom Stellard - 1:3.11.5-3 +- Use make macros +- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro + +* Sat May 23 2020 Miro Hrončok - 1:3.11.5-2 +- Rebuilt for Python 3.9 + +* Mon Mar 09 2020 David Cantrell - 1:3.11.5-1 +- Require at least libparted 3.3 and python 3.7 (dcantrell) +- pedmodule.c: Fix partition enum flag handling (bcl) +- Add support for chromeos_kernel and bls_boot partition flags (bcl) +- Move exception declarations to _pedmodule.c (dcantrell) + +* Tue Feb 11 2020 David Cantrell - 1:3.11.4-1 +- Use Decimal for Device.getSize() operations, return a + float (#1801355) +- Update the 'twine upload' line in the Makefile +- Don't intentionally prohibit Python 2 usage (#67) +- mips64 support + +* Thu Jan 30 2020 Fedora Release Engineering - 1:3.11.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Fri Nov 15 2019 David Cantrell - 1:3.11.3-1 +- Fix deprecation warning in parted/cachedlist.py (#1772060) + +* Sun Oct 20 2019 Miro Hrončok - 1:3.11.2-5 +- Remove python2-pyparted from Fedora 32+ + +* Thu Oct 03 2019 Miro Hrončok - 1:3.11.2-4 +- Rebuilt for Python 3.8.0rc1 (#1748018) + +* Fri Aug 16 2019 Miro Hrončok - 1:3.11.2-3 +- Rebuilt for Python 3.8 + +* Fri Jul 26 2019 Fedora Release Engineering - 1:3.11.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Feb 01 2019 David Cantrell - 1:3.11.2-1 +- pyparted-3.11.2 (dcantrell) +- Do not remove the generated tarballs. (dcantrell) +- Update the RELEASE file. (dcantrell) +- tests: Fix flag_get_name tests (bcl) +- Avoid potential NULL dereferences in pydisk.c and pytimer.c + (dcantrell) +- New - example to query device capacity (jflorian) +- correct spelling mistake (edward) +- _ped's *_flag_get_name methods now throw a PartedException instead of + ValueError on unsupported flags. (lukasz.zemczak) +- Make the partition name a property on parted.Partition objects (#34) + (dcantrell) + +* Tue Jul 31 2018 Florian Weimer - 1:3.11.0-17 +- Rebuild with fixed binutils + +* Fri Jul 27 2018 Igor Gnatenko - 1:3.11.0-16 +- Rebuild for new binutils + +* Thu Jul 26 2018 David Cantrell - 1:3.11.0-15 +- Do not disable python2 builds by default. There are still some packages + that have not been updated to python3 and require python2-pyparted. + +* Wed Jul 25 2018 David Cantrell - 1:3.11.0-14 +- Conditionalize python2 and python3 builds to make the SRPM more portable + across releases. On RHEL > 7 and Fedora > 28, do not build for python2. + On RHEL <= 7, do not build for python3. + +* Tue Jul 24 2018 David Cantrell - 1:3.11.0-13 +- Use 'python2' when building the Python 2.x bindings (#1605566) +- BuildRequires gcc (#1605566) +- %%{python_sitearch} -> %%{python2_sitearch} (#1605566) + +* Fri Jul 13 2018 Fedora Release Engineering - 1:3.11.0-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Fri Jun 15 2018 Miro Hrončok - 1:3.11.0-11 +- Rebuilt for Python 3.7 + +* Mon Apr 02 2018 Adam Williamson - 1:3.11.0-10 +- Make pyparted provides/obsoletes include the epoch + +* Fri Feb 09 2018 Fedora Release Engineering - 1:3.11.0-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Mon Jan 15 2018 Iryna Shcherbina - 1:3.11.0-8 +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + +* Sun Aug 20 2017 Zbigniew Jędrzejewski-Szmek - 1:3.11.0-7 +- Add Provides for the old name without %%_isa + +* Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek - 1:3.11.0-6 +- Python 2 binary package renamed to python2-pyparted + See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3 + +* Thu Aug 03 2017 Fedora Release Engineering - 1:3.11.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 1:3.11.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Thu Jul 13 2017 David Cantrell - 1:3.11.0-3 +- Require parted-3.2-18 in order to ensure #25 does not occur + +* Mon Jun 26 2017 David Cantrell - 1:3.11.0-2 +- BuildRequires python[3]-six + +* Thu Jun 22 2017 David Cantrell - 1:3.11.0-1 +- Upgrade to pyparted-3.11.0 + +* Sat Feb 11 2017 Fedora Release Engineering - 1:3.10.7-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Tue Dec 13 2016 Stratakis Charalampos - 1:3.10.7-5 +- Rebuild for Python 3.6 + +* Tue Jul 19 2016 Fedora Release Engineering - 1:3.10.7-4 +- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages + +* Thu Feb 04 2016 Fedora Release Engineering - 1:3.10.7-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Thu Oct 15 2015 Robert Kuska - 1:3.10.7-2 +- Rebuilt for Python3.5 rebuild + +* Thu Aug 27 2015 David Cantrell - 3.10.7-1 +- test__ped_filesystem.py for for Python 2 vs 3. (dcantrell) + +* Thu Aug 27 2015 David Cantrell - 3.10.6-1 +- Use sys.exit instead of os._exit with pocketlint. (clumens) +- Use addCleanup instead of tearDown for removing temp-device. (clumens) +- Add a new makefile target that does everything needed for jenkins. + (clumens) +- Merge pull request #13 from atodorov/fix_imports (david.l.cantrell) +- Merge pull request #14 from vpodzime/master (david.l.cantrell) +- Do not support and use hashing on pyparted's objects (#1229186) (vpodzime) +- Fix pylint errors (atodorov) +- Merge pull request #12 from atodorov/remove_hardcoded_paths + (david.l.cantrell) +- Merge pull request #8 from atodorov/tests_ped_filesystem (david.l.cantrell) +- Merge pull request #10 from atodorov/tests_ped_partition (david.l.cantrell) +- Merge pull request #6 from atodorov/add_coverage (david.l.cantrell) +- Remove hard-coded paths. You should have all tools in PATH when working on + pyparted. (atodorov) +- run the test suite under python-coverage and report the results (atodorov) +- add test coverage for _ped.Partition (atodorov) +- Merge pull request #9 from atodorov/tests_dont_skip_if_root + (david.l.cantrell) +- Merge pull request #11 from atodorov/fix_api_docs (david.l.cantrell) +- update pydoc descriptions based on actual behavior (atodorov) +- don't skip DeviceGetNextTestCase if running as root (atodorov) +- add test cases for _ped.FileSystem (atodorov) +- Merge pull request #7 from atodorov/tests_readme (david.l.cantrell) +- Remove old BUGS file. (david.l.cantrell) +- add simple test documentation (atodorov) +- Merge pull request #5 from vpodzime/master (david.l.cantrell) +- Beware of Python 3's version of the map() built-in function (vpodzime) +- Remove the MANIFEST file when doing 'make release' (dcantrell) +- Remove fedorahosted steps from the RELEASE file. (dcantrell) +- Update documentation and Makefile for github. (dcantrell) +- Stop using type() to do comparisons. (clumens) +- Merge pull request #4 from vpodzime/master-python3 (david.l.cantrell) +- Don't blindly expect that everything is hashable (vpodzime) +- Replace filter() call with list comprehension (vpodzime) +- Fix an incorrect reference to "type". (clumens) +- Merge pull request #3 from clumens/master (clumens) +- Only run pylint against a python3 build of pyparted. (clumens) +- Fix the fdisk example up to pass pylint. (clumens) +- Catch exact exceptions in a couple places. (clumens) +- Ignore some pylint warnings. (clumens) +- Don't use string formatting in calls to log.whatever. (clumens) +- Fix a couple unused variable warnings. (clumens) +- Define things in the setUp methods, not in runTest. (clumens) +- Don't redefine reserved or already used function names. (clumens) +- Fix import errors turned up by pylint. (clumens) +- Convert to using pocketlint to run pylint. (clumens) +- Don't run "git clean -fdx" in the "make clean" target. (clumens) +- Add extension whitelist for _ped to pylint call (bcl) +- Merge pull request #2 from jflorian/master (david.l.cantrell) +- New - example to create a single bootable partition (john_florian) +- Remember to pass the arguments to the exception handler. (clumens) +- Put new _ped constants and functions into the parted module. (clumens) +- PyInt_FromLong doesn't exist in python3, so always use PyLong_FromLong. + (clumens) +- Add new functions to extend exception handling. (clumens) +- Add function for resetting partition's number. (vpodzime) +- Fix localeC imports in a handful of src/parted/*.py files. (dcantrell) +- Disable false positive E0611 errors on src/parted/__init__.py (dcantrell) +- ped_unit_get_size() returns a long long, not just a long. (dcantrell) +- Adjust test cases to deal with run-time support. (dcantrell) +- Only import partition types that exist. (dcantrell) +- Note x.y.z version number. (dcantrell) +- Remove .travis.yml and tox.ini (dcantrell) +- Skip 'aix' diskType in FreshDiskTestCase (dcantrell) +- Handle running the test suite on armv7l hosts. (dcantrell) +- Fix getPartitionByPath for disks that are just plain files. (dlehman) +- ext2 may be smaller than the end of the device (#1095904) (bcl) +- support ppc64le in pyparted (hamzy) +- Fix up the PYTHONPATH for "make check" and "make test". (clumens) +- Remove geom tests that don't fail (bcl) +- Add btrfs and ext4 for filesystem type test (bcl) +- Revert "Add support for hfs_esp flag" (bcl) +- Teach pyparted that aarch64 support GPT partitions. (dcantrell) +- And disable the length one, too. (clumens) +- Disable one test case that fails on ppc64, for the moment. (clumens) +- Update pylint options for the latest version of that program. (clumens) +- Fix 'make bumpver' to handle multiple decimal points. (dcantrell) +- Add support for hfs_esp flag (dcantrell) +- Add support for esp flag (dcantrell) +- Add support for irst flag (dcantrell) +- Add support for msftdata flag (dcantrell) +- Don't assume tools will be in the user's $PATH. (clumens) +- Fix a lot of problems pylint caught. (clumens) +- Move from pychecker to pylint. (clumens) +- Have pychecker ignore some fale positives on missing class attrs. (clumens) +- setattr doesn't return any value. (clumens) +- Fix up pychecker errors reported by Jenkins. (dcantrell) +- Subject: [PATCH] pyparted: export ped_disk_new functionality (rnsastry) +- Correct boilerplate modifications. (dcantrell) +- Tests also require the parted binary. (g2p.code) +- Work around Travis's broken defaults. (g2p.code) + +* Thu Jun 18 2015 Fedora Release Engineering - 1:3.10.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Thu May 07 2015 David Cantrell - 3.10.5-1 +- Upgrade to pyparted-3.10.5 + +* Tue May 05 2015 David Cantrell - 3.10.4-1 +- Upgrade to pyparted-3.10.4 + +* Fri Jan 16 2015 David Cantrell - 3.10.3-1 +- Upgrade to pyparted-3.10.3 + +* Wed Nov 26 2014 David Cantrell - 3.10.2-1 +- Upgrade to pyparted-3.10.2 + +* Mon Nov 10 2014 David Cantrell - 3.10.1-1 +- Upgrade to pyparted-3.10.1 + +* Wed Sep 24 2014 David Cantrell - 3.10.0a-1 +- Upgrade to pyparted-3.10.0 +- Add python3 subpackage (#985308) * Sun Aug 17 2014 Fedora Release Engineering - 1:3.9.5-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild diff --git a/sources b/sources index 4fe5625..39be172 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ -f7b324cfd13210cc802c87628ecf8f35 pyparted-pyparted-3.10.4.tar.gz +SHA512 (pyparted-3.13.0.tar.gz) = a9162afdbee48de5474de98ae8c08df028d485e122fcafae8421dddd47c9ed00d8dd9f40d854b14d4582483d8ea3469128a912491371385e4f18a0dbbbafbfd5 +SHA512 (pyparted-3.13.0.tar.gz.asc) = 6f3e973b52584450c3eed97d64266df832d8820a6a72f731fbb9fbd9be06f93f2d53b47bcae01b78a831e3e3cedca3ae8629dc5f9fe35dcc3ed11226a11fd952 diff --git a/tests/scripts/pyparted-tests b/tests/scripts/pyparted-tests new file mode 100755 index 0000000..8edcca1 --- /dev/null +++ b/tests/scripts/pyparted-tests @@ -0,0 +1,88 @@ +#!/usr/bin/python3 + +import parted +import sys + + +def init_disk(disk_img): + # Make a disklabel (failures here will raise an error) + dev = parted.getDevice(disk_img) + disk = parted.freshDisk(dev, "gpt") + + # Make a partition + geom = parted.Geometry(device=dev, + start=2048, + end=50*2048) + fs = parted.FileSystem(type="ext4", geometry=geom) + part = parted.Partition(disk=disk, + type=parted.PARTITION_NORMAL, + fs=fs, + geometry=geom) + disk.addPartition(partition=part, + constraint=dev.optimalAlignedConstraint) + part.setFlag(parted.PARTITION_BOOT) + disk.commit() + +def read_disk(disk_img): + # Read the disk and check the partitions + dev = parted.getDevice(disk_img) + disk = parted.newDisk(dev) + + if dev.length == 0: + print("ERROR: Disk has no length", file=sys.stderr) + sys.exit(1) + + if len(disk.partitions) != 1: + print("ERROR: Wrong number of partitions", file=sys.stderr) + sys.exit(1) + + part = disk.partitions[0] + if part.geometry.end != 50*2048: + print("ERROR: Partition is wrong length", file=sys.stderr) + sys.exit(1) + + if part.geometry.start != 2048: + print("ERROR: Parition doesn't start at sector 2048", file=sys.stderr) + sys.exit(1) + + +def remove_partition(disk_img): + # Remove partition and check disk + dev = parted.getDevice(disk_img) + disk = parted.newDisk(dev) + + if len(disk.partitions) != 1: + print("ERROR: Wrong number of partitions", file=sys.stderr) + sys.exit(1) + + disk.removePartition(partition=disk.partitions[0]) + disk.commit() + + dev = parted.getDevice(disk_img) + disk = parted.newDisk(dev) + + if len(disk.partitions) != 0: + print("ERROR: Failed to delete partition", file=sys.stderr) + sys.exit(1) + + +def main(disk_img): + print(f"Running tests on {disk_img}") + + try: + init_disk(disk_img) + read_disk(disk_img) + remove_partition(disk_img) + except Exception as e: + print(f"ERROR: {str(e)}", file=sys.stderr) + sys.exit(1) + + print("PASS", file=sys.stderr) + sys.exit(0) + +if __name__ == '__main__': + if len(sys.argv) < 2: + print("Usage: %s " % sys.argv[0], file=sys.stderr) + sys.exit(1) + + main(sys.argv[1]) diff --git a/trustdb.gpg b/trustdb.gpg new file mode 100644 index 0000000..cf09ce7 Binary files /dev/null and b/trustdb.gpg differ