See https://support.delta.chat/t/debian-package-fails-to-install-on-testing-bullseye-nonexisting-dependency/1364 for details. I guess we have to update electron.
I guess the problem requires an electron builder update.
Also I'm asking myself if changing this breaks backwards compatibility and whether we need to provide multiple .deb files for the different systems.
If you need testers, please ping me
@stmllr okay so i looked into it. We would need to have two .deb files, one for bullseye and later, one for the previous ones. Or start finding people who want to maintain ppas.
I guess the problem requires an electron builder update.
Also I'm asking myself if changing this breaks backwards compatibility and whether we need to provide multiple.debfiles for the different systems.
there is an upstream bug reported for this against electron in hope of a solution on their side: electron/electron#27527
I think a PPA would help here, this would also provide arm64 support for Debian/Ubuntu. I would be happy to setup a Launchpad PPA for DeltaChat and serve as technical support for it. I can't promise I would be able to upload the releases to it on an ongoing basis. I do think the process can be scripted and integrated into an existing DeltaChat release process.
I think a PPA would help here, this would also provide arm64 support for Debian/Ubuntu. I would be happy to setup a Launchpad PPA for DeltaChat and serve as technical support for it. I can't promise I would be able to upload the releases to it on an ongoing basis. I do think the process can be scripted and integrated into an existing DeltaChat release process.
This would be awesome! For arm64 we would need some more ci on deltachat-node. I think too that we can script it. I sent you a mail on the address shown in your github profile :)
I think a PPA would help here, this would also provide arm64 support for Debian/Ubuntu. I would be happy to setup a Launchpad PPA for DeltaChat and serve as technical support for it. I can't promise I would be able to upload the releases to it on an ongoing basis. I do think the process can be scripted and integrated into an existing DeltaChat release process.
@eighthave I don't think that it's the right solution. If it was removed from Debian, there was probably a very good reason for that.
DeltaChat was removed from Debian? If so, I wasn't aware of that. As far as I
can tell, it looks like it never fully made it into Debian. From what I've
seen, DeltaChat is free software.
Somebody would meed to package Electron in Debian and it's a huge task. No Electron app is currently packaged in Debian.
I'm thinking more of a PPA package as the first stepping stone. So getting a
package that works on Debian/Ubuntu, but is built outside of Debian. Then we
don't need to wait for Election to be packaged to start work on packaging
DeltaChat. And when there is an Electron package, the DeltaChat package can be
switched to use it.
DeltaChat was removed from Debian?
I think the it belong to the libappindicator.
We had dletachat-core at some point as system library staging to be added to a debian release, but we told them not to include it, because it was unstable at the time as far as I remember (also there are updates "too often" at the moment and debian has a philosophy of only offering security patches after they released a version).
But yeah if we were to go full debian philosophy we would include dc core and electron from other packages, but there is always the option of ignoring that philosophy and bundling those two dependencies in the deb. Also electron might be difficult to package, because there are multiple versions in use so the debian folks would need to maintain 10-12 different packages for the different versions of electron that are in use (because most electron versions are not really compatible to each other without code change on the program that uses electron)
I guess a custom PPA would be a good step.
Summarizing the issue:
Installing the .deb file from https://delta.chat/de/download works on Debian stable (buster). However it fails on Debian Testing (bullseye) because delta (or electron) relies on libappindicator which is not available on Debian Testing (and never will be).
So far only cutting edge people are affected. However Debian Bullseye will probably be released in summer so that this issue hits a broader audience.
A PPA which also ships libappindicator would be a solution. Or ship delta with libappindicator build in statically.
The issue title is a bit misleading, because "latest" refers to Debian Buster.
It should rather say: .deb not running on debian bullseye
Hey Hans-Christoph -- nice to meet you here :)
On Fri, Mar 26, 2021 at 05:19 -0700, Hans-Christoph Steiner wrote:
I'm thinking more of a PPA package as the first stepping stone.
agreeing here -- this allows to keep an up-to-date .deb DC install more easily.
There are, btw, two separate experimental Desktop efforts (KDeltaChat and DC40)
that do not use Elektron -- the one uses QT, the other a Rust/Systembrowser lib.
They would probably be much easier to package but are not there yet i guess ...
What is needed precisely for a PPA? Might be worth a new issue and list it ...
If KDeltaChat and DC40 are usable, then yes, they would be much easier to
package and maintain in Debian. Unless you think those will become usable in
the coming months, then I think it still makes sense to make a PPA package of
the Electron version.
There are two approaches for making a PPA:
Build the package on the DeltaChat infrastructure and host the PPA on a
DeltaChat webserver using something like aptly. This would be like how
Element/Matrix, Signal, Wire, etc. do it. This means you can use any build
process you want, it just needs to produce the .deb packages.
Use the Canonical Launchpad PPA infrastructure. This uses the same build
process as Debian and Ubuntu, but without the screening of what is being built.
E.g. you can upload anything as needed, including non-free things, as long as
they are free to distribute. The easiest path to getting this working would be
bundling all required sources (e.g. Electron, etc) into a single, giant source
tarball and building from there.
If KDeltaChat and DC40 are usable, then yes, they would be much easier to
package and maintain in Debian. Unless you think those will become usable in
the coming months, then I think it still makes sense to make a PPA package of
the Electron version.
I hope for the best but I see this unlikely.
- Build the package on the DeltaChat infrastructure and host the PPA on a
DeltaChat webserver using something like aptly. This would be like how
Element/Matrix, Signal, Wire, etc. do it. This means you can use any build
process you want, it just needs to produce the .deb packages.
This is my preferred way to go. I myself am far away from the ubuntu/debian ecosystem, but the only thing really needed currently is someone setting up the ppa and finding out how we can push a .deb to that server. Everything else would be a github action, applying this patch: https://github.com/deltachat/deltachat-desktop/pull/2053. I can happily take over the github action part, but I don't want to set up the ppa and maintain it.
@janekc @missytake @jankass could we set up a ppa? Are you interested in this and do you have resources?
The downside of building it yourself is you have provide all the arches you want
to support, or do cross-building, e.g. create the ARM64 package on x86_64.
Launchpad provides builders for all the arches.
For building the repo, see https://www.aptly.info/, its decently documented and
pretty simple. aptly should be able to run in GitHub Actions.
Launchpad provides builders for all the arches.
Means they provide ci? Which means we need to adapt all the ci scripts that we already have again to their ci (which is btw already using ubuntu/debian on most)? Builders sounds easy but i doubt that it's that easy :P We are already building one .deb that is running on almost all debian/ubuntu releases. Except this one. And currently we don't support arm64 anyways (which would be neat but that's another story/issue).
Please keep in mind how the .deb is produced. It's electron-builder which is actually just hacking together a .deb by downloading a prebuilt electron and downloading a prebuilt deltachat-node (which has a prebuilt deltachat-core-rust). So it's anyways not really compiling the libraries on the specified ubuntu/debian version.
They reproduce Debian release builders, not CI. That means the build has to be
run out of debian/rules. No so hard really. Its just a Makefile, just call
your existing build process from debian/rules.
@eighthave
Jikstra:
@eighthave
- The builders at launchpad are getting run on all important releases or how does it work? Only ubuntu or also debian?
Launchpad has builders for all supported Ubuntu releases. I don't think they
support building for other distros.
- A Makefile doesn't sound super sexy but should get the job done.
You can literally have a single line that calls out to whatever build system you
want to run.
- How do we get dependencies like a rust compiler/npm modules... on those builders? Can we just download them on runtime? Or is it the case that the builders dont have full internet access? That would make the thing a looot more complex and make me think of using a github action pushing the .deb to the ppa somehow
The builders do not have internet access. All the dependencies need to be
pre-downloaded and included in the source package. Or if they are available in
that version of Ubuntu, they can be added to the Build-Depends: field in
debian/control and they'll be installed automatically
.hc
--
PGP fingerprint: EE66 20C7 136B 0D2C 456C 0A4D E9E2 8DEA 00AA 5556
https://pgp.mit.edu/pks/lookup?op=vindex&search=0xE9E28DEA00AA5556
Bump.
Debian "bullseye" announced to be released as "stable" in 3 days (2021-08-14)
Installing DeltaChat Desktop on Debian stable will soon fail.