[PATCH] Added 'make rpm' First crack at creating a 'make rpm' command.

Shawn Wells shawn at redhat.com
Mon Apr 2 17:19:24 UTC 2012


(1) 'make rpm' now exists, you can use that or 'make all' for desired effect.
RPMs will be placed into ${OUT}/RPMS until they get a bit more vetted

(2) I put a few notes inside of the 'make rpm' section, please follow them!
There is an expectation that rpm-build is installed as is your rpmbuild
directory structure.

(3) I have the RPM install to /usr/local/scap-security-guide/. We can easily change this,
thoughts and patches welcome.

(4) For this initial build I'm on RHEL6. It *should* work for Fedora but testing is needed.
---
 rhel6/src/.gitignore                               |    1 +
 rhel6/src/Makefile                                 |   35 ++++++++++-
 .../input/rpmbuild/scap-security-guide-alpha.spec  |   64 ++++++++++++++++++++
 rhel6/src/output/.gitignore                        |    5 ++
 4 files changed, 102 insertions(+), 3 deletions(-)
 create mode 100644 rhel6/src/input/rpmbuild/scap-security-guide-alpha.spec

diff --git a/rhel6/src/.gitignore b/rhel6/src/.gitignore
index e69de29..4852292 100644
--- a/rhel6/src/.gitignore
+++ b/rhel6/src/.gitignore
@@ -0,0 +1 @@
+scap-security-guide-*/
diff --git a/rhel6/src/Makefile b/rhel6/src/Makefile
index 9d62ace..8649f66 100644
--- a/rhel6/src/Makefile
+++ b/rhel6/src/Makefile
@@ -2,9 +2,9 @@ IN=input
 OUT=output
 TRANS=transforms
 REFS=references
-DIST=dist
+DIST=scap-security-guide-alpha
 
-all: shorthand-guide shorthand2xccdf tables guide checks content dist
+all: shorthand-guide shorthand2xccdf tables guide checks content dist rpm
 
 shorthand-guide:
 	xsltproc -o ${OUT}/rhel6-shorthand.xml ${IN}/guide.xslt ${IN}/guide.xml
@@ -77,6 +77,35 @@ dist: content guide tables
 	cp ${OUT}/rhel6-table-cnssrefs.html ${DIST}/policytables
 	cp ${OUT}/rhel6-table-dcidrefs.html ${DIST}/policytables
 
+rpm: dist
+
+	# A few quick notes on preparing your system to build the SSG RPMs:
+	# (1) May the flies of a thousand horses annoy you for eternity
+	#     if you build an RPM as root. Don't do it!
+	# (2) This build process assumes you have your rpmbuild structure setup
+	# 	$ sudo yum -y install rpm-build
+	# 	$ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
+	# (3) The value if ${DIST} in this Makefile needs to match
+	#     the %{name}-%{version} string from the .spec file, i.e.
+	#     scap-security-guide-alpha
+	# (4) If you're making an RPM, chances are the code has changed. Make
+	#     sure you update the %changelog in the .spec to reflect what's new
+
+	# copy template .spec over to rpmbuild
+	cp ${IN}/rpmbuild/scap-security-guide-alpha.spec ${OUT}/
+
+	# tar up the sources
+	tar -zcvf ${OUT}/scap-security-guide-alpha.tar.gz ${DIST}
+	mv ${OUT}/scap-security-guide-alpha.tar.gz ~/rpmbuild/SOURCES/
+	
+	# let's see if a build works
+	rpmbuild -ba ${OUT}/scap-security-guide-alpha.spec
+
+	# Our RPM(s) will be waiting for us in ${HOMEDIR}, so copy them back
+	mv ~/rpmbuild/RPMS/ ${OUT}/
+
+
 clean:
-	rm -f ${OUT}/*.xml ${OUT}/*.html ${OUT}/*.pdf 
+	rm -f ${OUT}/*.xml ${OUT}/*.html ${OUT}/*.pdf  ${OUT}/*.spec ${OUT}/*.tar ${OUT}/*.gz ${OUT}/*.ini
 	rm -f ${DIST}/policytables/*.html ${DIST}/guide/*.html ${DIST}/content/*.xml
+	rm -rf ${OUT}/RPMS/
diff --git a/rhel6/src/input/rpmbuild/scap-security-guide-alpha.spec b/rhel6/src/input/rpmbuild/scap-security-guide-alpha.spec
new file mode 100644
index 0000000..01ad83f
--- /dev/null
+++ b/rhel6/src/input/rpmbuild/scap-security-guide-alpha.spec
@@ -0,0 +1,64 @@
+Name:           scap-security-guide
+Version:        alpha
+Release:        1%{?dist}
+Summary:        The scap-security-guide project, or SSG for short, aims to deliver security guidance, baselines, and associated validation mechanisms for Red Hat Enterprise Linux.
+
+Group:          Testing
+License:        GPL
+URL:            https://fedorahosted.org/scap-security-guide/
+
+Source0:        %{name}-%{version}.tar.gz
+BuildRoot:      %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
+
+BuildArch:	noarch
+
+BuildRequires:  /bin/rm, /bin/mkdir, /bin/cp
+Requires:       /bin/bash, /bin/date, /usr/bin/oscap
+
+%description
+Today the SSG project provides guidance against U.S. Government requirements, 
+including those of the U.S. Department of Defense and U.S. Intelligence Community.
+Many U.S. Government policies, such as NIST 800-53 provide prose stating that
+System Administrators must audit "privileged user actions," but do not define
+what such actions are. The SSG bridges the gap between generalized U.S.
+Government Policy and specific implementation guidance.
+
+To lean more about the SCAP Security Guide project, please
+visit https://fedorahosted.org/mailman/listinfo/scap-security-guide. Here
+you will be able to find documentation, support, and information on getting
+involved in the SCAP Security Guide community.
+
+%prep
+%setup -q
+
+
+%build
+#configure
+#`make %{?_smp_mflags}
+
+
+%install
+rm -rf $RPM_BUILD_ROOT
+#make install DESTDIR=$RPM_BUILD_ROOT
+mkdir -p $RPM_BUILD_ROOT/usr/local/%{name}/content
+mkdir -p $RPM_BUILD_ROOT/usr/local/%{name}/guide
+mkdir -p $RPM_BUILD_ROOT/usr/local/%{name}/policytables
+mkdir -p $RPM_BUILD_ROOT/usr/local/%{name}/STIG-draft
+mkdir -p $RPM_BUILD_ROOT/usr/local/%{name}/USGCB-submission
+
+cp -r * $RPM_BUILD_ROOT/usr/local/%{name}/
+
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+
+%files
+%defattr(-,root,root,-)
+%doc
+
+%attr(0750,root,root)/usr/local/scap-security-guide/
+
+%changelog
+* Mon Apr 02 2012 Shawn Wells <shawn at redhat.com> 1.0-1
+- First attempt at SSG RPM. May ${diety} help us...
diff --git a/rhel6/src/output/.gitignore b/rhel6/src/output/.gitignore
index 7206c02..4bbeae5 100644
--- a/rhel6/src/output/.gitignore
+++ b/rhel6/src/output/.gitignore
@@ -3,3 +3,8 @@
 *.html
 *.pdf
 *.ini
+*.spec
+*.tar
+*.gz
+scap-security-guide-*/
+RPMS/
-- 
1.7.1


--GvXjxJ+pjyke8COw--


More information about the scap-security-guide mailing list