Spece w XML (Re: różnice między APT a poldkiem)

Michal Moskal malekith w pld-linux.org
Śro, 3 Lip 2002, 10:27:44 CEST


On Tue, Jul 02, 2002 at 02:38:30PM +0200, Tomasz Kłoczko wrote:
> On Tue, 2 Jul 2002, Artur Frysiak wrote:
> 
> > On Tue, Jul 02, 2002 at 11:06:46AM +0200, Tomasz Kłoczko wrote:
> > > On Tue, 2 Jul 2002, Artur Frysiak wrote:
> > 
> > > > Kolejny problem który rozwiązuje XMLowy format to wyraźne zakończenie
> > > > poszczególnych sekcji. Swego czasu umieściłem komentarz w %post tyle, że
> > > > %post był wykonywany nie przez /bin/sh a przez inny interpreter co
> > > > spowodował, że linie zaczynające się od # były traktowane jako błąd. W
> > > > przypadku XMLa wsadziłbym komentarz w <!-- --> i nie byłby on podawany
> > > > interpreterowi %post do parsowania.
> > > 
> > > Jakbyś nie wiedział to od tego jest %{nil}.
> > 
> > Tzn ? Jak mam użyć %{nil} aby móc wstawić komentarz w dowolnym miejscu
> > speca ?
> 
> %post 
> ecie
> pecie
> %{nil}
> # kometarz
> # dwulininkowy
> %postun
> pecie
> ecie
> %{nil}
> # inny kometarz

Jakie to ładne.

> > > > Sprawdzanie poprawności składni pliku spec w XMLu jest o niebo
> > > > łatwiejsze niż ma to miejsce aktualnie.
> > > 
> > > Co nie zmaczy że nie jest to wykonalne. Co więcej owo sparwdznie jest już
> > > zaimplementowane i nawet działa :)
> > 
> > Gdzie jest zaimplementowane ?
> 
> W rpm-ie.

Implementaion is specification? How perlish.

> > > > Wyciąganie informacji z XMLa jest także dużo łatwiejsze.
> > > 
> > > Na razie nie jest w żaden sposób łatwiejsze niż obecnie.
> > > %dump macro & grep/awk/perl rulez. Dokłądnie pzrecież tak robimy w 
> > > builderze. Używanie do takich zreczy kilku narzędzie nei jest w żaden 
> > > sposób niczym brzydkim. Więcej .. to jest zgodne z filozofią unices.
> > 
> > Ta, trick z %dump sam wymyśliłem ale jest to bardzo ugly trick i
> > wolałbym aby go zarzucić.
> 
> Na rzecz czego ? Masz jakiś zewnętrzny parser ? 

xslt-proc?

> Zresztakby nawet był to 
> IMHO nie należałonby tego zmieniać bo to dokładnie nic by nei zmieniło. 

Do fortunek?

> W 
> ttej chwili całość jest prosta: wrzyca się całego dumpa do zmiennej a 
> potem wyciaga co trzeba. Prościej zrobić to byłoby ciężko.

xslt-proc.

> > > > Pliki XML są najczęściej kodowane w UTF-8 co rozwiązuje problem z
> > > > tłumaczeniami w różnych językach.
> > > 
> > > Używanie utf w rpm-ie już obecnie nie ma w zasadzie ograniczeń już
> > > obecnie. Pzrerób tylko programy które beą wyciagać z bazy rpm-a infrmacje 
> > > i beą odpowienie tksty raktować jako utf.
> > 
> > Wyciąganiem informacji z bazy rpma powinno zajmować się librpm, a aby
> > informacje z bazy mogły być traktowane jako utf to trzeba i tak API
> > zmienić.
> 
> Nie widze tego gdzie byłoby to potrzebne.
> Łańcuchy jakie są obecnei w Summary czy %description możesz i już wrzucać 
> w utf i nie powinno to w niczym przeszkadzać.
> Kwestia że np. programy to wyświetlajace pownny to traktować jako utf .. i 
> to wszystko.

A gdzie *napiszesz*, że jest to utf? W XML zaznacza się to w nagłówku.

> > > > Zastosowanie XMLa drastycznie zmiejszy "poprawki" typu "cosmetics".
> > > 
> > > Formatować plik xml-owy żeby się go czytało i tak się będzie. Popatrz ile
> > > tego typu poprawek jest choćby w LDP.
> > 
> > Od tego są programy normalizujące pliki XML np. xmllint, który dodatkowo
> > sprawdzi składnie pliku.
> 
> Walidacja jest elementem parsowania. To że do XML są gotowe zewnętrzne 
> validatory nic tu istotnego nei zmienia, a to że Jeff nie zabrał się od 
> początku za robienie parsera na yacc i postanowił robioć to na własna rękę 
> o ile to dziąła takze nic tu istotnego nie wprowadza moze po za tym, że 
> gdyby robił to z użyciem yacc to miałby prostzre rozwijanie składni.

