Package Details: epsonscan2 6.7.70.0-1

Git Clone URL: https://aur.archlinux.org/epsonscan2.git (read-only, click to copy)
Package Base: epsonscan2
Description: Epson scanner management utility
Upstream URL: http://support.epson.net/linux/en/epsonscan2.php
Licenses: GPL-3.0-or-later
Submitter: tecnotercio
Maintainer: tecnotercio
Last Packager: tecnotercio
Votes: 12
Popularity: 0.54
First Submitted: 2020-11-20 05:34 (UTC)
Last Updated: 2024-09-21 16:53 (UTC)

Pinned Comments

tecnotercio commented on 2022-09-05 03:32 (UTC)

If you have a problem with Epson Scan 2, check if you need to install another backend for your scanner. More information on the Arch Linux wiki:

https://wiki.archlinux.org/title/SANE/Scanner-specific_problems#Epson

Latest Comments

1 2 3 4 5 Next › Last »

TheKingofRavens commented on 2025-03-12 01:51 (UTC) (edited on 2025-03-12 01:56 (UTC) by TheKingofRavens)

To remove the boost references a little easier, you can download manually, run makepkg, let it fail, then edit the files. This AI made sh script will help.

#!/bin/bash

# Find all files that contain the reference
echo "Searching for files containing BOOST_NO_CXX11_RVALUE_REFERENCES=1..."

# Process CMakeLists.txt files to remove add_definitions(-DBOOST_NO_CXX11_RVALUE_REFERENCES=1)
find src -name "CMakeLists.txt" -type f -exec grep -l "BOOST_NO_CXX11_RVALUE_REFERENCES=1" {} \; | while read file; do
    echo "Processing $file"
    # Replace the line with add_definitions or remove it completely if it's the only definition
    sed -i 's/add_definitions(-DBOOST_NO_CXX11_RVALUE_REFERENCES=1)//g' "$file"
    sed -i 's/add_definitions(\(.*\)-DBOOST_NO_CXX11_RVALUE_REFERENCES=1\(.*\))/add_definitions(\1\2)/g' "$file"
    # Clean up any empty add_definitions() that might be left
    sed -i 's/add_definitions()//g' "$file"
    # Clean up any double spaces or empty lines
    sed -i 's/  / /g' "$file"
    sed -i '/^$/d' "$file"
done

# Process flags.make files
find src -name "flags.make" -type f -exec grep -l "BOOST_NO_CXX11_RVALUE_REFERENCES=1" {} \; | while read file; do
    echo "Processing $file"
    # Replace BOOST_NO_CXX11_RVALUE_REFERENCES=1 in defines lines
    sed -i 's/-DBOOST_NO_CXX11_RVALUE_REFERENCES=1 //g' "$file"
    sed -i 's/ -DBOOST_NO_CXX11_RVALUE_REFERENCES=1//g' "$file"
done

# Process DependInfo.cmake files
find src -name "DependInfo.cmake" -type f -exec grep -l "BOOST_NO_CXX11_RVALUE_REFERENCES=1" {} \; | while read file; do
    echo "Processing $file"
    # Remove lines containing just this define
    sed -i '/  "BOOST_NO_CXX11_RVALUE_REFERENCES=1"/d' "$file"
done

# Process AutogenInfo.json and similar files
find src -name "AutogenInfo.json" -o -name "AutogenInfo.cmake" -o -name "AutomocOldMocDefinitions.cmake" -type f -exec grep -l "BOOST_NO_CXX11_RVALUE_REFERENCES=1" {} \; | while read file; do
    echo "Processing $file"
    # Replace the flag in JSON files
    sed -i 's/"BOOST_NO_CXX11_RVALUE_REFERENCES=1",//g' "$file"
    sed -i 's/"BOOST_NO_CXX11_RVALUE_REFERENCES=1;//g' "$file"
    sed -i 's/BOOST_NO_CXX11_RVALUE_REFERENCES=1;//g' "$file"
done

# Process source and header files with direct #define statements
echo "Processing C/C++ source and header files..."
find src -name "*.cpp" -o -name "*.hpp" -o -name "*.h" -o -name "*.c" -type f -exec grep -l "BOOST_NO_CXX11_RVALUE_REFERENCES 1" {} \; | while read file; do
    echo "Processing C/C++ file $file"
    # Remove the #define line
    sed -i '/#define BOOST_NO_CXX11_RVALUE_REFERENCES 1/d' "$file"
