sfs_load-2.4 on-the-fly

Miscellaneous tools
Message
Author
User avatar
pemasu
Posts: 5474
Joined: Wed 08 Jul 2009, 12:26
Location: Finland

#181 Post by pemasu »

Sfs_load.1.4 url link opens to 1.3.9 pet.
In repo the sfs_load-1.4 is as folder only. Yup...I picked the scripts from there...

User avatar
shinobar
Posts: 2672
Joined: Thu 28 May 2009, 09:26
Location: Japan
Contact:

sfs_load-1.4.pet

#182 Post by shinobar »

pemasu wrote:Sfs_load.1.4 url link opens to 1.3.9 pet.
Sorry, have fixed now.
Downloads for Puppy Linux [url]http://shino.pos.to/linux/downloads.html[/url]

User avatar
vicmz
Posts: 1262
Joined: Sun 15 Jan 2012, 22:47

sfs_load translation updates

#183 Post by vicmz »

These are fixes and regional locales for sfs_load in Spanish and Portuguese. The difference between the languages in Europe and the languages in Americas is, well, just a few words, but this week I've been using sfs_load a lot in Racy and I could see some bugs in the translations, so the whole texts were spellchecked and wrong translations were fixed. The separate locales for Spain and the Americas (Spanish), and Brazil and Portugal + other ex-colonies (Portuguese), were made on the go.
Attachments
sfs_load____es_es-ES_pt-BR_pt-PT.tar.gz
fixes and regional locales for sfs_load in Spanish and Portuguese
(23.94 KiB) Downloaded 554 times

User avatar
RSH
Posts: 2397
Joined: Mon 05 Sep 2011, 14:21
Location: Germany

#184 Post by RSH »

Coming from here, please do read:
http://murga-linux.com/puppy/viewtopic. ... 127#614127
shinobar wrote:Do you know? The sfs_load > 1.3 allows more than 6 sfs without any change of the initrd.gz.
http://www.murga-linux.com/puppy/viewtopic.php?t=64354

The trick is the script /etc/init.d/sfs_load loads them after boot, the excessive sfs's (more than 6) which the initrd did not load. (idea from jamesbond)
As i wrote, i can not see the solution and do not really understand how to use the idea from james bond. :?

But i did try something which might be interesting:

If i do use this

Code: Select all

exec sfs_load --cli $SFSAUDIOMIDIEDIT &
i can load and unload sfs file without having to click on any button - no gui! :D This is great and i should have known this much earlier. :( Looks like there is a need for me to use more often the terminal and type "wanted application" and "--help" :lol: :lol:

If i want to use this in a loop or script using a list of sfs files the menu will be fixed (fixmenus) after every sfs has been loaded. My suggestion would be to give a parameter to sfs_load-on-the-fly to skip the fixmenus command and let only fixmenus run after the last sfs is loaded.

So i did a little "hack" on your sfs_load-on-the-fly script:

Code: Select all

fixmns=""
if [ -f /tmp/sfs_fix_menu ]; then
	. /tmp/sfs_fix_menu
	else
	fixmns="yes"	
fi
at the very beginning of the script.

Code: Select all

    # modified by RSH
    if [ "$fixmns" = "yes" ]; then
      if [ "$HAS_DESKTOPS" ]; then
        waitsplash $(gettext "Updating menu...")
		fixmenus
        [ "$DISPLAY" ] && pidof jwm &>/dev/null && jwm -restart
        waitsplash --stop
	  fi
    fi
somewhere around line 330.

Then, using the following script, i can load and unload several sfs files without any clicking (no gui) and only calling fixmenus after last sfs is laoded.

Code: Select all

echo 'fixmns="no"' > /tmp/sfs_fix_menu
... ... ...
sfs_load --unload "$SFSOFFICE"
echo 'fixmns="yes"' > /tmp/sfs_fix_menu
sfs_load --unload "$SFSVIDEOEDIT"
else
sfs_load --cli "$SFSOFFICE"
echo 'fixmns="yes"' > /tmp/sfs_fix_menu
sfs_load --cli "$SFSVIDEOEDIT"
... ... ...
Simple solution to me would be something like this:

Code: Select all

sfs_load --cli "$SFSOFFICE" no
to load sfs without calling fixmenus,

and

Code: Select all

sfs_load --cli "$SFSOFFICE"
to load sfs and run fixmenus after sfs is loaded.

Unfortunately i am not a real bash programmer, so i can not do this. Do you see any possibility to make this a feature of a next version? I surely should know know you do so, but are you willing?

One more question: does the --cli command mean, a not existing pup_ro directory will be created automatically in background (without any warning)?

Edit:
I have examined your script again. It took one hour to get me to the idea to search for the --cli command inside your script. :oops:

Found this and used this:

Code: Select all

 while [ "$1" ] ; do
  case "$1" in
  -n|--norefresh) FIXMNS="no";;
  -u|--un*) ACTION="unload";;
  -c|--cli) GUI="";;
  -q|--quiet) QUIET="y";;
  -f|--force) FORCE="y";;
  -y|--yes) FIRSTQUERY="y";;
  -d|--debug) DEBUGFLAG="y";;
  -h|--help) usage; exit;;
  *=*) [ "$DEBUGFLAG" ] && eval $1 || break;;
  *) break;;
  esac
  shift
 done
