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