|
From: H. <so...@ha...> - 2006-08-22 18:13:09
|
tir, 22 08 2006 kl. 15:10 +0200, skrev David Bateman:
> >I think it makes sense to let release.sh (or whatever we call the scri=
pt
> >that makes tarballs) check if a Makefile exist in the package director=
y.
> >If a Makefile exist in the package directory we run
> > make -C package_dir release
> >Then the package maintainer can basicly do what ever he/she wants at
> >release-time.
> > =20
> >
> What, about something like in the attached patch. This essentially
> replaces your release.sh script with a Makefile, that if there is a
> Makefile in the sub-directory to uses this to define a variable
> PKG_FILES with the files to include in the package. It equally gives th=
e
> developer of the package access to three targets pre-pkg/%::,
> post-pkg/%::, and clean: that allow the developer to do things prior an=
d
> post creation of the package and define what needs to be done to clean
> up the directory.
I've just had a look at your patch, and I must say it looks good. I
wouldn't have been able to do this with out a lot of work (I think the
make language is hard).
> Note this code relies on the Makeconf in the root directory, and that I
> haven't addressed this issue yet.=20
Why does it rely on ../Makeconf? What does that file give us, that's
relevant in this situation?
> Therefore, "./configure" should be run
> in the root and "make" should be run in the "main/" directory. The
> packages can then be found in packages/*.tar.gz which will allow your
> overall tar-ball to be created as a seperate process.
The overall tar-ball should be a single tar-ball containing the
uncompressed packages, so I think it makes sense to integrate it's
creation into the process. (Personaly I don't see the great need for
this bundle package, but Paul thought it would be a good thing to have)
> I've converted the
> comm/ sub-directory to use the new make architecture to specify how to
> treat the doc/ sub-directory.
I've tried to run make, but I get the following error:
...
make[2]: Entering directory `/home/sh/Download/octave-forge/main/comm'
make[2]: `post-pkg/comm' is up to date.
make[2]: Leaving directory `/home/sh/Download/octave-forge/main/comm'
make[1]: Leaving directory `/home/sh/Download/octave-forge/main/comm'
ver=3D`grep "Version:" audio/DESCRIPTION | sed -e "s/Version: *//"`; \
tar -zcf ../packages/audio-$ver.tar.gz audio/COPYING
audio/DESCRIPTION audio/INDEX audio/inst/au.m audio/inst/aucapture.m
audio/inst/auload.m audio/inst/auplot.m audio/inst/aurecord.m
audio/inst/ausave.m audio/inst/clip.m audio/inst/sound.m
audio/inst/soundsc.m audio/src/FILES audio/src/Makeconf.add
audio/src/Makeconf.base audio/src/Makeconf.in audio/src/Makefile
audio/src/aurecord.cc audio/src/autogen.sh audio/src/autom4te.cache
audio/src/configure audio/src/configure.add audio/src/configure.base
audio/src/endpoint.cc audio/src/endpoint.h audio/src/install-sh
audio/src/octinst.sh.in
ver=3D`grep "Version:" autom4te.cache/DESCRIPTION | sed -e "s/Version:
*//"`; \
tar -zcf ../packages/autom4te.cache-$ver.tar.gz
autom4te.cache/COPYING autom4te.cache/DESCRIPTION
grep: autom4te.cache/DESCRIPTION: No such file or directory
tar: autom4te.cache/COPYING: Cannot stat: No such file or directory
tar: autom4te.cache/DESCRIPTION: Cannot stat: No such file or directory
tar: Error exit delayed from previous errors
make: *** [dopkg2/autom4te.cache] Error 2
> There is still quite a bit to do in this infrastructure, but I believe
> this is a good way forward as it gives the developer complete control o=
f
> what to include in the package. We'll need to address the toplevel,
> configure, extras and non-free directories before using it for the
> majority of users.
>=20
> Thoughts?
I think this is the right approach.
S=C3=B8ren
|