Skip to content

Repository Source Tree To Distribution Tree

ldo edited this page Sep 13, 2010 · 19 revisions

How to convert a source tree, newly checked out from the repository, into the set of files found in the distribution tarball.

All the following steps have been rolled into the included make-dist script.

Files in repository but not in distribution:

./: sfupload

doc/: dvdauthor.sgml, dvdunauthor.sgml, html.dsl, iso639.sgml , root.sgml, spuunmux.sgml, dvddirdel.sgml, examples.sgml, mpeg2desc.sgml, spumux.sgml

Files in distribution but not in repository (automatically generated from above):

./: aclocal.m4, autotools/, configure, dvdauthor.spec, Makefile.in

autotools/: config.guess, config.rpath, config.sub, depcomp, install-sh, missing

src/: Makefile.in, config.h.in, dvdvml.c, dvdvmy.c, dvdvmy.h

doc/: Makefile.in, dvdauthor.1, dvddirdel.1, dvdunauthor.1, mpeg2desc.1, spumux.1, spuunmux.1

Generation Steps

Additional software needed: GNU autotools, bison, docbook-sgml-tools, flex, gettext.

rm -rf .git

This is a copy of the source files, right?

mkdir autotools
aclocal
autoheader
cp /usr/share/gettext/config.rpath autotools/
automake --add-missing
autoconf
(cd src; flex -s -B -Cem -odvdvml.c -Pdvdvm dvdvml.l) # or see below
(cd src; bison -o dvdvmy.c -d -p dvdvm dvdvmy.y) # or see below
(cd doc; docbook2man root.sgml) # or see below
# dvdauthor.spec -- see below
rm -rf autom4te.cache
rm doc/manpage.links doc/manpage.refs

Note the configure etc files generated will not be exactly identical if you have a newer version of autotools and the other support packages. I wouldn’t worry too much about this. Note also that gettextize will symlink, not copy, various files into the autotools subdirectory; this is why the tarball creation (below) needs to include the h switch.

The only easy way I can figure out to build dvdauthor.spec is to run configure:

./configure
make dvdauthor.spec

In which case you can use the Makefiles to build the manpages and dvdvm__x__ stuff (in place of the lines above marked “or see below”):

make -C src dvdvml.c dvdvmy.c dvdvmy.h
make -C doc manpages

Perhaps dvdauthor.spec should not have been included in the distribution tree?

If you did build it, delete the stuff created by the ./configure run:

rm config.log config.status Makefile doc/Makefile src/Makefile src/config.h src/stamp-h1
rm -rf src/.deps

And finally delete the source files not included in the distribution tree:

rm doc/*.sgml doc/html.dsl sfupload

When creating the tarball, don’t forget to include the h option to dereference symlinks:

cd ..
tar czhvf dvdauthor.tar.gz dvdauthor/