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