Puppy Linux Discussion Forum Forum Index Puppy Linux Discussion Forum
Puppy HOME page : puppylinux.com
"THE" alternative forum : puppylinux.info
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

The time now is Tue 21 Oct 2014, 16:31
All times are UTC - 4
 Forum index » House Training » Users ( For the regulars ) » Für deutschsprachige Anhänger
RoxApps - GIMP 2.6.12 als RoxApp im Eigenbau
Moderators: MU
Post_new_topic   Reply_to_topic View_previous_topic :: View_next_topic
Page 1 of 1 Posts_count  
Author Message
RSH


Joined: 05 Sep 2011
Posts: 2420
Location: Germany

PostPosted: Mon 26 Aug 2013, 03:18    Post_subject:  RoxApps - GIMP 2.6.12 als RoxApp im Eigenbau
Sub_title: Erste Schritte, erste Erfahrungen - Beendet! Fortsetzung im RoxApp Builder Forum
 

Hallo.

Neben meinem RoxApp Builder, den ich zur Erstellung von RoxApps als Programm-Starter entwickelte, habe ich auch versucht, ein Programm-Modul in eine RoxApp umzuwandeln.

Meine Wahl fiel hierbei auf GIMP 2.6.12, da ich es sehr oft verwende.

Als Vorlage vewendete ich Blender-2.61 und Cinepaint-0.20.1 (das wie eine sehr frühe Version von GIMP daherkommt) - beide habe ich hier als RoxApp vorliegen.

Vorlage meint: Analyse der jeweiligen AppRun Datei um die notwendigen Schritte für GIMP 2.6.12 nachvollziehen zu können.

Die gute Nachricht: es funktioniert!

Eine schlechte Nachricht gibt es nicht; nur eine Warnung: nur ohne persönliche Speicherdatei ausprobieren!

Um aus GIMP 2.6.12 eine RoxApp zu machen, einfach den Inhalt des GIMP 2.6.12 Programm-Moduls in ein neues Verzeichnis kopieren. Dann aus /usr/share/pixmaps das GIMP Icon in das neue Verzeichnis (oberste Ebene) kopieren und nach .DirIcon umbenennen - jetzt wird das Verzeichnis statt mit einem Ordnersymbol mit dem GIMP Icon angezeigt.

Anschließend eine leere, neue Textdatei in der obersten Ebene des neuen Verzeichnisses erzeugen und in AppInfo.xml umbennen. Sie wird erst einmal als Textdatei angezeigt (trotz der .xml Endung). Offnet diese Datei in einem Texteditor und kopiert den folgenden Inhalt hinein:
Code:
<?xml version="1.0"?>
<AppInfo>
   <Summary xml:lang="en">Gimp 2.6.12, Layer Graphics Application</Summary>
   <Summary xml:lang="de">Gimp 2.6.12, Grafikprogramm mit Ebenentechnik</Summary>
   <AppMenu>
      <Item icon="gimp" option="-rungimp">
         <Label xml:lang="en">Run Gimp 2.6.12</Label>
         <Label xml:lang="de">Gimp 2.6.12 starten</Label>
      </Item>
      <Item icon="noicon" option="-noaction">
         <Label></Label>
      </Item>
   </AppMenu>
</AppInfo>

Hiernach erneut eine leere Textdatei erzeugen, nach AppRun umbennen, in einen Texteditor laden und den folgenden Inhalt hineinkopieren:
Code:
#!/bin/bash -a
#------------------------------------------------------------------------------
# Gimp 2.6.12 in a 'RoxApp'
# Created 2013-08-25 by RSH
#------------------------------------------------------------------------------

# Get Application Directory
#--------------------------
APPDIR="`dirname $0`"
[ "$APPDIR" = "." ] && APPDIR="`pwd`"
export APPDIR="$APPDIR"
export APPDIR=`dirname $0`
[ $APPDIR = '.' ] && export APPDIR=`pwd`

