gnustep-backend-art - bug w pakiecie
Radosław Kintzi
lists w eth0.prv.pl
Czw, 24 Lip 2003, 12:59:46 CEST
Zbudowałem GNUstepa i rozpocząłem testowanie.
Pierwszy problem, to brak fontów w aplikacjach (tych z gnustep-exaples,
oraz innych z netu). Ten błąd jest znany (było o nim na help-gnustep@)
i idąc za radą tam podaną przeszedłem na backend-art, odchodząc do
buga, o którym chciałem pisać:
$ defaults write NSGlobalDomain GSBackend libgnustep-back-art
$ openapp Calculator.app
objc runtime: cannot find class XGContext
Przerwane
Poprawiłem speca, tak by budował całość tylko raz z --enable-graphics=art
i po przeinstalowaniu pakietu gnustep-backend-art zaczęło działać zgodnie
z oczekiwaniami.
Przyjrzałem log z budowania (orginalny spec). Oto wyniki śledztwa:
Executing(%build):
(...)
make[2]: Leaving directory `/home/users/builder/rpm/BUILD/gnustep-back-0
.8.7/Source/art'
Making all for bundle libgnustep-back-art...
/usr/lib/GNUstep/System/Library/Makefiles/mkinstalldirs libgnustep-back-
art.bundle/ix86/linux-gnu/gnu-gnu-gnu
athlon-pld-linux-gcc GSBackend.m -c \
-MMD -MP -Wall -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRAR
Y=1 -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -fPIC -DGSWARN -DGSDIAGNOSE
-O2 -march=athlon -fno-strict-aliasing -fgnu-runtime -fconstant-string-
class=NSConstantString -I../Headers -Iix86/linux-gnu -I/usr/include/liba
rt-2.0 -I/usr/include/freetype2 -I/usr/X11R6/include -I. -I/home/users/b
uilder/GNUstep/Library/Headers/gnustep -I/usr/lib/GNUstep/Local/Library/
Headers/gnustep -I/usr/lib/GNUstep/Network/Library/Headers/gnustep -I/us
r/lib/GNUstep/System/Library/Headers/gnustep -I/home/users/builder/GNUst
ep/Library/Headers/ix86/linux-gnu -I/home/users/builder/GNUstep/Library/
Headers -I/usr/lib/GNUstep/Local/Library/Headers/ix86/linux-gnu -I/usr/l
ib/GNUstep/Local/Library/Headers -I/usr/lib/GNUstep/Network/Library/Head
ers/ix86/linux-gnu -I/usr/lib/GNUstep/Network/Library/Headers -I/usr/lib
/GNUstep/System/Library/Headers/ix86/linux-gnu -I/usr/lib/GNUstep/System
/Library/Headers \
-o shared_obj/ix86/linux-gnu/gnu-gnu-gnu/GSBackend.o
athlon-pld-linux-gcc -shared -rdynamic -s \
-o libgnustep-back-art.bundle/ix86/linux-gnu/gnu-gnu-gnu/libgnus
tep-back-art \
shared_obj/ix86/linux-gnu/gnu-gnu-gnu/GSBackend.o gsc/shared_obj
/ix86/linux-gnu/gnu-gnu-gnu/subproject.o x11/shared_obj/ix86/linux-gnu/g
nu-gnu-gnu/subproject.o art/shared_obj/ix86/linux-gnu/gnu-gnu-gnu/subpro
ject.o \
-L/usr/lib -L/usr/X11R6/lib -L/home/users/builder/GNUstep/Libra
ry/Libraries/ix86/linux-gnu/gnu-gnu-gnu -L/home/users/builder/GNUstep/Li
brary/Libraries/ix86/linux-gnu -L/usr/lib/GNUstep/Local/Library/Librarie
s/ix86/linux-gnu/gnu-gnu-gnu -L/usr/lib/GNUstep/Local/Library/Libraries/
ix86/linux-gnu -L/usr/lib/GNUstep/Network/Library/Libraries/ix86/linux-g
nu/gnu-gnu-gnu -L/usr/lib/GNUstep/Network/Library/Libraries/ix86/linux-g
nu -L/usr/lib/GNUstep/System/Library/Libraries/ix86/linux-gnu/gnu-gnu-gn
u -L/usr/lib/GNUstep/System/Library/Libraries/ix86/linux-gnu -L/usr/lib
-lart_lgpl_2 -lm -lfreetype -lz -lGL -lXft -lwraster -ltiff -lXpm -lHerm
es -lpng -lz -ljpeg -lungif -lXext -lX11 -lm -lfontconfig
Zatem wydaje się, ze łączenie libgnustep-back-art odbywa się w %build,
ale z drugiej strony:
Executing(%install):
(...)
+ /usr/bin/make install \
GNUSTEP_INSTALLATION_DIR=/home/users/builder/tmp/gnustep \
-back-0.8.7-root-builder/usr/lib/GNUstep/System BUILD_GRAPHICS=art \
BACKEND_NAME=back-art
Making all in Source...
make[1]: Entering directory
`/home/users/builder/rpm/BUILD/gnustep-back-0.8.7/Source'
Making all in subprojects of bundle libgnustep-back-art...
make[2]: Entering directory
`/home/users/builder/rpm/BUILD/gnustep-back-0.8.7/Source/gsc'
Making all for subproject gsc...
make[3]: Nothing to be done for `internal-subproject-all'.
make[2]: Leaving directory
`/home/users/builder/rpm/BUILD/gnustep-back-0.8.7/Source/gsc'
(...)
make[2]: Entering directory
`/home/users/builder/rpm/BUILD/gnustep-back-0.8.7/Source/art'
Making all for subproject art...
make[3]: Nothing to be done for `internal-subproject-all'.
make[2]: Leaving directory
`/home/users/builder/rpm/BUILD/gnustep-back-0.8.7/Source/art'
Making all for bundle libgnustep-back-art...
Linking bundle libgnustep-back-art ...
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Copying resources from subprojects into the bundle wrapper...
make[1]: Leaving directory
`/home/users/builder/rpm/BUILD/gnustep-back-0.8.7/Source'
To łączenie libgnustep-back-art (o ile faktycznie ma tutaj miejsce) jest
wykonywane po przebudowaniu całości z --enable-graphics=xlib, czyli w drzewie,
gdzie .o są przygotowane dla libgnustep-back.
Zrobiłem jeszcze test:
$ rpmbuild -bc gnustep-back.spec > /dev/null 2>&1
$ stat ../BUILD/gnustep-back-0.8.7/Source/libgnustep-back-art.bundle/ix86/linux-gnu/gnu-gnu-gnu/libgnustep-back-art
Size: 513852 Blocks: 1008 IO Block: 4096 zwykły plik
Device: 307h/775d Inode: 12592941 Links: 1
Access: (0755/-rwxr-xr-x) Uid: ( 504/ radek) Gid: ( 1000/ users)
Access: 2003-07-24 12:47:37.000000000 +0200
Modify: 2003-07-24 12:47:37.000000000 +0200
Change: 2003-07-24 12:47:37.000000000 +0200
$ rpmbuild -bi --short-circuit gnustep-back.spec > /dev/null 2>&1
$ stat ../BUILD/gnustep-back-0.8.7/Source/libgnustep-back-art.bundle/ix86/linux-gnu/gnu-gnu-gnu/libgnustep-back-art
Size: 513852 Blocks: 1008 IO Block: 4096 zwykły plik
Device: 307h/775d Inode: 12592941 Links: 1
Access: (0755/-rwxr-xr-x) Uid: ( 504/ radek) Gid: ( 1000/ users)
Access: 2003-07-24 12:49:34.000000000 +0200
Modify: 2003-07-24 12:49:33.000000000 +0200
Wydaje się, że w %install następuje ponowne łączenie i to jest powodem tego,
że backend-art jest nieużywalny.
Nie testowałem jak jest w przypadku libgnustep-back-xdps, ale
podejrzewam, że mogą być podobne szopki.
Możliwości są dwie:
1. Przygotować łatę na źródła, poprawiającą instalację (tego się nie
podejmuje, bo z gnustepem dopiero zaczynam)
2. Poprawić speca, tak by budował dla trzech backendów w trzech różnych
katalogach w BUILD i z nich instalował (to mogę zrobić i jeżeli nie
będzie lepszych rozwiązań zrobię)
Radek
--
Radosław Kintzi
mailto:radzio w pld-linux.org
gg:2199600
Więcej informacji o liście dyskusyjnej pld-devel-pl