]> git.pld-linux.org Git - packages/tvheadend.git/blob - tvheadend.spec
- up to 4.0.2
[packages/tvheadend.git] / tvheadend.spec
1 Summary:        TV streaming server
2 Name:           tvheadend
3 # https://tvheadend.org/projects/tvheadend/wiki/Releases
4 Version:        4.0.2
5 Release:        1
6 License:        GPL v3
7 Group:          Applications/Multimedia
8 Source0:        https://github.com/tvheadend/tvheadend/archive/v%{version}.tar.gz
9 # Source0-md5:  e17596adbfde2a9893460264037278e4
10 Source1:        %{name}.conf
11 Source2:        %{name}.service
12 Source3:        %{name}.sysconfig
13 Source4:        %{name}.init
14 URL:            https://tvheadend.org/projects/tvheadend
15 BuildRequires:  avahi-devel
16 BuildRequires:  curl-devel
17 BuildRequires:  python-modules
18 BuildRequires:  rpmbuild(macros) >= 1.647
19 BuildRequires:  zlib-devel
20 Requires(post): pwgen
21 Requires(post): sed >= 4.0
22 Requires(post,preun):   /sbin/chkconfig
23 Requires(post,preun,postun):    systemd-units >= 38
24 Requires(postun):       /usr/sbin/userdel
25 Requires(pre):  /bin/id
26 Requires(pre):  /usr/sbin/useradd
27 Requires:       setup
28 Requires:       systemd-units >= 0.38
29 Provides:       user(tvheadend)
30 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
31
32 %description
33 Tvheadend is a TV streaming server for Linux supporting DVB-S, DVB-S2,
34 DVB-C, DVB-T, ATSC, IPTV, and Analog video (V4L) as input sources.
35
36 %prep
37 %setup -q
38
39 %build
40 export CFLAGS="%{rpmcflags}"
41 export CC="%{__cc}"
42
43 # tvheadend uses a custom script, so %%configure cannot be used
44 # as not all options are supported
45 ./configure \
46         --release \
47         --prefix=%{_prefix} \
48         --libdir=%{_libdir} \
49         --mandir=%{_mandir} \
50         --disable-dvbscan
51
52 %{__make} V=1
53
54 %install
55 rm -rf $RPM_BUILD_ROOT
56 install -d $RPM_BUILD_ROOT%{_localstatedir}/lib/%{name}/.hts/%{name}/accesscontrol \
57         $RPM_BUILD_ROOT%{_localstatedir}/lib/%{name}/Videos \
58         $RPM_BUILD_ROOT%{systemdunitdir} \
59         $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig}
60
61 %{__make} install \
62         DESTDIR=$RPM_BUILD_ROOT
63
64 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_localstatedir}/lib/%{name}/.hts/%{name}/accesscontrol/1
65 cp -p %{SOURCE2} $RPM_BUILD_ROOT%{systemdunitdir}/%{name}.service
66 cp -p %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
67 install -p %{SOURCE4} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
68
69 chmod +x $RPM_BUILD_ROOT%{_bindir}/%{name}
70
71 %clean
72 rm -rf $RPM_BUILD_ROOT
73
74 %pre
75 %useradd -u 20 -d %{_localstatedir}/lib/%{name} -g video -G usb -c "tvheadend User" tvheadend
76
77 %post
78 /sbin/chkconfig --add tvheadend
79 %service tvheadend reload "tvheadend"
80 %systemd_post %{name}.service
81
82 # check if the access control file still has the initial dummy password, and
83 # replace the dummy password by a random, 12-character pwgen-generated password
84 if  grep -q '"password": "dummypassword"' %{_localstatedir}/lib/%{name}/.hts/%{name}/accesscontrol/1; then
85         sed -i "s,\"password\": \"dummypassword\",\"password\": \"$(pwgen -s 12 1)\"," %{_localstatedir}/lib/%{name}/.hts/%{name}/accesscontrol/1
86 fi
87
88 %preun
89 if [ "$1" = "0" ]; then
90         %service tvheadend stop
91         /sbin/chkconfig --del tvheadend
92 fi
93 %systemd_preun %{name}.service
94
95 %postun
96 if [ "$1" = "0" ]; then
97         %userremove tvheadend
98 fi
99 %systemd_reload
100
101 %files
102 %defattr(644,root,root,755)
103 %doc docs
104 %attr(755,root,root) %{_bindir}/%{name}
105 %attr(754,root,root) /etc/rc.d/init.d/tvheadend
106 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
107 %{_mandir}/man1/%{name}.1*
108 %{_datadir}/%{name}
109 %{systemdunitdir}/%{name}.service
110
111 # home directory and config file
112 %dir %attr(755,tvheadend,root) %{_localstatedir}/lib/%{name}
113 %dir %attr(755,tvheadend,video) %{_localstatedir}/lib/%{name}/Videos
114 %dir %attr(750,tvheadend,video) %{_localstatedir}/lib/%{name}/.hts
115 %dir %attr(750,tvheadend,video) %{_localstatedir}/lib/%{name}/.hts/%{name}
116 %dir %attr(750,tvheadend,video) %{_localstatedir}/lib/%{name}/.hts/%{name}/accesscontrol
117 %attr(600,tvheadend,video) %config(noreplace) %verify(not md5 mtime size) %{_localstatedir}/lib/%{name}/.hts/%{name}/accesscontrol/1
This page took 0.563194 seconds and 3 git commands to generate.