Under OpenBSD, desktop files are installed using INSTALL_DATA which is

defined in ports/infrastructure/mk/bsd.port.mk as:
    ${INSTALL} ${INSTALL_COPY} -o ${SHAREOWN} -g ${SHAREGRP} -m ${SHAREMODE}
SHAREMODE is defined under /usr/share/mk/bsd.own.mk as "444".

That means desktop files are installed with mode 444 which is wrong
because fd.o environments use these files to create menu structures,
links to applications... and a user should be able to edit the link icon
or menu he created.

Add a small patch that will give desktop files correct permissions when
update-desktop-database is run.
Consistency with others *nix OS.

While here, specify GPL version.

ok sthen@
This commit is contained in:
ajacoutot 2009-08-01 16:06:28 +00:00
parent 4102b9d891
commit a5cc067d64
2 changed files with 29 additions and 2 deletions

View File

@ -1,13 +1,15 @@
# $OpenBSD: Makefile,v 1.16 2008/03/19 21:50:22 jasper Exp $
# $OpenBSD: Makefile,v 1.17 2009/08/01 16:06:28 ajacoutot Exp $
COMMENT= utilities for 'desktop' entries
DISTNAME= desktop-file-utils-0.15
PKGNAME= ${DISTNAME}p0
CATEGORIES= devel
HOMEPAGE= http://freedesktop.org/wiki/Software/desktop-file-utils
# GPL
# GPLv2
PERMIT_PACKAGE_CDROM= Yes
PERMIT_PACKAGE_FTP= Yes
PERMIT_DISTFILES_CDROM= Yes

View File

@ -0,0 +1,25 @@
$OpenBSD: patch-src_update-desktop-database_c,v 1.5 2009/08/01 16:06:28 ajacoutot Exp $
Under OpenBSD, desktop files are installed using INSTALL_DATA which is
defined in ports/infrastructure/mk/bsd.port.mk as:
${INSTALL} ${INSTALL_COPY} -o ${SHAREOWN} -g ${SHAREGRP} -m ${SHAREMODE}
SHAREMODE is defined under /usr/share/mk/bsd.own.mk as "444".
That means desktop files are installed with mode 444 which is wrong
because fd.o environments use these files to create menu structures,
links to applications... and a user should be able to edit the link icon
or menu he just created.
--- src/update-desktop-database.c.orig Sat Aug 1 08:11:42 2009
+++ src/update-desktop-database.c Sat Aug 1 08:11:23 2009
@@ -272,6 +272,10 @@ process_desktop_files (const char *desktop_dir,
}
name = g_strdup_printf ("%s%s", prefix, filename);
+
+ if (chmod(full_path, 0644) != 0)
+ printf("Cannot give 644 perms to :%s", full_path);
+
process_desktop_file (full_path, name, &process_error);
g_free (name);