-RELEASE versions default to using the
quarterly package repositories, -STABLE defaults to
latest. Either system can be switched to
latest or
quarterly if desired. All you need to do is create a
/usr/local/etc/pkg/repos/FreeBSD.conf with:
Code:
FreeBSD: {
url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest"
}
Build options are, ehm, build time options. Packages don't get built, they are already built. So why would a package store build options? That said, you can actually see which options a package was built with by looking at
pkg-info(8):
Code:
root@molly:~ # pkg info tmux
tmux-3.1c
Name : tmux
Version : 3.1c
Installed on : Sun Jan 31 22:20:48 2021 CET
Origin : sysutils/tmux
Architecture : FreeBSD:13:amd64
Prefix : /usr/local
Categories : sysutils
Licenses : ISCL
Maintainer : mat@FreeBSD.org
WWW : http://tmux.github.io/
Comment : Terminal Multiplexer
Options :
BACKSPACE : off
DOCS : on
EXAMPLES : on
LIBEVENT_STATIC: off
UTF8PROC : off
Shared Libs required:
libevent-2.1.so.7
Annotations :
FreeBSD_version: 1300136
repo_type : binary
repository : dicelan-server
Flat size : 815KiB
Description :
Tmux is a terminal multiplexer, it enables a number of terminals to be accessed
and controlled from a single terminal. tmux is intended to be a simple, modern,
BSD-licensed alternative to programs such as GNU screen.
WWW: http://tmux.github.io/
Take a look at the "Options" section, these correspond with the port's options:
Code:
root@molly:/usr/ports/sysutils/tmux # make showconfig
===> The following configuration options are available for tmux-3.1c:
BACKSPACE=off: Build with tty/keys patch
DOCS=on: Build and/or install documentation
EXAMPLES=on: Build and/or install examples
LIBEVENT_STATIC=off: Build with static libevent
UTF8PROC=off: Build with utf8proc support
===> Use 'make config' to modify these settings
For ports, read
ports(7). A
make config
stores the set options in
/var/db/ports/:
Code:
root@molly:/usr/ports/sysutils/tmux # make config
root@molly:/usr/ports/sysutils/tmux # ls -al /var/db/ports/sysutils_tmux/
total 11
drwxr-xr-x 2 root wheel 3 Mar 26 16:47 .
drwxr-xr-x 5 root wheel 5 Mar 26 16:47 ..
-rw-r--r-- 1 root wheel 318 Mar 26 16:47 options
root@molly:/usr/ports/sysutils/tmux # cat /var/db/ports/sysutils_tmux/options
# This file is auto-generated by 'make config'.
# Options for tmux-3.1c
_OPTIONS_READ=tmux-3.1c
_FILE_COMPLETE_OPTIONS_LIST=BACKSPACE DOCS EXAMPLES LIBEVENT_STATIC UTF8PROC
OPTIONS_FILE_UNSET+=BACKSPACE
OPTIONS_FILE_SET+=DOCS
OPTIONS_FILE_SET+=EXAMPLES
OPTIONS_FILE_UNSET+=LIBEVENT_STATIC
OPTIONS_FILE_UNSET+=UTF8PROC
root@molly:/usr/ports/sysutils/tmux #
On FreeBSD everything starts with a port, there won't be a package if there is no port. So the port is always updated first. In this sense the ports tree is always more up to date. But once a port has been updated various automated processes kick into gear and start building packages. As you can imagine building 43000+ packages for various different FreeBSD versions and architectures will take some time. Then those built packages need to be distributed to the various mirrors, which also takes some time. So even the
latest package repositories will lag behind a little. You can keep track of those automated builds here:
https://pkg-status.freebsd.org/
If you really want the latest and greatest as soon as it's available in the ports tree, then set up your own repository. This is actually quite easy to do, the process is completely automated, all you need is
ports-mgmt/poudriere or
ports-mgmt/synth and a lot of resources (time, RAM, CPU power and storage). You don't need to build
everything, you can tell both tools to only build what you need, they'll figure out what else is required (dependencies and such). The biggest advantage of having your own repository is that you're not depending on the official repositories. You can set your own defaults (different default Python or PHP version, MariaDB instead MySQL etc) and options. And use your own update strategy (when, where and what to update).