Package Details: diffimg 2.2.0-3

Git Clone URL: https://aur.archlinux.org/diffimg.git (read-only, click to copy)
Package Base: diffimg
Description: Simple image comparison tool
Upstream URL: http://sourceforge.net/projects/diffimg/
Licenses: GPL2
Submitter: artemklevtsov
Maintainer: fuan_k
Last Packager: fuan_k
Votes: 4
Popularity: 0.000000
First Submitted: 2012-02-03 23:40 (UTC)
Last Updated: 2018-12-20 19:09 (UTC)

Latest Comments

fuan_k commented on 2018-09-18 17:17 (UTC) (edited on 2018-09-20 13:33 (UTC) by fuan_k)

With a clean chroot, I managed to compile but I got a linker error at compile time. The problem was in the Makefiles, needed to point to the right headers/libs.

By simply replacing qwt with qwt-qt4 on lines 178 and 180 of CMakeLists.txt on top of the /usr/include/qwt-qt4 and it now compiles just fine!

Apparently, opencv3 works too, no need for opencv2-opt. Only qwt-qt4 (thanks Scimmia!).

Had some issues with the packaging process, cmake output is a bit unpredictable but it should work now. Let me know if there are issues.

fuan_k commented on 2018-09-17 20:57 (UTC) (edited on 2018-09-17 20:58 (UTC) by fuan_k)

I've managed to compile (I think), with this PKGBUILD: https://gist.github.com/glubsy/f7eef903f0e59bb2ae0918020fdb006a

(...)
[100%] Built target diffimg
==> Entering fakeroot environment...
==> Starting package()...
[  0%] Built target DESKTOP_ENTRY_FILE
[  3%] Built target PerceptualDiff
[ 25%] Built target libyuv
[ 26%] Built target MANPAGE_FILE
[ 43%] Built target qtpropertybrowser
[100%] Built target diffimg
Install the project...
-- Install configuration: ""
-- Installing: /usr/local/bin/diffimg
CMake Error at cmake_install.cmake:47 (file):
  file INSTALL cannot copy file
  "/home/testing/diffimg-2.2.0/diffimg/src/Diffimg-2.2.0-src/build/diffimg"
  to "/usr/local/bin/diffimg".

make: *** [Makefile:85: install] Error 1
==> ERROR: A failure occurred in package().
    Aborting...

But it seems to be using the qt5 libs instead of qt4:

