diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.gitignore b/.gitignore index 20c5404..6675b75 100644 --- a/.gitignore +++ b/.gitignore @@ -52,3 +52,6 @@ /stratisd-3.5.7.tar.gz /stratisd-3.5.7-vendor.tar.gz /stratisd-3.5.7.crate +/stratisd-3.5.8.tar.gz +/stratisd-3.5.8-vendor.tar.gz +/stratisd-3.5.8.crate diff --git a/plans/unit.fmf b/plans/unit.fmf new file mode 100644 index 0000000..9339ea5 --- /dev/null +++ b/plans/unit.fmf @@ -0,0 +1,22 @@ +summary: stratisd unit tests + +prepare: + - name: Install packages + how: install + package: + - stratisd + - stratisd-tools + - util-linux + - python3-psutil + - python3-dbus + +discover: + how: shell + url: https://github.com/stratis-storage/testing.git + ref: v3.5.2 + tests: + - name: unit + test: python3 stratisd_cert.py -v + +execute: + how: tmt diff --git a/sources b/sources index b854e52..8a95a92 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (stratisd-3.5.7.tar.gz) = 8d353928b73cd3b0b4d0576b849f7249a07905b51051602c4f1e653ae20257921380e5c96c4256dfbd3a13f2fb8430bd40092bedba03a3643e56eced58d21a12 -SHA512 (stratisd-3.5.7-vendor.tar.gz) = 0a62b64582455e462b4aa81d5ddd9f24d9e9b2abc3999ab03d2e5201213567e190826b3cd3e621d86643ef3619b3a21ad01cfc6cad105e4897dacb0b45e4895a -SHA512 (stratisd-3.5.7.crate) = 101754600d5c3d84393ad5665e623f6a1d204f510d6694292a62dfb6af634ed21bac2bc2754592fcf2f247173744afa6dbbc75963825551274881697f7eaf294 +SHA512 (stratisd-3.5.8.tar.gz) = c5cf64f2261b7315149abe1d49d997adfce586295998be364f01f4046e400edb404db49f6b60d3acadb377b8df085a3b565365e910aca7c04c2e12943a72846b +SHA512 (stratisd-3.5.8-vendor.tar.gz) = 90d953d88dd03a84739e9ea2b776a34aa1ae451c08db76186c799e50b85345c16daaa66c323260ce99665f8023c99d1f56c1d35ee65e98dcbe393d4a5457c466 +SHA512 (stratisd-3.5.8.crate) = 12e54377861a212f3bc745c0596e6f3381ef1b34f70392d9acc8c040c8d22ec0eeb1933df80dc344962e9fabcb2e3c56ab7e318dfe679254665629fc739f0cc4 diff --git a/stratisd.spec b/stratisd.spec index fa0a45d..c199f5d 100644 --- a/stratisd.spec +++ b/stratisd.spec @@ -4,16 +4,17 @@ %global dracutdir %(pkg-config --variable=dracutdir dracut) Name: stratisd -Version: 3.5.7 +Version: 3.5.8 Release: 1%{?dist} Summary: Daemon that manages block devices to create filesystems License: MPL-2.0 URL: https://github.com/stratis-storage/stratisd -Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz -Source1: %{url}/releases/download/v%{version}/%{name}-%{version}-vendor.tar.gz +Source0: %{url}/archive/stratisd-v%{version}/%{name}-%{version}.tar.gz +Source1: %{url}/releases/download/stratisd-v%{version}/%{name}-%{version}-vendor.tar.gz Source2: %{crates_source} +Patch0: vendor-serde_derive.patch ExclusiveArch: %{rust_arches} %if 0%{?rhel} @@ -84,12 +85,38 @@ Requires: stratisd %{summary}. %prep +# Rename SOURCE0's top-level directory because it starts with +# stratisd-stratisd-v. GitHub calculates the directory name from the repo name +# + the tag. Extract the upstream crate on top of the extracted GitHub release, +# overwriting changed files. The primary purpose of this step is to ensure that +# the Cargo.toml that is used in building is the one that is generated by +# cargo-publish and cargo-package, not the file with path dependencies that +# GitHub packs up. Tar the overwritten files back up again into a tar file +# with the format and top-level directory that %setup expects cleaning up the +# previously extracted directory and its contents at the same time. Move the +# newly created tar file to the SOURCE0 location. +tar --transform="s/^stratisd\-stratisd-v/stratisd-/" --extract --file %{SOURCE0} +tar --extract --overwrite --file %{SOURCE2} +tar --create --gzip --file %{SOURCE0}.newfile ./stratisd-%{version} --remove-files +mv %{SOURCE0}.newfile %{SOURCE0} + %setup -q -tar --strip-components=1 --extract --verbose --file %{SOURCE2} -# Patches must be applied after the upstream package is extracted. + %if 0%{?rhel} -# Source1 is vendored dependencies + +# Untar the vendor tarfile. +tar --extract --file %{SOURCE1} + +# Remove pre-compiled procedural macro, compile from source +rm ./vendor/serde_derive/serde_derive-x86_64-unknown-linux-gnu +%patch0 -p1 + +# Rezip the tarfile +tar --create --gzip --file %{SOURCE1}.newfile ./vendor --remove-files +mv %{SOURCE1}.newfile %{SOURCE1} + %cargo_prep -V 1 + %else %cargo_prep %generate_buildrequires @@ -180,6 +207,10 @@ a2x -f manpage docs/stratis-dumpmetadata.txt %{_mandir}/man8/stratis-dumpmetadata.8* %changelog +* Mon Jul 31 2023 Bryan Gurney - 3.5.8-1 +- Refine handling of partially-set-up pools +- Resolves: rhbz#2223409 + * Thu Jun 08 2023 Bryan Gurney - 3.5.7-1 - Increase libcryptsetup-rs dependency lower bound to 0.8.0 - Resolves: rhbz#2213277 diff --git a/tests/provision.fmf b/tests/provision.fmf deleted file mode 100644 index a192769..0000000 --- a/tests/provision.fmf +++ /dev/null @@ -1,9 +0,0 @@ ---- - -standard-inventory-qcow2: - qemu: - m: 10G - drive: - - size: 10737418240 - - size: 10737418240 - - size: 10737418240 diff --git a/tests/tests.yml b/tests/tests.yml deleted file mode 100644 index c5807aa..0000000 --- a/tests/tests.yml +++ /dev/null @@ -1,18 +0,0 @@ ---- -- hosts: localhost - roles: - - role: standard-test-basic - tags: - - classic - tests: - - simple: - dir: ./testing/ - run: > - python3 stratisd_cert.py -v - required_packages: - - util-linux - - python3-psutil - repositories: - - repo: "https://github.com/stratis-storage/testing.git" - dest: "testing" - version: "v3.5.2" diff --git a/vendor-serde_derive.patch b/vendor-serde_derive.patch new file mode 100644 index 0000000..421d82d --- /dev/null +++ b/vendor-serde_derive.patch @@ -0,0 +1,51 @@ +diff -r -u a/vendor/serde_derive/.cargo-checksum.json b/vendor/serde_derive/.cargo-checksum.json +--- a/vendor/serde_derive/.cargo-checksum.json 2023-07-28 17:29:31.882146916 -0400 ++++ b/vendor/serde_derive/.cargo-checksum.json 2023-07-28 17:29:18.104951995 -0400 +@@ -1 +1 @@ +-{"files":{"Cargo.toml":"341a4425e672c1fc4571d37a0dddb54b35b4bdcf38c550af47c3c1f16426564b","LICENSE-APACHE":"62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","serde_derive-x86_64-unknown-linux-gnu":"352a33dfb4b10e7beabef977b83fdd697e4443f27e03a6aceff8c3738edc30d5","src/bound.rs":"fee590a67ca956d7a2fca50a2dc069e71d27fa9adacde98670a88245a8841cf6","src/buffer.rs":"b2bbe4058cd60c2ccbbe5087516224d2975a38dbf9fb52c25f23c1b96c9f1ea7","src/bytecode.rs":"4b092d9d88e11dd544c14decb64ab50a1725f0f792adf6b69aeebaabc2919097","src/de.rs":"1ebe3d3fabd86bdfe15e7aed02d7ecd183353c276ce8e6302264740191965c74","src/dummy.rs":"1b7de5bfe1158ea7e70d668d4f76fdccf7f63144ac7869e82e8bf1e7ea0db13c","src/fragment.rs":"5548ba65a53d90a296f60c1328a7a7fb040db467f59c2f5210b2fb320457145d","src/internals/ast.rs":"07dfd9a789cd6268c2cff2889e738193d24e68c93873792a0548d5e6b3c94ca4","src/internals/attr.rs":"55b59fb42ac041ec44c34dfa58e2c11d37783fa4f5200fbd8520fe28d798eff7","src/internals/case.rs":"9492f0c5142d7b7e8cd39c86d13a855e5ce4489425adb2b96aed89e1b7851ac0","src/internals/check.rs":"41f4725b20919b8828850529d8d395dbb55f54ca4069a9cd0bf37109e9b93172","src/internals/ctxt.rs":"c403db8260a533e58af06e8d0a2bb962edb13a250424ab1f1fd2719902affc37","src/internals/mod.rs":"f32138ff19d57eb00f88ba11f6b015efab2102657804f71ebbf386a3698dad91","src/internals/receiver.rs":"6b016351b8294539039095863d8c99e81dd4530d7f769003d12d4ca73cca172c","src/internals/respan.rs":"899753859c58ce5f532a3ec4584796a52f13ed5a0533191e48c953ba5c1b52ff","src/internals/symbol.rs":"2bf0287da64d28da7e8673af60f66aaf6b29efe33131e56b24d6fa55edb533ad","src/lib.rs":"8fa0a5bbcc1126f29d5b5e69459c1510e47c607342a000d833ec382afb7848ea","src/lib_from_source.rs":"72960c007813da84dbcc2d98398e3bfb6c0617c29ffe456cf184c2a556d2e6e4","src/lib_precompiled.rs":"68cd898c82ecca3770fcda43c6514b967222e75ba2d4d618ad3925e34181ef21","src/pretend.rs":"0e570faf787015535ea6b6683ebc271633c1ca945d3ee1d072c497a1a920c380","src/ser.rs":"e435dc7ef8ee9dca02913f43b4162d22c664061510089745b6278a63df7d30fe","src/this.rs":"a2c128955324c2994ed7cdc3fe4eeceb7ad8a0f9d071665a8378c85c8df64ce2","src/try.rs":"b171b0088c23ebf4bfa07ba457881b41ac5e547d55dd16f737ea988d34badf61"},"package":"b23f7ade6f110613c0d63858ddb8b94c1041f550eab58a16b371bdf2c9c80ab4"} +\ No newline at end of file ++{"files":{"Cargo.toml":"77728000015e4d5b8932e7683214d185fa8af037032eaf98e17a45fbaf0964ed","LICENSE-APACHE":"62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","src/bound.rs":"fee590a67ca956d7a2fca50a2dc069e71d27fa9adacde98670a88245a8841cf6","src/buffer.rs":"b2bbe4058cd60c2ccbbe5087516224d2975a38dbf9fb52c25f23c1b96c9f1ea7","src/bytecode.rs":"4b092d9d88e11dd544c14decb64ab50a1725f0f792adf6b69aeebaabc2919097","src/de.rs":"1ebe3d3fabd86bdfe15e7aed02d7ecd183353c276ce8e6302264740191965c74","src/dummy.rs":"1b7de5bfe1158ea7e70d668d4f76fdccf7f63144ac7869e82e8bf1e7ea0db13c","src/fragment.rs":"5548ba65a53d90a296f60c1328a7a7fb040db467f59c2f5210b2fb320457145d","src/internals/ast.rs":"07dfd9a789cd6268c2cff2889e738193d24e68c93873792a0548d5e6b3c94ca4","src/internals/attr.rs":"55b59fb42ac041ec44c34dfa58e2c11d37783fa4f5200fbd8520fe28d798eff7","src/internals/case.rs":"9492f0c5142d7b7e8cd39c86d13a855e5ce4489425adb2b96aed89e1b7851ac0","src/internals/check.rs":"41f4725b20919b8828850529d8d395dbb55f54ca4069a9cd0bf37109e9b93172","src/internals/ctxt.rs":"c403db8260a533e58af06e8d0a2bb962edb13a250424ab1f1fd2719902affc37","src/internals/mod.rs":"f32138ff19d57eb00f88ba11f6b015efab2102657804f71ebbf386a3698dad91","src/internals/receiver.rs":"6b016351b8294539039095863d8c99e81dd4530d7f769003d12d4ca73cca172c","src/internals/respan.rs":"899753859c58ce5f532a3ec4584796a52f13ed5a0533191e48c953ba5c1b52ff","src/internals/symbol.rs":"2bf0287da64d28da7e8673af60f66aaf6b29efe33131e56b24d6fa55edb533ad","src/lib.rs":"cb97725dce0245fc369a81c9328960225324b489792693a3830aa174f3c977f4","src/lib_from_source.rs":"72960c007813da84dbcc2d98398e3bfb6c0617c29ffe456cf184c2a556d2e6e4","src/lib_precompiled.rs":"68cd898c82ecca3770fcda43c6514b967222e75ba2d4d618ad3925e34181ef21","src/pretend.rs":"0e570faf787015535ea6b6683ebc271633c1ca945d3ee1d072c497a1a920c380","src/ser.rs":"e435dc7ef8ee9dca02913f43b4162d22c664061510089745b6278a63df7d30fe","src/this.rs":"a2c128955324c2994ed7cdc3fe4eeceb7ad8a0f9d071665a8378c85c8df64ce2","src/try.rs":"b171b0088c23ebf4bfa07ba457881b41ac5e547d55dd16f737ea988d34badf61"},"package":"b23f7ade6f110613c0d63858ddb8b94c1041f550eab58a16b371bdf2c9c80ab4"} +diff -r -u a/vendor/serde_derive/Cargo.toml b/vendor/serde_derive/Cargo.toml +--- a/vendor/serde_derive/Cargo.toml 2023-07-28 17:29:31.882146916 -0400 ++++ b/vendor/serde_derive/Cargo.toml 2023-07-28 17:29:18.104951995 -0400 +@@ -45,18 +45,18 @@ + [lib] + proc-macro = true + +-[dev-dependencies.serde] ++[dependencies.proc-macro2] + version = "1" + +-[features] +-default = [] +-deserialize_in_place = [] +- +-[target."cfg(not(all(target_arch = \"x86_64\", target_os = \"linux\", target_env = \"gnu\")))".dependencies.proc-macro2] ++[dependencies.quote] + version = "1" + +-[target."cfg(not(all(target_arch = \"x86_64\", target_os = \"linux\", target_env = \"gnu\")))".dependencies.quote] ++[dependencies.syn] ++version = "2.0.25" ++ ++[dev-dependencies.serde] + version = "1" + +-[target."cfg(not(all(target_arch = \"x86_64\", target_os = \"linux\", target_env = \"gnu\")))".dependencies.syn] +-version = "2.0.25" ++[features] ++default = [] ++deserialize_in_place = [] +Only in a/vendor/serde_derive: serde_derive-x86_64-unknown-linux-gnu +diff -r -u a/vendor/serde_derive/src/lib.rs b/vendor/serde_derive/src/lib.rs +--- a/vendor/serde_derive/src/lib.rs 2023-07-28 17:29:31.882146916 -0400 ++++ b/vendor/serde_derive/src/lib.rs 2023-07-28 17:29:18.104951995 -0400 +@@ -18,8 +18,4 @@ + + extern crate proc_macro; + +-#[cfg(not(all(target_arch = "x86_64", target_os = "linux", target_env = "gnu")))] + include!("lib_from_source.rs"); +- +-#[cfg(all(target_arch = "x86_64", target_os = "linux", target_env = "gnu"))] +-include!("lib_precompiled.rs");