Biuletyn PLD nr 4
Tomasz Kłoczko
kloczek w rudy.mif.pg.gda.pl
Pią, 28 Sie 1998, 04:59:59 CEST
-- "LDFLAGS=-s" ----------------------------
--------------------------------------------
Chciałem zwrócić uwagę na coś takiego co jest w tytule. Może się zdażyć,
że jeżeli do pakietu do, którego dodaje się modyfikaję która dodaje
używanie $RPM_OPT_FLAGS w trakcie kompilacji po wszystkim otrzymamy
pakiet, który jest o wiele większych rozmiarów niż wcześniejsze. Winne tu
jest brak -s przy kompilacji, które domyślnie znajdowało się w CFLAGS,
któpre to zostało przysłoniete przez zawarość $RPM_OPT_FLAGS.
Rozwiązaniem wtedy jest dodane jeszcze jednej zmiennej LDFLAGS=-s. Zmienna
ta jest używana jest następnie na poziomie Makefile przy ostatecznym
linkowaniu wszystkich plików .o i bibliotek. Dzisiaj natknąłem się na dwa
takie pakiety, które wymagały dodania LDFLAGS=-s (rozmiary rpm-ów: most
194KB bez i 34KB z -s; jed 640KB bez i 440KB z -s). Przypuszczam, że
takich przypadków będzie jeszcze dość dużo gdyż spora część pakietów nie
używa jeszcze $RPM_OPT_FLAGS. Także jeżeli ktoś już będzie miał w miarę
wyczyszczonego spece, a wiadomo że dodawał używanie $RPM_OPT_FLAGS to
warto przyjrzeć się jak są linkowane binarki w trakcie budowania (z -s czy
bez) i czy w razie czego kompilaty jakie otrzymujemy nie są za duże. W
razie czego dobrze by było dodać dodatkowo LDFLAGS=-s.
$RPM_OPT_FLAGS jest przekazywane typowo w zmiennej środowiska dla
configure. Czyli takie typowe wołanie confogure może wyglądać na jeden z
dwuch sposobów:
LDFLAGS=-s CFLAGS=$RPM_OPT_FLAGS ./ configure ....
lub
CFLAGS=$RPM_OPT_FLAGS ./ configure ....
Może jeszcze raz przypomnę po co dodać *trzeba* używanie $RPM_OPT_FLAGS do
każdego pakietu. Chodzi o to, że dzięki temu mamy przenoszalny src.rpm
między różnymi platformami, którego sposobem optymalizacji generowanego
kodu można sterować z zewnątrz rpm-a na poziomie .rpmrc.
-- Koncik Speca ----------------------------
--------------------------------------------
No niestety dzisiaj sobie daruję. Miałem dzisiaj trochę walki wręcz z
takim pseudo hakerem, który floodował mi jedno z łącz przez ponad dwa dni,
a potem popadłem w paranoiczne sprawdzanie różnych rzeczy i mało co się
nie zapętliłem znajdując pewne własne ślady (przeróbka eggdroppa), które
wziołem za ślady włamania ;)
Jutro postaram sie omówić (wedle rzyczenia) sprawy związane z makrami w
sekcji %files.
-- Nowe pakiety ----------------------------
--------------------------------------------
- jed
Nowa wersja, która mogła być skompilowania dzieki temu, że jest slang
1.2.2
- added -q %setup parameter,
- added using %%{name} macro in Source,
- spec file rewritten for using Buildroot,
- added %clean section,
- added LDFLAGS=-s (for dynamic linking with slang),
- removed not neccesary now patches,
- added %defattr and %attr macros in %files (allows building package
from non-root account).
Uwagi: brak polskiego tłumaczenia w specu.
- most
Jak wyżej też nowy dzieki slangowi
- %%{version} macro instead %%{PACKAGE_VERSION},
- added LDFLAGS=-s (for dynamic linking with slang),
- added pl translation,
- added -q %setup parameter,
- added using %%{name} macro in Buildroot and Source,
Uwagi: skończony.
- sh-utils
Zawartość pakietu bazuje na tym co zrobił Konrad Stepien.
- added pl locale and translation,
- remove -s flag in install,
- added full %attr description in %files,
- changed permisiion to 600 on /etc/pam.d.su,
- added %lang macros for /usr/share/locale/*/LC_MESSAGES/sh-utils.mo
files,
- removed chroot (also is in util-linux),
- fix problem wuth su when building non root.
-- Poprawki --------------------------------
--------------------------------------------
Poprawiłem automake. Przez przypadek nie dodałem %attr(755, root, root)
dla skryptów i nie miały atrybutów exec - rewizja pakietu nie uległa
zmianie).
-- mc po polsku ----------------------------
--------------------------------------------
Wersja obecnie dostępna jest już poprawna (nie zauważyłem żadnych
kłopotów). Mały przepis jak to sobie zainstalować. Trzeba ściągnąć trzy
pakiety: mc, slang i gpm i:
# rpm -i slang-1.2.2*rpm
# rpm -U mc-*rpm gpm-*rpm
Trzeba tylko pamiętać, że jak już wszystkie programy się przerzuci na
nowego slanga to będzie trzeba wykasować ręcznie starego przez:
# rpm -e slang-0.99.38
--------------------------------------------
W repozytorium speców mam obecie 44 sztuki, z których daje się już
wyprodukować ponad setkę pakietów. Jesteśmy w okolicach 10-15% całości.
Listę priorytetowych pakietów postaram się posłać jutro w okolicach
poudnia.
kloczek
PS. Adam sprawdź PePeSze czy działa i spróbuj się wypowiedzieć o
efektywności tego automatu.
-----------------------------------------------------------
*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