around line 1440.

Inserting this:

Code: Select all

  -n|--norefresh) FIXMNS="no";;
and putting this:

Code: Select all

FIXMNS="yes"
in the very beginning of the script gives option to use the --norefresh command.

Now, this script

Code: Select all

		sfs_load --unload --norefresh "$SFSOFFICE"
		#echo 'fixmns="yes"' > /tmp/sfs_fix_menu
		sfs_load --unload "$SFSVIDEOEDIT"
		else
		sfs_load --cli --norefresh "$SFSOFFICE"
		#echo 'fixmns="yes"' > /tmp/sfs_fix_menu
		sfs_load --cli "$SFSVIDEOEDIT"
works as well. :D

What do you think about that? Would it be worth to realize? Or shall i modify it in my LazY Puppy that way - only?

Code: Select all

    # modified by RSH
    if [ "$fixmns" = "yes" ]; then
      if [ "$HAS_DESKTOPS" ]; then
        waitsplash $(gettext "Updating menu...")
		fixmenus
        [ "$DISPLAY" ] && pidof jwm &>/dev/null && jwm -restart
        waitsplash --stop
	  fi
    fi
should this one more wide - including the

Code: Select all

  if [ "$HAS_PINS" ] && which restartjwm &>/dev/null; then
    [ "$DISPLAY" ] && restartjwm
