Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37513332
en ru br
ALT Linux repos
S:2.2.0-alt12
D:1.6.0-alt1
3.0: 1.3.15-alt1

Group :: Video
RPM: vdr

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

%def_with       plugins

%undefine videodir  
%undefine audiodir  
%define plugindir %_libexecdir/vdr
%define configdir %_sysconfdir/vdr
%define datadir   %_datadir/vdr
%define cachedir  %_var/cache/vdr
%define rundir    %_var/run/vdr
%define vardir    %_var/lib/vdr
%define vdr_user  vdr
%define vdr_group video
# From APIVERSION in config.h
%define apiver    1.6.0

Name: vdr
Version: 1.6.0
Release: alt1


Group: Video
License: GPLv2+
Summary: Digital satellite receiver box with advanced features
Summary(ru_RU.UTF-8): Цифровой спутниковый приёмник с широкими возможностями

Url: http://www.cadsoft.de/vdr/
Packager: Hihin Ruslan <ruslandh at altlinux.ru>

Source: ftp://ftp.cadsoft.de/vdr/%name-%version.tar.bz2
#Source1: %%name.init
Source2: %name.sysconfig
# TODO
Source4: %name-udev.rules
Source5: %name-reccmds.conf
Source6: %name-commands.conf
Source7: %name-runvdr.sh
# TODO
Source8: %name.consoleperms
Source9: %name-config.sh
Source10: %name-README.package
Source11: %name-skincurses.conf
Source12: %name-sky.conf
Source13: %name-timercmds.conf
Source14: %name-shutdown.sh
Source15: %name-moveto.sh
Source16: %name-CHANGES.package.old
Source17: %name-halt.local.sh
Source18: %name.fc9.spec

# TODO

Patch: %name-channel+epg.patch
# TODO
Patch1: http://zap.tartarus.org/~ds/debian/dists/stable/main/source/vdr_1.4.5-2.ds.diff.gz
Patch2: http://www.saunalahti.fi/~rahrenbe/vdr/patches/vdr-1.6.0-liemikuutio-1.21.diff.gz
Patch3: %name-1.6.0-scriptnames.patch
Patch4: %name-1.6.0-paths.patch
Patch5: %name-1.5.18-use-pkgconfig.patch
# http://article.gmane.org/gmane.linux.vdr/36097
Patch6: %name-1.5.18-syncearly.patch
Patch7: http://www.saunalahti.fi/~rahrenbe/vdr/patches/vdr-1.6.0-ttxtsubs-0.0.5.diff.gz
Patch8: %name-1.6.0-man-section.patch
# Patch9: http://www.udo-richter.de/vdr/files/vdr-1.5.13-hlcutter-0.2.0.diff
# edited so that it applies on top of the liemikuutio patch (menu.c)
Patch9: %name-1.5.18-hlcutter-0.2.0.diff
# TODO
Patch10: %name-1.4.7-hlcutter-0.2.0-finnish.patch
# mainmenuhooks, timercmd and progressbar-support from
# http://winni.vdr-developer.org/epgsearch/downloads/vdr-epgsearch-0.9.24.tgz
Patch11: MainMenuHooks-v1_0.patch
Patch12: timercmd-0.1_1.6.0.diff
Patch13: %name-1.5.17-progressbar-support-0.0.1.diff
Patch14: %name-1.6.0-includes+pkgconfig.patch
Patch15: %name-1.6.0-fedora-pkgconfig.patch
Patch16: %name-1.6.0-dxr3-subtitles.patch
Patch17: http://toms-cafe.de/vdr/download/vdr-timer-info-0.5-1.5.15.diff
Patch18: ftp://ftp.cadsoft.de/vdr/Developer/vdr-1.6.0-1.diff
Patch19: ftp://ftp.cadsoft.de/vdr/Developer/vdr-1.6.0-2.diff

Patch21: keymacros-prefermenu.diff
Patch22: vdr-1.6.0-correct.patch

# Automatically added by buildreq on Sun Dec 21 2008

BuildRequires: fontconfig-devel gcc-c++ libcap-devel libfreetype-devel libjpeg-devel libncurses-devel

%description
VDR implements a complete digital set-top-box and video recorder.
It can work with signals received from satellites (DVB-S) as well as
cable (DVB-C) and terrestrial (DVB-T) signals.  At least one DVB card
is required to run VDR.

%description -l ru_RU.UTF-8
VDR позволяет превратить компьютер с Linux и DVB картой в приёмник цифрового ТВ и Радио с
широкими возможностями. Помимо базовых функций, таких как просмотр ТВ, запись и сдвиг
принимаемой программы во времени, VDR позволяет проигрывать музыку в формате MP3/Ogg и любые
видеоформаты, поддерживаемые MPlayer, а также сохранять сделанные записи на CD или DVD.
Немногие бытовые приёмники на рынке способны сравниться с VDR по своим возможностям.


%package devel
Summary: Files required for building plugins for VDR
Summary(ru_RU.UTF-8): Файлы необходимые для сборки модулей расширения VDR
Group: Development/Other
Requires: %name

%description devel
A set of files required for building plugins for VDR

%description devel -l ru_RU.UTF-8
Пакет содержит набор файлов необходимых для сборки модулей расширения VDR.


%package plugins
Summary: Plugins for VDR
Group: Video
%if_with plugins
BuildRequires: libncurses-devel
%endif # plugins
Requires: vdr(abi) = %apiver

%description plugins
Plugins for VDR

The skincurses plugin implements a VDR skin that works in a shell
window, using only plain text output.

The sky plugin implements a new device for VDR, which is based on the
MPEG2 encoder card described at linuxtv.org/mpeg2/kfir.xml.  It allows
you to connect the analog a/v output of your Sky Digibox to VDR, so
that you can enjoy the full recording flexibility of VDR with your Sky
subscription.  You will need a Sky Digibox and a valid subscription in
order to use this plugin.


%description plugins -l ru_RU.UTF-8
Пакет содержит набор модули расширения VDR.


%prep
%setup -q
# TODO: does not apply
#patch0 -p1
%patch1 -p1
# TODO: does not apply
#patch -F 0 -i debian/patches/02_plugin_missing.dpatch
# sort_options would be nice, but it conflicts with channel+epg which is nicer
#patch -F 0 -i debian/patches/02_sort_options.dpatch
patch -F 0 -i debian/patches/06_recording_scan_speedup.dpatch
patch -F 2 -i debian/patches/07_blockify_define.dpatch
patch -F 0 -i debian/patches/10_livelock.dpatch
patch -F 0 -i debian/patches/11_atsc.dpatch
echo "DEFINES += -DHAVE_ATSC" >> Makefile
patch -F 0 -i debian/patches/19_debian_osdbase_maxitems.dpatch
# TODO: does not apply, check upstream for a 1.6.x version:
#       http://www.ktverkko.fi/~msmakela/software/vdr/
#patch -F 0 -i debian/patches/opt-20_suspend.dpatch
%patch2 -p1
%patch3 -p1
sed \
 -e 's|__CACHEDIR__|%cachedir|'   \
 -e 's|__CONFIGDIR__|%configdir|' \
 -e 's|__PLUGINDIR__|%plugindir|' \
 -e 's|__VARDIR__|%vardir|'       \
%PATCH4 | patch -p1 -F 1
#  -e 's|__VIDEODIR__|%%videodir|'   \
%patch5 -p1
%patch6 -p0
%patch7 -p1
%patch8 -p1
patch -p0 -F 1 -i %PATCH9
# TODO: does not apply
#patch10 -p0
patch -p1 -F 2 -i %PATCH11
# timer-info patch needs to come before timercmd patch to avoid conflicts
%patch17 -p1
patch -p1 -F 2 -i %PATCH12
%patch13 -p1
patch -p0 -F 2 -i %PATCH14
%patch15 -p0
%patch16 -p0
%patch18 -p1
%patch19 -p1
%patch21 -p1
%patch22 -p1

