use Digest::MD5 ();
use File::Path qw(mkpath rmtree);
use File::Basename;
+use File::Copy qw(move);
use IPC::SysV qw(IPC_PRIVATE S_IRUSR S_IWUSR IPC_CREAT IPC_EXCL SEM_UNDO);
use IPC::Semaphore;
$dir = "$cachedir/$repoid/";
$baseurl .= '/' unless $baseurl =~ /\/$/;
mkpath("${dir}repodata");
- my $sem;
- my $key = IPC::SysV::ftok($dir, '1');
- if ($sem = IPC::Semaphore->new($key, 1, S_IRUSR | S_IWUSR | IPC_CREAT | IPC_EXCL)) {
- $sem->setval(0, 1);
- } else {
- $sem = IPC::Semaphore->new($key, 1, S_IRUSR | S_IWUSR | IPC_CREAT);
- }
-
- $sem->op(0, -1, SEM_UNDO);
- if (!-f "${dir}repodata/repomd.xml") {
+ #my $sem;
+ #my $key = IPC::SysV::ftok($dir, '1');
+ #if ($sem = IPC::Semaphore->new($key, 1, S_IRUSR | S_IWUSR | IPC_CREAT | IPC_EXCL)) {
+ # $sem->setval(0, 1);
+ #} else {
+ # $sem = IPC::Semaphore->new($key, 1, S_IRUSR | S_IWUSR | IPC_CREAT);
+ #}
+ #
+ #$sem->op(0, -1, SEM_UNDO);
+ #if (!-f "${dir}repodata/repomd.xml") {
system($INC[0].'/download', "${dir}repodata", "${baseurl}repodata/repomd.xml");
- }
- $sem->op(0, 1, SEM_UNDO);
- $sem->remove();
+ #}
+ #$sem->op(0, 1, SEM_UNDO);
+ #$sem->remove();
} else {
$dir = $url;
}
utf8::downgrade($u);
}
my $cached;
- my $sem;
- my $key = IPC::SysV::ftok("${dir}repodata/", '1');
- if ($sem = IPC::Semaphore->new($key, 1, S_IRUSR | S_IWUSR | IPC_CREAT | IPC_EXCL)) {
- $sem->setval(0, 1);
- } else {
- $sem = IPC::Semaphore->new($key, 1, S_IRUSR | S_IWUSR | IPC_CREAT);
- }
- $sem->op(0, -1, SEM_UNDO);
+ #my $sem;
+ #my $key = IPC::SysV::ftok("${dir}repodata/", '1');
+ #if ($sem = IPC::Semaphore->new($key, 1, S_IRUSR | S_IWUSR | IPC_CREAT | IPC_EXCL)) {
+ # $sem->setval(0, 1);
+ #} else {
+ # $sem = IPC::Semaphore->new($key, 1, S_IRUSR | S_IWUSR | IPC_CREAT);
+ #}
+ #$sem->op(0, -1, SEM_UNDO);
if (-e $u) {
$cached = 1;
$cached = 0 if exists($f->{'size'}) && $f->{'size'} != (-s _);
die("download failed\n");
}
} else {
- die("inconsistent repodata in $url\n");
+ die("inconsistent repodata in $url\n");
}
}
- $sem->op(0, 1, SEM_UNDO);
- $sem->remove();
+ #$sem->op(0, 1, SEM_UNDO);
+ #$sem->remove();
my $fh;
open($fh, '<', $u) or die "Error opening $u: $!\n";