summaryrefslogtreecommitdiffstats
path: root/po/da.po
diff options
context:
space:
mode:
authorPablo Saratxaga <pablo@mandriva.com>2002-07-22 10:38:08 +0000
committerPablo Saratxaga <pablo@mandriva.com>2002-07-22 10:38:08 +0000
commit10811b93988e89d4e367b9c8b2074c5dbc3d1cce (patch)
tree00a47b91ed0d1e8745e9f652f78c98c0d0e2f34d /po/da.po
parentd11c39e4ab87021174b797ba52eeddbf66a9aed6 (diff)
downloadurpmi-10811b93988e89d4e367b9c8b2074c5dbc3d1cce.tar
urpmi-10811b93988e89d4e367b9c8b2074c5dbc3d1cce.tar.gz
urpmi-10811b93988e89d4e367b9c8b2074c5dbc3d1cce.tar.bz2
urpmi-10811b93988e89d4e367b9c8b2074c5dbc3d1cce.tar.xz
urpmi-10811b93988e89d4e367b9c8b2074c5dbc3d1cce.zip
updated pot file
Diffstat (limited to 'po/da.po')
-rw-r--r--po/da.po500
1 files changed, 255 insertions, 245 deletions
diff --git a/po/da.po b/po/da.po
index 7b487b7b..6ce35e43 100644
--- a/po/da.po
+++ b/po/da.po
@@ -9,7 +9,7 @@
msgid ""
msgstr ""
"Project-Id-Version: urpmi 3.3\n"
-"POT-Creation-Date: 2002-07-19 12:57+0200\n"
+"POT-Creation-Date: 2002-07-22 12:32+0200\n"
"PO-Revision-Date: 2002-03-01 14:45+0100\n"
"Last-Translator: Keld Simonsen <keld@dkuug.dk>\n"
"Language-Team: dansk <dansk@klid.dk>\n"
@@ -29,16 +29,16 @@ msgstr ""
"Automatisk installation af pakker...\n"
"Du bestilte installation af pakke $rpm\n"
-#: _irpm:28 po/placeholder.h:251 po/placeholder.h:361 po/placeholder.h:440
+#: _irpm:28 po/placeholder.h:252 po/placeholder.h:365 po/placeholder.h:444
#: urpme:30 urpmi:410
msgid "Is it OK?"
msgstr "Er det o.k.?"
-#: _irpm:30 po/placeholder.h:240 po/placeholder.h:426 urpmi:413 urpmi:441
+#: _irpm:30 po/placeholder.h:241 po/placeholder.h:430 urpmi:413 urpmi:441
msgid "Ok"
msgstr "O.k."
-#: _irpm:31 po/placeholder.h:204 po/placeholder.h:367 urpmi:414 urpmi:442
+#: _irpm:31 po/placeholder.h:205 po/placeholder.h:371 urpmi:414 urpmi:442
msgid "Cancel"
msgstr "Annullér"
@@ -47,8 +47,8 @@ msgstr "Annullér"
#. can hit those keys in their keyboard to reply.
#. please keep the 'Nn' for compatibility reasons
#.
-#: _irpm:37 po/placeholder.h:17 po/placeholder.h:220 po/placeholder.h:366
-#: po/placeholder.h:393 urpme:33 urpmi:364 urpmi:371 urpmi:418 urpmi:486
+#: _irpm:37 po/placeholder.h:17 po/placeholder.h:221 po/placeholder.h:370
+#: po/placeholder.h:397 urpme:33 urpmi:364 urpmi:371 urpmi:418 urpmi:487
msgid "Nn"
msgstr "Nn"
@@ -57,12 +57,12 @@ msgstr "Nn"
#. can hit those keys in their keyboard to reply.
#. please keep the 'Yy' for compatibility reasons
#.
-#: _irpm:38 po/placeholder.h:11 po/placeholder.h:113 po/placeholder.h:360
-#: po/placeholder.h:395 urpme:35 urpmi:365 urpmi:372 urpmi:419 urpmi:487
+#: _irpm:38 po/placeholder.h:11 po/placeholder.h:114 po/placeholder.h:364
+#: po/placeholder.h:399 urpme:35 urpmi:365 urpmi:372 urpmi:419 urpmi:488
msgid "Yy"
msgstr "YyJj"
-#: _irpm:39 po/placeholder.h:242 po/placeholder.h:357 po/placeholder.h:429
+#: _irpm:39 po/placeholder.h:243 po/placeholder.h:361 po/placeholder.h:433
#: urpme:121 urpmi:366 urpmi:373 urpmi:420
msgid " (Y/n) "
msgstr " (J/n) "
@@ -71,77 +71,77 @@ msgstr " (J/n) "
msgid "$rpm: command not found\n"
msgstr "$rpm: kommando ikke fundet\n"
-#: po/placeholder.h:18 po/placeholder.h:191
+#: po/placeholder.h:18 po/placeholder.h:192
#, c-format
msgid "urpmf version %s"
msgstr "urpmf version %s"
-#: po/placeholder.h:19 po/placeholder.h:146
+#: po/placeholder.h:19 po/placeholder.h:147
msgid "Copyright (C) 1999, 2000, 2001, 2002 MandrakeSoft."
msgstr "Copyright (C) 1999,2000,2001,2002 MandrakeSoft."
-#: po/placeholder.h:20 po/placeholder.h:187
+#: po/placeholder.h:20 po/placeholder.h:188
msgid ""
"This is free software and may be redistributed under the terms of the GNU "
"GPL."
msgstr ""
"Dette er frit programmel og kan redistribueres under vilkårene til GNU GPL."
-#: po/placeholder.h:21 po/placeholder.h:38 po/placeholder.h:161
+#: po/placeholder.h:21 po/placeholder.h:38 po/placeholder.h:162
msgid "usage: urpmf [options] <file>"
msgstr "brug: urpmf [flag] [<fil>]"
-#: po/placeholder.h:22 po/placeholder.h:135
+#: po/placeholder.h:22 po/placeholder.h:136
msgid ""
" --quiet - do not print tag name (default if no tag given on command"
msgstr ""
" --quiet - skriv ikke mærkenavn (standard hvis intet mærke angivet "
"på kommando"
-#: po/placeholder.h:23 po/placeholder.h:188
+#: po/placeholder.h:23 po/placeholder.h:189
msgid " line, incompatible with interactive mode)."
msgstr " linje, ikke kompatibel med interaktivt modus)."
-#: po/placeholder.h:24 po/placeholder.h:156
+#: po/placeholder.h:24 po/placeholder.h:157
msgid " --all - print all tags."
msgstr " --all - skriv alle mærker."
-#: po/placeholder.h:25 po/placeholder.h:196
+#: po/placeholder.h:25 po/placeholder.h:197
msgid ""
" --name - print tag name: rpm filename (assumed if no tag given on"
msgstr ""
" --name - skriv mærkenavn: rpm filnavn (antaget hvis intet mærke "
"givet på"
-#: po/placeholder.h:26 po/placeholder.h:200
+#: po/placeholder.h:26 po/placeholder.h:201
msgid " command line but without package name)."
msgstr " kommandolinje, men uden pakkenavn)."
-#: po/placeholder.h:27 po/placeholder.h:128
+#: po/placeholder.h:27 po/placeholder.h:129
msgid " --group - print tag group: group."
msgstr " --group - skriv mærkegruppe: gruppe."
-#: po/placeholder.h:28 po/placeholder.h:111
+#: po/placeholder.h:28 po/placeholder.h:112
msgid " --size - print tag size: size."
msgstr " --size - skriv mærke-størrelse: størrelse."
-#: po/placeholder.h:29 po/placeholder.h:166
+#: po/placeholder.h:29 po/placeholder.h:167
msgid " --serial - print tag serial: serial."
msgstr " --serial - skriv mærke-serienummer: serienummer."
-#: po/placeholder.h:30 po/placeholder.h:179
+#: po/placeholder.h:30 po/placeholder.h:180
msgid " --summary - print tag summary: summary."
msgstr " --summary - skriv mærke-resumé: resumé."
-#: po/placeholder.h:31 po/placeholder.h:150
+#: po/placeholder.h:31 po/placeholder.h:151
msgid " --description - print tag description: description."
msgstr " --description - skriv mærke-beskrivelse: beskrivelse."
-#: po/placeholder.h:32 po/placeholder.h:170
+#: po/placeholder.h:32 po/placeholder.h:171
msgid " --provides - print tag provides: all provides (multiple lines)."
msgstr " --provides - skriv mærke-tilbud: alle tilbud (flere linjer)."
-#: po/placeholder.h:33 po/placeholder.h:231
+#: po/placeholder.h:33 po/placeholder.h:232
msgid " --requires - print tag requires: all requires (multiple lines)."
msgstr " --requires - skriv mærke-krav: alle krav (flere linjer)."
@@ -155,13 +155,13 @@ msgid ""
msgstr ""
" --conflicts - skriv mærke-konflikter: alle konflikter (flere linjer)."
-#: po/placeholder.h:36 po/placeholder.h:132
+#: po/placeholder.h:36 po/placeholder.h:133
msgid ""
" --obsoletes - print tag obsoletes: all obsoletes (multiple lines)."
msgstr ""
" --obsoletes - skriv mærke-forældede: alle forældede (flere linjer)."
-#: po/placeholder.h:37 po/placeholder.h:158
+#: po/placeholder.h:37 po/placeholder.h:159
msgid " --prereqs - print tag prereqs: all prereqs (multiple lines)."
msgstr ""
" --prereqs - skriv mærke-forudsætninger: alle forudsætninger (flere "
@@ -175,7 +175,7 @@ msgstr "prøv urpmf --help for flere valgmuligheder"
msgid "no full media list was found"
msgstr "ingen fuld media-liste blev fundet"
-#: po/placeholder.h:41 po/placeholder.h:261
+#: po/placeholder.h:41 po/placeholder.h:263
#, c-format
msgid "unable to write config file [%s]"
msgstr "kunne ikke skrive config-fil [%s]"
@@ -188,32 +188,32 @@ msgstr "undersøger hele urpmi-databasen"
msgid " -y - impose fuzzy search.\n"
msgstr " -y - gennemfør søgning efter fuzzy.\n"
-#: po/placeholder.h:44 po/placeholder.h:266 urpm.pm:429
+#: po/placeholder.h:44 po/placeholder.h:269 urpm.pm:429
#, c-format
msgid "unable to find list file for \"%s\", medium ignored"
msgstr "kunne ikke finde listefil for \"%s\", media ignoreret"
-#: po/placeholder.h:45 po/placeholder.h:264
+#: po/placeholder.h:45 po/placeholder.h:267
#, c-format
msgid "nothing to write in list file for \"%s\""
msgstr "ingenting at skrive i listefil for \"%s\""
-#: po/placeholder.h:47 po/placeholder.h:267
+#: po/placeholder.h:47 po/placeholder.h:270
#, c-format
msgid "unable to parse hdlist file of \"%s\""
msgstr "kunne ikke fortolke hdlist-filen \"%s\""
-#: po/placeholder.h:48 po/placeholder.h:383
+#: po/placeholder.h:48 po/placeholder.h:387
#, fuzzy
msgid " --auto - automatically select a package in choices.\n"
msgstr " --auto - vælg automatisk en god pakke ved valg.\n"
-#: po/placeholder.h:49 po/placeholder.h:268
+#: po/placeholder.h:49 po/placeholder.h:271
#, c-format
msgid "nothing written in list file for \"%s\""
msgstr "ingenting skrevet i listefil for \"%s\""
-#: po/placeholder.h:50 po/placeholder.h:555
+#: po/placeholder.h:50 po/placeholder.h:559
msgid ""
" --sources - give all source packages before downloading (root only).\n"
msgstr " --sources - giv alle kildepakker før hentning (kun root).\n"
@@ -224,17 +224,17 @@ msgid ""
msgstr ""
" --auto-select - vælg automatisk pakker for opgradering af systemet.\n"
-#: po/placeholder.h:52 po/placeholder.h:270
+#: po/placeholder.h:52 po/placeholder.h:273
#, c-format
msgid "retrieving description file of \"%s\"..."
msgstr "henter beskrivelsesfil for '%s'"
-#: po/placeholder.h:53 po/placeholder.h:272 urpm.pm:1616
+#: po/placeholder.h:53 po/placeholder.h:275 urpm.pm:1616
#, c-format
msgid "package %s is not found."
msgstr "pakke %s er ikke fundet."
-#: po/placeholder.h:55 po/placeholder.h:275
+#: po/placeholder.h:55 po/placeholder.h:278
#, fuzzy, c-format
msgid "trying to select multiple media: %s"
msgstr "prøver at vælge flere media: %s"
@@ -244,11 +244,11 @@ msgstr "prøver at vælge flere media: %s"
msgid "medium \"%s\" tries to use an already used hdlist, medium ignored"
msgstr "media \"%s\" prøver at bruge en allerede brugt hdlist, media ignoreret"
-#: po/placeholder.h:57 po/placeholder.h:356 urpme:51
+#: po/placeholder.h:57 po/placeholder.h:360 urpme:51
msgid "unknown package(s) "
msgstr "ukendte pakker "
-#: po/placeholder.h:58 po/placeholder.h:277 urpm.pm:382
+#: po/placeholder.h:58 po/placeholder.h:280 urpm.pm:382
#, c-format
msgid "unable to use name \"%s\" for unnamed medium because it is already used"
msgstr ""
@@ -258,7 +258,7 @@ msgstr ""
msgid "problem reading hdlist file, trying again"
msgstr "problem ved læsning af hdlist-fil, prøver igen"
-#: po/placeholder.h:60 po/placeholder.h:280 urpm.pm:389
+#: po/placeholder.h:60 po/placeholder.h:283 urpm.pm:389
#, c-format
msgid "unable to take medium \"%s\" into account as no list file [%s] exists"
msgstr ""
@@ -268,93 +268,93 @@ msgstr ""
msgid "keeping only files referenced in provides"
msgstr "behold kun filer nævnt i tilbud"
-#: po/placeholder.h:62 po/placeholder.h:281
+#: po/placeholder.h:62 po/placeholder.h:284
#, c-format
msgid "found %d headers in cache"
msgstr "fandt %d hoveder i hurtiglager"
-#: po/placeholder.h:64 po/placeholder.h:458 urpmi.addmedia:96
+#: po/placeholder.h:64 po/placeholder.h:462 urpmi.addmedia:96
#: urpmi.addmedia:113
#, c-format
msgid "unable to update medium \"%s\"\n"
msgstr "kan ikke opdatere medie \"%s\"\n"
-#: po/placeholder.h:65 po/placeholder.h:418 po/placeholder.h:535
+#: po/placeholder.h:65 po/placeholder.h:422 po/placeholder.h:539
msgid " --src - next package is a source package (same as -s).\n"
msgstr " --src - næste pakke er en kildepakke (samme som -s).\n"
-#: po/placeholder.h:66 po/placeholder.h:420
+#: po/placeholder.h:66 po/placeholder.h:424
msgid " --noclean - keep rpm not used in cache.\n"
msgstr " --noclean - behold rpm ikke brugt i cache.\n"
-#: po/placeholder.h:67 po/placeholder.h:463 po/placeholder.h:501
-#: po/placeholder.h:520
+#: po/placeholder.h:67 po/placeholder.h:467 po/placeholder.h:505
+#: po/placeholder.h:524
msgid " -c - clean headers cache directory.\n"
msgstr " -c - rydder katalog med cache for headere.\n"
-#: po/placeholder.h:68 po/placeholder.h:284
+#: po/placeholder.h:68 po/placeholder.h:287
#, c-format
msgid "medium \"%s\" already exists"
msgstr "media \"%s\" eksisterer allerede"
-#: po/placeholder.h:69 po/placeholder.h:283 urpm.pm:196
+#: po/placeholder.h:69 po/placeholder.h:286 urpm.pm:196
#, c-format
msgid "unknown protocol defined for %s"
msgstr ""
-#: po/placeholder.h:70 po/placeholder.h:285
+#: po/placeholder.h:70 po/placeholder.h:288
#, c-format
msgid "unable to write list file of \"%s\""
msgstr "kunne ikke skrive listefil for \"%s\""
-#: po/placeholder.h:71 po/placeholder.h:546
+#: po/placeholder.h:71 po/placeholder.h:550
msgid " names or rpm files given on command line are queried.\n"
msgstr " navne eller rpm-filer givne på kommandolinjen bliver forespurgt.\n"
-#: po/placeholder.h:72 po/placeholder.h:287 urpm.pm:177
+#: po/placeholder.h:72 po/placeholder.h:290 urpm.pm:177
msgid "Unknown webfetch `$proxy->{type}' !!!\n"
msgstr ""
-#: po/placeholder.h:73 po/placeholder.h:424 po/placeholder.h:552
+#: po/placeholder.h:73 po/placeholder.h:428 po/placeholder.h:556
#, fuzzy
msgid ""
" --auto-select - automatically select packages to upgrade the system.\n"
msgstr ""
" --auto-select - vælg automatisk pakker for opgradering af systemet.\n"
-#: po/placeholder.h:74 po/placeholder.h:288 urpm.pm:1491
+#: po/placeholder.h:74 po/placeholder.h:291 urpm.pm:1491
#, c-format
msgid "no package named %s"
msgstr "ingen pakke kaldet %s"
-#: po/placeholder.h:75 po/placeholder.h:425 urpmi:494
+#: po/placeholder.h:75 po/placeholder.h:429 urpmi:496
msgid "Try installation even more strongly (--force)? (y/N) "
msgstr "Prøv installation med endnu større kraft (--force)? (j/N) "
-#: po/placeholder.h:76 po/placeholder.h:291 urpm.pm:424
+#: po/placeholder.h:76 po/placeholder.h:294 urpm.pm:424
#, c-format
msgid "unable to find hdlist file for \"%s\", medium ignored"
msgstr "kunne ikke finde hdlist-fil for \"%s\", media ignoreret"
-#: po/placeholder.h:77 po/placeholder.h:290
+#: po/placeholder.h:77 po/placeholder.h:293
#, c-format
msgid "built hdlist synthesis file for medium \"%s\""
msgstr "byggede hdlist syntese fil for media \"%s\""
-#: po/placeholder.h:78 po/placeholder.h:292
+#: po/placeholder.h:78 po/placeholder.h:295
msgid "urpmi database locked"
msgstr "urpmi-database låst"
-#: po/placeholder.h:79 po/placeholder.h:293
+#: po/placeholder.h:79 po/placeholder.h:296
#, c-format
msgid "file [%s] already used in the same medium \"%s\""
msgstr ""
-#: po/placeholder.h:80 po/placeholder.h:358 urpme:62
+#: po/placeholder.h:80 po/placeholder.h:362 urpme:62
msgid " (y/N) "
msgstr " (j/N) "
-#: po/placeholder.h:81 po/placeholder.h:431
+#: po/placeholder.h:81 po/placeholder.h:435
msgid " -a - select all matches on command line.\n"
msgstr " -a - vælg alle træffere på kommandolinje.\n"
@@ -366,34 +366,34 @@ msgstr ""
"en pakke skal fjernes før den kan opgraderes, dette er ikke understøttet "
"endnu.\n"
-#: po/placeholder.h:84 po/placeholder.h:296 urpm.pm:1358
+#: po/placeholder.h:84 po/placeholder.h:299 urpm.pm:1358
#, c-format
msgid "mounting %s"
msgstr "monterer %s"
-#: po/placeholder.h:85 po/placeholder.h:481 po/placeholder.h:525
+#: po/placeholder.h:85 po/placeholder.h:485 po/placeholder.h:529
msgid " -f - force generation of hdlist files.\n"
msgstr " -f - gennemfør generering af hdlist-filer.\n"
-#: po/placeholder.h:86 po/placeholder.h:300 urpm.pm:226
+#: po/placeholder.h:86 po/placeholder.h:303 urpm.pm:226
#, c-format
msgid "wget failed: exited with %d or signal %d\n"
msgstr "wget mislykkedes: afsluttede med %d eller signal %d\n"
-#: po/placeholder.h:87 po/placeholder.h:492 urpmi.removemedia:47
+#: po/placeholder.h:87 po/placeholder.h:496 urpmi.removemedia:47
msgid "nothing to remove (use urpmi.addmedia to add a media)\n"
msgstr "ingenting at fjerne (brug urpmi.addmedia til at tilføje et medie)\n"
-#: po/placeholder.h:88 po/placeholder.h:303 urpm.pm:1744
+#: po/placeholder.h:88 po/placeholder.h:306 urpm.pm:1744
#, c-format
msgid "malformed input: [%s]"
msgstr "malformed input: [%s]"
-#: po/placeholder.h:89 po/placeholder.h:442
+#: po/placeholder.h:89 po/placeholder.h:446
msgid " --env - use specific environment (typically a bug report).\n"
msgstr ""
-#: po/placeholder.h:90 po/placeholder.h:445 po/placeholder.h:575
+#: po/placeholder.h:90 po/placeholder.h:449 po/placeholder.h:579
msgid " -y - impose fuzzy search (same as --fuzzy).\n"
msgstr ""
" -y - gennemfør søgning efter fuzzy (samme som --fuzzy).\n"
@@ -405,7 +405,7 @@ msgstr ""
" -u - fjern pakke hvis en bedre version allerede er "
"installeret.\n"
-#: po/placeholder.h:92 po/placeholder.h:447 urpmi:314
+#: po/placeholder.h:92 po/placeholder.h:451 urpmi:314
#, c-format
msgid "One of the following packages is needed to install %s:"
msgstr "Der er brug for en af de følgende pakker for at installere %s:"
@@ -414,11 +414,11 @@ msgstr "Der er brug for en af de følgende pakker for at installere %s:"
msgid "Press Enter when it's done..."
msgstr "Tryk på retur, når den er færdig..."
-#: po/placeholder.h:94 po/placeholder.h:305
+#: po/placeholder.h:94 po/placeholder.h:308
msgid "...copying failed"
msgstr "...kopiering mislykkedes"
-#: po/placeholder.h:95 po/placeholder.h:306 urpm.pm:291
+#: po/placeholder.h:95 po/placeholder.h:309 urpm.pm:291
#, fuzzy
msgid "ssh is missing\n"
msgstr "'wget' mangler\n"
@@ -428,244 +428,249 @@ msgstr "'wget' mangler\n"
msgid "medium \"%s\" tries to use an already used list, medium ignored"
msgstr "media \"%s\" prøver at bruge en allerede brugt liste, media ignoreret"
-#: po/placeholder.h:97 po/placeholder.h:536
+#: po/placeholder.h:97 po/placeholder.h:312 urpm.pm:1831
+#, fuzzy, c-format
+msgid "unable to remove package %s"
+msgstr "Kun superbrugeren har lov til at installere pakker"
+
+#: po/placeholder.h:98 po/placeholder.h:540
msgid " -h - print this help message.\n"
msgstr " -h - udskriv denne hjælpebesked.\n"
-#: po/placeholder.h:98
+#: po/placeholder.h:99
msgid " -g - print groups too with name.\n"
msgstr " -g - udskriv også grupper med navn.\n"
-#: po/placeholder.h:99 po/placeholder.h:502
+#: po/placeholder.h:100 po/placeholder.h:506
msgid " -a - select all media.\n"
msgstr " -a - vælg alle medier.\n"
-#: po/placeholder.h:100 po/placeholder.h:314
+#: po/placeholder.h:101 po/placeholder.h:318
#, c-format
msgid "invalid hdlist description \"%s\" in hdlists file"
msgstr "ugyldig hdlist beskrivelse '%s' i hdlists-fil"
-#: po/placeholder.h:101 po/placeholder.h:465
+#: po/placeholder.h:102 po/placeholder.h:469
msgid " -h - try to find and use synthesis or hdlist file.\n"
msgstr ""
" -h - forsøg at finde og bruge syntese- eller hdlist-fil.\n"
-#: po/placeholder.h:102 po/placeholder.h:538
+#: po/placeholder.h:103 po/placeholder.h:542
#, fuzzy
msgid " -r - print version and release with name also.\n"
msgstr " -r - udskriv også version og udgave med navn.\n"
-#: po/placeholder.h:103
+#: po/placeholder.h:104
msgid " -r - print version and release too with name.\n"
msgstr " -r - udskriv også version og udgave med navn.\n"
-#: po/placeholder.h:104 po/placeholder.h:553
+#: po/placeholder.h:105 po/placeholder.h:557
msgid " -f - print version, release and arch with name.\n"
msgstr " -f - udskriv version, udgave og arkitektur med navn.\n"
-#: po/placeholder.h:105
+#: po/placeholder.h:106
msgid " --auto - automatically select a good package in choices.\n"
msgstr " --auto - vælg automatisk en god pakke ved valg.\n"
-#: po/placeholder.h:106
+#: po/placeholder.h:107
#, c-format
msgid "unable to parse correctly [%s]"
msgstr "kunne ikke fortolke [%s] korrekt"
-#: po/placeholder.h:107 po/placeholder.h:532 urpmi.update:78
+#: po/placeholder.h:108 po/placeholder.h:536 urpmi.update:78
msgid "nothing to update (use urpmi.addmedia to add a media)\n"
msgstr "ingenting at opdatere (brug urpmi.addmedia til at tilføje et medie)\n"
-#: po/placeholder.h:108
+#: po/placeholder.h:109
#, c-format
msgid "read synthesis file [%s]"
msgstr "læs syntese-fil [%s]"
-#: po/placeholder.h:109 po/placeholder.h:318 urpm.pm:205
+#: po/placeholder.h:110 po/placeholder.h:322 urpm.pm:205
msgid "no webfetch (curl or wget currently) found\n"
msgstr "intet webhentningprogram (for øjeblikket 'curl' eller 'wget') fundet\n"
-#: po/placeholder.h:110 po/placeholder.h:556
+#: po/placeholder.h:111 po/placeholder.h:560
msgid ""
" -c - choose complete method for resolving requires closure.\n"
msgstr " -c - vælg fuldstændig metode for løsning af alle krav.\n"
-#: po/placeholder.h:112 po/placeholder.h:479 urpmi.addmedia:112
+#: po/placeholder.h:113 po/placeholder.h:483 urpmi.addmedia:112
#, c-format
msgid "unable to create medium \"%s\"\n"
msgstr "kan ikke oprette medie \"%s\"\n"
-#: po/placeholder.h:114 po/placeholder.h:321
+#: po/placeholder.h:115 po/placeholder.h:325
#, c-format
msgid "copying source hdlist (or synthesis) of \"%s\"..."
msgstr "kopierer kilde-hdlist (eller -syntese) for \"%s\"..."
-#: po/placeholder.h:115 po/placeholder.h:560 urpmq:122
+#: po/placeholder.h:116 po/placeholder.h:564 urpmq:122
#, c-format
msgid "urpmq: unknown option \"-%s\", check usage with --help\n"
msgstr "urpmq: ukendt parameter \"-%s\", tjek brug med --help\n"
-#: po/placeholder.h:116 po/placeholder.h:363 urpme:40
+#: po/placeholder.h:117 po/placeholder.h:367 urpme:40
msgid "usage: urpme [-a] [--auto] <packages...>\n"
msgstr "brug: urpme [-a] [--auto] <packages...>\n"
-#: po/placeholder.h:117 po/placeholder.h:323
+#: po/placeholder.h:118 po/placeholder.h:327
#, c-format
msgid "building hdlist [%s]"
msgstr "bygger hdlist [%s]"
-#: po/placeholder.h:118 po/placeholder.h:400 po/placeholder.h:570
+#: po/placeholder.h:119 po/placeholder.h:404 po/placeholder.h:574
msgid " --media - use only the media listed by comma.\n"
msgstr " --media - brug kun media listet med komma.\n"
-#: po/placeholder.h:119 po/placeholder.h:326
+#: po/placeholder.h:120 po/placeholder.h:330
#, c-format
msgid "added medium %s"
msgstr "tilføjede media %s"
-#: po/placeholder.h:120 po/placeholder.h:325 urpm.pm:1673
+#: po/placeholder.h:121 po/placeholder.h:329 urpm.pm:1673
#, c-format
msgid "unable to read rpm file [%s] from medium \"%s\""
msgstr "kunne ikke læse rpm-fil [%s] fra media \"%s\""
-#: po/placeholder.h:121 po/placeholder.h:327
+#: po/placeholder.h:122 po/placeholder.h:331
msgid "retrieve of source hdlist (or synthesis) failed"
msgstr "hentning af kilde-hdlist (eller -syntese) mislykkedes"
-#: po/placeholder.h:122 po/placeholder.h:330 urpm.pm:1756
+#: po/placeholder.h:123 po/placeholder.h:334 urpm.pm:1756
#, c-format
msgid "...retrieving failed: %s"
msgstr "...hentning mislykkedes: %s"
-#: po/placeholder.h:123 po/placeholder.h:332 urpm.pm:1689
+#: po/placeholder.h:124 po/placeholder.h:336 urpm.pm:1689
#, c-format
msgid "incoherent medium \"%s\" marked removable but not really"
msgstr "inkonsistent media \"%s\" mærket fjernbart, men er det ikke"
-#: po/placeholder.h:124 po/placeholder.h:331 urpm.pm:1801
+#: po/placeholder.h:125 po/placeholder.h:335 urpm.pm:1801
msgid "Preparing..."
msgstr ""
-#: po/placeholder.h:125 po/placeholder.h:412
+#: po/placeholder.h:126 po/placeholder.h:416
msgid ""
" --bug - output a bug report in directory indicated by next arg.\n"
msgstr ""
-#: po/placeholder.h:126 po/placeholder.h:335 urpm.pm:1396
+#: po/placeholder.h:127 po/placeholder.h:339 urpm.pm:1396
#, c-format
msgid "invalid rpm file name [%s]"
msgstr "ugyldigt rpm-filnavn [%s]"
-#: po/placeholder.h:127
+#: po/placeholder.h:128
#, c-format
msgid "unknown data associated with %s"
msgstr "ukendt data associeret med %s"
-#: po/placeholder.h:129 po/placeholder.h:421 urpmi:323
+#: po/placeholder.h:130 po/placeholder.h:425 urpmi:323
#, c-format
msgid "What is your choice? (1-%d) "
msgstr "Hvad er dit valg? (1-%d) "
-#: po/placeholder.h:130 po/placeholder.h:338 urpm.pm:404
+#: po/placeholder.h:131 po/placeholder.h:342 urpm.pm:404
#, c-format
msgid "unable to access list file of \"%s\", medium ignored"
msgstr "kan ikke få adgang til filen \"%s\", media ignoreret"
-#: po/placeholder.h:131 po/placeholder.h:422 po/placeholder.h:464
-#: po/placeholder.h:526 po/placeholder.h:537
+#: po/placeholder.h:132 po/placeholder.h:426 po/placeholder.h:468
+#: po/placeholder.h:530 po/placeholder.h:541
msgid " --wget - use wget to retrieve distant files.\n"
msgstr " --wget - brug wget til at hente eksterne filer.\n"
-#: po/placeholder.h:133
+#: po/placeholder.h:134
#, c-format
msgid "avoid selecting %s as not enough files will be updated"
msgstr "undgår at vælge %s da ikke nok filer vil blive opdateret"
-#: po/placeholder.h:134 po/placeholder.h:339 urpm.pm:1397 urpm.pm:1848
+#: po/placeholder.h:135 po/placeholder.h:343 urpm.pm:1397 urpm.pm:1861
#, c-format
msgid "unable to access rpm file [%s]"
msgstr "kunne ikke nå rpm fil [%s]"
-#: po/placeholder.h:136 po/placeholder.h:427 urpmi:326
+#: po/placeholder.h:137 po/placeholder.h:431 urpmi:326
msgid "Sorry, bad choice, try again\n"
msgstr "Undskyld, dårligt valg, prøv igen\n"
-#: po/placeholder.h:137 po/placeholder.h:341 urpm.pm:1700
+#: po/placeholder.h:138 po/placeholder.h:345 urpm.pm:1700
#, c-format
msgid "unable to access medium \"%s\""
msgstr "kunne ikke nå media \"%s\""
-#: po/placeholder.h:138 po/placeholder.h:340 urpm.pm:1382
+#: po/placeholder.h:139 po/placeholder.h:344 urpm.pm:1382
#, c-format
msgid "relocated %s entries in depslist"
msgstr "omflyttede %s indgange i depsliste"
-#: po/placeholder.h:139 po/placeholder.h:432 po/placeholder.h:480
-#: po/placeholder.h:515 po/placeholder.h:559
+#: po/placeholder.h:140 po/placeholder.h:436 po/placeholder.h:484
+#: po/placeholder.h:519 po/placeholder.h:563
msgid " --curl - use curl to retrieve distant files.\n"
msgstr " --curl - brug 'curl' til at hente retrieve eksterne filer.\n"
-#: po/placeholder.h:140 po/placeholder.h:342
+#: po/placeholder.h:141 po/placeholder.h:346
#, c-format
msgid "trying to select inexistent medium \"%s\""
msgstr "prøver at vælge ikke-eksisterende media \"%s\""
-#: po/placeholder.h:141
+#: po/placeholder.h:142
#, c-format
msgid "unable to parse correctly [%s] on value \"%s\""
msgstr "kunne ikke fortolke [%s] korrekt bed værdi \"%s\""
-#: po/placeholder.h:142 po/placeholder.h:345
+#: po/placeholder.h:143 po/placeholder.h:349
#, c-format
msgid "no rpm files found from [%s]"
msgstr "ingen rpm filer fundet fra [%s]"
-#: po/placeholder.h:143 po/placeholder.h:349 urpm.pm:290
+#: po/placeholder.h:144 po/placeholder.h:353 urpm.pm:290
#, fuzzy
msgid "rsync is missing\n"
msgstr "'curl' mangler\n"
-#: po/placeholder.h:144 po/placeholder.h:350 urpm.pm:358
+#: po/placeholder.h:145 po/placeholder.h:354 urpm.pm:358
#, fuzzy, c-format
msgid "medium \"%s\" trying to use an already used hdlist, medium ignored"
msgstr "media \"%s\" prøver at bruge en allerede brugt hdlist, media ignoreret"
-#: po/placeholder.h:145 po/placeholder.h:444 urpmi:174
+#: po/placeholder.h:146 po/placeholder.h:448 urpmi:174
#, fuzzy, c-format
msgid "Unable to create directory [%s] for bug report"
msgstr "kunne ikke fortolke [%s] korrekt bed værdi \"%s\""
-#: po/placeholder.h:147 po/placeholder.h:351 urpm.pm:229
+#: po/placeholder.h:148 po/placeholder.h:355 urpm.pm:229
msgid "curl is missing\n"
msgstr "'curl' mangler\n"
-#: po/placeholder.h:148 po/placeholder.h:353 urpm.pm:393
+#: po/placeholder.h:149 po/placeholder.h:357 urpm.pm:393
#, c-format
msgid "unable to determine medium of this hdlist file [%s]"
msgstr "kunne ikke bestemme media for denne hdlist-fil [%s]"
-#: po/placeholder.h:149 po/placeholder.h:368
+#: po/placeholder.h:150 po/placeholder.h:372
msgid " --help - print this help message.\n"
msgstr " --help - udskriv denne hjælpebesked.\n"
-#: po/placeholder.h:151 po/placeholder.h:369 urpmi:504
+#: po/placeholder.h:152 po/placeholder.h:373 urpmi:507
msgid "everything already installed"
msgstr "alting er allerede installeret"
-#: po/placeholder.h:152 po/placeholder.h:262 urpm.pm:1749
+#: po/placeholder.h:153 po/placeholder.h:265 urpm.pm:1749
msgid "retrieving rpms files..."
msgstr "henter [%s]"
-#: po/placeholder.h:153 po/placeholder.h:263
+#: po/placeholder.h:154 po/placeholder.h:266
#, c-format
msgid "using different removable device [%s] for \"%s\""
msgstr "bruger en anden udskiftelig enhed [%s] for \"%s\""
-#: po/placeholder.h:154 po/placeholder.h:371 urpmi:315
+#: po/placeholder.h:155 po/placeholder.h:375 urpmi:315
msgid "One of the following packages is needed:"
msgstr "Der er brug for en af de følgende pakker:"
-#: po/placeholder.h:155 po/placeholder.h:265
+#: po/placeholder.h:156 po/placeholder.h:268
msgid ""
"unable to access first installation medium (no Mandrake/base/hdlists file "
"found)"
@@ -673,134 +678,134 @@ msgstr ""
"kunne ikke få fat på det første installationsmedium (ingen Mandrake/base/"
"hdlists fil fundet)"
-#: po/placeholder.h:157 po/placeholder.h:545 urpmq:125
+#: po/placeholder.h:158 po/placeholder.h:549 urpmq:125
#, c-format
msgid "urpmq: cannot read rpm file \"%s\"\n"
msgstr "urpmq: kan ikke læse rpm-fil \"%s\"\n"
-#: po/placeholder.h:159 po/placeholder.h:362 urpme:83
+#: po/placeholder.h:160 po/placeholder.h:366 urpme:83
msgid "Nothing to remove.\n"
msgstr "Ingenting at fjerne.\n"
-#: po/placeholder.h:160 po/placeholder.h:269 urpm.pm:301
+#: po/placeholder.h:161 po/placeholder.h:272 urpm.pm:301
#, fuzzy, c-format
msgid "rsync failed: exited with %d or signal %d\n"
msgstr "'curl' mislykkedes: afsluttede med %d eller signal %d\n"
-#: po/placeholder.h:162 po/placeholder.h:271
+#: po/placeholder.h:163 po/placeholder.h:274
msgid "unable to access first installation medium"
msgstr "kan ikke få adgang til første installationsmedium"
-#: po/placeholder.h:163 po/placeholder.h:394 urpmi:204 urpmi:465 urpmi:475
-#: urpmi:481 urpmi:493 urpmi:498
+#: po/placeholder.h:164 po/placeholder.h:398 urpmi:204 urpmi:465 urpmi:475
+#: urpmi:482 urpmi:495 urpmi:501
msgid "Installation failed"
msgstr "Installationen fejlede"
-#: po/placeholder.h:164 po/placeholder.h:398 po/placeholder.h:561
+#: po/placeholder.h:165 po/placeholder.h:402 po/placeholder.h:565
msgid " -P - do not search in provides to find package.\n"
msgstr " -P - søg ikke i 'provides' for at finde pakke.\n"
-#: po/placeholder.h:165 po/placeholder.h:273 urpm.pm:1369
+#: po/placeholder.h:166 po/placeholder.h:276 urpm.pm:1369
#, c-format
msgid "unmounting %s"
msgstr "afmonterer %s"
-#: po/placeholder.h:167 po/placeholder.h:274
+#: po/placeholder.h:168 po/placeholder.h:277
#, c-format
msgid "removing %d obsolete headers in cache"
msgstr "fjerner %d forældede hoveder i hurtiglager"
-#: po/placeholder.h:168 po/placeholder.h:276
+#: po/placeholder.h:169 po/placeholder.h:279
#, c-format
msgid "no hdlist file found for medium \"%s\""
msgstr "ingen hdlist-fil fundet for media \"%s\""
-#: po/placeholder.h:169
+#: po/placeholder.h:170
msgid "<non printable chars>"
msgstr "<ikke-skrivbare tegn>"
-#: po/placeholder.h:171 po/placeholder.h:278
+#: po/placeholder.h:172 po/placeholder.h:281
#, fuzzy, c-format
msgid "problem reading synthesis file of medium \"%s\""
msgstr "byggede hdlist syntese fil for media \"%s\""
-#: po/placeholder.h:172 po/placeholder.h:410 po/placeholder.h:572
+#: po/placeholder.h:173 po/placeholder.h:414 po/placeholder.h:576
msgid " -v - verbose mode.\n"
msgstr " -v - verbose mode.\n"
-#: po/placeholder.h:173 po/placeholder.h:279
+#: po/placeholder.h:174 po/placeholder.h:282
#, c-format
msgid "removing medium \"%s\""
msgstr "fjerner medium \"%s\""
-#: po/placeholder.h:174
+#: po/placeholder.h:175
#, c-format
msgid "unable to build synthesis file for medium \"%s\""
msgstr "kunne ikke bygge syntese fil for media \"%s\""
-#: po/placeholder.h:175
+#: po/placeholder.h:176
#, c-format
msgid "trying to select multiple medium: %s"
msgstr "prøver at vælge flere media: %s"
-#: po/placeholder.h:176 po/placeholder.h:534
+#: po/placeholder.h:177 po/placeholder.h:538
msgid " -a - select all non-removable media.\n"
msgstr " -a - vælg alle ikke-flytbare media.\n"
-#: po/placeholder.h:177 po/placeholder.h:417
+#: po/placeholder.h:178 po/placeholder.h:421
msgid " names or rpm files given on command line are installed.\n"
msgstr " navne eller rpm-filer givne på kommandolinjen er installeret.\n"
-#: po/placeholder.h:178
+#: po/placeholder.h:179
#, c-format
msgid "avoid selecting %s as its locales language is not already selected"
msgstr "undgå valg af %s da dens lokale sprog ikke er valgt allerede"
-#: po/placeholder.h:180 po/placeholder.h:282
+#: po/placeholder.h:181 po/placeholder.h:285
#, fuzzy, c-format
msgid "reading rpms files from [%s]"
msgstr "ingen rpm filer fundet fra [%s]"
-#: po/placeholder.h:181
+#: po/placeholder.h:182
msgid " --complete - use parsehdlist server to complete selection.\n"
msgstr " --complete - brug parsehdlist-server for at færdiggøre valg.\n"
-#: po/placeholder.h:182 po/placeholder.h:286
+#: po/placeholder.h:183 po/placeholder.h:289
#, c-format
msgid "write config file [%s]"
msgstr "skriv config fil [%s]"
-#: po/placeholder.h:183 po/placeholder.h:423 urpmi:439
+#: po/placeholder.h:184 po/placeholder.h:427 urpmi:439
#, fuzzy
msgid "Press Enter when ready..."
msgstr "Tryk på retur, når den er færdig..."
-#: po/placeholder.h:184 po/placeholder.h:289 urpm.pm:217
+#: po/placeholder.h:185 po/placeholder.h:292 urpm.pm:217
#, fuzzy, c-format
msgid "unable to handle protocol: %s"
msgstr "kunne ikke bygge hdlist: %s"
-#: po/placeholder.h:185
+#: po/placeholder.h:186
msgid "unable to build hdlist synthesis, using parsehdlist method"
msgstr "kunne ikke bygge hdlist syntese, bruger parsehdlist-metode"
-#: po/placeholder.h:186 po/placeholder.h:474
+#: po/placeholder.h:187 po/placeholder.h:478
msgid ""
" --distrib - automatically create all media from an installation "
"medium.\n"
msgstr ""
" --distrib - opret automatisk alle media fra et installationsmedium.\n"
-#: po/placeholder.h:189 po/placeholder.h:430 po/placeholder.h:558
+#: po/placeholder.h:190 po/placeholder.h:434 po/placeholder.h:562
msgid " -s - next package is a source package (same as --src).\n"
msgstr " -s - næste pakke er en kildepakke (samme som --src).\n"
-#: po/placeholder.h:190 po/placeholder.h:294 urpm.pm:1604
+#: po/placeholder.h:191 po/placeholder.h:297 urpm.pm:1604
#, fuzzy, c-format
msgid "unable to correctly parse [%s] on value \"%s\""
msgstr "kunne ikke fortolke [%s] korrekt bed værdi \"%s\""
-#: po/placeholder.h:192 po/placeholder.h:297 urpm.pm:376
+#: po/placeholder.h:193 po/placeholder.h:300 urpm.pm:376
#, c-format
msgid ""
"unable to take care of medium \"%s\" as list file is already used by another "
@@ -809,47 +814,47 @@ msgstr ""
"kan ikke behandle media \"%s\" da listefil allerede bliver brugt af et andet "
"media"
-#: po/placeholder.h:193 po/placeholder.h:295 urpm.pm:1836 urpm.pm:1841
+#: po/placeholder.h:194 po/placeholder.h:298 urpm.pm:1836 urpm.pm:1841
#, fuzzy, c-format
msgid "unable to install package %s"
msgstr "Kun superbrugeren har lov til at installere pakker"
-#: po/placeholder.h:194 po/placeholder.h:298
+#: po/placeholder.h:195 po/placeholder.h:301
#, c-format
msgid "examining synthesis file [%s]"
msgstr "undersøger syntese-fil [%s]"
-#: po/placeholder.h:195 po/placeholder.h:299
+#: po/placeholder.h:196 po/placeholder.h:302
#, fuzzy, c-format
msgid "reading headers from medium \"%s\""
msgstr "fjerner medium \"%s\""
-#: po/placeholder.h:197 po/placeholder.h:301 urpm.pm:361
+#: po/placeholder.h:198 po/placeholder.h:304 urpm.pm:361
#, fuzzy, c-format
msgid "medium \"%s\" trying to use an already used list, medium ignored"
msgstr "media \"%s\" prøver at bruge en allerede brugt liste, media ignoreret"
-#: po/placeholder.h:198 po/placeholder.h:302
+#: po/placeholder.h:199 po/placeholder.h:305
#, c-format
msgid "unable to retrieve pathname for removable medium \"%s\""
msgstr "kan ikke finde stinavn for udskifteligt medie \"%s\""
-#: po/placeholder.h:199 po/placeholder.h:304 urpm.pm:1569 urpm.pm:1595
+#: po/placeholder.h:200 po/placeholder.h:307 urpm.pm:1569 urpm.pm:1595
#, c-format
msgid "there are multiple packages with the same rpm filename \"%s\""
msgstr "der er flere pakker med samme rpm-filnavn \"%s\""
-#: po/placeholder.h:201 po/placeholder.h:576
+#: po/placeholder.h:202 po/placeholder.h:580
#, fuzzy
msgid " -g - print groups with name also.\n"
msgstr " -g - udskriv også grupper med navn.\n"
-#: po/placeholder.h:202 po/placeholder.h:577
+#: po/placeholder.h:203 po/placeholder.h:581
#, fuzzy
msgid " --list - list available packages.\n"
msgstr " --all - skriv alle mærker."
-#: po/placeholder.h:203 po/placeholder.h:355 urpme:120
+#: po/placeholder.h:204 po/placeholder.h:359 urpme:120
#, c-format
msgid ""
"To satisfy dependencies, the following packages are going to be removed (%d "
@@ -858,86 +863,86 @@ msgstr ""
"For at tilfredsstille afhængigheder vil de følgende pakker blive fjernet (%d "
"Mb)"
-#: po/placeholder.h:205 po/placeholder.h:307
+#: po/placeholder.h:206 po/placeholder.h:311
msgid "retrieving hdlists file..."
msgstr "henter hdlists-fil..."
-#: po/placeholder.h:206 po/placeholder.h:370 urpmi:149
+#: po/placeholder.h:207 po/placeholder.h:374 urpmi:149
#, c-format
msgid "urpmi: unknown option \"-%s\", check usage with --help\n"
msgstr "urpmi: ukendt parameter \"-%s\", tjek brug med --help\n"
-#: po/placeholder.h:207 po/placeholder.h:309 urpm.pm:402
+#: po/placeholder.h:208 po/placeholder.h:313 urpm.pm:402
#, c-format
msgid "unable to access hdlist file of \"%s\", medium ignored"
msgstr "kunne ikke nå hdlist-fil af \"%s\", media ignoreret"
-#: po/placeholder.h:208 po/placeholder.h:310 urpm.pm:1401
+#: po/placeholder.h:209 po/placeholder.h:314 urpm.pm:1401
msgid "unable to register rpm file"
msgstr "kunne ikke registrere rpm-fil"
-#: po/placeholder.h:209 po/placeholder.h:311
+#: po/placeholder.h:210 po/placeholder.h:315
#, c-format
msgid "\"%s\""
msgstr "\"%s\""
-#: po/placeholder.h:210 po/placeholder.h:315
+#: po/placeholder.h:211 po/placeholder.h:319
#, c-format
msgid "found probed hdlist (or synthesis) as %s"
msgstr "fandt eftersøgt hdlist (eller syntese) som %s"
-#: po/placeholder.h:211 po/placeholder.h:312 urpm.pm:456
+#: po/placeholder.h:212 po/placeholder.h:316 urpm.pm:456
#, c-format
msgid "unable to inspect list file for \"%s\", medium ignored"
msgstr "kunne ikke inspicere listefil for \"%s\", media ignoreret"
-#: po/placeholder.h:212 po/placeholder.h:313
+#: po/placeholder.h:213 po/placeholder.h:317
#, c-format
msgid "too many mount points for removable medium \"%s\""
msgstr "For mange monteringspunkter for udskifteligt medium \"%s\""
-#: po/placeholder.h:213 po/placeholder.h:316 urpm.pm:448
+#: po/placeholder.h:214 po/placeholder.h:320 urpm.pm:448
#, c-format
msgid "incoherent list file for \"%s\", medium ignored"
msgstr "inkonsistent listefil for \"%s\", media ignoreret"
-#: po/placeholder.h:214 po/placeholder.h:378 po/placeholder.h:547
+#: po/placeholder.h:215 po/placeholder.h:382 po/placeholder.h:551
msgid " --update - use only update media.\n"
msgstr " --update - brug kun opdateringsmedia.\n"
-#: po/placeholder.h:215 po/placeholder.h:317
+#: po/placeholder.h:216 po/placeholder.h:321
#, c-format
msgid "copy of [%s] failed"
msgstr "kopi af [%s] mislykkedes"
-#: po/placeholder.h:216 po/placeholder.h:554
+#: po/placeholder.h:217 po/placeholder.h:558
msgid " -d - extend query to package dependencies.\n"
msgstr " -d - udvid forespørgsel til pakkeafhængigheder.\n"
-#: po/placeholder.h:217
+#: po/placeholder.h:218
#, c-format
msgid "unable to analyse synthesis data of %s"
msgstr "kunne ikke fortolke syntese-data for %s"
-#: po/placeholder.h:218 po/placeholder.h:365 urpme:111
+#: po/placeholder.h:219 po/placeholder.h:369 urpme:111
#, c-format
msgid "removing package %s will break your system\n"
msgstr "Fjernelse af pakke %s vil skade dit system\n"
-#: po/placeholder.h:219 po/placeholder.h:319
+#: po/placeholder.h:220 po/placeholder.h:323
#, c-format
msgid "retrieving source hdlist (or synthesis) of \"%s\"..."
msgstr "henter kilde-hdlist (eller -syntese) for \"%s\"..."
-#: po/placeholder.h:221 po/placeholder.h:396
+#: po/placeholder.h:222 po/placeholder.h:400
msgid " --X - use X interface.\n"
msgstr " --X - brug X-grænsesnit.\n"
-#: po/placeholder.h:222 po/placeholder.h:320
+#: po/placeholder.h:223 po/placeholder.h:324
msgid "...copying done"
msgstr "...kopiering færdig"
-#: po/placeholder.h:223 po/placeholder.h:397 urpmi:400 urpmi:409
+#: po/placeholder.h:224 po/placeholder.h:401 urpmi:400 urpmi:409
#, c-format
msgid ""
"To satisfy dependencies, the following packages are going to be installed (%"
@@ -946,42 +951,42 @@ msgstr ""
"For at tilfredsstille afhængigheder vil de følgende pakker blive installeret "
"(%d Mb)"
-#: po/placeholder.h:224 po/placeholder.h:322
+#: po/placeholder.h:225 po/placeholder.h:326
msgid "copying hdlists file..."
msgstr "kopierer hdlists-fil..."
-#: po/placeholder.h:225 po/placeholder.h:324 urpm.pm:337 urpm.pm:349
+#: po/placeholder.h:226 po/placeholder.h:328 urpm.pm:337 urpm.pm:349
#, c-format
msgid "syntax error in config file at line %s"
msgstr "syntaksfejl i config fil ved linje %s"
-#: po/placeholder.h:226 po/placeholder.h:399 urpmi:488
+#: po/placeholder.h:227 po/placeholder.h:403 urpmi:489
msgid "Try installation without checking dependencies? (y/N) "
msgstr "Prøv installation uden at tjekke afhængigheder? (j/N) "
-#: po/placeholder.h:227 po/placeholder.h:405 po/placeholder.h:571
+#: po/placeholder.h:228 po/placeholder.h:409 po/placeholder.h:575
msgid " --fuzzy - impose fuzzy search (same as -y).\n"
msgstr " --fuzzy - gennemfør søgning efter fuzzy (samme som -y).\n"
-#: po/placeholder.h:228 po/placeholder.h:328 urpm.pm:1404
+#: po/placeholder.h:229 po/placeholder.h:332 urpm.pm:1404
msgid "error registering local packages"
msgstr "fejl ved registrering af lokale pakker"
-#: po/placeholder.h:229 po/placeholder.h:329
+#: po/placeholder.h:230 po/placeholder.h:333
#, c-format
msgid "taking removable device as \"%s\""
msgstr "tager udskifteligt medium som \"%s\""
-#: po/placeholder.h:230 po/placeholder.h:411
+#: po/placeholder.h:231 po/placeholder.h:415
msgid " -p - allow search in provides to find package.\n"
msgstr " -p - tillad søgning i 'provides' for at finde pakke.\n"
-#: po/placeholder.h:232 po/placeholder.h:333
+#: po/placeholder.h:233 po/placeholder.h:337
#, c-format
msgid "copying description file of \"%s\"..."
msgstr "kopierer beskrivelsesfil for \"%s\"..."
-#: po/placeholder.h:233 po/placeholder.h:574
+#: po/placeholder.h:234 po/placeholder.h:578
#, fuzzy
msgid ""
" -u - remove package if a more recent version is already "
@@ -990,127 +995,139 @@ msgstr ""
" -u - fjern pakke hvis en bedre version allerede er "
"installeret.\n"
-#: po/placeholder.h:234
+#: po/placeholder.h:235
#, c-format
msgid "unable to build hdlist: %s"
msgstr "kunne ikke bygge hdlist: %s"
-#: po/placeholder.h:235 po/placeholder.h:334 urpm.pm:1664 urpm.pm:1667
+#: po/placeholder.h:236 po/placeholder.h:338 urpm.pm:1664 urpm.pm:1667
#: urpm.pm:1685
#, c-format
msgid "medium \"%s\" is not selected"
msgstr "media \"%s\" er ikke valgt"
-#: po/placeholder.h:236 po/placeholder.h:336 urpm.pm:418
+#: po/placeholder.h:237 po/placeholder.h:340 urpm.pm:418
#, c-format
msgid "trying to bypass existing medium \"%s\", avoiding"
msgstr "prøver at forbigå eksisterende media \"%s\", undgår"
-#: po/placeholder.h:237 po/placeholder.h:419
+#: po/placeholder.h:238 po/placeholder.h:423
msgid " -q - quiet mode.\n"
msgstr " -q - stille udgave.\n"
-#: po/placeholder.h:238 po/placeholder.h:337
+#: po/placeholder.h:239 po/placeholder.h:341
#, fuzzy, c-format
msgid "unable to read rpms files from [%s]: %s"
msgstr "kunne ikke læse rpm-fil [%s] fra media \"%s\""
-#: po/placeholder.h:239
+#: po/placeholder.h:240
msgid "Copyright (C) 1999,2000,2001 MandrakeSoft."
msgstr "Copyright (C) 1999,2000,2001 MandrakeSoft."
-#: po/placeholder.h:241 po/placeholder.h:428 po/placeholder.h:557
+#: po/placeholder.h:242 po/placeholder.h:432 po/placeholder.h:561
msgid ""
" --force - force invocation even if some packages do not exist.\n"
msgstr ""
" --force - gennemfør kald selv om nogen pakker ikke eksisterer.\n"
-#: po/placeholder.h:243 po/placeholder.h:359 urpme:61
+#: po/placeholder.h:244 po/placeholder.h:363 urpme:61
#, c-format
msgid "Using \"%s\" as a substring, I found"
msgstr "Bruger \"%s\" som en delstreng, jeg fandt"
-#: po/placeholder.h:244 po/placeholder.h:433 urpmi:454
+#: po/placeholder.h:245 po/placeholder.h:437 urpmi:454
#, c-format
msgid "installing %s\n"
msgstr "installerer %s\n"
-#: po/placeholder.h:245 po/placeholder.h:364 urpme:31
+#: po/placeholder.h:246 po/placeholder.h:368 urpme:31
msgid "Remove them all?"
msgstr "Skal de alle fjernes?"
-#: po/placeholder.h:246 po/placeholder.h:434 urpmi:438
+#: po/placeholder.h:247 po/placeholder.h:438 urpmi:438
#, c-format
msgid "Please insert the medium named \"%s\" on device [%s]"
msgstr "Vær venlig at indsætte mediet med navnet %s i enhed [%s]"
-#: po/placeholder.h:247 po/placeholder.h:343 urpm.pm:1494
+#: po/placeholder.h:248 po/placeholder.h:347 urpm.pm:1494
#, c-format
msgid "The following packages contain %s: %s"
msgstr "Følgende pakker indeholder %s: %s"
-#: po/placeholder.h:248 po/placeholder.h:344
+#: po/placeholder.h:249 po/placeholder.h:348
#, c-format
msgid "examining hdlist file [%s]"
msgstr "undersøger hdlist-fil [%s]"
-#: po/placeholder.h:249 po/placeholder.h:346 urpm.pm:1383
+#: po/placeholder.h:250 po/placeholder.h:350 urpm.pm:1383
msgid "no entries relocated in depslist"
msgstr "ingen indgange omflyttede i depsliste"
-#: po/placeholder.h:250 po/placeholder.h:490
+#: po/placeholder.h:251 po/placeholder.h:494
msgid " --update - create an update medium.\n"
msgstr " --update - opret et opdateringsmedium.\n"
-#: po/placeholder.h:252 po/placeholder.h:531
+#: po/placeholder.h:253 po/placeholder.h:535
msgid ""
" -d - force complete computation of depslist.ordered file.\n"
msgstr ""
" -d - gennemfør fuldstændig beregning af depslist.ordered-fil.\n"
-#: po/placeholder.h:253 po/placeholder.h:441 po/placeholder.h:573 urpmi:427
+#: po/placeholder.h:254 po/placeholder.h:445 po/placeholder.h:577 urpmi:427
#: urpmq:216
msgid "unable to get source packages, aborting"
msgstr "kan ikke hente kilde-pakker, afslutter med fejl"
-#: po/placeholder.h:254 po/placeholder.h:347 urpm.pm:1754
+#: po/placeholder.h:255 po/placeholder.h:351 urpm.pm:1754
msgid "...retrieving done"
msgstr "...hentning færdig"
-#: po/placeholder.h:255
+#: po/placeholder.h:256
#, c-format
msgid "selecting %s using obsoletes"
msgstr "vælger %s ved at bruge obsolete"
-#: po/placeholder.h:256 po/placeholder.h:348 urpm.pm:286
+#: po/placeholder.h:257 po/placeholder.h:352 urpm.pm:286
#, c-format
msgid "curl failed: exited with %d or signal %d\n"
msgstr "'curl' mislykkedes: afsluttede med %d eller signal %d\n"
-#: po/placeholder.h:257
+#. [^:]+(:\d+)?)/*$, or
+#: po/placeholder.h:258 po/placeholder.h:447 po/placeholder.h:495
+#: po/placeholder.h:537 urpmi:116 urpmi:123 urpmi.addmedia:65
+#: urpmi.addmedia:72 urpmi.update:45 urpmi.update:52
+msgid "bad proxy declaration on command line\n"
+msgstr ""
+
+#: po/placeholder.h:259
#, c-format
msgid "selecting %s by selection on files"
msgstr "vælger %s ved valg af filer"
-#: po/placeholder.h:258 po/placeholder.h:352
+#: po/placeholder.h:260 po/placeholder.h:356
#, c-format
msgid "copying source list of \"%s\"..."
msgstr "kopierer kildeliste for \"%s\"..."
-#: po/placeholder.h:259 po/placeholder.h:446 urpmi:199
+#: po/placeholder.h:261 po/placeholder.h:450 urpmi:199
msgid "Only superuser is allowed to install packages"
msgstr "Kun superbrugeren har lov til at installere pakker"
-#: po/placeholder.h:260 po/placeholder.h:354 urpm.pm:220
+#: po/placeholder.h:262 po/placeholder.h:358 urpm.pm:220
msgid "wget is missing\n"
msgstr "'wget' mangler\n"
-#: po/placeholder.h:308 urpm.pm:1831
-#, fuzzy, c-format
-msgid "unable to remove package %s"
-msgstr "Kun superbrugeren har lov til at installere pakker"
+#: po/placeholder.h:264 urpm.pm:1849
+#, c-format
+msgid "%s conflicts with %s"
+msgstr ""
-#: po/placeholder.h:372
+#: po/placeholder.h:310 urpm.pm:1848
+#, c-format
+msgid "%s is needed by %s"
+msgstr ""
+
+#: po/placeholder.h:376
#, c-format
msgid ""
"urpmi version %s\n"
@@ -1124,14 +1141,14 @@ msgstr ""
"Dette er frit programmel og kan redistribueres under vilkårene til GNU GPL.\n"
"brug:\n"
-#: po/placeholder.h:379 po/placeholder.h:470 po/placeholder.h:527
-#: po/placeholder.h:548
+#: po/placeholder.h:383 po/placeholder.h:474 po/placeholder.h:531
+#: po/placeholder.h:552
msgid ""
" --proxy-user - specify user and password to use for proxy\n"
" authentication (format is <user:password>).\n"
msgstr ""
-#: po/placeholder.h:384 urpmi:459
+#: po/placeholder.h:388 urpmi:459
msgid ""
"Installation failed, some files are missing.\n"
"You may want to update your urpmi database"
@@ -1139,7 +1156,7 @@ msgstr ""
"Installationen mislykkedes, nogle filer mangler.\n"
"Du ønsker måske at opdatere din urpmi-database"
-#: po/placeholder.h:388 urpmi:373
+#: po/placeholder.h:392 urpmi:373
#, fuzzy, c-format
msgid ""
"The following packages have to be removed for others to be upgraded:\n"
@@ -1149,14 +1166,14 @@ msgstr ""
"en pakke skal fjernes før den kan opgraderes, dette er ikke understøttet "
"endnu.\n"
-#: po/placeholder.h:401 po/placeholder.h:482 po/placeholder.h:521
-#: po/placeholder.h:566
+#: po/placeholder.h:405 po/placeholder.h:486 po/placeholder.h:525
+#: po/placeholder.h:570
msgid ""
" --proxy - use specified HTTP proxy, the port number is assumed\n"
" to be 1080 by default (format is <proxyhost[:port]>).\n"
msgstr ""
-#: po/placeholder.h:406
+#: po/placeholder.h:410
msgid ""
" --best-output - choose best interface according to the environment:\n"
" X or text mode.\n"
@@ -1164,7 +1181,7 @@ msgstr ""
" --best-output - vælg bedste grænsesnit svarende til miljøet:\n"
" X- eller tekst-udgave.\n"
-#: po/placeholder.h:413 urpmi:406
+#: po/placeholder.h:417 urpmi:406
#, c-format
msgid ""
"You need to be root to install the following dependencies:\n"
@@ -1173,7 +1190,7 @@ msgstr ""
"Du skal være root for at installere de følgende afhængigheder:\n"
"%s\n"
-#: po/placeholder.h:435 urpmi:366
+#: po/placeholder.h:439 urpmi:366
#, c-format
msgid ""
"Some package requested cannot be installed:\n"
@@ -1181,14 +1198,7 @@ msgid ""
"do you agree ?"
msgstr ""
-#. [^:]+(:\d+)?)/*$, or
-#: po/placeholder.h:443 po/placeholder.h:491 po/placeholder.h:533 urpmi:116
-#: urpmi:123 urpmi.addmedia:65 urpmi.addmedia:72 urpmi.update:45
-#: urpmi.update:52
-msgid "bad proxy declaration on command line\n"
-msgstr ""
-
-#: po/placeholder.h:448
+#: po/placeholder.h:452
msgid ""
"usage: urpmi.addmedia [options] <name> <url> [with <relative_path>]\n"
"where <url> is one of\n"
@@ -1210,7 +1220,7 @@ msgstr ""
" removable://<sti>\n"
"og [valgmuligheder] er følgende\n"
-#: po/placeholder.h:459 po/placeholder.h:493 po/placeholder.h:511
+#: po/placeholder.h:463 po/placeholder.h:497 po/placeholder.h:515
#: urpmi.addmedia:79
#, c-format
msgid ""
@@ -1220,7 +1230,7 @@ msgstr ""
"\n"
"ukendte valg '%s'\n"
-#: po/placeholder.h:466 urpmi.addmedia:104
+#: po/placeholder.h:470 urpmi.addmedia:104
#, c-format
msgid ""
"%s\n"
@@ -1229,7 +1239,7 @@ msgstr ""
"%s\n"
"'with' mangler for ftp-medie\n"
-#: po/placeholder.h:475 urpmi.addmedia:90
+#: po/placeholder.h:479 urpmi.addmedia:90
#, c-format
msgid ""
"%s\n"
@@ -1238,7 +1248,7 @@ msgstr ""
"%s\n"
"ingen grund til at angive <relativ sti for hdlist> med --distrib"
-#: po/placeholder.h:486 urpmi.addmedia:102
+#: po/placeholder.h:490 urpmi.addmedia:102
#, c-format
msgid ""
"%s\n"
@@ -1247,7 +1257,7 @@ msgstr ""
"%s\n"
"<relativ sti for hdlist> mangler\n"
-#: po/placeholder.h:497 urpmi.removemedia:49
+#: po/placeholder.h:501 urpmi.removemedia:49
#, c-format
msgid ""
"the entry to remove is missing\n"
@@ -1256,7 +1266,7 @@ msgstr ""
"mangler det element der skal fjernes\n"
"(én af %s)\n"
-#: po/placeholder.h:503
+#: po/placeholder.h:507
msgid ""
"usage: urpmi.removemedia [-a] <name> ...\n"
"where <name> is a medium name to remove.\n"
@@ -1264,7 +1274,7 @@ msgstr ""
"brug: urpmi.removemedia [-a] <navn> ...\n"
"hvor <navn> er et medie-navn der skal fjernes.\n"
-#: po/placeholder.h:507
+#: po/placeholder.h:511
msgid ""
"usage: urpmi.update [options] <name> ...\n"
"where <name> is a medium name to update.\n"
@@ -1272,7 +1282,7 @@ msgstr ""
"brug: urpmi.update [valgmuligheder] <navn> ...\n"
"hvor <navn> er et medie-navn der skal opdateres.\n"
-#: po/placeholder.h:516 urpmi.update:80
+#: po/placeholder.h:520 urpmi.update:80
#, c-format
msgid ""
"the entry to update is missing\n"
@@ -1281,7 +1291,7 @@ msgstr ""
"mangler det element der skal opdateres\n"
"(én af %s)\n"
-#: po/placeholder.h:539
+#: po/placeholder.h:543
#, c-format
msgid ""
"urpmq version %s\n"
@@ -1295,7 +1305,7 @@ msgstr ""
"Dette er frit programmel og kan redistribueres under vilkårene til GNU GPL.\n"
"brug:\n"
-#: po/placeholder.h:562
+#: po/placeholder.h:566
msgid ""
" --headers - extract headers for package listed from urpmi db to\n"
" stdout (root only).\n"
n2554' href='#n2554'>2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176
package urpm;

