ice-wm / icewm

IceWM releases only, see Wiki
https://github.com/ice-wm/icewm/releases
Other
289 stars 15 forks source link

Error on cmake build (icewm 1.6.2) #5

Closed selkfoster closed 4 years ago

selkfoster commented 5 years ago

I was trying to upgrade to the version 1.6.2 of icewm, I got this error on the final install with cmake:

Install the project... -- Install configuration: "Release" -- Installing: /usr/src/qi/build/package-icewm/usr/bin/icewm-set-gnomewm -- Installing: /usr/src/qi/build/package-icewm/usr/bin/icewm-menu-xrandr -- Installing: /usr/src/qi/build/package-icewm/usr/bin/icewm-menu-fdo -- Installing: /usr/src/qi/build/package-icewm/usr/bin/icehelp -- Installing: /usr/src/qi/build/package-icewm/usr/bin/icewm -- Installing: /usr/src/qi/build/package-icewm/usr/bin/icesh -- Installing: /usr/src/qi/build/package-icewm/usr/bin/icewm-session -- Installing: /usr/src/qi/build/package-icewm/usr/bin/icewmhint -- Installing: /usr/src/qi/build/package-icewm/usr/bin/icewmbg -- Installing: /usr/src/qi/build/package-icewm/usr/share/icewm/preferences -- Installing: /usr/src/qi/build/package-icewm/usr/share/icewm/keys -- Installing: /usr/src/qi/build/package-icewm/usr/share/icewm/menu -- Installing: /usr/src/qi/build/package-icewm/usr/share/icewm/programs -- Installing: /usr/src/qi/build/package-icewm/usr/share/icewm/toolbar -- Installing: /usr/src/qi/build/package-icewm/usr/share/icewm/winoptions CMake Error at lib/cmake_install.cmake:109 (file): file INSTALL cannot find "/usr/src/qi/build/icewm-1.6.2/BUILD/lib/IceWM.jpg". Call Stack (most recent call first): cmake_install.cmake:59 (include)

My build procedure is:

mkdir BUILD
cd BUILD

cmake \
 -DCMAKE_CXX_FLAGS:STRING="$QICXXFLAGS"           \
 -DCMAKE_EXE_LINKER_FLAGS:STRING="$QILDFLAGS"     \
 -DCMAKE_INSTALL_PREFIX=/usr                      \
 -DCMAKE_BUILD_TYPE=Release                       \
 -DCMAKE_SKIP_INSTALL_RPATH=YES                   \
 ..

make -j${jobs} VERBOSE=1
make -j${jobs} DESTDIR="$destdir" install
gijsbers commented 5 years ago

You can fix it by sed -i 's/ IceWM.jpg//' lib/CMakeLists.txt See bbidulock/icewm#387

selkfoster commented 5 years ago

Ok.. Just in case, I've switched back[1] to the classic ./configure, which has been more tested with the time.

Some minor notes:

[1] http://git.savannah.nongnu.org/cgit/dragora.git/plain/recipes/x-apps/icewm/recipe

Code7R commented 5 years ago

I see @gijsbers has fixed it in another recent commit. Thanks!

@selkfoster what do you mean with "something about"? See https://buildd.debian.org/status/package.php?p=icewm or https://buildd.debian.org/status/fetch.php?pkg=icewm&arch=i386&ver=1.6.2%2Bgit20190929-1&stamp=1569916774&raw=0 - prints: -- CONFIG_LIBRSVG => on

$ ldd /usr/bin/icewm | grep pixbuf libgdk_pixbuf_xlib-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgdk_pixbuf_xlib-2.0.so.0 (0x00007fecbf302000) libgdk_pixbuf-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0 (0x00007fecbf2dc000)

selkfoster commented 5 years ago

It is my impression or the 'install-data' target is installing icewm.desktop at /usr/share/xsessions instead of /usr/share/applications?...

selkfoster commented 5 years ago

I see @gijsbers has fixed it in another recent commit. Thanks!

@selkfoster what do you mean with "something about"? See https://buildd.debian.org/status/package.php?p=icewm [..] -- Found x11, version 1.6.8 CMake Warning at src/CMakeLists.txt:224 (message): CONFIG_LIBRSVG is recommended for SVG image support

[..] -- CONFIG_GDK_PIXBUF_XLIB => ON -- CONFIG_LIBRSVG => OFF

Similar to others: -- CONFIG_XPM => ON -- CONFIG_LIBPNG => off -- CONFIG_LIBJPEG => off -- CONFIG_IMLIB => off

I have all these libraries. It seems that CONFIG_ should be passed explicitly in Cmake?.

$ ldd /usr/bin/icewm | grep pixbuf libgdk_pixbuf_xlib-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgdk_pixbuf_xlib-2.0.so.0 (0x00007fecbf302000) libgdk_pixbuf-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0 (0x00007fecbf2dc000)

Yes, but I was expecting librsvg instead of *pixbuf.

Code7R commented 5 years ago

Should they? If pixbuf is not used, icewm COULD use it's own image loading code for png/jpg/xpm/... but doesn't have to.

The benefit of gdk_pixbuf is decoupling the engine loading (and availability handling) from build system configuration. Not having (or having) a specific format support on the build machine is not the end of the world.

selkfoster commented 5 years ago

I am not saying that it is the end of the world here. See for example the difference when ./configure:

[..] checking for librsvg-2.0... yes [..]