SPEC dla MyPaint
Andrzej Kilijański
and3md at gmail.com
Sat Apr 9 23:38:33 CEST 2011
On Saturday 09 of April 2011 18:16:26 Michał Lisowski wrote:
> W dniu 08.04.2011 21:46, Andrzej Kilijański pisze:
> > On Friday 08 of April 2011 14:57:19 Michał Lisowski wrote:
> >> $ ./builder -bb mypaint
> >>
> >> ...
> >>
> >> + /usr/bin/scons -j4 LDFLAGS=-Wl,--as-needed
> >> -Wl,--no-copy-dt-needed-entries -Wl,-z,relro -Wl,-z,combreloc
> >> CFLAGS=-O2 -fno-strict-aliasing -fwrapv -march=i686 -mtune=pentium4
> >> -gdwarf-3 -g2 CXXFLAGS=-O2 -fno-strict-aliasing -fwrapv -march=i686
> >> -mtune=pentium4 -gdwarf-3 -g2 FFLAGS=-O2 -fno-strict-aliasing -fwrapv
> >> -march=i686 -mtune=pentium4 -gdwarf-3 -g2 CPPFLAGS=-D_FORTIFY_SOURCE=2
> >> CC=i686-pld-linux-gcc CXX=i686-pld-linux-g++ libsuffix=lib prefix=/usr
> >> scons: Reading SConscript files ...
> >> Building for python2.7
> >> swig -o mypaintlib_wrap.cpp -noproxydel -python -c++ mypaintlib.i
> >> sh: swig: not found
> >> scons: *** Error 127
> >> błąd: Błędny status wyjścia z /home/users/lisu/tmp/rpm-tmp.7751 (%build)
> >>
> >> ...
> >>
> >> Oprócz swiga brakuje jeszcze desktop-file-utils (bo używane jest
> >> update-desktop-database).
> >
> > Witam, wykonałem kolejne poprawki :)
> > Dodałem brakujące zależności desktop-file-utils, swig, swig-python,
>
> > gettext-devel, gettext oraz pliki dokumentacji:
> gettext jest używany w specu?
Zasugerowałem się plikiem README z aplikacji ale rzeczywiście nie jest
potrzebny.
> > %doc COPYING LICENSE README changelog
> > %doc doc/*
>
> to zapisujemy w jednej linijce. Inna sprawa: COPYING i LICENSE nie
> paczkujemy dla licencji GPL
>
> > Czy istnieje jakaś prosta metoda określania zależności pakietu?
>
> Można w poldku po zbudowaniu pakietu wywołać
>
> > desc -R pakiet.rpm
>
Po wydaniu komendy desc -R mypaint lista jest pusta (jak jestem w folderze
all-avail to ta opcja działa, niestety pakiet mypaint jest tylko dostępny z
installed gdzie desc -R daje pustą listę dla każdego pakietu, błąd?), ale
wydając komendę
desc -r mypaint zostaje wyrzucona lista:
/bin/bash, /bin/sh, /bin/sh, /usr/bin/env, hicolor-icon-theme, libc.so.6,
libc.so.6(GLIBC_2.0), libc.so.6(GLIBC_2.1),
libc.so.6(GLIBC_2.1.3), libc.so.6(GLIBC_2.11), libc.so.6(GLIBC_2.3.4),
libdl.so.2, libgcc_s.so.1, libgcc_s.so.1(GCC_3.0), libglib-2.0.so.0,
libm.so.6,
libm.so.6(GLIBC_2.0), libm.so.6(GLIBC_2.1), libpng, libpng14.so.14,
libpng14.so.14(PNG14_0), libpthread.so.0, libpython2.7.so.1.0, libstdc++.so.6,
libstdc++.so.6(CXXABI_1.3), libstdc++.so.6(GLIBCXX_3.4), libutil.so.1,
python-numpy, python-numpy-numarray, python-pycairo, python-pygtk-gtk,
rtld(GNU_HASH)
czy to oznacza że do listy Requires: powinienem dodać:
bash (/bin/bash)
pdksh (/bin/sh)
coreutils (/usr/bin/env)
glibc (libc.so.6)
libgcc (libgcc_s.so.1)
glib2 (libglib-2.0.so.0)
libstdc++ (libstdc++.so.6)
zlib (z ldd /usr/lib/mypaint/_mypaintlib.so)?
Ale z drugiej strony:
libpng wymaga glibc, zlib, ldconfig
glibc wymaga pdksh
libstdc++ wymaga libgcc
python-pygtk-gtk wymaga glib2
W dokumentacji dla developerów PLD znalazłem, że powinno się podawać wszystko
poza modułami jądra, z dopiskiem TODO, że to już nieaktualne i powinno się
unikać nadmiarowych Requires. Może więc powinienem dodać tylko:
bash
coreutils
libstdc++ ?
Idąc tym tropem powinienem wyrzucić:
- python-numpy ponieważ jest wymagany przez python-numpy-numarray
- swig ponieważ jest wymagany przez swig-python
> Można też wywalić wszystkie pakiety -devel z systemu i próbować budować
> speca, będzie się pluł o to, czego nie ma.
>
> Można też zobaczyć z czym się linkują plik wynikowe (binaria, biblioteki).
>
> > Próbowałem budować pakiety za pomocą skryptu builder ale dostaje
> > komunikaty błedów:
> >
> > ./builder -bb mypaint
> > builder: SMP make flags are set to -j8
> > Warning: No CVS access defined - using local .spec file
> > cvs checkout: CVSROOT is set but empty! Make sure that the
> > cvs checkout: specification of CVSROOT is legal, either via the
> > cvs checkout: `-d' option, the CVSROOT environment variable, or the
> > cvs [checkout aborted]: CVS/Root file (if any).
> > Error: spec file not stored in CVS repo.
> >
> > o dziwo mam ustawiony CVSROOT:
> > $ echo $CVSROOT
> >
> > :pserver:cvs w cvs.pld-linux.org:/cvsroot
> >
> > próbowałem także kombinacji:
> > ./builder -bb -ncs -nc -nn mypaint
> >
> > ale mimo opcji -ncs dostaję komunikat:
> > builder: SMP make flags are set to -j8
> > Error: spec file not stored in CVS repo.
> >
> > Z tego powodu używam standardowego rpmbuild -bb.
>
> Oczywiście masz strukturę ~/rpm/{packages,RPMS,BUILD}?
>
Przyznaję moja wina miałem nieaktualną strukturę z folderem SPEC,
teraz wszystko działa bez zarzutu.
> Budowanie rpma powinno wyglądać tak:
>
> $ cd ~/rpm/packages
> $ ./builder -bb mypaint/mypaint.spec
>
> Oczywiście wcześniej musisz stworzyć katalog ~/rpm/packages/mypaint i
> umieścić w nim plik mypaint.spec.
>
> _______________________________________________
> pld-devel-pl mailing list
> pld-devel-pl w lists.pld-linux.org
> http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl
More information about the pld-devel-pl
mailing list