section?
[b][url=http://lazy-puppy.weebly.com]LazY Puppy[/url][/b]
[b][url=http://rshs-dna.weebly.com]RSH's DNA[/url][/b]
[url=http://murga-linux.com/puppy/viewtopic.php?t=91422][b]SARA B.[/b][/url]

User avatar
shinobar
Posts: 2672
Joined: Thu 28 May 2009, 09:26
Location: Japan
Contact:

fixmenus

#185 Post by shinobar »

As for the commandline, Type 'sfs_load --help' from the terminal to get the usage.
RSH wrote:If i want to use this in a loop or script using a list of sfs files the menu will be fixed (fixmenus) after every sfs has been loaded. My suggestion would be to give a parameter to sfs_load-on-the-fly to skip the fixmenus command and let only fixmenus run after the last sfs is loaded.
Nice idea. I will implement your idea in a future release.
The usage will be something like this:

Code: Select all

for F in $SFSLIST; do
  sfs_load --no-afterwork $F
done
sfs_load --do-afterwork
I do not have any quick hack at this point of time, but would like to do in near future.
RSH wrote:does the --cli command mean, a not existing pup_ro directory will be created automatically in background (without any warning)?
Maybe. :roll: I am usually loading more than 6.

As for the HAS_PINS, you are right, it will be fixed in the next version.
EDIT: i need to review the code. The restartjwm is a script i made which includes restarting the jwm.
Last edited by shinobar on Fri 23 Mar 2012, 14:17, edited 2 times in total.
Downloads for Puppy Linux [url]http://shino.pos.to/linux/downloads.html[/url]

der-schutzhund
Posts: 1045
Joined: Mon 26 Nov 2007, 22:07
Location: Blomberg / Germany

#186 Post by der-schutzhund »

First of all thank you for your great Propgram that puppy an interesting feature allows! Super work!

I am also very much interested in the additional functions that appeals to RSH in his contribution. That would further enhance your program!
This puppy would be more flexible than it is now!

Many greetings

Wolfgang

expert-system
Posts: 3
Joined: Wed 14 Mar 2012, 19:01

#187 Post by expert-system »

Question (hopefully not silly):
Why does the 'cleanwhite()' function need to save the session in PUPMODE=13 ?
I love the load/unload-on-the-fly functionality, but it kind of "bothers" me to have to wait for the session to be saved each time I want to unload an SFS (since I load and unload SFSs fairly frequently).
I know it skips this step if you turn off periodically saving from the Puppy Event Manager, but I don't want to do it either.
The question that actually matters is:
What would be the implications of my altering the script so as not to save the session before unloading ?

User avatar
shinobar
Posts: 2672
Joined: Thu 28 May 2009, 09:26
Location: Japan
Contact:

Cleaning up whiteouts

#188 Post by shinobar »

expert-system wrote:it kind of "bothers" me to have to wait for the session to be saved each time I want to unload an SFS
I understand it is bothers. I guess i need a bit deep consideration.
Tnanks.
Downloads for Puppy Linux [url]http://shino.pos.to/linux/downloads.html[/url]

User avatar
RSH
Posts: 2397
Joined: Mon 05 Sep 2011, 14:21
Location: Germany

#189 Post by RSH »

Hello, Shinobar.

I am just trying to continue this:
http://murga-linux.com/puppy/viewtopic. ... 138#614138

Currently i am working on a special sfs feature that is based on a idea/suggestion by der-schutzhund. He wants to run programs from sfs - even if the sfs is not loaded. So he suggested to create a script, that would run the program, if the prgram is not available then loads the sfs and if the sfs does need another sfs, also load this sfs file. If all files are available, then running the program. Therefor the sfs's does need to know it's dependencies.

So, i did a lot of work and i am now able to do the whole thing, suggested by der-schutzhund. All i have to do is to make a rightclick on a not mounted sfs and then choosing inside a gui, of which program it shall create the -run-script/s (can also be done for all available programs).

After clicking Ok it creates automatically run-scripts of the wanted applications - like this one:

Code: Select all

#!/bin/bash
#------------------------------------------------------------------------------
# SFS-AutoScript creates automatically run-scripts for programs in sfs files
# 2012-04-05 by Rainer Steffen Hain (RSH @ puppy-linux.org (murga forum))
#------------------------------------------------------------------------------
# this script is automatically created through SFS-AutoScript by RSH
# created as: LP2_Wine-b.sfs.foobar2000.run.sh, on: 2012-04-06
#------------------------------------------------------------------------------
DISPLAYEXE="foobar2000"
. /etc/rc.d/BOOTCONFIG
echo "$EXTRASFSLIST" > /tmp/xsfslist_tmp
sfslistfile=/tmp/xsfslist_tmp
if [ "$(which foobar2000)" ]; then
	foobar2000 &
	else
	sfs_load --cli "LP2_Wine-b.sfs"
	if [ -f /LP2_Wine-b.sfs.dependents ]; then
		for ideps in `cat /LP2_Wine-b.sfs.dependents`;
		do
			if [ "$ideps" != "" ]; then
				sfsisload="false"
				for i in `cat $sfslistfile`;
				do
					sfsresult=`echo $i | grep $ideps`
					if [ "$sfsresult" != "" ]; then
						sfsisload="true"
					fi
				done
				if [ "$sfsisload" = "false" ]; then
					sfs_load --cli "$ideps"
				fi
			fi
		done
	fi
	foobar2000 &
fi
rm /tmp/xsfslist_tmp
exit 0
#------------------------------------------------------------------------------
# End of LP2_Wine-b.sfs.foobar2000.run.sh Script
#------------------------------------------------------------------------------
# Date: 2012-04-06 
If i do use such script on my LazY Puppy Lazarus sfs, it will load automatically the devx and then starting lazarus.

The only problem is the fact, sfs_load on the fly does run fixmenus after every sfs loaded.

Therefor i did made modifications in the LazY Puppy sfs_load (1.3.9).

I did insert this

Code: Select all

DOFIXMENUS="yes" # RSH 2012-04-06
in the very beginning of the sfs_load script (/usr/sbin)

I did insert this

Code: Select all

  -n|--no-afterwork) DOFIXMENUS="no";; # RSH 2012-04-06
at (around) line 1440.

And i did modify this

Code: Select all

    # modified by RSH 2012-04-06
    if [ "$DOFIXMENUS" = "yes" ]; then
      if [ "$HAS_DESKTOPS" ]; then
        waitsplash $(gettext "Updating menu...")
        fixmenus
        [ "$DISPLAY" ] && pidof jwm &>/dev/null && jwm -restart
        waitsplash --stop
      fi
    fi
at (around) line 330.

Related to the run-script above i do now insert --no-afterwork into the code sfs_load --cli "$ideps", so it looks like sfs_load --cli --no-afterwork "$ideps" and then every sfs is loaded without having the fixmenus running after every sfs loaded. At the end of my run-script i do insert fixmenus and it will be done while the user is already working with the programm. He will not notice the fixmenus if he is sunken in his work.

If the normal user runs sfs_load he will not notice anything of that simple modification.

The only real problem is: all this will be gone, if any user does install a new version of your sfs_load. I do not want to "hijack" your sfs_load, but i do need the whole thing running and working at least on 12.04.2012.

So what to do?

Is there any chance to implement my simple (and not really touching the your original sfs_load) modifications in exactly that way?

Or did you already made some work on this feature and can send me some code, so i can made the necessary changes?

I will be also willing to send you the code of my applications to make the sfs's know their dependencies.
[b][url=http://lazy-puppy.weebly.com]LazY Puppy[/url][/b]
[b][url=http://rshs-dna.weebly.com]RSH's DNA[/url][/b]
[url=http://murga-linux.com/puppy/viewtopic.php?t=91422][b]SARA B.[/b][/url]

User avatar
shinobar
Posts: 2672
Joined: Thu 28 May 2009, 09:26
Location: Japan
Contact:

Next version of the sfs_load

#190 Post by shinobar »

RSH wrote:The only real problem is: all this will be gone, if any user does install a new version of your sfs_load. I do not want to "hijack" your sfs_load, but i do need the whole thing running and working at least on 12.04.2012.

Is there any chance to implement my simple (and not really touching the your original sfs_load) modifications in exactly that way?
Maybe not exact. I am planning to implement the '--no-afterwork' to skip all the afterwork, that is fixmenus and running the scripts in /etc/init.d and /root/Startup.
My plan:

Code: Select all

# sfs_load --help
SFS-Load on-the-fly v.1.9
Load or unload extra sfs files on-the-fly.
usage: sfs_load [OPTION] [OPTION2 ...] [+|-][FILE_NAME] [+|-][FILE_NAME2] ...
      +FILE_NAME: load, same as FILE_NAME without '+'.
      -FILE_NAME: unload, same as --unload FILE_NAME.
  Options(short, or long):
    -u, --unload: unload the extra sfs files.
    -c, --cli: commandline interface, without dialog.
    -q, --quiet: skip the 1st confirmation dialog.
    -d, --debug: verbose output for debugging information.
    -l, --list=FILE_LIST : read file names from the list file FILE_LIST.
    - (without file name): read file names from standard input. Imply '--cli'.
  Examples:
        ls -1 DIR_NAME | sfs_load -
        sfs_load - < FILE_LIST
        sfs_load --list=FILE_LIST
      Note that FILE_LIST contains each filename per a line.
  Other options(sfs_load internal use):
    -n, --no-afterwork: suspend fixmenu and etc. after (un)loading.
    -a, --afterwork (without file name): only do suspended afterwork.
    start: auto load at boot (called from /etc/initd.d/sfs_load)
    stop: clean up at shutodpwn (called from /etc/initd.d/sfs_load)
You will be able to load multiple sfs files at one call of the sfs_load.

Code: Select all

sfs_load file1.sfs file2.sfs
Also you can make a file list to be read by the sfs_load, or pipe via the standard output/input.
Or, should i also introduce '--skip-fixmenus' option?
EDIT: sfs_load-1.9 released implements this.
Last edited by shinobar on Sat 07 Apr 2012, 00:08, edited 4 times in total.
Downloads for Puppy Linux [url]http://shino.pos.to/linux/downloads.html[/url]

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

#191 Post by seaside »

I find that most sfs files need tweaking and adjusting to be useful. Further, each sfs file may need special treatment. For instance adding a library or a file, or overwriting a conflicting sfs layered file, or adding a special configuration and even loading additional sfs files, etc. is frequently required.

So, for that reason an additional script that's tailored to that sfs and automatically runs when that particular sfs file is mounted is very useful.

When I load "myfile.sfs", the loader has code to look for "myfile.sfsSETUP" which is in the same directory and runs right after "myfile.sfs" is loaded. If "myfile.sfs" requires the Java run time environment, then "myfile.sfsSETUP" will contain a command to load JRE.sfs. and perhaps copy over a config file as well.

This flexibility allows running or not running "fixmenus" and almost anything else, strictly depending on which sfs file is being loaded.

Regards,
s

User avatar
RSH
Posts: 2397
Joined: Mon 05 Sep 2011, 14:21
Location: Germany

#192 Post by RSH »

shinobar wrote:Or, should i also introduce '--skip-fixmenus' option?
Yes, this would be nice! This way i can change my "no-afterwork" inside my script to "skip-fixmenus" and everything wil still work without any further changes to make. Also it will not touch anything else (if user or not) and will give the programmer control of using sfs_load and of running fixmenus at different stages. 8)

Please, do so. :D
[b][url=http://lazy-puppy.weebly.com]LazY Puppy[/url][/b]
[b][url=http://rshs-dna.weebly.com]RSH's DNA[/url][/b]
[url=http://murga-linux.com/puppy/viewtopic.php?t=91422][b]SARA B.[/b][/url]

User avatar
shinobar
Posts: 2672
Joined: Thu 28 May 2009, 09:26
Location: Japan
Contact:

sfs_load-1.9

#193 Post by shinobar »

Test release: sfs_load-1.9.pet (2012-04-07)
# 7 Apr 2012 v1.9: clean up whiteout, BOOTCONFIG.save for remastered puppy, accept multiple files, read from standard input, permission check
Type 'sfs_load --help' on a virtual terminal to see the detail.
Downloads for Puppy Linux [url]http://shino.pos.to/linux/downloads.html[/url]

User avatar
shinobar
Posts: 2672
Joined: Thu 28 May 2009, 09:26
Location: Japan
Contact:

Reading file list

#194 Post by shinobar »

@RSH
By using the sfs_load-1.9, you can just do:

Code: Select all

sls_load --cli --list=/LP2_Wine-b.sfs.dependents
The sfs_load-1.9 just skips the files already loaded.
But be caution. It takes time for the file search if the sfs file to be loaded does not exist at the normal place , that is /mnt/home or the sub directory.
Downloads for Puppy Linux [url]http://shino.pos.to/linux/downloads.html[/url]

User avatar
RSH
Posts: 2397
Joined: Mon 05 Sep 2011, 14:21
Location: Germany

Re: Reading file list

#195 Post by RSH »

shinobar wrote:@RSH
By using the sfs_load-1.9, you can just do:

Code: Select all

sls_load --cli --list=/LP2_Wine-b.sfs.dependents
The sfs_load-1.9 just skips the files already loaded.
Wow, you are really fast!

Thank you very much for this, i think it will be alright, if i do say thank you very much also in the name of Wolfgang (der-schutzhund). I have already downloaded and tested using --skip-fixmenus.

Works fantastic that way. :D

The --list command seems to be very useful as well. If i got time i will play with it.

Or maybe...

Right now i do see its potential. The automatically generated run-scripts could get smaller that way. We'll see...
[b][url=http://lazy-puppy.weebly.com]LazY Puppy[/url][/b]
[b][url=http://rshs-dna.weebly.com]RSH's DNA[/url][/b]
[url=http://murga-linux.com/puppy/viewtopic.php?t=91422][b]SARA B.[/b][/url]

User avatar
shinobar
Posts: 2672
Joined: Thu 28 May 2009, 09:26
Location: Japan
Contact:

after load/unload script

#196 Post by shinobar »

@seaside
Yes, we need more discussion on the script like pinstall.sh and puninstall.sh of the pet.
At this point of time, we can put a script at /etc/init.d or at /root/Startup, those will be called at load. The script at /etc/init.d is called with parameter 'start' after load, and with 'stop' BEFORE unload. But we also need to consider the compatibility with normal shutdown and reboot...
Downloads for Puppy Linux [url]http://shino.pos.to/linux/downloads.html[/url]

User avatar
RSH
Posts: 2397
Joined: Mon 05 Sep 2011, 14:21
Location: Germany

#197 Post by RSH »

Tested the --list command. Works great. But i can not use --skip-fixmenus and --list together.

Is this the way it has to be or could this be changed?.

If i could use these two commands together, it would made me able to load the needed sfs's and while working with the wanted program (called by the run-script) all the dependencies of the dependent loaded sfs's would be loaded in background.

Then just calling one time fixmenus at the end of my run-script and everything would be fine. I think... :lol:

This would be user and programmer friendliness :D
[b][url=http://lazy-puppy.weebly.com]LazY Puppy[/url][/b]
[b][url=http://rshs-dna.weebly.com]RSH's DNA[/url][/b]
[url=http://murga-linux.com/puppy/viewtopic.php?t=91422][b]SARA B.[/b][/url]

User avatar
darkcity
Posts: 2534
Joined: Sun 23 May 2010, 19:16
Location: near here
Contact:

#198 Post by darkcity »

----
hi, this is off topic but I am trying to help kocg with localisation but I don't know what I'm talking about.

I know people here have experience with localisation, the problem is here-
http://www.murga-linux.com/puppy/viewtopic.php?t=77253

any help appreciated ! ; -)
---

User avatar
mikeslr
Posts: 3890
Joined: Mon 16 Jun 2008, 21:20
Location: 500 seconds from Sol

1.4 & 1.9 problems in Saluki

#199 Post by mikeslr »

Hi shinobar,

The problems with sfs-load-on-the-fly 1.3, 'built-in' to Saluki 17 and 18, are described by gcmartin and myself, starting here:
http://www.murga-linux.com/puppy/viewto ... 856#617856.
jemimah requested that we test your 1.4 and 1.9. I decided to test 1.9 first, with the following results:
No menu entry> Solved edit categories argument in .desktop to System
Using sfs-load 1.9, loaded google-chrome-stable_12.0.742.112-r90304_i386.sfs. Attempted to run same: notified of possible permissions error. Attempted to unload: problem reported at above link reoccurred.
As the problem may have related only to the above google-chrome, used sfs-load 1.9 successfully to load and unload picasa3.sfs & blender-2.61, both from Saluki repository. While doing so, notice that that repository now contained google-chrome-stable_12.0.742.sfs.
Downloaded the same using via Saluki PPM's SFS Downloader which was able to load and run it. However, trying to unload it via sfs-load 1.9 generated the
above mentioned problem. After a hard-shut-down, the above google-chrome no longer appeared as loaded in sfs-load dialog.
Next loaded gimp-2.6.11 which was not created specifically for Saluki. It could be loaded, but not unloaded, generating the above described conditions. Actually, I think that sfs-load may, in fact, successfully unload a "problem" sfs, but "hangs" at updating its "loaded list." [Sorry, I don't have the technical expertise to better describe what appears to be happening]. I chose not to wait 10 or so minutes while Saluki shut down, so I just pulled the plug. On reboot, gimp was no longer in sfs-loaded "loaded list."
After the above reboot, I use sfs-load to load xnview, which also was not developed specifically for Saluki. Successfully loaded and unloaded.
I downloaded sfs-load 1.4, and used ppm to uninstall 1.9. Tried to install 1.4 and received a "failed to install" notice. Rebooted and was surprised
to find that Salulki's 'built-in' 1.3 was now active. Again attempted to install 1.4 and again received "failed to install" notice.

Edit: disregard discussion of 1.4. I just noticed that its download was "stopped" rather than "finished."

mikesLr
Last edited by mikeslr on Sun 08 Apr 2012, 00:31, edited 3 times in total.

User avatar
jemimah
Posts: 4307
Joined: Wed 26 Aug 2009, 19:56
Location: Tampa, FL
Contact:

#200 Post by jemimah »

I think I've located the problem.

With kernel 3.2 the command

Code: Select all

umount "$LOOPDEV"
is causing kernel panics and oopses sometimes.

I changed it to use busybox umount, and it seems to work better.

Also

Code: Select all

losetup -d "$LOOPDEV"
was crashing it sometimes. I just commented that out and it seems to work ok. What does that do? Is it important?

Post Reply