ci: Add `Makefile` and `debian` directory
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 .
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?
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.
Patch refactored, now:
make installinstalls .desktop, metainfo and icon- Moved
debianintodesktop/packages/linux/ - Migrated to
3.0 quiltformat - Source package
rufflenow builds packageruffle-desktop - Now get version from
cargo metadata(0.1.0at present) - Get revision from directory name (any digits, but version is stripped out; use system date if got nothing from directory name)
make versionnow writes a new entry indebian/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 debnow do:- create
../ruffle_<version>.orig.tar.gzwithgit archive(if not exists; .orig.tar.xz is valid; make sure working tree is clean); or rename one fromruffle-nightly-<date>.tar.gzif found - remove any existing
debiandirectory and make a new copy fromdesktop/packages/linux/debian - run
dpkg-buildpackage -us -uc
- create
Status:
- [x]
make debworks in a clean working tree - [x]
make debworks in newly extracted nightly release tarballs (renames tarball automatically) - [x]
changelog.entriesgenerated 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 /ordeb [ trusted=yes ] https://github.com/donmor/ruffle/releases/latest/download /if specified latest
Added webext build script (Makefile, debian, CI)
Note that some values in CI yml are changed to match my forked repo, they have to be changed back before merging