Skip to content

RhapsodiOS/Core

Repository files navigation

Core

This is the core pieces of the Rhapsodi core source directory.

For copyright information, please see the specific source directories for more information.

Build pre-requisites

Rhapsodi's build system builds new packages within a chroot'ed environment consisting entirely of previously built packages. For example, building a new version of Kernel installs all the components needed for building Kernel, into a chrooted environment, and then starts building Kernel in that chrooted environment.

Obviously, this leads to a paradox, since you'll need existing packages before you can build anything with this system. Luckily, there are prepared packages for the entire Rhapsodi distribution. You do not need to install these packages, as they are used by the build process in their packaged form.

What you do need installed for the process to work is dpkg, dpkg_scriptlibs, and our buildtools package:

  • Mount the package CD iso
  • Manually extract the tar.gz from the deb package
  • Extract the tar.gz contents over top the root filesystem
ar -p /CDROM/debs/dpkg_1.4.1.0.2_i386-apple-rhapsody.deb data.tar.gz | tar xzf- -C /
ar -p /CDROM/debs/dpkg-scriptlib_0.2_i386-apple-rhapsody.deb data.tar.gz | tar xzf- -C /
ar -p /CDROM/debs/buildtools_0.1_i386-apple-rhapsody.deb data.tar.gz | tar xzf- -C /

At some point, a QEMU system will be provided for self-hostable builds, but the above will work for fine on a base install Rhapsody DR2 i386 system currently.

Eventually, we'll also want to get to a point where we can have a bootable ISO similar to the older Darwin releases for PPC and i386.

Building everything with the build-darwin.sh script

  • Checkout all of our source into sperate directories (either on an NFS mount or ISO image mounted)
  • Source
    • Source/Core
    • Source/GNU
    • etc
  • move build-darwin.sh out of Core to the root directory.
  • move the precompiled debs from the release ISO into a BuildDebs folder in the root directory.
  • run build-darwin.sh, it will make the temporary folders for building and create a /build directory for finished debs.

Building indivdiual packages

  • Place the debs from the Release tarball in a directory e.g. /build/repo
  • Place the source files in a directory e.g. /build/source/
usage: /usr/bin/darwin-buildpackage [ --cvs | --dir ] [ --target {all|headers|objs|local} ] <source> <deb package repository> <dstdir>
darwin-buildpackage --dir --target headers /build/source/kernel-7 /build/repo /build/built

Building from the manifest file

  • Current working directory must be directory containing source files e.g. /build/source
usage: /usr/bin/darwin-buildall <srclist> <deb package repository> <dstdir>
darwin-buildall Manifest /build/repo /build/built

About

Rhapsodi Core filesystem, build scripts, etc

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published