]> git.donarmstrong.com Git - debhelper.git/log
debhelper.git
14 years agoMerge branch 'master' into buildsystems
Joey Hess [Fri, 12 Jun 2009 04:29:04 +0000 (00:29 -0400)]
Merge branch 'master' into buildsystems

Conflicts:
Debian/Debhelper/Dh_Getopt.pm
debian/changelog

14 years agoAllow command-specific options to be passed to commands via dh without causing other...
Joey Hess [Fri, 12 Jun 2009 04:27:04 +0000 (00:27 -0400)]
Allow command-specific options to be passed to commands via dh without causing other commands to emit a getopt warning or deprecation message.

14 years agoshouldn't need undef here
Joey Hess [Fri, 12 Jun 2009 04:21:27 +0000 (00:21 -0400)]
shouldn't need undef here

14 years agoMerge branch 'master' into buildsystems
Joey Hess [Thu, 11 Jun 2009 18:39:08 +0000 (14:39 -0400)]
Merge branch 'master' into buildsystems

Conflicts:
debian/changelog

14 years agodh_gconf: Add missed half of postrm fragment removal. Closes: #531035 7.2.16
Joey Hess [Thu, 11 Jun 2009 16:53:51 +0000 (12:53 -0400)]
dh_gconf: Add missed half of postrm fragment removal. Closes: #531035

