From: Gary Thomas <gary@mlbassoc.com>
To: Yu Ke <ke.yu@intel.com>
Cc: poky@yoctoproject.org
Subject: Re: [PATCH 0/8] RFC: break fetcher src rev deadlock
Date: Tue, 04 Jan 2011 19:33:51 -0700 [thread overview]
Message-ID: <4D23D88F.9080205@mlbassoc.com> (raw)
In-Reply-To: <20110105023055.GG20780@kyu3-hedt>
On 01/04/2011 07:30 PM, Yu Ke wrote:
> On Dec 27, 21:57, Yu Ke wrote:
>> 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.
>
> The following tests are done, all passed:
>
> - fetch source for world with DISTRO = "poky-bleeding", all passed except
> two broken recpies whose SRC_URI are obsolate, two bugs 623,624 are
> filed for this.
> - bitbake poky-image-sdk for qemux86 with empty DL_DIR
> - bitbake poky-image-sdk for qemuppc with empty DL_DIR
> - bitbake poky-image-sdk for qemumips with empty DL_DIR
Does this address the problem I reported recently with PREMIRRORS not
working when pointed to a local (file:///) repository? See the
discussion starting 2010-12-22 14:51 GMT with subject 'Write-protect $DL_DIR'
> BTW, Richard, could you take a look and provide comments on this? I'd like to
> revise them accordingly and prepare another submit for code check in.
>
> Regards
> Ke
>
>>
>> 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(-)
>>
>> _______________________________________________
>> poky mailing list
>> poky@yoctoproject.org
>> https://lists.yoctoproject.org/listinfo/poky
> _______________________________________________
> poky mailing list
> poky@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/poky
--
------------------------------------------------------------
Gary Thomas | Consulting for the
MLB Associates | Embedded world
------------------------------------------------------------
next prev parent reply other threads:[~2011-01-05 2:33 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
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=4D23D88F.9080205@mlbassoc.com \
--to=gary@mlbassoc.com \
--cc=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.