# $Id$

use strict;
use MDK::Common;
use urpm::msg;
use urpm::download;
use urpm::util;
use urpm::sys;
use urpm::cfg;

our $VERSION = '4.5';
our @ISA = qw(URPM);

use URPM;
use URPM::Resolve;
use POSIX;

#- create a new urpm object.
sub new {
    my ($class) = @_;
    my $self;
    $self = bless {
	# from URPM
	depslist   => [],
	provides   => {},

	config     => "/etc/urpmi/urpmi.cfg",
	skiplist   => "/etc/urpmi/skip.list",
	instlist   => "/etc/urpmi/inst.list",
	statedir   => "/var/lib/urpmi",
	cachedir   => "/var/cache/urpmi",
	media      => undef,
	options    => {},
	proxy      => get_proxy(),

	#- sync: first argument is options hashref, others are urls to fetch.
	sync       => sub { $self->sync_webfetch(@_) },
	fatal      => sub { printf STDERR "%s\n", $_[1]; exit($_[0]) },
	error      => sub { printf STDERR "%s\n", $_[0] },
	log        => sub { printf STDERR "%s\n", $_[0] },
	ui_msg     => sub { $self->{log}($_[0]); $self->{ui} and $self->{ui}{msg}->($_[1]) },
    }, $class;
    $self->set_nofatal(1);
    $self;
}

