Pharo6 bootstrap how to

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
34 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Pharo6 bootstrap how to

HilaireFernandes
Hi,

I want to build a Pharo6 image from scratch for Dr. Geo. How to do it?

Thanks

Hilaire
--
Dr. Geo
http://drgeo.eu


Reply | Threaded
Open this post in threaded view
|

Re: Pharo6 bootstrap how to

Pavel Krivanek-3
clone the master branch of [hidden email]:pharo-project/pharo.git and inside this clone do:

export PHARO_VERSION=60
export BOOTSTRAP_ARCH=32 

wget -O - <a href="http://get.pharo.org/${PHARO_VERSION}+vm">get.pharo.org/${PHARO_VERSION}+vm | bash

./pharo Pharo.image --no-default-preferences ./bootstrap/scripts/prepare_image.st --save --quit
./pharo Pharo.image --no-default-preferences ./bootstrap/scripts/bootstrap.st --ARCH=${BOOTSTRAP_ARCH} --quit
bash ./bootstrap/scripts/build.sh


2017-06-23 21:12 GMT+02:00 Hilaire <[hidden email]>:
Hi,

I want to build a Pharo6 image from scratch for Dr. Geo. How to do it?

Thanks

Hilaire
--
Dr. Geo
http://drgeo.eu



Reply | Threaded
Open this post in threaded view
|

Re: Pharo6 bootstrap how to

HilaireFernandes
Thanks,

Can you key in the exact sequence to clone the git repo, I am not used
to GIT yet.

Hilaire

Le 23/06/2017 à 22:08, Pavel Krivanek a écrit :
> clone the master branch of
> [hidden email]:pharo-project/pharo.git and
> inside this clone do:
>

--
Dr. Geo
http://drgeo.eu


Reply | Threaded
Open this post in threaded view
|

Re: Pharo6 bootstrap how to

HilaireFernandes
Just to be sure, it is to build an image from a mini-image,  right? So
to get a fairly small Dr. Geo image.

Le 24/06/2017 à 09:00, Hilaire a écrit :
> Thanks,
>
> Can you key in the exact sequence to clone the git repo, I am not used
> to GIT yet.
>
> Hilaire

--
Dr. Geo
http://drgeo.eu


Reply | Threaded
Open this post in threaded view
|

Re: Pharo6 bootstrap how to

Pavel Krivanek-3
In reply to this post by HilaireFernandes
git clone [hidden email]:pharo-project/pharo.git

2017-06-24 9:00 GMT+02:00 Hilaire <[hidden email]>:
Thanks,

Can you key in the exact sequence to clone the git repo, I am not used
to GIT yet.

Hilaire

Le 23/06/2017 à 22:08, Pavel Krivanek a écrit :
> clone the master branch of
> [hidden email]:pharo-project/pharo.git and
> inside this clone do:
>

--
Dr. Geo
http://drgeo.eu



Reply | Threaded
Open this post in threaded view
|

Re: Pharo6 bootstrap how to

Pavel Krivanek-3
In reply to this post by HilaireFernandes
The question is what is your goal because the bootstrapped image will have in the end (almost) the same content as the default non-bootstrapped image. 
You probably want to change the content of the produced image wich requires to modify the related baselines and do not load them all. For Dr Geo you will probably want to start with the BaselineOfMorphic however you will probably need a lot of custom modifications.

-- Pavel

2017-06-24 9:07 GMT+02:00 Hilaire <[hidden email]>:
Just to be sure, it is to build an image from a mini-image,  right? So
to get a fairly small Dr. Geo image.

Le 24/06/2017 à 09:00, Hilaire a écrit :
> Thanks,
>
> Can you key in the exact sequence to clone the git repo, I am not used
> to GIT yet.
>
> Hilaire

--
Dr. Geo
http://drgeo.eu



Reply | Threaded
Open this post in threaded view
|

Re: Pharo6 bootstrap how to

HilaireFernandes
Hi Pavel,

Le 24/06/2017 à 09:35, Pavel Krivanek a écrit :
> The question is what is your goal because the bootstrapped image will

I want to build an image for DrGeo which is not 60MB. (the size I have
now on my P6 dev image for Dr. Geo)

