import ansible-collection-microsoft-sql-1.3.0-3.el8

This commit is contained in:
CentOS Sources 2023-05-16 06:13:22 +00:00 committed by Stepan Oksanichenko
parent c10c186c00
commit c410df30d6
3 changed files with 208 additions and 253 deletions

View File

@ -1,2 +1,2 @@
99df2e20aff7ec8c244218a45bbcd3d68b791311 SOURCES/auto-maintenance-cdc706f14614ef5e80bbce8db10beb369e889df9.tar.gz
7a6dfa4cb1a14deacfff752bc7cd452b500771d7 SOURCES/mssql-1.2.4.tar.gz
06bdf4fd47cd57661f657fa4f29ec3031198ba11 SOURCES/auto-maintenance-73800682a3293ef5ab5ed5880329ce792cd34bbf.tar.gz
43136931b6fa02984e7e0c30564f8202114ed2bd SOURCES/mssql-1.3.0.tar.gz

4
.gitignore vendored
View File

@ -1,2 +1,2 @@
SOURCES/auto-maintenance-cdc706f14614ef5e80bbce8db10beb369e889df9.tar.gz
SOURCES/mssql-1.2.4.tar.gz
SOURCES/auto-maintenance-73800682a3293ef5ab5ed5880329ce792cd34bbf.tar.gz
SOURCES/mssql-1.3.0.tar.gz

View File

