[poky] [PATCH 0/8] RFC: break fetcher src rev deadlock
Gary Thomas
gary at mlbassoc.com
Tue Jan 4 18:33:51 PST 2011
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 at 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 at yoctoproject.org
>> https://lists.yoctoproject.org/listinfo/poky
> _______________________________________________
> poky mailing list
> poky at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/poky
--
------------------------------------------------------------
Gary Thomas | Consulting for the
MLB Associates | Embedded world
------------------------------------------------------------
More information about the poky
mailing list