Commit Graph

4201 Commits

Author SHA1 Message Date
Greg V ada406603c dbus: use Linux style uptime on FreeBSD 2022-01-15 15:09:55 +00:00
Greg V 92e9596aa5 Put the clock_gettime based time impl into posix/ 2022-01-15 15:09:55 +00:00
Greg V 5f9e108e16 Fix missing CELT use for net driver 2022-01-15 15:09:55 +00:00
Goran Mekić 5c667d5282 Add FreeBSD support 2022-01-15 15:09:55 +00:00
Greg V 155d6ea3f9 Do not use O_RDWR on semaphores on FreeBSD
This is forbidden (returns EINVAL)
2022-01-15 15:09:55 +00:00
Greg V e5b5ee7bc9 Start semaphore names with a slash on FreeBSD 2022-01-15 15:09:55 +00:00
Camille Gonnet 8d51e9a005 ALSA: convert properly S24_LE 2022-01-15 15:09:55 +00:00
ihsinme ffdb275081 Update JackNetUnixSocket.cpp 2022-01-15 15:09:55 +00:00
Peter Bridgman 7e599badec macOS: Pass JackMachSemaphore send right via mach_msg IPC (#788)
* macOS: Pass JackMachSemaphore send right via mach_msg IPC

Previously, JackMachSemaphore would communicate the send right for the
semaphore object from the server to a client via a named service
registered via `bootstrap_register`. However, to do this, it would
register the semaphore's port as the service port directly.

In theory this ought to be fine, however in practice, macOS `launchd`,
which provides the `bootstrap_register` interface, does not correctly
detect when such a port becomes dead, and incorrectly believes that the
service that it provides is forever alive, even past the end of the
`jackd` process' (and therefore the semaphore's) existence. This seems
to be *specific* to semaphore ports, as `launchd` is expecting a
standard IPC port, owned by the task, not the kernel. This prevents
`jackd` from later registering another service with the same name, as
`launchd` rejects the registration as conflicting with an active service.

To get around this, `jackd` previously added a counter to the end of the
named service registrations, allowing old services to remain in the
system until the end of the session. To prevent things getting out of
hand, this was capped at 98 service registrations for a given semaphore
name. This led to #784, in which running a client for the 99th time
resulted in the semaphore creation failing and the client failing to
connect.

As `launchd` outlives multiple runs of `jackd`, this situation persisted
across restarts of `jackd`, requiring a restart of the user's session
(i.e. a reboot) to fix.

