This repository houses open-source software components of Playbit. Many parts of Playbit are still closed source, though we are committed to opening that source up in the future.
With Playbit running, open a shell in your Playbit workspace over SSH and clone the repo:
$ ssh [email protected] -p 22001 -J [email protected]:52915
$ git clone https://github.com/playbit/public.git /src && cd /src
Software is organized as discreet components called "packages."
For example ports/libc and ports/bash are two different packages.
A package may depend on other packages by specifying a dependency in its build script or makefile.
Packages are built using tools/pbuild inside sandboxes (chroot with overlayfs, similar to nix) where their declared dependencies are present. pbuild ensures that packages are built in dependency order.
For example, try building curl:
$ tools/pbuild ports/curl
checking sources ...
building ports/libc ...
...
building ports/curl: OK /var/pbuild/ports/curl.arch/out
$ /var/pbuild/ports/curl.$(uname -m)/out/distroot/bin/curl --version
curl 8.7.1 ...
$
See ports/README.md for details on building & developing ports.
As a convenience for SSH, you may want to add the following to your host's ~/.ssh/config
so that you can simply type ssh playbit:
Host playbit
Hostname 127.0.0.1
User root
Port 22001
ProxyJump [email protected]:52915
Since packages are built in sandboxes, they are not installed on the system by default. This ensures that your workspace stays unaffected.
To install a package to be used in a workspace, ask pbuild to --install it for you.
For example, install GVIM:
$ tools/pbuild ports/gvim --install=/devel
building ports/gvim.arch: OK /var/pbuild/ports/gvim.arch/out/distroot 32.6M
Install ports/gvim at /home/root/devel
You can now go to /devel/Workspace/Applications in Playbit and open GVIM.
We recommend installing into a separate root /devel so that you don't overwrite
libraries and programs in your workspace.
Subdirectories may be covered by specific licenses, declared in files named "LICENSE.txt" or "COPYING" (or similar.)
All other material in this repository is covered by the Apache 2 license,
which can be found in whole at LICENSE.txt