summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO27
-rw-r--r--PKGBUILD48
-rw-r--r--epsonscan2-crash.patch21
-rw-r--r--epsonscan2-oob-container.patch20
-rw-r--r--epsonscan2-xdg-open.patch26
5 files changed, 118 insertions, 24 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 2896899d6a47..3e1a2be873d8 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,21 +1,32 @@
pkgbase = epsonscan2
pkgdesc = Epson scanner management utility
- pkgver = 6.6.2.4
+ pkgver = 6.7.63.0
pkgrel = 1
url = http://support.epson.net/linux/en/epsonscan2.php
arch = i686
- arch = pentium4
arch = x86_64
license = GPL3
makedepends = boost
makedepends = cmake
- depends = boost-libs
- depends = libharu
- depends = qt5-singlecoreapplication
- depends = rapidjson
+ makedepends = libharu
+ makedepends = qt5-singlecoreapplication
+ makedepends = rapidjson
+ depends = libjpeg-turbo
+ depends = libpng
+ depends = libtiff
+ depends = libusb
+ depends = qt5-base
depends = sane
+ depends = zlib
optdepends = epsonscan2-non-free-plugin: OCR support and wireless scanning
- source = http://support.epson.net/linux/src/scanner/epsonscan2/epsonscan2-6.6.2.4-1.src.tar.gz
- sha512sums = 8a208e6e7654f20027b690d133ec7507d1070aa764b54861085ef7935afdc64b1d82182b9fd73ce7653b82216ae42787d514b366755bc55600837717f24895a6
+ options = !buildflags
+ source = https://download3.ebz.epson.net/dsc/f/03/00/15/17/69/0ef02802c476a6564f13cac929859c394f40326a/epsonscan2-6.7.63.0-1.src.tar.gz
+ source = epsonscan2-crash.patch
+ source = epsonscan2-oob-container.patch
+ source = epsonscan2-xdg-open.patch
+ b2sums = d765082c258e77bc98a64457388bddf465d258b62617460b0d8d3b82c3d6e1833e69515995349d5536069e2a4aede705abc3c962a12107fdf0af45e8fe8d8eac
+ b2sums = 8f3b86bdafa8822e49c48b4189ee262c92d7aadeff4369979dd723b01efd1c392789451d77eef5a127c58795403fbc5364793d20b6d4e494b1eff3ed3c1153fb
+ b2sums = b6821eba16ab6d7e829ca74b1c46432f505e87421146d38d30a0ebd8eeecd93d12d57bad071232528be62beff54663d4fa58fbc8b992461b8acdd8a53a354b3a
+ b2sums = 514b3e0f871bbe36106615676cafd8c4d1ed284d25cad8cd691ba08f67ae36a3e53547ecf898596cccdcfe002b9c6eaddc6cc3c9448c53238ae81af7b0cd35cf
pkgname = epsonscan2
diff --git a/PKGBUILD b/PKGBUILD
index 10ca415a4715..d22ebbfdb2f8 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,45 +1,61 @@
# Maintainer: Tércio Martins <echo dGVyY2lvd2VuZGVsQGdtYWlsLmNvbQo= | base64 -d>
pkgname=epsonscan2
-pkgver=6.6.2.4
-_pkgver="${pkgver}-1"
+pkgver=6.7.63.0
+_pkgver="$pkgver-1"
pkgrel=1
-arch=('i686' 'pentium4' 'x86_64')
+arch=('i686' 'x86_64')
pkgdesc="Epson scanner management utility"
url="http://support.epson.net/linux/en/epsonscan2.php"
license=('GPL3')
-depends=('boost-libs' 'libharu' 'qt5-singlecoreapplication' 'rapidjson' 'sane')
-makedepends=('boost' 'cmake')
+depends=('libjpeg-turbo' 'libpng' 'libtiff' 'libusb' 'qt5-base' 'sane' 'zlib')
+makedepends=('boost' 'cmake' 'libharu' 'qt5-singlecoreapplication' 'rapidjson')
optdepends=('epsonscan2-non-free-plugin: OCR support and wireless scanning')
-source=("http://support.epson.net/linux/src/scanner/${pkgname}/${pkgname}-${_pkgver}.src.tar.gz")
-sha512sums=('8a208e6e7654f20027b690d133ec7507d1070aa764b54861085ef7935afdc64b1d82182b9fd73ce7653b82216ae42787d514b366755bc55600837717f24895a6')
+options=('!buildflags')
+source=('https://download3.ebz.epson.net/dsc/f/03/00/15/17/69/0ef02802c476a6564f13cac929859c394f40326a/epsonscan2-6.7.63.0-1.src.tar.gz'
+ 'epsonscan2-crash.patch'
+ 'epsonscan2-oob-container.patch'
+ 'epsonscan2-xdg-open.patch')
+b2sums=('d765082c258e77bc98a64457388bddf465d258b62617460b0d8d3b82c3d6e1833e69515995349d5536069e2a4aede705abc3c962a12107fdf0af45e8fe8d8eac'
+ '8f3b86bdafa8822e49c48b4189ee262c92d7aadeff4369979dd723b01efd1c392789451d77eef5a127c58795403fbc5364793d20b6d4e494b1eff3ed3c1153fb'
+ 'b6821eba16ab6d7e829ca74b1c46432f505e87421146d38d30a0ebd8eeecd93d12d57bad071232528be62beff54663d4fa58fbc8b992461b8acdd8a53a354b3a'
+ '514b3e0f871bbe36106615676cafd8c4d1ed284d25cad8cd691ba08f67ae36a3e53547ecf898596cccdcfe002b9c6eaddc6cc3c9448c53238ae81af7b0cd35cf')
prepare() {
[[ -d build ]] && rm -r build; mkdir build
sed -i 's|/lib/udev|${CMAKE_INSTALL_PREFIX}/lib/udev|' \
- "${srcdir}/${pkgname}-${_pkgver}/CMakeLists.txt"
+ "$srcdir/$pkgname-$_pkgver/CMakeLists.txt"
sed -i '1 i #include "zlib.h"' \
- "${srcdir}/${pkgname}-${_pkgver}/src/CommonUtility/DbgLog.cpp"
+ "$srcdir/$pkgname-$_pkgver/src/CommonUtility/DbgLog.cpp"
+
+ # Stability improvements from Flatpak maintainers
+ # https://github.com/flathub/net.epson.epsonscan2
+ for file in crash oob-container xdg-open
+ do
+ patch --directory="$srcdir/$pkgname-$_pkgver" --forward --strip=1 --input="$srcdir/$pkgname-$file.patch"
+ done
}
build() {
cd build
cmake -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
- ../${pkgname}-${_pkgver}
+ -DQT_VERSION_MAJOR=5 \
+ ../$pkgname-$_pkgver
cmake --build .
}
package() {
cd build
- make DESTDIR="${pkgdir}" install
+ make DESTDIR="$pkgdir" install
- install -Dm644 "${srcdir}/${pkgname}-${_pkgver}/desktop/rpm/i686/${pkgname}.desktop" \
- "${pkgdir}/usr/share/applications/${pkgname}.desktop"
+ install -Dm644 "$srcdir/$pkgname-$_pkgver/desktop/rpm/i686/$pkgname.desktop" \
+ "$pkgdir/usr/share/applications/$pkgname.desktop"
- install -d ${pkgdir}/usr/lib/sane ; cd ${pkgdir}/usr/lib/sane
- ln -s ../${pkgname}/libsane-epsonscan2.so libsane-epsonscan2.so.1
- ln -s ../${pkgname}/libsane-epsonscan2.so libsane-epsonscan2.so.1.0.0
+ install -d $pkgdir/usr/lib/sane ; cd $pkgdir/usr/lib/sane
+ ln -s ../$pkgname/libsane-epsonscan2.so libsane-epsonscan2.so
+ ln -s ../$pkgname/libsane-epsonscan2.so libsane-epsonscan2.so.1
+ ln -s ../$pkgname/libsane-epsonscan2.so libsane-epsonscan2.so.1.0.0
}
diff --git a/epsonscan2-crash.patch b/epsonscan2-crash.patch
new file mode 100644
index 000000000000..67fd8e46d26a
--- /dev/null
+++ b/epsonscan2-crash.patch
@@ -0,0 +1,21 @@
+commit 1b36a6453e8af4bb7d7d470fa22c83200055b57e
+Author: Hubert Figuière <hub@figuiere.net>
+Date: Wed Oct 19 14:16:50 2022 -0400
+
+ Fix crash on device detection
+
+diff --git a/src/ES2Command/Src/Interface/ipc/ipcInterfaceImpl.cpp b/src/ES2Command/Src/Interface/ipc/ipcInterfaceImpl.cpp
+index 0390a71..d98cd21 100644
+--- a/src/ES2Command/Src/Interface/ipc/ipcInterfaceImpl.cpp
++++ b/src/ES2Command/Src/Interface/ipc/ipcInterfaceImpl.cpp
+@@ -131,7 +131,9 @@ ESErrorCode IPCInterfaceImpl::Open()
+ if(!ES_IsExistFile(dat_file)){
+ FILE *fp;
+ fp = fopen(dat_file.c_str(),"w");
+- fclose(fp);
++ if (fp) {
++ fclose(fp);
++ }
+ }
+
+ interrupt_.reset(new ipc_interrupt(delegate_, dat_file, IPC_SHARED_ID, IPC_SEMAHORE_KEY));
diff --git a/epsonscan2-oob-container.patch b/epsonscan2-oob-container.patch
new file mode 100644
index 000000000000..f805363ea4d5
--- /dev/null
+++ b/epsonscan2-oob-container.patch
@@ -0,0 +1,20 @@
+commit 7e42ca6214a7f3b177b250a8e93b1230f1190f42
+Author: Hubert Figuière <hub@figuiere.net>
+Date: Fri Oct 28 11:38:24 2022 -0400
+
+ Fix out of bound access on empty container
+
+diff --git a/src/Controller/Src/Finder/Finder.cpp b/src/Controller/Src/Finder/Finder.cpp
+index 8e24f2f..13039cf 100644
+--- a/src/Controller/Src/Finder/Finder.cpp
++++ b/src/Controller/Src/Finder/Finder.cpp
+@@ -38,6 +38,9 @@ namespace epsonscan {
+ }
+ SDIDeviceInfo* Finder::GetDevicesPointer()
+ {
++ if (devices_.size() == 0) {
++ return nullptr;
++ }
+ return &devices_[0];
+ }
+
diff --git a/epsonscan2-xdg-open.patch b/epsonscan2-xdg-open.patch
new file mode 100644
index 000000000000..54127f9408f5
--- /dev/null
+++ b/epsonscan2-xdg-open.patch
@@ -0,0 +1,26 @@
+commit 04bb229a5ed8d225b2bdf952dbb0ef3932d581bb
+Author: Hubert Figuière <hub@figuiere.net>
+Date: Wed Oct 19 14:39:03 2022 -0400
+
+ Use xdg-open to open directiories
+
+diff --git a/src/Standalone/savedestfolder.cpp b/src/Standalone/savedestfolder.cpp
+index 4ab51a4..be11c4b 100644
+--- a/src/Standalone/savedestfolder.cpp
++++ b/src/Standalone/savedestfolder.cpp
+@@ -37,7 +37,14 @@ bool SaveDestFolder::open_folder(Supervisor* sv)
+ if (result) {
+ //同じディレクトリを保存後に何度も開いてしまうためコマンドで開く仕様に
+ //上に記載されているほど使用優先度が高い
+- if(system("which nautilus > /dev/null") == 0){
++ if(system("which xdg-open > /dev/null") == 0){
++ cmd_size = strlen("xdg-open ");
++ failer = (char *)malloc(cmd_size+1);
++ if(failer){
++ memset(failer, 0, cmd_size+1);
++ memcpy(failer, "xdg-open", cmd_size);
++ }
++ }else if(system("which nautilus > /dev/null") == 0){
+ cmd_size = strlen("nautilus ");
+ failer = (char *)malloc(cmd_size+1);
+ if(failer){