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

[PATCH] Moving anaconda to autoconf/automake



This was a backburner project I had for a while, but I've updated it to work with the latest source tree and feel now (early in F-12), it's a good time to look at something like this.

The patch is large, but I've run it through splitdiff so you can look at
each file change:

    http://dcantrel.fedoraproject.org/anaconda/autognu/

Highlights:

1) configure.ac is the main file for ./configure.  Each subdirectory
   includes a Makefile.am file.

2) I also moved the po/ subdirectory to using the autoconf templates
   provided by GNU gettext.  This requires maintenance of the
   po/POTFILES.in and po/LINGUAS files, but beyond that the Makefile
   template takes care of the rest, including anaconda.pot.

3) anaconda.spec is changed to anaconda.spec.in.  The actual spec file
   is generated as part of 'make dist'.  The spec file has also been
   changed to run ./configure.

4) Speaking of ./configure, I added options for SELinux and other things
   that we had as conditionals in Makefiles (however, they may no longer
   be completely conditional in the code).  The default settings are
   what we had as defaults before.

5) The 'make bumpver' target increments the version number in
   configure.ac rather than the spec file.

6) The 'make rpmlog' target adds changelog data to anaconda.spec.in.  I
   also removed changelog data older than Jan 1, 2008.

7) 'make archive-no-tag' has been replaced by the 'make dist' target
   provided by automake.

8) Library function and header tests are in configure.ac.  We can expand
   these as much as we want as find ourselves fighting with various
   library version differences.

9) The release procedure will be slightly different using
   autoconf/automake.  You will need to run ./bootstrap, then
   ./configure, make bumpver, commit, make dist.  The READ_ME.txt file
   at the URL above explains it.

I changed around the structure of the liveinst/ subdirectory as well so I could make better use of the automake rules. There is now a console.apps and pam.d subdirectory.

I have uploaded a sample archive generated by 'make dist'.  To build
anaconda, do:

    ./configure --prefix=/usr --disable-static   # unless you want
                                                 # static libs and
                                                 # modules, or
                                                 # another prefix
    make
    make install DESTDIR=#your favorite temp dir#

I have compared the generated source archive with the current source archive in rawhide. The differences we have in the new archive are:

    1) Makefile.in and Makefile.am instead of Makefile in each subdir.
    2) The scripts and files associated with autoconf and automake.
    3) Addition of GNU gettext po/ structure and .gmo files.
    4) Restructure of liveinst/
    5) Missing empty subdirectories
    6) Missing .cvsignore files.
    7) Missing .gitignore files.

In addition, I have run 'make install' to a local directory and compared it with the output of 'rpm -ql anaconda'. Everything is in place, but you will notice missing docs (these are picked up by %doc in the spec file) and you will notice *.la scripts (these are removed in the spec file).

Lastly, I've run scratch builds of the rawhide source RPM containing the new source archive. It builds on all architectures. The x86_64 one does not differ from the anaconda RPM installed on my system (same version and arch).

Please have a look at the patches if you have time.

--
David Cantrell <dcantrell redhat com>
Red Hat / Honolulu, HI


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