Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 353661 - x11-wm/xpra (New Package)
Summary: x11-wm/xpra (New Package)
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All All
: High enhancement (vote)
Assignee: Michael Weber (RETIRED)
URL: http://code.google.com/p/partiwm/wiki...
Whiteboard:
Keywords: EBUILD, InVCS
Depends on:
Blocks:
 
Reported: 2011-02-04 08:11 UTC by Antoine Martin
Modified: 2011-12-17 20:57 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
ebuild (xpra-0.0.7.17-r2.ebuild,850 bytes, text/plain)
2011-02-04 08:11 UTC, Antoine Martin
Details
Build log (net-misc:xpra-0.0.7.17-r2:20110301-093134.log,9.91 KB, text/plain)
2011-03-01 09:48 UTC, Robin Bankhead
Details
updated ebuild fixes missing deoendency on pygtk (xpra-0.0.7.17-r2.ebuild,867 bytes, patch)
2011-03-02 00:48 UTC, Antoine Martin
Details | Diff
new ebuild - version bump + adds ability to build client only (xpra-0.0.7.18.ebuild,962 bytes, text/plain)
2011-04-01 08:15 UTC, Antoine Martin
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Antoine Martin 2011-02-04 08:11:12 UTC
Hi,

Please find attached xpra-0.0.7.17-r2.ebuild
Xpra is "screen for X", here's the blurb from the website:
"Xpra gives you "persistent remote applications" for X. That is, unlike normal X applications, applications run with xpra are "persistent" -- you can run them remotely, and they don't die if your connection does. You can detach them, and reattach them later -- even from another computer -- with no loss of state. And unlike VNC or RDP, xpra is for remote applications, not remote desktops -- individual applications show up as individual windows on your screen, managed by your window manager."

This ebuild pulls the source snapshots not from upstream but from my own repository which is much more up to date than upstream (and has many bug fixes that take months to make it to upstream, if ever). This is what people use (including on freebsd, mac and windows), because this version just works.
It is also the version required for using it with the winswitch gui, for which I will provide a separate ebuild later.

The only thing I don't know how to do is how to get the setup.py to take command line arguments so that you can build just the client (without needing to pull in the large number of server build dependencies: many of the X11 library headers).
So that one could build a version which only supports running as client (like mac osx and windows users do because they have to).
If you know how that can be done easily, just let me know and I'll update the ebuild and setup.py

Thanks
Antoine
Comment 1 Antoine Martin 2011-02-04 08:11:39 UTC
Created attachment 261474 [details]
ebuild
Comment 2 Robin Bankhead 2011-03-01 09:40:26 UTC
Antoine, below is the build log for the failure I mentioned in Bug 353662 and here's emerge --info. This was with USE="server ssh".

Let me know if you need anything else from me.

emerge --info
Portage 2.1.9.41 (default/linux/x86/10.0/server, gcc-4.4.5, glibc-2.13-r1, 2.6.37-gentoo i686)
=================================================================
System uname: Linux-2.6.37-gentoo-i686-Pentium_III_-Coppermine-with-gentoo-2.0.1
Timestamp of tree: Mon, 28 Feb 2011 20:45:01 +0000
distcc 3.1 i686-pc-linux-gnu [disabled]
ccache version 3.1.4 [enabled]
app-shells/bash:     4.1_p9
dev-java/java-config: 2.1.11-r3
dev-lang/python:     2.7.1-r1, 3.1.3-r1
dev-util/ccache:     3.1.4
dev-util/cmake:      2.8.3-r1
sys-apps/baselayout: 2.0.1-r1
sys-apps/openrc:     0.7.0
sys-apps/sandbox:    2.5
sys-devel/autoconf:  2.68
sys-devel/automake:  1.11.1
sys-devel/binutils:  2.21
sys-devel/gcc:       4.4.5, 4.5.2
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.4-r1
sys-devel/make:      3.82
virtual/os-headers:  2.6.36.1 (sys-kernel/linux-headers)
ACCEPT_KEYWORDS="x86 ~x86"
ACCEPT_LICENSE="*"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -pipe -march=pentium3 -mmmx -msse -mfpmath=sse"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /etc/make.conf /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.3/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -pipe -march=pentium3 -mmmx -msse -mfpmath=sse"
DISTDIR="/var/cache/http-replicator"
FEATURES="assume-digests binpkg-logs ccache distlocks fixlafiles fixpackages news nodoc noinfo parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
FFLAGS=""
GENTOO_MIRRORS="http://gentoo.blueyonder.co.uk/"
LANG="en_GB.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="en_GB"
MAKEOPTS="-j8 -l5.2"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.uk.gentoo.org/gentoo-portage"
USE="X509 a52 aac accessibility acl acpi aim apache2 bash-completion berkdb bzip2 clamav cli consolekit cracklib crypt cups cupsddk curl curlwrappers cxx dba dbm dbus dbx dio dri dv enca encode exif fastcgi ffmpeg foomaticdb fortran ftp gd gd-external gdbm glut gnutls gpm hardened hardenedphp iconv icq imagemagick imap innodb java javascript jpeg kerberos lcms ldap libwww mad matroska mcal minimal mmx mmxext modules mp3 mudflap mysql ncurses nls nptl nptlonly offensive ogg openmp optimized-qmake pam pcre perl php png policykit portaudio posix pppd qt4 raw readline samba scanner session sharedmem snmp soap sse ssl sysfs tcpd theora threads tidy tiff tokenizer tordns truetype udev unicode usb vcd vhosts win32codecs x264 x86 xine xinetd xml xml2 xmlrpc xorg xsl xvid zip zlib" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" APACHE2_MPMS="worker" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en_GB" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" SANE_BACKENDS="hp net" USERLAND="GNU" VIDEO_CARDS="ati fbdev vesa" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" 
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 3 Robin Bankhead 2011-03-01 09:48:13 UTC
Created attachment 264237 [details]
Build log
Comment 4 Antoine Martin 2011-03-02 00:48:18 UTC
Created attachment 264315 [details, diff]
updated ebuild fixes missing deoendency on pygtk

