All of lore.kernel.org
 help / color / mirror / Atom feed
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(-)



             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.