On Fri, Mar 23, 2018 at 7:53 PM, Ben Coman <b...@openinworld.com> wrote:

>
>
> On 23 March 2018 at 11:31, Ben Coman <b...@openinworld.com> wrote:
>
>>
>>
>> On 23 March 2018 at 05:14, Cédrick Béler <cdric...@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> I just saw students and they still have some problem on windows with the
>>> launcher.
>>>
>>> First, the launcher has to be run in admin mode.
>>>
>>> Then, the image download starts but there is an error when
>>> uncompressing. Here is the stack.
>>>
>>> Any idea on how to fix that ?
>>>
>>
>> Now I notice...
>> the Linux PharoLauncher download is a ZIP file
>> and the Mac PharoLauncher download is a ZIP file
>> so... can we make the Windows PharoLauncher download a ZIP file?
>>
>> Doing that, at least as an interim measure, would *immediately* make
>> PharoLauncher
>> usable to students on locked-down Windows machines in University student
>> labs.
>> I'd expect this will improve the success with this experiment
>> to use PharoLauncher as the main user entry point.
>>
>> The problem with using an "Installer" for the Windows PharoLauncher is
>> the large amount
>> of testing required to work *reliably* with *all* the "different ways
>> people work"
>> under several different versions of Windows introduced different layers
>> of user security intricacies.
>> Lets move forward in small steps.  A ZIP download/extract is simple, and
>> consistent with other platforms.
>>
>> In the meantime while waiting for that to happen, you can...
>>
>> 1. Download/extract  http://files.pharo.org/platform/Pharo6.1-win.zip
>>
>> 2. Rename  Pharo6.1    folder to  PharoLauncher
>>     Rename  Pharo6.1.*  files to    PharoLauncher1.1.*
>>
>> 3. Metacello new
>>        smalltalkhubUser: 'Pharo'
>>        project: 'PharoLauncher';
>>        configuration: 'PharoLauncher';
>>        load.
>>     PhLDeploymentScript doAll.
>>     PharoLauncher open.
>>     Smalltalk snapshot: true  andQuit: true.
>>
>
>> 4. Zip up the parent folder, test on another machine and provide a link
>> to your students.
>>
>> cheers -ben
>>
>>
>> P.S.  I was going to suggest also renaming  Pharo.exe  to
>> PharoLauncher.exe
>> but with an empty Documents\Pharo\vms
>> I get... "Error: Cannot detect Pharo executable in
>> C:\Temp\MyPharoLauncher\PharoLauncher"
>> in PhLVirtualMachine>>initializeOn: "File @
>> C:\Temp\MyPharoLauncher\PharoLauncher"
>> since "executables := aFolder allChildrenMatching: self class
>> executableName."
>> is empty since "self class executableName" ==> "Pharo.exe"
>>
>> It would be nice for that to not be hard coded.  I tried digging further
>> but ran out of time.
>> I am curious it mattered since using "Pharo.exe" the Launcher went on to
>> download a VM anyway.
>>
>>
>> P.S.2.
>> I believe the best path forward for system-wide PharoLauncher installed
>> under "C:\Program Files"
>> would be to install there only...
>> * the VM
>> * PharoLauncher.ZIP
>> * a tiny non-Pharo wrapper program as the shortcut linked from AllUsers >
>> Start Menu > PharoLauncher
>> that extracts PharoLauncher.ZIP to the user's data area and then starts
>> that user specific PharoLauncher.
>>
>> Then regardless whether:
>> * they individually download/extract  PharoLauncher.ZIP
>> * the system-wide-wrapper extracts  PharoLauncher.ZIP
>> its a similar experience for users which should aid reliability by
>> reducing the number of "different " use cases.
>>
>
> Coincidentally I have returned to Windows for a short while so thought I
> should
> put my money where my mouth is and have a stab at this.  After a few hours
> trying with NSIS,
> I went searching for an alternative and Advanced Installer looked like a
> good chance.
> https://www.advancedinstaller.com/feats-list.html
> The important part of  (free) Basic Features  is "Windows 10/8/7/Vista and
> UAC installs"
> Also further down are some CI options.
>
> After just the "Simple Installation" tutorial and experimenting a few
> hours I ironed out
> a potential solution uploaded for testing to
> http://www.mediafire.com/file/3g579bmzqspt8e1/BCPharoLauncher.msi
> with the full build tree at  http://www.mediafire.com/file/
> 5ijiww848lbkk7m/PharoLauncher%20Advanced%20Installer.zip
> Links should be live for 30 days.
> I've directly attached the much smaller installer-configuration file
> "PharoLauncher.aip".
>
>
> PharoLauncher was built with some minor changes from above...
> 1. Download/extracted  http://files.pharo.org/platform/Pharo6.1-win.zip
>
> 2. Renamed  Pharo6.1    folder to  BCPharoLauncher
>     Renamed  Pharo6.1.*  files to    PharoLauncher1.1.*
>
> 3. Metacello new
>        smalltalkhubUser: 'Pharo'
>        project: 'PharoLauncher';
>        configuration: 'PharoLauncher';
>         load.
>      PharoLauncher hardResetPersistanceState: true.
>      PhLDeploymentScript doAll.
>      PhLDeploymentScript  closeWindowsAndOpenLauncher.
>      Smalltalk snapshot: true  andQuit: true.
>
> 4. Moved the  image & changes  files into a subfolder "PerUserFiles"
>
> 5. Built  BCPharoLauncher.msi
>
> I prefixed my initials to distinguish it from the current official
> PharoLauncher installer.
> Hopefully this can be adopted as the official installer and they can be
> dropped off.
>
>
> Key features:
> a.  Provides a choice to install for "Everybody" (i.e. C:\Program Files
> (x86)\Pharo\BCPharoLauncher\)
>      or "Only for me" (i.e. C:\Users\Ben\AppData\Local\Programs\Pharo\
> BCPharoLauncher\)
>      per attached screen snapshot.
>
> b.  Start the install as a Standard User and it escalates only as needed.
>

