Add support for translated program output in multistrap
git-svn-id: http://emdebian.org/svn/current@6667 563faec7-e20c-0410-992a-a66f704d0ccd
This commit is contained in:
parent
2838624ee0
commit
daea8a0205
10 changed files with 252 additions and 55 deletions
6
Makefile
6
Makefile
|
@ -4,16 +4,20 @@ PREFIX ?= /usr
|
||||||
DEST = $(DESTDIR)$(PREFIX)
|
DEST = $(DESTDIR)$(PREFIX)
|
||||||
|
|
||||||
all: docbuild
|
all: docbuild
|
||||||
|
$(MAKE) -C po
|
||||||
|
|
||||||
docbuild:
|
docbuild:
|
||||||
./genmanpages
|
./genmanpages
|
||||||
|
|
||||||
install:
|
install:
|
||||||
|
$(MAKE) -C po install DESTDIR=../debian/multistrap
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(RM) *~
|
$(RM) *~
|
||||||
-$(MAKE) -C doc clean
|
$(MAKE) -C doc clean
|
||||||
|
$(MAKE) -C po clean
|
||||||
|
|
||||||
# adds the POT file to the source tarball
|
# adds the POT file to the source tarball
|
||||||
native-dist: Makefile
|
native-dist: Makefile
|
||||||
./genmanpages --pot-only
|
./genmanpages --pot-only
|
||||||
|
$(MAKE) -C po pot
|
||||||
|
|
3
debian/changelog
vendored
3
debian/changelog
vendored
|
@ -5,8 +5,9 @@ emdebian-rootfs (2.0.4) unstable; urgency=low
|
||||||
(Closes: #553599)
|
(Closes: #553599)
|
||||||
* Use genmanpages code from svn-buildpackage for translated content.
|
* Use genmanpages code from svn-buildpackage for translated content.
|
||||||
* Apply useNativeDist to package POT file
|
* Apply useNativeDist to package POT file
|
||||||
|
* Add support for translated program output in multistrap
|
||||||
|
|
||||||
-- Neil Williams <codehelp@debian.org> Sun, 01 Nov 2009 16:54:27 +0000
|
-- Neil Williams <codehelp@debian.org> Sun, 01 Nov 2009 18:31:49 +0000
|
||||||
|
|
||||||
emdebian-rootfs (2.0.3) unstable; urgency=low
|
emdebian-rootfs (2.0.3) unstable; urgency=low
|
||||||
|
|
||||||
|
|
3
debian/rules
vendored
3
debian/rules
vendored
|
@ -5,3 +5,6 @@
|
||||||
include /usr/share/cdbs/1/class/makefile.mk
|
include /usr/share/cdbs/1/class/makefile.mk
|
||||||
include /usr/share/cdbs/1/rules/debhelper.mk
|
include /usr/share/cdbs/1/rules/debhelper.mk
|
||||||
include /usr/share/cdbs/1/rules/simple-patchsys.mk
|
include /usr/share/cdbs/1/rules/simple-patchsys.mk
|
||||||
|
|
||||||
|
DEB_MAKE_INSTALL_TARGET=install
|
||||||
|
|
||||||
|
|
|
@ -15,20 +15,26 @@
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
use IO::File;
|
use IO::File;
|
||||||
use Config::Auto;
|
use Config::Auto;
|
||||||
use File::Basename;
|
use File::Basename;
|
||||||
use Parse::Debian::Packages;
|
use Parse::Debian::Packages;
|
||||||
use strict;
|
use POSIX qw(locale_h);
|
||||||
use warnings;
|
use Locale::gettext;
|
||||||
|
|
||||||
use vars qw/ $progname $ourversion $dstrap $extra @aptsources
|
use vars qw/ $progname $ourversion $dstrap $extra @aptsources
|
||||||
@archives $deb $cachedir $config_str %packages $retval $str $retries
|
@archives $deb $cachedir $config_str %packages $retval $str $retries
|
||||||
$dir $include $arch $foreign $suite $url $unpack $sourcedir
|
$dir $include $arch $foreign $suite $url $unpack $sourcedir $msg
|
||||||
@e $sourcesname $libdir $dpkgdir @debootstrap %suites $mirror $etcdir
|
@e $sourcesname $libdir $dpkgdir @debootstrap %suites $mirror $etcdir
|
||||||
$repo @dirs @touch %sources $section %keys $host $key $value $type
|
$repo @dirs @touch %sources $section %keys $host $key $value $type
|
||||||
$file $config $tidy $noauth $keyring %keyrings $deflist /;
|
$file $config $tidy $noauth $keyring %keyrings $deflist /;
|
||||||
|
|
||||||
|
setlocale(LC_MESSAGES, "");
|
||||||
|
textdomain("multistrap");
|
||||||
$progname = basename($0);
|
$progname = basename($0);
|
||||||
$ourversion = "0.0.7";
|
$ourversion = "0.0.8";
|
||||||
$unpack = "true";
|
$unpack = "true";
|
||||||
|
|
||||||
while( @ARGV ) {
|
while( @ARGV ) {
|
||||||
|
@ -64,10 +70,11 @@ while( @ARGV ) {
|
||||||
$noauth++;
|
$noauth++;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
die "$progname: Unknown option $_.\n";
|
die "$progname: "._g("Unknown option")." $_.\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
die ("Need a configuration file - use $progname -f\n")
|
$msg = printf (_g("Need a configuration file - use %s -f\n"), $progname);
|
||||||
|
die ($msg)
|
||||||
if (not defined $file);
|
if (not defined $file);
|
||||||
$config = Config::Auto::parse("$file");
|
$config = Config::Auto::parse("$file");
|
||||||
%keys=();
|
%keys=();
|
||||||
|
@ -111,30 +118,32 @@ foreach $section (sort keys %keys)
|
||||||
$keyrings{$section}=$keys{$section}{'keyring'};
|
$keyrings{$section}=$keys{$section}{'keyring'};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
print "$progname $ourversion using $file\n";
|
# Translators: fields are: programname, versionstring, configfile.
|
||||||
|
printf (_g("%s %s using %s\n"), $progname, $ourversion, $file);
|
||||||
$host = `dpkg-architecture -qDEB_BUILD_ARCH`;
|
$host = `dpkg-architecture -qDEB_BUILD_ARCH`;
|
||||||
chomp ($host);
|
chomp ($host);
|
||||||
if (not defined $arch)
|
if (not defined $arch)
|
||||||
{
|
{
|
||||||
$arch = $host;
|
$arch = $host;
|
||||||
printf ("Defaulting architecture to native: %s\n",$arch);
|
printf (_g("Defaulting architecture to native: %s\n"),$arch);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf ("Using foreign architecture: %s\n", $arch);
|
printf (_g("Using foreign architecture: %s\n"), $arch);
|
||||||
}
|
}
|
||||||
$foreign++ if ($host ne $arch);
|
$foreign++ if ($host ne $arch);
|
||||||
|
|
||||||
unless (keys %sources and @aptsources)
|
unless (keys %sources and @aptsources)
|
||||||
{
|
{
|
||||||
my $msg = sprintf("No sources defined for a foreign multistrap
|
my $msg = sprintf(_g("No sources defined for a foreign multistrap
|
||||||
Using your existing apt sources. To use different sources,
|
Using your existing apt sources. To use different sources,
|
||||||
and list them with aptsources= in '%s'.", $file);
|
and list them with aptsources= in '%s'."), $file);
|
||||||
warn ("$progname: $msg\n");
|
warn ("$progname: $msg\n");
|
||||||
$deflist = prepare_sources_list();
|
$deflist = prepare_sources_list();
|
||||||
}
|
}
|
||||||
|
|
||||||
printf ("%s building %s multistrap on '%s'\n", $progname, $arch, $host);
|
# Translators: fields are: programname, architecture, host architecture.
|
||||||
|
printf (_g("%s building %s multistrap on '%s'\n"), $progname, $arch, $host);
|
||||||
$cachedir = "var/cache/apt/"; # archives
|
$cachedir = "var/cache/apt/"; # archives
|
||||||
$libdir = "var/lib/apt/"; # lists
|
$libdir = "var/lib/apt/"; # lists
|
||||||
$etcdir = "etc/apt/"; # sources
|
$etcdir = "etc/apt/"; # sources
|
||||||
|
@ -180,7 +189,7 @@ if (-l "${dir}lib64" ) {
|
||||||
chomp ($old);
|
chomp ($old);
|
||||||
unlink "${dir}lib64";
|
unlink "${dir}lib64";
|
||||||
chdir ("$dir");
|
chdir ("$dir");
|
||||||
print "INF: ./lib64 -> /lib symbolic link reset to ./lib.\n";
|
print _g("INF: ./lib64 -> /lib symbolic link reset to ./lib.\n");
|
||||||
symlink "./lib", "lib64";
|
symlink "./lib", "lib64";
|
||||||
chdir ("${old}");
|
chdir ("${old}");
|
||||||
}
|
}
|
||||||
|
@ -190,7 +199,7 @@ else
|
||||||
my $old = `pwd`;
|
my $old = `pwd`;
|
||||||
chomp ($old);
|
chomp ($old);
|
||||||
chdir ("$dir");
|
chdir ("$dir");
|
||||||
print "INF: Setting ./lib64 -> ./lib symbolic link.\n";
|
print _g("INF: Setting ./lib64 -> ./lib symbolic link.\n");
|
||||||
symlink "./lib", "lib64";
|
symlink "./lib", "lib64";
|
||||||
chdir ("${old}");
|
chdir ("${old}");
|
||||||
}
|
}
|
||||||
|
@ -223,7 +232,7 @@ foreach my $aptsrc (@aptsources)
|
||||||
if (defined $deflist)
|
if (defined $deflist)
|
||||||
{
|
{
|
||||||
open (SOURCES, ">>${dir}etc/apt/sources.list.d/multistrap.sources.list")
|
open (SOURCES, ">>${dir}etc/apt/sources.list.d/multistrap.sources.list")
|
||||||
or die "Cannot open sources list $!";
|
or die _g("Cannot open sources list"). $!;
|
||||||
print SOURCES $deflist;
|
print SOURCES $deflist;
|
||||||
close SOURCES;
|
close SOURCES;
|
||||||
}
|
}
|
||||||
|
@ -253,7 +262,7 @@ if (defined $k)
|
||||||
my $e=`LC_ALL=C printenv`;
|
my $e=`LC_ALL=C printenv`;
|
||||||
my $str = ($e =~ /\nUSER=root\n/) ? "" : "sudo ";
|
my $str = ($e =~ /\nUSER=root\n/) ? "" : "sudo ";
|
||||||
$str = (-f "/usr/bin/sudo") ? "$str" : "";
|
$str = (-f "/usr/bin/sudo") ? "$str" : "";
|
||||||
print "I: Installing $k\n";
|
printf (_g("I: Installing %s\n"), $k);
|
||||||
system ("$str apt-get install $k");
|
system ("$str apt-get install $k");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -270,9 +279,9 @@ $config_str .= " -o Dir::Etc::SourceList=${dir}${etcdir}$sourcesname";
|
||||||
$config_str .= " -o Dir::State=${dir}${libdir}";
|
$config_str .= " -o Dir::State=${dir}${libdir}";
|
||||||
$config_str .= " -o Dir::State::Status=${dir}${dpkgdir}status";
|
$config_str .= " -o Dir::State::Status=${dir}${dpkgdir}status";
|
||||||
$config_str .= " -o Dir::Cache=${dir}${cachedir}";
|
$config_str .= " -o Dir::Cache=${dir}${cachedir}";
|
||||||
printf ("Getting package lists: apt-get %s update\n", $config_str);
|
printf (_g("Getting package lists: apt-get %s update\n"), $config_str);
|
||||||
$retval = system ("apt-get $config_str update");
|
$retval = system ("apt-get $config_str update");
|
||||||
die (sprintf("apt update failed. Exit value: ").($retval/256)."\n")
|
die (sprintf (_g("apt update failed. Exit value: %d\n"), ($retval/256)))
|
||||||
if ($retval != 0);
|
if ($retval != 0);
|
||||||
$str = join (' ', values %packages) . " ";
|
$str = join (' ', values %packages) . " ";
|
||||||
chomp($str);
|
chomp($str);
|
||||||
|
@ -283,7 +292,7 @@ $str .= join (' ', @$required);
|
||||||
chomp($str);
|
chomp($str);
|
||||||
print "apt-get -y $config_str install $str\n";
|
print "apt-get -y $config_str install $str\n";
|
||||||
$retval = system ("apt-get -y $config_str install $str");
|
$retval = system ("apt-get -y $config_str install $str");
|
||||||
die ("apt download failed. Exit value: ".($retval/256)."\n")
|
die (sprintf (_g("apt download failed. Exit value: %d\n"),($retval/256)))
|
||||||
if ($retval != 0);
|
if ($retval != 0);
|
||||||
|
|
||||||
&force_unpack if ($unpack eq "true");
|
&force_unpack if ($unpack eq "true");
|
||||||
|
@ -294,12 +303,12 @@ if (-l "${dir}lib64" ) {
|
||||||
my $r = readlink "${dir}lib64";
|
my $r = readlink "${dir}lib64";
|
||||||
if ($r =~ m:^/:)
|
if ($r =~ m:^/:)
|
||||||
{
|
{
|
||||||
print "ERR: ./lib64 -> /lib symbolic link reset to ./lib after unpacking.\n";
|
print _g("ERR: ./lib64 -> /lib symbolic link reset to ./lib after unpacking.\n");
|
||||||
printf ("ERR: Some files may have been unpacked outside %s!\n", $dir);
|
printf (_g("ERR: Some files may have been unpacked outside %s!\n"), $dir);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf ("\nMultistrap system installed successfully in %s.\n\n", $dir);
|
printf (_g("\nMultistrap system installed successfully in %s.\n\n"), $dir);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
exit 0;
|
exit 0;
|
||||||
|
@ -308,10 +317,10 @@ sub force_unpack
|
||||||
{
|
{
|
||||||
my %unpack=();
|
my %unpack=();
|
||||||
opendir (DEBS, "${dir}${cachedir}archives/")
|
opendir (DEBS, "${dir}${cachedir}archives/")
|
||||||
or die ("Cannot read apt archives directory.\n");
|
or die (_g("Cannot read apt archives directory.\n"));
|
||||||
@archives=grep(/.*\.deb$/, readdir DEBS);
|
@archives=grep(/.*\.deb$/, readdir DEBS);
|
||||||
closedir (DEBS);
|
closedir (DEBS);
|
||||||
print "I: Calculating obsolete packages\n";
|
print _g("I: Calculating obsolete packages\n");
|
||||||
foreach $deb (sort @archives)
|
foreach $deb (sort @archives)
|
||||||
{
|
{
|
||||||
my $version = `LC_ALL=C dpkg -f ${dir}${cachedir}archives/$deb Version`;
|
my $version = `LC_ALL=C dpkg -f ${dir}${cachedir}archives/$deb Version`;
|
||||||
|
@ -328,13 +337,13 @@ sub force_unpack
|
||||||
{
|
{
|
||||||
my $old = $deb;
|
my $old = $deb;
|
||||||
$old =~ s/$version/$unpack{$package}/;
|
$old =~ s/$version/$unpack{$package}/;
|
||||||
printf ("I: Removing %s\n", $old);
|
printf (_g("I: Removing %s\n"), $old);
|
||||||
unlink "${dir}${cachedir}archives/$old";
|
unlink "${dir}${cachedir}archives/$old";
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf ("I: Removing %s\n", $deb);
|
printf (_g("I: Removing %s\n"), $deb);
|
||||||
unlink "${dir}${cachedir}archives/$deb";
|
unlink "${dir}${cachedir}archives/$deb";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -343,7 +352,7 @@ sub force_unpack
|
||||||
open (LOCK, ">${dir}${libdir}lists/lock");
|
open (LOCK, ">${dir}${libdir}lists/lock");
|
||||||
close (LOCK);
|
close (LOCK);
|
||||||
opendir (DEBS, "${dir}${cachedir}archives/")
|
opendir (DEBS, "${dir}${cachedir}archives/")
|
||||||
or die ("Cannot read apt archives directory.\n");
|
or die (_g("Cannot read apt archives directory.\n"));
|
||||||
@archives=grep(/.*\.deb$/, readdir DEBS);
|
@archives=grep(/.*\.deb$/, readdir DEBS);
|
||||||
closedir (DEBS);
|
closedir (DEBS);
|
||||||
my $old = `pwd`;
|
my $old = `pwd`;
|
||||||
|
@ -351,7 +360,7 @@ sub force_unpack
|
||||||
chdir ("${dir}");
|
chdir ("${dir}");
|
||||||
foreach $deb (sort @archives)
|
foreach $deb (sort @archives)
|
||||||
{
|
{
|
||||||
printf ("I: Extracting %s...\n", $deb);
|
printf (_g("I: Extracting %s...\n"), $deb);
|
||||||
system ("ar -p \"./${cachedir}archives/$deb\" data.tar.gz | zcat | tar -xf -");
|
system ("ar -p \"./${cachedir}archives/$deb\" data.tar.gz | zcat | tar -xf -");
|
||||||
my $ver=`LC_ALL=C dpkg -f ./${cachedir}archives/$deb Version`;
|
my $ver=`LC_ALL=C dpkg -f ./${cachedir}archives/$deb Version`;
|
||||||
my $pkg=`LC_ALL=C dpkg -f ./${cachedir}archives/$deb Package`;
|
my $pkg=`LC_ALL=C dpkg -f ./${cachedir}archives/$deb Package`;
|
||||||
|
@ -401,7 +410,7 @@ sub force_unpack
|
||||||
if ( -f "./${dpkgdir}info/$pkg.conffiles")
|
if ( -f "./${dpkgdir}info/$pkg.conffiles")
|
||||||
{
|
{
|
||||||
print STATUS "Conffiles:\n";
|
print STATUS "Conffiles:\n";
|
||||||
printf (" -> Processing conffiles for %s\n", $pkg);
|
printf (_g(" -> Processing conffiles for %s\n"), $pkg);
|
||||||
open (CONF, "./${dpkgdir}info/$pkg.conffiles");
|
open (CONF, "./${dpkgdir}info/$pkg.conffiles");
|
||||||
my @lines=<CONF>;
|
my @lines=<CONF>;
|
||||||
close (CONF);
|
close (CONF);
|
||||||
|
@ -422,26 +431,26 @@ sub force_unpack
|
||||||
{
|
{
|
||||||
my $old = `pwd`;
|
my $old = `pwd`;
|
||||||
chomp ($old);
|
chomp ($old);
|
||||||
printf ("ERR: lib64 -> ./lib symbolic link clobbered by %s\n", $pkg);
|
printf (_g("ERR: lib64 -> ./lib symbolic link clobbered by %s\n"), $pkg);
|
||||||
unlink "${dir}lib64";
|
unlink "${dir}lib64";
|
||||||
chdir ("$dir");
|
chdir ("$dir");
|
||||||
print "INF: lib64 -> /lib symbolic link reset to ./lib.\n";
|
print _g("INF: lib64 -> /lib symbolic link reset to ./lib.\n");
|
||||||
symlink "./lib", "lib64";
|
symlink "./lib", "lib64";
|
||||||
chdir ("${old}");
|
chdir ("${old}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
chdir ("$old");
|
chdir ("$old");
|
||||||
print "I: Unpacking complete.\n";
|
print _g("I: Unpacking complete.\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
sub tidy_apt
|
sub tidy_apt
|
||||||
{
|
{
|
||||||
print "I: Tidying up apt cache and list data.\n";
|
print _g("I: Tidying up apt cache and list data.\n");
|
||||||
unlink ("${dir}etc/apt/sources.list")
|
unlink ("${dir}etc/apt/sources.list")
|
||||||
if (-f "${dir}etc/apt/sources.list");
|
if (-f "${dir}etc/apt/sources.list");
|
||||||
opendir (DEBS, "${dir}${libdir}lists/")
|
opendir (DEBS, "${dir}${libdir}lists/")
|
||||||
or die ("Cannot read apt lists directory.\n");
|
or die (_g("Cannot read apt lists directory.\n"));
|
||||||
my @lists=grep(!m:\.\.?$:, readdir DEBS);
|
my @lists=grep(!m:\.\.?$:, readdir DEBS);
|
||||||
closedir (DEBS);
|
closedir (DEBS);
|
||||||
foreach my $file (@lists)
|
foreach my $file (@lists)
|
||||||
|
@ -450,7 +459,7 @@ sub tidy_apt
|
||||||
unlink ("${dir}${libdir}lists/$file");
|
unlink ("${dir}${libdir}lists/$file");
|
||||||
}
|
}
|
||||||
opendir (DEBS, "${dir}${cachedir}/")
|
opendir (DEBS, "${dir}${cachedir}/")
|
||||||
or die ("Cannot read apt cache directory/.\n");
|
or die (_g("Cannot read apt cache directory/.\n"));
|
||||||
my @files=grep(!m:\.\.?$:, readdir DEBS);
|
my @files=grep(!m:\.\.?$:, readdir DEBS);
|
||||||
closedir (DEBS);
|
closedir (DEBS);
|
||||||
foreach my $file (@files)
|
foreach my $file (@files)
|
||||||
|
@ -462,7 +471,7 @@ sub tidy_apt
|
||||||
if ($unpack eq "true")
|
if ($unpack eq "true")
|
||||||
{
|
{
|
||||||
opendir (DEBS, "${dir}${cachedir}/archives/")
|
opendir (DEBS, "${dir}${cachedir}/archives/")
|
||||||
or die ("Cannot read apt archives directory/.\n");
|
or die (_g("Cannot read apt archives directory/.\n"));
|
||||||
my @files=grep(!m:\.\.?$:, readdir DEBS);
|
my @files=grep(!m:\.\.?$:, readdir DEBS);
|
||||||
closedir (DEBS);
|
closedir (DEBS);
|
||||||
foreach my $file (@files)
|
foreach my $file (@files)
|
||||||
|
@ -480,14 +489,14 @@ sub tidy_apt
|
||||||
# if native arch, do a few tasks just because we can and probably should.
|
# if native arch, do a few tasks just because we can and probably should.
|
||||||
sub native
|
sub native
|
||||||
{
|
{
|
||||||
print "I: Native mode - configuring unpacked packages . . .\n";
|
print _g("I: Native mode - configuring unpacked packages . . .\n");
|
||||||
my $e=`LC_ALL=C printenv`;
|
my $e=`LC_ALL=C printenv`;
|
||||||
my $str = ($e =~ /\nUSER=root\n/) ? "" : "sudo";
|
my $str = ($e =~ /\nUSER=root\n/) ? "" : "sudo";
|
||||||
$str = (-f "/usr/bin/sudo") ? "$str" : "";
|
$str = (-f "/usr/bin/sudo") ? "$str" : "";
|
||||||
my $env = "DEBIAN_FRONTEND=noninteractive ".
|
my $env = "DEBIAN_FRONTEND=noninteractive ".
|
||||||
"DEBCONF_NONINTERACTIVE_SEEN=true ".
|
"DEBCONF_NONINTERACTIVE_SEEN=true ".
|
||||||
"LC_ALL=C LANGUAGE=C LANG=C";
|
"LC_ALL=C LANGUAGE=C LANG=C";
|
||||||
print "I: dpkg configuration settings:\n\t$env\n";
|
printf (_g("I: dpkg configuration settings:\n\t%s\n"), $env);
|
||||||
system ("$str $env chroot $dir dpkg --configure -a");
|
system ("$str $env chroot $dir dpkg --configure -a");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -500,7 +509,8 @@ sub get_required_debs
|
||||||
my @required=();
|
my @required=();
|
||||||
my @debs=();
|
my @debs=();
|
||||||
opendir (PKGS, "${dir}${libdir}lists/")
|
opendir (PKGS, "${dir}${libdir}lists/")
|
||||||
or die sprintf("Cannot open %s directory. %s\n","${dir}${libdir}lists/", $!);
|
or die sprintf(_g("Cannot open %s directory. %s\n"),
|
||||||
|
"${dir}${libdir}lists/", $!);
|
||||||
my @lists=grep(/_Packages$/, readdir (PKGS));
|
my @lists=grep(/_Packages$/, readdir (PKGS));
|
||||||
closedir (PKGS);
|
closedir (PKGS);
|
||||||
foreach my $strap (@debootstrap)
|
foreach my $strap (@debootstrap)
|
||||||
|
@ -555,7 +565,7 @@ sub prepare_sources_list
|
||||||
}
|
}
|
||||||
|
|
||||||
sub usageversion {
|
sub usageversion {
|
||||||
printf STDERR ("
|
printf STDERR (_g("
|
||||||
%s version %s
|
%s version %s
|
||||||
|
|
||||||
Usage:
|
Usage:
|
||||||
|
@ -614,8 +624,12 @@ General settings:
|
||||||
'directory' specifies the top level directory where the debootstrap
|
'directory' specifies the top level directory where the debootstrap
|
||||||
will be created - it is not packed into a .tgz once complete.
|
will be created - it is not packed into a .tgz once complete.
|
||||||
|
|
||||||
", $progname, $ourversion, $progname, $progname, $progname)
|
"), $progname, $ourversion, $progname, $progname, $progname)
|
||||||
or die "$progname: "."failed to write usage:". "$!\n";
|
or die ("$progname: ". _g("failed to write usage:") . "$!\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
sub _g {
|
||||||
|
return gettext(shift);
|
||||||
}
|
}
|
||||||
|
|
||||||
=pod
|
=pod
|
||||||
|
|
|
@ -27,10 +27,6 @@ PODIR="po"
|
||||||
POTFILE=""
|
POTFILE=""
|
||||||
# base directory for generated files, e.g. doc
|
# base directory for generated files, e.g. doc
|
||||||
BASEDIR=""
|
BASEDIR=""
|
||||||
# The scripts with translated output
|
|
||||||
SCRIPTS=""
|
|
||||||
# The language to declare for the SCRIPTS (xgettext)
|
|
||||||
SCRIPTS_LANG=""
|
|
||||||
# the binary packages that will contain generated manpages
|
# the binary packages that will contain generated manpages
|
||||||
BINARIES=""
|
BINARIES=""
|
||||||
# the binary packages with manpages in Section 3.
|
# the binary packages with manpages in Section 3.
|
||||||
|
@ -139,9 +135,6 @@ if [ ! -z "$LANGS" ]; then
|
||||||
fi
|
fi
|
||||||
wrap_langs "[po4a_paths]" "$POTFILE" "\$lang:po/\$lang.po"
|
wrap_langs "[po4a_paths]" "$POTFILE" "\$lang:po/\$lang.po"
|
||||||
|
|
||||||
#for file in $SCRIPTS; do
|
|
||||||
# wrap_langs "[type:$SCRIPTS_LANG]" "$file"
|
|
||||||
#done
|
|
||||||
for file in $XMLDIR/*.xml; do
|
for file in $XMLDIR/*.xml; do
|
||||||
LOCAL=`basename $file`
|
LOCAL=`basename $file`
|
||||||
wrap_langs "[type:docbook]" "$file" "\$lang:$XMLDIR/\$lang/$LOCAL"
|
wrap_langs "[type:docbook]" "$file" "\$lang:$XMLDIR/\$lang/$LOCAL"
|
||||||
|
|
|
@ -8,10 +8,6 @@ PODIR="doc/po"
|
||||||
POTFILE="doc/po/emdebian-rootfs.pot"
|
POTFILE="doc/po/emdebian-rootfs.pot"
|
||||||
# base directory for generated files, e.g. doc
|
# base directory for generated files, e.g. doc
|
||||||
BASEDIR="doc"
|
BASEDIR="doc"
|
||||||
# The scripts with translated output
|
|
||||||
SCRIPTS="em_multistrap"
|
|
||||||
# The language to declare for the SCRIPTS (xgettext)
|
|
||||||
SCRIPTS_LANG="perl"
|
|
||||||
# the binary packages that will contain generated manpages
|
# the binary packages that will contain generated manpages
|
||||||
BINARIES="emdebian-rootfs multistrap"
|
BINARIES="emdebian-rootfs multistrap"
|
||||||
# the binary packages with manpages in Section 3.
|
# the binary packages with manpages in Section 3.
|
||||||
|
|
1
po/LINGUAS
Normal file
1
po/LINGUAS
Normal file
|
@ -0,0 +1 @@
|
||||||
|
|
143
po/Makefile
Normal file
143
po/Makefile
Normal file
|
@ -0,0 +1,143 @@
|
||||||
|
# Makefile for program source directory in GNU NLS utilities package.
|
||||||
|
# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
|
||||||
|
# Copyright (C) 2004-2008 Rodney Dawes <dobey.pwns@gmail.com>
|
||||||
|
#
|
||||||
|
# This file may be copied and used freely without restrictions. It may
|
||||||
|
# be used in projects which are not available under a GNU Public License,
|
||||||
|
# but which still want to provide support for the GNU gettext functionality.
|
||||||
|
#
|
||||||
|
# - Modified by Owen Taylor <otaylor@redhat.com> to use GETTEXT_PACKAGE
|
||||||
|
#
|
||||||
|
# - Modified by Neil Williams <linux@codehelp.co.uk> for Debian native
|
||||||
|
# packages and to not require autoconf
|
||||||
|
|
||||||
|
# this Makefile is due to be replaced by [type:xgettext] support in po4a.
|
||||||
|
|
||||||
|
GETTEXT_PACKAGE = $(shell grep "^DOMAIN" Makevars |cut -d '=' -f2|tr -d ' ')
|
||||||
|
SHELL = /bin/sh
|
||||||
|
|
||||||
|
srcdir = .
|
||||||
|
top_srcdir = ..
|
||||||
|
top_builddir = ..
|
||||||
|
subdir = po
|
||||||
|
prefix = /usr
|
||||||
|
mkdir_p = mkdir -p
|
||||||
|
INSTALL_DATA = install -m 0644
|
||||||
|
datadir = ${datarootdir}
|
||||||
|
datarootdir = ${prefix}/share
|
||||||
|
DATADIRNAME = share
|
||||||
|
itlocaledir = $(prefix)/$(DATADIRNAME)/locale
|
||||||
|
GMSGFMT = /usr/bin/msgfmt
|
||||||
|
MSGFMT = /usr/bin/msgfmt
|
||||||
|
XGETTEXT = /usr/bin/xgettext
|
||||||
|
INTLTOOL_UPDATE = /usr/bin/intltool-update
|
||||||
|
INTLTOOL_EXTRACT = /usr/bin/intltool-extract
|
||||||
|
MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
|
||||||
|
GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
|
||||||
|
ALL_LINGUAS =
|
||||||
|
PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi)
|
||||||
|
USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi)
|
||||||
|
USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done)
|
||||||
|
POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done)
|
||||||
|
POTFILES = $(shell cat POTFILES.in|sed 's/\(.*\).*/..\/\1/'|tr -d ' ')
|
||||||
|
CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done)
|
||||||
|
|
||||||
|
.SUFFIXES:
|
||||||
|
.SUFFIXES: .po .pox .gmo .mo .msg .cat
|
||||||
|
|
||||||
|
.po.pox:
|
||||||
|
$(MAKE) $(GETTEXT_PACKAGE).pot
|
||||||
|
$(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox
|
||||||
|
|
||||||
|
.po.mo:
|
||||||
|
$(MSGFMT) -o $@ $<
|
||||||
|
|
||||||
|
.po.gmo:
|
||||||
|
file=`echo $* | sed 's,.*/,,'`.gmo \
|
||||||
|
&& rm -f $$file && $(GMSGFMT) -o $$file $<
|
||||||
|
|
||||||
|
.po.cat:
|
||||||
|
sed -f ../intl/po2msg.sed < $< > $*.msg \
|
||||||
|
&& rm -f $@ && gencat $@ $*.msg
|
||||||
|
|
||||||
|
all: all-yes
|
||||||
|
|
||||||
|
all-yes: $(CATALOGS)
|
||||||
|
all-no:
|
||||||
|
pot: $(GETTEXT_PACKAGE).pot
|
||||||
|
$(GETTEXT_PACKAGE).pot: $(POTFILES)
|
||||||
|
$(GENPOT)
|
||||||
|
|
||||||
|
# the install fallbacks are probably unnecessary, just the first case is used.
|
||||||
|
install: install-data
|
||||||
|
install-data: install-data-yes
|
||||||
|
install-data-no: all
|
||||||
|
install-data-yes: all
|
||||||
|
linguas="$(USE_LINGUAS)"; \
|
||||||
|
for lang in $$linguas; do \
|
||||||
|
dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \
|
||||||
|
$(mkdir_p) $$dir; \
|
||||||
|
if test -r $$lang.gmo; then \
|
||||||
|
$(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
|
||||||
|
echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \
|
||||||
|
else \
|
||||||
|
$(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
|
||||||
|
echo "installing $(srcdir)/$$lang.gmo as" \
|
||||||
|
"$$dir/$(GETTEXT_PACKAGE).mo"; \
|
||||||
|
fi; \
|
||||||
|
if test -r $$lang.gmo.m; then \
|
||||||
|
$(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \
|
||||||
|
echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \
|
||||||
|
else \
|
||||||
|
if test -r $(srcdir)/$$lang.gmo.m ; then \
|
||||||
|
$(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \
|
||||||
|
$$dir/$(GETTEXT_PACKAGE).mo.m; \
|
||||||
|
echo "installing $(srcdir)/$$lang.gmo.m as" \
|
||||||
|
"$$dir/$(GETTEXT_PACKAGE).mo.m"; \
|
||||||
|
else \
|
||||||
|
true; \
|
||||||
|
fi; \
|
||||||
|
fi; \
|
||||||
|
done
|
||||||
|
|
||||||
|
# Empty stubs to satisfy archaic automake needs
|
||||||
|
dvi info tags TAGS ID:
|
||||||
|
|
||||||
|
# Define this as empty until I found a useful application.
|
||||||
|
install-exec installcheck:
|
||||||
|
|
||||||
|
uninstall:
|
||||||
|
|
||||||
|
check: all $(GETTEXT_PACKAGE).pot
|
||||||
|
rm -f missing notexist
|
||||||
|
srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m
|
||||||
|
if [ -r missing -o -r notexist ]; then \
|
||||||
|
exit 1; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
mostlyclean:
|
||||||
|
rm -f *.pox *.old.po cat-id-tbl.tmp
|
||||||
|
rm -f .intltool-merge-cache
|
||||||
|
|
||||||
|
clean: mostlyclean
|
||||||
|
|
||||||
|
distclean: clean
|
||||||
|
rm -f Makefile Makefile.in POTFILES stamp-it
|
||||||
|
rm -f *.mo *.msg *.cat *.cat.m *.gmo $(GETTEXT_PACKAGE).pot
|
||||||
|
|
||||||
|
maintainer-clean: distclean
|
||||||
|
@echo "This command is intended for maintainers to use;"
|
||||||
|
@echo "it deletes files that may require special tools to rebuild."
|
||||||
|
rm -f Makefile.in.in
|
||||||
|
|
||||||
|
Makefile POTFILES:
|
||||||
|
@if test ! -f $@; then \
|
||||||
|
rm -f stamp-it; \
|
||||||
|
$(MAKE) stamp-it; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
stamp-it: POTFILES.in
|
||||||
|
|
||||||
|
# Tell versions [3.59,3.63) of GNU make not to export all variables.
|
||||||
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
|
.NOEXPORT:
|
41
po/Makevars
Normal file
41
po/Makevars
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
# Makefile variables for PO directory in any package using GNU gettext.
|
||||||
|
|
||||||
|
# Usually the message domain is the same as the package name.
|
||||||
|
DOMAIN = multistrap
|
||||||
|
|
||||||
|
# These two variables depend on the location of this directory.
|
||||||
|
subdir = po
|
||||||
|
top_builddir = ..
|
||||||
|
|
||||||
|
# These options get passed to xgettext.
|
||||||
|
XGETTEXT_OPTIONS = -L Perl --from-code=iso-8859-1 --keyword=_g
|
||||||
|
|
||||||
|
# This is the copyright holder that gets inserted into the header of the
|
||||||
|
# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
|
||||||
|
# package. (Note that the msgstr strings, extracted from the package's
|
||||||
|
# sources, belong to the copyright holder of the package.) Translators are
|
||||||
|
# expected to transfer the copyright for their translations to this person
|
||||||
|
# or entity, or to disclaim their copyright. The empty string stands for
|
||||||
|
# the public domain; in this case the translators are expected to disclaim
|
||||||
|
# their copyright.
|
||||||
|
COPYRIGHT_HOLDER = Neil Williams
|
||||||
|
|
||||||
|
# This is the email address or URL to which the translators shall report
|
||||||
|
# bugs in the untranslated strings:
|
||||||
|
# - Strings which are not entire sentences, see the maintainer guidelines
|
||||||
|
# in the GNU gettext documentation, section 'Preparing Strings'.
|
||||||
|
# - Strings which use unclear terms or require additional context to be
|
||||||
|
# understood.
|
||||||
|
# - Strings which make invalid assumptions about notation of date, time or
|
||||||
|
# money.
|
||||||
|
# - Pluralisation problems.
|
||||||
|
# - Incorrect English spelling.
|
||||||
|
# - Incorrect formatting.
|
||||||
|
# It can be your email address, or a mailing list address where translators
|
||||||
|
# can write to without being subscribed, or the URL of a web page through
|
||||||
|
# which the translators can contact you.
|
||||||
|
MSGID_BUGS_ADDRESS = multistrap@packages.debian.org
|
||||||
|
|
||||||
|
# This is the list of locale categories, beyond LC_MESSAGES, for which the
|
||||||
|
# message catalogs shall be used. It is usually empty.
|
||||||
|
EXTRA_LOCALE_CATEGORIES =
|
1
po/POTFILES.in
Normal file
1
po/POTFILES.in
Normal file
|
@ -0,0 +1 @@
|
||||||
|
em_multistrap
|
Loading…
Reference in a new issue