[cpp-linbuild] 03/03: Implement generic build script, component/platform-independent

John W. O'Brien john at saltant.com
Fri May 21 20:07:59 UTC 2021


This is an automated email from the git hooks/post-receive script.

obrienjw pushed a commit to branch main
in repository cpp-linbuild.

View the commit online:
http://git.shibboleth.net/view/?p=cpp-linbuild.git;a=commit;h=dac63347037419a60510762c87dfe3fac946af0e

commit dac63347037419a60510762c87dfe3fac946af0e
Author: John W. O'Brien <john at saltant.com>
AuthorDate: Fri May 21 19:42:34 2021 +0000

    Implement generic build script, component/platform-independent
    
    Rely on the SPEC file for dependencies via yum-builddep.
---
 Makefile                                      |  6 ++----
 common/build.sh                               | 23 +++++++++++++++++++++++
 os/amazonlinux2/image/build-curl-openssl.sh   |  5 -----
 os/amazonlinux2/image/build-log4shib.sh       |  5 -----
 os/amazonlinux2/image/build-opensaml.sh       | 10 ----------
 os/amazonlinux2/image/build-shibboleth.sh     | 12 ------------
 os/amazonlinux2/image/build-xerces-c.sh       |  5 -----
 os/amazonlinux2/image/build-xml-security-c.sh |  6 ------
 os/amazonlinux2/image/build-xmltooling.sh     |  9 ---------
 os/centos7/image/build-curl-openssl.sh        |  5 -----
 os/centos7/image/build-log4shib.sh            |  5 -----
 os/centos7/image/build-opensaml.sh            | 10 ----------
 os/centos7/image/build-shibboleth.sh          | 12 ------------
 os/centos7/image/build-xerces-c.sh            |  5 -----
 os/centos7/image/build-xml-security-c.sh      |  6 ------
 os/centos7/image/build-xmltooling.sh          |  9 ---------
 os/centos8/image/build-log4shib.sh            |  5 -----
 os/centos8/image/build-opensaml.sh            |  9 ---------
 os/centos8/image/build-shibboleth.sh          | 10 ----------
 os/centos8/image/build-xerces-c.sh            |  5 -----
 os/centos8/image/build-xml-security-c.sh      |  6 ------
 os/centos8/image/build-xmltooling.sh          |  8 --------
 22 files changed, 25 insertions(+), 151 deletions(-)

diff --git a/Makefile b/Makefile
index 34a8de9..7d321cd 100644
--- a/Makefile
+++ b/Makefile
@@ -194,10 +194,9 @@ images: $(foreach platform,$(PLATFORMS),$(platform)-image)
 define build-docker-image-component-platform
 $(srcdir)os/$(2)/image/Dockerfile.$$($(1)_COMPNAME):
 	echo "FROM shibboleth/$(2):$$(BASETAG)" > $$@
-	echo "COPY build-$($(1)_COMPNAME).sh \$$$${BUILD_BASE}/" >> $$@
 
 $(1)_$(2)_image_token = $$(srcdir).$(1)_$(2)_image
-$$($(1)_$(2)_image_token): $$($(2)_token) $(srcdir)os/$(2)/image/Dockerfile.$$($(1)_COMPNAME) $(srcdir)os/$(2)/image/build-$$($(1)_COMPNAME).sh
+$$($(1)_$(2)_image_token): $$($(2)_token) $(srcdir)os/$(2)/image/Dockerfile.$$($(1)_COMPNAME)
 	@echo "==> Building Docker image for $(1) on $(2)"
 	docker build --no-cache \
 		-t shibboleth/$(2):$($(1)_COMPNAME) \
