Default to the XDG cache dir for receiving files

Conflicts:
	bluez.spec
This commit is contained in:
Bastien Nocera 2013-11-12 14:27:16 +01:00
parent 2a3313d632
commit f77da253b0
2 changed files with 59 additions and 1 deletions

View File

@ -0,0 +1,53 @@
From 841896ae172c08c1652af88d0994f0349912ed14 Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess@hadess.net>
Date: Sun, 10 Nov 2013 15:24:20 +0100
Subject: [PATCH] obex: Use user's cache dir as a default root
It's per-user, so we won't try to overwrite somebody else's
files in /tmp when that happens. It's also (unless we have a
particularly bizarre setup) on the same partition as the destination
folder which means we can atomically move the file to the destination
with a unique filename.
---
obexd/src/main.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/obexd/src/main.c b/obexd/src/main.c
index 61a06b2..80645f8 100644
--- a/obexd/src/main.c
+++ b/obexd/src/main.c
@@ -50,8 +50,6 @@
#include "obexd.h"
#include "server.h"
-#define DEFAULT_ROOT_PATH "/tmp"
-
#define DEFAULT_CAP_FILE CONFIGDIR "/capability.xml"
static GMainLoop *main_loop = NULL;
@@ -167,7 +165,7 @@ static GOptionEntry options[] = {
"Specify root folder location. Both absolute "
"and relative can be used, but relative paths "
"are assumed to be relative to user $HOME "
- "folder", "PATH" },
+ "folder. Default $XDG_CACHE_HOME", "PATH" },
{ "root-setup", 'S', 0, G_OPTION_ARG_STRING, &option_root_setup,
"Root folder setup script", "SCRIPT" },
{ "symlinks", 'l', 0, G_OPTION_ARG_NONE, &option_symlinks,
@@ -285,8 +283,11 @@ int main(int argc, char *argv[])
exit(EXIT_FAILURE);
}
- if (option_root == NULL)
- option_root = g_strdup(DEFAULT_ROOT_PATH);
+ if (option_root == NULL) {
+ option_root = g_build_filename(g_get_user_cache_dir(), "obexd",
+ NULL);
+ g_mkdir_with_parents(option_root, 0700);
+ }
if (option_root[0] != '/') {
char *old_root = option_root, *home = getenv("HOME");
--
1.8.4.2

View File

@ -3,7 +3,7 @@
Summary: Bluetooth utilities
Name: bluez
Version: 5.10
Release: 3%{?dist}
Release: 4%{?dist}
License: GPLv2+
Group: Applications/System
URL: http://www.bluez.org/
@ -17,6 +17,8 @@ Patch1: playstation-peripheral-pugin-v5.x.patch
Patch2: 0001-work-around-Logitech-diNovo-Edge-keyboard-firmware-i.patch
# Non-upstream
Patch3: 0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch
# Upstream patch
Patch4: 0001-obex-Use-user-s-cache-dir-as-a-default-root.patch
BuildRequires: git
BuildRequires: dbus-devel >= 0.90
@ -228,6 +230,9 @@ mkdir -p $RPM_BUILD_ROOT/%{_libdir}/bluetooth/
/lib/udev/rules.d/97-hid2hci.rules
%changelog
* Tue Nov 12 2013 Bastien Nocera <bnocera@redhat.com> 5.10-4
- Default to the XDG cache dir for receiving files
* Mon Oct 21 2013 Bastien Nocera <bnocera@redhat.com> 5.10-3
- Remove a few obsolete BRs and deps, thanks to Marcel Holtmann