# Racket distro packagers: please try building from a snapshot

**URL:** <https://racket.discourse.group/t/racket-distro-packagers-please-try-building-from-a-snapshot/1063>\
**Category:** Distro Packagers\
**Created:** [June 6, 2022, 4:26pm UTC](https://racket.discourse.group/t/racket-distro-packagers-please-try-building-from-a-snapshot/1063 "2022-06-06T16:26:11Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![zyga](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/zyga/32/585_2.png) [@zyga](https://racket.discourse.group/u/zyga)\
**Post date:** [June 8, 2022, 9:28pm UTC](https://racket.discourse.group/t/racket-distro-packagers-please-try-building-from-a-snapshot/1063/21 "2022-06-08T21:28:53Z")

</div>

Hello everyone. I'm the person behind the snap.

I started doing it for myself, since I wanted to play with racket and building it from source was a fun way to get started. The snap packaging is actually very simple (too simple in fact, it needs some improvements).

I started by cloning the [GitHub - racket/racket: The Racket repository](http://github.com/racket/racket) repo, then inside the new `snap/` directory I've created the `snapcraft.yaml` file with the following contents:

```nohighlight
# SPDX-License-Identifier: Apache-2.0
# SPDX-FileCopyrightText: Zygmunt Krynicki <me@zygoon.pl>

name: racket
title: Racket Language
base: core22
adopt-info: racket
summary: Racket Language
license: MIT
description: |
  Racket is a general-purpose programming language and an
  ecosystem for language-oriented programming.
confinement: strict

parts:
  racket:
    plugin: make
    source: .
    source-type: git
    build-packages:
      - gcc
      - libglib2.0-dev
      - libfontconfig-dev
      - libcairo2-dev
      - libpango1.0-dev
      - libjpeg-dev
    stage-packages:
      - libgtk2.0-0
      - libglib2.0-0
      - libglib2.0-bin
      - libglib2.0-data
      - libfontconfig
      - libcairo2
      - libpango1.0-0
      - libjpeg9
    override-pull: |
      craftctl default
      # Set defaults
      grade=devel
      tag="$(git describe --tags --abbrev=0)" || true
      hash="$(git rev-parse --short HEAD)"
      # Check for tagged version
      if [-n "$tag"]; then
        count="$(git rev-list "$tag".. --count)"
        if ["$count" -eq 0]; then
          version="$tag"
          grade=stable
        else
          version="$tag+git$count.$hash"
        fi
      else
        count="$(git rev-list HEAD --count)"
        version="0+git$count.$hash"
      fi
      # Relay back to snapcraft
      craftctl set grade="$grade"
      craftctl set version="$version"
    override-build: |
      make -j$CRAFT_PARALLEL_BUILD_COUNT unix-style PREFIX=/snap/racket/current/usr DESTDIR=$CRAFT_PART_INSTALL
    organize:
        snap/racket/current/usr: usr

apps:
  racket:
    command: usr/bin/racket
    plugs: [home]
  drracket:
    command: usr/bin/drracket
    plugs: [home, desktop, x11, wayland, opengl]
  raco:
    command: usr/bin/raco
    plugs: [home, network, network-bind]

```

If you are not versed with snapcraft packaging, this effectively builds racket from source, using the project git repo as the starting point.

I was asked to use snapshots from [https://www.cs.utah.edu/plt/snapshots/current/installers/racket-8.5.0.8-src-builtpkgs.tgz](https://www.cs.utah.edu/plt/snapshots/current/installers/racket-8.5.0.8-src-builtpkgs.tgz) and this should be equally easy, with a different `source: ` entry and some changes around how the build script tells snapcraft about the version.

I have not published the snap anywhere yet. I think the racket community should request the `racket` snap name and do that if there is desire to provide an official snap package. In the meantime I will explore racket, improve packaging and share updates once in a while.

I can be found on twitter (@zygoon), where I'm happy to respond to any questions in case I miss a notification from discourse.

---

<div class="post-metadata">

**Author:** ![mflatt](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/mflatt/32/6_2.png) [@mflatt](https://racket.discourse.group/u/mflatt)\
**Post date:** [June 8, 2022, 10:00pm UTC](https://racket.discourse.group/t/racket-distro-packagers-please-try-building-from-a-snapshot/1063/22 "2022-06-08T22:00:42Z")

</div>

> [@tgbugs](#):
>
> Not sure what happened, but on master if I run `./configure` or `./configure --enable-cs` and then `make cs` I now get the following error

Something appears to have gone wrong with the files in `src/cs/c/ChezScheme/pb/boot/pb`. Just deleting `cs/c/ChezScheme/pb` may solve the problem, or it may be that files in `src/ChezScheme/boot/pb` have gone wrong (where those files would be the starting content for `src/cs/c/ChezScheme/pb/boot/pb`).

---

<div class="post-metadata">

**Author:** ![tgbugs](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/tgbugs/32/579_2.png) [@tgbugs](https://racket.discourse.group/u/tgbugs)\
**Post date:** [June 8, 2022, 10:32pm UTC](https://racket.discourse.group/t/racket-distro-packagers-please-try-building-from-a-snapshot/1063/23 "2022-06-08T22:32:19Z")

</div>

Unfortunately it happens after running `git clean -dfx` on the whole repo. Maybe some prerequisite is not getting built?

Ah wait. There is a lurking git repo in there.

---

<div class="post-metadata">

**Author:** ![tgbugs](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/tgbugs/32/579_2.png) [@tgbugs](https://racket.discourse.group/u/tgbugs)\
**Post date:** [June 8, 2022, 10:45pm UTC](https://racket.discourse.group/t/racket-distro-packagers-please-try-building-from-a-snapshot/1063/24 "2022-06-08T22:45:02Z")

</div>

This issue is on master, and not in the snapshot. I'm guessing that the snapshot will not have these issues.

That said, the problem seems to be that the git repo in `src/ChezScheme/boot/bp` is somehow out of sync. I did `git checkout master` in that sub-repo which leaves only README.md, and I get the following error when running `make cs`: `missing input file: "ChezScheme/boot/pb/petite.boot"`. IIRC this used to bootstrap from nothing?

---

<div class="post-metadata">

**Author:** ![mflatt](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/mflatt/32/6_2.png) [@mflatt](https://racket.discourse.group/u/mflatt)\
**Post date:** [June 8, 2022, 10:57pm UTC](https://racket.discourse.group/t/racket-distro-packagers-please-try-building-from-a-snapshot/1063/25 "2022-06-08T22:57:50Z")

</div>

That checkout need to be a different branch than `master`. The easiest solution is to delete `src/ChezScheme/boot/bp` and run `make pb-fetch` in the Racket checkout root.

---

<div class="post-metadata">

**Author:** ![tgbugs](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/tgbugs/32/579_2.png) [@tgbugs](https://racket.discourse.group/u/tgbugs)\
**Post date:** [June 8, 2022, 11:02pm UTC](https://racket.discourse.group/t/racket-distro-packagers-please-try-building-from-a-snapshot/1063/26 "2022-06-08T23:02:36Z")

</div>

That solves it. I'm not going to fiddle with trying to bootstrap pb using rktboot right now. Thanks!

---

<div class="post-metadata">

**Author:** ![LiberalArtist](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/liberalartist/32/151_2.png) [@LiberalArtist](https://racket.discourse.group/u/LiberalArtist)\
**Post date:** [June 8, 2022, 11:12pm UTC](https://racket.discourse.group/t/racket-distro-packagers-please-try-building-from-a-snapshot/1063/27 "2022-06-08T23:12:52Z")

</div>

FYI, if building for a distro, you can use rktboot to generate the native bootfiles directly, without going through `pb`. That's especially true if your bootstrapping policies (like Guix's) require self-hosting the bootstrap whenever possible, rather than cross-compiling from another architecture.

---

<div class="post-metadata">

**Author:** ![samth](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/samth/32/3_2.png) [@samth](https://racket.discourse.group/u/samth)\
**Post date:** [June 9, 2022, 3:00pm UTC](https://racket.discourse.group/t/racket-distro-packagers-please-try-building-from-a-snapshot/1063/28 "2022-06-09T15:00:05Z")

</div>

This looks great! What would it take to request the `racket` name?

---

<div class="post-metadata">

**Author:** ![zyga](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/zyga/32/585_2.png) [@zyga](https://racket.discourse.group/u/zyga)\
**Post date:** [June 9, 2022, 3:16pm UTC](https://racket.discourse.group/t/racket-distro-packagers-please-try-building-from-a-snapshot/1063/29 "2022-06-09T15:16:55Z")

</div>

You want to go to [Snapcraft - Snaps are universal Linux packages](https://snapcraft.io/build) and also read [https://snapcraft.io/docs/registering-your-app-name](https://snapcraft.io/docs/registering-your-app-name)

You will find that the name is reserved, because snapcraft auto-reserved names related to package names and popular git repositories, to avoid confusion and name squatting.

Let me know if you need help.

Registering the name does not make the package available, so you can safely do that now.

---

<div class="post-metadata">

**Author:** ![samth](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/samth/32/3_2.png) [@samth](https://racket.discourse.group/u/samth)\
**Post date:** [June 9, 2022, 3:20pm UTC](https://racket.discourse.group/t/racket-distro-packagers-please-try-building-from-a-snapshot/1063/30 "2022-06-09T15:20:08Z")

</div>

Thanks! I've submitted the request.

---

<div class="post-metadata">

**Author:** ![zyga](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/zyga/32/585_2.png) [@zyga](https://racket.discourse.group/u/zyga)\
**Post date:** [June 9, 2022, 3:20pm UTC](https://racket.discourse.group/t/racket-distro-packagers-please-try-building-from-a-snapshot/1063/31 "2022-06-09T15:20:43Z")

</div>

Registering the name `racket` gives you a top-level application under the same name. To have other top-level names related to racket apps like `raco`, you have to follow a different process (automatic aliases). This will make snapd install an alias `raco` that points to `racket.raco` and really runs `raco`. Since those share the same top-level namespace of all command line apps, this process requires a request on the snapcraft forum, community vote and clash check. This only affects automatically providing the aliases, you can have any number of apps under the `racket` snap name, but they are all called `racket.$app-name`. Users can set up any aliases they want locally with `snap alias`, the forum process just makes this automatic upon installation.

---

<div class="post-metadata">

**Author:** ![zyga](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/zyga/32/585_2.png) [@zyga](https://racket.discourse.group/u/zyga)\
**Post date:** [June 9, 2022, 3:22pm UTC](https://racket.discourse.group/t/racket-distro-packagers-please-try-building-from-a-snapshot/1063/32 "2022-06-09T15:22:28Z")

</div>

Cool, let me know if you want to try the build process.

You can stick the file I've pasted in the earlier post in this thread, install snapcraft (`sudo snap install --classic --candidate snapcraft` and then just run `snapcraft`. I made the packaging to use snapcraft 7.x features and snapcraft 7 is still in the candidate release phase.

Let me know if you want to give this a try or if you get stuck on anything.

---

<div class="post-metadata">

**Author:** ![zyga](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/zyga/32/585_2.png) [@zyga](https://racket.discourse.group/u/zyga)\
**Post date:** [June 9, 2022, 3:23pm UTC](https://racket.discourse.group/t/racket-distro-packagers-please-try-building-from-a-snapshot/1063/33 "2022-06-09T15:23:23Z")

</div>

You can see my request to get aliases for the `hare` toolchain here: [Request for aliases for hare snap - store-requests - snapcraft.io](https://forum.snapcraft.io/t/request-for-aliases-for-hare-snap/29842) -- if you make one you just want to use the `store-requests` category on the forum.

---

<div class="post-metadata">

**Author:** ![tgbugs](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/tgbugs/32/579_2.png) [@tgbugs](https://racket.discourse.group/u/tgbugs)\
**Post date:** [June 9, 2022, 4:34pm UTC](https://racket.discourse.group/t/racket-distro-packagers-please-try-building-from-a-snapshot/1063/34 "2022-06-09T16:34:15Z")

</div>

Update.

New issue when building against the latest snapshot. The issue happens during `make install-bc` and I'm 99% sure that it is due to the fact that `DESTDIR` is different than the configured `prefix`. It also may be the case that this is an interaction with `--enable-shared`. I can reproduce the issue on master by running the following:

```scheme
pushd racket/src
./configure --enable-bc --enable-shared --prefix=/usr
make bc
make install-bc DESTDIR=/tmp/test-racket-destdir

```

For reference the configure is run with the following options.

```scheme
./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib64 --docdir=/usr/share/doc/racket-8.6_pre1 --collectsdir=/usr/share/racket/collects --pkgsdir=/usr/share/racket/pkgs --enable-postlink="big nasty multiline hackery" --enable-shared --enable-float --enable-libffi --enable-foreign --disable-libs --disable-strip --enable-useprefix --disable-cgcdefault --disable-bcdefault --disable-csdefault --enable-bc --disable-cs --enable-gracket --enable-docs --enable-jit --enable-places --enable-futures --enable-pthread

```

```scheme
make -j73 -l8 DESTDIR=/var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/ install-bc 
bin/zuo . install-bc DESTDIR="/var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/"
bc/racket3m -O info'@'compiler/cm -l- setup --boot setup-go.rkt bc/compiled ignored bc/ignored.d bc/mksystem.rkt bc/system.rktd
compiler/cm: start-compile: /var/tmp/portage/dev-scheme/racket-8.6_pre1/work/racket-8.5.0.8/src/bc/mksystem.rkt
compiler/cm: finish-compile: /var/tmp/portage/dev-scheme/racket-8.6_pre1/work/racket-8.5.0.8/src/bc/mksystem.rkt
bc/racket3m -O info'@'compiler/cm -l- setup --boot setup-go.rkt bc/compiled ignored bc/ignored.d bc/mkincludes.rkt /var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/include/racket bc/ bc
compiler/cm: start-compile: /var/tmp/portage/dev-scheme/racket-8.6_pre1/work/racket-8.5.0.8/src/bc/mkincludes.rkt
compiler/cm: finish-compile: /var/tmp/portage/dev-scheme/racket-8.6_pre1/work/racket-8.5.0.8/src/bc/mkincludes.rkt
Making /var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/include/racket
Done.
libtool --mode=install cp bc/racket3m /var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/bin/racketbc
libtool: warning: 'bc/libracket3m.la' has not been installed in '/usr/lib64'
libtool: install: cp bc/.libs/racket3m /var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/bin/racketbc
: /var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/bin/racketbc
bc/racket3m -O info'@'compiler/cm -l- setup --boot setup-go.rkt bc/compiled ignored bc/ignored.d start/collects-path.rkt . /var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/bin/racketbc /usr/share/racket/collects /etc/racket
compiler/cm: start-compile: /var/tmp/portage/dev-scheme/racket-8.6_pre1/work/racket-8.5.0.8/src/start/collects-path.rkt
compiler/cm: finish-compile: /var/tmp/portage/dev-scheme/racket-8.6_pre1/work/racket-8.5.0.8/src/start/collects-path.rkt
libtool --mode=install cp bc/gracket3m /var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/lib64/racket/gracketbc
libtool: warning: 'bc/libracket3m.la' has not been installed in '/usr/lib64'
libtool: install: cp bc/.libs/gracket3m /var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/lib64/racket/gracketbc
: /var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/lib64/racket/gracketbc
bc/racket3m -O info'@'compiler/cm -l- setup --boot setup-go.rkt bc/compiled ignored bc/ignored.d start/collects-path.rkt . /var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/lib64/racket/gracketbc /usr/share/racket/collects /etc/racket
: /var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/lib64/racket/starter
bc/racket3m -O info'@'compiler/cm -l- setup --boot setup-go.rkt bc/compiled ignored bc/ignored.d start/collects-path.rkt . /var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/lib64/racket/starter /usr/share/racket/collects /etc/racket
libtool --mode=install install bc/libracket3m.la /var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/lib64/libracket3m.la
libtool: install: install bc/.libs/libracket3m-8.5.0.8.so /var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/lib64/libracket3m-8.5.0.8.so
libtool: install: (cd /var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/lib64 && { ln -s -f libracket3m-8.5.0.8.so libracket3m.so || { rm -f libracket3m.so && ln -s libracket3m-8.5.0.8.so libracket3m.so; }; })
libtool: install: install bc/.libs/libracket3m.lai /var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/lib64/libracket3m.la
libtool: install: install bc/.libs/libracket3m.a /var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/lib64/libracket3m.a
libtool: install: chmod 644 /var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/lib64/libracket3m.a
libtool: install: x86_64-pc-linux-gnu-ranlib /var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/lib64/libracket3m.a
libtool: warning: remember to run 'libtool --finish /usr/lib64'
: /var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/lib64/libracket3m.la
/var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/bin/racketbc -X ../collects -G ../etc -O info'@'compiler/cm -l- setup --boot setup-go.rkt bc/compiled ignored bc/ignored.d ../collects/setup/unixstyle-install.rkt make-install-copytree .. /var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/bin /var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/share/racket/collects /var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/share/racket/pkgs /var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/share/doc/racket-8.6_pre1 /var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/lib64 /var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/include/racket /var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/lib64/racket /var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/share/racket /var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/etc/racket /var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/share/applications /var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/share/man no
/var/tmp/portage/dev-scheme/racket-8.6_pre1/bc/image/usr/bin/racketbc: error while loading shared libraries: libracket3m-8.5.0.8.so: cannot open shared object file: No such file or directory
failed
 in build-one
 in loop
 in module->hash
make: *** [Makefile:36: install-bc] Error 1

```

---

<div class="post-metadata">

**Author:** ![capfredf](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/capfredf/32/935_2.png) [@capfredf](https://racket.discourse.group/u/capfredf)\
**Post date:** [June 9, 2022, 6:01pm UTC](https://racket.discourse.group/t/racket-distro-packagers-please-try-building-from-a-snapshot/1063/35 "2022-06-09T18:01:43Z")

</div>

The snaphot builds on x86 succeeded on opensuse tumbleweed.

see [Show home:capfredf:branches:devel:languages:misc / racket - openSUSE Build Service](https://build.opensuse.org/package/show/home:capfredf:branches:devel:languages:misc/racket)

---

<div class="post-metadata">

**Author:** ![mflatt](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/mflatt/32/6_2.png) [@mflatt](https://racket.discourse.group/u/mflatt)\
**Post date:** [June 9, 2022, 7:09pm UTC](https://racket.discourse.group/t/racket-distro-packagers-please-try-building-from-a-snapshot/1063/36 "2022-06-09T19:09:39Z")

</div>

> [@tgbugs](#):
>
> New issue when building against the latest snapshot.

I've pushed a repair for `--enable-shared` plus `DESTDIR`.

---

<div class="post-metadata">

**Author:** ![LiberalArtist](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/liberalartist/32/151_2.png) [@LiberalArtist](https://racket.discourse.group/u/LiberalArtist)\
**Post date:** [June 9, 2022, 10:42pm UTC](https://racket.discourse.group/t/racket-distro-packagers-please-try-building-from-a-snapshot/1063/37 "2022-06-09T22:42:00Z")

</div>

Just to confirm, I've now built Racket from 71772696941191c7d231d0ea8daf51e58801aeaa on top of current Guix and all is well. I haven't tried cross-compilation or platforms without native code backends yet: I hope to soon, but I didn't have that working with the old build scripts, either, so it's not a regression in any case.

---

<div class="post-metadata">

**Author:** ![tgbugs](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/tgbugs/32/579_2.png) [@tgbugs](https://racket.discourse.group/u/tgbugs)\
**Post date:** [June 10, 2022, 10:18pm UTC](https://racket.discourse.group/t/racket-distro-packagers-please-try-building-from-a-snapshot/1063/38 "2022-06-10T22:18:29Z")

</div>

Everything working on my end as of the latest snapshot.

I am also testing the main tree ebuild (@xgqt is not on racket discourse yet apparently, will ping separately) and I'm seeing an error related to missing install option for the chez boot files when calling `make unix-install-boot-files` in `src/cs/c`. I'm not sure what the importance of this is but it breaks the build. Looking at `build.zuo` it seems that this operation may be done by default now and only blocked if `no-install` is enabled?

```scheme
make: Entering directory '/var/tmp/portage/dev-scheme/racket-8.6/work/racket-8.5.0.8/src/cs/c'
make: *** No rule to make target 'unix-install-boot-files'. Stop.
make: Leaving directory '/var/tmp/portage/dev-scheme/racket-8.6/work/racket-8.5.0.8/src/cs/c'

```

---

<div class="post-metadata">

**Author:** ![xgqt](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/xgqt/32/592_2.png) [@xgqt](https://racket.discourse.group/u/xgqt)\
**Post date:** [June 10, 2022, 10:51pm UTC](https://racket.discourse.group/t/racket-distro-packagers-please-try-building-from-a-snapshot/1063/39 "2022-06-10T22:51:25Z")

</div>

Hi!

I have registered just now.

Racket version \<= 8.5 by default was not installing Chez boot files.  
As far as I remember I think I needed them for embedding Racket in one of my personal projects and when I found out that wasn't the default I patched the install script (ebuild) adding a command to install boot files when building the Chez Scheme Racket version (ref: [repo/gentoo.git - Official Gentoo ebuild repository](https://gitweb.gentoo.org/repo/gentoo.git/commit/dev-scheme/racket?id=9a1b7f9bb8c023d66fee5284ae981c17b2d0e54e)).

If Racket now installs Chez boot files by default this step (ref: [racket-8.5.ebuild « racket « dev-scheme - repo/gentoo.git - Official Gentoo ebuild repository](https://gitweb.gentoo.org/repo/gentoo.git/tree/dev-scheme/racket/racket-8.5.ebuild#n104)) can be removed.

If Racket still does not install Chez's boot files by default could anybody tell if there is a method to install them via `make` somehow still of if they have to be copied "manually"?  
Because as @tgbugs pointed out the `make` call (`make -C "${S}"/cs/c DESTDIR="${ED}" unix-install-boot-files`) does not seem to work.

Also, minor correction, this is on installation (`src_install`) step, so compile step (`src_compile`) including the installation of compiled Racket (to `DESTDIR`, ref: [racket-8.5.ebuild « racket « dev-scheme - repo/gentoo.git - Official Gentoo ebuild repository](https://gitweb.gentoo.org/repo/gentoo.git/tree/dev-scheme/racket/racket-8.5.ebuild#n102)) should work.

Btw, if anybody wonders the `default` function in ebuild scripts calls looks something like this: `make --jobs=7 --load-average=6 DESTDIR=/var/tmp/portage/dev-scheme/racket-8.5/image install`, where `jobs` and `load-average` are controlled by user's configuration and the `DESTDIR` variable contains a temporary directory which is copied onto the running system after `src_install` is done.

---

<div class="post-metadata">

**Author:** ![xgqt](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/xgqt/32/592_2.png) [@xgqt](https://racket.discourse.group/u/xgqt)\
**Post date:** [June 11, 2022, 12:24am UTC](https://racket.discourse.group/t/racket-distro-packagers-please-try-building-from-a-snapshot/1063/40 "2022-06-11T00:24:25Z")

</div>

Initial snapshot ebuild of Racket 8.5.0.8: [dev-scheme/racket/racket-8.5\_p20220609.ebuild · b92ed9fbddade88decc08d3615ad324227ec06e6 · src\_prepare / Racket / Racket Gentoo Overlay · GitLab](https://gitlab.com/src_prepare/racket/racket-overlay/-/blob/b92ed9fbddade88decc08d3615ad324227ec06e6/dev-scheme/racket/racket-8.5_p20220609.ebuild)

Zuo installation needs some work.

[Previous page](https://racket.discourse.group/t/racket-distro-packagers-please-try-building-from-a-snapshot/1063.md?page=1)

[Next page](https://racket.discourse.group/t/racket-distro-packagers-please-try-building-from-a-snapshot/1063.md?page=3)
