/sbin/ldconfig a nowy rpm

Jakub Bogusz qboosh w pld-linux.org
Pią, 22 Sie 2003, 17:05:46 CEST


Ale jaja... rpm próbuje być za mądry - i mu to nie wychodzi.
Fragment kodu z rpm/lib/psm.c:

[...]
static const char * ldconfig_path = "/sbin/ldconfig";
[...]
    /*
     * If a successor node, and ldconfig was just run, don't bother.
     */
    if (ldconfig_path && progArgv && psm->unorderedSuccessor) {
        if (ldconfig_done && !strcmp(progArgv[0], ldconfig_path)) {
            rpmMessage(RPMMESS_DEBUG,
                _("%s: %s(%s-%s-%s) skipping redundant \"%s\".\n"),
                psm->stepName, tag2sln(psm->scriptTag), n, v, r,
                progArgv[0]);
            return rc;
        }
    }
[...]
    if (!progArgv) {
[...]
    } else {
        argv = alloca((progArgc + 4) * sizeof(*argv));
        memcpy(argv, progArgv, progArgc * sizeof(*argv));
        argc = progArgc;
        ldconfig_done = (ldconfig_path && !strcmp(argv[0], ldconfig_path)
                ? 1 : 0);
    }
[...i jeszcze kawałek dalej, sprawdzanie w treści skryptu]

Coś mu to przewidywanie nie wychodzi - i jeśli w jednym przebiegu
instalujemy kilka pakietów z bibliotekami, to ldconfig zostanie
uruchomiony tylko dla pierwszego z nich - dla bibliotek z następnych
pakietów symlinki już się nie utworzą...
(adgor: to była przyczyna tego przypadku z KDE!)

Ktoś ma pomysł jak to poprawić (żeby wywoływał ldconfig przy ostatnim
pakiecie, nie pierwszym?), czy wyciąć?


-- 
Jakub Bogusz    http://cyber.cs.net.pl/~qboosh/



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