Blob Blame History Raw
# NOTE: ansible-core is in rhel-8.6 and newer, but not installable
# in buildroot as it depended on modular Python.
# It has been installable at buildtime in 8.8 and newer.
%if 0%{?fedora}
BuildRequires: ansible-packaging
%else
%if 0%{?rhel} >= 8
BuildRequires: ansible-core >= 2.11.0
%endif
%endif

%bcond_with collection_artifact

%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.62.0
Release: 1%{?dist}

License: GPLv3+ and MIT and BSD and Python
%global _pkglicensedir %{_licensedir}/%{name}
%global roleinstprefix %{name}.
%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}
# this is where we stage the collection files for building
%global collection_dest_path .collections
%global collection_build_path %{collection_dest_path}/ansible_collections/%{collection_namespace}/%{collection_name}

# be compatible with the usual Fedora Provides:
Provides: ansible-collection-%{collection_namespace}-%{collection_name} = %{collection_version}-%{release}

# 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

# 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}}
}

%global mainid de0c8746052a421e9f264fd3b1ade3093a048b8a
Source: %{url}/auto-maintenance/archive/%{mainid}/auto-maintenance-%{mainid}.tar.gz

# BEGIN AUTOGENERATED SOURCES
%global rolename1 postfix
%deftag 1 1.4.1

%global rolename2 selinux
%deftag 2 1.7.1

%global rolename3 timesync
%deftag 3 1.8.0

%global rolename4 kdump
%deftag 4 1.4.2

%global rolename5 network
%deftag 5 1.14.1

%global rolename6 storage
%deftag 6 1.14.1

%global rolename7 metrics
%deftag 7 1.9.0

%global rolename8 tlog
%deftag 8 1.3.0

%global rolename9 kernel_settings
%deftag 9 1.2.0

%global rolename10 logging
%deftag 10 1.12.2

%global rolename11 nbde_server
%deftag 11 1.4.0

%global rolename12 nbde_client
%deftag 12 1.2.16

%global rolename13 certificate
%deftag 13 1.3.1

%global rolename14 crypto_policies
%deftag 14 1.3.0

%global forgeorg15 https://github.com/willshersystems
%global repo15 ansible-sshd
%global rolename15 sshd
%deftag 15 v0.23.0

%global rolename16 ssh
%deftag 16 1.3.0

%global rolename17 ha_cluster
%deftag 17 1.13.1

%global rolename18 vpn
%deftag 18 1.6.1

%global rolename19 firewall
%deftag 19 1.7.1

%global rolename20 cockpit
%deftag 20 1.5.0

%global rolename21 podman
%deftag 21 1.4.0

%global rolename22 ad_integration
%deftag 22 1.3.0

%global rolename23 rhc
%deftag 23 1.3.0

%global rolename24 journald
%deftag 24 1.1.0

%global rolename25 postgresql
%deftag 25 1.2.0

%global rolename26 systemd
%deftag 26 1.1.0

%global rolename27 keylime_server
%deftag 27 1.1.0

%global rolename28 fapolicyd
%deftag 28 1.0.0

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}
Source21: %{archiveurl21}
Source22: %{archiveurl22}
Source23: %{archiveurl23}
Source24: %{archiveurl24}
Source25: %{archiveurl25}
Source26: %{archiveurl26}
Source27: %{archiveurl27}
Source28: %{archiveurl28}
# END AUTOGENERATED SOURCES

# Includes with definitions/tags that differ between RHEL and Fedora
Source1001: extrasources.inc

%include %{SOURCE1001}

# Includes with ansible_collection_build/_install that differ between RHEL versions
Source1002: ansible-packaging.inc

%include %{SOURCE1002}

Source1003: vendoring-prep.inc
Source1004: vendoring-build.inc

Source995: CHANGELOG.md

BuildArch: noarch

# Requirements for galaxy_transform.py
BuildRequires: python3
BuildRequires: python%{python3_pkgversion}-ruamel-yaml
# Requirements for release_collection.py
BuildRequires: python3-setuptools

# We must 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

# Fix issue with package update introduce with changing symlink to directory
# in 1.21.1-5
%pretrans -p <lua>
roles = {
    "certificate", "cockpit", "crypto_policies", "firewall", "ha_cluster",
    "kdump", "kernel_settings", "logging", "metrics", "nbde_client",
    "nbde_server", "network", "postfix", "selinux", "ssh", "sshd", "storage",
    "timesync", "tlog", "vpn"
}
for i,v in ipairs(roles) do
    path = "/usr/share/ansible/roles/linux-system-roles." .. v
    st = posix.stat(path)
    if st and st.type == "link" then
      os.remove(path)
    end
end

%prep
# BEGIN AUTOGENERATED SETUP
%setup -q -a1 -a2 -a3 -a4 -a5 -a6 -a7 -a8 -a9 -a10 -a11 -a12 -a13 -a14 -a15 -a16 -a17 -a18 -a19 -a20 -a21 -a22 -a23 -a24 -a25 -a26 -a27 -a28 -n %{getarchivedir 0}
# END AUTOGENERATED SETUP

# vendoring prep steps, if any
%include %{SOURCE1003}

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}
    # Move a hidden .README.html to a not hidden README.html
    mv $rolename/.README.html $rolename/README.html
done

%if 0%{?rhel}
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 ../..
%endif

cd %{rolename15}
find -P tests examples -name \*.yml | while read file; do
  sed -r -i -e "s/willshersystems:ansible-sshd/system_role:sshd/" \
     -e "s/ansible-sshd/linux-system-roles.sshd/" \
     -e "s/ willshersystems.sshd/ linux-system-roles.sshd/" "$file"
done
sed -r -i -e "s/ willshersystems.sshd/ linux-system-roles.sshd/" README.md README.html
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 ..

# vendoring build steps, if any
%include %{SOURCE1004}

# 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

# fix system_roles fingerprint in "external" roles
python3 lsr_fingerprint.py

# 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
# remove upstream-only documentation - for example, documentation
# about collection dependencies is not needed in Fedora and EL RPMs
# since the dependencies are already provided
sed -e '/# Requirements/,/^#/s/^See below$/None/' \
    -e '/# Collection requirements/,/^#/ {/# Collection requirements/d;/^#/!d}' \
    -i */README.md
sed -e '/id="requirements">Requirements<\/h/,/^<h/s/See below/None/' \
    -e '/id="collection-requirements">/,/^<h/ {/id="collection-requirements">/d;/^<h/!d}' \
    -i */README.html

