jaka nazwa w pkgssel
Paweł Kołodziej
pawelk w pld.org.pl
Pią, 21 Maj 1999, 16:48:28 CEST
[piątek, 21 maj 1999], Paweł Gajda napisał(a):
> On Fri, 21 May 1999, Paweł Kołodziej wrote:
>
> > [czwartek, 20 maj 1999], Jarek Woloszyn napisał(a):
> >
> > > On Thu, 20 May 1999, Paweł Gajda wrote:
> > >
> > > > W postaci, którą zaproponowałeś, to raczej będzie nieefektywnie
> > > > (ze względu na budowę rpm headera - AFAIK trzeba czytać go w całości).
> > > > IMHO najlepiej to rozbić na 2 pliki: tocfile okrojony do minimum,
> > > > i descriptions w postaci pliku db ,,juzerskimi'' informacjami.
> > > > Zamiast samemu budować indeks, można to wrzucić do pliku db(libdb).
> >
> > Z moich obserwacji wynika, że w nagłówku 50% to spis nazw plików, a 20% to
> > description. O ile description nie odgrywa żadnej roli w sprawzaniu
> > zależności, to AFAIK spis plików jest już konieczny. Tak więc ewentualny
> > zysk na pamięciożerności to ok. 20% - IMHO trzeba się zastoanowić, czy warto
> > się teraz bawić w db. Może najpierw zróbmy wersję 1.0, możliwie najprostszą
> > ?
>
> Teraz, czy później... Rozumiem, że narzekasz na brak czasu. IMHO
na poniedziałek muszę sobie opracować ponad 100 temattów na ustny polski.
> przydałby się po prostu ktoś do tego indeksu.
Dobra, zrobię to. Przejrzałem info od db i wydaje mi się, że będzie to
raczej proste. Mysłę że mogę obiecać, że pojawi się to w sobotę (29.05) po
południu, albo wcześniej. A widzę to jakoś tak:
będzie sobie funkcja w rpmmen.c :
void * rpmpkgs_get_header_entry(TPkgSet *pkgs,int num, int item);
która będzie zwracała wskaźnik na odpowiednie pole nagłówka, lub daną
pobraną przez db, albo NULL'a w przypadku błędu. Gdy ta dana przestanie być
już potrzebna będzie trzeba użyć:
rpmpkgs_free_entry(void *ptr);
gdzie ptr to wskaźnik który otrzymano od rpmpkgs_get_header_entry. Nie można
zamiast tego zrobić poprostu free, bo jeśli otrzymana "informacja" pochodzi
na nagłówka (tocfile) a nie z db to wtedy niewolno dealllokować tej pamięci.
Dopóki tego niema, do testów Jarek może używać atrap (rpmpkgs_get... taka
jak podałęm w poprzednim liście, a jako rpmpkgs_free_entry funkcji pustej).
Kilka luźnych uwag:
- otrzymany wskaźnik wskazuje na pamięć którą trzeba traktować jako ReadOnly
- w najbliższym czasie przejdę z *packages na **packages, ale zmiany w
selekcjonerze z tym związane nie powinny być zbyt dokuczliwe.
> Zmontuję jednak jakiś kawałek
> strony, trzeba nasilić akcję propagandową ;-)
>
> To po usunięciu tagów:
> RPMTAG_DESCRIPTION,
> RPMTAG_SUMMARY,
> RPMTAG_BUILDTIME,
> RPMTAG_BUILDHOST,
> RPMTAG_COPYRIGHT,
> RPMTAG_GROUP,
> RPMTAG_URL,
> RPMTAG_PACKAGER,
> 100, -- tajemnicze ,,znaczniki'' tłumaczeń
> RPMTAG_SOURCERPM,
> RPMTAG_ARCHIVESIZE,
> RPMTAG_FILEMODES,
> RPMTAG_SIZE,
>
> i nie dokładaniu niepotrzebnego tagu FILENAME_TAG, jest
> to przecież: %NAME-%VERSION-%RELEASE.%ARCH.rpm, AFAIK
to jest już niewykożystywane. Kiedyś tego chyba potzrebowałem, ale już nawet
nie pamiętam do czego..
> W PLD będzie to większy zysk(dochodzą polskie(i węgierskie chyba też
> widziałem) wersje Summary i Description), ale nie wiem czy nie dojdą
> jakieś nowe i konieczne tagi w rpm-3.x.
Czy ktoś próbował już na rpm-3.x przekompilować rpmmen'a ?
Ja go jeszcze nie mam, i pocieszm się że może niechciało im się mocno
przerabiać "właściwego" rpm i API rpmliba pozostało w miarę niezmienione.
PS. a teraz wracam do świata Kochanowskiego, Mickiewicza, Asnyka i innych
Witkacych...
--
Paweł Kołodziej
pawelk w pld.org.pl
http://www.ids.pl/~pkollegu <- tu jest PePeSza (automat dla tłumaczy .pot'ow)
Więcej informacji o liście dyskusyjnej pld-installer