This ebuild now includes the dependency on PyGTK which I had missed.

I have also tested it on a base system with nothing installed at all (stage3 + minimal) and it correctly pulled in everything (including X, pygtk and friends)
Comment 5 Robin Bankhead 2011-03-02 08:52:11 UTC
I hope this isn't a dumb question, but is there any scope for a server-only build, and would this avoid the dependency on pyGTK?
Comment 6 Antoine Martin 2011-03-02 14:21:38 UTC
It's the other way around: there is scope for a client only, which connects to server but does not export applications from the machine it is running on.
Typically, this would be a thin client.
(compiling the client only does not require any header files or anything extra - just the few python dependencies)
Comment 7 Antoine Martin 2011-03-02 14:24:01 UTC
Clarification: both the client and the server require PyGTK, this cannot be avoided no matter what as this is what xpra is built on. The server requires a number of X11 headers to build glue code that is not available through PyGTK (or GTK)
Comment 8 Antoine Martin 2011-04-01 08:15:04 UTC
Created attachment 268093 [details]
new ebuild - version bump + adds ability to build client only

I've solved the client-only build by selectively applying a patch when USE="-server"

This ensures that the server parts are not built (the ones that require lots of extra X11 headers and libraries), and also ensures that the resulting installation knows about the fact that this is a client-only build: so it won't give you the option to start/stop/list servers.
It simply toggles the flag (which is normally unset on platforms that do not support servers like win32 and osx)
Comment 9 Antoine Martin 2011-10-17 07:27:02 UTC
Some updates, the proper website for this xpra fork is now:
http://xpra.org/

You can find the latest ebuild here:
http://xpra.org/trac/browser/trunk/scripts
or directly via svn here:
http://xpra.org/svn/Xpra/trunk/scripts/
(note: the source for this ebuild version is not out yet)

I am hoping to push a new release out today with a number of significant improvements all over the map.
Comment 10 Michael Weber (RETIRED) gentoo-dev 2011-11-04 13:03:29 UTC
Antoine, i couldn't find the mentioned .patch file? can you please attach it here or an URL, thanks

*xpra-0.0.7.30 (04 Nov 2011)

  04 Nov 2011; Michael Weber <xmw@gentoo.org> +xpra-0.0.7.30.ebuild,
  +metadata.xml:
  Initial import (thanks to Antoine Martin, soxx, bug 352974, bug 353661)
Comment 11 Antoine Martin 2011-11-04 14:02:40 UTC
Hah, yes the patch file is distributed as part of the tar snapshots (so other distros can use it too, ie: freebsd ports, etc):
if ! use server; then
	epatch "${FILESDIR}"/disable-posix-server.patch
fi

You can browse this patch directly via trac here:
http://xpra.org/trac/browser/trunk/src/disable-posix-server.patch
or in raw form via svn-http here:
http://xpra.org/svn/Xpra/trunk/src/disable-posix-server.patch
Comment 12 Michael Weber (RETIRED) gentoo-dev 2011-11-04 15:29:42 UTC
(In reply to comment #11)
> Hah, yes the patch file is distributed as part of the tar snapshots (so other
> distros can use it too, ie: freebsd ports, etc):
The direcorty containing the snapshot is ${WORKDIR}, and the patch location ${S} aka ${WORKDIR}/${P} in most cases. ${S} is pwd in all src_* except src_unpack

fixed.
Comment 13 Antoine Martin 2011-12-09 13:34:01 UTC
0.0.7.32 is an important update and fixes a number of bugs, announcement here:
http://lists.devloop.org.uk/pipermail/shifter-users/2011-December/000105.html

FYI, the "libnotify" dependency no longer requires python-notify, only dev-python/dbus-python

I have merged the rest of your ebuild changes into svn:
http://xpra.org/trac/changeset/374

The latest ebuilds I use can be found here:
http://winswitch.org/dists/gentoo/

Thanks!
Comment 14 Michael Weber (RETIRED) gentoo-dev 2011-12-17 20:57:43 UTC
Please do not switch topics - esp on closed bugs. Open new ones instead. Thanks

+*xpra-0.0.7.32 (17 Dec 2011)
+
+  17 Dec 2011; Michael Weber <xmw@gentoo.org> +xpra-0.0.7.32.ebuild:
+  Version bump, thanks Antoine Martin for the hint.
+