Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 724508 - sys-cluster/ceph-15.2.2 places systemd unit files in /usr/libexec/systemd
Summary: sys-cluster/ceph-15.2.2 places systemd unit files in /usr/libexec/systemd
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Patrick McLean
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-05-21 21:07 UTC by Andrej Filipcic
Modified: 2020-05-28 19:09 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrej Filipcic 2020-05-21 21:07:04 UTC
As title says. Might be ceph build system bug or change. This patch to ebuild solves the problem:

--- a/sys-cluster/ceph/ceph-15.2.2.ebuild     2020-05-19 16:04:22.057307000 +0000
+++ b/sys-cluster/ceph/ceph-15.2.2-r1.ebuild     2020-05-21 20:32:53.458478000 +0000
@@ -262,6 +262,7 @@
                -DWITH_RDMA=OFF
                -DWITH_TBB=OFF
                -DSYSTEMD_UNITDIR=$(systemd_get_systemunitdir)
+               -DCMAKE_INSTALL_SYSTEMD_SERVICEDIR=$(systemd_get_systemunitdir)
                -DEPYTHON_VERSION="${EPYTHON#python}"
                -DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PN}-${PVR}"
                -DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"


Reproducible: Always
Comment 1 Andrej Filipcic 2020-05-22 04:46:28 UTC
Another problem, the systemd unit files are now installed by cmake-utils_src_install, so I am not sure it this part is relevant anymore:

        # units aren't installed by the build system unless systemd is enabled
        # so no point installing these with the USE flag disabled
        if use systemd; then
                systemd_install_serviced "${FILESDIR}/ceph-mds_at.service.conf" \
                        "ceph-mds@.service"

                systemd_install_serviced "${FILESDIR}/ceph-osd_at.service.conf" \
                        "ceph-osd@.service"
        fi

As a consequence, the /usr/lib/ceph ExecStartPre problem is back. This patch fixes the issue:

diff -ur ceph-15.2.2/systemd/ceph-osd@.service.in ceph-15.2.2.af/systemd/ceph-osd@.service.in
--- ceph-15.2.2/systemd/ceph-osd@.service.in    2020-05-18 16:25:12.000000000 +0000
+++ ceph-15.2.2.af/systemd/ceph-osd@.service.in 2020-05-21 21:20:58.318655944 +0000
@@ -10,7 +10,7 @@
 EnvironmentFile=-@SYSTEMD_ENV_FILE@
 Environment=CLUSTER=ceph
 ExecStart=/usr/bin/ceph-osd -f --cluster ${CLUSTER} --id %i --setuser ceph --setgroup ceph
-ExecStartPre=/usr/lib/ceph/ceph-osd-prestart.sh --cluster ${CLUSTER} --id %i
+ExecStartPre=/usr/libexec/ceph/ceph-osd-prestart.sh --cluster ${CLUSTER} --id %i
 ExecReload=/bin/kill -HUP $MAINPID
 LockPersonality=true
 MemoryDenyWriteExecute=true
Comment 2 Andrej Filipcic 2020-05-22 10:53:50 UTC
One problem more with the ebuild. The /run/ceph is not created, so the daemons silently fail to create the socket files. They work, but ceph tell does not work.

I have added this:
@@ -358,6 +360,11 @@
                        "ceph-osd@.service"
        fi
 
+       if use systemd; then
+         insinto /usr/lib/tmpfiles.d
+         newins "${FILESDIR}"/tmpfiles.d-ceph.conf ceph.conf
+       fi
+
        udev_dorules udev/*.rules

with 
 cat ceph/files/tmpfiles.d-ceph.conf
d /run/ceph 0770 ceph ceph -
Comment 3 Larry the Git Cow gentoo-dev 2020-05-28 19:09:29 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c8077590d4fd447e07508c7e511e9190920f0ca8

commit c8077590d4fd447e07508c7e511e9190920f0ca8
Author:     Patrick McLean <patrick.mclean@sony.com>
AuthorDate: 2020-05-28 19:08:53 +0000
Commit:     Patrick McLean <chutzpah@gentoo.org>
CommitDate: 2020-05-28 19:09:22 +0000

    sys-cluster/ceph-15.2.2-r1: Revbump, fix bugs #724508 and #724438
    
    Adds a "diskprediction" USE flag to enable diskprediction_local since it
    forces an old scipy (forcing off python3_8) (bug #724438)
    
    Fixes up the systemd unit and adds a tmpfiles entry (bug #724508)
    
    Closes: https://bugs.gentoo.org/724508
    Closes: https://bugs.gentoo.org/724438
    Copyright: Sony Interactive Entertainment Inc.
    Package-Manager: Portage-2.3.100, Repoman-2.3.22
    Signed-off-by: Patrick McLean <chutzpah@gentoo.org>

 .../{ceph-15.2.2.ebuild => ceph-15.2.2-r1.ebuild}  | 30 +++++++++++++++-------
 .../ceph/files/ceph-15.2.2-systemd-unit.patch      | 12 +++++++++
 sys-cluster/ceph/files/ceph-tmpfilesd              |  1 +
 sys-cluster/ceph/metadata.xml                      |  1 +
 4 files changed, 35 insertions(+), 9 deletions(-)