--- /dev/null
+commit 679e5ae2e45b98e254c651cb3102a4331c2c22eb
+Author: Michael Tremer <michael.tremer@ipfire.org>
+Date: Mon Jun 1 13:47:44 2020 +0000
+
+ location-downloader: Do not change content of open database files
+
+ The database might be opened by another process. When modified,
+ it will return random results.
+
+ Fixes: #12420
+ Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
+
+diff --git a/src/python/location-downloader.in b/src/python/location-downloader.in
+index 7d06030..bf0d682 100644
+--- a/src/python/location-downloader.in
++++ b/src/python/location-downloader.in
+@@ -24,6 +24,7 @@ import lzma
+ import os
+ import random
+ import shutil
++import stat
+ import sys
+ import tempfile
+ import time
+@@ -116,7 +117,7 @@ class Downloader(object):
+
+ return res
+
+- def download(self, url, public_key, timestamp=None, **kwargs):
++ def download(self, url, public_key, timestamp=None, tmpdir=None, **kwargs):
+ headers = {}
+
+ if timestamp:
+@@ -124,7 +125,7 @@ class Downloader(object):
+ "%a, %d %b %Y %H:%M:%S GMT",
+ )
+
+- t = tempfile.NamedTemporaryFile(delete=False)
++ t = tempfile.NamedTemporaryFile(dir=tmpdir, delete=False)
+ with t:
+ # Try all mirrors
+ for mirror in self.mirrors:
+@@ -175,6 +176,9 @@ class Downloader(object):
+ t.truncate()
+ continue
+
++ # Make the file readable for everyone
++ os.chmod(t.name, stat.S_IRUSR|stat.S_IRGRP|stat.S_IROTH)
++
+ # Return temporary file
+ return t
+
+@@ -296,10 +300,13 @@ class CLI(object):
+ except FileNotFoundError as e:
+ db = None
+
++ # Download the database into the correct directory
++ tmpdir = os.path.dirname(ns.database)
++
+ # Try downloading a new database
+ try:
+ t = self.downloader.download("%s/%s" % (self.version, DATABASE_FILENAME),
+- public_key=ns.public_key, timestamp=timestamp)
++ public_key=ns.public_key, timestamp=timestamp, tmpdir=tmpdir)
+
+ # If no file could be downloaded, log a message
+ except FileNotFoundError as e:
+@@ -310,11 +317,8 @@ class CLI(object):
+ if not t:
+ return 3
+
+- # Write temporary file to destination
+- shutil.copyfile(t.name, ns.database)
+-
+- # Remove temporary file
+- os.unlink(t.name)
++ # Move temporary file to destination
++ shutil.move(t.name, ns.database)
+
+ return 0
+
--- /dev/null
+commit 9df8db2ae6268b0901961625fd27b4dde1ed451f
+Author: Michael Tremer <michael.tremer@ipfire.org>
+Date: Mon Jun 1 18:23:50 2020 +0000
+
+ Makefile: Remove Python path overrides for Debian
+
+ Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
+
+diff --git a/Makefile.am b/Makefile.am
+index 570ec3a..31869e0 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -54,10 +54,6 @@ SED_PROCESS = \
+ databasedir = $(localstatedir)/lib/location
+ pkgconfigdir = $(libdir)/pkgconfig
+
+-# XXX hardcode path for Debian
+-pythondir = $(prefix)/lib/python3/dist-packages
+-pyexecdir = $(prefix)/lib/python$(PYTHON_VERSION)/lib-dynload
+-
+ # Overwrite Python path
+ pkgpythondir = $(pythondir)/location
+
+diff --git a/debian/libloc.install b/debian/libloc.install
+index eb3b49a..30bbeca 100644
+--- a/debian/libloc.install
++++ b/debian/libloc.install
+@@ -2,8 +2,7 @@ usr/bin/location-downloader
+ usr/bin/location-exporter
+ usr/bin/location-query
+ usr/lib/*/libloc.so.*
+-usr/lib/python3*/dist-packages
+-usr/lib/python3*/lib-dynload/*.so
++usr/lib/python3*/site-packages
+ src/systemd/*.service /lib/systemd/system/
+ src/systemd/*.timer /lib/systemd/system/
+ var/lib/location/signing-key.pem