File mediatomb.spec of Package mediatomb
# Copyright (c) 2007-2010 oc2pus
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
# Please submit bugfixes or comments to toni@links2linux.de
# norootforbuild
%define _with_js 1
Name: mediatomb
Summary: UPnP AV MediaServer
Version: 0.12.1
Release: 0.pm.1.4
License: GPL
URL: http://mediatomb.cc
Group: Productivity/Multimedia/Other
Source0: %{name}-%{version}.tar.gz
Source1: rcmediatomb
Source2: config.xml.tmp
Source90: %{name}-rpmlintrc
BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot
BuildRequires: udev
BuildRequires: file-devel
BuildRequires: gcc-c++
BuildRequires: curl-devel
BuildRequires: id3lib-devel
BuildRequires: libexif-devel
#BuildRequires: libextractor-devel
BuildRequires: libexpat-devel
BuildRequires: libffmpeg-devel
BuildRequires: libffmpegthumbnailer-devel
BuildRequires: libjack-devel
BuildRequires: libmp4v2-devel
BuildRequires: mDNSResponder-lib
BuildRequires: libmysqlclient-devel
BuildRequires: mozilla-nspr
BuildRequires: pwdutils
BuildRequires: sqlite-devel
BuildRequires: taglib-devel
BuildRequires: liblastfm-devel
%if "%{_with_js}" == "1"
BuildRequires: libjs-devel
BuildRequires: mozilla-xulrunner192-devel
%endif
Requires(pre): %insserv_prereq
Requires(pre): coreutils
Requires(pre): grep
Requires(pre): pwdutils
Requires: %{name}-dbbackend
Requires: logrotate
%description
MediaTomb - UPnP AV Mediaserver for Linux.
MediaTomb is an open source (GPL) UPnP MediaServer with a nice
web user interface, it allows you to stream your digital media
through your home network and listen to/watch it on a variety
of UPnP compatible devices.
MediaTomb implements the UPnP MediaServer V 1.0 specification
that can be found on http://www.upnp.org/. The current
implementation focuses on parts that are required by the
specification, however we look into extending the functionality
to cover the optional parts of the spec as well.
MediaTomb should work with any UPnP compliant MediaRenderer,
please tell us if you experience difficulties with particular
models, also take a look at the Supported Devices list for more
information.
This package contains the shared data for mediatomb. You need
addionally one db backend: mediatom-sqlite or mediatomb-mysql
%package mysql
Summary: UPnP AV MediaServer mysql
Group: Productivity/Multimedia/Other
Requires(pre): coreutils
Requires: mysql
Requires: %{name} = %{version}
Conflicts: %{name}-sqlite
Provides: %{name}-dbbackend
%description mysql
MediaTomb - UPnP AV Mediaserver for Linux.
MediaTomb is an open source (GPL) UPnP MediaServer with a nice
web user interface, it allows you to stream your digital media
through your home network and listen to/watch it on a variety
of UPnP compatible devices.
MediaTomb implements the UPnP MediaServer V 1.0 specification
that can be found on http://www.upnp.org/. The current
implementation focuses on parts that are required by the
specification, however we look into extending the functionality
to cover the optional parts of the spec as well.
MediaTomb should work with any UPnP compliant MediaRenderer,
please tell us if you experience difficulties with particular
models, also take a look at the Supported Devices list for more
information.
This package contains a mysql AND sqlite enabled binary.
%package sqlite
Summary: UPnP AV MediaServer sqlite
Group: Productivity/Multimedia/Other
Requires(pre): coreutils
Requires: sqlite
Requires: %{name} = %{version}
Conflicts: %{name}-mysql
Provides: %{name}-dbbackend
%description sqlite
MediaTomb - UPnP AV Mediaserver for Linux.
MediaTomb is an open source (GPL) UPnP MediaServer with a nice
web user interface, it allows you to stream your digital media
through your home network and listen to/watch it on a variety
of UPnP compatible devices.
MediaTomb implements the UPnP MediaServer V 1.0 specification
that can be found on http://www.upnp.org/. The current
implementation focuses on parts that are required by the
specification, however we look into extending the functionality
to cover the optional parts of the spec as well.
MediaTomb should work with any UPnP compliant MediaRenderer,
please tell us if you experience difficulties with particular
models, also take a look at the Supported Devices list for more
information.
This package contains a sqlite enabled binary.
%prep
%setup -q %{name}-%{version}
%__cp %{SOURCE2} .
%build
# otherwise rpmlint is yelling:
#... rpm-buildroot-usage ...
%install
%if "%{_with_js}" == "1"
jsincludedir=`grep "includedir=" %{_libdir}/pkgconfig/libxul.pc | awk -F = '{print $2}'`
jslibdir=`grep "sdkdir=" %{_libdir}/pkgconfig/libxul.pc | awk -F = '{print $2}'`
%endif
#-enable-libjs --with-js-h=%{_includedir}/xulrunner-sdk-1.9.1/js/
###################
# build the sqlite/mysql enabled mediatomb
%configure \
--prefix=%{_prefix} \
--enable-sqlite3 \
--enable-mysql \
--enable-curl \
--enable-ffmpeg \
--enable-libmagic \
--enable-libexif \
--enable-inotify \
%if "%{_with_js}" == "1"
--enable-libjs \
%endif
--enable-taglib
# --with-js-h=${jsincludedir}/unstable \
# --with-js-libs=${jslibdir}/sdk/lib/ \
%__make %{?jobs:-j%{jobs}}
%makeinstall \
INSTALL="install -p"
%__mv %{buildroot}%{_bindir}/mediatomb \
%{buildroot}%{_bindir}/mediatomb-mysql
###################
# build the sqlite enabled mediatomb
%__make clean
%configure \
--prefix=%{_prefix} \
--enable-sqlite3 \
--disable-mysql \
--enable-curl \
--enable-ffmpeg \
--enable-libmagic \
--enable-libexif \
--enable-inotify \
%if "%{_with_js}" == "1"
--enable-libjs \
%endif
--enable-taglib
# --with-js-h=${jsincludedir}/unstable \
# --with-js-libs=${jslibdir}/sdk/lib/ \
%__make %{?jobs:-j%{jobs}}
%makeinstall \
INSTALL="install -p"
%__mv %{buildroot}%{_bindir}/mediatomb \
%{buildroot}%{_bindir}/mediatomb-sqlite
###################
# init script
%__install -dm 755 %{buildroot}%{_sbindir}
%__install -dm 755 %{buildroot}%{_sysconfdir}/init.d
%__install -m 755 %{SOURCE1} \
%{buildroot}%{_sysconfdir}/init.d/mediatomb
%__install -m 755 config/mediatomb-conf-fedora \
%{buildroot}%{_sysconfdir}/mediatomb.conf
%__ln_s ../../%{_sysconfdir}/init.d/%{name} \
%{buildroot}%{_sbindir}/rcmediatomb
###################
# sample config
%__install -dm 755 %{buildroot}%{_sysconfdir}/%{name}
%__install -m 644 %{SOURCE2} \
%{buildroot}%{_sysconfdir}/%{name}/config.xml
###################
# create a new home
%__install -dm 755 %{buildroot}%{_localstatedir}/lib/%{name}
%__install -m 644 %{SOURCE1} \
%{buildroot}%{_localstatedir}/lib/%{name}/config.xml
touch %{buildroot}%{_localstatedir}/lib/%{name}/{config.xml,mediatomb.db,mediatomb.html}
###################
# logrotate
%__install -dm 755 %{buildroot}%{_sysconfdir}/logrotate.d
%__cat > %{buildroot}%{_sysconfdir}/logrotate.d/%{name} << 'EOF'
/var/log/mediatomb {
create 644 root root
monthly
compress
missingok
}
EOF
%clean
[ -d "%{buildroot}" -a "%{buildroot}" != "" ] && %__rm -rf "%{buildroot}"
%pre
# create group if necessary
/usr/bin/getent group mediatomb >/dev/null || \
/usr/sbin/groupadd -r mediatomb
# create user
/usr/bin/getent passwd mediatomb >/dev/null || \
/usr/sbin/useradd \
-s /sbin/nologin \
-r \
-d %{_localstatedir}/lib/%{name} \
-G mediatomb \
mediatomb > /dev/null 2> /dev/null || :
%preun
%stop_on_removal mediatomb
# if removal and not upgrade clean up
if [ $1 -eq 0 ]; then
/usr/sbin/userdel -r -f mediatomb > /dev/null 2> /dev/null || :
/usr/sbin/groupdel mediatomb > /dev/null 2> /dev/null || :
fi
%postun
%restart_on_update mediatomb
%insserv_cleanup
%pre sqlite
# create group if necessary
/usr/bin/getent group mediatomb >/dev/null || \
/usr/sbin/groupadd -r mediatomb
# create user
/usr/bin/getent passwd mediatomb >/dev/null || \
/usr/sbin/useradd \
-s /sbin/nologin \
-r \
-d %{_localstatedir}/lib/%{name} \
-G mediatomb \
mediatomb > /dev/null 2> /dev/null || :
%post sqlite
if [ -e %{_bindir}/mediatomb ]; then
%__rm %{_bindir}/%{name}
fi
ln -s %{_bindir}/mediatomb-sqlite %{_bindir}/%{name}
%postun sqlite
%__rm -f %{_bindir}/%{name}
%post mysql
if [ -e %{_bindir}/mediatomb ]; then
%__rm %{_bindir}/%{name}
fi
ln -s %{_bindir}/mediatomb-mysql %{_bindir}/%{name}
%postun mysql
%__rm -f %{_bindir}/%{name}
%files
%defattr(-,root,root)
%doc AUTHORS ChangeLog COPYING README*
%doc doc/scripting*
%attr(0660,mediatomb,mediatomb) %config(noreplace) %{_sysconfdir}/%{name}.conf
%attr(0750,mediatomb,mediatomb) %dir %{_sysconfdir}/%{name}
%attr(0660,mediatomb,mediatomb) %config(noreplace) %{_sysconfdir}/%{name}/config.xml
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
%{_sysconfdir}/init.d/%{name}
%{_sbindir}/rcmediatomb
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/*
%{_mandir}/man1/*
%files mysql
%defattr(-,root,root)
%{_bindir}/mediatomb-mysql
%files sqlite
%defattr(-,root,root)
%{_bindir}/mediatomb-sqlite
%attr(750,mediatomb,mediatomb) %dir %{_localstatedir}/lib/%{name}
%attr(0660,mediatomb,mediatomb) %{_localstatedir}/lib/%{name}/*
%changelog
* Wed May 5 2010 toni@links2linux.de
- update to 0.12.1
* Mon Apr 5 2010 toni@links2linux.de
- update to 0.12.0
- changes see http://mediatomb.cc/changelog.txt
* Sat Mar 6 2010 toni@links2linux.de
- modified rcmediatomb (nobody ==> $MT_USER) (thx to Dieter Landolt)
* Sun Jan 3 2010 toni@links2linux.de
- fixed libjs(-devel) support
* Mon Nov 16 2009 toni@links2linux.de
- Added upstream patch which fixes compile time errors and a couple of segfaults
* Thu Sep 24 2009 Manfred.Tremmel@iiv.de
- rebuild against new ffmpeg version
- removed libjs support because libjs didn't compile on OBS
* Mon May 5 2008 toni@links2linux.de
- added check for symlink to binary prior to create link
- added user and group mediatomb
- added logrotate entry
- thx for testing this package-layout goes to George Pantazis
* Thu May 1 2008 toni@links2linux.de
- added a sample config for mediatomb
provided by George Pantazis, thx!
* Sun Mar 2 2008 toni@links2linux.de
- update to 0.11.0
- switched to taglib instead of id3lib
- switched to ffmpeg instead of libextractor
- enabled curl
* Sun Dec 9 2007 toni@links2linux.de
- rebuild with new libjs
* Sun Nov 11 2007 toni@links2linux.de
- initial build 0.10.0