ElektraInitiative / libelektra

Elektra serves as a universal and secure framework to access configuration settings in a global, hierarchical key database.
https://www.libelektra.org
BSD 3-Clause "New" or "Revised" License
208 stars 123 forks source link

gsettings used as default? #1071

Closed markus2330 closed 7 years ago

markus2330 commented 8 years ago

Installed as

%{_libdir}/libgelektra-*.so
%{_libdir}/gio/modules/libelektrasettings.so

libelektrasettings.so is used as default?

markus2330 commented 8 years ago

Actually there are two questions: And is it actually broken or does it work if you import the old settings?

markus2330 commented 8 years ago

@reox Could you take a look why libelektrasettings was used by default?

reox commented 8 years ago

I can not even build that on CentOS 7.2:

CMake Error at src/bindings/gsettings/CMakeLists.txt:1 (cmake_minimum_required):
  CMake 3.0 or higher is required.  You are running version 2.8.11

because there is no cmake3 on CentOS 7.2 yet... I tried to install cmake3 like described here: https://www.heliocastro.info/?p=238 but that does not seem to work very well.

I think the spec file for CentOS is not complete, because there are other warnings, like no Lua, no SWIG, no python and also other cmake version problems like.

Here is the whole build output:

[vagrant@localhost ~]$ rpmbuild -ba elektra-0.8.18.spec 
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.OavizG
+ umask 022
+ cd /home/vagrant/rpmbuild/BUILD
+ cd /home/vagrant/rpmbuild/BUILD
+ rm -rf elektra-0.8.18
+ /usr/bin/gzip -dc /home/vagrant/rpmbuild/SOURCES/elektra-0.8.18.tar.gz
+ /usr/bin/tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd elektra-0.8.18
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.LlgtvK
+ umask 022
+ cd /home/vagrant/rpmbuild/BUILD
+ cd elektra-0.8.18
+ mkdir build
+ cd build
+ CFLAGS='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic'
+ export CFLAGS
+ CXXFLAGS='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic'
+ export CXXFLAGS
+ FFLAGS='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic -I/usr/lib64/gfortran/modules'
+ export FFLAGS
+ FCFLAGS='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic -I/usr/lib64/gfortran/modules'
+ export FCFLAGS
+ LDFLAGS='-Wl,-z,relro '
+ export LDFLAGS
+ /usr/bin/cmake -DCMAKE_C_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_CXX_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_Fortran_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_INSTALL_PREFIX:PATH=/usr -DINCLUDE_INSTALL_DIR:PATH=/usr/include -DLIB_INSTALL_DIR:PATH=/usr/lib64 -DSYSCONF_INSTALL_DIR:PATH=/etc -DSHARE_INSTALL_PREFIX:PATH=/usr/share -DLIB_SUFFIX=64 -DBUILD_SHARED_LIBS:BOOL=ON .. -DKDB_DEFAULT_STORAGE=ini -DKDB_DB_FILE=default.ini -DKDB_DB_INIT=elektra.ini -DKDB_DB_USER=.config/kdb/user '-DKDB_DB_SYSTEM=\~/.config/kdb/system' '-DKDB_DB_SPEC=\~/.config/kdb/spec' '-DBINDINGS=intercept;cpp;swig_python;swig_python2;swig_lua;gsettings'
-- The C compiler identification is GNU 4.8.5
-- The CXX compiler identification is GNU 4.8.5
-- Check for working C compiler: /bin/cc
-- Check for working C compiler: /bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /bin/c++
-- Check for working CXX compiler: /bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Performing Test HAS_CXX_STD
-- Performing Test HAS_CXX_STD - Success
-- Performing Test LD_ACCEPTS_VERSION_SCRIPT
-- Performing Test LD_ACCEPTS_VERSION_SCRIPT - Success
-- GCC detected
-- Performing Test HAS_CFLAG_MAYBE_UNINITIALIZED
-- Performing Test HAS_CFLAG_MAYBE_UNINITIALIZED - Success
-- C flags are -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic  -std=gnu99  -Wno-deprecated-declarations  -Wno-long-long -pedantic -Wno-variadic-macros -Wall -Wextra -Wno-overlength-strings -Wsign-compare -Wfloat-equal -Wformat-security -Wshadow -Wcomments -Wtrigraphs -Wundef -Wuninitialized -Winit-self -Wmaybe-uninitialized -Wsign-compare -Wfloat-equal -Wformat-security
-- CXX flags are -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic  -std=c++11  -Wno-deprecated-declarations  -Wold-style-cast -Wstrict-null-sentinel -D_GLIBCXX_USE_NANOSLEEP -Wno-missing-field-initializers -Woverloaded-virtual  -Wsign-promo  -Wno-long-long -pedantic -Wno-variadic-macros -Wall -Wextra -Wno-overlength-strings -Wsign-compare -Wfloat-equal -Wformat-security -Wshadow -Wcomments -Wtrigraphs -Wundef -Wuninitialized -Winit-self -Wmaybe-uninitialized
-- You are building Elektra 0.8.18
-- Detected unix-x86_64. Use make package to build packages (TBZ2).
-- Found Doxygen: /bin/doxygen (found version "1.8.5") 
-- Found Perl: /bin/perl (found version "5.16.3") 
CMake Warning at doc/help/CMakeLists.txt:19 (message):
  did not find ronn, cannot build man pages even though requested with
  BUILD_DOCUMENTATION.