for role in %{rolenames}; do
    # awk: Remove collection-requirements from README.html TOC
    # 1. If match found, add the line and -2,+1 lines' line number in an array "d".
    # 2. Save all lines in an array with line number as index
    # 3. Print only those index not in array "d"
    awk '/id="toc-collection-requirements">/{for(x=NR-2;x<=NR+1;x++)d[x];} \
        {a[NR]=$0} \
        END{for(i=1;i<=NR;i++)if(!(i in d))print a[i]}' \
        $role/README.html > $role/README.html.tmp
    mv $role/README.html.tmp $role/README.html
done

# sshd README is not in the same format
sed -e '/# Optional requirements/,/# Role variables/ {/# Optional/d;/# Role variables/!d}' \
    -i sshd/README.md
sed -e '/id="optional-requirements">/,/^<h/ {/id="optional-requirements">/d;/^<h/!d}' \
    -i sshd/README.html
# Remove optional-requirements from README.html TOC
awk '/id="toc-optional-requirements">/{for(x=NR-2;x<=NR+1;x++)d[x];} \
    {a[NR]=$0} \
    END{for(i=1;i<=NR;i++)if(!(i in d))print a[i]}' \
    sshd/README.html > sshd/README.html.tml
mv sshd/README.html.tml sshd/README.html

matchstr="actions/workflows/"
for role in %{rolenames}; do
    # in the first 14 lines of README.md, remove any line that looks like a
    # github action badge. README.html doesn't have these lines.
    sed -e "1,14 {\\,${matchstr},d; /\!\[/d}" -i $role/README.md
done

if [ ! -d %{collection_dest_path} ]; then
  mkdir %{collection_dest_path}
fi
%if 0%{?rhel}
# Convert the upstream collection readme to the downstream one
%{SOURCE998} lsr_role2collection/collection_readme.md
%{python3} ./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://issues.redhat.com/secure/CreateIssueDetails!init.jspa?pid=12332745&summary=Your%20request%20summary&issuetype=1&priority=10200&labels=Partner-Feature-Request&components=12380283" \
                      > 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" "$role/meta/collection-requirements.yml" \
      "$role/tests/collection-requirements.yml"
%endif
done

# do not process changelogs on RHEL
%if 0%{?rhel}
extra_mapping="--extra-mapping fedora.linux_system_roles:%{collection_namespace}.%{collection_name}"
%else
extra_mapping=""
%endif
LANG=C.utf-8 LC_ALL=C.utf-8 %{python3} release_collection.py --galaxy-yml galaxy.yml \
    --src-path $(pwd) --dest-path $(pwd)/%{collection_dest_path} $includes --keep --no-update \
    --src-owner %{name} --skip-git --skip-check --skip-changelog $extra_mapping --debug

# 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' \
    %{collection_build_path}/roles/$role/README.md
done

# Remove test only collection dependencies
# NOTE: These should not be in meta/collection-requirements.yml, they should be
# in tests/collection-requirements.yml, but they can't be moved yet
sed -i -e '/community[.]mysql:/d' -e '/community[.]postgresql:/d' \
  %{collection_build_path}/galaxy.yml

cp %{SOURCE995} \
    %{collection_build_path}/docs/CHANGELOG.md
%if 0%{?rhel}
cp %{SOURCE996} \
    %{collection_build_path}/CHANGELOG.rst
%endif

# Build the collection
pushd %{collection_build_path}
%ansible_collection_build
popd

%install
mkdir -p %{buildroot}%{ansible_roles_dir}

for role in %{rolenames}; do
    cp -pR "$role" "%{buildroot}%{ansible_roles_dir}/%{roleinstprefix}$role"
done

%if 0%{?rhel}
# Create symlinks for roles in /usr/share/ansible/roles/linux-system-roles.$rolename
# That's required to make roles work with upstream naming too
for role in %{rolenames}; do
    ln -s "%{name}.$role" "%{buildroot}%{ansible_roles_dir}/linux-system-roles.$role"
done
%endif

mkdir -p %{buildroot}%{_pkglicensedir}
rm %{buildroot}%{ansible_roles_dir}/%{roleinstprefix}network/examples/roles
for role in %{rolenames}; do
    mkdir -p "%{buildroot}%{_pkgdocdir}/$role"
    ln -sr "%{buildroot}%{ansible_roles_dir}/%{roleinstprefix}$role/CHANGELOG.md" \
       "%{buildroot}%{_pkgdocdir}/$role"
    ln -sr "%{buildroot}%{ansible_roles_dir}/%{roleinstprefix}$role/README.md" \
       "%{buildroot}%{_pkgdocdir}/$role"
    ln -sr "%{buildroot}%{ansible_roles_dir}/%{roleinstprefix}$role/README.html" \
       "%{buildroot}%{_pkgdocdir}/$role"
    if [ -f "%{buildroot}%{ansible_roles_dir}/%{roleinstprefix}$role/COPYING" ]; then
        ln -sr "%{buildroot}%{ansible_roles_dir}/%{roleinstprefix}$role/COPYING" \
           "%{buildroot}%{_pkglicensedir}/$role.COPYING"
    fi
    if [ -f "%{buildroot}%{ansible_roles_dir}/%{roleinstprefix}$role/LICENSE" ]; then
        ln -sr "%{buildroot}%{ansible_roles_dir}/%{roleinstprefix}$role/LICENSE" \
           "%{buildroot}%{_pkglicensedir}/$role.LICENSE"
    fi
    if [ -d "%{buildroot}%{ansible_roles_dir}/%{roleinstprefix}$role/examples" ]; then
        for file in "%{buildroot}%{ansible_roles_dir}/%{roleinstprefix}$role/examples/"* ; do
            if [[ "$file" == *.yml ]]; then
                basename=$(basename "$file" .yml)
                newname="$basename"
                if [[ "$newname" != example-* ]]; then
                    newname="example-$newname"
                fi
                if [[ "$newname" != *-playbook ]]; then
                    newname="${newname}-playbook"
                fi
                cp "$file" "%{buildroot}%{_pkgdocdir}/$role/${newname}.yml"
            else
                cp "$file" "%{buildroot}%{_pkgdocdir}/$role"
            fi
            rm "$file"
        done
        if [ -f "%{buildroot}%{ansible_roles_dir}/%{roleinstprefix}$role/examples/inventory" ]; then
            cp "%{buildroot}%{ansible_roles_dir}/%{roleinstprefix}$role/examples/inventory" \
               "%{buildroot}%{_pkgdocdir}/$role/example-inventory"
            rm "%{buildroot}%{ansible_roles_dir}/%{roleinstprefix}$role/examples/inventory"
        fi
        # special case for network
        # this will error if the directory is unexpectedly empty
        rmdir "%{buildroot}%{ansible_roles_dir}/%{roleinstprefix}$role/examples"
    fi