Składnie specy jest na tyle *prymitywna*, że yacc byłby overkillem.
A wprowadza tyle istotnego, że gdyby składnia była wcześniej dokładnie
sprawdzana (za pomocą dtd), to uniknąłbyś kilku głupich błędów, że
gdy pakiet nie przeszedł przez build, lub co gorsza przeszedł, ale
nie działa. Po prostu ze względu na ściślejsza składnie. Można się tu
łatwo dopatrzeć analogii z językami programowania -- im język ma
silniejszy system typów (sprawdzanie jeszcze na etapie kompilacji) tym
mniej robi się błędów.

> > Używanie tego typu narzędzi jest mniej
> > kontrowersyjne niż poprawka polegająca na usunięciu lub dodaniu pustej
> > linijki lub też złamaniu linijki w tym a nie innym miejscu.
> 
> Tak długo jak to dział owa kontrwersyjność szczerze mówiac mnie ni grzeje 
> ni ziębi, a wprowadzanie XML tylko dlatego zeby to "upiękkszyć" od strrony 
> parsowanai jest głupim podejsciem bo nie uwzględnai tego kto bedzie potem 
> tego używał.

"Nie, nie, i jeszcze raz nie XMLowi, bo builder z nim nie będzie
działał!"

[snip]

> > > Wszystko co podałeś to są pewne argumety ale ich wielkość jest taka że
> > > potknąć sie o nie jest naprawdę cieżko.
> > > 
> > > Używanei XML nie uwzględnia jedenego fundamentalnego faktu. Otóż rpm to
> > > narzędzie które ma już ca~ siedem lat z okładem. Przez ten czas
> > > powstała grupa ludzi która ma to co jest obecnie w małym palcu lewej
> > > stopy. Obecnie jest takzę sporo dobzre opracowanych specół 
> > > (choby u nas) i jak an razie nei ma prostych narzędzie do 
> > > migracji do XML. Wprwadzenie XML tutaj dla tych ludzi wprowadzi wiąze się
> > > z takim zamieszaniem że głowa mała. Owszem wsprowadzenie XML ma senss od
> > > strony Jeffa (uproszczenie parsowania) ale on jest jeden na osób robiących
> > > pakiety tysiące.
> > 
> > To jest typowo konserwatywny argument osoby, której nie chce się już
> > dalej rozwijać i obawiającej się, że nowa technologia strąci ją z
> > piedestału.
> > Jakoś mi to do Ciebie, Tomku nie pasuje. Zawsze podziwiałem Twoje
> > ciągotki do nowych rzeczy. No ale tylko krowa nie zmienia poglądów.
> 
> Artur może na pczątek zacznij ulepszać np. awka ? a może sh ? :>

Sementic analisis error.

> Istotą czegoś co jest dobre jest to że na pewnym poziomie nie trzeba tego
> zmieniać bo tworzy to pewną spójna platformę do dalszych działań. Taka
> platforma istnieje o czczym świadczy to że my sami wykonujemy na specach
> operacje które innym ludziom w głowie nie za bardzo się mieszczą (vide 
> dyskusja na rpm-list że bez XML inaczej pewnych rzeczy sie nie da zrobić). 
> To że ktoś czegoś takiego nei potrafiłby zrobić bez XML jest tylko
> ograniczeniem konkretnej osoby a nie tego co obecny rpm jako platforma
> udostępnia. Nie moje to zmartwienie kto jakie ograniczenia sam sobei na
> siebie ponakładał.

To, że można niedoróbki rpm'a omijać, nie znaczy, że nie powinno się ich
poprawiać. Format speca jest niedoróbka. Nie jest formalnie
wyspecyfikowany, był tworzony przez lata co stworzyło straszny burdel,
jest trudny w parsowaniu i ma jeszcze kilka innych podobnych "zalet".

To, że jesteśmy w stanie to obejść (vide ugly %dump trick), nie znaczy,
że trzeba to tak zostawić.

[snip]
-- 
: Michal Moskal ::::: malekith/at/pld-linux.org :  GCS {C,UL}++++$ a? !tv
: PLD Linux ::::::: Wroclaw University, CS Dept :  {E-,w}-- {b++,e}>+++ h



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