From Fedora Project Wiki
No edit summary
No edit summary
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
----
Note that this is obsolete. Some other folks managed to suffer the pain of packaging this ton of crap.
Meanwhile, I'm enjoying being free of interacting with some of most retarded pieces of software in software history largely designed by people who should never have touched computer in the first place.
If you've ever dealt with NPM, you know what am I talking about.
My condolences!
--[[User:Lkundrak|Lkundrak]] ([[User talk:Lkundrak|talk]]) 11:43, 26 September 2013 (UTC)
----
== Packaging node.js in Fedora ==
== Packaging node.js in Fedora ==


Note this is work in progess!
Note this is work in progess!


node.js[http://nodejs.org/] is an asynchronous I/O based runtime for v8[http://code.google.com/p/v8/] javascript engine.
[http://nodejs.org/ node.js] is an asynchronous I/O based runtime for [http://code.google.com/p/v8/ v8] JavaScript engine.


The purpose of this page is to keep track of node.js packaging state, so that it's easy for anyone to to join the efforts and contribute.
The purpose of this page is to keep track of node.js packaging state, so that it's easy for anyone to to join the efforts and contribute.
Line 11: Line 26:


Node.js is dependent on v8 and as such, it needs to [[User:Lkundrak/v8|coordinate version updates with v8 package]].
Node.js is dependent on v8 and as such, it needs to [[User:Lkundrak/v8|coordinate version updates with v8 package]].
== Road Map ==
* Get node.js into Fedora Package collection
* Get involved with NPM so that it plays well with RPM
* Keep npm2rpm up to date
* Draft NPM packaging guidelines, pass them to Packaging Commitee
** Need to take non-NPM packages into consideration as well?


== Packages and reviews ==
== Packages and reviews ==
{|
! Package !! Notes !! Bugzilla Ticket (review, etc.)
|-
| nodejs || || [https://bugzilla.redhat.com/show_bug.cgi?id=634911 634911]
|-
|}


== Integrating NPM with RPM ==
== Integrating NPM with RPM ==
What's the point? I suggest you take a brief look at first few slides of my [http://v3.sk/~lkundrak/meetr-rubygem-rpm/ rubygem packaging presentation], just replace "ruby" with "node.js" :)
* [https://github.com/lkundrak/npm2rpm/blob/master/npm2rpm.pl npm2rpm] generates the RPM package skeletons from NPM metadata automatically (analogously to cpanspec).
* There's a [http://repos.fedorapeople.org/repos/lkundrak/nodejs/ repos.fedorapeople.org] repository with packages in development


What's below is mostly a list of  NPM characteristics that look like deficiencies from RPM point of view.
What's below is mostly a list of  NPM characteristics that look like deficiencies from RPM point of view.
Line 20: Line 55:


* Does not use pristine upstream sources, not all node.js components in the wild contain package.json
* Does not use pristine upstream sources, not all node.js components in the wild contain package.json
* Unable to install to different location than what dependencies are dragged from
* Unable to install to different location than what dependencies are dragged from, prevents clean unprivileged installations
** Installing a package modifies the installed one's metadata (!?) (the dependedby symlinks)
* Upstreams use very wild directory names in tarballs (such as: timestamp). Standardize that?
* Upstreams use very wild directory names in tarballs (such as: timestamp). Standardize that?
* Useful fields are sometimes missing (license tag, homepage URL)
* Useful fields are sometimes missing (license tag, homepage URL)
* A way to skip version symlinking would be nice
* A way to skip version symlinking would be nice

Latest revision as of 11:43, 26 September 2013


Note that this is obsolete. Some other folks managed to suffer the pain of packaging this ton of crap. Meanwhile, I'm enjoying being free of interacting with some of most retarded pieces of software in software history largely designed by people who should never have touched computer in the first place.

If you've ever dealt with NPM, you know what am I talking about. My condolences!

--Lkundrak (talk) 11:43, 26 September 2013 (UTC)



Packaging node.js in Fedora

Note this is work in progess!

node.js is an asynchronous I/O based runtime for v8 JavaScript engine.

The purpose of this page is to keep track of node.js packaging state, so that it's easy for anyone to to join the efforts and contribute. It may serve as tracker to aid transparent communication of problems we communicate solve with aid of node.js community outside Fedora (so that they know what bothers us :).

Versioning

Node.js is dependent on v8 and as such, it needs to coordinate version updates with v8 package.

Road Map

  • Get node.js into Fedora Package collection
  • Get involved with NPM so that it plays well with RPM
  • Keep npm2rpm up to date
  • Draft NPM packaging guidelines, pass them to Packaging Commitee
    • Need to take non-NPM packages into consideration as well?

Packages and reviews

Package Notes Bugzilla Ticket (review, etc.)
nodejs 634911

Integrating NPM with RPM

What's the point? I suggest you take a brief look at first few slides of my rubygem packaging presentation, just replace "ruby" with "node.js" :)

  • npm2rpm generates the RPM package skeletons from NPM metadata automatically (analogously to cpanspec).
  • There's a repos.fedorapeople.org repository with packages in development

What's below is mostly a list of NPM characteristics that look like deficiencies from RPM point of view. More-or-less ordered from most important to least.

  • Does not use pristine upstream sources, not all node.js components in the wild contain package.json
  • Unable to install to different location than what dependencies are dragged from, prevents clean unprivileged installations
    • Installing a package modifies the installed one's metadata (!?) (the dependedby symlinks)
  • Upstreams use very wild directory names in tarballs (such as: timestamp). Standardize that?
  • Useful fields are sometimes missing (license tag, homepage URL)
  • A way to skip version symlinking would be nice