Skip to content

Build Guide

Sergii Stoian edited this page Jun 7, 2019 · 12 revisions

Disclaimer: NEXTSPACE is still in active development. Some steps in this guide may end with error on your setup. You have 2 choices:

  1. Help me to make project better by opening issue.
  2. Wait for release and install everything from tested packages.

Stay tuned, patient and hungry. :)

Available packages

To start acquaintance with project I’ve prepared packages that are not part of NEXTSPACE. They are mandatory to compile NEXTSPACE sources. Here is a brief description of them:

  • fresh LLVM and Clang (llvm-libs, clang-libs, clang)

Note: CentOS Extras repository contains outdated version of clang - 3.4.2

  • libdispatch - Grand Central Dispatch multithreading library from Apple. Compiled sources from Apple Swift repository.
  • libobjc2 - GNUstep Objective-C runtime with support of Objective-C 2.0.
  • nextspace-core - contains system related files configuration files:
    • /etc - Xorg, linker (ld.so.conf.d), user shell profile (profile.d), UDisks2 (polkit and udev), home directory skeleton for newly created user;
    • /Library/Preferences - GNUstep configuration file;
    • /root - additional files for ‘root’ user. Essential for running Login application;
    • /usr/NextSpace - initial NEXTSPACE directory hierarchy with some configuration files.
  • nextspace-core-devel - contains prepared GNUstep Make.
  • nextspace-gnustep (-devel) - contains patched GNUstep libraries and GORM. Version of GNUstep components represented in package name. For example, package nextspace-gnustep- 1.24.8 _ 0.24.1 -10.el7.centos.x86_64.rpm contains GNUstep Base 1.24.8, GNUstep GUI and Back 0.24.1.

Install and build

1. Install NEXTSPACE

Install NEXTSPACE as described in “Install Guide” wiki page.

2. Prepare development environment

Install the following development packages from the latest NEXTSPACE release with yum -y install:

  • llvm-libs
  • clang-libs
  • clang
  • libdispatch-devel
  • libobjc2-devel
  • nextspace-core-devel
  • nextspace-gnustep-devel

3. Build NEXTSPACE from git repository

  1. Install git tool:

    # yum -y install git

  2. Log in as newly created user. And go to the directory where you want to place NEXTSPACE source code tree.
  3. Fetch sources from github:

    $ git clone https://github.com/trunkmaster/nextspace.git

    $ cd nextspace

  4. Take this step if you want GNUstep libraries with fresh patches:

    Install patch tool as root:

    # yum install patch

    Go to directory with GNUstep sources inside NEXTSPACE cloned repository:

    $ cd Libraries/gnustep

    Install required development packages as `root`:

    # yum install `grep "BuildRequires" nextspace-gnustep.spec | awk -c '{print $2}'`

    Unarchive GNUstep sources, apply patches to gnustep-gui and gnustep-back

    $ tar zxvf gnustep-gui-0.25.0.tar.gz

    $ patch -p0 < gnustep-gui-*.patch

    $ tar zxvf gnustep-back-0.25.0.tar.gz

    $ patch -p0 < gnustep-back-*.patch

    Build and install GNUstep GUI:

    $ cd gnustep-gui-0.25.0

    $ ./configure && make

    $ su

    # make install

    # ldconfig

    # exit

    Build and install GNUstep Back:

    $ cd ../gnustep-back-0.25.0

    $ ./configure --enable-server=x11 --enable-graphics=art --with-name=art

    $ make

    $ su

    # make fonts=no install

    # ldconfig

    # exit

  5. Install BuildRequires packages listed in ‘nextspace-frameworks.spec’ inside Frameworks subdir:

    # su

    # cd <directory with nextspace sources/>Frameworks

    # yum -y install `grep "BuildRequires" nextspace-frameworks.spec | awk -c '{print $2}'`

    # exit

  6. Build and install frameworks

    $ cd Frameworks

    $ make

    $ su

    # make install

    # ldconfig

  7. Install BuildRequires packages listed in ‘nextspace-desktop.spec’ inside Applications subdir:

    # yum -y install `grep "BuildRequires" nextspace-desktop.spec | awk -c '{print $2}'`

    # exit

  8. Build and install applications:

    $ cd ../Applications

    $ make

    $ su

    # make install

  9. Restart login panel service

    # systemctl restart loginwindow

  10. Xorg will be started and you should see Login panel. If not check your Xorg log (you may lack some drivers for your hardware).
Clone this wiki locally