Skip to content

Add debian/ dir & build packages in CI (for Debian and derivatives)#235

Open
tenzap wants to merge 2 commits intoHemantKArya:mainfrom
tenzap:main
Open

Add debian/ dir & build packages in CI (for Debian and derivatives)#235
tenzap wants to merge 2 commits intoHemantKArya:mainfrom
tenzap:main

Conversation

@tenzap
Copy link
Copy Markdown

@tenzap tenzap commented Sep 28, 2025

Keep in mind that:

  • when you update/set the version for a release, it has to be updated in debian/changelog as well. However, the github actions workflow will set it again to build the deb. Maybe you could set the version string to the value of your tag instead of using ${{ github.run_number }} + 121
  • when you update the flutter version you should also update the version in debian/rules. The build will fail by design if it is not the same version as the one in your github actions job. With the update to 2.12.5, the version is fetched from the github actions workflow. So no additional maintenance is required here.

For now (2.12.4) I have disabled the tests because one test fails. It can be reenabled once the tests PASS. → Tests pass with 2.12.5, so they are enabled again.

Note that this cannot stricly follow the "Debian policy" since (among other reasons), to build the binary package, we have to download flutter SDK from the internet as well as rustup for older distributions.

As you can see for 2.12.4+178-1 and for 2.12.5+183-1, the github actions job produces successfully the debs for 6 suites:

  • Debian 11 bullseye
  • Debian 12 bookworm
  • Debian 13 trixie
  • Ubuntu 22.04 jammy
  • Ubuntu 24.04 noble
  • Kali rolling

I can confirm that it runs perfectly on Debian bookworm. I can't test the other, but they should work as well.

@tenzap
Copy link
Copy Markdown
Author

tenzap commented Sep 28, 2025

BTW I think it would be nice if you could provide the icon of the app (for the the desktip menu & app icon...) in svg format. That way we wouldn't have to create the picture for each size.
You can also move the .desktop file to a location that would permit all packagers to use/share it (fedora, arch...), and you could modify it to suit better if required.

@tenzap
Copy link
Copy Markdown
Author

tenzap commented Oct 14, 2025

Updated for 2.12.5+183-1

@HemantKArya, any chance to see this merged? Building & providing the deb would fix #232 & #65, maybe #64 depending on which distribution the reporter uses. Also #211 (zorin-os is a debian/ubuntu derivative).

@HemantKArya
Copy link
Copy Markdown
Owner

Hi @tenzap, thanks for this commit, Actually I was just busy with some work so unable to get time for review this but as soon as I will review it then I will definitely merge it.
btw I have a question that is it necessary to build that much different distributions for every different flavor of Linux since there are some other projects who only create simple two files .deb or .rpm? I am just curious cause never came across in Linux that much.
You can also see example screenshot from VSCode official site too - until then I will review it 😊
image

@tenzap
Copy link
Copy Markdown
Author

tenzap commented Oct 15, 2025

Each distribution ships different versions of the libraries (eg glibc). It is much safer (wrt their version) to have a binary package fully built from sources for that specific version of Linux (Debian or Ubuntu...).

On Launchpad PPA https://launchpad.net/ubuntu/+ppas a source package is also built for each supported version of Ubuntu. But in your case this can't be done because your build scenario requires to download a lot a things (flutter and depencies) from the internet at build time. And the PPA builders dont have network access (which is by design).

@tenzap
Copy link
Copy Markdown
Author

tenzap commented May 3, 2026

I updated this for v3.0.2
Please consider merging. This would solve #65 and the other mentioned issues.

tenzap added 2 commits May 3, 2026 23:30
Keep in mind that:
- when you update/set the version for a release, it has to be updated in debian/changelog as well. However, the github actions workflow will set it again to build the deb.
- when you update the flutter version you should also update the version in debian/rules. The build will fail by design if it is not the same version as the one in your github actions job.

For now I have disabled the tests because one test fails. It can be reenabled once the tests PASS.

Note that this cannot stricly follow the "Debian policy" since (among other reasons), to build the binary package, we have to download flutter SDK from the internet as well as rustup for older distributions.

The github actions job produces the binary packages (*.deb) for 6 suites:
- Debian 11 bullseye
- Debian 12 bookworm
- Debian 13 trixie
- Ubuntu 22.04 jammy
- Ubuntu 24.04 noble
- Kali rolling

I can confirm that it runs perfectly on Debian bookworm. I can't test the other, but they should work as well.
@tenzap
Copy link
Copy Markdown
Author

tenzap commented May 4, 2026

@HemantKArya see previous message. What is blocking the merge?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants