informational/README updates; adjust uxplay.spec for OpenMandriva

This commit is contained in:
F. Duncanh
2023-08-23 13:50:20 -04:00
parent 467533e66b
commit 1df7a5270b
5 changed files with 172 additions and 159 deletions

View File

@@ -46,21 +46,21 @@ systems through AUR.</p></li>
packaged UxPlay, a RPM “specfile” <strong>uxplay.spec</strong> is now
provided with recent <a
href="https://github.com/FDH2/UxPlay/releases">releases</a> (see their
“Assets”), and can also be found in the UxPlay source top directory. To
build a RPM package, install rpmdevtools, create a rpmbuild tree with
<code>rpmdev-setuptree</code>”, and copy uxplay.spec into
<code>~/rpmbuild/SPECS</code>. In that directory, run
<code>spectool -g uxplay.spec</code>” (spectool may also be called
“rpmdev-spectool”) to download the corresponding source file
<code>uxplay-*.tar.gz</code>, which should then be moved into
<code>~/rpmbuild/SOURCES</code>; then run
<code>rpmbuild -ba uxplay.spec</code> (you will need to install any
required dependencies this reports). This should create an installable
uxplay RPM package in a subdirectory of <code>~/rpmbuild/RPMS</code>.
(<strong>uxplay.spec</strong> is tested on Fedora 38, Rocky Linux 9.2,
OpenSUSE Leap 15.5, Mageia 9, OpenMandriva, pclinuxos; it can be easily
modified to include dependency lists for other RPM-based
distributions.)</p></li>
“Assets”), and can also be found in the UxPlay source top directory.
This can be used to build an installable RPM package. First-time RPM
builders should first install the rpm-build and rpmdevtools packages,
then create the rpmbuild tree with “<code>rpmdev-setuptree</code>. Then
download and copy uxplay.spec into <code>~/rpmbuild/SPECS</code>. In
that directory, run “<code>rpmdev-spectool -g -R uxplay.spec</code>” to
download the corresponding source file <code>uxplay-*.tar.gz</code> into
<code>~/rpmbuild/SOURCES</code> (“rpmdev-spectool” may also be just
called “spectool”); then run <code>rpmbuild -ba uxplay.spec</code>
(you will need to install any required dependencies this reports). This
should create the uxplay RPM package in a subdirectory of
<code>~/rpmbuild/RPMS</code>. (<strong>uxplay.spec</strong> is tested on
Fedora 38, Rocky Linux 9.2, openSUSE Leap 15.5, Mageia 9, OpenMandriva,
PCLinuxOS; it can be easily modified to include dependency lists for
other RPM-based distributions.)</p></li>
<li><p>On Linux and *BSD the mDNS/DNS-SD (Bonjour/ZeroConf) local
network services needed by UxPlay are usually provided by Avahi:
<strong>if there is a firewall on the server that will host UxPlay, make
@@ -102,10 +102,11 @@ posts updates pulled from the new main <a
href="https://github.com/FDH2/UxPlay">UxPlay site</a>).</p>
<p>UxPlay is tested on a number of systems, including (among others)
Debian (10 “Buster”, 11 “Bullseye”, 12 “Bookworm”), Ubuntu (20.04 LTS,
22.04 LTS, 23.04; also Ubuntu derivatives Linux Mint 20.3, Pop!_OS 22.04
(NVIDIA edition)), Red Hat and clones (Fedora 38, Rocky Linux 9.2),
Mageia 9, OpenMandriva “ROME”, openSUSE 15.5, Arch Linux 23.05, macOS
13.3 (Intel and M2), FreeBSD 13.2, Windows 10 and 11 (64 bit).</p>
22.04 LTS, 23.04 (also Ubuntu derivatives Linux Mint, Pop!_OS), Red Hat
and clones (Fedora 38, Rocky Linux 9.2), openSUSE Leap 15.5, Mageia 9,
OpenMandriva “ROME”, PCLinuxOS, Arch Linux, Manjaro, and should run on
any Linux system. Also tested on macOS 13.3 (Intel and M2), FreeBSD
13.2, Windows 10 and 11 (64 bit).</p>
<p>On Raspberry Pi 4 model B, it is tested on Raspberry Pi OS (Bullseye)
(32- and 64-bit), Ubuntu 22.04 LTS and 23.04, Manjaro RPi4 23.02, and
(without hardware video decoding) on openSUSE 15.5. Also tested on
@@ -314,8 +315,9 @@ GStreamer plugins must first be installed).</p>
Linux and *BSD</h3>
<p><strong>For those with RPM-based distributions, a RPM spec file
uxplay.spec is also available for building a rpm package with
rpmbuild</strong> (tested on Fedora 38, Rocky Linux 9.2 (RHEL clone),
OpenSUSE 15.5, and Mageia 9; see “Packaging Status” section)</p>
rpmbuild</strong>. See <a
href="#packaging-status-linux-and-bsd-distributions">“Packaging
Status”</a> section above.</p>
<ul>
<li><p><strong>Red Hat, or clones like CentOS (now continued as Rocky
Linux or Alma Linux):</strong> (sudo dnf install, or sudo yum install)
@@ -323,11 +325,11 @@ openssl-devel libplist-devel avahi-compat-libdns_sd-devel
gstreamer1-devel gstreamer1-plugins-base-devel (+libX11-devel for
fullscreen X11) <em>(some of these may be in the “CodeReady” add-on
repository, called “PowerTools” by clones)</em></p></li>
<li><p><strong>Mageia, pclinuxos, OpenMandriva:</strong> Same as Red
<li><p><strong>Mageia, PCLinuxOS, OpenMandriva:</strong> Same as Red
Hat, except for name changes: (Mageia) “gstreamer1.0-devel”,
“gstreamer-plugins-base1.0-devel”; (OpenMandriva) “libopenssl-devel”,
“gstreamer-devel”, “libgst-plugins-base1.0-devel”. pclinuxos: same as
Mageia, but uses synaptic (or apt) as its package manager</p></li>
“gstreamer-devel”, “libgst-plugins-base1.0-devel”. PCLinuxOS: same as
Mageia, but uses synaptic (or apt) as its package manager.</p></li>
<li><p><strong>openSUSE:</strong> (sudo zypper install)
libopenssl-3-devel (formerly libopenssl-devel) libplist-2_0-devel
(formerly libplist-devel) avahi-compat-mDNSResponder-devel
@@ -380,32 +382,30 @@ is not provided in the official distribution: get it from community
repositories for those distributions.</p>
<ul>
<li><p><strong>Red Hat, or clones like CentOS (now continued as Rocky
Linux or Alma Linux):</strong> (sudo dnf install, or sudo yum install)
gstreamer1-libav gstreamer1-plugins-bad-free (+ gstreamer1-vaapi for
Intel/AMD graphics). In recent Fedora, gstreamer1-libav is renamed
gstreamer1-plugin-libav. <strong>To get avdec_aac, install packages from
<a href="https://rpmfusion.org">rpmfusion.org</a></strong>: (get
Linux or Alma Linux):</strong> Install gstreamer1-libav
gstreamer1-plugins-bad-free (+ gstreamer1-vaapi for Intel/AMD graphics).
In recent Fedora, gstreamer1-libav is renamed gstreamer1-plugin-libav.
<strong>To get avdec_aac, install packages from <a
href="https://rpmfusion.org">rpmfusion.org</a></strong>: (get
ffmpeg-libs from rpmfusion; on RHEL or clones, but not recent Fedora,
also get gstreamer1-libav from there).</p></li>
<li><p><strong>Mageia, pclinuxos, OpenMandriva:</strong> (sudo dnf
install, or sudo yum install) gstreamer1.0-libav
gstreamer1.0-plugins-bad (+ gstreamer1.0-vaapi for Intel/AMD graphics).
<strong>On Mageia, to get avdec_aac, install ffmpeg from the “tainted”
repository</strong>, (which also provides a more complete
gstreamer1.0-plugins-bad). pclinuxos: same as Mageia, but uses synaptic
(or apt) as its package manager.</p></li>
<li><p><strong>openSUSE:</strong> (sudo zypper install)
gstreamer-plugins-libav gstreamer-plugins-bad (+ gstreamer-plugins-vaapi
for Intel/AMD graphics). <strong>To get avdec_aac, install libav*
packages for openSUSE from <a
<li><p><strong>Mageia, PCLinuxOS, OpenMandriva:</strong> Install
gstreamer1.0-libav gstreamer1.0-plugins-bad (+ gstreamer1.0-vaapi for
Intel/AMD graphics). <strong>On Mageia, to get avdec_aac, install ffmpeg
from the “tainted” repository</strong>, (which also provides a more
complete gstreamer1.0-plugins-bad).</p></li>
<li><p><strong>openSUSE:</strong> Install gstreamer-plugins-libav
gstreamer-plugins-bad (+ gstreamer-plugins-vaapi for Intel/AMD
graphics). <strong>To get avdec_aac, install libav* packages for
openSUSE from <a
href="https://ftp.gwdg.de/pub/linux/misc/packman/suse/">Packman</a>
“Essentials”</strong>; recommendation: after adding the Packman
repository, use the option in YaST Software management to switch all
system packages for multimedia to Packman).</p></li>
<li><p><strong>Arch Linux</strong> (sudo pacman -Syu) gst-plugins-good
<li><p><strong>Arch Linux</strong> Install gst-plugins-good
gst-plugins-bad gst-libav (+ gstreamer-vaapi for Intel/AMD
graphics).</p></li>
<li><p><strong>FreeBSD:</strong> (sudo pkg install) gstreamer1-libav,
<li><p><strong>FreeBSD:</strong> Install gstreamer1-libav,
gstreamer1-plugins, gstreamer1-plugins-* (* = core, good, bad, x, gtk,
gl, vulkan, pulse, v4l2, …), (+ gstreamer1-vaapi for Intel/AMD
graphics).</p></li>
@@ -729,14 +729,13 @@ compiler.</h2>
</ul>
<ol type="1">
<li><p>Download and install <strong>Bonjour SDK for Windows
v3.0</strong> from the official Apple site <a
href="https://developer.apple.com/download/all/?q=Bonjour%20SDK%20for%20Windows">https://developer.apple.com/download</a>.
(Apple makes you register as a developer to access it; if you do not
want to go through the registration process, you can download the SDK
without any registration at <a
href="https://www.softpedia.com/get/Programming/SDK-DDK/Bonjour-SDK.shtml">softpedia.com</a>.)
v3.0</strong>. You can download the SDK without any registration at <a
href="https://www.softpedia.com/get/Programming/SDK-DDK/Bonjour-SDK.shtml">softpedia.com</a>,
or get it from the official Apple site <a
href="https://developer.apple.com/download/all/?q=Bonjour%20SDK%20for%20Windows">https://developer.apple.com/download</a>
(Apple makes you register as a developer to access it from their site).
This should install the Bonjour SDK as
<code>C:\Program Files\Bonjour SDK</code></p></li>
<code>C:\Program Files\Bonjour SDK</code>.</p></li>
<li><p>(This is for 64-bit Windows; a build for 32-bit Windows should be
possible, but is not tested.) The unix-like MSYS2 build environment will
be used: download and install MSYS2 from the official site <a
@@ -839,6 +838,13 @@ environment, in the Windows Terminal, with
<code>C:\msys64\mingw64\bin\uxplay</code>.</p>
<h1 id="usage">Usage</h1>
<p>Options:</p>
<ul>
<li>These can also be written (one option per line, without the initial
<code>-</code>” character) in the UxPlay startup file (either given by
environment variable <code>$UXPLAYRC</code>, or <code>~/.uxplayrc</code>
or <code>~/.config/uxplayrc</code>). Command line options supersede
options in the startup file.</li>
</ul>
<p><strong>-n server_name</strong> (Default: UxPlay);
server_name@_hostname_ will be the name that appears offering AirPlay
services to your iPad, iPhone etc, where <em>hostname</em> is the name
@@ -975,8 +981,8 @@ playing of streamed audio, but displays streamed video.</p>
in (decimal) seconds in Audio-only (ALAC), that is reported to the
client. Values in the range [0.0, 10.0] seconds are allowed, and will be
converted to a whole number of microseconds. Default is 0.25 sec (250000
usec). (This replaces the <code>-ao</code> option introduced in v1.62,
as a workaround for a problem that is now fixed).</p>
usec). <em>(However, the client appears to ignore this reported latency,
so this option seems non-functional.)</em></p>
<p><strong>-ca <em>filename</em></strong> provides a file (where
<em>filename</em> can include a full path) used for output of “cover
art” (from Apple Music, <em>etc.</em>,) in audio-only ALAC mode. This
@@ -1360,11 +1366,12 @@ an AppleTV6,2 with sourceVersion 380.20.1 (an AppleTV 4K 1st gen,
introduced 2017, running tvOS 12.2.1), so it does not seem to matter
what UxPlay claims to be.</p>
<h1 id="changelog">Changelog</h1>
<p>1.65.3 2023-07-23 Add RPM spec file; add graceful exit if required
<p>1.65.3 2023-07-23 Add RPM spec file; add warning if required
gstreamer libav feature “avdec_aac” is missing: (this occurs in
RPM-based distributions that ship an incomplete FFmpeg for Patent or
License reasons, and rely on users installing an externally-supplied
complete FFmpeg).</p>
complete FFmpeg). Mirror-mode airplay will now work without audio if
avdec_aac is missing.</p>
<p>1.65 2023-06-03 Eliminate pair_setup part of connection protocol to
allow faster connections with clients (thanks to <span class="citation"
data-cites="shuax">@shuax</span> #176 for this discovery); to revert,

View File

@@ -31,12 +31,14 @@
available on Arch-based systems through AUR.
* **NEW**: while no RPM-based distributions have yet packaged UxPlay, a RPM "specfile" **uxplay.spec** is now provided with recent
[releases](https://github.com/FDH2/UxPlay/releases) (see their "Assets"), and can also be found in the UxPlay source top directory. To
build a RPM package, install rpmdevtools, create a rpmbuild tree with "`rpmdev-setuptree`", and copy uxplay.spec into ``~/rpmbuild/SPECS``.
In that directory, run "`spectool -g uxplay.spec`" (spectool may also be called "rpmdev-spectool") to download the corresponding source file `uxplay-*.tar.gz`, which should then be
moved into ``~/rpmbuild/SOURCES``; then run "```rpmbuild -ba uxplay.spec```" (you will need to install
any required dependencies this reports). This should create an installable uxplay RPM package in a subdirectory of `~/rpmbuild/RPMS`.
(**uxplay.spec** is tested on Fedora 38, Rocky Linux 9.2, OpenSUSE Leap 15.5, Mageia 9, OpenMandriva, pclinuxos;
[releases](https://github.com/FDH2/UxPlay/releases) (see their "Assets"), and can also be found in the UxPlay source top directory.
This can be used to build an installable RPM package. First-time RPM builders should first install the rpm-build and rpmdevtools packages,
then create the rpmbuild tree with "`rpmdev-setuptree`". Then download and
copy uxplay.spec into ``~/rpmbuild/SPECS``. In that directory, run "`rpmdev-spectool -g -R uxplay.spec`" to download the corresponding
source file `uxplay-*.tar.gz` into ``~/rpmbuild/SOURCES`` ("rpmdev-spectool" may also be just called "spectool"); then
run "```rpmbuild -ba uxplay.spec```" (you will need to install
any required dependencies this reports). This should create the uxplay RPM package in a subdirectory of `~/rpmbuild/RPMS`.
(**uxplay.spec** is tested on Fedora 38, Rocky Linux 9.2, openSUSE Leap 15.5, Mageia 9, OpenMandriva, PCLinuxOS;
it can be easily modified to include dependency lists for other RPM-based distributions.)
* On Linux and \*BSD the mDNS/DNS-SD (Bonjour/ZeroConf) local network services needed by UxPlay are usually provided by Avahi: **if
@@ -57,7 +59,6 @@ that accesses the firmware decoder in the Broadcom GPU)_.
* To (easily) compile the latest UxPlay from source, see the section [Getting UxPlay](#getting-uxplay).
# Detailed description of UxPlay
This project is a GPLv3 open source unix AirPlay2 Mirror server for Linux, macOS, and \*BSD.
It was initially developed by
[antimof](http://github.com/antimof/Uxplay) using code
@@ -69,9 +70,9 @@ development, but periodically posts updates pulled from the new
main [UxPlay site](https://github.com/FDH2/UxPlay)).
UxPlay is tested on a number of systems, including (among others) Debian (10 "Buster", 11 "Bullseye", 12 "Bookworm"),
Ubuntu (20.04 LTS, 22.04 LTS, 23.04; also Ubuntu derivatives Linux Mint 20.3, Pop!\_OS 22.04 (NVIDIA edition)), Red Hat and clones (Fedora 38,
Rocky Linux 9.2), Mageia 9, OpenMandriva "ROME", openSUSE 15.5, Arch Linux 23.05, macOS 13.3 (Intel and M2),
FreeBSD 13.2, Windows 10 and 11 (64 bit).
Ubuntu (20.04 LTS, 22.04 LTS, 23.04 (also Ubuntu derivatives Linux Mint, Pop!\_OS), Red Hat and clones (Fedora 38,
Rocky Linux 9.2), openSUSE Leap 15.5, Mageia 9, OpenMandriva "ROME", PCLinuxOS, Arch Linux, Manjaro, and should run on any Linux system.
Also tested on macOS 13.3 (Intel and M2), FreeBSD 13.2, Windows 10 and 11 (64 bit).
On Raspberry Pi 4 model B, it is tested on Raspberry Pi OS (Bullseye) (32- and 64-bit), Ubuntu 22.04 LTS and 23.04, Manjaro RPi4 23.02,
and (without hardware video decoding) on openSUSE 15.5. Also tested on Raspberry Pi 3 model B+.
@@ -253,8 +254,7 @@ the GStreamer plugins must first be installed).
### Building on non-Debian Linux and \*BSD
**For those with RPM-based distributions, a RPM spec file uxplay.spec is also available for
building a rpm package with rpmbuild** (tested on Fedora 38, Rocky Linux 9.2 (RHEL clone),
OpenSUSE 15.5, and Mageia 9; see "Packaging Status" section)
building a rpm package with rpmbuild**. See ["Packaging Status"](#packaging-status-linux-and-bsd-distributions) section above.
* **Red Hat, or clones like CentOS (now continued as Rocky Linux or Alma Linux):**
@@ -262,10 +262,10 @@ OpenSUSE 15.5, and Mageia 9; see "Packaging Status" section)
gstreamer1-devel gstreamer1-plugins-base-devel (+libX11-devel for fullscreen X11) _(some of these
may be in the "CodeReady" add-on repository, called "PowerTools" by clones)_
* **Mageia, pclinuxos, OpenMandriva:**
* **Mageia, PCLinuxOS, OpenMandriva:**
Same as Red Hat, except for name changes: (Mageia) "gstreamer1.0-devel", "gstreamer-plugins-base1.0-devel";
(OpenMandriva) "libopenssl-devel", "gstreamer-devel", "libgst-plugins-base1.0-devel". pclinuxos: same as Mageia,
but uses synaptic (or apt) as its package manager
(OpenMandriva) "libopenssl-devel", "gstreamer-devel", "libgst-plugins-base1.0-devel". PCLinuxOS: same as Mageia,
but uses synaptic (or apt) as its package manager.
* **openSUSE:**
(sudo zypper install) libopenssl-3-devel (formerly
@@ -310,31 +310,29 @@ In some cases, because of patent issues,
the libav plugin feature **avdec_aac** needed for decoding AAC audio in mirror mode is not provided in the official distribution:
get it from community repositories for those distributions.
* **Red Hat, or clones like CentOS (now continued as Rocky Linux or Alma Linux):**
(sudo dnf install, or sudo yum install) gstreamer1-libav gstreamer1-plugins-bad-free (+ gstreamer1-vaapi
* **Red Hat, or clones like CentOS (now continued as Rocky Linux or Alma Linux):**
Install gstreamer1-libav gstreamer1-plugins-bad-free (+ gstreamer1-vaapi
for Intel/AMD graphics). In recent Fedora, gstreamer1-libav is renamed gstreamer1-plugin-libav.
**To get avdec_aac, install packages from [rpmfusion.org](https://rpmfusion.org)**: (get ffmpeg-libs from rpmfusion;
on RHEL or clones, but not recent Fedora, also get gstreamer1-libav from there).
* **Mageia, pclinuxos, OpenMandriva:**
(sudo dnf install, or sudo yum install) gstreamer1.0-libav gstreamer1.0-plugins-bad (+ gstreamer1.0-vaapi
* **Mageia, PCLinuxOS, OpenMandriva:**
Install gstreamer1.0-libav gstreamer1.0-plugins-bad (+ gstreamer1.0-vaapi
for Intel/AMD graphics). **On Mageia, to get avdec_aac, install ffmpeg from the "tainted" repository**,
(which also provides a more complete gstreamer1.0-plugins-bad). pclinuxos: same as Mageia, but uses synaptic
(or apt) as its package manager.
(which also provides a more complete gstreamer1.0-plugins-bad).
* **openSUSE:**
(sudo zypper install)
gstreamer-plugins-libav gstreamer-plugins-bad (+ gstreamer-plugins-vaapi
* **openSUSE:**
Install gstreamer-plugins-libav gstreamer-plugins-bad (+ gstreamer-plugins-vaapi
for Intel/AMD graphics). **To get avdec_aac, install libav\* packages for openSUSE
from [Packman](https://ftp.gwdg.de/pub/linux/misc/packman/suse/) "Essentials"**; recommendation: after adding the
Packman repository, use the option in YaST Software management to switch
all system packages for multimedia to Packman).
* **Arch Linux**
(sudo pacman -Syu) gst-plugins-good gst-plugins-bad gst-libav (+ gstreamer-vaapi
Install gst-plugins-good gst-plugins-bad gst-libav (+ gstreamer-vaapi
for Intel/AMD graphics).
* **FreeBSD:** (sudo pkg install) gstreamer1-libav, gstreamer1-plugins, gstreamer1-plugins-*
* **FreeBSD:** Install gstreamer1-libav, gstreamer1-plugins, gstreamer1-plugins-*
(\* = core, good, bad, x, gtk, gl, vulkan, pulse, v4l2, ...), (+ gstreamer1-vaapi for Intel/AMD graphics).
@@ -570,12 +568,10 @@ seems fragile against attempts to change the X11 window size, or to rotations th
* tested on Windows 10 and 11, 64-bit.
1. Download and install **Bonjour SDK for Windows v3.0** from the official Apple site
[https://developer.apple.com/download](https://developer.apple.com/download/all/?q=Bonjour%20SDK%20for%20Windows). (Apple
makes you register as a developer to access it; if you do not want to go through the registration process, you can download
the SDK without any registration at [softpedia.com](https://www.softpedia.com/get/Programming/SDK-DDK/Bonjour-SDK.shtml).)
This should install the Bonjour SDK as `C:\Program Files\Bonjour SDK`
1. Download and install **Bonjour SDK for Windows v3.0**. You can download the SDK without any registration
at [softpedia.com](https://www.softpedia.com/get/Programming/SDK-DDK/Bonjour-SDK.shtml), or get it from the official Apple
site [https://developer.apple.com/download](https://developer.apple.com/download/all/?q=Bonjour%20SDK%20for%20Windows) (Apple makes
you register as a developer to access it from their site). This should install the Bonjour SDK as `C:\Program Files\Bonjour SDK`.
2. (This is for 64-bit Windows; a build for 32-bit Windows should be possible, but is not tested.) The
unix-like MSYS2 build environment will be used: download and install MSYS2 from the official
@@ -665,6 +661,9 @@ the Windows Terminal, with `C:\msys64\mingw64\bin\uxplay`.
Options:
* These can also be written (one option per line, without the initial "`-`" character) in the UxPlay startup file (either given by
environment variable `$UXPLAYRC`, or ``~/.uxplayrc`` or ```~/.config/uxplayrc```). Command line options supersede options in the startup file.
**-n server_name** (Default: UxPlay); server_name@_hostname_ will be the name that appears offering
AirPlay services to your iPad, iPhone etc, where _hostname_ is the name of the server running uxplay.
This will also now be the name shown above the mirror display (X11) window.
@@ -784,8 +783,7 @@ which will not work if a firewall is running.
**-al _x_** specifies an audio latency _x_ in (decimal) seconds in Audio-only (ALAC), that is reported to the client. Values
in the range [0.0, 10.0] seconds are allowed, and will be converted to a whole number of microseconds. Default
is 0.25 sec (250000 usec). (This replaces the `-ao` option introduced in v1.62, as a workaround for a problem that
is now fixed).
is 0.25 sec (250000 usec). _(However, the client appears to ignore this reported latency, so this option seems non-functional.)_
**-ca _filename_** provides a file (where _filename_ can include a full path) used for output of "cover art"
(from Apple Music, _etc._,) in audio-only ALAC mode. This file is overwritten with the latest cover art as
@@ -1084,9 +1082,10 @@ tvOS 12.2.1), so it does not seem to matter what UxPlay claims to be.
# Changelog
1.65.3 2023-07-23 Add RPM spec file; add graceful exit if required gstreamer libav feature "avdec_aac" is
1.65.3 2023-07-23 Add RPM spec file; add warning if required gstreamer libav feature "avdec_aac" is
missing: (this occurs in RPM-based distributions that ship an incomplete FFmpeg for Patent
or License reasons, and rely on users installing an externally-supplied complete FFmpeg).
Mirror-mode airplay will now work without audio if avdec_aac is missing.
1.65 2023-06-03 Eliminate pair_setup part of connection protocol to allow faster connections with clients
(thanks to @shuax #176 for this discovery); to revert, uncomment a line in lib/dnssdint.h.

View File

@@ -41,19 +41,20 @@ status](https://repology.org/badge/vertical-allrepos/uxplay.svg)](https://repolo
a RPM "specfile" **uxplay.spec** is now provided with recent
[releases](https://github.com/FDH2/UxPlay/releases) (see their
"Assets"), and can also be found in the UxPlay source top directory.
To build a RPM package, install rpmdevtools, create a rpmbuild tree
with "`rpmdev-setuptree`", and copy uxplay.spec into
`~/rpmbuild/SPECS`. In that directory, run
"`spectool -g uxplay.spec`" (spectool may also be called
"rpmdev-spectool") to download the corresponding source file
`uxplay-*.tar.gz`, which should then be moved into
`~/rpmbuild/SOURCES`; then run "`rpmbuild -ba uxplay.spec`" (you
will need to install any required dependencies this reports). This
should create an installable uxplay RPM package in a subdirectory of
`~/rpmbuild/RPMS`. (**uxplay.spec** is tested on Fedora 38, Rocky
Linux 9.2, OpenSUSE Leap 15.5, Mageia 9, OpenMandriva, pclinuxos; it
can be easily modified to include dependency lists for other
RPM-based distributions.)
This can be used to build an installable RPM package. First-time RPM
builders should first install the rpm-build and rpmdevtools
packages, then create the rpmbuild tree with "`rpmdev-setuptree`".
Then download and copy uxplay.spec into `~/rpmbuild/SPECS`. In that
directory, run "`rpmdev-spectool -g -R uxplay.spec`" to download
the corresponding source file `uxplay-*.tar.gz` into
`~/rpmbuild/SOURCES` ("rpmdev-spectool" may also be just called
"spectool"); then run "`rpmbuild -ba uxplay.spec`" (you will need to
install any required dependencies this reports). This should create
the uxplay RPM package in a subdirectory of `~/rpmbuild/RPMS`.
(**uxplay.spec** is tested on Fedora 38, Rocky Linux 9.2, openSUSE
Leap 15.5, Mageia 9, OpenMandriva, PCLinuxOS; it can be easily
modified to include dependency lists for other RPM-based
distributions.)
- On Linux and \*BSD the mDNS/DNS-SD (Bonjour/ZeroConf) local network
services needed by UxPlay are usually provided by Avahi: **if there
@@ -96,10 +97,11 @@ pulled from the new main [UxPlay site](https://github.com/FDH2/UxPlay)).
UxPlay is tested on a number of systems, including (among others) Debian
(10 "Buster", 11 "Bullseye", 12 "Bookworm"), Ubuntu (20.04 LTS, 22.04
LTS, 23.04; also Ubuntu derivatives Linux Mint 20.3, Pop!\_OS 22.04
(NVIDIA edition)), Red Hat and clones (Fedora 38, Rocky Linux 9.2),
Mageia 9, OpenMandriva "ROME", openSUSE 15.5, Arch Linux 23.05, macOS
13.3 (Intel and M2), FreeBSD 13.2, Windows 10 and 11 (64 bit).
LTS, 23.04 (also Ubuntu derivatives Linux Mint, Pop!\_OS), Red Hat and
clones (Fedora 38, Rocky Linux 9.2), openSUSE Leap 15.5, Mageia 9,
OpenMandriva "ROME", PCLinuxOS, Arch Linux, Manjaro, and should run on
any Linux system. Also tested on macOS 13.3 (Intel and M2), FreeBSD
13.2, Windows 10 and 11 (64 bit).
On Raspberry Pi 4 model B, it is tested on Raspberry Pi OS (Bullseye)
(32- and 64-bit), Ubuntu 22.04 LTS and 23.04, Manjaro RPi4 23.02, and
@@ -308,9 +310,9 @@ GStreamer plugins must first be installed).
### Building on non-Debian Linux and \*BSD
**For those with RPM-based distributions, a RPM spec file uxplay.spec is
also available for building a rpm package with rpmbuild** (tested on
Fedora 38, Rocky Linux 9.2 (RHEL clone), OpenSUSE 15.5, and Mageia 9;
see "Packaging Status" section)
also available for building a rpm package with rpmbuild**. See
["Packaging Status"](#packaging-status-linux-and-bsd-distributions)
section above.
- **Red Hat, or clones like CentOS (now continued as Rocky Linux or
Alma Linux):** (sudo dnf install, or sudo yum install) openssl-devel
@@ -319,12 +321,12 @@ see "Packaging Status" section)
*(some of these may be in the "CodeReady" add-on repository, called
"PowerTools" by clones)*
- **Mageia, pclinuxos, OpenMandriva:** Same as Red Hat, except for
- **Mageia, PCLinuxOS, OpenMandriva:** Same as Red Hat, except for
name changes: (Mageia) "gstreamer1.0-devel",
"gstreamer-plugins-base1.0-devel"; (OpenMandriva)
"libopenssl-devel", "gstreamer-devel",
"libgst-plugins-base1.0-devel". pclinuxos: same as Mageia, but uses
synaptic (or apt) as its package manager
"libgst-plugins-base1.0-devel". PCLinuxOS: same as Mageia, but uses
synaptic (or apt) as its package manager.
- **openSUSE:** (sudo zypper install) libopenssl-3-devel (formerly
libopenssl-devel) libplist-2_0-devel (formerly libplist-devel)
@@ -371,36 +373,34 @@ provided in the official distribution: get it from community
repositories for those distributions.
- **Red Hat, or clones like CentOS (now continued as Rocky Linux or
Alma Linux):** (sudo dnf install, or sudo yum install)
gstreamer1-libav gstreamer1-plugins-bad-free (+ gstreamer1-vaapi for
Intel/AMD graphics). In recent Fedora, gstreamer1-libav is renamed
gstreamer1-plugin-libav. **To get avdec_aac, install packages from
Alma Linux):** Install gstreamer1-libav gstreamer1-plugins-bad-free
(+ gstreamer1-vaapi for Intel/AMD graphics). In recent Fedora,
gstreamer1-libav is renamed gstreamer1-plugin-libav. **To get
avdec_aac, install packages from
[rpmfusion.org](https://rpmfusion.org)**: (get ffmpeg-libs from
rpmfusion; on RHEL or clones, but not recent Fedora, also get
gstreamer1-libav from there).
- **Mageia, pclinuxos, OpenMandriva:** (sudo dnf install, or sudo yum
install) gstreamer1.0-libav gstreamer1.0-plugins-bad (+
gstreamer1.0-vaapi for Intel/AMD graphics). **On Mageia, to get
avdec_aac, install ffmpeg from the "tainted" repository**, (which
also provides a more complete gstreamer1.0-plugins-bad). pclinuxos:
same as Mageia, but uses synaptic (or apt) as its package manager.
- **Mageia, PCLinuxOS, OpenMandriva:** Install gstreamer1.0-libav
gstreamer1.0-plugins-bad (+ gstreamer1.0-vaapi for Intel/AMD
graphics). **On Mageia, to get avdec_aac, install ffmpeg from the
"tainted" repository**, (which also provides a more complete
gstreamer1.0-plugins-bad).
- **openSUSE:** (sudo zypper install) gstreamer-plugins-libav
gstreamer-plugins-bad (+ gstreamer-plugins-vaapi for Intel/AMD
graphics). **To get avdec_aac, install libav\* packages for openSUSE
from [Packman](https://ftp.gwdg.de/pub/linux/misc/packman/suse/)
- **openSUSE:** Install gstreamer-plugins-libav gstreamer-plugins-bad
(+ gstreamer-plugins-vaapi for Intel/AMD graphics). **To get
avdec_aac, install libav\* packages for openSUSE from
[Packman](https://ftp.gwdg.de/pub/linux/misc/packman/suse/)
"Essentials"**; recommendation: after adding the Packman repository,
use the option in YaST Software management to switch all system
packages for multimedia to Packman).
- **Arch Linux** (sudo pacman -Syu) gst-plugins-good gst-plugins-bad
gst-libav (+ gstreamer-vaapi for Intel/AMD graphics).
- **Arch Linux** Install gst-plugins-good gst-plugins-bad gst-libav (+
gstreamer-vaapi for Intel/AMD graphics).
- **FreeBSD:** (sudo pkg install) gstreamer1-libav,
gstreamer1-plugins, gstreamer1-plugins-\* (\* = core, good, bad, x,
gtk, gl, vulkan, pulse, v4l2, ...), (+ gstreamer1-vaapi for
Intel/AMD graphics).
- **FreeBSD:** Install gstreamer1-libav, gstreamer1-plugins,
gstreamer1-plugins-\* (\* = core, good, bad, x, gtk, gl, vulkan,
pulse, v4l2, ...), (+ gstreamer1-vaapi for Intel/AMD graphics).
### Starting and running UxPlay
@@ -721,15 +721,14 @@ device is rotated).
- tested on Windows 10 and 11, 64-bit.
1. Download and install **Bonjour SDK for Windows v3.0** from the
official Apple site
[https://developer.apple.com/download](https://developer.apple.com/download/all/?q=Bonjour%20SDK%20for%20Windows).
(Apple makes you register as a developer to access it; if you do not
want to go through the registration process, you can download the
SDK without any registration at
[softpedia.com](https://www.softpedia.com/get/Programming/SDK-DDK/Bonjour-SDK.shtml).)
This should install the Bonjour SDK as
`C:\Program Files\Bonjour SDK`
1. Download and install **Bonjour SDK for Windows v3.0**. You can
download the SDK without any registration at
[softpedia.com](https://www.softpedia.com/get/Programming/SDK-DDK/Bonjour-SDK.shtml),
or get it from the official Apple site
[https://developer.apple.com/download](https://developer.apple.com/download/all/?q=Bonjour%20SDK%20for%20Windows)
(Apple makes you register as a developer to access it from their
site). This should install the Bonjour SDK as
`C:\Program Files\Bonjour SDK`.
2. (This is for 64-bit Windows; a build for 32-bit Windows should be
possible, but is not tested.) The unix-like MSYS2 build environment
@@ -840,6 +839,12 @@ in the Windows Terminal, with `C:\msys64\mingw64\bin\uxplay`.
Options:
- These can also be written (one option per line, without the initial
"`-`" character) in the UxPlay startup file (either given by
environment variable `$UXPLAYRC`, or `~/.uxplayrc` or
`~/.config/uxplayrc`). Command line options supersede options in the
startup file.
**-n server_name** (Default: UxPlay); server_name@\_hostname\_ will be
the name that appears offering AirPlay services to your iPad, iPhone
etc, where *hostname* is the name of the server running uxplay. This
@@ -986,9 +991,9 @@ displays streamed video.
**-al *x*** specifies an audio latency *x* in (decimal) seconds in
Audio-only (ALAC), that is reported to the client. Values in the range
\[0.0, 10.0\] seconds are allowed, and will be converted to a whole
number of microseconds. Default is 0.25 sec (250000 usec). (This
replaces the `-ao` option introduced in v1.62, as a workaround for a
problem that is now fixed).
number of microseconds. Default is 0.25 sec (250000 usec). *(However,
the client appears to ignore this reported latency, so this option seems
non-functional.)*
**-ca *filename*** provides a file (where *filename* can include a full
path) used for output of "cover art" (from Apple Music, *etc.*,) in
@@ -1391,11 +1396,12 @@ what UxPlay claims to be.
# Changelog
1.65.3 2023-07-23 Add RPM spec file; add graceful exit if required
gstreamer libav feature "avdec_aac" is missing: (this occurs in
RPM-based distributions that ship an incomplete FFmpeg for Patent or
License reasons, and rely on users installing an externally-supplied
complete FFmpeg).
1.65.3 2023-07-23 Add RPM spec file; add warning if required gstreamer
libav feature "avdec_aac" is missing: (this occurs in RPM-based
distributions that ship an incomplete FFmpeg for Patent or License
reasons, and rely on users installing an externally-supplied complete
FFmpeg). Mirror-mode airplay will now work without audio if avdec_aac is
missing.
1.65 2023-06-03 Eliminate pair_setup part of connection protocol to
allow faster connections with clients (thanks to @shuax #176 for this

View File

@@ -324,12 +324,12 @@ gboolean gstreamer_pipeline_bus_callback(GstBus *bus, GstMessage *message, gpoin
if (strstr(err->message,"Internal data stream error")) {
logger_log(logger, LOGGER_INFO,
"*** This is a generic GStreamer error that usually means that GStreamer\n"
"*** was unable to construct a working video pipeline.\n"
"*** was unable to construct a working video pipeline.\n\n"
"*** If you are letting the default autovideosink select the videosink,\n"
"*** GStreamer may be trying to use non-functional hardware h264 video decoding.\n"
"*** Try using option -avdec to force software decoding or use -vs <videosink>\n"
"*** to select a videosink of your choice (see \"man uxplay\").\n"
"*** Raspberry Pi OS with GStreamer-1.18.4 needs \"-bt709\" uxplay option");
"*** to select a videosink of your choice (see \"man uxplay\").\n\n"
"*** Raspberry Pi OS with (unpatched) GStreamer-1.18.4 needs \"-bt709\" uxplay option");
}
g_error_free (err);
g_free (debug);

View File

@@ -50,14 +50,14 @@ Requires: gstreamer-plugins-bad
Requires: gstreamer-plugins-libav
%endif
#Mageia, OpenMandriva, pclinuxos (Mandrake descendents)
#Mageia, OpenMandriva, PCLinuxOS (Mandriva/Mandrake descendents)
%if "%{_host_vendor}" == "mageia" || %{defined omvver} || "%{_host_vendor}" == "mandriva"
%if "%{_host_vendor}" == "mandriva"
# "mandriva" is pclinuxos.
# as of 07/2023, pclinuxos does not seem to supply openssl >= 3.0
# host_vendor = "mandriva" identifies PCLinuxOS.
# As of 07/2023, PCLinuxOS does not seem to supply openssl >= 3.0.
# Note that UxPlay does not have a "GPL exception" allowing it to be
# distributed in binary form when linked to openssl < 3.0, unless
# openssl < 3.0 can be regarded as a "system library".
# distributed in binary form when linked to openssl < 3.0, unless that
# OpenSSL < 3.0 qualifies as a "system library".
BuildRequires: pkgconfig
BuildRequires: %{mklibname openssl-devel} >= 1.1.1
Requires: %{mklibname openssl1.1.0}
@@ -71,14 +71,15 @@ Requires: %{mklibname openssl3}
%endif
%endif
BuildRequires: %{mklibname plist-devel} >= 2.0
Requires: %{mklibname plist2.0_3}
BuildRequires: %{mklibname avahi-compat-libdns_sd-devel}
%if %{defined omvver}
BuildRequires: %{mklibname gstreamer-devel}
BuildRequires: %{mklibname gst-plugins-base1.0-devel}
Requires: %{mklibname plist} >= 2.0
%else
BuildRequires: %{mklibname gstreamer1.0-devel}
BuildRequires: %{mklibname gstreamer-plugins-base1.0-devel}
Requires: %{mklibname plist2.0_3}
%endif
Requires: gstreamer1.0-plugins-base
Requires: gstreamer1.0-plugins-good
@@ -133,7 +134,7 @@ cd build
%{_docdir}/%{name}/llhttp/LICENSE-MIT
%changelog
* Wed Jul 26 2023 UxPlay maintainer <https://github.com/FDH2/UxPlay>
* Thu Aug 24 2023 UxPlay maintainer <https://github.com/FDH2/UxPlay>
Initial uxplay.spec: tested on Fedora 38, Rocky Linux 9.2, OpenSUSE
Leap 15.5, Mageia 9, OpenMandriva ROME, pclinuxos
Leap 15.5, Mageia 9, OpenMandriva ROME, PCLinuxOS
-