summaryrefslogtreecommitdiffstats
path: root/TODO
blob: 2eba45a9dc80fb0d7695d306376c34441243193e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
== For 1.0 ==
- debuginfofs-mirror:
  - Fix half-assed logging
  - Fix half-assed i18n
  - Clean up methods (move stuff from main() to the class)
  - Flag to remove out-of-date (unused) debuginfo files
    - Rawhide builds expire very quickly
      - Keeping rawhide debuginfo causes disk usage to grow *very* rapidly
- debuginfofs-server service
  - init.d service, or upstart event?
  - Do like gnome-user-share and run our own httpd
    - Need to choose a port for this
- Fix client initscript to check BUILDID_HOST and/or fail gracefully when 
  BUILDID_URL is unreachable

== Further work ==
Server:
- Cleanups for debuginfofs-mirror:
  - make --verbose work properly
  - Figure out if we can make yum handle checking for already-cached files
- make debuginfofs-mirror able to use rsync?
- Avahi announce server to local network
Client:
- Use a better FUSE-webdav implementation
  - multithreaded
    - yes, wdfs is single-threaded. bluh.
    - davfs2 is multithreaded, I think
  - support seek() / byte ranges
    - wdfs does a GET on the entire file - and keeps it in RAM
  - Optional: cache files locally
    - wdfs doesn't do this
    - davfs2 can do this

== Crazy future ideas ==
- Provide source files as well
  - Client-side FUSE filesystem that auto-fills src/ dir as build-id files
    are read
  - Or maybe we can convince the GDB devs to use unique paths for src/ files
- Server-side 'repofs' - FUSE filesystem that presents repo/package contents
  - Unpack RPMs into cache, only when files are opened
  - Clear old files from cache periodically
  - Use same cache layout as static tools
  - Export same exportdir layout, too
- Specialized client-side debuginfofs
  - Multi-threaded, read-only webdav client
  - Cache file attrs forever
  - Do seek()/byte ranges
  - Optional: background-cache any file that we read
    - Uses more bandwidth initially, less for repeated traces