Until now, DrGeo was installed then unecessary packages removed. With
the first Pharo release, DrGeo image was around 10MB, in the latest
DrGeo release (based on P3), its image is more than 20MB.

For P6, if possible, I would like to use the bootstrap process

> have in the end (almost) the same content as the default
> non-bootstrapped image.
> You probably want to change the content of the produced image wich
> requires to modify the related baselines and do not load them all. For
> Dr Geo you will probably want to start with the BaselineOfMorphic
> however you will probably need a lot of custom modifications.


I don't know... May be we can take Dr. Geo as an excuse to see step by
step how to do it. If we succeed I could document it so it may be useful
to other.


--
Dr. Geo
http://drgeo.eu


Reply | Threaded
Open this post in threaded view
|

Re: Pharo6 bootstrap how to

HilaireFernandes
In reply to this post by Pavel Krivanek-3
Looks like one should use the bellow command for anonymous clone:

git clone https://github.com/pharo-project/pharo.git

The command you provided required uploading public rsa key


Le 24/06/2017 à 09:29, Pavel Krivanek a écrit :
> git
> clone [hidden email]:pharo-project/pharo.git
>

--
Dr. Geo
http://drgeo.eu


Reply | Threaded
Open this post in threaded view
|

Re: Pharo6 bootstrap how to

HilaireFernandes
In reply to this post by Pavel Krivanek-3
Ok, I executed these statements. It seems to do its jobs just fine, I
request for a 64bits architecture.

What's next?

Thanks

Hilaire

Le 23/06/2017 à 22:08, Pavel Krivanek a écrit :
> ./pharo Pharo.image --no-default-preferences
> ./bootstrap/scripts/prepare_image.st <http://prepare_image.st> --save --quit
> ./pharo Pharo.image --no-default-preferences
> ./bootstrap/scripts/bootstrap.st <http://bootstrap.st>
> --ARCH=${BOOTSTRAP_ARCH} --quit
> bash ./bootstrap/scripts/build.sh
>

--
Dr. Geo
http://drgeo.eu


Reply | Threaded
Open this post in threaded view
|

Re: Pharo6 bootstrap how to

alistairgrant
In reply to this post by Pavel Krivanek-3
Hi Pavel,

On Fri, Jun 23, 2017 at 10:08:29PM +0200, Pavel Krivanek wrote:

> clone the master branch of [hidden email]:pharo-project/pharo.git and inside
> this clone do:
>
> export PHARO_VERSION=60
> export BOOTSTRAP_ARCH=32
>
> wget -O - get.pharo.org/${PHARO_VERSION}+vm | bash
>
> ./pharo Pharo.image --no-default-preferences ./bootstrap/scripts/
> prepare_image.st --save --quit
> ./pharo Pharo.image --no-default-preferences ./bootstrap/scripts/bootstrap.st
> --ARCH=${BOOTSTRAP_ARCH} --quit
> bash ./bootstrap/scripts/build.sh


Thanks very much for providing these instructions.

It would be great to have a version of the script that used Iceberg to
load the code and kept the repository (pharo-project/pharo in the
example above, but normally this would be a fork of the repository).
This would greatly facilitate creating pull requests with bug fixes.

I'll try and figure out how to modify your script to do this, but if
you're able to provide a quick answer, or even a hint, it would be much
appreciated.

Also, the version information doesn't appear to be set here, i.e.:

$ pharo Pharo.image printVersion
[version] nil.nil #0

I'll try and figure this out, but if you know, what do I need to do to
get this set?

Thanks again,
Alistair

Reply | Threaded
Open this post in threaded view
|

Re: Pharo6 bootstrap how to

Pavel Krivanek-3
In reply to this post by HilaireFernandes
Hi Hilaire,

I tried to play a little bit with that. As the first step please check that Dr. Geo can be loaded properly into the standard Pharo 6 image with the package Deprecated60 unloaded. The Dr. Geo uses some deprecated calls and this package is not present in the smaller images.

Cheers,
-- Pavel

2017-06-24 10:29 GMT+02:00 Hilaire <[hidden email]>:
Hi Pavel,

Le 24/06/2017 à 09:35, Pavel Krivanek a écrit :
> The question is what is your goal because the bootstrapped image will

I want to build an image for DrGeo which is not 60MB. (the size I have
now on my P6 dev image for Dr. Geo)

Until now, DrGeo was installed then unecessary packages removed. With
the first Pharo release, DrGeo image was around 10MB, in the latest
DrGeo release (based on P3), its image is more than 20MB.

For P6, if possible, I would like to use the bootstrap process

> have in the end (almost) the same content as the default
> non-bootstrapped image.
> You probably want to change the content of the produced image wich
> requires to modify the related baselines and do not load them all. For
> Dr Geo you will probably want to start with the BaselineOfMorphic
> however you will probably need a lot of custom modifications.


I don't know... May be we can take Dr. Geo as an excuse to see step by
step how to do it. If we succeed I could document it so it may be useful
to other.


--
Dr. Geo
http://drgeo.eu



Reply | Threaded
Open this post in threaded view
|

Re: Pharo6 bootstrap how to

Pavel Krivanek-3
In reply to this post by alistairgrant
You can clone a repository with Iceberg with a script like this:

target := 'pharo-core' asFileReference ensureCreateDirectory.
repository := IceRepositoryCreator new 
remote: (IceRemote url: '[hidden email]:pharo-project/pharo.git');
location: target;
subdirectory:'src';
createRepository.
repository backend checkoutBranch: 'development'.
repository register.

Setting of the system version is already fixed in Pharo 7. For Pharo 6 you want to do something like this:

./pharo Pharo.image eval --save "| updateString | updateString := 'tag.txt' asFileReference readStream contents allButFirst. SystemVersion classPool at: #Current put: (SystemVersion new type: 'Pharo'; major: updateString first asString asInteger; minor: updateString second asString asInteger; highestUpdate: updateString asInteger; suffix: ''; yourself)"

Where tag.txt can by obtained from git by:
git describe --tags > tag.txt

Cheers,
-- Pavel




2017-06-24 22:06 GMT+02:00 Alistair Grant <[hidden email]>:
Hi Pavel,

On Fri, Jun 23, 2017 at 10:08:29PM +0200, Pavel Krivanek wrote:
> clone the master branch of [hidden email]:pharo-project/pharo.git and inside
> this clone do:
>
> export PHARO_VERSION=60
> export BOOTSTRAP_ARCH=32
>
> wget -O - <a href="http://get.pharo.org/${PHARO_VERSION}+vm" rel="noreferrer" target="_blank">get.pharo.org/${PHARO_VERSION}+vm | bash
>
> ./pharo Pharo.image --no-default-preferences ./bootstrap/scripts/
> prepare_image.st --save --quit
> ./pharo Pharo.image --no-default-preferences ./bootstrap/scripts/bootstrap.st
> --ARCH=${BOOTSTRAP_ARCH} --quit
> bash ./bootstrap/scripts/build.sh


Thanks very much for providing these instructions.

It would be great to have a version of the script that used Iceberg to
load the code and kept the repository (pharo-project/pharo in the
example above, but normally this would be a fork of the repository).
This would greatly facilitate creating pull requests with bug fixes.

I'll try and figure out how to modify your script to do this, but if
you're able to provide a quick answer, or even a hint, it would be much
appreciated.

Also, the version information doesn't appear to be set here, i.e.:

$ pharo Pharo.image printVersion
[version] nil.nil #0

I'll try and figure this out, but if you know, what do I need to do to
get this set?

Thanks again,
Alistair


Reply | Threaded
Open this post in threaded view
|

Re: Pharo6 bootstrap how to

EstebanLM
Hi!

On 25 Jun 2017, at 10:14, Pavel Krivanek <[hidden email]> wrote:

You can clone a repository with Iceberg with a script like this:

target := 'pharo-core' asFileReference ensureCreateDirectory.
repository := IceRepositoryCreator new 
remote: (IceRemote url: '[hidden email]:pharo-project/pharo.git');
location: target;
subdirectory:'src';
createRepository.
repository backend checkoutBranch: 'development'.
repository register.

this is a bit too verbose for my taste :)
you can do the same with this (which is more or less the same, btw… just more compact)

repository := IceRepositoryCreator new 
remote: (IceRemote url: '[hidden email]:pharo-project/pharo.git');
subdirectory:'src';
createRepository.
repository checkoutBranch: 'development'.
repository register.

- no need to violate demeters law by accessing directly to backend 
- no need to specify a target location because it will put it in default place. 

:)

Esteban


Setting of the system version is already fixed in Pharo 7. For Pharo 6 you want to do something like this:

./pharo Pharo.image eval --save "| updateString | updateString := 'tag.txt' asFileReference readStream contents allButFirst. SystemVersion classPool at: #Current put: (SystemVersion new type: 'Pharo'; major: updateString first asString asInteger; minor: updateString second asString asInteger; highestUpdate: updateString asInteger; suffix: ''; yourself)"

Where tag.txt can by obtained from git by:
git describe --tags > tag.txt

Cheers,
-- Pavel




2017-06-24 22:06 GMT+02:00 Alistair Grant <[hidden email]>:
Hi Pavel,

On Fri, Jun 23, 2017 at 10:08:29PM +0200, Pavel Krivanek wrote:
> clone the master branch of [hidden email]:pharo-project/pharo.git and inside
> this clone do:
>
> export PHARO_VERSION=60
> export BOOTSTRAP_ARCH=32
>
> wget -O - get.pharo.org/${PHARO_VERSION}+vm | bash
>
> ./pharo Pharo.image --no-default-preferences ./bootstrap/scripts/
> prepare_image.st --save --quit
> ./pharo Pharo.image --no-default-preferences ./bootstrap/scripts/bootstrap.st
> --ARCH=${BOOTSTRAP_ARCH} --quit
> bash ./bootstrap/scripts/build.sh


Thanks very much for providing these instructions.

It would be great to have a version of the script that used Iceberg to
load the code and kept the repository (pharo-project/pharo in the
example above, but normally this would be a fork of the repository).
This would greatly facilitate creating pull requests with bug fixes.

I'll try and figure out how to modify your script to do this, but if
you're able to provide a quick answer, or even a hint, it would be much
appreciated.

Also, the version information doesn't appear to be set here, i.e.:

$ pharo Pharo.image printVersion
[version] nil.nil #0

I'll try and figure this out, but if you know, what do I need to do to
get this set?

Thanks again,
Alistair



Reply | Threaded
Open this post in threaded view
|

Re: Pharo6 bootstrap how to

EstebanLM

On 25 Jun 2017, at 10:38, Esteban Lorenzano <[hidden email]> wrote:

Hi!

On 25 Jun 2017, at 10:14, Pavel Krivanek <[hidden email]> wrote:

You can clone a repository with Iceberg with a script like this:

target := 'pharo-core' asFileReference ensureCreateDirectory.
repository := IceRepositoryCreator new 
remote: (IceRemote url: '[hidden email]:pharo-project/pharo.git');
location: target;
subdirectory:'src';
createRepository.
repository backend checkoutBranch: 'development'.
repository register.

this is a bit too verbose for my taste :)
you can do the same with this (which is more or less the same, btw… just more compact)

repository := IceRepositoryCreator new 
remote: (IceRemote url: '[hidden email]:pharo-project/pharo.git');
subdirectory:'src';
createRepository.
repository checkoutBranch: 'development'.
repository register.

Ah, and not that I think, you can also doit like this: 

repository := IceRepositoryCreator new 
url: '[hidden email]:pharo-project/pharo.git';
subdirectory:'src';
createRepository.
repository checkoutBranch: 'development'.
repository register.

:)

- no need to violate demeters law by accessing directly to backend 
- no need to specify a target location because it will put it in default place. 

:)

Esteban


Setting of the system version is already fixed in Pharo 7. For Pharo 6 you want to do something like this:

./pharo Pharo.image eval --save "| updateString | updateString := 'tag.txt' asFileReference readStream contents allButFirst. SystemVersion classPool at: #Current put: (SystemVersion new type: 'Pharo'; major: updateString first asString asInteger; minor: updateString second asString asInteger; highestUpdate: updateString asInteger; suffix: ''; yourself)"

Where tag.txt can by obtained from git by:
git describe --tags > tag.txt

Cheers,
-- Pavel




