diff mbox series

[meta-oe] snapper: add recipe

Message ID 20241018131724.3051-1-f_l_k@t-online.de
State New
Headers show
Series [meta-oe] snapper: add recipe | expand

Commit Message

Markus Volk Oct. 18, 2024, 1:17 p.m. UTC
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>
---
 .../recipes-support/snapper/snapper_0.11.2.bb | 35 +++++++++++++++++++
 1 file changed, 35 insertions(+)
 create mode 100644 meta-oe/recipes-support/snapper/snapper_0.11.2.bb

Comments

Khem Raj Oct. 18, 2024, 4:23 p.m. UTC | #1
On Fri, Oct 18, 2024 at 6:15 AM Markus Volk via lists.openembedded.org
<f_l_k=t-online.de@lists.openembedded.org> wrote:
>
> 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>
> ---
>  .../recipes-support/snapper/snapper_0.11.2.bb | 35 +++++++++++++++++++
>  1 file changed, 35 insertions(+)
>  create mode 100644 meta-oe/recipes-support/snapper/snapper_0.11.2.bb
>
> 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 000000000..2759cdafb
> --- /dev/null
> +++ b/meta-oe/recipes-support/snapper/snapper_0.11.2.bb
> @@ -0,0 +1,35 @@
> +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"
> +
> +DEPENDS = "acl boost btrfs-tools dbus json-c libxml2 lvm2 zlib"
> +
> +# Build separation is slightly broken
> +inherit autotools-brokensep pkgconfig gettext
> +
> +SRC_URI = "git://github.com/openSUSE/snapper.git;protocol=https;branch=master"
> +SRCREV = "6c603565f36e9996d85045c8012cd04aba5f3708"
> +
> +S = "${WORKDIR}/git"
> +
> +PACKAGECONFIG ?= "${@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}/zypp ${libdir}/security ${datadir}"
> +# bash is needed for the testsuite
> +RDEPENDS:${PN} = "bash diffutils util-linux"

It would be good to package test binary and resources into ${PN}-ptest package
and then attach the needed rdeps to ${PN}-ptest package also look into
inheriting
ptest class which should provide a basic build block for adding ptests.

> --
> 2.47.0
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#112978): https://lists.openembedded.org/g/openembedded-devel/message/112978
> Mute This Topic: https://lists.openembedded.org/mt/109081580/1997914
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Khem Raj Oct. 20, 2024, 1:40 a.m. UTC | #2
On Fri, Oct 18, 2024 at 9:23 AM Khem Raj <raj.khem@gmail.com> wrote:
>
> On Fri, Oct 18, 2024 at 6:15 AM Markus Volk via lists.openembedded.org
> <f_l_k=t-online.de@lists.openembedded.org> wrote:
> >
> > 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>
> > ---
> >  .../recipes-support/snapper/snapper_0.11.2.bb | 35 +++++++++++++++++++
> >  1 file changed, 35 insertions(+)
> >  create mode 100644 meta-oe/recipes-support/snapper/snapper_0.11.2.bb
> >
> > 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 000000000..2759cdafb
> > --- /dev/null
> > +++ b/meta-oe/recipes-support/snapper/snapper_0.11.2.bb
> > @@ -0,0 +1,35 @@
> > +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"
> > +
> > +DEPENDS = "acl boost btrfs-tools dbus json-c libxml2 lvm2 zlib"
> > +
> > +# Build separation is slightly broken
> > +inherit autotools-brokensep pkgconfig gettext
> > +
> > +SRC_URI = "git://github.com/openSUSE/snapper.git;protocol=https;branch=master"
> > +SRCREV = "6c603565f36e9996d85045c8012cd04aba5f3708"
> > +
> > +S = "${WORKDIR}/git"
> > +
> > +PACKAGECONFIG ?= "${@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}/zypp ${libdir}/security ${datadir}"
> > +# bash is needed for the testsuite
> > +RDEPENDS:${PN} = "bash diffutils util-linux"
>
> It would be good to package test binary and resources into ${PN}-ptest package
> and then attach the needed rdeps to ${PN}-ptest package also look into
> inheriting
> ptest class which should provide a basic build block for adding ptests.
>

it fails to build with musl see
https://errors.yoctoproject.org/Errors/Details/809996/

stavfs64 is not needed if we are already using LFS64, we can just use
statvfs even on glibc
otherwise add -D_LARGEFILE64_SOURCE with musl builds to cflags

