5 $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0,
6 unshift @INC, ($::ENV{'BUILD_DIR'} || '/usr/lib/build');
18 $url =~ s|://[^@]*@|://|;
22 die "USAGE: $0 DIR URLS..." unless $#ARGV >= 1;
24 my $dir = shift @ARGV;
26 my $ua = LWP::UserAgent->new(
27 agent => "openSUSE build script",
32 if ($url =~ /^zypp:\/\/([^\/]*)\/?/) {
34 my $repo = Build::Zypp::parsecfg($1);
35 die "can't parse $1\n" unless $repo;
36 die "missing url in repo ".$repo->{'name'}."\n" unless exists $repo->{'baseurl'};
37 my $u = $repo->{'baseurl'};
38 $u .= '/' unless substr($u, -1, 1) eq '/';
39 $url =~ s/^zypp:\/\/[^\/]*\/*//;
40 $url = URI->new($u.$url)
43 if ( defined $ENV{BUILD_ROOT} && -e $ENV{BUILD_ROOT} . "/.repo.config" ) {
44 open FILE, "<", $ENV{BUILD_ROOT} . "/.repo.config" or die $!;
46 next if ($_ !~ /^http[s]?:\/\/([^\/]*)\/?/);
48 my $hidden = URI->new($_);
49 my $ui = $hidden->userinfo;
50 $hidden->userinfo(undef);
51 if ( $url =~ m/^$hidden/ ) {
52 $url = URI->new($url);
61 $url = URI->new($url);
64 $ua->env_proxy if $url->scheme ne 'https';
65 my $dest = "$dir/".basename($url->path);
66 unlink($dest); # just in case
69 my $res = $ua->mirror($url, $dest);
70 last if $res->is_success;
71 # if it's a redirect we probably got a bad mirror and should just retry
72 die "reqesting " . hide_passwd($original) . " failed: ".$res->status_line."\n" unless $retry && $res->previous;
73 warn "retrying " . hide_passwd($original) . "\n";