* [RFC PATCH 0/5] base.bbclass: detect when S has been set incorrectly
@ 2015-01-10 14:40 Petter Mabäcker
2015-01-10 14:40 ` [RFC PATCH 1/5] " Petter Mabäcker
` (4 more replies)
0 siblings, 5 replies; 9+ messages in thread
From: Petter Mabäcker @ 2015-01-10 14:40 UTC (permalink / raw)
To: openembedded-core
From: Peter Mabacker <petter@technux.se>
This is my proposed solution for [YOCTO #5627].
I'm will gratefully recieve feedback regarding especially the removal of auto-create 'S'
in base.bbclass and if 'S' not set to a proper value, should generate a warning or error.
I have chosen a warning (at least to start with). Since a lot of recipes have
faulty $S (for example S=WORKDIR/$PN (default) instead of S=WORKDIR), you might assume
that a lot of external layers have recipes with this problem as well and display an error and
abort might be a bit to hard. At least until people have had the chance to clean this up.
So the suggestion is to start with a warning and consider changing this to error later on (in 1.9?).
The following changes since commit 876370419a50264a28feb4278f8c465b0019e709:
bitbake: toaster: implementation of project page (2015-01-08 22:34:38 +0000)
are available in the git repository at:
git://git.yoctoproject.org/poky-contrib petmab/bug5627
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=petmab/bug5627
Petter Mabäcker (5):
base.bbclass: detect when S has been set incorrectly
makedevs: set and handle S in a proper way
lsof: handle S in a proper way
xorg-minimal-fonts: set and handle S in a proper way
meta: set proper S value
meta/classes/base.bbclass | 17 +++++++++++++----
meta/recipes-bsp/alsa-state/alsa-state.bb | 2 ++
meta/recipes-bsp/hostap/hostap-conf_1.0.bb | 2 ++
meta/recipes-bsp/keymaps/keymaps_1.0.bb | 2 ++
meta/recipes-connectivity/connman/connman-conf.bb | 2 ++
meta/recipes-connectivity/ppp-dialin/ppp-dialin_0.1.bb | 2 ++
meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb | 2 ++
meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb | 2 ++
.../initrdscripts/initramfs-framework_1.0.bb | 2 ++
.../initrdscripts/initramfs-live-boot_1.0.bb | 2 ++
.../initramfs-live-install-efi-testfs_1.0.bb | 2 ++
.../initrdscripts/initramfs-live-install-efi_1.0.bb | 2 ++
.../initrdscripts/initramfs-live-install-testfs_1.0.bb | 2 ++
.../initrdscripts/initramfs-live-install_1.0.bb | 2 ++
meta/recipes-core/initscripts/initscripts_1.0.bb | 2 ++
meta/recipes-core/systemd/systemd-systemctl-native.bb | 2 ++
meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb | 2 +-
meta/recipes-core/udev/udev-extraconf_1.1.bb | 2 ++
meta/recipes-devtools/makedevs/makedevs_1.0.1.bb | 6 ++----
meta/recipes-devtools/opkg/opkg-collateral.bb | 2 ++
.../recipes-devtools/run-postinsts/run-postinsts_1.0.bb | 2 ++
meta/recipes-extended/lsof/lsof_4.88.bb | 7 +++++++
meta/recipes-extended/shadow/shadow-securetty_4.2.1.bb | 2 ++
meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb | 4 +++-
.../xorg-xserver/xserver-xf86-config_0.1.bb | 2 ++
.../modutils-initscripts/modutils-initscripts.bb | 3 +++
meta/recipes-qt/qt-demo/qt-demo-init_0.1.bb | 2 ++
meta/recipes-support/ptest-runner/ptest-runner_1.0.bb | 2 ++
28 files changed, 73 insertions(+), 10 deletions(-)
--
1.9.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [RFC PATCH 1/5] base.bbclass: detect when S has been set incorrectly
2015-01-10 14:40 [RFC PATCH 0/5] base.bbclass: detect when S has been set incorrectly Petter Mabäcker
@ 2015-01-10 14:40 ` Petter Mabäcker
2015-01-12 15:53 ` Paul Eggleton
2015-01-10 14:40 ` [RFC PATCH 2/5] makedevs: set and handle S in a proper way Petter Mabäcker
` (3 subsequent siblings)
4 siblings, 1 reply; 9+ messages in thread
From: Petter Mabäcker @ 2015-01-10 14:40 UTC (permalink / raw)
To: openembedded-core
Currently base.bbclass is creating S if it's not created by unpacking
an archive or fetching a repository. If we avoid creating S we can detect
when S hasn't been set correctly, since it will not exist. Then we can tell
the user that they should set S to a proper value, instead of just failing
with odd errors in later tasks.
Besides removing the auto-creation of S this change will introduce a warning
if S is set incorrectly. The reason for not display an error and return
is due to all external layers that might have recipes that will fail otherwise
and that might be a bit to hard to start with. So use a warning until people
have had a chance to cleanup affected recipes.
[YOCTO #5627]
Signed-off-by: Petter Mabäcker <petter@technux.se>
---
meta/classes/base.bbclass | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index de50be1..789af3b 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -113,7 +113,6 @@ python base_do_fetch() {
addtask unpack after do_fetch
do_unpack[dirs] = "${WORKDIR}"
-do_unpack[cleandirs] = "${S}/patches"
python base_do_unpack() {
src_uri = (d.getVar('SRC_URI', True) or "").split()
if len(src_uri) == 0:
@@ -121,11 +120,21 @@ python base_do_unpack() {
rootdir = d.getVar('WORKDIR', True)
+ # Ensure that we cleanup ${S}/patches
+ # TODO: Investigate if we can remove
+ # the entire ${S} in this case.
+ s_dir = d.getVar('S', True)
+ p_dir = os.path.join(s_dir, 'patches')
+ bb.utils.remove(p_dir, True)
+
try:
fetcher = bb.fetch2.Fetch(src_uri, d)
fetcher.unpack(rootdir)
except bb.fetch2.BBFetchException as e:
raise bb.build.FuncFailed(e)
+
+ if not os.path.exists(s_dir):
+ bb.warn("%s ('S') don't exist, you must set 'S' to a proper value" % s_dir)
}
def pkgarch_mapping(d):
@@ -220,7 +229,7 @@ CONFIGURESTAMPFILE = "${WORKDIR}/configure.sstate"
CLEANBROKEN = "0"
addtask configure after do_patch
-do_configure[dirs] = "${S} ${B}"
+do_configure[dirs] = "${B}"
do_configure[deptask] = "do_populate_sysroot"
base_do_configure() {
if [ -n "${CONFIGURESTAMPFILE}" -a -e "${CONFIGURESTAMPFILE}" ]; then
@@ -238,7 +247,7 @@ base_do_configure() {
}
addtask compile after do_configure
-do_compile[dirs] = "${S} ${B}"
+do_compile[dirs] = "${B}"
base_do_compile() {
if [ -e Makefile -o -e makefile -o -e GNUmakefile ]; then
oe_runmake || die "make failed"
@@ -248,7 +257,7 @@ base_do_compile() {
}
addtask install after do_compile
-do_install[dirs] = "${D} ${S} ${B}"
+do_install[dirs] = "${D} ${B}"
# Remove and re-create ${D} so that is it guaranteed to be empty
do_install[cleandirs] = "${D}"
--
1.9.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [RFC PATCH 2/5] makedevs: set and handle S in a proper way
2015-01-10 14:40 [RFC PATCH 0/5] base.bbclass: detect when S has been set incorrectly Petter Mabäcker
2015-01-10 14:40 ` [RFC PATCH 1/5] " Petter Mabäcker
@ 2015-01-10 14:40 ` Petter Mabäcker
2015-01-10 14:40 ` [RFC PATCH 3/5] lsof: " Petter Mabäcker
` (2 subsequent siblings)
4 siblings, 0 replies; 9+ messages in thread
From: Petter Mabäcker @ 2015-01-10 14:40 UTC (permalink / raw)
To: openembedded-core
After removal of auto-creating S we must ensure that all recipes are
using a proper value for S. Also do some cleanup of code not needed
after changing value of S.
[YOCTO #5627]
Signed-off-by: Petter Mabäcker <petter@technux.se>
---
meta/recipes-devtools/makedevs/makedevs_1.0.1.bb | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/meta/recipes-devtools/makedevs/makedevs_1.0.1.bb b/meta/recipes-devtools/makedevs/makedevs_1.0.1.bb
index dd9bea2..92d5870 100644
--- a/meta/recipes-devtools/makedevs/makedevs_1.0.1.bb
+++ b/meta/recipes-devtools/makedevs/makedevs_1.0.1.bb
@@ -5,11 +5,9 @@ SECTION = "base"
SRC_URI = "file://makedevs.c \
file://COPYING.patch"
-FILES_${PN}_append_class-nativesdk = " ${datadir}"
+S = "${WORKDIR}"
-do_configure() {
- install -m 0644 ${WORKDIR}/makedevs.c ${S}/
-}
+FILES_${PN}_append_class-nativesdk = " ${datadir}"
do_compile() {
${CC} ${CFLAGS} ${LDFLAGS} -o ${S}/makedevs ${S}/makedevs.c
--
1.9.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [RFC PATCH 3/5] lsof: handle S in a proper way
2015-01-10 14:40 [RFC PATCH 0/5] base.bbclass: detect when S has been set incorrectly Petter Mabäcker
2015-01-10 14:40 ` [RFC PATCH 1/5] " Petter Mabäcker
2015-01-10 14:40 ` [RFC PATCH 2/5] makedevs: set and handle S in a proper way Petter Mabäcker
@ 2015-01-10 14:40 ` Petter Mabäcker
2015-01-10 14:40 ` [RFC PATCH 4/5] xorg-minimal-fonts: set and " Petter Mabäcker
2015-01-10 14:40 ` [RFC PATCH 5/5] meta: set proper S value Petter Mabäcker
4 siblings, 0 replies; 9+ messages in thread
From: Petter Mabäcker @ 2015-01-10 14:40 UTC (permalink / raw)
To: openembedded-core
Since lsof are doing two unpacks and S should be set to match
the second unpack of an internal archive, we should let the build
system know that we are aware of this.
Solve this by temporarily set S like lsof are doing with SRC_URI.
[YOCTO #5627]
Signed-off-by: Petter Mabäcker <petter@technux.se>
---
meta/recipes-extended/lsof/lsof_4.88.bb | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/meta/recipes-extended/lsof/lsof_4.88.bb b/meta/recipes-extended/lsof/lsof_4.88.bb
index a96b06e..0e49f92 100644
--- a/meta/recipes-extended/lsof/lsof_4.88.bb
+++ b/meta/recipes-extended/lsof/lsof_4.88.bb
@@ -15,9 +15,16 @@ S = "${WORKDIR}/lsof_${PV}_src"
LIC_FILES_CHKSUM = "file://${S}/00README;beginline=645;endline=679;md5=964df275d26429ba3b39dbb9f205172a"
python do_unpack () {
+ # temporarily change S for unpack
+ # of lsof_${PV}
+ s = d.getVar('S')
+ d.setVar('S', '${WORKDIR}/lsof_${PV}')
bb.build.exec_func('base_do_unpack', d)
+ # temporarily change SRC_URI for unpack
+ # of lsof_${PV}_src
src_uri = d.getVar('SRC_URI')
d.setVar('SRC_URI', '${LOCALSRC}')
+ d.setVar('S', s)
bb.build.exec_func('base_do_unpack', d)
d.setVar('SRC_URI', src_uri)
}
--
1.9.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [RFC PATCH 4/5] xorg-minimal-fonts: set and handle S in a proper way
2015-01-10 14:40 [RFC PATCH 0/5] base.bbclass: detect when S has been set incorrectly Petter Mabäcker
` (2 preceding siblings ...)
2015-01-10 14:40 ` [RFC PATCH 3/5] lsof: " Petter Mabäcker
@ 2015-01-10 14:40 ` Petter Mabäcker
2015-01-10 14:40 ` [RFC PATCH 5/5] meta: set proper S value Petter Mabäcker
4 siblings, 0 replies; 9+ messages in thread
From: Petter Mabäcker @ 2015-01-10 14:40 UTC (permalink / raw)
To: openembedded-core
After removal of auto-creating S we must ensure that all recipes are
using a proper value for S. Also do some minor adjustment after changing
value of S.
[YOCTO #5627]
Signed-off-by: Petter Mabäcker <petter@technux.se>
---
meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb
index 3688685..bee500b 100644
--- a/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb
+++ b/meta/recipes-graphics/xorg-font/xorg-minimal-fonts.bb
@@ -15,13 +15,15 @@ PR = "r2"
inherit allarch
+S = "${WORKDIR}/misc"
+
PACKAGES = "${PN}"
FILES_${PN} = "${libdir}/X11/ ${datadir}/fonts/X11/"
RDEPENDS_${PN} += "font-alias"
do_install() {
install -d ${D}/${datadir}/fonts/X11/misc
- install -m 0644 ${WORKDIR}/misc/* ${D}/${datadir}/fonts/X11/misc/
+ install -m 0644 ${S}/* ${D}/${datadir}/fonts/X11/misc/
install -d ${D}/${libdir}/X11
ln -sf ${datadir}/fonts/X11/ ${D}/${libdir}/X11/fonts -s
}
--
1.9.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [RFC PATCH 5/5] meta: set proper S value
2015-01-10 14:40 [RFC PATCH 0/5] base.bbclass: detect when S has been set incorrectly Petter Mabäcker
` (3 preceding siblings ...)
2015-01-10 14:40 ` [RFC PATCH 4/5] xorg-minimal-fonts: set and " Petter Mabäcker
@ 2015-01-10 14:40 ` Petter Mabäcker
4 siblings, 0 replies; 9+ messages in thread
From: Petter Mabäcker @ 2015-01-10 14:40 UTC (permalink / raw)
To: openembedded-core
After removal of auto-creating S we must ensure that all recipes are
using a proper value for S.
Fix all recipes that only need to set S equals to WORKDIR.
[YOCTO #5627]
Signed-off-by: Petter Mabäcker <petter@technux.se>
---
meta/recipes-bsp/alsa-state/alsa-state.bb | 2 ++
meta/recipes-bsp/hostap/hostap-conf_1.0.bb | 2 ++
meta/recipes-bsp/keymaps/keymaps_1.0.bb | 2 ++
meta/recipes-connectivity/connman/connman-conf.bb | 2 ++
meta/recipes-connectivity/ppp-dialin/ppp-dialin_0.1.bb | 2 ++
meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb | 2 ++
meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb | 2 ++
meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb | 2 ++
meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb | 2 ++
.../initrdscripts/initramfs-live-install-efi-testfs_1.0.bb | 2 ++
meta/recipes-core/initrdscripts/initramfs-live-install-efi_1.0.bb | 2 ++
meta/recipes-core/initrdscripts/initramfs-live-install-testfs_1.0.bb | 2 ++
meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb | 2 ++
meta/recipes-core/initscripts/initscripts_1.0.bb | 2 ++
meta/recipes-core/systemd/systemd-systemctl-native.bb | 2 ++
meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb | 2 +-
| 2 ++
meta/recipes-devtools/opkg/opkg-collateral.bb | 2 ++
meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb | 2 ++
meta/recipes-extended/shadow/shadow-securetty_4.2.1.bb | 2 ++
meta/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bb | 2 ++
meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb | 3 +++
meta/recipes-qt/qt-demo/qt-demo-init_0.1.bb | 2 ++
meta/recipes-support/ptest-runner/ptest-runner_1.0.bb | 2 ++
24 files changed, 48 insertions(+), 1 deletion(-)
diff --git a/meta/recipes-bsp/alsa-state/alsa-state.bb b/meta/recipes-bsp/alsa-state/alsa-state.bb
index 17c2d00..d0f7bb3 100644
--- a/meta/recipes-bsp/alsa-state/alsa-state.bb
+++ b/meta/recipes-bsp/alsa-state/alsa-state.bb
@@ -18,6 +18,8 @@ SRC_URI = "\
file://alsa-state-init \
"
+S = "${WORKDIR}"
+
# As the recipe doesn't inherit systemd.bbclass, we need to set this variable
# manually to avoid unnecessary postinst/preinst generated.
python __anonymous() {
diff --git a/meta/recipes-bsp/hostap/hostap-conf_1.0.bb b/meta/recipes-bsp/hostap/hostap-conf_1.0.bb
index e2c7cc0..e1d4c54 100644
--- a/meta/recipes-bsp/hostap/hostap-conf_1.0.bb
+++ b/meta/recipes-bsp/hostap/hostap-conf_1.0.bb
@@ -10,6 +10,8 @@ SRC_URI = "file://hostap_cs.modalias \
inherit allarch
+S = "${WORKDIR}"
+
do_compile() {
}
diff --git a/meta/recipes-bsp/keymaps/keymaps_1.0.bb b/meta/recipes-bsp/keymaps/keymaps_1.0.bb
index 925161b..5793a76 100644
--- a/meta/recipes-bsp/keymaps/keymaps_1.0.bb
+++ b/meta/recipes-bsp/keymaps/keymaps_1.0.bb
@@ -26,6 +26,8 @@ SRC_URI = "file://keymap.sh \
INITSCRIPT_NAME = "keymap.sh"
INITSCRIPT_PARAMS = "start 01 S ."
+S = "${WORKDIR}"
+
do_install () {
# Only install the script if 'sysvinit' is in DISTRO_FEATURES
# THe ulitity this script provides could be achieved by systemd-vconsole-setup.service
diff --git a/meta/recipes-connectivity/connman/connman-conf.bb b/meta/recipes-connectivity/connman/connman-conf.bb
index af72640..2358d9d 100644
--- a/meta/recipes-connectivity/connman/connman-conf.bb
+++ b/meta/recipes-connectivity/connman/connman-conf.bb
@@ -9,6 +9,8 @@ SRC_URI_append_qemuall = "file://wired.config \
"
PR = "r2"
+S = "${WORKDIR}"
+
PACKAGE_ARCH = "${MACHINE_ARCH}"
FILES_${PN} = "${localstatedir}/* ${libdir}/*"
diff --git a/meta/recipes-connectivity/ppp-dialin/ppp-dialin_0.1.bb b/meta/recipes-connectivity/ppp-dialin/ppp-dialin_0.1.bb
index 68b83d0..51a76b4 100644
--- a/meta/recipes-connectivity/ppp-dialin/ppp-dialin_0.1.bb
+++ b/meta/recipes-connectivity/ppp-dialin/ppp-dialin_0.1.bb
@@ -12,6 +12,8 @@ SRC_URI = "file://host-peer \
inherit allarch useradd
+S = "${WORKDIR}"
+
do_install() {
install -d ${D}${sysconfdir}/ppp/peers
install -m 0644 ${WORKDIR}/host-peer ${D}${sysconfdir}/ppp/peers/host
diff --git a/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb b/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb
index 3d88506..733ae41 100644
--- a/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb
+++ b/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb
@@ -16,6 +16,8 @@ SRC_URI = "file://copyright \
file://interfaces \
file://nfsroot"
+S = "${WORKDIR}"
+
do_install () {
install -d ${D}${sysconfdir}/init.d \
${D}${sysconfdir}/network/if-pre-up.d \
diff --git a/meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb
index 0ede20b..7ae7969 100644
--- a/meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-boot_1.0.bb
@@ -5,6 +5,8 @@ SRC_URI = "file://init-boot.sh"
PR = "r2"
+S = "${WORKDIR}"
+
do_install() {
install -m 0755 ${WORKDIR}/init-boot.sh ${D}/init
}
diff --git a/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb
index 403127b..89b900d 100644
--- a/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb
@@ -14,6 +14,8 @@ SRC_URI = "file://init \
file://e2fs \
file://debug"
+S = "${WORKDIR}"
+
do_install() {
install -d ${D}/init.d
diff --git a/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb
index ac54902..b54cb61 100644
--- a/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb
@@ -7,6 +7,8 @@ SRC_URI = "file://init-live.sh"
PR = "r12"
+S = "${WORKDIR}"
+
do_install() {
install -m 0755 ${WORKDIR}/init-live.sh ${D}/init
}
diff --git a/meta/recipes-core/initrdscripts/initramfs-live-install-efi-testfs_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-live-install-efi-testfs_1.0.bb
index a54960c..c03bd2d 100644
--- a/meta/recipes-core/initrdscripts/initramfs-live-install-efi-testfs_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-live-install-efi-testfs_1.0.bb
@@ -5,6 +5,8 @@ SRC_URI = "file://init-install-efi-testfs.sh"
RDEPENDS_${PN} = "parted e2fsprogs-mke2fs dosfstools"
+S = "${WORKDIR}"
+
do_install() {
install -m 0755 ${WORKDIR}/init-install-efi-testfs.sh ${D}/install-efi.sh
}
diff --git a/meta/recipes-core/initrdscripts/initramfs-live-install-efi_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-live-install-efi_1.0.bb
index 7195dc2..b0994d7 100644
--- a/meta/recipes-core/initrdscripts/initramfs-live-install-efi_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-live-install-efi_1.0.bb
@@ -7,6 +7,8 @@ PR = "r1"
RDEPENDS_${PN} = "parted e2fsprogs-mke2fs dosfstools"
+S = "${WORKDIR}"
+
do_install() {
install -m 0755 ${WORKDIR}/init-install-efi.sh ${D}/install-efi.sh
}
diff --git a/meta/recipes-core/initrdscripts/initramfs-live-install-testfs_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-live-install-testfs_1.0.bb
index db4cf54..937bfd4 100644
--- a/meta/recipes-core/initrdscripts/initramfs-live-install-testfs_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-live-install-testfs_1.0.bb
@@ -5,6 +5,8 @@ SRC_URI = "file://init-install-testfs.sh"
RDEPENDS_${PN} = "grub parted e2fsprogs-mke2fs"
+S = "${WORKDIR}"
+
do_install() {
install -m 0755 ${WORKDIR}/init-install-testfs.sh ${D}/install.sh
}
diff --git a/meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb b/meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb
index 7bf31c9..6241a90 100644
--- a/meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb
@@ -5,6 +5,8 @@ SRC_URI = "file://init-install.sh"
PR = "r9"
+S = "${WORKDIR}"
+
RDEPENDS_${PN} = "grub parted e2fsprogs-mke2fs"
do_install() {
diff --git a/meta/recipes-core/initscripts/initscripts_1.0.bb b/meta/recipes-core/initscripts/initscripts_1.0.bb
index afdc538..dfb75b2 100644
--- a/meta/recipes-core/initscripts/initscripts_1.0.bb
+++ b/meta/recipes-core/initscripts/initscripts_1.0.bb
@@ -35,6 +35,8 @@ SRC_URI = "file://functions \
file://logrotate-dmesg.conf \
"
+S = "${WORKDIR}"
+
SRC_URI_append_arm = " file://alignment.sh"
KERNEL_VERSION = ""
diff --git a/meta/recipes-core/systemd/systemd-systemctl-native.bb b/meta/recipes-core/systemd/systemd-systemctl-native.bb
index 72bc77d..fbdc9c0 100644
--- a/meta/recipes-core/systemd/systemd-systemctl-native.bb
+++ b/meta/recipes-core/systemd/systemd-systemctl-native.bb
@@ -9,6 +9,8 @@ inherit native
SRC_URI = "file://systemctl"
+S = "${WORKDIR}"
+
do_install() {
install -d ${D}${bindir}
install -m 0755 ${WORKDIR}/systemctl ${D}${bindir}
diff --git a/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb b/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb
index 657ef02..eed2104 100644
--- a/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb
+++ b/meta/recipes-core/sysvinit/sysvinit-inittab_2.88dsf.bb
@@ -6,7 +6,7 @@ PR = "r10"
SRC_URI = "file://inittab"
-S = "${WORKDIR}/sysvinit-${PV}"
+S = "${WORKDIR}"
INHIBIT_DEFAULT_DEPS = "1"
--git a/meta/recipes-core/udev/udev-extraconf_1.1.bb b/meta/recipes-core/udev/udev-extraconf_1.1.bb
index d69056d..6fbd925 100644
--- a/meta/recipes-core/udev/udev-extraconf_1.1.bb
+++ b/meta/recipes-core/udev/udev-extraconf_1.1.bb
@@ -13,6 +13,8 @@ SRC_URI = " \
file://localextra.rules \
"
+S = "${WORKDIR}"
+
do_install() {
install -d ${D}${sysconfdir}/udev/rules.d
diff --git a/meta/recipes-devtools/opkg/opkg-collateral.bb b/meta/recipes-devtools/opkg/opkg-collateral.bb
index 3825ffb..0cf6b8b 100644
--- a/meta/recipes-devtools/opkg/opkg-collateral.bb
+++ b/meta/recipes-devtools/opkg/opkg-collateral.bb
@@ -8,6 +8,8 @@ SRC_URI = "file://opkg.conf.comments \
file://dest \
file://src "
+S = "${WORKDIR}"
+
OPKGLIBDIR = "${localstatedir}/lib"
do_compile () {
cat ${WORKDIR}/opkg.conf.comments >${WORKDIR}/opkg.conf
diff --git a/meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb b/meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb
index 64f85c2..d126132 100644
--- a/meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb
+++ b/meta/recipes-devtools/run-postinsts/run-postinsts_1.0.bb
@@ -9,6 +9,8 @@ SRC_URI = "file://run-postinsts \
file://run-postinsts.init \
file://run-postinsts.service"
+S = "${WORKDIR}"
+
inherit allarch systemd update-rc.d
INITSCRIPT_NAME = "run-postinsts"
diff --git a/meta/recipes-extended/shadow/shadow-securetty_4.2.1.bb b/meta/recipes-extended/shadow/shadow-securetty_4.2.1.bb
index 0e04100..c78f888 100644
--- a/meta/recipes-extended/shadow/shadow-securetty_4.2.1.bb
+++ b/meta/recipes-extended/shadow/shadow-securetty_4.2.1.bb
@@ -9,6 +9,8 @@ PR = "r3"
SRC_URI = "file://securetty"
+S = "${WORKDIR}"
+
# Since SERIAL_CONSOLES is likely to be set from the machine configuration
PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bb b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bb
index 549c7c8..5420b7d 100644
--- a/meta/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bb
+++ b/meta/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bb
@@ -7,6 +7,8 @@ PR = "r33"
SRC_URI = "file://xorg.conf"
+S = "${WORKDIR}"
+
CONFFILES_${PN} = "${sysconfdir}/X11/xorg.conf"
PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb b/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb
index 7031ba1..db670cf 100644
--- a/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb
+++ b/meta/recipes-kernel/modutils-initscripts/modutils-initscripts.bb
@@ -4,8 +4,11 @@ LICENSE = "PD"
LIC_FILES_CHKSUM = "file://LICENSE;md5=7bf87fc37976e93ec66ad84fac58c098"
SRC_URI = "file://modutils.sh \
file://PD.patch"
+
PR = "r7"
+S = "${WORKDIR}"
+
INITSCRIPT_NAME = "modutils.sh"
INITSCRIPT_PARAMS = "start 05 S ."
diff --git a/meta/recipes-qt/qt-demo/qt-demo-init_0.1.bb b/meta/recipes-qt/qt-demo/qt-demo-init_0.1.bb
index fff3620..aa1b0b6 100644
--- a/meta/recipes-qt/qt-demo/qt-demo-init_0.1.bb
+++ b/meta/recipes-qt/qt-demo/qt-demo-init_0.1.bb
@@ -6,6 +6,8 @@ PR = "r3"
LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \
file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+S = "${WORKDIR}"
+
do_install() {
install -d ${D}${sysconfdir}/init.d/
install -m 0755 ${WORKDIR}/qtdemo-init ${D}${sysconfdir}/init.d/qtdemo
diff --git a/meta/recipes-support/ptest-runner/ptest-runner_1.0.bb b/meta/recipes-support/ptest-runner/ptest-runner_1.0.bb
index 7443811..bc1b0a4 100644
--- a/meta/recipes-support/ptest-runner/ptest-runner_1.0.bb
+++ b/meta/recipes-support/ptest-runner/ptest-runner_1.0.bb
@@ -11,6 +11,8 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d
INHIBIT_DEFAULT_DEPS = "1"
+S = "${WORKDIR}"
+
do_install () {
mkdir -p ${D}${bindir}
install -m 0755 ${WORKDIR}/ptest-runner ${D}${bindir}
--
1.9.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [RFC PATCH 1/5] base.bbclass: detect when S has been set incorrectly
2015-01-10 14:40 ` [RFC PATCH 1/5] " Petter Mabäcker
@ 2015-01-12 15:53 ` Paul Eggleton
2015-01-13 9:08 ` Petter Mabäcker
0 siblings, 1 reply; 9+ messages in thread
From: Paul Eggleton @ 2015-01-12 15:53 UTC (permalink / raw)
To: Petter Mabäcker, Christopher Larson; +Cc: openembedded-core
Hi Petter,
On Saturday 10 January 2015 15:40:10 Petter Mabäcker wrote:
> Currently base.bbclass is creating S if it's not created by unpacking
> an archive or fetching a repository. If we avoid creating S we can detect
> when S hasn't been set correctly, since it will not exist. Then we can tell
> the user that they should set S to a proper value, instead of just failing
> with odd errors in later tasks.
>
> Besides removing the auto-creation of S this change will introduce a warning
> if S is set incorrectly. The reason for not display an error and return is
> due to all external layers that might have recipes that will fail otherwise
> and that might be a bit to hard to start with. So use a warning until
> people have had a chance to cleanup affected recipes.
>
> [YOCTO #5627]
>
> Signed-off-by: Petter Mabäcker <petter@technux.se>
> ---
> meta/classes/base.bbclass | 17 +++++++++++++----
> 1 file changed, 13 insertions(+), 4 deletions(-)
>
> diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
> index de50be1..789af3b 100644
> --- a/meta/classes/base.bbclass
> +++ b/meta/classes/base.bbclass
> @@ -113,7 +113,6 @@ python base_do_fetch() {
>
> addtask unpack after do_fetch
> do_unpack[dirs] = "${WORKDIR}"
> -do_unpack[cleandirs] = "${S}/patches"
> python base_do_unpack() {
> src_uri = (d.getVar('SRC_URI', True) or "").split()
> if len(src_uri) == 0:
> @@ -121,11 +120,21 @@ python base_do_unpack() {
>
> rootdir = d.getVar('WORKDIR', True)
>
> + # Ensure that we cleanup ${S}/patches
> + # TODO: Investigate if we can remove
> + # the entire ${S} in this case.
> + s_dir = d.getVar('S', True)
> + p_dir = os.path.join(s_dir, 'patches')
> + bb.utils.remove(p_dir, True)
> +
> try:
> fetcher = bb.fetch2.Fetch(src_uri, d)
> fetcher.unpack(rootdir)
> except bb.fetch2.BBFetchException as e:
> raise bb.build.FuncFailed(e)
> +
> + if not os.path.exists(s_dir):
> + bb.warn("%s ('S') don't exist, you must set 'S' to a proper value"
> % s_dir) }
>
> def pkgarch_mapping(d):
> @@ -220,7 +229,7 @@ CONFIGURESTAMPFILE = "${WORKDIR}/configure.sstate"
> CLEANBROKEN = "0"
>
> addtask configure after do_patch
> -do_configure[dirs] = "${S} ${B}"
> +do_configure[dirs] = "${B}"
> do_configure[deptask] = "do_populate_sysroot"
> base_do_configure() {
> if [ -n "${CONFIGURESTAMPFILE}" -a -e "${CONFIGURESTAMPFILE}" ]; then
> @@ -238,7 +247,7 @@ base_do_configure() {
> }
>
> addtask compile after do_configure
> -do_compile[dirs] = "${S} ${B}"
> +do_compile[dirs] = "${B}"
> base_do_compile() {
> if [ -e Makefile -o -e makefile -o -e GNUmakefile ]; then
> oe_runmake || die "make failed"
> @@ -248,7 +257,7 @@ base_do_compile() {
> }
>
> addtask install after do_compile
> -do_install[dirs] = "${D} ${S} ${B}"
> +do_install[dirs] = "${D} ${B}"
> # Remove and re-create ${D} so that is it guaranteed to be empty
> do_install[cleandirs] = "${D}"
This looks reasonable to me; however I'm sure I recall Chris talking about
some kind of complication with this issue a year or so ago - Chris do you
remember what that was about?
Cheers,
Paul
--
Paul Eggleton
Intel Open Source Technology Centre
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFC PATCH 1/5] base.bbclass: detect when S has been set incorrectly
2015-01-12 15:53 ` Paul Eggleton
@ 2015-01-13 9:08 ` Petter Mabäcker
2015-01-19 19:40 ` Christopher Larson
0 siblings, 1 reply; 9+ messages in thread
From: Petter Mabäcker @ 2015-01-13 9:08 UTC (permalink / raw)
To: Paul Eggleton, Christopher Larson; +Cc: openembedded-core
On 01/12/2015 04:53 PM, Paul Eggleton wrote:
> Hi Petter,
>
> On Saturday 10 January 2015 15:40:10 Petter Mabäcker wrote:
>> Currently base.bbclass is creating S if it's not created by unpacking
>> an archive or fetching a repository. If we avoid creating S we can detect
>> when S hasn't been set correctly, since it will not exist. Then we can tell
>> the user that they should set S to a proper value, instead of just failing
>> with odd errors in later tasks.
>>
>> Besides removing the auto-creation of S this change will introduce a warning
>> if S is set incorrectly. The reason for not display an error and return is
>> due to all external layers that might have recipes that will fail otherwise
>> and that might be a bit to hard to start with. So use a warning until
>> people have had a chance to cleanup affected recipes.
>>
>> [YOCTO #5627]
>>
>> Signed-off-by: Petter Mabäcker <petter@technux.se>
>> ---
>> meta/classes/base.bbclass | 17 +++++++++++++----
>> 1 file changed, 13 insertions(+), 4 deletions(-)
>>
>> diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
>> index de50be1..789af3b 100644
>> --- a/meta/classes/base.bbclass
>> +++ b/meta/classes/base.bbclass
>> @@ -113,7 +113,6 @@ python base_do_fetch() {
>>
>> addtask unpack after do_fetch
>> do_unpack[dirs] = "${WORKDIR}"
>> -do_unpack[cleandirs] = "${S}/patches"
>> python base_do_unpack() {
>> src_uri = (d.getVar('SRC_URI', True) or "").split()
>> if len(src_uri) == 0:
>> @@ -121,11 +120,21 @@ python base_do_unpack() {
>>
>> rootdir = d.getVar('WORKDIR', True)
>>
>> + # Ensure that we cleanup ${S}/patches
>> + # TODO: Investigate if we can remove
>> + # the entire ${S} in this case.
>> + s_dir = d.getVar('S', True)
>> + p_dir = os.path.join(s_dir, 'patches')
>> + bb.utils.remove(p_dir, True)
>> +
>> try:
>> fetcher = bb.fetch2.Fetch(src_uri, d)
>> fetcher.unpack(rootdir)
>> except bb.fetch2.BBFetchException as e:
>> raise bb.build.FuncFailed(e)
>> +
>> + if not os.path.exists(s_dir):
>> + bb.warn("%s ('S') don't exist, you must set 'S' to a proper value"
>> % s_dir) }
>>
>> def pkgarch_mapping(d):
>> @@ -220,7 +229,7 @@ CONFIGURESTAMPFILE = "${WORKDIR}/configure.sstate"
>> CLEANBROKEN = "0"
>>
>> addtask configure after do_patch
>> -do_configure[dirs] = "${S} ${B}"
>> +do_configure[dirs] = "${B}"
>> do_configure[deptask] = "do_populate_sysroot"
>> base_do_configure() {
>> if [ -n "${CONFIGURESTAMPFILE}" -a -e "${CONFIGURESTAMPFILE}" ]; then
>> @@ -238,7 +247,7 @@ base_do_configure() {
>> }
>>
>> addtask compile after do_configure
>> -do_compile[dirs] = "${S} ${B}"
>> +do_compile[dirs] = "${B}"
>> base_do_compile() {
>> if [ -e Makefile -o -e makefile -o -e GNUmakefile ]; then
>> oe_runmake || die "make failed"
>> @@ -248,7 +257,7 @@ base_do_compile() {
>> }
>>
>> addtask install after do_compile
>> -do_install[dirs] = "${D} ${S} ${B}"
>> +do_install[dirs] = "${D} ${B}"
>> # Remove and re-create ${D} so that is it guaranteed to be empty
>> do_install[cleandirs] = "${D}"
> This looks reasonable to me; however I'm sure I recall Chris talking about
> some kind of complication with this issue a year or so ago - Chris do you
> remember what that was about?
>
> Cheers,
> Paul
>
Ok, I will wait and see if Chris remembers anything sneaky about this. I
have run quite some tests without seeing any problems so far. Perhaps it
was about removing ${S} instead of just ${S}/patches in do_unpack ?
Because I think there have been some discussions about that in the past.
I also did some test with that in the scope of 'bug 5627', but it is far
more complex to do such a chance, a lot of recipes didn't liked that at
all =/ It seems more correct to really wipe entire ${S} in that case,
but I guess it have to wait..
BR,
Petter
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [RFC PATCH 1/5] base.bbclass: detect when S has been set incorrectly
2015-01-13 9:08 ` Petter Mabäcker
@ 2015-01-19 19:40 ` Christopher Larson
0 siblings, 0 replies; 9+ messages in thread
From: Christopher Larson @ 2015-01-19 19:40 UTC (permalink / raw)
To: Petter Mabäcker, Paul Eggleton; +Cc: openembedded-core
[-- Attachment #1: Type: text/plain, Size: 4506 bytes --]
Honestly I can't recall anymore. I remember looking into this, as this has
been a long-standing annoyance, but I don't recall what the issues were.
I'm absolutely in favor of your pursuing this.
On Tue Jan 13 2015 at 2:08:08 AM Petter Mabäcker <petter@technux.se> wrote:
> On 01/12/2015 04:53 PM, Paul Eggleton wrote:
> > Hi Petter,
> >
> > On Saturday 10 January 2015 15:40:10 Petter Mabäcker wrote:
> >> Currently base.bbclass is creating S if it's not created by unpacking
> >> an archive or fetching a repository. If we avoid creating S we can
> detect
> >> when S hasn't been set correctly, since it will not exist. Then we can
> tell
> >> the user that they should set S to a proper value, instead of just
> failing
> >> with odd errors in later tasks.
> >>
> >> Besides removing the auto-creation of S this change will introduce a
> warning
> >> if S is set incorrectly. The reason for not display an error and return
> is
> >> due to all external layers that might have recipes that will fail
> otherwise
> >> and that might be a bit to hard to start with. So use a warning until
> >> people have had a chance to cleanup affected recipes.
> >>
> >> [YOCTO #5627]
> >>
> >> Signed-off-by: Petter Mabäcker <petter@technux.se>
> >> ---
> >> meta/classes/base.bbclass | 17 +++++++++++++----
> >> 1 file changed, 13 insertions(+), 4 deletions(-)
> >>
> >> diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
> >> index de50be1..789af3b 100644
> >> --- a/meta/classes/base.bbclass
> >> +++ b/meta/classes/base.bbclass
> >> @@ -113,7 +113,6 @@ python base_do_fetch() {
> >>
> >> addtask unpack after do_fetch
> >> do_unpack[dirs] = "${WORKDIR}"
> >> -do_unpack[cleandirs] = "${S}/patches"
> >> python base_do_unpack() {
> >> src_uri = (d.getVar('SRC_URI', True) or "").split()
> >> if len(src_uri) == 0:
> >> @@ -121,11 +120,21 @@ python base_do_unpack() {
> >>
> >> rootdir = d.getVar('WORKDIR', True)
> >>
> >> + # Ensure that we cleanup ${S}/patches
> >> + # TODO: Investigate if we can remove
> >> + # the entire ${S} in this case.
> >> + s_dir = d.getVar('S', True)
> >> + p_dir = os.path.join(s_dir, 'patches')
> >> + bb.utils.remove(p_dir, True)
> >> +
> >> try:
> >> fetcher = bb.fetch2.Fetch(src_uri, d)
> >> fetcher.unpack(rootdir)
> >> except bb.fetch2.BBFetchException as e:
> >> raise bb.build.FuncFailed(e)
> >> +
> >> + if not os.path.exists(s_dir):
> >> + bb.warn("%s ('S') don't exist, you must set 'S' to a proper
> value"
> >> % s_dir) }
> >>
> >> def pkgarch_mapping(d):
> >> @@ -220,7 +229,7 @@ CONFIGURESTAMPFILE = "${WORKDIR}/configure.sstate"
> >> CLEANBROKEN = "0"
> >>
> >> addtask configure after do_patch
> >> -do_configure[dirs] = "${S} ${B}"
> >> +do_configure[dirs] = "${B}"
> >> do_configure[deptask] = "do_populate_sysroot"
> >> base_do_configure() {
> >> if [ -n "${CONFIGURESTAMPFILE}" -a -e "${CONFIGURESTAMPFILE}" ];
> then
> >> @@ -238,7 +247,7 @@ base_do_configure() {
> >> }
> >>
> >> addtask compile after do_configure
> >> -do_compile[dirs] = "${S} ${B}"
> >> +do_compile[dirs] = "${B}"
> >> base_do_compile() {
> >> if [ -e Makefile -o -e makefile -o -e GNUmakefile ]; then
> >> oe_runmake || die "make failed"
> >> @@ -248,7 +257,7 @@ base_do_compile() {
> >> }
> >>
> >> addtask install after do_compile
> >> -do_install[dirs] = "${D} ${S} ${B}"
> >> +do_install[dirs] = "${D} ${B}"
> >> # Remove and re-create ${D} so that is it guaranteed to be empty
> >> do_install[cleandirs] = "${D}"
> > This looks reasonable to me; however I'm sure I recall Chris talking
> about
> > some kind of complication with this issue a year or so ago - Chris do you
> > remember what that was about?
> >
> > Cheers,
> > Paul
> >
> Ok, I will wait and see if Chris remembers anything sneaky about this. I
> have run quite some tests without seeing any problems so far. Perhaps it
> was about removing ${S} instead of just ${S}/patches in do_unpack ?
> Because I think there have been some discussions about that in the past.
> I also did some test with that in the scope of 'bug 5627', but it is far
> more complex to do such a chance, a lot of recipes didn't liked that at
> all =/ It seems more correct to really wipe entire ${S} in that case,
> but I guess it have to wait..
>
> BR,
> Petter
>
[-- Attachment #2: Type: text/html, Size: 5800 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2015-01-19 19:40 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-10 14:40 [RFC PATCH 0/5] base.bbclass: detect when S has been set incorrectly Petter Mabäcker
2015-01-10 14:40 ` [RFC PATCH 1/5] " Petter Mabäcker
2015-01-12 15:53 ` Paul Eggleton
2015-01-13 9:08 ` Petter Mabäcker
2015-01-19 19:40 ` Christopher Larson
2015-01-10 14:40 ` [RFC PATCH 2/5] makedevs: set and handle S in a proper way Petter Mabäcker
2015-01-10 14:40 ` [RFC PATCH 3/5] lsof: " Petter Mabäcker
2015-01-10 14:40 ` [RFC PATCH 4/5] xorg-minimal-fonts: set and " Petter Mabäcker
2015-01-10 14:40 ` [RFC PATCH 5/5] meta: set proper S value Petter Mabäcker
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.