* [PATCH 0/2] A couple more recipetool fixes
@ 2016-07-26 2:57 Paul Eggleton
2016-07-26 2:57 ` [PATCH 1/2] recipetool: create: fix greedy regex that broke support for github tarballs Paul Eggleton
2016-07-26 2:57 ` [PATCH 2/2] oe-selftest: recipetool: add tests for git URL mangling Paul Eggleton
0 siblings, 2 replies; 3+ messages in thread
From: Paul Eggleton @ 2016-07-26 2:57 UTC (permalink / raw)
To: openembedded-core
Fix a regression in "recipetool create" introduced by a recent patch of
mine, and add tests to detect if it breaks again in future.
(This is independent of the recipetool patchset I sent yesterday.)
The following changes since commit 0a2df616a5c3316704742f1dcf37b450920e0280:
boost: fix CVE-2012-2677 (2016-07-21 07:45:01 +0100)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib paule/recipetool-fixes5
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=paule/recipetool-fixes5
Paul Eggleton (2):
recipetool: create: fix greedy regex that broke support for github
tarballs
oe-selftest: recipetool: add tests for git URL mangling
meta/lib/oeqa/selftest/recipetool.py | 43 ++++++++++++++++++++++++++++++++++++
scripts/lib/recipetool/create.py | 2 +-
2 files changed, 44 insertions(+), 1 deletion(-)
--
2.5.5
^ permalink raw reply [flat|nested] 3+ messages in thread* [PATCH 1/2] recipetool: create: fix greedy regex that broke support for github tarballs 2016-07-26 2:57 [PATCH 0/2] A couple more recipetool fixes Paul Eggleton @ 2016-07-26 2:57 ` Paul Eggleton 2016-07-26 2:57 ` [PATCH 2/2] oe-selftest: recipetool: add tests for git URL mangling Paul Eggleton 1 sibling, 0 replies; 3+ messages in thread From: Paul Eggleton @ 2016-07-26 2:57 UTC (permalink / raw) To: openembedded-core The regex here needs to be anchored to the end or it'll match longer URLs, which was exactly what I was trying to avoid. This regression was introduced in OE-Core revision 7998dc3597657229507e5c140fceef1e485ac402. Fixes [YOCTO #10023]. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> --- scripts/lib/recipetool/create.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/lib/recipetool/create.py b/scripts/lib/recipetool/create.py index f246028..8c399b3 100644 --- a/scripts/lib/recipetool/create.py +++ b/scripts/lib/recipetool/create.py @@ -324,7 +324,7 @@ def supports_srcrev(uri): def reformat_git_uri(uri): '''Convert any http[s]://....git URI into git://...;protocol=http[s]''' checkuri = uri.split(';', 1)[0] - if checkuri.endswith('.git') or '/git/' in checkuri or re.match('https?://github.com/[^/]+/[^/]+/?', checkuri): + if checkuri.endswith('.git') or '/git/' in checkuri or re.match('https?://github.com/[^/]+/[^/]+/?$', checkuri): res = re.match('(https?)://([^;]+(\.git)?)(;.*)?$', uri) if res: # Need to switch the URI around so that the git fetcher is used -- 2.5.5 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 2/2] oe-selftest: recipetool: add tests for git URL mangling 2016-07-26 2:57 [PATCH 0/2] A couple more recipetool fixes Paul Eggleton 2016-07-26 2:57 ` [PATCH 1/2] recipetool: create: fix greedy regex that broke support for github tarballs Paul Eggleton @ 2016-07-26 2:57 ` Paul Eggleton 1 sibling, 0 replies; 3+ messages in thread From: Paul Eggleton @ 2016-07-26 2:57 UTC (permalink / raw) To: openembedded-core Add three tests to verify that the git URL mangling is working the way it's supposed to. This should prevent us regressing on this again in future. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> --- meta/lib/oeqa/selftest/recipetool.py | 43 ++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/meta/lib/oeqa/selftest/recipetool.py b/meta/lib/oeqa/selftest/recipetool.py index f8f6be3..db1f8de 100644 --- a/meta/lib/oeqa/selftest/recipetool.py +++ b/meta/lib/oeqa/selftest/recipetool.py @@ -442,6 +442,49 @@ class RecipetoolTests(RecipetoolBase): inherits = ['cmake', 'python-dir', 'gettext', 'pkgconfig'] self._test_recipe_contents(recipefile, checkvars, inherits) + def test_recipetool_create_github(self): + # Basic test to see if github URL mangling works + temprecipe = os.path.join(self.tempdir, 'recipe') + os.makedirs(temprecipe) + recipefile = os.path.join(temprecipe, 'meson_git.bb') + srcuri = 'https://github.com/mesonbuild/meson' + result = runCmd('recipetool create -o %s %s' % (temprecipe, srcuri)) + self.assertTrue(os.path.isfile(recipefile)) + checkvars = {} + checkvars['LICENSE'] = set(['Apache-2.0']) + checkvars['SRC_URI'] = 'git://github.com/mesonbuild/meson;protocol=https' + inherits = ['setuptools'] + self._test_recipe_contents(recipefile, checkvars, inherits) + + def test_recipetool_create_github_tarball(self): + # Basic test to ensure github URL mangling doesn't apply to release tarballs + temprecipe = os.path.join(self.tempdir, 'recipe') + os.makedirs(temprecipe) + pv = '0.32.0' + recipefile = os.path.join(temprecipe, 'meson_%s.bb' % pv) + srcuri = 'https://github.com/mesonbuild/meson/releases/download/%s/meson-%s.tar.gz' % (pv, pv) + result = runCmd('recipetool create -o %s %s' % (temprecipe, srcuri)) + self.assertTrue(os.path.isfile(recipefile)) + checkvars = {} + checkvars['LICENSE'] = set(['Apache-2.0']) + checkvars['SRC_URI'] = 'https://github.com/mesonbuild/meson/releases/download/${PV}/meson-${PV}.tar.gz' + inherits = ['setuptools'] + self._test_recipe_contents(recipefile, checkvars, inherits) + + def test_recipetool_create_git_http(self): + # Basic test to check http git URL mangling works + temprecipe = os.path.join(self.tempdir, 'recipe') + os.makedirs(temprecipe) + recipefile = os.path.join(temprecipe, 'matchbox-terminal_git.bb') + srcuri = 'http://git.yoctoproject.org/git/matchbox-terminal' + result = runCmd('recipetool create -o %s %s' % (temprecipe, srcuri)) + self.assertTrue(os.path.isfile(recipefile)) + checkvars = {} + checkvars['LICENSE'] = set(['GPLv2']) + checkvars['SRC_URI'] = 'git://git.yoctoproject.org/git/matchbox-terminal;protocol=http' + inherits = ['pkgconfig', 'autotools'] + self._test_recipe_contents(recipefile, checkvars, inherits) + class RecipetoolAppendsrcBase(RecipetoolBase): def _try_recipetool_appendsrcfile(self, testrecipe, newfile, destfile, options, expectedlines, expectedfiles): cmd = 'recipetool appendsrcfile %s %s %s %s %s' % (options, self.templayerdir, testrecipe, newfile, destfile) -- 2.5.5 ^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2016-07-26 2:58 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-07-26 2:57 [PATCH 0/2] A couple more recipetool fixes Paul Eggleton 2016-07-26 2:57 ` [PATCH 1/2] recipetool: create: fix greedy regex that broke support for github tarballs Paul Eggleton 2016-07-26 2:57 ` [PATCH 2/2] oe-selftest: recipetool: add tests for git URL mangling Paul Eggleton
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox