This is an automated email from the git hooks/post-receive script. abe pushed a commit to branch master in repository equivs.
commit 92f8c1b14b8484248794f77eb7ed4779071cce48 Author: Peter Samuelson <pe...@p12n.org> Date: Tue Jan 19 22:28:13 2010 -0600 Import Debian version 2.0.8 equivs (2.0.8) unstable; urgency=low * Acknowledge NMU, thanks Zack. * Also thanks Tomáš Pospíšek for several patches. * Use dpkg-buildpackage instead of debuild; drop devscripts dependency. (Closes: #475936) * Stop specifying debhelper >=4, redundant in this day and age. At the same time, I don't see the point in specifying a higher compat level. * Update and improve package description somewhat. (Closes: #464871) * Document including multiple files via the "Files:" field: manpage (Closes: #565897), template file (Closes: #464888). * Allow +x bit to be specified on File: line. (Closes: #535622) * Preserve +x bit for files in Files: section. (Closes: #535623) * Allow Homepage field. (Closes: #502395) * Fix Makefile pod2man rule. (Closes: #364620) * Bump Standards-Version to 3.8.3 (no changes). * Honor $DEBEMAIL, $EMAIL, $DEBFULLNAME, and /etc/mailname for the default maintainer address. equivs (2.0.7-0.1) unstable; urgency=low * Non-maintainer upload. * equivs-build: add support for adding arbitrary extra files to a package. Thanks to Anthony Towns for the patch (Closes: #449542) * equivs-build: use date -R instead of deprecated 822-date. Thanks to Guillem Jover. (Closes: #415797) * equivs-build.pod: document the new "Files:" and "File:" fields * debian/control: bump Standards-Version to 3.7.3, no changes needed * debian/control: move debhelper dependency to Build-Depends, so that it is available upon clean --- debian/changelog | 35 ++++++++++ debian/control | 24 +++---- debian/equivs-build.pod | 23 +++++++ debian/rules | 2 +- usr/bin/equivs-build | 122 ++++++++++++++++++++++++++------- usr/share/equivs/template.ctl | 3 + usr/share/equivs/template/debian/rules | 1 + 7 files changed, 170 insertions(+), 40 deletions(-) diff --git a/debian/changelog b/debian/changelog index e63acd5..c466d4c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,38 @@ +equivs (2.0.8) unstable; urgency=low + + * Acknowledge NMU, thanks Zack. + * Also thanks Tomáš Pospíšek for several patches. + * Use dpkg-buildpackage instead of debuild; drop devscripts dependency. + (Closes: #475936) + * Stop specifying debhelper >=4, redundant in this day and age. At the + same time, I don't see the point in specifying a higher compat level. + * Update and improve package description somewhat. (Closes: #464871) + * Document including multiple files via the "Files:" field: + manpage (Closes: #565897), template file (Closes: #464888). + * Allow +x bit to be specified on File: line. (Closes: #535622) + * Preserve +x bit for files in Files: section. (Closes: #535623) + * Allow Homepage field. (Closes: #502395) + * Fix Makefile pod2man rule. (Closes: #364620) + * Bump Standards-Version to 3.8.3 (no changes). + * Honor $DEBEMAIL, $EMAIL, $DEBFULLNAME, and /etc/mailname for the + default maintainer address. + + -- Peter Samuelson <pe...@p12n.org> Tue, 19 Jan 2010 22:28:13 -0600 + +equivs (2.0.7-0.1) unstable; urgency=low + + * Non-maintainer upload. + * equivs-build: add support for adding arbitrary extra files to a package. + Thanks to Anthony Towns for the patch (Closes: #449542) + * equivs-build: use date -R instead of deprecated 822-date. + Thanks to Guillem Jover. (Closes: #415797) + * equivs-build.pod: document the new "Files:" and "File:" fields + * debian/control: bump Standards-Version to 3.7.3, no changes needed + * debian/control: move debhelper dependency to Build-Depends, so that it is + available upon clean + + -- Stefano Zacchiroli <z...@debian.org> Tue, 22 Jan 2008 12:26:38 +0100 + equivs (2.0.7) unstable; urgency=low * New maintainer. (Closes: #350835) diff --git a/debian/control b/debian/control index 170890c..2959792 100644 --- a/debian/control +++ b/debian/control @@ -2,26 +2,22 @@ Source: equivs Section: admin Priority: extra Maintainer: Peter Samuelson <pe...@p12n.org> -Standards-Version: 3.6.2 -Build-Depends-Indep: debhelper (>= 4) +Standards-Version: 3.8.3 +Build-Depends: debhelper Package: equivs -Depends: perl, debhelper (>= 4), dpkg-dev, devscripts, make, fakeroot +Depends: perl, debhelper, dpkg-dev, make, fakeroot Architecture: all Description: Circumvent Debian package dependencies - This package provides a tool to create Debian packages that only - contain dependency information. + This package provides a tool to create trivial Debian packages. + Typically these packages contain only dependency information, but they + can also include normal installed files like other packages do. . One use for this is to create a metapackage: a package whose sole purpose is to declare dependencies and conflicts on other packages so that these will be automatically installed, upgraded, or removed. . - Another use is to circumvent dependency checking. If a package P is - not installed on the system, packages that depend on P cannot normally - be installed. However, if functionality equivalent to P is known to - be installed, this tool can be used to trick the Debian package - management system into believing that package P is actually installed. - NOTE: this should be considered a crude hack to work around awkward - situations, not a normal solution. If you use equivs to work around - bugs in other Debian packages, you should also file bug reports - against those packages. + Another use is to circumvent dependency checking: by letting dpkg + think a particular package name and version is installed when it + isn't, you can work around bugs in other packages' dependencies. + (Please do still file such bugs, though.) diff --git a/debian/equivs-build.pod b/debian/equivs-build.pod index 6f76601..1943910 100644 --- a/debian/equivs-build.pod +++ b/debian/equivs-build.pod @@ -60,6 +60,29 @@ description (package developers-reference). A comma-separated list of files to copy to the F</usr/share/doc/packagename> directory. +=item Files: + +Files to be copied into some directory of the created package. Each +line contains a source filename and a destination directory, +space-separated. As with other multi-line headers, all lines but the +first must be indented. Example: + + Files: foo-cron /etc/cron.d/ + foo-cron-helper /usr/local/bin/ + +=item File: + +Files to be copied into some directory of the created package, +specified inline in the source control file. The field syntax is the +name of the files to be created, followed by lines indented by 1 +space denoting file content; leading space will be trimmed. An octal +file mode may be specified after the filename; it defaults to 644, and +will be normalised to 644 or 755. Example: + + File: /usr/local/bin/true 755 + #!/bin/sh + exit 0 + =back See F</usr/share/doc/equivs/README.Debian> for more information. diff --git a/debian/rules b/debian/rules index d40afbf..3fc55f5 100755 --- a/debian/rules +++ b/debian/rules @@ -7,7 +7,7 @@ PKG := equivs MANPAGES := debian/equivs-control.1 debian/equivs-build.1 %.1: %.pod - pod2man --section=1 --release="$(date +'%d %b %Y')" \ + pod2man --section=1 --release="$$(date +'%d %b %Y')" \ --center="Debian/GNU" --date=' ' $< > $@ build: $(MANPAGES) diff --git a/usr/bin/equivs-build b/usr/bin/equivs-build index 9a2863b..4360646 100755 --- a/usr/bin/equivs-build +++ b/usr/bin/equivs-build @@ -61,6 +61,57 @@ if ($debug) { # Copy any additional files my @extra_files = split ",", $control{'Extra-Files'} || ""; +my %install_files = (); +for (split "\n", $control{'Files'} || "") { + $install_files{$2} = $1 if m/^\s*(\S+)\s+(\S+)\s*$/; +} +my %create_files = (); +for (@{$control{'File'} || []}) { + if (m/^\s*(\S+)(?:\s+(\d+))?\s*\n(.*)$/s) { + my ($f,$m,$b) = ($1,$2,$3); + $m = (oct $m||0) || 0644; + $b =~ s/^ //mg; + $b =~ s/^[.]([.]*)$/$1/mg; + $create_files{$f} = [$b,$m]; + } +} + +mkdir "$builddir/install", 0755; +open INSTALL, '>', "$builddir/debian/install" or + die "Cannot open $builddir/debian/install for writing: $!\n"; +foreach my $target (keys %install_files, keys %create_files) { + $target =~ s/ +//g; + my $dest; + my $cnt = 0; + if ($target =~ m/^(preinst|postinst|prerm|postrm)$/) { + $dest = "debian/$target"; + } else { + do { + $dest = "install/$cnt"; + mkdir "$builddir/$dest" unless -d "$builddir/$dest"; + $dest .= "/" . basename($target); + $cnt++; + } while ( -e "$builddir/$dest" ); + print INSTALL "$dest " . dirname($target) . "\n"; + } + $dest = "$builddir/$dest"; + if (defined $install_files{$target}) { + my $file = $install_files{$target}; + copy $file, $dest + or die "Cannot copy $file to $dest: $!\n"; + chmod -x $file ? 0755 : 0644, $dest + or die "Cannod chmod $dest: $!\n"; + } else { + my ($content, $mode) = @{$create_files{$target}}; + open CREATE, '>', $dest + or die "Cannot create file $dest: $!\n"; + print CREATE "$content\n"; + close CREATE; + chmod $mode, $dest + or die "Cannot chmod $dest: $!\n"; + } +} +close INSTALL; mkdir "$builddir/docs", 0755; open DOCS, '>', "$builddir/debian/docs" or @@ -68,21 +119,20 @@ open DOCS, '>', "$builddir/debian/docs" or foreach my $file (@extra_files){ $file =~ s/ +//g; - my $destination = basename($file); - copy $file, "$builddir/docs/$destination" or - die "Cannot copy $file to $builddir/docs/$destination: $!\n"; - print DOCS "docs/$destination\n"; + my $dest = 'docs/' . basename($file); + copy $file, "$builddir/$dest" or + die "Cannot copy $file to $builddir/$dest: $!\n"; + print DOCS "$dest\n"; } close DOCS; foreach my $script (qw(Preinst Postinst Prerm Postrm)) { next unless defined $control{$script}; - my $destination = lc($script); - copy $control{$script}, "$builddir/debian/$destination" or - die "Cannot copy $script to $builddir/debian/$destination: $!\n"; + my $dest = 'debian/' . lc($script); + copy $control{$script}, "$builddir/$dest" or + die "Cannot copy $script to $builddir/$dest: $!\n"; } - write_control_file($builddir, \%control); if ($control{'Changelog'}) { @@ -117,9 +167,9 @@ if ($arch) { } if ($full_package) { - push @build_cmd, 'debuild', '-rfakeroot'; + push @build_cmd, qw(dpkg-buildpackage -rfakeroot); } else { - push @build_cmd, 'fakeroot', 'debian/rules', 'binary'; + push @build_cmd, qw(fakeroot debian/rules binary); } system(@build_cmd) == 0 or die "Error in the build process: exit status " . ($?>>8) . "\n"; @@ -132,23 +182,29 @@ exit 0; sub read_control_file { my ($builddir, $control, $specific_arch, $file) = @_; + my @control = (); my $in; open($in, "$builddir/debian/control.in") or die "Cannot open control file: $!\n"; - read_control_file_section($in, $control) or + read_control_file_section($in, \@control) or die "error: empty control file\n"; close $in; # Set some field defaults: Maintainer, Architecture - my (@user) = getpwuid $>; - my $gecos; - my ($username, $systemname, $fullname); - - ($username, $gecos) = @user[0,6]; - $fullname = (split ",", $gecos)[0]; + my $fullname = $ENV{DEBFULLNAME}; + ($fullname) = split ',', (getpwuid $>)[6] + unless defined $fullname; + + my ($username, $systemname); + for (qw(DEBEMAIL EMAIL)) { + ($username, $systemname) = split '@', $ENV{$_} + if !$username and defined $ENV{$_}; + } + $username ||= $ENV{USER} || $ENV{LOGNAME} || (getpwuid $>)[0]; + chomp($systemname ||= qx(cat /etc/mailname 2>&- || hostname --fqdn)); - chomp($systemname = qx(hostname --fqdn)); + %{$control} = @control; $control->{'Maintainer'} = "$fullname <$username\@$systemname>"; @@ -157,10 +213,24 @@ sub read_control_file { open($in, $file) or die "Cannot open control file $file: $!\n"; - read_control_file_section($in, $control) or + @control = (); + read_control_file_section($in, \@control) or die "error: empty control file\n"; close $in; + for (my $i = 0; $i < $#control; $i += 2) { + my $k = $control[$i]; + my $v = $control[$i+1]; + if ($k eq "File") { + my $vv = []; + $vv = $control->{$k} if defined $control->{$k}; + push @{$vv}, $v; + $control->{$k} = $vv; + } else { + $control->{$k} = $v; + } + } + # Fix Source: entry $control->{'Source'} = $control->{'Package'}; @@ -177,17 +247,17 @@ sub read_control_file_section { my ($cf,$v); while (<$fh>) { chomp; - next if (m/^\s*$/ or m/^\s*#/); + next if (m/^\s*$/ or m/^#/); # new field? if (/^(\S+)\s*:\s*(.*?)\s*$/) { ($cf,$v) = (ucfirst lc $1, $2); $cf =~ s/(?<=-)([a-z])/uc $1/eg; - $pfields->{$cf} = $v; + push @{$pfields}, $cf, $v; } elsif (/^(\s+\S.*)$/) { $v = $1; defined($cf) or die "syntax error in control file: no field specified\n"; - $pfields->{$cf} .= "\n$v"; + $pfields->[-1] .= "\n$v"; } else { die "syntax error in control file: $_\n"; } @@ -223,6 +293,7 @@ sub write_control_file { "Section", "Priority", "Maintainer", + "Homepage", "Build-Depends", "Standards-Version"); print OUT "\n"; @@ -243,15 +314,16 @@ sub write_control_file { sub make_changelog { my ($builddir, $control) = @_; - my ($version, $date); + my ($version, $suite, $date); $version = $control->{'Version'} || "1.0"; - chomp ($date = qx(822-date)); + $suite = $control->{'Suite'} || "unstable"; + chomp ($date = qx(date -R)); open OUT, '>', "$builddir/debian/changelog" or die "Couldn't write changelog: $!\n"; print OUT <<EOINPUT; -$control->{Package} ($version) unstable; urgency=low +$control->{Package} ($version) $suite; urgency=low * First version diff --git a/usr/share/equivs/template.ctl b/usr/share/equivs/template.ctl index f0ec346..499994b 100644 --- a/usr/share/equivs/template.ctl +++ b/usr/share/equivs/template.ctl @@ -2,6 +2,7 @@ ### Uncomment to edit them. Section: misc Priority: optional +# Homepage: <enter URL here; no default> Standards-Version: 3.6.2 Package: <package name; defaults to equivs-dummy> @@ -18,6 +19,8 @@ Package: <package name; defaults to equivs-dummy> # Changelog: <changelog file; defaults to a generic changelog> # Readme: <README.Debian file; defaults to a generic one> # Extra-Files: <comma-separated list of additional files for the doc directory> +# Files: <pair of space-separated paths; First is file to include, second is destination> +# <more pairs, if there's more than one file to include. Notice the starting space> Description: <short description; defaults to some wise words> long description and info . diff --git a/usr/share/equivs/template/debian/rules b/usr/share/equivs/template/debian/rules index e60ad71..7b3f2f2 100755 --- a/usr/share/equivs/template/debian/rules +++ b/usr/share/equivs/template/debian/rules @@ -20,6 +20,7 @@ binary-indep: install binary-arch: install dh_testdir dh_testroot + dh_install dh_installdocs dh_installchangelogs dh_compress -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/equivs.git _______________________________________________ Pkg-perl-cvs-commits mailing list Pkg-perl-cvs-commits@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits