Loading...
  OR  Zero-K Name:    Password:   

Help make portable zip with spring engine for Linux

56 posts, 7238 views
Post comment
Filter:    Player:  
Page of 3 (56 records)
sort
As you know Zero-K lobby supports multiple engine versions on windows and downloads them as needed.

We would like to achieve same on linux, however atm spring engine uses lots of .so dependencies.

If you want to help, we would like to test if such zip can be created and what libs must it include to work on most distros.

You can use something like

ldd /usr/games/spring | sed -rn "s/.*=> ([^ ]+).*/\1/p"

or

ldd /usr/games/spring | sed -rn "s/.*=> ([^ ]+).*/\1/p" | egrep -i "libboost|libfreetype|libpng|libstdc++"/usr/lib/x86_64-linux-gnu/libfreetype.so.6

to pick likely candidates.

Resulting spring binary + .so should be copied to machine without spring and tested.

If it works, automated script should be created for buildbot so that new engine versions are packed automatically.

It would be great if someone could help us test that out. None of the devs uses liunx.

If this works we can make ZKL work on linux and take advantage of this.

+0 / -0

7 years ago
Short list:

/lib/libfreetype.so.6
/lib/libboost_regex.so.1.49.0
/lib/libboost_thread.so.1.49.0
/lib/libboost_program_options.so.1.49.0
/lib/libboost_system.so.1.49.0
/lib/libboost_signals.so.1.49.0
/lib/libpng15.so.15


Long list:

/lib/libSDL-1.2.so.0
/lib/libpthread.so.0
/lib/libGL.so.1
/lib/libGLU.so.1
/lib/libGLEW.so.1.7
/lib/libfreetype.so.6
/lib/libz.so.1
/lib/libX11.so.6
/lib/libXcursor.so.1
/lib/libIL.so.1
/lib/libboost_regex.so.1.49.0
/lib/libboost_thread.so.1.49.0
/lib/libboost_program_options.so.1.49.0
/lib/libboost_system.so.1.49.0
/lib/libboost_signals.so.1.49.0
/lib/libdl.so.2
/lib/libopenal.so.1
/lib/libvorbisfile.so.3
/lib/libstdc++.so.6
/lib/libm.so.6
/lib/libgomp.so.1
/lib/libgcc_s.so.1
/lib/libc.so.6
/lib/libnvidia-tls.so.302.17
/lib/libnvidia-glcore.so.302.17
/lib/libXext.so.6
/lib/libXmu.so.6
/lib/libXi.so.6
/lib/libbz2.so.1.0
/lib/libxcb.so.1
/lib/libXrender.so.1
/lib/libXfixes.so.3
/lib/libtiff.so.5
/lib/libpng15.so.15
/lib/libmng.so.1
/lib/liblcms.so.1
/lib/libjasper.so.1
/lib/libjpeg.so.8
/lib/libIlmImf.so.6
/lib/libImath.so.6
/lib/libHalf.so.6
/lib/libIex.so.6
/lib/libIlmThread.so.6
/lib/libicuuc.so.49
/lib/libicui18n.so.49
/lib/libicudata.so.49
/lib/librt.so.1
/lib/libvorbis.so.0
/lib/libogg.so.0
/lib/libXt.so.6
/lib/libXau.so.6
/lib/libXdmcp.so.6
/lib/liblzma.so.5
/lib/libSM.so.6
/lib/libICE.so.6
/lib/libuuid.so.1
+0 / -0
7 years ago
Would be nice to be able to install ZKL on USB drive/pendrive and have a portable
version with all maps, mods, widgets, configs, etc... in the pendrive.
So it can be used in any computer without leaving files in it (stealth: http://www.portablefreeware.com/faq.php#stealth ).

And if you include the Linux binary even better, so it work in Linux, Windows and maybe Mac? (never used Linux so no idea if that would work for Linux).
+0 / -0

7 years ago
Relevant perhaps:
http://www.archlinux.org/packages/community/x86_64/spring/
Listed Dependencies (package names, not the files):
boost-libs
devil
freetype2
glew
libvorbis
libxcursor
openal
sdl

OS: Arch Linux, 64 bit

Short list:

/usr/lib/libfreetype.so.6
/usr/lib/libboost_regex.so.1.49.0
/usr/lib/libboost_thread.so.1.49.0
/usr/lib/libboost_program_options.so.1.49.0
/usr/lib/libboost_system.so.1.49.0
/usr/lib/libboost_signals.so.1.49.0
/usr/lib/libpng15.so.15

Long list:

/usr/lib/libSDL-1.2.so.0
/lib/libpthread.so.0
/usr/lib/libGL.so.1
/usr/lib/libGLU.so.1
/usr/lib/libGLEW.so.1.7
/usr/lib/libfreetype.so.6
/usr/lib/libz.so.1
/usr/lib/libX11.so.6
/usr/lib/libXcursor.so.1
/usr/lib/libIL.so.1
/usr/lib/libboost_regex.so.1.49.0
/usr/lib/libboost_thread.so.1.49.0
/usr/lib/libboost_program_options.so.1.49.0
/usr/lib/libboost_system.so.1.49.0
/usr/lib/libboost_signals.so.1.49.0
/lib/libdl.so.2
/usr/lib/libopenal.so.1
/usr/lib/libvorbisfile.so.3
/usr/lib/libstdc++.so.6
/lib/libm.so.6
/usr/lib/libgomp.so.1
/usr/lib/libgcc_s.so.1
/lib/libc.so.6
/usr/lib/libnvidia-tls.so.295.53
/usr/lib/libnvidia-glcore.so.295.53
/usr/lib/libXext.so.6
/usr/lib/libXmu.so.6
/usr/lib/libXi.so.6
/usr/lib/libbz2.so.1.0
/usr/lib/libxcb.so.1
/usr/lib/libXrender.so.1
/usr/lib/libXfixes.so.3
/usr/lib/libtiff.so.5
/usr/lib/libpng15.so.15
/usr/lib/libmng.so.1
/usr/lib/liblcms.so.1
/usr/lib/libjasper.so.1
/usr/lib/libjpeg.so.8
/usr/lib/libIlmImf.so.6
/usr/lib/libImath.so.6
/usr/lib/libHalf.so.6
/usr/lib/libIex.so.6
/usr/lib/libIlmThread.so.6
/usr/lib/libicuuc.so.49
/usr/lib/libicui18n.so.49
/usr/lib/libicudata.so.49
/lib/librt.so.1
/usr/lib/libvorbis.so.0
/usr/lib/libogg.so.0
/usr/lib/libXt.so.6
/usr/lib/libXau.so.6
/usr/lib/libXdmcp.so.6
/usr/lib/liblzma.so.5
/usr/lib/libSM.so.6
/usr/lib/libICE.so.6
/usr/lib/libuuid.so.1
+0 / -0
7 years ago
Problem with Linux:
* No DL-engine-and-execute.zip
* NET-Framework and wine (runs windows stuff) can't handle most things which don't run under XP or do very deep system-calls.
+0 / -0

7 years ago
Gentoo ~amd64 with last emerge world done with a portage snapshot on ~ 2012-07-14.
$ uname -a
Linux dull 3.0.36-gentoo #2 SMP PREEMPT Fri Jul 13 13:11:00 MST 2012 x86_64 Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz GenuineIntel GNU/Linux

$ lsb_release -a
LSB Version: n/a
Distributor ID: Gentoo
Description: Gentoo Base System release 2.1
Release: 2.1
Codename: n/a

$ sudo emerge --info
Portage 2.1.11.5 (default/linux/amd64/10.0, gcc-4.6.3, glibc-2.15-r2, 3.0.36-gentoo x86_64)
=================================================================
System uname: Linux-3.0.36-gentoo-x86_64-Intel-R-_Core-TM-_i7_CPU_920_@_2.67GHz-with-gentoo-2.1
Timestamp of tree: Sat, 14 Jul 2012 11:00:01 +0000
distcc 3.1 x86_64-pc-linux-gnu [disabled]
ccache version 3.1.7 [enabled]
app-shells/bash: 4.2_p29
dev-java/java-config: 2.1.12
dev-lang/python: 2.7.3-r2, 3.2.3-r1
dev-util/ccache: 3.1.7
dev-util/cmake: 2.8.8-r3
dev-util/pkgconfig: 0.26
sys-apps/baselayout: 2.1-r1
sys-apps/openrc: 0.10.5
sys-apps/sandbox: 2.6
sys-devel/autoconf: 2.13, 2.69
sys-devel/automake: 1.10.3, 1.11.6, 1.12.2
sys-devel/binutils: 2.22-r1
sys-devel/gcc: 4.6.3
sys-devel/gcc-config: 1.7.3
sys-devel/libtool: 2.4.2
sys-devel/make: 3.82-r3
sys-kernel/linux-headers: 3.4-r1 (virtual/os-headers)
sys-libs/glibc: 2.15-r2
Repositories: gentoo
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -mtune=native -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt /var/bind"
CONFIG_PROTECT_MASK="${EPREFIX}/etc/gconf /etc/bluetooth /etc/ca-certificates.conf /etc/dbus-1 /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/gtk-2.0 /etc/init.d /etc/kde /etc/mono /etc/pam.d /etc/php/apache2-php5.4/ext-active/ /etc/php/cgi-php5.4/ext-active/ /etc/php/cli-php5.4/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/sound /etc/terminfo /etc/texmf /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /etc/udev /etc/xdg /usr/share/X11/xkb /usr/share/texmf"
CXXFLAGS="-O2 -pipe"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--load-average=8 --jobs=32 --keep-going=y --with-bdeps=y"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs ccache config-protect-if-modified distlocks ebuild-locks fail-clean fixlafiles news parallel-fetch parse-eapi-ebuild-head protect-owned sfperms strict suidctl unknown-features-warn unmerge-logs unmerge-orphans userfetch usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="en_US"
MAKEOPTS="-j8"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/portage"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY=""
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X \ a52 aac aalib acl acpi alsa amd64 apache2 bash-completion berkdb bluetooth bzip2 cairo cdr cli cracklib crypt cups cxx dbus device-mapper dri dts dv dvd dvdr dvdread encode exif ffmpeg firefox flac fortran galago gdbm gdu gif glitz gmp gnome gpm graphviz gs gtk gtk2 howl iconv imap ipv6 jbig jpeg jpeg2k kpathsea kqemu lame lcms libnotify lzo matroska mbox mjpeg mmx mng modules mono mozilla mozsvg mp3 mplayer mudflap multilib ncurses nls nptl nptlonly nsplugin nvidia offensive ogg opengl openmp pam pcre pdf perl pic png policykit pppd pulseaudio python quicktime readline samba sdl session spell sse sse2 ssl static-libs subtitles svg sysfs tcpd theora tiff truetype udev unicode usb v4l v4l2 vcd vim-with-x vorbis win32codes wmf x264 xattr xcb xinerama xorg xv xvid xvmc zlib" ALSA_CARDS="emu10k1" 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 asis auth_digest autoindex cache dav deflate dir env expires headers include info log_config logio mime negotiation proxy rewrite setenvif speling status userdir usertrack auth_basic authn_alias authn_anon aut hn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfil e authz_host authz_owner authz_user cern_meta charset_lite dav_fs dav_lock dbd d isk_cache dumpio ext_filter file_cache filter ident imagemap log_forensic mem_ca che mime_magic proxy_ajp proxy_balancer proxy_connect proxy_ftp proxy_http uniqu e_id version vhost_alias cgi" APACHE2_MPMS="prefork" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" 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="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en_US" PHP_TARGETS="php5-3" PYTHON_TARGETS="python3_2 python2_7" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="nvidia nv" 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, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON



$ ldd /usr/local/bin/spring | sed -rn "s/.*=> ([^ ]+).*/\1/p"
/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/libgomp.so.1
/usr/lib64/libSDL-1.2.so.0
/usr/lib64/libGL.so.1
/usr/lib64/libGLU.so.1
/usr/lib64/libGLEW.so.1.7
/usr/lib64/libfreetype.so.6
/lib64/libz.so.1
/lib64/libbz2.so.1
/usr/lib64/libX11.so.6
/usr/lib64/libXcursor.so.1
/usr/lib64/libIL.so.1
/usr/lib64/libboost_regex-mt-1_49.so.1.49.0
/usr/lib64/libboost_thread-mt-1_49.so.1.49.0
/usr/lib64/libboost_program_options-mt-1_49.so.1.49.0
/usr/lib64/libboost_system-mt-1_49.so.1.49.0
/usr/lib64/libboost_signals-mt-1_49.so.1.49.0
/usr/lib64/libminizip.so.1
/lib64/libdl.so.2
/usr/lib64/libopenal.so.1
/usr/lib64/libogg.so.0
/usr/lib64/libvorbisfile.so.3
/usr/lib64/libvorbis.so.0
/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/libstdc++.so.6
/lib64/libm.so.6
/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/libgcc_s.so.1
/lib64/libpthread.so.0
/lib64/libc.so.6
/lib64/librt.so.1
/usr/lib64/libasound.so.2
/usr/lib64/libpulse-simple.so.0
/usr/lib64/libpulse.so.0
/usr/lib64/libaa.so.1
/usr/lib64/opengl/nvidia/lib/libnvidia-tls.so.302.17
/usr/lib64/libnvidia-glcore.so.302.17
/usr/lib64/libXext.so.6
/usr/lib64/libxcb.so.1
/usr/lib64/libXrender.so.1
/usr/lib64/libXfixes.so.3
/usr/lib64/libtiff.so.5
/usr/lib64/libpng15.so.15
/usr/lib64/libmng.so.1
/usr/lib64/liblcms.so.1
/usr/lib64/libjasper.so.1
/usr/lib64/libjpeg.so.8
/usr/lib64/libjson.so.0
/usr/lib64/pulseaudio/libpulsecommon-2.0.so
/usr/lib64/libX11-xcb.so.1
/usr/lib64/libICE.so.6
/usr/lib64/libSM.so.6
/usr/lib64/libXtst.so.6
/lib64/libwrap.so.0
/usr/lib64/libsndfile.so.1
/usr/lib64/libFLAC.so.8
/usr/lib64/libvorbisenc.so.2
/usr/lib64/libasyncns.so.0
/usr/lib64/libdbus-1.so.3
/usr/lib64/libgdbm.so.4
/lib64/libcap.so.2
/lib64/libncurses.so.5
/lib64/libgpm.so.1
/usr/lib64/libXau.so.6
/usr/lib64/libXdmcp.so.6
/usr/lib64/libjbig.so
/lib64/libuuid.so.1
/lib64/libresolv.so.2
/lib64/libattr.so.1
+0 / -0


7 years ago
Could some try copying those to separate folder, setting EXPORT LD_LIBRARY_PATH
and testing if it runs without installing spring/dependencies in system folders?

+0 / -0
If you do everything according instructions in spring engine page you can end up with ~/spring folder with engine which can run on most Linux systems. Problem is that it is ~150 Mb compressed. On my net it would take time to upload somewhere.

But I made multithreded version too.
+0 / -0
Anyone tried CDE? http://www.pgbovine.net/cde.html I once took amarok 1.4 from debian etch to debian squeeze. When I tried to take spring it took nvidia drivers and enough crap too so it didint worked on other pc. There even was thread on springforums about linux portable version but with no success nobody actually even wanted to test mine CDE package.

http://springrts.com/phpbb/viewtopic.php?f=12&t=27880
+0 / -0
7 years ago
I do not think that this is so important rly.
Spring homepage has nice instructions how to compile it. And you are rewarded with 64bit and multithreded version optimized for your CPU after completion much faster than multi-platform one.
+0 / -0


7 years ago
ProzacR what you mean - you have zip with 150mb that will run on most linuxes?

If it can be constructed automatically from built engine using ldd thats what we need.

Size is irrelevant, engine updates are very rare.
+0 / -0
7 years ago
I believe that if you do this on Linux:
git clone git://github.com/spring/spring.git -b master
cmake -DCMAKE_INSTALL_PREFIX=~/spring .
make spring-multithreaded
make install-spring-multithreaded
(This is rly all you need to download and install spring from source on Linux)
You get spring folder that can be runned on any Linux.

Of couse first you need all required libs installed or some .so will not be found.
+0 / -0

7 years ago
Yea, required libs and build dependencies. Cross distro, the library names in the packages can vary. This problem can be solved on a per-distro basis by having the appropriate packages as dependencies. However, having this spread to the distros will take time. I am assuming we want a faster solution than that, right?
+0 / -0
7 years ago
@wolas : It says: "Packages can range from 10 to 100 MB in size."

I rather want a step-by-step tutorial than auto-downloads of the engine...
Linux has no direct-X like windows (that is the only part I am sad about) and you don't want to lag the whole team (get kicked), do you?
* Cause if you only play single player, the version is irrelevant ^
+0 / -0
ProzacR we dont want that.

We dont want linux building

ZKL supports multiple engines at the same time, different room different engine.
And compiling takes time.

We need portable engine which we can download and stick to some folder.

It should be universal for as many linuxes as possible.
Those not supported will have to compile.

Per distro packages are too complex
+0 / -0
7 years ago
So type those commands I mentioned above compress with gzip or sth and distribute.
It should run on all Linux.
+0 / -0
7 years ago
If it would be so easy there wont be thread here.
+0 / -0
It is not easy it is very easy, hard part will be that 0k lobby needs microsoft stuff and microsoft do not make stuff for Linux they have their windows to sell.

Actually 0K runs fine on Linux as it is... and even better than on windows with 64bit and multithred support. Only you have to use SpringLobby not 0k lobby.
+0 / -0


7 years ago
So you tested it on other linuxes which didn't have spring installed ever?

On which distros?

ZKL does not need anything "microsoft" in fact it worked on linux and you can still grab older build.

Its just we didnt find any maintainer and all devs use windows. We still dont have any maintainer.
+0 / -0
7 years ago
Many games are distributed like that. If they do not run because there is no /lib/blabla.so in your Linux you get no blabala.so error then you can get blabla truogh package manager.

>ZKL does not need anything "microsoft"
It needs microsoft net framework check download page. ;)
microsoft net framework is obviously windows only by all possible means.

Oo Where I can get 0k lobby for Linux?
+0 / -0
Page of 3 (56 records)