Hassle-Free Roxapps

Stuff that has yet to be sorted into a category.
Message
Author
PupGeek
Posts: 353
Joined: Sun 06 Sep 2009, 11:30

Hassle-Free Roxapps

#1 Post by PupGeek »

While i started using roxapps as a method of testing my new apps before copying them into my system directories, it became clear to me that it was much more convenient to just run them from where they were. It was there, that I would place all my dependencies and from there that I would create links to folders that were expected to be found in the system directories. The trouble was, that the application directories would get quite fat and with symlinks, they would never copy correctly to a vfat or other windoze filesystem. That is when I decided to put the finished product into a squashfs and mount it at startup. I figured it would also be a clever way of distributing these apps too. I have been saying right along, that one thing that really turns windoze users off from linux is that adding apps can be a real hassle. I have rarely added software to any linux distribution and not have to download more dependencies. It really sucks when you do not have an internet connection and have to download elsewhere. But rather than complain about it, I thought I would actually do something about it.

I now have "Hassle-free" roxapps. These apps contain all dependencies and some will even install OpenGL if needed. They are packaged into squash file systems that are mounted at startup to save space and allow execution from any file system. They will export all paths, and symlink any files or directories that belong in system directories, as well as remove them and unmount when the program is closed. I have tar.gz'd each app, so its as easy as 1. download, 2. extract, and 3. execute. That's all there is to it. No downloading dependencies, no looking for files that are no longer available where you once thought they were, no hassles. This is so easy, a 'doze user would probably think it was too easy.

Here is a partial list of some apps I made:
  • GIMP - to edit photos
    Avidemux - to edit videos
    Kdenlive - another video editor
    Freeciv - a turn-based game like Civilization
    Scribus - Desktop Publishing (one known bug so far, thanks Dingo)
    Blender3D - 3D Animation program
I have 17 in total, and I will try and upload a few tonight. I will follow up when I can confirm their availability.
Last edited by PupGeek on Fri 11 Dec 2009, 02:21, edited 1 time in total.

User avatar
abushcrafter
Posts: 1418
Joined: Fri 30 Oct 2009, 16:57
Location: England
Contact:

#2 Post by abushcrafter »

interesting...

seaside
Posts: 934
Joined: Thu 12 Apr 2007, 00:19

#3 Post by seaside »

PupGeek,

That sounds really great - especially if the filesystem can be kept clean.

Looking forward to trying it out.

s

User avatar
dirty_dave
Posts: 41
Joined: Fri 29 May 2009, 01:29

#4 Post by dirty_dave »

sounds good 8)

i'd be glad to test them out

User avatar
MU
Posts: 13649
Joined: Wed 24 Aug 2005, 16:52
Location: Karlsruhe, Germany
Contact:

#5 Post by MU »

