Skip to content

Build Guide 0.85

Sergii Stoian edited this page Oct 19, 2021 · 1 revision

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

I’ve prepared some packages that are not part of NEXTSPACE. Although they are needed to compile NEXTSPACE from sources and run applications. 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}'`

    • Extract 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-applications.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).