2017-06-24 22:06 GMT+02:00 Alistair Grant <[hidden email]>:
Hi Pavel,

On Fri, Jun 23, 2017 at 10:08:29PM +0200, Pavel Krivanek wrote:
> clone the master branch of [hidden email]:pharo-project/pharo.git and inside
> this clone do:
>
> export PHARO_VERSION=60
> export BOOTSTRAP_ARCH=32
>
> wget -O - get.pharo.org/${PHARO_VERSION}+vm | bash
>
> ./pharo Pharo.image --no-default-preferences ./bootstrap/scripts/
> prepare_image.st --save --quit
> ./pharo Pharo.image --no-default-preferences ./bootstrap/scripts/bootstrap.st
> --ARCH=${BOOTSTRAP_ARCH} --quit
> bash ./bootstrap/scripts/build.sh


Thanks very much for providing these instructions.

It would be great to have a version of the script that used Iceberg to
load the code and kept the repository (pharo-project/pharo in the
example above, but normally this would be a fork of the repository).
This would greatly facilitate creating pull requests with bug fixes.

I'll try and figure out how to modify your script to do this, but if
you're able to provide a quick answer, or even a hint, it would be much
appreciated.

Also, the version information doesn't appear to be set here, i.e.:

$ pharo Pharo.image printVersion
[version] nil.nil #0

I'll try and figure this out, but if you know, what do I need to do to
get this set?

Thanks again,
Alistair




Reply | Threaded
Open this post in threaded view
|

Re: Pharo6 bootstrap how to

Pavel Krivanek-3
In reply to this post by EstebanLM
Thank you for the update, the original script was done for older Iceberg versions.

Cheers,
-- Pavel

2017-06-25 10:38 GMT+02:00 Esteban Lorenzano <[hidden email]>:
Hi!

On 25 Jun 2017, at 10:14, Pavel Krivanek <[hidden email]> wrote:

You can clone a repository with Iceberg with a script like this:

target := 'pharo-core' asFileReference ensureCreateDirectory.
repository := IceRepositoryCreator new 
remote: (IceRemote url: '[hidden email]:pharo-project/pharo.git');
location: target;
subdirectory:'src';
createRepository.
repository backend checkoutBranch: 'development'.
repository register.

this is a bit too verbose for my taste :)
you can do the same with this (which is more or less the same, btw… just more compact)

repository := IceRepositoryCreator new 
remote: (IceRemote url: '[hidden email]:pharo-project/pharo.git');
subdirectory:'src';
createRepository.
repository checkoutBranch: 'development'.
repository register.

- no need to violate demeters law by accessing directly to backend 
- no need to specify a target location because it will put it in default place. 

:)

Esteban


Setting of the system version is already fixed in Pharo 7. For Pharo 6 you want to do something like this:

./pharo Pharo.image eval --save "| updateString | updateString := 'tag.txt' asFileReference readStream contents allButFirst. SystemVersion classPool at: #Current put: (SystemVersion new type: 'Pharo'; major: updateString first asString asInteger; minor: updateString second asString asInteger; highestUpdate: updateString asInteger; suffix: ''; yourself)"

Where tag.txt can by obtained from git by:
git describe --tags > tag.txt

Cheers,
-- Pavel




2017-06-24 22:06 GMT+02:00 Alistair Grant <[hidden email]>:
Hi Pavel,

On Fri, Jun 23, 2017 at 10:08:29PM +0200, Pavel Krivanek wrote:
> clone the master branch of [hidden email]:pharo-project/pharo.git and inside
> this clone do:
>
> export PHARO_VERSION=60
> export BOOTSTRAP_ARCH=32
>
> wget -O - get.pharo.org/${PHARO_VERSION}+vm | bash
>
> ./pharo Pharo.image --no-default-preferences ./bootstrap/scripts/
> prepare_image.st --save --quit
> ./pharo Pharo.image --no-default-preferences ./bootstrap/scripts/bootstrap.st
> --ARCH=${BOOTSTRAP_ARCH} --quit
> bash ./bootstrap/scripts/build.sh


Thanks very much for providing these instructions.

It would be great to have a version of the script that used Iceberg to
load the code and kept the repository (pharo-project/pharo in the
example above, but normally this would be a fork of the repository).
This would greatly facilitate creating pull requests with bug fixes.

