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/
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.