Info required for bootstrapping pharo on GNU Guix

NG
Nicolas Graves
Tue, May 21, 2024 7:31 AM

Hi Pharo community,

I'm trying to package pharo in the GNU Guix linux distribution. Since
the distribution is focused on reproducibility and avoids using binary
code when possible, for that I need to reproduce the bootstrapping steps
that are embedded in Pharo. I understand from some developper online
comment that this is possible.

I've started to work on this and it seems feasible, at least I get the
dependency loop, what I've some difficulty is to get precisely when it's
possible to get started.

  -------------------
  |                 v

pharo VM            pharo
∧                |
-------------------

If I'm correct,

  • bootstrapping is very clear after version ~7.0.0, and with a proper
    build, just follow the distribution numbers in wget's with a cmake
    build-system.
  • for earlier versions, there's the repository
    https://github.com/pharo-project/PharoBootstrap
    that seems (git history) to be able to go back to Pharo 30.
  • I understand that at some point, Squeak and Pharo used to have the
    same VM. I have access to a squeak-vm 4.10.2.2614 in Guix, and I've seen
    this is in Pharo's ftp files, so I guess I can start there.

What I need:

  • Some indication about the first version of Pharo that I'm able to
    build purely from squeak-vm, and where to find its source code
    (git+version or commit if possible, I seem to only be able to find its
    binaries currently in phero's ftp files).
  • Any useful information for early bootstrap steps.

Some useful information on my side:

  • During the build process in Guix, we can't download data, so the
    entire bootstrap chain has to be explicited at once, hence the need to
    go back to the beginning in this case.

Thanks in advance!

--
Best regards,
Nicolas Graves

Hi Pharo community, I'm trying to package pharo in the GNU Guix linux distribution. Since the distribution is focused on reproducibility and avoids using binary code when possible, for that I need to reproduce the bootstrapping steps that are embedded in Pharo. I understand from some developper online comment that this is possible. I've started to work on this and it seems feasible, at least I get the dependency loop, what I've some difficulty is to get precisely when it's possible to get started. ------------------- | v pharo VM pharo ∧ | ------------------- If I'm correct, - bootstrapping is very clear after version ~7.0.0, and with a proper build, just follow the distribution numbers in wget's with a cmake build-system. - for earlier versions, there's the repository https://github.com/pharo-project/PharoBootstrap that seems (git history) to be able to go back to Pharo 30. - I understand that at some point, Squeak and Pharo used to have the same VM. I have access to a squeak-vm 4.10.2.2614 in Guix, and I've seen this is in Pharo's ftp files, so I guess I can start there. What I need: - Some indication about the first version of Pharo that I'm able to build purely from squeak-vm, and where to find its source code (git+version or commit if possible, I seem to only be able to find its binaries currently in phero's ftp files). - Any useful information for early bootstrap steps. Some useful information on my side: - During the build process in Guix, we can't download data, so the entire bootstrap chain has to be explicited at once, hence the need to go back to the beginning in this case. Thanks in advance! -- Best regards, Nicolas Graves
SD
stephane ducasse
Tue, May 21, 2024 7:34 AM

Hi

Why can’t you use the latest Pharo vm and Pharo12?
We worked like mad over the years to get a much better system.
Now why do you need to bootstrap Pharo because you can just use a bootstrapped image
and get pharo working and running?

S

On 21 May 2024, at 09:31, Nicolas Graves via Pharo-dev pharo-dev@lists.pharo.org wrote:

Hi Pharo community,

I'm trying to package pharo in the GNU Guix linux distribution. Since
the distribution is focused on reproducibility and avoids using binary
code when possible, for that I need to reproduce the bootstrapping steps
that are embedded in Pharo. I understand from some developper online
comment that this is possible.

I've started to work on this and it seems feasible, at least I get the
dependency loop, what I've some difficulty is to get precisely when it's
possible to get started.

  -------------------
  |                 v

pharo VM            pharo
∧                |
-------------------

If I'm correct,

  • bootstrapping is very clear after version ~7.0.0, and with a proper
    build, just follow the distribution numbers in wget's with a cmake
    build-system.
  • for earlier versions, there's the repository
    https://github.com/pharo-project/PharoBootstrap
    that seems (git history) to be able to go back to Pharo 30.
  • I understand that at some point, Squeak and Pharo used to have the
    same VM. I have access to a squeak-vm 4.10.2.2614 in Guix, and I've seen
    this is in Pharo's ftp files, so I guess I can start there.

What I need:

  • Some indication about the first version of Pharo that I'm able to
    build purely from squeak-vm, and where to find its source code
    (git+version or commit if possible, I seem to only be able to find its
    binaries currently in phero's ftp files).
  • Any useful information for early bootstrap steps.

Some useful information on my side:

  • During the build process in Guix, we can't download data, so the
    entire bootstrap chain has to be explicited at once, hence the need to
    go back to the beginning in this case.

Thanks in advance!

--
Best regards,
Nicolas Graves

Stéphane Ducasse
http://stephane.ducasse.free.fr
06 30 93 66 73

"If you knew today was your last day on earth, what would you do differently? ....ESPECIALLY if, by doing something different, today might not be your last day on earth.” Calvin & Hobbes

Hi Why can’t you use the latest Pharo vm and Pharo12? We worked like mad over the years to get a much better system. Now why do you need to bootstrap Pharo because you can just use a bootstrapped image and get pharo working and running? S > On 21 May 2024, at 09:31, Nicolas Graves via Pharo-dev <pharo-dev@lists.pharo.org> wrote: > > Hi Pharo community, > > I'm trying to package pharo in the GNU Guix linux distribution. Since > the distribution is focused on reproducibility and avoids using binary > code when possible, for that I need to reproduce the bootstrapping steps > that are embedded in Pharo. I understand from some developper online > comment that this is possible. > > I've started to work on this and it seems feasible, at least I get the > dependency loop, what I've some difficulty is to get precisely when it's > possible to get started. > > ------------------- > | v > pharo VM pharo > ∧ | > ------------------- > > If I'm correct, > - bootstrapping is very clear after version ~7.0.0, and with a proper > build, just follow the distribution numbers in wget's with a cmake > build-system. > - for earlier versions, there's the repository > https://github.com/pharo-project/PharoBootstrap > that seems (git history) to be able to go back to Pharo 30. > - I understand that at some point, Squeak and Pharo used to have the > same VM. I have access to a squeak-vm 4.10.2.2614 in Guix, and I've seen > this is in Pharo's ftp files, so I guess I can start there. > > What I need: > - Some indication about the first version of Pharo that I'm able to > build purely from squeak-vm, and where to find its source code > (git+version or commit if possible, I seem to only be able to find its > binaries currently in phero's ftp files). > - Any useful information for early bootstrap steps. > > Some useful information on my side: > - During the build process in Guix, we can't download data, so the > entire bootstrap chain has to be explicited at once, hence the need to > go back to the beginning in this case. > > Thanks in advance! > > -- > Best regards, > Nicolas Graves Stéphane Ducasse http://stephane.ducasse.free.fr 06 30 93 66 73 "If you knew today was your last day on earth, what would you do differently? ....ESPECIALLY if, by doing something different, today might not be your last day on earth.” Calvin & Hobbes
SD
stephane ducasse
Tue, May 21, 2024 7:38 AM

Hi

Why can’t you use the latest Pharo vm and Pharo12?
We worked like mad over the years to get a much better system.
Now why do you need to bootstrap Pharo because you can just use a bootstrapped image
and get pharo working and running?

S

On 21 May 2024, at 09:31, Nicolas Graves via Pharo-dev pharo-dev@lists.pharo.org wrote:

Hi Pharo community,

I'm trying to package pharo in the GNU Guix linux distribution. Since
the distribution is focused on reproducibility and avoids using binary
code when possible, for that I need to reproduce the bootstrapping steps
that are embedded in Pharo. I understand from some developper online
comment that this is possible.

I've started to work on this and it seems feasible, at least I get the
dependency loop, what I've some difficulty is to get precisely when it's
possible to get started.

  -------------------
  |                 v

pharo VM            pharo
∧                |
-------------------

If I'm correct,

  • bootstrapping is very clear after version ~7.0.0, and with a proper
    build, just follow the distribution numbers in wget's with a cmake
    build-system.
  • for earlier versions, there's the repository
    https://github.com/pharo-project/PharoBootstrap
    that seems (git history) to be able to go back to Pharo 30.
  • I understand that at some point, Squeak and Pharo used to have the
    same VM. I have access to a squeak-vm 4.10.2.2614 in Guix, and I've seen
    this is in Pharo's ftp files, so I guess I can start there.

What I need:

  • Some indication about the first version of Pharo that I'm able to
    build purely from squeak-vm, and where to find its source code
    (git+version or commit if possible, I seem to only be able to find its
    binaries currently in phero's ftp files).
  • Any useful information for early bootstrap steps.

Some useful information on my side:

  • During the build process in Guix, we can't download data, so the
    entire bootstrap chain has to be explicited at once, hence the need to
    go back to the beginning in this case.

Thanks in advance!

--
Best regards,
Nicolas Graves

Stéphane Ducasse
http://stephane.ducasse.free.fr
06 30 93 66 73

"If you knew today was your last day on earth, what would you do differently? ....ESPECIALLY if, by doing something different, today might not be your last day on earth.” Calvin & Hobbes

Hi Why can’t you use the latest Pharo vm and Pharo12? We worked like mad over the years to get a much better system. Now why do you need to bootstrap Pharo because you can just use a bootstrapped image and get pharo working and running? S > On 21 May 2024, at 09:31, Nicolas Graves via Pharo-dev <pharo-dev@lists.pharo.org> wrote: > > Hi Pharo community, > > I'm trying to package pharo in the GNU Guix linux distribution. Since > the distribution is focused on reproducibility and avoids using binary > code when possible, for that I need to reproduce the bootstrapping steps > that are embedded in Pharo. I understand from some developper online > comment that this is possible. > > I've started to work on this and it seems feasible, at least I get the > dependency loop, what I've some difficulty is to get precisely when it's > possible to get started. > > ------------------- > | v > pharo VM pharo > ∧ | > ------------------- > > If I'm correct, > - bootstrapping is very clear after version ~7.0.0, and with a proper > build, just follow the distribution numbers in wget's with a cmake > build-system. > - for earlier versions, there's the repository > https://github.com/pharo-project/PharoBootstrap > that seems (git history) to be able to go back to Pharo 30. > - I understand that at some point, Squeak and Pharo used to have the > same VM. I have access to a squeak-vm 4.10.2.2614 in Guix, and I've seen > this is in Pharo's ftp files, so I guess I can start there. > > What I need: > - Some indication about the first version of Pharo that I'm able to > build purely from squeak-vm, and where to find its source code > (git+version or commit if possible, I seem to only be able to find its > binaries currently in phero's ftp files). > - Any useful information for early bootstrap steps. > > Some useful information on my side: > - During the build process in Guix, we can't download data, so the > entire bootstrap chain has to be explicited at once, hence the need to > go back to the beginning in this case. > > Thanks in advance! > > -- > Best regards, > Nicolas Graves Stéphane Ducasse http://stephane.ducasse.free.fr 06 30 93 66 73 "If you knew today was your last day on earth, what would you do differently? ....ESPECIALLY if, by doing something different, today might not be your last day on earth.” Calvin & Hobbes
NG
Nicolas Graves
Tue, May 21, 2024 8:47 AM

On 2024-05-21 09:34, stephane ducasse wrote:

Hi

Why can’t you use the latest Pharo vm and Pharo12?
We worked like mad over the years to get a much better system.
Now why do you need to bootstrap Pharo because you can just use a bootstrapped image
and get pharo working and running?

Guix is not using the FHS filesystem so it would be a mess to try and
bootstrap from binaries. On top of that, they focus on
reproducibility. The standard on this end is to try and not use any
binary code if it's possible to build if from source, and yes, it
requires working like mad over the years. The website is currently down,
but there's an article about how they get all 30k packages from only a
single tiny binary file.

Some of the guys behind Guix are also involved in bootstrappable.org

I understand and share that the current system is much better, it's just
that to comply with their standard, that's what I have to do.

What I understand from there it that it's feasible:
https://x.com/estebanlm/status/1042719107307712514

I'll do the work if feasible, I just can't find the information where I
should start from, hence my email.

Best,
Nicolas

S

On 21 May 2024, at 09:31, Nicolas Graves via Pharo-dev pharo-dev@lists.pharo.org wrote:

Hi Pharo community,

I'm trying to package pharo in the GNU Guix linux distribution. Since
the distribution is focused on reproducibility and avoids using binary
code when possible, for that I need to reproduce the bootstrapping steps
that are embedded in Pharo. I understand from some developper online
comment that this is possible.

I've started to work on this and it seems feasible, at least I get the
dependency loop, what I've some difficulty is to get precisely when it's
possible to get started.

  -------------------
  |                 v

pharo VM            pharo
∧                |
-------------------

If I'm correct,

  • bootstrapping is very clear after version ~7.0.0, and with a proper
    build, just follow the distribution numbers in wget's with a cmake
    build-system.
  • for earlier versions, there's the repository
    https://github.com/pharo-project/PharoBootstrap
    that seems (git history) to be able to go back to Pharo 30.
  • I understand that at some point, Squeak and Pharo used to have the
    same VM. I have access to a squeak-vm 4.10.2.2614 in Guix, and I've seen
    this is in Pharo's ftp files, so I guess I can start there.

What I need:

  • Some indication about the first version of Pharo that I'm able to
    build purely from squeak-vm, and where to find its source code
    (git+version or commit if possible, I seem to only be able to find its
    binaries currently in phero's ftp files).
  • Any useful information for early bootstrap steps.

Some useful information on my side:

  • During the build process in Guix, we can't download data, so the
    entire bootstrap chain has to be explicited at once, hence the need to
    go back to the beginning in this case.

Thanks in advance!

--
Best regards,
Nicolas Graves

Stéphane Ducasse
http://stephane.ducasse.free.fr
06 30 93 66 73

"If you knew today was your last day on earth, what would you do differently? ....ESPECIALLY if, by doing something different, today might not be your last day on earth.” Calvin & Hobbes

--
Best regards,
Nicolas Graves

On 2024-05-21 09:34, stephane ducasse wrote: > Hi > > Why can’t you use the latest Pharo vm and Pharo12? > We worked like mad over the years to get a much better system. > Now why do you need to bootstrap Pharo because you can just use a bootstrapped image > and get pharo working and running? Guix is not using the FHS filesystem so it would be a mess to try and bootstrap from binaries. On top of that, they focus on reproducibility. The standard on this end is to try and not use any binary code if it's possible to build if from source, and yes, it requires working like mad over the years. The website is currently down, but there's an article about how they get all 30k packages from only a single tiny binary file. Some of the guys behind Guix are also involved in bootstrappable.org I understand and share that the current system is much better, it's just that to comply with their standard, that's what I have to do. What I understand from there it that it's feasible: https://x.com/estebanlm/status/1042719107307712514 I'll do the work if feasible, I just can't find the information where I should start from, hence my email. Best, Nicolas > > S > >> On 21 May 2024, at 09:31, Nicolas Graves via Pharo-dev <pharo-dev@lists.pharo.org> wrote: >> >> Hi Pharo community, >> >> I'm trying to package pharo in the GNU Guix linux distribution. Since >> the distribution is focused on reproducibility and avoids using binary >> code when possible, for that I need to reproduce the bootstrapping steps >> that are embedded in Pharo. I understand from some developper online >> comment that this is possible. >> >> I've started to work on this and it seems feasible, at least I get the >> dependency loop, what I've some difficulty is to get precisely when it's >> possible to get started. >> >> ------------------- >> | v >> pharo VM pharo >> ∧ | >> ------------------- >> >> If I'm correct, >> - bootstrapping is very clear after version ~7.0.0, and with a proper >> build, just follow the distribution numbers in wget's with a cmake >> build-system. >> - for earlier versions, there's the repository >> https://github.com/pharo-project/PharoBootstrap >> that seems (git history) to be able to go back to Pharo 30. >> - I understand that at some point, Squeak and Pharo used to have the >> same VM. I have access to a squeak-vm 4.10.2.2614 in Guix, and I've seen >> this is in Pharo's ftp files, so I guess I can start there. >> >> What I need: >> - Some indication about the first version of Pharo that I'm able to >> build purely from squeak-vm, and where to find its source code >> (git+version or commit if possible, I seem to only be able to find its >> binaries currently in phero's ftp files). >> - Any useful information for early bootstrap steps. >> >> Some useful information on my side: >> - During the build process in Guix, we can't download data, so the >> entire bootstrap chain has to be explicited at once, hence the need to >> go back to the beginning in this case. >> >> Thanks in advance! >> >> -- >> Best regards, >> Nicolas Graves > > Stéphane Ducasse > http://stephane.ducasse.free.fr > 06 30 93 66 73 > > "If you knew today was your last day on earth, what would you do differently? ....ESPECIALLY if, by doing something different, today might not be your last day on earth.” Calvin & Hobbes > > > > > -- Best regards, Nicolas Graves
TM
Tim Mackinnon
Tue, May 21, 2024 9:15 AM

While it sounds like a lot of work - if thats your itch I suppose its a good test of the work that Stephane mentions. By redoing it in a different environment it might iron out any accidental environment dependencies.

Presumably its just the VM you need to bootstrap - as I would view the image as being like a Word or PDF document - and would be surprised that they would expect you to bootstrap those too?

Good luck - and courage.

Tim

On Tue, 21 May 2024, at 9:47 AM, Nicolas Graves via Pharo-dev wrote:

On 2024-05-21 09:34, stephane ducasse wrote:

Hi

Why can’t you use the latest Pharo vm and Pharo12?
We worked like mad over the years to get a much better system.
Now why do you need to bootstrap Pharo because you can just use a bootstrapped image
and get pharo working and running?

Guix is not using the FHS filesystem so it would be a mess to try and
bootstrap from binaries. On top of that, they focus on
reproducibility. The standard on this end is to try and not use any
binary code if it's possible to build if from source, and yes, it
requires working like mad over the years. The website is currently down,
but there's an article about how they get all 30k packages from only a
single tiny binary file.

Some of the guys behind Guix are also involved in bootstrappable.org

I understand and share that the current system is much better, it's just
that to comply with their standard, that's what I have to do.

What I understand from there it that it's feasible:
https://x.com/estebanlm/status/1042719107307712514

I'll do the work if feasible, I just can't find the information where I
should start from, hence my email.

Best,
Nicolas

S

On 21 May 2024, at 09:31, Nicolas Graves via Pharo-dev pharo-dev@lists.pharo.org wrote:

Hi Pharo community,

I'm trying to package pharo in the GNU Guix linux distribution. Since
the distribution is focused on reproducibility and avoids using binary
code when possible, for that I need to reproduce the bootstrapping steps
that are embedded in Pharo. I understand from some developper online
comment that this is possible.

I've started to work on this and it seems feasible, at least I get the
dependency loop, what I've some difficulty is to get precisely when it's
possible to get started.

 -------------------
 |                 v

pharo VM            pharo
∧                |
-------------------

If I'm correct,

  • bootstrapping is very clear after version ~7.0.0, and with a proper
    build, just follow the distribution numbers in wget's with a cmake
    build-system.
  • for earlier versions, there's the repository
    https://github.com/pharo-project/PharoBootstrap
    that seems (git history) to be able to go back to Pharo 30.
  • I understand that at some point, Squeak and Pharo used to have the
    same VM. I have access to a squeak-vm 4.10.2.2614 in Guix, and I've seen
    this is in Pharo's ftp files, so I guess I can start there.

What I need:

  • Some indication about the first version of Pharo that I'm able to
    build purely from squeak-vm, and where to find its source code
    (git+version or commit if possible, I seem to only be able to find its
    binaries currently in phero's ftp files).
  • Any useful information for early bootstrap steps.

Some useful information on my side:

  • During the build process in Guix, we can't download data, so the
    entire bootstrap chain has to be explicited at once, hence the need to
    go back to the beginning in this case.

Thanks in advance!

--
Best regards,
Nicolas Graves

Stéphane Ducasse
http://stephane.ducasse.free.fr
06 30 93 66 73

"If you knew today was your last day on earth, what would you do differently? ....ESPECIALLY if, by doing something different, today might not be your last day on earth.” Calvin & Hobbes

--
Best regards,
Nicolas Graves

While it sounds like a lot of work - if thats your itch I suppose its a good test of the work that Stephane mentions. By redoing it in a different environment it might iron out any accidental environment dependencies. Presumably its just the VM you need to bootstrap - as I would view the image as being like a Word or PDF document - and would be surprised that they would expect you to bootstrap those too? Good luck - and courage. Tim On Tue, 21 May 2024, at 9:47 AM, Nicolas Graves via Pharo-dev wrote: > On 2024-05-21 09:34, stephane ducasse wrote: > >> Hi >> >> Why can’t you use the latest Pharo vm and Pharo12? >> We worked like mad over the years to get a much better system. >> Now why do you need to bootstrap Pharo because you can just use a bootstrapped image >> and get pharo working and running? > > Guix is not using the FHS filesystem so it would be a mess to try and > bootstrap from binaries. On top of that, they focus on > reproducibility. The standard on this end is to try and not use any > binary code if it's possible to build if from source, and yes, it > requires working like mad over the years. The website is currently down, > but there's an article about how they get all 30k packages from only a > single tiny binary file. > > Some of the guys behind Guix are also involved in bootstrappable.org > > I understand and share that the current system is much better, it's just > that to comply with their standard, that's what I have to do. > > What I understand from there it that it's feasible: > https://x.com/estebanlm/status/1042719107307712514 > > I'll do the work if feasible, I just can't find the information where I > should start from, hence my email. > > Best, > Nicolas > >> >> S >> >>> On 21 May 2024, at 09:31, Nicolas Graves via Pharo-dev <pharo-dev@lists.pharo.org> wrote: >>> >>> Hi Pharo community, >>> >>> I'm trying to package pharo in the GNU Guix linux distribution. Since >>> the distribution is focused on reproducibility and avoids using binary >>> code when possible, for that I need to reproduce the bootstrapping steps >>> that are embedded in Pharo. I understand from some developper online >>> comment that this is possible. >>> >>> I've started to work on this and it seems feasible, at least I get the >>> dependency loop, what I've some difficulty is to get precisely when it's >>> possible to get started. >>> >>> ------------------- >>> | v >>> pharo VM pharo >>> ∧ | >>> ------------------- >>> >>> If I'm correct, >>> - bootstrapping is very clear after version ~7.0.0, and with a proper >>> build, just follow the distribution numbers in wget's with a cmake >>> build-system. >>> - for earlier versions, there's the repository >>> https://github.com/pharo-project/PharoBootstrap >>> that seems (git history) to be able to go back to Pharo 30. >>> - I understand that at some point, Squeak and Pharo used to have the >>> same VM. I have access to a squeak-vm 4.10.2.2614 in Guix, and I've seen >>> this is in Pharo's ftp files, so I guess I can start there. >>> >>> What I need: >>> - Some indication about the first version of Pharo that I'm able to >>> build purely from squeak-vm, and where to find its source code >>> (git+version or commit if possible, I seem to only be able to find its >>> binaries currently in phero's ftp files). >>> - Any useful information for early bootstrap steps. >>> >>> Some useful information on my side: >>> - During the build process in Guix, we can't download data, so the >>> entire bootstrap chain has to be explicited at once, hence the need to >>> go back to the beginning in this case. >>> >>> Thanks in advance! >>> >>> -- >>> Best regards, >>> Nicolas Graves >> >> Stéphane Ducasse >> http://stephane.ducasse.free.fr >> 06 30 93 66 73 >> >> "If you knew today was your last day on earth, what would you do differently? ....ESPECIALLY if, by doing something different, today might not be your last day on earth.” Calvin & Hobbes >> >> >> >> >> > > -- > Best regards, > Nicolas Graves