diff mbox series

[PATCH/next,1/7] package/xdg-user-dirs: new package

Message ID 20231118015456.2629144-1-adam.duskett@amarulasolutions.com
State Superseded, archived
Headers show
Series [PATCH/next,1/7] package/xdg-user-dirs: new package | expand

Commit Message

Adam Duskett Nov. 18, 2023, 1:54 a.m. UTC
This is needed to fix flutter-gallery

Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com>
---
 DEVELOPERS                                    |  1 +
 package/Config.in                             |  1 +
 package/xdg-user-dirs/Config.in               | 22 ++++++++++
 package/xdg-user-dirs/S22xdg-user-dirs-update | 22 ++++++++++
 .../xdg-user-dirs-update.service              | 10 +++++
 package/xdg-user-dirs/xdg-user-dirs.hash      |  3 ++
 package/xdg-user-dirs/xdg-user-dirs.mk        | 41 +++++++++++++++++++
 7 files changed, 100 insertions(+)
 create mode 100644 package/xdg-user-dirs/Config.in
 create mode 100644 package/xdg-user-dirs/S22xdg-user-dirs-update
 create mode 100644 package/xdg-user-dirs/xdg-user-dirs-update.service
 create mode 100644 package/xdg-user-dirs/xdg-user-dirs.hash
 create mode 100644 package/xdg-user-dirs/xdg-user-dirs.mk
diff mbox series

Patch

diff --git a/DEVELOPERS b/DEVELOPERS
index 1f26e9bc81..ab0ef81639 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -39,6 +39,7 @@  F:	package/flutter-pi/
 F:	package/flutter-sdk-bin/
 F:	package/python-kmod/
 F:	package/python-versioneer/
+F:	package/xdg-user-dirs/
 F:	support/testing/tests/package/test_firewalld.py
 F:	support/testing/tests/package/test_flutter.py
 
diff --git a/package/Config.in b/package/Config.in
index 5a3410d758..3bdf5e92b1 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -2783,6 +2783,7 @@  menu "System tools"
 	source "package/watchdog/Config.in"
 	source "package/watchdogd/Config.in"
 	source "package/xdg-dbus-proxy/Config.in"
+	source "package/xdg-user-dirs/Config.in"
 	source "package/xen/Config.in"
 	source "package/xvisor/Config.in"
 endmenu