done

echo "Completed. All references to BOOST_NO_CXX11_RVALUE_REFERENCES=1 have been removed."

# Optional: Verify that references have been removed
echo "Verifying removal..."
echo "Checking for both formats of the definition..."
found_references=0

# Check first format (with equals sign)
echo "Checking format: BOOST_NO_CXX11_RVALUE_REFERENCES=1"
if grep -r "BOOST_NO_CXX11_RVALUE_REFERENCES=1" src; then
    found_references=1
fi

# Check second format (with space)
echo "Checking format: BOOST_NO_CXX11_RVALUE_REFERENCES 1"
if grep -r "BOOST_NO_CXX11_RVALUE_REFERENCES 1" src; then
    found_references=1
fi

if [ $found_references -eq 1 ]; then
    echo "Warning: Some references might remain. Check the output above."
else
    echo "Success: All references have been removed!"
fi

After, use makepkg -si --noextract to install without undoing your work.

datame commented on 2025-03-07 13:28 (UTC)

The package build fine with newer boost versions if one removes all the BOOST_NO_CXX11_RVALUE_REFERENCES=1 compiler flags. It is a little bit painful since it is defined in so many places, but afterwards it builds just fine.

username227 commented on 2025-02-17 02:51 (UTC)

Yes, I also cannot build this. It says we need to use boost 1.86. Well, boost1.86 is now an AUR package. I have changed the makedepends from boost to boost1.86 and i have added a line to the build command that tells cmake that the root of boost is/opt/boost1.86. It does detect boost1.86. However, i am still unable to build, getting this error:

fatal error: boost/format.hpp: No such file or directory
   38 | #include <boost/format.hpp>

I don't understand, because format.hpp IS located in /opt/include/boost directory. If anybody knows how to fix, I would be grateful.

Havunen commented on 2025-02-11 07:26 (UTC)

It seems this package does not seem to install with latest version of boost. I had to downgrade to boost-1.86 and boost-libs-186 to able to install this.

/usr/include/boost/none_t.hpp:24:2: error: #error "Boost.Optional requires some C++11 features since version 1.87. If you have an older C++ version use Boost.Optional version 1.86 or earlier." 24 | #error "Boost.Optional requires some C++11 features since version 1.87. If you have an older C++ version use Boost.Optional version 1.86 or earlier." | ^

ElNick commented on 2024-12-18 23:56 (UTC) (edited on 2024-12-19 03:32 (UTC) by ElNick)

If V370 Photo is connected, the application crashes while constructing device selection dialog with std::logic_error, because it attempts to construct std::string from a NULL pointer.

Edit: got over it with the patch, but it still doesn't work. Probably connection string must be fixed as well, not only the display string.

