[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