Basically the only problem with mpd was that it created a user (which you can't do if you aren't root). So I added a use flag (createuser) that controls whether or not it will try to create a user. In the end, the following is in my package.use for mpd: media-sound/mpd -createuser -network -wavpack Reproducible: Always
Created attachment 312549 [details, diff] This patch produces a working ebuild This doesn't disable user creation on its own -- you have to actually add `-createuser` to your use flags for mpd. It does take the liberty of adding `~x64-macos`.
The preferred way is to just do: use prefix || enewuser
Created attachment 312555 [details, diff] Better patch (uses +prefix, not -createuser) Thanks yeah that is a way better idea. Updated and tested!
Oh, you don't need to add prefix to IUSE. Also, please attach unified diffs for wase of reading (diff -u)
Created attachment 312569 [details, diff] Unified patch; no prefix in IUSE Haha okay! Done and tested (still works). Can you tell this is my first time.
Alright. That looks good, except this: - virtual/pkgconfig" + dev-util/pkgconfig" that would be an unintended change from using an old revision (v1.9). Also, can you test the latest version? 0.16.8? We only should be caring about the latest version.
Created attachment 312571 [details, diff] Patch for mpd-0.16.8 Happy to. I was using 0.16.5 because it had amd64 instead of ~amd64, but 0.16.8 works just fine as well. Here's the working patch for that.
Good, thanks for testing the latest. My last question is what error did you actually hit with enewuser? We have special code for Gentoo Prefix in user.eclass that defines enewuser() <snip> # in Gentoo Prefix, we may be unprivileged, such that we can't handle this rootuid=$(python -c 'from portage.const import rootuid; print rootuid') if [[ ${rootuid} != 0 ]] ; then ewarn "'enewuser()' disabled in Gentoo Prefix with non-root user (by design)" ewarn " User: '$euser' not created" return 0 fi </snip>
(In reply to comment #8) > My last question is what error did you actually hit with enewuser? We have > special code for Gentoo Prefix in user.eclass that defines enewuser() The problem is the dodir command -- it tries to create directories belonging to mpd:audio, which have not been created. This will work okay if I only add `use prefix ||` to the dodir line, but that felt like an incomplete modification to me, so I added it to each line involving user creation. The only other edit is the line where sed needs to run on ${ED} instead of on ${D}.
Ah, ok. That is because dodir calls this: install -d ${DIROPTIONS} "${@/#/${ED}/}" and diropts just sets DIROPTIONS. Even though you think the modification was incomplete, the goal is minimal diffs which is why we short circuit enewuser - don't have to edit it in multiple ebuilds.
Created attachment 312677 [details, diff] Minimal patch for mpd-0.16.8 Ah, I understand. Here is a bare-minimum patch (tested and working).
Patch looks good. maintainers, please apply or let me know. thanks.
+ 22 May 2012; Christoph Mende <angelos@gentoo.org> mpd-0.16.8.ebuild: + Apply prefix patch for bug #416945, thanks to Matthew Alexander LaChance