An initial attempt at fixing this (see #785) tried passing the port
rights directly via shared memory, however mach is too clever for us and
foils that plan by having port names be looked up in a per-task table
(sensible when you think about it).

In this commit, we use mach IPC messages to transfer the send right for
the semaphore from the server to the client. By registering a standard
IPC port with the bootstrap server, the service registrations are
correctly torn down when the ports are destroyed.

It works something like this:

* Server creates IPC port and registers it globally via `bootstrap_register`
* Server listens on IPC port for messages
* Client looks up IPC port via `bootstrap_look_up`
* Client sends it a message
* Server replies with a message containing a send right to the
semaphore's port
* Client is then free to use the semaphore port as before.

This resolves #784.

* Improve error handling

* Add myself to Authors
2022-01-15 15:09:55 +00:00
falkTX 4ba2806038 Build netsource tool when celt or opus are available
Signed-off-by: falkTX <falktx@falktx.com>
2022-01-15 15:09:55 +00:00
falkTX b066c5c078 Fix deb path
Signed-off-by: falkTX <falktx@falktx.com>
2022-01-15 15:09:55 +00:00
falkTX 4e93e1c79f Fix path to deb packages
Signed-off-by: falkTX <falktx@falktx.com>
2022-01-15 15:09:55 +00:00
falkTX 05dd7c1e7a Build deb packages
Signed-off-by: falkTX <falktx@falktx.com>
2022-01-15 15:09:55 +00:00
falkTX 457ff53b76 Another syntax fix
Signed-off-by: falkTX <falktx@falktx.com>
2022-01-15 15:09:55 +00:00
falkTX 4e8e597c3e Fix syntax error
Signed-off-by: falkTX <falktx@falktx.com>
2022-01-15 15:09:55 +00:00
falkTX b902cf381b Begin ubuntu-20.04 automated deb packaging
Signed-off-by: falkTX <falktx@falktx.com>
2022-01-15 15:09:55 +00:00
falkTX e2b540708a CI: Fix macOS package path
Signed-off-by: falkTX <falktx@falktx.com>
2022-01-15 15:09:55 +00:00
falkTX 491b3806f6 Revert "CI: Use xvfb-run for wineboot too"
This reverts commit 9a33cc254c49c0c96c4dbe0552caade1583fb1e2.
2022-01-15 15:09:55 +00:00
falkTX e0b114da1e CI: Use xvfb-run for wineboot too
Signed-off-by: falkTX <falktx@falktx.com>
2022-01-15 15:09:55 +00:00
falkTX db0ab0f12b CI: Use xvfb-run for wine stuff
Signed-off-by: falkTX <falktx@falktx.com>
2022-01-15 15:09:55 +00:00
falkTX 8b52afbbda Update windows installers as artifacts
Signed-off-by: falkTX <falktx@falktx.com>
2022-01-15 15:09:55 +00:00
falkTX 3d4027b1c7 CI: Generate windows installers
Signed-off-by: falkTX <falktx@falktx.com>
2022-01-15 15:09:55 +00:00
falkTX cd1efe94fa Allow custom version on macOS generate-pkg script
Signed-off-by: falkTX <falktx@falktx.com>
2022-01-15 15:09:55 +00:00
falkTX ee8a800f91 CI: Now try win64 mixed mode
Signed-off-by: falkTX <falktx@falktx.com>
2022-01-15 15:09:55 +00:00
falkTX 6df5e70099 CI: Fix win64 build, no mixed just yet
Signed-off-by: falkTX <falktx@falktx.com>
2022-01-15 15:09:55 +00:00
falkTX f0459bec53 Generate macOS package
Signed-off-by: falkTX <falktx@falktx.com>
2022-01-15 15:09:55 +00:00
falkTX 0383af6619 Fix cache; Generate MSVC lib files
Signed-off-by: falkTX <falktx@falktx.com>
2022-01-15 15:09:55 +00:00
falkTX c3a982b0ee Correct win32 build commands
Signed-off-by: falkTX <falktx@falktx.com>
2022-01-15 15:09:55 +00:00
falkTX 73d8a9abd8 Cleanup
Signed-off-by: falkTX <falktx@falktx.com>
2022-01-15 15:09:55 +00:00
falkTX 54766cc615 CI: Add build jack2 step
Signed-off-by: falkTX <falktx@falktx.com>
2022-01-15 15:09:55 +00:00
falkTX 01b77f963f First step towards automated builds
Signed-off-by: falkTX <falktx@falktx.com>
2022-01-15 15:09:55 +00:00
Khem Raj 55879114b9 example-clients: Use c++ compiler for jack_simdtests
It uses c++ sources and runtime therefore its best to use c++ compiler
to build it so it can find the correct runtime, cross compiling with
clang fails

x86_64-yoe-linux-ld: example-clients/simdtests.cpp.28.o: undefined reference to symbol '__cxa_call_unexpected@@CXXABI_1.3'

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-01-15 15:09:55 +00:00
falkTX 03f474c611 Start of v1.9.20
Signed-off-by: falkTX <falktx@falktx.com>
2022-01-15 15:09:55 +00:00
falkTX 66f9bdb386 Better handling of optional asio
Signed-off-by: falkTX <falktx@falktx.com>
2022-01-15 15:09:55 +00:00
falkTX fd562bdf13 Fix custom win32 detection, fixes missing HAVE_ASIO macro
Signed-off-by: falkTX <falktx@falktx.com>
2022-01-15 15:09:55 +00:00
falkTX 3e6ca6b734
Remove WIP comment
Signed-off-by: falkTX <falktx@falktx.com>
2021-07-15 07:18:26 +01:00
falkTX 0ec22bbc1b
Merge branch 'develop' 2021-07-15 07:17:11 +01:00
falkTX 1ff83b5314
Update changelog
Signed-off-by: falkTX <falktx@falktx.com>
2021-07-05 20:46:01 +01:00
falkTX 13d5eccba4
Bump protocol version as internal ABI has changed (struct alignment)
Signed-off-by: falkTX <falktx@falktx.com>
2021-07-05 20:42:42 +01:00
falkTX b9f2614153
Update changelog
Signed-off-by: falkTX <falktx@falktx.com>
2021-07-05 20:40:01 +01:00
falkTX 0ac09f7e3d
Silence invalid offsetof warning, only used in static_assert
Signed-off-by: falkTX <falktx@falktx.com>
2021-07-05 20:34:03 +01:00
Filipe Coelho 814629b566
Add jack_position_t::tick_double, and flags around it (#770)
* Add jack_position_t::tick_double, and flags around it

Signed-off-by: falkTX <falktx@falktx.com>

* s/precision/resolution/

Signed-off-by: falkTX <falktx@falktx.com>
2021-07-05 20:25:09 +01:00
Guido Aulisi b5ba873189 Fix compilation of documentation
Custom footer without date is not needed anymore
2021-06-30 09:18:14 +01:00
Anthony Scopatz a054008c7a __STDC_FORMAT_MACROS needs to be first 2021-06-30 09:17:42 +01:00
Colin McEwan dff7fa4fa8
Fix alignment of fields for atomic accesses (#761)
* Assert alignment is suitable for atomic accesses

* Move fields and pad to meet alignment constraints

* Add padding to JackEngineControl to account for inherited data

* Parenthesise padding length for clarity

* Revert "Parenthesise padding length for clarity"

This reverts commit 1f757b9ece5e3b032743c6c5ac49e83c3928e3de.

* Revert "Add padding to JackEngineControl to account for inherited data"

This reverts commit 3d8c7d83ad9483280f623171af7e40ccc76cef38.

* Revert "Move fields and pad to meet alignment constraints"

This reverts commit ff631bbbdc2279df05f3a18dd44e8fd68be2e04d.

* Assure alignment by using 'alignas' on fields
2021-06-30 09:16:28 +01:00
luz paz 0fe68adecc Fix misc. typos
Found via `codespell -q 3 -L capela,nd,numer,parm`
2021-06-30 09:11:21 +01:00
falkTX dd1d70c8ff
Start of 1.9.19
Signed-off-by: falkTX <falktx@falktx.com>
2021-04-29 16:59:52 +01:00
falkTX 23b9fb71b9
zalsa: add "-w" argument to wait for soundcard to be available
Signed-off-by: falkTX <falktx@falktx.com>
2021-04-29 16:58:02 +01:00
falkTX 1b3594e70f
wait for zalsa thread to finish
Signed-off-by: falkTX <falktx@falktx.com>
2021-04-29 16:57:52 +01:00
falkTX 73d7c23088
zalsa: add "-w" argument to wait for soundcard to be available
Signed-off-by: falkTX <falktx@falktx.com>
2021-04-29 16:56:34 +01:00