All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/8] RFC: break fetcher src rev deadlock
@ 2010-12-27 13:57 Yu Ke
  2010-12-27 13:57 ` [PATCH 1/8] Fetch: fix support-srcrev typo Yu Ke
                   ` (8 more replies)
  0 siblings, 9 replies; 19+ messages in thread
From: Yu Ke @ 2010-12-27 13:57 UTC (permalink / raw)
  To: poky

    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(-)



^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2011-01-06 12:53 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-12-27 13:57 [PATCH 0/8] RFC: break fetcher src rev deadlock Yu Ke
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

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.