All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chris Wright <chrisw@osdl.org>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: Petr Baudis <pasky@ucw.cz>, Chris Wright <chrisw@osdl.org>,
	Mark Allen <mrallen1@yahoo.com>,
	git@vger.kernel.org
Subject: Re: [PATCH 0/3] cogito spec file updates
Date: Wed, 4 May 2005 08:27:09 -0700	[thread overview]
Message-ID: <20050504152709.GG5324@shell0.pdx.osdl.net> (raw)
In-Reply-To: <4278DE7D.3000005@zytor.com>

* H. Peter Anvin (hpa@zytor.com) wrote:
> What I usually do is to have a *.spec.in file, and have my release 
> script generate the *.spec file.  I usually have a "version" file 
> checked into the SCM from which all version information derives, 
> including what to put in the *.spec file as well as what to name the 
> subdirectory.
> 
> The release script then ends up being some variant on:
> 
> #!/bin/sh -xe
> PACKAGE=pkgname
> VERSION=`cat version`
> scm-of-choice tag --force $PACKAGE-$VERSION
> mkdir /var/tmp/$PACKAGE-$VERSION
> cd /var/tmp/$PACKAGE-$VERSION
> scm-of-choice export -r $PACKAGE-$VERSION
> make release
> cd ..
> tar cvvfz $PACKAGE-$VERSION.tar.gz $PACKAGE-$VERSION
> rm -rf $PACKAGE-$VERSION
> 
> ... where "make release" creates the specfile and anything else that 
> needs to be created (like autoconf files.)

Yup, that's precisely what I was thinking.  I cobbled up an add-on to
Mark Allen's patch yesterday, but didn't send it since Pasky didn't seem
too interested in the idea.  Anyway, here it is to demonstrate the idea.
The current setup is definitely workable, just means each release tarball
will build a bogus package with rpmbuild -ta.  So I just fix up the spec
and then build...

thanks,
-chris
--



Autogen git.spec from git.spec.in.  Needs patch from Mark Allen.

Signed-off-by: Chris Wright <chrisw@osdl.org>

--- cogito/Makefile~orig	2005-05-03 14:41:50.000000000 -0700
+++ cogito/Makefile	2005-05-03 15:53:36.000000000 -0700
@@ -126,6 +126,8 @@
 	@chmod +x $@
 endif
 
+git.spec: git.spec.in $(VERSION) 
+	sed -e 's/@@VERSION@@/$(shell cat $(VERSION) | cut -d"-" -f2)/g' < $< > $@
 
 install: $(PROG) $(SCRIPTS) $(SCRIPT) $(GEN_SCRIPT)
 	install -m755 -d $(DESTDIR)$(bindir)
@@ -141,10 +143,10 @@
 backup: clean
 	cd .. ; tar czvf dircache.tar.gz dir-cache
 
-release-tar-gzip: clean
+release-tar-gzip: clean git.spec
 	tar czf $(shell cat $(VERSION)).tar.gz *.c *.h git.spec Makefile $(DOCS) $(DIRS) $(SCRIPTS) $(SCRIPT) 
 
-release-tar-bzip2: clean
+release-tar-bzip2: clean git.spec
 	tar cjf $(shell cat $(VERSION)).tar.bz2 *.c *.h git.spec Makefile $(DOCS) $(DIRS) $(SCRIPTS) $(SCRIPT) 
 
 release-tarballs: release-tar-gzip release-tar-bzip2
