Próbuję skompilować program gnapi do pobrania
tutajMój system operacyjny to OpenSuSE 12.1 64bit
W instrukcji instalacji tego programu czytamy:
Dependencies
Gnapi needs following *development* packages:
- gtk2.0,
- libnotify,
- libsoup2.4,
- libxml2,
- glib2.0,
- gconf2.0,
- gmodule2.0,
- libnautilus-extension,
- gnome-vfs,
- libavcodec, libavutil, libavformat (or ffmpeg or libav).
You need also:
- C compiler (gcc or clang),
- ld,
- strip,
- make,
- install,
- pkg-config.
These programs should be part of binutils and/or build-essentials packages.
*** Compilation/Installation under Linux
Make sure you've installed all packages mentioned above!
After that type:
make
sudo make install
Compile with Clang (or other compiler):
make CC=clang
Install to other dir:
sudo make install DESTDIR=/home/me/programs/gnapi
Ja mam takie pakiety
gtk2.0gienek@stacjonarny:~> rpm -qa | grep gtk2-devel
gtk2-devel-2.24.7-2.5.1.x86_64
gienek@stacjonarny:~>
libnotifygienek@stacjonarny:~> rpm -qa |grep libnotify-devel
libnotify-devel-0.7.4-3.1.2.x86_64
gienek@stacjonarny:~>
libsoup2.4gienek@stacjonarny:~> rpm -qa | grep libsoup-devel
libsoup-devel-2.36.1-2.1.3.x86_64
gienek@stacjonarny:~>
libxml2gienek@stacjonarny:~> rpm -qa | grep libxml2-devel
libxml2-devel-2.7.8+git20110708-3.1.2.x86_64
gienek@stacjonarny:~>
glib2.0gienek@stacjonarny:~> rpm -qa | grep glib2-devel
glib2-devel-2.30.1-2.1.2.x86_64
glib2-devel-static-2.30.1-2.1.2.x86_64
gienek@stacjonarny:~>
gconf2.0gienek@stacjonarny:~> rpm -qa | grep gconf2-devel
gconf2-devel-3.2.0-2.2.2.x86_64
gienek@stacjonarny:~>
gmodule2.0gienek@stacjonarny:~> rpm -qa | grep gmodule
libgmodule-2_0-0-32bit-2.30.1-2.1.2.x86_64
libgmodule-2_0-0-2.30.1-2.1.2.x86_64
gienek@stacjonarny:~>
niestety nie mogę znaleźć pakietu
gmodule-devel ale czy to nie jest to samo co glib2-devel?
libnautilus-extensiongienek@stacjonarny:~> rpm -qa | grep nautilus-devel
nautilus-devel-3.2.1-2.1.2.x86_64
gienek@stacjonarny:~>
gnome-vfsgienek@stacjonarny:~> rpm -qa | grep gnome-vfs2-devel
gnome-vfs2-devel-2.24.4-7.1.2.x86_64
gienek@stacjonarny:~>
libavcodec, libavutil, libavformat (or ffmpeg or libav)gienek@stacjonarny:~> rpm -qa | grep libffmpeg-devel
libffmpeg-devel-0.9-1.1.x86_64
gienek@stacjonarny:~>
libavcodec, libavutil, libavformat (or ffmpeg or libav)gienek@stacjonarny:~> rpm -qa | grep libavahi-devel
libavahi-devel-0.6.30-10.1.3.x86_64
gienek@stacjonarny:~>
gccgienek@stacjonarny:~> rpm -qa | grep gcc
gcc46-fortran-4.6.2_20111026-1.1.4.x86_64
gcc46-4.6.2_20111026-1.1.4.x86_64
libgcc46-32bit-4.6.2_20111026-1.1.4.x86_64
gcc-objc-4.6-15.1.3.x86_64
gcc33-fortran-3.3.3-30.25.2.x86_64
gcc46-c++-4.6.2_20111026-1.1.4.x86_64
gcc-gij-4.6-15.1.3.x86_64
gcc-4.6-15.1.3.x86_64
gcc-obj-c++-4.6-15.1.3.x86_64
gcc46-objc-4.6.2_20111026-1.1.4.x86_64
gcc-fortran-4.6-15.1.3.x86_64
gcc-c++-4.6-15.1.3.x86_64
gcc46-obj-c++-4.6.2_20111026-1.1.4.x86_64
gcc33-3.3.3-30.25.2.x86_64
libgcc46-4.6.2_20111026-1.1.4.x86_64
gcc46-gij-4.6.2_20111026-1.1.2.x86_64
gcc33-c++-3.3.3-30.25.2.x86_64
gienek@stacjonarny:~>
clanggienek@stacjonarny:~> rpm -qa | grep clang
llvm-clang-devel-3.0-1.5.1.x86_64
llvm-clang-3.0-1.5.1.x86_64
gienek@stacjonarny:~>
ldnie mam pojęcia o co chodzi z tym ld. Jakieś sugestie?
stripgienek@stacjonarny:~> rpm -qa | grep Strip
perl-HTML-Strip-1.06-4.5.x86_64
gienek@stacjonarny:~>
makegienek@stacjonarny:~> rpm -qa | grep make
make-3.82-147.1.2.x86_64
gienek@stacjonarny:~>
installgienek@stacjonarny:~> rpm -qa | grep install
install-initrd-branding-openSUSE-13.20-1.4.1.x86_64
checkinstall-1.6.2-14.1.2.x86_64
autoyast2-installation-2.21.4-2.1.2.noarch
libksuseinstall1-4.7.2-5.2.2.x86_64
yast2-installation-2.21.28-125.1.noarch
install-initrd-13.20-1.4.1.x86_64
gienek@stacjonarny:~>
pkg-configgienek@stacjonarny:~> rpm -qa | grep pkg-config
pkg-config-0.25-7.1.5.x86_64
gienek@stacjonarny:~>
To wszystko co mam z tego co jest zapisane w pliku
INSTALL. Jeśli powinienem coś doinstalować to proszę o podpowiedź.
Gdy wydaję polecenie make to pojawia mi się błąd
gienek@stacjonarny:~/Pulpit/gnapi-0.2.2> make -j5
cc -c ./src/gengine.c -o ./src/gengine.o -g -Wall -O2 -Wformat-security `pkg-config --cflags gtk+-2.0 gconf-2.0 gnome-vfs-2.0 libsoup-2.4 gmodule-2.0 libnautilus-extension`
cc -c ./src/plugins/napiprojekt/napi.c -o ./src/plugins/napiprojekt/napi.o -g -Wall -O2 -Wformat-security `pkg-config --cflags gtk+-2.0 gconf-2.0 gnome-vfs-2.0 libsoup-2.4 gmodule-2.0 libnautilus-extension` -fPIC
cc -c ./src/plugins/opensubtitles/os.c -o ./src/plugins/opensubtitles/os.o -g -Wall -O2 -Wformat-security `pkg-config --cflags gtk+-2.0 gconf-2.0 gnome-vfs-2.0 libsoup-2.4 gmodule-2.0 libnautilus-extension` -fPIC
cc -c ./src/plugins/nautilus/gnapi_nautilus.c -o ./src/plugins/nautilus/gnapi_nautilus.o -g -Wall -O2 -Wformat-security `pkg-config --cflags gtk+-2.0 gconf-2.0 gnome-vfs-2.0 libsoup-2.4 gmodule-2.0 libnautilus-extension` -fPIC
./src/plugins/nautilus/gnapi_nautilus.c: In function ‘get_file_items’:
./src/plugins/nautilus/gnapi_nautilus.c:51:17: warning: variable ‘gnapi’ set but not used [-Wunused-but-set-variable]
./src/gengine.c: In function ‘get_movie_info’:
./src/gengine.c:84:2: warning: ‘av_open_input_file’ is deprecated (declared at /usr/include/libavformat/avformat.h:1430) [-Wdeprecated-declarations]
./src/gengine.c:86:2: warning: ‘av_find_stream_info’ is deprecated (declared at /usr/include/libavformat/avformat.h:1476) [-Wdeprecated-declarations]
./src/gengine.c:96:2: warning: ‘avcodec_open’ is deprecated (declared at /usr/include/libavcodec/avcodec.h:4073) [-Wdeprecated-declarations]
./src/gengine.c:75:8: warning: variable ‘streams’ set but not used [-Wunused-but-set-variable]
cc ./src/plugins/nautilus/gnapi_nautilus.o -shared -Wl,-export-dynamic,-soname,libnautilus-gnapi.so.1 -o libnautilus-gnapi.so -g -Wall -O2 -Wformat-security `pkg-config --cflags gtk+-2.0 gconf-2.0 gnome-vfs-2.0 libsoup-2.4 gmodule-2.0 libnautilus-extension` -fPIC `pkg-config --libs libnautilus-extension gtk+-2.0` -fPIC
cc -c ./src/plugins/napiprojekt/repbad.c -o ./src/plugins/napiprojekt/repbad.o -g -Wall -O2 -Wformat-security `pkg-config --cflags gtk+-2.0 gconf-2.0 gnome-vfs-2.0 libsoup-2.4 gmodule-2.0 libnautilus-extension` -fPIC
cc -c ./src/plugins/opensubtitles/os_config.c -o ./src/plugins/opensubtitles/os_config.o -g -Wall -O2 -Wformat-security `pkg-config --cflags gtk+-2.0 gconf-2.0 gnome-vfs-2.0 libsoup-2.4 gmodule-2.0 libnautilus-extension` -fPIC
cc -c ./src/gplugins.c -o ./src/gplugins.o -g -Wall -O2 -Wformat-security `pkg-config --cflags gtk+-2.0 gconf-2.0 gnome-vfs-2.0 libsoup-2.4 gmodule-2.0 libnautilus-extension`
./src/gplugins.c: In function ‘upload_once_plugin’:
./src/gplugins.c:167:10: warning: variable ‘status’ set but not used [-Wunused-but-set-variable]
./src/gplugins.c: In function ‘upload_once’:
./src/gplugins.c:192:10: warning: variable ‘status’ set but not used [-Wunused-but-set-variable]
./src/gplugins.c: In function ‘report_bad’:
./src/gplugins.c:217:10: warning: variable ‘status’ set but not used [-Wunused-but-set-variable]
cc ./src/plugins/opensubtitles/os.o ./src/plugins/opensubtitles/os_config.o -shared -Wl,-soname,libopensub.so.1 -o libopensub.so -g -Wall -O2 -Wformat-security `pkg-config --cflags gtk+-2.0 gconf-2.0 gnome-vfs-2.0 libsoup-2.4 gmodule-2.0 libnautilus-extension` -fPIC `pkg-config --libs gtk+-2.0 libsoup-2.4` -fPIC
cc -c ./src/plugins/napiprojekt/sendsubs.c -o ./src/plugins/napiprojekt/sendsubs.o -g -Wall -O2 -Wformat-security `pkg-config --cflags gtk+-2.0 gconf-2.0 gnome-vfs-2.0 libsoup-2.4 gmodule-2.0 libnautilus-extension` -fPIC
cc -c ./src/interface.c -o ./src/interface.o -g -Wall -O2 -Wformat-security `pkg-config --cflags gtk+-2.0 gconf-2.0 gnome-vfs-2.0 libsoup-2.4 gmodule-2.0 libnautilus-extension`
cc -c ./src/plugins/napiprojekt/napi_config.c -o ./src/plugins/napiprojekt/napi_config.o -g -Wall -O2 -Wformat-security `pkg-config --cflags gtk+-2.0 gconf-2.0 gnome-vfs-2.0 libsoup-2.4 gmodule-2.0 libnautilus-extension` -fPIC
cc -c ./src/scan.c -o ./src/scan.o -g -Wall -O2 -Wformat-security `pkg-config --cflags gtk+-2.0 gconf-2.0 gnome-vfs-2.0 libsoup-2.4 gmodule-2.0 libnautilus-extension`
cc -c ./src/plugins/napiprojekt/napi_common.c -o ./src/plugins/napiprojekt/napi_common.o -g -Wall -O2 -Wformat-security `pkg-config --cflags gtk+-2.0 gconf-2.0 gnome-vfs-2.0 libsoup-2.4 gmodule-2.0 libnautilus-extension` -fPIC
cc -c ./src/gnapi.c -o ./src/gnapi.o -g -Wall -O2 -Wformat-security `pkg-config --cflags gtk+-2.0 gconf-2.0 gnome-vfs-2.0 libsoup-2.4 gmodule-2.0 libnautilus-extension`
cc ./src/plugins/napiprojekt/napi.o ./src/plugins/napiprojekt/repbad.o ./src/plugins/napiprojekt/sendsubs.o ./src/plugins/napiprojekt/napi_config.o \\
./src/plugins/napiprojekt/napi_common.o -shared -Wl,-soname,libnapi.so.1 -o libnapi.so -g -Wall -O2 -Wformat-security `pkg-config --cflags gtk+-2.0 gconf-2.0 gnome-vfs-2.0 libsoup-2.4 gmodule-2.0 libnautilus-extension` -fPIC `pkg-config --libs gtk+-2.0 gconf-2.0 libsoup-2.4`
cc -c ./src/http_post.c -o ./src/http_post.o -g -Wall -O2 -Wformat-security `pkg-config --cflags gtk+-2.0 gconf-2.0 gnome-vfs-2.0 libsoup-2.4 gmodule-2.0 libnautilus-extension`
cc ./src/gnapi.o ./src/gengine.o ./src/gplugins.o ./src/interface.o ./src/scan.o ./src/http_post.o -o gnapi -g -Wall -O2 -Wformat-security `pkg-config --cflags gtk+-2.0 gconf-2.0 gnome-vfs-2.0 libsoup-2.4 gmodule-2.0 libnautilus-extension` `pkg-config --libs gtk+-2.0 gconf-2.0 gnome-vfs-2.0 libsoup-2.4 gmodule-2.0` -lnotify -lavformat -Wl,-export-dynamic
/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/bin/ld: ./src/gplugins.o: undefined reference to symbol 'dlsym@@GLIBC_2.2.5'
/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/bin/ld: note: 'dlsym@@GLIBC_2.2.5' is defined in DSO /lib64/libdl.so.2 so try adding it to the linker command line
/lib64/libdl.so.2: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
make: *** [gnapi] Błąd 1
gienek@stacjonarny:~/Pulpit/gnapi-0.2.2>
Nie bardzo wiem o co chodzi. Z góry dziękuję pomoc.EDIT -18.12.2011 - ROZWIĄZANIEW końcu udało mi się rozwiązać problem.
gnapi 0.2.2 jest wersją ciut przestarzałą jak na OpenSuSE 12.1 i zawiera dość stare zależności. Aby zainstalować Gnapi należy pobrać najnowsze źródła za pomocą svn. Aby to zrobić tworzymy jakiś katalog, wchodzimy do niego i wydajemy polecenie:
svn co https://gnapi.svn.sourceforge.net/svnroot/gnapi gnapi
i czekamy aż pobierze nam źródła.
Następnie wchodzimy do katalogu ze źródłami i wydajemy polecenie
Jeśli konfigurator zasygnalizuje nam, że czegoś brakuje to należy to doinstalować. Gdy konfiguracja zakończy się pomyślnie to wydajemy polecenie
zamiast literki x wstawiamy (aby nie przesadzić) cyfrę o jeden większą niż ilość rdzeni w naszym procesorze. Na przykład jeśli posiadamy procesor czterordzeniowy to wydajemy polecenie
make -j5. Skutecznie przyśpiesza to proces kompilacji.
Po prawidłowy skompilowaniu programu tworzymy pakiet rpm. W tym celu logujemy się jako root
Następnie będąc zalogowanym jako root wydajemy polecenie które tworzy pakiet rpm czyli
Podajemy wszystkie dane aby nasz pakiet rpm miał jakiś ludzką nazwę i opis. Podczas tworzenia pakietu program checkinstall wywali prawdopodobnie kilka błędów odnośnie braku katalogów. Musimy je utworzyć w systemie i cały proces tworzenia pakietu zacząć od nowa. Czyli od momentu wydania polecenia checkinstall.
Gdy już utworzymymy pakiet rpm to instalujemy go za pomocą polecenia rpm -i nazwa_pakietu. I to w zasadzie wszystko. Po uruchomieniu programu musimy go skonfigurować ale to już inna bajka. U mnie wygląda to tak
gienek@stacjonarny:~> rpm -qa | grep gnapi
gnapi-0.3.0-1.x86_64
gienek@stacjonarny:~>
gienek@stacjonarny:~> rpm -ql gnapi-0.3.0-1.x86_64
/usr
/usr/doc
/usr/doc/gnapi
/usr/doc/gnapi/ABOUT-NLS
/usr/doc/gnapi/AUTHORS
/usr/doc/gnapi/COPYING
/usr/doc/gnapi/ChangeLog
/usr/doc/gnapi/INSTALL
/usr/doc/gnapi/NEWS
/usr/doc/gnapi/README
/usr/doc/gnapi/TODO
/usr/doc/gnapi/docs
/usr/doc/gnapi/docs/.svn
/usr/doc/gnapi/docs/.svn/all-wcprops
/usr/doc/gnapi/docs/.svn/entries
/usr/doc/gnapi/docs/.svn/prop-base
/usr/doc/gnapi/docs/.svn/prop-base/copyright.svn-base
/usr/doc/gnapi/docs/.svn/props
/usr/doc/gnapi/docs/.svn/text-base
/usr/doc/gnapi/docs/.svn/text-base/Makefile.am.svn-base
/usr/doc/gnapi/docs/.svn/text-base/Makefile.in.svn-base
/usr/doc/gnapi/docs/.svn/text-base/copyright.svn-base
/usr/doc/gnapi/docs/.svn/text-base/gnapi.1.svn-base
/usr/doc/gnapi/docs/.svn/tmp
/usr/doc/gnapi/docs/.svn/tmp/prop-base
/usr/doc/gnapi/docs/.svn/tmp/props
/usr/doc/gnapi/docs/.svn/tmp/text-base
/usr/doc/gnapi/docs/Makefile
/usr/doc/gnapi/docs/Makefile.am
/usr/doc/gnapi/docs/Makefile.in
/usr/doc/gnapi/docs/copyright
/usr/doc/gnapi/docs/gnapi.1
/usr/lib64
/usr/lib64/nautilus
/usr/lib64/nautilus/extensions-3.0
/usr/lib64/nautilus/extensions-3.0/libnautilus-gnapi.so
/usr/local
/usr/local/bin
/usr/local/bin/gnapi
/usr/local/lib64
/usr/local/lib64/gnapi
/usr/local/lib64/gnapi/plugins
/usr/local/lib64/gnapi/plugins/libnapi.so
/usr/local/lib64/gnapi/plugins/libnapisyinfo.so
/usr/local/lib64/gnapi/plugins/libopensub.so
/usr/local/share
/usr/local/share/Thunar
/usr/local/share/Thunar/sendto
/usr/local/share/Thunar/sendto/gnapi-kde.desktop
/usr/local/share/applications
/usr/local/share/applications/gnapi.desktop
/usr/local/share/apps
/usr/local/share/apps/dolphin
/usr/local/share/apps/dolphin/servicemenus
/usr/local/share/apps/dolphin/servicemenus/gnapi-kde.desktop
/usr/local/share/apps/konqueror
/usr/local/share/apps/konqueror/servicemenus
/usr/local/share/apps/konqueror/servicemenus/gnapi-kde.desktop
/usr/local/share/gnapi
/usr/local/share/gnapi.png
/usr/local/share/gnapi/info.glade
/usr/local/share/gnapi/napi_config.glade
/usr/local/share/gnapi/niwindow.glade
/usr/local/share/gnapi/os.png
/usr/local/share/gnapi/os_config.glade
/usr/local/share/gnapi/plugins.glade
/usr/local/share/gnapi/scan.glade
/usr/local/share/kde4
/usr/local/share/kde4/services
/usr/local/share/kde4/services/ServiceMenus
/usr/local/share/kde4/services/ServiceMenus/gnapi-kde4.desktop
/usr/local/share/man
/usr/local/share/man/man1
/usr/local/share/man/man1/gnapi.1.gz
/usr/local/share/pixmaps
/usr/local/share/pixmaps/gnapi
/usr/local/share/pixmaps/gnapi/downloading.png
/usr/local/share/pixmaps/gnapi/gnapi.png
/usr/local/share/pixmaps/gnapi/os.png
/usr/local/share/pixmaps/gnapi/v-15.png
/usr/local/share/pixmaps/gnapi/v-18.png
/usr/local/share/pixmaps/gnapi/v-bo.png
/usr/local/share/pixmaps/gnapi/v-warn.png
gienek@stacjonarny:~>
gienek@stacjonarny:~> rpm -qi gnapi-0.3.0-1.x86_64
Name : gnapi
Version : 0.3.0
Release : 1
Architecture: x86_64
Install Date: nie, 18 gru 2011, 12:20:56
Group : Applications/System
Size : 457438
License : GPL
Signature : (none)
Source RPM : gnapi-0.3.0-1.src.rpm
Build Date : nie, 18 gru 2011, 12:20:36
Build Host : stacjonarny
Relocations : (not relocatable)
Packager : checkinstall-1.6.2
Summary : Pobieranie napisów z: NapiProjekt, OpenSubtitles.org, Napisy.info
Description :
Package created with checkinstall 1.6.2
Distribution: (none)
gienek@stacjonarny:~>
Konfiguracja
http://gnapi.sourceforge.net/news.htmlI to już wszystko. Jak to działa tego nie wiem bo jeszcze nie przetestowałem ale program wygląda równie ciekawie a nawet bardziej ciekawie jak qnapi.