Changeset 1278 in ProjectBuilder for devel/pb/bin/pb


Ignore:
Timestamp:
Mar 24, 2011, 10:38:17 PM (13 years ago)
Author:
Bruno Cornec
Message:

r4314@localhost: bruno | 2011-03-24 22:18:22 +0100

  • Adds RPM signature support and doc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • devel/pb/bin/pb

    r1276 r1278  
    14401440    }
    14411441
     1442    # Sign packages
     1443    pb_sign_pkgs($pbos,$made);
     1444
    14421445    # Find the appropriate check cmd/opts
    14431446    my ($chkcmd,$chkopt) = pb_distro_get_param($pbos,pb_conf_get_if("oschkcmd","oschkopt"));
     
    19631966
    19641967            # Sign packages locally
    1965             if ($pbos->{'type'} eq "rpm") {
    1966                 #pb_system("rpm --addsign --define \"_signature gpg\" --define \"_gpg_name $ENV{'PBPACKAGER'}\" --define \"__gpg_sign_cmd /usr/bin/gpg --batch --no-verbose --no-armor --no-tty --no-secmem-warning -sbo %{__signature_filename} %{__plaintext_filename} --use-agent\" $made","Signing RPM packages packages");
    1967             } elsif ($pbos->{'type'} eq "deb") {
    1968                 #pb_system("debsign $made","Signing DEB packages");
    1969             } else {
    1970                 pb_log(0,"I don't know yet how to sign packages for type $pbos->{'type'}.\nPlease give feedback to dev team\n");
    1971             }
     1968            pb_sign_pkgs($pbos,$made);
    19721969
    19731970            # We want to send them to the ssh account so overwrite what has been done before
     
    37983795}
    37993796
     3797sub pb_sign_pkgs {
     3798
     3799my $pbos = shift;
     3800my $made = shift;
     3801
     3802pb_log(2,"entering pb_sign_pkg: $made ".Dumper($pbos)."\n");
     3803my ($passfile, $passphrase, $passpath) = pb_conf_get_if("pbpassfile","pbpassphrase","pbpasspath");
     3804$ENV{'PBPASSPHRASE'} = $passphrase->{$ENV{'PBPROJ'}} if ((not defined $ENV{'PBPASSPHRASE'}) && (defined $passphrase->{$ENV{'PBPROJ'}}));
     3805$ENV{'PBPASSFILE'} = $passfile->{$ENV{'PBPROJ'}} if ((not defined $ENV{'PBPASSFILE'})&& (defined $passfile->{$ENV{'PBPROJ'}})) ;
     3806$ENV{'PBPASSPATH'} = $passpath->{$ENV{'PBPROJ'}} if ((not defined $ENV{'PBPASSPATH'})&& (defined $passpath->{$ENV{'PBPROJ'}})) ;
     3807
     3808if ($pbos->{'type'} eq "rpm") {
     3809    eval
     3810    {
     3811        require RPM4::Sign;
     3812        RPM4::Sign->import();
     3813    };
     3814    if ($@) {
     3815        # RPM4::Sign not found
     3816        pb_log(1,"WARNING: Install RPM4::Sign to benefit from automatic package signing.\n");
     3817    } else {
     3818        return if ((not defined $ENV{'PBPASSPHRASE'}) and (not defined $ENV{'PBPASSFILE'}));
     3819        my $sign = RPM4::Sign->new(
     3820            passphrase => $ENV{'PBPASSPHRASE'},
     3821            name => $ENV{'PBPACKAGER'},
     3822            path => $ENV{'PBPASSPATH'},
     3823            password_file => $ENV{'PBPASSFILE'},
     3824        );
     3825
     3826        pb_log(0,"Signing RPM packages...\n");
     3827        $made =~ s/ +/ /g;
     3828        $made =~ s/^ //g;
     3829        $made =~ s/ $//g;
     3830        pb_log(2,"pb_sign_pkg: pkgs:".Dumper(split(/ /,$made))."\n");
     3831        $sign->rpmssign(split(/ /,$made));
     3832    }
     3833} elsif ($pbos->{'type'} eq "deb") {
     3834    #pb_system("debsign $made","Signing DEB packages");
     3835} else {
     3836    pb_log(0,"I don't know yet how to sign packages for type $pbos->{'type'}.\nPlease give feedback to dev team\n");
     3837pb_log(2,"exiting pb_sign_pkg\n");
     3838}
     3839}
    38003840
    380138411;
Note: See TracChangeset for help on using the changeset viewer.