Create two virtual servers - repo.altagrade.org and testrepo.altagrade.org, empty their public_html directories and perform the following steps on host.altagrade.org (65.49.80.99).
0) Build rpmbuild directory structure
mkdir /root/rpmbuild && cd /root/rpmbuild mkdir BUILD RPMS RPMS/i386 SOURCES SPECS SRPMS
1) Create spec file at /root/rpmbuild/SPECS/altagrade.spec
cat > /root/rpmbuild/SPECS/altagrade.spec << 'EOF' Name: altagrade Version: 1 Release: 10 Summary: AltaGrade OS Group: AltaGrade BuildArch: noarch License: none URL: http://repo.altagrade.org:8080 %description AltaGrade OS %prep rm -rf %{buildroot} mkdir %{buildroot} mkdir %{buildroot}/etc cp -R /etc/ag %{buildroot}/etc %files /etc/ag/ %changelog EOF
2) Create /root/.rpmmacros file
cat > /root/.rpmmacros << 'EOF' %packager AltaBot %_topdir %(echo $HOME)/rpmbuild %_smp_mflags %( \ [ -z "$RPM_BUILD_NCPUS" ] \\\ && RPM_BUILD_NCPUS="`/usr/bin/nproc 2>/dev/null || \\\ /usr/bin/getconf _NPROCESSORS_ONLN`"; \\\ if [ "$RPM_BUILD_NCPUS" -gt 16 ]; then \\\ echo "-j16"; \\\ elif [ "$RPM_BUILD_NCPUS" -gt 3 ]; then \\\ echo "-j$RPM_BUILD_NCPUS"; \\\ else \\\ echo "-j3"; \\\ fi ) %__arch_install_post \ [ "%{buildarch}" = "noarch" ] || QA_CHECK_RPATHS=1 ; \ case "${QA_CHECK_RPATHS:-}" in [1yY]*) /usr/lib/rpm/check-rpaths ;; esac \ /usr/lib/rpm/check-buildroot EOF
3) Build testrepo structure
mkdir /root/testrepo && cd /root/testrepo mkdir BUILD RPMS RPMS/i386 SOURCES SPECS SRPMS cat > /root/.testrepomacros << 'EOF' %packager AltaBot %_topdir /root/testrepo EOF
4) Create spec file at /root/testrepo/SPECS/testrepo.spec
cat > /root/testrepo/SPECS/testrepo.spec << 'EOF' Name: testrepo Version: 1 Release: 5 Summary: AltaGrade OS Group: AltaGrade BuildArch: noarch License: none URL: http://testrepo.altagrade.org:8080 %description AltaGrade OS %prep rm -rf /root/testrepo/BUILDROOT mkdir %{buildroot} mkdir %{buildroot}/etc cp -R /etc/ag %{buildroot}/etc %files /etc/ag/ %post chmod -R 755 /etc/ag/post-rpm /etc/ag/post-rpm/post-rpm.sh %changelog EOF
5) Finally create a custom buildrpm command.
cat > /usr/local/bin/buildrpm << 'EOF' #!/bin/sh if [ -z "$1" ]; then echo "Missing arguments." echo "Indicate either altagrade or testrepo as a reponame in the following format:"; echo 'buildrpm reponame "comment"'; echo exit 1; fi if [ -z "$2" ]; then echo echo "Specify a comment in the following format:"; echo 'build rpm reponame "comment"'; echo exit 1; fi if [ $1 = "altagrade" ]; then rpmdev-bumpspec --comment="${2}" --userstring="AltaBot" /root/rpmbuild/SPECS/altagrade.spec rm -rf /home/altaorg/domains/repo.altagrade.org/public_html/altagrade* rpmbuild -ba /root/rpmbuild/SPECS/altagrade.spec mv /root/rpmbuild/RPMS/noarch/* /home/altaorg/domains/repo.altagrade.org/public_html createrepo --update /home/altaorg/domains/repo.altagrade.org/public_html elif [ $1 = "testrepo" ]; then rpmdev-bumpspec --comment="${2}" --userstring="AltaBot" /root/testrepo/SPECS/testrepo.spec rm -rf /home/altaorg/domains/testrepo.altagrade.org/public_html/testrepo* rpmbuild -ba /root/testrepo/SPECS/testrepo.spec --define "_topdir /root/testrepo" --buildroot /root/testrepo/BUILDROOT --dbpath /var/lib/rpm mv /root/testrepo/RPMS/noarch/* /home/altaorg/domains/testrepo.altagrade.org/public_html createrepo --update /home/altaorg/domains/testrepo.altagrade.org/public_html else echo "Incorrect repo name"; echo "Indicate either altagrade or testrepo as a reponame in the following format:"; echo 'build rpm reponame "comment"'; echo exit 1; fi exit EOF chmod 755 /usr/local/bin/buildrpm