ruffle icon indicating copy to clipboard operation
ruffle copied to clipboard

ci: Add `Makefile` and `debian` directory

Open donmor opened this issue 1 month ago • 5 comments

Makefile allows quick build/installation using make/sudo make install. debian directory adds basic support for building debian package using Makefile (target version updates debian/changelog and deb calls dpkg-buildpackage -us -uc).

Build dependencies can be installd by:

sudo apt install rustc cargo # add "-t trixie-backports" on trixie
sudo apt install libasound2-dev libudev-dev

Impl. #12633 .

donmor avatar Dec 01 '25 08:12 donmor

A general question: how this package is going to be used? Is it meant to be something we can attach as a release artifact? Do users have to build it themselves? Have you thought about just submitting this package to debian repositories instead?

kjarosh avatar Dec 01 '25 12:12 kjarosh

A general question: how this package is going to be used? Is it meant to be something we can attach as a release artifact? Do users have to build it themselves? Have you thought about just submitting this package to debian repositories instead?

The current one is for building from source tarballs downloaded from tags (it updates changelog from extracted directory name with date, has "nightly" in source name, and is in 3.0 (native) format). The Makefile is tend to be a general-propose script (local building/installing, CIs, and other stuff). I'd try making something useful for CIs later.

donmor avatar Dec 01 '25 14:12 donmor

Patch refactored, now:

  • make install installs .desktop, metainfo and icon
  • Moved debian into desktop/packages/linux/
  • Migrated to 3.0 quilt format
  • Source package ruffle now builds package ruffle-desktop
  • Now get version from cargo metadata (0.1.0 at present)
  • Get revision from directory name (any digits, but version is stripped out; use system date if got nothing from directory name)
  • make version now writes a new entry in debian/changelog, if a new revision is used, using content from .github/changelog.entries (~maintained by #22390 , may require extra steps~ now generated by CIs)
  • make deb now do:
    • create ../ruffle_<version>.orig.tar.gz with git archive (if not exists; .orig.tar.xz is valid; make sure working tree is clean); or rename one from ruffle-nightly-<date>.tar.gz if found
    • remove any existing debian directory and make a new copy from desktop/packages/linux/debian
    • run dpkg-buildpackage -us -uc

Status:

  • [x] make deb works in a clean working tree
  • [x] make deb works in newly extracted nightly release tarballs (renames tarball automatically)
  • [x] changelog.entries generated by CIs (no longer tracked)
  • [x] Debian packages and source package built by CIs
  • [x] Debian trivial apt source integrated in github releases (tested, https://github.com/donmor/ruffle/releases/tag/nightly-2025-12-04 built by https://github.com/donmor/ruffle/actions/runs/19916843478), usage: deb [ trusted=yes ] https://github.com/donmor/ruffle/releases/download/nightly-2025-12-04 / or deb [ trusted=yes ] https://github.com/donmor/ruffle/releases/latest/download / if specified latest

donmor avatar Dec 02 '25 12:12 donmor

Added webext build script (Makefile, debian, CI)

donmor avatar Dec 09 '25 01:12 donmor

Note that some values in CI yml are changed to match my forked repo, they have to be changed back before merging

donmor avatar Dec 09 '25 02:12 donmor