DESCR-compact 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. SQLite database of every port in the system. This can be queried through
  2. e.g., sqlitebrowser, or any kind of programming interface.
  3. This schema is mostly optimized for tools, and cumbersome to query by
  4. hand.
  5. Database Schema:
  6. - Paths (ID, FULLPKGPATH, PKGPATH, CANONICAL)
  7. PKGPATH points to a PATHS entry corresponding to the stripped down version of
  8. FULLPKGPATH, without flavors or subpackage markers, or is null if FULLPKGPATH
  9. is already stripped. Every other FULLPKGPATH, PKGPATH, DEPENDSPATH entry
  10. in the database points to this table.
  11. The FULLPKGPATH is complete, including flavors and pseudo flavors markers.
  12. For every port with MULTI_PACKAGES settings, one entry is written
  13. for each SUBPACKAGE.
  14. CANONICAL points to the actual ID to use as an entry in other tables, for
  15. FULLPKGPATH which don't have their own entry.
  16. - Ports(FULLPKGPATH, ...)
  17. holds all the information retrieved through various variables that is not
  18. stored in specialized tables, e.g.,:
  19. AUTOCONF_VERSION
  20. AUTOMAKE_VERSION
  21. BROKEN
  22. COMMENT
  23. DESCR
  24. DISTFILES
  25. DISTNAME
  26. DIST_SUBDIR
  27. EPOCH
  28. FLAVORS
  29. FULLPKGNAME
  30. GH_*
  31. HOMEPAGE
  32. IS_INTERACTIVE
  33. MAINTAINER
  34. MULTI_PACKAGES
  35. NO_*
  36. PERMIT_*
  37. PKGNAME
  38. PKGSPEC
  39. PKG_ARCH
  40. PREFIX
  41. PSEUDO_FLAVOR
  42. PSEUDO_FLAVORS
  43. TEST_IS_INTERACTIVE
  44. REVISION
  45. SEPARATE_BUILD
  46. STATIC_PLIST
  47. SUBPACKAGE
  48. SUPDISTFILES
  49. USE_*
  50. README
  51. COMPILER
  52. COMPILER_LANGS
  53. COMPILER_LINKS
  54. This information is mostly unchanged, except for replacing Yes/No variables
  55. with 1/0. Variables not present in a given port are left undefined.
  56. README corresponds to README files (full text value) and only exists when
  57. such files are present.
  58. Note that USE_LIBTOOL is 3-valued: 2 is gnu, 1 is yes, undef is no.
  59. Note that USE_WXNEEDED is 3-valued: 2 is special, 1 is yes, undef is no.
  60. MULTI_PACKAGES ports hold several entries with corresponding FULLPKGPATH
  61. - Flavors(FULLPKGPATH, VALUE)
  62. - PseudoFlavors(FULLPKGPATH, VALUE)
  63. - Categories(FULLPKGPATH, VALUE)
  64. - Multi(FULLPKGPATH, VALUE, SUBPKGPATH) ('-' values are not stored)
  65. - Modules(FULLPKGPATH, VALUE)
  66. - Configure(FULLPKGPATH, VALUE) (corresponds to CONFIGURE_STYLE)
  67. - ConfigureArgs(FULLPKGPATH, VALUE)
  68. - MasterSites(FULLPKGPATH, N, VALUE)
  69. - Makefiles(FULLPKGPATH, VALUE)
  70. - NotForArch(FULLPKGPATH, VALUE)
  71. - OnlyForArch(FULLPKGPATH, VALUE)
  72. All of these variable values are actually lists. These lists are taken apart
  73. and result in many entries in these secondary tables (or none if the list
  74. is completely empty)
  75. The Makefiles table contains only Makefiles from MAKEFILE_LIST that are not
  76. "default values" (always included makefiles).
  77. Each keyword table follows the same scheme
  78. TABLENAME(KEYREF, VALUE)
  79. - Depends(FULLPKGPATH, FULLDEPENDS, PKGSPEC, REST, DEPENDSPATH, TYPE)
  80. All depends are stored in a single table, including the type:
  81. 0 -> library
  82. 1 -> run
  83. 2 -> build
  84. 3 -> test
  85. with FULLDEPENDS the full text of the dependency, DEPENDSPATH the PKGPATH
  86. we depend upon, PKGSPEC the spec we depend upon (if explicit), and REST
  87. the rest.
  88. - Wantlib(FULLPKGPATH, VALUE, EXTRA)
  89. All the libraries the FULLPKGPATH depends upon, with optional version
  90. number specification stored in EXTRA
  91. coming from either the WANTLIB variable or various LIB_DEPENDS.
  92. - Multi(FULLPKGPATH, VALUE, SUBPKGPATH)
  93. also contains the normalized pkgpath for the corresponding subpackage.
  94. - Broken(FULLPKGPATH, ARCH, TEXT)
  95. This is stored both in the main table (for now) and in a separate table, with
  96. keywords since it may be arch-dependent
  97. - Shared_Libs(FULLPKGPATH, LIBNAME, VERSION)
  98. - TARGETS(FULLPKGPATH, VALUE)
  99. Some information, both in the main table and in secondary tables
  100. is stored as keyword references to other tables:
  101. AUTOCONF_VERSION, AUTOMAKE_VERSION -> AUTOVERSION
  102. MAINTAINER -> EMAIL
  103. CATEGORIES -> CATEGORYKEYS
  104. CONFIGURE -> CONFIGURE_KEYS
  105. MAKEFILES -> FILENAMES
  106. MODULES -> MODULEKEYS
  107. PREFIX -> PREFIX
  108. WANTLIB.VALUE, SHARED_LIBS.LIBNAME -> LIBRARY
  109. PERMIT_*, SEPARATE_BUILD -> KEYWORDS2
  110. FLAVORS, PSEUDO_FLAVORS -> KEYWORDS
  111. NOT_FOR_ARCHS, ONLY_FOR_ARCHS, PKG_ARCH -> ARCH
  112. TARGETS -> TARGETKEYS