Skip to content

b-aaz/xlibre-ports

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Porting XLibre to FreeBSD and DragonFlyBSD! Build Status

An effort for porting XLibre to FreeBSD and DragonFlyBSD.


XLibre running on FreeBSD:

Screenshot of XLibre running on FreeBSD

XLibre running on DragonFlyBSD:

Screenshot of XLibre running on DragonFlyBSD

Installation:

Introduction

The XLibre ports are available both in the form of binary packages and a ports tree overlay.

Installing the packages from overlay:

The ports tree overlays are a lesser known feature of the FreeBSD port system that allows the user to add custom ports on top of the main ports tree (i.e. overlay them). These overlays hold the same structure as the main tree. This repository's root folder is an overlay and thus acts like a small "ports tree".

Cloning this repository and enabling it as an overlay:

To enable an overlay its path needs to be added to the OVERLAYS variable in the system's make.conf.

To use this repository as an overlay, you should first clone it and move into it:

git clone https://github.com/b-aaz/xlibre-ports.git
cd xlibre-ports/

And then register the current folder as an overlay:

echo "OVERLAYS=$(pwd)/" >> /etc/make.conf

Note: Overlays should work from any path, and there is no "standard" location in hier(7) for placing them in, but I personally prefer to put them into a directory named /usr/local/ports-overlays/.

Installing and updating the main ports tree:

Since overlays are not a complete version of the port system it is essential that the main ports tree be present on the system for them to function.

The TL;DR version of how this should be done is:

On FreeBSD:
git clone --depth 1 https://git.FreeBSD.org/ports.git -b 2025Q4 /usr/ports

For more information see: FreeBSD Handbook - Installing the Ports Collection.

On DragonFlyBSD:
cd /usr
make dports-create-shallow

For more information see: DragonFlyBSD Documentation - DPortsUsage.

Important note: This repository includes modified versions of ports form the latest quarterly branch of the FreeBSD ports tree, and it should only be used on FreeBSD with this branch installed. To find out how to update your tree to an specific version please read the above sources. The current quarterly branch which is being followed is 2025Q4.

After you made sure that your system's main ports tree is up-to-date, and you have enabled this repository as an overlay, you can use this tree just like the main ports tree:

Installing a single port:

To build and install a single port:

# Move into the port's directory
cd x11-server/xlibre-server
# Clean, build, and install it.
make clean install

This will build and install the xlibre-server port on your system.

Batch building:

To build everything in this repo just run make in the root of this overlay:

make clean
make

Note: You should always run make clean after building a port or before starting a new build.

Tip: make(1) targets can be chained; The above command can be shortened to just: make clean all

To generate packages for all the ports in this overlay run:

PACKAGES=/tmp/xlibre-pkgs make package 

Note: The folder given to PACKAGES needs to exist.

You can also run these commands in a category's directory:

cd x11-servers
make

This will build only the ports in this overlay under the x11-servers category.

You can take a look at the man page ports(7) and the top of bsd.port.mk for more information about available make targets.


Installing the binary packages from CI artifacts:

On each commit to the master branch, the CI system starts builds on FreeBSD and DragonFlyBSD for all the packages in this overlay, and on a successful build multiple pkg(7) repositories are generated containing binary packages of these ports. These repositories are then uploaded as artifacts, overwriting their previous versions.

Important note: The packages are currently generated only for the following ABIs:

DragonflyBSD FreeBSD
dragonfly:6.4:x86:64 FreeBSD:14:amd64
FreeBSD:15:amd64

Note: HTML index files of the packages are also generated in each repository. View them by clicking on the table entires above.

To use these binaries add the artifacts repository to your pkg(7) repositories:

su

cat > /usr/local/etc/pkg/repos/XLibre.conf <<'EOF'
XLibre: {
        url: "https://api.cirrus-ci.com/v1/artifact/github/b-aaz/xlibre-ports/bins/bins/${ABI}",
        mirror_type: "http",
        enabled: yes
}
EOF

Note: The configuration is identical on both FreeBSD and DragonFlyBSD; The ${ABI} variable expands and selects the correct repository based on your system.

After adding the repository to your system, you can then install the XLibre ports like any other package:

su
pkg install xlibre

Tip: You can list all of the available XLibre ports and their versions with this command:

pkg rquery -r XLibre -a "%n %v"

Setting up drivers:

This section is currently: ==> Under construction

Installing the video card drivers should be followed as instructed in the FreeBSD handbook's Section 5.2 Graphic Drivers. Just swap the X.Org versions of the drivers in guide with the XLibre versions of the ports provided by this repository.

How to help this project:

  1. Build and test these ports on various hardware platforms.
  2. Find bugs in these ports and report them, or create PRs for them.
  3. Star this repository.
  4. Donate with BTC: bc1qjax34x5277g5d4zfltxf59ddk7qrr90w4x0le3 (XMR will be added soon)

Powered by FreeBSD Powered by DragonFlyBSD Edited with vim Under construction

About

An effort for porting XLibre to FreeBSD & DragonFlyBSD.

Topics

Resources

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •