SQLite database of every port in the system. This can be queried through e.g., sqlitebrowser, or any kind of programming interface. Database Schema: - Ports(FULLPKGPATH, ...) holds all the information retrieved through various variables, e.g.,: AUTOCONF_VERSION AUTOMAKE_VERSION BROKEN *DEPENDS CATEGORIES COMMENT CONFIGURE_STYLE DESCR PACKAGING DISTFILES DISTNAME DIST_SUBDIR FLAVORS HOMEPAGE IS_INTERACTIVE MAINTAINER MASTER_SITES* MODULES MULTI_PACKAGES NO_* ONLY_FOR_ARCHS PACKAGES PERMIT_* PKGNAME PKG_ARCH PSEUDO_FLAVORS REGRESS_IS_INTERACTIVE RUN_DEPENDS SEPARATE_BUILD SHARED_LIBS SHARED_ONLY SUBPACKAGE SUPDISTFILES USE_* WANTLIB This information is mostly unchanged, except for replacing Yes/No variables with 1/0. Variables not present in a given port are left undefined. The FULLPKGPATH is complete, including flavors markers. For each port with MULTI_PACKAGES setting, another entry is written with PACKAGING set, and the correct SUBPACKAGE. - Paths (FULLPKGPATH, PKGPATH) PKGPATH is the stripped down version or FULLPKGPATH, without flavors or subpackage markers. - Flavors(FULLPKGPATH, VALUE) - Categories(FULLPKGPATH, VALUE) - Multi(FULLPKGPATH, VALUE) - Modules(FULLPKGPATH, VALUE) - Configure(FULLPKGPATH, VALUE) - ConfigureArgs(FULLPKGPATH, VALUE) All of these values are actually lists. After disassembling the list, one can find many entries in these secondary tables. - Depends(FULLPKGPATH, FULLDEPENDS, DEPENDSPATH, TYPE) All depends are stored in a single table, including the type: R -> run L -> lib B -> build Regress -> regress with FULLDEPENDS the full text of the dependency, and DEPENDSPATH the PKGPATH we depend upon. - Wantlib(FULLPKGPATH, VALUE) All the libraries the FULLPKGPATH depends upon, with and without version number, coming from either the WANTLIB variable or various LIB_DEPENDS. - Shared_Libs(FULLPKGPATH, LIBNAME, VERSION)