From 9dcb921d908e664655e8bde2db64640b4f2d9072 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Tue, 14 Feb 2017 12:24:07 +0100 Subject: [PATCH] build: add buildbot specific config option for setting defaults This can be used to tweak the buildbot behavior without having to change buildbot's configuration. It will also allow us to add more aggressive clean steps (e.g. on toolchain changes), which would break developers' workflows if enable by default. Signed-off-by: Felix Fietkau --- config/Config-build.in | 14 ++++++++++++-- package/base-files/image-config.in | 2 +- scripts/target-metadata.pl | 5 ++++- target/imagebuilder/Config.in | 3 ++- target/sdk/Config.in | 1 + 5 files changed, 20 insertions(+), 5 deletions(-) diff --git a/config/Config-build.in b/config/Config-build.in index 9b8e4b2283..e0889fcccf 100644 --- a/config/Config-build.in +++ b/config/Config-build.in @@ -9,7 +9,7 @@ menu "Global build settings" config ALL_NONSHARED bool "Select all target specific packages by default" - default ALL + default ALL || BUILDBOT config ALL_KMODS bool "Select all kernel module packages by default" @@ -19,6 +19,16 @@ menu "Global build settings" bool "Select all userspace packages by default" default n + config BUILDBOT + bool "Set build defaults for automatic builds (e.g. via buildbot)" + default n + help + This option changes several defaults to be more suitable for + automatic builds. This includes the following changes: + - Deleting build directories after compiling (to save space) + - Enabling per-device rootfs support + ... + config SIGNED_PACKAGES bool "Cryptographically signed package lists" default y @@ -61,7 +71,7 @@ menu "Global build settings" bool prompt "Collect kernel debug information" select KERNEL_DEBUG_INFO - default n + default BUILDBOT help This collects debugging symbols from the kernel and all compiled modules. Useful for release builds, so that kernel issues can be debugged offline diff --git a/package/base-files/image-config.in b/package/base-files/image-config.in index b43d7c78cd..87d2ac6c54 100644 --- a/package/base-files/image-config.in +++ b/package/base-files/image-config.in @@ -286,7 +286,7 @@ menuconfig PER_FEED_REPO config PER_FEED_REPO_ADD_COMMENTED bool "Comment out not enabled feeds" - default y + default !BUILDBOT depends on PER_FEED_REPO && PER_FEED_REPO_ADD_DISABLED help Add not enabled feeds as commented out source lines to opkg.conf. diff --git a/scripts/target-metadata.pl b/scripts/target-metadata.pl index 7f7dc6d4ee..31de3c74c8 100755 --- a/scripts/target-metadata.pl +++ b/scripts/target-metadata.pl @@ -203,13 +203,14 @@ endchoice choice prompt "Target Profile" + default TARGET_MULTI_PROFILE if BUILDBOT EOF foreach my $target (@target) { my $profile = $target->{profiles}->[0]; $profile or next; print <{conf}_$profile->{id} if TARGET_$target->{conf} + default TARGET_$target->{conf}_$profile->{id} if TARGET_$target->{conf} && !BUILDBOT EOF } @@ -256,9 +257,11 @@ menu "Target Devices" config TARGET_ALL_PROFILES bool "Enable all profiles by default" + default BUILDBOT config TARGET_PER_DEVICE_ROOTFS bool "Use a per-device root filesystem that adds profile packages" + default BUILDBOT help When disabled, all device packages from all selected devices will be included in all images by default. (Marked as <*>) You will diff --git a/target/imagebuilder/Config.in b/target/imagebuilder/Config.in index b54eb5b4ff..49bb741f73 100644 --- a/target/imagebuilder/Config.in +++ b/target/imagebuilder/Config.in @@ -1,6 +1,7 @@ config IB bool "Build the LEDE Image Builder" depends on !EXTERNAL_TOOLCHAIN + default BUILDBOT help This is essentially a stripped-down version of the buildroot with precompiled packages, kernel image and image building tools. @@ -8,7 +9,7 @@ config IB config IB_STANDALONE bool "Include package repositories" - default y + default y if !BUILDBOT depends on IB help Disabling this option will cause the ImageBuilder to embed only diff --git a/target/sdk/Config.in b/target/sdk/Config.in index df2532985e..095759d064 100644 --- a/target/sdk/Config.in +++ b/target/sdk/Config.in @@ -1,6 +1,7 @@ config SDK bool "Build the LEDE SDK" depends on !EXTERNAL_TOOLCHAIN + default BUILDBOT help This is essentially a stripped-down version of the buildroot with a precompiled toolchain. It can be used to develop and