$> ldd ./diffimg
    linux-vdso.so.1 (0x00007fff7e203000)
    libQtGui.so.4 => /usr/lib/libQtGui.so.4 (0x00007f6b90b08000)
    libQtCore.so.4 => /usr/lib/libQtCore.so.4 (0x00007f6b90805000)
    libqwt.so.6 => /usr/lib/libqwt.so.6 (0x00007f6b904a1000)
    libopencv_imgcodecs.so.3.4 => /usr/lib/libopencv_imgcodecs.so.3.4 (0x00007f6b90152000)
    libopencv_imgproc.so.3.4 => /usr/lib/libopencv_imgproc.so.3.4 (0x00007f6b8da85000)
    libopencv_core.so.3.4 => /usr/lib/libopencv_core.so.3.4 (0x00007f6b8cda4000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f6b8cc13000)
    libm.so.6 => /usr/lib/libm.so.6 (0x00007f6b8ca8e000)
    libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f6b8ca74000)
    libc.so.6 => /usr/lib/libc.so.6 (0x00007f6b8c8b0000)
    libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f6b8c88f000)
    libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00007f6b8c776000)
    libpng16.so.16 => /usr/lib/libpng16.so.16 (0x00007f6b8c53e000)
    libz.so.1 => /usr/lib/libz.so.1 (0x00007f6b8c327000)
    libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00007f6b8c05e000)
    libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x00007f6b8c009000)
    libSM.so.6 => /usr/lib/libSM.so.6 (0x00007f6b8be01000)
    libICE.so.6 => /usr/lib/libICE.so.6 (0x00007f6b8bbe5000)
    libXrender.so.1 => /usr/lib/libXrender.so.1 (0x00007f6b8b9d8000)
    libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00007f6b8b992000)
    libXext.so.6 => /usr/lib/libXext.so.6 (0x00007f6b8b780000)
    libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f6b8b642000)
    libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f6b8b63d000)
    librt.so.1 => /usr/lib/librt.so.1 (0x00007f6b8b633000)
    /lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f6b91851000)
    libQt5PrintSupport.so.5 => /usr/lib/libQt5PrintSupport.so.5 (0x00007f6b8b5bb000)
    libQt5Svg.so.5 => /usr/lib/libQt5Svg.so.5 (0x00007f6b8b366000)
    libQt5OpenGL.so.5 => /usr/lib/libQt5OpenGL.so.5 (0x00007f6b8b30d000)
    libQt5Widgets.so.5 => /usr/lib/libQt5Widgets.so.5 (0x00007f6b8acab000)
    libQt5Gui.so.5 => /usr/lib/libQt5Gui.so.5 (0x00007f6b8a71a000)
    libQt5Core.so.5 => /usr/lib/libQt5Core.so.5 (0x00007f6b8a217000)
    libjpeg.so.8 => /usr/lib/libjpeg.so.8 (0x00007f6b89fad000)
    libwebp.so.7 => /usr/lib/libwebp.so.7 (0x00007f6b89d3f000)
    libtiff.so.5 => /usr/lib/libtiff.so.5 (0x00007f6b89ab7000)
    libjasper.so.4 => /usr/lib/libjasper.so.4 (0x00007f6b89842000)
    libIlmImf-2_3.so.24 => /usr/lib/libIlmImf-2_3.so.24 (0x00007f6b89571000)
    libtbb.so.2 => /usr/lib/libtbb.so.2 (0x00007f6b89334000)
    liblapack.so.3 => /usr/lib/liblapack.so.3 (0x00007f6b88a50000)
    libcblas.so.3 => /usr/lib/libcblas.so.3 (0x00007f6b88836000)
    libpcre.so.1 => /usr/lib/libpcre.so.1 (0x00007f6b885c4000)
    libbz2.so.1.0 => /usr/lib/libbz2.so.1.0 (0x00007f6b883b4000)
    libharfbuzz.so.0 => /usr/lib/libharfbuzz.so.0 (0x00007f6b882ff000)
    libffi.so.6 => /usr/lib/libffi.so.6 (0x00007f6b880f4000)
    libuuid.so.1 => /usr/lib/libuuid.so.1 (0x00007f6b87eed000)
    libexpat.so.1 => /usr/lib/libexpat.so.1 (0x00007f6b87eb1000)
    libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f6b87c88000)
    libGL.so.1 => /usr/lib/libGL.so.1 (0x00007f6b879e4000)
    libsystemd.so.0 => /usr/lib/libsystemd.so.0 (0x00007f6b87758000)
    libicui18n.so.62 => /usr/lib/libicui18n.so.62 (0x00007f6b8748d000)
    libicuuc.so.62 => /usr/lib/libicuuc.so.62 (0x00007f6b872c6000)
    libpcre2-16.so.0 => /usr/lib/libpcre2-16.so.0 (0x00007f6b8704f000)
    libdouble-conversion.so.1 => /usr/lib/libdouble-conversion.so.1 (0x00007f6b86e3f000)
    liblzma.so.5 => /usr/lib/liblzma.so.5 (0x00007f6b86c19000)
    libImath-2_3.so.24 => /usr/lib/libImath-2_3.so.24 (0x00007f6b86c03000)
    libHalf.so.24 => /usr/lib/libHalf.so.24 (0x00007f6b86bbe000)
    libIex-2_3.so.24 => /usr/lib/libIex-2_3.so.24 (0x00007f6b86b9c000)
    libIexMath-2_3.so.24 => /usr/lib/libIexMath-2_3.so.24 (0x00007f6b86b96000)
    libIlmThread-2_3.so.24 => /usr/lib/libIlmThread-2_3.so.24 (0x00007f6b86b8c000)
    libblas.so.3 => /usr/lib/libblas.so.3 (0x00007f6b86938000)
    libgfortran.so.5 => /usr/lib/libgfortran.so.5 (0x00007f6b866b9000)
    libgraphite2.so.3 => /usr/lib/libgraphite2.so.3 (0x00007f6b86694000)
    libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f6b86490000)
    libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f6b8628a000)
    libGLX.so.0 => /usr/lib/libGLX.so.0 (0x00007f6b8605a000)
    libGLdispatch.so.0 => /usr/lib/libGLdispatch.so.0 (0x00007f6b85d8c000)
    liblz4.so.1 => /usr/lib/liblz4.so.1 (0x00007f6b85b6d000)
    libgcrypt.so.20 => /usr/lib/libgcrypt.so.20 (0x00007f6b85851000)
    libicudata.so.62 => /usr/lib/libicudata.so.62 (0x00007f6b83eb6000)
    libquadmath.so.0 => /usr/lib/../lib/libquadmath.so.0 (0x00007f6b83e73000)
    libgpg-error.so.0 => /usr/lib/libgpg-error.so.0 (0x00007f6b83c51000)

Then it crashes:

Process 7755 (diffimg) of user 1000 dumped core.
Stack trace of thread 7755:
#0  0x00007f439109dd7f raise (libc.so.6)
#1  0x00007f4391088672 abort (libc.so.6)
#2  0x00007f43910e0878 __libc_message (libc.so.6)
#3  0x00007f43910e718a malloc_printerr (libc.so.6)
#4  0x00007f43910ec3da realloc (libc.so.6)
#5  0x00007f438eadcdd3 _ZN9QListData12realloc_growEi (libQt5Core.so.5)
#6  0x00007f438eadce7c _ZN9QListData6appendEi (libQt5Core.so.5)
#7  0x00007f438eb9c191 n/a (libQt5Core.so.5)
#8  0x00007f438eb9898e _Z21qRegisterResourceDataiPKhS0_S0_ (libQt5Core.so.5)
#9  0x00007f438ea69054 n/a (libQt5Core.so.5)
#10 0x00007f4395e4254a call_init.part.0 (ld-linux-x86-64.so.2)
#11 0x00007f4395e4264a _dl_init (ld-linux-x86-64.so.2)
#12 0x00007f4395e3403a _dl_start_user (ld-linux-x86-64.so.2)

