było: mc i *.rpm

Marcin Bohosiewicz marcus w venus.wis.pk.edu.pl
Nie, 10 Gru 2000, 23:05:17 CET


On Sun, 10 Dec 2000, Tomasz Kłoczko wrote:

> On Sun, 10 Dec 2000, Tomasz Kłoczko wrote:
> [..]
> 
> Wygląda na to, że byk jest jednak w okolicach rpm2cpio, a z dodaniem
> "./" to było złudzenie.

No nie wiem... wlasnie przegladam sobie zrodelka rpm'a i widze cos takiego:
rpm-4.0/lib/cpio.c:
int cpioFileMapCmp(const void * a, const void * b)
{
    const char * afn = ((const struct cpioFileMapping *)a)->archivePath;
    const char * bfn = ((const struct cpioFileMapping *)b)->archivePath;

    /* Match payloads with ./ prefixes as well. */
    if (afn[0] == '.' && afn[1] == '/') afn += 2;
    if (bfn[0] == '.' && bfn[1] == '/') bfn += 2;

    return strcmp(afn, bfn);
}

Czyli goscie w samym rpmie czyszcza listy z "./" przy porownywaniu...
Jaki jest dotychczasowy standard przy rpm2cpio? Ma to byc czy nie?

> Właśnie ropakowałem sobie za pomocą rpm2cpio dwa pakiety i taki mały test:
> 
> $ file ImageMagick-v3.cpio ImageMagick-v4.cpio 
> ImageMagick-v3.cpio: bzip2 compressed data, block size = 900k
> ImageMagick-v4.cpio: ASCII cpio archive (SVR4 with no CRC)

Czy to jest dobrze?
rpm-4.0/rpm2cpio.c:
        if (!headerGetEntry(h, RPMTAG_PAYLOADCOMPRESSOR, NULL,
                            (void **) &payload_compressor, NULL))
            payload_compressor = "gzip";
        rpmio_flags = t = alloca(sizeof("r.gzdio"));
        *t++ = 'r';
        if (!strcmp(payload_compressor, "gzip"))
            t = stpcpy(t, ".gzdio");
        if (!strcmp(payload_compressor, "bzip2"))
            t = stpcpy(t, ".bzdio");
   
Na moj rozum tych "!" w if'ach przed strcmp nie powinno byc...

M.

PS. W rpm-4.0/build/files.c
znalazlem cos takiego:
/* XXX legacy requires './' payload prefix to be omitted from rpm
packages. */
W czesci wygladajacej tak - sugeruje ze to nowy "feature" rpm'a... 

if (! (flp->flags & RPMFILE_GHOST)) {
            clp->fsPath = xstrdup(flp->diskURL);
  /* XXX legacy requires './' payload prefix to be omitted from rpm
packages. */
            {   char * t = buf;
                if (!isSrc && !rpmExpandNumeric("%{_noPayloadPrefix}")) {
                    t = stpcpy(t, "./");
                    rpmlibNeedsFeature(h, "PayloadFilesHavePrefix", "4.0-1");
                }
                t = stpcpy(t, (flp->fileURL + skipLen));
                clp->archivePath = xstrdup(buf);
            }

-- 
-| == Marcin Bohosiewicz - MB8042-RIPE - marcus w venus.pk.edu.pl == |-
-| == tel. +48 601 485097 - PLD Team   - marcus w pld.org.pl      == |-
-| == Strona Domowa   -      http://venus.wis.pk.edu.pl/marcus/ == |-
-| == PLUG - Sad Kolezenski        -   http://www.linux.org.pl/ == |-



Więcej informacji o liście dyskusyjnej pld-devel-pl