Eric, thank you for your review. I still wonder why is it so complicated (my expectation was "ok, since I use both cmake and cpack, they should work together")
can you please review https://github.com/SoftEtherVPN/SoftEtherVPN/commit/139fffe6e0c218f580cd8a397d94856be37fa947 (it is based on your suggestions) сб, 20 окт. 2018 г. в 17:59, Eric Noulard <eric.noul...@gmail.com>: > > > Le sam. 20 oct. 2018 à 10:54, Илья Шипицин <chipits...@gmail.com> a > écrit : > >> >> >> сб, 20 окт. 2018 г. в 13:30, Eric Noulard <eric.noul...@gmail.com>: >> >>> >>> >>> Le sam. 20 oct. 2018 à 10:15, Илья Шипицин <chipits...@gmail.com> a >>> écrit : >>> >>>> hi, >>>> >>>> we use cmake/cpack for mangling systemd scripts >>>> >>>> >>>> https://github.com/SoftEtherVPN/SoftEtherVPN/blob/master/src/vpnserver/CMakeLists.txt#L26 >>>> >>>> what happens: >>>> >>>> (*) deb installs files to /usr/libexec >>>> (*) cmake sets location as /usr/local/libexec >>>> >>> >>> It looks like your get default "/usr/local" prefix from somewhere. >>> >> >> exactly. >> > > So I I understand it well (correct me if I'm wrong) when you do: > > 1) make install > You get all installed files prefixed by /usr/local > which is the expected behaviour unless you configure > CMAKE_INSTALL_PREFIX > or you use > DESTDIR=/your/prefix make install > > 2) deb created by CPack get "/usr" prefix instead > which is the expected behaviour unless you specify an alternate value > using > CPACK_PACKAGING_INSTALL_PREFIX > > go to your build tree and try: > cpack -G DEB -D CPACK_PACKAGING_INSTALL_PREFIX=/opt > > and you'll see that the .deb will have /opt prefix. > > The question is what do expect as a prefix? > /usr/local > /usr > something else ?? > > The rules are the following when using install rule. > 1) if your DESTINATION is a relative path then it will be prefix with > CMAKE_INSTALL_PREFIX when doing make install > CPACK_PACKAGING_INSTALL_PREFIX when building package with CPack > > 2) if your DESTINATION is "absolute" like /etc/whatever/confdir > It'll get install there when doing make install (whatever the value > of CMAKE_INSTALL_PREFIX) > > With CPack, it depends on the generator. > Some generators (like DEB a,nd RPM) try to catch "absolute" install > file and handle them > as config file. RPM generator is more verbose about it see below. > > Is the RPM containing what you expect? >>> >> >> I did not check it yet. >> > > I tried using: > $ cpack -G RPM > > and you get expected warning about the mix of absolute and relative > install path: > CPack: Create package using RPM > CPack: Install projects > CPack: - Install project: SoftEtherVPN > CPack: - Install component: vpnserver > CPack: - Install component: vpnclient > CPack: - Install component: vpnbridge > CPack: - Install component: vpncmd > CPack: Create package > CMake Warning (dev) at > /home/enoulard/local/share/cmake-3.12/Modules/Internal/CPack/CPackRPM.cmake:135 > (message): > CPackRPM:Warning: Path /lib/systemd/system/softether-vpnbridge.service is > not on one of the relocatable paths! Package will be partially > relocatable. > Call Stack (most recent call first): > > /home/enoulard/local/share/cmake-3.12/Modules/Internal/CPack/CPackRPM.cmake:1001 > (cpack_rpm_prepare_relocation_paths) > > /home/enoulard/local/share/cmake-3.12/Modules/Internal/CPack/CPackRPM.cmake:1870 > (cpack_rpm_generate_package) > This warning is for project developers. Use -Wno-dev to suppress it. > > [...] > > CPack: - package: []/build/softether-vpnbridge-5.1.9660-1.x86_64.rpm > generated. > CPack: - package: []/build/softether-vpnclient-5.1.9660-1.x86_64.rpm > generated. > CPack: - package: []/build/softether-vpncmd-5.1.9660-1.x86_64.rpm > generated. > CPack: - package: []/build/softether-vpnserver-5.1.9660-1.x86_64.rpm > generated. > > And the content is: > $ rpm -qpl softether-vpnserver-5.1.9660-1.x86_64.rpm > /lib > /lib/systemd > /lib/systemd/system > /lib/systemd/system/softether-vpnserver.service > /usr/libexec > /usr/libexec/softether > /usr/libexec/softether/vpnserver > /usr/libexec/softether/vpnserver/hamcore.se2 > /usr/libexec/softether/vpnserver/vpnserver > /usr/local > /usr/local/bin > /usr/local/bin/vpnserver > > the content of the .deb is similar: > $ dpkg-deb -c softether-vpnserver_5.1.9660_amd64.deb > drwxr-xr-x root/root 0 2018-10-20 14:45 ./lib/ > drwxr-xr-x root/root 0 2018-10-20 14:45 ./lib/systemd/ > drwxr-xr-x root/root 0 2018-10-20 14:45 ./lib/systemd/system/ > -rw-r--r-- root/root 700 2018-10-20 14:45 > ./lib/systemd/system/softether-vpnserver.service > drwxr-xr-x root/root 0 2018-10-20 14:45 ./usr/ > drwxr-xr-x root/root 0 2018-10-20 14:45 ./usr/libexec/ > drwxr-xr-x root/root 0 2018-10-20 14:45 ./usr/libexec/softether/ > drwxr-xr-x root/root 0 2018-10-20 14:45 > ./usr/libexec/softether/vpnserver/ > -rw-r--r-- root/root 1770716 2018-10-20 14:45 > ./usr/libexec/softether/vpnserver/hamcore.se2 > -rwxr-xr-x root/root 2088960 2018-10-20 14:45 > ./usr/libexec/softether/vpnserver/vpnserver > drwxr-xr-x root/root 0 2018-10-20 14:45 ./usr/local/ > drwxr-xr-x root/root 0 2018-10-20 14:45 ./usr/local/bin/ > -rwxr-xr-x root/root 72 2018-10-20 14:45 ./usr/local/bin/vpnserver > > The main question is, what filesystem layout do you expect for those files? > > -- > Eric >
-- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: https://cmake.org/mailman/listinfo/cmake