diff mbox series

[poky] Fix npm to use https rather than http

Message ID 20220825204250.3241214-1-nhorman@gmail.com
State New
Headers show
Series [poky] Fix npm to use https rather than http | expand

Commit Message

Neil Horman Aug. 25, 2022, 8:42 p.m. UTC
Hit this error while building nlf-native recently:
{
  "error": {
    "summary": "URI malformed",
    "detail": ""
  }
}

Some poking about led me to discover that:
1) The npm.py tool replaces npm:// with http://, not https://
2) Some versions of the npm tool don't handle 301 redirects properly,
   choosing to display the above error instead when using the default
   nodejs registry

It would be good to go fix npm to handle the redirect properly, but it
seems like it would also be good to assume secure http when contacting a
registry, hence, this patch

Signed-off-by: Neil Horman <nhorman@gmail.com>
---
 bitbake/lib/bb/fetch2/npm.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Luca Ceresoli Aug. 26, 2022, 10:43 a.m. UTC | #1
Hello Neil,

thank you for your patch.

On Thu, 25 Aug 2022 16:42:50 -0400
"Neil Horman" <nhorman@gmail.com> wrote:

> Hit this error while building nlf-native recently:
> {
>   "error": {
>     "summary": "URI malformed",
>     "detail": ""
>   }
> }
> 
> Some poking about led me to discover that:
> 1) The npm.py tool replaces npm:// with http://, not https://
> 2) Some versions of the npm tool don't handle 301 redirects properly,
>    choosing to display the above error instead when using the default
>    nodejs registry
> 
> It would be good to go fix npm to handle the redirect properly, but it
> seems like it would also be good to assume secure http when contacting a
> registry, hence, this patch
> 
> Signed-off-by: Neil Horman <nhorman@gmail.com>
> ---
>  bitbake/lib/bb/fetch2/npm.py | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/bitbake/lib/bb/fetch2/npm.py b/bitbake/lib/bb/fetch2/npm.py

Apparently you prepared this patch within the poky git repository. You
shouldn't do that, poky is an integration layer and should not be used
for bitbake development.

Since you want to patch bitbake, you should:
- clone the bitbake repository
- make your commit there
- send it to the bitbake mailing list.

Look at the README.md in the poky root directory for more info.

Thanks!

Best regards,
Ross Burton Aug. 26, 2022, 11:57 a.m. UTC | #2
> On 26 Aug 2022, at 11:43, Luca Ceresoli via lists.openembedded.org <luca.ceresoli=bootlin.com@lists.openembedded.org> wrote:
> 
> Apparently you prepared this patch within the poky git repository. You
> shouldn't do that, poky is an integration layer and should not be used
> for bitbake development.
> 
> Since you want to patch bitbake, you should:
> - clone the bitbake repository
> - make your commit there
> - send it to the bitbake mailing list.
> 
> Look at the README.md in the poky root directory for more info.

FWIW, git is typically clever enough to handle this case.  Feel free to post the patch you have against the poky repository directly to the bitbake mailing list.

Thanks,
Ross
Neil Horman Aug. 26, 2022, 12:21 p.m. UTC | #3
Copy that, thanks!

On Fri, Aug 26, 2022, 7:57 AM Ross Burton <Ross.Burton@arm.com> wrote:

>
> > On 26 Aug 2022, at 11:43, Luca Ceresoli via lists.openembedded.org
> <luca.ceresoli=bootlin.com@lists.openembedded.org> wrote:
> >
> > Apparently you prepared this patch within the poky git repository. You
> > shouldn't do that, poky is an integration layer and should not be used
> > for bitbake development.
> >
> > Since you want to patch bitbake, you should:
> > - clone the bitbake repository
> > - make your commit there
> > - send it to the bitbake mailing list.
> >
> > Look at the README.md in the poky root directory for more info.
>
> FWIW, git is typically clever enough to handle this case.  Feel free to
> post the patch you have against the poky repository directly to the bitbake
> mailing list.
>
> Thanks,
> Ross
diff mbox series

Patch

diff --git a/bitbake/lib/bb/fetch2/npm.py b/bitbake/lib/bb/fetch2/npm.py
index 8f7c10ac9b..8a179a339a 100644
--- a/bitbake/lib/bb/fetch2/npm.py
+++ b/bitbake/lib/bb/fetch2/npm.py
@@ -156,7 +156,7 @@  class Npm(FetchMethod):
             raise ParameterError("Invalid 'version' parameter", ud.url)
 
         # Extract the 'registry' part of the url
-        ud.registry = re.sub(r"^npm://", "http://", ud.url.split(";")[0])
+        ud.registry = re.sub(r"^npm://", "https://", ud.url.split(";")[0])
 
         # Using the 'downloadfilename' parameter as local filename
         # or the npm package name.