done

rm -f %{buildroot}%{ansible_roles_dir}/%{roleinstprefix}*/semaphore
rm -r %{buildroot}%{ansible_roles_dir}/%{roleinstprefix}*/molecule

# remove .dot files/directories, but keep the .ostree directory
for item in %{buildroot}%{ansible_roles_dir}/%{roleinstprefix}*/.[A-Za-z]*; do
    if [ "$(basename "$item")" = .ostree ]; then
        continue
    fi
    rm -r "$item"
done
rm %{buildroot}%{ansible_roles_dir}/%{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

# Install the collection
pushd %{collection_build_path}
%ansible_collection_install
popd

mkdir -p %{buildroot}%{_pkgdocdir}/collection
mkdir -p %{buildroot}%{_pkgdocdir}/collection/roles

ln -sr %{buildroot}%{ansible_collection_files}%{collection_name}/README.md \
   %{buildroot}%{_pkgdocdir}/collection

for rolename in %{rolenames}; do
  for file in CHANGELOG.md README.md README.html; do
    if [ -f %{buildroot}%{ansible_collection_files}%{collection_name}/roles/${rolename}/$file ]; then
      if [ ! -d %{buildroot}%{_pkgdocdir}/collection/roles/${rolename} ]; then
        mkdir -p %{buildroot}%{_pkgdocdir}/collection/roles/${rolename}
      fi
      ln -sr %{buildroot}%{ansible_collection_files}%{collection_name}/roles/${rolename}/$file \
        %{buildroot}%{_pkgdocdir}/collection/roles/${rolename}
    fi
  done
done

%if %{with collection_artifact}
# Copy collection artifact to /usr/share/ansible/collections/ for collection-artifact
pushd %{collection_build_path}
    mv %{collection_namespace}-%{collection_name}-%{version}.tar.gz \
       %{buildroot}%{_datadir}/ansible/collections/
popd
%endif

# Generate the %%files section in files_section.txt
# Bulk files inclusion is not possible because roles store doc and licence
# files together with other files
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" # full path including buildroot
    files_item=${item##"%{buildroot}"} # path with cut buildroot to be added to %%files
    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 ]] || [[ "$item" == */CHANGELOG.md ]]; 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
        echo "%""%""license" "$files_item"
    else
        echo "$files_item"
    fi
}

files_section=files_section.txt
rm -f $files_section
touch $files_section
# Dynamically generate files section entries for %%{ansible_collection_files}
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

# Dynamically generate files section entries for %%{ansible_roles_dir}
find %{buildroot}%{ansible_roles_dir} -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

%files -f files_section.txt
%dir %{_datadir}/ansible
%dir %{ansible_roles_dir}
%dir %{ansible_collection_files}
%dir %{ansible_collection_files}%{collection_name}
%doc %{_pkgdocdir}
%license %{_pkglicensedir}

%if 0%{?rhel} && 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 %{ansible_roles_dir}/*/*.py?
%exclude %{ansible_roles_dir}/*/*/*.py?
%exclude %{ansible_roles_dir}/*/*/*/*.py?
%exclude %{ansible_roles_dir}/*/*/*/*/*.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 Dec  5 2023 Packit <hello@packit.dev> - 1.62.0-1
- Update to upstream version 1.62.0

* Sat Dec  2 2023 Packit <hello@packit.dev> - 1.61.1-1
- Update to upstream version 1.61.1

* Fri Dec  1 2023 Packit <hello@packit.dev> - 1.61.0-1
- Update to upstream version 1.61.0

* Thu Nov  30 2023 Packit <hello@packit.dev> - 1.60.0-1
- Update to upstream version 1.60.0

* Mon Nov  27 2023 Packit <hello@packit.dev> - 1.59.0-1
- Update to upstream version 1.59.0

* Thu Nov  23 2023 Packit <hello@packit.dev> - 1.58.1-1
- Update to upstream version 1.58.1

* Fri Nov  10 2023 Packit <hello@packit.dev> - 1.58.0-1
- Update to upstream version 1.58.0

* Thu Nov  9 2023 Packit <hello@packit.dev> - 1.57.2-1
- Update to upstream version 1.57.2

* Wed Nov  8 2023 Rich Megginson <rmeggins@redhat.com> - 1.57.1-2
- keep .ostree directory

* Wed Nov  8 2023 Packit <hello@packit.dev> - 1.57.1-1
- Update to upstream version 1.57.1

* Wed Oct  25 2023 Packit <hello@packit.dev> - 1.55.1-1
- Update to upstream version 1.55.1

* Tue Oct  24 2023 Packit <hello@packit.dev> - 1.55.0-1
- Update to upstream version 1.55.0

* Wed Sep  27 2023 Packit <hello@packit.dev> - 1.54.2-1
- Update to upstream version 1.54.2

* Wed Sep  20 2023 Packit <hello@packit.dev> - 1.54.1-1
- Update to upstream version 1.54.1

* Fri Sep 15 2023 Sergei Petrosian <spetrosi@redhat.com> - 1.54.0-2
- Remove with_html, instead use built-in .README.html

* Thu Sep  14 2023 Packit <hello@packit.dev> - 1.54.0-1
- Update to upstream version 1.54.0

* Wed Sep  13 2023 Packit <hello@packit.dev> - 1.53.7-1
- Update to upstream version 1.53.7

* Tue Sep  12 2023 Packit <hello@packit.dev> - 1.53.6-1
- Update to upstream version 1.53.6

* Sat Sep  9 2023 Packit <hello@packit.dev> - 1.53.5-1
- Update to upstream version 1.53.5

* Tue Aug  22 2023 Packit <hello@packit.dev> - 1.53.4-1
- Update to upstream version 1.53.4

* Fri Aug  18 2023 Packit <hello@packit.dev> - 1.53.3-1
- Update to upstream version 1.53.3

* Wed Aug  16 2023 Packit <hello@packit.dev> - 1.53.1-1
- Update to upstream version 1.53.1

* Mon Aug  14 2023 Rich Megginson <rmeggins@redhat.com> - 1.53.0-2
- Remove collection requirements from sshd README

