2224 Commits

Author SHA1 Message Date
Linus Groh
6365c369b8 Ports: Update python3 to 3.14.4 2026-04-18 12:51:49 +02:00
Linus Groh
eb13cb1e02 Ports: Update zig to 0.16.0
Some notes:

- Zig removed support for z/OS[1] and with it some files from libc++
  that we were using with patches originating from the LLVM port:
  - libcxx/include/__support/ibm/locale_mgmt_zos.h
  - libcxx/src/support/ibm/xlocale_zos.cpp
  I put them back in and applied the previous patches, all in one big
  change.
- The directory iterator code needs to be ported to the new std.Io
  interface, but unlike before missing platforms are handled gracefully
  by returning an error at runtime so I'll do this later.
- Minor parts of the patch set have been upstreamed[2][3], more will
  follow.

[1]: https://github.com/ziglang/zig/pull/25731
[2]: https://codeberg.org/ziglang/zig/pulls/31916
[3]: https://codeberg.org/ziglang/zig/pulls/31931
2026-04-17 13:38:44 -04:00
Sönke Holz
3e0ef9397a Ports/neovim: Add SerenityOS system clipboard support
This makes the "+ (and "*) registers work in SerenityOS.
2026-04-09 22:04:19 +02:00
Sönke Holz
184b342781 Ports/neovim: Add has('serenity') to check if system is SerenityOS
This will be needed in the next commit to check if the SerenityOS
`copy` and `paste` command-line utilities are supported.
2026-04-09 22:04:19 +02:00
Sönke Holz
9daae4cad3 Ports/neovim: Support the SerenityOS "open" tool 2026-04-09 22:04:19 +02:00
Sönke Holz
1b61338746 Ports: Remove multilib handling from luajit
i686 support war removed, so there is no need to pass -m64 explicitly.
Before i686 support was removed in b49c4eb94f, we used to pass -m32
for 32-bit systems here.

Additionally, installing multilib development packages like
libc6-dev-i386 should be unnecessary now, so the flashy warning message
can be removed.

This also makes the port compile on AArch64 now. Previously, it failed
to build because M_FLAG was undefined.

