summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libre/opencv/PKGBUILD35
-rw-r--r--libre/opencv/libre.patch84
2 files changed, 103 insertions, 16 deletions
diff --git a/libre/opencv/PKGBUILD b/libre/opencv/PKGBUILD
index 8d258445e..35bebad6c 100644
--- a/libre/opencv/PKGBUILD
+++ b/libre/opencv/PKGBUILD
@@ -3,45 +3,50 @@
# Contributor (Hyperbola): André Silva <emulatorman@hyperbola.info>
# Contributor (Hyperbola): Márcio Silva <coadde@hyperbola.info>
# Maintainer: Omar Vega Ramos <ovruni@gnu.org.pe>
+# Contributor: grizzlyuser <grizzlyuser@protonmail.com>
pkgbase=opencv
pkgname=opencv
-pkgver=4.1.1
-pkgrel=1
+pkgver=4.3.0
+pkgrel=4
pkgrel+=.par1
pkgdesc="Free Computer Vision Library, without nonfree SIFT and SURF algorithms, nonfree Milky icons and lena images"
arch=(x86_64)
arch+=(i686 armv7h)
-license=(BSD)
+license=(BSD3)
url="https://opencv.org/"
depends=(intel-tbb openexr gst-plugins-base libdc1394 cblas lapack libgphoto2 jasper ffmpeg)
-makedepends=(cmake python-numpy python-setuptools mesa eigen hdf5 lapacke gtk3 vtk glew ant java-environment)
+depends+=(hicolor-icon-theme)
+makedepends=(cmake python-numpy python-setuptools mesa eigen hdf5 lapacke qt5-base vtk glew ant java-environment)
optdepends=('opencv-samples: samples'
- 'gtk3: for the HighGUI module and the Python bindings'
'vtk: for the viz module'
+ 'qt5-base: for the HighGUI module and the Python bindings'
'hdf5: for the HDF5 module and the Python bindings'
'opencl-icd-loader: For coding with OpenCL'
'python-numpy: Python bindings'
'java-runtime: Java interface')
-mksource=("$pkgbase-$pkgver.zip::https://github.com/opencv/opencv/archive/$pkgver.zip"
- "opencv_contrib-$pkgver.tar.gz::https://github.com/opencv/opencv_contrib/archive/$pkgver.tar.gz")
+mksource=("$pkgbase-$pkgver.tar.gz::https://github.com/opencv/opencv/archive/$pkgver.zip"
+ "opencv_contrib-$pkgver.tar.gz::https://github.com/opencv/opencv_contrib/archive/$pkgver.tar.gz"
+ libre.patch)
source=("https://repo.parabola.nu/other/$pkgname-libre/$pkgname-libre-$pkgver.zip"
opencv-includedir.patch)
-mksha256sums=('d34985c7b4283519c032e3585b30846644f56c81acba35693295ff8930f080aa'
- '9f85d380758498d800fec26307e389620cde8b1a2e86ab51cddc5200fbe37102')
-sha256sums=('92de32fbd5c2239cf1b7bd52c07aab8bec76fab1dd51fef5a887f401f75ee2f6'
+mksha256sums=('36799186756c1e12adde97f0a8d1afc395d5b0f86d8ad9ef951bc33aa732f9b9'
+ 'a96e35c9592e655b21a62cfe04e864a10e21535ad900e5de67356b9e9f40ca10'
+ '15139ab05b9713be6a7ee35b610f42668ea331a67c914b84a5696abd50076c54')
+sha256sums=('f82739ce08f52a3bb439c427a189da2aaa4b99ffd2d07fd6b26194b64e876900'
'a96e35c9592e655b21a62cfe04e864a10e21535ad900e5de67356b9e9f40ca10')
mksource() {
cd "$srcdir/opencv_contrib-$pkgver"
# remove nonfree SIFT and SURF algorithms that are patented in some countries and have some other limitations on the use
- rm -v modules/xfeatures2d/src/{sift,surf}.cpp
+ rm -rv modules/xfeatures2d
cd "$srcdir/$pkgname-$pkgver"
# remove nonfree Milky icons
rm -rv modules/highgui/src/files_Qt/Milky
+ patch -p1 -i ../libre.patch
# remove nonfree lena.png and lena.jpg images
rm -v $(find . -iname '*lena*')
@@ -53,9 +58,7 @@ prepare() {
cd $pkgname-$pkgver
patch -p1 -i ../opencv-includedir.patch # Fix wrong include patch in pkgconfig file
- cd "$srcdir/opencv_contrib-$pkgver"
- # remove nonfree SIFT and SURF references
- rm -rv modules/xfeatures2d
+ sed -e '/ocv_tbb_cmake_guess(HAVE_TBB)/d' -i cmake/OpenCVDetectTBB.cmake # Don't use TBB's cmake config, it breaks build
}
build() {
@@ -75,7 +78,8 @@ build() {
-DWITH_OPENCL=ON \
-DWITH_OPENGL=ON \
-DWITH_TBB=ON \
- -DOpenGL_GL_PREFERENCE=GLVND \
+ -DWITH_VULKAN=ON \
+ -DWITH_QT=ON \
-DBUILD_WITH_DEBUG_INFO=OFF \
-DBUILD_TESTS=OFF \
-DBUILD_PERF_TESTS=OFF \
@@ -83,7 +87,6 @@ build() {
-DINSTALL_C_EXAMPLES=ON \
-DINSTALL_PYTHON_EXAMPLES=ON \
-DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
$extra \
-DOPENCV_EXTRA_MODULES_PATH="$srcdir/opencv_contrib-$pkgver/modules" \
-DOPENCV_SKIP_PYTHON_LOADER=ON \
diff --git a/libre/opencv/libre.patch b/libre/opencv/libre.patch
new file mode 100644
index 000000000..417c0d8a6
--- /dev/null
+++ b/libre/opencv/libre.patch
@@ -0,0 +1,84 @@
+diff --git a/modules/highgui/src/window_QT.cpp b/modules/highgui/src/window_QT.cpp
+index 1600bd9..9a05294 100644
+--- a/modules/highgui/src/window_QT.cpp
++++ b/modules/highgui/src/window_QT.cpp
+@@ -1996,47 +1996,47 @@ void CvWindow::createActions()
+ QWidget* view = myView->getWidget();
+
+ //if the shortcuts are changed in window_QT.h, we need to update the tooltip manually
+- vect_QActions[0] = new QAction(QIcon(":/left-icon"), "Panning left (CTRL+arrowLEFT)", this);
++ vect_QActions[0] = new QAction(QIcon::fromTheme(QStringLiteral("go-previous")), "Panning left (CTRL+arrowLEFT)", this);
+ vect_QActions[0]->setIconVisibleInMenu(true);
+ QObject::connect(vect_QActions[0], SIGNAL(triggered()), view, SLOT(siftWindowOnLeft()));
+
+- vect_QActions[1] = new QAction(QIcon(":/right-icon"), "Panning right (CTRL+arrowRIGHT)", this);
++ vect_QActions[1] = new QAction(QIcon::fromTheme(QStringLiteral("go-next")), "Panning right (CTRL+arrowRIGHT)", this);
+ vect_QActions[1]->setIconVisibleInMenu(true);
+ QObject::connect(vect_QActions[1], SIGNAL(triggered()), view, SLOT(siftWindowOnRight()));
+
+- vect_QActions[2] = new QAction(QIcon(":/up-icon"), "Panning up (CTRL+arrowUP)", this);
++ vect_QActions[2] = new QAction(QIcon::fromTheme(QStringLiteral("go-up")), "Panning up (CTRL+arrowUP)", this);
+ vect_QActions[2]->setIconVisibleInMenu(true);
+ QObject::connect(vect_QActions[2], SIGNAL(triggered()), view, SLOT(siftWindowOnUp()));
+
+- vect_QActions[3] = new QAction(QIcon(":/down-icon"), "Panning down (CTRL+arrowDOWN)", this);
++ vect_QActions[3] = new QAction(QIcon::fromTheme(QStringLiteral("go-down")), "Panning down (CTRL+arrowDOWN)", this);
+ vect_QActions[3]->setIconVisibleInMenu(true);
+ QObject::connect(vect_QActions[3], SIGNAL(triggered()), view, SLOT(siftWindowOnDown()) );
+
+- vect_QActions[4] = new QAction(QIcon(":/zoom_x1-icon"), "Zoom x1 (CTRL+P)", this);
++ vect_QActions[4] = new QAction(QIcon::fromTheme(QStringLiteral("zoom-original")), "Zoom x1 (CTRL+P)", this);
+ vect_QActions[4]->setIconVisibleInMenu(true);
+ QObject::connect(vect_QActions[4], SIGNAL(triggered()), view, SLOT(resetZoom()));
+
+- vect_QActions[5] = new QAction(QIcon(":/imgRegion-icon"), tr("Zoom x%1 (see label) (CTRL+X)").arg(threshold_zoom_img_region), this);
++ vect_QActions[5] = new QAction(QIcon::fromTheme(QStringLiteral("edit-find")), tr("Zoom x%1 (see label) (CTRL+X)").arg(threshold_zoom_img_region), this);
+ vect_QActions[5]->setIconVisibleInMenu(true);
+ QObject::connect(vect_QActions[5], SIGNAL(triggered()), view, SLOT(imgRegion()));
+
+- vect_QActions[6] = new QAction(QIcon(":/zoom_in-icon"), "Zoom in (CTRL++)", this);
++ vect_QActions[6] = new QAction(QIcon::fromTheme(QStringLiteral("zoom-in")), "Zoom in (CTRL++)", this);
+ vect_QActions[6]->setIconVisibleInMenu(true);
+ QObject::connect(vect_QActions[6], SIGNAL(triggered()), view, SLOT(ZoomIn()));
+
+- vect_QActions[7] = new QAction(QIcon(":/zoom_out-icon"), "Zoom out (CTRL+-)", this);
++ vect_QActions[7] = new QAction(QIcon::fromTheme(QStringLiteral("zoom-out")), "Zoom out (CTRL+-)", this);
+ vect_QActions[7]->setIconVisibleInMenu(true);
+ QObject::connect(vect_QActions[7], SIGNAL(triggered()), view, SLOT(ZoomOut()));
+
+- vect_QActions[8] = new QAction(QIcon(":/save-icon"), "Save current image (CTRL+S)", this);
++ vect_QActions[8] = new QAction(QIcon::fromTheme(QStringLiteral("document-save")), "Save current image (CTRL+S)", this);
+ vect_QActions[8]->setIconVisibleInMenu(true);
+ QObject::connect(vect_QActions[8], SIGNAL(triggered()), view, SLOT(saveView()));
+
+- vect_QActions[9] = new QAction(QIcon(":/copy_clipbrd-icon"), "Copy image to clipboard (CTRL+C)", this);
++ vect_QActions[9] = new QAction(QIcon::fromTheme(QStringLiteral("edit-copy")), "Copy image to clipboard (CTRL+C)", this);
+ vect_QActions[9]->setIconVisibleInMenu(true);
+ QObject::connect(vect_QActions[9], SIGNAL(triggered()), view, SLOT(copy2Clipbrd()));
+
+- vect_QActions[10] = new QAction(QIcon(":/properties-icon"), "Display properties window (CTRL+P)", this);
++ vect_QActions[10] = new QAction(QIcon::fromTheme(QStringLiteral("document-properties")), "Display properties window (CTRL+P)", this);
+ vect_QActions[10]->setIconVisibleInMenu(true);
+ QObject::connect(vect_QActions[10], SIGNAL(triggered()), this, SLOT(displayPropertiesWin()));
+
+diff --git a/modules/highgui/src/window_QT.qrc b/modules/highgui/src/window_QT.qrc
+index efdd8c2..f7e6f37 100644
+--- a/modules/highgui/src/window_QT.qrc
++++ b/modules/highgui/src/window_QT.qrc
+@@ -1,16 +1,5 @@
+ <RCC>
+ <qresource prefix="/">
+- <file alias="left-icon">files_Qt/Milky/48/28.png</file>
+- <file alias="right-icon">files_Qt/Milky/48/23.png</file>
+- <file alias="up-icon">files_Qt/Milky/48/19.png</file>
+- <file alias="down-icon">files_Qt/Milky/48/24.png</file>
+- <file alias="zoom_x1-icon">files_Qt/Milky/48/27.png</file>
+- <file alias="imgRegion-icon">files_Qt/Milky/48/61.png</file>
+- <file alias="zoom_in-icon">files_Qt/Milky/48/106.png</file>
+- <file alias="zoom_out-icon">files_Qt/Milky/48/107.png</file>
+- <file alias="save-icon">files_Qt/Milky/48/7.png</file>
+- <file alias="copy_clipbrd-icon">files_Qt/Milky/48/43.png</file>
+- <file alias="properties-icon">files_Qt/Milky/48/38.png</file>
+ <file alias="stylesheet-trackbar">files_Qt/stylesheet_trackbar.qss</file>
+ </qresource>
+ </RCC>