Could Oolite be added to a Puppy Linux CD?
Moderators: winston, another_commander
Could Oolite be added to a Puppy Linux CD?
Could Oolite be added to a puppy linux distro?
I've tried searching the forums, and googling around a bit, and all I've really found was one mention, which was CptnEcho suggesting an experiment with various distros, including Puppy Linux.
For those who don't know, Puppy Linux allows the entire operating system to boot off the CD and run entirely in the RAM (I'm not sure but it may run on computers than don't have a Hard Disk inside them. I've never tried this though.)
If the CD is a CD-RW, and boots inside a computer CD burner drive, it can also update itself with new files and saved changes. Including, in theory, the Oolite savegames, OXPs.
If Oolite could be added to a Puppy Linux distro, then any computer that could run Puppy Linux could play Oolite, with little or no configuration or setup (apart from sticking the CD drive at the top of the boot order).
Thing is, I don't know 3 important things.
- How to program
- Oolite's system requirements for Linux (both software and hardware)
- What sort of Linux kernal (is that the right word?) Puppy Linux uses? (I suspect its either very old, unique or heavily modified one)
Anyone tried experimenting with Puppy Linux? Any results?[/code]
I've tried searching the forums, and googling around a bit, and all I've really found was one mention, which was CptnEcho suggesting an experiment with various distros, including Puppy Linux.
For those who don't know, Puppy Linux allows the entire operating system to boot off the CD and run entirely in the RAM (I'm not sure but it may run on computers than don't have a Hard Disk inside them. I've never tried this though.)
If the CD is a CD-RW, and boots inside a computer CD burner drive, it can also update itself with new files and saved changes. Including, in theory, the Oolite savegames, OXPs.
If Oolite could be added to a Puppy Linux distro, then any computer that could run Puppy Linux could play Oolite, with little or no configuration or setup (apart from sticking the CD drive at the top of the boot order).
Thing is, I don't know 3 important things.
- How to program
- Oolite's system requirements for Linux (both software and hardware)
- What sort of Linux kernal (is that the right word?) Puppy Linux uses? (I suspect its either very old, unique or heavily modified one)
Anyone tried experimenting with Puppy Linux? Any results?[/code]
Hello & welcome to the friendliest board this side of Riedquat!
Well, the autopackage should be able to install onto most linux systems, and this post seems to have some helpful advice on how to install autopackaged stuff on puppy linux, so you might want to give it a try!
Well, the autopackage should be able to install onto most linux systems, and this post seems to have some helpful advice on how to install autopackaged stuff on puppy linux, so you might want to give it a try!
Hey, free OXPs: farsun v1.05 & tty v0.5! :0)
I was pleasantly surprised to see myself mentioned. Thanks.
Here are some homepage(s) of Puppy Linux. I imagine their F.A.Q. pages can be of some assistance.
http://www.puppylinux.org/
http://www.puppylinux.com/
I imagine you could bundle Oolite with a "Live Distribution" of your own custom design. Either as an .iso file (CD image file) or as a file that could be downloaded and placed upon a flash-drive (which is also bootable on many systems nowadays).
Here's another good article about Puppy Linux...
http://www.linux-magazine.com/w3/issue/ ... _Linux.pdf
Here are some homepage(s) of Puppy Linux. I imagine their F.A.Q. pages can be of some assistance.
http://www.puppylinux.org/
http://www.puppylinux.com/
I imagine you could bundle Oolite with a "Live Distribution" of your own custom design. Either as an .iso file (CD image file) or as a file that could be downloaded and placed upon a flash-drive (which is also bootable on many systems nowadays).
Here's another good article about Puppy Linux...
http://www.linux-magazine.com/w3/issue/ ... _Linux.pdf
"I shouldn't have taken off in this crate without more ammo..." Sergeant Knox - Star Blazers
Lovely to be here! :DKaks wrote:Hello & welcome to the friendliest board this side of Riedquat!
I'll give this a try later in the week, though it'll be at least Friday before I can report in on how it went (I'm moving house). It won't succeed the first time no doubt*. :/Well, the autopackage should be able to install onto most linux systems, and this post seems to have some helpful advice on how to install autopackaged stuff on puppy linux, so you might want to give it a try!
Found them. I've had a little difficulty registering with one of the forums, they've a weird CAPTCHA thing thats busted. I've emailed the admin and asked him to register me. Slow but it works.CptnEcho wrote:I was pleasantly surprised to see myself mentioned. Thanks.
Here are some homepage(s) of Puppy Linux. I imagine their F.A.Q. pages can be of some assistance.
http://www.puppylinux.org/
http://www.puppylinux.com/
I'll be sure to have a look through that :)I imagine you could bundle Oolite with a "Live Distribution" of your own custom design. Either as an .iso file (CD image file) or as a file that could be downloaded and placed upon a flash-drive (which is also bootable on many systems nowadays).
Here's another good article about Puppy Linux...
http://www.linux-magazine.com/w3/issue/ ... _Linux.pdf
*In Oolite terms think of it as learning to dock. I nailed it on the 5th try. The first four... err... "slightly increased the space stations repainting budget"
I've been lurking around these forums for a few weeks now but I had to chime in on this one. My search this morning was about this very topic. I have been trying to install 1.7.3 onto my Puppy for the past two days. My puppy install is the 4.12 community release (recent but not newest) I have done a hard drive install onto an older laptop which gives me a bit more room than the normal live distro. I have a working build environment, and have some simple tools to convert .deb and .rpm packages into .pet packages. Unfortunately converted packages don't resolve dependencies very well so it has been messy so far. For a variety of reasons I am going to refresh my HD install and start over. One of my priorities is to get Debian's dpkg installed and configured hopefully including apt-get. The development community around puppy linux is every bit as friendly as this one is so I should be able to get plenty of help on that side. Any way to make a long post longer...I would love to work with this community also and maybe try and get some of those folks over here to make OoLite on Puppy happen.
A quick update...
With a clean install the Autopackage fails to install. I looked through the script that kicks off the install and found the problem to be the use of busybox by puppy. I pulled the script out and made the changes to use the head and tail calls that autopackage uses to split the metadata and payload out. Once that was done the script did the normal install and everything works fine. Only problem now is staying up till 1AM playing Oolite...
With a clean install the Autopackage fails to install. I looked through the script that kicks off the install and found the problem to be the use of busybox by puppy. I pulled the script out and made the changes to use the head and tail calls that autopackage uses to split the metadata and payload out. Once that was done the script did the normal install and everything works fine. Only problem now is staying up till 1AM playing Oolite...
Job well done! Congratulations!doc435 wrote:A quick update...
With a clean install the Autopackage fails to install. I looked through the script that kicks off the install and found the problem to be the use of busybox by puppy. I pulled the script out and made the changes to use the head and tail calls that autopackage uses to split the metadata and payload out. Once that was done the script did the normal install and everything works fine. Only problem now is staying up till 1AM playing Oolite...
"I shouldn't have taken off in this crate without more ammo..." Sergeant Knox - Star Blazers
just in case anyone else wants to go this route. This will help you from reinventing the wheel.
use head to get the length of the script:
look for the line to set the skiplines variable:
then use head to pull out the scripts
set permisions
use an editor and replace the GNU syntax with busybox syntax for head and tail
replace the "$0" with the autopackage file name (some places it doesn't break anything so you could leave it alone)
here is file I used to install 1.65, my edits follow the double '#s'
then I ran the script and let it do the start of the autopackage install process:
hope this helps.
[/code]
use head to get the length of the script:
Code: Select all
# head -n 25 oolite-1.65.x86.package
Code: Select all
skipLines="175"
Code: Select all
# head -n 175 oolite-1.65.x86.package > doit165
Code: Select all
# chmod 777 doit165
replace the "$0" with the autopackage file name (some places it doesn't break anything so you could leave it alone)
here is file I used to install 1.65, my edits follow the double '#s'
Code: Select all
#!/bin/bash
# autopackage 1.0.8
# RootName @oolite-linux.berlios.de/oolite:1.65
# ShortName oolite
# SoftwareVersion 1.65
# InterfaceVersion
# PackageVersion
# CPUArchitecture x86
# gecko mimetype hack:
# DisplayName en Oolite for Linux
# Summary en Oolite is an Elite tribute game that is easily expandable.
# Do not attempt to parse any information below this line
# programmatically. The only supported interfaces this file exports
# are the comments above (which may be in any order) and the command
# line switches.
# This is an autopackage (http://autopackage.org/)
# Copyright 2002-2005 Mike Hearn, Hongli Lai, and Curtis L Knight
skipLines="175"
export metaSize="8973"
export dataSize="21580149"
export MD5="939b8027ce321be8bd68caf7c4045580"
export AUTOPACKAGETARGET="1.0"
## END OF HEADER
function normal() { echo -en "\033[0m"; }
function bold() { echo -en "\033[1m"; }
function green() { echo -en "\033[1;32m"; }
function cyan() { echo -en "\033[1;36m"; }
function red() { echo -en "\033[1;31m"; }
if [[ "$executed_from_directory" == "" ]]; then
export executed_from_directory=`pwd`
fi
if [ `echo $BASH_VERSION | sed 's/\([0-9]\).*/\1/'` = "1" ]; then
echo "You need at least version 2 of bash to use autopackage"
exit 1
fi
packageDir=`dirname "$0"`
packageDir=`cd "$packageDir" 2>/dev/null; pwd`
packageBase="oolite-1.65.x86.package"
## packageBase=`basename "$0"`
export package_filename="$packageDir/$packageBase"
if [[ "$MD5" == "00000000000000000000000000000000" ]]; then
echo -n "WARN: No MD5 checksum exists, skipping integrity verification... "
else
if which md5sum >/dev/null; then
# md5sum=`tail --bytes=$dataSize "$0" | md5sum | cut -b-32`;
md5sum=`tail -c $dataSize "$packageBase" | md5sum | cut -b-32`;
if [[ "$md5sum" != "$MD5" ]]; then
red; echo "Verifing archive integrity failed"; normal; echo "Error in MD5 sums: $md5sum is different from $MD5"
exit 2
fi
else
echo
echo "----------"
echo "An embedded MD5 sum of the archive exists but no md5sum program was found in \$PATH"
echo
echo "If you have md5sum on your system, you should try adding it to your path"
echo "----------"
echo "No md5sum program exists... "
fi
fi
[ ! -d "${TMP}" ] && export TMP="/tmp"
export working_dir=""
# if we're being invoked from another installer, don't create our own working directory
if [[ "$1" == "-w" ]]; then
shift
export working_dir="$1"
shift
fi
# make a temporary directory
if [[ "$1" == "-x" ]] ; then
# If it's extract mode, pick a "proper" dirname
working_dir=`dirname "$0"`
working_dir=`cd "$working_dir" 2>&-; pwd 2>&-`
## working_dir_suffix=`basename "$0" | sed s/\.package$//ig`
working_dir_suffix=`basename "$package_filename" | sed s/\.package$//ig`
working_dir=`echo "$working_dir/$working_dir_suffix"`
if [ ! -d "$working_dir" ]; then
if ! mkdir "$working_dir" ; then
echo "Error: cannot create directory $working_dir"
fi
fi
elif [[ "$working_dir" == "" ]]; then
# this was invoked by the user, so we need to setup the initial working space
working_dir="$executed_from_directory/tmp$RANDOM$$"
if ! mkdir "$working_dir" 2> /dev/null; then
working_dir="${TMP}/autopackage.$RANDOM$$"
if ! mkdir "$working_dir"; then
echo "Error: cannot create temporary directory $working_dir"
exit
fi
fi
fi
export payload_dir="$working_dir/payload/@oolite-linux.berlios.de/oolite:1.65"
export meta_dir="$working_dir/meta/@oolite-linux.berlios.de/oolite:1.65"
mkdir -p "$payload_dir"
mkdir -p "$meta_dir"
chmod -R 777 "$working_dir"
# extract the metadata
# if group and user are the same and are not
# system uids then allow group writeable files
if [[ "`id -gn`" == "`id -un`" ]] && [ `id -u` -gt 99 ]; then
umask 002
else
umask 022
fi
## if ! tail -n +$skipLines "$0" | head --bytes=$metaSize | tar xvz -C "$meta_dir" >/dev/null; then
if ! tail -n +$skipLines "$package_filename" | head -c $metaSize | tar xvz -C "$meta_dir" >/dev/null; then
red; echo -n "ERROR: "; normal; echo "unable to extract the metadata payload! Check disk space or redownload."; echo
rm -rf "$working_dir"
exit 1
fi
# copy the payload into the working directory so we can extract it later
## if ! tail --bytes=$dataSize "$0" > "$payload_dir/payload.tar.bz2"; then
if ! tail -c $dataSize "$package_filename" > "$payload_dir/payload.tar.bz2"; then
red; echo "ERROR: Unable to extract the data payload! Check disk space or redownload."; normal; echo
rm -rf "$working_dir"
exit 1
fi
case "$1" in
"-x" | "--extract") # extract mode
echo -n "Please wait: extracting files... "
pushd "$payload_dir" >/dev/null # work around oddness in tar
bzip2 -dc "payload.tar.bz2" | tar -xv -C "$working_dir" | ( while read a; do echo -n "."; done; echo; )
popd >/dev/null
echo
echo "Files have been extracted to $working_dir"
echo
exit 0
;;
"-d" | "--debug") # debug mode
echo -n "Please wait: extracting files... "
bzip2 -dc "$payload_dir/payload.tar.bz2" | tar -xv -C "$payload_dir" | ( while read a; do echo -n "."; done; echo; )
echo
cd "$working_dir"
echo "Type 'exit' to finish without installing."
echo "Run apkg-installer manually to continue... "
echo
bash
cd ..
rm -rf "$working_dir" # clean up
exit 0
;;
"--delay")
# this is an internal option, do not use it outside of the autopackage runtime
# delay mode, we are being run from a require* function. just extract stuff to the working dir, and stop.
# the require function will boot us up later
exit 0;;
*) # default mode [ALL] - pass control to installer
"$meta_dir/apkg-installer" "$@"
exit $?
;;
esac
## END OF STUB
Code: Select all
# ./doit165
[/code]
- Diziet Sma
- ---- E L I T E ----
- Posts: 6312
- Joined: Mon Apr 06, 2009 12:20 pm
- Location: Aboard the Pitviper S.E. "Blackwidow"
Very neat.. Would it work with 1.73.4?doc435 wrote:...
here is file I used to install 1.65, my edits follow the double '#s'
...
Most games have some sort of paddling-pool-and-water-wings beginning to ease you in: Oolite takes the rather more Darwinian approach of heaving you straight into the ocean, often with a brick or two in your pockets for luck. ~ Disembodied