Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Cebion/Portmaster_builds
Compile instructions and Portmaster releases
https://github.com/Cebion/Portmaster_builds
Last synced: about 1 month ago
JSON representation
Compile instructions and Portmaster releases
- Host: GitHub
- URL: https://github.com/Cebion/Portmaster_builds
- Owner: Cebion
- Created: 2023-02-19T19:28:32.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-03-08T01:34:35.000Z (9 months ago)
- Last Synced: 2024-08-02T15:07:50.251Z (4 months ago)
- Homepage:
- Size: 69.3 KB
- Stars: 5
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome - Cebion/Portmaster_builds - Compile instructions and Portmaster releases (Others)
README
# PortMaster - Builds
This repository provides compile instructions for each port and how to setup the build environment used by me for my Ports.
Also some inforamtion I gathered and wrote down over time.# Build Environment
My current build environment is a chroot inside an Ubuntu 20.04 WSL2.
Instructions how to set it up:
Install required packages on Ubuntu 20.04 LTS WSL 2
```
sudo apt install \
build-essential \
binfmt-support \
daemonize \
libarchive-tools \
qemu-system \
qemu-user \
qemu-user-static \
gcc-aarch64-linux-gnu \
g++-aarch64-linux-gnu
```
- Download 20.04 Focal server-cloudimg-arm64-wsl.rootfs.tar.gz from Ubuntu Cloud image. https://cloud-images.ubuntu.com/releases/- Extract the tarball in a folder:
```
mkdir folder
sudo bsdtar -xpf ubuntu-20.04-server-cloudimg-arm64-wsl.rootfs.tar.gz -C folder
```- Copy qemu static binary into that folder:
```
sudo cp /usr/bin/qemu-aarch64-static folder/usr/bin
```- Start systemd with daemonize:
```
sudo daemonize \
/usr/bin/unshare -fp --mount-proc \
/lib/systemd/systemd --system-unit=basic.target
```- Check if AARCH64 binfmt entry is present:
```
ls /proc/sys/fs/binfmt_misc/
```- Mount and chroot into the environment:
```sudo mount -o bind /proc folder/proc
sudo mount -o bind /dev folder/dev
sudo chroot folder qemu-aarch64-static /bin/bash
```- In the chroot, delete /etc/resolv.conf file and write a name server to it.
```rm /etc/resolv.conf
nameserver 8.8.8.8
```
- Exit chroot
- mkdir -p folder/tmp/.X11-unix
- Create chroot.sh```
#!/bin/bashsudo daemonize \
/usr/bin/unshare -fp --mount-proc \
/lib/systemd/systemd --system-unit=basic.targetsudo mount -o bind /proc folder/proc
sudo mount -o bind /dev folder/dev
sudo mount -o bind /tmp/.X11-unix folder/tmp/.X11-unix
xhost + local:
sudo chroot folder qemu-aarch64-static /bin/bash
```
- Make the chroot.sh executable
```
chmod +x chroot.sh
```
Chroot into the new environment
```
sudo ./chroot.sh
```
- Update & Upgrade the chroot
```
apt-get update && apt-get upgrade
```- Helpful development tools & libraries to have in the chroot
```
apt-get install --no-install-recommends build-essential git wget libdrm-dev python3 python3-pip python3-setuptools python3-wheel ninja-build libopenal-dev premake4 autoconf libevdev-dev ffmpeg libboost-tools-dev magics++ libboost-thread-dev libboost-all-dev pkg-config zlib1g-dev libsdl-mixer1.2-dev libsdl1.2-dev libsdl-gfx1.2-dev libsdl2-mixer-dev clang cmake cmake-data libarchive13 libcurl4 libfreetype6-dev librhash0 libuv1 mercurial mercurial-common libgbm-dev libsdl-image1.2-dev
```- Install custom SDL2 Libraries for better compatiblity
```
rm /usr/lib/aarch64-linux-gnu/libSDL2.*
rm -rf /usr/lib/aarch64-linux-gnu/libSDL2-2.0.so*wget https://github.com/libsdl-org/SDL/archive/refs/tags/release-2.26.2.tar.gz
tar xfv release-2.26.2.tar.gz
cd SDL-release-2.26.2/./configure --prefix=/usr
make -j8
make install/sbin/ldconfig
```
Important that you don't install libsdl2-dev package.