RajSolai / TextSnatcher

How to Copy Text from Images ? Answer is TextSnatcher !. Perform OCR operations in seconds on Linux Desktop.
https://textsnatcher.rf.gd/
GNU General Public License v3.0
1.26k stars 45 forks source link

Can't compile from sources... #12

Open Creteil opened 2 years ago

Creteil commented 2 years ago

Hi,

It look like the build process can't finish.

Here is the error :

bigbob@bigbob-UX331UN:~/tmp/Building/TextSnatcher/TextSnatcher$ dpkg-checkbuilddeps && rm debian/*~ ; LANG=C dpkg-buildpackage -rfakeroot
rm: impossible de supprimer 'debian/*~': Aucun fichier ou dossier de ce type
dpkg-buildpackage: info: source package com.github.rajsolai.textsnatcher
dpkg-buildpackage: info: source version 1.0.1-13-gdd62c6d
dpkg-buildpackage: info: source distribution UNRELEASED
dpkg-buildpackage: info: source changed by COLIN Stephane <bigbob.fun@gmail.com>
dpkg-buildpackage: info: host architecture amd64
 dpkg-source --before-build .
 fakeroot debian/rules clean
dh clean
   dh_auto_clean
   dh_clean
 dpkg-source -b .
dpkg-source: info: using source format '3.0 (quilt)'
dpkg-source: info: building com.github.rajsolai.textsnatcher using existing ./com.github.rajsolai.textsnatcher_1.0.1-13.orig.tar.xz
dpkg-source: info: building com.github.rajsolai.textsnatcher in com.github.rajsolai.textsnatcher_1.0.1-13-gdd62c6d.debian.tar.xz
dpkg-source: info: building com.github.rajsolai.textsnatcher in com.github.rajsolai.textsnatcher_1.0.1-13-gdd62c6d.dsc
 debian/rules build
dh build
   dh_update_autotools_config
   dh_autoreconf
   dh_auto_configure
    cd obj-x86_64-linux-gnu && LC_ALL=C.UTF-8 meson .. --wrap-mode=nodownload --buildtype=plain --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libdir=lib/x86_64-linux-gnu
The Meson build system
Version: 0.56.2
Source dir: /home/bigbob/tmp/Building/TextSnatcher/TextSnatcher
Build dir: /home/bigbob/tmp/Building/TextSnatcher/TextSnatcher/obj-x86_64-linux-gnu
Build type: native build
Project name: com.github.rajsolai.textsnatcher
Project version: 1.0.1
Using 'CFLAGS' from environment with value: '-g -O2 -ffile-prefix-map=/home/bigbob/tmp/Building/TextSnatcher/TextSnatcher=. -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security'
Using 'LDFLAGS' from environment with value: '-Wl,-Bsymbolic-functions -flto=auto -Wl,-z,relro'
Using 'CPPFLAGS' from environment with value: '-Wdate-time -D_FORTIFY_SOURCE=2'
C compiler for the host machine: ccache cc (gcc 10.3.0 "cc (Ubuntu 10.3.0-1ubuntu1) 10.3.0")
C linker for the host machine: cc ld.bfd 2.36.1
Vala compiler for the host machine: valac (valac 0.48.17)
Using 'CFLAGS' from environment with value: '-g -O2 -ffile-prefix-map=/home/bigbob/tmp/Building/TextSnatcher/TextSnatcher=. -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security'
Using 'LDFLAGS' from environment with value: '-Wl,-Bsymbolic-functions -flto=auto -Wl,-z,relro'
Using 'CPPFLAGS' from environment with value: '-Wdate-time -D_FORTIFY_SOURCE=2'
Host machine cpu family: x86_64
Host machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (0.29.2)
Run-time dependency granite found: YES 5.5.0
Run-time dependency gobject-2.0 found: YES 2.68.1
Run-time dependency libhandy-1 found: YES 1.2.0
Run-time dependency libportal found: YES 0.4
Run-time dependency gdk-pixbuf-2.0 found: YES 2.42.2
Run-time dependency glib-2.0 found: YES 2.68.1
Run-time dependency gtk+-3.0 found: YES 3.24.25
Found pkg-config: /usr/bin/pkg-config (0.29.2)
Program glib-compile-resources found: YES (/usr/bin/glib-compile-resources)
Program meson/post_install.py found: YES (/usr/bin/python3 /home/bigbob/tmp/Building/TextSnatcher/TextSnatcher/meson/post_install.py)
Build targets in project: 11

Found ninja-1.10.1 at /usr/bin/ninja
   dh_auto_build
    cd obj-x86_64-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v
[1/17] /usr/bin/glib-compile-resources ../data/com.github.rajsolai.textsnatcher.gresource.xml --sourcedir ../data --sourcedir ../ --c-name as --internal --generate --target as-resources.h
[2/17] valac -C --pkg gtk+-3.0 --pkg glib-2.0 --pkg gdk-pixbuf-2.0 --pkg libportal --pkg libhandy-1 --pkg gobject-2.0 --pkg granite --color=always --directory com.github.rajsolai.textsnatcher.p --basedir ../ --gresources=../data/com.github.rajsolai.textsnatcher.gresource.xml ../src/Application.vala ../src/MainWindow.vala ../src/components/VerticalBox.vala ../src/components/HeaderBar.vala ../src/components/LanguageButton.vala ../src/components/AboutButton.vala ../src/components/AboutDialog.vala ../src/screens/MainScreen.vala ../src/services/LanguageService.vala ../src/services/TesseractTrigger.vala
FAILED: com.github.rajsolai.textsnatcher.p/src/Application.c com.github.rajsolai.textsnatcher.p/src/MainWindow.c com.github.rajsolai.textsnatcher.p/src/components/VerticalBox.c com.github.rajsolai.textsnatcher.p/src/components/HeaderBar.c com.github.rajsolai.textsnatcher.p/src/components/LanguageButton.c com.github.rajsolai.textsnatcher.p/src/components/AboutButton.c com.github.rajsolai.textsnatcher.p/src/components/AboutDialog.c com.github.rajsolai.textsnatcher.p/src/screens/MainScreen.c com.github.rajsolai.textsnatcher.p/src/services/LanguageService.c com.github.rajsolai.textsnatcher.p/src/services/TesseractTrigger.c 
valac -C --pkg gtk+-3.0 --pkg glib-2.0 --pkg gdk-pixbuf-2.0 --pkg libportal --pkg libhandy-1 --pkg gobject-2.0 --pkg granite --color=always --directory com.github.rajsolai.textsnatcher.p --basedir ../ --gresources=../data/com.github.rajsolai.textsnatcher.gresource.xml ../src/Application.vala ../src/MainWindow.vala ../src/components/VerticalBox.vala ../src/components/HeaderBar.vala ../src/components/LanguageButton.vala ../src/components/AboutButton.vala ../src/components/AboutDialog.vala ../src/screens/MainScreen.vala ../src/services/LanguageService.vala ../src/services/TesseractTrigger.vala
error: Package `libportal' not found in specified Vala API directories or GObject-Introspection GIR directories
Compilation failed: 1 error(s), 0 warning(s)
[3/17] /usr/bin/glib-compile-resources ../data/com.github.rajsolai.textsnatcher.gresource.xml --sourcedir ../data --sourcedir ../ --c-name as --internal --generate --target as-resources.c --dependency-file as-resources.c.d
[4/17] /usr/bin/meson --internal msgfmthelper ../data/com.github.rajsolai.textsnatcher.desktop.in data/com.github.rajsolai.textsnatcher.desktop desktop /home/bigbob/tmp/Building/TextSnatcher/TextSnatcher/po/extra
[5/17] /usr/bin/meson --internal msgfmthelper ../data/com.github.rajsolai.textsnatcher.appdata.xml.in data/com.github.rajsolai.textsnatcher.appdata.xml xml /home/bigbob/tmp/Building/TextSnatcher/TextSnatcher/po/extra
ninja: build stopped: subcommand failed.
dh_auto_build: error: cd obj-x86_64-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v returned exit code 1
make: *** [debian/rules:18: build] Error 1
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2
bigbob@bigbob-UX331UN:~/tmp/Building/TextSnatcher/TextSnatcher$ dpkg -l | grep libportal
ii  libportal-dev:amd64                               0.4-2~21.04.sav0                                                                amd64        Flatpak portal library (development files)
ii  libportal0:amd64                                  0.4-2~21.04.sav0                                                                amd64        Flatpak portal library
bigbob@bigbob-UX331UN:~/tmp/Building/TextSnatcher/TextSnatcher$

Do you have any advice on what missing ?

RajSolai commented 2 years ago

You seem to have libportal installed but still the build fails , I will try on my machine to build the same and check for any errors

Creteil commented 2 years ago

Maybe this information can help :

bigbob@bigbob-UX331UN:~/tmp/Building/TextSnatcher/TextSnatcher$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 21.04
Release:    21.04
Codename:   hirsute
bigbob@bigbob-UX331UN:~/tmp/Building/TextSnatcher/TextSnatcher$ dpkg -l "vala*" | grep ii
ii  valac           0.48.17-1    amd64        C# like language for the GObject system
ii  valac-0.48-vapi 0.48.17-1    all          C# like language for the GObject system - vapi files
ii  valac-bin       0.48.17-1    amd64        internal package for C# like language for the GObject system
bigbob@bigbob-UX331UN:~/tmp/Building/TextSnatcher/TextSnatcher$
Creteil commented 2 years ago

@RajSolai, what does this command report on your system ? :

locate .vapi | grep portal

Creteil commented 2 years ago

OK, found the problem...

Need to backport the version « 0.5-2 » of « libportal » from « jammy » :

bigbob@bigbob-UX331UN:~/tmp/Building/TextSnatcher/TextSnatcher$ dpkg -l | grep "libportal"
ii  libportal-dev:amd64                               0.5-2                                                                           amd64        Flatpak portal library (development files)
ii  libportal0:amd64                                  0.4-2~21.04.sav0                                                                amd64        Flatpak portal library
ii  libportal1:amd64                                  0.5-2                                                                           amd64        Flatpak portal library - non-GUI part
bigbob@bigbob-UX331UN:~/tmp/Building/TextSnatcher/TextSnatcher$ locate .vapi | grep portal
/usr/share/vala/vapi/libportal.vapi
bigbob@bigbob-UX331UN:~/tmp/Building/TextSnatcher/TextSnatcher$

Without this backport, old version doesn't provide « /usr/share/vala/vapi/libportal.vapi ».

Hope it help.

Regards.

Creteil commented 2 years ago

hmm,

Dependencies seem broken (at least under ubuntu...) :

bigbob@bigbob-UX331UN:~/tmp/Building/TextSnatcher$ sudo apt install com.github.rajsolai.textsnatcher
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Lecture des informations d'état... Fait      
Certains paquets ne peuvent être installés. Ceci peut signifier
que vous avez demandé l'impossible, ou bien, si vous utilisez
la distribution unstable, que certains paquets n'ont pas encore
été créés ou ne sont pas sortis d'Incoming.
L'information suivante devrait vous aider à résoudre la situation : 

Les paquets suivants contiennent des dépendances non satisfaites :
 com.github.rajsolai.textsnatcher : Dépend: tessdata-best (>= 4.0) mais il n'est pas installable
                                    Recommande: tesseract-ocr-all mais ne sera pas installé
E: Impossible de corriger les problèmes, des paquets défectueux sont en mode « garder en l'état ».
bigbob@bigbob-UX331UN:~/tmp/Building/TextSnatcher$

To be able to install the package without error I have removed the dependency to « tessdata-best » package.

By the way, where can you able to find a debian package named « tessdata-best » ?

I have looked everywhere, but not able to find it...

RajSolai commented 2 years ago

Guess I made a typo on the package names I will commit the changes, Thanks for reporting the issue @Creteil

RajSolai commented 2 years ago

I built the deb package with some changes in deb/control and deb/rules and tested in elementary OS Odin (Ubuntu 20.04) but it needs libportal shared library may be you could try the deb package as Ubuntu 21.04 ships with libportal can you please try it out @Creteil

https://u.pcloud.link/publink/show?code=XZUdOyVZ3njXolTBJn5qJ8IJmCJhIpMh9Wu7

Creteil commented 2 years ago

Unfortunately, your build depend from « libgranite.so.6 », where under Ubuntu 21.04, the version installed is « libgranite5 ».

I have successfully build the package on my side, BTW, running it doesn't do something useful.

The windows decoration include buttons :

image

And trying to use it doesn't do anything...

Creteil commented 2 years ago

Here is a video showing the fact I can't grab anything :

https://user-images.githubusercontent.com/27310214/153180202-68c9e4cb-69b6-4467-86f4-5b2e7f047b96.mp4

RajSolai commented 2 years ago

Sorry @Creteil for a late reply, caught up in some college works. I will look in the issue and btw the v2.0.0 application does not rely on libportal for screenshots hence I think it is worth to try the build again.

Creteil commented 1 year ago

OK, so...

Upgraded my laptop to 22.04 LTS and give it another try from source code...

This time it work, with a little fix :

Added the « libgranite6 » as a dependency :

bigbob@bigbob-ux31a:~/tmp/Building/TextSnatcher/TextSnatcher$ cat debian/control 
Source: com.github.rajsolai.textsnatcher
Section: utils
Priority: optional
Maintainer: Solai Raj <solairaj@gmail.com>
Build-Depends: debhelper-compat (= 12),
                 meson,
               valac,
               libglib2.0-dev,
               libgtk-3-dev,
               libgranite-dev,
               libhandy-1-dev,
               libgdk-pixbuf-2.0-dev,
               libgirepository1.0-dev,
               libportal-dev
Standards-Version: 4.4.1
Homepage: https://github.com/RajSolai/TextSnatcher
Vcs-Browser: https://github.com/RajSolai/TextSnatcher
Vcs-Git: https://github.com/RajSolai/TextSnatcher.git

Package: com.github.rajsolai.textsnatcher
Architecture: any
Depends: ${misc:Depends},
         tesseract-ocr (>= 4.0.0),
         tesseract-ocr-tha,
         tesseract-ocr-tam,
         tesseract-ocr-eng,
         tesseract-ocr-hin,
         tesseract-ocr-jpn,
         tesseract-ocr-ara,
         tesseract-ocr-rus,
         tesseract-ocr-fra,
         tesseract-ocr-chi-sim,
         tesseract-ocr-spa,
         libgranite6
Description: Snatch Text with just a Drag
 Multiple Language Support.
 Copy Text from images with a Drag.
 Drag over any Image and Paste.
 Fast and Easy to Use.
bigbob@bigbob-ux31a:~/tmp/Building/TextSnatcher/TextSnatcher$