#- syncing algorithms.
#- currently wget and curl methods are implemented; trying to find the best
#- (and one which will work :-)
sub sync_webfetch {
    my $urpm = shift @_;
    my $options = shift @_;
    my %files;
    #- currently ftp and http protocols are managed by curl or wget,
    #- ssh and rsync protocols are managed by rsync *AND* ssh.
    foreach (@_) {
	/^([^:_]*)[^:]*:/ or die N("unknown protocol defined for %s", $_);
	push @{$files{$1}}, $_;
    }
    if ($files{removable} || $files{file}) {
	sync_file($options, @{$files{removable} || []}, @{$files{file} || []});
	delete @files{qw(removable file)};
    }
    if ($files{ftp} || $files{http} || $files{https}) {
	my @webfetch = qw(curl wget);
	my @available_webfetch = grep { -x "/usr/bin/$_" } @webfetch;
	my $preferred;
	#- use user default downloader if provided and available
	my $option_downloader = $urpm->{options}{downloader}; #- cmd-line switch
	if (!$option_downloader && $options->{media}) { #- per-media config
	    (my $m) = grep { $_->{name} eq $options->{media} } @{$urpm->{media}};
	    ref $m && $m->{downloader} and $option_downloader = $m->{downloader};
	}
	#- global config
	!$option_downloader && exists $urpm->{global_config}{''}{downloader}
	    and $option_downloader = $urpm->{global_config}{''}{downloader};
	if ($option_downloader) {
	    $preferred = find { $_ eq $option_downloader } @available_webfetch;
	}
	#- else first downloader of @webfetch is the default one
	$preferred ||= $available_webfetch[0];
	if ($preferred eq 'curl') {
	    sync_curl($options, @{$files{ftp} || []}, @{$files{http} || []}, @{$files{https} || []});
	} elsif ($preferred eq 'wget') {
	    sync_wget($options, @{$files{ftp} || []}, @{$files{http} || []}, @{$files{https} || []});
	} else {
	    die N("no webfetch found, supported webfetch are: %s\n", join(", ", @webfetch));
	}
	delete @files{qw(ftp http https)};
    }
    if ($files{rsync}) {
	sync_rsync($options, @{$files{rsync} || []});
	delete $files{rsync};
    }
    if ($files{ssh}) {
	my @ssh_files;
	foreach (@{$files{ssh} || []}) {
	    m|^ssh://([^/]*)(.*)| and push @ssh_files, "$1:$2";
	}
	sync_ssh($options, @ssh_files);
	delete $files{ssh};
    }
    %files and die N("unable to handle protocol: %s", join ', ', keys %files);
}

