From 8091cec1a1182295dd57c0147360839cc11ef688 Mon Sep 17 00:00:00 2001 From: Noa Resare Date: Sun, 7 Jun 2026 19:30:37 +0100 Subject: [PATCH 1/3] Ensure that *.md is included in deb .orig.tar The deb source bild script create-deb-src.sh failed because a new .md file had appeare in the repo, which was not explicitly included in the tar invocation that creates the .orig.tar.xz. --- create-deb-dsc.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/create-deb-dsc.sh b/create-deb-dsc.sh index c160da2..9237239 100755 --- a/create-deb-dsc.sh +++ b/create-deb-dsc.sh @@ -11,6 +11,6 @@ cargo vendor-filterer --platform "*-unknown-linux-gnu" tar cfJ ../pam-ssh-agent_${VERSION}.orig-vendor.tar.xz vendor tar cfJ ../pam-ssh-agent_${VERSION}.orig.tar.xz src examples tests \ - .github LICENSE* README* create-deb-dsc.sh rust-toolchain.toml Cargo* + .github LICENSE* *.md create-deb-dsc.sh rust-toolchain.toml Cargo* debuild -S -sa From 21de74958a85618956b991c8a2faeb12163ee7fe Mon Sep 17 00:00:00 2001 From: Noa Resare Date: Sun, 7 Jun 2026 19:35:39 +0100 Subject: [PATCH 2/3] Ensure that the vendored packages list matches --- debian/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/control b/debian/control index b3cb5d3..e8a5ce6 100644 --- a/debian/control +++ b/debian/control @@ -7,7 +7,7 @@ Build-Depends: debhelper-compat (=13), Standards-Version: 4.6.0 Homepage: https://github.com/nresare/pam-ssh-agent Rules-Requires-Root: no -XS-Vendored-Sources-Rust: aho-corasick@1.1.4, anstream@1.0.0, anstyle-parse@1.0.0, anstyle-query@1.1.5, anstyle-wincon@3.0.11, anstyle@1.0.14, anyhow@1.0.102, autocfg@1.5.1, base16ct@0.2.0, base64@0.22.1, base64ct@1.8.3, bitflags@2.13.0, block-buffer@0.10.4, bytes@1.11.1, cc@1.2.63, cfg-if@1.0.4, cipher@0.4.4, colorchoice@1.0.5, const-oid@0.9.6, cpufeatures@0.2.17, crypto-bigint@0.5.5, crypto-common@0.1.6, curve25519-dalek-derive@0.1.1, curve25519-dalek@4.1.3, der@0.7.10, deranged@0.5.8, digest@0.10.7, doctest-file@1.1.1, ecdsa@0.16.9, ed25519-dalek@2.2.0, ed25519@2.2.3, elliptic-curve@0.13.8, env_filter@1.0.1, env_logger@0.11.10, error-chain@0.12.4, ff@0.13.1, fiat-crypto@0.2.9, find-msvc-tools@0.1.9, foreign-types-shared@0.1.1, foreign-types@0.3.2, generic-array@0.14.9, getrandom@0.2.17, getrandom@0.3.4, group@0.13.0, hkdf@0.12.4, hmac@0.12.1, hostname@0.3.1, inout@0.1.4, interprocess@2.4.2, is_terminal_polyfill@1.70.2, itoa@1.0.18, jiff-static@0.2.28, jiff@0.2.28, lazy_static@1.5.0, libc@0.2.186, libm@0.2.16, log@0.4.32, match_cfg@0.1.0, memchr@2.8.1, num-bigint-dig@0.8.6, num-conv@0.2.2, num-integer@0.1.46, num-iter@0.1.45, num-traits@0.2.19, num_threads@0.1.7, once_cell_polyfill@1.70.2, openssl-macros@0.1.1, openssl-sys@0.9.116, openssl@0.10.80, p256@0.13.2, p384@0.13.1, p521@0.13.3, pam-bindings@0.1.2, pem-rfc7468@0.7.0, pkcs1@0.7.5, pkcs8@0.10.2, pkg-config@0.3.33, portable-atomic-util@0.2.7, portable-atomic@1.13.1, powerfmt@0.2.0, ppv-lite86@0.2.21, primeorder@0.13.6, proc-macro2@1.0.106, quote@1.0.45, r-efi@5.3.0, rand@0.8.6, rand_chacha@0.3.1, rand_core@0.6.4, recvmsg@1.0.0, regex-automata@0.4.14, regex-syntax@0.8.10, regex@1.12.3, rfc6979@0.4.0, rsa@0.9.10, rustc_version@0.4.1, sec1@0.7.3, semver@1.0.28, serde_core@1.0.228, serde_derive@1.0.228, sha2@0.10.9, shlex@2.0.1, signature@2.2.0, smallvec@1.15.1, spin@0.9.8, spki@0.7.3, ssh-agent-client-rs@1.1.3, ssh-cipher@0.2.0, ssh-encoding@0.2.0, ssh-key@0.6.7, subtle@2.6.1, syn@2.0.117, syslog@6.1.1, thiserror-impl@2.0.18, thiserror@2.0.18, time-core@0.1.8, time-macros@0.2.27, time@0.3.47, typenum@1.20.1, unicode-ident@1.0.24, utf8parse@0.2.2, uzers@0.12.2, vcpkg@0.2.15, version_check@0.9.5, wait-timeout@0.2.1, wasi@0.11.1+wasi-snapshot-preview1, wasip2@1.0.3+wasi-0.2.9, widestring@1.2.1, winapi-i686-pc-windows-gnu@0.4.0, winapi-x86_64-pc-windows-gnu@0.4.0, winapi@0.3.9, windows-link@0.2.1, windows-sys@0.61.2, wit-bindgen@0.57.1, zerocopy-derive@0.8.50, zerocopy@0.8.50, zeroize@1.8.2 +XS-Vendored-Sources-Rust: aho-corasick@1.1.4, anstream@1.0.0, anstyle-parse@1.0.0, anstyle-query@1.1.5, anstyle-wincon@3.0.11, anstyle@1.0.14, anyhow@1.0.102, autocfg@1.5.1, base16ct@0.2.0, base64@0.22.1, base64ct@1.8.3, bitflags@2.13.0, block-buffer@0.10.4, bytes@1.11.1, cc@1.2.63, cfg-if@1.0.4, cipher@0.4.4, colorchoice@1.0.5, const-oid@0.9.6, cpufeatures@0.2.17, crypto-bigint@0.5.5, crypto-common@0.1.6, curve25519-dalek-derive@0.1.1, curve25519-dalek@4.1.3, der@0.7.10, deranged@0.5.8, digest@0.10.7, doctest-file@1.1.1, ecdsa@0.16.9, ed25519-dalek@2.2.0, ed25519@2.2.3, elliptic-curve@0.13.8, env_filter@1.0.1, env_logger@0.11.10, equivalent@1.0.2, error-chain@0.12.4, ff@0.13.1, fiat-crypto@0.2.9, find-msvc-tools@0.1.9, foldhash@0.1.5, foreign-types-shared@0.1.1, foreign-types@0.3.2, generic-array@0.14.9, getrandom@0.2.17, getrandom@0.4.2, group@0.13.0, hashbrown@0.15.5, hashbrown@0.17.1, heck@0.5.0, hkdf@0.12.4, hmac@0.12.1, hostname@0.3.1, hostname@0.4.2, id-arena@2.3.0, indexmap@2.14.0, inout@0.1.4, interprocess@2.4.2, is_terminal_polyfill@1.70.2, itoa@1.0.18, jiff-static@0.2.28, jiff@0.2.28, lazy_static@1.5.0, leb128fmt@0.1.0, libc@0.2.186, libm@0.2.16, log@0.4.32, match_cfg@0.1.0, memchr@2.8.1, num-bigint-dig@0.8.6, num-conv@0.2.2, num-integer@0.1.46, num-iter@0.1.45, num-traits@0.2.19, num_threads@0.1.7, once_cell_polyfill@1.70.2, openssl-macros@0.1.1, openssl-sys@0.9.116, openssl@0.10.80, p256@0.13.2, p384@0.13.1, p521@0.13.3, pam-bindings@0.3.0, pem-rfc7468@0.7.0, pkcs1@0.7.5, pkcs8@0.10.2, pkg-config@0.3.33, portable-atomic-util@0.2.7, portable-atomic@1.13.1, powerfmt@0.2.0, ppv-lite86@0.2.21, prettyplease@0.2.37, primeorder@0.13.6, proc-macro2@1.0.106, quote@1.0.45, r-efi@6.0.0, rand@0.8.6, rand_chacha@0.3.1, rand_core@0.6.4, recvmsg@1.0.0, regex-automata@0.4.14, regex-syntax@0.8.10, regex@1.12.3, rfc6979@0.4.0, rsa@0.9.10, rustc_version@0.4.1, sec1@0.7.3, semver@1.0.28, serde@1.0.228, serde_core@1.0.228, serde_derive@1.0.228, serde_json@1.0.150, sha2@0.10.9, shlex@2.0.1, signature@2.2.0, smallvec@1.15.1, spin@0.9.8, spki@0.7.3, ssh-agent-client-rs@1.1.3, ssh-cipher@0.2.0, ssh-encoding@0.2.0, ssh-key@0.6.7, subtle@2.6.1, syn@2.0.117, syslog@6.1.1, thiserror-impl@2.0.18, thiserror@2.0.18, time-core@0.1.8, time-macros@0.2.27, time@0.3.47, typenum@1.20.1, unicode-ident@1.0.24, unicode-xid@0.2.6, utf8parse@0.2.2, uzers@0.12.2, vcpkg@0.2.15, version_check@0.9.5, wait-timeout@0.2.1, wasi@0.11.1+wasi-snapshot-preview1, wasip2@1.0.3+wasi-0.2.9, wasip3@0.4.0+wasi-0.3.0-rc-2026-01-06, wasm-encoder@0.244.0, wasm-metadata@0.244.0, wasmparser@0.244.0, widestring@1.2.1, winapi-i686-pc-windows-gnu@0.4.0, winapi-x86_64-pc-windows-gnu@0.4.0, winapi@0.3.9, windows-link@0.2.1, windows-sys@0.61.2, wit-bindgen-core@0.51.0, wit-bindgen-rust-macro@0.51.0, wit-bindgen-rust@0.51.0, wit-bindgen@0.51.0, wit-bindgen@0.57.1, wit-component@0.244.0, wit-parser@0.244.0, zerocopy-derive@0.8.50, zerocopy@0.8.50, zeroize@1.8.2, zmij@1.0.21 Package: pam-ssh-agent From 36de8073677333b2e4ef0629ea65925a527f342b Mon Sep 17 00:00:00 2001 From: Noa Resare Date: Sun, 7 Jun 2026 19:58:47 +0100 Subject: [PATCH 3/3] Update RELEASE.md with release instructions --- RELEASE.md | 48 ++++++++++++++++++++++++++++++------------------ 1 file changed, 30 insertions(+), 18 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index b522307..87105ec 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,20 +1,32 @@ -# Documenting the process around making a new release +# Documenting the process of making a new release -## Ubuntu ppa builds -At some point I want to automate this, but for now it is a little manual - -1. Make sure that the version in create-deb-dsc.sh matches the new version -2. Create a new entry in debian/changelog to bring the new version -3. Run `create-deb-dsc.sh` -4. Attempt to build the resulting `../*.dsc` with something like `sbuild -d noble pam-ssh-agent_0.9.6-1~noble.dsc` -5. upload with `dput ppa:nresare/ppa .dsc` when everything looks good - -## RPM builds - -1. Release a new version to crates.io -2. Update the version in the [srpm Makefile](https://github.com/nresare/rpm-packaging/blob/main/pam-ssh-agent/Makefile#L2) -3. Run `make srpm outdir=/tmp/out`, have it fail and use the downloaded artifact to update the crate.sha256 file -4. Build the RPM with `mock --addrepo=https://download.copr.fedorainfracloud.org/results/noa/rust/fedora-44-aarch64 /tmp/out/*.src.rpm` -5. If it builds okay, commit the changes to the rpm-pacakging repo, navigate to the previous build in the [COPR ui](https://copr.fedorainfracloud.org/coprs/noa/rust/builds/) -6. Click the "Resubmit" button and hope that it builds correctly +1. When there is time to cut a new release, create a commit with version updates in Cargo.toml, create-deb-dsc.sh, + and debian/changelog. Commit this to a new branch and push it. Anything that needs fixing in the steps below, please + create new commits via pull requests on main and then rebase the vesrion update branch on top of it and try again. +2. Log onto a Fedora box (nypon.noa.re) + 1. Check out the version update branch + 2. Build a .crate with `cargo package` + 3. Copy the .crate to rpm-packaging/pam-ssh-agent + 4. Run `rust2rpm --path _new_crate_` to generate the new spec + 5. Build the .src.rpm with `rpmbuild -bs rust-pam-ssh-agent.spec --define "_sourcedir ." --define "_srcrpmdir ."` + 6. Verify that the .src.rpm can be built with `mock --addrepo=https://download.copr.fedorainfracloud.org/results/noa/rust/fedora-44-aarch64 ./rust-pam-ssh-agent-0.9.7-1.fc44.src.rpm` +3. Log onto an Ubuntu box (hjortron.noa.re) + 1. Check out the version update branch + 2. Generate source packages with ./create-deb-dsc.sh + 3. Verify that the debian/control vendor line is correct by running `CARGO_VENDOR_DIR=vendor /usr/share/cargo/bin/dh-cargo-vendored-sources` + 4. Update debian/control if needed and re-run + 3. Test building the output with `sbuild -d noble ../*.dsc` +4. Merge the version update branch to main +5. Tag the version +6. `cargo publish` +7. In the rpm-pacakging repo + 1. Update release version in Makefile + 2. Update he shasum in crates.sha256 + 3. Verify that `make srpm outdir=/tmp/out` works + 4. navigate to the previous build in the [COPR ui](https://copr.fedorainfracloud.org/coprs/noa/rust/builds/) + 7. Click the "Resubmit" button on the previous build +8. On the ubuntu box + 1. Verify that the tagged commit is checked out + 2. Regeneate signed sources + 3. Upload with `dput ppa:nresare/ppa .dsc`