--- cogito/git.spec~orig	2005-05-03 14:41:59.000000000 -0700
+++ cogito/git.spec	2005-05-03 14:42:55.000000000 -0700
@@ -1,55 +0,0 @@
-Name: 		cogito
-Version: 	0.8
-Release: 	2
-Vendor: 	Petr Baudis <pasky@ucw.cz>
-Summary:  	Git core and tools
-License: 	GPL
-Group: 		Development/Tools
-URL: 		http://kernel.org/pub/software/scm/cogito/
-Source: 	http://kernel.org/pub/software/scm/cogito/%{name}-%{version}.tar.bz2
-Provides: 	cogito = %{version}
-Obsoletes:	git
-BuildRequires:	zlib-devel, openssl-devel, curl-devel
-BuildRoot:	%{_tmppath}/%{name}-%{version}-root
-Prereq: 	sh-utils, diffutils, rsync, rcs, mktemp >= 1.5
-
-%description
-GIT comes in two layers. The bottom layer is merely an extremely fast
-and flexible filesystem-based database designed to store directory trees
-with regard to their history. The top layer is a SCM-like tool which
-enables human beings to work with the database in a manner to a degree
-similar to other SCM tools (like CVS, BitKeeper or Monotone).
-
-%prep
-%setup -q
-
-%build
-
-make
-
-%install
-rm -rf $RPM_BUILD_ROOT
-make DESTDIR=$RPM_BUILD_ROOT prefix=%{_prefix} install
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-%files
-%defattr(-,root,root)
-/usr/bin/*
-%doc README README.reference COPYING Changelog
-
-%changelog
-* Wed Apr 27 2005 Terje Rosten <terje.rosten@ntnu.no> 0.8-2
-- Doc files
-- Use %%{_prefix} macro
-- Drop -n option to %%setup macro
-
-* Mon Apr 25 2005 Chris Wright <chrisw@osdl.org> 0.8-1
-- Update to cogito, rename package, move to /usr/bin, update prereqs
-
-* Mon Apr 25 2005 Chris Wright <chrisw@osdl.org> 0.7-1
-- Update to 0.7
-
-* Thu Apr 21 2005 Chris Wright <chrisw@osdl.org> 0.6.3-1
-- Initial rpm build
--- cogito/git.spec.in~orig	2005-05-03 14:42:20.000000000 -0700
+++ cogito/git.spec.in	2005-05-03 14:44:19.000000000 -0700
@@ -0,0 +1,58 @@
+Name: 		cogito
+Version: 	@@VERSION@@
+Release: 	1
+Vendor: 	Petr Baudis <pasky@ucw.cz>
+Summary:  	Git core and tools
+License: 	GPL
+Group: 		Development/Tools
+URL: 		http://kernel.org/pub/software/scm/cogito/
+Source: 	http://kernel.org/pub/software/scm/cogito/%{name}-%{version}.tar.bz2
+Provides: 	cogito = %{version}
+Obsoletes:	git
+BuildRequires:	zlib-devel, openssl-devel, curl-devel
+BuildRoot:	%{_tmppath}/%{name}-%{version}-root
+Prereq: 	sh-utils, diffutils, rsync, rcs, mktemp >= 1.5
+
+%description
+GIT comes in two layers. The bottom layer is merely an extremely fast
+and flexible filesystem-based database designed to store directory trees
+with regard to their history. The top layer is a SCM-like tool which
+enables human beings to work with the database in a manner to a degree
+similar to other SCM tools (like CVS, BitKeeper or Monotone).
+
+%prep
+%setup -q
+
+%build
+
+make
+
+%install
+rm -rf $RPM_BUILD_ROOT
+make DESTDIR=$RPM_BUILD_ROOT prefix=%{_prefix} install
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(-,root,root)
+/usr/bin/*
+%doc README README.reference COPYING Changelog
+
+%changelog
+* Tue May 3 2005 Chris Wright <chrisw@osdl.org>
+- Auto build from git.spec.in
+
+* Wed Apr 27 2005 Terje Rosten <terje.rosten@ntnu.no> 0.8-2
+- Doc files
+- Use %%{_prefix} macro
+- Drop -n option to %%setup macro
+
+* Mon Apr 25 2005 Chris Wright <chrisw@osdl.org> 0.8-1
+- Update to cogito, rename package, move to /usr/bin, update prereqs
+
+* Mon Apr 25 2005 Chris Wright <chrisw@osdl.org> 0.7-1
+- Update to 0.7
+
+* Thu Apr 21 2005 Chris Wright <chrisw@osdl.org> 0.6.3-1
+- Initial rpm build

  parent reply	other threads:[~2005-05-04 15:21 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-05-03 18:28 [PATCH 0/3] cogito spec file updates Chris Wright
2005-05-03 18:30 ` [PATCH 1/3] cogito spec file 0.7-1 Chris Wright
2005-05-03 18:32   ` [PATCH 2/3] cogito spec file 0.8-1 Chris Wright
2005-05-03 18:33     ` [PATCH 3/3] cogito spec file 0.8-2 Chris Wright
2005-05-03 19:35 ` [PATCH 0/3] cogito spec file updates Chris Wright
2005-05-03 21:21   ` Petr Baudis
2005-05-03 21:15     ` [PATCH] release tarball make targets Mark Allen
2005-05-03 21:32     ` [PATCH 0/3] cogito spec file updates Chris Wright
2005-05-03 21:44       ` Petr Baudis
2005-05-03 23:01         ` Chris Wright
2005-05-04 14:38         ` H. Peter Anvin
2005-05-04 14:54           ` Horst von Brand
2005-05-04 15:01             ` H. Peter Anvin
2005-05-04 15:27           ` Chris Wright [this message]
2005-05-04  1:00   ` Horst von Brand

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20050504152709.GG5324@shell0.pdx.osdl.net \
    --to=chrisw@osdl.org \
    --cc=git@vger.kernel.org \
    --cc=hpa@zytor.com \
    --cc=mrallen1@yahoo.com \
    --cc=pasky@ucw.cz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.