Ticket #802 (closed enhancement: distrospecific)

Opened 4 months ago

Last modified 4 months ago

Status on Arch Linux | Splitting into Library and Application

Reported by: Xavion Owned by: lennart
Milestone: Component: build-system
Keywords: Cc:

Description

I'm petitioning the Arch Linux developers to upgrade the location of the PulseAudio package from 'community' (3rd) to 'extra' (2nd). One of them has taken an interest in this idea and will look into the matter further.

In the meantime, another Arch Linux user thought it might be beneficial to split PulseAudio into library and application packages. He wrote a preliminary PKGBUILD script, which can be viewed here.

The idea seems quite good, but those 'rm' statements are awful. I've looked through the PulseAudio 'configure' and 'Makefile.in' files, noting that there are many helpful '--disable' options and make targets.

Despite these, there didn't immediately seem to be a clear way to split the building process into library and application sections. I'm wondering whether you think this might be a good feature for future releases of PulseAudio to possess.

In layman's terms, I'm hoping for something similar to "make lib" and "make app". Let me know if this ability already exists, or if you think the idea would require too many structural changes to the PulseAudio source code.

Change History

  Changed 4 months ago by lennart

  • status changed from new to closed
  • resolution set to distrospecific

Please file distribution bugs in distribution bug trackers.

Note that "make" has always allowed you to specify the file names you want to have created. I.e. man -C src/ libpulse.la will build only the client libs, and so on.

  Changed 4 months ago by lennart

oops, i meant "make -C src/ libpulse.la" of course.

follow-up: ↓ 4   Changed 4 months ago by Xavion

  • status changed from closed to reopened
  • resolution distrospecific deleted

I'm not a big fan of your dismissive response, partly since I'm trying to do PulseAudio a favour. Also, I can't see how my wanting "make lib" and "make app" simplifications can be considered an Arch-specific request, given that no distribution wants to mess around with building individual files when attempting to split the package of a sound server.

in reply to: ↑ 3   Changed 4 months ago by lennart

  • status changed from reopened to closed
  • resolution set to distrospecific

Replying to Xavion:

I'm not a big fan of your dismissive response, partly since I'm trying to do PulseAudio a favour.

Oh! And I thought *I* did ArchLinux? a favour in putting PA under a license that allows them to redistribute it.

Also, I can't see how my wanting "make lib" and "make app" simplifications can be considered an Arch-specific request, given that no distribution wants to mess around with building individual files when attempting to split the package of a sound server.

Well, as I pointed out this already exists, and secondly I think for distribution packaging this is really the wrong approach. If you want to split up packages then do so after building things, don't build things twice. So I am not planning to make any changes regarding this. (although I can often be convinced by a clean convincing patch)

  Changed 4 months ago by Xavion

  • status changed from closed to reopened
  • resolution distrospecific deleted

In that case, perhaps "make install-lib" and "make install-app" would be more appropriate. I'm just wanting a way to avoid a whole bunch of 'cp' or 'rm' statements, when attempting to split this package. I'm afraid that you might not see this message, unless I reopen this ticket again.

  Changed 4 months ago by lennart

  • status changed from reopened to closed
  • resolution set to distrospecific

Will, there's no reason for that fear.

If Archlinux packaging is limited, then I am sorry, but I don't think this is something we should workaround upstream.

Please don't reopen this bug anymore.

  Changed 4 months ago by Xavion

The desire to split a sound server into library and application packages doesn't necessarily infer that the associated package management system is limited. In fact, the relatively advanced package management system of Arch Linux is one of its biggest drawcards.

I just think that it'd be beneficial for Linux distribution developers if there's an easy and reliable way to split the PulseAudio package. You may find that some of them decide that it's in their better interest to do so, while others might remain nonchalant or unaware.

To be honest, it looks like you're mostly dodging this issue to minimise your workload. If one of us works on this and then supplies you with an acceptable patch for the Makefile, it'd be frustrating and annoying if you then decide to reject it for no good reason.

  Changed 4 months ago by coling

Lennart has already said that if the patch is clean he will likely apply it.

That said, as a packager myself, I find it absolutely astounding that the Arch build system requires that you build and install a given source multiple times in order to package it. Every other distro I know of splits the PA package into separate binary packages, but they only need to build it once and the definition of which files go to which binary package is left up to the packager to specify, not the upstream project.

To me, this requirement by the Arch build system is in no way indicative of a "relatively advanced" package management system - it's totally backwards :s A source tarball should be built once, and once only when creating binary packages.

If you do just built it once then run the "make install-xxx" multiple times with different values of xxx, then this is slightly more sensible but pushing your Arch specific policy into upstream packages seems rather narrow minded anyway. I know, for example, that the library packaging policy is different in Mandriva than it is in RedHat? and I know that Ubuntu do things differently still.

This kind of split should definitely be left to the packaging system IMO.

That's my €0.02

  Changed 4 months ago by Xavion

The Arch Linux package management system doesn't require any of this; it currently has a singular PulseAudio package in its 'community' repository. I stated in my original posting that another Arch Linux user thought it might be 'beneficial' to make the split; his PKGBUILD script also made it obvious that the source code only needs to be built once.

You raised a good point by noting that other Linux distributions might prefer to split the PulseAudio package in different ways. I thought that the PulseAudio developers might want to encourage greater consistency by mandating how they want Linux distributions to make the split. If they don't want this approach, your argument will likely prevail.

Note: See TracTickets for help on using tickets.