- name: Install prereqs package: name: - rpm-build - kernel-devel - createrepo become: yes - name: Install centos 8/9 common packages package: name: - elfutils-devel become: yes when: ansible_distribution_major_version is version('8', '>=') - name: Install centos9 packages package: name: - perl-File-Copy become: yes when: ansible_distribution_major_version is version('9', '>=') # https://wiki.openafs.org/devel/HowToBuildOpenAfsRpmPackages/ - name: Build and install srpm environment: PACKAGER: "{{ (ansible_distribution_major_version == '7') | ternary('yum', 'dnf') }}" shell: | set -eux VERSION=1.8.8.1 URL_PATH=${VERSION} SRPM=openafs-${VERSION}-1.src.rpm mkdir openafs wget https://www.openafs.org/dl/openafs/${URL_PATH}/openafs-${VERSION}-src.tar.bz2 wget https://www.openafs.org/dl/openafs/${URL_PATH}/openafs-${VERSION}-doc.tar.bz2 wget https://www.openafs.org/dl/openafs/${URL_PATH}/RELNOTES-${VERSION} wget https://www.openafs.org/dl/openafs/${URL_PATH}/ChangeLog # Build the source RPM. tar xf openafs-${VERSION}-src.tar.bz2 --strip-components=4 '*/makesrpm.pl' perl makesrpm.pl openafs-${VERSION}-src.tar.bz2 openafs-${VERSION}-doc.tar.bz2 RELNOTES-${VERSION} ChangeLog if [[ ${PACKAGER} == "yum" ]]; then sudo yum-builddep -y ${SRPM} else sudo dnf builddep -y ${SRPM} fi rpm -i ${SRPM} pushd ~/rpmbuild/SPECS rpmbuild -ba ./openafs.spec popd # create final repo createrepo ~/rpmbuild/RPMS/{{ ansible_architecture }} # tar result pushd ~/rpmbuild tar cvzf openafs-rpms.tar.gz RPMS - name: Copy built rpms synchronize: src: '{{ ansible_user_dir }}/rpmbuild/' dest: '{{ zuul.executor.log_root }}' mode: pull rsync_opts: - --include=/RPMS/** - --include=/SRPMS/** - --include=openafs-rpms.tar.gz - --include=*/ - --exclude=* - --prune-empty-dirs - name: Return build artifact zuul_return: data: zuul: artifacts: - name: rpms url: RPMS metadata: type: rpm - name: srpms url: SRPMS metadata: type: srpm - name: rpms-tar url: openafs-rpms.tar.gz metadata: type: rpm.tar.gz