From 9a4fcc552c65768fe4f32702980dcbf23db71959 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Tue, 10 Aug 2021 04:25:24 +0000 Subject: [PATCH] import rhel-system-roles-1.6.6-1.el8 --- .gitignore | 19 + .rhel-system-roles.metadata | 19 + SOURCES/collection_readme.sh | 14 + SOURCES/network-disable-bondtests.diff | 65 ++ SOURCES/network-tier1-tags.diff | 54 ++ SPECS/rhel-system-roles.spec | 1151 ++++++++++++++++++++++++ 6 files changed, 1322 insertions(+) create mode 100644 .gitignore create mode 100644 .rhel-system-roles.metadata create mode 100755 SOURCES/collection_readme.sh create mode 100644 SOURCES/network-disable-bondtests.diff create mode 100644 SOURCES/network-tier1-tags.diff create mode 100644 SPECS/rhel-system-roles.spec diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f9decc7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,19 @@ +SOURCES/ansible-sshd-v0.13.1.tar.gz +SOURCES/auto-maintenance-ec364d2e0bd422b69f34871a1188114f368097a0.tar.gz +SOURCES/certificate-1.0.5.tar.gz +SOURCES/crypto_policies-1.1.0.tar.gz +SOURCES/ha_cluster-1.2.0.tar.gz +SOURCES/kdump-1.0.5.tar.gz +SOURCES/kernel_settings-1.0.4.tar.gz +SOURCES/logging-1.4.1.tar.gz +SOURCES/metrics-1.2.4.tar.gz +SOURCES/nbde_client-1.0.4.tar.gz +SOURCES/nbde_server-1.0.3.tar.gz +SOURCES/network-b08a0b3748ee87aa3bdbcf1f0b7e41ef4971bbee.tar.gz +SOURCES/postfix-1.0.0.tar.gz +SOURCES/selinux-1.2.3.tar.gz +SOURCES/ssh-1.0.2.tar.gz +SOURCES/storage-1.5.2.tar.gz +SOURCES/timesync-1.5.0.tar.gz +SOURCES/tlog-1.1.1.tar.gz +SOURCES/vpn-1.1.0.tar.gz diff --git a/.rhel-system-roles.metadata b/.rhel-system-roles.metadata new file mode 100644 index 0000000..31dd74f --- /dev/null +++ b/.rhel-system-roles.metadata @@ -0,0 +1,19 @@ +668bfd090b01b48ef3959bf499599a23ef795f76 SOURCES/ansible-sshd-v0.13.1.tar.gz +bfd618e94056a68c75de22dfcde7b29445850176 SOURCES/auto-maintenance-ec364d2e0bd422b69f34871a1188114f368097a0.tar.gz +3408d5c37df62b4e9e7a4499ec9015627ea9e890 SOURCES/certificate-1.0.5.tar.gz +92387eef86823e8078bc883d53b717e58269ea32 SOURCES/crypto_policies-1.1.0.tar.gz +f78287302516f645edd8ee469dd785d1bfab3684 SOURCES/ha_cluster-1.2.0.tar.gz +ccf003fe359ed688cd38d909405a0cb814dafee1 SOURCES/kdump-1.0.5.tar.gz +98688933568950c4e90c40d9d1ab8cd1a0ef7083 SOURCES/kernel_settings-1.0.4.tar.gz +4ce4d5a1178727a0d0706ea58934374ce4666727 SOURCES/logging-1.4.1.tar.gz +be9780403c5113d2a86c8f94d6b428a21f365b37 SOURCES/metrics-1.2.4.tar.gz +996c1d4f2763d8ae7fe2973d48429b6fcb88d387 SOURCES/nbde_client-1.0.4.tar.gz +717e2cd6ba686ffa7abdf885e04e185d09b03d88 SOURCES/nbde_server-1.0.3.tar.gz +487459f2ff5856bdf7f0f7686cdfb63d5e2a5007 SOURCES/network-b08a0b3748ee87aa3bdbcf1f0b7e41ef4971bbee.tar.gz +609a44ce29de5786eaab9b8b4f0c3b0f2586a525 SOURCES/postfix-1.0.0.tar.gz +9e060a747dda947cc87321bf472db9ecf37912a0 SOURCES/selinux-1.2.3.tar.gz +3fa7da323b39ad6555d5232aa5fb4b7dd173c01c SOURCES/ssh-1.0.2.tar.gz +4184728dff887a9e6c9badc41b19ca063dfafa90 SOURCES/storage-1.5.2.tar.gz +ba01428f0812c5780d8c1c839d53f2b76ff4e9d6 SOURCES/timesync-1.5.0.tar.gz +67a587cad5bf1716931556844a592ea348a70e5c SOURCES/tlog-1.1.1.tar.gz +bc5dd7ab2f823c394a14c1074c709497c3d31a74 SOURCES/vpn-1.1.0.tar.gz diff --git a/SOURCES/collection_readme.sh b/SOURCES/collection_readme.sh new file mode 100755 index 0000000..94e8cae --- /dev/null +++ b/SOURCES/collection_readme.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +set -euxo pipefail + +readme_md=${1:-"lsr_role2collection/collection_readme.md"} + +sed -i -e '/## Currently supported distributions/{:1;/## Dependencies/!{N;b 1};s|.*|## Dependencies|}' \ + -e 's/Linux/Red Hat Enterprise Linux/g' \ + -e 's/Ansible Galaxy/Automation Hub/g' \ + -e 's/fedora\(.\)linux_system_roles/redhat\1rhel_system_roles/g' \ + -e 's/linux-system-roles/rhel-system-roles/g' \ + -e '/## Documentation/{:a;/## Support/!{N;b a};s|.*|## Documentation\nThe official RHEL System Roles documentation can be found in the [Product Documentation section of the Red Hat Customer Portal](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/administration_and_configuration_tasks_using_system_roles_in_rhel/index).\n\n## Support|}' \ + -e 's/ $//' \ + $readme_md diff --git a/SOURCES/network-disable-bondtests.diff b/SOURCES/network-disable-bondtests.diff new file mode 100644 index 0000000..81db978 --- /dev/null +++ b/SOURCES/network-disable-bondtests.diff @@ -0,0 +1,65 @@ +From d6c8319f52f3859b28044841063adf0013df878b Mon Sep 17 00:00:00 2001 +From: Rich Megginson +Date: Thu, 25 Mar 2021 13:57:45 -0600 +Subject: [PATCH 3/4] Patch53: network-disable-bondtests.diff + +--- + tests/playbooks/tests_bond.yml | 2 ++ + tests/playbooks/tests_bond_deprecated.yml | 2 ++ + tests/tests_bond_deprecated_initscripts.yml | 1 + + tests/tests_bond_initscripts.yml | 1 + + 4 files changed, 6 insertions(+) + +diff --git a/tests/playbooks/tests_bond.yml b/tests/playbooks/tests_bond.yml +index 1e45788..d3005a6 100644 +--- a/tests/playbooks/tests_bond.yml ++++ b/tests/playbooks/tests_bond.yml +@@ -8,6 +8,8 @@ + dhcp_interface1: test1 + port2_profile: bond0.1 + dhcp_interface2: test2 ++ tags: ++ - "tests::expfail" + tasks: + - name: "INIT Prepare setup" + debug: +diff --git a/tests/playbooks/tests_bond_deprecated.yml b/tests/playbooks/tests_bond_deprecated.yml +index f37e19a..ae475c4 100644 +--- a/tests/playbooks/tests_bond_deprecated.yml ++++ b/tests/playbooks/tests_bond_deprecated.yml +@@ -8,6 +8,8 @@ + dhcp_interface1: test1 + port2_profile: bond0.1 + dhcp_interface2: test2 ++ tags: ++ - "tests::expfail" + tasks: + - name: "INIT Prepare setup" + debug: +diff --git a/tests/tests_bond_deprecated_initscripts.yml b/tests/tests_bond_deprecated_initscripts.yml +index 383b488..cdf3de0 100644 +--- a/tests/tests_bond_deprecated_initscripts.yml ++++ b/tests/tests_bond_deprecated_initscripts.yml +@@ -10,6 +10,7 @@ + network_provider: initscripts + tags: + - always ++ - "tests::expfail" + + - import_playbook: playbooks/tests_bond_deprecated.yml + when: (ansible_distribution in ['CentOS','RedHat'] and +diff --git a/tests/tests_bond_initscripts.yml b/tests/tests_bond_initscripts.yml +index 8fa74c5..6a231c4 100644 +--- a/tests/tests_bond_initscripts.yml ++++ b/tests/tests_bond_initscripts.yml +@@ -10,6 +10,7 @@ + network_provider: initscripts + tags: + - always ++ - "tests::expfail" + + - import_playbook: playbooks/tests_bond.yml + when: (ansible_distribution in ['CentOS','RedHat'] and +-- +2.30.2 + diff --git a/SOURCES/network-tier1-tags.diff b/SOURCES/network-tier1-tags.diff new file mode 100644 index 0000000..9529a03 --- /dev/null +++ b/SOURCES/network-tier1-tags.diff @@ -0,0 +1,54 @@ +From 4b1a8a87e7d297fd6669d653af7308dd9c1a513a Mon Sep 17 00:00:00 2001 +From: Rich Megginson +Date: Thu, 6 May 2021 13:52:38 -0600 +Subject: [PATCH] tag 802-1x test as expfail; make sure bridge test cleans up + properly + +The 802-1x test will fail on platforms where `hostapd` is not available, +so tag that test to make it skippable. + +The initscripts bridge test does not clean up properly, leaving the +device around which causes the nm test to fail. Explicitly remove +the device for cleanup. +--- + tests/playbooks/tests_802_1x.yml | 2 ++ + tests/playbooks/tests_bridge.yml | 10 ++++++++++ + 2 files changed, 12 insertions(+) + +diff --git a/tests/playbooks/tests_802_1x.yml b/tests/playbooks/tests_802_1x.yml +index 9cce1ae..4ceebb1 100644 +--- a/tests/playbooks/tests_802_1x.yml ++++ b/tests/playbooks/tests_802_1x.yml +@@ -3,6 +3,8 @@ + - hosts: all + vars: + interface: 802-1x-test ++ tags: ++ - tests::expfail + tasks: + - name: "INIT: 802.1x tests" + debug: +diff --git a/tests/playbooks/tests_bridge.yml b/tests/playbooks/tests_bridge.yml +index d79d6ad..14b1225 100644 +--- a/tests/playbooks/tests_bridge.yml ++++ b/tests/playbooks/tests_bridge.yml +@@ -49,6 +49,16 @@ + profile: "{{ interface }}" + task: tasks/assert_profile_absent.yml + ++- name: Remove test bridge ++ hosts: all ++ tags: ++ - tests::cleanup ++ tasks: ++ - name: Remove the test interface ++ command: ip link delete {{ interface | quote }} ++ ignore_errors: yes ++ changed_when: false ++ + # FIXME: Devices might still be left when profile is absent + # - import_playbook: run_tasks.yml + # vars: +-- +2.30.2 + diff --git a/SPECS/rhel-system-roles.spec b/SPECS/rhel-system-roles.spec new file mode 100644 index 0000000..9a9f7b0 --- /dev/null +++ b/SPECS/rhel-system-roles.spec @@ -0,0 +1,1151 @@ +%if 0%{?rhel} && ! 0%{?epel} +%bcond_with ansible +%else +%bcond_without ansible +%endif + +%bcond_with collection_artifact + +%if 0%{?fedora} || 0%{?rhel} >= 8 +%bcond_without html +%else +# pandoc is not supported in rhel 7 and older, +# which is needed for converting .md to .html. +%bcond_with html +%endif + +%if 0%{?rhel} +Name: rhel-system-roles +%else +Name: linux-system-roles +%endif +Url: https://github.com/linux-system-roles +Summary: Set of interfaces for unified system management +Version: 1.6.6 +Release: 1%{?dist} + +#Group: Development/Libraries +License: GPLv3+ and MIT and BSD +%global installbase %{_datadir}/linux-system-roles +%global _pkglicensedir %{_licensedir}/%{name} +%global rolealtprefix linux-system-roles. +%global roleprefix %{name}. +%global roleinstprefix %{nil} +%global rolealtrelpath ../../linux-system-roles/ +%if 0%{?rhel} +%global roleinstprefix %{roleprefix} +%global installbase %{_datadir}/ansible/roles +%global rolealtrelpath %{nil} +%endif + +%if 0%{?rhel} +%global collection_namespace redhat +%global collection_name rhel_system_roles +%else +%global collection_namespace fedora +%global collection_name linux_system_roles +%endif +%global subrole_prefix "private_${role}_subrole_" + +%global collection_version %{version} + +# Helper macros originally from macros.ansible by Igor Raits +# Not available on RHEL, so we must define those macros locally here without using ansible-galaxy + +# Not used (yet). Could be made to point to AH in RHEL - but what about CentOS Stream? +#%%{!?ansible_collection_url:%%define ansible_collection_url() https://galaxy.ansible.com/%%{collection_namespace}/%%{collection_name}} + +%if 0%{?fedora} || 0%{?rhel} >= 8 +%{!?ansible_collection_files:%define ansible_collection_files %{_datadir}/ansible/collections/ansible_collections/%{collection_namespace}/} +%else +# Define undefined macro using "!?ansible_collection_files:..." does not work for rhel-7 +%if %{?ansible_collection_files:0}%{!?ansible_collection_files:1} +%define ansible_collection_files %{_datadir}/ansible/collections/ansible_collections/%{collection_namespace}/ +%endif +%endif + + +%if %{with ansible} +BuildRequires: ansible >= 2.9.10 +%endif + +%if %{without ansible} +# We don't have ansible-galaxy. +# Simply copy everything instead of galaxy-installing the built artifact. +%define ansible_collection_build_install() tar -cf %{_tmppath}/%{collection_namespace}-%{collection_name}-%{version}.tar.gz .; mkdir -p %{buildroot}%{ansible_collection_files}%{collection_name}; (cd %{buildroot}%{ansible_collection_files}%{collection_name}; tar -xf %{_tmppath}/%{collection_namespace}-%{collection_name}-%{version}.tar.gz) +%else +%define ansible_collection_build_install() ansible-galaxy collection build; ansible-galaxy collection install -n -p %{buildroot}%{_datadir}/ansible/collections %{collection_namespace}-%{collection_name}-%{version}.tar.gz +%endif + +# For each role, call either defcommit() or deftag(). The other macros +# (%%id and %%shortid) can be then used in the same way in both cases. +# This way the rest of the spec file des not need to know whether we are +# dealing with a tag or a commit. +%global archiveext tar.gz +# list of role names +%global rolenames %nil +# list of assignments that can be used to populate a bash associative array variable +%global rolestodir %nil +%define getarchivedir() %(p=%{basename:%{S:%{1}}}; echo ${p%%.%{archiveext}}) + +%define defcommit() %{expand:%%global ref%{1} %{2} +%%global shortcommit%{1} %%(c=%%{ref%{1}}; echo ${c:0:7}) +%%global extractdir%{1} %%{expand:%%getarchivedir %{1}} +%%{!?repo%{1}:%%global repo%{1} %%{rolename%{1}}} +%%global archiveurl%{1} %%{?forgeorg%{1}}%%{!?forgeorg%{1}:%%{url}}/%%{repo%{1}}/archive/%%{ref%{1}}/%%{repo%{1}}-%%{ref%{1}}.tar.gz +%%global rolenames %%{?rolenames} %%{rolename%{1}} +%%global roletodir%{1} [%{rolename%{1}}]="%{extractdir%{1}}" +%%global rolestodir %%{?rolestodir} %{roletodir%{1}} +} + +%define deftag() %{expand:%%global ref%{1} %{2} +%%global extractdir%{1} %%{expand:%%getarchivedir %{1}} +%%{!?repo%{1}:%%global repo%{1} %%{rolename%{1}}} +%%global archiveurl%{1} %%{?forgeorg%{1}}%%{!?forgeorg%{1}:%%{url}}/%%{repo%{1}}/archive/%%{ref%{1}}/%%{repo%{1}}-%%{ref%{1}}.tar.gz +%%global rolenames %%{?rolenames} %%{rolename%{1}} +%%global roletodir%{1} [%{rolename%{1}}]="%{extractdir%{1}}" +%%global rolestodir %%{?rolestodir} %%{roletodir%{1}} +} + +#%%defcommit 1 14314822b529520ac12964e0d2938c4bb18ab895 +%global rolename1 postfix +%deftag 1 1.0.0 + +#%%defcommit 2 9fe6eb36772e83b53dcfb8ceb73608fd4f72eeda +%global rolename2 selinux +%deftag 2 1.2.3 + +#%%defcommit 3 8db8f9ed9088432bac7abf68f1b284475a3baa38 +%global rolename3 timesync +%deftag 3 1.5.0 + +#%%defcommit 4 02fc72b482e165472624b2f68eecd2ddce1d93b1 +%global rolename4 kdump +%deftag 4 1.0.5 + +%defcommit 5 b08a0b3748ee87aa3bdbcf1f0b7e41ef4971bbee +%global rolename5 network +#%%deftag 5 1.0.0 + +#%%defcommit 6 b3b456183edb7b8aa6ceff7ce667d8e22009ef6a +%global rolename6 storage +%deftag 6 1.5.2 + +#%%defcommit 7 0673d842fb32c437501e2aada2e38921da98e115 +%global rolename7 metrics +%deftag 7 1.2.4 + +#%%defcommit 8 2b9e53233ee3a68bdb532e62f289733e436a6106 +%global rolename8 tlog +%deftag 8 1.1.1 + +#%%defcommit 9 9373303b98e09ef38df7afc8d06e5e55812096c7 +%global rolename9 kernel_settings +%deftag 9 1.0.4 + +#%%defcommit 10 20dd3e5520ca06dcccaa9b3f1fb428d055e0c23f +%global rolename10 logging +%deftag 10 1.4.1 + +#%%defcommit 11 c57d0b1f3384c525738fa26ba4bdca485e162567 +%global rolename11 nbde_server +%deftag 11 1.0.3 + +#%%defcommit 12 bef2fad5e365712d1f40e53662490ba2550a253f +%global rolename12 nbde_client +%deftag 12 1.0.4 + +#%%defcommit 13 310fc53db04e8d3134524afb7a89b0477a2ffb83 +%global rolename13 certificate +%deftag 13 1.0.5 + +#%%defcommit 14 b2a9857ac661fa32e66666e444b73bfdb34cdf95 +%global rolename14 crypto_policies +%deftag 14 1.1.0 + +%global forgeorg15 https://github.com/willshersystems +%global repo15 ansible-sshd +%global rolename15 sshd +#%%defcommit 15 32f9d0dda5a801cbefad09214ec2d88b6838b943 +%deftag 15 v0.13.1 + +#%%defcommit 16 59b9fd7b25607d8bd33bdb082748955f2652846a +%global rolename16 ssh +%deftag 16 1.0.2 + +#%%defcommit 17 f901239cb91878719c9e7461760ef8d4789d626d +%global rolename17 ha_cluster +%deftag 17 1.2.0 + +#%%defcommit 18 5f6cb73e6753fbdbb219b7d3079f0378b2d3bdb3 +%global rolename18 vpn +%deftag 18 1.1.0 + +%global mainid ec364d2e0bd422b69f34871a1188114f368097a0 +Source: %{url}/auto-maintenance/archive/%{mainid}/auto-maintenance-%{mainid}.tar.gz +Source1: %{archiveurl1} +Source2: %{archiveurl2} +Source3: %{archiveurl3} +Source4: %{archiveurl4} +Source5: %{archiveurl5} +Source6: %{archiveurl6} +Source7: %{archiveurl7} +Source8: %{archiveurl8} +Source9: %{archiveurl9} +Source10: %{archiveurl10} +Source11: %{archiveurl11} +Source12: %{archiveurl12} +Source13: %{archiveurl13} +Source14: %{archiveurl14} +Source15: %{archiveurl15} +Source16: %{archiveurl16} +Source17: %{archiveurl17} +Source18: %{archiveurl18} + +# Script to convert the collection README to Automation Hub. +# Not used on Fedora. +Source998: collection_readme.sh + +Patch51: network-tier1-tags.diff +Patch52: network-disable-bondtests.diff + +BuildArch: noarch + +%if %{with html} +# Requirements for md2html.sh to build the documentation +%if 0%{?fedora} || 0%{?rhel} >= 9 +BuildRequires: rubygem-kramdown-parser-gfm +%else +BuildRequires: pandoc +BuildRequires: asciidoc +BuildRequires: highlight +%endif +%endif + +# Requirements for galaxy_transform.py +BuildRequires: python3 +%if 0%{?fedora} || 0%{?rhel} >= 8 +BuildRequires: python3dist(ruamel.yaml) + +Requires: python3-jmespath +Requires: python3-netaddr +%else +BuildRequires: python3-ruamel-yaml + +Requires: python-jmespath +Requires: python-netaddr +%endif + +Obsoletes: rhel-system-roles-techpreview < 1.0-3 + +%if %{undefined __ansible_provides} +Provides: ansible-collection(%{collection_namespace}.%{collection_name}) = %{collection_version} +%endif +# be compatible with the usual Fedora Provides: +Provides: ansible-collection-%{collection_namespace}-%{collection_name} = %{version}-%{release} + +# We need to put %%description within the if block to avoid empty +# lines showing up. +%if 0%{?rhel} +%description +Collection of Ansible roles and modules that provide a stable and +consistent configuration interface for managing multiple versions +of Red Hat Enterprise Linux. +%else +%description +Collection of Ansible roles and modules that provide a stable and +consistent configuration interface for managing multiple versions +of Fedora, Red Hat Enterprise Linux & CentOS. +%endif + +%if %{with collection_artifact} +%package collection-artifact +Summary: Collection artifact to import to Automation Hub / Ansible Galaxy + +%description collection-artifact +Collection artifact for %{name}. This package contains %{collection_namespace}-%{collection_name}-%{version}.tar.gz +%endif + +%prep +%setup -q -a1 -a2 -a3 -a4 -a5 -a6 -a7 -a8 -a9 -a10 -a11 -a12 -a13 -a14 -a15 -a16 -a17 -a18 -n %{getarchivedir 0} + +declare -A ROLESTODIR=(%{rolestodir}) +for rolename in %{rolenames}; do + dir_from_archive="${ROLESTODIR[${rolename}]}" + if [ ! -d "$dir_from_archive" ]; then + # ansible-sshd uses tags like vX.Y.Z + # using the github archive/ link with a tag like this strips + # the leading v from the tag used to construct the directory + # name in the archive + if [[ "$dir_from_archive" =~ %{repo15}-v([0-9]+[.][0-9]+.*) ]]; then + dir_from_archive="%{repo15}-${BASH_REMATCH[1]}" + fi + fi + mv "$dir_from_archive" ${rolename} +done + +cd %{rolename5} +%patch51 -p1 +%patch52 -p1 +cd .. +cd %{rolename15} +sed -r -i -e "s/ansible-sshd/linux-system-roles.sshd/" tests/*.yml examples/*.yml +sed -r -i -e "s/ willshersystems.sshd/ linux-system-roles.sshd/" tests/*.yml examples/*.yml README.md +cd .. + +# Replacing "linux-system-roles.rolename" with "rhel-system-roles.rolename" in each role +%if "%{roleprefix}" != "linux-system-roles." +for rolename in %{rolenames}; do + find $rolename -type f -exec \ + sed "s/linux-system-roles[.]${rolename}\\>/%{roleprefix}${rolename}/g" -i {} \; +done +%endif + +# Removing symlinks in tests/roles +for rolename in %{rolenames}; do + if [ -d ${rolename}/tests/roles ]; then + find ${rolename}/tests/roles -type l -exec rm {} \; + if [ -d ${rolename}/tests/roles/linux-system-roles.${rolename} ]; then + rm -r ${rolename}/tests/roles/linux-system-roles.${rolename} + fi + fi +done +rm %{rolename5}/tests/modules +rm %{rolename5}/tests/module_utils +rm %{rolename5}/tests/playbooks/roles +# Drop network/{scripts/print_all_options.py,tests/ensure_provider_tests.py} +# from rpm. These 2 files fail in brp-python-bytecompile due to f-strings +# when python2 is default python. +rm %{rolename5}/scripts/print_all_options.py +rm %{rolename5}/tests/ensure_provider_tests.py +# Drop storage tests/scripts +rm -rf %{rolename6}/tests/scripts + +# transform ambiguous #!/usr/bin/env python shebangs to python3 to stop brp-mangle-shebangs complaining +find -type f -executable -name '*.py' -exec \ + sed -i -r -e '1s@^(#! */usr/bin/env python)(\s|$)@#\13\2@' '{}' + + +%build +%if %{with html} +readmes="" +for role in %{rolenames}; do + readmes="${readmes} $role/README.md" +done +sh md2html.sh $readmes +%endif + +mkdir .collections +%if 0%{?rhel} +# Convert the upstream collection readme to the downstream one +%{SOURCE998} lsr_role2collection/collection_readme.md +%endif +./galaxy_transform.py "%{collection_namespace}" "%{collection_name}" "%{collection_version}" "Red Hat Enterprise Linux System Roles Ansible Collection" > galaxy.yml.tmp +mv galaxy.yml.tmp galaxy.yml + +for role in %{rolenames}; do + python3 lsr_role2collection.py --role "$role" --src-path "$role" \ + --src-owner %{name} --subrole-prefix %{subrole_prefix} --dest-path .collections \ + --readme lsr_role2collection/collection_readme.md \ + --namespace %{collection_namespace} --collection %{collection_name} +done + +# copy requirements.txt and bindep.txt from auto-maintenance/lsr_role2collection +if [ -f lsr_role2collection/collection_requirements.txt ]; then + cp lsr_role2collection/collection_requirements.txt \ + .collections/ansible_collections/%{collection_namespace}/%{collection_name}/requirements.txt +fi +if [ -f lsr_role2collection/collection_bindep.txt ]; then + cp lsr_role2collection/collection_bindep.txt \ + .collections/ansible_collections/%{collection_namespace}/%{collection_name}/bindep.txt +fi + +rm -f .collections/ansible_collections/%{collection_namespace}/%{collection_name}/tests/sanity/ignore-2.9.txt +# Merge .sanity-ansible-ignore-2.9-ROLENAME.txt into tests/sanity/ignore-2.9.txt +mkdir -p .collections/ansible_collections/%{collection_namespace}/%{collection_name}/tests/sanity +for role in %{rolenames}; do + if [ -f .collections/ansible_collections/%{collection_namespace}/%{collection_name}/.sanity-ansible-ignore-2.9-"$role".txt ]; + then + cat .collections/ansible_collections/%{collection_namespace}/%{collection_name}/.sanity-ansible-ignore-2.9-"$role".txt \ + >> .collections/ansible_collections/%{collection_namespace}/%{collection_name}/tests/sanity/ignore-2.9.txt + rm -f .collections/ansible_collections/%{collection_namespace}/%{collection_name}/.sanity-ansible-ignore-*-"$role".txt + fi +done + +# removing dot files/dirs +rm -r .collections/ansible_collections/%{collection_namespace}/%{collection_name}/.[A-Za-z]* + +cp -p galaxy.yml lsr_role2collection/.ansible-lint \ + .collections/ansible_collections/%{collection_namespace}/%{collection_name} + +# Remove table of contents from logging README.md +# It is not needed for html and AH/Galaxy +sed -i -e 's/^\(## Table of Contents\)/## Background\n\1/' \ + .collections/ansible_collections/%{collection_namespace}/%{collection_name}/roles/logging/README.md +sed -i -e '/^## Table of Contents/,/^## Background/d' \ + .collections/ansible_collections/%{collection_namespace}/%{collection_name}/roles/logging/README.md + +# Remove internal links from readme files +# They are not rendered properly on AH. +for role in %{rolenames}; do + sed -r -i -e 's/\[([^[]+)\]\(#[^)]+\)/\1/g' \ + .collections/ansible_collections/%{collection_namespace}/%{collection_name}/roles/$role/README.md +done + +%install +mkdir -p $RPM_BUILD_ROOT%{installbase} +mkdir -p $RPM_BUILD_ROOT%{_datadir}/ansible/roles + +for role in %{rolenames}; do + cp -pR "$role" "$RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}$role" +done + +%if 0%{?rolealtprefix:1} +for role in %{rolenames}; do + ln -s "%{rolealtrelpath}%{roleinstprefix}$role" "$RPM_BUILD_ROOT%{_datadir}/ansible/roles/%{rolealtprefix}$role" +done +%endif + +mkdir -p $RPM_BUILD_ROOT%{_pkglicensedir} +rm $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}network/examples/roles +for role in %{rolenames}; do + mkdir -p "$RPM_BUILD_ROOT%{_pkgdocdir}/$role" + cp -p "$RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}$role/README.md" \ + "$RPM_BUILD_ROOT%{_pkgdocdir}/$role" +%if %{with html} + cp -p "$RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}$role/README.html" \ + "$RPM_BUILD_ROOT%{_pkgdocdir}/$role" +%endif + if [ -f "$RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}$role/COPYING" ]; then + cp -p "$RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}$role/COPYING" \ + "$RPM_BUILD_ROOT%{_pkglicensedir}/$role.COPYING" + fi + if [ -f "$RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}$role/LICENSE" ]; then + cp -p "$RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}$role/LICENSE" \ + "$RPM_BUILD_ROOT%{_pkglicensedir}/$role.LICENSE" + fi + if [ -d "$RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}$role/examples" ]; then + for file in "$RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}$role/examples/"*.yml ; do + basename=$(basename "$file" .yml) + newname="$basename" + if [[ "$newname" != example-* ]]; then + newname="example-$newname" + fi + if [[ "$newname" != *-playbook ]]; then + newname="${newname}-playbook" + fi + cp "$file" "$RPM_BUILD_ROOT%{_pkgdocdir}/$role/${newname}.yml" + rm "$file" + done + if [ -f "$RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}$role/examples/inventory" ]; then + cp "$RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}$role/examples/inventory" \ + "$RPM_BUILD_ROOT%{_pkgdocdir}/$role/example-inventory" + rm "$RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}$role/examples/inventory" + fi + # special case for network + # this will error if the directory is unexpectedly empty + rmdir "$RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}$role/examples" + fi +done + +rm $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}*/semaphore +rm -r $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}*/molecule + +rm -r $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}*/.[A-Za-z]* +rm $RPM_BUILD_ROOT%{installbase}/%{roleinstprefix}*/tests/.git* + +# NOTE: sshd/examples/example-root-login.yml is +# referenced in the configuring-openssh-servers-using-the-sshd-system-role documentation module +# must be updated if changing the file path + +pushd .collections/ansible_collections/%{collection_namespace}/%{collection_name}/ +%ansible_collection_build_install +popd + +mkdir -p $RPM_BUILD_ROOT%{_pkgdocdir}/collection +mkdir -p $RPM_BUILD_ROOT%{_pkgdocdir}/collection/roles + +cp -p %{buildroot}%{ansible_collection_files}%{collection_name}/README.md \ + $RPM_BUILD_ROOT%{_pkgdocdir}/collection + +for rolename in %{rolenames}; do + if [ -f %{buildroot}%{ansible_collection_files}%{collection_name}/roles/${rolename}/README.md ]; then + mkdir -p $RPM_BUILD_ROOT%{_pkgdocdir}/collection/roles/${rolename} + cp -p %{buildroot}%{ansible_collection_files}%{collection_name}/roles/${rolename}/README.md \ + $RPM_BUILD_ROOT%{_pkgdocdir}/collection/roles/${rolename} + fi +done + +%if %{with html} +# converting README.md to README.html for collection in $RPM_BUILD_ROOT%{_pkgdocdir}/collection +readmes="$RPM_BUILD_ROOT%{_pkgdocdir}/collection/README.md" +for role in %{rolenames}; do + readmes="${readmes} $RPM_BUILD_ROOT%{_pkgdocdir}/collection/roles/${role}/README.md" +done +sh md2html.sh $readmes +%endif + +%if %{with collection_artifact} +# Copy collection artifact to /usr/share/ansible/collections/ for collection-artifact +pushd .collections/ansible_collections/%{collection_namespace}/%{collection_name}/ +if [ -f %{collection_namespace}-%{collection_name}-%{version}.tar.gz ]; then + mv %{collection_namespace}-%{collection_name}-%{version}.tar.gz \ + $RPM_BUILD_ROOT%{_datadir}/ansible/collections/ +fi +popd +%endif + +# generate the %files section in the file files_section.txt +format_item_for_files() { + # $1 is directory or file name in buildroot + # $2 - if true, and item is a directory, use %dir + local item + local files_item + item="$1" + files_item=${item##"%{buildroot}"} + if [ -L "$item" ]; then + echo "$files_item" + elif [ -d "$item" ]; then + if [[ "$item" == */doc* ]]; then + echo "%doc $files_item" + elif [ "${2:-false}" = true ]; then + echo "%dir $files_item" + else + echo "$files_item" + fi + elif [[ "$item" == */README.md ]] || [[ "$item" == */README.html ]]; then + if [[ "$item" == */private_* ]]; then + # mark as regular file, not %doc + echo "$files_item" + else + echo "%doc $files_item" + fi + elif [[ "$item" != */COPYING* ]] && [[ "$item" != */LICENSE* ]]; then + # Avoid dynamically using the license macro since the license macro + # is replaced with the value of License directive in the older rpmbuild. + echo "$files_item" + fi +} + +files_section=files_section.txt +rm -f $files_section +touch $files_section +%if %{without ansible} +echo '%dir %{_datadir}/ansible' >> $files_section +echo '%dir %{_datadir}/ansible/roles' >> $files_section +%endif +%if "%{installbase}" != "%{_datadir}/ansible/roles" +echo '%dir %{installbase}' >> $files_section +%endif +echo '%dir %{ansible_collection_files}' >> $files_section +echo '%dir %{ansible_collection_files}%{collection_name}' >> $files_section +find %{buildroot}%{ansible_collection_files}%{collection_name} -mindepth 1 -maxdepth 1 | \ + while read item; do + if [[ "$item" == */roles ]]; then + format_item_for_files "$item" true >> $files_section + find "$item" -mindepth 1 -maxdepth 1 | while read roles_dir; do + format_item_for_files "$roles_dir" true >> $files_section + find "$roles_dir" -mindepth 1 -maxdepth 1 | while read roles_item; do + format_item_for_files "$roles_item" >> $files_section + done + done + else + format_item_for_files "$item" >> $files_section + fi + done + +find %{buildroot}%{installbase} -mindepth 1 -maxdepth 1 | \ + while read item; do + if [ -d "$item" ]; then + format_item_for_files "$item" true >> $files_section + find "$item" -mindepth 1 -maxdepth 1 | while read roles_item; do + format_item_for_files "$roles_item" >> $files_section + done + else + format_item_for_files "$item" >> $files_section + fi + done +if [ "%{installbase}" != "%{_datadir}/ansible/roles" ]; then + find %{buildroot}%{_datadir}/ansible/roles -mindepth 1 -maxdepth 1 | \ + while read item; do + if [ -d "$item" ]; then + format_item_for_files "$item" true >> $files_section + find "$item" -mindepth 1 -maxdepth 1 | while read roles_item; do + format_item_for_files "$roles_item" >> $files_section + done + else + format_item_for_files "$item" >> $files_section + fi + done +fi +# cat files_section.txt +# done with files_section.txt generation + + +%files -f files_section.txt +%{_pkgdocdir}/*/README.md +%if %{with html} +%{_pkgdocdir}/*/README.html +%endif +%{_pkgdocdir}/*/example-* +%{_pkgdocdir}/collection/roles/*/README.md +%if %{with html} +%{_pkgdocdir}/collection/roles/*/README.html +%endif +%license %{_pkglicensedir}/* +%license %{installbase}/*/COPYING* +%license %{installbase}/*/LICENSE* +%license %{ansible_collection_files}/%{collection_name}/COPYING* +%license %{ansible_collection_files}/%{collection_name}/LICENSE* +%if 0%{?rhel} < 8 +# Needs to list excluded files in this hardcoded style since when +# format_item_for_files is executed, brp-python-bytecompile is not +# executed yet. +%exclude %{installbase}/*/*.py? +%exclude %{installbase}/*/*/*.py? +%exclude %{installbase}/*/*/*/*.py? +%exclude %{installbase}/*/*/*/*/*.py? +%exclude %{ansible_collection_files}/%{collection_name}/*/*/*.py? +%exclude %{ansible_collection_files}/%{collection_name}/*/*/*/*.py? +%exclude %{ansible_collection_files}/%{collection_name}/*/*/*/*/*.py? +%endif + +%if %{with collection_artifact} +%files collection-artifact +%{_datadir}/ansible/collections/%{collection_namespace}-%{collection_name}-%{version}.tar.gz +%endif + +%changelog +* Fri Aug 06 2021 Rich Megginson - 1.6.6-1 +- logging, certificate - Instead of the archive module, use "tar" command for backup. + Resolves rhbz#1984182 (EL9) + Resolves rhbz#1987096 (EL8) +- logging - Add a support for list value to server_host in the elasticsearch output + Resolves rhbz#1986460 (EL9) + Resolves rhbz#1986463 (EL8) +- logging - tests_relp.yml; Can't detect any of the required Python libraries cryptography (>= 1.2.3) or PyOpenSSL (>= 0.6) + Resolves rhbz#1989962 (EL9) + Resolves rhbz#1990142 (EL8) + +* Fri Aug 06 2021 Rich Megginson - 1.6.5-1 +- kernel_settings - Disable bootloader testing on EL9 + Resolves rhbz#1991017 + +* Tue Aug 03 2021 Rich Megginson - 1.6.4-1 +- sshd - support for rhel9 managed hosts + Resolves rhbz#1989221 (EL9) + Resolves rhbz#1989638 (EL8) + +* Tue Aug 03 2021 Rich Megginson - 1.6.3-1 +- storage - tag tests that use NVME and SCSI + Resolves rhbz#1989211 (EL9) + Resolves rhbz#1989638 (EL8) + +* Fri Jul 30 2021 Rich Megginson - 1.6.2-1 +- metrics - Grafana dashboard not working after metrics role run unless services manually restarted + Resolves rhbz#1984150 (EL9) + Resolves rhbz#1978357 (EL8) + +* Thu Jul 29 2021 Rich Megginson - 1.6.1-1 +- network - tests_provider_nm.yml fails with an error: Failure in test 'I can manage a veth interface with NM after I managed it with initscripts. + Resolves rhbz#1935919 +- network - _initscripts tests fail because "No package network-scripts available." + Resolves rhbz#1935916 +- network - Test tests_bond_initscripts.yml failed to create interface + Resolves rhbz#1980870 +- storage - covscan error - DEADCODE - vdopool if create_vdo else parent + Resolves rhbz#1985571 (EL9) + Resolves rhbz#1985572 (EL8) +- network - network: tests_bond_initscripts.yml leaves behind unusable resolv.conf in CI + Resolves rhbz#1915017 + +* Wed Jul 28 2021 Rich Megginson - 1.6.0-1 +- network - Skip tests on RHEL9 that use hostapd + Resolves rhbz#1945348 +- network - Fix the bond test on DHCP + Resolves rhbz#1918252 +- storage - Add support for percentage-based volume sizes + Resolves rhbz#1984583 (EL9) + Resolves rhbz#1894642 (EL8) +- storage -storage_test_actual_size != storage_test_requested_size observed with tests_lvm_auto_size_cap.yml + Resolves rhbz#1986284 (EL8) + +* Fri Jul 23 2021 Fedora Release Engineering - 1.5.1-1 +- Error: device becoming unmanaged and pytest not reproducible in tests_integration_pytest.yl + Resolves rhbz#1985382 (EL9) + Resolves rhbz#1932699 (EL8) +- EPEL yum repository configuration for tests + Rebasing to latest picks up this fix - see rhel7 bz1980439 +- connections: workaround DeprecationWarning for NM.SettingEthtool.set_feature() + Rebasing to latest picks up this fix + +* Thu Jul 15 2021 Rich Megginson - 1.5.0-1 +- ha_cluster - add pacemaker cluster properties configuration + Resolves rhbz#1982913 (EL8) + Resolves rhbz#1982906 (EL9) + +* Thu Jul 15 2021 Rich Megginson - 1.4.3-1 +- crypto_policies - rename 'policy modules' to 'subpolicies' + Resolves rhbz#1982896 (EL9) + Resolves rhbz#1982897 (EL8) + +* Thu Jul 15 2021 Rich Megginson - 1.4.2-1 +- storage - relabel doesn't support - Fixed volume relabeling + Resolves rhbz#1876315 (EL8) + Resolves rhbz#1982841 (EL9) + +* Fri Jul 9 2021 Rich Megginson - 1.4.1-1 +- network - Re-running the network system role results in "changed: true" when nothing has actually changed + Resolves rhbz#1943384 +- network - Test tests_bond_initscripts.yml failed to create interface + Resolves rhbz#1918210 + +* Thu Jul 8 2021 Rich Megginson - 1.4.0-1 +- storage - LVMVDO support + Resolves rhbz#1882475 + Resolves rhbz#1978488 + +* Wed Jun 23 2021 Rich Megginson - 1.3.0-1 +- ha_cluster - add pacemaker resources configuration + Resolves rhbz#1963283 +- ha_cluster - code cleanup + Resolves rhbz#1970666 +- Postfix RHEL system role README.md missing variables under the "Role Variables" section + Resolves rhbz#1961858 +- logging README.html examples are rendered incorrectly + Resolves rhbz#1962374 +- make postfix role idempotent - round 2 + Resolves rhbz#1960375 +- selinux task for semanage says Fedora in name but also runs on RHEL/CentOS 8 + Resolves rhbz#1966681 +- metrics role task to enable logging for targeted hosts not working + Resolves rhbz#1967335 +- network - Add 'auto_gateway' option + Resolves rhbz#1897565 +- network - Only show stderr_lines by default + Resolves rhbz#1970666 +- storage - LVMVDO support + Resolves rhbz#1882475 +- storage - fix several linter issues + Resolves rhbz#1970666 +- ssh - Fix variable precedence when invoked through roles + Resolves rhbz#1966711 +- ssh - Update configuration options list for OpenSSH 8.6 + Resolves rhbz#1970666 +- sshd - Fix variable precedence when invoked through roles + Resolves rhbz#1966711 +- sshd - Update configuration options list for OpenSSH 8.6 + Resolves rhbz#1970666 +- sshd - support for appending a snippet to configuration file + Resolves rhbz#1970642 +- timesync - add NTS support + Resolves rhbz#1970664 +- timesync - rebase to latest + Resolves rhbz#1970666 +- nbde_client - rebase to latest + Resolves rhbz#1970666 + +* Thu Jun 17 2021 Sergei Petrosian - 1.2.3-3 +- Make the ansible_collection_files macro defined in Fedora automatically and + in RHEL manually consistent - having slash at the end to clean double-slashes + +* Wed Jun 16 2021 Sergei Petrosian - 1.2.3-2 +- Remove slash (/) from the end of URLs to improve code readability + +* Wed Jun 16 2021 Noriko Hosoi - 1.2.3-1 +- Add EL 9 support for timesync and network + Resolves rhbz#1952887 + +* Tue Jun 15 2021 Rich Megginson - 1.2.2-3 +- Fix HTML rendering of internal links when using pandoc/asciidoc +- Uses pandoc gfm instead of markdown_github + Resolves rhbz#1962976 + +* Fri Jun 11 2021 Noriko Hosoi - 1.2.2-2 +- Make spec file available for older versions of OSes. +- Drop python3-six dependency which was used by lsr_role2collection.py. +- Drop html files from rpm if the version has no markdown parser. +- Drop unnecessary python scripts which include python3 only code, e.g., + f-strings. +- auto_maintenance - ability to convert "- ROLENAME" to "- FQCN" in the doc files such as README +- auto_maintenance - lsr_role2collection.py - Adding encoding="utf-8" to open. + Resolves rhbz#1957876 + +* Wed Jun 9 2021 Rich Megginson - 1.2.2-1 +- fix kdump tests_ssh for basic smoke test + Resolves rhbz#1957876 +- ha_cluster - cannot read preshared key in binary format + Resolves rhbz#1952620 +- Add hybrid_e2e option to PTP domain + Resolves rhbz#1957849 + +* Fri May 21 2021 Noriko Hosoi - 1.2.1-1 +- fix logging README.html examples' rendering problems + Resolves rhbz#1962374 +- fix broken internal links in README.md files + Resolves rhbz#1962976 + +* Mon May 17 2021 Sergei Petrosian - 1.2.0-2 +- Add BuildRequires: rubygem-kramdown for Fedora and RHEL >= 9 + +* Fri May 14 2021 Rich Megginson - 1.2.0-1 +- rebase roles to latest upstream + Resolves rhbz#1957876 +- use FQRN in postfix README + Resolves rhbz#1958963 +- use relayhost in postfix README + Resolves rhbz#1866544 +- network - Add support for ETHTOOL Ring option + Resolves rhbz#1959649 +- storage: calltrace observed when set type: partition for storage_pools + Resolves rhbz#1854187 + +* Thu May 13 2021 Noriko Hosoi - 1.1.0-2 +- Dependencies in the collection packaging + Resolves rhbz#1954747 + +* Wed Apr 14 2021 Rich Megginson - 1.1.0-1 +- rebase timesync role to latest upstream + Resolves rhbz#1937938 +- timesync - add timesync_chrony_custom_settings variable for free-form + local configs + Resolves rhbz#1938023 +- do not use ignore_errors in timesync role + Resolves rhbz#1938014 +- support for timesync_max_distance to configure maxdistance/maxdist parameter + Resolves rhbz#1938016 +- support for ntp xleave, filter, and hw timestamping + Resolves rhbz#1938020 +- rebase selinux role to latest upstream + Resolves rhbz#1937938 +- should not reload the SELinux policy if its not changed + Resolves rhbz#1757869 +- Ability to install custom SELinux module via Ansible + Resolves rhbz#1848683 +- rebase storage role to latest upstream + Resolves rhbz#1937938 +- rebase network role to latest upstream + Resolves rhbz#1937938 +- support for ipv6_disabled to disable ipv6 for address + Resolves rhbz#1939711 +- rebase postfix role to latest upstream + Resolves rhbz#1937938 +- rebase metrics role to latest upstream + Resolves rhbz#1937938 +- rebase sshd role to latest upstream + Resolves rhbz#1937938 +- rebase remaining roles to latest upstream + Resolves rhbz#1937938 +- Generate %%files dynamically +- add vpn role + Resolves rhbz#1943679 + +* Tue Apr 13 2021 Noriko Hosoi - 1.0.1-2 +- Adding the -collection-artifact subpackage, enabled using + "--with collection_artifact". It is used for importing to + ansible galaxy/automation hub. +- README.html files (main README for the collection and README + for each role) are not located in /usr/share/ansible/collections, + but just put in /usr/share/doc/linux-system-roles/collection in rpm. +- The README.html files are not included in the collection artifact. +- Fixing "sshd role README.md examples use incorrect role name". + +* Wed Mar 17 2021 Noriko Hosoi - 1.0.1-1 +- Fix description field in galaxy.yml +- Remove "Technology Preview" from Collection README +- Merging individual ignore file and add it to the package +- Add a note to each module Doc to indicate it is private +- Add patches for network and storage role ansible-test fixes + Resolves rhbz#1935451 +- Simplify doc tags in %%files, corrects a forgotten doc tag for ha_cluster +- Suppress one ansible-lint warning in ha_cluster + +* Tue Feb 23 2021 Fernando Fernandez Mancera - 1.0.0-32 +- Add patch for the inclusive language leftover on network-role README.md, + Resolves rhbz#1931931 + +* Mon Feb 22 2021 Pavel Cahyna - 1.0.0-31 +- Rebase certificate role to pick up a test fix, Resolves rhbz#1931568 +- Rebase logging role to fix default private key path, + upstream PR #218 + +* Mon Feb 22 2021 Pavel Cahyna - 1.0.0-30 +- Correct merge botch in previous (ssh/README.md is a doc file) +- Update galaxy.yml even on Fedora, auto-maintenance may not have + a consistent version number +- Update collection doc transformation to match a modified text + and include the Tech Preview note again + +* Thu Feb 18 2021 Pavel Cahyna - 1.0.0-29 +- Change internal role prefix to more descriptive private_${role}_subrole_ +- Sync spec improvements from Fedora and introduce helper macros + No functional change except for license files location +- Disable mssql metrics test on non-x86_64 where the packages + are not available. Upstream PR #73 + +* Wed Feb 17 2021 Rich Megginson - 1.0.0-28 +- Add patch for sshd https://github.com/willshersystems/ansible-sshd/pull/155 + for ansible 2.8/jinja 2.7 support for sshd role +- Rebase certificate, kernel_settings, nbde_client for jinja27 +- Rebase the logging role, Resolves rhbz#1927943 +- Rebase storage role, Resolves rhbz#1894651 - interpreatation of + omitted parameters +- Apply storage PR #201 to dispense with the need of listing all disks + in existing pools, Resolves rhbz1894676 +- Apply storage PR #199 to allow reducing the requested volume sizes + if needed to fit, Resolves rhbz1894647 +- Rebase the network role, Resolves rhbz1893959, rhbz1893957 +- Add the ssh client role, Resolves rhbz1893712 +- Minor issue in selinux - no variable named present + Resolves rhbz1926947 +- Prefix internal roles with private_, resolves rhbz#1927417 +- Add the ha_cluster role, Resolves rhbz#1893743 + +* Thu Feb 11 2021 Pavel Cahyna - 1.0.0-27 +- Rebase the logging role, Resolves rhbz#1889484 +- Fixes to collection docs and galaxy metadata from nhosoi +- Apply network PR #350 Resolves rhbz#1927392 + +* Wed Feb 3 2021 Pavel Cahyna - 1.0.0-26 +- Rebase the metrics role, Resolves rhbz#1895188, rhbz#1893908 + +* Tue Jan 26 2021 Pavel Cahyna - 1.0.0-25 +- Apply storage PR #153 to fix a problem with partition name on NVMe devices + Resolves: rhbz1865990 +- Remove symlinks to roles under tests +- Cleanup of role directories - remove files starting with . in roles' root + directories and Git files under tests. Resolves rhbz#1650550 +- Add collection support, make Version semver compatible: 1.0 -> 1.0.0 + Resolves rhbz#1893906 +- Autogenerate Automation-Hub README.md if building for RHEL +- Renumber sources, Source is now auto-maintenance since it is the root + of the source tree, kdump becomes Source4 (4 was originally firewall) +- Introduce bcond_with/without ansible, work on Fedora, RHEL and EPEL +- Rebase certificate role to include collection-related workarounds, + no change in behavior intended +- Rebase network role, includes collection-related workarounds +- Revert an invasive network change to enable EPEL (PR #335) and implement + a minimal version + +* Fri Jan 15 2021 Pavel Cahyna - 1.0-24 +- Apply PR #63 for kdump to fix a problem in test introduced by rebase + +* Fri Jan 8 2021 Pavel Cahyna - 1.0-23 +- Add {crypto_policies,sshd}/README.md to docfiles, thanks jjelen +- Fix role name in selinux patch +- Add sshd role example and README fix +- Fix role name in sshd role tests and docs +- Backport network role PR #298 to fix problems often triggered by the CI + "error: down connection failed while waiting", Resolves rhbz#1817242 +- Disable bond test in downstream CI, it started to break DNS in RHEL 8.4. + Related rhbz#1915017 + +* Thu Jan 7 2021 Pavel Cahyna - 1.0-22 +- Rebase kdump, certificate, storage, selinux, nbde_client/server, + kernel_settings in preparation for collections + Includes upstream PR #168 for storage to prevent toggling encryption + in safe mode, as it is a destructive operation. Resolves rhbz#1881524 +- Introduce & use simpler macros for Sources management, + similar to %%forgemeta + https://docs.fedoraproject.org/en-US/packaging-guidelines/SourceURL/ +- Use a script to perform prefix transformation for all roles to reduce + the number of patches +- Rebase tlog to add exclude_{users,groups} support, Resolves rhbz#1895472 +- Add crypto_policies role, Resolves rhbz#1893699 +- Add sshd role, Resolves rhbz#1893696 + +* Mon Aug 24 2020 Pavel Cahyna - 1.0-19 +- Rebase network role to latest upstream, resolves rhbz#1800627 + Drop a downstream patch with a test workaround that is not needed anymore. +- Fix script for role prefix transformation +- Rebase metrics role to pick up test changes, PR #19 +- Rebase kernel_settings role to latest upstream, resolves rhbz#1851557 + +* Mon Aug 24 2020 Pavel Cahyna - 1.0-18 +- Rebase storage role to latest upstream, resolves rhbz#1848254, rhbz#1851654, + rhbz#1862867 +- Rebase nbde_client role to latest upstream, resolves rhbz#1851654 +- Rebase logging role to latest upstream, resolves rhbz#1851654, rhbz#1861318 +- Rebase metrics role to latest upstream, resolves rhbz#1869390, rhbz#1869389, + rhbz#1868378 + +* Fri Aug 21 2020 Pavel Cahyna - 1.0-17 +- Rebase certificate role to latest upstream, resolves rhbz#1859547 + +* Mon Aug 10 2020 Pavel Cahyna - 1.0-16 +- Rebase logging role to latest upstream, resolves rhbz#1854546, rhbz#1861318, + rhbz#1860896, adds test for rhbz#1850790 +- Rebase metrics role to latest upstream, resolves rhbz#1855544, rhbz#1855539, + rhbz#1848763 +- Fix whitespace in postfix role patch + +* Fri Jul 31 2020 Pavel Cahyna - 1.0-15 +- Rebase storage role to latest upstream, resolves rhbz#1854191, rhbz#1848250, + rhbz#1850790 (including test) +- Rebase nbde_client role to latest upstream, adds test for rhbz#1850790 +- Rebase certificate role to latest upstream, adds test for rhbz#1850790 +- Rebase nbde_server role to latest upstream, resolves rhbz#1850790 + (including test) +- Rebase tlog role to latest upstream, resolves rhbz#1855424 +- Rebase kernel_settings role to rev b8bc86b, resolves rhbz#1850790 +- Add EL 8 to supported versions in postfix and kdump role metadata, + resolves rhbz#1861661 + +* Mon Jul 20 2020 Rich Megginson - 1.0-14 +- Rebase certificate role to latest upstream, resolves rhbz#1858840 + +* Fri Jul 17 2020 Rich Megginson - 1.0-13 +- Rebase certificate role to latest upstream, resolves rhbz#1858316, rhbz#1848745 + +* Mon Jun 29 2020 Pavel Cahyna - 1.0-12 +- Rebase network role to latest upstream, resolves rhbz#1822777, rhbz#1848472 +- Rebase logging role to latest upstream, resolves rhbz#1850790, + rhbz#1851804, rhbz#1848762 +- Rebase certificate role to latest upstream, resolves rhbz#1848742, + rhbz#1850790 +- Rebase nbde_client role to latest upstream, resolves rhbz#1848766, + rhbz#1850790 + +* Mon Jun 15 2020 Pavel Cahyna - 1.0-11 +- Rebase network role to latest upstream +- Remove all the soon-unnecessary tier1 tags in test +- Add a workaround for rhbz#1800627 in test +- Modify patches to remove tier1 tags +- Add metrics, tlog, logging, kernel_settings roles +- Add nbde_client, nbde_server, certificate roles +- Rebase storage role to latest upstream: adds support for mdraid, LUKS, + swap manangement + +* Mon Oct 21 2019 Pavel Cahyna - 1.0-10 +- Add the storage_safe_mode option, true by default, to prevent accidental + data removal: rhbz#1763242, issue #42, PR #43 and #51. + +* Thu Aug 15 2019 Pavel Cahyna - 1.0-9 +- Add the storage role + +* Thu Jun 13 2019 Pavel Cahyna - 1.0-7 +- Update tests for the network role +- Fix typo in a test for the timesync role +- Tag tests suitable for Tier1 testing +- Rebase the network role to add support for device features (PR#115, + rhbz#1696703) and atomic changes (PR#119, rhbz#1695161) +- network: apply upstream PR#121: allow modifying interface attributes + without disrupting services (rhbz#1695157) + +* Wed May 29 2019 Pavel Cahyna - 1.0-6 +- Rebase the selinux role, fixes typo in tests, uncovered by Ansible 2.7, + (rhbz#1677743) and lists all input variables in defaults + to make Satellite aware of them (rhbz#1674004, PR#43) +- Rebase the kdump role to fix check mode problems: rhbz#1685904 +- Rebase the timesync role: fixes check mode problems (rhbz#1685904) + and lists all input variables in defaults (rhbz#1674004) +- Rebase the network role: keeps the interface up for state: up + if persistent_state is absent and solves problems with defining + VLAN and MACVLAN interface types (issue #19) (rhbz#1685902) + +* Sat Jan 12 2019 Pavel Cahyna - 1.0-5 +- spec file improvement: Unify the source macros with deftag() and defcommit() +- Update to upstream released versions and drop unnecessary patches. +- Unify the spec file with Fedora (no functional changes intended). +- Misc spec file comments fixes (by Mike DePaulo) +- Fix rpmlint error by escaping a previous changelog entry with a macro (by Mike DePaulo) +- Comply with Fedora guidelines by always using "cp -p" in %%install (by Mike DePaulo) +- Rebase network role - doc improvements, Fedora 29 and Ansible 2.7 support +- Regenerate network role patch to apply without offset +- Rebase kdump role to fix a forgotten edit, rhbz#1645633 +- Update timesync examples: add var prefix (rhbz#1642152), correct role prefix +- Add Obsoletes for the -techpreview subpackage +- Add warnings to role READMEs and other doc updates, rhbz#1616018 +- network: split the state setting into state and persistent_state, rhbz#1616014 +- depend on python-jmespath as Ansible will not ship it, rhbz#1660559 + +* Tue Aug 14 2018 Pavel Cahyna - 1.0-4 +- Format the READMEs as html, by vdolezal, with changes to use highlight + (source-highlight does not understand YAML) + +* Thu Aug 9 2018 Pavel Cahyna - 1.0-3 +- Rebase the network role to the last revision (d866422). + Many improvements to tests, introduces autodetection of the current provider + and defaults to using profile name as interface name. +- Rebase the selinux, timesync and kdump roles to their 1.0rc1 versions. + Many changes to the role interfaces to make them more consistent + and conforming to Ansible best practices. +- Update the description. + +* Fri May 11 2018 Pavel Cahyna - 0.6-4 +- Fix complaints about /usr/bin/python during RPM build by making the affected scripts non-exec +- Fix merge botch + +* Mon Mar 19 2018 Troy Dawson - 0.6-3.1 +- Use -a (after cd) instead of -b (before cd) in %%setup + +* Wed Mar 14 2018 Pavel Cahyna - 0.6-3 +- Minor corrections of the previous change by Till Maas. + +* Fri Mar 9 2018 Pavel Cahyna - 0.6-2 +- Document network role options: static routes, ethernet, dns + Upstream PR#36, bz1550128, documents bz1487747 and bz1478576 + +* Tue Jan 30 2018 Pavel Cahyna - 0.6-1 +- Drop hard dependency on ansible (#1525655), patch from Yaakov Selkowitz +- Update the network role to version 0.4, solves bz#1487747, bz#1478576 + +* Tue Dec 19 2017 Pavel Cahyna - 0.5-3 +- kdump: fix the wrong conditional for ssh checking and improve test (PR#10) + +* Tue Nov 07 2017 Pavel Cahyna - 0.5-2 +- kdump: add ssh support. upstream PR#9, rhbz1478707 + +* Tue Oct 03 2017 Pavel Cahyna - 0.5-1 +- SELinux: fix policy reload when SELinux is disabled on CentOS/RHEL 6 + (bz#1493574) +- network: update to b856c7481bf5274d419f71fb62029ea0044b3ec1 : + makes the network role idempotent (bz#1476053) and fixes manual + network provider selection (bz#1485074). + +* Mon Aug 28 2017 Pavel Cahyna - 0.4-1 +- network: update to b9b6f0a7969e400d8d6ba0ac97f69593aa1e8fa5: + ensure that state:absent followed by state:up works (bz#1478910), and change + the example IP adresses to the IANA-assigned ones. +- SELinux: fix the case when SELinux is disabled (bz#1479546). + +* Tue Aug 8 2017 Pavel Cahyna - 0.3-2 +- We can't change directories to symlinks (rpm bug #447156) so keep the old + names and create the new names as symlinks. + +* Tue Aug 8 2017 Pavel Cahyna - 0.3-1 +- Change the prefix to linux-system-roles., keeping compatibility + symlinks. +- Update the network role to dace7654feb7b5629ded0734c598e087c2713265: + adds InfiniBand support and other fixes. +- Drop a patch included upstream. + +* Mon Jun 26 2017 Pavel Cahyna - 0.2-2 +- Leave a copy of README and COPYING in every role's directory, as suggested by T. Bowling. +- Move the network example inventory to the documentation directory together. + with the example playbooks and delete the now empty "examples" directory. +- Use proper reserved (by RFC 7042) MAC addresses in the network examples. + +* Tue Jun 6 2017 Pavel Cahyna - 0.2-1 +- Update the networking role to version 0.2 (#1459203) +- Version every role and the package separately. They live in separate repos + and upstream release tags are not coordinated. + +* Mon May 22 2017 Pavel Cahyna - 0.1-2 +- Prefix the roles in examples and documentation with rhel-system-roles. + +* Thu May 18 2017 Pavel Cahyna - 0.1-1 +- Update to 0.1 (first upstream release). +- Remove the tuned role, it is not ready yet. +- Move the example playbooks to /usr/share/doc/rhel-system-roles/$SUBSYSTEM + directly to get rid of an extra directory. +- Depend on ansible. + +* Thu May 4 2017 Pavel Cahyna - 0-0.1.20170504 +- Initial release. +- kdump r. fe8bb81966b60fa8979f3816a12b0c7120d71140 +- postfix r. 43eec5668425d295dce3801216c19b1916df1f9b +- selinux r. 1e4a21f929455e5e76dda0b12867abaa63795ae7 +- timesync r. 33a1a8c349de10d6281ed83d4c791e9177d7a141 +- tuned r. 2e8bb068b9815bc84287e9b6dc6177295ffdf38b +- network r. 03ff040df78a14409a0d89eba1235b8f3e50a750 +