I'll try and figure out how to modify your script to do this, but if
you're able to provide a quick answer, or even a hint, it would be much
appreciated.

Also, the version information doesn't appear to be set here, i.e.:

$ pharo Pharo.image printVersion
[version] nil.nil #0

I'll try and figure this out, but if you know, what do I need to do to
get this set?

Thanks again,
Alistair




Reply | Threaded
Open this post in threaded view
|

Re: Pharo6 bootstrap how to

EstebanLM

On 25 Jun 2017, at 10:41, Pavel Krivanek <[hidden email]> wrote:

Thank you for the update, the original script was done for older Iceberg versions.

indeed :)

Esteban


Cheers,
-- Pavel

2017-06-25 10:38 GMT+02:00 Esteban Lorenzano <[hidden email]>:
Hi!

On 25 Jun 2017, at 10:14, Pavel Krivanek <[hidden email]> wrote:

You can clone a repository with Iceberg with a script like this:

target := 'pharo-core' asFileReference ensureCreateDirectory.
repository := IceRepositoryCreator new 
remote: (IceRemote url: '[hidden email]:pharo-project/pharo.git');
location: target;
subdirectory:'src';
createRepository.
repository backend checkoutBranch: 'development'.
repository register.

this is a bit too verbose for my taste :)
you can do the same with this (which is more or less the same, btw… just more compact)

repository := IceRepositoryCreator new 
remote: (IceRemote url: '[hidden email]:pharo-project/pharo.git');
subdirectory:'src';
createRepository.
repository checkoutBranch: 'development'.
repository register.

- no need to violate demeters law by accessing directly to backend 
- no need to specify a target location because it will put it in default place. 

:)

Esteban


Setting of the system version is already fixed in Pharo 7. For Pharo 6 you want to do something like this:

./pharo Pharo.image eval --save "| updateString | updateString := 'tag.txt' asFileReference readStream contents allButFirst. SystemVersion classPool at: #Current put: (SystemVersion new type: 'Pharo'; major: updateString first asString asInteger; minor: updateString second asString asInteger; highestUpdate: updateString asInteger; suffix: ''; yourself)"

Where tag.txt can by obtained from git by:
git describe --tags > tag.txt

Cheers,
-- Pavel




2017-06-24 22:06 GMT+02:00 Alistair Grant <[hidden email]>:
Hi Pavel,

On Fri, Jun 23, 2017 at 10:08:29PM +0200, Pavel Krivanek wrote:
> clone the master branch of [hidden email]:pharo-project/pharo.git and inside
> this clone do:
>
> export PHARO_VERSION=60
> export BOOTSTRAP_ARCH=32
>
> wget -O - get.pharo.org/${PHARO_VERSION}+vm | bash
>
> ./pharo Pharo.image --no-default-preferences ./bootstrap/scripts/
> prepare_image.st --save --quit
> ./pharo Pharo.image --no-default-preferences ./bootstrap/scripts/bootstrap.st
> --ARCH=${BOOTSTRAP_ARCH} --quit
> bash ./bootstrap/scripts/build.sh


Thanks very much for providing these instructions.

It would be great to have a version of the script that used Iceberg to
load the code and kept the repository (pharo-project/pharo in the
example above, but normally this would be a fork of the repository).
This would greatly facilitate creating pull requests with bug fixes.

I'll try and figure out how to modify your script to do this, but if
you're able to provide a quick answer, or even a hint, it would be much
appreciated.

Also, the version information doesn't appear to be set here, i.e.:

$ pharo Pharo.image printVersion
[version] nil.nil #0

I'll try and figure this out, but if you know, what do I need to do to
get this set?

Thanks again,
Alistair





Reply | Threaded
Open this post in threaded view
|

Re: Pharo6 bootstrap how to

HilaireFernandes
In reply to this post by Pavel Krivanek-3
Hi Pavel,

I removed deprecated method uses, then I updated accordingly the
'development' configuration of Dr. Geo. Hope it helps.

Thanks

Hilaire

