summaryrefslogtreecommitdiffstats
path: root/include/package-defaults.mk
Commit message (Collapse)AuthorAgeFilesLines
* treewide: use APK compatible version schemaPaul Spooren2024-03-221-1/+1
| | | | | | | | | | | | | | | | | Different from OPKG, APK uses a deterministic version schema which chips the version into chunks and compares them individually. This enforces a certain schema which was previously entirely flexible. - Releases are added at the very and end prefixed with an `r` like `1.2.3-r3`. - Hashes are prefixed with a `~` like `1.2.3~abc123`. - Dates become semantic versions, like `2024.04.01` - Extra tags are possible like `_git`, `_alpha` and more. For full details see the APK test list: https://gitlab.alpinelinux.org/alpine/apk-tools/-/blob/master/test/version.data Signed-off-by: Paul Spooren <mail@aparcar.org>
* build: align SOURCE path for build system and SDKPaul Spooren2024-02-171-1/+1
| | | | | | | | | | | | | | | Building a package in the build system or the SDK results in different values for the `SOURCE` property, it's either `packages/<package name>` or `feeds/base/<package name>`. The reason is that the SDK handles `openwrt.git` as an external feed called while the build system contains the *base* packages directly. Since packages created with either method are (ideally) the same (bit for bit), align the content of SOURCE. To do so this commit creates a symlink from `feeds/base` to `$(TOPDIR)/package` and adopts the SOURCE when building from inside the build system. Signed-off-by: Paul Spooren <mail@aparcar.org>
* Revert "build: align SOURCE path for build system and SDK"Daniel Golle2024-02-121-1/+1
| | | | | | | | | This reverts commit 131e41614dcfae1f995e55330ada6573ca244ba3. Sadly it makes menuconfig fail with tmp/.config-package.in:171: glob failed: No files found "feeds/base/utils/busybox/Config.in" make: *** [/usr/src/openwrt/include/toplevel.mk:136: menuconfig] Error 1 Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* build: align SOURCE path for build system and SDKPaul Spooren2024-02-121-1/+1
| | | | | | | | | | | | | | | Building a package in the build system or the SDK results in different values for the `SOURCE` property, it's either `packages/<package name>` or `feeds/base/<package name>`. The reason is that the SDK handles `openwrt.git` as an external feed called while the build system contains the *base* packages directly. Since packages created with either method are (ideally) the same (bit for bit), align the content of SOURCE. To do so this commit creates a symlink from `feeds/base` to `$(TOPDIR)/package` and adopts the SOURCE when building from inside the build system. Signed-off-by: Paul Spooren <mail@aparcar.org>
* packages: add PKG_URL variablePaul Spooren2024-01-081-1/+1
| | | | | | | | Using PKG_URL one may set the URL for all sub packages, which is usually shared anyway. Future packages should only use PKG_URL instead of adding it per sub-package. Signed-off-by: Paul Spooren <mail@aparcar.org>
* build: disable automake dependency trackingMichael Pratt2023-03-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Recent versions of Automake have changed dependency tracking significantly (reference commit below) causing breakage in some package builds when using newer Automake with packages that need autoreconf that were bootstrapped with an old version of Automake. Those changes cause a great inconsistency between packages over time where some packages may or may not use this feature, and may or may not update the .ac and .am files to work with the new methods. This problem might exist in many packages where autoreconf is not currently required, but would cause build failure if autoreconf is used. Fortunately, this feature is practically useless for the purposes of Openwrt and the average developer, so we can disable it. GNU Automake manual states in part: "Because dependencies are only computed as a side-effect of compilation... no dependency information exists the first time a package is built... dependency tracking is completely useless for one-time builds..." A nice side-effect is that build times are slightly faster. Ref: 6a675ef17edf7109da189f5ae70e2dc6b7665896 (automake.git) Signed-off-by: Michael Pratt <mcpratt@pm.me>
* tree-wide: Do not use package librt and libpthreadHauke Mehrtens2022-12-291-1/+1
| | | | | | | | | | | The libraries libpthread, libdl, libutil, libanl have been integrated into the libc library in version 2.34. it is not needed to explicitly link them any more. Most of the functions have been moved from the librt.so into libc.so some time ago already. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* build: use SPDX license tagsPaul Spooren2021-02-051-5/+2
| | | | | | | | | The license folder is a core part of OpenWrt and all GPL-2.0 licensed. Use SPDX license tags to allow machines to check licenses. Signed-off-by: Paul Spooren <mail@aparcar.org> [rebase, keep some Copyright lines, sharpen commit message] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* build: allow file modes per binary packageSebastian Kemper2020-09-091-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the global variable PKG_FILE_MODES is used for all ipkg creations. This works for Makefiles which output a single package, or variants of a single package. But if a Makefile outputs multiple packages that each contain different files, setting PKG_FILE_MODES causes build failure when any of the files in the variable do not exist in the folder that is currently being packaged. Example: /openwrt/staging_dir/host/bin/fakeroot -l /openwrt/staging_dir/host/lib/libfakeroot.so -f /openwrt/staging_dir/host/bin/faked /openwrt/scripts/ipkg-build -m "/usr/lib/mariadb/plugin/auth_pam_tool_dir:root:376:0750" /openwrt/build_dir/target-mips_24kc_musl/mariadb-10.4.13/ipkg-mips_24kc/mariadb-server-plugin-disks /openwrt/bin/packages/mips_24kc/packages +chown: cannot access '/openwrt/build_dir/target-mips_24kc_musl/mariadb-10.4.13/ipkg-mips_24kc/mariadb-server-plugin-disks//usr/lib/mariadb/plugin/auth_pam_tool_dir': No such file or directory This commit changes the file mode handling a bit. The file mode can now be set either globally via PKG_FILE_MODES (no behavior change) or on a per-package basis via FILE_MODES. This way specific file modes can be used for any particular package. This behavior is already used for other OpenWrt variables, hence it is familiar: PKG_MAINTAINER vs MAINTAINER PKG_SOURCE_SUBDIR vs SUBDIR PKG_LICENSE vs LICENSE ... Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
* toolchain: remove gcc libssp and use libc variantIan Cooper2020-06-171-1/+1
| | | | | | | | | | | | | | | Removes the standalone implementation of stack smashing protection in gcc's libssp in favour of the native implementation available in glibc and uclibc. Musl libc already uses its native ssp, so this patch does not affect musl-based toolchains. Stack smashing protection configuration options are now uniform across all supported libc variants. This also makes kernel-level stack smashing protection available for x86_64 and i386 builds using non-musl libc. Signed-off-by: Ian Cooper <iancooper@hotmail.com>
* include/package-defaults.mk: fix default Build/Prepare with empty ./srcMatthias Schiffer2018-03-071-1/+1
| | | | | | | Copying ./src/* would fail when src exists, but is empty or only contains hidden files. Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
* build: cleanup SSP_SUPPORT configure optionJulien Dusser2018-01-271-1/+1
| | | | | | | | | | | | | | | | | | Configure variable SSP_SUPPORT is ambiguous for packages (tor, openssh, avahi, freeswitch). It means 'toolchain supporting SSP', but for toolchain and depends it means 'build gcc with libssp'. Musl no longer uses libssp (1877bc9d8f), it has internal support, so SSP_SUPPORT was disabled leading some package to not use SSP. No information why Glibc and uClibc use libssp, but they may also provide their own SSP support. uClibc used it own with commit 933b588e25 but it was reverted in f3cacb9e84 without details. Create an new configure GCC_LIBSSP and automatically enable SSP_SUPPORT if either USE_MUSL or GCC_LIBSSP. Signed-off-by: Julien Dusser <julien.dusser@free.fr>
* build: allow defining license information per binary packageMichael Heimpold2017-11-251-0/+2
| | | | | | | | | | | At the moment, license information can only be specified on a "per source package" level while other metadata fields (e.g. maintainer) can be given for each binary package. Apply the same logic for license fields as well. This can be used e.g. in cases where a library is distributed under some license while related tools are distributed under a different one. Signed-off-by: Michael Heimpold <mhei@heimpold.de>
* build: reset ALTERNATIVES field in Package/DefaultYousong Zhou2017-05-031-0/+1
| | | | | | | | | Otherwise ipkg packages may wrongly take on alternatives specs of another package sharing the same package Makefile Fixes FS#753 Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
* include/packages-defaults.mk: Remove LARGEFILE optionDaniel Engberg2017-04-261-1/+0
| | | | | Remove LARGEFILE option, support was removed back in 2011 (OpenWrt rev 25208). Signed-off-by: Daniel Engberg <daniel.engberg.lists@pyret.net>
* build: copy contents of 'src' folder to build dirs (if present)Alexandru Ardelean2016-10-151-0/+1
| | | | | | | | | | | | | | | | | | | | | The normal Prepare step for a build is unpack, apply patches. But for certain packages, patches contain whole files, which would be nice to have separately and copied over as a last step in the Prepare phase. We need it for some other packages + patches, but I think the 'hostapd' package can be used as a test for this. As a quick note: the reason the condition is being evaluated as `[ ! -d ./src/ ] || $(CP) ./src/* $(HOST_BUILD_DIR)` and not with `[ -d ./src/ ] && $(CP) ./src/* $(HOST_BUILD_DIR)` is that the latter would translate in a build failure if the `src` folder is not present (the exit code would be 1). The first one, succeeds for both cases (if `src` present or not). Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
* build: use CXXFLAGS if definedHauke Mehrtens2016-10-131-1/+1
| | | | | | | | | | | Instead of using TARGET_CFLAGS and EXTRA_CFLAGS in cmake and scons build use the TARGET_CXXFLAGS and EXTRA_CXXFLAGS like it is done for normal make and configure. configure used TARGET_CXXFLAGS and EXTRA_CFLAGS for the CXXFLAGS. The package-default.mk sets "EXTRA_CXXFLAGS = $(EXTRA_CFLAGS)" so using EXTRA_CXXFLAGS flags should be save. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* cmake: include/cmake.mk add CMAKE_BINARY_SUBDIR to allow out of source tree ↵Luke McKee2016-07-291-1/+1
| | | | | | | | | | | | builds Some packages need out of source tree building with cmake, for example when building kernel modules. See an example here: https://sourceforge.net/p/accel-ppp/code/ci/master/tree/README Signed-off-by: Luke McKee <hojuruku@gmail.com> Signed-off-by: Felix Fietkau <nbd@nbd.name> [cleanup, rework]
* include: remove now unused PACKAGE_SUBDIR variableJo-Philipp Wich2016-04-131-1/+0
| | | | Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* include: group kmod ipk files into a "kernel" subdirectoryJo-Philipp Wich2016-01-241-0/+1
| | | | | | | | | | This is useful to just use the kmods from an official build while supplying base packages from a custom feed or the other way around; for just overriding the kmods with a local repo while using official repos for the rest. Signed-off-by: Jo-Philipp Wich <jow@openwrt.org> SVN-Revision: 48475
* gcc/musl: rework SSP-supportSteven Barth2015-06-221-1/+1
| | | | | | | | | | | Make musl provide libssp_nonshared.a and make GCC link it unconditionally if musl is used. This should be a no-op if SSP is disabled and seems to be the only reliable way of dealing with SSP over all packages due to the mess that is linkerflags handling in packages. Signed-off-by: Steven Barth <steven@midlink.org> SVN-Revision: 46108
* package-defaults: remove libssp for musl (redundant)Steven Barth2015-06-201-1/+1
| | | | | | Signed-off-by: Steven Barth <steven@midlink.org> SVN-Revision: 46072
* include: remove trailing whitespacesLuka Perkov2015-03-291-1/+1
| | | | | | Signed-off-by: Luka Perkov <luka@openwrt.org> SVN-Revision: 45127
* package-defaults.mk: set DISABLE_NLS only if not CONFIG_BUILD_NLSJohn Crispin2015-03-211-1/+5
| | | | | | | | | set DISABLE_NLS only if CONFIG_BUILD_NLS NOT set. like DISABLE_IPV6 which depends on CONFIG_IPV6 Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com> SVN-Revision: 44930
* build: add optional dependency on libssp to all non-kernel packagesFelix Fietkau2015-03-201-1/+1
| | | | | | | | | | | | | | | | | | When enabling SSP_SUPPORT, a lot of packages fail during compile phase with the following error: Package X is missing dependencies for the following libraries: libssp.so.0 This can be solved by adding an optional dependency on libssp to all those packages, but as there are quite a few packages both in OpenWrt core and in the package repository, it might make sense to add this optional dependency to all non-kernel packages, instead of polluting lots of package dependency lines with it. Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be> SVN-Revision: 44911
* toolchain: The glorious return of glibc, ver 2.21John Crispin2015-03-121-1/+1
| | | | | | | | | | | It's the eglibc packaging with a bit of spit-polishing. And testing. :-) [blogic: merged glibc and eglibc into 1 and made eglibc a glibc variant] Signed-off-by: Jeff Waugh <jdub@bethesignal.org> Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 44701
* build: add support for declaring package CONFLICTS which only affect ↵Felix Fietkau2014-10-051-0/+1
| | | | | | | | selecting built-in packages Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 42770
* build: allow packages with build variants to explicitly select a default variantFelix Fietkau2014-09-231-0/+1
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 42654
* include: remove file before overwritting it with replace_scriptJohn Crispin2014-09-151-1/+3
| | | | | | | | | | | | | | | | | | | | config.{sub,guess} could be symlinks to a shared common version of this file (e.g. in staging). So we remove the destination file via --remove-destination option of cp. This prevents replaceing the common file that other packages could be build with if running at the same time. This fixes a class of errors where config.sub is missing, or only partially present when running configure because a cp is currently in progress This is commonly seen building with a lot of parallel jobs and on packages that use 'PKG_FIXUP:=autoreconf' Signed-off-by: Matthew McClintock <mmcclint@qca.qualcomm.com> Signed-off-by: Mathieu Olivari <mathieu@qca.qualcomm.com> SVN-Revision: 42547
* include: add a meta data field for required system user:groupJohn Crispin2014-09-111-0/+1
| | | | | | | | | this is in preparation of having services run as !root with ACL'ed access to ubus. Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 42469
* build: remove check to nonexistant CONFIG_ENABLE_LOCALE variable and move ↵Felix Fietkau2014-03-211-0/+1
| | | | | | | | DISABLE_NLS to package-defaults.mk Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 39980
* build: allow packages to declare ABI versions to detect necessary package ↵Felix Fietkau2014-02-231-0/+1
| | | | | | | | | | | | | | | rebuilds If a package directly depends on another package that recently changed its ABI version, it will be cleaned up and rebuilt (assuming quilt is not used). This helps with packages that have no stable ABI, e.g. libubox, ubus, etc. Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 39720
* build: reduce the size of package metadata a bit to keep package list files ↵Felix Fietkau2012-12-221-1/+0
| | | | | | smaller SVN-Revision: 34871
* build: remove the default useless MAINTAINER valueFelix Fietkau2012-12-221-2/+0
| | | | SVN-Revision: 34868
* build: allow the package maintainer info to be specified globally for a ↵Felix Fietkau2012-10-081-1/+3
| | | | | | source package SVN-Revision: 33659
* build: add the + token to any commands that can pass through the jobserver, ↵Felix Fietkau2012-09-231-1/+1
| | | | | | fixes parallel build on some systems SVN-Revision: 33523
* make packages depend on +librt and +libpthread by default if eglibc is in useJo-Philipp Wich2012-09-191-1/+3
| | | | SVN-Revision: 33480
* build: add a dependency on libc to all non-kernel packagesFelix Fietkau2012-06-101-0/+6
| | | | SVN-Revision: 32171
* build: remove redundant call to $(SH_FUNC) (#8042)Felix Fietkau2012-03-051-1/+1
| | | | SVN-Revision: 30818
* build: add TARGET_CXXFLAGS and EXTRA_CXXFLAGS, defaulting to *_CFLAGS via ↵Felix Fietkau2012-03-011-2/+4
| | | | | | lazy evaluation. this allows adding c++ specific cflags SVN-Revision: 30760
* add support for hidden packages that get selected/built but do not show up ↵Felix Fietkau2011-07-021-0/+1
| | | | | | in menuconfig SVN-Revision: 27344
* add a new package metadata variable MDEPENDS for specifying local menuconfig ↵Felix Fietkau2011-04-051-0/+1
| | | | | | dependencies that do not propagate to other packages SVN-Revision: 26491
* add support for flagging packagesJo-Philipp Wich2010-10-021-0/+5
| | | | SVN-Revision: 23172
* Implement an ARCH_PACKAGES variable which defaults to BOARD but can be ↵Jo-Philipp Wich2010-09-121-3/+3
| | | | | | overridden on a per-subtarget basis. This is intended for targets such as adm5120 and malta which support both big and little endianess and will replace the target specific exceptions in package-defaults and Image Builder. SVN-Revision: 23029
* speed up the build system by including include/shell.sh on shell commands ↵Felix Fietkau2010-08-191-1/+1
| | | | | | only where necessary SVN-Revision: 22720
* Support parallel build of certain packagesMichael Büsch2010-08-181-1/+1
| | | | SVN-Revision: 22696
* The attached patch replaces $(1) install by $(if $(1), $(1), install) in the ↵Travis Kemen2010-03-051-1/+1
| | | | | | | | | | | | | | | | | definition, in order to be able to specify an install rule, which is not always called install (example: trunk/package/ncurses/Makefile has rules called install.libs and install.data). Then its possible to do this in ncurses Makefile: define Build/Install $(call Build/Install/Default, install.libs install.data) endef This patch does not affect anything else, as if no parameter is given, it will use install as before. -Raphael SVN-Revision: 19996
* build system: introduce a new feature called build variants. it allows ↵Felix Fietkau2009-11-101-0/+1
| | | | | | building a package multiple times in one pass with different build dirs, based on the same build settings. replaces templating hacks like the one used in the hostapd package SVN-Revision: 18357
* add special handling for the adm5120 target, which uses subtargets for ↵Imre Kaloz2009-08-031-1/+5
| | | | | | different endianess -- later we should come up with something smarter SVN-Revision: 17101
* revert 17050 this was not the right way to fix thisFlorian Fainelli2009-08-011-3/+3
| | | | SVN-Revision: 17075