Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
docs:guide-developer:packages [2023/03/03 13:50] – [Packaging a service] style tatamidocs:guide-developer:packages [2024/05/22 20:59] (current) – fix make target for package bam
Line 65: Line 65:
   * ''PKG_NAME''        - The name of the package, as seen via menuconfig and ipkg. Avoid using underscores in the package name, to avoid build failures--for example, the underscore separates name from version information, and may confuse the build system in hard-to-spot places.   * ''PKG_NAME''        - The name of the package, as seen via menuconfig and ipkg. Avoid using underscores in the package name, to avoid build failures--for example, the underscore separates name from version information, and may confuse the build system in hard-to-spot places.
   * ''PKG_VERSION''     - The upstream version number that we're downloading   * ''PKG_VERSION''     - The upstream version number that we're downloading
-  * ''PKG_RELEASE''     - The version of this package Makefile+  * ''PKG_RELEASE''     - The version of this package Makefile.  Should be initially set to 1, and reset to 1 whenever the ''PKG_VERSION'' is changed.  Increment it when ''PKG_VERSION'' stays the same, but when there are functional changes to the installed artifacts.
   * ''PKG_LICENSE''     - The license(s) the package is available under, [[https://spdx.org/licenses/|SPDX]] form.   * ''PKG_LICENSE''     - The license(s) the package is available under, [[https://spdx.org/licenses/|SPDX]] form.
   * ''PKG_LICENSE_FILES''- file containing the license text   * ''PKG_LICENSE_FILES''- file containing the license text
Line 73: Line 73:
   * ''PKG_HASH''      - A checksum to validate the download.  It can be either a MD5 or SHA256 checksum, but SHA256 should be used, see [[commit>?p=openwrt/openwrt.git;a=blob;f=scripts/download.pl;h=676c6e9e6b10b6a44ed2bbc03a7ba3c983aaf639;hb=HEAD#l66|scripts/download.pl]]   * ''PKG_HASH''      - A checksum to validate the download.  It can be either a MD5 or SHA256 checksum, but SHA256 should be used, see [[commit>?p=openwrt/openwrt.git;a=blob;f=scripts/download.pl;h=676c6e9e6b10b6a44ed2bbc03a7ba3c983aaf639;hb=HEAD#l66|scripts/download.pl]]
   * ''PKG_CAT''         - How to decompress the sources (zcat, bzcat, unzip)   * ''PKG_CAT''         - How to decompress the sources (zcat, bzcat, unzip)
 +  * ''PKG_URL''       - Upstream project homepage
   * ''PKG_BUILD_DEPENDS'' - Packages that need to be built before this package. Use this option if you need to make sure that your package has access to includes and/or libraries of another package at build time. Specify the directory name (i.e. openssl) rather than the binary package name (i.e. libopenssl). This build variable only establishes the build time dependency. Use ''DEPENDS'' to establish the runtime dependencies. This variable uses the same syntax as ''DEPENDS'' below.   * ''PKG_BUILD_DEPENDS'' - Packages that need to be built before this package. Use this option if you need to make sure that your package has access to includes and/or libraries of another package at build time. Specify the directory name (i.e. openssl) rather than the binary package name (i.e. libopenssl). This build variable only establishes the build time dependency. Use ''DEPENDS'' to establish the runtime dependencies. This variable uses the same syntax as ''DEPENDS'' below.
   * ''PKG_CONFIG_DEPENDS'' - specifies which config options influence the build configuration and should trigger a rerun of Build/Configure on change   * ''PKG_CONFIG_DEPENDS'' - specifies which config options influence the build configuration and should trigger a rerun of Build/Configure on change
Line 78: Line 79:
   * ''PKG_INSTALL_DIR'' - Where "make install" copies the compiled files   * ''PKG_INSTALL_DIR'' - Where "make install" copies the compiled files
   * ''PKG_FIXUP''       - See below   * ''PKG_FIXUP''       - See below
 +  * ''PKG_CVE_IGNORE''  - Variable for defining CVEs that don't apply to this version of the package due to features not enabled, or affecting other platforms (e.g. Windows issues or features that are not used and so not relevant)
 +  * ''PKG_CVE_FIXED''   - Variable for defining CVEs that are patches in the current version, but aren't properly marked as fixed at cve.org in the current version
  
 Optional support for fetching sources from a VCS (git, bzr, svn, etc), see [[#use_source_repository|Use source repository]] below for more information: Optional support for fetching sources from a VCS (git, bzr, svn, etc), see [[#use_source_repository|Use source repository]] below for more information:
Line 176: Line 179:
 </code> </code>
  
-Besides the source repository ''PKG_SOURCE_URL'', you also need to specify which exact version you are building using ''PKG_SOURCE_VERSION'' (e.g. a commit hash for git, or a revision number for svn)+Besides the source repository ''PKG_SOURCE_URL'', you also need to specify which exact version you are building using ''PKG_SOURCE_VERSION'' e.g. a commit hash for git, or a revision number for svn. The ''PKG_SOURCE_VERSION'' can be a git tag and specified like ''PKG_SOURCE_VERSION:=v$(PKG_VERSION)''.
  
 Buildroot will first clone the source repository, and then generate a tarball from the source repository, with a name like ''dl/odhcpd-2017-08-16-94e65ee0.tar.xz''. Buildroot will first clone the source repository, and then generate a tarball from the source repository, with a name like ''dl/odhcpd-2017-08-16-94e65ee0.tar.xz''.
Line 184: Line 187:
 :!: The tarballs generated from svn checkouts are not reproducible, so you should avoid defining ''PKG_MIRROR_HASH'' when building from svn! :!: The tarballs generated from svn checkouts are not reproducible, so you should avoid defining ''PKG_MIRROR_HASH'' when building from svn!
  
-To generate ''PKG_MIRROR_HASH'' automatically, use the following (replace ''package/network/services/odhcpd'' by your package):+To generate ''PKG_MIRROR_HASH'' automatically, use the following (replace ''package/odhcpd'' by your package):
  
 <code> <code>
 # First add "PKG_MIRROR_HASH:=skip" to the package Makefile and/or "HASH:=skip", if required. # First add "PKG_MIRROR_HASH:=skip" to the package Makefile and/or "HASH:=skip", if required.
-make package/network/services/odhcpd/download V=s +make package/odhcpd/download V=s 
-make package/network/services/odhcpd/check FIXUP=1 V=s+make package/odhcpd/check FIXUP=1 V=s
 </code> </code>
  
Line 927: Line 930:
   * [[:submitting-patches|https://dev.openwrt.org/wiki/SubmittingPatches]]   * [[:submitting-patches|https://dev.openwrt.org/wiki/SubmittingPatches]]
  
-See https://lists.openwrt.org/pipermail/openwrt-devel/2014-June/025810.html for the original announcement of this change+See [[https://web.archive.org/web/20170629071358/https://lists.openwrt.org/pipermail/openwrt-devel/2014-June/025810.html|the original announcement]] of this change.
  • Last modified: 2023/03/03 13:50
  • by tatami