]> git.pld-linux.org Git - SPECS.git/blob - publicfile.spec
SPECS updated Sat 31 Jul 21:27:02 CEST 2021
[SPECS.git] / publicfile.spec
1 Summary:        DJB Publicfile - httpd & ftpd servers
2 Summary(pl.UTF-8):      DJB Publicfile - serwery httpd i ftpd
3 Name:           publicfile
4 Version:        0.52
5 Release:        3
6 License:        DJB (free to use, see http://cr.yp.to/distributors.html)
7 Group:          Networking/Daemons
8 Source0:        http://cr.yp.to/publicfile/%{name}-%{version}.tar.gz
9 # Source0-md5:  e493d69627b4fb2c7c764c0ff34330d7
10 Patch0:         %{name}-glibc.patch
11 Patch1:         %{name}-PASV.patch
12 URL:            http://cr.yp.to/publicfile.html
13 BuildRequires:  rpmbuild(macros) >= 1.202
14 Requires(postun):       /usr/sbin/userdel
15 Requires(pre):  /bin/id
16 Requires(pre):  /usr/sbin/useradd
17 Requires:       daemontools
18 Requires:       ucspi-tcp
19 Provides:       user(ftplog)
20 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
21
22 %description
23 publicfile supplies files to the public through HTTP and FTP.
24
25 %description -l pl.UTF-8
26 publicfile służy do publikacji plików przez protokoły HTTP i FTP.
27
28 %prep
29 %setup -q
30 %patch0
31 %patch1
32
33 %build
34 echo %{__cc} %{rpmcflags} > conf-cc
35 echo %{_libdir}/%{name} > conf-home
36 %{__make}
37
38 %install
39 rm -rf $RPM_BUILD_ROOT
40 install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/bin
41
42 ### STANDARD BINARIES ###
43
44 install configure       $RPM_BUILD_ROOT%{_libdir}/%{name}/bin
45 install ftpd            $RPM_BUILD_ROOT%{_libdir}/%{name}/bin
46 install httpd           $RPM_BUILD_ROOT%{_libdir}/%{name}/bin
47
48 ### CONTROL SCRIPTS AND DIRECTORIES ###
49
50 install -d $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
51 install -d $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/httpd
52 install -d $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/ftpd
53
54 ### HTTPD ###
55
56 cd $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/httpd
57 mkdir log
58 mkdir log/main
59 touch log/status
60 mkdir env
61 echo 127.0.0.1  >env/IP
62 echo 80         >env/PORT
63 echo 100        >env/MAXCONN
64
65 cat>run<<___
66 #!/bin/sh
67 exec 2>&1
68 exec envuidgid ftp softlimit -o20 -d50000 tcpserver -vDRHl0 -b50 -c\`cat env/MAXCONN\` \`cat env/IP\` \`cat env/PORT\` %{_libdir}/%{name}/bin/httpd /home/services/%{name}
69 ___
70
71 cat>log/run<<___
72 #!/bin/sh
73 exec setuidgid ftplog multilog t ./main '-*' '+* * status: *' =status
74 ___
75
76
77 ### FTPD ###
78
79 cd $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/ftpd
80 mkdir log
81 mkdir log/main
82 touch log/status
83 mkdir env
84 echo 127.0.0.1  >env/IP
85 echo 21         >env/PORT
86 echo 40         >env/MAXCONN
87
88 cat > run <<'EOF'
89 #!/bin/sh
90 CRNL="$(echo -e "\r\n.")"
91 CRNL="${CRNL%.}"
92 exec 2>&1
93 exec envuidgid ftp softlimit -o20 -d50000 tcpserver -vDRHl0 -b20 -c$(cat env/MAXCONN) \
94         -B"220 Features: a p .$CRNL" $(cat env/IP) $(cat env/PORT) \
95         %{_libdir}/%{name}/bin/ftpd /home/services/%{name}
96 EOF
97
98 cat>log/run<<___
99 #!/bin/sh
100 exec setuidgid ftplog multilog t ./main '-*' '+* * status: *' =status
101 ___
102
103
104 ### HOME ###
105
106 install -d $RPM_BUILD_ROOT/home/services/%{name}
107 install -d $RPM_BUILD_ROOT/home/services/%{name}/0
108 cd $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
109 ln -s ../../home/services/%{name} file
110 cd $RPM_BUILD_ROOT/home/services/%{name}
111 ln -s 0 127.0.0.1
112 ln -s 0 localhost
113 ln -s 0 localhost.localdomain
114
115 ### SERVICE INSTALLATION ###
116
117 install -d $RPM_BUILD_ROOT/service
118 cd $RPM_BUILD_ROOT/service
119 ln -s ..%{_sysconfdir}/%{name}/ftpd
120 ln -s ..%{_sysconfdir}/%{name}/httpd
121
122 %clean
123 rm -rf $RPM_BUILD_ROOT
124
125 %pre
126 %useradd -u 39 -g ftp -s /bin/false -d /usr/share/empty ftplog
127
128 %preun
129 if [ "$1" = "0" ]; then
130         svc -d /service/ftpd
131         svc -d /service/httpd
132 fi
133
134 %postun
135 if [ "$1" = "0" ]; then
136         %userremove ftplog
137 fi
138
139 %files
140 %defattr(644,root,root,755)
141 %attr(755,root,root) %{_libdir}/%{name}
142 %dir %{_sysconfdir}/%{name}
143 %dir %attr(3755,root,root) %{_sysconfdir}/%{name}/httpd
144 %dir %attr(3755,root,root) %{_sysconfdir}/%{name}/ftpd
145 %dir %attr(2755,root,root) %{_sysconfdir}/%{name}/httpd/log
146 %dir %attr(2755,ftplog,ftp) %{_sysconfdir}/%{name}/httpd/log/main
147 %attr(644,ftplog,ftp) %{_sysconfdir}/%{name}/httpd/log/status
148 %dir %attr(2755,root,root) %{_sysconfdir}/%{name}/httpd/env
149 %config %{_sysconfdir}/%{name}/httpd/env/*
150 %attr(755,root,root) %{_sysconfdir}/%{name}/httpd/run
151 %attr(755,root,root) %{_sysconfdir}/%{name}/httpd/log/run
152 %dir %attr(2755,root,root) %{_sysconfdir}/%{name}/ftpd/log
153 %dir %attr(2755,ftplog,ftp) %{_sysconfdir}/%{name}/ftpd/log/main
154 %attr(644,ftplog,ftp) %{_sysconfdir}/%{name}/ftpd/log/status
155 %dir %attr(2755,root,root) %{_sysconfdir}/%{name}/ftpd/env
156 %config %{_sysconfdir}/%{name}/ftpd/env/*
157 %attr(755,root,root) %{_sysconfdir}/%{name}/ftpd/run
158 %attr(755,root,root) %{_sysconfdir}/%{name}/ftpd/log/run
159 %dir %attr(2755,root,root) /home/services/%{name}
160 %dir %attr(2755,root,root) /home/services/%{name}/0
161 /home/services/%{name}/l*
162 /home/services/%{name}/1*
163 %{_sysconfdir}/%{name}/file
164 /service/ftpd
165 /service/httpd
This page took 0.774778 seconds and 3 git commands to generate.