Request for help: reform-tools 1.69 release

Hi,

I did a bunch of refactoring with the upcoming reform-tools release and wanted to give those willing to volunteer their time a chance to give this a try and report bugs before I cut a new release and potentially let others run into them. For your convenience I prepared system images with reform-tools from git installed:

You can of course also manually install the version from git, overwriting the files from the reform-tools Debian package:

git clone https://source.mnt.re/reform/reform-tools.git
sudo make -C reform-tools install DESTDIR=/

Here is the tentative new changelog entry which should give you an idea about the interesting things to test:

1.69 (2025-03-XX)
=================

 * Add SPDX license information
 * Add README.md
 * move all tools from /usr/sbin to /usr/bin
 * rename reform-setup-encrypted-nvme -> reform-setup-encrypted-disk
 * bin/reform-setup-encrypted-disk:
    - allow setting up eMMC or SD-card with LUKS
    - -h does not take arguments
    - move superuser check above check for installed commands
 * bin/reform-migrate:
    - device agnostic --help output
    - use getopts for command line parsing
 * bin/reform-boot-config:
    - device agnostic --help output
 * bin/reform-flash-uboot:
    - new --image option for custom flash.bin
    - device agnostic --help output
    - proper cli parsing with getopts
    - allow flashing to devices other than sd or emmc
 * bin/reform-emmc-bootstrap:
    - print unknown option for any option other than --help
    - expect rootfs mountpoint to be /dev/reformvg/root instead of
      /dev/mapper/reformvg-root
    - do not attempt re-mounting root partition if it's already mounted as /
    - check if partition is in use before mounting it
    - /dev/sda partitions are sda1 and sda2 and not sdap1 and sdap2
 * bin/reform-check:
    - replace ntp,ntpdate with ntpsec,ntpsec-ntpdate
 * bin/reform-display-config:
    - drop workaround for #1091979 in favour of patching u-boot-menu
 * machines/MNT Reform 2.conf: add cryptomgr.notests loglevel=3

Obviously, if you find bugs unrelated to the changes above, please report those as well!

A final warning: please only try this out if you know what you are doing or have no data to loose. I tested the changes on the imx8mq classic Reform that I borrowed from @2disbetter but I’m usually bad at using my own tools in creative ways.

Thank you! :heart:

5 Likes

It is working for me on live Debian unstable. Workflow of testing:

  1. git clone Reform / MNT Reform Tools · GitLab
  2. git checkout feb24b3269af44ceca7803379763720a0d1e5e7e (not risking bin and sbin merge)
  3. rm -rf .git*
  4. tar caf reform-tools_1.69.orig.tar.xz reform-tools
  5. mv -i reform-tools r-tools
  6. git clone Reform Team / Reform Tools · GitLab
  7. cp -Ri reform-tools/debian r-tools/
  8. cd r-tools
  9. dch
  10. dpkg-buildpackage --no-sign
  11. dpkg -i *.deb

After that reboot to make sure that system boots. I have to install some build dependencies and after dpkg -i also gpiod, but other than that no problems.

My system: MNT Reform with A311D on motherboard 2.5. Debian on NVMe, btrts encrypted with LUKS, root partition on subvolume. To add complication: LUKS can be decrypted using FIDO2 key (I used systemd-cryptenroll) so I use dracut to build initramfs. And with all of that 1.69 worked without problems.

Talking about versions, when I run

reform-tools:                                                                         
  Installed: 1.69-1                                                                   
  Candidate: 1.69-1                                                                   
  Version table:                                                                      
 *** 1.69-1 100                                                                       
        100 /var/lib/dpkg/status                                                      
     1.68-1+reform1 990                                                               
        990 https://mntre.com/reform-debian-repo reform/main arm64 Packages           
     1.68-1 500                                                                       
        500 http://deb.debian.org/debian unstable/main arm64 Packages

Which version to use? Debian or Reform one?

1 Like

What do you mean by “live Debian unstable”? Do you mean the Debian unstable system from MNT?

That is a good idea. You copied the packaging from Debian and those bits are not adjusted to deal with the sbin->bin move.

Thank you for testing!!

Your system will prefer version 1.68-1+reform1 from MNT because that version does not only order higher than version 1.68-1 but it also has the higher pin value (990 versus 500). That is by design as MNT systems are meant to prefer packages from the MNT repos over the ones from the Debian repositories (even if their version should be lower). Just recently we added patches for mesa and u-boot-menu to the MNT repos, for example. The higher pin value makes sure, that even when a higher version gets uploaded to Debian, and the packages in the MNT repos don’t get rebuilt for a few days, users will not install the version from Debian. You should be using the version from Debian because it contains additional postinstallation maintainer script magic. The full diff is here: patches/reform-tools · main · Reform / reform-debian-packages · GitLab This essenitally deals with upgrades from earlier versions of reform-tools. This is why those changes are not relevant for the version in Debian. Those changes can be dropped at the point when we can be reasonably certain that probably everybody has run “apt upgrade” (I estimate 1-2 years).

What do you mean by “live Debian unstable”? Do you mean the Debian unstable system from MNT?

Live - i.e. one I use daily, have all my tools installed, use browser, mail, watch videos, and so on - not some test image I run from time to time. At the same time this is not official MNT image: I build it myself (almost from scratch), with heavy customizations. As I wrote above - I use dracut so I had to play with dependencies of flash-kernel. So on one hand it’s not showing behavior of reform-tools 1.69 on vanilla MNT image. OTOH when it worked on my crazy setup, it should work on wide range of systems.

Thanks for explanation related to package versioning.

1 Like

Wow, that was brave of you. Thank you! I’m happy to hear that nothing broke even on a “crazy” setup. There is certainly some amount of craziness that reform-tools should have no problem of dealing witht.

1 Like

I doubt that this has anything to do with the new update, but reform check seems to rely on aptitude and won’t run if I run it as root with sudo reform-check. It does check my user config files if I don’t run it as root.

Actually that script looks like it’s completely built around the official debian system. Might not be worth me worrying about in Void for now

It should not. What reform-check needs is a working apt-get and apt-cache as it checks whether you have the right packages installed and whether you configured apt pinning and apt mirrors correctly.

Yes, the purpose of reform-check is to check if your system is set up correctly. Part of the “system” is your package manager. So it checks packages and thus needs apt and dpkg.

But observe how it also has a --mirror option which currently is either mntre.com or reform.debian.net. You could add a third option to also check void linux installations for whether they are missing something or have something misconfigured. Please send me a patch.

Lastly, the version of reform-check in git has a new --offline switch which should avoid most uses of apt. You will still have calls to dpkg though because dpkg operates just fine offline.

Did you find anything else that is problematic?

For the new release I’m currently waiting for @stephano (fontsize issue) and @G3M (migration) and if they discover bugs I’d like to include fixes to them in the new release. That is unless you would like the next release to be done now because otherwise I’d be blocking you?

1 Like

Eh, I’d rather get the reform-check patch written before getting it into the official void repos I think. Obviously, I’d like to get this stuff pushed ASAP, but there’s no reason to rush it IMO.

Let’s see what happens with the other fixes first.

Thanks for the overview! :slight_smile:

reform-tools 1.69 just reached Debian unstable as well as the MNT repositories. If one uses the number of changelog lines as a metric, this is the biggest reform-tools release to date. A big thank you to all testers and contributors who helped making this possible!

2 Likes