[url=http://murga-linux.com/puppy/viewtopic.php?p=173456#173456]my recommended links[/url]

User avatar
Dingo
Posts: 1437
Joined: Tue 11 Dec 2007, 17:48
Location: somewhere at the end of rainbow...
Contact:

#6 Post by Dingo »

PupGeek, I tried your Scribus, but when I try to import text in a textframe, Scribus crashes

Tried in puppy 4.2.1
replace .co.cc with .info to get access to stuff I posted in forum
dropbox 2GB free
OpenOffice for Puppy Linux

User avatar
Flash
Official Dog Handler
Posts: 13071
Joined: Wed 04 May 2005, 16:04
Location: Arizona USA

#7 Post by Flash »

Pupgeek, may I suggest that you edit your original post to include an index of available roxapps, with a short description of what each is for? A lot of beginners might try a program if they only knew what it was for, and their names usually don't give a clue. :)

PupGeek
Posts: 353
Joined: Sun 06 Sep 2009, 11:30

#8 Post by PupGeek »

Wow! I didn't think they would be up so soon...... Anyways, the ones I have uploaded are;
  • GIMP - to edit photos
    Avidemux - to edit videos
    Kdenlive - another video editor
    Freeciv - a turn-based game like Civilization
    Scribus - Desktop Publishing (one known bug so far, thanks Dingo)
    Blender3D - 3D Animation program
I have many more to upload, which I will do a little at a time.

I just ran Scribus and found the crash..... I think it might need an importer... I'm just not sure how to put one in at this time.... I might have experienced this before too, come to think of it. Thank you for the reminder dingo, I will have to work on this one. And not to brush you off, but if you are in a hurry to get something done, copy and paste should not have any problems, last I remember.

User avatar
dirty_dave
Posts: 41
Joined: Fri 29 May 2009, 01:29

#9 Post by dirty_dave »

:D they all work great

seaside
Posts: 934
Joined: Thu 12 Apr 2007, 00:19

#10 Post by seaside »

PupGeek ,

Nicely done

One item - I downloaded the Freeciv app, started it, and nothing happened. After checking out the Freeciv SFS file, it turned out that the SFS file was made with the older SFS format, so that it won't work in the puppy 43x series.

You may want to consider some SFS version checking in the AppRun to alert the user, if it's the wrong format.

Thanks for your work,
s

User avatar
DaveS
Posts: 3685
Joined: Thu 09 Oct 2008, 16:01
Location: UK

#11 Post by DaveS »

I have done the same thing with Seamonkey2, Firefox 3.5* and Opera as I find it the easiest way to keep control of the installs, esp if I want to delete them. I have noticed they load a little more slowly when set up this way though.
Spup Frugal HD and USB
Root forever!

User avatar
esmourguit
Posts: 1410
Joined: Fri 17 Nov 2006, 14:45
Location: Entre l'ile aux oiseaux.et l'ile de sainte Lucie

#12 Post by esmourguit »

Bonjour à tous,
It's excellent.
On 4.31, i tried Gimp, and i had to convert sfs file from version 3 to version 4.
Are all of them in squash version 3?
Cordialement ;)
[url=http://moulinier.net/][color=blue][b]Toutou Linux[/b][/color][/url] - [url=http://toutoulinux.free.fr/pet.php][color=blue][b]Paquets français[/b][/color][/url]

User avatar
Dingo
Posts: 1437
Joined: Tue 11 Dec 2007, 17:48
Location: somewhere at the end of rainbow...
Contact:

#13 Post by Dingo »

PupGeek wrote: I just ran Scribus and found the crash..... I think it might need an importer... I'm just not sure how to put one in at this time.... I might have experienced this before too, come to think of it. Thank you for the reminder dingo, I will have to work on this one. And not to brush you off, but if you are in a hurry to get something done, copy and paste should not have any problems, last I remember.
Yes, copy & paste works, but import feature is really needed, without ability to import, it is not possible to preserve assigned paragraph styles from source doc, let imagine we want make a dictionary, we have entries in bold UPPERCASE and definitions in regular font style, without import feature, we must re-apply manually same style 100 or 1000 or 10000 times!!

PupGeek
Posts: 353
Joined: Sun 06 Sep 2009, 11:30

#14 Post by PupGeek »

Dingo wrote:
PupGeek wrote: I just ran Scribus and found the crash..... I think it might need an importer... I'm just not sure how to put one in at this time.... I might have experienced this before too, come to think of it. Thank you for the reminder dingo, I will have to work on this one. And not to brush you off, but if you are in a hurry to get something done, copy and paste should not have any problems, last I remember.
Yes, copy & paste works, but import feature is really needed, without ability to import, it is not possible to preserve assigned paragraph styles from source doc, let imagine we want make a dictionary, we have entries in bold UPPERCASE and definitions in regular font style, without import feature, we must re-apply manually same style 100 or 1000 or 10000 times!!
oh I got ya and I definitely intend to work on this problem. As of right now, I was just playing around with it and it seems I neglected to make a link a directory in the $APPDIR/lib to /usr/lib... I will bring up the uploaded app and check it and will post a follow-up when i come to a solution.

PupGeek
Posts: 353
Joined: Sun 06 Sep 2009, 11:30

#15 Post by PupGeek »

Ok this is one of my earlier hassle free roxapps (a beta version lets say -- come to think of it, an alpha version, as it is my very first one) I have updated my AppRun script to link an additional directory. In order to get text from MS word documents, you will need an app called antiword, according to Scribus' documentation pages

You can compare your AppRun script to the one shown here:

Code: Select all

#!/bin/sh

#       This program is free software; you can redistribute it and/or modify
#       it under the terms of the GNU General Public License as published by
#       the Free Software Foundation; either version 2 of the License, or
#       (at your option) any later version.
#       
#       This program is distributed in the hope that it will be useful,
#       but WITHOUT ANY WARRANTY; without even the implied warranty of
#       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#       GNU General Public License for more details.
#       
#       You should have received a copy of the GNU General Public License
#       along with this program; if not, write to the Free Software
#       Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
#       MA 02110-1301, USA.

# This script will mount a squashfs containing Scribus.
# During execution, some symlinks will have to be created on your Linux installation and will be removed upon exit

# Create a directory in /mnt and mount the squashfs in that directory
mkdir /mnt/scribus
mount -t squashfs -o loop `dirname "$0"`/scribus.roxfs /mnt/scribus

# initializes variables and exports paths associated with the application
export SCRIBUSDIR=/mnt/scribus
export PATH=$PATH:$SCRIBUSDIR/usr:$SCRIBUSDIR/usr/bin
export LD_LIBRARY_PATH=LD_LIBRARY_PATH:$SCRIBUSDIR/usr/lib 


# Create symlinks to program directories in your linux distribution
# These links will be removed upon exit
ln -s $SCRIBUSDIR/usr/share/scribus /usr/share
ln -s $SCRIBUSDIR/usr/lib/scribus /usr/lib # This is missing in the uploaded version

# Finally executes the program
$SCRIBUSDIR/usr/bin/scribus

# Remove links created, unmounts and removes the directory created in /mnt
rm /usr/share/scribus
rm /usr/lib/scribus # This is missing in the uploaded version
umount $SCRIBUSDIR
rmdir $SCRIBUSDIR
I will repackage and reupload the app again when I can get all the bugs worked out but you can make the changes reflected in the script above in the meantime. Also, I intend to look into getting this "Antiword" app and including it in my revision. And if any more bugs are found, please be sure to let me know.

PupGeek
Posts: 353
Joined: Sun 06 Sep 2009, 11:30

#16 Post by PupGeek »

esmourguit wrote:Bonjour à tous,
It's excellent.
On 4.31, i tried Gimp, and i had to convert sfs file from version 3 to version 4.
Are all of them in squash version 3?
Cordialement ;)