* Sat Aug  12 2023 Packit <hello@packit.dev> - 1.53.0-1
- Update to upstream version 1.53.0

* Fri Aug  11 2023 Packit <hello@packit.dev> - 1.52.2-1
- Update to upstream version 1.52.2

* Thu Aug  10 2023 Packit <hello@packit.dev> - 1.52.1-1
- Update to upstream version 1.52.1

* Thu Aug  3 2023 Packit <hello@packit.dev> - 1.51.2-1
- Update to upstream version 1.51.2

* Tue Aug  1 2023 Packit <hello@packit.dev> - 1.51.0-1
- Update to upstream version 1.51.0

* Mon Jul  31 2023 Packit <hello@packit.dev> - 1.50.1-1
- Update to upstream version 1.50.1

* Fri Jul  28 2023 Packit <hello@packit.dev> - 1.50.0-1
- Update to upstream version 1.50.0

* Thu Jul  27 2023 Packit <hello@packit.dev> - 1.49.1-1
- Update to upstream version 1.49.1

* Sat Jul  22 2023 Packit <hello@packit.dev> - 1.48.1-1
- Update to upstream version 1.48.1

* Thu Jul  20 2023 Packit <hello@packit.dev> - 1.47.0-1
- Update to upstream version 1.47.0

* Tue Jul  11 2023 Packit <hello@packit.dev> - 1.46.0-1
- Update to upstream version 1.46.0

* Sun Jul  9 2023 Packit <hello@packit.dev> - 1.45.1-1
- Update to upstream version 1.45.1

* Sat Jul  8 2023 Packit <hello@packit.dev> - 1.45.0-1
- Update to upstream version 1.45.0

* Fri Jun  23 2023 Packit <hello@packit.dev> - 1.44.0-1
- Update to upstream version 1.44.0

* Fri Jun  23 2023 Packit <hello@packit.dev> - 1.43.0-1
- Update to upstream version 1.43.0

* Thu Jun  22 2023 Packit <hello@packit.dev> - 1.42.2-1
- Update to upstream version 1.42.2

* Wed Jun  21 2023 Packit <hello@packit.dev> - 1.42.1-1
- Update to upstream version 1.42.1

* Fri Jun  9 2023 Packit <hello@packit.dev> - 1.41.1-1
- Update to upstream version 1.41.1

* Wed Jun  7 2023 Packit <hello@packit.dev> - 1.41.0-1
- Update to upstream version 1.41.0

* Wed May  31 2023 Packit <hello@packit.dev> - 1.40.0-1
- Update to upstream version 1.40.0

* Sun May  28 2023 Packit <hello@packit.dev> - 1.39.0-1
- Update to upstream version 1.39.0

* Sat May  27 2023 Packit <hello@packit.dev> - 1.38.3-1
- Update to upstream version 1.38.3

* Wed May  24 2023 Packit <hello@packit.dev> - 1.38.2-1
- Update to upstream version 1.38.2

* Tue May 16 2023 Rich Megginson <rmeggins@redhat.com> - 1.38.0-5
- remove upstream only docs from README.md files

* Tue May 16 2023 Rich Megginson <rmeggins@redhat.com> - 1.38.0-4
- python3-setuptools is now required for release_collection.py
- fix ruamel issue described at https://github.com/linux-system-roles/auto-maintenance/pull/272

* Tue May  2 2023 Rich Megginson <rmeggins@redhat.com> - 1.38.0-3
- move vendoring code into included files

* Tue May  2 2023 Rich Megginson <rmeggins@redhat.com> - 1.38.0-2
- ha_cluster - vendor in modprobe module

* Sat Apr 29 2023 Packit <hello@packit.dev> - 1.38.0-1
- Update to upstream version 1.38.0

* Fri Apr 28 2023 Rich Megginson <rmeggins@redhat.com> - 1.37.0-2
- We need to change the sshd fingerprint string before doing any other `sed` changes.
- Ensure the sshd meta version numbers are quoted.

* Fri Apr 28 2023 Packit <hello@packit.dev> - 1.37.0-1
- Update to upstream version 1.37.0

* Mon Apr 17 2023 Rich Megginson <rmeggins@redhat.com> - 1.36.3-2
- strip github action badge links from headers of README.md files
  before conversion to HTML - some of the converters do not like them
- use %%{python3} instead of python3 to force use of system python3 in
  order to use ruamel

* Sat Apr 15 2023 Packit <hello@packit.dev> - 1.36.3-1
- Update to upstream version 1.36.3

* Tue Apr 11 2023 Rich Megginson <rmeggins@redhat.com> - 1.36.0-2
- remove doc fragments from vendored modules

* Fri Apr 07 2023 Rich Megginson <rmeggins@redhat.com> - 1.36.0-1
- update to upstream version 1.36.0
- fix handling of postgresql examples

* Tue Apr 04 2023 Rich Megginson <rmeggins@redhat.com> - 1.35.1-3
- use lsr_fingerprint.py to change fingerprints in sshd and metrics ansible-pcp

* Mon Mar 13 2023 Noriko Hosoi <nhosoi@redhat.com> - 1.35.1-2
- Eliminate with/without ansible condition since ansible-core is available on Fedora's.
- Eliminate rhel specific ansible-packaging contents.
- Introduce ansible-packaging.inc to maintain the compatibility.
  Thus, for fedora's, have empty ansible-packaging.inc in the branch.

* Tue Feb 21 2023 Packit <hello@packit.dev> - 1.35.1-1
- Update to upstream version 1.35.1

* Thu Feb 16 2023 Rich Megginson <rmeggins@redhat.com> - 1.35.0-2
- EL - vendor in Ansible modules needed for rhc role

* Thu Feb 16 2023 Packit <hello@packit.dev> - 1.35.0-1
- Update to upstream version 1.35.0

* Fri Feb 10 2023 Packit <hello@packit.dev> - 1.34.5-1
- Update to upstream version 1.34.5

* Thu Feb 09 2023 Packit <hello@packit.dev> - 1.34.4-1
- Update to upstream version 1.34.4

* Sat Feb 04 2023 Packit <hello@packit.dev> - 1.34.3-1
- Update to upstream version 1.34.3

* Fri Feb 03 2023 Packit <hello@packit.dev> - 1.34.2-1
- Update to upstream version 1.34.2

* Thu Feb 02 2023 Packit <hello@packit.dev> - 1.34.1-1
- Update to upstream version 1.34.1

