Add tools to update debian/control's build dependencies.
The canonical list of Perl module dependencies are in C4::Installer::PerlDependencies::PERL_DEPS now. Add a script (debian/list-deps) to turn that into a list of Debian package names. Because that is a slow process, and the output rarely changes, do not do that at build time. Also, doing it at build time would require modifying debian/control in evil ways. Instead, add another tool, debian/update-control, which reads the new file debian/control.in, and adds the output of debian/list-deps to Build-Depends and creates a new debian/control. debian/control.in is the master file. If changes are needed, that should be edited. For performance and convenience reasons, the output is also kept in git, but don't edit debian/control directly, please. Such changes might get lost by the next commit by someone else. Whenever PERL_DEPS changes, debian/update-control should be run as well and the result committed to git. This is not quite as automatic as it might be, but should be good enough. It avoids keeping the list of Perl modules in two places. Note that since it seems impossible to automatically figure out the Debian package version that corresponds to a Perl module version, I have not tried to do that at all. Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
This commit is contained in:
parent
469b32f318
commit
2fcc4fe94e
|
|
@ -468,6 +468,13 @@ A module for cataloging Koha Perl dependencies.
|
|||
This module's sole purpose for existence is to provide a single location to catalog all Koha Perl dependencies. New dependencies should be added to the
|
||||
end of the outer hash and follow the key/value pattern used in the other dependencies.
|
||||
|
||||
=head2 Debian
|
||||
|
||||
If you change the list of dependencies, and you use Debian, please also
|
||||
run the debian/update-control script and commit the modifed version of
|
||||
debian/control into git as well. If you're not running Debian, don't
|
||||
worry about it.
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Chris Nighswonger <cnighswonger AT foundations DOT edu>
|
||||
|
|
|
|||
|
|
@ -6,64 +6,76 @@ Standards-Version: 3.8.4
|
|||
# NOTA BENE: Build dependencies end up as runtime dependencies as well.
|
||||
# See debian/rules, the override_dh_gencontrol rules.
|
||||
# There are some exceptions.
|
||||
Build-Depends: debhelper (>= 7.0.50), gettext,
|
||||
perl,
|
||||
libalgorithm-checkdigits-perl,
|
||||
libauthen-cas-client-perl,
|
||||
libbiblio-endnotestyle-perl,
|
||||
libcgi-session-perl,
|
||||
libcgi-session-serialize-yaml-perl,
|
||||
libclass-accessor-perl,
|
||||
libclass-factory-util-perl,
|
||||
libdbd-sqlite2-perl,
|
||||
libdbd-mysql-perl,
|
||||
libdbi-perl,
|
||||
libdata-ical-perl,
|
||||
libdate-calc-perl,
|
||||
libdate-ical-perl,
|
||||
libdate-manip-perl,
|
||||
libemail-date-perl,
|
||||
libgd-gd2-perl,
|
||||
libgraphics-magick-perl,
|
||||
libhtml-scrubber-perl,
|
||||
libhtml-template-pro-perl,
|
||||
libjson-perl,
|
||||
liblingua-stem-perl,
|
||||
liblingua-stem-snowball-perl,
|
||||
liblist-moreutils-perl,
|
||||
liblocale-po-perl,
|
||||
libmarc-charset-perl,
|
||||
libmarc-crosswalk-dublincore-perl,
|
||||
libmarc-record-perl,
|
||||
libmarc-xml-perl,
|
||||
libmime-lite-perl,
|
||||
libmail-sendmail-perl,
|
||||
libnet-ldap-perl,
|
||||
libnet-z3950-zoom-perl,
|
||||
libnumber-format-perl,
|
||||
libpdf-api2-perl,
|
||||
libpdf-reuse-perl,
|
||||
libpdf-reuse-barcode-perl,
|
||||
libpdf-table-perl,
|
||||
libpoe-perl,
|
||||
libsms-send-perl,
|
||||
libschedule-at-perl,
|
||||
libstorable-perl,
|
||||
libtext-csv-perl,
|
||||
libxml-dumper-perl,
|
||||
libxml-libxml-perl,
|
||||
libxml-libxslt-perl,
|
||||
libxml-rss-perl,
|
||||
libxml-sax-writer-perl,
|
||||
libxml-simple-perl,
|
||||
libyaml-syck-perl,
|
||||
libyaml-perl,
|
||||
libmodule-install-perl,
|
||||
libhttp-oai-perl,
|
||||
libtext-csv-encoded-perl,
|
||||
libpdf-api2-simple-perl,
|
||||
libmemoize-memcached-perl,
|
||||
liblocale-currency-format-perl
|
||||
Build-Depends: libalgorithm-checkdigits-perl,
|
||||
libauthen-cas-client-perl,
|
||||
libbiblio-endnotestyle-perl,
|
||||
libcgi-pm-perl | perl-modules,
|
||||
libcgi-session-perl,
|
||||
libcgi-session-serialize-yaml-perl,
|
||||
libclass-accessor-perl,
|
||||
libclass-factory-util-perl,
|
||||
libdata-ical-perl,
|
||||
libdate-calc-perl,
|
||||
libdate-ical-perl,
|
||||
libdate-manip-perl,
|
||||
libdatetime-perl,
|
||||
libdbd-mysql-perl,
|
||||
libdbd-sqlite2-perl,
|
||||
libdbi-perl,
|
||||
libdigest-sha-perl | perl,
|
||||
libemail-date-perl,
|
||||
libfile-temp-perl | perl-modules,
|
||||
libgd-barcode-perl,
|
||||
libgd-gd2-noxpm-perl | libgd-gd2-perl,
|
||||
libgraphics-magick-perl,
|
||||
libhtml-scrubber-perl,
|
||||
libhtml-template-pro-perl,
|
||||
libhttp-oai-perl,
|
||||
libjson-perl,
|
||||
liblingua-stem-perl,
|
||||
liblingua-stem-snowball-perl,
|
||||
liblist-moreutils-perl,
|
||||
liblocale-currency-format-perl,
|
||||
liblocale-po-perl,
|
||||
libmail-sendmail-perl,
|
||||
libmarc-charset-perl,
|
||||
libmarc-crosswalk-dublincore-perl,
|
||||
libmarc-record-perl,
|
||||
libmarc-xml-perl,
|
||||
libmemoize-memcached-perl,
|
||||
libmime-lite-perl,
|
||||
libnet-ldap-perl,
|
||||
libnet-z3950-zoom-perl,
|
||||
libnumber-format-perl,
|
||||
libpdf-api2-perl,
|
||||
libpdf-api2-simple-perl,
|
||||
libpdf-reuse-barcode-perl,
|
||||
libpdf-reuse-perl,
|
||||
libpdf-table-perl,
|
||||
libpoe-perl,
|
||||
libscalar-list-utils-perl | perl-base,
|
||||
libschedule-at-perl,
|
||||
libsms-send-perl,
|
||||
libtest-harness-perl | perl-modules,
|
||||
libtest-simple-perl | perl-modules,
|
||||
libtext-csv-encoded-perl,
|
||||
libtext-csv-perl,
|
||||
libtext-csv-xs-perl,
|
||||
libtext-iconv-perl,
|
||||
liburi-perl,
|
||||
libwww-perl,
|
||||
libxml-dumper-perl,
|
||||
libxml-libxml-perl,
|
||||
libxml-libxslt-perl,
|
||||
libxml-rss-perl,
|
||||
libxml-sax-perl,
|
||||
libxml-sax-writer-perl,
|
||||
libxml-simple-perl,
|
||||
libyaml-syck-perl,
|
||||
perl,
|
||||
perl-base,
|
||||
perl-modules,
|
||||
debhelper (>= 7.0.50), gettext
|
||||
|
||||
Package: koha-common
|
||||
Architecture: all
|
||||
|
|
|
|||
|
|
@ -0,0 +1,50 @@
|
|||
Source: koha
|
||||
Maintainer: Lars Wirzenius <lars@catalyst.net.nz>
|
||||
Section: web
|
||||
Priority: optional
|
||||
Standards-Version: 3.8.4
|
||||
# NOTA BENE: Build dependencies end up as runtime dependencies as well.
|
||||
# See debian/rules, the override_dh_gencontrol rules.
|
||||
# There are some exceptions.
|
||||
Build-Depends:__AUTODEPENDS__,
|
||||
debhelper (>= 7.0.50), gettext
|
||||
|
||||
Package: koha-common
|
||||
Architecture: all
|
||||
Depends: ${shlib:Depends}, ${misc:Depends}, ${koha:Depends},
|
||||
apache2,
|
||||
apache2-mpm-itk,
|
||||
at,
|
||||
daemon,
|
||||
idzebra-2.0,
|
||||
libjs-jquery,
|
||||
libjs-yui,
|
||||
mysql-client,
|
||||
tinymce2,
|
||||
yaz
|
||||
Suggests: mysql-server
|
||||
Homepage: http://koha-community.org/
|
||||
Description: integrated (physical) library management system
|
||||
Koha is an Integrated Library Managment system for real-world libraries
|
||||
(the kinds with books).
|
||||
.
|
||||
This package contains everything needed to run Koha, except the site
|
||||
specific configuration files. See the package koha for the rest.
|
||||
|
||||
Package: koha
|
||||
Architecture: all
|
||||
Depends: ${shlib:Depends}, ${misc:Depends},
|
||||
koha-common,
|
||||
dbconfig-common,
|
||||
mysql-server
|
||||
Homepage: http://koha-community.org/
|
||||
Description: integrated (physical) library management system
|
||||
Koha is an Integrated Library Managment system for real-world libraries
|
||||
(the kinds with books).
|
||||
.
|
||||
This package contains site-specific configuration files and sets up
|
||||
the MySQL database for Koha. For simplicity, the database server is
|
||||
assumed to run on the same host as Koha.
|
||||
.
|
||||
Please see /usr/share/doc/koha/README.Debian for instructions on how to
|
||||
configure things after installing this package.
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
#!/usr/bin/perl
|
||||
#
|
||||
# Write dependency list from Koha PerlDependencies.pm, in Debian format.
|
||||
#
|
||||
# Copyright 2010 Catalyst IT, Ltd
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use C4::Installer::PerlDependencies;
|
||||
|
||||
my $deps = $C4::Installer::PerlDependencies::PERL_DEPS;
|
||||
|
||||
my $prefix = "^/usr/((lib|share)/perl5|(lib|share)/perl/[0-9.]+)";
|
||||
|
||||
foreach my $module (keys %$deps) {
|
||||
my $ver = $deps->{$module}->{'min_ver'};
|
||||
my $subpath = $module;
|
||||
$subpath =~ s,::,/,g;
|
||||
my $output =
|
||||
qx(apt-file -l -x search "$prefix/$subpath.pm\$");
|
||||
my @lines = split(/\n/, $output);
|
||||
if (scalar(@lines) == 1 && $lines[0] ne "") {
|
||||
my $pkg = $lines[0];
|
||||
print "$pkg\n";
|
||||
} elsif (scalar(@lines) > 1) {
|
||||
foreach my $pkg (@lines) {
|
||||
print " | " if ($pkg ne $lines[0]);
|
||||
print "$pkg";
|
||||
}
|
||||
print "\n";
|
||||
} else {
|
||||
print "EEEK: unknown package for $module\n";
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
deps="$(debian/list-deps |
|
||||
sort -u |
|
||||
sed 's/.*/ &,\\n/' |
|
||||
tr -d '\n' |
|
||||
sed 's/,\\n$//')"
|
||||
sed "s/__AUTODEPENDS__/$deps/" debian/control.in > debian/control
|
||||
|
||||
Loading…
Reference in New Issue