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

[WIP] pulseaudio: build with meson #68313

Closed
wants to merge 1 commit into from

Conversation

worldofpeace
Copy link
Contributor

@worldofpeace worldofpeace commented Sep 8, 2019

Blocking issue

Fails to build on darwin due to upstream bug with meson.build's

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS (fails)
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

@FRidh

This comment has been minimized.

@worldofpeace

This comment has been minimized.

@worldofpeace
Copy link
Contributor Author

Seems the darwin build is broken with

ld: unknown option: -z
clang-7: error: linker command failed with exit code 1 (use -v to see invocation)

so it shouldn't use that for darwin.
But it looks like the meson things are assuming ELF

Should I condition it to only add those when it's linux?

@adisbladis

This comment has been minimized.

@worldofpeace
Copy link
Contributor Author

worldofpeace commented Sep 8, 2019

Yep https://lists.freedesktop.org/archives/pulseaudio-discuss/2019-September/031364.html

If things are quiet, we'll roll a final release in a few days.

Release coming soon I guess

Though it seems linking for Darwin is broken. I don't think I know enough about macos and darwin to make a bug report to them.

@jtojnar
Copy link
Contributor

jtojnar commented Sep 8, 2019

Looking at the error

Undefined symbols for architecture x86_64:
  "_AbsoluteToNanoseconds", referenced from:
      _pa_rtclock_age in pulsecore_core-rtclock.c.o
      _pa_rtclock_get in pulsecore_core-rtclock.c.o
      _pa_rtclock_from_wallclock in pulsecore_core-rtclock.c.o
      _pa_timeval_rtstore in pulsecore_core-rtclock.c.o
  "_libintl_bind_textdomain_codeset", referenced from:
      _pa_init_i18n in pulsecore_i18n.c.o
  "_libintl_bindtextdomain", referenced from:
      _pa_init_i18n in pulsecore_i18n.c.o
  "_libintl_dgettext", referenced from:
      _pa_format_info_snprint in pulse_format.c.o
      _pa_channel_position_to_pretty_string in pulse_channelmap.c.o
      _pa_channel_map_snprint in pulse_channelmap.c.o
      _pa_channel_map_to_pretty_name in pulse_channelmap.c.o
      _pa_sample_spec_snprint in pulse_sample.c.o
      _pa_bytes_snprint in pulse_sample.c.o
      _pa_cvolume_snprint in pulse_volume.c.o
      ...
  "_libintl_newlocale", referenced from:
      _pa_atod in pulsecore_core-util.c.o
  "_libintl_setlocale", referenced from:
      _pa_init_proplist in pulsecore_proplist-util.c.o
  "_pa_poll", referenced from:
      _pa_autospawn_lock_acquire in pulsecore_lock-autospawn.c.o

and some web search points me to underlinking.

d5/node.native#8 (comment)

The libintl linking might be fixed by just adding libintl to buildInputs (it should be no-op on glibc), not sure if PulseAudio also needs to link it explicitly.

cc @NixOS/darwin-maintainers

@jtojnar
Copy link
Contributor

jtojnar commented Sep 8, 2019

Yes for the frameworks. For the enable_mac_universal, that probably refers to https://en.wikipedia.org/wiki/Universal_binary, I am not sure if that is still needed these days.

Edit: quoting from the WP entry:

Starting with Mac OS X Snow Leopard, only Intel-based Macs are supported, so software that specifically depends upon capabilities present only in Mac OS X 10.6 or newer will only run on Intel-based Macs and therefore does not require Intel/PPC fat binaries. Additionally, starting with OS X Lion, only 64-bit Intel Macs are supported, so software that specifically depends on new features in OS X 10.7 or newer will only run on 64-bit processors and therefore does not require 32-bit/64-bit fat binaries.[3][4] Presently, fat binaries would only be necessary for software that is designed to have backward compatibility with older versions of Mac OS X running on older hardware.

@jtojnar
Copy link
Contributor

jtojnar commented Sep 9, 2019

@lheckemann lheckemann added this to the 20.03 milestone Sep 10, 2019
@worldofpeace
Copy link
Contributor Author

@worldofpeace
Copy link
Contributor Author

Opened an issue about darwin and meson, although it's lackluster in information

@worldofpeace worldofpeace mentioned this pull request Sep 14, 2019
10 tasks
@worldofpeace worldofpeace changed the title pulseaudio: 12.3 -> 12.99.3 pulseaudio: 12.3 -> 13.0 Sep 14, 2019
@worldofpeace worldofpeace marked this pull request as ready for review September 14, 2019 17:25
@jtojnar
Copy link
Contributor

jtojnar commented Sep 19, 2019

@worldofpeace
Copy link
Contributor Author

I've confirmed that

helped with the darwin build slightly.

@worldofpeace
Copy link
Contributor Author

@GrahamcOfBorg build pulseaudio libpulseaudio pulseaudioFull

@worldofpeace worldofpeace changed the title pulseaudio: 12.3 -> 13.0 pulseaudio: build with meson Sep 25, 2019
@worldofpeace
Copy link
Contributor Author

I've merged #68735 for now, I don't want to break darwin.

Leaving this open until someone fixes the issue upstream.

@worldofpeace worldofpeace changed the title pulseaudio: build with meson [WIP] pulseaudio: build with meson Sep 25, 2019
@worldofpeace worldofpeace added 2.status: wait-for-upstream Waiting for upstream fix (or their other action). 2.status: work-in-progress labels Sep 25, 2019
@FRidh FRidh added this to Not ready in Staging Oct 24, 2019
@worldofpeace worldofpeace removed this from the 20.03 milestone Jan 27, 2020
@ryantm ryantm marked this pull request as draft October 23, 2020 03:05
@stale
Copy link

stale bot commented Jun 2, 2021

I marked this as stale due to inactivity. → More info

@stale stale bot added the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Jun 2, 2021
@davidak
Copy link
Member

davidak commented Jul 24, 2021

Since worldofpeace is not here anymore:

Does someone want to continue this effort?

Or can we close this issue?

@stale stale bot removed the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Jul 24, 2021
@Ericson2314
Copy link
Member

Do they have plans to drop autoconf eventually?

@primeos
Copy link
Member

primeos commented Jul 31, 2021

@Ericson2314 yes, the recent PulseAudio 15 release dropped support for Autotools: https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/15.0/#autotoolsbuildsystemhavebeendropped

So we need to switch to Meson to update PulseAudio 15. Is someone up for that / already working on it?
(If not I might give it a shot soon but I'm not sure if I have enough time for it.)

@FRidh FRidh added this to the 21.11 milestone Jul 31, 2021
Staging automation moved this from WIP to Done Oct 16, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Staging
  
Done
Development

Successfully merging this pull request may close these issues.

None yet

10 participants