14 years agoShip Debian/Debhelper/Buildsystem/* in the package.
Modestas Vainius [Thu, 11 Jun 2009 15:55:40 +0000 (18:55 +0300)]
Ship Debian/Debhelper/Buildsystem/* in the package.

Signed-off-by: Modestas Vainius <modestas@vainius.eu>
14 years agoIntegrate buildsystem testsuite into the debhelper build system.
Modestas Vainius [Thu, 11 Jun 2009 15:42:50 +0000 (18:42 +0300)]
Integrate buildsystem testsuite into the debhelper build system.

Signed-off-by: Modestas Vainius <modestas@vainius.eu>
14 years agoEnsure make doesn't print directories when checking for target existance.
Modestas Vainius [Thu, 11 Jun 2009 15:17:36 +0000 (18:17 +0300)]
Ensure make doesn't print directories when checking for target existance.

Whenever make is run with --print-directory option, make -C sometimes print
Entering/Leaving directory messages to stdout even with -s in effects  This
breakes a check for target existance as it relies on make printing nothing when
target does not do anything. Hence explicitly pass --no-print-directory to make
to avoid it.

Signed-off-by: Modestas Vainius <modestas@vainius.eu>
14 years agoAdd a test suite for build systems.
Modestas Vainius [Thu, 11 Jun 2009 00:01:58 +0000 (03:01 +0300)]
Add a test suite for build systems.

* Tests for core Buildsystem API (mostly path API).
* Tests for check_auto_configure() for each buildsystem.
* Build system autoselection tests under "typical" conditions for each buildsystem.
* DH_AUTO_OPTIONS and command line argument parsing tests.
* Real dh_auto_* tests for autoconf/makefile build systems with emulated.
  autoconf behaviour under in both in source and out of source tree scenarios.

Signed-off-by: Modestas Vainius <modestas@vainius.eu>
14 years agoReorder load_buildsystem arguments and pass @_ through it.
Modestas Vainius [Thu, 11 Jun 2009 08:58:56 +0000 (11:58 +0300)]
Reorder load_buildsystem arguments and pass @_ through it.

* Reorder $system and $step arguments to match create_buildsystem_instance()
  order (less confusion).
* Pass arbitrary @_ from load_buildsystem() to create_buildsystem_instance().

Signed-off-by: Modestas Vainius <modestas@vainius.eu>
14 years agoMake perl_makemaker work properly when in source building is enforced.
Modestas Vainius [Thu, 11 Jun 2009 08:47:20 +0000 (11:47 +0300)]
Make perl_makemaker work properly when in source building is enforced.

This is backwards compatible (with << 7.3) until build, test and clean steps
are not reimplemented in the backwards compatibility breaking way. However,
this is absolutely necessary for enforce_in_source_building() to work in corner
cases (when build directory is set) in build, test and clean steps as the next
class (makefile) does not enforce it. makefile will fail as it will look for
Makefile in the build directory rather than the source directory.

Signed-off-by: Modestas Vainius <modestas@vainius.eu>
14 years agoGet rid of is_buildable and build_step flags. Broken by design.
Modestas Vainius [Thu, 11 Jun 2009 08:18:55 +0000 (11:18 +0300)]
Get rid of is_buildable and build_step flags. Broken by design.

* Auto-setting is_buildable flag in base constructor was pointless
  and broken by design because:
  - is_buildable = check_auto_buildable() used to be called *before*
    constructor of the derivative class could call enforce_* methods.  The
    result of check_auto_buildable() might change after calling enforce_*
    methods (in case check_auto_buildable() use get_buildpath() tests).
  - it isn't used widely. Refactor those a few places.
* Due to above, 'build_step' does not need to be passed to the Buildsystem
  anymore. Remove it from code.
* As a result of is_buidable removal, move warning of
  enforce_in_source_building() to pre_building_step(). It caused unnecessary
  noise when the object was constructed during test. It belongs to
  pre_building_step stage anyway.

Signed-off-by: Modestas Vainius <modestas@vainius.eu>
14 years agoRefactor build directory setting into separate method and solve a few bugs.
Modestas Vainius [Thu, 11 Jun 2009 07:54:55 +0000 (10:54 +0300)]
Refactor build directory setting into separate method and solve a few bugs.

* Move setting of new build directory from constructor to _set_builddir()
  method including detection if directory (current or source) it should be
  relative to.
* Even if a new build directory was specified, detect if it matches the source
  directory and unset it in such a case.
* Use _set_builddir() in enforce_out_of_source_tree() methods. Previous
  implementation didn't handle default build directory properly (i.e.
  relativeness to current or source directory).

Signed-off-by: Modestas Vainius <modestas@vainius.eu>
14 years agoRemove empty build directory parent dirs (up to source directory) too.
Modestas Vainius [Thu, 11 Jun 2009 00:48:39 +0000 (03:48 +0300)]
Remove empty build directory parent dirs (up to source directory) too.

When rmdir_building(), if build directory has 2 or more levels,
empty parent dirs should also be deleted until source directory level.

Signed-off-by: Modestas Vainius <modestas@vainius.eu>
14 years agoRename {pre,post}_step to {pre,post}_building_step.
Modestas Vainius [Thu, 11 Jun 2009 00:23:51 +0000 (03:23 +0300)]
Rename {pre,post}_step to {pre,post}_building_step.

Signed-off-by: Modestas Vainius <modestas@vainius.eu>
14 years agoInclude Debian/Debhelper subdirs in syntax check.
Modestas Vainius [Thu, 11 Jun 2009 00:18:34 +0000 (03:18 +0300)]
Include Debian/Debhelper subdirs in syntax check.

14 years agoautoconf uses a couple of Dh_Lib functions.
Modestas Vainius [Thu, 11 Jun 2009 00:17:20 +0000 (03:17 +0300)]
autoconf uses a couple of Dh_Lib functions.

14 years agoreleasing version 7.2.15 7.2.15
Joey Hess [Wed, 10 Jun 2009 21:24:24 +0000 (17:24 -0400)]
releasing version 7.2.15

14 years agodh_shlibdeps: run dpkg-shlibdeps on OCaml's *.cmxs files
Joey Hess [Wed, 10 Jun 2009 21:13:55 +0000 (17:13 -0400)]
dh_shlibdeps: run dpkg-shlibdeps on OCaml's *.cmxs files

14 years agoImplement source directory switching support (Closes: #530597).
Modestas Vainius [Tue, 9 Jun 2009 11:24:04 +0000 (14:24 +0300)]
Implement source directory switching support (Closes: #530597).

* New optional option --sourcedirectory/-d.
* New Buildsystem API methods for getting source directory/path
  (since sourcedir may no longer be topdir), source 2 build
  directory convertions, doit_in_sourcedir() etc.
* clean_builddir() -> rmdir_builddir() rename.

14 years ago--list all buildsystems (including all 3rd party ones) dynamically.
Modestas Vainius [Mon, 8 Jun 2009 20:36:50 +0000 (23:36 +0300)]
--list all buildsystems (including all 3rd party ones) dynamically.

* Implement a new sub in Dh_Buildsystems (load_all_buildsystems()) which
  dynamically tries to find all buildsystem class files in perl module
  directories (@INC) and clearly marks third party buildsystems as such.
* Use this sub for listing buildsystems so now --list easily helps a user
  discover *all* buildsystem classes installed on his/her system clearly
  separating built-in ones from third party ones.

14 years agoImprovements in DH_OPTIONS handling and DH_AUTO_OPTIONS envvar support.
Modestas Vainius [Mon, 8 Jun 2009 18:32:27 +0000 (21:32 +0300)]
Improvements in DH_OPTIONS handling and DH_AUTO_OPTIONS envvar support.

* DH_AUTO_OPTIONS is like existing DH_OPTIONS, just only for dh_auto
  stuff. This also avoids "explosion" of separate DH_AUTO_* environment
  variables (i.e. exports in debian/rules) and encourages usage of dh_auto
  command line option names. DH_AUTO_OPTIONS is passed via "extra_args" to
  Dh_Lib::init() (API addition).
* When splitting options from DH_OPTIONS and its flavours, allow arguments
  to include whitespaces if they are escaped with backslash (\) (see
  split_options_string()). Document this in debhelper.pod.
* Short option for --buildsystem is -c (aka class).
* Provide API to cancel option specs from default debhelper options.
  It will be used in the feature.

14 years agoUse term "out of source" rather than "outside source".
Modestas Vainius [Mon, 8 Jun 2009 10:07:47 +0000 (13:07 +0300)]
Use term "out of source" rather than "outside source".

* "out of source" or "out of source tree" seems to be more popular
  term to describe building in the builddir.
* Avoid using hyphens in both "out of source" and "in source" terms.

14 years agoUse the term "build step" instead of "build action" everywhere in the source.
Modestas Vainius [Mon, 8 Jun 2009 09:58:16 +0000 (12:58 +0300)]
Use the term "build step" instead of "build action" everywhere in the source.

I'm going to use this new term in documentation. I have never liked "action"
in this context, just couldn't think of anything better.

14 years agodh_gconf: Remove postrm fragment that handled schema migration from /etc to /usr...
Joey Hess [Fri, 29 May 2009 14:53:58 +0000 (10:53 -0400)]
dh_gconf: Remove postrm fragment that handled schema migration from /etc to /usr. Closes: #531035

14 years agoclarify
Joey Hess [Thu, 28 May 2009 18:39:18 +0000 (14:39 -0400)]
clarify

14 years agodh_scrollkeeper: Now a deprecated no-op. Closes: #530806
Joey Hess [Wed, 27 May 2009 22:45:58 +0000 (18:45 -0400)]
dh_scrollkeeper: Now a deprecated no-op. Closes: #530806

14 years agodh_compress: Avoid compressing .svg and .sgvz files, since these might be used as...
Joey Hess [Wed, 27 May 2009 18:45:03 +0000 (14:45 -0400)]
dh_compress: Avoid compressing .svg and .sgvz files, since these might be used as images on a html page, and also to avoid needing to special case the .svgz extention when compressing svg. Closes: #530253

15 years agodh_strip: Also strip OCaml shared libraries. (Stephane Glondu) Closes: #527272
Joey Hess [Mon, 18 May 2009 19:42:51 +0000 (15:42 -0400)]
dh_strip: Also strip OCaml shared libraries. (Stephane Glondu) Closes: #527272

15 years agoreleasing version 7.2.14 7.2.14
Joey Hess [Mon, 18 May 2009 16:51:43 +0000 (12:51 -0400)]
releasing version 7.2.14

15 years agodh: Avoid writing log after override_dh_clean is run. Closes: #529228
Joey Hess [Mon, 18 May 2009 16:49:10 +0000 (12:49 -0400)]
dh: Avoid writing log after override_dh_clean is run. Closes: #529228

15 years agomerge master
Joey Hess [Thu, 14 May 2009 19:22:36 +0000 (15:22 -0400)]
merge master

15 years agodh_auto_configure: Pass --skipdeps safely via PERL_AUTOINSTALL. Closes: #528235 7.2.13
Joey Hess [Thu, 14 May 2009 19:21:26 +0000 (15:21 -0400)]
dh_auto_configure: Pass --skipdeps safely via PERL_AUTOINSTALL. Closes: #528235

15 years agoMerge branch 'master' into buildsystems
Joey Hess [Thu, 14 May 2009 18:25:07 +0000 (14:25 -0400)]
Merge branch 'master' into buildsystems

Conflicts:
debian/changelog
dh_auto_configure

15 years agoreleasing version 7.2.12 7.2.12
Joey Hess [Thu, 14 May 2009 18:22:07 +0000 (14:22 -0400)]
releasing version 7.2.12

15 years agodh_auto_configure: Revert --skipdeps change Closes: #528647, reopens: #528235
Joey Hess [Thu, 14 May 2009 18:15:24 +0000 (14:15 -0400)]
dh_auto_configure: Revert --skipdeps change Closes: #528647, reopens: #528235

15 years agoreleasing version 7.2.11 7.2.11
Joey Hess [Tue, 12 May 2009 18:57:06 +0000 (14:57 -0400)]
releasing version 7.2.11

15 years agoSupport debian/foo.os files to suppliment previous debian/foo.arch file support....
Joey Hess [Tue, 12 May 2009 18:52:09 +0000 (14:52 -0400)]
Support debian/foo.os files to suppliment previous debian/foo.arch file support. Closes: #494914 (Thanks, Aurelien Jarno)

15 years agoMerge branch 'master' into buildsystems
Joey Hess [Mon, 11 May 2009 19:00:00 +0000 (15:00 -0400)]
Merge branch 'master' into buildsystems

Conflicts:
dh_auto_configure

15 years agodh_auto_configure: Add --skipdeps when running Makefile.PL, to prevent Module::Instal...
Joey Hess [Mon, 11 May 2009 18:59:03 +0000 (14:59 -0400)]
dh_auto_configure: Add --skipdeps when running Makefile.PL, to prevent Module::Install from trying to download dependencies. Closes: #528235

15 years agoincorporate create_packlist=0 fix from master
Joey Hess [Mon, 11 May 2009 18:54:30 +0000 (14:54 -0400)]
incorporate create_packlist=0 fix from master

15 years agoMerge branch 'master' into buildsystems
Joey Hess [Mon, 11 May 2009 18:53:58 +0000 (14:53 -0400)]
Merge branch 'master' into buildsystems

Conflicts:
debian/changelog
dh_auto_configure

15 years agodh: Support --with addon,addon,... Closes: #528178
Joey Hess [Mon, 11 May 2009 18:51:03 +0000 (14:51 -0400)]
dh: Support --with addon,addon,... Closes: #528178

15 years agoreleasing version 7.2.10 7.2.10
Joey Hess [Sun, 10 May 2009 17:09:00 +0000 (13:09 -0400)]
releasing version 7.2.10

15 years agodh_auto_configure: Pass packlist=0 when running Makefile.PL, in case it is a Build...
Joey Hess [Sun, 10 May 2009 17:07:06 +0000 (13:07 -0400)]
dh_auto_configure: Pass packlist=0 when running Makefile.PL, in case it is a Build.PL passthru, to avoid it creating the .packlist file. Closes: #527990

15 years agomention quilt
Joey Hess [Fri, 8 May 2009 17:20:11 +0000 (13:20 -0400)]
mention quilt

15 years agodh_auto_configure: Clarify man page re adding configure parameters. Closes: #527256
Joey Hess [Fri, 8 May 2009 17:13:26 +0000 (13:13 -0400)]
dh_auto_configure: Clarify man page re adding configure parameters. Closes: #527256

15 years agoClose COMPAT_IN filehandle. Closes: #527464
Joey Hess [Thu, 7 May 2009 20:33:46 +0000 (16:33 -0400)]
Close COMPAT_IN filehandle. Closes: #527464

15 years agoclarify
Joey Hess [Thu, 7 May 2009 11:34:31 +0000 (07:34 -0400)]
clarify

15 years agoreleasing version 7.2.9 7.2.9
Joey Hess [Mon, 4 May 2009 18:50:17 +0000 (14:50 -0400)]
releasing version 7.2.9

15 years agodh: Add --without to allow disabling sequence addons (particularly useful to disable...
Joey Hess [Mon, 4 May 2009 18:46:50 +0000 (14:46 -0400)]
dh: Add --without to allow disabling sequence addons (particularly useful to disable the default python-support addon).

15 years agodh_fixperms: Fix permissions of OCaml .cmxs files. Closes: #526221
Joey Hess [Sun, 3 May 2009 00:44:24 +0000 (20:44 -0400)]
dh_fixperms: Fix permissions of OCaml .cmxs files. Closes: #526221

15 years agoFix permissions of *.cmxs files
Stephane Glondu [Wed, 29 Apr 2009 21:42:23 +0000 (23:42 +0200)]
Fix permissions of *.cmxs files

15 years agodh_fixperms: Ensure lintian overrides are mode 644. (Patch from #459548)
Joey Hess [Tue, 21 Apr 2009 21:02:23 +0000 (17:02 -0400)]
dh_fixperms: Ensure lintian overrides are mode 644. (Patch from #459548)

15 years agochangelog
Joey Hess [Mon, 20 Apr 2009 20:34:21 +0000 (16:34 -0400)]
changelog

15 years agoMerge branch 'master' into buildsystems
Joey Hess [Mon, 20 Apr 2009 20:26:06 +0000 (16:26 -0400)]
Merge branch 'master' into buildsystems

15 years agoreleasing version 7.2.8 7.2.8
Joey Hess [Mon, 20 Apr 2009 20:23:37 +0000 (16:23 -0400)]
releasing version 7.2.8

15 years agoupdate
Joey Hess [Mon, 20 Apr 2009 20:13:28 +0000 (16:13 -0400)]
update

15 years agobasic docs about buildsystem classes
Joey Hess [Mon, 20 Apr 2009 20:11:04 +0000 (16:11 -0400)]
basic docs about buildsystem classes

15 years agoMerge branch 'master' into buildsystems
Joey Hess [Mon, 20 Apr 2009 20:05:42 +0000 (16:05 -0400)]
Merge branch 'master' into buildsystems

15 years agoMove dh sequence documentation to PROGRAMMING.
Joey Hess [Mon, 20 Apr 2009 20:05:24 +0000 (16:05 -0400)]
Move dh sequence documentation to PROGRAMMING.

15 years agorename autotools to autoconf
Joey Hess [Mon, 20 Apr 2009 19:50:11 +0000 (15:50 -0400)]
rename autotools to autoconf

It seems bette to use the more specific name in case we later want a
separate module for automake.

15 years agounimportant code changes
Joey Hess [Mon, 20 Apr 2009 19:16:06 +0000 (15:16 -0400)]
unimportant code changes

15 years agoremove verbose_print of buildsystem selection details
Joey Hess [Mon, 20 Apr 2009 19:09:38 +0000 (15:09 -0400)]
remove verbose_print of buildsystem selection details

This would be the only place in debhelper where -v enables debugging info
that is not just shell commands being run.

Since --list can be used to see details of build system selection, and
since it will probably be obvious which one is selected in -v mode due to
the commands run, I think this oddity is unnecessary.

15 years agoreformat list
Joey Hess [Mon, 20 Apr 2009 19:08:37 +0000 (15:08 -0400)]
reformat list

I think this is a bit easier to understand; I was never a fan of complex
and hard to read column headers in console output (ie, dpkg -l).

15 years agoreword descriptions
Joey Hess [Mon, 20 Apr 2009 19:00:55 +0000 (15:00 -0400)]
reword descriptions

Shorten, remove duplicate verbiage, and list the characteristic file
of the build system.

15 years agofactor out a buildsystems_list
Joey Hess [Mon, 20 Apr 2009 18:51:14 +0000 (14:51 -0400)]
factor out a buildsystems_list

15 years agoupdate copyright
Joey Hess [Mon, 20 Apr 2009 18:46:57 +0000 (14:46 -0400)]
update copyright

15 years agorename Dh_Buildsystem to Buildsystem
Joey Hess [Mon, 20 Apr 2009 18:44:11 +0000 (14:44 -0400)]
rename Dh_Buildsystem to Buildsystem

This way the root of the class hierarchy has the same name as the directory
holding the classes.

15 years agouse $this rather than $self
Joey Hess [Mon, 20 Apr 2009 18:41:33 +0000 (14:41 -0400)]
use $this rather than $self

15 years agolet's write class, not cls
Joey Hess [Mon, 20 Apr 2009 18:37:49 +0000 (14:37 -0400)]
let's write class, not cls

15 years agoremove _mkdir, use mkdir -p
Joey Hess [Mon, 20 Apr 2009 18:33:00 +0000 (14:33 -0400)]
remove _mkdir, use mkdir -p

_mkdir is not necessary, because mkdir's error messages are good enough
if a file by the name of the directory exists ("cannot create directory: File
exists"), or if a file is where the parent directory should be ("cannot
create directory: Not a directory")

Using mkdir -p seems useful, in case someone wants a deeply nested
builddir.

This also changes the return value of mkdir_builddir, but nothing currently
tests it.

15 years agoremove discussion
Joey Hess [Mon, 20 Apr 2009 18:29:45 +0000 (14:29 -0400)]
remove discussion

15 years agoremoval of comments I'm satisfied with
Joey Hess [Wed, 15 Apr 2009 19:40:43 +0000 (15:40 -0400)]
removal of comments I'm satisfied with

15 years agodebhelper modular buildsystems (try 3).
Modestas Vainius [Wed, 15 Apr 2009 14:39:06 +0000 (17:39 +0300)]
debhelper modular buildsystems (try 3).

* New feature - when listing buildsystems, list their status too
  (auto/specified).
* Dh_Buildsystem_Basic.pm renamed to Dh_Buildsystem.pm
* Addressed a few issues expressed in the comments, answered a few
  comments.
* Cache DEB_BUILD_GNU_TYPE value. Performance hit is noticable when
  listing build systems.
* is_auto_buildable() renamed to check_auto_buildable() (again).
  Since there is is_buildable() now, I didn't want to use is_ for
  that method.

Signed-off-by: Modestas Vainius <modestas@vainius.eu>
15 years agomore comments
Joey Hess [Tue, 14 Apr 2009 19:24:57 +0000 (15:24 -0400)]
more comments

15 years agomore comments
Joey Hess [Tue, 14 Apr 2009 19:13:03 +0000 (15:13 -0400)]
more comments

15 years agomore comments
Joey Hess [Tue, 14 Apr 2009 19:01:32 +0000 (15:01 -0400)]
more comments

15 years agoupdate and remove XXX comments
Joey Hess [Tue, 14 Apr 2009 18:51:34 +0000 (14:51 -0400)]
update and remove XXX comments

15 years agoModular object-orientied buildsystem implementation (try 2).
Modestas Vainius [Tue, 14 Apr 2009 12:12:14 +0000 (15:12 +0300)]
Modular object-orientied buildsystem implementation (try 2).

Major changess:

* Dh_Buildsystem_Option dropped and Dh_Buildsystem_Chdir functionality
  partitially merged into Dh_Buildsystem_Basic. Dh_Buildsystem_Bases.pm
  renamed to Dh_Buildsystem_Basic.pm to match classname.
* *_impl() ditched completely. Previous {configure,build,test,install,clean}_impl()
  renamed to just configure(), build(), test(), install(), clean() instead.
  Added pre_action($action) and post_action($action) hooks instead which are called
  by Dh_Buildsystems::buildsystems_do().
* Builddir is handled via mkdir_builddir(), doit_in_buildddir(), clean_builddir()
  methods which buildsystems should call directly. Removed get_top* method, added
  get_rel2builddir_path().
* is_buildable() method renamed to is_auto_buildable() to reflect its
  purpose more.
* ::perl_makefile renamed to ::perl_makemaker and which is based on ::makefile
  now. MakeMaker hack moved from ::makefile to ::perl_makemaker where it belongs
  (thanks for the tip).
* Dh_Buildsystems refactored into a simple perl module rather than OO class and
  simplified a bit.
* @BUILDSYSTEMS and is_auto_buildable() modified to 100% match historical order.

TODO: user documentation (e.g. DH_AUTO_BUILDDIRECTORY and DH_AUTO_BUILDSYSTEM
environment variables and common dh_auto_* options (--buildsystem and --builddirectory)).

Current plugin inheritance hierarchy is like this:

    Buildsystem::perl_build -> Dh_Buildsystem_Basic  <- Buildsystem::python_distutils
                                      ^
                                      |
                              Buildsystem::makefile  <- Buildsystem::perl_makemaker
                              ^       ^           ^
                             /        |             \
       Buildsystem::autotools  Buildsystem::cmake   Buildsystem::python_distutils

Signed-off-by: Modestas Vainius <modestas@vainius.eu>
15 years agoupdate
Joey Hess [Sat, 11 Apr 2009 01:07:58 +0000 (21:07 -0400)]
update

15 years agocode review, added comments
Joey Hess [Fri, 10 Apr 2009 21:05:23 +0000 (17:05 -0400)]
code review, added comments

I went through every line of the buildsystem implementation,
and added numerous comments. Search for "XXX JEH" to find them.

15 years agoMigrates dh_auto_* commands to Dh_Buildsystems.pm
Modestas Vainius [Mon, 23 Mar 2009 19:32:43 +0000 (21:32 +0200)]
Migrates dh_auto_* commands to Dh_Buildsystems.pm

This patch switches dh_auto_* commands to use Dh_Buildsystems.pm
module. Most of them became very minimal by design.

Documentation has not been updated with new features yet.

Signed-off-by: Modestas Vainius <modestas@vainius.eu>
15 years agoModular object-orientied buildsystem implementation.
Modestas Vainius [Mon, 23 Mar 2009 19:32:43 +0000 (21:32 +0200)]
Modular object-orientied buildsystem implementation.

Dh_Buildsystems:

A manager module for buildsystem "plugins". It deals with the following tasks:

* Handles common command line and environment options. As currently implemented
  by the patch they are:
   - DH_AUTO_BUILDSYSTEM envvar, -m/--build-system - disables autoguessing of
     the build system and allows the user to specify which one to use.
   - DH_AUTO_BUILDDIRECTORY envvar, -b/--build-directory - option to enable
     building outside source if supported by the buildsystem. User can specify
     the build directory name or let it be autogenerated (currently
     "obj-`dpkg_architecture('DEB_BUILD_GNU_TYPE')`" as per CDBS convention).
     Outside source building has an advantage of avoiding sourcedir pollution
     which the clean routine cannot deal with properly (at least common in
     cmake or autotools case). The "clean" is simple in such a case - just
     rm -rf builddir.
   - -l/--list - lists all buildsystems known to Dh_Buildsystems along with
     their descriptions.
* Manages buildsystem plugins:
  - provides a way to list them and collect information about them.
  - provides a way to force loading & use of a specific buildsystem.
  - determines which build system is applicable to the source in question using
    common API (::is_buildable() method) exposed by each build system plugin.
* @BUILDSYSTEMS variable contains all buildsystems known to the manager in the
  order of specialization.
-----------------------------

-----------------------------
Dh_Buildsystem_Bases.pm:

Contains a few classes which define a common interface for buildsystem plugins
and implements handling of common features (i.e. two types of the build
directory support, see below). Each specific build system plugin is supposed to
inherit from any of these base classes or from another build system plugin.
Currently implemented classes (packages) inside this .pm are:

-- Dh_Buildsystem_Basic --

a basic class describing buildsystem plugin API. It stores build directory
internally (can be retrieved with ::get_builddir() or path constructed using
::get_buildpath() (useful in is_buildable())) but does nothing with it. This
class is intended to be inherited by the build system plugins which do not
support outside-source tree building or there is no way to control this option
(as far as tell, Build.PL is like this). It also describes common buildsystem
plugin API and lays down the basic architecture:

* ::configure/::build/::test/::install/::clean methods - they will be called to
  perform a respective action. These are wrapper methods by default and provide
  a place to implement common features specific the action itself (like
  creating build directory, see Dh_Buildsystem_Chdir::configure()) before
  calling real buildsystem specific implementation. Default implementations
  call the respective *_impl() method via another invoke_impl() wrapper.

* ::configure_impl/::build_impl/::test_impl/::install_impl/::clean-impl methods
  - placeholders for the buildsystem specific implementation of the action (by
  overriding the methods as needed). Default implementations do nothing.

* ::invoke_impl($method_name, @args) - a convenient way to hook in the code
  which needs to be run before or after respective ::*_impl() of *each* action
  (e.g. a simple case like setting envvar, see perl_build.pm). Default
  implementation calls $self->$method_name(@args) by default.

So we have such a chain by default (and each can be overriden by any derived
class):

$self->$action() calls:
  $self->invoke_impl("${action}_impl", @_) calls:
    $self->$action_impl(@_) <- does buildsystem specific stuff here;

-- Dh_Buildsystem_Option --

extends Dh_Buildsystem_Basic and adds support for passing build directory name
via command line option to the build script (specific plugins should override
::get_builddir_option() method). ::invoke_impl() is overriden to pass value of
$self->get_builddir_option() to each ::$action_impl() method (python distutils
use such a way to set "build place", i.e. --build-place=builddir, see
python_distutils.pm).

-- Dh_Buildsystem_Chdir --

extends Dh_Buildsystem_Option. This class implements support for outside source
building when you need to chdir to the building directory before building (like e.g.
makefile.pm and its derivatives: autotools.pm and cmake.pm). All the code in there
deals with chdir'ing/mkdir'ing to the build directory as needed before calling
::$action_impl() and finally going back. This is done by overriding ::invoke_impl()
method.
-----------------------------

-----------------------------
And finally we have build system specific plugins as Debian/Debhelper/Buildsystem/*.pm.
Currently I have implemented 100% functionality of the former dh_auto_* tools
inside these plugins + cmake support in the cmake.pm:

$ ./dh_auto_configure -l
autotools - support for building GNU Autotools based packages.
cmake - support for building CMake based packages (outside-source tree only).
perl_build - support for building Perl Build.PL based packages (in-source only).
perl_makefile - support for building Perl Makefile.PL based packages (in-source only).
python_distutils - support for building Python distutils based packages.
makefile - support for building Makefile based packages (make && make install).

Current plugin inheritance hierarchy is like this:

Buildsystem::perl_build       -> Dh_Buildsystem_Basic  <- Buildsystem::perl_makefile
                                      ^              (maybe it should derive from ::perl_build?)
                                      |
Buildsystem::python_distutils -> Dh_Buildsystem_Option
                                      ^
                                      |
                                Dh_Buildsystem_Chdir
                                      ^
                                      |
                                Buildsystem::makefile
                                   ^            ^
                                  /              \
                   Buildsystem::autotools    Buildsystem::cmake

Signed-off-by: Modestas Vainius <modestas@vainius.eu>
15 years agoAdd dpkg_architecture_value and sourcepackage to Dh_Lib
Modestas Vainius [Mon, 23 Mar 2009 19:32:43 +0000 (21:32 +0200)]
Add dpkg_architecture_value and sourcepackage to Dh_Lib

Both these function are taken from dh_auto_configure. I believe they
are useful enough to be in Dh_Lib (esp. dpkg_architecture_value()).

The patch removes these funtions from dh_auto_configure too.

Signed-off-by: Modestas Vainius <modestas@vainius.eu>
15 years agodh_desktop: Now a deprecated no-op, since desktop-file-utils uses triggers. Closes...
Joey Hess [Fri, 10 Apr 2009 19:37:36 +0000 (15:37 -0400)]
dh_desktop: Now a deprecated no-op, since desktop-file-utils uses triggers. Closes: #523474 (also Closes: #521960, #407701 as no longer applicable)

15 years agodh_desktop: Avoid using find -execdir as it will fail with certian badly configured...
Joey Hess [Tue, 31 Mar 2009 18:09:08 +0000 (14:09 -0400)]
dh_desktop: Avoid using find -execdir as it will fail with certian badly configured PATHs (and is not a benefit in this context anyway). Closes: #521960

15 years agoreleasing version 7.2.7 7.2.7
Joey Hess [Fri, 27 Mar 2009 18:18:45 +0000 (14:18 -0400)]
releasing version 7.2.7

15 years agodh_icons: ignore gnome and hicolor themes (will be handled by triggers). Closes:...
Joey Hess [Thu, 26 Mar 2009 19:21:14 +0000 (15:21 -0400)]
dh_icons: ignore gnome and hicolor themes (will be handled by triggers). Closes: #521181

15 years agodh_icons: ignore gnome and hicolor themes (will be handled by triggers). Closes:...
Joey Hess [Thu, 26 Mar 2009 19:20:42 +0000 (15:20 -0400)]
dh_icons: ignore gnome and hicolor themes (will be handled by triggers). Closes: #521181

15 years agoPass -L UTF-8 to po4a to work around bug #520942
Joey Hess [Mon, 23 Mar 2009 19:37:19 +0000 (15:37 -0400)]
Pass -L UTF-8 to po4a to work around bug #520942

15 years agochangelog
Joey Hess [Mon, 23 Mar 2009 19:06:20 +0000 (15:06 -0400)]
changelog

15 years agoexport write_log
Joey Hess [Mon, 23 Mar 2009 19:04:05 +0000 (15:04 -0400)]
export write_log

Avoids the ugly thunk in dh

15 years agodocument load_load, write_log
Joey Hess [Mon, 23 Mar 2009 19:03:54 +0000 (15:03 -0400)]
document load_load, write_log

15 years agominor coding stlye
Joey Hess [Mon, 23 Mar 2009 19:01:25 +0000 (15:01 -0400)]
minor coding stlye

15 years agoAdd a global --remaining-packages option.
Modestas Vainius [Mon, 23 Mar 2009 00:23:17 +0000 (02:23 +0200)]
Add a global --remaining-packages option.

Add a global --remaining-packages option which allows to skip the command on
the packages which it has already been run on (i.e. if the command helper is
already present in the package debhelper log).

Signed-off-by: Modestas Vainius <modestas@vainius.eu>
15 years agofix corner case
Joey Hess [Sat, 21 Mar 2009 01:52:36 +0000 (21:52 -0400)]
fix corner case

If DH_INTERNAL_OPTIONS does not specify any packages, we don't want to
exclude them all!

15 years agoremove dead code
Joey Hess [Sat, 21 Mar 2009 01:40:53 +0000 (21:40 -0400)]
remove dead code

This case can never happen, because code in Dh_Getopt makes the same
check earlier.

15 years agoFix calling the same helper for separate packages in the override of dh binary-indep...
Joey Hess [Sat, 21 Mar 2009 01:38:24 +0000 (21:38 -0400)]
Fix calling the same helper for separate packages in the override of dh binary-indep/binary-arch. Closes: #520567

This is based on some work by Modestas Vainius, somewhat simplified
by a trick using excludes.

Note that the error in the case where there are no packages to build was
changed to a warning. That can easily happen now, and doesn't seem
particilarly error-worthy anyway; just exiting w/o doing anything seems
fine in that case.

15 years agopass -N into DH_INTERNAL_OPTIONS
Joey Hess [Sat, 21 Mar 2009 01:24:30 +0000 (21:24 -0400)]
pass -N into DH_INTERNAL_OPTIONS

I think I didn't do this before because it could result in
parseoptions() erroring because there were no packages to act on.
That is not going to be an error soon though, and it makes sense to
pass in the -N excludes.