They are actually in version 3.x.... Most of them in 3.1, so they will not run in older puppies (such as 2.15)

This is what I love about Linux.... Always something new to learn. Anywho, gotta get to my job and i will be back later on to look for ways of solving these issues. :)

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#17 Post by technosaurus »

Here is a fairly simple way to compile other programs that makes them easily configurable as a RoxApp

run ./configure --help
you should see a list that includes --prefix= , --bindir= etc...
you will want to set all of these to /usr/local/apps/$MY_PROGRAM_NAME

here is an example:

Code: Select all

CFLAGS=" -pipe -Os " CXXFLAGS=" -pipe -Os " LDFLAGS=" -Wl,-O2,-s " \
./configure --prefix=/usr/local/apps/abiword --bindir=/usr/local/apps/abiword \
--sysconfdir=/usr/local/apps/abiword --localstatedir=/usr/local/apps/abiword \
--libdir=/usr/local/apps/abiword ....<--more-options>
make
new2dir make install
(Then in /usr/local/apps/$MY_PROGRAM_NAME make a symlink for AppRun to the main executable and a symlink for .DirIcon to any image)

I only recommend this for programs - not libraries
If you want to include additional libraries this way I would recommend first compiling the libraries with ./configure --enable-static --disable-shared before compiling your program (that way only the necessaryparts get included - sometimes only a couple of kb of a multi-MB library)
Last edited by technosaurus on Fri 11 Dec 2009, 14:18, edited 1 time in total.
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].

User avatar
abushcrafter
Posts: 1418
Joined: Fri 30 Oct 2009, 16:57
Location: England
Contact:

#18 Post by abushcrafter »

thank you thank you I'm downloading kdenlive..... yes yes yes happy me :D :) :o 8)

User avatar
abushcrafter
Posts: 1418
Joined: Fri 30 Oct 2009, 16:57
Location: England
Contact:

#19 Post by abushcrafter »

How the heck do you run these :?: :?

User avatar
abushcrafter
Posts: 1418
Joined: Fri 30 Oct 2009, 16:57
Location: England
Contact:

#20 Post by abushcrafter »

arr...

Code: Select all

sh-3.00# dmesg | tail
[drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0
e100: eth0 NIC Link is Up 100 Mbps Full Duplex
REISERFS (device sda6): found reiserfs format "3.6" with standard journal
REISERFS (device sda6): using ordered data mode
REISERFS (device sda6): journal params: device sda6, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
REISERFS (device sda6): checking transaction log (sda6)
REISERFS (device sda6): Using r5 hash to sort names
SQUASHFS error: Major/Minor mismatch, older Squashfs 3.1 filesystems are unsupported
SQUASHFS error: Major/Minor mismatch, older Squashfs 3.1 filesystems are unsupported
SQUASHFS error: Major/Minor mismatch, older Squashfs 3.1 filesystems are unsupported


Post Reply