baresip/baresip.spec
2020-10-10 21:39:42 +02:00

472 lines
14 KiB
RPMSpec

Summary: Modular SIP user-agent with audio and video support
Name: baresip
Version: 1.0.0
Release: 1%{?dist}
License: BSD
URL: http://www.creytiv.com/baresip.html
Source0: https://github.com/baresip/baresip/archive/v%{version}/%{name}-%{version}.tar.gz
Source1: com.creytiv.baresip.desktop
BuildRequires: make
BuildRequires: gcc
BuildRequires: libre-devel >= 1.0.0
BuildRequires: librem-devel
%if 0%{?fedora} || 0%{?rhel} >= 8
BuildRequires: openssl-devel
%else
BuildRequires: openssl11-devel
%endif
%if 0%{?fedora} || (0%{?rhel} && 0%{?rhel} > 7)
Recommends: %{name}-pulse%{?_isa} = %{version}-%{release}
%else
Requires: %{name}-pulse%{?_isa} = %{version}-%{release}
%endif
%description
A modular SIP user-agent with support for audio and video, and many IETF
standards such as SIP, RTP, STUN, TURN, and ICE for both, IPv4 and IPv6.
Additional modules provide support for audio codecs like G.711, G.722,
G.726, GSM, L16, MPA, and Opus, audio drivers like ALSA, GStreamer, JACK
Audio Connection Kit, Portaudio, and PulseAudio, video codecs like VP8 or
VP9, video sources like Video4Linux and X11 grabber, video outputs like
SDL2 or X11, NAT traversal via STUN, TURN, ICE, NATBD, and NAT-PMP, media
encryption via SRTP or DTLS-SRTP, management features like embedded web-
server with HTTP interface, command-line console and interface, and MQTT.
%package alsa
Summary: ALSA audio driver for baresip
BuildRequires: alsa-lib-devel
Requires: %{name}%{?_isa} = %{version}-%{release}
%description alsa
Baresip is a modular SIP user-agent with audio and video support.
This module provides the Advanced Linux Sound Architecture (ALSA) audio
driver.
%package cairo
Summary: Video source driver for baresip to draw demo graphics
BuildRequires: pkgconfig(cairo)
Requires: %{name}%{?_isa} = %{version}-%{release}
%description cairo
Baresip is a modular SIP user-agent with audio and video support.
This module provides a video source driver to draw graphics for testing
and demo purposes into a frame buffer using the Cairo library.
%package g722
Summary: G.722 audio codec module for baresip
BuildRequires: spandsp-devel
Requires: %{name}%{?_isa} = %{version}-%{release}
%description g722
Baresip is a modular SIP user-agent with audio and video support.
This module provides the G.722 audio codec, often used for HD voice.
%package g726
Summary: G.726 audio codec module for baresip
BuildRequires: spandsp-devel
Requires: %{name}%{?_isa} = %{version}-%{release}
%description g726
Baresip is a modular SIP user-agent with audio and video support.
This module provides the G.726 audio codec.
%package gsm
Summary: GSM audio codec module for baresip
BuildRequires: gsm-devel
Requires: %{name}%{?_isa} = %{version}-%{release}
%description gsm
Baresip is a modular SIP user-agent with audio and video support.
This module provides the GSM audio codec.
%package gst
Summary: GStreamer audio source driver for baresip
BuildRequires: pkgconfig(gstreamer-1.0)
Requires: %{name}%{?_isa} = %{version}-%{release}
%description gst
Baresip is a modular SIP user-agent with audio and video support.
This module uses the GStreamer 1.0 framework to play external media and
provides them as an internal audio source.
%package gst_video
Summary: Video codec support using GStreamer for baresip
BuildRequires: pkgconfig(gstreamer-1.0)
BuildRequires: pkgconfig(gstreamer-app-1.0)
Requires: %{name}%{?_isa} = %{version}-%{release}
%description gst_video
Baresip is a modular SIP user-agent with audio and video support.
This module implements video codecs using GStreamer 1.0 framework.
%package gtk
Summary: GTK+ menu-based user interface module for baresip
BuildRequires: pkgconfig(gtk+-2.0) >= 2.22
BuildRequires: pkgconfig(glib-2.0) >= 2.32
BuildRequires: desktop-file-utils
Requires: %{name}%{?_isa} = %{version}-%{release}
%if 0%{?fedora} || (0%{?rhel} && 0%{?rhel} > 7)
Requires: (gnome-shell-extension-topicons-plus if gnome-shell)
%endif
%description gtk
Baresip is a modular SIP user-agent with audio and video support.
This module provides a GTK+ menu-based user interface.
%package jack
Summary: JACK audio driver for baresip
BuildRequires: pkgconfig(jack)
Requires: %{name}%{?_isa} = %{version}-%{release}
%description jack
Baresip is a modular SIP user-agent with audio and video support.
This module provides the JACK Audio Connection Kit audio driver.
# RHEL 8 doesn't have twolame-devel, see RHBZ#1843275
%if 0%{?fedora} || (0%{?rhel} && 0%{?rhel} < 8)
%package mpa
Summary: MPA speech and audio codec module for baresip
BuildRequires: twolame-devel
BuildRequires: lame-devel
BuildRequires: mpg123-devel
%if 0%{?fedora} || (0%{?rhel} && 0%{?rhel} > 7)
BuildRequires: speexdsp-devel
%else
BuildRequires: speex-devel
%endif
Requires: %{name}%{?_isa} = %{version}-%{release}
%description mpa
Baresip is a modular SIP user-agent with audio and video support.
This module provides the MPA speech and audio codec.
%endif
%package mqtt
Summary: MQTT management module for baresip
BuildRequires: mosquitto-devel
Requires: %{name}%{?_isa} = %{version}-%{release}
%description mqtt
Baresip is a modular SIP user-agent with audio and video support.
This module provides the Message Queue Telemetry Transport (MQTT)
management module.
%package opus
Summary: Opus speech and audio codec module for baresip
BuildRequires: opus-devel
Requires: %{name}%{?_isa} = %{version}-%{release}
%description opus
Baresip is a modular SIP user-agent with audio and video support.
This module provides the Opus speech and audio codec module.
%package plc
Summary: Packet Loss Concealment module for baresip
BuildRequires: spandsp-devel
Requires: %{name}%{?_isa} = %{version}-%{release}
%description plc
Baresip is a modular SIP user-agent with audio and video support.
This module provides the Packet Loss Concealment (PLC) module.
%package portaudio
Summary: Portaudio audio driver for baresip
BuildRequires: portaudio-devel
Requires: %{name}%{?_isa} = %{version}-%{release}
%description portaudio
Baresip is a modular SIP user-agent with audio and video support.
This module provides the Portaudio audio driver.
%package pulse
Summary: PulseAudio audio driver for baresip
BuildRequires: pkgconfig(libpulse-simple)
Requires: %{name}%{?_isa} = %{version}-%{release}
%description pulse
Baresip is a modular SIP user-agent with audio and video support.
This module provides the PulseAudio audio driver.
%package rst
Summary: Radio streamer audio/video source driver for baresip
BuildRequires: pkgconfig(cairo)
BuildRequires: pkgconfig(libmpg123)
Requires: %{name}%{?_isa} = %{version}-%{release}
%description rst
Baresip is a modular SIP user-agent with audio and video support.
This module uses mpg123 to play streaming media (MP3) and provide them as
an internal audio/video source.
%package sdl
Summary: SDL2 video output driver for baresip
BuildRequires: SDL2-devel
Requires: %{name}%{?_isa} = %{version}-%{release}
%description sdl
Baresip is a modular SIP user-agent with audio and video support.
This module provides the Simple DirectMedia Layer 2.0 (SDL2) video output
driver.
%package sndfile
Summary: Audio dumper module using libsndfile for baresip
BuildRequires: libsndfile-devel
Requires: %{name}%{?_isa} = %{version}-%{release}
%description sndfile
Baresip is a modular SIP user-agent with audio and video support.
This module provides an audio dumper to write WAV audio sample files
using libsndfile.
%package speex_pp
Summary: Audio pre-processor module using libspeexdsp for baresip
%if 0%{?fedora} || (0%{?rhel} && 0%{?rhel} > 7)
BuildRequires: speexdsp-devel
%else
BuildRequires: speex-devel
%endif
Requires: %{name}%{?_isa} = %{version}-%{release}
%description speex_pp
Baresip is a modular SIP user-agent with audio and video support.
This module provides an audio pre-processor using libspeexdsp.
%package vp8
Summary: VP8 video codec module for baresip
BuildRequires: libvpx-devel
Requires: %{name}%{?_isa} = %{version}-%{release}
%description vp8
Baresip is a modular SIP user-agent with audio and video support.
This module provides the VP8 video codec, which is compatible with the
WebRTC standard.
%package vp9
Summary: VP9 video codec module for baresip
BuildRequires: pkgconfig(vpx) >= 1.3.0
Requires: %{name}%{?_isa} = %{version}-%{release}
%description vp9
Baresip is a modular SIP user-agent with audio and video support.
This module provides the VP9 video codec, which is compatible with the
WebRTC standard.
%package v4l2
Summary: Video4Linux video source and codec modules for baresip
BuildRequires: libv4l-devel
Requires: %{name}%{?_isa} = %{version}-%{release}
%description v4l2
Baresip is a modular SIP user-agent with audio and video support.
These modules provide the Video4Linux video source and codec, where
latter is for devices that support compressed formats such as H.264.
%package x11
Summary: X11 video output driver for baresip
BuildRequires: libX11-devel
BuildRequires: libXext-devel
Requires: %{name}%{?_isa} = %{version}-%{release}
%description x11
Baresip is a modular SIP user-agent with audio and video support.
This module provides the X11 video output driver.
%package x11grab
Summary: X11 grabber video source driver for baresip
BuildRequires: libX11-devel
BuildRequires: libXext-devel
Requires: %{name}%{?_isa} = %{version}-%{release}
%description x11grab
Baresip is a modular SIP user-agent with audio and video support.
This module provides the X11 grabber video source driver.
%prep
%setup -q
%build
%if 0%{?rhel} == 7
sed -e 's|\(openssl\)|openssl11/\1|g' -i mk/modules.mk
%endif
%make_build \
SHELL='sh -x' \
RELEASE=1 \
PREFIX=%{_prefix} \
MOD_PATH=%{_libdir}/%{name}/modules \
EXTRA_CFLAGS="$RPM_OPT_FLAGS -DDEFAULT_CAFILE='\"%{_sysconfdir}/pki/tls/certs/ca-bundle.crt\"' -DDEFAULT_AUDIO_DEVICE='\"pulse\"'" \
EXTRA_LFLAGS="$RPM_LD_FLAGS"
%install
%make_install LIBDIR=%{_libdir}
# Correct module permissions to add executable bit
chmod 755 $RPM_BUILD_ROOT%{_libdir}/%{name}/modules/*.so
# Install com.creytiv.baresip.desktop file
desktop-file-install --dir=$RPM_BUILD_ROOT%{_datadir}/applications/ %{SOURCE1}
%check
make test
%files
%license docs/COPYING
%doc docs/ChangeLog docs/THANKS docs/examples
%{_bindir}/%{name}
%dir %{_libdir}/%{name}/
%dir %{_libdir}/%{name}/modules/
%{_libdir}/%{name}/modules/account.so
%{_libdir}/%{name}/modules/aubridge.so
%{_libdir}/%{name}/modules/aufile.so
%{_libdir}/%{name}/modules/auloop.so
%{_libdir}/%{name}/modules/ausine.so
%{_libdir}/%{name}/modules/b2bua.so
%{_libdir}/%{name}/modules/cons.so
%{_libdir}/%{name}/modules/contact.so
%{_libdir}/%{name}/modules/ctrl_tcp.so
%{_libdir}/%{name}/modules/debug_cmd.so
%{_libdir}/%{name}/modules/dtls_srtp.so
%{_libdir}/%{name}/modules/ebuacip.so
%{_libdir}/%{name}/modules/echo.so
%{_libdir}/%{name}/modules/evdev.so
%{_libdir}/%{name}/modules/fakevideo.so
%{_libdir}/%{name}/modules/g711.so
%{_libdir}/%{name}/modules/httpd.so
%{_libdir}/%{name}/modules/ice.so
%{_libdir}/%{name}/modules/l16.so
%{_libdir}/%{name}/modules/menu.so
%{_libdir}/%{name}/modules/mwi.so
%{_libdir}/%{name}/modules/natpmp.so
%{_libdir}/%{name}/modules/oss.so
%{_libdir}/%{name}/modules/presence.so
%{_libdir}/%{name}/modules/selfview.so
%{_libdir}/%{name}/modules/srtp.so
%{_libdir}/%{name}/modules/stdio.so
%{_libdir}/%{name}/modules/stun.so
%{_libdir}/%{name}/modules/syslog.so
%{_libdir}/%{name}/modules/turn.so
%{_libdir}/%{name}/modules/uuid.so
%{_libdir}/%{name}/modules/vidbridge.so
%{_libdir}/%{name}/modules/vidinfo.so
%{_libdir}/%{name}/modules/vidloop.so
%{_libdir}/%{name}/modules/vumeter.so
%{_datadir}/%{name}/
%files alsa
%{_libdir}/%{name}/modules/alsa.so
%files cairo
%{_libdir}/%{name}/modules/cairo.so
%files g722
%{_libdir}/%{name}/modules/g722.so
%files g726
%{_libdir}/%{name}/modules/g726.so
%files gsm
%{_libdir}/%{name}/modules/gsm.so
%files gst
%{_libdir}/%{name}/modules/gst.so
%files gst_video
%{_libdir}/%{name}/modules/gst_video.so
%files gtk
%{_libdir}/%{name}/modules/gtk.so
%{_datadir}/applications/com.creytiv.baresip.desktop
%files jack
%{_libdir}/%{name}/modules/jack.so
%if 0%{?fedora} || (0%{?rhel} && 0%{?rhel} < 8)
%files mpa
%{_libdir}/%{name}/modules/mpa.so
%endif
%files mqtt
%{_libdir}/%{name}/modules/mqtt.so
%files opus
%{_libdir}/%{name}/modules/opus.so
%{_libdir}/%{name}/modules/opus_multistream.so
%files plc
%{_libdir}/%{name}/modules/plc.so
%files portaudio
%{_libdir}/%{name}/modules/portaudio.so
%files pulse
%{_libdir}/%{name}/modules/pulse.so
%files rst
%{_libdir}/%{name}/modules/rst.so
%files sdl
%{_libdir}/%{name}/modules/sdl.so
%files sndfile
%{_libdir}/%{name}/modules/sndfile.so
%files speex_pp
%{_libdir}/%{name}/modules/speex_pp.so
%files v4l2
%{_libdir}/%{name}/modules/v4l2.so
%{_libdir}/%{name}/modules/v4l2_codec.so
%files vp8
%{_libdir}/%{name}/modules/vp8.so
%files vp9
%{_libdir}/%{name}/modules/vp9.so
%files x11
%{_libdir}/%{name}/modules/x11.so
%files x11grab
%{_libdir}/%{name}/modules/x11grab.so
%changelog
* Sat Oct 10 2020 Robert Scheck <robert@fedoraproject.org> 1.0.0-1
- Upgrade to 1.0.0 (#1887059)
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.6.6-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jul 01 2020 Robert Scheck <robert@fedoraproject.org> 0.6.6-2
- Include latest features and fixes from upstream
- Changes to match the Fedora Packaging Guidelines (#1843279 #c1)
* Thu May 28 2020 Robert Scheck <robert@fedoraproject.org> 0.6.6-1
- Upgrade to 0.6.6 (#1843279)
- Initial spec file for Fedora and Red Hat Enterprise Linux