flutter-pi icon indicating copy to clipboard operation
flutter-pi copied to clipboard

Packaging as a .deb

Open philseeley opened this issue 1 year ago • 3 comments

Hi @ardera,

I have an app that's dependent on flutter-pi that I'll be distributing as a .deb from a PPA repository.

Therefore I'll need to package flutter-pi as well. The options I see are:

  1. Package flutter-pi in my app .deb.
  2. Package flutter-pi in its own .deb and publish in my PPA repo.
  3. As 2. but publish in your own PPA repo.
  4. Publish to Debian repo.

There are lots of additional requirements to satisfy to make it into one of the proper Debian repos, so I don't think we're ready for no 4. yet.

My preference would definitely be to package flutter-pi as a separate .deb and I think it would be better for you to have control over releases, so option 3.

I can package and test a flutter-pi .deb and submit a pull request to you, but you would then have to decide where you would host your PPA. I'm hosting mine on github.io here.

I'll probably put in a CI integration for my app to produce .deb packages for multiple architectures (amd64, arm64) and can also do this for flutter-pi, but again you would need to add the publishing part.

I think this approach would also satisfy issues #387 and #375.

Many thanks for all your work on such a great project.

Cheers Phil

philseeley avatar Oct 09 '24 20:10 philseeley

Hi @ardera,

I've done a first cut of packaging and published the .debs in my PPA:

https://philseeley.github.io/debian-ppa/

What I've also noticed is that the flutterpi_tool downloads and adds flutter-pi to the assets directory and therefore it gets packages with the app. Unfortunately these downloads don't support all the available libraries, specifically they're missing "libseat" and being able to switch consoles is very useful.

If you could link your download with "libseat", then I'd be happy packaging flutter-pi in my app .deb.

Thanks Phil

philseeley avatar Oct 26 '24 20:10 philseeley

Sorry for the delay, I was away for the past few weeks.

I'm a bit split about libseat, it's not available in debian bullseye, so I'd have to either statically link it, or try loading it at runtime in flutter-pi, or somehow provide multiple flutter-pi binary variants (one with libseat and one without).

But in general, this is a good idea, and I'm also in favor of the third option you listed. I'll look into it.

ardera avatar Nov 01 '24 12:11 ardera

Hi @ardera,

I found that libseat is available in the "bullseye backports" repo, so I've been building my bullseye .deb files linked with that.

The flutter-pi .deb packages in my Debian PPA are:

flutter-pi_1.0.0-d11_amd64.deb flutter-pi_1.0.0-d11_arm64.deb flutter-pi_1.0.0-d12_amd64.deb flutter-pi_1.0.0-d12_arm64.deb flutter-pi_1.0.0-d12_armhf.deb

d11 = bullseye d12 = bookworm

The 32bit arm one (armhf) is a go at supporting the CoreMP135. This is related to your issue #437.

If you decide to go down the .deb route, where would you get the version number from? I've made a first guess at:

version=$(awk -F '"' '/^project(flutter-pi/ {print $2}' CMakeLists.txt)

I can submit a pull request for you to see the packaging or take a look at my fork:

https://github.com/philseeley/flutter-pi

Thanks for all your work Phil

philseeley avatar Nov 02 '24 08:11 philseeley