#- Loads /etc/urpmi/urpmi.cfg and performs basic checks.
#- Does not handle old format: <name> <url> [with <path_hdlist>]
#- options :
#-    - nocheck_access : don't check presence of hdlist and other files
sub read_config {
    my ($urpm, %options) = @_;
    return if $urpm->{media}; #- media already loaded
    $urpm->{media} = [];
    my $config = urpm::cfg::load_config($urpm->{config})
	or $urpm->{fatal}(6, $urpm::cfg::err);

    #- global options
    if ($config->{''}) {
	for my $opt (qw(
	    allow-force
	    allow-nodeps
	    auto
	    compress
	    downloader
	    excludedocs
	    excludepath
	    fuzzy
	    keep
	    key-_ids
	    limit-rate
	    post-clean
	    pre-clean
	    priority-upgrade
	    resume
	    split-length
	    split-level
	    verify-rpm
	)) {
	    if (defined $config->{''}{$opt} && !exists $urpm->{options}{$opt}) {
		$urpm->{options}{$opt} = $config->{''}{$opt};
	    }
	}
    }
    #- per-media options
    for my $m (grep { $_ ne '' } keys %$config) {
	my $medium = { name => $m, clear_url => $config->{$m}{url} };
	for my $opt (qw(
	    downloader
	    hdlist
	    ignore
	    key-ids
	    list
	    md5sum
	    removable
	    synthesis
	    update
	    verify-rpm
	    virtual
	    with_hdlist
	)) {
	    defined $config->{$m}{$opt} and $medium->{$opt} = $config->{$m}{$opt};
	}
	$urpm->probe_medium($medium, %options) and push @{$urpm->{media}}, $medium;
    }

    #- keep in mind when an hdlist/list file is already used
    my %filelists;
    foreach (@{$urpm->{media}}) {
	for my $filetype (qw(hdlist list)) {
	    if ($_->{$filetype}) {
		exists($filelists{$filetype}{$_->{$filetype}})
		    and $_->{ignore} = 1,
		    $urpm->{error}(
			($filetype eq 'hdlist'
			    ? N("medium \"%s\" trying to use an already used hdlist, medium ignored")
			    : N("medium \"%s\" trying to use an already used list, medium ignored"),
			$_->{name})
		    );
		$filelists{$filetype}{$_->{$filetype}} = undef;
	    }
	}
    }

    #- check the presence of hdlist and list files if necessary.
    unless ($options{nocheck_access}) {
	foreach (@{$urpm->{media}}) {
	    $_->{ignore} and next;
	    -r "$urpm->{statedir}/$_->{hdlist}" || -r "$urpm->{statedir}/synthesis.$_->{hdlist}" && $_->{synthesis}
		or $_->{ignore} = 1,
		$urpm->{error}(N("unable to access hdlist file of \"%s\", medium ignored", $_->{name}));
	    $_->{list} && -r "$urpm->{statedir}/$_->{list}" || defined $_->{url}
		or $_->{ignore} = 1,
		$urpm->{error}(N("unable to access list file of \"%s\", medium ignored", $_->{name}));
	}
    }

    #- read MD5 sums (usually not in urpmi.cfg but in a separate file)
    open my $md5sum, "$urpm->{statedir}/MD5SUM";
    while (<$md5sum>) {
	my ($md5sum, $file) = /(\S*)\s+(.*)/;
	foreach (@{$urpm->{media}}) {
	    ($_->{synthesis} ? "synthesis." : "").$_->{hdlist} eq $file
		and $_->{md5sum} = $md5sum, last;
	}
    }
    close $md5sum;

    #- remember global options for write_config
    $urpm->{global_config} = $config->{''};
}

