From f653c74e7faa42a09b6d66115482b6c51f848de4 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: May 17 2022 08:48:02 +0000 Subject: import rhel-system-roles-1.16.2-1.el9_0 --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6ec4a27 --- /dev/null +++ b/.gitignore @@ -0,0 +1,23 @@ +SOURCES/ansible-posix-1.3.0.tar.gz +SOURCES/ansible-sshd-214df35c0bee77b5d69f49c2da269251d451b28f.tar.gz +SOURCES/auto-maintenance-5e7bb389fc5e93184871b3907e75ba896874dc21.tar.gz +SOURCES/certificate-1.1.3.tar.gz +SOURCES/cockpit-1.2.1.tar.gz +SOURCES/community-general-4.6.0.tar.gz +SOURCES/crypto_policies-1.2.3.tar.gz +SOURCES/firewall-1.1.0.tar.gz +SOURCES/ha_cluster-1.4.1.tar.gz +SOURCES/kdump-1.2.2.tar.gz +SOURCES/kernel_settings-1.1.6.tar.gz +SOURCES/logging-1.8.1.tar.gz +SOURCES/metrics-1.5.1.tar.gz +SOURCES/nbde_client-1.2.2.tar.gz +SOURCES/nbde_server-1.1.2.tar.gz +SOURCES/network-1.7.1.tar.gz +SOURCES/postfix-1.2.0.tar.gz +SOURCES/selinux-1.3.4.tar.gz +SOURCES/ssh-1.1.4.tar.gz +SOURCES/storage-1.7.0.tar.gz +SOURCES/timesync-1.6.6.tar.gz +SOURCES/tlog-1.2.5.tar.gz +SOURCES/vpn-1.3.2.tar.gz diff --git a/.rhel-system-roles.metadata b/.rhel-system-roles.metadata new file mode 100644 index 0000000..265b0e5 --- /dev/null +++ b/.rhel-system-roles.metadata @@ -0,0 +1,23 @@ +d2d2382c38eaf34d2295aba2aa4652d75ebbaeef SOURCES/ansible-posix-1.3.0.tar.gz +a4d4556cf6628e87fa62dec6c46099338b499930 SOURCES/ansible-sshd-214df35c0bee77b5d69f49c2da269251d451b28f.tar.gz +a2ec14498a7fd213f08dd24ca139039c958b07fd SOURCES/auto-maintenance-5e7bb389fc5e93184871b3907e75ba896874dc21.tar.gz +cee41b5fd6359e9ddeb83c5af7b8057fef6b2334 SOURCES/certificate-1.1.3.tar.gz +004064268df0e7dd154331b7799272d3277388d4 SOURCES/cockpit-1.2.1.tar.gz +ad8684050c86bad7ce4882a84e14be6867a56d8d SOURCES/community-general-4.6.0.tar.gz +0684c1335923ba8ebbb05afbd507e5ff31f874d6 SOURCES/crypto_policies-1.2.3.tar.gz +fcb8d48ccaeba886859ce6afd3d14bbb3f8a5667 SOURCES/firewall-1.1.0.tar.gz +9a990a4908bdf3269bce4f214907623780a5e221 SOURCES/ha_cluster-1.4.1.tar.gz +a1c9c89dea1dbe2410465c29ad0e1d3637ac5f52 SOURCES/kdump-1.2.2.tar.gz +0a681d1e3b236c4750d663f2a833e786a5e958ab SOURCES/kernel_settings-1.1.6.tar.gz +e530528ba5f9478cc8604aa6612388ea8e5078af SOURCES/logging-1.8.1.tar.gz +430ce63a7b45b97305e4f8591192fa7e58af8292 SOURCES/metrics-1.5.1.tar.gz +0424321322eb4d80560a8d2d9fee406296728463 SOURCES/nbde_client-1.2.2.tar.gz +33f0a3ea008021e69b2bbd7b25f6536f91e7613d SOURCES/nbde_server-1.1.2.tar.gz +dcd2261fe6b6a998aca3eb6c968204152e2ffd51 SOURCES/network-1.7.1.tar.gz +95c54da9ef5acaae9553f2c4ed250452502ab9e0 SOURCES/postfix-1.2.0.tar.gz +4e5c5216814577ee55304721e5c811ed8857efbc SOURCES/selinux-1.3.4.tar.gz +f38972c4b22a9f226b58725c7e9ba8fac692bba2 SOURCES/ssh-1.1.4.tar.gz +0728b4e01261f84ce470431a4ea21907db75f26a SOURCES/storage-1.7.0.tar.gz +0bd118c9df9bf556a76d42c92bde11fde5553eba SOURCES/timesync-1.6.6.tar.gz +17e6f3d437d161143c87b6709a42a3eff6ef7df0 SOURCES/tlog-1.2.5.tar.gz +d1bb00636c04bc1b2d94ce0e491afe9ef921cd56 SOURCES/vpn-1.3.2.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/SPECS/linux-system-roles.spec b/SPECS/linux-system-roles.spec new file mode 100644 index 0000000..a3bb936 --- /dev/null +++ b/SPECS/linux-system-roles.spec @@ -0,0 +1,1403 @@ +# NOTE: Even though ansible-core is in 8.6, it is only available +# at *runtime*, not at *buildtime* - so we can't have +# ansible-core as a build_dep on RHEL8 +%if 0%{?fedora} || 0%{?rhel} >= 9 +%bcond_without ansible +%global ansible_build_dep ansible-core >= 2.11.0 +%else +%if 0%{?rhel} && ! 0%{?epel} +%bcond_with ansible +%else +%bcond_without ansible +%global ansible_build_dep ansible >= 2.9.10 +%endif +%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.16.2 +Release: 1%{?dist} + +#Group: Development/Libraries +License: GPLv3+ and MIT and BSD and Python +%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 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 + +# ansible-core is in rhel 8.6 and later - default to ansible-core, but allow +# the use of ansible if present - we may revisit this if the automatic dependency +# generator is added to ansible-core in RHEL +# Fedora - the automatic generator will add this - no need to explicit declare +# it in the spec file +# EL7 - no dependency on ansible because there is no ansible in el7 - user is +# responsible for knowing they have to install ansible +%if 0%{?rhel} >= 8 +Requires: (ansible-core >= 2.11.0 or ansible >= 2.9.0) +%endif + +%if %{with ansible} +BuildRequires: %{ansible_build_dep} +%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.2.0 + +#%%defcommit 2 9fe6eb36772e83b53dcfb8ceb73608fd4f72eeda +%global rolename2 selinux +%deftag 2 1.3.4 + +#%%defcommit 3 cbe4bf262bffae3bf53e531662237741954c4182 +%global rolename3 timesync +%deftag 3 1.6.6 + +#%%defcommit 4 02fc72b482e165472624b2f68eecd2ddce1d93b1 +%global rolename4 kdump +%deftag 4 1.2.2 + +#%%defcommit 5 61423ed36fc6da6dbe8321912e896c59a2d8e2f6 +%global rolename5 network +%deftag 5 1.7.1 + +#%%defcommit 6 50d2b8ccc98a8f4cb9d1d550d21adc227181e9fa +%global rolename6 storage +%deftag 6 1.7.0 + +#%%defcommit 7 d57caa8ca506d8cbc7ca0f96f7cb62b7e965f163 +%global rolename7 metrics +%deftag 7 1.5.1 + +#%%defcommit 8 2b9e53233ee3a68bdb532e62f289733e436a6106 +%global rolename8 tlog +%deftag 8 1.2.5 + +#%%defcommit 9 9373303b98e09ef38df7afc8d06e5e55812096c7 +%global rolename9 kernel_settings +%deftag 9 1.1.6 + +#%%defcommit 10 20dd3e5520ca06dcccaa9b3f1fb428d055e0c23f +%global rolename10 logging +%deftag 10 1.8.1 + +#%%defcommit 11 c57d0b1f3384c525738fa26ba4bdca485e162567 +%global rolename11 nbde_server +%deftag 11 1.1.2 + +#%%defcommit 12 bef2fad5e365712d1f40e53662490ba2550a253f +%global rolename12 nbde_client +%deftag 12 1.2.2 + +#%%defcommit 13 310fc53db04e8d3134524afb7a89b0477a2ffb83 +%global rolename13 certificate +%deftag 13 1.1.3 + +#%%defcommit 14 b2a9857ac661fa32e66666e444b73bfdb34cdf95 +%global rolename14 crypto_policies +%deftag 14 1.2.3 + +%global forgeorg15 https://github.com/willshersystems +%global repo15 ansible-sshd +%global rolename15 sshd +%defcommit 15 214df35c0bee77b5d69f49c2da269251d451b28f +#%%deftag 15 v0.14.1 + +#%%defcommit 16 59b9fd7b25607d8bd33bdb082748955f2652846a +%global rolename16 ssh +%deftag 16 1.1.4 + +#%%defcommit 17 f901239cb91878719c9e7461760ef8d4789d626d +%global rolename17 ha_cluster +%deftag 17 1.4.1 + +#%%defcommit 18 5f6cb73e6753fbdbb219b7d3079f0378b2d3bdb3 +%global rolename18 vpn +%deftag 18 1.3.2 + +%global rolename19 firewall +%deftag 19 1.1.0 + +%global rolename20 cockpit +%deftag 20 1.2.1 + +%global mainid 5e7bb389fc5e93184871b3907e75ba896874dc21 +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} +Source19: %{archiveurl19} +Source20: %{archiveurl20} + +# Collection tarballs from Automation Hub +# Not used on Fedora. +Source801: ansible-posix-1.3.0.tar.gz + +# Collection tarballs from Galaxy +# Not used on Fedora. +Source901: community-general-4.6.0.tar.gz + +# Script to convert the collection README to Automation Hub. +# Not used on Fedora. +Source998: collection_readme.sh + +Patch51: 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: %{py3_dist ruamel.yaml} +%else +BuildRequires: python3-ruamel-yaml +%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 -a19 -a20 -n %{getarchivedir 0} + +for file in %_sourcedir/*.tar.gz; do + if [[ "$file" =~ %_sourcedir/([^-]+)-([^-]+)-(.+).tar.gz ]]; then + ns=${BASH_REMATCH[1]} + name=${BASH_REMATCH[2]} + ver=${BASH_REMATCH[3]} + mkdir -p .external/$ns/$name + pushd .external/$ns/$name > /dev/null + tar xfz "$file" + popd > /dev/null + fi +done + +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 %{rolename2}/tests +# this test causes avcs we want to ignore +sed -r -i -e '/hosts: all/a\ + tags:\ + - tests::avc' tests_selinux_disabled.yml +cd ../.. + +cd %{rolename5} +%patch51 -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 +sed -r -i -e "s/min_ansible_version: 2.8/min_ansible_version: 2.9/" meta/main.yml +cd .. + +cd %{rolename7} +# metrics roles dir is a symlink to the vendored dir. +# rpm upgrade doesn't like the symlink. Replace the +# symlink with the real dir +rolesdir=$(pwd)/roles +realrolesdir=$(realpath "$rolesdir") +if [ "$rolesdir" != "$realrolesdir" ]; then + rm -rf roles + mv "$realrolesdir" . + rm -rf vendor +fi +cd .. + +%if 0%{?rhel} +# Unpack tar.gz to retrieve to be vendored modules and place them in the roles library. +# ansible.posix: +# - library: +# - Module selinux and seboolean for the selinux role +# - Module mount for the storage role +declare -A module_map=( ["selinux.py"]="selinux" ["seboolean.py"]="selinux" ["mount.py"]="storage" ) +for module in "${!module_map[@]}"; do + role="${module_map[${module}]}" + if [ ! -d $role/library ]; then + mkdir $role/library + fi + cp -pL .external/ansible/posix/plugins/modules/$module $role/library/$module + sed -i -e ':a;N;$!ba;s/description:\n\( *\)/description:\n\1- WARNING: Do not use this module directly! It is only for role internal use.\n\1/' -e "s/ansible_collections.ansible.posix.plugins.module_utils/ansible.module_utils.${role}_lsr/" $role/library/$module +done + +# ansible.posix: +# - module_utils: +# - Module_util mount for the storage role +module_map=( ["mount.py"]="storage" ) +for module in "${!module_map[@]}"; do + role="${module_map[${module}]}" + if [ ! -d $role/module_utils/${role}_lsr ]; then + mkdir -p $role/module_utils/${role}_lsr + fi + cp -pL .external/ansible/posix/plugins/module_utils/$module $role/module_utils/${role}_lsr/$module + sed -i -e ':a;N;$!ba;s/description:\n\( *\)/description:\n\1- WARNING: Do not use this module directly! It is only for role internal use.\n\1/' $role/library/$module +done + +# community.general: +# - library: +# - Module seport, sefcontext and selogin for the selinux role rolename2 +# - Module ini_file for role tlog +module_map=( ["seport.py"]="selinux" ["sefcontext.py"]="selinux" ["selogin.py"]="selinux" ["ini_file.py"]="tlog" ) +for module in "${!module_map[@]}"; do + role="${module_map[${module}]}" + if [ ! -d $role/library ]; then + mkdir $role/library + fi + cp -pL .external/community/general/plugins/modules/$module $role/library/$module + ls -alrtF $role/library/$module + sed -i -e ':a;N;$!ba;s/description:\n\( *\)/description:\n\1- WARNING: Do not use this module directly! It is only for role internal use.\n\1/' $role/library/$module +done +%endif + +# 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 +./galaxy_transform.py "%{collection_namespace}" "%{collection_name}" "%{collection_version}" \ + "Red Hat Enterprise Linux System Roles Ansible Collection" \ + "https://linux-system-roles.github.io" \ + "https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/administration_and_configuration_tasks_using_system_roles_in_rhel" \ + "https://access.redhat.com/articles/3050101" \ + "https://bugzilla.redhat.com/enter_bug.cgi?product=Red%20Hat%20Enterprise%20Linux%208&component=rhel-system-roles" \ + > galaxy.yml.tmp +# we vendor-in all of the dependencies on rhel, so remove them +rm -f lsr_role2collection/collection_requirements.txt +# but leave bindep.txt +%else +./galaxy_transform.py "%{collection_namespace}" "%{collection_name}" "%{collection_version}" \ + "Linux System Roles Ansible Collection" \ + > galaxy.yml.tmp +%endif +mv galaxy.yml.tmp galaxy.yml + +includes="" +for role in %{rolenames}; do + includes="$includes --include $role" +%if 0%{?rhel} + # we vendor-in all of the dependencies on rhel, so remove them + rm -f "$role/meta/requirements.yml" +%endif +done + +LANG=en_US.utf-8 LC_ALL=en_US.utf-8 python3 release_collection.py --galaxy-yml galaxy.yml \ + --src-path $(pwd) --dest-path $(pwd)/.collections $includes --force --no-update \ + --src-owner %{name} --skip-git --skip-check --debug + +# 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 +* Tue Mar 29 2022 Rich Megginson - 1.16.2-1 +- nbde_client - NBDE client system role does not support servers with static IP addresses + previous fix did not handle some cases + Resolves rhbz#1985022 (EL8) + Resolves rhbz#2031555 (EL9) + +* Fri Mar 18 2022 Rich Megginson - 1.16.1-1 +- network - pytest failed when running with nm providers in the rhel-8.5 beaker machine + Resolves rhbz#2064396 (EL8) + Resolves rhbz#2064401 (EL9) +- network - bond: fix typo in supporting the infiniband ports in active-backup modekernel_settings error configobj not found on RHEL 8.6 managed hosts + Resolves rhbz#2064388 (EL8) + Resolves rhbz#2064391 (EL9) +- network - consistently use ansible_managed in configuration files managed by role + Resolves rhbz#2057656 (EL8) + Resolves rhbz#2057657 (EL9) + +* Tue Mar 15 2022 Rich Megginson - 1.16.0-1 +- metrics - consistently use ansible_managed in configuration files managed by role + Resolves rhbz#2057645 (EL8) + Resolves rhbz#2057647 (EL9) +- postfix - consistently use ansible_managed in configuration files managed by role + Resolves rhbz#2057661 (EL8) + Resolves rhbz#2057662 (EL9) +- postfix - provide the ability to replace config and reset configuration back to default + Resolves rhbz#2044657 (EL8) + Resolves rhbz#2058780 (EL9) +- new tags required in galaxy.yml for Automation Hub + +* Thu Mar 3 2022 Rich Megginson - 1.15.1-1 +- kernel_settings error configobj not found on RHEL 8.6 managed hosts + Resolves rhbz#2058772 (EL8) + Resolves rhbz#2058756 (EL9) +- timesync: basic-smoke test failure in timesync/tests_ntp.yml + Resolves rhbz#2059293 (EL8) + Resolves rhbz#2058645 (EL9) + +* Tue Mar 1 2022 Noriko Hosoi - 1.15.0-2 +- metrics - follow symlinks for the mssql and elasticsearch configuration paths + Resolves rhbz#2058655 (EL8) + Resolves rhbz#2058777 (EL9) + +* Thu Feb 24 2022 Rich Megginson - 1.15.0-1 +- firewall - ensure target changes take effect immediately + Resolves rhbz#2057172 (EL8) + Resolves rhbz#2057164 (EL9) +- firewall - Firewall RHEL System Role should be able to set default zone + Resolves rhbz#2022458 (EL8) + Resolves rhbz#2022461 (EL9) +- network - tests_802_1x_nm, tests_802_1x_updated_nm fails because of missing hostapd in EPEL + Resolves rhbz#2053862 (EL8) + Resolves rhbz#2053861 (EL9) + +* Mon Feb 21 2022 Rich Megginson - 1.14.0-1 +- ha_cluster - set permissions for haclient group + Resolves rhbz#2049747 (EL8) + Resolves rhbz#2049754 (EL9) +- network - Add more bonding options to rhel-system-roles.network + Resolves rhbz#2008931 (EL8) + Resolves rhbz#2054435 (EL9) +- certificate - should consistently use ansible_managed in hook scripts + Resolves rhbz#2054364 (EL8) + Resolves rhbz#2054368 (EL9) +- tlog - consistently use ansible_managed in configuration files managed by role + Resolves rhbz#2054363 (EL8) + Resolves rhbz#2054367 (EL9) +- vpn - consistently use ansible_managed in configuration files managed by role + Resolves rhbz#2054365 (EL8) + Resolves rhbz#2054369 (EL9) + +* Mon Feb 14 2022 Rich Megginson - 1.13.0-1 +- storage - RFE: Add support for RAID volumes (lvm-only) + Resolves rhbz#2016514 (EL8) + Resolves rhbz#2016518 (EL9) +- storage - RFE: Add support for cached volumes (lvm-only) + Resolves rhbz#2016511 (EL8) + Resolves rhbz#2016517 (EL9) +- metrics - metrics role can't be re-run if the Grafana admin password has been changed + Resolves rhbz#1967321 (EL8) + Resolves rhbz#2041632 (EL9) +- nbde_client - NBDE client system role does not support servers with static IP addresses + Resolves rhbz#1985022 (EL8) + Resolves rhbz#2031555 (EL9) +- ha_cluster - [RFE] ha_cluster - Support for creating resource constraints (Location, Ordering, etc.) + Resolves rhbz#2041635 (EL8) + Resolves rhbz#2041634 (EL9) +- firewall - ensure zone exists and can be used in subsequent operations + Resolves rhbz#2042541 (EL8) + Resolves rhbz#2024775 (EL9) +- network - RFE: Support Routing Tables in static routes in Network Role + Resolves rhbz#2031521 (EL8) + Resolves rhbz#2049798 (EL9) +- network - Failure to activate connection: nm-manager-error-quark: No suitable device found for this connection + Resolves rhbz#2034908 (EL8) + Resolves rhbz#2038957 (EL9) +- network - Set DNS search setting only for enabled IP protocols + Resolves rhbz#2041627 (EL8) + Resolves rhbz#2004899 (EL9) + +* Tue Feb 8 2022 Rich Megginson - 1.12.1-1 +- vpn - template error while templating string: no filter named 'vpn_ipaddr' + Resolves rhbz#2052103 (EL8) + Resolves rhbz#2050341 (EL9) +- kdump - Unable to start service kdump: Job for kdump.service failed because the control process exited with error code. + Resolves rhbz#2052105 (EL8) + Resolves rhbz#2050419 (EL9) +- remove collection dependencies on rhel because we vendor them in + +* Thu Feb 3 2022 Rich Megginson - 1.12.0-2 +- RHEL8.6, 9 - add "Requires: ansible-core or ansible" + Resolves rhbz#2012316 (EL8) + Resolves rhbz#2012298 (EL9) + +* Thu Jan 27 2022 Rich Megginson - 1.12.0-1 +- vpn - use custom vpn_ipaddr filter to make role work on RHEL 8.6 with ansible-core + this is covered by "make roles work with ansible-core on all platforms" BZ +- logging - Logging role "logging_purge_confs" option not properly working + Resolves rhbz#2040812 (EL8) + Resolves rhbz#2039106 (EL9) +- kernel_settings role should use ansible_managed in its configuration file + Resolves rhbz#2047504 (EL8) + Resolves rhbz#2047506 (EL9) + +* Thu Jan 20 2022 Fedora Release Engineering - 1.11.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Tue Dec 14 2021 Rich Megginson - 1.11.0-2 +- RHEL8.6, 9 - add "Requires: ansible-core or ansible" + +* Thu Dec 2 2021 Rich Megginson - 1.11.0-1 +- timesync - fix ansible 2.12 issues, service_facts issues + Resolves rhbz#2012316 (EL8) + Resolves rhbz#2012298 (EL9) +- timesync - Failure related to missing ntp/ntpd package/service on RHEL-9 host + Resolves rhbz#2029463 (EL9) +- logging - add test case for immark quoting issue + Resolves rhbz#2021678 (EL8) + Resolves rhbz#2021676 (EL9) +- cockpit - use existing cert - cockpit_cert, cockpit_private_key + Resolves rhbz#2021661 (EL8) + Resolves rhbz#2021028 (EL9) +- storage - fix ansible 2.12 issues, service_facts issues; workaround lvm, udev issues in tests + Resolves rhbz#2012316 (EL8) + Resolves rhbz#2012298 (EL9) +- ssh - tests_all_options.yml: "assertion": "'StdinNull yes' in config.content | b64decode ", failure + Resolves rhbz#2029614 (EL8) + Resolves rhbz#2029427 (EL9) +- kdump - support reboot required and reboot ok + Resolves rhbz#2029605 (EL8) + Resolves rhbz#2029602 (EL9) +- metrics - sync with latest ansible-pcp + Resolves rhbz#2012316 (EL8) + Resolves rhbz#2012298 (EL9) +- sshd - should detect FIPS mode and handle tasks correctly in FIPS mode + Resolves rhbz#1979714 (EL8) + Resolves rhbz#2029634 (EL9) + +* Mon Nov 8 2021 Rich Megginson - 1.10.0-1 +- add cockpit role + Resolves rhbz#2021661 (EL8) + Resolves rhbz#2021028 (EL9) +- add firewall role + Resolves rhbz#1854988 (EL8) + Resolves rhbz#2021665 (EL9) +- firewall - add ability to add-source + Resolves rhbz#1932678 (EL8) + Resolves rhbz#2021667 (EL9) +- firewall - allow user defined zones + Resolves rhbz#1850768 (EL8) + Resolves rhbz#2021669 (EL9) +- firewall - allow specifying the zone + Resolves rhbz#1850753 (EL8) + Resolves rhbz#2021670 (EL9) +- updates for ansible 2.12 support + Resolves rhbz#2012316 (EL8) + Resolves rhbz#2012298 (EL9) +- update community.general to 4.0.1 + Resolves rhbz#2006081 (EL8) + Resolves rhbz#2006076 (EL9) +- network - Allow to specify PCI address to configure profiles + Resolves rhbz#1695634 (EL8) + Resolves rhbz#1999162 (EL9) +- network - support wifi Enhanced Open (OWE) + Resolves rhbz#1993379 (EL8) + Resolves rhbz#1993377 (EL9) +- network - support WPA3 Simultaneous Authentication of Equals(SAE) + Resolves rhbz#1993311 (EL8) + Resolves rhbz#1993304 (EL9) +- network - RFE: Support ignoring default gateway retrieved by DHCP/IPv6-RA + Resolves rhbz#1897565 (EL8) + Resolves rhbz#1978773 (EL9) +- network - Update network system role to reflect that network teaming is deprecated in RHEL 9 + Resolves rhbz#1897565 (EL8) + Resolves rhbz#1999770 (EL9) +- selinux - fails linit rules role-name and unnamed-task + Resolves rhbz#1974000 (EL8) + Resolves rhbz#2021675 (EL9) +- kernel_settings - ansible_managed | comment BZs: + Resolves rhbz#2006230 (EL9) + Resolves rhbz#2006231 (EL8) + Resolves rhbz#2006233 (EL7) +- logging - logging role missing quotes for immark module interval value + Resolves rhbz#2021678 (EL8) + Resolves rhbz#2021676 (EL9) +- logging - Add user and password + Resolves rhbz#2010327 (EL8) + Resolves rhbz#1990490 (EL9) +- logging - Performance improvement + Resolves rhbz#2005727 (EL8) + Resolves rhbz#2004303 (EL9) +- nbde_client - add regenerate-all to the dracut command + Resolves rhbz#2021682 (EL8) + Resolves rhbz#2021681 (EL9) +- certificate - Fix certificate permissions with "group" option + Resolves rhbz#2021683 (EL8) + Resolves rhbz#2021025 (EL9) + +* Tue Oct 26 2021 Sergei Petrosian - 1.9.0-2 +- Change the PFSL license to Python because this is how PFSL is reffered to in + rpminspect-data packages in Fedora, CentOS, and RHEL + Related: rhbz#2006076 + +* Mon Oct 11 2021 Sergei Petrosian - 1.9.0-1 +- Support ansible-core and improve roles: + - selinux: Add support for Rocky Linux 8, fix ansible_distribution_major_version + - timesync: Support ansible-core, use ansible_managed | comment + - kdump: Support ansible-core, use ansible_managed | comment + - network: Support ansible-core; deprecate RHEL 9 in readme; validate that ipv6_disabled is conflicting with other settings; specify PCI address to configure profile - adds match and path settings) + - storage: Support ansible-core, add skip checks feature to speed up the tests + - logging: Support ansible-core, add the `uid` option for elasticsearch, improve performance, use ansible_manged | comment + Resolves: rhbz#1990490 (EL9) + - ssh: Use ansible_manged | comment + - sshd: Use ansible_managed | comment + - ha_cluster: Support ansible-core, fix password_hash salt length + - vpn: Support ansible-core, use wait_for_connection instead of wait_for with ssh + - ansible_managed | comment BZs: + Resolves: rhbz#2006230 (EL9) + Resolves: rhbz#2006231 (EL8) + Resolves: rhbz#2006233 (EL7) +- untar the collection tarballs and copy the files +- Add vendoring code for rhel / centos + - selinux: selinux, seboolean, seport, selogin, sefcontext + - storage: mount + - vpn: ipaddr + Resolves: rhbz#2006076 (EL9) + Resolves: rhbz#2006081 (EL8) + +* Thu Aug 26 2021 Rich Megginson - 1.8.3-2 +- selinux - tag tests_selinux_disabled.yml with tests::avc + Resolves rhbz#1996315 (EL9) + Resolves rhbz#1996317 (EL8) + +* Thu Aug 26 2021 Rich Megginson - 1.8.3-1 +- storage - revert the dm-vdo workaround fix for vdo testing + Resolves rhbz#1978488 (EL9) + Resolves rhbz#1991141 (EL8) + +* Tue Aug 24 2021 Rich Megginson - 1.8.2-1 +- logging - Update the certificates copy tasks + Resolves rhbz#1996777 (EL9) + Resolves rhbz#1994580 (EL8) + +* Mon Aug 16 2021 Rich Megginson - 1.8.1-1 +- metrics - the bpftrace role does not properly configure bpftrace agent + Resolves rhbz#1994180 (EL9) + Resolves rhbz#1993240 (EL8) + +* Thu Aug 12 2021 Rich Megginson - 1.8.0-1 +- drop support for Ansible 2.8 - min_ansible_version is now 2.9 + Resolves rhbz#1989197 (EL9) + Resolves rhbz#1989199 (EL8) +- sshd - fix rhel6 support - failed to validate: error:Missing Match criteria for all Bad Match condition + Resolves rhbz#1991598 (EL9) + Resolves rhbz#1990947 (EL8) + +* Tue Aug 10 2021 Rich Megginson - 1.7.6-1 +- storage - tests_create_lvmvdo_then_remove fails - Module dm-vdo not found + Resolves rhbz#1991141 (EL8) + Resolves rhbz#1991062 (EL9) +- storage - Get syntax errors in tests_lvm_errors.yml + Resolves rhbz#1990793 (EL8) + Resolves rhbz#1991142 (EL9) + +* Tue Aug 10 2021 Mohan Boddu - 1.7.5-2 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Fri Aug 06 2021 Rich Megginson - 1.7.5-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.7.4-1 +- metrics - Grafana dashboard not working after metrics role run unless services manually restarted + Resolves rhbz#1984150 (EL9) + Resolves rhbz#1978357 (EL8) + +* Tue Aug 03 2021 Rich Megginson - 1.7.3-1 +- storage - tag tests that use NVME and SCSI + Resolves rhbz#1989211 (EL9) + Resolves rhbz#1989638 (EL8) + +* Tue Aug 03 2021 Rich Megginson - 1.7.2-1 +- sshd - support for rhel9 managed hosts + Resolves rhbz#1989221 (EL9) + Resolves rhbz#1989638 (EL8) + +* Thu Jul 29 2021 Rich Megginson - 1.7.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.7.0-1 +- network - Skip tests on RHEL9 that use hostapd + Resolves rhbz#1945348 +- network - Fix the bond test on DHCP + Resolves rhbz#1918252 +- certificate, logging - Use 'tar' command instead of archive module + Resolves rhbz#1984182 (EL9) + Resolves rhbz#1987096 (EL8) +- kernel_settings - Disable bootloader testing on EL9 + Resolves rhbz#1944599 +- logging - Add a support for list value to server_host in the elasticsearch output + Resolves rhbz#1986460 (EL9) + Resolves rhbz#1986463 (EL8) +- 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 Rich Megginson - 1.6.1-1 +- Error: device becoming unmanaged and pytest not reproducible in tests_integration_pytest.yml + 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.6.0-1 +- ha_cluster - add pacemaker cluster properties configuration + Resolves rhbz#1982913 (EL8) + Resolves rhbz#1982906 (EL9) + +* Thu Jul 15 2021 Rich Megginson - 1.5.0-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#1980871 +- network - Test tests_bond_initscripts.yml failed to create interface + Resolves rhbz#1980870 + +* 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#1978726 +- ha_cluster - code cleanup + Resolves rhbz#1978731 +- Postfix RHEL system role README.md missing variables under the "Role Variables" section + Resolves rhbz#1978734 +- logging README.html examples are rendered incorrectly + Resolves rhbz#1978758 +- make postfix role idempotent - round 2 + Resolves rhbz#1978760 +- selinux task for semanage says Fedora in name but also runs on RHEL/CentOS 8 + Resolves rhbz#1978740 +- metrics role task to enable logging for targeted hosts not working + Resolves rhbz#1978746 +- network - Only show stderr_lines by default + Resolves rhbz#1978731 +- storage - LVMVDO support + Resolves rhbz#1978488 +- storage - fix several linter issues + Resolves rhbz#1978731 +- ssh - Fix variable precedence when invoked through roles + Resolves rhbz#1978745 +- ssh - Update configuration options list for OpenSSH 8.6 + Resolves rhbz#1978731 +- sshd - Fix variable precedence when invoked through roles + Resolves rhbz#1978745 +- sshd - Update configuration options list for OpenSSH 8.6 + Resolves rhbz#1978731 +- sshd - support for appending a snippet to configuration file + Resolves rhbz#1978752 +- timesync - add NTS support + Resolves rhbz#1978753 +- timesync - rebase to latest + Resolves rhbz#1978731 +- nbde_client - rebase to latest + Resolves rhbz#1978731 + +* 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. + Resolves rhbz#1970165 + +* Wed Jun 9 2021 Rich Megginson - 1.2.2-1 +- fix kdump tests_ssh for basic smoke test + Resolves rhbz#1957876 + +* 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 + +* Fri May 21 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 +- make postfix role idempotent + Resolves rhbz#1960375 +- use FQRN in postfix README + Resolves rhbz#1958963 +- use relayhost in postfix README + Resolves rhbz#1866544 +- use lazy unmount to fix umount: target is busy + Resolves rhbz#1945359 +- network - Add support for ETHTOOL Ring option + Resolves rhbz#1959649 +- storage: calltrace observed when set type: partition for storage_pools + Resolves rhbz#1854187 +- ha_cluster - cannot read preshared key in binary format + Resolves rhbz#1952620 + +* 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". + +* Tue Apr 6 2021 Pavel Cahyna - 1.0.1-1 +- Sync with RHEL version 1.0.1-1.el8 + 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 + Simplify doc tags in %%files, corrects a forgotten doc tag for ha_cluster + Suppress one ansible-lint warning in ha_cluster + Add patch for the inclusive language leftover on network-role README.md + +* Mon Feb 22 2021 Pavel Cahyna - 1.0.0-16 +- Sync with RHEL version 1.0.0-31 + Rebase certificate role to pick up a test fix + Rebase logging role to fix default private key path, + upstream PR #218 + Update collection doc transformation to match a modified text + and include the Tech Preview note again (for RHEL) + +* Fri Feb 19 2021 Pavel Cahyna - 1.0.0-15 +- Sync with RHEL version 1.0.0-29 + Added roles: ssh, ha_cluster + Updated roles: certificate, kernel_settings, nbde_client, + logging, network + Improvements to collection build and metadata +- Two further improvements from RHEL: + Corrected merge botch in files list - make ssh README a docfile + Dynamically update galaxy.yml with our metadata even on Fedora, + we can't rely on correct version number in auto-maintenance + +* Tue Feb 9 2021 Pavel Cahyna - 1.0.0-14 +- Synchronize with RHEL, new roles added: + storage, metrics, tlog, kernel_settings, logging, nbde_server, + nbde_client, certificate, crypto_policies, sshd, and the + fedora.linux_system_roles collection. + +* Tue Jan 26 2021 Fedora Release Engineering - 1.0-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Jul 28 2020 Fedora Release Engineering - 1.0-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jan 29 2020 Fedora Release Engineering - 1.0-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jul 25 2019 Fedora Release Engineering - 1.0-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Feb 01 2019 Fedora Release Engineering - 1.0-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Dec 05 2018 Till Maas - 1.0-8 +- Install roles at /usr/share/linux-system-roles, use symlinks in + /usr/share/ansible/roles/ to allow using alternatives + +* Wed Nov 14 2018 Mike DePaulo - 1.0-7 +- spec file improvement: Remove unnecessary %%doc for files under _pkgdocdor +- Install license files under /usr/share/licenses instead of /usr/share/doc + +* Tue Nov 06 2018 Mike DePaulo - 1.0-7 +- Fix rpm build for added example timesync example playbooks +- Misc spec file comments fixes +- Fix rpmlint error by escaping a previous changelog entry with a macro +- Comply with Fedora guidelines by always using "cp -p" in %%install +- Update %%description to be different for Fedora. + +* Wed Oct 24 2018 Pavel Cahyna - 1.0-7 +- Update to latest versions of selinux, kdump and timesync. +- Update to the latest revision of postfix, fixes README markup +- Add Obsoletes for the -techpreview subpackage introduced mistakenly in 1.0-1 +- spec file improvement: Unify the source macros with deftag() and defcommit() + +* Tue Oct 23 2018 Till Maas - 1.0-6 +- Update Network system role to latest commit to include Fedora 29 fixes +- Update example timesync example playbooks +- Add comments about upstream status + +* 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 +