1 |
%define runuser toruser |
2 |
|
3 |
#comment out if not rc |
4 |
#define prel rc |
5 |
|
6 |
%define rel 1 |
7 |
|
8 |
Name: tor |
9 |
Version: 0.2.5.12 |
10 |
Release: %mkrel %{?prel:0.%prel.}%{rel} |
11 |
Summary: Anonymizing overlay network for TCP (The onion router) |
12 |
URL: http://www.torproject.org/ |
13 |
Group: Networking/Other |
14 |
License: BSD-like |
15 |
Requires(post): systemd >= %{systemd_required_version} |
16 |
Requires(post): rpm-helper >= 0.24.8-1 |
17 |
Requires(preun): rpm-helper >= 0.24.8-1 |
18 |
Requires: openssl >= 0.9.8 |
19 |
Requires: tsocks |
20 |
BuildRequires: openssl-devel >= 0.9.8 |
21 |
BuildRequires: libevent-devel |
22 |
BuildRequires: zlib-devel |
23 |
BuildRequires: autoconf2.5 |
24 |
Source0: http://www.torproject.org/dist/%{name}-%{version}%{?prel:-%prel}.tar.gz |
25 |
Source1: %{name}.logrotate |
26 |
Source4: %{name}.service |
27 |
Source5: %{name}-tmpfiles.conf |
28 |
|
29 |
%description |
30 |
Tor is a connection-based low-latency anonymous communication system. |
31 |
|
32 |
This package provides the "tor" program, which serves as both a client and |
33 |
a relay node. Scripts will automatically create a "%{runuser}" user and |
34 |
group, and set tor up to run as a daemon when the system is rebooted. |
35 |
|
36 |
Applications connect to the local Tor proxy using the SOCKS |
37 |
protocol. The local proxy chooses a path through a set of relays, in |
38 |
which each relay knows its predecessor and successor, but no |
39 |
others. Traffic flowing down the circuit is unwrapped by a symmetric |
40 |
key at each relay, which reveals the downstream relay. |
41 |
|
42 |
Warnings: Tor does no protocol cleaning. That means there is a danger |
43 |
that application protocols and associated programs can be induced to |
44 |
reveal information about the initiator. Tor depends on Privoxy and |
45 |
similar protocol cleaners to solve this problem. This is alpha code, |
46 |
and is even more likely than released code to have anonymity-spoiling |
47 |
bugs. The present network is very small -- this further reduces the |
48 |
strength of the anonymity provided. Tor is not presently suitable |
49 |
for high-stakes anonymity. |
50 |
|
51 |
|
52 |
%prep |
53 |
%setup -q -n %{name}-%{version}%{?prel:-%prel} |
54 |
|
55 |
%build |
56 |
%configure2_5x |
57 |
%make V=1 |
58 |
|
59 |
%install |
60 |
%makeinstall_std |
61 |
|
62 |
# config file |
63 |
install -p -m 644 %{buildroot}%{_sysconfdir}/%{name}/torrc.sample \ |
64 |
%{buildroot}%{_sysconfdir}/%{name}/torrc |
65 |
|
66 |
# logrotate config |
67 |
install -D -p -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/logrotate.d/%{name} |
68 |
|
69 |
# needed directories |
70 |
mkdir -p -m 700 %{buildroot}%{_localstatedir}/lib/%{name} |
71 |
mkdir -p -m 755 %{buildroot}%{_logdir}/%{name} |
72 |
|
73 |
# Bash completion |
74 |
mkdir -p %{buildroot}%{_sysconfdir}/bash_completion.d |
75 |
echo 'complete -F _command $filenames torify' > %{buildroot}%{_sysconfdir}/bash_completion.d/%{name} |
76 |
|
77 |
# Systemd support |
78 |
install -D -p -m 0644 %{SOURCE4} %{buildroot}%{_unitdir}/%{name}.service |
79 |
install -D -p -m 0644 %{SOURCE5} %{buildroot}%{_tmpfilesdir}/%{name}.conf |
80 |
|
81 |
%pre |
82 |
%_pre_useradd %{runuser} %{_localstatedir}/lib/%{name} /bin/false |
83 |
|
84 |
%post |
85 |
%_tmpfilescreate %{name} |
86 |
%_post_service %{name} |
87 |
|
88 |
%preun |
89 |
%_preun_service %{name} || : |
90 |
if [ $1 -eq 0 ]; then |
91 |
rm -f %{_localstatedir}/lib/%{name}/* |
92 |
fi |
93 |
|
94 |
%files |
95 |
%doc ReleaseNotes INSTALL LICENSE README ChangeLog doc/HACKING |
96 |
%{_mandir}/man*/* |
97 |
%{_bindir}/tor |
98 |
%{_bindir}/torify |
99 |
%{_bindir}/tor-resolve |
100 |
%{_bindir}/tor-gencert |
101 |
%{_unitdir}/%{name}.service |
102 |
%{_tmpfilesdir}/%{name}.conf |
103 |
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name} |
104 |
%dir %attr(0755,root,%{runuser}) %{_sysconfdir}/%{name}/ |
105 |
%config(noreplace) %attr(0644,root,%{runuser}) %{_sysconfdir}/%{name}/* |
106 |
%attr(0700,%{runuser},%{runuser}) %dir %{_localstatedir}/lib/%{name} |
107 |
%attr(0750,%{runuser},%{runuser}) %dir %{_logdir}/%{name} |
108 |
%{_sysconfdir}/bash_completion.d/%{name} |
109 |
%{_datadir}/%{name} |