Biuletyn PLD nr 2 (opóźniony)

Tomasz Kłoczko kloczek w rudy.mif.pg.gda.pl
Śro, 26 Sie 1998, 13:49:16 CEST


 -- tk/tc i Uicode --

Otoż jest nowe tcl/tk w wersji 8.1, które wspomaga różne ecodingi
(wreszcie) i przy transferze danych między aplikacjami/modułami używa
Unicode. Ciekawe jak wygląda powiązanie tcl/tk i języka polskiego ?
Może ktoś ma chęć to sprawdzić ? Postram się wykonać próbne pakiety
bazujce na tej nowej wersji tcl/tk. Może ktoś to wypróbuje choć same
modyfikacje jakie ostatnio wprowadzono nie powinny mieć większego wpływu
na resztę czyli zapewne i tak dołoże je do oficjalnego drzewka.

Może Qrczak byłby tym zainteresowany ? Ma ktoś z nim jakiś blliższy
kontakt ? On tak lubi Unicode .. :)

 --  wykonano dzisiaj --

Dwa pakiety: gv i modutils. Drugi nie wymagał za dużo zmian. W zasadzie
sama kosmetyka + tłumaczenie Krzyśka z dwoma drobne dwie poprawki. Czyli
tekst tłumaczenia %description jaki wciągnąłem do zasobów ogólnych to:

%description -l pl
Jądro Linuxa umożliwia ładowanie jego fragmentów dynamicznie w czasie
pracy.  Te fragmenty nazywane są modułami. Zawierają one obsługi różnych
urządzeń, systemów plików i innych. Pakiet ten zawiera programy służące do
ładowania i usuwania modułów zarówno automatycznie jak i ręcznie. 

I jeszcze dla uzupełnienia %changelog do tego pakietu:
- added -q %setup parameter,
- changed Buildroot to /tmp/%%{name}-%%{version}-root,
- added using %%{name} and %%{version} in Source,
- added pl translation (Krzysztof G. Baranowski <kgb w manjak.knm.org.pl>),
- removedd setting up permissions from %install and instead this added
  full %attr description on %files.

gv też się dorobiło tłumaczenia:

Summary(pl): Zaawansowana nakładka na ghostscript'a

%description -l pl
gv umożliwia oglądanie plików postscriptowych i dokumentów PDF pod X
Window dostpniając interfejs użytkownika na interpreter postscriptu o
nazwie ghostscript. gv bazuje na na programie o nazie programi o nazie
ghostview. 

i %changelog:

- added -q %setup parameter,
- changed Buildroot to /tmp/%%{name}-%%{version}-root,
- added using %%{name} and %%{version} in Source,
- spec rewrited for using Buildroot,
- added using $RPM_OPT_FLAGS during compile,
- removed COPYING from %doc (copyright statment is in Copyright field),
- added %config macro for gv X resources,
- added pl translation,
- added %attr and %defattr macros in %files (allow build package from
  non-root account).

Proszę to jeszcze przejrzeć i jakby były jakieś błędy to proszę zgłaszać.

 -- Koncik speca ----------------------------
 --------------------------------------------
 -- taktyka ustawiania atrybutów w specach --
 --------------------------------------------

Można się spotkać z kilkoma różnymi sposobami. Pierwszy polega na tym, że
pakiet buduje się z toot-a i w %files nie ma rzadnych dodatkowych
atrybutów ustawiających UID/GID/perm .. wszystko jest przejmowane z
bierzącego stanu plików tuż przed rozpoczęciem kompletowania zawartości
poszczególnych pakietów.

Podejście złe, bo budowanie pakietów z root jest niebezpieczne. Przy jakiś
błedach w procedurze budowania pakietu można narobić niezłego bigosu.

Drugie podejście .. po najkrótszej linii oporu polega na dodaniu w
poszczególnych %files makra %defattr(-, root, root).
Też złe gdyż po pierwsze nie widać z samego speca jakie UID/GID/perm będą
miały poszxczególne pozycje wchdzące w skład pakietów. Powyższe w około
50-60% przypadków pakietów skutkuje ale IMHO jest to podejście na odwał.

Jest jeszcze podejście mieszane polegające na tym, że w %install używa
się czasem dla programu install "-m <perm>" przy instalowaniu plików lub
przy tworzeniu katalogów.
Też złe z powodów bardzo podobnych do poprzedniego podejścia.

"Dobra to jak to ustawiać ?"

IMHO %install kjest od tego żeby instalować/rozrzucać pliki po drzewku z
którego za kawałek będą zbierane pliki do nowego pakietu, a posczególne
%files od tego żeby tutaj jasno było uwidocznione co jakie ma atrybuty,
ajką grupę i użytkownik. Chodzi mniej więcej o to żeby majc tylko speca
można było w sposób jednoznaczny powiedzieć co jakie atrubuty będzie
miało.
Jak ktoś się przyjrzy specom jakie produkuję to one włąśnie spełniają
powyższy wymów, a jeżeli ktoś znajdzie ptrzypadek, który powyższego nie
spełnia, a wyszedł z pod mojej ręki to ma prawa mieć do mnie pretensje (o
ile jest to w miarę święży pakiet ;)

Jeszcze jedna uwaga dot makr %attr i %defattr. tak naprawdę to te makra są
trój lub cztero argumentowe:

%{def}attr(perm, user, group, dirperm)

Jak koś będzie chciał żeby domyślnie wszystkie pliki podkatalogi od
jakiegoś miejsca miały jakieś konkretne atrybuty to może dać:

%attr(perm, user, group, dirperm) /ka/ta/log

Należy tu zauważyć, że także /ka/ta/log wejdzie do pakietu. Jeżeli
chciałoby się żeby powyższe opisywało tylko pozycje poniżej /ka/ta/log to
całość należy nieco zmodyfikować:

%attr(perm, user, group, dirperm) /ka/ta/log/*

 -- humbug --

Tak. Przed wczoraj udało mi sie wypuścić knota w mc. Polegało to na tym,
żemiałem slanga 1.2.2 ale jednocześnie także gpm-a który był zlinikowany
ze starym libslang.so.0. W ostatecznym rozrachunku wyszła binarka
zlikowana z dwoma sl;angami, która nie chciała chodzić.

 -- Post scriptum --

Proszę o jakieś konkretne zapytania na priv dot budowania speców żeby
łatwiej było mi prowadzić kurs w odcinakach dot tego jak powinniśmy
budować pakiety.

Potem kolejne odcinki kursu będzie można zebrać w jeden większy dokument
robiąc z tego kompletny kurs.

kloczek
PS. Przepraszam za opóźnienie w edycji Biuletynu.
-----------------------------------------------------------
*Ludzie nie mają problemów, tylko sobie sami je stwarzają*
-----------------------------------------------------------
Tomasz Kłoczko, sys adm @zie.pg.gda.pl|*e-mail: kloczek w rudy.mif.pg.gda.pl*



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