# Language files wanted to use - de here
LANGPRESET="de"

# Run the GIMP ?
exitcode=0
RunGimp="false"
case $1 in
   -rungimp) # RightClick ---> Execute Gimp
      RunGimp="true"
   ;;
   *) # Single LeftClick ---> Execute Gimp
      RunGimp="true"
   ;;
esac

# Run the GIMP !
if [ "$RunGimp" = "true" ]; then
   
   #cd $APPDIR
   GIMPPROGRAM="gimp"
   exitcode=0
   
   # Export needed path's
   export PATH=$PATH:$APPDIR/usr/bin:$APPDIR/sbin:$APPDIR/usr/sbin
   export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$APPDIR/usr/lib:$APPDIR/lib
   
   ############
   # Pre work #
   ############
   
   # Create needed symbolic links
   ln -s $APPDIR/usr/share/gimp /usr/share/gimp
   ln -s $APPDIR/usr/share/python /usr/share/python
   ln -s $APPDIR/usr/share/sane /usr/share/sane
   
   ln -s $APPDIR/usr/share/menu/gimp /usr/share/menu/gimp
   ln -s $APPDIR/usr/share/menu/sane /usr/share/menu/sane
   
   ln -s $APPDIR/usr/share/locale/$LANGPRESET/LC_MESSAGES/gimp20-libgimp.mo /usr/share/locale/de/LC_MESSAGES/gimp20-libgimp.mo
   ln -s $APPDIR/usr/share/locale/$LANGPRESET/LC_MESSAGES/gimp20.mo /usr/share/locale/de/LC_MESSAGES/gimp20.mo
   ln -s $APPDIR/usr/share/locale/$LANGPRESET/LC_MESSAGES/gimp20-python.mo /usr/share/locale/de/LC_MESSAGES/gimp20-python.mo
   ln -s $APPDIR/usr/share/locale/$LANGPRESET/LC_MESSAGES/gimp20-script-fu.mo /usr/share/locale/de/LC_MESSAGES/gimp20-script-fu.mo
   ln -s $APPDIR/usr/share/locale/$LANGPRESET/LC_MESSAGES/gimp20-std-plug-ins.mo /usr/share/locale/de/LC_MESSAGES/gimp20-std-plug-ins.mo
   ln -s $APPDIR/usr/share/locale/$LANGPRESET/LC_MESSAGES/gimp20-tips.mo /usr/share/locale/de/LC_MESSAGES/gimp20-tips.mo
   
   ln -s $APPDIR/usr/lib/babl-0.1 /usr/lib/babl-0.1
   ln -s $APPDIR/usr/lib/gegl-0.1 /usr/lib/gegl-0.1
   ln -s $APPDIR/usr/lib/gimp /usr/lib/gimp
   ln -s $APPDIR/usr/lib/openssl-1.0.0 /usr/lib/openssl-1.0.0
   
   ln -s $APPDIR/etc/gimp /etc/gimp   
   
   #######################
   # Execute the Program #
   #######################
   
   # Run the GIMP 1 - works
   #ln -s $APPDIR/usr/bin/$GIMPPROGRAM /usr/bin/$GIMPPROGRAM
   #/usr/bin/$GIMPPROGRAM
   
   # Run the GIMP 2 - works
   "$APPDIR/usr/bin/$GIMPPROGRAM"
   exitcode=$?
   
   ##############
   # After work #
   ##############
   
   # Remove created symbolic links
   rm -r /usr/share/gimp
   rm -r /usr/share/python
   rm -r /usr/share/sane
   
   rm /usr/share/menu/gimp
   rm /usr/share/menu/sane
   
   rm /usr/share/locale/$LANGPRESET/LC_MESSAGES/gimp20-libgimp.mo
   rm /usr/share/locale/$LANGPRESET/LC_MESSAGES/gimp20.mo
   rm /usr/share/locale/$LANGPRESET/LC_MESSAGES/gimp20-python.mo
   rm /usr/share/locale/$LANGPRESET/LC_MESSAGES/gimp20-script-fu.mo
   rm /usr/share/locale/$LANGPRESET/LC_MESSAGES/gimp20-std-plug-ins.mo
   rm /usr/share/locale/$LANGPRESET/LC_MESSAGES/gimp20-tips.mo
   
   rm -r /usr/lib/babl-0.1
   rm -r /usr/lib/gegl-0.1
   rm -r /usr/lib/gimp
   rm -r /usr/lib/openssl-1.0.0
      
   rm -r /etc/gimp
   
   rm    /usr/bin/$GIMPPROGRAM
   