Le 25/06/2017 à 10:03, Pavel Krivanek a écrit :
>
> I tried to play a little bit with that. As the first step please check
> that Dr. Geo can be loaded properly into the standard Pharo 6 image with
> the package Deprecated60 unloaded. The Dr. Geo uses some deprecated
> calls and this package is not present in the smaller images.
>

--
Dr. Geo
http://drgeo.eu


Reply | Threaded
Open this post in threaded view
|

Re: Pharo6 bootstrap how to

Pavel Krivanek-3
Hi,

if you will do own bootstrap, you can use BaselineOfUI instead of BaselineOfIDE. But you can use prebuilt image from here:


Into such image load Dr. Geo with the attached script:
./pharo-ui Pharo-6.0-ConfigurationOfUI.image --no-default-preferences st load.st --save --quit

and run it with:
./pharo-ui Pharo-6.0-ConfigurationOfUI.image --no-default-preferences 

This image hase some problems with settings processing so the --no-default-preferences is needed. We need to fix it.

The resultant image is under 18MB. Of course we can do better :-)

-- Pavel 


2017-06-25 17:16 GMT+02:00 Hilaire <[hidden email]>:
Hi Pavel,

I removed deprecated method uses, then I updated accordingly the
'development' configuration of Dr. Geo. Hope it helps.

Thanks

Hilaire

Le 25/06/2017 à 10:03, Pavel Krivanek a écrit :
>
> I tried to play a little bit with that. As the first step please check
> that Dr. Geo can be loaded properly into the standard Pharo 6 image with
> the package Deprecated60 unloaded. The Dr. Geo uses some deprecated
> calls and this package is not present in the smaller images.
>

--
Dr. Geo
http://drgeo.eu




load.st (1K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Pharo6 bootstrap how to

Stephane Ducasse-3
In reply to this post by HilaireFernandes
Hilaire,

Pay attention, we (pharo) bootstrap the minicore image based on git
You do not need to bootstrap pharo you can simply apply the
buildscript on the minicore image.
then we use a buildscript to load pharo packages.

In the future we expect that people will be able to
- take the miniimage and build with specific script (mainlu metacello
configuration) their own specialized image
I would focus on this part if I would be you.
Stef


On Fri, Jun 23, 2017 at 9:12 PM, Hilaire <[hidden email]> wrote:

> Hi,
>
> I want to build a Pharo6 image from scratch for Dr. Geo. How to do it?
>
> Thanks
>
> Hilaire
> --
> Dr. Geo
> http://drgeo.eu
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Pharo6 bootstrap how to

Stephane Ducasse-3
In reply to this post by HilaireFernandes
Hilaire

I like your goal because this is what we want to achieve.
what you should know is that the Pharo packages that we load to create Pharo
are not all modular because they were not. We started to get Pharo
modular and we will
continue.
On two fronts:
- getting the core smaller
- getting pharo more modular
So if you see
- packages where a dependency can be easily removed (for example by
producing two packages instead of one).
- packages that can just be loaded separately (we could just create a
new package out an larger one).
- packages that can just be thrown away.
let us know.

Stef


On Sat, Jun 24, 2017 at 10:29 AM, Hilaire <[hidden email]> wrote:

> Hi Pavel,
>
> Le 24/06/2017 à 09:35, Pavel Krivanek a écrit :
>> The question is what is your goal because the bootstrapped image will
>
> I want to build an image for DrGeo which is not 60MB. (the size I have
> now on my P6 dev image for Dr. Geo)
>
> Until now, DrGeo was installed then unecessary packages removed. With
> the first Pharo release, DrGeo image was around 10MB, in the latest
> DrGeo release (based on P3), its image is more than 20MB.
>
> For P6, if possible, I would like to use the bootstrap process
>
>> have in the end (almost) the same content as the default
>> non-bootstrapped image.
>> You probably want to change the content of the produced image wich
>> requires to modify the related baselines and do not load them all. For
>> Dr Geo you will probably want to start with the BaselineOfMorphic
>> however you will probably need a lot of custom modifications.
>
>
> I don't know... May be we can take Dr. Geo as an excuse to see step by
> step how to do it. If we succeed I could document it so it may be useful
> to other.
>
>
> --
> Dr. Geo
> http://drgeo.eu
>
>

12