* Sat Jan 28 2023 Packit <hello@packit.dev> - 1.34.0-1
- Update to upstream version 1.34.0

* Fri Jan 27 2023 Packit <hello@packit.dev> - 1.33.12-1
- Update to upstream version 1.33.12

* Thu Jan 26 2023 Rich Megginson <rmeggins@redhat.com> - 1.33.11-2
- remove network patch

* Thu Jan 26 2023 Packit <hello@packit.dev> - 1.33.11-1
- Update to upstream version 1.33.11

* Wed Jan 25 2023 Packit <hello@packit.dev> - 1.33.10-1
- Update to upstream version 1.33.10

* Tue Jan 24 2023 Packit <hello@packit.dev> - 1.33.9-1
- Update to upstream version 1.33.9

* Tue Jan 24 2023 Rich Megginson <rmeggins@redhat.com> - 1.33.3-3
- remove test only dependencies from galaxy.yml
- Resolves:rhbz#2163841

* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org>
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild

* Tue Jan 17 2023 Packit <hello@packit.dev> - 1.33.3-1
- Update to upstream version 1.33.3

* Mon Jan 16 2023 Rich Megginson <rmeggins@redhat.com> - 1.22.0-6
- Sync changes from EL spec file
- remove unnecessary comments
- add some conditional execution for rhel tests
- add support for community.general replacement for rhel

* Fri Nov 11 2022 Rich Megginson <rmeggins@redhat.com> - 1.22.0-5
- use latest release_collection.py which generates .ansible-lint, .yamllint.yml
  to suppress line length warnings about collection
- support tests/collection-requirements.yml on EL by removing it

* Tue Nov 08 2022 Sergei Petrosian <spetrosi@redhat.com> - 1.22.0-4
- Fix issue with package update introduce with changing symlink to directory
  Resolves:rhbz#2141152
  Added pretrans scriptlet to deal with conversion of symlink to directory

* Tue Nov 08 2022 Rich Megginson <rmeggins@redhat.com> - 1.22.0-3
- remove unneeded network patch

* Tue Nov 08 2022 Sergei Petrosian <spetrosi@redhat.com> - 1.22.0-2
- fix https://bugzilla.redhat.com/show_bug.cgi?id=2141152
  Resolves:rhbz#2141152
  Added pretrans scriptlet to deal with conversion of symlink to directory

* Thu Nov 03 2022 Rich Megginson <rmeggins@redhat.com> - 1.22.0-1
- ad_integration - new role
- cockpit - use the firewall, selinux, certificate roles
- ha_cluster - use the firewall, selinux, certificate roles
- ha_cluster - fix decoding Vault variables
- ha_cluster - support configuring qnetd, qdevice
- ha_cluster - fix sbd config file template
- logging - use the firewall, selinux, certificate roles
- metrics - use the firewall, selinux roles
- metrics - support Grafana v9
- nbde_client - Add default clevis luks askpass unit
- nbde_client - correct clevis askpass unit conditional
- nbde_client - use no_log: true where secrets might be revealed
- nbde_server - add support for custom ports
- nbde_server - use the firewall, selinux roles
- network - Support looking up named route table in routing rule
- network - bond: improve the validation for setting peer_notif_delay
- network - bond: test arp_all_targets only when arp_interval is enabled
- network - bond: attach ports when creating the bonding connection
- network - Support 'route_metric4' for initscripts provider
- network - use rpm -i instead of yum install for epel7
- network - Support the DNS priority
- podman - new role
- postfix - use the firewall, selinux roles
- selinux - add 'local' parameter to seport
- ssh - add RSAMinSize, RequiredRSASize
- ssh - cast Jinja variables to correct type
- sshd - add RSAMinSize, RequiredRSASize
- sshd - Adding support for OpenWrt 21.03
- sshd - Moves internal non-overridable variables out of defaults
- sshd - cast Jinja variables to correct type
- storage - Fixed calculation of relative thinp sizes
- storage - Fixed size and percentage handling for thin pools
- timesync - cast Jinja variables to correct type
- timesync - Update timestamping checks using ethtool
- vpn - Check for /usr/bin/openssl on controller - do not use package_facts
- vpn - Add support for the parameters shared_key_content, leftid, rightid, ike,
        esp, type, ikelifetime, salifetime, retransmit_timeout, dpddelay, dpdtimeout,
        dpdaction, leftupdown
- vpn - use the firewall, selinux roles

* Wed Nov 02 2022 Sergei Petrosian <spetrosi@redhat.com> - 1.21.1-5
- Simplify spec file and remove unused code
  - Remove unused and redundant macros
  - Replace ansible_collection_build_install with separate _build _install
    It is required to build in the %%build stage and install in the %%install
    for proper RPM build process
  - 's|$RPM_BUILD_ROOT|%%{buildroot}|g' for consistency
  - Set BuildRequires: ansible-packaging on Fedora
  - Define BuildRequires and bcond_with_ansible separately for clarity
  - Remove %%_sourcedir for best practicies
    https://fedoraproject.org/wiki/Packaging:RPM_Source_Dir
  - Resolve rpmlint issues
    mixed-use-of-spaces-and-tabs
    macro-in-comment
  - Replace installbase with ansible_roles_dir
  - Create symlinks for upstream naming on RHEL
  - Define ansible_roles_dir the same way as ansible_collection_files
  - Remove workaround for EPEL because we can build coll artifact from RHEL9
  - Define helper macros on RHEL only
  - Fedora must fail if macros provided by ansible-packager are not available
  - Define whole %%{_pkglicensedir} and %%{_pkgdocdir} dirs in %%files
  - Refactor generating files section
  - Do not conditionalize sources, get vendored collections from galaxy
  - Replace files copies in _pkgdocdir and _pkglicensedir with symlinks
  - Remove old Obsoletes entry from 2018
    The -techpreview package got only into RHEL 7 Extras briefly. The change
    happened in RHEL 8 before GA, so there is no risk of anybody having the
    -techpreview subpackage in RHEL 8.
  - Define python3-ruamel-yaml requirement in one line
  - Add bundled Provides
  - Fix processing %%license in format_item_for_files on EL7
  Resolves: rhbz#2126902

* Tue Nov 01 2022 Sergei Petrosian <spetrosi@redhat.com> - 1.21.1-4
- Update community.general

* Thu Sep 15 2022 Sergei Petrosian <spetrosi@redhat.com> - 1.21.1-3
- Update community.general