for f in CONTRIBUTORS HISTORY* UPDATE-1.4.0 README.timer-info ; do
 iconv -f iso-8859-1 -t utf-8 -o $f.utf8 $f && mv $f.utf8 $f
done

cp -p %SOURCE5 reccmds.conf
cp -p %SOURCE13 timercmds.conf
# Unfortunately these can't have comments in them, so ship 'em empty.
cat /dev/null > channels.conf
cat /dev/null > remote.conf
cat /dev/null > setup.conf
cat /dev/null > timers.conf

install -pm 644 %SOURCE10 README.package
install -pm 644 %SOURCE16 CHANGES.package.old

# Would like to do "files {channels,setup,timers}.conf" from config dir

# only, but rename() in cSafeFile barks "device or resource busy", cf.
# http://lists.suse.com/archive/suse-programming-e/2003-Mar/0051.html
cat << EOF > %name.rwtab
dirs    %cachedir
files   %configdir
files   %vardir
EOF

# Disable some graphs that end up too big to be useful.

for g in COLLABORATION INCLUDE INCLUDED_BY ; do
   sed -i -e 's/^\(\s*'$g'_GRAPH\s*=\s*\).*/\1NO/' Doxyfile
done

cat << EOF > Make.config
CC           = gcc
CXX          = g++

ifeq (\$(RPM_OPT_FLAGS),)
 CFLAGS     = $RPM_OPT_FLAGS
 CXXFLAGS   = $RPM_OPT_FLAGS -Wall -Woverloaded-virtual -Wno-parentheses
else
 CFLAGS     = \$(RPM_OPT_FLAGS)
 CXXFLAGS   = \$(RPM_OPT_FLAGS) -Wall -Woverloaded-virtual -Wno-parentheses
endif
ifdef PLUGIN
 CFLAGS    += -fPIC
 CXXFLAGS  += -fPIC
endif

MANDIR       = %_mandir
BINDIR       = %_sbindir

LOCDIR       = %_datadir/locale
PLUGINLIBDIR  = %plugindir
VIDEODIR     =
CONFDIR      = %configdir
INCLUDEDIR   = %_includedir
INCLUDES += -I/usr/include/freetype2

VDR_USER     = %vdr_user
EOF

%build
%make_build vdr vdr.pc include-dir \
   BINDIR=%_sbindir INCLUDEDIR=%_includedir CONFDIR=%configdir \
   VIDEODIR= PLUGINLIBDIR=%plugindir LOCDIR=%_datadir/locale \
   AUDIODIR= DATADIR=%datadir CACHEDIR=%cachedir \
   RUNDIR=%rundir VARDIR=%vardir VDR_GROUP=%vdr_group

%make_build i18n LOCALEDIR=./locale

%if_with plugins
#make_build -C PLUGINS/src/skincurses LIBDIR=. all
#make_build -C PLUGINS/src/sky        LIBDIR=. all
make plugins
%endif # plugins

%install
cp %SOURCE18 ./

install -Dpm 755 vdr %buildroot%_sbindir/vdr
install -dm 755 %buildroot%_bindir
install -pm 755 svdrpsend.pl %buildroot%_bindir/svdrpsend
install -pm 755 epg2html.pl %buildroot%_bindir/epg2html

#export PKG_CONFIG_PATH=.

#make_install install-i18n install-includes install-pc install-doc \
#    PCDIR=%_pkgconfigdir DESTDIR=%buildroot
%makeinstall

install -dm 755 %buildroot%configdir/plugins
install -pm 644 *.conf %buildroot%configdir

install -dm 755 %buildroot%_sysconfdir/sysconfig/vdr-plugins.d

install -dm 755 %buildroot%vardir/themes
touch %buildroot%vardir/themes/{classic,sttng}-default.theme

#install -Dpm 755 %%SOURCE1 %%buildroot%%_initdir/vdr

#sed -i \
#  -e 's|%%_sbindir/|%%_sbindir/|'  \
#  -e 's|%%_sysconfdir/vdr/|%%configdir/|g' \
#  -e 's|VDR_USER|%%vdr_user|'     \
#  -e 's|VDR_GROUP|%%vdr_group|'   \
#%%buildroot%%_initdir/vdr

install -pm 755 %SOURCE7 %buildroot%_sbindir/runvdr

sed -i \
 -e 's|%_sbindir/|%_sbindir/|'                    \
 -e 's|%_sysconfdir/sysconfig/|%_sysconfdir/sysconfig/|g' \
 -e 's|%_libexecdir/vdr\b|%plugindir|'                \
 -e 's|VDR_PLUGIN_VERSION|%apiver|'               \
%buildroot%_sbindir/runvdr

install -dm 755 %buildroot%_sysconfdir/sysconfig
sed -e 's|%_libexecdir/vdr/|%plugindir/|' < %SOURCE2 \
 > %buildroot%_sysconfdir/sysconfig/vdr
chmod 644 %buildroot%_sysconfdir/sysconfig/vdr

#install -dm 755 %%buildroot%%videodir

#install -dm 755 %%buildroot%%audiodir

#touch %%buildroot%%videodir/.update


install -dm 755 %buildroot%plugindir/bin
sed -e 's|/var/lib/vdr/|%vardir/|' < %SOURCE14 \
 > %buildroot%plugindir/bin/%name-shutdown.sh

chmod 755 %buildroot%plugindir/bin/%name-shutdown.sh

sed -e 's|/var/lib/vdr/|%vardir/|' \
   -e 's|%_libexecdir/vdr/bin/|%plugindir/bin/|' < %SOURCE17 \
 > %buildroot%plugindir/bin/%name-halt.local.sh

chmod 755 %buildroot%plugindir/bin/%name-halt.local.sh

#sed -e 's|//tmp/vdr/vdr|' -e 's|%%_sysconfdir/vdr/|%%configdir/|' \

#  < %%SOURCE15 > %%buildroot%plugindir/bin/%name-moveto.sh
#chmod 755 %buildroot%plugindir/bin/%name-moveto.sh

install -dm 755 %buildroot%cachedir
touch %buildroot%cachedir/epg.data

install -dm 755 %buildroot%datadir/logos
install -dm 755 %buildroot%rundir
install -dm 755 %buildroot%vardir
touch %buildroot%vardir/next-wakeup

install -dm 755 %buildroot%_sysconfdir/udev/rules.d
sed -e 's/VDR_GROUP/%vdr_group/' < %SOURCE4 \
 > %buildroot%_sysconfdir/udev/rules.d/51-%name.rules
