Re: Automating revision changes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Jul 29, 2006, at 1:59 PM, John Calcote wrote:

Thanks Jeff. This was just what I was hoping to hear. I wondered if I
was doing it in a funny way. Can you paste in some of your configuration
file that allows everything to end up in the same directory?


Use ftp://wraptastic.org/pub/jbj/{xrpm,rpmrc,macros} instead. (i.e. that's actually 3 files from 3 different url's expressed using shell shorthand {xrpm,macros,rpmrc} ).

Pasting 3 different files is messy.

hth

73 de Jeff

John

Jeff Johnson <n3npq.jbj@xxxxxxxxx> 7/29/2006 9:41 AM >>>

On Jul 29, 2006, at 5:06 AM, John Calcote wrote:

I was wondering if there was already a well-considered way to add
rpm
build capabilities to an Automake build system.

Here's my root-level Makefile.am:

------

EXTRA_DIST = arf.spec schema win32 doxygen examples
SUBDIRS = src test

dist-hook:
        rm -rf `find $(distdir) -name .svn`

.PHONY: rpmdir srcrpm rpms

rpmdir:
        -mkdir -p rpm/BUILD rpm/RPMS rpm/SOURCES rpm/SPECS rpm/SRPMS


Unless you *really* want the clutter of
{BUILD,RPMS,SOURCES,SPECS,SRPMS}, you
might want to think about configuring rpmbuild to put all the build
elements into one
sub-directory.

See ftp://wraptastic.org/pub/jbj/{xrpm,rpmrc,macros} for an explicit
example.

My build cycle looks like
     xrpm -ivh foo*.src.rpm
     cd /X/foo
     xrpm -ba foo.spec
     xrpm -Uvh foo*.i386.rpm
     cd ..
     rm -rf foo
which is probably far simpler to write and maintain as Makefile rules.

xrpm is just a stupid wrapper to invoke
     rpmbuild --rcfile /X/rpmrc ...
in order to bring in the per-package-directory build configuration.

srcrpm: dist-bzip2 rpmdir
        rpmbuild -ts --define='_topdir $(PWD)/rpm'
$(distdir).tar.bz2

rpms: dist-bzip2 rpmdir
        rpmbuild -ta --define='_topdir $(PWD)/rpm'
--buildroot=$(PWD)/rpm/tmp $(distdir).tar.bz2

------

I was also wondering if there was a good way to automate revision
changes in spec files, makefiles, etc. I use subversion for my
repository, and it occurs to me that a good way to tell if I even
need a
build is to compare the root-level "svn info" Revision: tag with the
last time I built. -- Revisions the same? No need to build again! --


There's a number of ways to automate the revision, depending on
what you wish to achieve.

For starters, there is a CvsID: tag in spec files (in rpm-4.4.7, I
fergit when added),
that will permit tracking what CVS revision was used for then build.
IIRC, there is
SvnID: as well, an alias for the same header tag.

There's certainly no reason why the Release: tag cannot be used to
carry the
repository identifier. One would have to insure that the repository
identifier
preserved upgradeability.

Automating is probably achieved most simply by modifying a spec file
template
using sed or m4 before building. Not hard at all with Makefile rules
and file
timestamp dependencies.

hth

73 de Jeff

_______________________________________________
Rpm-list mailing list
Rpm-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/rpm-list

_______________________________________________
Rpm-list mailing list
Rpm-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/rpm-list

_______________________________________________
Rpm-list mailing list
Rpm-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/rpm-list

[Index of Archives]     [RPM Ecosystem]     [Linux Kernel]     [Red Hat Install]     [PAM]     [Red Hat Watch]     [Red Hat Development]     [Red Hat]     [Gimp]     [Yosemite News]     [IETF Discussion]

  Powered by Linux