From: Markus Volk <f_l_k@t-online.de>
To: Martin Jansa <martin.jansa@gmail.com>
Cc: raj.khem@gmail.com, openembedded-devel@lists.openembedded.org,
Khem Raj <raj.khem@gmail.com>
Subject: Re: [oe] [meta-oe][PATCH v3] snapper: add recipe
Date: Thu, 31 Oct 2024 18:25:38 +0100 [thread overview]
Message-ID: <QQD8MS.V8W1IWD2ZRJ81@t-online.de> (raw)
In-Reply-To: <CA+chaQcWf6gCEJbQX16zR=B3PUmaR78WCVorvrP4JvQsJAPDPw@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 10439 bytes --]
Hi Martin,
I think it might help to replace ${libdir}/systemd with
${systemd_system_unitdir} in FILES:${PN}
On Thu, Oct 24 2024 at 12:47:46 PM +02:00:00, Martin Jansa
<martin.jansa@gmail.com> wrote:
> Hi Markus,
>
> this fails with installed-vs-shipped when libdir isn't /usr/lib:
>
> ERROR: lib32-snapper-0.11.2-r0 do_package: QA Issue: lib32-snapper:
> Files/directories were installed but not shipped in any package:
> /usr/lib/systemd
> /usr/lib/systemd/system
> /usr/lib/systemd/system/snapper-timeline.timer
> /usr/lib/systemd/system/snapper-timeline.service
> /usr/lib/systemd/system/snapper-boot.timer
> /usr/lib/systemd/system/snapper-cleanup.timer
> /usr/lib/systemd/system/snapperd.service
> /usr/lib/systemd/system/snapper-boot.service
> /usr/lib/systemd/system/snapper-cleanup.service
> /usr/lib/snapper/systemd-helper
> /usr/lib/snapper/installation-helper
> /usr/lib/snapper/plugins
> Please set FILES such that these items are packaged. Alternatively if
> they are unneeded, avoid installing them or delete them within
> do_install.
> lib32-snapper: 12 installed and not shipped files.
> [installed-vs-shipped]
>
> I've started to modify
> <https://github.com/openSUSE/snapper/blob/master/data/Makefile.am> to
> respect configured libdir (and datadir and systemd paths), but it's
> not that simple as /usr/lib is also hardcoded for the plugins:
> snapper/Hooks.cc:#define GRUB_SCRIPT "/usr/lib/snapper/plugins/grub"
> snapper/Hooks.cc:#define ROLLBACK_SCRIPT
> "/usr/lib/snapper/plugins/rollback"
> snapper/PluginsImpl.cc:#define GRUB_SCRIPT
> "/usr/lib/snapper/plugins/grub"
> snapper/PluginsImpl.cc:#define ROLLBACK_SCRIPT
> "/usr/lib/snapper/plugins/rollback"
> snapper/SnapperDefines.h:#define PLUGINS_DIR
> "/usr/lib/snapper/plugins"
>
> should the packaging be changed to use nonarch_libdir and let
> lib32-snapper and snapper conflict with each other? Or is there some
> better way to resolve this?
>
> I'm not planning to use snapper, this was just new failure detected in
> my world builds.
>
> Regards,
>
> On Sun, Oct 20, 2024 at 5:08 PM Khem Raj via lists.openembedded.org
> <raj.khem=gmail.com@lists.openembedded.org
> <mailto:raj.khem=gmail.com@lists.openembedded.org>> wrote:
>>
>> From: Markus Volk <f_l_k@t-online.de <mailto:f_l_k@t-online.de>>
>>
>> Snapper is a tool for Linux file system snapshot management. Apart
>> from
>> the obvious creation and deletion of snapshots it can compare
>> snapshots
>> and revert differences between them. In simple terms, this allows
>> root
>> and non-root users to view older versions of files and revert
>> changes.
>>
>> Signed-off-by: Markus Volk <f_l_k@t-online.de
>> <mailto:f_l_k@t-online.de>>
>> Signed-off-by: Khem Raj <raj.khem@gmail.com
>> <mailto:raj.khem@gmail.com>>
>> ---
>> v3: More fixes for musl
>>
>> ...x-types.h-for-__u16-__u32-__u64-type.patch | 30 ++++++++++++++
>> ...002-Use-statvfs-instead-of-statvfs64.patch | 37
>> +++++++++++++++++
>> .../recipes-support/snapper/snapper_0.11.2.bb | 41
>> +++++++++++++++++++
>> 3 files changed, 108 insertions(+)
>> create mode 100644
>> meta-oe/recipes-support/snapper/snapper/0001-Include-linux-types.h-for-__u16-__u32-__u64-type.patch
>> create mode 100644
>> meta-oe/recipes-support/snapper/snapper/0002-Use-statvfs-instead-of-statvfs64.patch
>> create mode 100644
>> meta-oe/recipes-support/snapper/snapper_0.11.2.bb
>>
>> diff --git
>> a/meta-oe/recipes-support/snapper/snapper/0001-Include-linux-types.h-for-__u16-__u32-__u64-type.patch
>> b/meta-oe/recipes-support/snapper/snapper/0001-Include-linux-types.h-for-__u16-__u32-__u64-type.patch
>> new file mode 100644
>> index 0000000000..ec8594629e
>> --- /dev/null
>> +++
>> b/meta-oe/recipes-support/snapper/snapper/0001-Include-linux-types.h-for-__u16-__u32-__u64-type.patch
>> @@ -0,0 +1,30 @@
>> +From d103eaeae169708ca567f092182a89b79e5ab9db Mon Sep 17 00:00:00
>> 2001
>> +From: Khem Raj <raj.khem@gmail.com <mailto:raj.khem@gmail.com>>
>> +Date: Sun, 20 Oct 2024 07:52:33 -0700
>> +Subject: [PATCH 1/2] Include linux/types.h for __u16/__u32/__u64
>> type
>> +
>> +This header is included indirectly with glibc but when using musl
>> +it ends up with compilation failure
>> +
>> +BcachefsUtils.cc:85:20: error: use of undeclared identifier '__u32'
>> + 85 | args.dirfd = (__u32) fddst;
>> + | ^
>> +
>> +Upstream-Status: Submitted
>> [<https://github.com/openSUSE/snapper/pull/945>]
>> +Signed-off-by: Khem Raj <raj.khem@gmail.com
>> <mailto:raj.khem@gmail.com>>
>> +---
>> + snapper/BcachefsUtils.cc | 1 +
>> + 1 file changed, 1 insertion(+)
>> +
>> +diff --git a/snapper/BcachefsUtils.cc b/snapper/BcachefsUtils.cc
>> +index e9163ffb..1d328a78 100644
>> +--- a/snapper/BcachefsUtils.cc
>> ++++ b/snapper/BcachefsUtils.cc
>> +@@ -24,6 +24,7 @@
>> +
>> + #include <cstring>
>> + #include <cerrno>
>> ++#include <linux/types.h>
>> + #include <sys/stat.h>
>> + #include <sys/ioctl.h>
>> +
>> diff --git
>> a/meta-oe/recipes-support/snapper/snapper/0002-Use-statvfs-instead-of-statvfs64.patch
>> b/meta-oe/recipes-support/snapper/snapper/0002-Use-statvfs-instead-of-statvfs64.patch
>> new file mode 100644
>> index 0000000000..b915fda257
>> --- /dev/null
>> +++
>> b/meta-oe/recipes-support/snapper/snapper/0002-Use-statvfs-instead-of-statvfs64.patch
>> @@ -0,0 +1,37 @@
>> +From 0b39f4484553c796cb300fb4933ea314e91d913b Mon Sep 17 00:00:00
>> 2001
>> +From: Khem Raj <raj.khem@gmail.com <mailto:raj.khem@gmail.com>>
>> +Date: Sun, 20 Oct 2024 07:55:23 -0700
>> +Subject: [PATCH 2/2] Use statvfs instead of statvfs64
>> +
>> +when using LFS64 these functions are same and also
>> +on 64bit systems they are same. musl is using 64bit off_t
>> +by default and does not define LFS64 variants of these functions
>> +and it ends up in build errors
>> +
>> +Taken from Alpine Linux:
>> [<https://gitlab.alpinelinux.org/alpine/aports/-/blob/master/testing/snapper/statvfs64.patch>]
>> +
>> +Upstream-Status: Submitted
>> [<https://github.com/openSUSE/snapper/pull/945>]
>> +
>> +Signed-off-by: Markus Volk <f_l_k@t-online.de
>> <mailto:f_l_k@t-online.de>>
>> +Signed-off-by: Khem Raj <raj.khem@gmail.com
>> <mailto:raj.khem@gmail.com>>
>> +---
>> + snapper/FileUtils.cc | 6 +++---
>> + 1 file changed, 3 insertions(+), 3 deletions(-)
>> +
>> +diff --git a/snapper/FileUtils.cc b/snapper/FileUtils.cc
>> +index d4034279..4c8578a1 100644
>> +--- a/snapper/FileUtils.cc
>> ++++ b/snapper/FileUtils.cc
>> +@@ -387,9 +387,9 @@ namespace snapper
>> + std::pair<unsigned long long, unsigned long long>
>> + SDir::statvfs() const
>> + {
>> +- struct statvfs64 fsbuf;
>> +- if (fstatvfs64(dirfd, &fsbuf) != 0)
>> +- SN_THROW(IOErrorException(sformat("statvfs64 failed
>> path:%s errno:%d (%s)", base_path.c_str(),
>> ++ struct statvfs fsbuf;
>> ++ if (fstatvfs(dirfd, &fsbuf) != 0)
>> ++ SN_THROW(IOErrorException(sformat("statvfs failed
>> path:%s errno:%d (%s)", base_path.c_str(),
>> + errno,
>> stringerror(errno).c_str())));
>> +
>> + // f_bavail is used (not f_bfree) since df seems to do the
>> diff --git a/meta-oe/recipes-support/snapper/snapper_0.11.2.bb
>> b/meta-oe/recipes-support/snapper/snapper_0.11.2.bb
>> new file mode 100644
>> index 0000000000..840c607309
>> --- /dev/null
>> +++ b/meta-oe/recipes-support/snapper/snapper_0.11.2.bb
>> @@ -0,0 +1,41 @@
>> +SUMMARY = "Snapper is a tool for Linux file system snapshot
>> management"
>> +HOMEPAGE = "<https://github.com/openSUSE/snapper>"
>> +LICENSE = "GPL-2.0-only"
>> +LIC_FILES_CHKSUM =
>> "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
>> <file://copying;md5=751419260aa954499f7abaabaa882bbe/>
>> +
>> +DEPENDS = "acl boost btrfs-tools dbus e2fsprogs json-c libxml2
>> lvm2 ncurses zlib"
>> +
>> +# Build separation is slightly broken
>> +inherit autotools-brokensep pkgconfig gettext
>> +
>> +SRC_URI = " \
>> +
>> git://github.com/openSUSE/snapper.git;protocol=https;branch=master \
>> +
>> file://0001-Include-linux-types.h-for-__u16-__u32-__u64-type.patch
>> <file://0001-include-linux-types.h-for-__u16-__u32-__u64-type.patch/>
>> \
>> + file://0002-Use-statvfs-instead-of-statvfs64.patch
>> <file://0002-use-statvfs-instead-of-statvfs64.patch/> \
>> +"
>> +SRCREV = "6c603565f36e9996d85045c8012cd04aba5f3708"
>> +
>> +S = "${WORKDIR}/git"
>> +
>> +EXTRA_OECONF += "--disable-zypp"
>> +
>> +PACKAGECONFIG ?= "${@bb.utils.filter
>> <mailto:${@bb.utils.filter>('DISTRO_FEATURES', 'api-documentation
>> systemd pam', d)}"
>> +PACKAGECONFIG[pam] = "--enable-pam,--disable-pam,libpam"
>> +PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd"
>> +PACKAGECONFIG[api-documentation] =
>> "--enable-doc,--disable-doc,libxslt-native
>> docbook-xsl-stylesheets-native"
>> +
>> +# Avoid HOSTTOOLS path in binaries
>> +export DIFFBIN = "${bindir}/diff"
>> +export RMBIN = "${bindir}/rm"
>> +export TOUCHBIN = "${bindir}/touch"
>> +export CPBIN = "${bindir}/cp"
>> +
>> +
>> +do_install:append() {
>> + install -d ${D}${sysconfdir}/sysconfig
>> + install -m0644 ${S}/data/default-config
>> ${D}${sysconfdir}/sysconfig/snapper
>> +}
>> +
>> +FILES:${PN} += "${libdir}/pam_snapper ${libdir}/systemd
>> ${libdir}/security ${datadir}"
>> +# bash is needed for the testsuite
>> +RDEPENDS:${PN} = "bash diffutils util-linux util-linux-mount"
>>
>> -=-=-=-=-=-=-=-=-=-=-=-
>> Links: You receive all messages sent to this group.
>> View/Reply Online (#113067):
>> <https://lists.openembedded.org/g/openembedded-devel/message/113067>
>> Mute This Topic:
>> <https://lists.openembedded.org/mt/109116183/3617156>
>> Group Owner: openembedded-devel+owner@lists.openembedded.org
>> <mailto:openembedded-devel+owner@lists.openembedded.org>
>> Unsubscribe:
>> <https://lists.openembedded.org/g/openembedded-devel/unsub>
>> [martin.jansa@gmail.com <mailto:martin.jansa@gmail.com>]
>> -=-=-=-=-=-=-=-=-=-=-=-
>>
[-- Attachment #2: Type: text/html, Size: 10684 bytes --]
next prev parent reply other threads:[~2024-10-31 17:23 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-20 15:08 [meta-oe][PATCH v3] snapper: add recipe Khem Raj
2024-10-24 10:47 ` [oe] " Martin Jansa
2024-10-31 17:25 ` Markus Volk [this message]
2024-10-31 17:45 ` Markus Volk
2024-10-31 18:15 ` Martin Jansa
[not found] ` <18039C488E2C1344.6352@lists.openembedded.org>
2024-10-31 22:45 ` Martin Jansa
2024-11-01 6:59 ` Markus Volk
[not found] ` <1803C5E0EFB35EE5.1077@lists.openembedded.org>
2024-11-01 12:03 ` Markus Volk
2024-11-03 10:36 ` Martin Jansa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=QQD8MS.V8W1IWD2ZRJ81@t-online.de \
--to=f_l_k@t-online.de \
--cc=martin.jansa@gmail.com \
--cc=openembedded-devel@lists.openembedded.org \
--cc=raj.khem@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox