FreeBSD/Setup/Area51: Difference between revisions

From KDE Community Wiki
< FreeBSD‎ | Setup
(/110-amd64-kde/ (not /110-amd64-area51/), a little less verbose, minor edits including upper and lower case)
Line 1: Line 1:
= Area 51 =
= Area 51 repository =


<blockquote>In the KDE3 days, around FreeBSD 5, the repository where KDE ports were developed was called Area 51 -- the famous place where aliens land. We still refer to the ports-development repository as Area 51, even though it is no longer called that in hostname or repository name.</blockquote>
<blockquote>In the KDE 3 days, around FreeBSD 5, the repository where KDE ports were developed was called Area 51 the famous place where aliens land. Although 'area51' no longer appears in the host name or repository name, we still call it Area 51.</blockquote>


Area 51 is used for development of KDE and Qt ports that are maintained by the KDE on FreeBSD team. These ports are not always in a stable state, so users are encouraged to test and report problems, especially during ''call for testing'' (CFT) periods. Area 51 is [https://github.com/freebsd/freebsd-ports-kde/ hosted on GitHub].


New versions and changes to ports are always committed here first and only later hit the FreeBSD ports tree. The history of commits is recorded in [https://mail.kde.org/mailman/listinfo/kde-freebsd the KDE on FreeBSD e-mail list]. Workflow is similar to the [https://wiki.freebsd.org/Graphics/Ports%20development%20workflow|XOrg ports] workflow, or GNOME ports: a complete Git clone of the ports tree is kept, branches work on specific updates, and that work gets merged to FreeBSD ports master when things are ready.


Development of the Qt and KDE ports maintained by the KDE on FreeBSD team happens in the area51 repository. New versions and changes the ports are always committed there first and only later hit the ports tree. Even though the ports in the area51 repository are not always in a stable state, users are encouraged to test them and report problems, especially during the ''call for tests'' periods.
<center><i>HIC SUNT LEONES</i></center>


The area51 repository is hosted on [https://github.com/freebsd/freebsd-ports-kde/ github]. The history of commits is recorded in the KDE on FreeBSD mailing list. The workflow is roughly the same as the [https://wiki.freebsd.org/Graphics/Ports%20development%20workflow|XOrg ports] workflow, or the GNOME ports: a complete git clone of the ports tree is kept, branches work on specific updates, and that gets merged to ports master when things are ready.
== Source organization ==


<center><i>HIC SUNT LEONES</i></center>
See the XOrg ports pages.


== Source Organization ==
== Packages and build status ==


See the XOrg ports pages.
The current status of some of the branches of Area 51 can be seen in the FreeBSD continuous integration (CI) system, which is a Jenkins instance kindly hosted by one of the team members:


== Packages and Build Status ==
* https://jenkins.mouf.net/view/kde/


The current status of some of the branches of the area51 repository can be seen in the FreeBSD Continuous Integration (CI) system, which is a Jenkins instance kindly hosted by one of the team members. The build status can be found [http://jenkins.mouf.net/view/area51/ in Jenkins]. These builds are done from the area51 ports repository, on both 11-STABLE and CURRENT.
Builds are done on both STABLE and 12.0-CURRENT.


Packages may be obtained from the unofficial package repository that is created by the Jenkins CI system. To use these packages, you may add a repository configuration file <code>/usr/local/etc/pkg/repos/area51.conf</code> as follows:
Packages may be obtained from the unofficial repository that is created by the Jenkins CI system. To do this, add a configuration file <code>/usr/local/etc/pkg/repos/area51.conf</code> as follows:
FreeBSD: { enabled: false }
  area51: {
  area51: {
   url: "http://meatwad.mouf.net/rubick/poudriere/packages/110-amd64-area51/"
   url: "http://meatwad.mouf.net/rubick/poudriere/packages/110-amd64-kde/"
   priority: 2
   priority: 2
   enabled: true
   enabled: true
  }
  }
It is strongly advised to disable the official FreeBSD package repository when installing from this unofficial repository, to avoid mixing packages from multiple sources. Set <code>enabled: false</code> in the repository configuration file for the official FreeBSD package repository while testing area51 packages.
The first line disables the official FreeBSD package repository. This avoids mixing packages from multiple sources, and is is strongly advised when using unofficial packages.  


== Poudriere ==
== Poudriere ==


We strongly recommend using poudriere for building packages from the area51 repository. These packages can then easily be used with pkg(8). First things first, install poudriere:
We strongly recommend using poudriere for building packages from Area 51. These packages can then easily be used with pkg(8). First things first, install poudriere:


     # pkg install poudriere
     # pkg install poudriere
Line 35: Line 38:
it is recommended to modify `/usr/local/etc/poudriere.conf` to use ZFS.
it is recommended to modify `/usr/local/etc/poudriere.conf` to use ZFS.


=== Setting up the Ports Tree ===
=== Setting up the ports tree ===


(''note that this can be done more easily with poudriere-devel'')
(''Note that this can be done more easily with poudriere-devel''.)


With poudriere installed, you must create one or more ports trees (to build from) and one or more jails (to build in). We'll start with the ports tree. Create a tree, but don't populate it; we'll call this ports tree ''freebsd-ports-kde''.
With poudriere installed, you must create one or more ports trees (to build from) and one or more jails (to build in). We'll start with the ports tree. Create a tree, but don't populate it; we'll call this ports tree ''freebsd-ports-kde''.
Line 43: Line 46:
     # poudriere ports -c -F -m git -p freebsd-ports-kde
     # poudriere ports -c -F -m git -p freebsd-ports-kde


Next, clone the ports tree from Area51. This needs to go into the just-created directory for the ports tree, which could be anywhere on your system depending on how poudriere is configured. The default is under `/usr/local/poudriere/ports`. Depending on how you want to access the Github repository, you may need to use a different user or credentials -- this example just does an anonymous clone.
Next, clone the ports tree from Area 51. This needs to go into the just-created directory for the ports tree, which could be anywhere on your system depending on how poudriere is configured. The default is under `/usr/local/poudriere/ports`. Depending on how you want to access Area 51, you may need to use a different user or credentials this example just does an anonymous clone.


     # cd /usr/local/poudriere/ports
     # cd /usr/local/poudriere/ports
     # git clone https://github.com/freebsd/freebsd-ports-kde
     # git clone https://github.com/freebsd/freebsd-ports-kde


With this setup, you can `git pull` and otherwise update the git repository as you see fit: it is the working directory that will be used for the ports tree (so you can switch branches inside the clone, too).
With this setup, you can `git pull` and otherwise update the Git repository as you see fit: it is the working directory that will be used for the ports tree (so you can switch branches inside the clone, too).


=== Setting up the Build Jail ===
=== Setting up the build jail ===


Create a jail to build in; this is essentially a whole new FreeBSD installation inside your existing one. It can also be an older FreeBSD version (newer than the host system is not recommended and may not work at all). This command creates a new 11.0 jail, calling it ''110amd64'':
Create a jail to build in; this is essentially a whole new FreeBSD installation inside your existing one. It can also be an older FreeBSD version (newer than the host system is not recommended and may not work at all). This command creates a new 11.0 jail, calling it ''110amd64'':
Line 56: Line 59:
     # poudriere jail -c -j 110amd64 -v 11.0-STABLE -m ftp
     # poudriere jail -c -j 110amd64 -v 11.0-STABLE -m ftp


=== Running a Build ===
=== Running a build ===


Poudriere can bulk-build ports, given a jail and a ports tree to work with. It will generally rebuild all that is needed; assuming you are most interested in all the latest KDE software, the metaport `x11/kde5` is the one to rebuild.
Poudriere can bulk-build ports, given a jail and a ports tree to work with. It will generally rebuild all that is needed; assuming you are most interested in all the latest KDE software, the metaport `x11/kde5` is the one to rebuild.


     # poudriere bulk -j 110amd64 -p freebsd-ports-kde x11/kde5
     # poudriere bulk -j 110amd64 -p freebsd-ports-kde x11/kde5

Revision as of 17:31, 3 June 2017

Area 51 repository

In the KDE 3 days, around FreeBSD 5, the repository where KDE ports were developed was called Area 51 – the famous place where aliens land. Although 'area51' no longer appears in the host name or repository name, we still call it Area 51.

Area 51 is used for development of KDE and Qt ports that are maintained by the KDE on FreeBSD team. These ports are not always in a stable state, so users are encouraged to test and report problems, especially during call for testing (CFT) periods. Area 51 is hosted on GitHub.

New versions and changes to ports are always committed here first and only later hit the FreeBSD ports tree. The history of commits is recorded in the KDE on FreeBSD e-mail list. Workflow is similar to the ports workflow, or GNOME ports: a complete Git clone of the ports tree is kept, branches work on specific updates, and that work gets merged to FreeBSD ports master when things are ready.

HIC SUNT LEONES

Source organization

See the XOrg ports pages.

Packages and build status

The current status of some of the branches of Area 51 can be seen in the FreeBSD continuous integration (CI) system, which is a Jenkins instance kindly hosted by one of the team members:

Builds are done on both STABLE and 12.0-CURRENT.

Packages may be obtained from the unofficial repository that is created by the Jenkins CI system. To do this, add a configuration file /usr/local/etc/pkg/repos/area51.conf as follows:

FreeBSD: { enabled: false }
area51: {
  url: "http://meatwad.mouf.net/rubick/poudriere/packages/110-amd64-kde/"
  priority: 2
  enabled: true
}

The first line disables the official FreeBSD package repository. This avoids mixing packages from multiple sources, and is is strongly advised when using unofficial packages.

Poudriere

We strongly recommend using poudriere for building packages from Area 51. These packages can then easily be used with pkg(8). First things first, install poudriere:

   # pkg install poudriere

it is recommended to modify `/usr/local/etc/poudriere.conf` to use ZFS.

Setting up the ports tree

(Note that this can be done more easily with poudriere-devel.)

With poudriere installed, you must create one or more ports trees (to build from) and one or more jails (to build in). We'll start with the ports tree. Create a tree, but don't populate it; we'll call this ports tree freebsd-ports-kde.

   # poudriere ports -c -F -m git -p freebsd-ports-kde

Next, clone the ports tree from Area 51. This needs to go into the just-created directory for the ports tree, which could be anywhere on your system depending on how poudriere is configured. The default is under `/usr/local/poudriere/ports`. Depending on how you want to access Area 51, you may need to use a different user or credentials – this example just does an anonymous clone.

   # cd /usr/local/poudriere/ports
   # git clone https://github.com/freebsd/freebsd-ports-kde

With this setup, you can `git pull` and otherwise update the Git repository as you see fit: it is the working directory that will be used for the ports tree (so you can switch branches inside the clone, too).

Setting up the build jail

Create a jail to build in; this is essentially a whole new FreeBSD installation inside your existing one. It can also be an older FreeBSD version (newer than the host system is not recommended and may not work at all). This command creates a new 11.0 jail, calling it 110amd64:

   # poudriere jail -c -j 110amd64 -v 11.0-STABLE -m ftp

Running a build

Poudriere can bulk-build ports, given a jail and a ports tree to work with. It will generally rebuild all that is needed; assuming you are most interested in all the latest KDE software, the metaport `x11/kde5` is the one to rebuild.

   # poudriere bulk -j 110amd64 -p freebsd-ports-kde x11/kde5