summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packaging/desktop-file-utils.manifest5
-rw-r--r--packaging/desktop-file-utils.spec65
-rw-r--r--packaging/macros.desktop-file-utils38
3 files changed, 108 insertions, 0 deletions
diff --git a/packaging/desktop-file-utils.manifest b/packaging/desktop-file-utils.manifest
new file mode 100644
index 0000000..017d22d
--- /dev/null
+++ b/packaging/desktop-file-utils.manifest
@@ -0,0 +1,5 @@
+<manifest>
+ <request>
+ <domain name="_"/>
+ </request>
+</manifest>
diff --git a/packaging/desktop-file-utils.spec b/packaging/desktop-file-utils.spec
new file mode 100644
index 0000000..1b295f8
--- /dev/null
+++ b/packaging/desktop-file-utils.spec
@@ -0,0 +1,65 @@
+Name: desktop-file-utils
+Version: 0.27
+Release: 0
+Summary: Utilities for Manipulating Desktop Files
+License: GPL-2.0+
+Group: Development/Tools/Other
+Url: http://www.freedesktop.org/wiki/Software/desktop-file-utils
+Source0: http://www.freedesktop.org/software/desktop-file-utils/releases/%{name}-%{version}.tar.xz
+Source2: macros.desktop-file-utils
+Source1001: desktop-file-utils.manifest
+BuildRequires: glib2-devel
+BuildRequires: pkg-config
+BuildRequires: meson
+BuildRequires: ninja
+# Only needed because we don't (and won't) support building xz tarballs by default... See bnc#697467
+BuildRequires: xz
+
+%description
+This packages contains a couple of command line utilities for
+working with desktop files.
+
+More information about desktop files can be found at:
+http://freedesktop.org/wiki/Specifications/desktop-entry-spec
+
+%prep
+%setup -q
+cp %{SOURCE1001} .
+
+%build
+export CFLAGS+=" -fPIC"
+
+mkdir -p builddir
+meson --prefix /usr --libdir %{_libdir} builddir
+
+%install
+DESTDIR=%{buildroot} ninja -C builddir install
+# Install rpm macros
+install -D -m644 %{S:2} %{buildroot}%{_sysconfdir}/rpm/macros.desktop-file-utils
+# Create ghosts based on default $XDG_DATA_DIRS:
+mkdir -p %{buildroot}%{_datadir}/applications
+touch %{buildroot}%{_datadir}/applications/mimeinfo.cache
+
+%post
+%{_bindir}/update-desktop-database --quiet %{_datadir}/applications || true
+
+%files
+%manifest %{name}.manifest
+%defattr(-, root, root)
+%license COPYING
+%doc AUTHORS ChangeLog NEWS README
+%{_bindir}/desktop-file-edit
+%{_bindir}/desktop-file-install
+%{_bindir}/desktop-file-validate
+%{_bindir}/update-desktop-database
+%ghost %{_datadir}/applications/mimeinfo.cache
+%{_mandir}/man1/desktop-file-edit.1*
+%{_mandir}/man1/desktop-file-install.1*
+%{_mandir}/man1/desktop-file-validate.1*
+%{_mandir}/man1/update-desktop-database.1*
+# Own directories to not require emacs installed.
+%dir %{_datadir}/emacs
+%dir %{_datadir}/emacs/site-lisp
+%{_datadir}/emacs/site-lisp/*.el*
+%{_sysconfdir}/rpm/macros.desktop-file-utils
+
diff --git a/packaging/macros.desktop-file-utils b/packaging/macros.desktop-file-utils
new file mode 100644
index 0000000..19266d4
--- /dev/null
+++ b/packaging/macros.desktop-file-utils
@@ -0,0 +1,38 @@
+# RPM macros for packages installing desktop files
+#
+###
+#
+# When a package installs a desktop file, it should use both macros:
+#
+# - %desktop_database_post in %post
+# - %desktop_database_postun in %postun
+#
+# Note that these macros can optionally take as argument the directory
+# where the desktop file is installed. If no argument is passed, then
+# %{_datadir}/applications will be used (which is where applications
+# usually install their desktop file).
+#
+###
+
+# On install, update the desktop database
+%desktop_database_post() \
+if test -x %{_bindir}/update-desktop-database; then \
+%if "x%1" != "x%%1" \
+ %{_bindir}/update-desktop-database --quiet "%1" || true \
+%else \
+ %{_bindir}/update-desktop-database --quiet "%{_datadir}/applications" || true \
+%endif \
+fi
+
+# On uninstall, update the desktop database. Note: we ignore upgrades (already
+# handled in %post of the new package).
+%desktop_database_postun() \
+if [ $1 -eq 0 ]; then \
+ if test -x %{_bindir}/update-desktop-database; then \
+%if "x%1" != "x%%1" \
+ %{_bindir}/update-desktop-database --quiet "%1" || true \
+%else \
+ %{_bindir}/update-desktop-database --quiet "%{_datadir}/applications" || true \
+%endif \
+ fi \
+fi