Package name: moraine Version: 0.1.1 Upstream Author: Jonaz Thern info@thern.io URL: https://github.com/TheJonaz/moraine-backup License: MIT Programming Lang: Rust Description: snapshot backup over SSH/rsync and rclone Moraine creates timestamped, hard-linked snapshots: each backup run looks like a complete tree, but unchanged files share disk via hard links, so history costs almost nothing. It restores individual files or whole trees, prunes old snapshots with a GFS retention policy, and keeps a run log. Backends: rsync over SSH, and rclone (cloud, SFTP, SMB, WebDAV, S3, ...). The package provides both the command-line client (moraine) and the GTK 4 desktop application (moraine-gui), built from one source against Debian's GTK 4 crates. I am the upstream author and intend to maintain the Debian package, ideally within the Debian Rust Maintainers team. I will need a sponsor for the initial upload.
Hi Jonaz, Given the licensing uncertainty of code output by LLMs, I'm not sure vibe-coded software is ready to be accepted in Debian. Please expect some resistence :) Bye!
Hello, can you explain what is the advantage of using this over a 2 lines script like this? cp -ral directory "snapshot-$(date)" rsync/rclone directory Best Il giorno mar 30 giu 2026 alle ore 07:38 Thern AI Solutions <info@thern.io> ha scritto:
Hello, can you explain what is the advantage of using this over a 2 lines script like this? cp -ral directory "snapshot-$(date)" rsync/rclone directory Best Il giorno mar 30 giu 2026 alle ore 07:38 Thern AI Solutions <info@thern.io> ha scritto:
Hi Mr/Ms/Msr Tomaselli, and thanks! That's a fair question, and you're right that the core idea is genuinely that simple. Hard-linked snapshots are a well-working trick, and for a single local directory your two lines capture the essence of it. What Moraine adds is everything around that kernel that turns it into a robust, general-purpose tool rather than a personal script: Remote-first. cp -ral is local-only. The common backup case is a remote NAS/server, so Moraine uses rsync --link-dest=../latest over SSH. The hard-linking happens on the destination in a single pass, with no full-tree pre-copy and no separate ssh cp -ral step. It also updates the latest symlink atomically so an interrupted run can't leave a half-built snapshot referenced. Retention/pruning (GFS). Snapshots otherwise grow without bound. Moraine keeps N latest plus newest-per-day/week/month and auto-prunes after a successful run. Restore. Browsing a snapshot's tree and pulling back individual files or whole trees to the client, never touching the destination. The two-liner leaves you to do that by hand. A second backend. Besides rsync/SSH it drives rclone (SFTP, SMB, WebDAV, S3, cloud), where --link-dest doesn't exist and you instead need server-side --copy-dest with capability detection. "rsync/rclone" hides a real difference in how snapshotting has to work. The boring-but-important bits: declarative config with multiple targets and validation; a pre-flight check (key, connection, dest writable) before anything runs; a run log; correct exit codes; exclude patterns; SSH key-passphrase handling; crontab Windows Task Scheduler generation; and a GTK desktop app for people who don't live in a terminal. So the honest framing is: the snapshot mechanism is a few lines, but a packaged tool is the part that makes it safe, remote, prunable, restorable and usable by non-experts. Happy to trim the scope if you feel a piece doesn't belong in the initial upload. Thanks again for the review, Jonaz
Hi Mr/Ms/Msr Tomaselli, and thanks! That's a fair question, and you're right that the core idea is genuinely that simple. Hard-linked snapshots are a well-working trick, and for a single local directory your two lines capture the essence of it. What Moraine adds is everything around that kernel that turns it into a robust, general-purpose tool rather than a personal script: Remote-first. cp -ral is local-only. The common backup case is a remote NAS/server, so Moraine uses rsync --link-dest=../latest over SSH. The hard-linking happens on the destination in a single pass, with no full-tree pre-copy and no separate ssh cp -ral step. It also updates the latest symlink atomically so an interrupted run can't leave a half-built snapshot referenced. Retention/pruning (GFS). Snapshots otherwise grow without bound. Moraine keeps N latest plus newest-per-day/week/month and auto-prunes after a successful run. Restore. Browsing a snapshot's tree and pulling back individual files or whole trees to the client, never touching the destination. The two-liner leaves you to do that by hand. A second backend. Besides rsync/SSH it drives rclone (SFTP, SMB, WebDAV, S3, cloud), where --link-dest doesn't exist and you instead need server-side --copy-dest with capability detection. "rsync/rclone" hides a real difference in how snapshotting has to work. The boring-but-important bits: declarative config with multiple targets and validation; a pre-flight check (key, connection, dest writable) before anything runs; a run log; correct exit codes; exclude patterns; SSH key-passphrase handling; crontab Windows Task Scheduler generation; and a GTK desktop app for people who don't live in a terminal. So the honest framing is: the snapshot mechanism is a few lines, but a packaged tool is the part that makes it safe, remote, prunable, restorable and usable by non-experts. Happy to trim the scope if you feel a piece doesn't belong in the initial upload. Thanks again for the review, Jonaz
We believe that the bug you reported is fixed in the latest version of moraine, which is due to be installed in the Debian FTP archive. A summary of the changes between this version and the previous one is attached. Thank you for reporting the bug, which will now be closed. If you have further comments please address them to 1141131@bugs.debian.org, and the maintainer will reopen the bug report if appropriate. Debian distribution maintenance software pp. Jonaz Thern <info@thern.io> (supplier of updated moraine package) (This message was generated automatically at their request; if you believe that there is a problem with it please contact the archive administrators by mailing ftpmaster@ftp-master.debian.org) Format: 1.8 Date: Wed, 22 Jul 2026 15:30:00 +0200 Source: moraine Binary: moraine moraine-dbgsym Architecture: source amd64 Version: 0.2.2-1 Distribution: unstable Urgency: medium Maintainer: Jonaz Thern <info@thern.io> Changed-By: Jonaz Thern <info@thern.io> Description: moraine - snapshot backup over SSH/rsync and rclone (CLI + GTK desktop app) Closes: 1141131 Changes: moraine (0.2.2-1) unstable; urgency=medium . * Initial release. (Closes: #1141131) Checksums-Sha1: ad95a34df2ae54bac8e32cf661b8825777f57934 2184 moraine_0.2.2-1.dsc 5c3040ac1e7efff05e4a900c12ecd7f0463b0f6d 332756 moraine_0.2.2.orig.tar.xz a53ccb6e950fecdcf01bfd2bf868c0b6d57af45d 3744 moraine_0.2.2-1.debian.tar.xz bab60fea35241902e03bae505637cbe0ac629ae1 19363832 moraine-dbgsym_0.2.2-1_amd64.deb 217434cd49bc5814d75cae125ada69eb561eacdb 25833 moraine_0.2.2-1_amd64.buildinfo 3399a563591ec196f0178a5599cb4be013801a64 1017748 moraine_0.2.2-1_amd64.deb Checksums-Sha256: f98f2efbd08468ad4b6fa13725e12a989cedef7116798a592d832619985e0213 2184 moraine_0.2.2-1.dsc 146a3853adb435c5e8760a12c9bfb4789e60027f8ea7cbd3bf892d45c7994292 332756 moraine_0.2.2.orig.tar.xz 54684ef74e031fcc03990f6ba135b0c8f75b96d9647f298f6d1b191d81788a9d 3744 moraine_0.2.2-1.debian.tar.xz d166d86a080f338b136e26e8365b95d9fd768bf4f93768838fed85e120b85ede 19363832 moraine-dbgsym_0.2.2-1_amd64.deb 673c2d97874f129dd01f4dff5cf0fcaa58ab5c706024af5d4cf07eb700a4c8d7 25833 moraine_0.2.2-1_amd64.buildinfo 2ed4455a3b02bc841676456f684f6f0a479effb884a3acff695fbcdf43386301 1017748 moraine_0.2.2-1_amd64.deb Files: 0a03526ce783db6bc0333c478a8312c2 2184 utils optional moraine_0.2.2-1.dsc 5e5ae707ceebc41450c3add6f7d09722 332756 utils optional moraine_0.2.2.orig.tar.xz 2e214c67a1ed29ab33652b9eb84da4d9 3744 utils optional moraine_0.2.2-1.debian.tar.xz 629ea3c8bd3608d7764275824ab5167b 19363832 debug optional moraine-dbgsym_0.2.2-1_amd64.deb 9c3df82c48a9a97d7e4effbdae1172b0 25833 utils optional moraine_0.2.2-1_amd64.buildinfo 500a954ea76819253ca6809e22564d51 1017748 utils optional moraine_0.2.2-1_amd64.deb -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEXHq+og+GMEWcyMi14n8s+EWML6QFAmphBiEACgkQ4n8s+EWM L6SlNhAAs1D4dqPMH3cVgbOLJlgViyHxH6r7eDqOS5w129yTJAvTgug75D1B8r1l 8NinRy+1t9uehvKCdhcZe25TvjiEX/Z/v8MGbd1It37oahz4C9osEuT7vrZpY0m6 s+/6+ySq4vZRmv7KXkzsx3SSc4oDq8hxpnIeiK9nGpOqdVlUeQW4F2ZP0lcMhrJT eHZQ44GDT+VAIBm9Wrbv+23Eh9un/0Um6doxeG5vU4rDUl5R76psrWRa8GiVQHpS qBQ0W+y1g00b5Lt4jg5xh/cwoZ1NJ9s2e7i+/TcApoK55AdipkcrmuPRHvf8beVp EppeQEwF65srggOftRw/nwG6hi4T6Nu/ajVzy10IgAjdCX/cIg2e4scU0aNEEnfs x6MvfEqIX26Yeba6G+05cbOlLXxUTO/10eWFhki0NhLU7LFiJXHCmUuzWa2ffn3c FnvPqGay9HfRWNPbJeKRNZaRZy4cdNnp2/4g2Ak835VUXuYMRMJJTRwy0jyTOABc jZjD2oMfPHnYw5URIn311jxIFkdUzNLkObP8KPzRcHtaiL9CLSSUGpoQCSAgQQDI xTW8qErtVc4ZQOXIVZ5f7KafFp5Pmvz2FgqsyACVcmEaEEiMVCOgI/iKRJ/A0Rgk xWTkCC8FxOdmZHMZPdNYQe/VzQRPTdr00MjoX7KEg8Mn/pZYPXw= =XtkT -----END PGP SIGNATURE-----