Greetings.
I am trying to get the free Veeam Linux Backup client running on my Slackware64-Current server like I have successfully got it running in Slackware64-15.0. Having trouble compiling the Veeam blksnap kernel module (
https://github.com/veeam/blksnap). I did have it running with kernel 6.6 using the "VAL-6.0" branch, but now that I've upgraded to kernel 6.9, it won't compile anymore, giving the following:
Code:
# ./mk.sh build
Making ...
make: Entering directory '/usr/src/linux-6.9'
grep: warning: stray \ before #
grep: warning: stray \ before #
CC [M] /usr/src/blksnap/module/bdevfilter.o
CC [M] /usr/src/blksnap/module/log.o
CC [M] /usr/src/blksnap/module/big_buffer.o
CC [M] /usr/src/blksnap/module/cbt_map.o
/usr/src/blksnap/module/log.c:246:5: warning: no previous prototype for ‘log_processor’ [-Wmissing-prototypes]
246 | int log_processor(void *data)
| ^~~~~~~~~~~~~
CC [M] /usr/src/blksnap/module/chunk.o
CC [M] /usr/src/blksnap/module/ctrl.o
CC [M] /usr/src/blksnap/module/diff_io.o
CC [M] /usr/src/blksnap/module/diff_area.o
/usr/src/blksnap/module/ctrl.c:438:5: warning: no previous prototype for ‘ioctl_mod’ [-Wmissing-prototypes]
438 | int ioctl_mod(unsigned long arg)
| ^~~~~~~~~
/usr/src/blksnap/module/ctrl.c:448:5: warning: no previous prototype for ‘ioctl_setlog’ [-Wmissing-prototypes]
448 | int ioctl_setlog(unsigned long arg)
| ^~~~~~~~~~~~
/usr/src/blksnap/module/diff_io.c:45:6: warning: no previous prototype for ‘diff_io_endio’ [-Wmissing-prototypes]
45 | void diff_io_endio(struct bio *bio)
| ^~~~~~~~~~~~~
CC [M] /usr/src/blksnap/module/diff_buffer.o
/usr/src/blksnap/module/diff_area.c: In function ‘diff_area_free’:
/usr/src/blksnap/module/diff_area.c:128:17: error: implicit declaration of function ‘blkdev_put’; did you mean ‘bdev_fput’? [-Wimplicit-function-declaration]
128 | blkdev_put(diff_area->orig_bdev, NULL);
| ^~~~~~~~~~
| bdev_fput
/usr/src/blksnap/module/diff_area.c: In function ‘diff_area_new’:
/usr/src/blksnap/module/diff_area.c:283:16: error: implicit declaration of function ‘blkdev_get_by_dev’; did you mean ‘blkdev_get_no_open’? [-Wimplicit-function-declaration]
283 | bdev = blkdev_get_by_dev(dev_id, FMODE_READ | FMODE_WRITE, NULL, NULL);
| ^~~~~~~~~~~~~~~~~
| blkdev_get_no_open
/usr/src/blksnap/module/diff_area.c:283:14: error: assignment to ‘struct block_device *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
283 | bdev = blkdev_get_by_dev(dev_id, FMODE_READ | FMODE_WRITE, NULL, NULL);
| ^
make[2]: *** [scripts/Makefile.build:244: /usr/src/blksnap/module/diff_area.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/usr/src/linux-6.9/Makefile:1919: /usr/src/blksnap/module] Error 2
make: *** [Makefile:240: __sub-make] Error 2
make: Leaving directory '/usr/src/linux-6.9'
So I tried cloning and compiling the master branch, but the pre-compile checks fail with the following:
Code:
# cmake .
-- The C compiler identification is GNU 14.1.0
-- The CXX compiler identification is GNU 14.1.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at /usr/lib64/cmake/Boost-1.85.0/BoostConfig.cmake:141 (find_package):
Found package configuration file:
/usr/lib64/cmake/boost_filesystem-1.85.0/boost_filesystem-config.cmake
but it set boost_filesystem_FOUND to FALSE so package "boost_filesystem" is
considered to be NOT FOUND. Reason given by package:
No suitable build variant has been found.
The following variants have been tried and rejected:
* libboost_filesystem.so.1.85.0 (shared, Boost_USE_STATIC_LIBS=ON)
Call Stack (most recent call first):
/usr/lib64/cmake/Boost-1.85.0/BoostConfig.cmake:262 (boost_find_component)
/usr/share/cmake-3.29/Modules/FindBoost.cmake:594 (find_package)
lib/blksnap/CMakeLists.txt:26 (FIND_PACKAGE)
I believe the newer cmake compile branches are the way things are moving and that the previous branches which do not use the Boost library will be abandoned.
Anybody have any ideas?