squid-vl.spec 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381
  1. %bcond_with systemd
  2. %define base_name squid
  3. %define pkg_epoch 7
  4. %define pkg_version 4.13
  5. %define pkg_release 1%{?_dist_release}%{?with_systemd:.systemd}
  6. %define uid 23
  7. %define gid 23
  8. %define _unpackaged_files_terminate_build 1
  9. Summary: The Squid proxy caching server
  10. Summary(ja): Squid ウェブプロキシキャッシュ
  11. Name: %{base_name}
  12. Epoch: %{pkg_epoch}
  13. Version: %{pkg_version}
  14. Release: %{pkg_release}
  15. Group: servers
  16. Vendor: Project Vine
  17. Distribution: Vine Linux
  18. License: GPLv2+
  19. URL: http://www.squid-cache.org
  20. Source0: http://www.squid-cache.org/Versions/v4/%{base_name}-%{version}.tar.xz
  21. Source1: %{base_name}.init
  22. Source2: %{base_name}.logrotate
  23. Source3: %{base_name}.sysconfig
  24. Source4: %{base_name}.pam
  25. Source5: %{base_name}.service
  26. Source6: cache_swap.sh
  27. Patch1: 0001-config.patch
  28. Patch2: 0002-location.patch
  29. Patch3: 0003-perlpath.patch
  30. BuildRoot: %{_tmppath}/%{base_name}-%{version}-root
  31. BuildRequires: openldap-devel pam-devel openssl-devel krb5-devel
  32. BuildRequires: cyrus-sasl-devel libcap-devel libdb-devel
  33. Requires: bash >= 2.0
  34. Requires(pre): shadow-utils
  35. %if %{with systemd}
  36. %{?systemd_requires}
  37. %else
  38. Requires(post): %{_syssbindir}/chkconfig
  39. Requires(preun): %{_syssbindir}/chkconfig
  40. %endif
  41. Conflicts: squid30
  42. Obsoletes: squid-novm
  43. %description
  44. Squid is a high-performance proxy caching server for Web clients,
  45. supporting FTP, gopher, and HTTP data objects. Unlike traditional
  46. caching software, Squid handles all requests in a single,
  47. non-blocking, I/O-driven process. Squid keeps meta data and especially
  48. hot objects cached in RAM, caches DNS lookups, supports non-blocking
  49. DNS lookups, and implements negative caching of failed requests.
  50. Squid consists of a main server program squid, a Domain Name System
  51. lookup program (dnsserver), a program for retrieving FTP data
  52. (ftpget), and some management and client tools.
  53. %description -l ja
  54. Squid はウェブクライアントのための高性能のプロキシキャッシュサーバで、
  55. FTP, gopher, HTTP データオブジェクトに対応しています。これまでの
  56. キャッシュソフトウェアと違い、 Squid は全ての要求を、単一の
  57. ブロックしない I/O ドリブンのプロセスで処理します。 Squid はメタデータや
  58. ホットなオブジェクトを RAM に保持し、 DNS 問い合わせをキャッシュします。
  59. ブロック無しの DNS 問い合わせをサポートし、失敗した要求のネガティブ
  60. キャッシングが実装されています。
  61. Squid は、メインのサーバプログラム squid と、 Domain Name System
  62. 問い合わせプログラム (dnsserver) と、 FTP データを取得するプログラム
  63. (ftpget) と、いくつかの管理用またはクライアントツールから成ります。
  64. %debug_package
  65. %prep
  66. %autosetup -p1
  67. %build
  68. TIRPC_CFLAGS=$(pkg-config --cflags libtirpc)
  69. TIRPC_LIBS=$(pkg-config --libs libtirpc)
  70. RPM_OPT_FLAGS="%{optflags} -Wno-stringop-truncation $TIRPC_CFLAGS"
  71. # added -Wno-cpp for glibc >= 2.30
  72. CXXFLAGS="$RPM_OPT_FLAGS -fPIC -Wno-cpp"
  73. CFLAGS="$RPM_OPT_FLAGS -fPIC -Wno-cpp"
  74. LDFLAGS="$RPM_LD_FLAGS -pie -Wl,-z,relro -Wl,-z,now -Wl,--warn-shared-textrel"
  75. %configure \
  76. --libexecdir=%{_libdir}/%{base_name} \
  77. --datadir=%{_datadir}/%{base_name} \
  78. --sysconfdir=%{_sysconfdir}/%{base_name} \
  79. --with-logdir=%{_localstatedir}/log/%{base_name} \
  80. --disable-dependency-tracking \
  81. --enable-eui \
  82. --enable-follow-x-forwarded-for \
  83. --enable-arp-acl \
  84. --enable-auth \
  85. --enable-auth-basic="DB,LDAP,NCSA,NIS,PAM,POP3,SASL,SMB,getpwnam" \
  86. --enable-auth-digest="file,LDAP,eDirectory" \
  87. --enable-auth-negotiate="kerberos" \
  88. --enable-auth-ntlm="SMB_LM,fake" \
  89. --enable-external-acl-helpers="LDAP_group,time_quota,session,unix_group,wbinfo_group" \
  90. --enable-cache-digests \
  91. --enable-cachemgr-hostname=localhost \
  92. --enable-delay-pools \
  93. --enable-epoll \
  94. --enable-icap-client \
  95. --enable-ident-lookups \
  96. %ifnarch ppc64 ia64 x86_64 s390x
  97. --with-large-files \
  98. %endif
  99. --enable-linux-netfilter \
  100. --enable-referer-log \
  101. --enable-removal-policies="heap,lru" \
  102. --enable-snmp \
  103. --enable-ssl \
  104. --enable-ssl-crtd \
  105. --enable-storeio="aufs,diskd,ufs,rock" \
  106. --enable-diskio \
  107. --enable-useragent-log \
  108. --enable-wccpv2 \
  109. --enable-internal-dns \
  110. --with-aio \
  111. --with-default-user="%{base_name}" \
  112. --with-filedescriptors=16384 \
  113. --with-dl \
  114. --with-openssl \
  115. --with-pthreads \
  116. --disable-arch-native \
  117. %if %{with systemd}
  118. --with-pidfile='/run/squid.pid' \
  119. %endif
  120. --with-pic
  121. %{__make} \
  122. %{?_smp_mflags} \
  123. DEFAULT_SWAP_DIR="%{_localstatedir}/cache/%{base_name}"
  124. %install
  125. [ "${RPM_BUILD_ROOT}" != "/" ] && %{__rm} -rf ${RPM_BUILD_ROOT}
  126. %{__make} install \
  127. DESTDIR="${RPM_BUILD_ROOT}" \
  128. DEFAULT_SWAP_DIR="%{_localstatedir}/cache/%{base_name}"
  129. echo "
  130. #
  131. # This is %{_sysconfdir}/httpd/conf.d/%{base_name}.conf
  132. #
  133. ScriptAlias /Squid/cgi-bin/cachemgr.cgi %{_libdir}/%{base_name}/cachemgr.cgi
  134. # Only allow access from localhost by default
  135. <Location /Squid/cgi-bin/cachemgr.cgi>
  136. order allow,deny
  137. allow from localhost.localdomain
  138. # Add additional allowed hosts as needed
  139. # allow from .example.com
  140. </Location>" > ${RPM_BUILD_ROOT}/%{base_name}.httpd.tmp
  141. mkdir -p ${RPM_BUILD_ROOT}%{_initdir}
  142. mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d
  143. mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig
  144. mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/pam.d
  145. mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/httpd/conf.d/
  146. %if %{with systemd}
  147. install -Dpm644 %{SOURCE5} ${RPM_BUILD_ROOT}%{_unitdir}/%{name}.service
  148. install -Dpm755 %{SOURCE6} ${RPM_BUILD_ROOT}%{_libexecdir}/%{name}/cache_swap.sh
  149. %else
  150. install -m 755 %{SOURCE1} ${RPM_BUILD_ROOT}%{_initdir}/%{base_name}
  151. %endif
  152. install -m 644 %{SOURCE2} ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/%{base_name}
  153. install -m 644 %{SOURCE3} ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/%{base_name}
  154. install -m 644 %{SOURCE4} ${RPM_BUILD_ROOT}%{_sysconfdir}/pam.d/%{base_name}
  155. install -m 644 ${RPM_BUILD_ROOT}/%{base_name}.httpd.tmp ${RPM_BUILD_ROOT}%{_sysconfdir}/httpd/conf.d/%{base_name}.conf
  156. mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{base_name}
  157. mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/cache/%{base_name}
  158. chmod 644 contrib/url-normalizer.pl contrib/user-agents.pl
  159. iconv -f ISO88591 -t UTF8 ChangeLog -o ChangeLog.tmp
  160. mv -f ChangeLog.tmp ChangeLog
  161. # remove unpackaged files from the buildroot
  162. rm -f ${RPM_BUILD_ROOT}/%{base_name}.httpd.tmp
  163. %clean
  164. [ "${RPM_BUILD_ROOT}" != "/" ] && %{__rm} -rf ${RPM_BUILD_ROOT}
  165. %pretrans
  166. for l in zh-cn zh-tw; do
  167. if [ -d /usr/share/squid/errors/$l -a ! -L /usr/share/squid/errors/$l ]; then
  168. rm -rf /usr/share/squid/errors/$l
  169. fi
  170. done
  171. %pre
  172. if ! getent group %{base_name} >/dev/null 2>&1; then
  173. /usr/sbin/groupadd -g %{gid} %{base_name}
  174. fi
  175. if ! getent passwd %{base_name} >/dev/null 2>&1 ; then
  176. /usr/sbin/useradd -g %{gid} -u %{uid} -d %{_localstatedir}/cache/%{base_name} -r -s /sbin/nologin %{base_name} >/dev/null 2>&1 || exit 1
  177. fi
  178. for i in %{_localstatedir}/log/%{base_name} %{_localstatedir}/cache/%{base_name} ; do
  179. if [ -d $i ] ; then
  180. for adir in `find $i -maxdepth 0 \! -user %{base_name}`; do
  181. chown -R %{base_name}:%{base_name} $adir
  182. done
  183. fi
  184. done
  185. exit 0
  186. %post
  187. %if %{with systemd}
  188. %systemd_post %{name}.service
  189. %else
  190. if ! /sbin/chkconfig %{base_name}; then
  191. /sbin/chkconfig --add %{base_name}
  192. fi
  193. %endif
  194. %preun
  195. %if %{with systemd}
  196. %systemd_preun %{name}.service
  197. %else
  198. if [ "$1" -eq "0" -o -x /bin/systemctl ]; then
  199. %{_initdir}/%{base_name} stop
  200. rm -f %{_localstatedir}/log/%{base_name}/*
  201. /sbin/chkconfig --del %{base_name}
  202. fi
  203. %endif
  204. %postun
  205. %if %{with systemd}
  206. %systemd_postun_with_restart %{name}.service
  207. %else
  208. if [ "$1" -gt 1 ]; then
  209. %{_initdir}/%{base_name} condrestart
  210. fi
  211. %endif
  212. %triggerin -- samba-common
  213. /usr/sbin/usermod -a -G wbpriv %{base_name} >/dev/null 2>&1 || \
  214. chgrp %{base_name} %{_localstatedir}/cache/samba/winbindd_privileged >/dev/null 2>&1 || :
  215. %files
  216. %defattr(-,root,root,-)
  217. # Directory
  218. %dir %{_sysconfdir}/%{base_name}/
  219. %dir %{_libdir}/%{base_name}
  220. %dir %{_datadir}/%{base_name}
  221. %attr(0750,%{base_name},%{base_name}) %dir %{_localstatedir}/log/%{base_name}
  222. %attr(0750,%{base_name},%{base_name}) %dir %{_localstatedir}/cache/%{base_name}
  223. # Program Files
  224. %attr(0755,root,root) %{_sbindir}/%{base_name}
  225. %attr(0755,root,root) %{_bindir}/*
  226. %attr(0755,root,root) %{_libdir}/%{base_name}/cachemgr.cgi
  227. %attr(4750,root,%{base_name}) %{_libdir}/%{base_name}/basic_*
  228. %attr(4750,root,%{base_name}) %{_libdir}/%{base_name}/digest_*
  229. %attr(4750,root,%{base_name}) %{_libdir}/%{base_name}/diskd
  230. %attr(4750,root,%{base_name}) %{_libdir}/%{base_name}/ext_*
  231. %attr(4750,root,%{base_name}) %{_libdir}/%{base_name}/helper*
  232. %attr(4750,root,%{base_name}) %{_libdir}/%{base_name}/log_*
  233. %attr(4750,root,%{base_name}) %{_libdir}/%{base_name}/negotiate_*
  234. %attr(4750,root,%{base_name}) %{_libdir}/%{base_name}/ntlm_*
  235. %attr(4750,root,%{base_name}) %{_libdir}/%{base_name}/security_*
  236. %attr(4750,root,%{base_name}) %{_libdir}/%{base_name}/storeid_*
  237. %attr(4750,root,%{base_name}) %{_libdir}/%{base_name}/unlinkd
  238. %attr(4750,root,%{base_name}) %{_libdir}/%{base_name}/url_*
  239. # Config Files
  240. %if %{with systemd}
  241. %attr(0644,root,root) %{_unitdir}/%{base_name}.service
  242. %dir %{_libexecdir}/%{base_name}
  243. %attr(0755,root,root) %{_libexecdir}/%{base_name}/*
  244. %else
  245. %attr(0755,root,root) %{_initdir}/%{base_name}
  246. %endif
  247. %attr(0640,root,%{base_name}) %config(noreplace) %{_sysconfdir}/%{base_name}/%{base_name}.conf
  248. %attr(0644,root,%{base_name}) %config(noreplace) %{_sysconfdir}/%{base_name}/cachemgr.conf
  249. %config(noreplace) %{_sysconfdir}/%{base_name}/mime.conf
  250. %config(noreplace) %{_sysconfdir}/%{base_name}/errorpage.css
  251. %attr(0644,root,root) %config(noreplace) %{_sysconfdir}/httpd/conf.d/%{base_name}.conf
  252. %config(noreplace) %{_sysconfdir}/sysconfig/%{base_name}
  253. %config(noreplace) %{_sysconfdir}/pam.d/%{base_name}
  254. %config(noreplace) %{_sysconfdir}/logrotate.d/%{base_name}
  255. # Sample Config Files
  256. %config %{_sysconfdir}/%{base_name}/%{base_name}.conf.default
  257. %config %{_sysconfdir}/%{base_name}/cachemgr.conf.default
  258. %config %{_sysconfdir}/%{base_name}/mime.conf.default
  259. %config %{_sysconfdir}/%{base_name}/errorpage.css.default
  260. # Data Files
  261. %{_datadir}/%{base_name}/*
  262. # Document Files
  263. %license COPYING
  264. %doc README ChangeLog QUICKSTART
  265. %doc contrib/url-normalizer.pl contrib/user-agents.pl
  266. %{_mandir}/man8/*
  267. %{_mandir}/man1/*
  268. %{_sysconfdir}/%{base_name}/%{base_name}.conf.documented
  269. %changelog
  270. * Fri Sep 04 2020 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 4.13-1
  271. - new upstream release.
  272. * Fri Jul 10 2020 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 4.12-1
  273. - new upstream release.
  274. * Thu Apr 30 2020 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 4.11-1
  275. - new upstream release.
  276. - added systemd support (disabled as default).
  277. * Mon Feb 10 2020 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 4.10-1
  278. - new upstream release.
  279. * Mon Dec 16 2019 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 4.9-1
  280. - new upstream release.
  281. - added "-Wno-cpp" to CFLAGS/CXXFLAGS for glibc >= 2.30.
  282. * Thu Aug 29 2019 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 4.8-1
  283. - new upstream release.
  284. * Tue Nov 20 2018 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 4.4-1
  285. - new upstream release.
  286. - update patches.
  287. * Tue Jan 09 2018 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 3.5.27-2
  288. - enabled a build option: --enable-internal-dns.
  289. * Wed Sep 06 2017 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 3.5.27-1
  290. - new upstream release.
  291. - updated Patch203.
  292. * Wed Jun 29 2016 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 3.5.19-1
  293. - new upstream release.
  294. * Fri Apr 29 2016 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 3.5.17-1
  295. - new upstream release.
  296. * Tue Apr 12 2016 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 3.5.16-1
  297. - new upstream release.
  298. * Thu Jun 18 2015 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 3.5.5-1
  299. - new upstream release.
  300. * Mon Jul 7 2014 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 3.4.6-1
  301. - new upstream release.
  302. * Sat Jan 12 2013 Masahiro INOUE <miyabi.-.inoue@nifty.com> 3.1.23-1
  303. - new upstream release
  304. * Sat Dec 08 2012 Masahiro INOUE <miyabi.-.inoue@nifty.com> 3.1.22-1
  305. - new upstream release
  306. * Thu Nov 22 2012 Masahiro INOUE <miyabi.-.inoue@nifty.com> 3.1.21-1
  307. - new upstream release
  308. * Thu Aug 23 2012 Masahiro INOUE <miyabi.-.inoue@nifty.com> 3.1.20-1
  309. - new upstream release
  310. * Mon Oct 17 2011 Masahiro INOUE <miyabi.-.inoue@nifty.com> 3.1.16-1
  311. - new upstream release
  312. - add BuildRequires - libcap-devel
  313. * Fri Jun 10 2011 Masahiro INOUE <miyabi.-.inoue@nifty.com> 3.1.12-2
  314. - files in libexec moved to libdir
  315. * Tue May 17 2011 Masahiro INOUE <miyabi.-.inoue@nifty.com> 3.1.12-1
  316. - initial build for Vine Linux
  317. - This package is based on Vine Linux - squid-3.0.STABLE25-2