fi

exit $exitcode

Nun nur noch die AppRun Datei ausführbar machen und fertig ist die RoxApp GIMP 2.6.12!

Da beim Verlinken ins System nicht geprüft wird, ob bestimmte Dateien bereits im System sind, besteht die Gefahr, daß beim anschließenden Entfernen der erzeugten Links bereits vorhandene Dateien/Links ebenfalls entfernt werden.

Um diesem vorzubeugen, wäre anzuraten, beim Verlinken ins System abzufragen, ob die jeweilige Datei bereits vorhanden ist. Nur wenn sie nicht vorhanden ist, sollte sie ins System verlinkt werden und in eine temporäre Datei eingetragen werden.

Diese temporäre Datei kann dann verwendet werden, um tatsächlich nur die Dateien wieder zu entfernen, die auch ins System verlinkt wurden. Dann solte einer Verwendung von GIMP 2.6.12 als RoxApp auch in einem System unter Verwendung einer persönlichen Speicherdatei nichts mehr im Wege stehen.

Das angehängte Biild zeigt GIMP 2.6.12 als RoxApp, aus /mnt/sdd2/RoxApps gestartet, in Aktion.
GIMP-RoxApp-in-Aktion.jpg
 Description   RoxApp GIMP 2.6.12 in Aktion
 Filesize   68.7 KB
 Viewed   163 Time(s)

GIMP-RoxApp-in-Aktion.jpg


_________________
LazY Puppy
RSH's DNA
SARA B.

Edited_time_total
Back to top
View user's profile Send_private_message 
RSH


Joined: 05 Sep 2011
Posts: 2420
Location: Germany

PostPosted: Thu 29 Aug 2013, 07:12    Post_subject:  

Hallo.

Hier ein kleines Update zu GIMP 2.6.12 als RoxApp im Eigenbau.

Inzwischen habe ich drei verschiedene Typen von RoxApps ausgemacht, die zwar alle auf dem typischen RoxApp Verzeichnis basieren, sich vom Inhalt her aber doch eindeutig unterscheiden.

Die einfachste Form einer RoxApp stellt demnach /usr/local/apps/Wallpaper dar. Zwar gibt es in /usr/local/apps mehrere RoxApp Verzeichnisse, doch -zumindest hier- nur /usr/local/apps/Wallpaper offenbart tatsächliche RoxApp-Funktionen.

Die zweite Form einer RoxApp entspricht in etwa dem, was ich hier mit GIMP 2.6.12 als RoxApp im Eigenbau veröffentlicht habe. Meine hier vorliegende Blender-2.61 RoxApp ist so ähnlich aufgebaut.

Die dritte Form einer RoxApp hingegen unterscheidet sich maßgeblich von den Anderen. Denn sie enthält eine Datei xxx.rox4fs in welcher offensichtlich sämtliche Programmdateien vorrätig gehalten werden.

Geleitet durch die '4fs' Dateiendung und die Tatsache, daß diese Datei als Squash File System eingebunden wird, vermutete ich eine schlichte ext4 Speicherdatei. Ein Klick auf diese Datei war allerdings ernüchternd: keine ext4 Speicherdatei.

Als Anfänger, und gesegnet mit der notwendigen Portion Neugierde und Spielfreude, erlaubte ich mir diese Datei nach xxx.sfs umzubenennen.

