Blog: 2023-12-28

From razwiki
Jump to navigation Jump to search

Back at it packaging deno. This tutorial https://wiki.debian.org/Packaging/Intro gave me the following helpful command:

   $ dch --create -v 1.0-1 --package hithere 

Always happy to have a way to write out bespoke file formats automatically.

Ok now I have found https://github.com/kornelski/cargo-deb, maybe it will make the deb automatically? Let's try

Sweet, after installing this dependency: sudo apt install -y protobuf-compiler

I ran this command and got this positive result:

deno $ cargo deb -p deno
   Compiling ring v0.17.7
   [...]
   Compiling deno v1.39.1 (/home/razzi/forks/deno/cli)
    Finished release [optimized] target(s) in 18m 11s
/home/razzi/forks/deno/target/debian/deno_1.39.1-1_amd64.deb
deno $ ls
Cargo.lock  README.md    cli/     runtime/             test_ffi/   tools/
Cargo.toml  Releases.md  debian/  rust-toolchain.toml  test_napi/
LICENSE.md  bench_util/  ext/     target/              test_util/
deno $ ls -lahtr target/debian/
total 111M
drwxr-xr-x 4 razzi razzi 4.0K Dec 28 07:31 ../
-rwxr-xr-x 1 razzi razzi  85M Dec 28 08:02 deno.tmp0-stripped*
-rw-r--r-- 1 razzi razzi  26M Dec 28 08:02 deno_1.39.1-1_amd64.deb

Ok looking into it a bit the description is a bit odd:

fish $ apt show deno
Package: deno
Version: 1.39.1-1
Status: install ok installed
Priority: optional
Maintainer: the Deno authors
Installed-Size: 88.9 MB
Depends: libc6 (>= 2.38)
Vcs-Browser: https://github.com/denoland/deno
Vcs-Git: https://github.com/denoland/deno
Download-Size: unknown
APT-Manual-Installed: yes
APT-Sources: /var/lib/dpkg/status
Description: Provides the deno executable
 # Deno CLI Crate
 .
 [![crates](https://img.shields.io/crates/v/deno.svg)](https://crates.io/crates/deno)
 .
 This provides the actual deno executable and the user-facing APIs.
 .
 The deno crate uses the deno_core to provide the executable.

At the very least, nice to edit it to have a nicer description. Also make sure Apt-Sources works maybe Download-Size too.

--- (aside) Interesting (new shiny) https://github.com/francoismichel/ssh3 ---

Ok there is progress towards deno as apt: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=961337

Looks like some people are already thinking about this. I should get in touch with the debian javascript team


Finally made the comment https://github.com/denoland/deno/issues/1583#issuecomment-1871029186

More relevant discussion from rust users perspective: https://users.rust-lang.org/t/dependency-management-via-the-debian-package-manager-vs-cargo/83896


Work-Needing and Prospective Packages: https://wiki.debian.org/WNPP