Hi, Phillip. Re: > There is a bug in Scratch version 12. The symbolic link of the Project > directory doesn't get created (Open Projects shows Scratch.activity > folder instead). I checked the scripts (scratch-activity and > scratch-wrapper) but couldn't find where the link should get created.
In Scratch 11, a symbolic link was included in the .xo and unzipping re-created that link. Someone else helped me create that mechanism (sorry I can't quite remember who). But you are right, it no longer works in v12, either because I changed something about my process for creating the .xo file or perhaps because of a change in the XO software (less likely). I will look into this. -- John > > > Regards, > Philipp > > Bert Freudenberg wrote: >> The script looks good, except for the name mangling magic (which is >> a bit hard to understand because of mis-indentations). This >> wouldn't even work with your XO's language set to non-English >> (which the majority of XOs use). >> I would simply name the file "$object_id.sb". >> - Bert - >> On 14.01.2009, at 07:04, Philipp Kocher wrote: >>> Hi John >>> >>> Yes, we need the mimetypes.xml file as well (thanks Tomeu I forgot >>> the USB flash drive use case). I have tested the attached >>> mimetypes.xml. It is working fine. Put it in the activity directory. >>> >>> Furthermore we have to change the scratch-activity script, so the >>> parameter with the scratch project object-id gets converted (copy- >>> from-journal) in a file and passed on to scratch. See the attached >>> scratch-activity script. I am not an expert with bash scripts, so >>> please give feedback. >>> >>> I would like to extend the script so project files in the journal >>> directory are copied back to the journal after exiting scratch, >>> but for opening project it should work fine. >>> >>> Best regards, >>> Philipp >>> >>> John Maloney wrote: >>>> Hi, Phillip. >>>> Thanks for all your hard work in tracking this down. I had looked >>>> at several other packages, including EToys, and couldn't figure >>>> out from them how to do this. >>>> I will make these changes to the next XO Scratch bundle. >>>> Is that all I need to do? What about the mime types XML file >>>> similar to the one added by Etoys? Does that turn out to be >>>> unnecessary? >>>> -- John >>>> On Jan 13, 2009, at 12:55 AM, Philipp Kocher wrote: >>>>> Tomeu Vizoso wrote: >>>>>> On Mon, Jan 12, 2009 at 18:50, Bert Freudenberg <b...@freudenbergs.de >>>>>> > wrote: >>>>>>> On 12.01.2009, at 18:11, Tomeu Vizoso wrote: >>>>>>>>> So what would the Scratch activity have to do so files put >>>>>>>>> into the >>>>>>>>> Journal >>>>>>>>> (maybe by downloading) are displayed using a Scratch icon >>>>>>>>> rather than the >>>>>>>>> generic document icon? >>>>>>>> Shipping a mimetypes.xml file inside the bundle as explained >>>>>>>> here: >>>>>>>> >>>>>>>> http://wiki.laptop.org/go/Activity_bundles#Bundle_Structure >>>>>>>> >>>>>>>> Sugar will call update-mime-database and will merge that file >>>>>>>> into the >>>>>>>> xdg mime database. >>>>>>>> >>>>>>>> I think that John is already trying this. >>>>>>> >>>>>>> Guess I'm confused then - I thought that's exactly what >>>>>>> Philipp had done. >>>>>> I think he just changed the mime_types field in the .info file. >>>>>>> And I just checked and it does work with Etoys projects. When >>>>>>> downloading >>>>>>> one it indeed gets an etoys icon (although at a smaller size - >>>>>>> why is that?) >>>>>> No idea, though I think that the mime database is updated in >>>>>> the etoys >>>>>> rpm and not in the bundle, am I right? >>>>>> Regards, >>>>>> Tomeu >>>>> >>>>> Thanks Tomeu to lead me to the /home/olpc/.local directory. >>>>> However, the >>>>> mimetypes.xml is not necessary to get the icon in the journal. I >>>>> just >>>>> had to copy the scratch icon file in the activity directory to >>>>> "application-x-scratch-project.svg" (also in the scratch activity >>>>> dirctory). The Memorize Activity is a good example for using >>>>> that feature. >>>>> Sugar has to be restarted after installing Scratch to show the >>>>> icon. >>>>> >>>>> John, could you please make the following changes in the next >>>>> Scratch >>>>> version: >>>>> - add the line "mime_types = application/x-scratch-project" to the >>>>> activity.info file >>>>> - copy the scratch icon to "application-x-scratch-project.svg" >>>>> in the >>>>> activity directory >>>>> >>>>> Etoys gets configured by different packages. e.g. the rpm >>>>> etoys-3.0.2153-1.noarch is adding the file >>>>> /usr/share/mime/packges/etoys.xml and the rpm sugar- >>>>> artwork-0.82.3-1.olpc3 is >>>>> adding the file >>>>> /usr/share/icons/sugar/scalable/mimetypes/application-x-squake- >>>>> project.svg. >>>>> >>>>> Regards, >>>>> Philipp >>>>> >>> <?xml version="1.0" encoding="UTF-8"?> >>> <mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info >>> "> >>> <mime-type type="application/x-scratch-project"> >>> <comment>Scratch Project</comment> >>> <glob pattern="*.sb"/> >>> </mime-type> >>> </mime-info> >>> #!/bin/sh >>> # Author: Bert Freudenberg >>> # Modified by: John Maloney >>> # Purpose: Run Scratch using the Squeak virtual machine >>> >>> echo "scratch-activity" >>> echo "$@" >>> >>> echo "$0" "$@" >>> echo >>> >>> # arguments are unordered, have to loop >>> args="" >>> while [ -n "$2" ] ; do >>> case "$1" in >>> -b | --bundle-id) bundle_id="$2" ; args="$args >>> BUNDLE_ID $2" ;; >>> -a | --activity-id) activity_id="$2" ; args="$args >>> ACTIVITY_ID $2";; >>> -o | --object-id) object_id="$2" ; args="$args >>> OBJECT_ID $2";; >>> -u | --uri) uri="$2" ; args="$args URI $2";; >>> *) echo unknown argument $1 $2 ;; >>> esac >>> shift;shift >>> done >>> >>> # really need bundle id and activity id >>> if [ -z "$bundle_id" -o -z "$activity_id" ] ; then >>> echo ERROR: bundle-id and activity-id arguments required >>> echo Aborting >>> exit 1 >>> fi >>> >>> # some debug output >>> echo launching $bundle_id instance $activity_id >>> [ -n "$object_id" ] && echo with journal obj $object_id >>> [ -n "$uri" ] && echo loading uri $uri >>> echo >>> >>> # do not crash on dbus errors >>> export DBUS_FATAL_WARNINGS=0 >>> >>> if [ -n "$object_id" ] ; then >>> JOURNAL_DIR="$SUGAR_ACTIVITY_ROOT/data/Journal" >>> mkdir -p "$JOURNAL_DIR" >>> temp_filename="$JOURNAL_DIR/temp.sb" >>> title=`copy-from-journal -o "$object_id" -m "$temp_filename" | >>> grep "title "` >>> # title is something like this for files downloaded from server: >>> # title -> File do_math_3.sb from >>> http://schoolserver/Scratch/do_math_3.sb >>> . >>> # or like this if copied from USB flash drive: >>> # title -> do_math_3 >>> title=${title#*"title -> "} #cut off description >>> echo "title: $title" >>> >>> # workaround for copy-from-journal bug (adds another dot before >>> fileextension) >>> if [ -f "$JOURNAL_DIR/temp..sb" ] ; then >>> mv "$JOURNAL_DIR/temp..sb" "$temp_filename" >>> fi >>> >>> if [[ "$title" == File*from* ]] ; then # for files downloaded >>> from server >>> filename=${title#*"File "} #cut off head until "File " >>> filename=${filename%" from"*} #cut off tail from " from" >>> echo "filename: $filename" >>> full_filename="$JOURNAL_DIR/$filename" >>> echo "full_filename: $full_filename" >>> mv "$temp_filename" "$full_filename" >>> else # for files from USB flash drive >>> full_filename="$JOURNAL_DIR/$title.sb" >>> echo "full_filename: $full_filename" >>> mv "$temp_filename" "$full_filename" >>> fi >>> else >>> full_filename="" >>> fi >>> # run Squeak VM with Scratch image >>> exec /usr/bin/squeak \ >>> -vm-display-X11 \ >>> -swapbtn \ >>> -sugarBundleId $bundle_id \ >>> -sugarActivityId $activity_id \ >>> ScratchXO.image \ >>> "$full_filename" > _______________________________________________ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel