Ping! Here's the diff again if anyone needs it.
Thanks, On Sun, 30 Aug 2026 21:56:06 -0500 izzy Meyer <[email protected]> wrote: > Scratch that. I have the VPS now. Please use the attached diff, I will > no longer selfhost the bootstrap compiler at my apartment. > > Thanks, > > Y'all have a good week. > > On Sun, 30 Aug 2026 15:56:05 -0500 > izzy Meyer <[email protected]> wrote: > > > On Sun, 30 Aug 2026 14:57:47 -0500 > > joshua stein <[email protected]> wrote: > > > > > On Sun, 30 Aug 2026 at 14:42:01 -0500, izzy Meyer wrote: > > > > Hello ports@, jcs@ (copied) > > > > > > > > Could the lang/crystal port please be updated to 1.21.0? > > > > > > Asking for an update without providing a diff that you tested is > > > not very helpful. > > > > Fair point, I apologize for this. Attached is a diff which uses my > > self-hosted webserver on a rpi3 running httpd for hosting the > > crystal binary bootstrap tarball. I'll be getting a VPS sometime in > > the future where I'd rather host this distfile, so I'll send a new > > diff once I have that up if this diff gets committed. > > > > I tested compiling a small hello world program, but the regression > > tests OOM on my hardware with 16G of ram. I see ulimit being called > > in the test step, maybe I should bump that? I'm unsure. > > > > > > One major change that's in this release is that crystal on > > > > OpenBSD uses kqueue for event loops now. The only consumer of > > > > this port in the tree AFAICT is sysutils/exfetch, which is > > > > maintained by me. Later down the line I would like to port the > > > > ameba linter and the lattice LSP, so having an up-to-date > > > > crystal port would be very helpful for me when doing that. > > > > > > It's been using kqueue since 1.20.1: > > > > > > https://github.com/openbsd/ports/commit/79c37f75d212ecf00fae91eaf7e38c44b872bbb5#diff-384752a3e5aaa61f5ae37228a7f611a38fad330e6568cd7afbb212d42b9b2d0d > > > > I meant that this was done in upstream, so the patch can be dropped. > > > > > > One of the SITES distfiles is on jcs@'s domain, so I can't > > > > update it myself without access to his site, unfortunately, > > > > hence me asking here. > > > > > > I'm no longer using or maintaining this port so I don't feel > > > comfortable hosting a custom binary bootstrap distfile that > > > someone else built. You (or whoever maintains this) will need to > > > find a new place to host it. > > > > > > > I'll take maintainership in this case. Thanks for the pointers. > > > > > -- iz (she/her) > I say mundane things > so the uninteresting > just might get noticed. izder456 (dot) neocities (dot) org
diff --git a/lang/crystal/Makefile b/lang/crystal/Makefile index bbb48aab4..2f13a205e 100644 --- a/lang/crystal/Makefile +++ b/lang/crystal/Makefile @@ -3,7 +3,7 @@ ONLY_FOR_ARCHS= amd64 USE_NOBTCFI = Yes -V = 1.20.1 +V = 1.21.0 V_SHARDS = 0.20.0 V_MOLINILLO = 0.2.2 @@ -17,6 +17,8 @@ CATEGORIES = lang HOMEPAGE = https://crystal-lang.org/ +MAINTAINER = izzy Meyer <[email protected]> + # Apache 2.0 PERMIT_PACKAGE = Yes @@ -29,13 +31,12 @@ WANTLIB += iconv m pcre2-8 yaml-0 llvm${MODCLANG_VERSION}/lib/LLVM # current version of Crystal there, then checking out the source for that # version, applying patches included in this port, and running: # -# make crystal FLAGS="--cross-compile --target amd64-unknown-openbsd7.9" +# make crystal FLAGS="--cross-compile --target amd64-unknown-openbsd8.0" # # The result will be built at .build/crystal.o # - -SITES = https://jcs.org/distfiles/ -DISTFILES = crystal-${V}-OpenBSD7.9.tar.gz +SITES = https://izder456.cgx.li/distfiles/ +DISTFILES = crystal-${V}-OpenBSD8.0.tar.gz # Build requires llvm-config from ports, not from base. When changing # MODCLANG_VERSION, keep paths in patches/ in sync here and in bootstrap diff --git a/lang/crystal/distinfo b/lang/crystal/distinfo index 98a0e4a2f..3a34eb84d 100644 --- a/lang/crystal/distinfo +++ b/lang/crystal/distinfo @@ -1,8 +1,8 @@ -SHA256 (crystal-1.20.1-OpenBSD7.9.tar.gz) = F3wUfD54rts0phOXRWHhGTpw8jKPlkuNyz2zC7SD1Lw= -SHA256 (crystal-lang-crystal-1.20.1.tar.gz) = L9x+rv7TR1U4PbFfh4fjp8LwQGnpOHHTU/lfoIPtfY0= +SHA256 (crystal-1.21.0-OpenBSD8.0.tar.gz) = QbeJmN2LJa6OVElOixCFmD3vTP3g5FWs7B7DmlnXxA0= +SHA256 (crystal-lang-crystal-1.21.0.tar.gz) = Xi1p9WVVOqcofnZXDUVAojG/3xo3874Xn0l+8d+KDZo= SHA256 (crystal-lang-crystal-molinillo-v0.2.2.tar.gz) = rE02ZEeq++wjyCEZp0s+NRmXV4L/N9iwCjR0nIHm6HY= SHA256 (crystal-lang-shards-v0.20.0.tar.gz) = hlW4d2EBZAnkQRBW41CyTn/nnq4/InszVLGBoD8U1do= -SIZE (crystal-1.20.1-OpenBSD7.9.tar.gz) = 12261054 -SIZE (crystal-lang-crystal-1.20.1.tar.gz) = 4198258 +SIZE (crystal-1.21.0-OpenBSD8.0.tar.gz) = 12481337 +SIZE (crystal-lang-crystal-1.21.0.tar.gz) = 4227340 SIZE (crystal-lang-crystal-molinillo-v0.2.2.tar.gz) = 23430 SIZE (crystal-lang-shards-v0.20.0.tar.gz) = 109618 diff --git a/lang/crystal/patches/patch-bin_crystal b/lang/crystal/patches/patch-bin_crystal index 109b98ce3..7f9d3684f 100644 --- a/lang/crystal/patches/patch-bin_crystal +++ b/lang/crystal/patches/patch-bin_crystal @@ -7,7 +7,7 @@ Index: bin/crystal ################## https://github.com/mkropat/sh-realpath ##################### # -@@ -193,6 +193,8 @@ export CRYSTAL_EXEC_PATH +@@ -192,6 +192,8 @@ export CRYSTAL_EXEC_PATH if [ -x "$CRYSTAL_DIR/${CRYSTAL_BIN}" ]; then __warning_msg "Using compiled compiler at ${CRYSTAL_DIR#"$PWD/"}/${CRYSTAL_BIN}" diff --git a/lang/crystal/patches/patch-src_compiler_crystal_compiler_cr b/lang/crystal/patches/patch-src_compiler_crystal_compiler_cr index 3c68ecffd..619b6d0bf 100644 --- a/lang/crystal/patches/patch-src_compiler_crystal_compiler_cr +++ b/lang/crystal/patches/patch-src_compiler_crystal_compiler_cr @@ -1,9 +1,10 @@ + # This patch must also be applied to the source tree on the cross-compiling # host when building crystal.o Index: src/compiler/crystal/compiler.cr --- src/compiler/crystal/compiler.cr.orig +++ src/compiler/crystal/compiler.cr -@@ -533,6 +533,10 @@ module Crystal +@@ -546,6 +546,10 @@ module Crystal link_flags = use_modern_linker(link_flags) diff --git a/lang/crystal/patches/patch-src_crystal_event_loop_cr b/lang/crystal/patches/patch-src_crystal_event_loop_cr deleted file mode 100644 index 65b27dde1..000000000 --- a/lang/crystal/patches/patch-src_crystal_event_loop_cr +++ /dev/null @@ -1,23 +0,0 @@ -# This patch must also be applied to the source tree on the cross-compiling -# host when building crystal.o -Index: src/crystal/event_loop.cr ---- src/crystal/event_loop.cr.orig -+++ src/crystal/event_loop.cr -@@ -14,7 +14,7 @@ abstract class Crystal::EventLoop - Crystal::EventLoop::LibEvent - {% elsif flag?("evloop=epoll") || flag?(:android) || flag?(:linux) %} - Crystal::EventLoop::Epoll -- {% elsif flag?("evloop=kqueue") || flag?(:darwin) || flag?(:freebsd) %} -+ {% elsif flag?("evloop=kqueue") || flag?(:darwin) || flag?(:freebsd) || flag?(:openbsd) %} - Crystal::EventLoop::Kqueue - {% else %} - Crystal::EventLoop::LibEvent -@@ -166,7 +166,7 @@ end - require "./event_loop/libevent" - {% elsif flag?("evloop=epoll") || flag?(:android) || flag?(:linux) %} - require "./event_loop/epoll" -- {% elsif flag?("evloop=kqueue") || flag?(:darwin) || flag?(:freebsd) %} -+ {% elsif flag?("evloop=kqueue") || flag?(:darwin) || flag?(:freebsd) || flag?(:openbsd) %} - require "./event_loop/kqueue" - {% else %} - require "./event_loop/libevent" diff --git a/lang/crystal/pkg/PLIST b/lang/crystal/pkg/PLIST index e8ad5182d..f2810d21d 100644 --- a/lang/crystal/pkg/PLIST +++ b/lang/crystal/pkg/PLIST @@ -365,7 +365,6 @@ lib/crystal/crystal/dwarf/abbrev.cr lib/crystal/crystal/dwarf/info.cr lib/crystal/crystal/dwarf/line_numbers.cr lib/crystal/crystal/dwarf/strings.cr -lib/crystal/crystal/elf.cr lib/crystal/crystal/event_loop/ lib/crystal/crystal/event_loop.cr lib/crystal/crystal/event_loop/epoll.cr @@ -383,6 +382,7 @@ lib/crystal/crystal/event_loop/kqueue.cr lib/crystal/crystal/event_loop/libevent/ lib/crystal/crystal/event_loop/libevent.cr lib/crystal/crystal/event_loop/libevent/event.cr +lib/crystal/crystal/event_loop/libevent/evented.cr lib/crystal/crystal/event_loop/libevent/lib_event2.cr lib/crystal/crystal/event_loop/lock.cr lib/crystal/crystal/event_loop/polling/ @@ -401,10 +401,8 @@ lib/crystal/crystal/iconv.cr lib/crystal/crystal/interpreter.cr lib/crystal/crystal/lib_iconv.cr lib/crystal/crystal/lock.cr -lib/crystal/crystal/mach_o.cr lib/crystal/crystal/main.cr lib/crystal/crystal/once.cr -lib/crystal/crystal/pe.cr lib/crystal/crystal/pointer_linked_list.cr lib/crystal/crystal/pointer_pairing_heap.cr lib/crystal/crystal/print_buffered.cr @@ -445,6 +443,7 @@ lib/crystal/crystal/system/unix.cr lib/crystal/crystal/system/unix/addrinfo.cr lib/crystal/crystal/system/unix/arc4random.cr lib/crystal/crystal/system/unix/dir.cr +lib/crystal/crystal/system/unix/elf.cr lib/crystal/crystal/system/unix/env.cr lib/crystal/crystal/system/unix/epoll.cr lib/crystal/crystal/system/unix/eventfd.cr @@ -458,6 +457,7 @@ lib/crystal/crystal/system/unix/hostname.cr lib/crystal/crystal/system/unix/io_uring.cr lib/crystal/crystal/system/unix/kqueue.cr lib/crystal/crystal/system/unix/linux_cpucount.cr +lib/crystal/crystal/system/unix/mach_o.cr lib/crystal/crystal/system/unix/main.cr lib/crystal/crystal/system/unix/mime.cr lib/crystal/crystal/system/unix/path.cr @@ -514,6 +514,7 @@ lib/crystal/crystal/system/win32/iocp.cr lib/crystal/crystal/system/win32/library_archive.cr lib/crystal/crystal/system/win32/mime.cr lib/crystal/crystal/system/win32/path.cr +lib/crystal/crystal/system/win32/pe.cr lib/crystal/crystal/system/win32/process.cr lib/crystal/crystal/system/win32/random.cr lib/crystal/crystal/system/win32/signal.cr @@ -530,7 +531,6 @@ lib/crystal/crystal/system/win32/windows_sdk.cr lib/crystal/crystal/system/win32/wmain.cr lib/crystal/crystal/system/win32/zone_names.cr lib/crystal/crystal/system/windows.cr -lib/crystal/crystal/thread_local_value.cr lib/crystal/crystal/tracing.cr lib/crystal/crystal/value_with_finalizer.cr lib/crystal/csv/ @@ -703,7 +703,6 @@ lib/crystal/io/delimited.cr lib/crystal/io/encoding.cr lib/crystal/io/encoding_stubs.cr lib/crystal/io/error.cr -lib/crystal/io/evented.cr lib/crystal/io/file_descriptor.cr lib/crystal/io/hexdump.cr lib/crystal/io/memory.cr @@ -765,6 +764,7 @@ lib/crystal/lib_c/aarch64-darwin/c/sys/file.cr lib/crystal/lib_c/aarch64-darwin/c/sys/mman.cr lib/crystal/lib_c/aarch64-darwin/c/sys/resource.cr lib/crystal/lib_c/aarch64-darwin/c/sys/select.cr +lib/crystal/lib_c/aarch64-darwin/c/sys/sendfile.cr lib/crystal/lib_c/aarch64-darwin/c/sys/socket.cr lib/crystal/lib_c/aarch64-darwin/c/sys/stat.cr lib/crystal/lib_c/aarch64-darwin/c/sys/time.cr @@ -814,6 +814,7 @@ lib/crystal/lib_c/aarch64-linux-android/c/sys/mman.cr lib/crystal/lib_c/aarch64-linux-android/c/sys/random.cr lib/crystal/lib_c/aarch64-linux-android/c/sys/resource.cr lib/crystal/lib_c/aarch64-linux-android/c/sys/select.cr +lib/crystal/lib_c/aarch64-linux-android/c/sys/sendfile.cr lib/crystal/lib_c/aarch64-linux-android/c/sys/socket.cr lib/crystal/lib_c/aarch64-linux-android/c/sys/stat.cr lib/crystal/lib_c/aarch64-linux-android/c/sys/syscall.cr @@ -866,6 +867,7 @@ lib/crystal/lib_c/aarch64-linux-gnu/c/sys/mman.cr lib/crystal/lib_c/aarch64-linux-gnu/c/sys/random.cr lib/crystal/lib_c/aarch64-linux-gnu/c/sys/resource.cr lib/crystal/lib_c/aarch64-linux-gnu/c/sys/select.cr +lib/crystal/lib_c/aarch64-linux-gnu/c/sys/sendfile.cr lib/crystal/lib_c/aarch64-linux-gnu/c/sys/socket.cr lib/crystal/lib_c/aarch64-linux-gnu/c/sys/stat.cr lib/crystal/lib_c/aarch64-linux-gnu/c/sys/time.cr @@ -916,6 +918,7 @@ lib/crystal/lib_c/aarch64-linux-musl/c/sys/mman.cr lib/crystal/lib_c/aarch64-linux-musl/c/sys/random.cr lib/crystal/lib_c/aarch64-linux-musl/c/sys/resource.cr lib/crystal/lib_c/aarch64-linux-musl/c/sys/select.cr +lib/crystal/lib_c/aarch64-linux-musl/c/sys/sendfile.cr lib/crystal/lib_c/aarch64-linux-musl/c/sys/socket.cr lib/crystal/lib_c/aarch64-linux-musl/c/sys/stat.cr lib/crystal/lib_c/aarch64-linux-musl/c/sys/time.cr @@ -969,6 +972,7 @@ lib/crystal/lib_c/arm-linux-gnueabihf/c/sys/mman.cr lib/crystal/lib_c/arm-linux-gnueabihf/c/sys/random.cr lib/crystal/lib_c/arm-linux-gnueabihf/c/sys/resource.cr lib/crystal/lib_c/arm-linux-gnueabihf/c/sys/select.cr +lib/crystal/lib_c/arm-linux-gnueabihf/c/sys/sendfile.cr lib/crystal/lib_c/arm-linux-gnueabihf/c/sys/socket.cr lib/crystal/lib_c/arm-linux-gnueabihf/c/sys/stat.cr lib/crystal/lib_c/arm-linux-gnueabihf/c/sys/time.cr @@ -1019,6 +1023,7 @@ lib/crystal/lib_c/i386-linux-gnu/c/sys/mman.cr lib/crystal/lib_c/i386-linux-gnu/c/sys/random.cr lib/crystal/lib_c/i386-linux-gnu/c/sys/resource.cr lib/crystal/lib_c/i386-linux-gnu/c/sys/select.cr +lib/crystal/lib_c/i386-linux-gnu/c/sys/sendfile.cr lib/crystal/lib_c/i386-linux-gnu/c/sys/socket.cr lib/crystal/lib_c/i386-linux-gnu/c/sys/stat.cr lib/crystal/lib_c/i386-linux-gnu/c/sys/time.cr @@ -1069,6 +1074,7 @@ lib/crystal/lib_c/i386-linux-musl/c/sys/mman.cr lib/crystal/lib_c/i386-linux-musl/c/sys/random.cr lib/crystal/lib_c/i386-linux-musl/c/sys/resource.cr lib/crystal/lib_c/i386-linux-musl/c/sys/select.cr +lib/crystal/lib_c/i386-linux-musl/c/sys/sendfile.cr lib/crystal/lib_c/i386-linux-musl/c/sys/socket.cr lib/crystal/lib_c/i386-linux-musl/c/sys/stat.cr lib/crystal/lib_c/i386-linux-musl/c/sys/time.cr @@ -1148,6 +1154,7 @@ lib/crystal/lib_c/x86_64-darwin/c/sys/file.cr lib/crystal/lib_c/x86_64-darwin/c/sys/mman.cr lib/crystal/lib_c/x86_64-darwin/c/sys/resource.cr lib/crystal/lib_c/x86_64-darwin/c/sys/select.cr +lib/crystal/lib_c/x86_64-darwin/c/sys/sendfile.cr lib/crystal/lib_c/x86_64-darwin/c/sys/socket.cr lib/crystal/lib_c/x86_64-darwin/c/sys/stat.cr lib/crystal/lib_c/x86_64-darwin/c/sys/time.cr @@ -1192,6 +1199,7 @@ lib/crystal/lib_c/x86_64-dragonfly/c/sys/file.cr lib/crystal/lib_c/x86_64-dragonfly/c/sys/mman.cr lib/crystal/lib_c/x86_64-dragonfly/c/sys/resource.cr lib/crystal/lib_c/x86_64-dragonfly/c/sys/select.cr +lib/crystal/lib_c/x86_64-dragonfly/c/sys/sendfile.cr lib/crystal/lib_c/x86_64-dragonfly/c/sys/socket.cr lib/crystal/lib_c/x86_64-dragonfly/c/sys/stat.cr lib/crystal/lib_c/x86_64-dragonfly/c/sys/time.cr @@ -1239,6 +1247,7 @@ lib/crystal/lib_c/x86_64-freebsd/c/sys/ktls.cr lib/crystal/lib_c/x86_64-freebsd/c/sys/mman.cr lib/crystal/lib_c/x86_64-freebsd/c/sys/resource.cr lib/crystal/lib_c/x86_64-freebsd/c/sys/select.cr +lib/crystal/lib_c/x86_64-freebsd/c/sys/sendfile.cr lib/crystal/lib_c/x86_64-freebsd/c/sys/socket.cr lib/crystal/lib_c/x86_64-freebsd/c/sys/stat.cr lib/crystal/lib_c/x86_64-freebsd/c/sys/time.cr @@ -1289,6 +1298,7 @@ lib/crystal/lib_c/x86_64-linux-gnu/c/sys/mman.cr lib/crystal/lib_c/x86_64-linux-gnu/c/sys/random.cr lib/crystal/lib_c/x86_64-linux-gnu/c/sys/resource.cr lib/crystal/lib_c/x86_64-linux-gnu/c/sys/select.cr +lib/crystal/lib_c/x86_64-linux-gnu/c/sys/sendfile.cr lib/crystal/lib_c/x86_64-linux-gnu/c/sys/socket.cr lib/crystal/lib_c/x86_64-linux-gnu/c/sys/stat.cr lib/crystal/lib_c/x86_64-linux-gnu/c/sys/time.cr @@ -1339,6 +1349,7 @@ lib/crystal/lib_c/x86_64-linux-musl/c/sys/mman.cr lib/crystal/lib_c/x86_64-linux-musl/c/sys/random.cr lib/crystal/lib_c/x86_64-linux-musl/c/sys/resource.cr lib/crystal/lib_c/x86_64-linux-musl/c/sys/select.cr +lib/crystal/lib_c/x86_64-linux-musl/c/sys/sendfile.cr lib/crystal/lib_c/x86_64-linux-musl/c/sys/socket.cr lib/crystal/lib_c/x86_64-linux-musl/c/sys/stat.cr lib/crystal/lib_c/x86_64-linux-musl/c/sys/time.cr @@ -1478,6 +1489,7 @@ lib/crystal/lib_c/x86_64-solaris/c/sys/file.cr lib/crystal/lib_c/x86_64-solaris/c/sys/mman.cr lib/crystal/lib_c/x86_64-solaris/c/sys/resource.cr lib/crystal/lib_c/x86_64-solaris/c/sys/select.cr +lib/crystal/lib_c/x86_64-solaris/c/sys/sendfile.cr lib/crystal/lib_c/x86_64-solaris/c/sys/socket.cr lib/crystal/lib_c/x86_64-solaris/c/sys/stat.cr lib/crystal/lib_c/x86_64-solaris/c/sys/time.cr
