diff options
-rw-r--r-- | libre/opencv/PKGBUILD | 35 | ||||
-rw-r--r-- | libre/opencv/libre.patch | 84 |
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> |