@@ -222,7 +221,7 @@ $$($(1)_$(2)_token): $$($(1)_$(2)_image_token) $(SOURCEDIR)/$$($(1)_DISTFILE) $(
 		--mount type=bind,source=$(srcdir)os/$(2)/products,target=/opt/build/external/out \
 		--mount type=bind,source=$(srcdir)common,target=/opt/build/external/in \
 		shibboleth/$(2):$($(1)_COMPNAME) \
-		/bin/sh /opt/build/build-$($(1)_COMPNAME).sh
+		/bin/sh /opt/build/external/in/build.sh $($(1)_COMPNAME)
 	touch $$($(1)_$(2)_token)
 $$($(1)_COMPNAME)_$(2): $$($(1)_$(2)_token)
 endef
@@ -234,5 +233,4 @@ $(foreach platform,$(PLATFORMS),$(foreach component,$(COMPONENTS),$(eval $(call
 #  add a clean target
 #  refresh an affected image in the event one of its dependencies changes
 #  save build logs to the host
-#  auto-generate build-scripts (maybe)
 #  template %packager
diff --git a/common/build.sh b/common/build.sh
new file mode 100644
index 0000000..370676a
--- /dev/null
+++ b/common/build.sh
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+if [ $# -ne 1 ]; then
+    echo "Usage: $0 component"
+    exit 1
+fi
+
+component=$1
+arch=$(rpm -E '%{_arch}')
+
+# Install dependencies
+yum-config-manager --enable local
+yum-builddep -y ${component}.spec
+
+# Produce RPMs and SRPMs
+rpmbuild -ba --clean ${component}.spec
+
+# Produce manifests
+rpmspec -q --rpms ${component}.spec > ${EXT_BASE}/out/${component}.rpms
+rpmspec -q --srpm ${component}.spec > ${EXT_BASE}/out/${component}.srpm
+
+# Generate/update local RPM repository
+createrepo_c ${EXT_BASE}/out/RPMS/${arch}
diff --git a/os/amazonlinux2/image/build-curl-openssl.sh b/os/amazonlinux2/image/build-curl-openssl.sh
deleted file mode 100644
index ffd9449..0000000
--- a/os/amazonlinux2/image/build-curl-openssl.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-arch=$(rpm -E '%{_arch}')
-rpmbuild -ba --clean curl-openssl.spec
-rpmspec -q --rpms curl-openssl.spec > ${EXT_BASE}/out/curl-openssl.rpms
-rpmspec -q --srpm curl-openssl.spec > ${EXT_BASE}/out/curl-openssl.srpm
-createrepo_c ${EXT_BASE}/out/RPMS/${arch}
diff --git a/os/amazonlinux2/image/build-log4shib.sh b/os/amazonlinux2/image/build-log4shib.sh
deleted file mode 100644
index 354f96a..0000000
--- a/os/amazonlinux2/image/build-log4shib.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-arch=$(rpm -E '%{_arch}')
-rpmbuild -ba --clean log4shib.spec
-rpmspec -q --rpms log4shib.spec > ${EXT_BASE}/out/log4shib.rpms
-rpmspec -q --srpm log4shib.spec > ${EXT_BASE}/out/log4shib.srpm
-createrepo_c ${EXT_BASE}/out/RPMS/${arch}
diff --git a/os/amazonlinux2/image/build-opensaml.sh b/os/amazonlinux2/image/build-opensaml.sh
deleted file mode 100644
index 88fee83..0000000
--- a/os/amazonlinux2/image/build-opensaml.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-arch=$(rpm -E '%{_arch}')
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*xerces*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*xml-security-c*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*log4shib*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*curl-openssl*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*xmltooling*
-rpmbuild -ba --clean opensaml.spec
-rpmspec -q --rpms opensaml.spec > ${EXT_BASE}/out/opensaml.rpms
-rpmspec -q --srpm opensaml.spec > ${EXT_BASE}/out/opensaml.srpm
-createrepo_c ${EXT_BASE}/out/RPMS/${arch}
diff --git a/os/amazonlinux2/image/build-shibboleth.sh b/os/amazonlinux2/image/build-shibboleth.sh
deleted file mode 100644
index 1065e67..0000000
--- a/os/amazonlinux2/image/build-shibboleth.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-arch=$(rpm -E '%{_arch}')
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*xerces*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*xml-security-c*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*log4shib*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*curl-openssl*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*xmltooling*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*libsaml*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*opensaml*
-rpmbuild -ba --clean shibboleth.spec
-rpmspec -q --rpms shibboleth.spec > ${EXT_BASE}/out/shibboleth.rpms
-rpmspec -q --srpm shibboleth.spec > ${EXT_BASE}/out/shibboleth.srpm
-createrepo_c ${EXT_BASE}/out/RPMS/${arch}
diff --git a/os/amazonlinux2/image/build-xerces-c.sh b/os/amazonlinux2/image/build-xerces-c.sh
deleted file mode 100644
index 65bf41f..0000000
--- a/os/amazonlinux2/image/build-xerces-c.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-arch=$(rpm -E '%{_arch}')
-rpmbuild -ba --clean xerces-c.spec
-rpmspec -q --rpms xerces-c.spec > ${EXT_BASE}/out/xerces-c.rpms
-rpmspec -q --srpm xerces-c.spec > ${EXT_BASE}/out/xerces-c.srpm
-createrepo_c ${EXT_BASE}/out/RPMS/${arch}
diff --git a/os/amazonlinux2/image/build-xml-security-c.sh b/os/amazonlinux2/image/build-xml-security-c.sh
deleted file mode 100644
index ebe6d93..0000000
--- a/os/amazonlinux2/image/build-xml-security-c.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-arch=$(rpm -E '%{_arch}')
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*xerces*
-rpmbuild -ba --clean xml-security-c.spec
-rpmspec -q --rpms xml-security-c.spec > ${EXT_BASE}/out/xml-security-c.rpms
-rpmspec -q --srpm xml-security-c.spec > ${EXT_BASE}/out/xml-security-c.srpm
-createrepo_c ${EXT_BASE}/out/RPMS/${arch}
diff --git a/os/amazonlinux2/image/build-xmltooling.sh b/os/amazonlinux2/image/build-xmltooling.sh
deleted file mode 100644
index 2c5b768..0000000
--- a/os/amazonlinux2/image/build-xmltooling.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-arch=$(rpm -E '%{_arch}')
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*xerces*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*log4shib*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*xml-security-c*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*curl-openssl*
-rpmbuild -ba --clean xmltooling.spec
-rpmspec -q --rpms xmltooling.spec > ${EXT_BASE}/out/xmltooling.rpms
-rpmspec -q --srpm xmltooling.spec > ${EXT_BASE}/out/xmltooling.srpm
-createrepo_c ${EXT_BASE}/out/RPMS/${arch}
diff --git a/os/centos7/image/build-curl-openssl.sh b/os/centos7/image/build-curl-openssl.sh
deleted file mode 100644
index ffd9449..0000000
--- a/os/centos7/image/build-curl-openssl.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-arch=$(rpm -E '%{_arch}')
-rpmbuild -ba --clean curl-openssl.spec
-rpmspec -q --rpms curl-openssl.spec > ${EXT_BASE}/out/curl-openssl.rpms
-rpmspec -q --srpm curl-openssl.spec > ${EXT_BASE}/out/curl-openssl.srpm
-createrepo_c ${EXT_BASE}/out/RPMS/${arch}
diff --git a/os/centos7/image/build-log4shib.sh b/os/centos7/image/build-log4shib.sh
deleted file mode 100644
index 354f96a..0000000
--- a/os/centos7/image/build-log4shib.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-arch=$(rpm -E '%{_arch}')
-rpmbuild -ba --clean log4shib.spec
-rpmspec -q --rpms log4shib.spec > ${EXT_BASE}/out/log4shib.rpms
-rpmspec -q --srpm log4shib.spec > ${EXT_BASE}/out/log4shib.srpm
-createrepo_c ${EXT_BASE}/out/RPMS/${arch}
diff --git a/os/centos7/image/build-opensaml.sh b/os/centos7/image/build-opensaml.sh
deleted file mode 100644
index 88fee83..0000000
--- a/os/centos7/image/build-opensaml.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-arch=$(rpm -E '%{_arch}')
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*xerces*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*xml-security-c*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*log4shib*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*curl-openssl*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*xmltooling*
-rpmbuild -ba --clean opensaml.spec
-rpmspec -q --rpms opensaml.spec > ${EXT_BASE}/out/opensaml.rpms
-rpmspec -q --srpm opensaml.spec > ${EXT_BASE}/out/opensaml.srpm
-createrepo_c ${EXT_BASE}/out/RPMS/${arch}
diff --git a/os/centos7/image/build-shibboleth.sh b/os/centos7/image/build-shibboleth.sh
deleted file mode 100644
index 1065e67..0000000
--- a/os/centos7/image/build-shibboleth.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-arch=$(rpm -E '%{_arch}')
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*xerces*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*xml-security-c*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*log4shib*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*curl-openssl*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*xmltooling*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*libsaml*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*opensaml*
-rpmbuild -ba --clean shibboleth.spec
-rpmspec -q --rpms shibboleth.spec > ${EXT_BASE}/out/shibboleth.rpms
-rpmspec -q --srpm shibboleth.spec > ${EXT_BASE}/out/shibboleth.srpm
-createrepo_c ${EXT_BASE}/out/RPMS/${arch}
diff --git a/os/centos7/image/build-xerces-c.sh b/os/centos7/image/build-xerces-c.sh
deleted file mode 100644
index 65bf41f..0000000
--- a/os/centos7/image/build-xerces-c.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-arch=$(rpm -E '%{_arch}')
-rpmbuild -ba --clean xerces-c.spec
-rpmspec -q --rpms xerces-c.spec > ${EXT_BASE}/out/xerces-c.rpms
-rpmspec -q --srpm xerces-c.spec > ${EXT_BASE}/out/xerces-c.srpm
-createrepo_c ${EXT_BASE}/out/RPMS/${arch}
diff --git a/os/centos7/image/build-xml-security-c.sh b/os/centos7/image/build-xml-security-c.sh
deleted file mode 100644
index ebe6d93..0000000
--- a/os/centos7/image/build-xml-security-c.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-arch=$(rpm -E '%{_arch}')
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*xerces*
-rpmbuild -ba --clean xml-security-c.spec
-rpmspec -q --rpms xml-security-c.spec > ${EXT_BASE}/out/xml-security-c.rpms
-rpmspec -q --srpm xml-security-c.spec > ${EXT_BASE}/out/xml-security-c.srpm
-createrepo_c ${EXT_BASE}/out/RPMS/${arch}
diff --git a/os/centos7/image/build-xmltooling.sh b/os/centos7/image/build-xmltooling.sh
deleted file mode 100644
index 2c5b768..0000000
--- a/os/centos7/image/build-xmltooling.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-arch=$(rpm -E '%{_arch}')
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*xerces*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*log4shib*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*xml-security-c*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*curl-openssl*
-rpmbuild -ba --clean xmltooling.spec
-rpmspec -q --rpms xmltooling.spec > ${EXT_BASE}/out/xmltooling.rpms
-rpmspec -q --srpm xmltooling.spec > ${EXT_BASE}/out/xmltooling.srpm
-createrepo_c ${EXT_BASE}/out/RPMS/${arch}
diff --git a/os/centos8/image/build-log4shib.sh b/os/centos8/image/build-log4shib.sh
deleted file mode 100644
index 354f96a..0000000
--- a/os/centos8/image/build-log4shib.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-arch=$(rpm -E '%{_arch}')
-rpmbuild -ba --clean log4shib.spec
-rpmspec -q --rpms log4shib.spec > ${EXT_BASE}/out/log4shib.rpms
-rpmspec -q --srpm log4shib.spec > ${EXT_BASE}/out/log4shib.srpm
-createrepo_c ${EXT_BASE}/out/RPMS/${arch}
diff --git a/os/centos8/image/build-opensaml.sh b/os/centos8/image/build-opensaml.sh
deleted file mode 100644
index d1cb98b..0000000
--- a/os/centos8/image/build-opensaml.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-arch=$(rpm -E '%{_arch}')
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*xerces*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*xml-security-c*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*log4shib*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*xmltooling*
-rpmbuild -ba --clean opensaml.spec
-rpmspec -q --rpms opensaml.spec > ${EXT_BASE}/out/opensaml.rpms
-rpmspec -q --srpm opensaml.spec > ${EXT_BASE}/out/opensaml.srpm
-createrepo_c ${EXT_BASE}/out/RPMS/${arch}
diff --git a/os/centos8/image/build-shibboleth.sh b/os/centos8/image/build-shibboleth.sh
deleted file mode 100644
index afb087b..0000000
--- a/os/centos8/image/build-shibboleth.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-arch=$(rpm -E '%{_arch}')
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*xerces*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*xml-security-c*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*log4shib*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*xmltooling*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*{lib,open}saml*
-rpmbuild -ba --clean shibboleth.spec
-rpmspec -q --rpms shibboleth.spec > ${EXT_BASE}/out/shibboleth.rpms
-rpmspec -q --srpm shibboleth.spec > ${EXT_BASE}/out/shibboleth.srpm
-createrepo_c ${EXT_BASE}/out/RPMS/${arch}
diff --git a/os/centos8/image/build-xerces-c.sh b/os/centos8/image/build-xerces-c.sh
deleted file mode 100644
index 65bf41f..0000000
--- a/os/centos8/image/build-xerces-c.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-arch=$(rpm -E '%{_arch}')
-rpmbuild -ba --clean xerces-c.spec
-rpmspec -q --rpms xerces-c.spec > ${EXT_BASE}/out/xerces-c.rpms
-rpmspec -q --srpm xerces-c.spec > ${EXT_BASE}/out/xerces-c.srpm
-createrepo_c ${EXT_BASE}/out/RPMS/${arch}
diff --git a/os/centos8/image/build-xml-security-c.sh b/os/centos8/image/build-xml-security-c.sh
deleted file mode 100644
index ebe6d93..0000000
--- a/os/centos8/image/build-xml-security-c.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-arch=$(rpm -E '%{_arch}')
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*xerces*
-rpmbuild -ba --clean xml-security-c.spec
-rpmspec -q --rpms xml-security-c.spec > ${EXT_BASE}/out/xml-security-c.rpms
-rpmspec -q --srpm xml-security-c.spec > ${EXT_BASE}/out/xml-security-c.srpm
-createrepo_c ${EXT_BASE}/out/RPMS/${arch}
diff --git a/os/centos8/image/build-xmltooling.sh b/os/centos8/image/build-xmltooling.sh
deleted file mode 100644
index 68a2dfd..0000000
--- a/os/centos8/image/build-xmltooling.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-arch=$(rpm -E '%{_arch}')
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*xerces*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*log4shib*
-rpm --install ${EXT_BASE}/out/RPMS/x86_64/*xml-security-c*
-rpmbuild -ba --clean xmltooling.spec
-rpmspec -q --rpms xmltooling.spec > ${EXT_BASE}/out/xmltooling.rpms
-rpmspec -q --srpm xmltooling.spec > ${EXT_BASE}/out/xmltooling.srpm
-createrepo_c ${EXT_BASE}/out/RPMS/${arch}

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list