> > --
> > 2.47.0
> >
> >
> > -=-=-=-=-=-=-=-=-=-=-=-
> > Links: You receive all messages sent to this group.
> > View/Reply Online (#112978): https://lists.openembedded.org/g/openembedded-devel/message/112978
> > Mute This Topic: https://lists.openembedded.org/mt/109081580/1997914
> > Group Owner: openembedded-devel+owner@lists.openembedded.org
> > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com]
> > -=-=-=-=-=-=-=-=-=-=-=-
> >
Markus Volk Oct. 20, 2024, 4 a.m. UTC | #3
The problem has already been fixed in Alpine Linux. Added a patch found 
there

Additionally, I also added dependencies for e2fsprogs and ncurses, 
since snapper links to -ltinfo and a runtime dependency of 
util-linux-mount

On Sat, Oct 19 2024 at 06:40:56 PM -07:00:00, Khem Raj 
<raj.khem@gmail.com> wrote:
> On Fri, Oct 18, 2024 at 9:23 AM Khem Raj <raj.khem@gmail.com 
> <mailto:raj.khem@gmail.com>> wrote:
>> 
>>  On Fri, Oct 18, 2024 at 6:15 AM Markus Volk via 
>> lists.openembedded.org
>>  <f_l_k=t-online.de@lists.openembedded.org 
>> <mailto:f_l_k=t-online.de@lists.openembedded.org>> wrote:
>>  >
>>  > 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>>
>>  > ---
>>  >  .../recipes-support/snapper/snapper_0.11.2.bb | 35 
>> +++++++++++++++++++
>>  >  1 file changed, 35 insertions(+)
>>  >  create mode 100644 
>> meta-oe/recipes-support/snapper/snapper_0.11.2.bb
>>  >
>>  > 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 000000000..2759cdafb
>>  > --- /dev/null
>>  > +++ b/meta-oe/recipes-support/snapper/snapper_0.11.2.bb
>>  > @@ -0,0 +1,35 @@
>>  > +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 json-c libxml2 lvm2 zlib"
>>  > +
>>  > +# Build separation is slightly broken
>>  > +inherit autotools-brokensep pkgconfig gettext
>>  > +
>>  > +SRC_URI = 
>> "git://github.com/openSUSE/snapper.git;protocol=https;branch=master"
>>  > +SRCREV = "6c603565f36e9996d85045c8012cd04aba5f3708"
>>  > +
>>  > +S = "${WORKDIR}/git"
>>  > +
>>  > +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}/zypp ${libdir}/security ${datadir}"
>>  > +# bash is needed for the testsuite
>>  > +RDEPENDS:${PN} = "bash diffutils util-linux"
>> 
>>  It would be good to package test binary and resources into 
>> ${PN}-ptest package
>>  and then attach the needed rdeps to ${PN}-ptest package also look 
>> into
>>  inheriting
>>  ptest class which should provide a basic build block for adding 
>> ptests.
>> 
> 
> it fails to build with musl see
> <https://errors.yoctoproject.org/Errors/Details/809996/>
> 
> stavfs64 is not needed if we are already using LFS64, we can just use
> statvfs even on glibc
> otherwise add -D_LARGEFILE64_SOURCE with musl builds to cflags
> 
>>  > --
>>  > 2.47.0
>>  >
>>  >
>>  > -=-=-=-=-=-=-=-=-=-=-=-
>>  > Links: You receive all messages sent to this group.
>>  > View/Reply Online (#112978): 
>> <https://lists.openembedded.org/g/openembedded-devel/message/112978>
>>  > Mute This Topic: 
>> <https://lists.openembedded.org/mt/109081580/1997914>
>>  > Group Owner: openembedded-devel+owner@lists.openembedded.org 
>> <mailto:openembedded-devel+owner@lists.openembedded.org>
>>  > Unsubscribe: 
>> <https://lists.openembedded.org/g/openembedded-devel/unsub> 
>> [raj.khem@gmail.com <mailto:raj.khem@gmail.com>]
>>  > -=-=-=-=-=-=-=-=-=-=-=-
>>  >
diff mbox series

Patch

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 000000000..2759cdafb
--- /dev/null
+++ b/meta-oe/recipes-support/snapper/snapper_0.11.2.bb
@@ -0,0 +1,35 @@ 
+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"
+
+DEPENDS = "acl boost btrfs-tools dbus json-c libxml2 lvm2 zlib"
+
+# Build separation is slightly broken
+inherit autotools-brokensep pkgconfig gettext
+
+SRC_URI = "git://github.com/openSUSE/snapper.git;protocol=https;branch=master"
+SRCREV = "6c603565f36e9996d85045c8012cd04aba5f3708"
+
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ?= "${@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}/zypp ${libdir}/security ${datadir}"
+# bash is needed for the testsuite
+RDEPENDS:${PN} = "bash diffutils util-linux"