Update README

Tutorial does not belong in the README
master
RazZziel 2014-04-02 14:55:12 +02:00
parent 20d8b1ad77
commit 0872980414
1 changed files with 40 additions and 138 deletions

178
README
View File

@ -1,150 +1,52 @@
Mini-tutorial: Let's package FlightGear.
# What the fuck?
Long story short:
These are stand-alone executable packages.
They have two personalities: Sometimes they think they're an ELF executable, so you can just run them and play
these awesome games, if you have execution credentials (chmod +x [package file]). Sometimes, they think they're
an ISO file, so you can also mount them with fuseiso, acetoneiso, or your ISO management application of choice,
and peek what's inside.
Inside the packages you'll find two things:
$ pacman2appDir flightgear -subversion
$ buildAppImage
A minimal installation for each game, sometimes next to i.e. a minimal Wine or Perl installation
A little script (AppRun) to glue it all together when you run the package
How the fuck?
Using the awesome superpowers of PortableLinuxApps.org, and some script magic.
# Why the fuck?
Short story long:
Why the fuck not. I'm just a casual gamer with no space left in my laptop for games (or anything work-unrelated
for that matter). I'm also tired of the state of release segmentation between Linux distributions, or having some
old nightly game version I enjoyed playing every now and then stop working because the library it was linked against
no longer exists, because my distribution decided to update it. So I discovered this AppImage thingy, and decided
to contribute back. I like it, and I'd like to see it converted in the future of Linux package distribution.
I fell in love with this stuff in in the very moment it occurred to me that I could package Starcraft together with
a minimal Wine install in an AppImage, copy it to an USB drive, take it to my college's lab (se use Ubuntu on all
labs), and have Starcraft running right when I click on it. Move the USB drive over among some friends, and you have
an instant Starcraft party. On Linux. And with no drugs. Like, woah.
$ pacman2appDir flightgear
Now I can stash the games I'm not usually playing in some external hard drive, and rescue them anytime I feel like
playing them again, knowing that every single dependency will be still in its place.
Also games usually take less space, because I can play them without uncompressing them, and performance
isn't affected that much, how cool is that?
# Who the fuck?
These packages will be included:
flightgear
simgear
libxmu
libxi
zlib
openscenegraph
subversion
libxrandr
glu
flightgear-data
[sudo] password for raziel:
Got any constructive feedback? Does any game fail to run in your machine? Write me to
tux AT portablelinuxgames.org
Please note that what I'm doing here is packing some games I like, and sharing them over just in case they're
useful to someone else. I'm only sharing the games I think I'm free to distribute (I've also packaged some
commercial games I've bought, but I'm not sharing those with you guys!). If you're the owner of any of these
games and you don't like them being here without your explicit permission, please let me know and I'll take it
down. I just want to share something I think it's cool, I'm not taking any profit with this, other than maybe
Internet Karma™.
Oops! For some reason, FlightGear depends on subversion, we don't really want
that, so we ignore it:
All these packages are working on my system (32bit ArchLinux on Dell XPS L502X), but I don't have the spare time
to test every package as well as I should on different distros, so if any package fails to run on your machine,
please send me an email with the exact error message and I'll try to fix it (when I find time). Or uncompress
the package, fix it yourself, pack it back up and share it if you want; your AppImage, your rules.
$ pacman2appDir flightgear -subversion
Ignoring subversion...
These packages will be included:
flightgear
simgear
libxmu
libxi
zlib
openscenegraph
libxrandr
glu
flightgear-data
[sudo] password for raziel:
resolving dependencies...
Targets (10): plib-1.8.5-4 flightgear-2.10.0-1 flightgear-data-2.10.0-1 glu-9.0.0-1 libxi-1.6.2-1 libxmu-1.1.1-1 libxrandr-1.4.0-1 openscenegraph-3.0.1-8
simgear-2.10.0-1 zlib-1.2.7-1
Total Download Size: 0.00 MiB
Proceed with download? [Y/n]
(10/10) checking package integrity [-------------------------------------------------------------] 100%
Assuming main package is /var/cache/pacman/pkg/flightgear-2.10.0-1-i686.pkg.tar.xz with version 2.10.0
Uncompressing /var/cache/pacman/pkg/flightgear-2.10.0-1-i686.pkg.tar.xz...
Uncompressing /var/cache/pacman/pkg/simgear-2.10.0-1-i686.pkg.tar.xz...
Uncompressing /var/cache/pacman/pkg/libxmu-1.1.1-1-i686.pkg.tar.xz...
Uncompressing /var/cache/pacman/pkg/libxi-1.6.2-1-i686.pkg.tar.xz...
Uncompressing /var/cache/pacman/pkg/zlib-1.2.7-1-i686.pkg.tar.xz...
Uncompressing /var/cache/pacman/pkg/openscenegraph-3.0.1-8-i686.pkg.tar.xz...
Uncompressing /var/cache/pacman/pkg/libxrandr-1.4.0-1-i686.pkg.tar.xz...
Uncompressing /var/cache/pacman/pkg/glu-9.0.0-1-i686.pkg.tar.xz...
Uncompressing /var/cache/pacman/pkg/flightgear-data-2.10.0-1-any.pkg.tar.xz...
tar: Ignoring unknown extended header keyword `SCHILY.fflags'
tar: Ignoring unknown extended header keyword `SCHILY.fflags'
tar: Ignoring unknown extended header keyword `SCHILY.fflags'
tar: Ignoring unknown extended header keyword `SCHILY.fflags'
tar: Ignoring unknown extended header keyword `SCHILY.fflags'
tar: Ignoring unknown extended header keyword `SCHILY.fflags'
tar: Ignoring unknown extended header keyword `SCHILY.fflags'
tar: Ignoring unknown extended header keyword `SCHILY.fflags'
Found .desktop file 'FlightGear' (fgfs --fg-root)
Using it as main program
ls: cannot access usr/share/pixmaps/flightgear.png: No such file or directory
ls: cannot access usr/share/pixmaps/flightgear.*: No such file or directory
! Icon flightgear not found
usr/share/pixmaps:
find: `usr/share/pixmaps': No such file or directory
Possible missing libraries: (use --auto-copy-libs to copy them into usr/lib/)
/usr/lib/libglapi.so.0
/usr/lib/libGL.so.1
/usr/lib/libglut.so.3
/usr/lib/libopenal.so.1
/usr/lib/libpng15.so.15
/usr/lib/libsystemd-daemon.so.0
/usr/lib/libudev.so.1
Deleting usr/include...
Deleting usr/share/applications...
Deleting usr/share/man...
Deleting usr/share/doc...
Deleting usr/lib/pkgconfig...
Deleting usr/lib/libSimGearCore.a...
Deleting usr/lib/libSimGearScene.a...
Deleting usr/lib/libXrandr.a...
Deleting usr/lib/libz.a...
Deleting .PKGINFO...
Done, now let's package it
$ cd flightgear.AppDir
$ buildAppImage
Building package in ../FlightGear 2.10.0-r2.run...
Creating /home/raziel/packaging/staging/FlightGear 2.10.0-r2.run...
xorriso 0.4.8 : RockRidge filesystem manipulator, libburnia project.
xorriso : UPDATE : Thank you for being patient for 1 seconds
Drive current: -dev '/home/raziel/packaging/staging/FlightGear 2.10.0-r2.run'
Media current: stdio file, overwriteable
Media status : is blank
Media summary: 0 sessions, 0 data blocks, 0 data, 1313m free
Volume id : 'ISOIMAGE'
xorriso : UPDATE : 13823 files added in 1 seconds
Added to ISO image: directory '/'='/home/raziel/packaging/staging/FlightGear 2.10.0-archlinux-r1'
xorriso : UPDATE : 1 files added in 1 seconds
Added to ISO image: file '/.DirIcon'='/home/raziel/packaging/staging/FlightGear 2.10.0-archlinux-r1/AppRun.png'
xorriso : UPDATE : 9 file filters processed in 2 seconds
xorriso : UPDATE : 39 file filters processed in 3 seconds
xorriso : UPDATE : 53 file filters processed in 4 seconds
...
xorriso : UPDATE : 12258 file filters processed in 236 seconds
xorriso : UPDATE : 12261 file filters processed in 236 seconds
xorriso : UPDATE : Writing: 2192s 0.5% fifo 0% buf 50%
xorriso : UPDATE : Writing: 2254s 0.6% fifo 0% buf 50%
...
xorriso : UPDATE : Writing: 403042s 99.8% fifo 0% buf 50% 3.1xD
ISO image produced: 403939 sectors
Written to media : 403968 sectors at LBA 32
Writing to '/home/raziel/packaging/staging/FlightGear 2.10.0-r2.run' completed sucessfully.
ok
Embedding icon into runtime...
Embedding runtime into the header of /home/raziel/packaging/staging/FlightGear 2.10.0-r2.run...
ok
Making /home/raziel/packaging/staging/FlightGear 2.10.0-r2.run executable...
ok
Size: 789.062500 MB
There, done!
Btw, if you have a pure 64bit system, please note that 32bit AppImages won't work by default. Please check this
tutorial to see how to configure a 64bit operative system to run 32bit AppImages.