It still won't build on RISC-V since LuaJIT itself doesn't support
RISC-V yet (https://github.com/LuaJIT/LuaJIT/pull/1267).
2026-04-07 21:37:52 +02:00
Sönke Holz
6e6243acbf Ports: Add neovim 2026-04-07 14:51:25 +02:00
Sönke Holz
a1857bb779 Ports: Make libuv retrieve the CPU count via sysconf()
This is better than hardcoding it to 0.
This new implementation is a direct copy of the IBM i implementation.

Neovim uses this count to determine how many threads to spawn in
`vim.pack`. Previously, it spawned 0 threads and got stuck when
downloading plugins.
2026-04-07 14:51:25 +02:00
Sönke Holz
4a70dfc2db Ports: Add tree-sitter-{c,lua,markdown,query,vim,vimdoc}
These parsers are required by neovim.
2026-04-07 14:51:25 +02:00
Sönke Holz
8f22718eb0 Ports: Add utf8proc 2026-04-07 14:51:25 +02:00
Sönke Holz
6388beea92 Ports: Add msgpack-c 2026-04-07 14:51:25 +02:00
Sönke Holz
16eda703ef Ports: Add luv 2026-04-07 14:51:25 +02:00
Sönke Holz
ad461c6a88 Ports: Add LPeg 2026-04-07 14:51:25 +02:00
Sönke Holz
eea06bdf0b Ports: Add unibilium
The original project was abandoned, so this uses neovim's fork, see
https://github.com/neovim/neovim/blob/master/MAINTAIN.md#third-party-dependencies
for more details.
2026-04-07 14:51:25 +02:00
Sönke Holz
0d5087e8d0 Ports: Make libuv assume that errnos are positive in serenity 2026-04-07 14:51:25 +02:00
Sönke Holz
a266e90003 Ports: Update LuaJIT to 18b087cd
LuaJIT switched to a rolling-release model with multiple maintained
branches.
This commit hash is the current head of the branch currently marked
as "production": v2.1.
2026-04-07 14:51:25 +02:00
Sönke Holz
2e36c3202a Ports: Build flex with -std=c17
Support for incomplete function prototypes was removed in C23.
2026-03-18 19:21:51 +01:00
Sönke Holz
87d5669134 Ports: Use single quotes in flex package.sh where possible 2026-03-18 19:21:51 +01:00
Sönke Holz
4314f0ac2a Ports: Update flatbuffers to 25.12.19
The old version failed to compile with
"error: assignment of read-only member
 'flatbuffers::span<T, Extent>::count_'."
2026-03-18 19:21:51 +01:00
Sönke Holz
d1d83862ce Ports: Add missing <alloca.h> include in figlet 2026-03-18 19:21:51 +01:00
Sönke Holz
22a20658e7 Ports: Unbreak editline
This port uses incomplete function prototypes, which are no longer
supported as of C23.

Additionally, it failed to compile due to a missing <sys/select.h>
include. For some reason, there was already an upstream patch for this,
but it wasn't included in our patches.
2026-03-18 19:21:51 +01:00
Sönke Holz
cd7f148558 Ports: Build e2fsprogs with -std=c17
The port otherwise fails to compile with
"error: 'bool' cannot be defined via 'typedef'."
2026-03-18 19:21:51 +01:00
Sönke Holz
9d4af518f0 Ports: Add missing <unistd.h> include in dungeonrush
chdir() is defined in <unistd.h>.
2026-03-18 19:21:51 +01:00
Sönke Holz
ae8444de2e Ports: Build cpio with -std=c17
The port otherwise fails to compile with a
`-Wincompatible-pointer-types` error.
2026-03-18 19:21:51 +01:00
Sönke Holz
3725d92146 Ports: Update ClassiCube to 1.3.8
The old version failed to compile with a `-Wincompatible-pointer-types`
error.
2026-03-18 19:21:51 +01:00
Sönke Holz
3735bc2fee Ports: Update chocolate-doom to 3.1.1
The old version failed to build with
"error: cannot use keyword 'false' as enumeration constant."

The new version doesn't ship with a pre-built `./configure` script
anymore, so we need to run `autoreconf -i` manually.
2026-03-18 19:21:51 +01:00
Sönke Holz
3025f5a4e6 Ports: Build carl with -std=c17
The port otherwise fails to build with a `-Wincompatible-pointer-types`
error caused by an incorrect signal handler function signature.
2026-03-18 19:21:51 +01:00
Sönke Holz
2ec81e01d5 Ports: Build bc with -std=c17
This port tries to do `UINTMAX_C(true)`.
`UINTMAX_C(x)` is defined as `x ## UL`, resulting in `trueUL` when
using C23's bool keywords.
2026-03-18 19:21:51 +01:00
Sönke Holz
0ddb109ed7 Ports: Update libmpeg2 URL
The old URL leads to a 404 page.
2026-03-18 19:21:51 +01:00
Sönke Holz
16432d2231 Ports: Use a stable URL for Another-World
Downloading master.zip won't always result in the same version, which
leads to an in incorrect SHA256 checksum.
2026-03-18 19:21:51 +01:00
Sönke Holz
04b86f16e8 Ports: Unbreak alpine
Building with more than one job appears to broken.

Additionally, it relies on incomplete function prototypes, which C23
removed support for.

Furthermore, it doesn't build without
`-Wno-error=incompatible-pointer-types` anymore, as it passes
incorrect function pointer types to `qsort()`.
2026-03-18 19:21:51 +01:00
Bastiaan van der Plaat
b449ca409f Ports/ncurses: Require tic >= 6.1
macOS ships tic 6.0.20150808 which fails to build terminfo for
ncurses 6.5. Bump the minimum required version to 6.1 so the
Homebrew tic is used instead.
2026-03-18 14:21:09 +01:00
Lucas Chollet
cc0939a666 Everywhere: Stop using pc in our target triples
While `pc` is not particularly wrong on x86_64, it's nonsensical on
other supported platforms, namely aarch64 and riscv64.

For consistency, we now don't use this vendor anymore, regardless of the
platform.

Within the LLVM project, we now build as `$arch-serenity`. This is
enough in most cases, the only place where we have to specify a vendor
is the target .cfg file where we use `$arch-unknown-serenity`.

When building GCC and friends, again we simply identify as
`$arch-serenity` and this is enough.

As a result, the tools in Toolchain/Local/$arch/bin are now named after
this pattern: `$arch-serenity-$tool`.

These changes affect the toolchain build scripts, serenity's build
scripts and the Ports.

The last place where we should see `x86_64-pc-serenity` is the output of
`config.sub`, which assume the vendor is `pc` on vendor-less `x86*`
triples. So `x86_64-serenity` is expanded to `x86_64-pc-serenity`,
luckily enough and AFAICT, the whole GNU ecosystem considers `pc`,
`unknown` and vendor-less target triples the same. So `configure`
shouldn't have an issue finding the right tools anyway.

The gn files were edited with sed and are not tested.

This commit also includes a check in `Meta/serenity.sh` to give a nicer
error message when trying to build the system with an old toolchain.

----

To test this patch, on a clean tree I:
 - Ran `./Meta/serenity.sh x86_64 GNU`
 - Ran `./Toolchain/BuildJakt.sh`
 - Tested these ports: python3(configure based), libjxl(cmake based) and
   rizin(meson based)
 - Also booted on aarch64 and risv64

I also repeated the steps above with a Clang toolchain.

On a working tree I tested all the affected ports, the results are:
 - tinycc build fine but can't compile programs, I observed the same on
   master.
 - gdb and epsilon don't build but report the same errors as on master.
 - I manually edited the libgpg-error, and it builds fine.
 - The gcc port works fine.
2026-03-13 20:59:49 +01:00
Lucas Chollet
3a272e71b8 Ports: Explicitely link against libintl when using libgpg-error
For some reason, this will become necessary in the next commit. This
library is already included in glibc so it is not needed to link against
it on Linux, but otherwise required.
2026-03-13 20:59:49 +01:00
Lucas Chollet
94eedd35cd Ports: Drop the libtool patch for libgpg-error
These changes were upstreamed by timschumi a few years ago. The patch
was dropped by doing:
```
$ ./package.sh dev
$ git am --skip # As there are no changes on the git tree.
$ exit
```
2026-03-04 16:58:05 +01:00
Sönke Holz
5d7141dc6a Ports: Replace explicit mentions of x86_64 in README
Ports can be compiled for architectures other than x86-64.
2026-03-01 10:41:51 +01:00
Sönke Holz
8f0711e4ee Ports: Default to host architecture
serenity.sh defaults to the host architecture since ee2632fe0b,
so I think it's sensible to also default to it here.
2026-03-01 10:41:51 +01:00
Lucas Chollet
b0e7120061 Ports: Don't use the fully qualified target triple
`configure` is smart enough to find the correct compiler from a
vendor-less target triple.

This will ease a future target-triple change.
2026-02-28 15:53:12 +01:00
Lucas Chollet
c38fffcd82 Ports: Let the port system choose LD when building pv
This logic is already implemented in hosted_defs.sh.
2026-02-28 10:03:32 +01:00
Lucas Chollet
6e2424934e Ports: Update pv to 1.10.3
Looks like we don't need -Wno-deprecated-declarations anymore. Thanks
for catching this Sönke!
2026-02-28 10:03:32 +01:00
Lucas Chollet
eb1d252345 Ports: Remove qop
The project looks abandoned. It never left the draft status and the
last commit was two years ago, which is only two months after the
initial commit.
2026-02-27 23:09:34 +01:00
Lucas Chollet
19ff88d0c2 Port: Stop passing unknown option to thesilversearcher's configure
I was hit by a "configure: WARNING: unrecognized options:
--disable-utf8" when testing the second-to-last commit.
2026-02-27 11:41:43 +01:00
Lucas Chollet
6dc773ac0f Port: Stop passing unknown option to make's configure
I was hit by a "configure: WARNING: unrecognized options:
--with-sysroot" when testing the last commit.
2026-02-27 11:41:43 +01:00
Lucas Chollet
cdb52e6550 Port: Stop specifying the --target option when not necessary
These ports don't interact directly with target-specific binaries so
passing a --target option don't make sense for them.
2026-02-27 11:41:43 +01:00
Lucas Chollet
38439f4cc8 Ports: Update emu2
This allows us to drop a patch and doesn't force us to explicitely
specify CC anymore.
2026-02-27 11:31:05 +01:00
Sönke Holz
a6f1843787 Ports: Stop defining _GNU_SOURCE for endian.h in tree-sitter
This is no longer necessary since the previous commit.
2026-02-26 23:09:53 +01:00
Lucas Chollet
26cb397eb3 Toolchain+Ports: Update LLVM to 22.1.0 2026-02-26 21:13:47 +01:00
Lucas Chollet
7791306bf4 Ports: Make doom build with more recent compilers 2026-02-26 18:52:30 +01:00
Lucas Chollet
9a91221ff3 Ports: Use the main sourceforge address for timidity
The old one seems to be dead.
2026-02-26 18:52:30 +01:00
Sönke Holz
f11cac8ecb Ports: Cherry-pick an RVVM fix to make it boot serenity guests
Otherwise serenity guests will hang when booted in the RVVM port.
2026-02-15 12:22:52 -05:00