./skift.sh tools doctor and ./skift.sh image start failed on macOS
I'm on macOS 15.6.1 (Apple Sillicon)
./skift.sh tools setup worked fine. Previously I already had most of the dependencies installed, so it only installed ccache, lld, and ninja.
./skift.sh tools doctor failed:
Warning: Plugin .cutekit/extern/cute-engineering/ce-mdi/meta/plugins/__init__.py loading skipped due to: Expected cutekit version 0.9.0 but found 0.8.8
Warning: Plugin meta/plugins/__init__.py loading skipped due to: Expected cutekit version 0.9.0 but found 0.8.8
Error: Unknown subcommand 'doctor'
Usage: tools {cxx-modmap|cxx-dyndep} [args...]
./skift.sh model install seemed work fine
Warning: Plugin meta/plugins/__init__.py loading skipped due to: Expected cutekit version 0.9.0 but found 0.8.8
Installing cute-engineering/ce-heap-v1.1.0 from https://github.com/cute-engineering/ce-heap.git...
Installing cute-engineering/ce-mdi-v0.5.0 from https://github.com/cute-engineering/ce-mdi.git...
Installing cute-engineering/ce-libc-v1.1.0 from https://github.com/cute-engineering/ce-libc.git...
Installing cute-engineering/ce-libm-v1.0.2 from https://github.com/cute-engineering/ce-libm.git...
Installing cute-engineering/ce-stdcpp-v1.4.0 from https://github.com/cute-engineering/ce-stdcpp.git...
Installing cute-engineering/ce-targets-v0.3.0 from https://github.com/cute-engineering/ce-targets.git...
./skift.sh image start also failed
Warning: Plugin .cutekit/extern/cute-engineering/ce-mdi/meta/plugins/__init__.py loading skipped due to: Expected cutekit version 0.9.0 but found 0.8.8
Warning: Plugin meta/plugins/__init__.py loading skipped due to: Expected cutekit version 0.9.0 but found 0.8.8
Error: Unknown subcommand 'image'
Usage: cutekit [--safemode] [--verbose] {jexpr|shell|model|tools|builder|build|run|clean|export|fmt|lint|package|usage|version} [args...]
I pushed a fix. Please tell me if it works. You might have to delete the .cutekit directory
OK I wiped skift directory and clone the repo again.
./skift.sh image start still fail, with slightly different error message:
Error: Unknown subcommand 'start'
Usage: image {build|boot|wasm} [args...]
Perhaps it has something to do with /skift.sh tools doctor?
./skift.sh tools doctor
Checking if requests is available... No module named 'requests'
Error: requests is not available
Checking if graphviz is available... ok
Module: graphviz
Version: 0.20.3
Location: /Users/andretampubolon/Lab/OSDev/skift/.cutekit/venv/lib/python3.13/site-packages/graphviz/__init__.py
Checking if magic is available... ok
Module: magic
Version: unknown
Location: /Users/andretampubolon/Lab/OSDev/skift/.cutekit/venv/lib/python3.13/site-packages/magic/__init__.py
Checking if cutekit is available... ok
Module: cutekit
Version: unknown
Location: /Users/andretampubolon/Lab/OSDev/skift/.cutekit/venv/lib/python3.13/site-packages/cutekit/__init__.py
Checking if qemu-system-x86_64 is available... ok
Command: qemu-system-x86_64
Location: /opt/homebrew/bin/qemu-system-x86_64
Version: 10.1.0
Checking if clang is available... ok
Command: clang-21
Location: /opt/homebrew/opt/llvm/bin/clang-21
Version: 21.1.1
Checking if clang++ is available... ok
Command: clang++
Location: /opt/homebrew/opt/llvm/bin/clang++
Version: 21.1.1
Checking if llvm-ar is available... ok
Command: llvm-ar
Location: /opt/homebrew/opt/llvm/bin/llvm-ar
Version: 21.1.1
Checking if ld.lld is available... ok
Command: ld.lld
Location: /opt/homebrew/bin/ld.lld
Version: 21.1.1
Checking if nasm is available... ok
Command: nasm
Location: /opt/homebrew/bin/nasm
Version: 2.16.3
Checking if ninja is available... ok
Command: ninja
Location: /opt/homebrew/bin/ninja
Version: 1.13.1
Checking if cutekit is available... ok
Command: cutekit
Location: /Users/andretampubolon/Lab/OSDev/skift/.cutekit/venv/bin/cutekit
Version: 0.9.3
Checking if chatty is available... chatty not found
Error: chatty is not available
Checking if pkg-config is available... ok
Command: pkg-config
Location: /opt/homebrew/bin/pkg-config
Version: 2.5.1
Checking if sgdisk is available... sgdisk not found
Error: sgdisk is not available
Checking if mformat is available... ok
Command: mformat
Location: /opt/homebrew/bin/mformat
Version: 4.0.49
Checking if mcopy is available... ok
Command: mcopy
Location: /opt/homebrew/bin/mcopy
Version: 4.0.49
Checking if mmd is available... ok
Command: mmd
Location: /opt/homebrew/bin/mmd
Version: 4.0.49
Checking if header <coroutine> is available... ok
Checking if symbol std::coroutine_handle is available... ok
Checking if header <compare> is available... ok
Checking if symbol std::strong_ordering is available... ok
Checking if symbol std::weak_ordering is available... ok
Checking if symbol std::partial_ordering is available... ok
Checking if header <initializer_list> is available... ok
Checking if symbol std::initializer_list is available... ok
Checking if header <new> is available... ok
Checking if header <utility> is available... ok
Checking if header <memory> is available... ok
Checking if header <limits.h> is available... ok
Checking if symbol CHAR_BIT is available... ok
Checking if header <math.h> is available... ok
Checking if header <cstddef> is available... ok
Checking if symbol size_t is available... ok
Checking if symbol ptrdiff_t is available... ok
Checking if symbol std::nullptr_t is available... ok
Checking if header <stdint.h> is available... ok
Checking if symbol uint8_t is available... ok
Checking if symbol uint16_t is available... ok
Checking if symbol uint32_t is available... ok
Checking if symbol uint64_t is available... ok
Checking if symbol int8_t is available... ok
Checking if symbol int16_t is available... ok
Checking if symbol int32_t is available... ok
Checking if symbol int64_t is available... ok
Checking if header <string.h> is available... ok
Checking if symbol memcpy is available... ok
Checking if symbol memmove is available... ok
Checking if symbol memset is available... ok
Checking if symbol memcmp is available... ok
Everythings looking good ​😉​👌
OK let's try another way
$ ./skift.sh image build --format=hdd
0+0 records in
0+0 records out
0 bytes transferred in 0.000004 secs (0 bytes/sec)
Error: sgdisk: Command not found
By looking at this
Checking if sgdisk is available... sgdisk not found
Error: sgdisk is not available
Checking if mformat is available... ok
Command: mformat
Location: /opt/homebrew/bin/mformat
Version: 4.0.49
Perhaps mformat is the sgdisk's alternative for macOS?
Now I can build skift. The problem is fixed by installing gptfdisk.... after poking at setup-darwin.sh
/skift.sh image build --format=hdd
0+0 records in
0+0 records out
0 bytes transferred in 0.000004 secs (0 bytes/sec)
Creating new GPT entries in memory.
Warning: The kernel may continue to use old or deleted partitions.
You should reboot or remove the drive.
The operation has completed successfully.
ninja: no work to do.
ninja: no work to do.
[19/328] skift-x86_64/strata-device: cxx .cutekit/build/skift-x86_64-8f047386/strata-device/__obj__/ps2.cpp.o...
FAILED: [code=1] .cutekit/build/skift-x86_64-8f047386/strata-device/__obj__/ps2.cpp.o
clang++ -MD -MF .cutekit/build/skift-x86_64-8f047386/strata-device/__obj__/ps2.cpp.o.d -std=gnu++2c -Wall -Wextra -Werror -fcolor-diagnostics -fmodules-reduced-bmi --target=x86_64-none-elf -fno-exceptions -fno-rtti -O3 -I.cutekit/extern/cute-engineering -I.cutekit/extern/cute-engineering/ce-libc/src/ce-libc -I.cutekit/extern/cute-engineering/ce-libm/src/ce-libm -I.cutekit/extern/cute-engineering/ce-mdi/src -I.cutekit/extern/cute-engineering/ce-stdcpp/src/ce-stdcpp -I.cutekit/generated -I.cutekit/generated/__aliases__ -Isrc/apps -Isrc/assets -Isrc/impls -Isrc/kernel -Isrc/libs -Isrc/specs -Isrc/srvs -Isrc/web -D__ck_abi_sysv__ -D__ck_abi_value=sysv -D__ck_arch_value=x86_64 -D__ck_arch_x86_64__ -D__ck_bits_64__ -D__ck_bits_value=64 -D__ck_sys_encoding_utf8__ -D__ck_sys_encoding_value=utf8 -D__ck_sys_line_ending_lf__ -D__ck_sys_line_ending_value=lf -D__ck_sys_path_separator_slash__ -D__ck_sys_path_separator_value=slash -D__ck_sys_skift__ -D__ck_sys_terminal_ansi__ -D__ck_sys_terminal_value=ansi -D__ck_sys_value=skift -D__ck_toolchain_clang__ -D__ck_toolchain_value=clang -D__ck_version_v0_1_0__ -D__ck_version_value=v0.1.0 @.cutekit/build/skift-x86_64-8f047386/strata-device/__obj__/ps2.cpp.o.modmap -c -o .cutekit/build/skift-x86_64-8f047386/strata-device/__obj__/ps2.cpp.o src/srvs/strata-device/ps2.cpp
In module 'Karm.App' imported from src/srvs/strata-device/node.h:4:
/Users/andretampubolon/Lab/OSDev/skift/src/libs/karm-app/event.cpp:58:43: error: missing field 'mods' initializer [-Werror,-Wmissing-field-initializers]
58 | : _buf{std::forward<Args>(args)...} {}
Oh well, at least there's progress :D
I have something alike.
skift % ./skift.sh model install
Error: Unknown subcommand 'install'
Usage: model {list|dump|mount|unmount} [args...]
@thetoasta the command changed name, the new name is now ck install
late but thanks! is there a way i can compile to iso to TRY to dualboot it? @sleepy-monax
There is no iso installer, you can build it as normal with ./skift.sh boot and then take the content of .cutekit/images/image-efi-x86_64.dir and then copy it to an UEFI partion
thank you! i'll stop commenting in here