v4.0.0 ------ Breaking changes in the configuration format ******************************************** The configuration format is changing with release 4.0.0. We currently depend on an unmaintained library for configuration. It's not currently in a working state, and while some distributions are patching it, setting up a clean environment is a bit non-trivial, and the situation will only degrade in future. The changes in format are be subtle, and also come with an intention to add further extensibility in future. Configuration files will be plain python. If you don't know Python don't worry, you don't _need_ to know Python. I'll take my own config as a reference. The pre-4.0.0 format is: ```dosini [main] path = ~/.local/share/calendars/* time_format = '%H:%M' default_list = todo humanize = true startable = true ``` The 4.0.0 version would look like this: ```python path = "~/.local/share/calendars/*" time_format = "%H:%M" default_list = "todo" humanize = True startable = True ``` Key differences: - The `[main]` header is no longer needed. - All strings must be quoted (this was previously optional). - True and False start with uppercase. - Using `yes` or `on` is no longer valid; only `True` and `False` are valid. That's basically it. This lets up drop the problematic dependency, and we don't actually need anything to read the config: it's just python code like the rest of `todoman`! For those users who _are_ python developers, you'll note this gives some interesting flexibility: you CAN add any custom python code into the config file. For example, you can defined the `path` programatically: ```python def get_path() -> str: ... path = get_path ``` Dropped support *************** * Dropped support older Python versions. Only 3.8 and 3.9 are now supported. Minor changes ************* * Added support for python 3.9. * The dependency `configobj` is no longer required. * Click 8.0 is now supported. * Fix crash when ``default_command`` has arguments. |
||
---|---|---|
archivers | ||
audio | ||
benchmarks | ||
biology | ||
bootstrap | ||
cad | ||
chat | ||
comms | ||
converters | ||
cross | ||
databases | ||
devel | ||
distfiles | ||
doc | ||
editors | ||
emulators | ||
filesystems | ||
finance | ||
fonts | ||
games | ||
geography | ||
graphics | ||
ham | ||
inputmethod | ||
lang | ||
licenses | ||
math | ||
mbone | ||
meta-pkgs | ||
misc | ||
mk | ||
multimedia | ||
net | ||
news | ||
packages | ||
parallel | ||
pkgtools | ||
regress | ||
security | ||
shells | ||
sysutils | ||
templates | ||
textproc | ||
time | ||
wm | ||
www | ||
x11 | ||
_NetBSD-pkgdb | ||
Makefile | ||
pkglocate | ||
README.md |
pkgsrc
pkgsrc is a framework for building software for a variety of UNIX-like systems.
It produces binary packages, which can be managed with tools such as
pkgin. pkgsrc is highly configurable, supporting
building packages for an arbitrary installation prefix (the default is
/usr/pkg
), allowing multiple branches to coexist on one machine, a
build options framework, and a compiler transformation framework, among
other advanced features. Unprivileged use and installation is also supported.
pkgsrc is the default package manager for NetBSD and SmartOS. It's also supported as a first-class option in OmniOS CE and Oasis Linux.
Bootstrapping
To use pkgsrc on operating systems other than NetBSD, you first need to bootstrap:
cd pkgsrc/bootstrap
./bootstrap
Note that this is only for the most simple case, using pkgsrc's defaults.
Please consult bootstrap/README
and bootstrap/README.OS
for detailed
information about bootstrapping.
Building packages
cd pkgsrc/category/package-name
$PREFIX/bin/bmake install
Where $PREFIX
is where you've chosen to install packages
(typically /usr/pkg
)
On NetBSD, bmake
is simply the built-in make
tool.
To build packages in bulk, tools such as pkgtools/pbulk
and
pkgtools/pkg_comp
can be used.
Troubleshooting
- Join the community IRC channel #pkgsrc @ freenode.
- Subscribe to the pkgsrc-users mailing list
- Send bugs and patches via web form (use the
pkg
category).
Latest sources
To fetch the main CVS repository:
cvs -d anoncvs@anoncvs.NetBSD.org:/cvsroot checkout -P pkgsrc
To work in the Git mirror, which is updated every few hours from CVS:
git clone https://github.com/NetBSD/pkgsrc.git
Additional links
- pkgsrc guide - the authoritative document on pkgsrc, also available as
doc/pkgsrc.txt
- pkgsrc in the NetBSD Wiki - miscellaneous articles and tutorials
- pkgsrc.se - a searchable web index of pkgsrc
- pkgsrc-wip - a project to get more people actively involved with creating packages for pkgsrc
- pkgsrc on Twitter - announcements to the world
- pkgsrcCon - we get together
- BulkTracker - a web application that tracks pkgsrc bulk builds