-- Found PkgConfig: /bin/pkg-config (found version "0.27.1") 
-- Exclude Plugin iterate because excluded by category EXPERIMENTAL
-- Looking for __GNU_LIBRARY__
-- Looking for __GNU_LIBRARY__ - found
-- Looking for include file pthread.h
-- Looking for include file pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Exclude Plugin semlock because excluded by category EXPERIMENTAL
-- Exclude Plugin mozprefs because excluded by category EXPERIMENTAL
-- Exclude Plugin template because excluded by category EXPERIMENTAL
-- Exclude Plugin blockresolver because excluded by category EXPERIMENTAL
-- Exclude Plugin jni because excluded by category EXPERIMENTAL
-- Exclude Plugin crypto_gcrypt because excluded by category EXPERIMENTAL
-- Exclude Plugin crypto_openssl because excluded by category EXPERIMENTAL
-- Exclude Plugin crypto_botan because excluded by category EXPERIMENTAL
-- Exclude Plugin passwd because excluded by category EXPERIMENTAL
-- Exclude Plugin cachefilter because excluded by category EXPERIMENTAL
-- Exclude Plugin doc because excluded by category EXPERIMENTAL
-- Found LibXml2: /usr/lib64/libxml2.so (found version "2.9.1") 
-- Exclude Plugin augeas because augeas not found
-- Include Plugin boolean
-- Include Plugin ccode
-- Include Plugin conditionals
-- Include Plugin constants
-- Include Plugin counter
-- Include Plugin csvstorage
-- Could NOT find CURL (missing:  CURL_LIBRARY CURL_INCLUDE_DIR) 
-- Exclude Plugin curlget because Curl-dev not found
-- Found D-Bus: /usr/lib64/libdbus-1.so
-- Include Plugin dbus
-- Include Plugin desktop
-- Include Plugin dpkg
-- Include Plugin dump
-- Include Plugin enum
-- Include Plugin error
-- Looking for iconv
-- Looking for iconv - found
-- Found iconv library: 
-- Include Plugin filecheck
-- Include Plugin fstab
-- Could NOT find LibGit2 (missing:  LibGit2_LIBRARIES LibGit2_INCLUDE_DIR) 
-- Exclude Plugin gitresolver because Cannot find libgit2-dev
-- Include Plugin glob
-- Include Plugin hexcode
-- Include Plugin hidden
-- Include Plugin hosts
-- Include Plugin iconv
-- Include Plugin ini
-- Exclude Plugin journald because systemd-journal not found
-- Include Plugin keytometa
-- Include Plugin line
-- Include Plugin lineendings
-- Include Plugin list
-- Include Plugin logchange
CMake Warning at cmake/Modules/FindLua.cmake:124 (message):
  Lua executable does not match lua library version
Call Stack (most recent call first):
  cmake/Modules/FindLua.cmake:201 (verify_lua_executable_version)
  src/plugins/lua/CMakeLists.txt:2 (find_package)

Lua library: .
Lua executable: 5.1
-- Could NOT find Lua (missing:  LUA_INCLUDE_DIR) (Required is at least version "5.1")
-- Could NOT find SWIG (missing:  SWIG_EXECUTABLE SWIG_DIR) (Required is at least version "3")
-- Search for swig2 instead
-- Exclude Plugin lua because Lua libs >= 5.2 not found
-- Include Plugin mathcheck
-- Include Plugin network
-- Include Plugin ni
-- Include Plugin noresolver
-- Include Plugin null
-- Include Plugin path
-- Include Plugin profile
-- Could NOT find PythonLibs (missing:  PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS) (Required is at least version "3")
-- Could NOT find SWIG (missing:  SWIG_EXECUTABLE SWIG_DIR) (Required is at least version "3")
-- Search for swig2 instead
-- Exclude Plugin python because python 3 libs not found
-- Could NOT find Python2Libs (missing:  PYTHON2_LIBRARIES PYTHON2_INCLUDE_DIRS) (Required is at least version "2.7")
-- Could NOT find SWIG (missing:  SWIG_EXECUTABLE SWIG_DIR) (Required is at least version "3")
-- Search for swig2 instead
-- Exclude Plugin python2 because python 2 libs not found
DEPRECATIONPython 2.7 plugin has been deprecated
-- Include Plugin regexstore
-- Include Plugin rename
-- Include Plugin resolver_fm_hpu_b
-- Include Plugin resolver_fm_b_b
-- Include Plugin resolver_fm_pb_b
-- Include Plugin resolver_fm_hb_b
-- Include Plugin resolver_fm_hp_b
-- Include Plugin resolver_fm_ub_x
-- Include Plugin resolver_fm_xb_x
-- Include Plugin resolver_fm_xp_x
-- Include Plugin resolver_fm_xhp_x
-- Include Plugin resolver_fm_uhb_xb
-- Include Plugin shell
-- Include Plugin simpleini
-- Include Plugin spec
-- Include Plugin struct
-- Include Plugin sync
-- Include Plugin syslog
-- Boost version: 1.53.0
-- Include Plugin tcl
-- Include Plugin timeofday
-- Include Plugin tracer
-- Include Plugin type
-- Include Plugin uname
-- Include Plugin validation
-- Include Plugin wresolver
-- Include Plugin xmltool
-- Found Yajl: /usr/lib64/libyajl.so  
-- Include Plugin yajl
-- Include Binding cpp
-- Exclude Binding jna because cmake 2.8.12 needed for glib
-- Include Binding GSettings
CMake Error at src/bindings/gsettings/CMakeLists.txt:1 (cmake_minimum_required):
  CMake 3.0 or higher is required.  You are running version 2.8.11

-- Configuring incomplete, errors occurred!
error: Bad exit status from /var/tmp/rpm-tmp.LlgtvK (%build)

RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.LlgtvK (%build)

Is it possible that these bugs are related to a wrong build and version incompatibility?

markus2330 commented 8 years ago

Thank you, I (hopefully) fixed the problem that cmake aborts when cmake2 is used.

But this will not help you for reproducing the gsettings issue, you need cmake3 to compile gsettings. Why exactly did https://www.heliocastro.info/?p=238 not work? Did you use /usr/lib64/cmake3/bin/cmake as mentioned?

reox commented 8 years ago

Yes i added the path to the cmake binaries and also sourced /etc/profile.d/cmake3.sh. During installation yum complained about missing libjsoncpp.so.0()(64bit), which is not in the repos and was manually installed from https://www.rpmfind.net/linux/rpm2html/search.php?query=libjsoncpp.so.0%28%29%2864bit%29

I already asked Heinz if he can send us a build rpm, and how he manages to build everything on CentOS.

markus2330 commented 8 years ago

libjsoncpp

Strange, seems unrelated to Elektra. Elektra only uses libyajl-dev (which has a similar purpose, but the software is unrelated).

/etc/profile.d/cmake3.sh

Dont know if this is used during RPM building (seems like it is not if you still get an error about cmake2). Can you use /usr/lib64/cmake3/bin/cmake directly?

reox commented 8 years ago

no, cmake3 seems to depend on libjsoncpp.

I'll try to set up cmake3 from scratch and try to build again

markus2330 commented 8 years ago

Ahh ok, good to know! We could also write a plugin using libjsoncpp if we get that dependency for free ;)

Thank you! Could you please also check if cmake2 now does not fail anymore? (But only excludes gsettings binding)

reox commented 8 years ago

Another hint for building: it seems that rpmforge has cmake3 even on el6 (these mirrors are also used in the inflab env). My vagrant is unwilling to start now but if I manage to start it someday, I can test with the rpmforge mirrors.

edit: okay rpmforge is dead and should not be used anymore... so the EPEL are actually correct. I try now to install the correct ones...

markus2330 commented 8 years ago

Thanks, you are one fire with finding issues! It displayed the wrong version (5.1 is correct and should work, it was needed for openwrt where only 5.1 was available).

It seems like it cannot locate the lua headers (include dir) and also fails to find swig?

markus2330 commented 8 years ago

Btw. make sure to set TARGET_LUA_CMOD_FOLDER and TARGET_LUA_LMOD_FOLDER if you use lua != 5.2

markus2330 commented 7 years ago

gsettings is now excluded from ALL.