#- probe medium to be used, take old medium into account too.
sub probe_medium {
    my ($urpm, $medium, %options) = @_;
    local $_;

    my $existing_medium;
    foreach (@{$urpm->{media}}) {
	$_->{name} eq $medium->{name} and $existing_medium = $_, last;
    }
    $existing_medium and $urpm->{error}(N("trying to bypass existing medium \"%s\", avoiding", $medium->{name})), return;
    
    $medium->{url} ||= $medium->{clear_url};

    if ($medium->{virtual}) {
	#- a virtual medium need to have an url available without using a list file.
	if ($medium->{hdlist} || $medium->{list}) {
	    $medium->{ignore} = 1;
	    $urpm->{error}(N("virtual medium \"%s\" should not have defined hdlist or list file, medium ignored",
			     $medium->{name}));
	}
	unless ($medium->{url}) {
	    $medium->{ignore} = 1;
	    $urpm->{error}(N("virtual medium \"%s\" should have a clear url, medium ignored",
			     $medium->{name}));
	}
    } else {
	unless ($medium->{ignore} || $medium->{hdlist}) {
	    $medium->{hdlist} = "hdlist.$medium->{name}.cz";
	    -e "$urpm->{statedir}/$medium->{hdlist}" or $medium->{hdlist} = "hdlist.$medium->{name}.cz2";
	    -e "$urpm->{statedir}/$medium->{hdlist}" or
	      $medium->{ignore} = 1,
		$urpm->{error}(N("unable to find hdlist file for \"%s\", medium ignored", $medium->{name}));
	}
	unless ($medium->{ignore} || $medium->{list}) {
	    unless (defined $medium->{url}) {
		$medium->{list} = "list.$medium->{name}";
		unless (-e "$urpm->{statedir}/$medium->{list}") {
		    $medium->{ignore} = 1,
		      $urpm->{error}(N("unable to find list file for \"%s\", medium ignored", $medium->{name}));
		}
	    }
	}

	#- there is a little more to do at this point as url is not known, inspect directly list file for it.
	unless ($medium->{url}) {
	    my %probe;
	    if (-r "$urpm->{statedir}/$medium->{list}") {
		local *L;
		open L, "$urpm->{statedir}/$medium->{list}";
		while (<L>) {
		    #- /./ is end of url marker in list file (typically generated by a
		    #- find . -name "*.rpm" > list
		    #- for exportable list file.
		    m|^(.*)/\./| and $probe{$1} = undef;
		    m|^(.*)/[^/]*$| and $probe{$1} = undef;
		}
		close L;
	    }
	    foreach (sort { length($a) <=> length($b) } keys %probe) {
		if ($medium->{url}) {
		    $medium->{url} eq substr($_, 0, length($medium->{url})) or
		      $medium->{ignore} || $urpm->{error}(N("incoherent list file for \"%s\", medium ignored", $medium->{name})),
			$medium->{ignore} = 1, last;
		} else {
		    $medium->{url} = $_;
		}
	    }
	    unless ($options{nocheck_access}) {
		$medium->{url} or
		  $medium->{ignore} || $urpm->{error}(N("unable to inspect list file for \"%s\", medium ignored",
							$medium->{name})),
							  $medium->{ignore} = 1;
	    }
	}
    }

    #- probe removable device.
    $urpm->probe_removable_device($medium);

    #- clear URLs for trailing /es.
    $medium->{url} and $medium->{url} =~ s|(.*?)/*$|$1|;
    $medium->{clear_url} and $medium->{clear_url} =~ s|(.*?)/*$|$1|;

    $medium;
}

#- probe device associated with a removable device.
sub probe_removable_device {
    my ($urpm, $medium) = @_;

    if ($medium->{url} && $medium->{url} =~ /^removable_?([^_:]*)(?:_[^:]*)?:/) {
	$medium->{removable} ||= $1 && "/dev/$1";
    } else {
	delete $medium->{removable};
    }

    #- try to find device to open/close for removable medium.
    if (exists($medium->{removable})) {
	if (my ($dir) = $medium->{url} =~ m!(?:file|removable)[^:]*:/(.*)!) {
	    my %infos;
	    my @mntpoints = urpm::sys::find_mntpoints($dir, \%infos);
	    if (@mntpoints > 1) { #- return value is suitable for an hash.
		$urpm->{log}(N("too many mount points for removable medium \"%s\"", $medium->{name}));
		$urpm->{log}(N("taking removable device as \"%s\"", join ',', map { $infos{$_}{device} } @mntpoints));
	    }
	    if (@mntpoints) {
		if ($medium->{removable} && $medium->{removable} ne $infos{$mntpoints[-1]}{device}) {
		    $urpm->{log}(N("using different removable device [%s] for \"%s\"",
				   $infos{$mntpoints[-1]}{device}, $medium->{name}));
		}
		$medium->{removable} = $infos{$mntpoints[-1]}{device};
	    } else {
		$urpm->{error}(N("unable to retrieve pathname for removable medium \"%s\"", $medium->{name}));
	    }
	} else {
	    $urpm->{error}(N("unable to retrieve pathname for removable medium \"%s\"", $medium->{name}));
	}
    }
}

#- Writes the urpmi.cfg file.
sub write_config {
    my ($urpm) = @_;

    #- avoid trashing exiting configuration if it wasn't loaded
    $urpm->{media} or return;

    my $config = {
	#- global config options found in the config file, without the ones
	#- set from the command-line
	'' => $urpm->{global_config},
    };
    foreach my $medium (@{$urpm->{media}}) {
	my $medium_name = $medium->{name};
	$config->{$medium_name}{url} = $medium->{clear_url};
	foreach (qw(hdlist with_hdlist list removable key-ids priority-upgrade update ignore synthesis virtual)) {
	    defined $medium->{$_} and $config->{$medium_name}{$_} = $medium->{$_};
	}
    }
    urpm::cfg::dump_config($urpm->{config}, $config)
	or $urpm->{fatal}(6, N("unable to write config file [%s]", $urpm->{config}));

    #- write MD5SUM file
    open my $md5sum, '>', "$urpm->{statedir}/MD5SUM"
	or $urpm->{error}(N("unable to write file [%s]", "$urpm->{statedir}/MD5SUM")), return 0;
    foreach my $medium (@{$urpm->{media}}) {
	$medium->{md5sum}
	    and print $md5sum "$medium->{md5sum}  ".($medium->{synthesis} && "synthesis.").$medium->{hdlist}."\n";
    }
    close $md5sum;

    $urpm->{log}(N("write config file [%s]", $urpm->{config}));

    #- everything should be synced now.
    delete $urpm->{modified};
}

#- read urpmi.cfg file as well as synthesis file needed.
sub configure {
    my ($urpm, %options) = @_;

    $urpm->clean;

    $options{parallel} && $options{usedistrib} and die N("Can't use parallel mode with use-distrib mode");

    if ($options{parallel}) {
	my ($parallel_options, $parallel_handler);
	#- handle parallel configuration, examine all module available that
	#- will handle the parallel mode (configuration is /etc/urpmi/parallel.cfg).
	local ($_, *PARALLEL);
	open PARALLEL, "/etc/urpmi/parallel.cfg";
	while (<PARALLEL>) {
	    chomp; s/#.*$//; s/^\s*//; s/\s*$//;
	    /\s*([^:]*):(.*)/ or $urpm->{error}(N("unable to parse \"%s\" in file [%s]", $_, "/etc/urpmi/parallel.cfg")), next;
	    $1 eq $options{parallel} and $parallel_options = ($parallel_options && "\n") . $2;
	}
	close PARALLEL;
	#- if a configuration options has been found, use it else fatal error.
	if ($parallel_options) {
	    foreach my $dir (grep { -d $_ } map { "$_/urpm" } @INC) {
		local *DIR;
		opendir DIR, $dir;
		while ($_ = readdir DIR) {
		    -f "$dir/$_" or next;
		    $urpm->{log}->(N("examining parallel handler in file [%s]", "$dir/$_"));
		    eval { require "$dir/$_"; $parallel_handler = $urpm->handle_parallel_options($parallel_options) };
		    $parallel_handler and last;
		}
		closedir DIR;
		$parallel_handler and last;
	    }
	}
	if ($parallel_handler) {
	    if ($parallel_handler->{nodes}) {
		$urpm->{log}->(N("found parallel handler for nodes: %s", join(', ', keys %{$parallel_handler->{nodes}})));
	    }
	    if (!$options{media} && $parallel_handler->{media}) {
		$options{media} = $parallel_handler->{media};
		$urpm->{log}->(N("using associated media for parallel mode: %s", $options{media}));
	    }
	    $urpm->{parallel_handler} = $parallel_handler;
	} else {
	    $urpm->{fatal}(1, N("unable to use parallel option \"%s\"", $options{parallel}));
	}
    } else {
	#- parallel is exclusive against root options.
	$urpm->{root} = $options{root};
    }

    if ($options{synthesis}) {
	if ($options{synthesis} ne 'none') {
	    #- synthesis take precedence over media, update options.
	    $options{media} || $options{excludemedia} || $options{sortmedia} || $options{update} || $options{parallel} and
	      $urpm->{fatal}(1, N("--synthesis cannot be used with --media, --excludemedia, --sortmedia, --update or --parallel"));
	    $urpm->parse_synthesis($options{synthesis});
	    #- synthesis disables the split of transaction (too risky and not useful).
	    $urpm->{options}{'split-length'} = 0;
	}
    } else {
        if ($options{usedistrib}) {
            $urpm->{media} = [];
            $urpm->add_distrib_media("Virtual", $options{usedistrib}, %options, 'virtual' => 1);
        } else {
	    $urpm->read_config(%options);
        }
	if ($options{media}) {
	    delete $_->{modified} foreach @{$urpm->{media} || []};
	    $urpm->select_media(split ',', $options{media});
	    foreach (grep { !$_->{modified} } @{$urpm->{media} || []}) {
		#- this is only a local ignore that will not be saved.
		$_->{ignore} = 1;
	    }
	}
	if ($options{excludemedia}) {
	    delete $_->{modified} foreach @{$urpm->{media} || []};
	    $urpm->select_media(split ',', $options{excludemedia});
	    foreach (grep { $_->{modified} } @{$urpm->{media} || []}) {
		#- this is only a local ignore that will not be saved.
		$_->{ignore} = 1;
	    }
	}
	if ($options{sortmedia}) {
	    delete $_->{modified} foreach @{$urpm->{media} || []};
	    my @oldmedia = @{$urpm->{media} || []};
	    my @newmedia;
	    foreach (split ',', $options{sortmedia}) {
		$urpm->select_media($_);
		push @newmedia, grep { $_->{modified} } @oldmedia;
		@oldmedia = grep { !$_->{modified} } @oldmedia;
	    }
	    #- anything not selected should be added as is after the selected one.
	    $urpm->{media} = [ @newmedia, @oldmedia ];
	    #- clean remaining modified flag.
	    delete $_->{modified} foreach @{$urpm->{media} || []};
	}
	unless ($options{nodepslist}) {
	    my $second_pass;
	    do {
		foreach (grep { !$_->{ignore} && (!$options{update} || $_->{update}) } @{$urpm->{media} || []}) {
		    delete @$_{qw(start end)};
		    if ($_->{virtual}) {
			my $path = $_->{url} =~ m|^file:/*(/[^/].*[^/])/*$| && $1;
			if ($path) {
			    if ($_->{synthesis}) {
				$urpm->{log}(N("examining synthesis file [%s]", "$path/$_->{with_hdlist}"));
				($_->{start}, $_->{end}) = $urpm->parse_synthesis(
				    "$path/$_->{with_hdlist}", callback => $options{callback});
			    } else {
				$urpm->{log}(N("examining hdlist file [%s]", "$path/$_->{with_hdlist}"));
				($_->{start}, $_->{end}) = $urpm->parse_hdlist(
				    "$path/$_->{with_hdlist}",
				    packing => 1,
				    callback => $options{callback},
				);
				#- we need a second pass now.
				defined $second_pass or $second_pass = 1;
			    }
			} else {
			    $urpm->{error}(N("virtual medium \"%s\" is not local, medium ignored", $_->{name}));
			    $_->{ignore} = 1;
			}
		    } else {
			if ($options{hdlist} && -e "$urpm->{statedir}/$_->{hdlist}" && -s _ > 32) {
			    $urpm->{log}(N("examining hdlist file [%s]", "$urpm->{statedir}/$_->{hdlist}"));
			    ($_->{start}, $_->{end}) = $urpm->parse_hdlist(
				"$urpm->{statedir}/$_->{hdlist}",
				packing => 1,
				callback => $options{callback},
			    );
			} else {
			    $urpm->{log}(N("examining synthesis file [%s]", "$urpm->{statedir}/synthesis.$_->{hdlist}"));
			    ($_->{start}, $_->{end}) = $urpm->parse_synthesis(
				"$urpm->{statedir}/synthesis.$_->{hdlist}",
				callback => $options{callback},
			    );
			    unless (defined $_->{start} && defined $_->{end}) {
				$urpm->{log}(N("examining hdlist file [%s]", "$urpm->{statedir}/$_->{hdlist}"));
				($_->{start}, $_->{end}) = $urpm->parse_hdlist("$urpm->{statedir}/$_->{hdlist}",
				    packing => 1,
				    callback => $options{callback},
				);
			    }
			}
		    }
		    unless ($_->{ignore}) {
			unless (defined $_->{start} && defined $_->{end}) {
			    $urpm->{error}(N("problem reading hdlist or synthesis file of medium \"%s\"", $_->{name}));
			    $_->{ignore} = 1;
			}
		    }
		}
	    } while ($second_pass && do { require URPM::Build;
					  $urpm->{log}(N("performing second pass to compute dependencies\n"));
					  $urpm->unresolved_provides_clean;
					  $second_pass-- });
	}
    }
    #- determine package to withdraw (from skip.list file) only if something should be withdrawn.
    unless ($options{noskipping}) {
	my %uniq;
	$urpm->compute_flags(
	    get_packages_list($urpm->{skiplist}, $options{skip}),
	    skip => 1,
	    callback => sub {
		my ($urpm, $pkg) = @_;
		$pkg->is_arch_compat && ! exists $uniq{$pkg->fullname} or return;
		$uniq{$pkg->fullname} = undef;
		$urpm->{log}(N("skipping package %s", scalar($pkg->fullname)));
	    },
	);
    }
    unless ($options{noinstalling}) {
	my %uniq;
	$urpm->compute_flags(
	    get_packages_list($urpm->{instlist}),
	    disable_obsolete => 1,
	    callback => sub {
		my ($urpm, $pkg) = @_;
		$pkg->is_arch_compat && ! exists $uniq{$pkg->fullname} or return;
		$uniq{$pkg->fullname} = undef;
		$urpm->{log}(N("would install instead of upgrade package %s", scalar($pkg->fullname)));
	    },
	);
    }
    if ($options{bug}) {
	#- and a dump of rpmdb itself as synthesis file.
	my $db = URPM::DB::open($options{root});
	my $sig_handler = sub { undef $db; exit 3 };
	local $SIG{INT} = $sig_handler;
	local $SIG{QUIT} = $sig_handler;
	local *RPMDB;

	$db or $urpm->{fatal}(9, N("unable to open rpmdb"));
	open RPMDB, "| " . ($ENV{LD_LOADER} || '') . " gzip -9 >'$options{bug}/rpmdb.cz'";
	$db->traverse(sub {
			  my ($p) = @_;
			  #- this is not right but may be enough.
			  my $files = join '@', grep { exists($urpm->{provides}{$_}) } $p->files;
			  $p->pack_header;
			  $p->build_info(fileno *RPMDB, $files);
		      });
	close RPMDB;
    }
}

#- add a new medium, sync the config file accordingly.
sub add_medium {
    my ($urpm, $name, $url, $with_hdlist, %options) = @_;

    #- make sure configuration has been read.
    # (Olivier Thauvin) Yes but Why ??? Is this a workaround ?
    $urpm->{media} or $urpm->read_config;

    #- if a medium with that name has already been found
    #- we have to exit now
    my ($medium);
    if (defined $options{index_name}) {
	my $i = $options{index_name};
	do {
	    ++$i;
	    undef $medium;
	    foreach (@{$urpm->{media}}) {
		$_->{name} eq $name.$i and $medium = $_;
	    }
	} while $medium;
	$name .= $i;
    } else {
	foreach (@{$urpm->{media}}) {
	    $_->{name} eq $name and $medium = $_;
	}
    }
    $medium and $urpm->{fatal}(5, N("medium \"%s\" already exists", $medium->{name}));

    #- clear URLs for trailing /es.
    $url =~ s|(.*?)/*$|$1|;

    #- creating the medium info.
    if ($options{virtual}) {
	$url =~ m|^file:/*(/[^/].*)/| or $urpm->{fatal}(1, N("virtual medium need to be local"));

	$medium = { name      => $name,
		    url       => $url,
		    update    => $options{update},
		    virtual   => 1,
		    modified  => 1,
		  };
    } else {
	$medium = { name     => $name,
		    url      => $url,
		    hdlist   => "hdlist.$name.cz",
		    list     => "list.$name",
		    update   => $options{update},
		    modified => 1,
		  };

	#- check to see if the medium is using file protocol or removable medium.
	$url =~ m!^(removable[^:]*|file):/(.*)! and $urpm->probe_removable_device($medium);
    }

    #- check if a password is visible, if not set clear_url.
    $url =~ m|([^:]*://[^/:\@]*:)[^/:\@]*(\@.*)| or $medium->{clear_url} = $url;

    #- all flags once everything has been computed.
    $with_hdlist and $medium->{with_hdlist} = $with_hdlist;

    #- create an entry in media list.
    push @{$urpm->{media}}, $medium;

    #- keep in mind the database has been modified and base files need to be updated.
    #- this will be done automatically by transfering modified flag from medium to global.
    $urpm->{log}(N("added medium %s", $name));
}

#- add distribution media, according to url given.
sub add_distrib_media {
    my ($urpm, $name, $url, %options) = @_;
    my ($hdlists_file);

    #- make sure configuration has been read.
    # (Olivier Thauvin): Is this a workaround ?
    $urpm->{media} or $urpm->read_config;

    #- try to copy/retrieve Mandrake/basehdlists file.
    if (my ($dir) = $url =~ m!^(?:removable[^:]*|file):/(.*)!) {
	$hdlists_file = reduce_pathname("$dir/Mandrake/base/hdlists");

	$urpm->try_mounting($hdlists_file) or $urpm->{error}(N("unable to access first installation medium")), return;

	if (-e $hdlists_file) {
	    unlink "$urpm->{cachedir}/partial/hdlists";
	    $urpm->{log}(N("copying hdlists file..."));
	    system("cp", "-p", "-R", $hdlists_file, "$urpm->{cachedir}/partial/hdlists") ?
	      $urpm->{log}(N("...copying failed")) : $urpm->{log}(N("...copying done"));
	} else {
	    $urpm->{error}(N("unable to access first installation medium (no Mandrake/base/hdlists file found)")), return;
	}
    } else {
	#- try to get the description if it has been found.
	unlink "$urpm->{cachedir}/partial/hdlists";
	eval {
	    $urpm->{log}(N("retrieving hdlists file..."));
	    $urpm->{sync}(
		{
		    dir => "$urpm->{cachedir}/partial",
		    quiet => 1,
		    limit_rate => $options{limit_rate},
		    compress => $options{compress},
		    proxy => get_proxy(),
		},
		reduce_pathname("$url/Mandrake/base/hdlists"),
	    );
	    $urpm->{log}(N("...retrieving done"));
	};
	$@ and $urpm->{error}(N("...retrieving failed: %s", $@));
	if (-e "$urpm->{cachedir}/partial/hdlists") {
	    $hdlists_file = "$urpm->{cachedir}/partial/hdlists";
	} else {
	    $urpm->{error}(N("unable to access first installation medium (no Mandrake/base/hdlists file found)")), return;
	}
    }

    #- cosmetic update of name if it contains blank char.
    $name =~ /\s/ and $name .= ' ';

    #- at this point, we have found an hdlists file, so parse it
    #- and create all necessary media according to it.
    local *HDLISTS;
    if (open HDLISTS, $hdlists_file) {
	my $medium = 1;
	foreach (<HDLISTS>) {
	    chomp;
	    s/\s*#.*$//;
	    /^\s*$/ and next;
	    m/^\s*(?:noauto:)?(hdlist\S*\.cz2?)\s+(\S+)\s*(.*)$/ or $urpm->{error}(N("invalid hdlist description \"%s\" in hdlists file"), $_);
	    my ($hdlist, $rpmsdir, $descr) = ($1, $2, $3);

	    $urpm->add_medium($name ? "$descr ($name$medium)" : $descr,
			      "$url/$rpmsdir",
			      offset_pathname($url, $rpmsdir) . "/Mandrake/base/$hdlist",
			      %options);

	    ++$medium;
	}
	close HDLISTS;
    } else {
	$urpm->{error}(N("unable to access first installation medium (no Mandrake/base/hdlists file found)")), return;
    }
}

sub select_media {
    my $urpm = shift;
    my $options = {};
    if (ref $_[0]) { $options = shift }
    my %media; @media{@_} = undef;

    foreach (@{$urpm->{media}}) {
	if (exists($media{$_->{name}})) {
	    $media{$_->{name}} = 1; #- keep it mind this one has been selected.

	    #- select medium by setting modified flags, do not check ignore.
	    $_->{modified} = 1;
	}
    }

    #- check if some arguments don't correspond to the medium name.
    #- in such case, try to find the unique medium (or list candidate
    #- media found).
    foreach (keys %media) {
	unless ($media{$_}) {
	    my $q = quotemeta;
	    my (@found, @foundi);
	    my $regex  = $options->{strict_match} ? qr/\b$q\b/  : qr/$q/;
	    my $regexi = $options->{strict_match} ? qr/\b$q\b/i : qr/$q/i;
	    foreach my $medium (@{$urpm->{media}}) {
		$medium->{name} =~ $regex  and push @found, $medium;
		$medium->{name} =~ $regexi and push @foundi, $medium;
	    }
	    if (@found == 1) {
		$found[0]{modified} = 1;
	    } elsif (@foundi == 1) {
		$foundi[0]{modified} = 1;
	    } elsif (@found == 0 && @foundi == 0) {
		$urpm->{error}(N("trying to select nonexistent medium \"%s\"", $_));
	    } else { #- several elements in found and/or foundi lists.
		$urpm->{log}(N("selecting multiple media: %s", join(", ", map { N("\"%s\"", $_->{name}) } (@found ? @found : @foundi))));
		#- changed behaviour to select all occurences by default.
		foreach (@found ? @found : @foundi) {
		    $_->{modified} = 1;
		}
	    }
	}
    }
}

sub remove_selected_media {
    my ($urpm) = @_;
    my @result;

    foreach (@{$urpm->{media}}) {
	if ($_->{modified}) {
	    $urpm->{log}(N("removing medium \"%s\"", $_->{name}));

	    #- mark to re-write configuration.
	    $urpm->{modified} = 1;

	    #- remove file associated with this medium.
	    foreach ($_->{hdlist}, $_->{list}, "synthesis.$_->{hdlist}", "descriptions.$_->{name}", "names.$_->{name}",
		     "$_->{name}.cache") {
		$_ and unlink "$urpm->{statedir}/$_";
	    }

	    #- remove proxy settings for this media
	    urpm::download::remove_proxy_media($_->{name});
	} else {
	    push @result, $_; #- not removed so keep it
	}
    }

    #- restore newer media list.
    $urpm->{media} = \@result;
}

#- return list of synthesis or hdlist reference to probe.
sub _probe_with_try_list {
    my ($suffix, $probe_with) = @_;
    my @probe = (
	"synthesis.hdlist$suffix.cz",
	"../base/synthesis.hdlist$suffix.cz",
	"../synthesis.hdlist$suffix.cz",
    );
    length($suffix) and unshift @probe, "synthesis.hdlist.cz";
    length($suffix) or push @probe, (
	"../base/synthesis.hdlist1.cz",
	"../base/synthesis.hdlist2.cz",
	"../synthesis.hdlist1.cz",
	"../synthesis.hdlist2.cz",
	"synthesis.hdlist1.cz",
	"synthesis.hdlist2.cz",
    );
    my @probe_hdlist = (
	"hdlist$suffix.cz",
	"../base/hdlist$suffix.cz",
	"../hdlist$suffix.cz",
    );
    length($suffix) and push @probe_hdlist, "hdlist.cz";
    length($suffix) or push @probe_hdlist, (
	"../base/hdlist1.cz",
	"../base/hdlist2.cz",
	"../hdlist1.cz",
	"../hdlist2.cz",
	"hdlist1.cz",
	"hdlist2.cz",
    );
    if ($probe_with =~ /synthesis/) {
	push @probe, @probe_hdlist;
    } else {
	unshift @probe, @probe_hdlist;
    }
    @probe;
}

#- Update the urpmi database w.r.t. the current configuration.
#- Takes care of modifications, and tries some tricks to bypass
#- the recomputation of base files.
#- Recognized options :
#-   all         -> all medias are rebuilded.
#-   force       -> try to force rebuilding base files (1) or hdlist from rpm files (2).
#-   probe_with  -> probe synthesis or hdlist (or none).
#-   ratio       -> use compression ratio (with gzip, default is 4)
#-   noclean     -> keep old files in the header cache directory.
#-   nopubkey    -> don't use rpm pubkeys
#-   nolock      -> don't lock the urpmi database
#-   forcekey    -> force retrieval of pubkey
sub update_media {
    my ($urpm, %options) = @_;
    my $clean_cache = !$options{noclean};
    my $second_pass;

    $urpm->{media} or return; # verify that configuration has been read

    #- get gpg-pubkey signature.
    if (!$options{nopubkey}) {
	$urpm->exlock_rpm_db;
	$urpm->{keys} or $urpm->parse_pubkeys(root => $urpm->{root});
    }
    #- lock database if allowed.
    $options{nolock} or $urpm->exlock_urpmi_db;

    #- examine each medium to see if one of them needs to be updated.
    #- if this is the case and if not forced, try to use a pre-calculated
    #- hdlist file, else build it from rpm files.
    $urpm->clean;
    foreach my $medium (@{$urpm->{media}}) {
	$medium->{ignore} and next;

	$options{forcekey} and delete $medium->{'key-ids'};
	
	#- we should create the associated synthesis file if it does not already exist...
	-e "$urpm->{statedir}/synthesis.$medium->{hdlist}" && -s _ > 32
	    or $medium->{modified_synthesis} = 1;

	#- if we're rebuilding all media, mark them as modified (except removable ones)
	$medium->{modified} ||= $options{all} && $medium->{url} !~ m!^removable://!;

	unless ($medium->{modified}) {
	    #- the medium is not modified, but to compute dependencies,
	    #- we still need to read it and all synthesis will be written if
	    #- an unresolved provides is found.
	    #- to speed up the process, we only read the synthesis at the beginning.
	    delete @$medium{qw(start end)};
	    if ($medium->{virtual}) {
		my ($path) = $medium->{url} =~ m|^file:/*(/[^/].*[^/])/*$|;
		if ($path) {
		    my $with_hdlist_file = "$path/$medium->{with_hdlist}";
		    if ($medium->{synthesis}) {
			$urpm->{log}(N("examining synthesis file [%s]", $with_hdlist_file));
			($medium->{start}, $medium->{end}) = $urpm->parse_synthesis($with_hdlist_file);
		    } else {
			$urpm->{log}(N("examining hdlist file [%s]", $with_hdlist_file));
			($medium->{start}, $medium->{end}) = $urpm->parse_hdlist($with_hdlist_file, packing => 1);
		    }
		} else {
		    $urpm->{error}(N("virtual medium \"%s\" is not local, medium ignored", $medium->{name}));
		    $_->{ignore} = 1;
		}
	    } else {
		$urpm->{log}(N("examining synthesis file [%s]", "$urpm->{statedir}/synthesis.$medium->{hdlist}"));
		($medium->{start}, $medium->{end}) = $urpm->parse_synthesis("$urpm->{statedir}/synthesis.$medium->{hdlist}");
		unless (defined $medium->{start} && defined $medium->{end}) {
		    $urpm->{log}(N("examining hdlist file [%s]", "$urpm->{statedir}/$medium->{hdlist}"));
		    ($medium->{start}, $medium->{end}) = $urpm->parse_hdlist("$urpm->{statedir}/$medium->{hdlist}", packing => 1);
		}
	    }
	    unless ($medium->{ignore}) {
		unless (defined $medium->{start} && defined $medium->{end}) {
		    #- this is almost a fatal error, ignore it by default?
		    $urpm->{error}(N("problem reading hdlist or synthesis file of medium \"%s\"", $medium->{name}));
		    $medium->{ignore} = 1;
		}
	    }
	    next;
	}

	#- list of rpm files for this medium, only available for local medium where
	#- the source hdlist is not used (use force).
	my ($prefix, $dir, $error, $retrieved_md5sum, @files);

	#- always delete a remaining list file or pubkey file in cache.
	foreach (qw(list pubkey)) {
	    unlink "$urpm->{cachedir}/partial/$_";
	}

	#- check to see if the medium is using file protocol or removable medium.
	if (($prefix, $dir) = $medium->{url} =~ m!^(removable[^:]*|file):/(.*)!) {
	    #- try to figure a possible hdlist_path (or parent directory of searched directory.
	    #- this is used to probe possible hdlist file.
	    my $with_hdlist_dir = reduce_pathname($dir . ($medium->{with_hdlist} ? "/$medium->{with_hdlist}" : "/.."));

	    #- the directory given does not exist and may be accessible
	    #- by mounting some other. try to figure out these directory and
	    #- mount everything necessary.
	    $urpm->try_mounting($options{force} < 2 && ($options{probe_with} || $medium->{with_hdlist}) ?
				$with_hdlist_dir : $dir) or
				  $urpm->{error}(N("unable to access medium \"%s\",
this could happen if you mounted manually the directory when creating the medium.", $medium->{name})), next;

	    #- try to probe for possible with_hdlist parameter, unless
	    #- it is already defined (and valid).
	    if ($options{probe_with} && (!$medium->{with_hdlist} || ! -e "$dir/$medium->{with_hdlist}")) {
		my ($suffix) = $dir =~ m|RPMS([^/]*)/*$|;

		foreach (_probe_with_try_list($suffix, $options{probe_with})) {
		    if (-e "$dir/$_" && -s _ > 32) {
			$medium->{with_hdlist} = $_;
			last;
		    }
		}
		#- redo...
		$with_hdlist_dir = reduce_pathname($dir . ($medium->{with_hdlist} ? "/$medium->{with_hdlist}" : "/.."));
	    }

	    if ($medium->{virtual}) {
		#- syncing a virtual medium is very simple, just try to read the file in order to
		#- determine its type, once a with_hdlist has been found (but is mandatory).
		if ($medium->{with_hdlist} && -e $with_hdlist_dir) {
		    delete @$medium{qw(start end)};
		    if ($medium->{synthesis}) {
			$urpm->{log}(N("examining synthesis file [%s]", $with_hdlist_dir));
			($medium->{start}, $medium->{end}) = $urpm->parse_synthesis($with_hdlist_dir);
			delete $medium->{modified};
			$medium->{synthesis} = 1;
			$urpm->{modified} = 1;
			unless (defined $medium->{start} && defined $medium->{end}) {
			    $urpm->{log}(N("examining hdlist file [%s]", $with_hdlist_dir));
			    ($medium->{start}, $medium->{end}) = $urpm->parse_hdlist($with_hdlist_dir, packing => 1);
			    delete @$medium{qw(modified synthesis)};
			    $urpm->{modified} = 1;
			}
		    } else {
			$urpm->{log}(N("examining hdlist file [%s]", $with_hdlist_dir));
			($medium->{start}, $medium->{end}) = $urpm->parse_hdlist($with_hdlist_dir, packing => 1);
			delete @$medium{qw(modified synthesis)};
			$urpm->{modified} = 1;
			unless (defined $medium->{start} && defined $medium->{end}) {
			    $urpm->{log}(N("examining synthesis file [%s]", $with_hdlist_dir));
			    ($medium->{start}, $medium->{end}) = $urpm->parse_synthesis($with_hdlist_dir);
			    delete $medium->{modified};
			    $medium->{synthesis} = 1;
			    $urpm->{modified} = 1;
			}
		    }
		    unless (defined $medium->{start} && defined $medium->{end}) {
			$urpm->{error}(N("problem reading hdlist or synthesis file of medium \"%s\"", $medium->{name}));
			$medium->{ignore} = 1;
		    }
		} else {
		    $urpm->{error}(N("virtual medium \"%s\" should have valid source hdlist or synthesis, medium ignored",
				     $medium->{name}));
		    $medium->{ignore} = 1;
		}
	    }
	    #- try to get the description if it has been found.
	    unlink "$urpm->{statedir}/descriptions.$medium->{name}";
	    if (-e "$dir/../descriptions") {
		$urpm->{log}(N("copying description file of \"%s\"...", $medium->{name}));
		system("cp", "-p", "-R", "$dir/../descriptions",
		       "$urpm->{statedir}/descriptions.$medium->{name}") ?
			 $urpm->{log}(N("...copying failed")) : $urpm->{log}(N("...copying done"));
	    }

	    #- examine if a distant MD5SUM file is available.
	    #- this will only be done if $with_hdlist is not empty in order to use
	    #- an existing hdlist or synthesis file, and to check if download was good.
	    #- if no MD5SUM are available, do it as before...
	    #- we can assume at this point a basename is existing, but it needs
	    #- to be checked for being valid, nothing can be deduced if no MD5SUM
	    #- file are present.
	    my $basename = basename($with_hdlist_dir);

	    unless ($medium->{virtual}) {
		if ($medium->{with_hdlist}) {
		    if (!$options{nomd5sum} && -s reduce_pathname("$with_hdlist_dir/../MD5SUM") > 32) {
			if ($options{force}) {
			    #- force downloading the file again, else why a force option has been defined ?
			    delete $medium->{md5sum};
			} else {
			    unless ($medium->{md5sum}) {
				$urpm->{log}(N("computing md5sum of existing source hdlist (or synthesis)"));
				if ($medium->{synthesis}) {
				    -e "$urpm->{statedir}/synthesis.$medium->{hdlist}" and
				      $medium->{md5sum} = (split ' ', `md5sum '$urpm->{statedir}/synthesis.$medium->{hdlist}'`)[0];
				} else {
				    -e "$urpm->{statedir}/$medium->{hdlist}" and
				      $medium->{md5sum} = (split ' ', `md5sum '$urpm->{statedir}/$medium->{hdlist}'`)[0];
				}
			    }
			}
			if ($medium->{md5sum}) {
			    $urpm->{log}(N("examining MD5SUM file"));
			    local (*F, $_);
			    open F, reduce_pathname("$with_hdlist_dir/../MD5SUM");
			    while (<F>) {
				my ($md5sum, $file) = m|(\S+)\s+(?:\./)?(\S+)| or next;
				#- keep md5sum got here to check download was ok ! so even if md5sum is not defined, we need
				#- to compute it, keep it in mind ;)
				$file eq $basename and $retrieved_md5sum = $md5sum;
			    }
			    close F;
			    #- If an existing hdlist or synthesis file has the same md5sum, we assume
			    #- the files are the same.
			    #- If the local md5sum is the same as the distant md5sum, this means
			    #- that there is no need to download the hdlist or synthesis file again.
			    foreach (@{$urpm->{media}}) {
				if ($_->{md5sum} && $_->{md5sum} eq $retrieved_md5sum) {
				    unlink "$urpm->{cachedir}/partial/$basename";
				    #- the medium is now considered not modified.
				    $medium->{modified} = 0;
				    #- hdlist or synthesis file must be linked with the other same one.
				    #- a link is better for reducing used size of /var/lib/urpmi.
				    if ($_ ne $medium) {
					$medium->{md5sum} = $_->{md5sum};
					unlink "$urpm->{statedir}/synthesis.$medium->{hdlist}";
					unlink "$urpm->{statedir}/$medium->{hdlist}";
					symlink "synthesis.$_->{hdlist}", "$urpm->{statedir}/synthesis.$medium->{hdlist}";
					symlink $_->{hdlist}, "$urpm->{statedir}/$medium->{hdlist}";
				    }
				    #- as previously done, just read synthesis file here, this is enough.
				    $urpm->{log}(N("examining synthesis file [%s]",
					"$urpm->{statedir}/synthesis.$medium->{hdlist}"));
				    ($medium->{start}, $medium->{end}) =
					$urpm->parse_synthesis("$urpm->{statedir}/synthesis.$medium->{hdlist}");
				    unless (defined $medium->{start} && defined $medium->{end}) {
					$urpm->{log}(N("examining hdlist file [%s]", "$urpm->{statedir}/$medium->{hdlist}"));
					($medium->{start}, $medium->{end}) =
					    $urpm->parse_hdlist("$urpm->{statedir}/$medium->{hdlist}", packing => 1);
					unless (defined $medium->{start} && defined $medium->{end}) {
					    $urpm->{error}(N("problem reading hdlist or synthesis file of medium \"%s\"",
						$medium->{name}));
					    $medium->{ignore} = 1;
					}
				    }
				    #- no need to continue examining other md5sum.
				    last;
				}
			    }
			    $medium->{modified} or next;
			}
		    }

		    #- if the source hdlist is present and we are not forcing using rpms file
		    if ($options{force} < 2 && -e $with_hdlist_dir) {
			unlink "$urpm->{cachedir}/partial/$medium->{hdlist}";
			$urpm->{log}(N("copying source hdlist (or synthesis) of \"%s\"...", $medium->{name}));
			$options{callback} && $options{callback}('copy', $medium->{name});
			if (system("cp", "-p", "-R", $with_hdlist_dir, "$urpm->{cachedir}/partial/$medium->{hdlist}")) {
			    $options{callback} && $options{callback}('failed', $medium->{name});
			    $urpm->{log}(N("...copying failed"));
			    unlink "$urpm->{cachedir}/partial/$medium->{hdlist}"; #- force error...
			} else {
			    $options{callback} && $options{callback}('done', $medium->{name});
			    $urpm->{log}(N("...copying done"));
			}
		    }

		    -e "$urpm->{cachedir}/partial/$medium->{hdlist}" && -s _ > 32 or
		      $error = 1, $urpm->{error}(N("copy of [%s] failed (file is suspiciously small)", $with_hdlist_dir));

		    #- keep checking md5sum of file just copied ! (especially on nfs or removable device).
		    if (!$error && $retrieved_md5sum) {
			$urpm->{log}(N("computing md5sum of copied source hdlist (or synthesis)"));
			(split ' ', `md5sum '$urpm->{cachedir}/partial/$medium->{hdlist}'`)[0] eq $retrieved_md5sum or
			  $error = 1, $urpm->{error}(N("copy of [%s] failed (md5sum mismatch)", $with_hdlist_dir));
		    }

		    #- check if the files are equal... and no force copy...
		    if (!$error && !$options{force} && -e "$urpm->{statedir}/synthesis.$medium->{hdlist}") {
			my @sstat = stat "$urpm->{cachedir}/partial/$medium->{hdlist}";
			my @lstat = stat "$urpm->{statedir}/$medium->{hdlist}";
			if ($sstat[7] == $lstat[7] && $sstat[9] == $lstat[9]) {
			    #- the two files are considered equal here, the medium is so not modified.
			    $medium->{modified} = 0;
			    unlink "$urpm->{cachedir}/partial/$medium->{hdlist}";
			    #- as previously done, just read synthesis file here, this is enough, but only
			    #- if synthesis exists, else it need to be recomputed.
			    $urpm->{log}(N("examining synthesis file [%s]", "$urpm->{statedir}/synthesis.$medium->{hdlist}"));
			    ($medium->{start}, $medium->{end}) =
				$urpm->parse_synthesis("$urpm->{statedir}/synthesis.$medium->{hdlist}");
			    unless (defined $medium->{start} && defined $medium->{end}) {
				$urpm->{log}(N("examining hdlist file [%s]", "$urpm->{statedir}/$medium->{hdlist}"));
				($medium->{start}, $medium->{end}) =
				    $urpm->parse_hdlist("$urpm->{statedir}/$medium->{hdlist}", packing => 1);
				unless (defined $medium->{start} && defined $medium->{end}) {
				    $urpm->{error}(N("problem reading synthesis file of medium \"%s\"", $medium->{name}));
				    $medium->{ignore} = 1;
				}
			    }
			    next;
			}
		    }
		} else {
		    $options{force} < 2 and $options{force} = 2;
		}

		#- if copying hdlist has failed, try to build it directly.
		if ($error) {
		    $options{force} < 2 and $options{force} = 2;
		    #- clean error state now.
		    $error = undef;
		}

		if ($options{force} < 2) {
		    #- examine if a local list file is available (always probed according to with_hdlist
		    #- and check hdlist has not be named very strangely...
		    if ($medium->{hdlist} ne 'list') {
			my $local_list = $medium->{with_hdlist} =~ /hd(list.*)\.cz2?$/ ? $1 : 'list';
			my $path_list = reduce_pathname("$with_hdlist_dir/../$local_list");
			-e $path_list or $path_list = "$dir/list";
			if (-e $path_list) {
			    system("cp", "-p", "-R", $path_list, "$urpm->{cachedir}/partial/list")
				and $urpm->{log}(N("...copying failed"));
			}
		    }
		} else {
		    #- try to find rpm files, use recursive method, added additional
		    #- / after dir to make sure it will be taken into account if this
		    #- is a symlink to a directory.
		    #- make sure rpm filename format is correct and is not a source rpm
		    #- which are not well managed by urpmi.
		    @files = split "\n", `find '$dir/' -name "*.rpm" -print`;

		    #- check files contains something good!
		    if (@files > 0) {
			#- we need to rebuild from rpm files the hdlist.
			eval {
			    $urpm->{log}(N("reading rpm files from [%s]", $dir));
			    my @unresolved_before = grep {
				! defined $urpm->{provides}{$_};
			    } keys %{$urpm->{provides} || {}};
			    $medium->{start} = @{$urpm->{depslist}};
			    $medium->{headers} = [ $urpm->parse_rpms_build_headers(
				dir   => "$urpm->{cachedir}/headers",
				rpms  => \@files,
				clean => $clean_cache,
			    ) ];
			    $medium->{end} = $#{$urpm->{depslist}};
			    if ($medium->{start} > $medium->{end}) {
				#- an error occured (provided there are files in input.)
				delete $medium->{start};
				delete $medium->{end};
				die "no rpms read\n";
			    } else {
				#- make sure the headers will not be removed for another media.
				$clean_cache = 0;
				my @unresolved = grep {
				    ! defined $urpm->{provides}{$_};
				} keys %{$urpm->{provides} || {}};
				@unresolved_before == @unresolved or $second_pass = 1;
			    }
			};
			$@ and $error = 1, $urpm->{error}(N("unable to read rpm files from [%s]: %s", $dir, $@));
			$error and delete $medium->{headers}; #- do not propagate these.
			$error or delete $medium->{synthesis}; #- when building hdlist by ourself, drop synthesis property.
		    } else {
			$error = 1;
			$urpm->{error}(N("no rpm files found from [%s]", $dir));
		    }
		}
	    }

	    #- examine if a local pubkey file is available.
	    if (!$options{nopubkey} && $medium->{hdlist} ne 'pubkey' && !$medium->{'key-ids'}) {
		my $local_pubkey = $medium->{with_hdlist} =~ /hdlist(.*)\.cz2?$/ ? "pubkey$1" : 'pubkey';
		my $path_pubkey = reduce_pathname("$with_hdlist_dir/../$local_pubkey");
		-e $path_pubkey or $path_pubkey = "$dir/pubkey";
		-e $path_pubkey
		    and system("cp", "-p", "-R", $path_pubkey, "$urpm->{cachedir}/partial/pubkey")
		    and $urpm->{log}(N("...copying failed"));
	    }
	} else {
	    my $basename;

	    #- try to get the description if it has been found.
	    unlink "$urpm->{cachedir}/partial/descriptions";
	    if (-e "$urpm->{statedir}/descriptions.$medium->{name}") {
		rename("$urpm->{statedir}/descriptions.$medium->{name}", "$urpm->{cachedir}/partial/descriptions") or 
		  system("mv", "$urpm->{statedir}/descriptions.$medium->{name}", "$urpm->{cachedir}/partial/descriptions");
	    }
	    eval {
		$urpm->{sync}(
		    {
			dir => "$urpm->{cachedir}/partial",
			quiet => 1,
			limit_rate => $options{limit_rate},
			compress => $options{compress},
			proxy => get_proxy($medium->{name}),
			media => $medium->{name},
		    },
		    reduce_pathname("$medium->{url}/../descriptions"),
		);
	    };
	    if (-e "$urpm->{cachedir}/partial/descriptions") {
		rename("$urpm->{cachedir}/partial/descriptions", "$urpm->{statedir}/descriptions.$medium->{name}") or
		  system("mv", "$urpm->{cachedir}/partial/descriptions", "$urpm->{statedir}/descriptions.$medium->{name}");
	    }

	    #- examine if a distant MD5SUM file is available.
	    #- this will only be done if $with_hdlist is not empty in order to use
	    #- an existing hdlist or synthesis file, and to check if download was good.
	    #- if no MD5SUM are available, do it as before...
	    if ($medium->{with_hdlist}) {
		#- we can assume at this point a basename is existing, but it needs
		#- to be checked for being valid, nothing can be deduced if no MD5SUM
		#- file are present.
		$basename = basename($medium->{with_hdlist});

		unlink "$urpm->{cachedir}/partial/MD5SUM";