Changeset 2458 in ProjectBuilder


Ignore:
Timestamp:
Nov 11, 2019, 9:51:55 PM (4 years ago)
Author:
Bruno Cornec
Message:

Fix #183 by pushing the repomd.xml.asc file for SUSE and fix also repo names

File:
1 edited

Legend:

Unmodified
Added
Removed
  • devel/pb/bin/pb

    r2450 r2458  
    22812281        close(KEEP);
    22822282    }
     2283
     2284    $delivery->{$ENV{'PBPROJ'}} = "" if (not defined $delivery->{$ENV{'PBPROJ'}});
     2285    my $repotag = "";
     2286    $repotag = "-$delivery->{$ENV{'PBPROJ'}}" if ($delivery->{$ENV{'PBPROJ'}} ne "");
     2287
    22832288    if (($cmt eq "Sources") || ($cmt eq "Packages") || ($cmt eq "CPAN")) {
    22842289        my ($pbpackager) = pb_conf_get("pbpackager");
     
    22862291        pb_log(0,"Exporting public key for $ENV{'PBPACKAGER'}\n");
    22872292        # Using pb_system is not working due to redirection below
    2288         system("gpg --export -a \'$ENV{'PBPACKAGER'}\' > $ENV{'PBDESTDIR'}/$ENV{'PBPROJ'}.pubkey");
    2289         chmod 0644,"$ENV{'PBDESTDIR'}/$ENV{'PBPROJ'}.pubkey";
    2290         $src = "$src $ENV{'PBDESTDIR'}/$ENV{'PBPROJ'}.pubkey";
     2293        system("gpg --export -a \'$ENV{'PBPACKAGER'}\' > $ENV{'PBDESTDIR'}/$ENV{'PBPROJ'}$repotag.pubkey");
     2294        chmod 0644,"$ENV{'PBDESTDIR'}/$ENV{'PBPROJ'}$repotag.pubkey";
     2295        $src = "$src $ENV{'PBDESTDIR'}/$ENV{'PBPROJ'}$repotag.pubkey";
    22912296
    22922297        my ($gpgaddkey) = pb_conf_get_if("pbadditionalgpg");
     
    22962301            foreach my $k (split(/,/,$pbadditionalgpg)) {
    22972302                pb_log(0,"Exporting public key $k\n");
    2298                 system("gpg --export -a \'$k\' > $ENV{'PBDESTDIR'}/$ENV{'PBPROJ'}-$k.pubkey");
    2299                 $src = "$src $ENV{'PBDESTDIR'}/$ENV{'PBPROJ'}-$k.pubkey";
     2303                system("gpg --export -a \'$k\' > $ENV{'PBDESTDIR'}/$ENV{'PBPROJ'}$repotag-$k.pubkey");
     2304                $src = "$src $ENV{'PBDESTDIR'}/$ENV{'PBPROJ'}$repotag-$k.pubkey";
    23002305            }
    23012306        }
     
    23112316    my ($sshhost,$sshdir) = pb_conf_get($host,$dir);
    23122317    # Not mandatory...
    2313     $delivery->{$ENV{'PBPROJ'}} = "" if (not defined $delivery->{$ENV{'PBPROJ'}});
    23142318    my ($sshlogin,$sshport) = pb_conf_get_if($login,$port);
    23152319    $sshport->{$ENV{'PBPROJ'}} = 22 if (not defined $sshport->{$ENV{'PBPROJ'}});
     
    23732377        my $repodir = $tdir;
    23742378        $repodir =~ s|^$remdir/||;
    2375         my $repotag = "";
    2376         $repotag = "-$delivery->{$ENV{'PBPROJ'}}" if ($delivery->{$ENV{'PBPROJ'}} ne "");
     2379        $repodir =~ s|//|/|g;
    23772380
    23782381        my ($pbrepo) = pb_conf_get("pbrepo");
     
    23902393            my $pbgpgcheck;
    23912394            $pbgpgcheck = $gpgcheck->{$ENV{'PBPROJ'}} if (defined $gpgcheck);
    2392             my $pbgpgkey = "$pbrepo->{$ENV{'PBPROJ'}}/$repodir/$ENV{'PBPROJ'}.pubkey";
     2395            my $pbgpgkey = "$pbrepo->{$ENV{'PBPROJ'}}/$repodir/$ENV{'PBPROJ'}$repotag.pubkey";
    23932396            my ($gpgaddpkey) = pb_conf_get_if("pbadditionalgpg");
    23942397            my $pbadditionalgpg;
     
    23962399            if (defined $pbadditionalgpg) {
    23972400                foreach my $k (split(/,/,$pbadditionalgpg)) {
    2398                     $pbgpgkey .= " $pbrepo->{$ENV{'PBPROJ'}}/$repodir/$ENV{'PBPROJ'}-$k.pubkey";
     2401                    $pbgpgkey .= " $pbrepo->{$ENV{'PBPROJ'}}/$repodir/$ENV{'PBPROJ'}$repotag-$k.pubkey";
    23992402                }
    24002403            }
     
    24102413cat > $ENV{'PBPROJ'}$repotag.repo << EOT
    24112414[$ENV{'PBPROJ'}$repotag]
    2412 name=$pbos->{'name'} $pbos->{'version'} $pbos->{'arch'} - $ENV{'PBPROJ'} Vanilla Packages
     2415name=$pbos->{'name'} $pbos->{'version'} $pbos->{'arch'} - $ENV{'PBPROJ'}$repotag Vanilla Packages
    24132416baseurl=$pbrepo->{$ENV{'PBPROJ'}}/$repodir
    24142417enabled=1
     
    24272430createrepo -s $pbsha .
    24282431# Link to the key
    2429 if [ -s $ENV{'PBPROJ'}.pubkey ]; then
     2432if [ -s $ENV{'PBPROJ'}$repotag.pubkey ]; then
    24302433    # Avoiding creating empty repomd.xml.key; fails on opensuse 12.1
    2431     (cd repodata ; ln -sf ../$ENV{'PBPROJ'}.pubkey repomd.xml.key)
     2434    # Signature done later
     2435    (cd repodata ; ln -sf ../$ENV{'PBPROJ'}$repotag.pubkey repomd.xml.key)
    24322436fi
    2433 # sign the repomd (at least useful for SLES - which requires a local key)
    2434 # gpg -a --detach-sign repodata/repomd.xml
    24352437# SLES also looks for media.1/info.txt
    24362438EOF
     
    24402442# Prepare a script to ease urpmi setup
    24412443cat > $ENV{'PBPROJ'}$repotag.addmedia << EOT
    2442 #rpm --import $pbrepo->{$ENV{'PBPROJ'}}/$repodir/$ENV{'PBPROJ'}.pubkey
     2444#rpm --import $pbrepo->{$ENV{'PBPROJ'}}/$repodir/$ENV{'PBPROJ'}$repotag.pubkey
    24432445urpmi.addmedia $ENV{'PBPROJ'}$repotag $pbrepo->{$ENV{'PBPROJ'}}/$repodir with media_info/hdlist.cz
    24442446EOT
     
    24522454    genhdlist .
    24532455fi
    2454 (cd media_info ; ln -sf ../$ENV{'PBPROJ'}.pubkey pubkey)
     2456(cd media_info ; ln -sf ../$ENV{'PBPROJ'}$repotag.pubkey pubkey)
    24552457EOF
    24562458            }
     
    29262928    # If target is deb family then sign Release file for Packages
    29272929    my $pbos2 = pb_distro_get_context($v);
     2930
    29282931    if (($cmt =~ /Packages/) && ($pbos2->{'type'} eq "deb")) {
    29292932        my $debarch = pb_get_debarch($pbos2);
     
    29372940            pb_system("$shcmdbase \"chmod 644 $debfile/$f.gpg\"","Set mode to 644 for $debfile/$f.gpg");
    29382941        }
     2942    }
     2943
     2944    if (($cmt =~ /Packages/) &&
     2945        ((($pbos2->{'name'} eq "sles") && ($pbos2->{'version'} ge 15)) ||
     2946        (($pbos2->{'name'} eq "opensuse") && ($pbos2->{'version'} ge 15)))) {
     2947            pb_system("cd $ENV{'PBBUILDDIR'} ; $cpcmd $cptarget/repodata/repomd.xml . 2> /dev/null","Getting repomd.xml file from $cptarget/repodata");
     2948            pb_sign_file("$ENV{'PBBUILDDIR'}/repomd.xml");
     2949            pb_system("$cpcmd $ENV{'PBBUILDDIR'}/repomd.xml.gpg $cptarget/repodata/repomd.xml.asc 2> /dev/null","Putting back repomd.xml.asc file to $cptarget/repodata");
     2950            my ($void,$rpdir) = split(/:/,$cptarget);
     2951            pb_system("$shcmdbase \"chmod 644 $rpdir/repodata/repomd.xml.asc\"","Set mode to 644 for $rpdir/repodata/repomd.xml.asc");
    29392952    }
    29402953
     
    36593672        }
    36603673        if (/^testver/) {
    3661             s/^testver:\n\s+$ENV{'PBPROJ'}:(.*)$/#testver:\n#\s+$ENV{'PBPROJ'}: $1/;
     3674            s/^testver:\n\s+$ENV{'PBPROJ'}:(.*)$/#testver:\n#   $ENV{'PBPROJ'}: $1/;
    36623675            pb_log(0,"Commenting testver in $ENV{'PBCONFDIR'}/$newver/$ENV{'PBPROJ'}.yml\n");
    36633676            my $txt = $_;
     
    52945307
    52955308pb_sign_setenv();
    5296 pb_log(0,"Signing Debian Release file as $ENV{'PBPACKAGER'}...\n");
     5309pb_log(0,"Signing file $file as $ENV{'PBPACKAGER'}...\n");
    52975310
    52985311if (not defined $ENV{'PBPASSPHRASE'}) {
Note: See TracChangeset for help on using the changeset viewer.