めんてなのおしごと

Tue, Jul 18, 2017 in debian

どうやら3時間ほどdebian-mirror.sakura.ne.jpが繋がらなくなっていたようだ。


maintainer dashboardより。

  • libmojolicious-plugin-renderfile-perlの#839621を修正。manのtypoはPR送った
  • libmojolicious-plugin-assetpack-perlもついでに更新…しようとしたら手元のリポジトリが作業途中で放棄したものになっていた…

パッケージ一覧を眺めてのグルーミング作業。


octiconsのビルドにはnpmモジュールが必要

octiconsのビルドに必要なのを見てみるか…コイツの場合、buildすることになるのでdevDependenciesみた方が良いよね。

  "devDependencies": {
    "autoprefixer": "^6.3.6",
    "ava": "^0.16.0",
    "grunt": "^1.0.1",
    "grunt-contrib-clean": "^1.0.0",
    "grunt-contrib-copy": "^1.0.0",
    "grunt-cssnano": "^2.1.0",
    "grunt-svgmin": "^4.0.0",
    "grunt-svgstore": "^1.0.0"
  },

grunt,grunt-contrib-clean,grunt-contrib-copyはパッケージがある。逆に言うと他のは全部無い…のでパッケージングが必要。ではnpm2debでチャレンジしてみるか。autoprefixerをnpm2debすると

 [error]   num2fraction: dependency node-num2fraction not in debian
 [error]   browserslist: dependency node-browserslist not in debian
 [error]   normalize-range: dependency node-normalize-range not in debian
 [error]   postcss-value-parser: dependency node-postcss-value-parser not in debian
 [error]   caniuse-lite: dependency node-caniuse-lite not in debian
 [error]   postcss: dependency node-postcss not in debian

browserslistをnpm2debすると

 [error]   caniuse-lite: dependency node-caniuse-lite not in debian
 [error]   electron-to-chromium: dependency node-electron-to-chromium not in debian

…という感じでひたすら叩いていく。雛形づくりまでは簡単だけど、その後のITP登録やライセンス周りの雛形直しとかが大変そう。…この作業で150個以上のnpmモジュールをdebパッケージにすることが必要なようだ。マジか…。

パッケージに落とせてない所

css-treeはalpha版しかないからかnpm2debがコケる。

$ npm2deb create css-tree
Traceback (most recent call last):
  File "/usr/bin/npm2deb", line 7, in <module>
    sys.exit(main(sys.argv))
  File "/usr/lib/python3/dist-packages/npm2deb/scripts.py", line 138, in main
    args.func(args)
  File "/usr/lib/python3/dist-packages/npm2deb/scripts.py", line 273, in create
    npm2deb.start()
  File "/usr/lib/python3/dist-packages/npm2deb/__init__.py", line 71, in start
    self.download()
  File "/usr/lib/python3/dist-packages/npm2deb/__init__.py", line 404, in download
    raise ValueError(exception)
ValueError: Error downloading package css-tree
npm ERR! notarget No compatible version found: css-tree@'*'
npm ERR! notarget Valid install targets:
npm ERR! notarget ["1.0.0-alpha","1.0.0-alpha2","1.0.0-alpha3","1.0.0-alpha4","1.0.0-alpha5","1.0.0-alpha6","1.0.0-alpha7","1.0.0-alpha8","1.0.0-alpha9","1.0.0-alpha10","1.0.0-alpha11","1.0.0-alpha12","1.0.0-alpha13","1.0.0-alpha14","1.0.0-alpha15","1.0.0-alpha16","1.0.0-alpha17","1.0.0-alpha18","1.0.0-alpha19"]
npm ERR! notarget 
npm ERR! notarget This is most likely not a problem with npm itself.
npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.

npm ERR! System Linux 4.9.0-2-amd64
npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "pack" "css-tree"
npm ERR! cwd /home/henrich/src/collabmaint/npm-for-octicons/css-tree
npm ERR! node -v v4.8.3
npm ERR! npm -v 1.4.21
npm ERR! code ETARGET
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/henrich/src/collabmaint/npm-for-octicons/css-tree/npm-debug.log
npm ERR! not ok code 0

それから以下については、どのモジュールに対して作業すればいいのかがまだ理解できていない。

 [error]   @ava/write-file-atomic: dependency node-@ava/write-file-atomic not in debian                      
 [error]   @ava/babel-preset-transform-test-files: dependency node-@ava/babel-preset-transform-test-files not in debian                                                                                              
 [error]   @ava/babel-preset-stage-4: dependency node-@ava/babel-preset-stage-4 not in debian                
 [error]   @concordance/react: dependency node-@concordance/react not in debian                              
 [error]   @types/node: dependency node-@types/node not in debian

npm2debでの変換中、気になるメッセージとしては以下。

Using fakeupstream to download npm dist tarballs, because upstream
git repo is missing tags. Its better to ask upstream to tag their releases
instead of using npm dist tarballs as dist tarballs may contain pre built files
and may not include tests.

upstreamにタグうちをお願いしてこい、ということらしいが、150個以上もあるとどれだったかわからんわ。。。