diff --git a/build_deb.sh b/build_deb.sh new file mode 100755 index 0000000000000000000000000000000000000000..94e133242c879bd6d6b041ce002a2958eb263410 --- /dev/null +++ b/build_deb.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +echo 'increment the version number, when necessary!' +epoch=0 +version=0.1-1 +pkgdir=tmp/stage/libgg-aix-pm-perl/$epoch/$version + +scripts/pmlnk.pm --copy --target $pkgdir/data/usr/share/perl5 . +mkdir $pkgdir/control +cp debian/control $pkgdir/control +cp debian/debian-binary $pkgdir +scripts/mkdeb.pl $pkgdir diff --git a/debian/control b/debian/control new file mode 100644 index 0000000000000000000000000000000000000000..79a55536ebd382c0bb93c9dafe1845be67edeef4 --- /dev/null +++ b/debian/control @@ -0,0 +1,14 @@ +Package: libgg-aix-pm-perl +Version: 0.1-1 +Architecture: all +Maintainer: Gerhard Gonter <ggonter@gmail.com> +Original-Maintainer: Gerhard Gonter <ggonter@gmail.com> +Installed-Size: 629 +Depends: perl +Section: perl +Priority: optional +Homepage: http://aix-pm.sourceforge.net/ +Description: Perl modules from the aix-pm collection + The AIX:: name space plus more. Perl modules that deal with AIX specific + issues. A slowly evolving EMC CLARiiON monitoring tool belongs to the + "plus more" part. diff --git a/debian/debian-binary b/debian/debian-binary new file mode 100644 index 0000000000000000000000000000000000000000..cd5ac039d67e0bdadb17976e4ac39f0ffe6bb6e4 --- /dev/null +++ b/debian/debian-binary @@ -0,0 +1 @@ +2.0 diff --git a/scripts/mkdeb.pl b/scripts/mkdeb.pl index b6eb47eb170782a3f81883da27be436f7ea42c82..1cc1eacf8636a45bba22aeacf3a9b1b410a652c9 100755 --- a/scripts/mkdeb.pl +++ b/scripts/mkdeb.pl @@ -2,6 +2,9 @@ use strict; +use Data::Dumper; +$Data::Dumper::Indent= 1; + my $pkg_base= $ENV{PKGBASE} || '~/tmp/pkg'; while (my $arg= shift (@ARGV)) @@ -36,17 +39,26 @@ sub mk_package my $pkg_name= shift; my $pkg_epoch= shift; my $pkg_version= shift; - - my $deb= '../../../'. $pkg_name . '-'; - $deb .= $pkg_epoch.':' if ($pkg_epoch > 0); - $deb .= $pkg_version .'.deb'; - print __LINE__, " deb=[$deb]\n"; + my $pkg_arch= shift; chdir($base) or die "base not found [$base]"; chdir($pkg_name) or die "pkg_name not found [$pkg_name]"; chdir($pkg_epoch) or die "pkg_epoch not found [$pkg_epoch]"; chdir($pkg_version) or die "pkg_version not found [$pkg_version]"; + my $ctrl= Debian::Package::Control->read_control_file ('control/control'); + print __LINE__, " ctrl: ", Dumper($ctrl); + unless (defined ($pkg_arch)) + { + $pkg_arch= $ctrl->{fields}->{Architecture}->{value} || 'all'; + } + + my $deb= '../../../'. $pkg_name . '_'; + # my $deb= $pkg_name . '-'; + $deb .= $pkg_epoch.':' if ($pkg_epoch > 0); + $deb .= $pkg_version . '_' . $pkg_arch .'.deb'; + print __LINE__, " deb=[$deb]\n"; + # mk_md5sums(); unlink('control.tar.xz'); unlink('data.tar.xz'); @@ -57,7 +69,8 @@ sub mk_package cmd(qw(xz -zv control.tar data.tar)); - # the ar file must contain these fils in this order + # the ar file must contain these fils in this order and should be wiped before + unlink($deb); cmd('ar', 'rcSv', $deb, 'debian-binary'); cmd('ar', 'rcSv', $deb, 'control.tar.xz'); cmd('ar', 'rcSv', $deb, 'data.tar.xz'); @@ -78,3 +91,50 @@ sub mk_md5sums # chdir('..'); } +package Debian::Package::Control; + +sub read_control_file +{ + my $class= shift; + my $fnm= shift; + + open (FI, '<:utf8', $fnm) or die "can't read control file [$fnm]"; + my @segments; + my $segment; + my %fields; + while (<FI>) + { + chop; + print __LINE__, " l=[$_] segment=[$segment]\n"; + if ($_ =~ m/^#/) + { + if (defined ($segment) && $segment->{type} eq 'comment') + { + push (@{$segment->{lines}} => $_); + } + else + { + $segment= { type => 'comment', lines => [ $_ ] }; + push (@segments, $segment); + } + } + elsif ($_ =~ m#^ #) + { + die 'invalid continuation' unless (defined ($segment)); + push (@{$segment->{lines}} => $_); + } + elsif ($_ =~ m#^([A-Z][\w\-_]+): *(.+)#) + { + my ($field, $value)= ($1, $2); + print __LINE__, " field=[$field] value=[$value]\n"; + $segment= { type => 'field', field => $field, value => $value, lines => [ $_ ] }; + push (@segments, $segment); + $fields{$field}= $segment; + } + } + close(FI); + + my $res= { fields => \%fields, segments => \@segments }; + bless ($res, $class); +} +