* Thu Sep 01 2022 Sergei Petrosian <spetrosi@redhat.com> - 1.21.1-2
- Update community.general

* Fri Aug 05 2022 Rich Megginson <rmeggins@redhat.com> - 1.21.1-1
- ensure CHANGELOG.md files are marked as doc
- network - network_state: improve state comparison for achieving idempotency
- network - argument_validator: fix IPRouteUtils.get_route_tables_mapping() for whitespace

* Thu Jul 28 2022 Rich Megginson <rmeggins@redhat.com> - 1.21.0-1
- cockpit - Add customization of port
- firewall - add/delete/update services
- firewall - port_forward can be string or dict
- firewall - support for firewall_config - gather firewall facts
- firewall - add/remove interfaces by PCI ID
- kernel_settings - Set the kernel_settings_reboot_required when reboot needed
- logging - Support startmsg.regex and endmsg.regex in the files inputs
- metrics - docs - make minimum redis and grafana versions more clear
- metrics - restart the pmie, pmlogger services if the configuration tasks made any changes
- nbde_client - Sets proper spacing for parameter rd.neednet=1 so that it is correctly
  appended to kernel cmdline, changes = to += for adding rd.neednet parameter
- network - support nmstate configuration - network_state parameter
- selinux - Added setting of seuser and selevel for completeness
- sshd, ssh - add support for RSAMinSize config parameter
- storage - Add support for managing pool members - for LVM pools
- storage - Add support for attaching LVM cache to existing LVs
- storage - remove warning 'storage_test_pool' is already in use
- storage - LVM thin provisioning support

* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.20.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild

* Fri Jul 15 2022 Sergei Petrosian <spetrosi@redhat.com> - 1.20.2-3
- Update community.general

* Fri Jul 01 2022 Sergei Petrosian <spetrosi@redhat.com> - 1.20.2-2
- Update community.general

* Wed Jun 15 2022 Rich Megginson <rmeggins@redhat.com> - 1.20.2-1
- sshd supports ansible 2.9

* Wed Jun 15 2022 Sergei Petrosian <spetrosi@redhat.com> - 1.20.1-2
- Update community.general

* Mon Jun 13 2022 Rich Megginson <rmeggins@redhat.com> - 1.20.1-1
- storage - fix coverity scan issue in blivet.py
  Resolves: rhbz#2066876 (8.7.0)
  Resolves: rhbz#2072745 (9.1.0)

- logging - fix gather_facts/set_vars issue
  Resolves: rhbz#2079008 (8.7.0)
  Resolves: rhbz#2078989 (9.1.0)

- ha_cluster - Move tasks that set up CI environment to roles tasks/ dir
  Resolves: rhbz#2093500 (8.7.0)
  Resolves: rhbz#2093438 (9.1.0)

- sshd - fix tests issue with rhel9 hosts

* Mon Jun 06 2022 Rich Megginson <rmeggins@redhat.com> - 1.20.0-1
- storage - support for creating and managing LVM thin pools/LVs
  Resolves: rhbz#2066876 (8.7.0)
  Resolves: rhbz#2072745 (9.1.0)

- firewall - Update Ansible syntax in Firewall system role README.md file examples
  Resolves: rhbz#2081839 (8.7.0)
  Resolves: rhbz#2094096 (9.1.0)

- storage role raid_level "striped" is not supported
  Resolves: rhbz#2083426 (8.7.0)
  Resolves: rhbz#2083410 (9.1.0)

- network: the controller device is not completely cleaned up in the bond tests.
  Resolves: rhbz#2089868 (8.7.0)
  Resolves: rhbz#2089872 (9.1.0)

- firewall - state no longer required for masquerade and ICMP block inversion
  Resolves: rhbz#2093437 (8.7.0)
  Resolves: rhbz#2093423 (9.1.0)

- ha_cluster - Move tasks that set up CI environment to roles tasks/ dir
  Resolves: rhbz#2093500 (8.7.0)
  Resolves: rhbz#2093438 (9.1.0)

* Wed Jun 01 2022 Sergei Petrosian <spetrosi@redhat.com> - 1.19.0-2
- Update ansible.posix, community.general

* Wed May 25 2022 Rich Megginson <rmeggins@redhat.com> - 1.19.0-1
- network - Rework the infiniband support
  Resolves: rhbz#2086869 (8.7.0)
  Resolves: rhbz#2086965 (9.1.0)

* Wed May 18 2022 Rich Megginson <rmeggins@redhat.com> - 1.18.1-2
- sshd - recurse into tests and examples sub-directories when replacing string in files
  the sshd role latest version added sub-directories under tests that need
  role name replacement - so just use find

* Mon May 16 2022 Rich Megginson <rmeggins@redhat.com> - 1.18.1-1
- sshd - sshd system role should not assume that RHEL 9 /etc/ssh/sshd_config has "Include > /etc/ssh/sshd_config.d/*.conf"
  Resolves: rhbz#2086934 (8.7.0)
  Resolves: rhbz#2052081 (9.1.0)

- sshd - sshd system role should be able to optionally manage /etc/ssh/sshd_config on RHEL 9
  Resolves: rhbz#2086935 (8.7.0)
  Resolves: rhbz#2052086 (9.1.0)

- storage - storage role cannot set mount_options for volumes
  Resolves: rhbz#2083378 (8.7.0)
  Resolves: rhbz#2083376 (9.1.0)

* Mon May 02 2022 Rich Megginson <rmeggins@redhat.com> - 1.18.0-1
- metrics - [RFE] add an option to the metrics role to enable postfix metric collection
  Resolves: rhbz#2043009 (8.7.0)
  Resolves: rhbz#2043010 (9.1.0)

- firewall - [Improvement] Allow System Role to reset to default Firewalld Settings
  Resolves: rhbz#2043009 (8.7.0)
  Resolves: rhbz#2061511 (9.1.0)

* Mon Apr 25 2022 Rich Megginson <rmeggins@redhat.com> - 1.17.0-1
- All roles should support running with gather_facts: false
  Resolves: rhbz#2079008 (8.7.0)
  Resolves: rhbz#2078989 (9.1.0)

- firewall - Firewall system role Ansible deprecation warning related to "include"
  Resolves: rhbz#2078650 (8.7.0)
  Resolves: rhbz#2061511 (9.1.0)

- ha_cluster - ha_cluster - support advanced corosync configuration
  Resolves: rhbz#2065339 (8.7.0)
  Resolves: rhbz#2065337 (9.1.0)