WOW, YES. I want this, thanks Ben :)


>
> c.  The Desktop and Start Menu shortcuts run the following script...
>
>           // File: PharoLauncher.js
>           // Author: Ben Coman 2018.03.24
>           // Purpose: Facilitate each user to run a personal copy of
> PharoLauncher.image in their own data area.
>
>           // Locations
>           basename = "\\PharoLauncher1.1";
>           WshShell = WScript.CreateObject("WScript.Shell");
>           fso = WScript.CreateObject("Scripting.FileSystemObject");
>           systemFolder = fso.GetAbsolutePathName(".");
>           vmFilename = systemFolder + "\\Pharo.exe"
>           systemBasename = systemFolder + "\\PerUserFiles" + basename;
>           userFolder = WshShell.ExpandEnvironmentStrings("%
> LOCALAPPDATA%\\Pharo");
>           userFolder2 = userFolder + "\\PharoLauncher";
>           userBasename = userFolder2 + basename;
>
>           // Ensure user data folder exists for PharoLauncher
>           if( ! fso.FolderExists(userFolder))
>           { fso.CreateFolder(userFolder);
>           fso.CreateFolder(userFolder2)
>           }
>
>           // If either  image or changes  files missing from user folder,
> copy from system folder.
>           if( ! fso.FileExists(userBasename + ".image") || !
> fso.FileExists(userBasename + ".changes"))
>           {
>           //WScript.Echo("Setting up user environment");
>           fso.CopyFile(systemBasename + ".image",    userBasename +
> ".image", true);
>           fso.CopyFile(systemBasename + ".changes",  userBasename +
> ".changes", true);
>           }
>
>           // Start personal copy of PharoLauncher
>           WshShell.Exec(vmFilename + " " + userBasename + ".image")
>
>
> cheers -ben
>
>


-- 



Guille Polito

Research Engineer

Centre de Recherche en Informatique, Signal et Automatique de Lille

CRIStAL - UMR 9189

French National Center for Scientific Research - *http://www.cnrs.fr
<http://www.cnrs.fr>*


*Web:* *http://guillep.github.io* <http://guillep.github.io>

*Phone: *+33 06 52 70 66 13

Reply via email to