#3568 PR merged: Copy installation-helper for BTRFS to the rescue system

Labels: enhancement, fixed / solved / done

svlv opened issue at 2026-02-19 10:29:

Pull Request Details:
  • Type: Enhancement

  • Impact: Normal

  • Reference to related issue (URL): Fixes https://github.com/rear/rear/issues/3566

  • How was this pull request tested?
    Manually recovered openSUSE Tumbleweed 20260209

  • Description of the changes in this pull request:
    Copy /usr/lib/snapper/installation-helper, /usr/share/snapper/config-templates/default / /etc/snapper/config-templates/default to the rescue system

jsmeix commented at 2026-02-23 13:13:

@svlv
thank you for your enhancement to make recreation of
SUSE's special btrfs structure work more out of the box.

jsmeix commented at 2026-02-23 13:22:

This could be a backward incompatible change
because we have in
conf/examples/SLE12-SP2-btrfs-example.conf

# Snapper setup by the recovery system uses /usr/lib/snapper/installation-helper
# that is linked to all libraries where snapper is linked to
# (except libdbus that is only needed by snapper).
# "installation-helper --step 1" creates a snapper config based on /etc/snapper/config-templates/default
COPY_AS_IS+=( /usr/lib/snapper/installation-helper /etc/snapper/config-templates/default )

and SUSE customers are instructed to use this
as template for their individual ReaR configuration
when they use SUSE's special btrfs structure, see
https://documentation.suse.com/sle-ha/15-SP7/html/SLE-HA-all/cha-ha-rear.html
which mentiones /usr/share/rear/conf/examples/ several times.

It could be that the changes in this pull request
confict with such a manual ReaR configuration.

jsmeix commented at 2026-02-23 13:24:

@rear/contributors
I would like to merge it on Thursday (26. Feb.) afternoon
unless there are objections.

svlv commented at 2026-02-23 13:54:

@jsmeix

I can add an example for SLES 16, if it is a more appropriate way to process it.

Also, I can change
REQUIRED_PROGS+=( /usr/lib/snapper/installation-helper ) to COPY_AS_IS+=( /usr/lib/snapper/installation-helper ) to avoid backward incompatibility, as it works fine now.

Personally, I wasn't aware of these examples at the beginning. I found the issue with missed installation-helper only during the recovery testing and after that searched in the code 'installation-helper' and found these examples. My first thought was why not to add necessary binaries and configs out of the box :)

But any way, since I've already created the PR, just let me know if there is a better way to process it. I am totally OK with it.

svlv commented at 2026-02-24 08:40:

I've realised that /usr/lib/snapper/installation-helper cannot be moved to /bin/installation-helper because it will break the PORTABLE output. I've corrected it.

Re-worked a bit the PR to copy installation-helper if disklayout.conf contains btrfsdefaultsubvol. Now it looks more like the rest of such logic.

Manually re-tested on openSUSE Tumbleweed.

jsmeix commented at 2026-02-24 08:59:

@svlv
WOW!

What a pleasant looking code cleanup
from two split code parts in two scripts
into a single code part in a single script
which matches existing functionality of same kind
and works in a backward compatible way
in compliance with our coding recommendations, see
https://github.com/rear/rear/wiki/Coding-Style#maintain-backward-compatibility
and "keep together what belongs together" in
https://github.com/rear/rear/wiki/Coding-Style#code-must-be-easy-to-read

I much appreciate your work!


[Export of Github issue for rear/rear.]