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 8dab559..73ae13c 100644 --- a/.gitignore +++ b/.gitignore @@ -188,3 +188,105 @@ pykickstart-1.78.tar.gz /pykickstart-3.14.tar.gz /pykickstart-3.15.tar.gz /pykickstart-3.16.tar.gz +/pykickstart-3.17.tar.gz +/pykickstart-3.18.tar.gz +/pykickstart-3.19.tar.gz +/pykickstart-3.19.tar.gz.asc +/pykickstart-3.20.tar.gz +/pykickstart-3.20.tar.gz.asc +/pykickstart-3.21.tar.gz +/pykickstart-3.21.tar.gz.asc +/pykickstart-3.22.tar.gz +/pykickstart-3.22.tar.gz.asc +/pykickstart-3.23.tar.gz +/pykickstart-3.23.tar.gz.asc +/pykickstart-3.24.tar.gz +/pykickstart-3.24.tar.gz.asc +/pykickstart-3.25.tar.gz +/pykickstart-3.25.tar.gz.asc +/pykickstart-3.26.tar.gz +/pykickstart-3.26.tar.gz.asc +/pykickstart-3.27.tar.gz +/pykickstart-3.27.tar.gz.asc +/pykickstart-3.28.tar.gz +/pykickstart-3.28.tar.gz.asc +/pykickstart-3.29.tar.gz +/pykickstart-3.29.tar.gz.asc +/pykickstart-3.30.tar.gz +/pykickstart-3.30.tar.gz.asc +/pykickstart-3.31.tar.gz +/pykickstart-3.31.tar.gz.asc +/pykickstart-3.32.tar.gz +/pykickstart-3.32.tar.gz.asc +/pykickstart-3.33.tar.gz +/pykickstart-3.33.tar.gz.asc +/pykickstart-3.34.tar.gz +/pykickstart-3.34.tar.gz.asc +/pykickstart-3.35.tar.gz +/pykickstart-3.35.tar.gz.asc +/pykickstart-3.36.tar.gz +/pykickstart-3.36.tar.gz.asc +/pykickstart-3.37.tar.gz +/pykickstart-3.37.tar.gz.asc +/pykickstart-3.38.tar.gz +/pykickstart-3.38.tar.gz.asc +/pykickstart-3.39.tar.gz +/pykickstart-3.39.tar.gz.asc +/pykickstart-3.40.tar.gz +/pykickstart-3.40.tar.gz.asc +/pykickstart-3.41.tar.gz +/pykickstart-3.41.tar.gz.asc +/pykickstart-3.42.tar.gz +/pykickstart-3.42.tar.gz.asc +/pykickstart-3.43.tar.gz +/pykickstart-3.43.tar.gz.asc +/pykickstart-3.44.tar.gz +/pykickstart-3.44.tar.gz.asc +/pykickstart-3.45.tar.gz +/pykickstart-3.45.tar.gz.asc +/pykickstart-3.46.tar.gz +/pykickstart-3.46.tar.gz.asc +/pykickstart-3.47.tar.gz +/pykickstart-3.47.tar.gz.asc +/pykickstart-3.48.tar.gz +/pykickstart-3.48.tar.gz.asc +/pykickstart-3.49.tar.gz +/pykickstart-3.49.tar.gz.asc +/pykickstart-3.50.tar.gz +/pykickstart-3.50.tar.gz.asc +/pykickstart-3.51.tar.gz +/pykickstart-3.51.tar.gz.asc +/pykickstart-3.52.tar.gz +/pykickstart-3.52.tar.gz.asc +/pykickstart-3.53.tar.gz +/pykickstart-3.53.tar.gz.asc +/pykickstart-3.54.tar.gz +/pykickstart-3.54.tar.gz.asc +/pykickstart-3.55.tar.gz +/pykickstart-3.55.tar.gz.asc +/pykickstart-3.56.tar.gz +/pykickstart-3.56.tar.gz.asc +/pykickstart-3.57.tar.gz +/pykickstart-3.57.tar.gz.asc +/pykickstart-3.58.tar.gz +/pykickstart-3.58.tar.gz.asc +/pykickstart-3.59.tar.gz +/pykickstart-3.59.tar.gz.asc +/pykickstart-3.60.tar.gz +/pykickstart-3.60.tar.gz.asc +/pykickstart-3.61.tar.gz +/pykickstart-3.61.tar.gz.asc +/pykickstart-3.62.tar.gz +/pykickstart-3.62.tar.gz.asc +/pykickstart-3.63.tar.gz +/pykickstart-3.63.tar.gz.asc +/pykickstart-3.64.tar.gz +/pykickstart-3.64.tar.gz.asc +/pykickstart-3.65.tar.gz +/pykickstart-3.65.tar.gz.asc +/pykickstart-3.66.tar.gz +/pykickstart-3.66.tar.gz.asc +/pykickstart-3.67.tar.gz +/pykickstart-3.67.tar.gz.asc +/pykickstart-3.68.tar.gz +/pykickstart-3.68.tar.gz.asc diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..0c1cc35 --- /dev/null +++ b/gating.yaml @@ -0,0 +1,7 @@ +--- !Policy +product_versions: + - fedora-* +decision_contexts: [bodhi_update_push_stable] +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} diff --git a/plans/run-tests.fmf b/plans/run-tests.fmf new file mode 100644 index 0000000..be27fa6 --- /dev/null +++ b/plans/run-tests.fmf @@ -0,0 +1,8 @@ +summary: Run pykickstart tests +prepare: + how: install + package: + - python3-kickstart + - pykickstart +execute: + script: ./tests/scripts/run_tests.sh diff --git a/pykickstart.spec b/pykickstart.spec index fb02654..3f035ea 100644 --- a/pykickstart.spec +++ b/pykickstart.spec @@ -1,75 +1,42 @@ -%if 0%{?rhel} > 7 -%bcond_with python2 -%else -%bcond_without python2 -%endif - -# Disable tests by default because they fail to run inside mock builds -# at the moment, but can run locally. To build and run tests, do: -# rpmbuild -ba --with runtests pykickstart.spec -%bcond_with runtests +# Enable tests by default. To disable them use: +# rpmbuild -ba --without runtests pykickstart.spec +%bcond_without runtests +%bcond_with signed Name: pykickstart -Version: 3.16 +Version: 3.68 Release: 1%{?dist} -License: GPLv2 and MIT -Group: System Environment/Libraries +License: GPL-2.0-only Summary: Python utilities for manipulating kickstart files. Url: http://fedoraproject.org/wiki/pykickstart -# This is a Red Hat maintained package which is specific to -# our distribution. Thus the source is only available from -# within this srpm. -Source0: %{name}-%{version}.tar.gz +Source0: https://github.com/pykickstart/%{name}/releases/download/r%{version}/%{name}-%{version}.tar.gz +%if %{with signed} +Source1: https://github.com/pykickstart/%{name}/releases/download/r%{version}/%{name}-%{version}.tar.gz.asc +%endif BuildArch: noarch BuildRequires: gettext -%if %{with python2} -BuildRequires: python2-coverage -BuildRequires: python2-devel -BuildRequires: python2-nose -BuildRequires: python2-ordered-set -BuildRequires: python2-setuptools -BuildRequires: python2-requests -%endif - -BuildRequires: python3-coverage BuildRequires: python3-devel -BuildRequires: python3-nose -BuildRequires: python3-ordered-set +BuildRequires: python3-pip BuildRequires: python3-requests BuildRequires: python3-setuptools -BuildRequires: python3-six +BuildRequires: make +BuildRequires: python3-pytest + +# Only required when building with runtests +%if %{with runtests} BuildRequires: python3-sphinx +%endif Requires: python3-kickstart = %{version}-%{release} %description -Python utilities for manipulating kickstart files. The Python 2 and 3 libraries -can be found in the packages python-kickstart and python3-kickstart -respectively. +Python utilities for manipulating kickstart files. -%if %{with python2} -# Python 2 library -%package -n python2-kickstart -%{?python_provide:%python_provide python2-kickstart} -%{?python_provide:%python_provide python2-pykickstart} -Summary: Python 2 library for manipulating kickstart files. -Requires: python2-six -Requires: python2-requests -Requires: python2-ordered-set - -%description -n python2-kickstart -Python 2 library for manipulating kickstart files. The binaries are found in -the pykickstart package. -%endif - -# Python 3 library %package -n python3-kickstart Summary: Python 3 library for manipulating kickstart files. -Requires: python3-six Requires: python3-requests -Requires: python3-ordered-set %description -n python3-kickstart Python 3 library for manipulating kickstart files. The binaries are found in @@ -78,35 +45,15 @@ the pykickstart package. %prep %setup -q -%if %{with python2} -rm -rf %{py3dir} -mkdir %{py3dir} -cp -a . %{py3dir} -%endif - %build -%if %{with python2} -make PYTHON=%{__python2} -make -C %{py3dir} PYTHON=%{__python3} -%else make PYTHON=%{__python3} -%endif %install -%if %{with python2} -make PYTHON=%{__python2} DESTDIR=%{buildroot} install -make -C %{py3dir} PYTHON=%{__python3} DESTDIR=%{buildroot} install -%else make PYTHON=%{__python3} DESTDIR=%{buildroot} install -%endif %check %if %{with runtests} -%if %{with python2} -make -C %{py3dir} PYTHON=%{__python3} test -%else -make PYTHON=%{__python3} test -%endif +LC_ALL=C make PYTHON=%{__python3} test-no-coverage %endif %files @@ -122,23 +69,601 @@ make PYTHON=%{__python3} test %{_mandir}/man1/ksvalidator.1.gz %{_mandir}/man1/ksverdiff.1.gz -%if %{with python2} -%files -n python2-kickstart -%doc docs/2to3 -%doc docs/programmers-guide -%doc docs/kickstart-docs.txt -%{python2_sitelib}/pykickstart*.egg-info -%{python2_sitelib}/pykickstart -%endif - %files -n python3-kickstart %doc docs/2to3 %doc docs/programmers-guide %doc docs/kickstart-docs.txt %{python3_sitelib}/pykickstart -%{python3_sitelib}/pykickstart*.egg-info +%{python3_sitelib}/pykickstart-%{version}.dist-info %changelog +* Tue Dec 02 2025 Brian C. Lane - 3.68-1 +- rhsm: Add Flatpak registry option for RHEL10 (bciconel) +- commands: bootc: remove 'experimental' warning (k.koukiou) + +* Fri Sep 19 2025 Python Maint - 3.67-2 +- Rebuilt for Python 3.14.0rc3 bytecode + +* Mon Aug 18 2025 Brian C. Lane - 3.67-1 +- spec: Add python3-pytest to BuildRequires (bcl) +- tests: Use pytest module instead of unittest (bcl) +- workflows: Use py3.14 rc.1 (bcl) +- Add Fedora 44 support (bcl) +- spec: drop python3-build dependency (yselkowi) + +* Fri Aug 15 2025 Python Maint - 3.66-4 +- Rebuilt for Python 3.14.0rc2 bytecode + +* Fri Jul 25 2025 Fedora Release Engineering - 3.66-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Tue Jul 22 2025 Brian C. Lane - 3.66-2 +- Drop python3-build, it is not needed to install the package + +* Tue Jul 15 2025 Brian C. Lane - 3.66-1 +- workflows: Use py3.14 beta.4 (bcl) +- pylint: Ignore files in .git (bcl) +- pyproject: Bump setuptools to 77 or later (bcl) +- Makefile: Stop running setup.py directly (bcl) + +* Mon Jun 16 2025 Brian C. Lane - 3.65-1 +- workflows: Add python 3.14 to the test matrix (bcl) +- Add support for RDP (jkonecny) +- Deprecate VNC (jkonecny) +- docs: Fix chapter numbering after adding certificate (bcl) + +* Tue Jun 03 2025 Python Maint - 3.64-2 +- Rebuilt for Python 3.14 + +* Fri Apr 25 2025 Brian C. Lane - 3.64-1 +- workflow: Add python 3.13 testing (bcl) +- tests: Remove unused import of constants (bcl) +- realm: Clean up documentation (bcl) +- Add support for new bootc kickstart command (ppolawsk) +- Update documentation for clearpart --initlabel option. (rvykydal) +- Update the %certificate section documentation (rvykydal) + +* Mon Feb 24 2025 Brian C. Lane - 3.63-1 +- Do not remove "md" prefix from RAID names (vtrefny) +- Add Fedora 43 support (bcl) +- workflows: Switch to ubuntu-latest (bcl) +- Update formatting of certificate section documentation (rvykydal) +- Update %certificate documentation with not about bundles (rvykydal) +- Fix formatting of %certificate documentation example (rvykydal) +- Update %certificate section documentation (rvykydal) + +* Wed Jan 29 2025 Brian C. Lane - 3.62-1 +- Make %%certificate section option --dir mandatory. (rvykydal) + Resolves: rhbz#2342762 + +* Sat Jan 18 2025 Fedora Release Engineering - 3.61-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Thu Jan 09 2025 Brian C. Lane - 3.61-1 +- runpylint: Log astroid version (bcl) +- tests: Limit the python versions used in testing (bcl) +- Add support for inline certificates with `%certificate` section (k.koukiou) + +* Thu Oct 03 2024 Brian C. Lane - 3.60-1 +- module: Remove unused warnings import (bcl) +- tox: Add py313 to tox and 3.12.7 to workflow (bcl) +- Fix the fix for _parse_optional changing (awilliam) + +* Wed Oct 02 2024 Brian C. Lane - 3.59-1 +- options: adjust to behavior change in upstream _parse_optional (awilliam) +- Add Fedora 42 support (jkonecny) + +* Mon Aug 19 2024 Brian C. Lane - 3.58-1 +- DeprecatedCommand: Return empty list for dataList (bcl) + +* Mon Aug 19 2024 Brian C. Lane - 3.57-1 +- Add "hw-passphrase" option for autopart and part commands (vtrefny) +- Enhance %onerror section with recommendation (jkonecny) + Resolves: RHEL-47142 +- commands: Add missing DeprecatedCommand class to F41_Module (kkoukiou) + +* Mon Aug 05 2024 Brian C. Lane - 3.56-1 +- doc/versionremoved: Update VersionChange import for Sphinx 8.0.0 (bcl) +- Mark the vnc command as deprecated on RHEL 10 (mkolman) + Resolves: RHEL-41219 +- pykickstart is supported on python 3.6+ (sgallagh) +- timezone: Remove the --isUtc, --nontp, and --ntpserver arguments (bcl) + Related: RHEL-34009 +- packages: Remove the old camel case arguments on RHEL10 (bcl) + Resolves: RHEL-34009 +- nvdimm: Remove support for the nvdimm command on RHEL10 (bcl) + Related: RHEL-34009 +- Drop the MIT license (bcl) + +* Fri Jul 19 2024 Fedora Release Engineering - 3.55-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Fri Jun 07 2024 Python Maint - 3.55-2 +- Rebuilt for Python 3.13 + +* Mon May 13 2024 Brian C. Lane - 3.55-1 +- Deprecate modularity on Fedora 41 (marusak.matej) +- btrfs: Remove support for the btrfs command on RHEL10 (bcl) + Resolves: RHEL-34009 +- Deprecate modularity on RHEL 10 (marusak.matej) + Resolves: RHEL-34829 + +* Thu Apr 25 2024 Brian C. Lane - 3.54-1 +- Add a DEFAULT_VERSION variable to version.py (bcl) +- Deprecate network team options on RHEL 10 (rvykydal) + +* Wed Apr 03 2024 Brian C. Lane - 3.53-1 +- Update sources to github release urls +- rhel10: autopart on RHEL does not support --type=btrfs (bcl) +- rhel10: Add test for btrfs command deprecation (bcl) +- rhel10: Add missing rhsm and syspurpose commands (bcl) +- Break out %pre example to kickstart-examples (tasleson) +- Update kickstart-docs.rst (tasleson) +- Add Fedora 41 support (bcl) +- Update RHEL 9 handler (bcl) +- Update RHEL 10 handler classes (bcl) +- Add RHEL 10 handler (bcl) +- workflow: Use python 3.12.2 for tests (bcl) +- workflow: Bump checkout and setup-python actions to new versions (bcl) + +* Thu Feb 01 2024 Brian C. Lane - 3.52-1 +- Deprecate %%packages --instLangs and --excludeWeakdeps kickstart options (vponcova) +- Deprecate timezone --isUtc, --ntpservers and --nontp kickstart options (vponcova) +- Fix the assert_removed check in the unit tests (vponcova) +- Remove the repo --ignoregroups kickstart option in Fedora 40 (vponcova) +- Remove the logging --level kickstart option in Fedora 40 (vponcova) +- Remove the method kickstart command in Fedora 40 (vponcova) +- Remove the autostep kickstart command in Fedora 40 (vponcova) +- requirements: Add setuptools (bcl) + +* Fri Jan 26 2024 Fedora Release Engineering - 3.51-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 3.51-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Tue Nov 28 2023 Brian C. Lane - 3.51-1 +- Deprecate the nvdimm kickstart command (vponcova) + +* Fri Nov 10 2023 Brian C. Lane - 3.50-1 +- Add Fedora 40 support (bcl) +- remove control characters from license (cmdr) +- scripts: Fix wording in documentation (bcl) +- workflow: Fix test for python 3.12.0 version (bcl) + +* Wed Oct 25 2023 Brian C. Lane - 3.49-1 +- tox: Only run unit tests for python 3.6 (bcl) +- workflow: Update to py3.12.0 (bcl) +- pykickstart: Set timeout to 120s on requests.get (bcl) +- translation-canary: Update the subtree with current master (bcl) +- Squashed 'translation-canary/' changes from 840c2d64..5bb81253 (bcl) +- tests: Add python 3.12 support (bcl) +- tests: Update unicode test to remove deprecated resetlocale (bcl) +- rtd: formats is separate, not part of sphinx (bcl) +- rtd: Add the .readthedocs.yaml config file (bcl) +- spec: Update spec with changes from Fedora (bcl) +- Makefile: Update pypi upload command (bcl) + +* Fri Jul 21 2023 Fedora Release Engineering - 3.48-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Wed Jun 14 2023 Python Maint - 3.48-2 +- Rebuilt for Python 3.12 + +* Thu Jun 08 2023 Brian C. Lane - 3.48-1 +- Makefile: Add a test-no-coverage target (bcl) +- realm: switch from pipes.quote() to shlex.quote() (ptoscano) +- workflow: Update actions to newest versions (bcl) +- Fix issues how to generate encrypted passwords (woiling) + +* Fri Mar 17 2023 Brian C. Lane - 3.47-1 +- network: Move new options to Fedora 39 (bcl) + Related: rhbz#1656662 +- displaymode: Update description to describe behavior (bcl) + +* Tue Mar 14 2023 Brian C. Lane - 3.46-1 +- Add conflict test between ostree sources (#2125655) (jkonecny) + Related: rhbz#2125655 +- Fix missing seen check for output generation (#2125655) (jkonecny) + Related: rhbz#2125655 +- Add new ostreecontainer command (#2125655) (jkonecny) + Related: rhbz#2125655 + Resolves: rhbz#2125655 + Related: rhbz#2125655 +- Check the conflicting commands automatically (vponcova) +- Fix tests for conflicting commands (vponcova) +- Add conflicting commands support (bcl) +- Fix handling of package section arguments in older versions (bcl) + +* Tue Mar 14 2023 Brian C. Lane - 3.45-1 +- workflow: Update to use released python 3.11 version (bcl) +- Don't allow to use --sdboot and --extlinux together (vponcova) +- tests: add bootloader sdboot option (jeremy.linton) +- bootloader: Add systemd-boot support with --sdboot (jeremy.linton) +- Add %%changelog section to pykickstart.spec.in (jkonecny) +- Do not request sign for rc-release Makefile target (jkonecny) +- Do not require SPECFILE for rc-release (jkonecny) +- Add missing docs copy to scratch Makefile (jkonecny) +- Add support for Fedora 39 (vslavik) + +* Wed Feb 15 2023 Brian C. Lane - 3.44-1 +- Add DNS handling options to the network command (vslavik) + Related: rhbz#1656662 +- Fix the coverage report (vponcova) +- whitelist_externals has changed to allowlist_externals (bcl) +- Update %post example for DNS problems (bcl) +- deps: Move dependencies into requirements.txt (bcl) +- Fix syntax of a code sample (ewoud) + +* Mon Jan 30 2023 Brian C. Lane - 3.43-3 +- SPDX migration + +* Fri Jan 20 2023 Fedora Release Engineering - 3.43-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Mon Aug 29 2022 Brian C. Lane - 3.43-1 +- pyproject.toml: Add dependencies (bcl) +- sshkey: Escapes quotes in the ssh key (bcl) + Resolves: rhbz#2117734 +- test: Add Python 3.11 to test matrix (bcl) +- Add --hibernation option to AutoPart (ozobal) +- Makefile: Include pyproject.toml in new release commit (bcl) + +* Tue Aug 16 2022 Brian C. Lane - 3.42-1 +- Use RHEL9 for RHEL command documentation (bcl) +- setup.py: use setuptools not distutils (bcl) +- Add pyproject.toml and update setup.py (bcl) +- Add Fedora 38 support (bcl) + +* Fri Jul 22 2022 Fedora Release Engineering - 3.41-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Thu Jun 16 2022 Python Maint - 3.41-2 +- Rebuilt for Python 3.11 + +* Thu Jun 16 2022 Brian C. Lane - 3.41-1 +- Write commands in alphabetical order (bcl) + Resolves: rhbz#2096871 + +* Tue Jun 14 2022 Python Maint - 3.40-2 +- Rebuilt for Python 3.11 + +* Mon Jun 13 2022 Brian C. Lane - 3.40-1 +- Add support for automatic LUN Scan (vponcova) + Related: rhbz#1432883 + +* Mon Jun 13 2022 Python Maint - 3.39-2 +- Rebuilt for Python 3.11 + +* Thu Jun 02 2022 Brian C. Lane - 3.39-1 +- tests: Fix unused out variable warnings (bcl) +- rootpw: Add an --allow-ssh argument (bcl) + Resolves: rhbz#2083269 +- github: Fix workflow to only send coverage for python 3.9 (bcl) + +* Thu Apr 07 2022 Brian C. Lane - 3.38-1 +- Add test for missing closing quote (bcl) +- i18n: Pass gettext domain on every translation call (bcl) + +* Mon Feb 28 2022 Brian C. Lane - 3.37-1 +- Remove the --ignorebroken option from RHEL handlers (vponcova) +- Add the isRHEL function (vponcova) + +* Tue Feb 15 2022 Brian C. Lane - 3.36-1 +- github: Add rhel9-branch to the list of branches (bcl) +- github: Use python 3.10 instead of a rc release (bcl) +- Fix validation of packages arguments (bcl) +- Add Fedora 37 support (vslavik) +- Add Fedora 36 support (vslavik) + +* Fri Jan 21 2022 Fedora Release Engineering - 3.35-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Tue Oct 12 2021 Brian C. Lane - 3.35-1 +- bootloader: Fix --md5pass documentation (bcl) +- Update ksvalidator manpage for multiple input files (vslavik) +- Test new code paths in ksvalidator (vslavik) +- ksvalidator: Add file globbing (vslavik) +- Rename _is_url() to is_url() to make it public (vslavik) +- ksvalidator: Add support for multiple files (vslavik) +- ksvalidator: Handle empty files (bcl) +- ksflatten: Add test coverage for unknown version (bcl) +- tests: Add python 3.10 to the test matrix (bcl) +- ksflatten: Fix pylint complaint about msg reuse (bcl) +- Remove more python2 compatability (bcl) +- tests: Ignore new pylint warnings (bcl) +- Fix typo "installaton" (amahdal) +- Be more consistent when referring to `%pre` (amahdal) + +* Fri Jul 23 2021 Fedora Release Engineering - 3.34-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Jul 13 2021 Brian C. Lane - 3.34-1 +- Remove the auth and authconfig commands (pbrezina) +- The parse method is expected to return a value (vponcova) +- tests: unittest isn't used in handle_unicode anymore (bcl) +- Add RHEL 9 handler (mkolman) + Resolves: rhbz#1966730 +- Add RHEL 9 version for commands that had a RHEL version in the past (mkolman) + Related: rhbz#1966730 +- Add RHEL 9 version for BTRFS related commands (mkolman) + Related: rhbz#1966730 + +* Wed Jun 09 2021 Brian C. Lane - 3.33-1 +- tests: Use pykickstart/commands relative to the import (bcl) + Related: rhbz#1968762 +- Document missing feature '|' for ignoredisk and clearpart (jkonecny) +- Remove python six library (bcl) +- Add Fedora 35 support (bcl) + +* Thu Jun 03 2021 Python Maint - 3.32-3 +- Rebuilt for Python 3.10 + +* Wed Jan 27 2021 Fedora Release Engineering - 3.32-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Jan 18 2021 Brian C. Lane - 3.32-1 +- Conditionally BuildRequire coverage and sphinx for runtests (bcl) + Resolves: rhbz#1916735 +- Change the lilo command removal to use RemovedCommand (vslavik) +- Change the lilocheck command removal to use RemovedCommand (vslavik) +- Fix test for the removed "interactive" command (vslavik) +- Change the langsupport command removal to use RemovedCommand (vslavik) +- Change the monitor command removal to use RemovedCommand (vslavik) +- Change the mouse command removal to use RemovedCommand (vslavik) +- Change the upgrade command removal to use RemovedCommand (vslavik) +- Fix ksverdiff detection of removed commands (vslavik) +- Check warnings of the deprecated kickstart commands (vponcova) +- Remove the install command (vslavik) +- Remove the deviceprobe command (vslavik) +- Remove the device command (vslavik) +- Remove the dmraid command (vslavik) +- Remove the multipath command (vslavik) +- Fix deprecation test for removed commands (vslavik) +- Switch interactive removal to use RemovedCommand (bcl) +- Add RemovedCommand for removing commands and documenting them (bcl) +- Remove support for the updates command without an URL (vponcova) +- Document how to deprecate commands and options (bcl) +- Remove the ignoredisk --interactive option (vslavik) +- Remove the partition --active option (vslavik) +- Deprecate the %traceback section (vslavik) +- Add missing .coveragerc file (bcl) +- Switch to using GitHub Actions instead of Travis CI (bcl) +- Add support for running via tox (bcl) +- Deprecate the method command (vslavik) +- Remove the bootloader option --upgrade (vslavik) + +* Thu Nov 05 2020 Brian C. Lane - 3.31-1 +- Add make to BuildRequires, buildroot is removing it. +- Deprecate the autostep command (vslavik) +- Add missing spaces into the message (yurchor) +- ksshell: Fix indentation in _init_matches (bcl) +- Mark the level option of the logging command as deprecated (vponcova) + +* Tue Sep 29 2020 Brian C. Lane - 3.30-1 +- ksshell: Fix traceback and add tests (bcl) +- fs: Make tmp file creation cross-platform in ksvalidator to support Windows + +* Mon Aug 31 2020 Brian C. Lane - 3.29-1 +- setup.py: Fix script installation without filename extension (bcl) + +* Mon Aug 31 2020 Brian C. Lane - 3.28-1 +- Makefile: Add __init__.py with new version to bumpver commit (bcl) +- tests: Ignore W0707 raise-missing-from warnings (bcl) +- Add Fedora 34 support (bcl) +- Add new tests for the harddrive biospart parameter removal (jkonecny) +- Remove biospart from harddrive command (jkonecny) +- move dependencies into setup.py and use setuptools (carlos) +- remove reference to py3 as a requirement (carlos) +- remove references to nose test framework (carlos) +- update dist to 18.04 (carlos) +- add ci test for future py ver (carlos) +- use new travis-ci syntax (carlos) +- parser: Remove OrderedSet (bcl) +- tests: Add a slightly different test for Package.add (bcl) +- Add pykickstart.__version__ string (bcl) + +* Tue Jul 28 2020 Fedora Release Engineering - 3.27-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jul 07 2020 Brian C. Lane - 3.27-1 +- tests: Fix pylint warnings in timezone tests (bcl) +- Mark --ntpservers and --nontp options of timezone command as deprecated (mkolman) +- Add the timesource command (mkolman) + +* Mon Jun 01 2020 Brian C. Lane - 3.26-1 +- Makefile: Fix gpg signature (bcl) +- Add RHEL8_Repo, RHEL8_RepoData, and RHEL8_Url classes (bcl) +- pylint: Fix warnings and errors from pylint 2.5.x (bcl) +- i18n: Use gettext instead of lgettext (bcl) +- Use W9902 in pylint disable to avoid warnings about _ (bcl) +- Add python 3.8 to travis.yml (bcl) +- docs: Fix network.py documentation markup (bcl) +- docs: versionadded directive needs a blank line after it (bcl) +- docs: Maintain programmers-guide in the repo (bcl) +- Makefile: Add creating the detached signature to the release make target (bcl) + +* Sat May 23 2020 Miro Hrončok - 3.25-2 +- Rebuilt for Python 3.9 + +* Tue Apr 07 2020 Brian C. Lane - 3.25-1 +- Deprecate `repo --ignoregroups` (jkonecny) +- Add Fedora 33 support (jkonecny) + +* Mon Apr 06 2020 Brian C. Lane - 3.24-1 +- Make --url doctext more understandable (jkonecny) +- Remove url command doc that it's replaced (jkonecny) +- Add missing information for driverdisk KS command (jkonecny) +- tests: close the HTTP Server in tests/include.py (bcl) +- tests: Replace nose with unittest (bcl) + +* Thu Jan 30 2020 Fedora Release Engineering - 3.23-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Tue Jan 14 2020 Brian C. Lane - 3.23-1 +- tests: pin coverage at the 4.x.x series (bcl) +- Switch to using Weblate for translations (bcl) +- po: Remove pykickstart.pot (bcl) +- gpg sign the git tag (bcl) +- Cleaning up empty help strings (bcl) +- tests: Fix the empty description, help, etc. test (bcl) +- tests: Turn off HTTP logging in Include_URL_TestCase (bcl) +- tests: Catch warning in Unknown_New_Section_2_TestCase (bcl) +- tests: Capture stderr output from ksflatten test (bcl) +- Prefer --utc to --isUtc in timezone for F32 and later (vslavik) +- Give output in str(F25_Timezone) even without timezone spec (vslavik) +- Prefer the non-camelCased options for %packages (vslavik) +- Add test for kickstart option names (vslavik) +- Add lowercase aliases for camelCased %packages options (vslavik) +- Commit the new pykickstart.pot when making a release (bcl) +- Add the rhsm command (mkolman) +- Fix travis and coverage runs (bcl) +- Fix pylint unnecessary-pass warnings (bcl) +- Drop python2 compatibility (jkonecny) +- Fix check for python zanata client in Makefile (jkonecny) +- Update versionremoved sphinx extension (bcl) + +* Wed Nov 06 2019 Brian C. Lane - 3.22-1 +- Enable coveralls.io coverage tracking (bcl) +- Add tests for ignorebroken packages parameter (jkonecny) +- Add ignore broken parameter to packages section (#1642013) (jkonecny) +- Add support for the ZIPL Secure Boot for F32 and RHEL8 (vponcova) +- Add F32 support (jkonecny) +- Add note for the repo and url ssl options (jkonecny) +- Skip FailsToOpenOutputFile_TestCase if running as root (juliana.rodrigueiro) +- Change .spec Source to new pykickstart organization URL (bcl) + +* Thu Oct 03 2019 Miro Hrončok - 3.21-3 +- Rebuilt for Python 3.8.0rc1 (#1748018) + +* Fri Aug 16 2019 Miro Hrončok - 3.21-2 +- Rebuilt for Python 3.8 + +* Wed Aug 14 2019 David Cantrell - 3.21-1 +- Make module --disable available on Fedora 31+ (mkolman) +- Add F31 handler (mkolman) +- Add the --disable option for the module command (#1719347) (mkolman) +- A couple fixes for %packaging section docs (mkolman) +- Fix the docs generation (vponcova) +- Fix the documentation of bootloader --append (vponcova) +- Just kidding, use xenial for everything. (dcantrel) +- Python 3.7 is only available in 'xenial' in Travis-CI (dcantrel) +- Reduce .travis.yml to Python 3.{5,6,7}, set SPHINXAPIDOC (dcantrel) +- Replace PYTHONPATH override with sys.path.append; allow + SPHINXAPIDOC (dcantrel) +- Add rhel7-branch to .travis.yml (dcantrel) +- Restrict the branches to test with Python 3. (dcantrel) +- More changes to .travis.yml, add requirements.txt file (dcantrel) +- Update the Travis-CI yaml file. (dcantrel) +- Fix documentation for the --excludepkgs and --includepkgs repo + options (mkolman) +- packit.yml: remove unused content (ttomecek) +- Update sed in pykistart.spec Makefile target (phracek) +- Add pykickstart.spec.in for packit (phracek) +- Make %packages --default attribute sane (jkonecny) +- Configuration file .packit.yaml (phracek) +- For Travis-CI, explicitly use Sphinx 1.7.6 (dcantrel) +- Change to unittest.skipUnless and use correct syntax. (dcantrel) +- Replace 'import unittest.skipIf as skipIf' with + just 'import unittest' (dcantrel) +- s/unittest/pytest/g in .travis.yml (dcantrel) +- pip install unittest for the Travis-CI runs (dcantrel) +- Run 'git checkout' in the Makefile ignoring non-fatal errors (dcantrel) +- Skip KS_With_Wrong_Permissions_TestCase if running as root. (dcantrel) +- Treat pylint warnings as non-fatal, exit codes 0 and 4. (dcantrel) +- Remove unused falsePositives in runpylint.py (dcantrel) +- Use env to set NOSE_IGNORE_CONFIG_FILES (dcantrel) +- Add NOSE_IGNORE_CONFIG_FILES=y to the .travis.yml file (dcantrel) +- Set NOSE_IGNORE_CONFIG_FILES in make coverage (dcantrel) +- In the Travis-CI environment, coverage is 'coverage' (dcantrel) +- Close output_path after reading in ksflatten.py (dcantrel) +- Makefile improvements (dcantrel) +- Specify Python 3.7 in .travis.yml per the docs. (dcantrel) +- Run sphinx-build and sphinx-apidoc from docs/Makefile (dcantrel) +- Add some missing help strings as detected by the coverage target. (dcantrel) +- Add missing descriptions to a handful of pykickstart commands. (dcantrel) +- Mark the sshkey --username option as required in docs (mkolman) +- Test on recent Python versions on Travis (mkolman) +- Fix snapshot documentation (jkonecny) +- Add a CONTRIBUTING file. (dcantrel) + +* Fri Jul 26 2019 Fedora Release Engineering - 3.20-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Thu Mar 07 2019 David Cantrell - 3.20-3 +- Remove the Python 2 subpackage for pykickstart (#1686380) + +* Sat Feb 02 2019 Fedora Release Engineering - 3.20-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Tue Jan 29 2019 David Cantrell - 3.20-1 +- New release: 3.20 (dcantrell) +- Fix backward compatibility for python2 (jkonecny) +- In 'make local', create a dummy .asc file explaining the + signature. (dcantrell) + +* Mon Jan 28 2019 David Cantrell - 3.19-1 +- New release: 3.19 (dcantrell) +- Run gen_commands_docs and gen_sections_docs with python3. (dcantrell) +- Use python3-sphinx in docs/Makefile (dcantrell) +- Nope, this way for make po-pull and make release. (dcantrell) +- Make sure 'make release' runs 'make po-pull' (dcantrell) +- RHEL8Handler: include ssl certificate options (lars) +- Add options for ssl certs on url and repo commands (lars) +- parser: use collections.abc to import Iterator (lars) +- test: Remove unused import (lars) +- tests: Fix ksflatten tests (lars) +- tests: Remove KickstartValueError test case (lars) +- tests: Remove test case that's actually valid (lars) +- Fix pylint warning W0102 dangerous-default-value (lars) +- docs/versionremoved: fix sphinx import path (lars) +- travis: don't override PYTHON with /usr/bin/python3 (lars) +- Refactor ksverdiff and add tests for it (atodorov) +- Patch ksverdiff so it works with argparse (atodorov) +- Add main() function to scripts to allow module to be imported (atodorov) +- Refactor tools/ksflatten.py and add tests for it (atodorov) +- Add more tests for load.py (atodorov) +- Issue DeprecationWarning for KickstartValueError and test it for + completeness (atodorov) +- More test coverage for autopart (atodorov) +- Improve tests for updates (atodorov) +- Improved tests for timezone (atodorov) +- Improve tests for selinux (atodorov) +- Improve test for rootpw (atodorov) +- Refactoring for reboot.py and more tests (atodorov) +- Refactor monitor.py and add more tests (atodorov) +- Add more tests for logvol.py (atodorov) +- Refactoring for driverdisk.py (atodorov) +- Refactor and more tests for btrfs.py (atodorov) +- Add test to kill remaining mutant (atodorov) +- Refactor in dmraid.py (atodorov) +- More tests and refactoring for volgroup.py (atodorov) +- Improve displaymode tests (atodorov) +- Fix the kickstart section %packages (vponcova) +- Fix versions in parsers of kickstart sections (vponcova) +- Fix warnings for deprecated options of kickstart commands (vponcova) +- Fix pylint errors (vponcova) +- Update kickstart-docs.rst (jason.gerfen) +- Kickstart usage example link (jason.gerfen) +- Document module stream installation (mkolman) +- Mention all man pages in all "SEE ALSO" sections (tim) +- Fix typo in ksshell man page (tim) +- Normalize the mount point (vponcova) +- Clarify the --when= parameter error message. (dcantrell) + +* Wed Aug 29 2018 Chris Lumens - 3.18-1 +- New release: 3.18 (clumens) +- Use the RHEL8 handler to generate RHEL docs. (clumens) +- Add missing trailing newline for syspurpose __str__ method (mkolman) +- Add the syspurpose command (mkolman) +- Fix 'make rpmlog' target. (dcantrell) + +* Wed Aug 15 2018 David Cantrell - 3.17-1 +- New release: 3.17 (dcantrell) +- Add authselect command to rhel8 handler (rvykydal) +- Add module command to rhel8 handler (rvykydal) +- Update po/pykickstart.pot (dcantrell) + * Thu Aug 09 2018 David Cantrell - 3.16-1 - New release: 3.16 (dcantrell) - Remove the extra space from the logvol command (vponcova) diff --git a/sources b/sources index 98c0526..b83b8c9 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ -SHA512 (pykickstart-3.16.tar.gz) = e48a1af629d9766b80c86ba2136ca0b45be282a081a173281fbce678eccd66bf320d0667a65462ea67867afcb31d6eb5c0191c2d39d4bde6ba7174e9f1bd64cc +SHA512 (pykickstart-3.68.tar.gz) = 103034f2ad47afa470066b4c98092ac634c5c5ed21c1c98a65170c78cc86e95f5565bb4c29a24a890836e45d2094b529fcdb02f8a004875cc13db505bd2ba51e +SHA512 (pykickstart-3.68.tar.gz.asc) = 33d2e3ea50bdffdb7bc4939b68c3069d6fce6087cd186ac57773981928a090608f7509fd8f63bacbbd6544d828da3eb1e1fb785f5ff7e547364c9cd360eaf106 diff --git a/tests/bad-ks/fedora-disk-base.ks b/tests/bad-ks/fedora-disk-base.ks new file mode 100644 index 0000000..5f4a9eb --- /dev/null +++ b/tests/bad-ks/fedora-disk-base.ks @@ -0,0 +1,47 @@ +text +lang en_US.UTF-8 +keyboard us +timezone US/Eastern +selinux --enforcing +firewall --enabled --service=mdns +services --enabled=sshd,NetworkManager,chronyd +network --bootproto=dhcp --device=link --activate +rootpw --lock --iscrypted locked +shutdown + +bootloader --timeout=1 + +zerombr +clearpart --all --initlabel --disklabel=msdos + +# make sure that initial-setup runs and lets us do all the configuration bits +firstboot --reconfig + +repo --name "packages" --url https://nowhere/ + +%packages +@core +@standard +@hardware-support + +kernel +# on 32bit arm make sure we only install one kernel +-kernel-lpae +# remove this in %post +dracut-config-generic +-dracut-config-rescue +# install tools needed to manage and boot arm systems +@arm-tools +chrony +bcm283x-firmware +initial-setup +# Intel wireless firmware assumed never of use for disk images +-iwl* +-ipw* +-usb_modeswitch +-generic-release* + +# make sure all the locales are available for inital-setup and anaconda to work +glibc-all-langpacks + +%end diff --git a/tests/bad-ks/no-commands.ks b/tests/bad-ks/no-commands.ks new file mode 100644 index 0000000..d50b27b --- /dev/null +++ b/tests/bad-ks/no-commands.ks @@ -0,0 +1,2 @@ +echo "not a kickstart" +without any --commands diff --git a/tests/good-ks/fedora-disk-base.ks b/tests/good-ks/fedora-disk-base.ks new file mode 100644 index 0000000..ea67746 --- /dev/null +++ b/tests/good-ks/fedora-disk-base.ks @@ -0,0 +1,104 @@ +# fedora-disk-base.ks +# +# Defines the basics for all kickstarts in the fedora-live branch +# Does not include package selection (other then mandatory) +# Does not include localization packages or configuration +# +# Does includes "default" language configuration (kickstarts including +# this template can override these settings) + +text +lang en_US.UTF-8 +keyboard us +timezone US/Eastern +selinux --enforcing +firewall --enabled --service=mdns +services --enabled=sshd,NetworkManager,chronyd +network --bootproto=dhcp --device=link --activate +rootpw --lock --iscrypted locked +shutdown + +bootloader --timeout=1 + +zerombr +clearpart --all --initlabel --disklabel=msdos + +# make sure that initial-setup runs and lets us do all the configuration bits +firstboot --reconfig + +%include fedora-repo.ks + +%packages +@core +@standard +@hardware-support + +kernel +# on 32bit arm make sure we only install one kernel +-kernel-lpae +# remove this in %post +dracut-config-generic +-dracut-config-rescue +# install tools needed to manage and boot arm systems +@arm-tools +chrony +bcm283x-firmware +initial-setup +# Intel wireless firmware assumed never of use for disk images +-iwl* +-ipw* +-usb_modeswitch +-generic-release* + +# make sure all the locales are available for inital-setup and anaconda to work +glibc-all-langpacks + +%end + +%post + +# Find the architecture we are on +arch=$(uname -m) + +# Setup Raspberry Pi firmware +if [[ $arch == "aarch64" ]] || [[ $arch == "armv7l" ]]; then +if [[ $arch == "aarch64" ]]; then +cp -P /usr/share/uboot/rpi_3/u-boot.bin /boot/efi/rpi3-u-boot.bin +cp -P /usr/share/uboot/rpi_4/u-boot.bin /boot/efi/rpi4-u-boot.bin +cp -P /usr/share/uboot/rpi_arm64/u-boot.bin /boot/efi/rpi-u-boot.bin +else +cp -P /usr/share/uboot/rpi_2/u-boot.bin /boot/efi/rpi2-u-boot.bin +cp -P /usr/share/uboot/rpi_3_32b/u-boot.bin /boot/efi/rpi3-u-boot.bin +cp -P /usr/share/uboot/rpi_4_32b/u-boot.bin /boot/efi/rpi4-u-boot.bin +fi +fi + +releasever=$(rpm --eval '%{fedora}') +rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-primary +echo "Packages within this disk image" +rpm -qa --qf '%{size}\t%{name}-%{version}-%{release}.%{arch}\n' |sort -rn + +# remove random seed, the newly installed instance should make it's own +rm -f /var/lib/systemd/random-seed + +# The enp1s0 interface is a left over from the imagefactory install, clean this up +rm -f /etc/NetworkManager/system-connections/*.nmconnection + +dnf -y remove dracut-config-generic + +# Remove machine-id on pre generated images +rm -f /etc/machine-id +touch /etc/machine-id + +# Note that running rpm recreates the rpm db files which aren't needed or wanted +rm -f /var/lib/rpm/__db* + +# Anaconda adds console=tty0 to the grub boot line on all images. this is problematic +# when you are using fedora via serial console as you do not get any output post grub +# linux does a good job of knowing what consoles need to be enabled. +# https://bugzilla.redhat.com/show_bug.cgi?id=2022757 +if [[ $arch == "aarch64" ]] || [[ $arch == "armv7l" ]]; then +sed -i -e 's|console=tty0||g' /boot/loader/entries/*conf +fi + +%end diff --git a/tests/good-ks/fedora-live-base.ks b/tests/good-ks/fedora-live-base.ks new file mode 100644 index 0000000..205e114 --- /dev/null +++ b/tests/good-ks/fedora-live-base.ks @@ -0,0 +1,106 @@ +# fedora-live-base.ks +# +# Defines the basics for all kickstarts in the fedora-live branch +# Does not include package selection (other then mandatory) +# Does not include localization packages or configuration +# +# Does includes "default" language configuration (kickstarts including +# this template can override these settings) + +lang en_US.UTF-8 +keyboard us +timezone US/Eastern +selinux --enforcing +firewall --enabled --service=mdns +xconfig --startxonboot +zerombr +clearpart --all +part / --size 5120 --fstype ext4 +services --enabled=NetworkManager,ModemManager --disabled=sshd +network --bootproto=dhcp --device=link --activate +rootpw --lock --iscrypted locked +shutdown + +%include fedora-repo.ks + +%packages +# Explicitly specified here: +# walters: because otherwise dependency loops cause yum issues. +kernel +kernel-modules +kernel-modules-extra + +# The point of a live image is to install +anaconda +anaconda-install-env-deps +anaconda-live +@anaconda-tools +# Anaconda has a weak dep on this and we don't want it on livecds, see +# https://fedoraproject.org/wiki/Changes/RemoveDeviceMapperMultipathFromWorkstationLiveCD +-fcoe-utils +-device-mapper-multipath + +# Need aajohan-comfortaa-fonts for the SVG rnotes images +aajohan-comfortaa-fonts + +# Without this, initramfs generation during live image creation fails: #1242586 +dracut-live + +# anaconda needs the locales available to run for different locales +glibc-all-langpacks + +# provide the livesys scripts +livesys-scripts +%end + +%post +# Enable livesys services +systemctl enable livesys.service +systemctl enable livesys-late.service + +# enable tmpfs for /tmp +systemctl enable tmp.mount + +# make it so that we don't do writing to the overlay for things which +# are just tmpdirs/caches +# note https://bugzilla.redhat.com/show_bug.cgi?id=1135475 +cat >> /etc/fstab << EOF +vartmp /var/tmp tmpfs defaults 0 0 +EOF + +# work around for poor key import UI in PackageKit +rm -f /var/lib/rpm/__db* +echo "Packages within this LiveCD" +rpm -qa --qf '%{size}\t%{name}-%{version}-%{release}.%{arch}\n' |sort -rn +# Note that running rpm recreates the rpm db files which aren't needed or wanted +rm -f /var/lib/rpm/__db* + +# go ahead and pre-make the man -k cache (#455968) +/usr/bin/mandb + +# make sure there aren't core files lying around +rm -f /core* + +# remove random seed, the newly installed instance should make it's own +rm -f /var/lib/systemd/random-seed + +# convince readahead not to collect +# FIXME: for systemd + +echo 'File created by kickstart. See systemd-update-done.service(8).' \ + | tee /etc/.updated >/var/.updated + +# Drop the rescue kernel and initramfs, we don't need them on the live media itself. +# See bug 1317709 +rm -f /boot/*-rescue* + +# Disable network service here, as doing it in the services line +# fails due to RHBZ #1369794 +systemctl disable network + +# Remove machine-id on pre generated images +rm -f /etc/machine-id +touch /etc/machine-id + +%end + diff --git a/tests/include-ks/fedora-live-base.ks b/tests/include-ks/fedora-live-base.ks new file mode 100644 index 0000000..bf89758 --- /dev/null +++ b/tests/include-ks/fedora-live-base.ks @@ -0,0 +1,106 @@ +# fedora-live-base.ks +# +# Defines the basics for all kickstarts in the fedora-live branch +# Does not include package selection (other then mandatory) +# Does not include localization packages or configuration +# +# Does includes "default" language configuration (kickstarts including +# this template can override these settings) + +lang en_US.UTF-8 +keyboard us +timezone US/Eastern +selinux --enforcing +firewall --enabled --service=mdns +xconfig --startxonboot +zerombr +clearpart --all +##part / --size 5120 --fstype ext4 +services --enabled=NetworkManager,ModemManager --disabled=sshd +network --bootproto=dhcp --device=link --activate +rootpw --lock --iscrypted locked +shutdown + +%include fedora-repo.ks + +%packages +# Explicitly specified here: +# walters: because otherwise dependency loops cause yum issues. +kernel +kernel-modules +kernel-modules-extra + +# The point of a live image is to install +anaconda +anaconda-install-env-deps +anaconda-live +@anaconda-tools +# Anaconda has a weak dep on this and we don't want it on livecds, see +# https://fedoraproject.org/wiki/Changes/RemoveDeviceMapperMultipathFromWorkstationLiveCD +-fcoe-utils +-device-mapper-multipath + +# Need aajohan-comfortaa-fonts for the SVG rnotes images +aajohan-comfortaa-fonts + +# Without this, initramfs generation during live image creation fails: #1242586 +dracut-live + +# anaconda needs the locales available to run for different locales +glibc-all-langpacks + +# provide the livesys scripts +livesys-scripts +%end + +%post +# Enable livesys services +systemctl enable livesys.service +systemctl enable livesys-late.service + +# enable tmpfs for /tmp +systemctl enable tmp.mount + +# make it so that we don't do writing to the overlay for things which +# are just tmpdirs/caches +# note https://bugzilla.redhat.com/show_bug.cgi?id=1135475 +cat >> /etc/fstab << EOF +vartmp /var/tmp tmpfs defaults 0 0 +EOF + +# work around for poor key import UI in PackageKit +rm -f /var/lib/rpm/__db* +echo "Packages within this LiveCD" +rpm -qa --qf '%{size}\t%{name}-%{version}-%{release}.%{arch}\n' |sort -rn +# Note that running rpm recreates the rpm db files which aren't needed or wanted +rm -f /var/lib/rpm/__db* + +# go ahead and pre-make the man -k cache (#455968) +/usr/bin/mandb + +# make sure there aren't core files lying around +rm -f /core* + +# remove random seed, the newly installed instance should make it's own +rm -f /var/lib/systemd/random-seed + +# convince readahead not to collect +# FIXME: for systemd + +echo 'File created by kickstart. See systemd-update-done.service(8).' \ + | tee /etc/.updated >/var/.updated + +# Drop the rescue kernel and initramfs, we don't need them on the live media itself. +# See bug 1317709 +rm -f /boot/*-rescue* + +# Disable network service here, as doing it in the services line +# fails due to RHBZ #1369794 +systemctl disable network + +# Remove machine-id on pre generated images +rm -f /etc/machine-id +touch /etc/machine-id + +%end + diff --git a/tests/include-ks/fedora-live-minimization.ks b/tests/include-ks/fedora-live-minimization.ks new file mode 100644 index 0000000..3cde144 --- /dev/null +++ b/tests/include-ks/fedora-live-minimization.ks @@ -0,0 +1,9 @@ +# Common packages removed from comps +# For F14, these removals should be moved to comps itself + +%packages + +# save some space +-hplip + +%end diff --git a/tests/include-ks/fedora-live-xfce.ks b/tests/include-ks/fedora-live-xfce.ks new file mode 100644 index 0000000..1506163 --- /dev/null +++ b/tests/include-ks/fedora-live-xfce.ks @@ -0,0 +1,33 @@ +# fedora-livecd-xfce.ks +# +# Description: +# - Fedora Live Spin with the light-weight XFCE Desktop Environment +# +# Maintainer(s): +# - Rahul Sundaram +# - Christoph Wickert +# - Kevin Fenzi +# - Adam Miller + +%include fedora-live-base.ks +%include fedora-live-minimization.ks +%include fedora-xfce-common.ks + +# need a bigger / +part / --size 6144 + +%post +# xfce configuration + +# create /etc/sysconfig/desktop (needed for installation) + +cat > /etc/sysconfig/desktop < +# - Adam Miller +# - Mukundan Ragavan + +%packages + +fedora-release-xfce +# install env-group to resolve RhBug:1891500 +@^xfce-desktop-environment + +@xfce-apps +@xfce-extra-plugins +@xfce-media +@xfce-office + +wget +system-config-printer + +# save some space +-autofs +-acpid +-gimp-help +-desktop-backgrounds-basic +-aspell-* # dictionaries are big +-xfce4-sensors-plugin +-xfce4-eyes-plugin + +%end diff --git a/tests/scripts/run_tests.sh b/tests/scripts/run_tests.sh new file mode 100755 index 0000000..5f5f3dc --- /dev/null +++ b/tests/scripts/run_tests.sh @@ -0,0 +1,24 @@ +#!/bin/sh + +echo "Running pykickstart tests" +cd ./tests/ + +# Run ksvalidator on good kickstart examples +for f in ./good-ks/*.ks; do + echo "Checking $f" + ksvalidator $f || exit 1 +done + +# Run ksvalidator on bad kickstart examples +for f in ./bad-ks/*.ks; do + echo "Checking $f" + ksvalidator $f && exit 1 +done + + +# Run ksflatten on a set of kickstarts +echo "Testing ksflatten with included kickstarts" +ksflatten -c ./include-ks/fedora-live-xfce.ks -o flat.ks || exit 1 +ksvalidator flat.ks || exit 1 + +exit 0