Add a "spec" target to create an RPM spec file from a template. Also include this spec file in the "tarball" target, so the tarball can conveniently be transformed into an RPM by running "rpmbuild -tb". Signed-off-by: Florian Haas <florian.haas@xxxxxxxxxx> --- Makefile | 30 +++++++++++++++++- tgt.spec.in | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 125 insertions(+), 2 deletions(-) create mode 100644 tgt.spec.in diff --git a/Makefile b/Makefile index 1a443ee..aaa718a 100644 --- a/Makefile +++ b/Makefile @@ -12,6 +12,9 @@ # VERSION variable defined on the command line. include version-stamp +# This spec is generated from a template with "make spec", see below +SPECFILE = tgt.spec + # This tarball is generated by "make tarball", see below TARBALL = tgt-$(VERSION).tar.bz2 @@ -92,7 +95,22 @@ clean-version-stamp: .PHONY: install install: install-programs install-doc install-conf install-scripts -$(TARBALL): clean version-stamp all +# Our spec file is created from a template where VERSION is set to the +# version-stamp magic. +$(SPECFILE): $(SPECFILE).in + sed -e 's/@VERSION@/$(VERSION)/' $< > $@ + +.PHONY: spec +spec: $(SPECFILE) + +.PHONY: clean-spec +clean-spec: + rm -f $(SPECFILE) + +# The tarball contains the version stamp and the autogenerated spec +# file. Thus it supports both the regular make/make install +# installation, and "rpmbuild -tb". +$(TARBALL): clean version-stamp all $(SPECFILE) tar -cjf $@ \ --transform 's,^,tgt-$(VERSION)/,' \ --exclude=*~ \ @@ -106,9 +124,17 @@ tarball: $(TARBALL) clean-tarball: rm -f $(TARBALL) +# This is just a convenience target that will roll a binary RPM out of +# the tarball. Note that the RPM is not necessary built within your +# checkout or expanded tarball; instead your settings apply as set in +# your ~/.rpmmacros configuration. +.PHONY: rpm +rpm: $(TARBALL) + rpmbuild -tb $(TARBALL) + # clean-version-stamp is intentionally not included in # clean. Otherwise, when clean is invoked in an expanded tarball, you # would afterwards have to specify VERSION explicitly on your next # build, or your build would fail. .PHONY: clean -clean: clean-programs clean-doc clean-conf clean-scripts clean-tarball +clean: clean-programs clean-doc clean-conf clean-scripts clean-spec clean-tarball diff --git a/tgt.spec.in b/tgt.spec.in new file mode 100644 index 0000000..140275d --- /dev/null +++ b/tgt.spec.in @@ -0,0 +1,97 @@ +Name: tgt +Version: @VERSION@ +Release: 1 +Summary: The SCSI target daemon and utility programs + +Group: System Environment/Daemons +License: GPLv2 +URL: http://stgt.berlios.de +Source0: http://stgt.berlios.de/releases/%{name}-%{version}.tar.bz2 + +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +BuildRequires: openssl-devel pkgconfig libibverbs-devel librdmacm-devel +Requires: /sbin/chkconfig /sbin/service +Obsoletes: scsi-target-utils +Conflicts: scsi-target-utils +ExcludeArch: s390 s390x + +%description +The SCSI target package contains the daemon and tools to setup a SCSI targets. +Currently, software iSCSI targets are supported. + +%prep +%setup -q + +%build +if pkg-config openssl ; then + CPPFLAGS=$(pkg-config --cflags openssl) ; export CPPFLAGS + LDFLAGS=$(pkg-config --libs openssl) ; export LDFLAGS +fi +%{__make} %{?_smp_mflags} ISCSI=1 ISCSI_RDMA=1 VERSION=%{version} + +%install +%{__rm} -rf %{buildroot} +%{__make} install DESTDIR=%{buildroot} + +%post +/sbin/chkconfig --add tgtd + +%postun +if [ "$1" = "1" ] ; then + /sbin/service tgtd condrestart > /dev/null 2>&1 +fi + +%preun +if [ "$1" = "0" ] ; then + /sbin/chkconfig tgtd stop > /dev/null 2>&1 + /sbin/chkconfig --del tgtd +fi + +%clean +%{__rm} -rf %{buildroot} + +%files +%defattr(-, root, root, -) +%doc doc/TODO doc/README.fcoe doc/README.ibmvstgt doc/README.iscsi doc/README.iser doc/README.lu_configuration doc/README.mmc doc/targets.conf.example doc/tmf.txt +%{_sbindir}/tgtd +%{_sbindir}/tgtadm +%{_sbindir}/tgtimg +%{_sbindir}/tgt-admin +%{_sbindir}/tgt-setup-lun +%{_mandir}/man8/* +%{_sysconfdir}/init.d/tgtd +%attr(0600,root,root) %config(noreplace) /etc/sysconfig/tgtd +%attr(0600,root,root) %config(noreplace) /etc/tgt/targets.conf + +%changelog +* Tue Sep 8 2009 Florian Haas <florian.haas@xxxxxxxxxx> - 0.9.8-1 +- Add spec file, sysconfig file, and init script originally only found + in Red Hat packages. + +* Mon Aug 4 2008 Mike Christie <mchristie@xxxxxxxxxx> - 0.0-5.20080917snap +- Rebase to latest upstream snapshot to include tgt-admin and static config. +- When doing a "tgtd stop" kill running targets if run level indicates +system is shutting down or restarting. + +* Sun Feb 10 2008 Terje Rosten <terje.rosten@xxxxxxx> - 0.0-4.20071227snap +- update to 20071227 snapshot +- add patch to compile with newer glibc + +* Sat Feb 9 2008 Terje Rosten <terje.rosten@xxxxxxx> - 0.0-3.20070803snap +- rebuild + +* Sun Dec 07 2007 Alex Lancaster <alexlan[AT]fedoraproject.org> - 0.0-2.20070803snap +- Rebuild for new openssl soname bump + +* Wed Sep 26 2007 Terje Rosten <terje.rosten@xxxxxxx> - 0.0-1.20070803snap +- random cleanup + +* Wed Sep 26 2007 Terje Rosten <terje.rosten@xxxxxxx> - 0.0-0.20070803snap +- update to 20070803 +- fix license tag +- use date macro +- build with correct flags (%%optflags) + +* Tue Jul 10 2007 Mike Christie <mchristie@xxxxxxxxxx> - 0.0-0.20070620snap +- first build -- 1.6.0.4 -- To unsubscribe from this list: send the line "unsubscribe stgt" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html