It might be because it's using opencv3 instead of opencv2, or because of qt5 instead of qt4.

frankspace commented on 2017-11-20 00:33 (UTC)

I've managed to get something that ALMOST works for the current 2.2.0 version, although it requires the "qwt-qt4" package. I based it on dracorp's beta PKGBUILD. The problem is, the bundled perceptualdiff requires opencv2, and for the life of me I can't figure out how to get cmake to see the right files (or to make use of the "perceptualdiff-git" package). No matter what I do, compilation fails trying to build perceptualdiff/CMakeFiles/PerceptualDiff.dir/OpenCVImageLoader.o, complaining that opencv2/imgproc/imgproc.hpp doesn't exist. I tried a few ways to point explicitly to that file but if I do that, it eventually tells me that the core.hpp file referred to therein doesn't exist. I simply don't understand enough of cmake to get this to work. (I even temporarily uninstalled "qwt" and "opencv" just to be sure compilation wasn't accidentally picking up something it shouldn't.) Here is the best PKGBUILD that I've managed, including a bunch of commented-out stuff that I tried and it didn't work. https://gist.github.com/anonymous/1fceb86690a3c05f9ce1d92b91436b3b Someone more competent and knowledgeable than I am is necessary, I'm afraid.

dracorp commented on 2017-07-04 19:57 (UTC)

I've disowned package because I'm going to vacation. I'll back for 3 weeks.

dracorp commented on 2017-06-25 21:04 (UTC)

I don't know well cmake and I don't have idea how to link with opencv2-opt-2.4.13 instead of opencv-3.2.0: https://github.com/dracorp/diffimg/tree/beta Maybe someone want to adopts?

fuan_k commented on 2017-06-24 16:06 (UTC)

Can't build? ../3rdparty/perceptualdiff/lib/libperceptualdiff.a(OpenCVImageLoader.o): In function `OpenCVImageLoader::MatToRGBAImage(cv::Mat const&)': OpenCVImageLoader.cpp:(.text+0x2e4): undefined reference to `cv::_OutputArray::_OutputArray(cv::Mat&)' OpenCVImageLoader.cpp:(.text+0x2f5): undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)' ../3rdparty/perceptualdiff/lib/libperceptualdiff.a(OpenCVImageLoader.o): In function `OpenCVImageLoader::ReadFromFile(char const*)': OpenCVImageLoader.cpp:(.text+0x3ee): undefined reference to `cv::imread(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)' ../3rdparty/perceptualdiff/lib/libperceptualdiff.a(OpenCVImageLoader.o): In function `OpenCVImageLoader::WriteToFile(RGBAImage*, char const*)': OpenCVImageLoader.cpp:(.text+0x930): undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)' OpenCVImageLoader.cpp:(.text+0x985): undefined reference to `cv::imwrite(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cv::_InputArray const&, std::vector<int, std::allocator<int> > const&)' collect2: error: ld returned 1 exit status make[2]: *** [Makefile.apps.Release:172: release/diffimg] Error 1 make[2]: Leaving directory '/tmp/yaourt-tmp-user/aur-diffimg/src/diffimg-2.0.1/build' make[1]: *** [Makefile.apps:34: release] Error 2 make[1]: Leaving directory '/tmp/yaourt-tmp-user/aur-diffimg/src/diffimg-2.0.1/build' make: *** [Makefile:72: sub-apps-pro-make_default-ordered] Error 2

JohnRobson commented on 2016-07-26 05:24 (UTC)

==> Starting build()... /usr/lib/qt/mkspecs/features/qt_config.prf:3: Missing ] terminator [found /] /usr/lib/qt/mkspecs/features/default_pre.prf:13: defined(function, type): unexpected type [var]. /usr/lib/qt/mkspecs/features/default_pre.prf:65: Unknown test function: cache /usr/lib/qt/mkspecs/features/default_pre.prf:66: Unknown test function: cache Project ERROR: addExclusiveBuilds() requires at least two arguments ==> ERROR: A failure occurred in build(). Aborting... ==> ERROR: Makepkg was unable to build diffimg.

dracorp commented on 2013-02-23 11:37 (UTC)

Program diffimg (and the man page) has been renamed as DiffImg because it conflicts with graphviz.

dracorp commented on 2012-11-14 07:58 (UTC)

error: failed to commit transaction (conflicting files) diffimg: /usr/bin/diffimg exists in filesystem diffimg: /usr/share/man/man1/diffimg.1.gz exists in filesystem $ LC_ALL=C pacman -Qo `which diffimg` /usr/bin/diffimg is owned by graphviz 2.28.0-10 Please, corect this. Maybe rename the filename?