$OpenBSD: README,v 1.14 2020/05/14 17:17:57 juanfra Exp $ +----------------------------------------------------------------------- | Running ${PKGSTEM} on OpenBSD +----------------------------------------------------------------------- Limitations =========== - Racket's JIT only supports CPUs with SSE2 extensions, ARMv7 or PowerPC CPUs. There is a "no_jit" flavor for arm, amd64, i386 and powerpc. - DrRacket doesn't work correctly with the "no_jit" flavor. - Racket is slightly broken here and there on aarch64, arm, powerpc and sparc64. - FFI is broken on sparc64. - Never run "raco pkg" commands as root, even when the commands are suggested by upstream. You're going to break the racket package. - Racket "places" and "futures" (using threads instead of processes) is only supported on amd64 and i386. FAQ === Where is the traditional big package of Racket? ----------------------------------------------- Since version 6, the Racket developers have been working to create a small core with the minimal dependencies and to divide the traditional big package in tens of raco packages. The old big package is now just a "distribution" provided by the PLT group. The main reason to select the "minimal" version of Racket as the only one provided by the OpenBSD ports are: - Ease the development of the port stripping the extra cruft. - The users can receive updates from upstream without disturbing the stable branches of OpenBSD ports with minors updates. - The users are not forced to use the distribution provided by the PLT group. They can create their own distribution and distribute it. - The "big package" had a very long list of dependencies. - Probably nobody needs the more than 180 packages bundled with the "big package". I want to install the main-distribution --------------------------------------- Install racket-minimal and run: raco pkg install --jobs $(sysctl -n hw.ncpuonline) --auto main-distribution I'm only interested in DrRacket ------------------------------- Install racket-minimal and run: raco pkg install --jobs $(sysctl -n hw.ncpuonline) --auto drracket Add "--binary-lib" if you don't want to generate the documentation (requires additional dependencies). I installed DrRacket but I don't see the launcher. Where is it? --------------------------------------------------------------- The binaries of the raco packages are installed to a directory in your $HOME ($HOME/.racket/VERSION/bin). For your convenience, this port includes the script "racket-user-bin-paths" to get the correct path. You only to need modify your $PATH: if [ -x ${TRUEPREFIX}/bin/racket-user-bin-paths ]; then export PATH="$PATH:$(racket-user-bin-paths)" fi Where can I find a list of installable packages? ------------------------------------------------ - https://pkgs.racket-lang.org/ - raco pkg catalog-show --all (add --only-names if you don't want to see the detailed output). - Install the raco package "gui-pkg-manager" and run "racket-package-manager" (don't change the default package scope in "Settings", it could break the installation). Can I create a port which installs a raco package? -------------------------------------------------- No. Racket's package manager is not widely tested in systems which mix different versions of different packages in different pkg scopes. The integration of raco packages in OpenBSD's ports framework would make future updates of Racket difficult with no benefit for the users. You could modify the Racket port to change the default scope and then generate the raco ports you want. However, the ports wouldn't be included in the official ports tree and you would need to maintain a few tens of new dependencies. segfault / sigbus ----------------- If your program or Racket itself crashes with a segfault or sigbus, try increasing the "datasize" (ulimit -d) and the "stacksize" (ulimit -s) in your environment limits.