diff --git a/src/Standalone/deviceselectorcombobox.cpp b/src/Standalone/deviceselectorcombobox.cpp
index 0404644..05ad916 100755
--- a/src/Standalone/deviceselectorcombobox.cpp
+++ b/src/Standalone/deviceselectorcombobox.cpp
@@ -98,27 +98,15 @@ void DeviceSelectorCombobox::CreateDisplayName(char displayName[MAX_DISPLAYNAME]
 {
     char *displayDeviceName = NULL;
     char temp_displayName[MAX_DISPLAYNAME];
-     bool find = false;
     memcpy_s(temp_displayName, MAX_DISPLAYNAME, displayName, strlen(displayName)+1);
-    std::string connection_display = connection;
-    if(strncmp(connection, "USB", 3) == 0){
-         for (int i = 0; i < sizeof(temp_displayName) / sizeof(temp_displayName[0]); i++) {
-            if (temp_displayName[i] == ':') {
-            find = true;
-            }
-        }
-        if(find && strtok(temp_displayName, ":")){
-            std::string serialNumber = strtok(NULL, ":");
-            connection_display = connection_display + ":" + serialNumber;
-        }
-    }
+    std::string connection_display = connection ? connection : "<NULL>";
 #ifdef AKBMODE
     int connection_str_size = strlen(temp_displayName) + strlen(" (") + strlen(connection_display.c_str()) + strlen(")") + 1;
 #else
     int connection_str_size = strlen("EPSON ") + strlen(temp_displayName) + strlen(" (") + strlen(connection_display.c_str()) + strlen(")") + 1;
 #endif
     if(!displayDeviceName){
-        displayDeviceName = (char *)malloc(connection_str_size);
+      displayDeviceName = (char *)malloc(connection_str_size);
         if(displayDeviceName){
            memset(displayDeviceName, 0, connection_str_size);
 #ifdef AKBMODE
diff --git a/src/Standalone/initdeviceselectcombobox.cpp b/src/Standalone/initdeviceselectcombobox.cpp
index dc7650b..11f8a96 100755
--- a/src/Standalone/initdeviceselectcombobox.cpp
+++ b/src/Standalone/initdeviceselectcombobox.cpp
@@ -88,20 +88,8 @@ void InitDeviceSelectCombobox::CreateDisplayName(char displayName[MAX_DISPLAYNAM
 {
     char *displayDeviceName = NULL;
     char temp_displayName[MAX_DISPLAYNAME];
-    bool find = false;
     memcpy_s(temp_displayName, MAX_DISPLAYNAME, displayName, strlen(displayName)+1);
-    std::string connection_display = connection;
-    if(strncmp(connection, "USB", 3) == 0){
-    for (int i = 0; i < sizeof(temp_displayName) / sizeof(temp_displayName[0]); i++) {
-        if (temp_displayName[i] == ':') {
-            find = true;
-        }
-    }
-        if(find && strtok(temp_displayName, ":")){
-            std::string serialNumber = strtok(NULL, ":");
-            connection_display = connection_display + ":" + serialNumber;
-        }
-    }
+    std::string connection_display = connection ? connection : "<NULL>";
 #ifdef AKBMODE
     int connection_str_size = strlen(temp_displayName) + strlen(" (") + strlen(connection_display.c_str()) + strlen(")") + 1;
 #else

Lehmeier commented on 2024-07-11 16:58 (UTC)

Hello! I wanted to install it as part of an update, but it crashed during compilation. The message was:

Erstelle epsonscan2... ==> Erstelle Paket: epsonscan2 6.7.65.0-1 (Do 11 Jul 2024 18:52:58 CEST) ==> Prüfe Laufzeit-Abhängigkeiten... ==> Prüfe Buildtime-Abhängigkeiten... ==> Empfange Quellen... -> Lade epsonscan2-6.7.65.0-1.src.tar.gz herunter... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed

0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 26 2378k 26 635k 0 0 529k 0 0:00:04 0:00:01 0:00:03 529k 54 2378k 54 1287k 0 0 617k 0 0:00:03 0:00:02 0:00:01 617k 85 2378k 85 2026k 0 0 656k 0 0:00:03 0:00:03 --:--:-- 656k 100 2378k 100 2378k 0 0 662k 0 0:00:03 0:00:03 --:--:-- 662k -> 0002-Fix-crash.patch gefunden -> 0003-Use-XDG-open-to-open-the-directory.patch gefunden -> 0004-Fix-a-crash-on-an-OOB-container-access.patch gefunden ==> Überprüfe source Dateien mit b2sums... epsonscan2-6.7.65.0-1.src.tar.gz ... Erfolg 0002-Fix-crash.patch ... Erfolg 0003-Use-XDG-open-to-open-the-directory.patch ... Erfolg 0004-Fix-a-crash-on-an-OOB-container-access.patch ... Erfolg ==> Entferne existierendes $srcdir/ Verzeichnis... ==> Entpacke Quellen... -> Entpacke epsonscan2-6.7.65.0-1.src.tar.gz mit bsdtar ==> Beginne prepare()... patching file src/ES2Command/Src/Interface/ipc/ipcInterfaceImpl.cpp patching file src/Standalone/savedestfolder.cpp patching file src/Controller/Src/Finder/Finder.cpp ==> Beginne build()... /var/tmp/pamac-build-ralf/epsonscan2/PKGBUILD: Zeile 45: cmake: Kommando nicht gefunden. ==> FEHLER: Ein Fehler geschah in build(). Breche ab...

I hope you get it up and running.

jadespace commented on 2024-05-30 00:35 (UTC)

I just ran into the same issue. I think @tecnotercio's change for the inclusion of an outdated zlib didn't add back in links to the system HaruPDF after deleting links to the included one. So, I took out the part of the PKGBUILD that deletes HaruPDF from one of the CMake files, recompiled it, installed it, and got my scanner to save just fine. It seems to be compatible with the system zlib.

This might be a reasonable hotfix for anyone that needs it, but I have a hunch that this didn't actually link the system's HaruPDF instead of the included version.

rid3rius commented on 2024-05-26 13:04 (UTC) (edited on 2024-05-26 14:22 (UTC) by rid3rius)

I'm getting an error when scanning to pdf. epsonscan2: symbol lookup error: /usr/lib/epsonscan2/libepsonscan2.so: undefined symbol: HPDF_New

UPD: I have libharu installed, but epsonscan2 is not linked to it.

 > ldd /usr/bin/epsonscan2
        linux-vdso.so.1 (0x0000724400176000)
        libcommonutility.so => /usr/lib/epsonscan2/libcommonutility.so (0x00007243fff57000)
        libQt5Widgets.so.5 => /usr/lib/libQt5Widgets.so.5 (0x00007243ff800000)
        libQt5Gui.so.5 => /usr/lib/libQt5Gui.so.5 (0x00007243ff000000)
        libQt5Core.so.5 => /usr/lib/libQt5Core.so.5 (0x00007243fea00000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007243fe600000)
        libm.so.6 => /usr/lib/libm.so.6 (0x00007243ff715000)
        libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007243ffeea000)
        libc.so.6 => /usr/lib/libc.so.6 (0x00007243fe414000)
        libGL.so.1 => /usr/lib/libGL.so.1 (0x00007243ff68f000)
        libpng16.so.16 => /usr/lib/libpng16.so.16 (0x00007243ffeb0000)
        libz.so.1 => /usr/lib/libz.so.1 (0x00007243fefe7000)
        libharfbuzz.so.0 => /usr/lib/libharfbuzz.so.0 (0x00007243fe8e6000)
        libmd4c.so.0 => /usr/lib/libmd4c.so.0 (0x00007243fefd1000)
        libsystemd.so.0 => /usr/lib/libsystemd.so.0 (0x00007243fe326000)
        libdouble-conversion.so.3 => /usr/lib/libdouble-conversion.so.3 (0x00007243fefbb000)
        libicui18n.so.75 => /usr/lib/libicui18n.so.75 (0x00007243fde00000)
        libicuuc.so.75 => /usr/lib/libicuuc.so.75 (0x00007243fdc06000)
        libpcre2-16.so.0 => /usr/lib/libpcre2-16.so.0 (0x00007243fe294000)
        libzstd.so.1 => /usr/lib/libzstd.so.1 (0x00007243fe1b5000)
        libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00007243fdab8000)
        /lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x0000724400178000)
        libGLdispatch.so.0 => /usr/lib/libGLdispatch.so.0 (0x00007243fda00000)
        libGLX.so.0 => /usr/lib/libGLX.so.0 (0x00007243fef89000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00007243fd932000)
        libgraphite2.so.3 => /usr/lib/libgraphite2.so.3 (0x00007243fef66000)
        libcap.so.2 => /usr/lib/libcap.so.2 (0x00007243ffe9e000)
        libgcrypt.so.20 => /usr/lib/libgcrypt.so.20 (0x00007243fd7e9000)
        liblz4.so.1 => /usr/lib/liblz4.so.1 (0x00007243fef41000)
        liblzma.so.5 => /usr/lib/liblzma.so.5 (0x00007243fe8b3000)
        libicudata.so.75 => /usr/lib/libicudata.so.75 (0x00007243fba00000)
        libpcre2-8.so.0 => /usr/lib/libpcre2-8.so.0 (0x00007243fb962000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0x00007243fb824000)
        libbz2.so.1.0 => /usr/lib/libbz2.so.1.0 (0x00007243fe8a0000)
        libbrotlidec.so.1 => /usr/lib/libbrotlidec.so.1 (0x00007243ff680000)
        libgpg-error.so.0 => /usr/lib/libgpg-error.so.0 (0x00007243fe18f000)
        libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007243fd7be000)
        libbrotlicommon.so.1 => /usr/lib/libbrotlicommon.so.1 (0x00007243fd79b000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0x00007243fe89b000)
        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007243fe893000)

tecnotercio commented on 2024-05-17 03:30 (UTC)

@Xyphon and @torben: I've changed the PKGBUILD so that the HaruPDF and ZLIB libraries don't compile together with Epson Scan 2.

@jazzi: I've included armv7h architecture in the package.

jazzi commented on 2024-05-12 12:19 (UTC)

epsonscan2 is not available for the 'armv7h' architecture

On the Epson download page there is also ARM Raspbian package available, is there a way to support armv7h?