diff --git a/package/xdg-user-dirs/Config.in b/package/xdg-user-dirs/Config.in
new file mode 100644
index 0000000000..5e580ccfd8
--- /dev/null
+++ b/package/xdg-user-dirs/Config.in
@@ -0,0 +1,22 @@ 
+config BR2_PACKAGE_XDG_USER_DIRS
+	bool "xdg-user-dirs"
+	depends on BR2_USE_WCHAR # libglib2 -> gettext
+	help
+	  xdg-user-dirs is a tool to help manage "well known" user
+	  directories like the desktop folder and the music folder.
+	  It also handles localization (i.e. translation) of the
+	  filenames.
+
+	  The way it works is that xdg-user-dirs-update is run very
+	  early in the login phase. This program reads a configuration
+	  file, and a set of default directories. It then creates
+	  localized versions of these directories in the users home
+	  directory and sets up a config file in
+	  $(XDG_CONFIG_HOME)/user-dirs.dirs
+	  (XDG_CONFIG_HOME defaults to ~/.config) that applications can
+	  read to find these directories.
+
+	  https://freedesktop.org/wiki/Software/xdg-user-dirs/
+
+comment "xdg-user-dirs needs a toolchain w/ wchar"
+	depends on !BR2_USE_WCHAR
diff --git a/package/xdg-user-dirs/S22xdg-user-dirs-update b/package/xdg-user-dirs/S22xdg-user-dirs-update
new file mode 100644
index 0000000000..09ad803bc7
--- /dev/null
+++ b/package/xdg-user-dirs/S22xdg-user-dirs-update
@@ -0,0 +1,22 @@ 
+#!/bin/sh
+set -e
+
+DAEMON=xdg-user-dirs-update
+
+case "$1" in
+	start|"")
+		printf "Starting xdg-user-dirs-update: "
+		start-stop-daemon -S -q --exec $DAEMON
+		status=$?
+		if [ "$status" -eq 0 ]; then
+			echo "OK"
+		else
+			echo "FAIL"
+		fi
+		;;
+
+	*)
+		echo "Usage: xdg-user-dirs-update start"
+		exit 1
+		;;
+esac
diff --git a/package/xdg-user-dirs/xdg-user-dirs-update.service b/package/xdg-user-dirs/xdg-user-dirs-update.service
new file mode 100644
index 0000000000..12cb89f5de
--- /dev/null
+++ b/package/xdg-user-dirs/xdg-user-dirs-update.service
@@ -0,0 +1,10 @@ 
+[Unit]
+Description=Update XDG user dir configuration
+
+[Service]
+Type=oneshot
+EnvironmentFile=-/etc/locale.conf
+ExecStart=/usr/bin/xdg-user-dirs-update
+
+[Install]
+WantedBy=default.target
diff --git a/package/xdg-user-dirs/xdg-user-dirs.hash b/package/xdg-user-dirs/xdg-user-dirs.hash
new file mode 100644
index 0000000000..a4d911ee7d
--- /dev/null
+++ b/package/xdg-user-dirs/xdg-user-dirs.hash
@@ -0,0 +1,3 @@ 
+# Locally calculated
+sha256  ec6f06d7495cdba37a732039f9b5e1578bcb296576fde0da40edb2f52220df3c  xdg-user-dirs-0.18.tar.gz
+sha256  32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670  COPYING
diff --git a/package/xdg-user-dirs/xdg-user-dirs.mk b/package/xdg-user-dirs/xdg-user-dirs.mk
new file mode 100644
index 0000000000..f43d6ef823
--- /dev/null
+++ b/package/xdg-user-dirs/xdg-user-dirs.mk
@@ -0,0 +1,41 @@ 
+################################################################################
+#
+# xdg-user-dirs
+#
+################################################################################
+
+XDG_USER_DIRS_VERSION = 0.18
+XDG_USER_DIRS_SITE = http://user-dirs.freedesktop.org/releases
+XDG_USER_DIRS_LICENSE = GPL-2.0
+XDG_USER_DIRS_LICENSE_FILES = COPYING
+XDG_USER_DIRS_CONF_OPTS = \
+	--disable-rpath \
+	--with-gnu-ld
+
+ifeq ($(BR2_PACKAGE_LIBICONV),y)
+XDG_USER_DIRS_DEPENDENCIES += libiconv
+endif
+
+ifeq ($(BR2_PACKAGE_GETTEXT_PROVIDES_LIBINTL),y)
+XDG_USER_DIRS_CONF_OPTS += --with-libintl-prefix=$(STAGING_DIR)/usr
+else
+XDG_USER_DIRS_CONF_OPTS += --without-libintl-prefix
+endif
+
+# We do not need nor want  the desktop file.
+define XDG_USER_DIRS_REMOVE_DESKTOP_FILE
+	$(RM) -rf $(TARGET_DIR)/etc/xdg/autostart/
+endef
+XDG_USER_DIRS_POST_INSTALL_TARGET_HOOKS += XDG_USER_DIRS_REMOVE_DESKTOP_FILE
+
+define XDG_USER_DIRS_INSTALL_INIT_SYSTEMD
+	$(INSTALL) -D -m 0644 $(XDG_USER_DIRS_PKGDIR)/xdg-user-dirs-update.service \
+		$(TARGET_DIR)/usr/lib/systemd/system/xdg-user-dirs-update.service
+endef
+
+define XDG_USER_DIRS_INSTALL_INIT_SYSV
+	$(INSTALL) -D -m 0755 $(XDG_USER_DIRS_PKGDIR)/S22xdg-user-dirs-update \
+		$(TARGET_DIR)/etc/init.d/S22xdg-user-dirs-update
+endef
+
+$(eval $(autotools-package))