Skip to content

Instantly share code, notes, and snippets.

View zeldin's full-sized avatar

Marcus Comstedt zeldin

View GitHub Profile
#!/bin/sh
KERNEL="$(dirname "$0")"/Image
CMDLINE="earlycon console=ttyAMA0 quiet $@"
exec taskset 0x39 qemu-system-aarch64 -machine virt -cpu host -enable-kvm -nographic -smp 1 -m 2048 -virtfs local,path=/usr/aarch64_be-unknown-linux-gnu,mount_tag=root9p,security_model=passthrough,id=root9p -virtfs local,path=/home,mount_tag=home9p,security_model=passthrough,id=home9p -kernel "$KERNEL" -append "$CMDLINE"
@zeldin
zeldin / Dockerfile
Last active October 15, 2023 20:13
Building stable-diffusion-webui on ppc64le
# This work is marked with CC0 1.0. To view a copy of this license,
# visit http://creativecommons.org/publicdomain/zero/1.0
ARG WEBUI_VERSION=1.5.2
ARG TORCH_VERSION=2.0.1
ARG VISION_VERSION=0.15.2
ARG MAX_JOBS=8
FROM debian:11 AS base
@zeldin
zeldin / Dockerfile
Created April 2, 2023 07:29
Recipe for reproducing breezy bug on Debian
FROM debian:11.6
ENV DEBIAN_FRONTEND=noninteractive
RUN echo 'deb-src http://deb.debian.org/debian bullseye main' >> \
/etc/apt/sources.list && apt-get update
RUN apt-get install -y --no-install-recommends dpkg-dev
WORKDIR /tmp
@zeldin
zeldin / Dockerfile
Created April 2, 2023 06:41
Recipe for reproducing breezy bug on Ubuntu
FROM ubuntu:jammy
ENV DEBIAN_FRONTEND=noninteractive
RUN sed -i -e '/deb-src/s/^#//' /etc/apt/sources.list && apt-get update
RUN apt-get install -y --no-install-recommends dpkg-dev
WORKDIR /tmp
RUN apt-get source breezy
// Copyright Oliver Kowalke 2016.
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
// libcontext adaptation by Marcus Comstedt 2022
#include <cstdlib>
#include <iostream>
#include <memory>
@zeldin
zeldin / bootstrap_haskell_packages_test.txt
Last active December 6, 2022 17:35
The most(?) efficient way of bootstrapping haskell packages with tests enabled
FEATURES=test USE=test emerge -1a dev-haskell/mtl dev-haskell/text dev-haskell/fail dev-haskell/transformers dev-haskell/parsec dev-haskell/transformers-compat dev-haskell/cabal dev-haskell/tagged dev-haskell/splitmix dev-haskell/primitive dev-haskell/colour dev-haskell/nanospec dev-haskell/cabal-doctest dev-haskell/th-abstraction dev-haskell/clock dev-haskell/setenv dev-haskell/stm dev-haskell/random dev-haskell/call-stack dev-haskell/ansi-terminal dev-haskell/quickcheck dev-haskell/hunit dev-haskell/tf-random dev-haskell/quickcheck-io dev-haskell/hspec-expectations
FEATURES=-test USE=-test emerge -1a dev-haskell/hspec-discover dev-haskell/hspec-core # check only these 2 are merged
FEATURES=test USE=test emerge -1a dev-haskell/hspec-discover dev-haskell/hspec-core
FEATURES=test USE=test emerge -a @preserved-rebuild # Should rebuild dev-haskell/hspec
Only three rebuilds are needed; dev-haskell/hspec-discover dev-haskell/hspec-core and dev-haskell/hspec
Build list for first command (25 builds)
Debian patches needed for riscv64:
latomic-subword.patch
Debian patches needed for ppc (32-bit):
latomic-subword.patch
latomic-64bit.patch
#!/bin/sh
version="$@"
if [ -z "$version" ]; then
version="`equery l -F '$fullversion' -p dev-lang/ghc | tail -1`"
fi
PKGDIR="/tmp/`uname -m`/packages"
[ -d "$PKGDIR" ] || mkdir -p "$PKGDIR"
export PKGDIR
CFLAGS="-O2 -pipe"
export CFLAGS
@zeldin
zeldin / gist:9bfd020b7fa2a92a95bf2e0a15a61dea
Created August 17, 2022 06:06
Boostrapping Gentoo ghc package
1) Build the Docker at https://github.com/gregwebs/ghc-docker-dev.git
for the target arch
2) Inside the Docker, make a manual build from the upstreams ghc
sources, with all the Debian patches applied, with a prefix of
/tmp/ghcfoo
3) Copy /tmp/ghcfoo from the Docker to the target system
4) Set up /etc/portage/env/dev-lang/ghc to add the ghc binary in
/tmp/ghcfoo to the path
5) Build the ebuild with USE=ghcbootstrap
6) Delete the /etc/portage/env file and rebuild the ebuild again, to
@zeldin
zeldin / onelevel_riscv.md
Created October 1, 2021 06:00
Unmerging with and without UNINSTALL_IGNORE in one level riscv profile
vanadis ~ # cat /usr/local/portage/app-misc/twoleveltest/twoleveltest-0.ebuild
EAPI=7
SLOT=0
KEYWORDS="riscv"
S="${WORKDIR}"
src_install() {
  echo "hello" > foobar
  insinto /usr/lib64/lp64d
  doins foobar