- ha_cluster - ha_cluster - support SBD fencing
  Resolves: rhbz#2066868 (8.7.0)
  Resolves: rhbz#2079626 (9.1.0)

- ha_cluster - ha_cluster - add support for configuring bundle resources
  Resolves: rhbz#2073518 (8.7.0)
  Resolves: rhbz#2073519 (9.1.0)

- kernel_settings - kernel_settings error configobj not found on RHEL 8.6 managed hosts
  Resolves: rhbz#2060378 (8.7.0)
  Resolves: rhbz#2060525 (9.1.0)

- logging - logging tests fail during cleanup if no cloud-init on system
  Resolves: rhbz#2058807 (8.7.0)
  Resolves: rhbz#2058799 (9.1.0)

- logging - Logging - RFE - support template, severity and facility options
  Resolves: rhbz#2075116 (8.7.0)
  Resolves: rhbz#2075119 (9.1.0)

- metrics - Metrics role, with "metrics_from_mssql" option does not configure /var/lib/pcp/pmdas/mssql/mssql.conf on first run
  Resolves: rhbz#2060377 (8.7.0)
  Resolves: rhbz#2060523 (9.1.0)

- metrics - metrics - consistently use ansible_managed in configuration files managed by role
  Resolves: rhbz#2065215 (8.7.0)
  Resolves: rhbz#2065392 (9.1.0)

- metrics - [RFE] add an option to the metrics role to enable postfix metric collection
  Resolves: rhbz#2079114 (8.7.0)
  Resolves: rhbz#2051737 (9.1.0)

- nbde_client - NBDE client system role does not support servers with static IP addresses
  Resolves: rhbz#2071011 (8.7.0)
  Resolves: rhbz#2070462 (9.1.0)

- network - [RFE] Extend rhel-system-roles.network feature set to support routing rules
  Resolves: rhbz#1996731 (8.7.0)
  Resolves: rhbz#2079622 (9.1.0)

- network - bond: fix typo in supporting the infiniband ports in active-backup mode
  Resolves: rhbz#2064067 (8.7.0)
  Resolves: rhbz#2065394 (9.1.0)

- network - pytest failed when running with nm providers in the rhel-8.5 beaker machine
  Resolves: rhbz#2065217 (8.7.0)
  Resolves: rhbz#2066911 (9.1.0)

- network - network - consistently use ansible_managed in configuration files managed by role
  Resolves: rhbz#2065670 (8.7.0)
  Resolves: rhbz#2065382 (9.1.0)

- postfix - postfix - consistently use ansible_managed in configuration files managed by role
  Resolves: rhbz#2065216 (8.7.0)
  Resolves: rhbz#2065393 (9.1.0)

- postfix - Postfix RHEL System Role should provide the ability to replace config and reset configuration back to default
  Resolves: rhbz#2065218 (8.7.0)
  Resolves: rhbz#2065383 (9.1.0)

- sshd - FIPS mode detection in SSHD role is wrong
  Resolves: rhbz#2075338 (8.7.0)
  Resolves: rhbz#2073605 (9.1.0)

- storage - RFE storage Less verbosity by default
  Resolves: rhbz#2056480 (8.7.0)
  Resolves: rhbz#2079627 (9.1.0)

- timesync - timesync: basic-smoke test failure in timesync/tests_ntp.yml
  Resolves: rhbz#2060379 (8.7.0)
  Resolves: rhbz#2060524 (9.1.0)

- tlog - Tlog role - Enabling session recording configuration does not work due to RHEL9 SSSD files provider default
  Resolves: rhbz#2072749 (8.7.0)
  Resolves: rhbz#2071804 (9.1.0)

* Thu Apr 07 2022 Rich Megginson <rmeggins@redhat.com> - 1.16.3-1
- tlog - Enabling session recording configuration does not work due to RHEL9 SSSD files provider default
  Resolves rhbz#2072749 (EL8)
  Resolves rhbz#2071804 (EL9)

* Wed Apr 06 2022 Sergei Petrosian <spetrosi@redhat.com> - 1.16.2-2
- Update community.general

* Thu Mar 31 2022 Rich Megginson <rmeggins@redhat.com> - 1.16.2-1
- nbde_client - NBDE client system role does not support servers with static IP addresses
  previous fix did not handle some other cases
  Resolves rhbz#1985022 (EL8)
  Resolves rhbz#2031555 (EL9)

* Tue Mar 29 2022 Rich Megginson <rmeggins@redhat.com> - 1.16.1-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)

* Tue Mar 22 2022 Sergei Petrosian <spetrosi@redhat.com> - 1.16.0-2
- Update community.general

* Tue Mar 15 2022 Rich Megginson <rmeggins@redhat.com> - 1.16.0-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)
- 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
  
* Mon Feb 28 2022 Rich Megginson <rmeggins@redhat.com> - 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)
- Metrics role, with "metrics_from_mssql" option does not configure /var/lib/pcp/pmdas/mssql/mssql.conf on first run
  Resolves rhbz#2058655 (EL8)
  Resolves rhbz#2058777 (EL9)

* Tue Feb 22 2022 Rich Megginson <rmeggins@redhat.com> - 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 14 2022 Rich Megginson <rmeggins@redhat.com> - 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)

* Tue Feb 8 2022 Rich Megginson <rmeggins@redhat.com> - 1.13.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

* Tue Feb 1 2022 Rich Megginson <rmeggins@redhat.com> - 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)

* Thu Jan 27 2022 Rich Megginson <rmeggins@redhat.com> - 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 <releng@fedoraproject.org> - 1.11.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild

* Tue Dec 14 2021 Rich Megginson <rmeggins@redhat.com> - 1.11.0-2
- RHEL8.6, 9 - add "Requires: ansible-core or ansible"

* Thu Dec 2 2021 Rich Megginson <rmeggins@redhat.com> - 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 <rmeggins@redhat.com> - 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 <spetrosi@redhat.com> - 1.9.0-3
- Change the PFSL license to Python because this is how PFSL is reffered to in
  rpminspect-data packages in Fedora, CentOS, and RHEL

* Tue Oct 19 2021 Rich Megginson <rmeggins@redhat.com> - 1.9.0-2
- customize galaxy.yml for Red Hat
  Resolves rhbz#2011808 (EL8)
  Resolves rhbz#2012342 (EL9)
- use release_collection.py to assemble the collection - replaces lsr_role2collection.py
  Resolves rhbz#2012298 (EL9)
  Resolves rhbz#2012316 (EL8)