Und siehe da: nach einem Klick auf die umbenannte Datei offenbarte diese mir ihren Inhalt.

Eine xxx.rox4fs Datei ist somit offensichtlich nichts anderes, als eine umbenannte SFS Datei.

Damit werde ich mich demnächst beschäftigen.

Hier gibt es jetzt erst einmal ein Update des AppRun Skriptes. Dieses nimmt nun eine Prüfung vor, ob ins System zu verlinkende Verzeichnisse oder Dateien bereits im System vorhanden sind, und verlinkt diese nur, wenn sie noch nicht vorhanden sind.

Code:
#!/bin/bash -a
#------------------------------------------------------------------------------
# Gimp 2.6.12 in a 'RoxApp'
# Created 2013-08-25 by RSH
#------------------------------------------------------------------------------

# Get Application Directory
#--------------------------
APPDIR="`dirname $0`"
[ "$APPDIR" = "." ] && APPDIR="`pwd`"
export APPDIR="$APPDIR"
export APPDIR=`dirname $0`
[ $APPDIR = '.' ] && export APPDIR=`pwd`

# Language files wanted to use - get it from '/etc/keymap' now
#LANGPRESET="de"
LANGPRESET="`cat /etc/keymap`"

# Run the GIMP ?
exitcode=0
RunGimp="false"
case $1 in
   -rungimp2612roxapp) # RightClick ---> Execute Gimp
      RunGimp="true"
   ;;
   *) # LeftClick ---> Execute Gimp
      RunGimp="true"
   ;;
esac

# Run the GIMP !
if [ "$RunGimp" = "true" ]; then
   
   #cd $APPDIR
   GIMPPROGRAM="gimp"
   exitcode=0
   
   # Export needed path's
   export PATH=$PATH:$APPDIR/usr/bin:$APPDIR/sbin:$APPDIR/usr/sbin
   export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$APPDIR/usr/lib:$APPDIR/lib
   
   ############
   # Pre work #
   ############
   
   # Use a copy of file list for symbolic links
   # because of replacing 'GIMPLANGPRESET' with content of '$LANGPRESET'
   cp -af $APPDIR/data/link_into_os /tmp/gimp_link_into_os_tmp
   sed -i 's|GIMPLANGPRESET|'$LANGPRESET'|' /tmp/gimp_link_into_os_tmp
   
   # Create some directories to keep SFS compatibility
   # It keeps the 'python/runtime.d' directory usable for SFS applications
   # that will use a 'python/runtime.d' directory also
   mkdir -p /usr/share/python/runtime.d
   
   # Create needed symbolic links by a list of needed files to sym-link
   # This List has to be manually created and edited
   if [ -f /tmp/gimp2612roxapp_symlinks ]; then
      rm -f /tmp/gimp2612roxapp_symlinks
   fi
   while read LINE; do
      if [ "$LINE" != "" ]; then
         if [ -f $APPDIR$LINE ]; then
            if [ ! -f $LINE ]; then
               #echo $LINE
               ln -s $APPDIR$LINE $LINE
               echo "$LINE" >> /tmp/gimp2612roxapp_symlinks
            fi
            else
            if [ -d $APPDIR$LINE ]; then
               if [ ! -d $LINE ]; then
                  #echo $LINE
                  ln -s $APPDIR$LINE $LINE
                  echo "$LINE" >> /tmp/gimp2612roxapp_symlinks
               fi
            fi
         fi
      fi
   done < /tmp/gimp_link_into_os_tmp
   
   #######################
   # Execute the Program #
   #######################
   
   # Run the GIMP 1 - works
   #ln -s $APPDIR/usr/bin/$GIMPPROGRAM /usr/bin/$GIMPPROGRAM
   #/usr/bin/$GIMPPROGRAM
   
   # Run the GIMP 2 - works
   "$APPDIR/usr/bin/$GIMPPROGRAM"
   exitcode=$?
   
   ##############
   # After work #
   ##############
   
   # Disabled removing of created symbolic links
   # Remove created symbolic links from a List of created sym-links
   while read LINE; do
      if [ "$LINE" != "" ]; then
         if [ -f "$LINE" ]; then
            #echo $LINE
            rm -f $LINE
            else
            if [ -d "$LINE" ]; then
               #echo $LINE
               rm -r $LINE
            fi
         fi
      fi
   done < /tmp/gimp2612roxapp_symlinks
   
   # Remove temp. files
   rm -f /tmp/gimp_link_into_os_tmp # Full list of needed files to sym-link
   rm -f /tmp/gimp2612roxapp_symlinks # List of created sym-links
   
   # Remove the GIMP Settings directory
   rm -r /root/.gimp-2.6
   
