123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- SQLite database of every port in the system. This can be queried through
- e.g., sqlitebrowser, or any kind of programming interface.
- This schema is mostly optimized for tools, and cumbersome to query by
- hand.
- Database Schema:
- - Paths (ID, FULLPKGPATH, PKGPATH, CANONICAL)
- PKGPATH points to a PATHS entry corresponding to the stripped down version of
- FULLPKGPATH, without flavors or subpackage markers, or is null if FULLPKGPATH
- is already stripped. Every other FULLPKGPATH, PKGPATH, DEPENDSPATH entry
- in the database points to this table.
- The FULLPKGPATH is complete, including flavors and pseudo flavors markers.
- For every port with MULTI_PACKAGES settings, one entry is written
- for each SUBPACKAGE.
- CANONICAL points to the actual ID to use as an entry in other tables, for
- FULLPKGPATH which don't have their own entry.
- - Ports(FULLPKGPATH, ...)
- holds all the information retrieved through various variables that is not
- stored in specialized tables, e.g.,:
- AUTOCONF_VERSION
- AUTOMAKE_VERSION
- BROKEN
- COMMENT
- DESCR
- DISTFILES
- DISTNAME
- DIST_SUBDIR
- EPOCH
- FLAVORS
- FULLPKGNAME
- GH_*
- HOMEPAGE
- IS_INTERACTIVE
- MAINTAINER
- MULTI_PACKAGES
- NO_*
- PERMIT_*
- PKGNAME
- PKGSPEC
- PKG_ARCH
- PREFIX
- PSEUDO_FLAVOR
- PSEUDO_FLAVORS
- TEST_IS_INTERACTIVE
- REVISION
- SEPARATE_BUILD
- STATIC_PLIST
- SUBPACKAGE
- SUPDISTFILES
- USE_*
- README
- COMPILER
- COMPILER_LANGS
- COMPILER_LINKS
- This information is mostly unchanged, except for replacing Yes/No variables
- with 1/0. Variables not present in a given port are left undefined.
- README corresponds to README files (full text value) and only exists when
- such files are present.
- Note that USE_LIBTOOL is 3-valued: 2 is gnu, 1 is yes, undef is no.
- Note that USE_WXNEEDED is 3-valued: 2 is special, 1 is yes, undef is no.
- MULTI_PACKAGES ports hold several entries with corresponding FULLPKGPATH
- - Flavors(FULLPKGPATH, VALUE)
- - PseudoFlavors(FULLPKGPATH, VALUE)
- - Categories(FULLPKGPATH, VALUE)
- - Multi(FULLPKGPATH, VALUE, SUBPKGPATH) ('-' values are not stored)
- - Modules(FULLPKGPATH, VALUE)
- - Configure(FULLPKGPATH, VALUE) (corresponds to CONFIGURE_STYLE)
- - ConfigureArgs(FULLPKGPATH, VALUE)
- - MasterSites(FULLPKGPATH, N, VALUE)
- - Makefiles(FULLPKGPATH, VALUE)
- - NotForArch(FULLPKGPATH, VALUE)
- - OnlyForArch(FULLPKGPATH, VALUE)
- All of these variable values are actually lists. These lists are taken apart
- and result in many entries in these secondary tables (or none if the list
- is completely empty)
- The Makefiles table contains only Makefiles from MAKEFILE_LIST that are not
- "default values" (always included makefiles).
- Each keyword table follows the same scheme
- TABLENAME(KEYREF, VALUE)
- - Depends(FULLPKGPATH, FULLDEPENDS, PKGSPEC, REST, DEPENDSPATH, TYPE)
- All depends are stored in a single table, including the type:
- 0 -> library
- 1 -> run
- 2 -> build
- 3 -> test
- with FULLDEPENDS the full text of the dependency, DEPENDSPATH the PKGPATH
- we depend upon, PKGSPEC the spec we depend upon (if explicit), and REST
- the rest.
- - Wantlib(FULLPKGPATH, VALUE, EXTRA)
- All the libraries the FULLPKGPATH depends upon, with optional version
- number specification stored in EXTRA
- coming from either the WANTLIB variable or various LIB_DEPENDS.
- - Multi(FULLPKGPATH, VALUE, SUBPKGPATH)
- also contains the normalized pkgpath for the corresponding subpackage.
- - Broken(FULLPKGPATH, ARCH, TEXT)
- This is stored both in the main table (for now) and in a separate table, with
- keywords since it may be arch-dependent
- - Shared_Libs(FULLPKGPATH, LIBNAME, VERSION)
- - TARGETS(FULLPKGPATH, VALUE)
- Some information, both in the main table and in secondary tables
- is stored as keyword references to other tables:
- AUTOCONF_VERSION, AUTOMAKE_VERSION -> AUTOVERSION
- MAINTAINER -> EMAIL
- CATEGORIES -> CATEGORYKEYS
- CONFIGURE -> CONFIGURE_KEYS
- MAKEFILES -> FILENAMES
- MODULES -> MODULEKEYS
- PREFIX -> PREFIX
- WANTLIB.VALUE, SHARED_LIBS.LIBNAME -> LIBRARY
- PERMIT_*, SEPARATE_BUILD -> KEYWORDS2
- FLAVORS, PSEUDO_FLAVORS -> KEYWORDS
- NOT_FOR_ARCHS, ONLY_FOR_ARCHS, PKG_ARCH -> ARCH
- TARGETS -> TARGETKEYS
|