diff --git a/_service b/_service
new file mode 100644
index 0000000..c059c0a
--- /dev/null
+++ b/_service
@@ -0,0 +1,26 @@
+
+
+
+ https://gitlab.gnome.org/GNOME/gnome-tour.git
+ git
+ refs/tags/44.0
+ @PARENT_TAG@+@TAG_OFFSET@
+ (.*)\+0
+ \1
+
+
+
+
+
+ *.tar
+ xz
+
+
+ gnome-tour
+ true
+
+
+ gnome-tour
+
+
+
diff --git a/cargo_config b/cargo_config
new file mode 100644
index 0000000..6fb4ff4
--- /dev/null
+++ b/cargo_config
@@ -0,0 +1,5 @@
+[source.crates-io]
+replace-with = "vendored-sources"
+
+[source.vendored-sources]
+directory = "vendor"
\ No newline at end of file
diff --git a/gnome-tour-44.0.obscpio b/gnome-tour-44.0.obscpio
new file mode 100644
index 0000000..2beb44b
--- /dev/null
+++ b/gnome-tour-44.0.obscpio
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a5cb50be9f262e6ece5059527db7858969353adb21458fd0df24977457cd34e2
+size 731660
diff --git a/gnome-tour-44.0.tar.xz b/gnome-tour-44.0.tar.xz
deleted file mode 100644
index 3e57928..0000000
--- a/gnome-tour-44.0.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:06de7677dd1c590d0ea33a032c9ccf4c37c62bc56215b823c879e42ee630c2b6
-size 14401464
diff --git a/gnome-tour.changes b/gnome-tour.changes
index c550a1e..9a01fb5 100644
--- a/gnome-tour.changes
+++ b/gnome-tour.changes
@@ -1,3 +1,11 @@
+-------------------------------------------------------------------
+Mon Mar 20 20:59:58 UTC 2023 - Bjørn Lie
+
+- Switch to cargo_packaging:
+ + Drop cargo and rust BuildRequires, add cargo-packaging
+ BuildRequires and macros.
+ + Use source services to generate tarball + run cargo packaging.
+
-------------------------------------------------------------------
Mon Mar 20 09:33:13 UTC 2023 - Bjørn Lie
diff --git a/gnome-tour.obsinfo b/gnome-tour.obsinfo
new file mode 100644
index 0000000..6c3888b
--- /dev/null
+++ b/gnome-tour.obsinfo
@@ -0,0 +1,4 @@
+name: gnome-tour
+version: 44.0
+mtime: 1679298248
+commit: 46ca411004a49ef963e3a7df7b928ebb976bed72
diff --git a/gnome-tour.spec b/gnome-tour.spec
index 1ea075b..3bfceab 100644
--- a/gnome-tour.spec
+++ b/gnome-tour.spec
@@ -16,6 +16,8 @@
#
+%global rustflags '-Clink-arg=-Wl,-z,relro,-z,now'
+
Name: gnome-tour
Version: 44.0
Release: 0
@@ -23,13 +25,14 @@ Summary: GNOME Tour & Greeter
License: GPL-3.0-or-later
Group: System/GUI/GNOME
URL: https://gitlab.gnome.org/GNOME/gnome-tour
-Source0: https://download.gnome.org/sources/gnome-tour/44/%{name}-%{version}.tar.xz
+Source0: %{name}-%{version}.tar.xz
+Source2: vendor.tar.zst
+Source3: cargo_config
BuildRequires: appstream-glib
-BuildRequires: cargo
+BuildRequires: cargo-packaging
BuildRequires: desktop-file-utils
BuildRequires: meson
-BuildRequires: rust
BuildRequires: pkgconfig(gdk-pixbuf-2.0)
BuildRequires: pkgconfig(gio-2.0) >= 2.56
BuildRequires: pkgconfig(glib-2.0) >= 2.64
@@ -42,20 +45,25 @@ A guided tour and greeter for GNOME.
%lang_package
%prep
-%autosetup -p1
+%autosetup -p1 -a2
+mkdir .cargo
+cp %{SOURCE3} .cargo/config
%build
+export RUSTFLAGS=%{rustflags}
%meson \
-D profile=default \
%{nil}
%meson_build
%install
+export RUSTFLAGS=%{rustflags}
%meson_install
%find_lang %{name} %{?no_lang_C}
%check
%meson_test
+%cargo_test
%files
%license LICENSE.md
diff --git a/vendor.tar.zst b/vendor.tar.zst
new file mode 100644
index 0000000..237bfee
--- /dev/null
+++ b/vendor.tar.zst
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fa77477f43f089ba2bac2550e536276a951522958b65869b374fc3a41f6c24ea
+size 16314023