@ -3,19 +3,18 @@
# 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
%if 0%{?fedora}
BuildRequires: ansible-packaging
%else
%if 0%{?rhel} && ! 0%{?epel}
%bcond_with ansible
%else
%bcond_without ansible
%global ansible_build_dep ansible >= 2.9.10
BuildRequires: ansible-core >= 2.11.0
%endif
%else
%bcond_with ansible
%endif
%bcond_with collection_artifact
# Do not convert .md to .html on RHEL 7 because tools the conversion are not available
# Do not convert .md to .html on RHEL 7 because pandoc is not available
%if 0%{?fedora} || 0%{?rhel} >= 8
%bcond_without html
%else
@ -25,33 +24,39 @@
Name: ansible-collection-microsoft-sql
Url: https://github.com/linux-system-roles/mssql
Summary: The Ansible collection for Microsoft SQL Server management
Version: 1.2.4
Release: 1%{?dist}
Version: 1.3.0
Release: 3%{?dist}
#Group: Development/Libraries
License: MIT
%global installbase %{_datadir}/microsoft
%global _pkglicensedir %{_licensedir}/%{name}
%global rolename mssql
%global collection_namespace microsoft
%global collection_name sql
%global collection_rolename server
%global collection_version %{version}
%global legacy_rolename %{collection_namespace}.sql-server
%global _pkglicensedir %{_licensedir}/%{name}
# Helper macros originally from macros.ansible by Igor Raits <ignatenkobrain>
# Not available on RHEL, so we must define those macros locally here without using ansible-galaxy
# On RHEL, not available, so we must define those macros locally
# On Fedora, provided by ansible-packager
# 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}/}
%if 0%{?rhel}
Provides: ansible-collection(%{collection_namespace}.%{collection_name}) = %{collection_version}
%global ansible_collection_files %{_datadir}/ansible/collections/ansible_collections/%{collection_namespace}/
%define ansible_roles_dir %{_datadir}/ansible/roles
%if %{without ansible}
# Untar and copy everything instead of galaxy-installing the built artifact when ansible is not available
%define ansible_collection_build() tar -cf %{_tmppath}/%{collection_namespace}-%{collection_name}-%{version}.tar.gz .
%define ansible_collection_install() 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 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}/
%define ansible_collection_build() ansible-galaxy collection build
%define ansible_collection_install() ansible-galaxy collection install -n -p %{buildroot}%{_datadir}/ansible/collections %{collection_namespace}-%{collection_name}-%{version}.tar.gz
%endif
%endif
# 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
@ -64,60 +69,19 @@ License: MIT
Requires: (ansible-core >= 2.11.0 or ansible >= 2.9.0)
%endif
%if 0%{?fedora}
Requires: linux-system-roles
%else
%if 0%{?rhel}
Requires: rhel-system-roles
%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
Requires: linux-system-roles
%endif
# For each role, call defsource() and the point to it with SourceN: %{archiveurlN}.
%global archiveext tar.gz
# list of source role names
%global rolenames %nil
# list of assignments that can be used to populate a bash associative array variable
%global rolestodir %nil
# list of target rolenames to copy the roles to
%global target_rolenames %nil
# list of collection rolenames to convert the roles to
%global collection_rolenames %nil
%define getarchivedir() %(p=%{basename:%{S:%{1}}}; echo ${p%%.%{archiveext}})
%global mainid 73800682a3293ef5ab5ed5880329ce792cd34bbf
# Use either hash or tag for source1id
# %%global source1id 50edba099ab2c8b25b225fe760cb5a459b320030
%global source1id %{version}
%global parenturl https://github.com/linux-system-roles
# You can feed either tag or commit to defsource
%define defsource() %{expand:%%global ref%{1} %{2}
%%global extractdir%{1} %%{expand:%%getarchivedir %{1}}
%%global archiveurl%{1} %%{parenturl}/%%{rolename%{1}}/archive/%%{ref%{1}}/%%{rolename%{1}}-%%{ref%{1}}.tar.gz
%%global rolenames %%{?rolenames} %%{rolename%{1}}
%%global roletodir%{1} [%{rolename%{1}}]="%{extractdir%{1}}"
%%global rolestodir %%{?rolestodir} %{roletodir%{1}}
%%{!?target_rolename%{1}:%%global target_rolename%{1} %%{rolename%{1}}}
%%global target_rolenames %%{?target_rolenames} [%{rolename%{1}}]="%{target_rolename%{1}}"
%%{!?collection_rolename%{1}:%%global collection_rolename%{1} %%{rolename%{1}}}
%%global collection_rolenames %%{?collection_rolenames} [%{rolename%{1}}]="%{collection_rolename%{1}}"
}
%defsource 1 1.2.4
%global rolename1 mssql
%global target_rolename1 sql-server
%global collection_rolename1 server
%global mainid cdc706f14614ef5e80bbce8db10beb369e889df9
Source: %{parenturl}/auto-maintenance/archive/%{mainid}/auto-maintenance-%{mainid}.tar.gz
Source1: %{archiveurl1}
Source1: %{parenturl}/%{rolename}/archive/%{source1id}/%{rolename}-%{source1id}.tar.gz
BuildArch: noarch
@ -134,197 +98,166 @@ BuildRequires: highlight
# Requirements for galaxy_transform.py
BuildRequires: python3
%if 0%{?fedora} || 0%{?rhel} >= 8
BuildRequires: %{py3_dist ruamel.yaml}
%else
BuildRequires: python3-ruamel-yaml
%endif
%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}
BuildRequires: python%{python3_pkgversion}-ruamel-yaml
%description
This RPM installs the Ansible collection for Microsoft SQL Server management
microsoft.sql. This RPM also installs the roles provided by the collection in
the legacy roles format for users of Ansible < 2.9.
This RPM installs the %{collection_namespace}.%{collection_name} Ansible
collection that provides the %{collection_rolename} role for Microsoft SQL
Server management. This RPM also installs the %{legacy_rolename} role
in the legacy roles format for users of Ansible < 2.9.
%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
Collection artifact for %{name}. This package contains
%{collection_namespace}-%{collection_name}-%{version}.tar.gz
%endif
%pretrans -p <lua>
path = "%{ansible_roles_dir}/%{legacy_rolename}"
st = posix.stat(path)
if st and st.type == "link" then
os.remove(path)
end
%prep
%setup -q -a1 -n %{getarchivedir 0}
%setup -q -a1 -n auto-maintenance-%{mainid}
# Declare the array containing names of directories to copy roles to for prep
declare -A ROLESTODIR=(%{rolestodir})
for rolename in %{rolenames}; do
mv "${ROLESTODIR[${rolename}]}" ${rolename}
done
mv %{rolename}-%{source1id} %{rolename}
# 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
# Remove symlinks in tests/roles
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
done
# 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@' '{}' +
fi
%build
%if %{with html}
# Convert README.md to README.html in the source roles
readmes=""
for rolename in %{rolenames}; do
readmes="${readmes} $rolename/README.md"
done
sh md2html.sh $readmes
sh md2html.sh -t %{rolename}/README.md
%endif
mkdir .collections
# Copy README.md for the collection build
cp %{rolename1}/.collection/README.md lsr_role2collection/collection_readme.md
cp %{rolename}/.collection/README.md lsr_role2collection/collection_readme.md
# Copy galaxy.yml for the collection build
cp %{rolename1}/.collection/galaxy.yml ./
cp %{rolename}/.collection/galaxy.yml ./
# Ensure the correct entries in galaxy.yml
%if 0%{?rhel}
./galaxy_transform.py "%{collection_namespace}" "%{collection_name}" "%{collection_version}" \
# Ensure the correct entries in galaxy.yml
./galaxy_transform.py "%{collection_namespace}" "%{collection_name}" "%{version}" \
"Ansible collection for Microsoft SQL Server management" \
"https://github.com/linux-system-roles/mssql" \
"https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/administration_and_configuration_tasks_using_system_roles_in_rhel/assembly_configuring-microsoft-sql-server-using-microsoft-sql-server-ansible-role_assembly_updating-packages-to-enable-automation-for-the-rhel-system-roles" \
"https://github.com/linux-system-roles/mssql/blob/master/README.md" \
"https://github.com/linux-system-roles/mssql/blob/main/README.md" \
"https://bugzilla.redhat.com/enter_bug.cgi?product=Red%20Hat%20Enterprise%20Linux%208&component=ansible-collection-microsoft-sql" \
> galaxy.yml.tmp
%else
./galaxy_transform.py "%{collection_namespace}" "%{collection_name}" "%{collection_version}" \
./galaxy_transform.py "%{collection_namespace}" "%{collection_name}" "%{version}" \
"Ansible collection for Microsoft SQL Server management" \
> galaxy.yml.tmp
%endif
mv galaxy.yml.tmp galaxy.yml
# Declare the array containing collection rolenames to convert roles to
declare -A COLLECTION_ROLENAMES=(%{collection_rolenames})
# Replace fedora.linux_system_roles with redhat.rhel_system_roles
%if 0%{?rhel}
for rolename in %{rolenames}; do
sed -i 's/fedora\.linux_system_roles/redhat.rhel_system_roles/g' \
$rolename/CHANGELOG.md \
$rolename/README.md \
$rolename/tasks/*.yml \
$rolename/tests/*.yml \
$rolename/meta/*.yml
done
# Replace "fedora.linux_system_roles" with "redhat.rhel_system_roles"
# This is for the "roles calling other roles" case
find %{rolename} -type f -exec \
sed -e "s/fedora[.]linux_system_roles[.]/redhat.rhel_system_roles./g" \
-i {} \;
%endif
# Convert roles to the collection format
for rolename in %{rolenames}; do
python3 lsr_role2collection.py --role "$rolename" \
--src-path "$rolename" \
--src-owner linux-system-roles \
--dest-path .collections \
--readme lsr_role2collection/collection_readme.md \
--namespace %{collection_namespace} --collection %{collection_name} \
--new-role "${COLLECTION_ROLENAMES[${rolename}]}" \
--meta-runtime lsr_role2collection/runtime.yml
done
# Convert to the collection format
python3 lsr_role2collection.py --role "%{rolename}" \
--src-path "%{rolename}" \
--src-owner linux-system-roles \
--dest-path .collections \
--readme lsr_role2collection/collection_readme.md \
--namespace %{collection_namespace} \
--collection %{collection_name} \
--new-role "%{collection_rolename}" \
--meta-runtime lsr_role2collection/runtime.yml
# Replace remnants of "linux-system-roles.mssql" with collection FQDN
find .collections/ansible_collections/%{collection_namespace}/%{collection_name}/ -type f -exec \
sed -e "s/linux-system-roles[.]%{rolename}\\>/%{collection_namespace}.%{collection_name}.%{collection_rolename}/g" \
-i {} \;
# removing dot files/dirs
rm -r .collections/ansible_collections/%{collection_namespace}/%{collection_name}/.[A-Za-z]*
rm -r .collections/ansible_collections/%{collection_namespace}/%{collection_name}/tests/%{collection_rolename}/.[A-Za-z]*
# Copy galaxy.yml to the collection directory
cp -p galaxy.yml .collections/ansible_collections/%{collection_namespace}/%{collection_name}
# Copy CHANGELOG.md from mssql to collection dir
mv .collections/ansible_collections/%{collection_namespace}/%{collection_name}/roles/%{collection_rolename1}/CHANGELOG.md \
mv .collections/ansible_collections/%{collection_namespace}/%{collection_name}/roles/%{collection_rolename}/CHANGELOG.md \
.collections/ansible_collections/%{collection_namespace}/%{collection_name}/
%install
mkdir -p $RPM_BUILD_ROOT%{installbase}
mkdir -p $RPM_BUILD_ROOT%{_datadir}/ansible/roles
# Declare the array containing target rolenames to copy roles to
declare -A TARGET_ROLENAMES=(%{target_rolenames})
# Copy roles to the target directory within the microsoft directory and rename
for rolename in %{rolenames}; do
cp -pR "$rolename" "$RPM_BUILD_ROOT%{installbase}/${TARGET_ROLENAMES[${rolename}]}"
sed -i "s/linux-system-roles\.$rolename/microsoft\.${TARGET_ROLENAMES[${rolename}]}/g" \
$RPM_BUILD_ROOT%{installbase}/${TARGET_ROLENAMES[${rolename}]}/tests/*.yml
done
# Generate symlinks for roles in /usr/share/ansible/roles
for rolename in %{rolenames}; do
ln -s "%{installbase}/${TARGET_ROLENAMES[${rolename}]}" "$RPM_BUILD_ROOT%{_datadir}/ansible/roles/microsoft.${TARGET_ROLENAMES[${rolename}]}"
done
# Copy README, COPYING, and LICENSE files to the corresponding directories
mkdir -p $RPM_BUILD_ROOT%{_pkglicensedir}
for rolename in %{rolenames}; do
mkdir -p "$RPM_BUILD_ROOT%{_pkgdocdir}/${TARGET_ROLENAMES[${rolename}]}"
cp -p "$RPM_BUILD_ROOT%{installbase}/${TARGET_ROLENAMES[${rolename}]}/README.md" \
"$RPM_BUILD_ROOT%{_pkgdocdir}/${TARGET_ROLENAMES[${rolename}]}"
%if %{with html}
cp -p "$RPM_BUILD_ROOT%{installbase}/${TARGET_ROLENAMES[${rolename}]}/README.html" \
"$RPM_BUILD_ROOT%{_pkgdocdir}/${TARGET_ROLENAMES[${rolename}]}"
%endif
if [ -f "$RPM_BUILD_ROOT%{installbase}/${TARGET_ROLENAMES[${rolename}]}/COPYING" ]; then
cp -p "$RPM_BUILD_ROOT%{installbase}/${TARGET_ROLENAMES[${rolename}]}/COPYING" \
"$RPM_BUILD_ROOT%{_pkglicensedir}/${TARGET_ROLENAMES[${rolename}]}.COPYING"
fi
if [ -f "$RPM_BUILD_ROOT%{installbase}/${TARGET_ROLENAMES[${rolename}]}/LICENSE" ]; then
cp -p "$RPM_BUILD_ROOT%{installbase}/${TARGET_ROLENAMES[${rolename}]}/LICENSE" \
"$RPM_BUILD_ROOT%{_pkglicensedir}/${TARGET_ROLENAMES[${rolename}]}.LICENSE"
fi
done
# Remove dot files
rm -r $RPM_BUILD_ROOT%{installbase}/*/.[A-Za-z]*
# Remove the molecule directory
rm -r $RPM_BUILD_ROOT%{installbase}/*/molecule
# Build collection
pushd .collections/ansible_collections/%{collection_namespace}/%{collection_name}/
%ansible_collection_build_install
%ansible_collection_build
popd
mkdir -p $RPM_BUILD_ROOT%{_pkgdocdir}/collection
mkdir -p $RPM_BUILD_ROOT%{_pkgdocdir}/collection/roles
%install
mkdir -p %{buildroot}%{ansible_roles_dir}
# Copy role in legacy format and rename rolename in tests
cp -pR "%{rolename}" "%{buildroot}%{ansible_roles_dir}/%{legacy_rolename}"
find %{buildroot}%{ansible_roles_dir}/%{legacy_rolename} -type f -exec \
sed -e "s/linux-system-roles\.%{rolename}/%{legacy_rolename}/g" \
-i {} \;
# Copy README, COPYING, and LICENSE files to the corresponding directories
mkdir -p %{buildroot}%{_pkglicensedir}
mkdir -p "%{buildroot}%{_pkgdocdir}/%{legacy_rolename}"
ln -sr "%{buildroot}%{ansible_roles_dir}/%{legacy_rolename}/README.md" \
"%{buildroot}%{_pkgdocdir}/%{legacy_rolename}"
%if %{with html}
ln -sr "%{buildroot}%{ansible_roles_dir}/%{legacy_rolename}/README.html" \
"%{buildroot}%{_pkgdocdir}/%{legacy_rolename}"
%endif
if [ -f "%{buildroot}%{ansible_roles_dir}/%{legacy_rolename}/COPYING" ]; then
ln -sr "%{buildroot}%{ansible_roles_dir}/%{legacy_rolename}/COPYING" \
"%{buildroot}%{_pkglicensedir}/%{legacy_rolename}.COPYING"
fi
if [ -f "%{buildroot}%{ansible_roles_dir}/%{legacy_rolename}/LICENSE" ]; then
ln -sr "%{buildroot}%{ansible_roles_dir}/%{legacy_rolename}/LICENSE" \
"%{buildroot}%{_pkglicensedir}/%{legacy_rolename}.LICENSE"
fi
# Remove dot files
rm -r %{buildroot}%{ansible_roles_dir}/*/.[A-Za-z]*
rm -r %{buildroot}%{ansible_roles_dir}/%{legacy_rolename}/tests/.[A-Za-z]*
# Remove the molecule directory
rm -r %{buildroot}%{ansible_roles_dir}/*/molecule
# Install collection
pushd .collections/ansible_collections/%{collection_namespace}/%{collection_name}/
%ansible_collection_install
popd
mkdir -p %{buildroot}%{_pkgdocdir}/collection/roles
# Copy the collection README files to the collection
cp -p %{buildroot}%{ansible_collection_files}%{collection_name}/README.md \
$RPM_BUILD_ROOT%{_pkgdocdir}/collection
ln -sr %{buildroot}%{ansible_collection_files}%{collection_name}/README.md \
%{buildroot}%{_pkgdocdir}/collection
# Declare the array containing collection rolenames to convert roles to
declare -A COLLECTION_ROLENAMES=(%{collection_rolenames})
for rolename in %{rolenames}; do
if [ -f "%{buildroot}%{ansible_collection_files}%{collection_name}/roles/${COLLECTION_ROLENAMES[${rolename}]}/README.md" ]; then
mkdir -p $RPM_BUILD_ROOT%{_pkgdocdir}/collection/roles/${COLLECTION_ROLENAMES[${rolename}]}
cp -p %{buildroot}%{ansible_collection_files}%{collection_name}/roles/${COLLECTION_ROLENAMES[${rolename}]}/README.md \
$RPM_BUILD_ROOT%{_pkgdocdir}/collection/roles/${COLLECTION_ROLENAMES[${rolename}]}
fi
done
# Copy role's readme to /usr/share/doc/
if [ -f "%{buildroot}%{ansible_collection_files}%{collection_name}/roles/%{collection_rolename}/README.md" ]; then
mkdir -p %{buildroot}%{_pkgdocdir}/collection/roles/%{collection_rolename}
ln -sr %{buildroot}%{ansible_collection_files}%{collection_name}/roles/%{collection_rolename}/README.md \
%{buildroot}%{_pkgdocdir}/collection/roles/%{collection_rolename}
fi
%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 rolename in %{rolenames}; do
readmes="${readmes} $RPM_BUILD_ROOT%{_pkgdocdir}/collection/roles/${COLLECTION_ROLENAMES[${rolename}]}/README.md"
done
sh md2html.sh $readmes
# Convert README.md to README.html for collection in %%{buildroot}%%{_pkgdocdir}/collection
sh md2html.sh -t %{buildroot}%{_pkgdocdir}/collection/roles/%{collection_rolename}/README.md
%endif
%if %{with collection_artifact}
@ -332,19 +265,21 @@ sh md2html.sh $readmes
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/
%{buildroot}%{_datadir}/ansible/collections/
fi
popd
%endif
# generate the %files section in the file files_section.txt
# 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
# $2 - if true, and item is a directory, use %%dir
local item
local files_item
item="$1"
files_item=${item##"%{buildroot}"}
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
@ -355,16 +290,16 @@ format_item_for_files() {
else
echo "$files_item"
fi
elif [[ "$item" == */README.md ]] || [[ "$item" == */README.html ]]; then
elif [[ "$item" == */README.md ]] || [[ "$item" == */README.html ]] || [[ "$item" == */CHANGELOG.md ]]; then
if [[ "$item" == */private_* ]]; then
# mark as regular file, not %doc
# 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.
elif [[ "$item" == */COPYING* ]] || [[ "$item" == */LICENSE* ]]; then
echo "%""%""license" "$files_item"
else
echo "$files_item"
fi
}
@ -372,15 +307,7 @@ format_item_for_files() {
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
# 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
@ -396,7 +323,8 @@ find %{buildroot}%{ansible_collection_files}%{collection_name} -mindepth 1 -maxd
fi
done
find %{buildroot}%{installbase} -mindepth 1 -maxdepth 1 | \
# 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
@ -407,32 +335,14 @@ find %{buildroot}%{installbase} -mindepth 1 -maxdepth 1 | \
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
%{_pkgdocdir}/collection/roles/*/README.md
%if %{with html}
%{_pkgdocdir}/*/README.html
%{_pkgdocdir}/collection/roles/*/README.html
%endif
%license %{_pkglicensedir}/*
%license %{installbase}/*/LICENSE*
%license %{ansible_collection_files}/%{collection_name}/LICENSE*
%dir %{_datadir}/ansible
%dir %{ansible_roles_dir}
%dir %{ansible_collection_files}
%dir %{ansible_collection_files}%{collection_name}
%doc %{_pkgdocdir}
%license %{_pkglicensedir}
%if %{with collection_artifact}
%files collection-artifact
@ -440,16 +350,61 @@ fi
%endif
%changelog
* Thu Feb 23 2023 Sergei Petrosian <spetrosi@redhat.com> - 1.3.0-3
- Spec: add functionality to build from a commit hash
- Use latest 1.3.0 to add flexibility to AD integration functionality
Resolves: rhbz#2163696
* Thu Feb 16 2023 Sergei Petrosian <spetrosi@redhat.com> - 1.3.0-2
- Replace fedora.linux_system_roles/redhat.rhel_system_roles and
linux-system-roles.mssql with microsoft.sql.server in the role.
Resolves: rhbz#2129106
- Use latest 1.3.0 to fix ad_Integration issues
Resolves: rhbz#2163696
* Wed Feb 1 2023 Sergei Petrosian <spetrosi@redhat.com> - 1.3.0-1
- Keep spec consistent with linux-system-roles
- Return conditionals related to EL to keep up- and downstream consistent
- Add pretrans scriplet to remove symlinks if exist to fix issue with update
- Instead of copying doc and license files create symlinks
- Dynamically generate %%files section
- Add -t to md2html to generate TOC
Resolves: rhbz#2129106
- On SQL Server Enterprise Edition, support configuring asynchronous replication
Resolves: rhbz#2144820
- Support configuring a read-scale SQL server availability group (without pacemaker
Resolves: rhbz#2144821
- Use the certificate role to create the cert and the key
Resolves: rhbz#2144852
- Support SQL Server version 2022
Resolves: rhbz#2153427
- Support integrating with AD Server for authentication
Resolves: rhbz#2163696
* Thu Sep 22 2022 Sergei Petrosian <spetrosi@redhat.com> - 1.2.4-2
- Simplify spec file
- Do not install roles to /usr/share/microsoft and then create symlinks
to /usr/share/ansible/roles/, instead install directly to
/usr/share/ansible/roles/
- Remove unused removal of ambiguous python shebangs
- Remove all loops because this RPM contains only one role
- Remove defsource - simply define the source for mssql
- 's|$RPM_BUILD_ROOT|%%{buildroot}|' for consistency
- Remove getarchivedir for simplicity
- Wrap description by 80 symbols and clarify it
- Remove tests/.fmf dir from the RPM
Resolves: rhbz#2129106
* Thu Sep 1 2022 Sergei Petrosian <spetrosi@redhat.com> - 1.2.4-1
- Replicate all provided databases
- This change fixes the bug where only the first database provided with
mssql_ha_db_names got replicated
- Clarify that the role does not remove not listed databases
Resolves: rhbz#2066338
Resolves: rhbz#2129869
- Input multiple sql scripts
- Allow _input_sql_file vars to accept list of files
- Flush handlers prior to inputting post sql script
Resolves: rhbz#2120713
Resolves: rhbz#2129872
- Note that ha_cluster is not idempotent
- SPEC: Do not update dates in CHANGELOG.md