Skip to content

Instantly share code, notes, and snippets.

View Toasterson's full-sized avatar

Till Wegmüller Toasterson

View GitHub Profile

See https://gist.github.com/Toasterson/90d19ecf4e0b69cfbcd9566a7c098eb8 for the steps.

The problem seems to come from gcc but I have no clue what could be wrong with aarch_aapcs64.s

error: failed to run custom build command for `psm v0.1.21`

Caused by:
  process didn't exit successfully: `/var/lib/abuild/rust/build/x86_64-unknown-illumos/stage1-rustc/release/build/psm-61c9c6ef89c427d5/build-script-build` (exit status: 1)
  --- stdout
@Toasterson
Toasterson / .cargo_config.toml
Last active December 21, 2023 23:12
Making a arm cross compile toolchain for illumos.
# This file allows any cargo project to cross compile.
# Adjust paths to the tools as needed.
# place unser .cargo/config inside the project.
[target.aarch64-unknown-illumos]
linker = "/var/lib/abuild/arm64-gate/build/cross/bin/aarch64-unknown-solaris2.11-gcc"
rustflags = [ "-Clink-arg=--sysroot=/var/lib/abuild/arm64-gate/build/sysroot" ]
@Toasterson
Toasterson / CoWorking Meetup 1 Notes.md
Created November 13, 2023 18:35
CoWorking Meetup 1 Notes
  • There was a tool request for a tool that takes metadata from recipies and shares them between repos and informs people about new versions of packages on (pkgsrc, oi-userland and omnios build tooling)
    • https://repology.org/
      • doesn’t notify maintainers
      • provides a view of which packages are out of date
    • Till has a prototype that will bump versions called “the forge” which will also add activitypub support for friendly forge formatted PR's to upstream activity pub
  • Docs
    • priority is to guide new people into the process of contributing in various ways process
    • What do people need on terms of full tutorials?
  • Two diverging versions of IPS (with OI and OmniOS), but only the differing zone brands are a problem.
  • Rust version is on the backburner - as it was figured out what the slow issue was in the sheer amount of userland incorporations built by the repo.
#!/bin/ksh93
set -e
DISK=$PWD/qemu-setup/illumos-disk.img
POOL=armpool
MNT=/mnt
ROOTFS=ROOT/braich
ROOT=$MNT/$ROOTFS
DISKSIZE=8g

Changelog

All notable changes to this project will be documented in this file.

[unreleased]

APR

  • Distribute only 64 bit libraries and binaries

This instructions are temporary and will later be simplified once we provide libstd and libc precompiled and as target installable via packages. But for now it outlines the process needed to get a standard rust compiler to compile unknown illumos arch combination like sparcv9-unknown-illumos aarch64-unknown-illumos and riscv64-unknown-illumos

Note: if your crate needs an external C Library you will have to fiddle with it a bit to properly set the include and cross build directives that crate supports.

  1. Get Rustup via the normal channels (goto https://rustup.rs copy and paste OSX instructions)
  2. Install Nightly toolchain
  3. print an already existing illumos rustc target and adjust to the target CPU rustc +nightly -Z unstable-options --target=aarch64-unknown-linux --print target-spec-json
    1. check other OS's spec files for that CPU to see what is OS specific (most) and what is CPU specific
    2. use https://llvm.org/docs/LangRef.html#data-layout to adjust data-layout key according to platfo

The Gist of things we should have in illumos-rs

When we make applications and libraries interacting with illumos there are a couple of common things everybody needs to do. On one hand operating the Systems tools to manage things like links but also to edit and manage files. Configuration management is out of scope for this library but some of the parts of it should have idempotent components (the Rust Standard library already has the others and we use those when needed)

When implmeneting some of these it will initially need a need that justifies it. But once that person has done it and contributed their work we will see others making application because it gets easier.

@Toasterson
Toasterson / README.md
Last active September 28, 2022 15:49
illumos gate forking and upstreaming Guide

illumos gate forking and upstreaming Guide

This guide is intended to get people started to Organise and maintain forks of illumos-gate similar to illumos-omnios or illumos-joyent. While the reasons one might want to make a fork might be many or how long that fork should exist, it is not in the scope of this guide to give information on why one should do this. It is assumed this reasoning has already happened and the reader wants to maintain a temporarily or full fork. All steps can be done with the GitHub CLI aswell but since that does not compile on illumos yet, it is left out of this guide.

Starting the fork.

To start the fork with purely git, use github's fork button. Then Clone the new fork. replace my username toasterson

diff --git a/components/developer/samurai/Makefile b/components/developer/samurai/Makefile
index e9534f9d0..17a5cafcc 100644
--- a/components/developer/samurai/Makefile
+++ b/components/developer/samurai/Makefile
@@ -33,6 +33,6 @@ include $(WS_MAKE_RULES)/common.mk
COMPONENT_BUILD_ENV += CC="/usr/bin/gcc"
COMPONENT_BUILD_ARGS += CC="/usr/bin/gcc"
-COMPONENT_INSTALL_ARGS += PREFIX=$(PROTOUSRDIR)
+COMPONENT_INSTALL_ARGS += PREFIX=/usr DESTDIR=$(PROTO_DIR)
@Toasterson
Toasterson / FRAOSUG-Cloud_Init-2021-05-18.org
Last active May 22, 2021 23:16
Presentation in FRAOSUG on the 18th of Mai 2021

Was ist es?

  • Dateiformat zum Automatisieren von Installationen in einer Cloud Umgebung
  • Script ausfuehrungs umgebung nach firstboot
  • Framework zum custom images vorbereiten (appliance vendor)

Wo findet man das normalerweise?

  • Cloud Umgebungen AWS, Azure, DigitalOcean, OpenStack, Alibaba…

Konzepte

  • Datasources
  • Metadata
  • userData