[Devs] Time Estimates for officially-accepted, user-contributed QubesOS packages

Can someone with experience developing packages in Qubes help me estimate the time required to develop a new package for Qubes?

I have good news: NovaCustom (the Qubes-certified laptop manufacturer) has offered to provide funding to BusKill (the FOSS laptop kill cord project) to develop a package to make it easier to install BusKill on QubesOS.

First, Wessel (the founder of NovaCustom) has asked me to provide an estimate (in dollars/hours) for how much time we expect it to take to make a BusKill package for QubesOS. I’ve never built a package for QubesOS, so I began doing some research – but I couldn’t find much useful documentation on how to actually make a software package for QubesOS, nor how much time I should expect it to take.

Because I haven’t built a QubesOS package before, I was thinking of offering this funding to the QubesOS community. Is there anyone here who would like to be paid to develop a BusKill package for QubesOS? If so, what is your estimate for the number of hours that this would require?

The end-deliverable would be that any QubesOS user would just have to type one command in dom0 to install BusKill, eg:

qubes-dom0-update qubes-buskill

I think the actual work would be fairly minimal. All of the software is already written. All that’s needed is to package it into something that will:

  1. Put an 11-line file on sys-usb:/etc/udev/rules.d/buskill.rules
  2. Put a symlink on sys-usb
  3. Run a command on sys-usb
  4. Update sys-usb:/rw/config/rc.local
  5. Put 5 files on dom0 (longest is 275 lines)

The manual process (including all of the files and commands needed to run to complete the installation) is described here:

At first I thought this would be done with salt, but I couldn’t find a clear guide describing how to write and test a basic “hello world” package for QubesOS, and then how that translates into something like qubes-dom0-update qubes-buskill (without requiring the user to have to download our salt files from a third party site, which would defeat the purpose)

I read the documentation on contrib packages, but that left more questions than answers. The majority of the example repos of existing contrib packages have no README.md file. Of the majority that do, their install instructions are something like clone this repo, then copy files which kinda defeats the purpose. I found only one with a reasonable install instructions that would meet our needs, but I couldn’t find one that simply did put file A in dom0:/path/to/x and put file B in sys-usb:/path/to/y.

What I really need is a guide describing how to fork & edit the qubes-skeleton repo into a qubes-hello-world repo, and then how to test an execution of the new qubes-hello-world package (showing me very clearly what commands I need to execute in dom0 to run the install of the contrib package qubes-hello-world).

Anyway, most importantly, can someone with experience making official contrib packages for QubesOS tell me how many hours they would expect it to take to make this BusKill package for QubesOS?

1 Like

Hey! Thanks for the work on BusKill!

I think this should probably be posted to qubes-devel to get more developers/contributor’s eyes on it.

Is qubes-devel the google group? Or matrix? Or is that a separate forum here on Discourse?

Yes, the mailing list / google group

1 Like

done. I’ll post a link to it when it clears the mod queue.