+Debian .deb packaging.
authorshort <>
Mon, 18 Aug 2003 16:05:49 +0000 (16:05 +0000)
committershort <>
Mon, 18 Aug 2003 16:05:49 +0000 (16:05 +0000)
AutoGen.pm

index f2e6978..554310a 100644 (file)
@@ -164,28 +164,35 @@ my(@files)=@_;
        _remove @files;
 }
 
-# $args{
-#      "sign"=>bool,
-#      },
-sub _rpmbuild
+sub _prepdist
 {
-my($class,%args)=@_;
+my($class,$name)=@_;
 
-       my $name=$Options{"name"};
-       _remove "nocheck",\1,
-                       _rpmeval("_tmppath" )."/$name-*-root",
-                       _rpmeval("_builddir")."/$name-*";
        my($specsrc)=map((-e $_ ? $_ : "$name.spec.in"),"$name.spec.m4.in");
        my $spec=_readfile $specsrc;
        $spec=~s/\\\n/ /gs;
        my $configure_args=($spec=~/^[%]configure\b[ \t]*(.*)$/m)[0];
        $configure_args=~s/--disable-gtk-doc\b/--enable-gtk-doc/g;      # optional; gtk-doc reqd for 'make dist'
        $class->run(%Options,
-                       "ARGV"=>["--copy"],
+                       "ARGV"=>[qw(--copy)],
                        "configure_args"=>[split /\s+/,$configure_args],
                        );
        _remove "ChangeLog";    # force its rebuild by Makefile/rcs2log
        _system "make dist $name.spec";
+}
+
+# $args{
+#      "sign"=>bool,
+#      },
+sub _rpmbuild
+{
+my($class,%args)=@_;
+
+       my $name=$Options{"name"};
+       _remove "nocheck",\1,
+                       _rpmeval("_tmppath" )."/$name-*-root",
+                       _rpmeval("_builddir")."/$name-*";
+       $class->_prepdist($name);
        _copy "$name-*.tar.gz",_rpmeval("_sourcedir");
        _system(join(" ","rpmbuild",
                        "-ba",
@@ -197,7 +204,27 @@ my($class,%args)=@_;
        _system "make dist-tarZ" if $Options{"dist-tarZ"};
        _move _rpmeval("_srcrpmdir")."/$name-*.src.rpm",".";
        _move _rpmeval("_rpmdir")."/"._rpmeval("_target_cpu")."/$name-*."._rpmeval("_target_cpu").".rpm",".";
-  _system "ls -l $name-*";
+       _system "ls -l $name-*";
+       exit 0; # should never return
+}
+
+# $args{
+#      "sign"=>bool,
+#      },
+sub _debbuild
+{
+my($class,%args)=@_;
+
+       my $name=$Options{"name"};
+       $class->_prepdist($name);
+       _system "tar xzf $name-*.tar.gz";
+       _remove "$name-*.tar.gz";       # permit "cd $name-*" below
+       _system(join(" ","cd $name-*;dpkg-buildpackage",
+                       "-rfakeroot",
+                       ($args{"sign"} ? () : ("-us","-uc")),
+                       ));
+       _remove \1,"$name-*";
+       _system "ls -l ${name}_*";
        exit 0; # should never return
 }
 
@@ -251,6 +278,8 @@ sub _cleanfiles
                                                ./ABOUT-NLS
                                                ./<name>-[0-9]* ./<name>-devel-[0-9]*
                                                ./<name>.spec ./<name>.m4 ./<name>.spec.m4
+                                               ./debian/tmp ./debian/<name>
+                                               ./<name>_[0-9]*
                                                ./macros/macros.dep
                                                ./po/Makefile.in.in ./po/POTFILES* ./po/cat-id-tbl.c ./po/cat-id-tbl.tmp
                                                ./po/*.gmo ./po/*.mo ./po/stamp-cat-id ./po/<name>.pot ./po/ChangeLog
@@ -380,6 +409,8 @@ my($class,%options)=@_;
        print _help() and confess if !GetOptions(
                          "rpm"      ,sub { $class->_rpmbuild("sign"=>1); },
                          "rpmtest"  ,sub { $class->_rpmbuild("sign"=>0); },
+                         "deb"      ,sub { $class->_debbuild("sign"=>1); },
+                         "debtest"  ,sub { $class->_debbuild("sign"=>0); },
                          "dist"     ,\$Options{"ARGV_dist"},
                          "copy!"    ,\$Options{"ARGV_copy"},
                          "fullclean",\$Options{"ARGV_fullclean"},