From: Yu Ke <ke.yu@intel.com>
To: poky@yoctoproject.org
Subject: [PATCH 0/8] RFC: break fetcher src rev deadlock
Date: Mon, 27 Dec 2010 21:57:02 +0800 [thread overview]
Message-ID: <cover.1293457442.git.ke.yu@intel.com> (raw)
Current fetcher has annoying "SRCREVINACTION" deadlock,
which occurs when SRCREV=${AUTOREV}=@bb.fetch.get_srcrev():
get_srcrev()->setup_localpath()->srcrev_internal_helper()
->evaluate SRCREV->get_srcrev()
Current fetcher resolve the deadlock by introducing a
"SRCREVINACTION" condition check. Althoguh it works, it is
indeed not clean.
This patch use Richard's idea to break the deadlock: break
the dependency among SRCREV and get_srcrev(), i.e. assign
a specific keyword "AUTOINC" to AUTOREV. when Fetcher meet
this keyword, it will check and set the latest revision to
urldata.revision. get_srcrev later can use the urldata.revision
for value evaluation(SRCPV etc). In this case, SRCREV no longer
depends on get_srcrev, and there is not deadlock anymore.
In implementation side, several things are done:
a) set the revision in FetchData:__init__, so that
urldata.revision is ready when get_srcrev() need it
b) init fetch method specific data in Fetch:supports, so that
Fetch.latest_revision() can be conducted when FetchData:
__init__ need it to achieve a)
c) some recpies still use ${SRCREV} in PV, which is not corect
logically, and will cause error in current implementation.
so replace the SRCREV with SRCPV for those recpies
in test side, some basic tests are conducted:
- fetch the source of world packages from scratch (empty DL_DIR)
- bitbake poky-image-sato for qemux86 from sratch (empty DL_DIR)
more testing is ongoing, this RFC is just for early patch review
and comments are warmly welcome.
Pull URL: git://git.pokylinux.org/poky-contrib.git
Branch: kyu3/srcrev-cleanup
Browse: http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=kyu3/srcrev-cleanup
Thanks,
Yu Ke <ke.yu@intel.com>
---
Yu Ke (8):
Fetch: fix support-srcrev typo
git.py: move git specific url data initialization earlier
svn.py: move svn specific url data initialization earlier
hg.py: move hg specific url data initialization earlier
bzr.py: move bzr specific url data initialization earlier
recpies: use SRCPV instead of SRCREV for PV
Fetcher: break the "SRCREVINACTION" deadlock
Fetcher: only set __BB_DONT_CACHE when SRCREV = "${AUTOREV}"
bitbake/lib/bb/fetch/__init__.py | 56 ++++++++------------
bitbake/lib/bb/fetch/bzr.py | 22 ++++----
bitbake/lib/bb/fetch/git.py | 25 +++++----
bitbake/lib/bb/fetch/hg.py | 25 +++++----
bitbake/lib/bb/fetch/repo.py | 2 +-
bitbake/lib/bb/fetch/svn.py | 25 +++++----
.../recipes-connectivity/opensync/libsync_svn.bb | 2 +-
.../matchbox-themes-extra_svn.bb | 2 +-
meta/conf/bitbake.conf | 2 +-
.../eee-acpi-scripts/eee-acpi-scripts_git.bb | 2 +-
meta/recipes-bsp/uboot/u-boot-omap3_git.bb | 2 +-
meta/recipes-bsp/x-load/x-load_git.bb | 2 +-
meta/recipes-bsp/zaurusd/zaurusd_svn.bb | 2 +-
meta/recipes-connectivity/gsm/gsmd.inc | 2 +-
meta/recipes-connectivity/gypsy/gypsy_svn.bb | 2 +-
meta/recipes-core/dbus-wait/dbus-wait_svn.bb | 2 +-
meta/recipes-core/psplash/psplash_svn.bb | 2 +-
meta/recipes-devtools/opkg-utils/opkg-utils_svn.bb | 2 +-
meta/recipes-devtools/opkg/opkg_svn.bb | 2 +-
meta/recipes-devtools/tcf-agent/tcf-agent_svn.bb | 2 +-
meta/recipes-devtools/ubootchart/ubootchart_svn.bb | 2 +-
meta/recipes-gnome/gnome/gconf-dbus_svn.bb | 2 +-
.../gnome/gobject-introspection_git.bb | 2 +-
meta/recipes-gnome/gtkhtml2/gtkhtml2_svn.bb | 2 +-
meta/recipes-graphics/drm/libdrm_git.bb | 2 +-
meta/recipes-graphics/fstests/fstests_svn.bb | 2 +-
meta/recipes-graphics/libfakekey/libfakekey_svn.bb | 2 +-
.../libmatchbox/libmatchbox_svn.bb | 2 +-
.../matchbox-wm-2/matchbox-wm-2_svn.bb | 2 +-
.../matchbox-wm/matchbox-wm_svn.bb | 2 +-
meta/recipes-graphics/xcb/libxcb_git.bb | 2 +-
meta/recipes-graphics/xcb/xcb-proto_git.bb | 2 +-
.../xvideo-tests/xvideo-tests_svn.bb | 2 +-
.../linux-firmware/linux-firmware_git.bb | 2 +-
meta/recipes-kernel/linux/linux-omap2_git.bb | 2 +-
meta/recipes-kernel/linux/linux-omap3-pm_git.bb | 2 +-
meta/recipes-kernel/linux/linux-omap3_git.bb | 2 +-
meta/recipes-kernel/oprofile/oprofileui-svn.inc | 2 +-
meta/recipes-sato/gaku/gaku_svn.bb | 2 +-
.../gtk-engines/gtk-sato-engine_svn.bb | 2 +-
meta/recipes-sato/libowl/libowl_svn.bb | 2 +-
.../matchbox-config-gtk/matchbox-config-gtk_svn.bb | 2 +-
.../matchbox-desktop-sato_svn.bb | 2 +-
.../matchbox-desktop/matchbox-desktop_svn.bb | 2 +-
.../matchbox-keyboard/matchbox-keyboard_svn.bb | 2 +-
.../matchbox-panel-2/matchbox-panel-2_svn.bb | 2 +-
.../matchbox-stroke/matchbox-stroke_svn.bb | 2 +-
.../matchbox-terminal/matchbox-terminal_svn.bb | 2 +-
.../matchbox-theme-sato-2_svn.bb | 2 +-
.../matchbox-theme-sato/matchbox-theme-sato_svn.bb | 2 +-
.../recipes-sato/owl-video-widget/libowl-av_svn.bb | 2 +-
.../recipes-sato/owl-video-widget/owl-video_svn.bb | 2 +-
meta/recipes-sato/puzzles/oh-puzzles_svn.bb | 2 +-
meta/recipes-sato/screenshot/screenshot_svn.bb | 2 +-
.../settings-daemon/settings-daemon_svn.bb | 2 +-
meta/recipes-sato/web/web-webkit_svn.bb | 2 +-
meta/recipes-sato/web/web_svn.bb | 2 +-
meta/recipes-sato/webkit/webkit-gtk_svn.bb | 2 +-
meta/recipes-support/libgdbus/libgdbus_git.bb | 2 +-
59 files changed, 131 insertions(+), 130 deletions(-)
next reply other threads:[~2010-12-27 13:50 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-27 13:57 Yu Ke [this message]
2010-12-27 13:57 ` [PATCH 1/8] Fetch: fix support-srcrev typo Yu Ke
2011-01-06 10:39 ` Richard Purdie
2010-12-27 13:57 ` [PATCH 2/8] git.py: move git specific url data initialization earlier Yu Ke
2011-01-06 11:02 ` Richard Purdie
2011-01-06 12:34 ` Yu Ke
2010-12-27 13:57 ` [PATCH 3/8] svn.py: move svn " Yu Ke
2010-12-27 13:57 ` [PATCH 4/8] hg.py: move hg " Yu Ke
2010-12-27 13:57 ` [PATCH 5/8] bzr.py: move bzr " Yu Ke
2010-12-27 13:58 ` [PATCH 6/8] recpies: use SRCPV instead of SRCREV for PV Yu Ke
2011-01-06 10:38 ` Richard Purdie
2010-12-27 13:58 ` [PATCH 7/8] Fetcher: break the "SRCREVINACTION" deadlock Yu Ke
2011-01-06 11:06 ` Richard Purdie
2011-01-06 11:56 ` Richard Purdie
2011-01-06 13:01 ` Yu Ke
2010-12-27 13:58 ` [PATCH 8/8] Fetcher: only set __BB_DONT_CACHE when SRCREV = "${AUTOREV}" Yu Ke
2011-01-05 2:30 ` [PATCH 0/8] RFC: break fetcher src rev deadlock Yu Ke
2011-01-05 2:33 ` Gary Thomas
2011-01-05 8:03 ` Koen Kooi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1293457442.git.ke.yu@intel.com \
--to=ke.yu@intel.com \
--cc=poky@yoctoproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.