Forum Linux.pl

Zgodność sprzętu z Linuksem => Urządzenia wielofunkcyjne => Wątek zaczęty przez: Robert w 2020-03-05, 12:54:49

Tytuł: EPSON L3070 - Drukarka[OK] Skaner[?]
Wiadomość wysłana przez: Robert w 2020-03-05, 12:54:49
Drukarka zainstaluje się bez sciagania specjalnych sterowników.
Do skanera nie znalazłem działających otwartych, darmowych sterowników.
Natomiast da sie skaner uruchomić przez VueScan - ale to kosztuje, niestety :-(
Tytuł: Odp: EPSON L3070 - Drukarka[OK] Skaner[?]
Wiadomość wysłana przez: pavbaranov w 2020-03-06, 07:40:53
Chyba mocno słabo szukasz, a nam również - bez podania informacji o dystrybucji - nie ułatwiasz zadania. Epson oferuje dla tej drukarki takie oprogramowanie (w tym sterownik): http://support.epson.net/linux/en/imagescanv3.php (http://support.epson.net/linux/en/imagescanv3.php). Jeśli Twój system nie znajduje się na tej liście - napisz jaki to system, czy masz zainstalowane sane oraz jak wykrywany jest skaner przez lsusb oraz
scanimage -L
Tytuł: Odp: EPSON L3070 - Drukarka[OK] Skaner[?]
Wiadomość wysłana przez: Robert w 2020-03-12, 15:13:16
scanimage -L
Nie wykrył skanera.

A co do tej strony - owszem byłem. Nie ma tam mojej wersji systemu, tzn. są sterowniki na opensuse, ale tylko 64-bitowy.
próbowałem zainstalować sterownik 32-bitowy z fedory, potem z CentOSa, (w końcu też rpm), ale utknąłem w gąszczu zależności.

W ogóle to jest tak z tymi repozytoriami, ze ok 1/4 oprogramowania w repozytoriach nie nadaje się do zainstalowania, bo albo brakuje w repo jakichś pakietów do spełnienia zależności, albo się okazuje po zainstalowaniu, że program i tak nie działa, bo np. - nie ma pliku wykonywalnego, czy innych bibliotek.
Tytuł: Odp: EPSON L3070 - Drukarka[OK] Skaner[?]
Wiadomość wysłana przez: pavbaranov w 2020-03-12, 16:02:34
Sorry, zacznijmy od początku:
1. Jaką masz dystrybucję? To, że OpenSUSE to już wiemy - jaka wersja? Obecnie nie istnieje wersja 32bitowa w przypadku Leap 15.1; jest 32bitowa wersja Tumbleweed. Wersje wcześniejsze niż Leap 15.1 nie mają już wsparcia. Skoro nie istnieją wspierane przez OpenSUSE wersje tej dystrybucji dla 32 bitów, to nie będziesz miał również i oprogramowania dostarczanego w takich wersjach przez zewnętrznych dostawców.
2. Jeśli możesz na tym komputerze mieć 64 bitowy system - to zmień.
3. Jeśli masz niewspierane OpenSUSE w wersji 32bitowej, to praktycznie nikt nie będzie Ci w stanie pomóc. Poszukaj ewentualnie w archiwach netu jakiejś innej paczki (choćby na pkgs), która dla Twojego systemu jeszcze jest.
4. Jeśli umiesz budować paczkę ze źródeł, możesz się pokusić o jej zbudowanie. "Przepis" a także link do źródeł masz m.in. tu: https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/imagescan (https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/imagescan) - UWAGA: jest to "przepis" dla Archa, podaję tylko w celach poglądowych, na OpenSUSE nie zastosujesz tego wprost.
5. Jeśli chcesz "gotowca", a Twój komputer jest 32 bitowy, to musisz pomyśleć o zmianie dystrybucji na jeszcze taką, która oferuje 32 bitowy system, jak również są dla niej dostępne sterowniki.
6. Jeśli chodzi o repozytoria to są one dla danej wersji dystrybucji w danej jej wersji i nie można/nie wolno ich mieszać. W ramach repozytoriów dla określonej dystrybucji w danej wersji nie ma (jeśli one są prawidłowo przygotowane) problemu z zależnościami, bowiem te muszą być spełnione (nawet za bardzo nie ma jak takiej paczki skompilować inaczej). Jeśli repozytoria mieszasz, to sam sobie gotujesz los w postaci niespełnionych zależności.
7. To, że jakaś dystrybucja wykorzystuje system paczkowania RPM nie oznacza, że można paczki z jednej dystrybucji używać w innej. Podobnie jak zresztą praktycznie z każdym innym przypadkiem systemu paczkowania.

Wyjścia zatem:
1. Zmienić system - pozostając przy OpenSUSE na obecnie wspierany i 64 bitowy, o ile się da.
2. Zmienić system na inny 32 bitowy, który jeszcze jest wspierany oraz masz paczki od Epsona przygotowane na ten system.
3. Pozostając przy swoim OpenSUSE w wersji 32bit i jeśli nie jest to Tumbleweed - dziarsko wziąć się za samodzielne utrzymywanie tego tworu, czyli instalowanie wszystkiego co się da ze źródeł (poleciłbym zaznajomienie się z OBS bo łatwiej, a daje to paczki dla Zuśki). W ramach tych ćwiczeń przygotować sobie imagescan. (Ogólnie pomysł jest szatański i szalony).
4. Pozostając przy swoim OpenSUSE przeszukać w czeluściach netu jakichś starszych jeszcze wersji imagescan, które byłyby dla 32bitowego OpenSUSE, choć użytkowanie niewspieranego systemu nie jest najrozsądniejsze i wówczas i tak musisz się liczyć z tym, co wyżej.
Tytuł: Odp: EPSON L3070 - Drukarka[OK] Skaner[?]
Wiadomość wysłana przez: Robert w 2020-03-12, 17:24:22
W przypadku niektórych programów pakiety z innych dystrybucji działały, więc nie jest aż tak strasznie.
A używam, jak się juz zorientowałeś opensuse Tumbleweed 32 bit.

Miałem system 64-bitowy
Dokładnie 2 tygodnie. Potrzebowałem jakiejs apki, która była dostępna tylko na 32 bity. I tu okazało się, ze instalacja takiej apki to jest po prostu horror. Zależności piętrowe.

Póki co, zostaję przy 32 bitach.
Tytuł: Odp: EPSON L3070 - Drukarka[OK] Skaner[?]
Wiadomość wysłana przez: pavbaranov w 2020-03-12, 21:19:22
Każda aplikacja 32bit działa w systemie 64bit jeśli ten udostępnia tzw. biblioteki multilib. Odwrotnie - nie jest to możliwe.
Cóż. W przypadku 32-bit Tumbleweed masz do dyspozycji praktycznie wyłącznie skompilować sobie sterownik. Bądź zmienić system na 64bit. Wybór należy do Ciebie.
Tytuł: Odp: EPSON L3070 - Drukarka[OK] Skaner[?]
Wiadomość wysłana przez: 1709 w 2020-03-13, 00:34:54
" Chyba mocno słabo szukasz "
pavbaranov Bo nie ma ich tam gdzie powinny być, czyli na stronie producenta po wpisaniu modelu drukarki
https://www.epson.pl/support?productID=22120&os=12#drivers_and_manuals
Ktos by musial skarge napisac zeby poprawili jesli mogą.

" Póki co, zostaję przy 32 bitach. "
Jesli ilosc miejsca pozwoli,
to chyba łatwiej będzie zainstalować obok drugi system np. Debiana 32bit niż się męczyć z piętrowymi zależnościami, czy kompilacja pakietów.
Nie mam zielonego pojęcia ile podstawowa instalacja + aktualizacje maga zając.
https://www.debian.org/releases/jessie/amd64/ch03s04.html.en

" To, że jakaś dystrybucja wykorzystuje system paczkowania RPM nie oznacza, że można paczki z jednej dystrybucji używać w innej. "
pavbaranov Generalnie masz racje.
Ale prawda jest tez taka, ze jeśli ktoś ma " ambicje / silne nerwy / dużo czasu " to spróbuje mimo ogromu zależności.
Przykładem jest projekt Alien konwertujący pakiety.
- OpenSuse ma menadżer pakietowania w którym można dopasować zależności, w zależności od wykrytej dystrybucji Linuxa.
Przykładem jest LibreOffice.
Wiec gdyby tak zrobili sterowniki rpm, to może wystarczyłaby jedna paczka dla wszystkich dystrybucji rpm.
  Problemem jest fakt ze nazwy zależności czasem lubią się zmieniać, a bez sensu by było żeby OpenSuse taka bazę nazw gromadziło,
może kiedyś ktoś wpadnie na pomysł wykonania skryptu, żeby sprawdzał zależności prosto z danego repozytorium.
Ponieważ nazwy plików raczej będą takie same w każdej dystrybucji Linuxa.
( bibliotek może brakować jeśli program został skompilowany bez danej opcji )
  Problemem także mogą być czasem wersje bibliotek, bo muszą posiadać potrzebne "funkcje".
Zazwyczaj nowsze biblioteki maja 100% starych funkcji, ale czasem są bardziej zmodyfikowane i może być klops.
Wiem ze ręczne linkowanie bibliotek, tak jak użycie Alien-a może pomoc w uruchomieniu programu, jak i nie pomoc
 i zniszczyć cały misterny plan i godziny pracy. Juz nie wspominając o bałaganie w systemie
i ewentualnych przyszłych problemach z aktualizacjami.
Tytuł: Odp: EPSON L3070 - Drukarka[OK] Skaner[?]
Wiadomość wysłana przez: pavbaranov w 2020-03-13, 09:01:28
@1709 - Obawiam się, że alien nie przerobi *.rpm z Fedory na *.rpm OpenSUSE. W ogóle przy tego typu przeróbkach musimy pamiętać o:
1. konwersji podlega paczka binarna (skompilowana),
2. pliki wykonywalne są często kompilowane przy użyciu określonych narzędzi i w oparciu o określone wersje swoich zależności,
3. w wyniku kompilacji co najmniej część plików wykonywalnych będzie do swojego uruchomienia wymagać zależności w określonej wersji (tej, na której została skompilowana),
4. konwersja nie spowoduje "zamiany", że jakaś binarka wymagająca jakiejś zależności w określonej wersji zadziała na wersji, która dostarczona jest wraz z systemem.
Innymi słowy użycie aliena do przebudowy paczki np. Debiana na rpm (niestety alien "nie wie", czy ten rpm ma być "fedorowy", "mandrivowy", czy "opensuse" itd.) może, ale nie musi się udać, zwłaszcza, że biblioteki (które są najczęściej zależnościami takich sterowników) w Tumbleweed są jakieś pewnie 2 lata "nowsze" od wersji w Debianie.
Zwróćcie jeszcze uwagę na treść: https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/imagescan (https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/imagescan) gdzie jest przykład kompilacji na Archa. Jak widać podczas prekompilacji przekazuje się kompilatorowi takie informacje jak np. miejsce położenia binarki w systemie (może być różne w OpenSUSE oraz innych systemach, z których paczka miałaby być skonwertowana). Także informacja zawarta w zmianach paczki: https://git.archlinux.org/svntogit/community.git/log/trunk?h=packages/imagescan (https://git.archlinux.org/svntogit/community.git/log/trunk?h=packages/imagescan) wskazuje, że paczka podlega przebudowie wraz z dostarczeniem do niego nowej wersji boost. Dodatkowo sam boost wymaga przebudowy w zależności od poppler, icu oraz pythona: https://git.archlinux.org/svntogit/packages.git/log/trunk?h=packages/boost (https://git.archlinux.org/svntogit/packages.git/log/trunk?h=packages/boost). I tak dalej.
Można zatem próbować, ale czy będzie to działać?
Rolling release są fajnymi systemami, ale jednakże jeśli jakiejś paczki w nim nie ma (dla niego nie ma), to trzeba się nieco bardziej natrudzić. 
Tytuł: Odp: EPSON L3070 - Drukarka[OK] Skaner[?]
Wiadomość wysłana przez: Paweł Kraszewski w 2020-03-13, 10:08:56
Tutaj (http://support.epson.net/linux/src/scanner/imagescanv3/opensuse/) masz paczkę SRPM do skanera, do własnej kompilacji. Prawdopodobnie zadziałają na Twoim systemie i wygenerują poprawną paczkę 32-bitową - w pliku SPEC nie widziałem nic blokującego 32 bity. Dalej nie pomogę, bo jestem wyznania debianowego i nie znam liturgii do generacji RPM z SRPM.
Tytuł: Odp: EPSON L3070 - Drukarka[OK] Skaner[?]
Wiadomość wysłana przez: pavbaranov w 2020-03-13, 10:38:17
Źródła budują się na 32bit na 100% (zob. m.in.: https://archlinux32.org/packages/?q=imagescan (https://archlinux32.org/packages/?q=imagescan)). Zatem to co Paweł podesłał to już 90% roboty. Reszta to już kompilacja. Masz np. tu: . Ogólnie winno to się sprowadzić do:
 (http://blog.onedollardata.com/how-to-install-src-rpm-packages-in-opensuse/[/url)
mkdir imagescan
cd imagescan
wget http://support.epson.net/linux/src/scanner/imagescanv3/opensuse/imagescan-3.62.0-1epson4opensuse15.1.src.rpm
rpmbuild --rebuild imagescan-3.62.0-1epson4opensuse15.1.src.rpm
Potem już instalacja zypperem i... modlenie się w wyznaniu rpmowym, by paczka, która jest źródłami teoretycznie dla Leap 15.1 poprawnie się zbudowała i działała w Tumbleweed.
Jeśli to się nie powiedzie (wątpię), to są jeszcze "ogólne" źródła (http://support.epson.net/linux/src/scanner/imagescanv3/common/imagescan_3.62.0.orig.tar.gz) ale kompilacja nie będzie już tak miła i prosta.
Tytuł: Odp: EPSON L3070 - Drukarka[OK] Skaner[?]
Wiadomość wysłana przez: Robert w 2020-03-14, 18:06:16
No i znowu schody, bo
Cytuj
rpmbuild --rebuild

Wywaliło mi to:

Cytuj
rpmbuild --rebuild imagescan-3.62.0-1epson4opensuse15.1.src.rpm
Installing imagescan-3.62.0-1epson4opensuse15.1.src.rpm
warning: user build does not exist - using root
warning: user build does not exist - using root
warning: user build does not exist - using root
warning: user build does not exist - using root
warning: user build does not exist - using root
warning: user build does not exist - using root
warning: user build does not exist - using root
error:  uversion undefined, define to match source archive

pojęcia nie mam,kiego grzyba szuka mi w systemie jakiegos uzyszkodnika o nazwie build.
A zwykłego rpm-u,jak nie było, tak nie ma.
Tytuł: Odp: EPSON L3070 - Drukarka[OK] Skaner[?]
Wiadomość wysłana przez: pavbaranov w 2020-03-14, 19:01:52
No chyba, musisz to odpalić jako root... Kurcze, w końcu Ty użytkujesz system, który - bądź co bądź - jest wymagający. OpenSUSE ma w miarę dobry help/wiki. Wpisz ów warning w net - winno coś wyjść.
Tytuł: Odp: EPSON L3070 - Drukarka[OK] Skaner[?]
Wiadomość wysłana przez: Robert w 2020-03-14, 19:42:26
Oświecę Cie, przyjacielu - nie jestem aż tak ciemny,poczytałem masę anglojęzycznych tutoriali i wszędzie kazali z root,więc zrobiłem to z konta root. I to, co dałem w poprzednim wpisie,to wynik tego polecenia wykonany z konta root.

Wpisałem też w google to, co wypluł mi terminal i tu z pomocą mi przyszła pewna rosyjskojęzyczna strona (https://russianpenguin.ru/2018/05/19/fedora-%D1%81%D0%B1%D0%BE%D1%80%D0%BA%D0%B0-%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%BE%D0%B2-%D0%B8%D0%B7-src-rpm/)

I zgodnie z zawartymi tam sugestiami zrobiłem
najpierw to
Cytuj
rpmbuild --rebuild --define "uversion 3.59.2"  imagescan-3.59.2-1epson4opensuse15.0.src.rpm
Installing imagescan-3.59.2-1epson4opensuse15.0.src.rpm
warning: user build does not exist - using root
warning: user build does not exist - using root
warning: user build does not exist - using root
warning: user build does not exist - using root
warning: user build does not exist - using root
warning: user build does not exist - using root
warning: user build does not exist - using root
error: Bad source: /usr/src/packages/SOURCES/utsushi-3.59.2.tar.gz: No such file or directory

Jak widać kierowałem się numeracją pakietu,co okazało się nie do końca słuszne i zaliczyłem zonk,więc spróbowałem tego:

Cytuj
localhost:/usr/src/packages/SOURCES # ls
gdk-pixbuf-format.patch  imagescan.desktop
gtkmm-2.20-compat.patch  rebranding.patch
imagescan.conf           utsushi-0.59.2.tar.gz

i następnie to:

Cytuj
# rpmbuild --rebuild --define "uversion 0.59.2"  imagescan-3.59.2-1epson4opensuse15.0.src.rpm
Installing imagescan-3.59.2-1epson4opensuse15.0.src.rpm
warning: user build does not exist - using root
warning: user build does not exist - using root
warning: user build does not exist - using root
warning: user build does not exist - using root
warning: user build does not exist - using root
warning: user build does not exist - using root
warning: user build does not exist - using root
error: Failed build dependencies:
   GraphicsMagick is needed by imagescan-3.59.2-1.i586
   boost-devel is needed by imagescan-3.59.2-1.i586
   gtkmm24-devel is needed by imagescan-3.59.2-1.i586
   libGraphicsMagick++-devel is needed by imagescan-3.59.2-1.i586
   libjpeg-devel is needed by imagescan-3.59.2-1.i586
   libtiff-devel is needed by imagescan-3.59.2-1.i586
   libudev-devel is needed by imagescan-3.59.2-1.i586
   libusb-1_0-devel is needed by imagescan-3.59.2-1.i586
   sane-backends-devel is needed by imagescan-3.59.2-1.i586

Zainstalowałem zypperem brakujące pakiety i wypluło to:


# rpmbuild --rebuild --define "uversion 0.59.2"  imagescan-3.59.2-1epson4opensuse15.0.src.rpm
Installing imagescan-3.59.2-1epson4opensuse15.0.src.rpm
warning: user build does not exist - using root
warning: user build does not exist - using root
warning: user build does not exist - using root
warning: user build does not exist - using root
warning: user build does not exist - using root
warning: user build does not exist - using root
warning: user build does not exist - using root
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.kjLGqO
+ umask 022
+ cd /usr/src/packages/BUILD
+ cd /usr/src/packages/BUILD
+ rm -rf utsushi-0.59.2
+ /usr/bin/gzip -dc /usr/src/packages/SOURCES/utsushi-0.59.2.tar.gz
+ /usr/bin/tar -xof -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd utsushi-0.59.2
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ echo 'Patch #0 (rebranding.patch):'
Patch #0 (rebranding.patch):
+ /usr/bin/patch --no-backup-if-mismatch -p1 --fuzz=0
patching file README
patching file gtkmm/about.xml.in
patching file lib/monitor.cpp
patching file lib/run-time.cpp
+ sed -i 's/^utsushi-0\.\([^ \t]*\)  /imagescan-3.\1/' NEWS
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.SOTk9P
+ umask 022
+ cd /usr/src/packages/BUILD
+ /usr/bin/rm -rf /usr/src/packages/BUILDROOT/imagescan-3.59.2-1.i386
++ dirname /usr/src/packages/BUILDROOT/imagescan-3.59.2-1.i386
+ /usr/bin/mkdir -p /usr/src/packages/BUILDROOT
+ /usr/bin/mkdir /usr/src/packages/BUILDROOT/imagescan-3.59.2-1.i386
+ cd utsushi-0.59.2
+ CFLAGS='-O2 -g -m32 -march=i586 -mtune=i686 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables'
+ export CFLAGS
+ CXXFLAGS='-O2 -g -m32 -march=i586 -mtune=i686 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables'
+ export CXXFLAGS
+ FFLAGS='-O2 -g -m32 -march=i586 -mtune=i686 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables '
+ export FFLAGS
+ FCFLAGS='-O2 -g -m32 -march=i586 -mtune=i686 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables '
+ export FCFLAGS
+ LDFLAGS=
+ export LDFLAGS
+ ./configure --host=i586-suse-linux-gnu --build=i586-suse-linux-gnu --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib --libexecdir=/usr/lib --localstatedir=/var --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --disable-dependency-tracking --with-jpeg --with-tiff --with-gtkmm --with-sane --with-magick --with-magick-pp --disable-static
configure: loading site script /usr/share/site/i686-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether UID '0' is supported by ustar format... yes
checking whether GID '0' is supported by ustar format... yes
checking how to create a ustar tar archive... gnutar
checking whether to enable maintainer-specific portions of Makefiles... yes
checking whether make supports nested variables... (cached) yes
checking for i586-suse-linux-gnu-gcc... no
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... none
checking for gcc option to support OpenMP... -fopenmp
checking for i586-suse-linux-gnu-g++... no
checking for i586-suse-linux-gnu-c++... no
checking for i586-suse-linux-gnu-gpp... no
checking for i586-suse-linux-gnu-aCC... no
checking for i586-suse-linux-gnu-CC... no
checking for i586-suse-linux-gnu-cxx... no
checking for i586-suse-linux-gnu-cc++... no
checking for i586-suse-linux-gnu-cl.exe... no
checking for i586-suse-linux-gnu-FCC... no
checking for i586-suse-linux-gnu-KCC... no
checking for i586-suse-linux-gnu-RCC... no
checking for i586-suse-linux-gnu-xlC_r... no
checking for i586-suse-linux-gnu-xlC... no
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... none
checking standard compliance level of g++... 201402L
checking for i586-suse-linux-gnu-ar... no
checking for i586-suse-linux-gnu-lib... no
checking for i586-suse-linux-gnu-link... no
checking for ar... ar
checking the archiver (ar) interface... ar
checking for i586-suse-linux-gnu-pkg-config... /usr/bin/i586-suse-linux-gnu-pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for a sed that does not truncate output... /usr/bin/sed
checking whether NLS is requested... yes
checking for msgfmt... /usr/bin/msgfmt
checking for gmsgfmt... /usr/bin/msgfmt
checking for xgettext... /usr/bin/xgettext
checking for msgmerge... /usr/bin/msgmerge
checking build system type... i586-suse-linux-gnu
checking host system type... i586-suse-linux-gnu
checking for ld used by gcc... /usr/i586-suse-linux/bin/ld
checking if the linker (/usr/i586-suse-linux/bin/ld) is GNU ld... yes
checking for shared library run path origin... done
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for CFPreferencesCopyAppValue... no
checking for CFLocaleCopyCurrent... no
checking for GNU gettext in libc... yes
checking whether to use NLS... yes
checking where the gettext function comes from... libc
checking how to print strings... printf
checking for a sed that does not truncate output... (cached) /usr/bin/sed
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/i586-suse-linux/bin/ld
checking if the linker (/usr/i586-suse-linux/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert i586-suse-linux-gnu file names to i586-suse-linux-gnu format... func_convert_file_noop
checking how to convert i586-suse-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/i586-suse-linux/bin/ld option to reload object files... -r
checking for i586-suse-linux-gnu-objdump... no
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for i586-suse-linux-gnu-dlltool... no
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for i586-suse-linux-gnu-ar... ar
checking for archiver @FILE support... @
checking for i586-suse-linux-gnu-strip... no
checking for strip... strip
checking for i586-suse-linux-gnu-ranlib... no
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for i586-suse-linux-gnu-mt... no
checking for mt... mt
checking if mt is a manifest tool... no
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... no
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/i586-suse-linux/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking for shl_load... no
checking for shl_load in -ldld... no
checking for dlopen... no
checking for dlopen in -ldl... yes
checking whether a program can dlopen itself... yes
checking whether a statically linked program can dlopen itself... yes
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking how to run the C++ preprocessor... g++ -E
checking for ld used by g++... /usr/i586-suse-linux/bin/ld
checking if the linker (/usr/i586-suse-linux/bin/ld) is GNU ld... yes
checking whether the g++ linker (/usr/i586-suse-linux/bin/ld) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC -DPIC
checking if g++ PIC flag -fPIC -DPIC works... yes
checking if g++ static flag -static works... no
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (/usr/i586-suse-linux/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking which extension is used for runtime loadable modules... .so
checking which variable specifies run-time module search path... LD_LIBRARY_PATH
checking for the default library search path... /lib /usr/lib /usr/local/lib /usr/lib/graphviz /usr/lib/graphviz/sharp /usr/lib/graphviz/java /usr/lib/graphviz/perl /usr/lib/graphviz/php /usr/lib/graphviz/ocaml /usr/lib/graphviz/python /usr/lib/graphviz/lua /usr/lib/graphviz/tcl /usr/lib/graphviz/guile /usr/lib/graphviz/ruby /usr/lib/kid3
checking for library containing dlopen... -ldl
checking for dlerror... yes
checking for shl_load... (cached) no
checking for shl_load in -ldld... (cached) no
checking for dld_link in -ldld... no
checking for _ prefix in compiled symbols... no
checking whether deplibs are loaded by dlopen... yes
checking for argz.h... yes
checking for error_t... yes
checking for argz_add... yes
checking for argz_append... yes
checking for argz_count... yes
checking for argz_create_sep... yes
checking for argz_insert... yes
checking for argz_next... yes
checking for argz_stringify... yes
checking if argz actually works... yes
checking whether libtool supports -dlopen/-dlpreopen... yes
checking for ltdl.h... yes
checking whether lt_dlinterface_register is declared... yes
checking for lt_dladvise_preload in -lltdl... yes
checking where to find libltdl headers...
checking where to find libltdl library... -lltdl
checking for unistd.h... (cached) yes
checking for dl.h... no
checking for sys/dl.h... no
checking for dld.h... no
checking for mach-o/dyld.h... no
checking for dirent.h... yes
checking for closedir... yes
checking for opendir... yes
checking for readdir... yes
checking for strlcat... no
checking for strlcpy... no
checking for boostlib >= 1.49.0... yes
checking whether the Boost::System library is available... yes
checking for exit in -lboost_system... no
checking for exit in -lboost_system... (cached) no
configure: error: Could not link against boost_system !
error: Bad exit status from /var/tmp/rpm-tmp.SOTk9P (%build)


RPM build errors:
    user build does not exist - using root
    user build does not exist - using root
    user build does not exist - using root
    user build does not exist - using root
    user build does not exist - using root
    user build does not exist - using root
    user build does not exist - using root
    Bad exit status from /var/tmp/rpm-tmp.SOTk9P (%build)

Postanowiłem zatem wykonać zadanie na raty.
Wszedłem do katralogu

localhost:/usr/src/packages/BUILD/utsushi-0.59.2
i wykonałem
./configure
Na koińcu wypluło mi to:
checking for exit in -lboost_system... no
checking for exit in -lboost_system... (cached) no
configure: error: Could not link against boost_system !

No więc doinstalowałem yastem2 brakujące pakiety związane z lboost
ipuściłem configure jeszcze raz.
Przeszło pomyślnie.
To tradycyjnie zapodałem
make
i make wypluło 2 błędy

/usr/include/gtk-2.0/gtk/gtktypeutils.h:236:64: error: 'GTypeDebugFlags' is deprecated [-Werror=deprecated-declarations]
  236 | void            gtk_type_init   (GTypeDebugFlags    debug_flags);
      |                                                                ^
In file included from /usr/include/glib-2.0/gobject/gobject.h:24,
                 from /usr/include/glib-2.0/gobject/gbinding.h:29,
                 from /usr/include/glib-2.0/glib-object.h:23,
                 from /usr/include/glib-2.0/gio/gioenums.h:28,
                 from /usr/include/glib-2.0/gio/giotypes.h:28,
                 from /usr/include/glib-2.0/gio/gio.h:26,
                 from /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h:30,
                 from /usr/include/gtk-2.0/gdk/gdk.h:32,
                 from /usr/include/gtk-2.0/gtk/gtk.h:32,
                 from /usr/include/gtkmm-2.4/gtkmm/box.h:44,
                 from /usr/include/gtkmm-2.4/gtkmm/dialog.h:31,
                 from action-dialog.hpp:27,
                 from action-dialog.cpp:25:
/usr/include/glib-2.0/gobject/gtype.h:685:3: note: declared here
  685 | } GTypeDebugFlags GLIB_DEPRECATED_TYPE_IN_2_36;
      |   ^~~~~~~~~~~~~~~
In file included from /usr/include/gtk-2.0/gtk/gtktoolitem.h:31,
                 from /usr/include/gtk-2.0/gtk/gtktoolbutton.h:30,
                 from /usr/include/gtk-2.0/gtk/gtkmenutoolbutton.h:30,
                 from /usr/include/gtk-2.0/gtk/gtk.h:126,
                 from /usr/include/gtkmm-2.4/gtkmm/box.h:44,
                 from /usr/include/gtkmm-2.4/gtkmm/dialog.h:31,
                 from action-dialog.hpp:27,
                 from action-dialog.cpp:25:
/usr/include/gtk-2.0/gtk/gtktooltips.h:73:12: error: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Werror=deprecated-declarations]
   73 |   GTimeVal last_popdown;
      |            ^~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib/galloca.h:32,
                 from /usr/include/glib-2.0/glib.h:30,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/gtkmm-2.4/gtkmm/dialog.h:7,
                 from action-dialog.hpp:27,
                 from action-dialog.cpp:25:
/usr/include/glib-2.0/glib/gtypes.h:549:26: note: declared here
  549 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from /usr/include/gtkmm-2.4/gtkmm/image.h:33,
                 from action-dialog.cpp:35:
/usr/include/gdkmm-2.4/gdkmm/pixbufanimation.h:124:72: error: 'GTimeVal' is deprecated: Use 'GDateTime' instead [-Werror=deprecated-declarations]
  124 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
In file included from /usr/include/glib-2.0/glib/galloca.h:32,
                 from /usr/include/glib-2.0/glib.h:30,
                 from /usr/include/glibmm-2.4/glibmm/unicode.h:23,
                 from /usr/include/glibmm-2.4/glibmm/ustring.h:21,
                 from /usr/include/gtkmm-2.4/gtkmm/dialog.h:7,
                 from action-dialog.hpp:27,
                 from action-dialog.cpp:25:
/usr/include/glib-2.0/glib/gtypes.h:549:26: note: declared here
  549 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
cc1plus: all warnings being treated as errors
make[2]: *** [Makefile:568: action-dialog.lo] Błąd 1
make[2]: Opuszczenie katalogu '/usr/src/packages/BUILD/utsushi-0.59.2/gtkmm'
make[1]: *** [Makefile:604: all-recursive] Błąd 1
make[1]: Opuszczenie katalogu '/usr/src/packages/BUILD/utsushi-0.59.2'
make: *** [Makefile:511: all] Błąd 2

Pytanie co teraz robić?
Tytuł: Odp: EPSON L3070 - Drukarka[OK] Skaner[?]
Wiadomość wysłana przez: Paweł Kraszewski w 2020-03-15, 00:12:26
Cytuj
cc1plus: all warnings being treated as errors
Ta linijka oznacza, że wszystkie warningi kompilatora (ostrzeżenia, czyli nie powodujące zatrzymania kompilacji) są traktowane jako errory (błędy, czyli zatrzymujące kompilację). Jest to flaga kompilatora "-Werror", często (także tutaj) łączona z '-Wall'. A t Twoim przypadku warningi dotyczą użycia przestarzałych ("deprecated") struktur - błąd twórcy kodu źródłowego, niedostosowanie do nowszych wersji GTK2.

Możesz podrzucić do SRPM-a plik patch robiący jedną z dwóch rzeczy:
a) naprawiający błędy (lepiej)
b) wyłączający eskalator warningów na errory (modyfikacja pliku configure.ac i przegenerowanie z niego świeżego configure, gorsze rozwiązanie)
Tytuł: Odp: EPSON L3070 - Drukarka[OK] Skaner[?]
Wiadomość wysłana przez: pavbaranov w 2020-03-15, 12:39:27
Mogę jedynie tyle podpowiedzieć, że w przypadku Archa stosowny plik, który powoduje kompilację, zawiera:
  cd utsushi-$_utsushiver
  sed -e 's|-Werror||g' -i configure.ac
Linijka druga powoduje, usunięcie flagi "-Werror", co umożliwia kompilację. Jak to zrobić w przypadku rpm dla OpenSUSE - nie wiem, bo po prostu nie mam.
Tytuł: Odp: EPSON L3070 - Drukarka[OK] Skaner[?]
Wiadomość wysłana przez: marcin'82 w 2020-03-20, 20:22:21
Robert
Cytuj
pojęcia nie mam,kiego grzyba szuka mi w systemie jakiegos uzyszkodnika o nazwie build.
A zwykłego rpm-u,jak nie było, tak nie ma.

Pliki wewnątrz pakietu źródłowego były utworzone z konta o nazwie build. Program rpmbuild ostrzega, że w obecnym systemie takiego użytkownika nie ma. Nie budujemy na koncie root.

Pewnie coś pominę, ale nie wnikam w całą politykę SUSE, itd. Minimalnie do budowania pakietów instalujemy:
zypper in rpm-build rpmdevtools

Tworzymy drzewo katalogów:
rpmdev-setuptree

Rozpakowujemy "instalujemy" pakiet źródłowy:
rpm -ivh /ścieżka/do/pakietu/nazwa.src.rpm

Budujemy pakiet (po przejściu do katalogu ~/rpmbuild/SPECS):
rpmbuild -ba --define "uversion 0.62.0" imagescan.spec

pavbaranov
Jak to jak? Tak samo - łopatą, ogniem i sedem :D
Dodać na końcu sekcji %prep:
%__sed -e 's|-Werror||g' -i %{_builddir}/%{upstream}-%{uversion}/configure.ac

Na początku sekcji %build - przed %configure dodać:
autoreconf -fiv

W sekcji %files w tym miejscu dodać %ghost:
%if "true" == "%{have_sane_dll_d}"
%ghost %{_sysconfdir}/sane.d/dll.d/%{name}
%endif

Zależność budowania jest zbyt ogólnie podana - trzeba kopać i zainstalować takie:
[root@suse ~]# rpm -qa \*boost*-devel --queryformat '%{name}\n'
libboost_headers-devel
libboost_chrono1_71_0-devel
libboost_thread-devel
libboost_headers1_71_0-devel
libboost_test1_71_0-devel
libboost_date_time1_71_0-devel
libboost_iostreams1_71_0-devel
libboost_program_options-devel
libboost_filesystem1_71_0-devel
libboost_test-devel
libboost_thread1_71_0-devel
libboost_system1_71_0-devel
boost-devel
libboost_program_options1_71_0-devel

Sprawdzone na OpenSUSE Tumbleweed 64bit przy użyciu najnowszej wersji pakietu, który podał Paweł Kraszewski:
http://support.epson.net/linux/src/scanner/imagescanv3/opensuse/imagescan-3.62.0-1epson4opensuse15.1.src.rpm .