chmod 644 %buildroot%_sysconfdir/udev/rules.d/*-%name.rules

install -dm 755 %buildroot%_sysconfdir/security/console.perms.d
sed -e 's/VDR_GROUP/%vdr_group/' < %SOURCE8 \
 > %buildroot%_sysconfdir/security/console.perms.d/95-%name.perms
chmod 644 %buildroot%_sysconfdir/security/console.perms.d/*%name.perms

install -Dpm 644 %name.rwtab %buildroot%_sysconfdir/rwtab.d/%name

# devel

install -pm 755 %SOURCE9 %buildroot%_bindir/vdr-config
install -pm 755 i18n-to-gettext.pl %buildroot%_bindir/vdr-i18n-to-gettext

install -pm 755 newplugin %buildroot%_bindir/vdr-newplugin

install -pm 644 Make.config %buildroot%_libexecdir/vdr

ln -s %_includedir/vdr/config.h %_libexecdir/vdr %buildroot%_libexecdir/vdr


# plugins

%if_with plugins
make install-plugins
#install -pm 755 PLUGINS/src/skincurses/libvdr-skincurses.so.%apiver \
##buildroot#plugindir

install -d 755 %buildroot%_sysconfdir/sysconfig/vdr-plugins.d/

install -pm 644 %SOURCE11 \
%buildroot%_sysconfdir/sysconfig/vdr-plugins.d/skincurses.conf


#install -pm 755 PLUGINS/src/sky/libvdr-sky.so.%apiver \

#buildroot#plugindir

install -pm 644 %SOURCE12 \
%buildroot%_sysconfdir/sysconfig/vdr-plugins.d/sky.conf
install -pm 755 PLUGINS/src/sky/getskyepg.pl \
%buildroot%_bindir/getskyepg
install -Dpm 644 PLUGINS/src/sky/channels.conf.sky \
%buildroot%configdir/plugins/sky/channels.conf.sky
%endif # plugins


# i18n

%find_lang %name
%find_lang %name-hello
%find_lang %name-pictures
%find_lang %name-skincurses

cat %name-hello.lang %name-pictures.lang %name-skincurses.lang > %name-plugins.lang
%pre
getent group %vdr_group >/dev/null || groupadd -r %vdr_group
getent passwd %vdr_user >/dev/null || \
useradd -r -g %vdr_group  -s /sbin/nologin -M -n \
   -c "Video Disk Recorder" %vdr_user
:

%post
%preun
%postun
[ $1 -gt 0 ] && %_initdir/vdr try-restart >/dev/null || :

%files -f %name.lang
%doc CONTRIBUTORS COPYING HISTORY* INSTALL MANUAL README* UPDATE-1.?.0
%doc CHANGES.package.old
%doc vdr.fc9.spec

%config(noreplace) %_sysconfdir/udev/rules.d/*-%name.rules
%config(noreplace) %_sysconfdir/security/console.perms.d/*-%name.perms
%config(noreplace) %_sysconfdir/rwtab.d/%name
%config(noreplace) %_sysconfdir/sysconfig/vdr
%config %dir %_sysconfdir/sysconfig/vdr-plugins.d/
%_bindir/epg2html
%_bindir/svdrpsend
%_sbindir/*
%dir %plugindir/
%dir %plugindir/bin/
%plugindir/bin/*
%datadir/
%_mandir/man[58]/vdr.[58]*
%defattr(-,%vdr_user,%vdr_group,-)
# TODO: tighten ownerships to root:root for some files in %configdir
%config(noreplace) %configdir/*.conf
%ghost %vardir/next-wakeup
%ghost %vardir/themes/*.theme
%ghost %cachedir/epg.data
%defattr(-,%vdr_user,root,-)
%dir %configdir/
%dir %configdir/plugins/
%dir %rundir/
%dir %vardir/
%dir %vardir/themes/
%dir %cachedir/

%files devel
%doc COPYING
%doc PLUGINS.html
%_bindir/vdr-config
%_bindir/vdr-i18n-to-gettext
%_bindir/vdr-newplugin
%_includedir/libsi/
%_includedir/vdr/
#_pkgconfigdir/vdr.pc
%dir %_libexecdir/vdr/
%_libexecdir/vdr/Make.config
%_libexecdir/vdr/config.h
%_libexecdir/vdr/vdr

%if_with plugins
%files plugins -f %name-plugins.lang
%doc PLUGINS/src/skincurses/COPYING PLUGINS/src/skincurses/HISTORY
%doc PLUGINS/src/skincurses/README
%config(noreplace) %_sysconfdir/sysconfig/vdr-plugins.d/skincurses.conf

%doc PLUGINS/src/sky/COPYING PLUGINS/src/sky/HISTORY
%doc PLUGINS/src/sky/README PLUGINS/src/sky/lircd.conf.sky
%_bindir/getskyepg
%config(noreplace) %configdir/plugins/sky/channels.conf.sky
%config(noreplace) %_sysconfdir/sysconfig/vdr-plugins.d/sky.conf
%plugindir/*.so.%apiver
#exclude %_datadir/locale/*/*/%name.lang

%endif # plugins

%changelog

Full changelog you can see here

 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin