Linux Archive

Linux Archive (http://www.linux-archive.org/)
-   Debian Development (http://www.linux-archive.org/debian-development/)
-   -   Bug#575938: ITP: dh-autoreconf -- debhelper add-on to call autoreconf and clean up after the build (http://www.linux-archive.org/debian-development/349255-bug-575938-itp-dh-autoreconf-debhelper-add-call-autoreconf-clean-up-after-build.html)

Julian Andres Klode 03-30-2010 04:15 PM

Bug#575938: ITP: dh-autoreconf -- debhelper add-on to call autoreconf and clean up after the build
 
Package: wnpp
Severity: wishlist
Owner: Julian Andres Klode <jak@debian.org>

* Package name : dh-autoreconf
Version : 1
Upstream Author : Julian Andres Klode <jak@debian.org>
* License : GPL-2
Programming Lang: Perl
Description : debhelper add-on to call autoreconf and clean up after the build

Package: dh-autoreconf
Architecture: all
Depends: ${misc:Depends}, autoconf, automake | automaken, libtool
Description: debhelper add-on to call autoreconf and clean up after the build
dh-autoreconf provides a debhelper sequence addon named 'autoreconf' and two
commands, dh_autoreconf and dh_autoreconf_clean.
.
The dh_autoreconf command creates a list of the files and their checksums,
calls autoreconf and then creates a second list for the new files.
.
The dh_autoreconf_clean command compares these two lists and removes all
files which have been added or changed (files may be excluded if needed).

I am using this inside the gnome-main-menu package and it works perfectly,
although a bit slow because it creates md5sums of the whole source tree
two times (I may add an option to use timestamp+size instead for larger
source packages).

(Please note that I'm not subscribed to debian-devel, so please keep the
bug report or me in To/CC)
--
Julian Andres Klode - Debian Developer, Ubuntu Member

See http://wiki.debian.org/JulianAndresKlode and http://jak-linux.org/.

Julian Andres Klode 03-30-2010 05:03 PM

Bug#575938: ITP: dh-autoreconf -- debhelper add-on to call autoreconf and clean up after the build
 
On Tue, Mar 30, 2010 at 06:15:26PM +0200, Julian Andres Klode wrote:
> Package: wnpp
> Severity: wishlist
> Owner: Julian Andres Klode <jak@debian.org>
>
> * Package name : dh-autoreconf
> Version : 1
> Upstream Author : Julian Andres Klode <jak@debian.org>
> * License : GPL-2
> Programming Lang: Perl
> Description : debhelper add-on to call autoreconf and clean up after the build
>
> Package: dh-autoreconf
> Architecture: all
> Depends: ${misc:Depends}, autoconf, automake | automaken, libtool
> Description: debhelper add-on to call autoreconf and clean up after the build
> dh-autoreconf provides a debhelper sequence addon named 'autoreconf' and two
> commands, dh_autoreconf and dh_autoreconf_clean.
> .
> The dh_autoreconf command creates a list of the files and their checksums,
> calls autoreconf and then creates a second list for the new files.
> .
> The dh_autoreconf_clean command compares these two lists and removes all
> files which have been added or changed (files may be excluded if needed).
>
> I am using this inside the gnome-main-menu package and it works perfectly,
> although a bit slow because it creates md5sums of the whole source tree
> two times (I may add an option to use timestamp+size instead for larger
> source packages).
>

It seems that we could also read the requested versions of automake and
autoconf from debian/control and export them automatically using:

# Setup the environment for autoreconf to run the correct versions
sub program {
my $program=shift;
my $version="";
open (CONTROL, 'debian/control') ||
error("cannot read debian/control: $!
");

foreach my $builddeps (join(', <CONTROL>) =~
/^Build-Depends[^:]*:.*
(?:^[^w
].*
)*/gmi) {
while ($builddeps =~ /$program([0-9.]+)/g) {
error("Multiple versions of $program requested ($version, $1)") if
($version ne "");
$version=$1;
}
}
close CONTROL;
return $version eq "" ? $program : $program."-".$version;
}

$ENV{"AUTOCONF"} = program("autoconf") if not defined $ENV{"AUTOCONF"};
$ENV{"AUTOHEADER"} = program("autoconf") if not defined $ENV{"AUTOHEADER"};
$ENV{"ACLOCAL"} = program("automake") if not defined $ENV{"ACLOCAL"};
$ENV{"AUTOMAKE"} = program("automake") if not defined $ENV{"AUTOMAKE"};

Does this sound like a good idea?

--
Julian Andres Klode - Debian Developer, Ubuntu Member

See http://wiki.debian.org/JulianAndresKlode and http://jak-linux.org/.

Stefano Zacchiroli 03-31-2010 07:47 AM

Bug#575938: ITP: dh-autoreconf -- debhelper add-on to call autoreconf and clean up after the build
 
On Wed, Mar 31, 2010 at 02:07:31PM +0800, Paul Wise wrote:
> >> Package: dh-autoreconf
> I'd suggest just putting this into debhelper rather than making it a
> separate package.

Seconded. The addons looks quite general, I don't see the point of
having it in a separate package.

Cheers.

--
Stefano Zacchiroli -o- PhD in Computer Science PostDoc @ Univ. Paris 7
zack@{upsilon.cc,pps.jussieu.fr,debian.org} -<>- http://upsilon.cc/zack/
Dietro un grande uomo c' ..| . |. Et ne m'en veux pas si je te tutoie
sempre uno zaino ...........| ..: |.... Je dis tu tous ceux que j'aime

Julian Andres Klode 03-31-2010 12:50 PM

Bug#575938: ITP: dh-autoreconf -- debhelper add-on to call autoreconf and clean up after the build
 
On Wed, Mar 31, 2010 at 02:07:31PM +0800, Paul Wise wrote:
> On Wed, Mar 31, 2010 at 1:03 AM, Julian Andres Klode <jak@debian.org> wrote:
>
> >> * Description * * : debhelper add-on to call autoreconf and clean up after the build
> >>
> >> Package: dh-autoreconf
>
> I'd suggest just putting this into debhelper rather than making it a
> separate package.

Well, Joey wrote the following:

> Regarding including these commands in debhelper, I am uncertian because
> these commands would not be included in the default dh sequences, or the
> example rules files, and that would be a first -- currently every
> command in debhelper is included in the dh sequences and all except dh_auto_*
> are included in the longer example rules files.
>
> Adding an optional command to debhelper that likely does not do the
> right thing for a fairly large percentage of packages (my experience
> with running autoreconf and having it actually work, in the real world,
> is not exactly stellar) would be a departure.

--
Julian Andres Klode - Debian Developer, Ubuntu Member

See http://wiki.debian.org/JulianAndresKlode and http://jak-linux.org/.

Julian Andres Klode 03-31-2010 01:27 PM

Bug#575938: ITP: dh-autoreconf -- debhelper add-on to call autoreconf and clean up after the build
 
On Wed, Mar 31, 2010 at 03:13:14PM +0200, Mehdi Dogguy wrote:
> Paul Wise wrote:
> > On Wed, Mar 31, 2010 at 1:03 AM, Julian Andres Klode <jak@debian.org> wrote:
> >
> >>> Description : debhelper add-on to call autoreconf and clean up after the build
> >>>
> >>> Package: dh-autoreconf
> >
> > I'd suggest just putting this into debhelper rather than making it a
> > separate package.
> >
>
> Is there any advantage to have it packaged?
>
> AIUI, you have to add a build-dependency anyway and change at least one
> line in the debian/rules to call dh-autoreconf. Well, that line could
> simply call autoreconf (or whatever) which even makes debian/rules clearer.

The difference is that dh_autoreconf calls autoreconf and stores a list
of the changes and the changed files are then removed in the clean
target. If you just call autoreconf, the changes end up in the diff;
and this is not what we want.

BTW; The code is now available at
http://git.debian.org/?p=collab-maint/dh-autoreconf.git
and also features a CDBS rule for those maintainers still
using it and a --mode parameter with a 'timesize' mode to
use size+timestamp instead of an md5sum to detect changes.

--
Julian Andres Klode - Debian Developer, Ubuntu Member

See http://wiki.debian.org/JulianAndresKlode and http://jak-linux.org/.

Mehdi Dogguy 03-31-2010 01:45 PM

Bug#575938: ITP: dh-autoreconf -- debhelper add-on to call autoreconf and clean up after the build
 
Julian Andres Klode wrote:
> On Wed, Mar 31, 2010 at 03:13:14PM +0200, Mehdi Dogguy wrote:
>> Paul Wise wrote:
>>> On Wed, Mar 31, 2010 at 1:03 AM, Julian Andres Klode <jak@debian.org> wrote:
>>>
>>>>> Description : debhelper add-on to call autoreconf and clean up after the build
>>>>>
>>>>> Package: dh-autoreconf
>>> I'd suggest just putting this into debhelper rather than making it a
>>> separate package.
>>>
>> Is there any advantage to have it packaged?
>>
>> AIUI, you have to add a build-dependency anyway and change at least one
>> line in the debian/rules to call dh-autoreconf. Well, that line could
>> simply call autoreconf (or whatever) which even makes debian/rules clearer.
>
> The difference is that dh_autoreconf calls autoreconf and stores a list
> of the changes and the changed files are then removed in the clean
> target. If you just call autoreconf, the changes end up in the diff;
> and this is not what we want.
>

I do use autoreconf and I don't have these changes in my diff.

IMO, a backup/restore script (where you specify the list of files to
backup) may be more useful. It would be called before build and when cleaning.

Cheers,

--
Mehdi Dogguy مهدي الدڤي
http://dogguy.org/


--
To UNSUBSCRIBE, email to debian-devel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 4BB351EA.3000609@dogguy.org">http://lists.debian.org/4BB351EA.3000609@dogguy.org

Benjamin Drung 03-31-2010 01:51 PM

Bug#575938: ITP: dh-autoreconf -- debhelper add-on to call autoreconf and clean up after the build
 
Am Mittwoch, den 31.03.2010, 15:45 +0200 schrieb Mehdi Dogguy:
> Julian Andres Klode wrote:
> > On Wed, Mar 31, 2010 at 03:13:14PM +0200, Mehdi Dogguy wrote:
> >> Paul Wise wrote:
> >>> On Wed, Mar 31, 2010 at 1:03 AM, Julian Andres Klode <jak@debian.org> wrote:
> >>>
> >>>>> Description : debhelper add-on to call autoreconf and clean up after the build
> >>>>>
> >>>>> Package: dh-autoreconf
> >>> I'd suggest just putting this into debhelper rather than making it a
> >>> separate package.
> >>>
> >> Is there any advantage to have it packaged?
> >>
> >> AIUI, you have to add a build-dependency anyway and change at least one
> >> line in the debian/rules to call dh-autoreconf. Well, that line could
> >> simply call autoreconf (or whatever) which even makes debian/rules clearer.
> >
> > The difference is that dh_autoreconf calls autoreconf and stores a list
> > of the changes and the changed files are then removed in the clean
> > target. If you just call autoreconf, the changes end up in the diff;
> > and this is not what we want.
> >
>
> I do use autoreconf and I don't have these changes in my diff.
>
> IMO, a backup/restore script (where you specify the list of files to
> backup) may be more useful. It would be called before build and when cleaning.

I prefer the removal over the restoring the old files. You remove .o
files on clean, so why not remove the other auto-generated files on
clean?

--
Benjamin Drung
Ubuntu Developer (www.ubuntu.com) | Debian Maintainer (www.debian.org)

Julian Andres Klode 03-31-2010 01:54 PM

Bug#575938: ITP: dh-autoreconf -- debhelper add-on to call autoreconf and clean up after the build
 
On Wed, Mar 31, 2010 at 03:45:14PM +0200, Mehdi Dogguy wrote:
> Julian Andres Klode wrote:
> > On Wed, Mar 31, 2010 at 03:13:14PM +0200, Mehdi Dogguy wrote:
> >> Paul Wise wrote:
> >>> On Wed, Mar 31, 2010 at 1:03 AM, Julian Andres Klode <jak@debian.org> wrote:
> >>>
> >>>>> Description : debhelper add-on to call autoreconf and clean up after the build
> >>>>>
> >>>>> Package: dh-autoreconf
> >>> I'd suggest just putting this into debhelper rather than making it a
> >>> separate package.
> >>>
> >> Is there any advantage to have it packaged?
> >>
> >> AIUI, you have to add a build-dependency anyway and change at least one
> >> line in the debian/rules to call dh-autoreconf. Well, that line could
> >> simply call autoreconf (or whatever) which even makes debian/rules clearer.
> >
> > The difference is that dh_autoreconf calls autoreconf and stores a list
> > of the changes and the changed files are then removed in the clean
> > target. If you just call autoreconf, the changes end up in the diff;
> > and this is not what we want.
> >
>
> I do use autoreconf and I don't have these changes in my diff.
A 'debuild; debuild' should have a different result than a single
debuild then. If you build from a clean directory, the first build
will contain no changes. But after the build, the directory is not
clean anymore and debian/rules clean does not do enough to keep the
changes from appearing in the source package if you build again.

>
> IMO, a backup/restore script (where you specify the list of files to
> backup) may be more useful. It would be called before build and when cleaning.
I don't think so, it requires you to keep track of the files
and you may miss some.

--
Julian Andres Klode - Debian Developer, Ubuntu Member

See http://wiki.debian.org/JulianAndresKlode and http://jak-linux.org/.

Vincent Danjean 03-31-2010 01:59 PM

Bug#575938: ITP: dh-autoreconf -- debhelper add-on to call autoreconf and clean up after the build
 
On 31/03/2010 15:45, Mehdi Dogguy wrote:
> I do use autoreconf and I don't have these changes in my diff.

Do you remove the modified files in your clean target ? (removed files will be
ignored when creating the diff but you need to list them explicitely in
debian/rules: this is what I do currently)
Or do you never build your package twice in a row (ie called dpkg-buildpackage
twice in the same directory) ?

> IMO, a backup/restore script (where you specify the list of files to
> backup) may be more useful. It would be called before build and when cleaning.

The proposed solution avoid to explicitely list the modified files and
avoid a backup of the full source tree.

Regards,
Vincent

> Cheers,
>


--
Vincent Danjean GPG key ID 0x9D025E87 vdanjean@debian.org
GPG key fingerprint: FC95 08A6 854D DB48 4B9A 8A94 0BF7 7867 9D02 5E87
Unofficial packages: http://moais.imag.fr/membres/vincent.danjean/deb.html
APT repo: deb http://perso.debian.org/~vdanjean/debian unstable main


--
To UNSUBSCRIBE, email to debian-devel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 4BB35553.7030003@free.fr">http://lists.debian.org/4BB35553.7030003@free.fr

Raphael Hertzog 03-31-2010 02:28 PM

Bug#575938: ITP: dh-autoreconf -- debhelper add-on to call autoreconf and clean up after the build
 
On Wed, 31 Mar 2010, Julian Andres Klode wrote:
> > IMO, a backup/restore script (where you specify the list of files to
> > backup) may be more useful. It would be called before build and when cleaning.
> I don't think so, it requires you to keep track of the files
> and you may miss some.

OTOH, such a dh_backup could be integrated in debhelper since it would be
a no-op unless you provide a list of files to backup/restore (and hence
could be integrated in the default sequence without creating problems).

Cheers,
--
Raphal Hertzog

Like what I do? Sponsor me: http://ouaza.com/wp/2010/01/05/5-years-of-freexian/
My Debian goals: http://ouaza.com/wp/2010/01/09/debian-related-goals-for-2010/


--
To UNSUBSCRIBE, email to debian-devel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 20100331142841.GB2683@rivendell">http://lists.debian.org/20100331142841.GB2683@rivendell


All times are GMT. The time now is 10:21 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.