Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dumb: Package dumbplay & split libaldmb, take ownership #28182

Merged
merged 1 commit into from Feb 24, 2021

Conversation

ScrelliCopter
Copy link
Contributor

@ScrelliCopter ScrelliCopter commented Jan 24, 2021

General

Have the results of the proposed changes been tested?

  • I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me
  • I generally don't use the affected packages but briefly tested this PR

Description

This is a second go at #18472 with (in my opinion) a better approach using subpackages instead of build time options.

libaldmb is a separate library that isn't used by the rest of the package and splitting it avoids a bunch of unnecessary X11 & other desktop dependencies on dumb.

For the reference player I created a dumbplay subpackage which keeps the SDL2 dependency out of the main library package, the dumbout util technically doesn't need it but I figured it's not important enough to create yet another subpackage for. the tiny dumbout util has minimal dependencies and thus probably belongs in the main package.

I also updated the homepage which still pointed to the old pre-fork page.

Checked and couldn't see any other packages using the Allegro 4 integration (or libdumb at all for that matter) so I'm certain this change shouldn't break any existing package.

@ScrelliCopter
Copy link
Contributor Author

Edited comment, didn't realise there was a new PR format.

Copy link
Member

@ericonr ericonr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this package really something you'd use in an environment where allegro4's dependencies aren't already installed? Maybe push all the extras (aldumb and dumbplay) into a single subpackage with all extra deps?

I'm not sure this will receive any updates any more, so it's not going to make maintenance much harder, I'd just prefer to be sure it's not adding to many unnecessary subpackages.

Also, please include the rationale you exposed in the PR message in the commit message itself.

Comment on lines 48 to 47
aldumb-devel_package() {
depends="aldumb>=${version}_${revision} ${sourcepkg}-devel>=${version}_${revision}"
short_desc+=", Allegro4 integration - development files"
pkg_install() {
vmove usr/lib/libaldmb.so
vmove usr/include/aldumb.h
}
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMO this doesn't need to be split. devel packages can be a little bit bloated, it isn't a big issue.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense, especially if the only people who are going to be using the Allegro stuff would be building against it.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I figured giving aldmb a devel package would help make it more orthogonal w/ dumb-devel but figures aldmb is already such a specific use case that eliminating the superfluous subpackage is a better idea, I'll do that.

Comment on lines 40 to 46
aldumb_package() {
depends="${sourcepkg}>=${version}_${revision}"
short_desc+=", Allegro4 integration"
pkg_install() {
vmove "usr/lib/libaldmb.so.*"
}
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is of course the issue that this removes libaldmb from users who rely on it being provided by dumb.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fair point, may affect users who build forks of old games like https://github.com/carstene1ns/alex4
I'm guessing there's no way to deal with a split on existing installations other than hoping there are no users who actively use aldmb.so from dumb? (I severely doubt there are, but still)

@ScrelliCopter
Copy link
Contributor Author

Is this package really something you'd use in an environment where allegro4's dependencies aren't already installed? Maybe push all the extras (aldumb and dumbplay) into a single subpackage with all extra deps?

I'm not sure this will receive any updates any more, so it's not going to make maintenance much harder, I'd just prefer to be sure it's not adding to many unnecessary subpackages.

Allegro 4 is ancient and none of the packages in Void's repos that depend on allegro4 use dumb nor its optional Allegro 4 integration. Newer versions of Allegro use DUMB directly and don't rely on this old support library.
I only know of one well-known piece of software; Adventure Game Studio; that uses both Allegro 4 & DUMB, but its DUMB appears to be an ancient 0.9.2 version that is built in-tree rather than being pulled from the distro.

I'll concede that the proposed split is more than a little philosophical rather than purely technical, but I can see an (admittedly extremely rare) case for running dumb and dumbout on a headless server where the chains of X11 & desktop sound server dependencies allegro4 would pull in only serve to add unnecessary bloat. IMO that justifies splitting a seldom used glue library.

Also, please include the rationale you exposed in the PR message in the commit message itself.

Will do on next push.

This is a second go at void-linux#18472 with (in my opinion) a better approach using
subpackages instead of build time options.

libaldmb is a separate library that isn't used by the rest of the package
and splitting it avoids a bunch of unnecessary X11 & other desktop
dependencies on `dumb`.

For the reference player I created a `dumbplay` subpackage which keeps the SDL2
dependency out of the main library package, the tiny dumbout util has minimal
dependencies and thus probably belongs in the main package.

I also updated the homepage which still pointed to the old pre-fork page.
@ericonr ericonr merged commit 49243b3 into void-linux:master Feb 24, 2021
@github-actions github-actions bot locked as resolved and limited conversation to collaborators May 25, 2021
@ScrelliCopter ScrelliCopter deleted the dumbutils2 branch January 5, 2023 11:37
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants