]> git.proxmox.com Git - debcargo-conf.git/blob - TODO.rst
Release package rayon-core
[debcargo-conf.git] / TODO.rst
1 ===============
2 Immediate goals
3 ===============
4
5 See end of this document for "eventual goals".
6
7
8 Remove old libraries
9 ====================
10
11 Should file a RM request to ftpmasters for these old crates:
12
13 - wayland-commons after the 0.30 wayland stack is uploaded
14
15
16 Unblocking testing migrations
17 =============================
18
19 Run ``dev/rust-excuses.mk refresh all`` to see these in a nice graph.
20
21 Run ``dev/rust-regressions.sh`` to analyse autopkgtest regressions.
22
23 From the excuses graph, find the lowest crates i.e. those with no arrows going
24 outwards to other crates. Then run ``dev/list-rdeps.sh @ $lowest_crotes`` to
25 see which of its rdeps are broken, and need to be fixed.
26
27
28 New packages
29 ============
30
31 Use ``dev/list-remaining-deps.sh`` to help you figure out what's missing.
32
33 rustfmt-nightly
34 ---------------
35
36 note: (stable) rustfmt is shipped as part of src:rustc nowadays..
37
38 * rustc-ap-syntax
39 * rustc-ap-rustc_data_structures (prepared)
40 * rustc-ap-graphviz (needs nightly)
41 * rustc-ap-rustc-cratesio-shim (needs nightly)
42 * rustc-ap-rustc-errors (depends on the rest of the list here)
43 * rustc-ap-rustc-target
44 * rustc-ap-serialize (to be uploaded, dep issue?!)
45 * rustc-ap-syntax-pos
46 * rustc-ap-serialize (fails because of usage of nightly feature)
47
48 bat update
49 ----------
50
51 syntect is in debian
52 Needs syntect => onig => onig-sys => bindgen 0.55 (for librust-bindgen-0.51+runtime-dev)
53 Disabling syntect in bat causes:
54 error[E0433]: failed to resolve: use of undeclared type or module `syntect`
55 --> src/terminal.rs:4:5
56
57
58 bingrep
59 -------
60
61 * metagoblin
62
63 tokei
64 -----
65
66 needs handlebars
67 which needs pest
68 which needs ucd-trie
69
70 librsvg
71 -------
72
73 see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=907629
74
75 [ ] nalgebra: 4 reverse dependencies
76 [ ] simba: 2 reverse dependencies
77 [ ] rctree: no missing dependencies
78 [ ] lopdf: one reverse dependency
79 [ ] yeslogic-fontconfig-sys:
80 [x] clap v4
81 [x] GTK related packages
82 [ ] some cairo related packages (need newer gtk)
83
84
85 bench
86 -----
87
88 * packageable
89
90 cargo-deb
91 ----------------
92
93 * should be packagable
94
95
96 rustup (#1026333)
97 ------
98
99 * rustup (not available as a crate)
100 * download (private crate) (needs patched out reqwest features)
101 * async-compression (merged)
102
103
104 clap v2 dependency list
105 -----------------------
106 structopt used clap v2
107 dotenv is unmaintained and superseded by dotenvy which uses clap v3;
108 hexyl uses clapv4
109 sniffglue, git-absorb, sha1collision, gcov, libslirp and cargo-binutils depend on structopt
110 rav1e uses also clap4
111
112
113 GTK stack dependency tree
114 -------------------------
115
116 Since every gtk-rs release is versioned and a lot of crates are affected updating it is a lot of work and only be done if neccessary.
117 I made this convienient dependency tree to illustrate how to update. You should start at the top and update all sys-crates first.
118 Then update the regular crates, also from top to bottom. For convinience pass the debs along like this: `./build.sh gstreamer-sys *.deb`.
119
120 **Never update just one single package or just some part of this stack! Check if it can be bumped safely!**
121
122
123 sys crate overview
124
125
126 * glib-sys
127 * gobject-sys, cairo-sys-rs, graphene-sys, gdk4-wayland-sys -> need glib-sys
128 * gio-sys, atk-sys, gstreamer-sys, pango-sys -> need gobject-sys
129 * pangocairo-sys -> needs cairo-sys-rs and pango-sys
130 * gdk-pixbuf-sys, gdk-sys -> need gio-sys
131 * gdkx11-sys, gtk-sys -> need gdk-sys
132 * gdk4-sys -> needs gdkx11-sys
133 * gdk4-x11-sys -> needs gdk-4-sys
134 * gsk4-sys -> needs gdk-x11-sys
135 * gtk4-sys -> needs gsk-4-sys
136 * libadwaita-sys, libshumate-sys -> need gtk4-sys
137
138 * gstreamer-sys -> needs gio-sys
139 * gstreamer-audio-sys -> gstreamer-sys
140 * gstreamer-video-sys -> gstreamer-sys
141 * gstreamer-pbutils-sys -> gstreamer-audio-sys
142 * gstreamer-player-sys -> gstreamer-video-sys
143
144
145 Non-sys crate overview
146
147 * gtk3-macros
148 * glib -> glib-macros, glib-sys, gobject-sys, gio-sys
149
150 * gio -> glib, gio-sys
151 * atk -> glib, atk-sys
152 * graphene-rs -> glib, graphene-sys
153 * cairo-rs -> freetype-rs, cairo-rs-sys, glib
154
155 * pangocairo -> glib, cairo-rs, pango, pangocairo-sys
156 * pango -> glib, gio, pango-sys
157 * gdk-pixbuf -> gio, glib, gdk-pixbuf-sys
158
159 * gdk -> gdk-pixbuf, gio, glib, cairo-rs, pango, gdk-sys
160 * gtk -> gtk3-macros, pango, gdk, gdk-pixbuf, cairo-rs, atk
161 * gdk-x11 -> glib, gio, gdk, x11, gdkx11-sys
162 * libhandy -> gdk, glib, gio, pango, gdk-pixbuf, gtk
163
164 * gdk4 -> cairo-rs, gio, glib, pango, gdk-pixbuf, gdk4-sys
165 * gdk4-x11 -> gdk4
166 * gsk -> gdk4
167 * gdk4-x11 -> gdk4
168 * gdk4-wayland -> gdk4
169 * gtk4 -> cairo-rs, gdk4, gdk-pixbuf, gtk4-sys, gtk4-macros, graphene-rs
170
171 * gstreamer -> glib
172 * gstreamer-base -> gstreamer
173 * gstreamer-video -> gstreamer-base
174 * gstreamer-audio -> gstreamer-audio
175
176 cxx depedency tree
177 -----------------
178
179 * cxx (level 2)
180 * cxx-build (level 1)
181 * cxx-gen (level 1)
182 * cxxbridge-macros (level 1)
183 * cxxbridge-flags (level 1)
184 * link-cplusplus (level 1)
185
186 matrix-sdk dependency tree
187 --------------------------
188
189 * matrix-sdk
190 * ruma
191 * ruma-appservice-api
192 * ruma-state-res
193 * ruma-signatures
194 * ruma-push-gateway-api
195 * ruma-identity-service-api
196 * ruma-federation-api
197 * ruma-client
198 * ruma-client-api
199 * ruma-common
200 * ruma-macros
201 * ruma-identifiers-valiadation
202
203 fractal (#900928)
204 -------
205
206 * gspell
207 * gspell-sys
208 * gstreamer-editing-services
209 * gstreamer-player
210 * matrix-sdk (WIP)
211 * sourceview5
212 * ashpd crates
213
214 obfuscate
215 ---------
216
217 * libadwaita
218
219 podcasts (#965044)
220 --------
221
222 * gstreamer-player
223 * mpris-player (broken)
224
225 gping (#975495)
226 -------
227
228 * needs an update
229
230 lfs (#1006367)
231 -------
232
233 * termimad
234 * coloor
235 * minimad (merged)
236
237 cargo debstatus (#1026852)
238 ------
239
240 * postgres (merged)
241
242 bottom
243 -------
244
245 * no missing deps, waiting on upstream to drop heim
246 * TODO: file ITP
247
248 macchina
249 ------
250 * color-to-tui (merged)
251 * libmacchina
252 * sqlite
253 * sqlite-sys (merged)
254 * sqlite-src (merged)
255
256 shortwave (#951166)
257 -------
258
259 * libadwaita
260 * mdns (merged)
261 * libshumate
262 * mpris-player ( deprecated, fails to build against newer dbus)
263
264 popsicle (#1007982)
265 ------
266
267 * srmv
268 * genawaiter (merged)
269 * sys-mount (needs rustc 1.65)
270 * pwd (upstream license issues :( )
271 * iso9660 (broken)
272 * i18n-embed-fl
273 * i18n-embed
274
275
276 ==============
277 Eventual goals
278 ==============
279
280 Binary crates worth packaging (please add if you know more):
281
282
283 - asus-ctl - control asus laptops (https://gitlab.com/asus-linux/asusctl)
284 - bench - simple benchmarking
285 - bingrep - Grep through binaries from various OSs and architectures.
286 - bottom - Cross-platform monitoring tool (https://github.com/ClementTsang/bottom)
287 - cargo-deb - Create Debian packages from Cargo projects
288 - cargo-debstatus - Print the status of crate’s dependencies in Debian
289 - cargo-download - Download sources of a crate
290 - cargo-edit - Cargo editing subcommands (add, rm, upgrade)
291 - diskonaut - interactive disk usage tui tool
292 - hg - Rust implement of hg
293 - jql - JSON Query Language CLI tool.
294 - macchina - fetch CLI tool (https://github.com/Macchina-CLI/macchina)
295 - meli - terminal mail client (https://meli.delivery/)
296 - recode_rs - CLI tool converting between the character encodings.
297 - resvg - SVG renderer (in Debian; packaged separately, but doesn’t build anymore)
298 - rural - User-friendly command-line HTTP tool
299 - rust-analyzer - modular rust compiler frontend with LSP
300 - rustfmt-nightly - rust coding style
301 - rustup - installing and managing multiple rust toolchains
302 - tmux-hints - Find matches (e.g. urls) and navigate them by keyboard
303 - viu - Command-line image viewer
304 - xsv - Command line program for manipulating CSV files
305 - zola - static site generator (https://www.getzola.org/)
306
307 GUI GTK-based programs:
308
309 - authenticator - 2FA program (GTK/libadwaita, https://gitlab.gnome.org/World/Authenticator)
310 - amberol - simple music player (GTK/libadwaita, https://gitlab.gnome.org/World/Amberol)
311 - brewstillery - Brewer's, vinter's and distiller's calculator (GTK).
312 - decoder - qr code reader (GTK/libadwaita, https://apps.gnome.org/app/com.belmoussaoui.Decoder/)
313 - fractal - Matrix messaging client (GTK, https://wiki.gnome.org/Apps/Fractal)
314 - fragments - bittorrent client (GTK/libadwaita, https://apps.gnome.org/de/app/de.haeckerfelix.Fragments/)
315 - health - health tracking app (GTK/libadwaita, https://apps.gnome.org/de/app/dev.Cogitri.Health/)
316 - kooha - screen recorder (GTK/libadwaita, https://github.com/SeaDve/Kooha)
317 - mousai - song recognition (GTK/libadwaita, https://apps.gnome.org/de/app/io.github.seadve.Mousai/)
318 - obfuscate - censor private information (GTK/libadwaita, https://apps.gnome.org/de/app/com.belmoussaoui.Obfuscate/)
319 - pika-backup - backup program (GTK/libadwaita, https://apps.gnome.org/de/app/org.gnome.World.PikaBackup/)
320 - podcasts - Podcasts app (GTK, https://wiki.gnome.org/Apps/Podcasts)
321 - popsicle - USB flasher (GTK, https://github.com/pop-os/popsicle)
322 - shortwave - Internet radio client (GTK, https://gitlab.gnome.org/World/Shortwave)
323 - spot - spotify client (GTK/libadwaita, https://github.com/xou816/spot)
324 - system-76-power - manage power profiles (https://github.com/pop-os/system76-power)
325 - video-trimmer - Trim videos (GTK/libadwaita, https://gitlab.gnome.org/YaLTeR/video-trimmer)
326
327 To see lists of interesting binary crates, you can run something like::
328
329 $ apt-get install koji-client
330 $ koji -p fedora search package 'rust-*' | cut -b6- | dev/filter-binary-crates.sh
331
332 Current output (on 2020-01-17), minus stuff already in Debian, is:
333
334 afterburn
335 alloc-no-stdlib
336 alloc-stdlib
337 askalono-cli
338 brotli
339 brotli-decompressor
340 cargo-c
341 comrak
342 coreos-installer
343 ffsend
344 heatseeker
345 jql
346 lsd
347 multipart
348 open
349 permutate
350 pretty-git-prompt
351 qrcode
352 skim
353 starship
354 varlink-cli
355 varlink_generator
356
357 koji-client seems to be not available in testing/unstable (2022-12-25).
358
359 Sccache is also helpful for reducing the build-time of things like firefox and thunderbird
360
361 - sccache https://github.com/mozilla/sccache
362
363 In debian :)
364
365 There are also more binaries here:
366
367 https://github.com/rust-unofficial/awesome-rust