Publishing .deb files

75 views
Skip to first unread message

Emiliano Heyns

unread,
Mar 20, 2019, 9:38:52 AM3/20/19
to zotero-dev
Is there interest within the Zotero team to host .deb files of Zotero? I currently maintain two versions myself, a "fat" .deb which includes the binaries, and a "slim" .deb which goes the java way and just has a script that downloads and installs Zotero.

This can all be fully automated, ran via a cronjob or a daily-triggered build on Travis; it would be a hands-off affair once in place If there is interest, I'd be interested to know what your preferred form and publishing channel would be. What I currently see as viable options:

  1. Slim packages with a custom installer, or
  2. Fat packages using the .deb infrastructure
The Fat package would still have a postinstall script to set the file associations and such, but it would be a lot simpler than it is now.

As to the publishing channel:
  1. GitHub releases. This would put the latest .debs on a fixed GH release, no history, because the URL needs to be stable for apt-get to work. This sort of abuses the releases system as a simple webserver, but it's drop-dead simple to set up
  2. Ubuntu PPAs. PPAs have high recognizability, but the process to build them is more involved (although automatable), and publishing times vary from minutes to hours from submitting. PPAs may only host Slim packages, or built-from-source Fat packages; it is not allowed to submit pre-built binaries to PPAs. I have the automation to do the built-from-source pipeline.
  3. Any other place that acts as a web server -- an S3 bucket would fit the bill.
Ideas? Even if there is no interest in Zotero-sanctioned .debs, I'm still curious to know which publishing channel would make most sense to continue; I currently have slim PPAs and Fat GH releases live.

Emiliano Heyns

unread,
Mar 23, 2019, 5:33:20 AM3/23/19
to zotero-dev
Having prodded into the PPA system a more deeply, I've come to think that it's a pretty dense system, awkward to build for, severely under-documented, slow to release with build times that can run up to several hours, and is in general pretty hostile to building from CI/version control.

There are, as far as I can tell, really only 3 benefits to PPAs, and one of them can be a downside, depending on the use-case:

1. It can be a step-up to being included in Ubuntu itself. But for this to happen, the package may have to be restructured extensively to split out assets to different directories, and it might have to build libxul from soyrce


2. They have high recognizability. People seem to like PPAs. Don't know why.

3. They will host and serve the binaries for you. If you want to do your own download tracking, you may not want this.

On top of that, well-established packages like the oracle-Java "slim" package seems to have made no moves to be included in Ubuntu, so that seems to negate point 1. And NodeJS for example doesn't seem to bother with PPAs at all, instead just hosting their own repo. Setting up your own repo is *also* under-documented (or more precisely, there is plenty of documentation, but not a coherent overview, and plenty of them appear to contradict each other), but I've gotten it to work before,and it's tons easier to automate.

Kieren Diment

unread,
Mar 23, 2019, 8:15:39 AM3/23/19
to zoter...@googlegroups.com
I've asked my colleague (a prolific debian maintainer) if he has any comment on this.  Hopefully he'll have something to say.  Will keep you posted if he does.

--
You received this message because you are subscribed to the Google Groups "zotero-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to zotero-dev+...@googlegroups.com.
To post to this group, send email to zoter...@googlegroups.com.
Visit this group at https://groups.google.com/group/zotero-dev.
For more options, visit https://groups.google.com/d/optout.

Emiliano Heyns

unread,
Mar 23, 2019, 10:43:38 AM3/23/19
to zotero-dev
Massively appreciate it. My current understanding of the deb building process is incomplete, cobbled together by reading various instruction pages (all incomplete themselves) and peeking into source packages. I've managed to eliminate the postscript (yay!) for fat packages, but am now running into problems with releasing for multiple series; it doesn't seem possible to just dput multiple series (I get complaints that I'm uploading existing orig.tar.gzs),and while copying across series works (I use that for the existing ppa), it can only be done once the first package is ready, and that's hard to automate because the build/release times are entirely unpredictable.

Emiliano Heyns

unread,
Mar 24, 2019, 9:15:55 AM3/24/19
to zotero-dev
On Saturday, March 23, 2019 at 3:43:38 PM UTC+1, Emiliano Heyns wrote:
Massively appreciate it. My current understanding of the deb building process is incomplete, cobbled together by reading various instruction pages (all incomplete themselves) and peeking into source packages. I've managed to eliminate the postscript (yay!) for fat packages, but am now running into problems with releasing for multiple series; it doesn't seem possible to just dput multiple series (I get complaints that I'm uploading existing orig.tar.gzs),and while copying across series works (I use that for the existing ppa), it can only be done once the first package is ready, and that's hard to automate because the build/release times are entirely unpredictable.

PPAs for fat packages looks like it's going to be a dead end -- the Zotero build process requires node, there is no node PPA that I can rely on in the build process, and from the looks of it, the PPA build infra disallows fetching the node binaries for the build process because I'm getting "curl: (6) Could not resolve host: nodejs.org" in every single one of my builds. And fat debs are desirable because it helps out the chromebook crowd.

If your colleague knows a way to turn off the notification emails for builds, that would also be very much appreciated.Launchpad builds are very chatty.

Emiliano Heyns

unread,
Mar 26, 2019, 12:14:29 PM3/26/19
to zotero-dev
Do you know a place where packagers hang out where I could get guidance? I can make repos easy enough using apt-ftparchive but now I'm looking at series-specific packaging and it's not entirely clear it can be done with apt-ftparchive. If I can stay away from repro and aptly that'd be nice, but I'll use them if I must.

Kieren Diment

unread,
Mar 30, 2019, 10:30:28 PM3/30/19
to zoter...@googlegroups.com
Sorry I forgot to follow this up.  Replied off-list.

--

Emiliano Heyns

unread,
Apr 21, 2019, 7:56:55 PM4/21/19
to zotero-dev
I currently have a Travis setup that updates to the newest Zotero/Juris-M binaries once a day on a github-hosted repo (https://github.com/retorquere/zotero-deb). This replaces the PPA; from my perspective, the effort needed for PPA upkeep isn't worth the marginal benefits over the simple repo that can be put on GH, fully automated. The debs there are not built from source but from downloaded binaries from Zotero/Juris-M.

If the Zotero team wants to take ownership of this setup than that is available, but since it's fully automated now, it's no effort on my part to keep this running indefinitely.

Emiliano Heyns

unread,
Nov 29, 2020, 7:30:51 PM11/29/20
to zotero-dev
I've moved this to GH actions now (and simplified the build script rather drastically), and it's fully hands-off now. I'm happy to keep running this (or rather, to have GH do this) indefinitely, but if Zotero wants to make these official, I'll gladly explain how they're built and hand over the code/config.
Reply all
Reply to author
Forward
0 new messages