* Wed Oct 6 2021 Sergei Petrosian <spetrosi@redhat.com> - 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
  - 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)
  - Support ansible-core BZs:
    Resolves rhbz#2012298 (EL9)
    Resolves rhbz#2012316 (EL8)

* Wed Sep 22 2021 Rich Megginson <rmeggins@redhat.com> - 1.8.2-3
- untar the collection tarballs and copy the files

* Wed Sep 22 2021 Noriko Hosoi <nhosoi@redhat.com> - 1.8.2-2
- 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 <rmeggins@redhat.com> - 1.8.2-1
- logging - Update the certificates copy tasks
  Resolves rhbz#1996777 (EL9)
  Resolves rhbz#1994580 (EL8)
- storage - revert the dm-vdo workaround fix for vdo testing
  Resolves rhbz#1978488 (EL9)
  Resolves rhbz#1991141 (EL8)

* Fri Aug 20 2021 Rich Megginson <rmeggins@redhat.com> - 1.8.1-2
- selinux - tag tests_selinux_disabled.yml with tests::avc
  Resolves rhbz#1996315 (EL9)
  Resolves rhbz#1996317 (EL8)

* Mon Aug 16 2021 Rich Megginson <rmeggins@redhat.com> - 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 <rmeggins@redhat.com> - 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)

* Fri Aug 06 2021 Rich Megginson <rmeggins@redhat.com> - 1.7.5-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)

* Fri Aug 06 2021 Rich Megginson <rmeggins@redhat.com> - 1.7.4-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)

* Tue Aug 03 2021 Rich Megginson <rmeggins@redhat.com> - 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 <rmeggins@redhat.com> - 1.7.2-1
- sshd - support for rhel9 managed hosts
  Resolves rhbz#1989221 (EL9)
  Resolves rhbz#1989638 (EL8)

* Thu Jul 29 2021 Rich Megginson <rmeggins@redhat.com> - 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 <rmeggins@redhat.com> - 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 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.2-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 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild

* Tue Jul 20 2021 Rich Megginson <rmeggins@redhat.com> - 1.6.1-1
- metrics - Grafana dashboard not working after metrics role run unless services manually restarted
  Resolves rhbz#1984150 (EL9)
  Resolves rhbz#1978357 (EL8)

* Thu Jul 15 2021 Rich Megginson <rmeggins@redhat.com> - 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 <rmeggins@redhat.com> - 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 <rmeggins@redhat.com> - 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 <rmeggins@redhat.com> - 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 <rmeggins@redhat.com> - 1.4.0-1
- storage - LVMVDO support
  Resolves rhbz#1882475
  Resolves rhbz#1978488

* Wed Jun 23 2021 Rich Megginson <rmeggins@redhat.com> - 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 <spetrosi@redhat.com> - 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 <spetrosi@redhat.com> - 1.2.3-2
- Remove slash (/) from the end of URLs to improve code readability

* Wed Jun 16 2021 Noriko Hosoi <nhosoi@redhat.com> - 1.2.3-1
- Add EL 9 support for timesync and network
  Resolves rhbz#1952887

* Tue Jun 15 2021 Rich Megginson <rmeggins@redhat.com> - 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 <nhosoi@redhat.com> - 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 <rmeggins@redhat.com> - 1.2.2-1
- fix kdump tests_ssh for basic smoke test
  Resolves rhbz#1957876

* Fri May 21 2021 Noriko Hosoi <nhosoi@redhat.com> - 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 <spetrosi@redhat.com> - 1.2.0-2
- Add BuildRequires: rubygem-kramdown for Fedora and RHEL >= 9

* Fri May 14 2021 Rich Megginson <rmeggins@redhat.com> - 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 <nhosoi@redhat.com> - 1.1.0-2
- Dependencies in the collection packaging
  Resolves rhbz#1954747

* Wed Apr 14 2021 Rich Megginson <rmeggins@redhat.com> - 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 <nhosoi@redhat.com> - 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 <pcahyna@redhat.com> - 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 <pcahyna@redhat.com> - 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 <pcahyna@redhat.com> - 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 <pcahyna@redhat.com> - 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 <releng@fedoraproject.org> - 1.0-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.0-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild

* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.0-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild

* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.0-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild

* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.0-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild

* Wed Dec 05 2018 Till Maas <opensource@till.name> - 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 <mikedep333@gmail.com> - 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 <mikedep333@gmail.com> - 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 <pcahyna@redhat.com> - 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 <opensource@till.name> - 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 <pcahyna@redhat.com> - 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 <pcahyna@redhat.com> - 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 <pcahyna@redhat.com> - 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 <tdawson@redhat.com> - 0.6-3.1
- Use -a (after cd) instead of -b (before cd) in %%setup

* Wed Mar 14 2018 Pavel Cahyna <pcahyna@redhat.com> - 0.6-3
- Minor corrections of the previous change by Till Maas.

* Fri Mar  9 2018 Pavel Cahyna <pcahyna@redhat.com> - 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 <pcahyna@redhat.com> - 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 <pcahyna@redhat.com> - 0.5-3
- kdump: fix the wrong conditional for ssh checking and improve test (PR#10)

* Tue Nov 07 2017 Pavel Cahyna <pcahyna@redhat.com> - 0.5-2
- kdump: add ssh support. upstream PR#9, rhbz1478707

* Tue Oct 03 2017 Pavel Cahyna <pcahyna@redhat.com> - 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 <pcahyna@redhat.com> - 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 <pcahyna@redhat.com> - 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 <pcahyna@redhat.com> - 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 <pcahyna@redhat.com> - 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 <pcahyna@redhat.com> - 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 <pcahyna@redhat.com> - 0.1-2
- Prefix the roles in examples and documentation with rhel-system-roles.

* Thu May 18 2017 Pavel Cahyna <pcahyna@redhat.com> - 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 <pcahyna@redhat.com> - 0-0.1.20170504
- Initial release.
- kdump r. fe8bb81966b60fa8979f3816a12b0c7120d71140
- postfix r. 43eec5668425d295dce3801216c19b1916df1f9b
- selinux r. 1e4a21f929455e5e76dda0b12867abaa63795ae7
- timesync r. 33a1a8c349de10d6281ed83d4c791e9177d7a141
- tuned r. 2e8bb068b9815bc84287e9b6dc6177295ffdf38b
- network r. 03ff040df78a14409a0d89eba1235b8f3e50a750