fi

echo ""
echo "GIMP 2.6.12 Exit-Code:" $exitcode

exit $exitcode

Die zu verlinkenden Dateien und Verzeichnisse sind nun in einer Datei definiert. Diese Datei wird als link_into_os in das Verzeichnis data kopiert, welches zuvor in der obersten Ebene des RoxApps Verzeichnisses erzeugt wird.
Code:
/usr/share/gimp
/usr/share/python/runtime.d/gimp.rtupdate
/usr/share/sane
   
/usr/share/menu/gimp
/usr/share/menu/sane
   
/usr/share/locale/GIMPLANGPRESET/LC_MESSAGES/gimp20-libgimp.mo
/usr/share/locale/GIMPLANGPRESET/LC_MESSAGES/gimp20.mo
/usr/share/locale/GIMPLANGPRESET/LC_MESSAGES/gimp20-python.mo
/usr/share/locale/GIMPLANGPRESET/LC_MESSAGES/gimp20-script-fu.mo
/usr/share/locale/GIMPLANGPRESET/LC_MESSAGES/gimp20-std-plug-ins.mo
/usr/share/locale/GIMPLANGPRESET/LC_MESSAGES/gimp20-tips.mo
   
/usr/lib/babl-0.1
/usr/lib/gegl-0.1
/usr/lib/gimp
/usr/lib/openssl-1.0.0
   
/etc/gimp

Auf diese Weise werden am Ende nur die symbolischen Links aus dem System wieder entfernt, die auch tatsächlich erzeugt wurden.

Aber auch hier gilt weiterhin: nur ohne Speicherdatei testen!

RSH

_________________
LazY Puppy
RSH's DNA
SARA B.
Back to top
View user's profile Send_private_message 
RSH


Joined: 05 Sep 2011
Posts: 2420
Location: Germany

PostPosted: Wed 04 Sep 2013, 15:24    Post_subject:  

Hallo.

Hier ein weiteres, kleines Update zu GIMP 2.6.12 als RoxApp im Eigenbau.

Diese Version bzw. dieser Versuch ist insofern unglücklich verlaufen, da Gimp seine PugIns nicht findet und daher nur .xcf Dateien verarbeiten kann.

Das ist aber nicht weiter schlimm, denn ich war in der Lage, meinen RoxApp Builder soweit zu verbessern, daß er mir eine RoxApp für Gimp-2.6.12 erstellte, mit der Gimp nun auch seine PlugIns findet.

Also: das hier ist beendet und den RoxApp Rahmen gibt es gleich, im RoxApp Builder Forum.

RSH

_________________
LazY Puppy
RSH's DNA
SARA B.
Back to top
View user's profile Send_private_message 
Display_posts:   Sort by:   
Page 1 of 1 Posts_count  
Post_new_topic   Reply_to_topic View_previous_topic :: View_next_topic
 Forum index » House Training » Users ( For the regulars ) » Für deutschsprachige Anhänger
Jump to:  

Rules_post_cannot
Rules_reply_cannot
Rules_edit_cannot
Rules_delete_cannot
Rules_vote_cannot
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group
[ Time: 0.0887s ][ Queries: 12 (0.0037s) ][ GZIP on ]