On Fri, 28 Mar 2025 at 14:18:04 +0100, Dylan Aïssi wrote:
Since v2025.2 is out, I tried to update our package but I failed to understand what was your usual workflow. I locally merged the upstream tag "v2025.2" into the branch "upstream/latest" and then merged this branch into "debian/latest", but I get conflicts because some files have been removed from this branch (mainly all files related to rust). I didn't go any further so as not to break anything. Could you clarify how you update the branch "debian/latest"? This way I can use the same workflow.

Thanks for looking into doing this update!

I'm using the official upstream source release tarballs (with the Autotools-generated files, and with subprojects expanded, but without the Rust) as the canonical .orig.tar.whatever source code, as recommended by Policy and devref. I have not reviewed the Rust code or listed its full copyright information in debian/copyright (and I don't know how to maintain Rust code myself).

However, I'm using `gbp import-orig --upstream-vcs-tag=...` to get the upstream git tags merged into the upstream/latest branch, for easy reference to upstream git commits. This is similar to how the GNOME team operates (and I thought pipewire was the same, but perhaps that has changed since last time I looked).

My usual workflow to import a new upstream release would be something like this:

    ostree$ git checkout debian/latest
    ostree$ gbp dch --full    # if d/changelog needs updating before import
    ostree$ uscan --download  # optionally --verbose to see what's happening
    ostree$ gbp import-orig /path/to/ostree_2025.2.orig.tar.whatever
    ostree$ git diff origin/debian/latest..
    ostree$ dch -v 2025.2-1 "New upstream release"

and then update the packaging from there.

debian/gbp.conf should already set up the --upstream-vcs-tag for you automatically, so you shouldn't need to specify it explicitly; but if you would prefer to specify it explicitly, it would be --upstream-vcs-tag=v2025.2 in this case.

Similarly I'm using pristine-tar to store the delta between the imported upstream/latest branch and the actual upstream source release tarballs, but debian/gbp.conf should already enable that automatically, so you shouldn't need to do anything special to enable this.

The uscan default is to download into the parent directory, but I've configured a USCAN_DESTDIR in ~/.devscripts so it downloads into ~/tmp/deb/uscan instead, to avoid clutter in my source code directory. This isn't configured in debian/ because it's a personal preference thing, you can put the tarballs wherever is most convenient to you.

I upload using dgit, but it's completely fine if you prefer to generate, sign and dput a _source.changes file some other way (I'm used to interoperating with non-dgit-using co-maintainers in the GNOME team). The important thing for interop is that the repository is in 3.0 (quilt) patches-unapplied format, which appears to be the same as pipewire.

    smcv

Reply via email to