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