FeignInt / dosbox-staging-deb

"deb" Packaging for https://github.com/dosbox-staging/dosbox-staging/
https://launchpad.net/~feignint/+archive/ubuntu/dosbox-staging
1 stars 0 forks source link

Package for Debian #4

Open FeignInt opened 4 years ago

FeignInt commented 4 years ago

I think I can have github use docker to compile for Straight Debian releases.


okias commented 4 years ago

Ref: https://github.com/dosbox-staging/dosbox-staging/issues/664

I did setup this for Debian, used some of your stuff: https://salsa.debian.org/okias-guest/dosbox-staging

Would you join on getting it into best shape and trying to push it into unstable? I'm not debian maintainer myself, but when it'll be prepared and in "best shape" it's likely that someone would maintain it inside Debian, so it'll logically get into Ubuntu too.

FeignInt commented 4 years ago

Hi @okias Apologies for the delay,

I will try and take a proper look at your salsa over the weekend. ( and create an account ) But after a very quick look,

The original debian "DosBOX" blobbed the desktop/icons, d/source/include-binaries I dropped this as dosbox-staging has them in contrib/, Initially I had d/rules sed | make hicolor , then created a crude patch... The next time that patch breaks I will probably drop back to using d/rules or do a proper if linux && --include-desktop; then blah blah for upstream ( and hope it gets expanded to Mac/Windows )

But yeah, It would be nice to see dosbox-staging in official repos, with alternatives system

okias commented 4 years ago

fixed libfluidsynth, also I would like to fix default dosbox-staging build for Linux (so it'll install .desktop & metadata + icons). Just not sure how to do that exactly (also hate automake so much, hopefully they'll start moving to cmake or better Meson soon).

FeignInt commented 4 years ago

The desktop stuff is fairly straight forward.

The simplest solution is the way Debian "dosBOX" does it, i.e. include the .desktop and .png files. However, dosbox-staging unlike dosBOX upstream has .desktop and pngs available. They can be found in contrib/linux and contrib/icons The icons need to be generated with make hicolor which is dependent on librsvg2 ( hence librsvg2-bin build-dep )

commit 2af2f94ccc09510a88d97d84abd7817b68c36aa7 was my switch from a debian/rules solution to an initial patch Note that the patch has changed since that commit as the files it patches have since changed.

The downside of the patch is that it may break if things change upstream. The patch is also a bit hacky, ( and needlessly duplicates icon creation for both main package and the debugger ) but it works, feel free to grab that latest patch

debian/patches/linux_desktop_files.patch don't forget debian/patches/series I may have another look at proper patch for upstream i.e. ./configure --linux-desktop but occasional refresh aside the current hack "just works"

FeignInt commented 4 years ago

I finally got registered on salsa.

I'll have a poke around.

I noticed that when you versioned the libfluidsynth-dev build-dep you squashed it. It would be better to have separate commits so we have a revision history.

It would probably be best to start with a clone of https://salsa.debian.org/debian/dosbox and migrate it to package dosbox-staging with a series of commits.

Does the salsa CI produce packages? I have not read anything in detail yet, but some of the things I skimmed through appeared to imply that.

okias commented 4 years ago

Generally I did started w/ dosbox. Salsa doesn't generate packages, just CI tests (at least not officially), thou it's easy download debian chroot (I used it that way on Gentoo). About commits, until first release, I squashung changes, at momebt whem its in debian, I keep changes more obvious.

Right now, we need patch for desktop file and icons we can upstream to dosbox-staging and just call it from make.

okias commented 4 years ago

And why you running chroot, doing gbp buildpackage will generate packages for you :)

FeignInt commented 4 years ago

And why you running chroot, doing gbp buildpackage will generate packages for you :)

:confused: This repo is fully automated, github actions create source packages with gbp which are then pushed to Launchpad's PPA which in turn compiles/packages dosbox-staging.

When I build locally I typically :

gbp buildpackage --git-pbuilder ...

The chroot ensures a clean build env. and since I use Debian Sid which is updated frequently I'm not constantly updating packages which are not in use 'day to day'

I've only recently started using gbp/pbuilder, prior to that I mostly used LXC if build depends were extensive.

:bulb: ahh, I think I know now, The chroot was in ref. to docker ? I opened this a long time ago, and forgot about it. These days Ubuntu and Debian are close enough the Groovy package in the PPA works fine on my Debian Sid.

Had it been problematic I would have further explored docker with github actions or just scripted locally to push packages to some repo

or, and this is more likely just pointed people to compiling yourself

FeignInt commented 4 years ago

https://salsa.debian.org/Feignint/dosbox-staging

I have not "released" a version yet, so no debian/0.75.0-1 tag

I want to look at the debian/copyright file first

gbp buildpackage \
    --git-pbuilder \
    --git-export-dir=../build-area

or, if not using pbuilder/cowbuilder

gbp buildpackage \
    --git-overlay \
    --git-export-dir=../build-area

I opted for the simple 'blobbing' of icon files, reduces build depends and less hacky. ( but could become outdated )

Currently libfluidsynth-dev is not a build-dep

FeignInt commented 4 years ago

@okias just a little update on icons...

The patch 'broke' with v0.75.2, I think it was due to me rebasing it against master for the weekly builds.

I have pushed a new ( lengthy named ) patch fc4131a

It is much simpler, basically it patches contrib/icons/Makefile

-hicolor:
+%hicolor:

so in debian/rules ... override_dh_auto_install:

$(MAKE) -C contrib/icons \
  $(CURDIR)/debian/tmp/usr/share/icons/hicolor \
  clean

installs them without all the dancing around with mkdir -p and mv

The clean is optional

The .desktop file is installed via debian/dosbox-staging.install