Followup: I tested -DCMAKE_INSTALL_LIBDIR and it worked, so no changes to the top-level CMakeLists.txt are needed.
Regards, John Ralls > On Dec 3, 2017, at 7:17 AM, John Ralls <[email protected]> wrote: > > Bob, > > We added “import(GNUInstallDirs)” to CMakeLists.txt and then went through and > changed all of the hard-coded installation directories (e.g. > ${CMAKE_INSTALL_PREFIX}/lib to ${CMAKE_INSTALL_LIBDIR} so that GnuCash would > install stuff in the right places for the Debian packager. It works for him, > we haven’t heard from any of the others yet. > > The GNUInstallDirs module automates the directories a bit more than > autotools; typically in autotools if you want libdir to be /usr/lib64 (or on > Debian, /usr/lib/x86_64-linux-gnu) you tell configure that with --libdir > /usr/lib64. GNUInsalldirs figures out somehow what distro you’re running and > sets up the defaults for what it thinks are that distro’s rules. If you want > something different you pass e.g. -DCMAKE_INSTALL_LIBDIR=/usr/lib to cmake… > but I think we need modify the top-level CMakeLists.txt to enable that. > > core-utils/binreloc.c had hard-coded directory names of bin, lib, etc, and > share relative to the prefix it detects by finding the executable’s path. Rob > Gowin fixed lib on Friday but the rest need to be changed to use the paths > from gncla-dir.h; that’s the source of your /usr/etc/gnucash problem and yes, > that’s a long-standing error: There isn’t supposed to be a /usr/etc [1]. > > I think your change to CMAKE_INSTALL_RPATH is correct; ${PKGLIBDIR} is a > relative path that doesn’t belong in the executable’s rpath. > > Regards, > John Ralls > > [1] http://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html > <http://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html> > >> On Dec 3, 2017, at 4:51 AM, Robert Fewell <[email protected]> wrote: >> >> Just a follow up, the VM I was using with a checkout before the changes at >> some point a /usr/etc/gnucash directory was created and hence works. If I >> rename the directory I get the same in the VM with an up to date checkout >> of unstable that does not have this directory but /etc/gnucash. >> >> I am confused !!! >> >> Bob >> >> On 3 December 2017 at 12:10, Robert Fewell <[email protected]> wrote: >> >>> Hi, >>> >>> I see there have been a lot of changes regarding lib directories and I am >>> wondering if the overall effect is I should be able to compile/build just >>> like I used to with out changing any thing because I can't. >>> >>> The first problem is that I build on Gentoo and occasionally try to build >>> from a local package / ebuild and as part of this scanelf is used which is >>> now reporting a possible security problem with DT_RUNPATH >>> >>> Prior to the changes it showed RPATH to be /usr/lib:/usr/lib/gnucash but >>> now it is /usr/lib64:lib64/gnucash. I can fix this by changing line 501 of >>> CMakeLists.txt to the following... >>> >>> SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_FULL_LIBDIR}: >>> ${CMAKE_INSTALL_FULL_LIBDIR}/gnucash") >>> >>> If it is just Gentoo specific, I will just patch it locally. >>> >>> The main problem is that it will not run because it can not find the >>> gnc-modules, after some poking around, the enviroment file is not being >>> found and so does not set GNC_MODULE_PATH. >>> >>> In gnc-enviroment.c, line 197, gnc_path_get_pkgsysconfdir returns >>> /usr/etc/gnucash which comes from binreloc.c, line 606, with prefix being >>> /usr >>> >>> The strange thing is that I get the same values for before these changes >>> were made, was this ever correct ? >>> >>> How to fix ? >>> >>> Regards, >>> >>> Bob >>> >>> >> _______________________________________________ >> gnucash-devel mailing list >> [email protected] >> https://lists.gnucash.org/mailman/listinfo/gnucash-devel > > _______________________________________________ > gnucash-devel mailing list > [email protected] > https://lists.gnucash.org/mailman/listinfo/gnucash-devel _______________________________________________ gnucash-devel mailing list [email protected] https://lists.gnucash.org/mailman/listinfo/gnucash-devel
