Xpra: Ticket #1383: ./setup.py install --home= requires root

Installing Xpra 1.0 without root permissions is not possible the way it is mentioned on wiki/Building using --home=<instdir>.

Possible fix: Only run setup.py line 1985-1994 if argument --home= is not set.

P.S: Thanks for the great Xpra!

Sun, 18 Dec 2016 22:56:32 GMT - Jens H. Goebbert:

Perhaps it would be even better to use --prefix=<instdir> in combination with an extra flag like --nosys instead of --home=<instdir>

Autoinstall tools (like EasyBuild) like to set --prefix=<instdir> by default and fail with an additional --home=<instdir> currently.

Mon, 19 Dec 2016 16:44:55 GMT - Antoine Martin: keywords, status, description changed; milestone set

Mon, 19 Dec 2016 17:46:53 GMT - Antoine Martin: attachment set

hackish patch to honour the prefix when installing the service files

Mon, 19 Dec 2016 17:47:56 GMT - Antoine Martin: owner, status changed

Hmmm. The patch attached would probably fix this particular issue, but there are other problems:

copying build/lib.linux-x86_64-2.7/xpra/server/pam.so -> /usr/lib64/python2.7/site-packages/xpra/server
error: could not delete '/usr/lib64/python2.7/site-packages/xpra/server/pam.so': Permission denied

or even later:

copying build/scripts-2.7/xpra -> /usr/bin
error: could not delete '/usr/bin/xpra': Permission denied

How did you get past these errors? Looks to me like distutils isn't honouring the prefix or home arguments, no idea why.

Tue, 20 Dec 2016 01:48:05 GMT - Jens H. Goebbert: attachment set

preliminar EasyBuild? Script to build Xpra

Tue, 20 Dec 2016 02:18:48 GMT - Jens H. Goebbert:

Hi Antoine,

I simply created the following patch - which is a really ugly one - and added it to the EasyBuild? script (see attached file). (I tested your patch and it did not work.)

--- setup.py    2016-12-18 23:30:11.199650111 +0100
+++ setup.py.mod        2016-12-18 23:17:20.199485714 +0100
@@ -1982,16 +1982,16 @@
             return kw
         pkgconfig = osx_pkgconfig
-    else:
+    #else:
         #Linux init service:
-        if os.path.exists("/bin/systemctl"):
-            add_data_files("/usr/lib/systemd/system/", ["service/xpra.service"])
-        else:
-            add_data_files("/etc/init.d/", ["service/xpra"])
-        if os.path.exists("/etc/sysconfig"):
-            add_data_files("/etc/sysconfig/", ["etc/sysconfig/xpra"])
-        elif os.path.exists("/etc/default"):
-            add_data_files("/etc/default/", ["etc/sysconfig/xpra"])
+        #if os.path.exists("/bin/systemctl"):
+        #    add_data_files("/usr/lib/systemd/system/", ["service/xpra.service"])
+        #else:
+        #    add_data_files("/etc/init.d/", ["service/xpra"])
+        #if os.path.exists("/etc/sysconfig"):
+        #    add_data_files("/etc/sysconfig/", ["etc/sysconfig/xpra"])
+        #elif os.path.exists("/etc/default"):
+        #    add_data_files("/etc/default/", ["etc/sysconfig/xpra"])
 if html5_ENABLED:

Fri, 23 Dec 2016 04:17:41 GMT - Antoine Martin:

r14580 should allow you to drop the patch, just call:

./setup.py --without-service

Please let me know if that works for you and I'll apply it to the v1.0.x branch - this may be useful to others (ie: bsd unix)

Tue, 10 Jan 2017 22:05:33 GMT - Jens H. Goebbert:

Hi Antoine,

your patch, which adds "--without-service", works fine here at JSC. Please add it to the 1.x branch.

Best, Jens Henrik

Wed, 11 Jan 2017 02:46:18 GMT - Antoine Martin: status changed; resolution set

This change had been applied to the v1.x branch in r14611 and was included in the 1.0.1 release.

Sat, 23 Jan 2021 05:22:44 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/1383