ravynsoft / ravynos

A BSD-based OS project that aims to provide source and binary compatibility with macOS® and a similar user experience.
https://www.ravynos.com
Other
5.68k stars 192 forks source link

Successful Build on CLEAN FreeBSD 15 - Required Steps #442

Closed chris-romanov closed 3 months ago

chris-romanov commented 3 months ago

THIS IS NOT A BUG. These steps have been tested on a clean SNAP 15.

Description:

To achieve a successful build on a clean FreeBSD 15 system, follow the steps below:

  1. Install the necessary packages:

pkg install -fy git nano wget cmake gmake ninja png bison autoconf automake binutils

  1. Create symbolic links to resolve missing headers and binaries:

ln -s /usr/local/include/pnglibconf.h /usr/src/lib/libpng/pnglibconf.h ln -s /usr/local/bin/ar /usr/obj/usr/src/amd64.amd64/tmp/usr/bin/ar ln -s /usr/local/bin/ranlib /usr/obj/usr/src/amd64.amd64/tmp/usr/bin/ranlib

  1. Configure DBus without launchd:

Navigate to the /usr/src/gnu/usr.bin/dbus directory and run: ./configure --without-launchd

TEMP CODE CHANGES

/sys/sys/_clock_id.h

* Linux compatible names.
79           */
80          #if __BSD_VISIBLE
81          -  #define  CLOCK_BOOTTIME      CLOCK_MONOTONIC
**81            +  #define  CLOCK_BOOTTIME      CLOCK_UPTIME**
84          #endif

/Frameworks/CoreText/fontconfig/Makefile

PASTE THIS IN FIRST LINE 2 + ARCH != uname -m 3 +
4 + # Set the TARGET_HOST based on the architecture 5 + .if ${ARCH} == "amd64" 6 + TARGET_HOST = x86_64 7 + .elif ${ARCH} == "aarch64" 8 + TARGET_HOST = aarch64 9 + .else 10 + TARGET_HOST = unsupported 11 + .endif 12 +
13 + # Check if the architecture is supported 14 + .if ${TARGET_HOST} == "unsupported" 15 + $(error Unsupported architecture: ${ARCH}) 16 + .endif

ADD --host=${TARGET_HOST}

--disable-docs --disable-docbook \
--with-pic --disable-cache-build \
--with-sysroot=${OBJTOP}/tmp \
--with-default-fonts=/System/Library/Fonts,/Library/Fonts \
--host=${TARGET_HOST}
chris-romanov commented 3 months ago

@mszoek Hi :) These steps might help stabilize the build in the main branch building.