forked from pool/squid
This commit is contained in:
parent
27b8737da6
commit
5ed84a3d8e
223
squid.spec
223
squid.spec
@ -18,7 +18,6 @@
|
||||
|
||||
%define squidlibdir %{_libdir}/squid
|
||||
%define squidconfdir %{_sysconfdir}/squid
|
||||
|
||||
Name: squid
|
||||
Version: 3.5.26
|
||||
Release: 0
|
||||
@ -40,81 +39,37 @@ Source13: %{name}.keyring
|
||||
Source14: squid.init.rh
|
||||
Source15: cache_dir.sed
|
||||
Source16: initialize_cache_if_needed.sh
|
||||
|
||||
# do not show some rpmlint warnings
|
||||
Source99: squid-rpmlintrc
|
||||
# some useful defaults for squid
|
||||
Patch100: %{name}-config.patch
|
||||
# patch fixes kerberos principalname handling (http://bugs.squid-cache.org/show_bug.cgi?id=4042)
|
||||
Patch103: squid-brokenad.patch
|
||||
#patch fix SLE 11 target... BAD PATCH
|
||||
Patch104: squid-old-kerberos.patch
|
||||
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
# BuildRequires: autoconf
|
||||
# BuildRequires: automake
|
||||
# If you want to run unit tests, these also need mounted /dev/shm and /proc
|
||||
# BuildRequires: cppunit-devel
|
||||
BuildRequires: cppunit-devel
|
||||
BuildRequires: db-devel
|
||||
# needed by bootstrap.sh
|
||||
BuildRequires: cyrus-sasl-devel
|
||||
BuildRequires: ed
|
||||
BuildRequires: expat
|
||||
#
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: krb5-devel
|
||||
BuildRequires: libcap-devel
|
||||
BuildRequires: libexpat-devel
|
||||
%if 0%{?suse_version} <= 1140
|
||||
BuildRequires: libtool
|
||||
%else
|
||||
BuildRequires: libtool >= 2.4
|
||||
%endif
|
||||
%if 0%{?suse_version} < 1220
|
||||
BuildRequires: libxml2-devel
|
||||
BuildRequires: xz
|
||||
%else
|
||||
BuildRequires: pkgconfig(libxml-2.0)
|
||||
%endif
|
||||
BuildRequires: openldap2-devel
|
||||
BuildRequires: opensp-devel
|
||||
BuildRequires: openssl-devel
|
||||
BuildRequires: pam-devel
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: samba-winbind
|
||||
BuildRequires: sharutils
|
||||
|
||||
%if 0%{?suse_version}
|
||||
Requires(post): %fillup_prereq
|
||||
Requires(pre): %{_bindir}/getent
|
||||
%if 0%{?suse_version} < 1140
|
||||
Requires(pre): permissions
|
||||
%else
|
||||
Requires(pre): permissions >= 2014.11
|
||||
%endif
|
||||
Requires(pre): pwdutils
|
||||
%else
|
||||
Requires(pre): shadow-utils
|
||||
Requires(post): /sbin/chkconfig
|
||||
Requires(preun): /sbin/service /sbin/chkconfig
|
||||
Requires(postun): /sbin/service
|
||||
%endif
|
||||
|
||||
%if 0%{?suse_version} > 1210
|
||||
BuildRequires: systemd
|
||||
%{?systemd_requires}
|
||||
%define has_systemd 1
|
||||
%else
|
||||
Requires(pre): %insserv_prereq
|
||||
%endif
|
||||
|
||||
BuildRequires: systemd-rpm-macros
|
||||
BuildRequires: pkgconfig(expat)
|
||||
BuildRequires: pkgconfig(gssrpc)
|
||||
BuildRequires: pkgconfig(kdb)
|
||||
BuildRequires: pkgconfig(krb5)
|
||||
BuildRequires: pkgconfig(libsasl2)
|
||||
BuildRequires: pkgconfig(libxml-2.0)
|
||||
Requires: logrotate
|
||||
Requires(post): %fillup_prereq
|
||||
Requires(pre): permissions
|
||||
Provides: http_proxy
|
||||
|
||||
# due to package rename
|
||||
# Wed Aug 15 17:40:30 UTC 2012
|
||||
Provides: %{name}3 = %{version}
|
||||
Obsoletes: %{name}3 < %{version}
|
||||
%{?systemd_requires}
|
||||
|
||||
%description
|
||||
Squid is a fully-featured HTTP/1.0 proxy which is almost (but not quite -
|
||||
@ -129,18 +84,12 @@ installation and high performance.
|
||||
cp %{SOURCE10} .
|
||||
# upstream patches after RELEASE
|
||||
|
||||
##### other patches
|
||||
%patch100
|
||||
perl -p -i -e 's|%{_prefix}/local/bin/perl|%{_bindir}/perl|' `find -name "*.pl"`
|
||||
chmod a-x CREDITS
|
||||
%patch103
|
||||
%patch104
|
||||
|
||||
%build
|
||||
# autoreconf -fi
|
||||
export CFLAGS="%{optflags} -fPIE -fPIC -DOPENSSL_LOAD_CONF"
|
||||
export CXXFLAGS="%{optflags} -fPIE -fPIC -DOPENSSL_LOAD_CONF"
|
||||
export LDFLAGS="-Wl,--as-needed -Wl,--no-undefined -Wl,-z,relro,-z,now -pie"
|
||||
export CFLAGS="%{optflags} -DOPENSSL_LOAD_CONF"
|
||||
export CXXFLAGS="%{optflags} -DOPENSSL_LOAD_CONF"
|
||||
%configure \
|
||||
--disable-strict-error-checking \
|
||||
--sysconfdir=%{squidconfdir} \
|
||||
@ -148,15 +97,8 @@ export LDFLAGS="-Wl,--as-needed -Wl,--no-undefined -Wl,-z,relro,-z,now -pie"
|
||||
--datadir=%{_datadir}/squid \
|
||||
--sharedstatedir=%{_localstatedir}/squid \
|
||||
--with-logdir=%{_localstatedir}/log/squid \
|
||||
%if 0%{?has_systemd}
|
||||
--with-pidfile=/run/squid.pid \
|
||||
%else
|
||||
--with-pidfile=%{_localstatedir}/run/squid.pid \
|
||||
%endif
|
||||
--with-dl \
|
||||
%if 0%{?suse_version} <= 1140
|
||||
--with-included-ltdl \
|
||||
%endif
|
||||
--enable-disk-io \
|
||||
--enable-storeio \
|
||||
--enable-removal-policies=heap,lru \
|
||||
@ -187,36 +129,18 @@ export LDFLAGS="-Wl,--as-needed -Wl,--no-undefined -Wl,-z,relro,-z,now -pie"
|
||||
--disable-ident-lookups \
|
||||
--enable-follow-x-forwarded-for \
|
||||
--disable-arch-native
|
||||
|
||||
# overwrite the number of open filedescriptors of configure to 4096
|
||||
# to be backward compatible, but numbers above should not be overwritten
|
||||
if [ `awk '/SQUID_MAXFD/{print $3}' include/autoconf.h` -lt 4096 ]; then
|
||||
set +x
|
||||
echo "adapting SQUID_MAXFD to 4096"
|
||||
set -x
|
||||
perl -pi -e 's;(\#define SQUID_MAXFD) [0-9]+;$1 4096;' include/autoconf.h
|
||||
fi
|
||||
make SAMBAPREFIX=/usr %{?_smp_mflags}
|
||||
make SAMBAPREFIX=%{_prefix} %{?_smp_mflags}
|
||||
|
||||
%install
|
||||
%{_sbindir}/groupadd -g 31 -r %{name} 2>/dev/null || :
|
||||
%{_sbindir}/useradd -c "WWW-proxy squid" -d %{_localstatedir}/cache/%{name} \
|
||||
-g %{name} -o -u 31 -r -s /bin/false 2> /dev/null || :
|
||||
|
||||
install -d -m 750 %{buildroot}%{_localstatedir}/{cache,log}/%{name}
|
||||
install -d %{buildroot}%{_prefix}/sbin
|
||||
|
||||
# make_install
|
||||
make install DESTDIR=%{buildroot} SAMBAPREFIX=/usr
|
||||
make install DESTDIR=%{buildroot} SAMBAPREFIX=%{_prefix}
|
||||
|
||||
mv %{buildroot}{%{_sysconfdir}/%{name}/,%{_datadir}/%{name}/}mime.conf.default
|
||||
ln -s %{_sysconfdir}/%{name}/mime.conf %{buildroot}%{_datadir}/%{name} # backward compatible
|
||||
|
||||
%if 0%{?suse_version} < 1140
|
||||
# permissions file
|
||||
install -D -m 644 %{SOURCE9} %{buildroot}%{_sysconfdir}/permissions.d/%{name}
|
||||
%endif
|
||||
|
||||
# install logrotate file
|
||||
install -D -m 644 %{SOURCE7} %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
|
||||
|
||||
@ -243,40 +167,20 @@ done
|
||||
ln -sf %{_datadir}/%{name}/errors/de %{buildroot}%{squidconfdir}/errors
|
||||
|
||||
# fix file duplicates
|
||||
%if 0%{?suse_version} > 1030
|
||||
%fdupes -s %{buildroot}%{_prefix}
|
||||
%endif
|
||||
%if 0%{?fedora_version} > 8
|
||||
fdupes -q -n -r %{buildroot}%{_prefix}
|
||||
%endif
|
||||
|
||||
# systemd vs SysVinit
|
||||
%if 0%{?has_systemd}
|
||||
install -D -m 644 %{SOURCE11} %{buildroot}%{_unitdir}/%{name}.service
|
||||
install -D -m 755 %{SOURCE15} %{buildroot}%{squidlibdir}/cache_dir.sed
|
||||
install -D -m 755 %{SOURCE16} %{buildroot}%{squidlibdir}/initialize_cache_if_needed.sh
|
||||
sed -i -e 's!%%{_libdir}!%{_libdir}!' %{buildroot}%{_unitdir}/%{name}.service
|
||||
ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name}
|
||||
%else # SysVinit
|
||||
# fix postrotate script for SysVinit
|
||||
sed -i -re 's@/usr/bin/systemctl.*@/etc/init.d/squid reload@g' %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
|
||||
%if 0%{?suse_version}
|
||||
install -D %{SOURCE3} %{buildroot}%{_sysconfdir}/init.d/%{name}
|
||||
ln -sf %{_sysconfdir}/init.d/%{name} %{buildroot}%{_sbindir}/rc%{name}
|
||||
%else # lets just assume other are rh based ones...
|
||||
install -D %{SOURCE14} %{buildroot}%{_sysconfdir}/init.d/%{name}
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?suse_version}
|
||||
install -D -m644 %{SOURCE4} %{buildroot}%{_localstatedir}/adm/fillup-templates/sysconfig.%{name}
|
||||
%else
|
||||
install -D -m644 %{SOURCE4} %{buildroot}%{_sysconfdir}/sysconfig/%{name}
|
||||
%endif
|
||||
install -D -m 644 %{SOURCE11} %{buildroot}%{_unitdir}/%{name}.service
|
||||
install -D -m 755 %{SOURCE15} %{buildroot}%{squidlibdir}/cache_dir.sed
|
||||
install -D -m 755 %{SOURCE16} %{buildroot}%{squidlibdir}/initialize_cache_if_needed.sh
|
||||
sed -i -e 's!%%{_libdir}!%{_libdir}!' %{buildroot}%{_unitdir}/%{name}.service
|
||||
ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name}
|
||||
install -D -m644 %{SOURCE4} %{buildroot}%{_localstatedir}/adm/fillup-templates/sysconfig.%{name}
|
||||
|
||||
# Move the MIB definition to the proper place (and name)
|
||||
mkdir -p $RPM_BUILD_ROOT/usr/share/snmp/mibs
|
||||
mv $RPM_BUILD_ROOT/usr/share/squid/mib.txt \
|
||||
$RPM_BUILD_ROOT/usr/share/snmp/mibs/SQUID-MIB.txt
|
||||
mkdir -p %{buildroot}%{_datadir}/snmp/mibs
|
||||
mv %{buildroot}%{_datadir}/squid/mib.txt \
|
||||
%{buildroot}%{_datadir}/snmp/mibs/SQUID-MIB.txt
|
||||
|
||||
%pre
|
||||
# we need this group for /usr/sbin/pinger
|
||||
@ -296,15 +200,12 @@ fi
|
||||
# if default group is not squid, change it
|
||||
if [[ "$(%{_bindir}/id -ng %{name} 2>/dev/null)" != "%{name}" ]]; then
|
||||
%{_sbindir}/usermod -g %{name} %{name} 2>/dev/null
|
||||
fi
|
||||
fi
|
||||
# if squid is not member of winbind, add him
|
||||
if [[ $(%{_bindir}/id -nG %{name} 2>/dev/null | grep -q winbind >/dev/null; echo $?) -ne 0 ]]; then
|
||||
%{_sbindir}/usermod -G winbind %{name} 2>/dev/null
|
||||
fi
|
||||
|
||||
%if 0%{?has_systemd}
|
||||
%service_add_pre %{name}.service
|
||||
%endif
|
||||
|
||||
# update mode?
|
||||
if [ "$1" -gt "1" ]; then
|
||||
@ -313,11 +214,6 @@ if [ "$1" -gt "1" ]; then
|
||||
mv %{_sysconfdir}/%{name}.conf %{_sysconfdir}/%{name}/%{name}.conf
|
||||
fi
|
||||
fi
|
||||
# emulate_httpd_log is gone with 3.2 not 3.5
|
||||
### rpmlint is complaining about modifying squid.conf
|
||||
#if [ -e etc/%{name}/%{name}.conf ]; then
|
||||
# sed -i '/emulate_httpd_log/d' /etc/%{name}/%{name}.conf
|
||||
#fi
|
||||
|
||||
%pretrans -p <lua>
|
||||
-- Directory to symlink is not working in RPM so workaround it
|
||||
@ -335,63 +231,24 @@ for i,f in pairs(bad_ones) do
|
||||
end
|
||||
|
||||
%post
|
||||
%if 0%{?suse_version} >= 1140
|
||||
%if 0%{?set_permissions:1}
|
||||
%set_permissions %{_sbindir}/basic_pam_auth
|
||||
%set_permissions %{_sbindir}/pinger
|
||||
%set_permissions %{_localstatedir}/cache/squid/
|
||||
%set_permissions %{_localstatedir}/log/squid/
|
||||
%else
|
||||
%run_permissions
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%if 0%{?has_systemd}
|
||||
%service_add_post squid.service
|
||||
%else
|
||||
%if 0%{?suse_version}
|
||||
%{fillup_and_insserv -n "squid"}
|
||||
%else
|
||||
/sbin/chkconfig --add squid
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%preun
|
||||
%if 0%{?has_systemd}
|
||||
%service_del_preun squid.service
|
||||
%else
|
||||
%if 0%{?suse_version}
|
||||
%stop_on_removal squid
|
||||
%else
|
||||
if [ $1 = 0 ] ; then
|
||||
service squid stop >/dev/null 2>&1
|
||||
rm -f /var/log/squid/*
|
||||
/sbin/chkconfig --del squid
|
||||
fi
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%if 0%{?suse_version}
|
||||
%verifyscript
|
||||
%verify_permissions -e %{_sbindir}/basic_pam_auth
|
||||
%verify_permissions -e %{_sbindir}/pinger
|
||||
%verify_permissions -e %{_localstatedir}/cache/squid/
|
||||
%verify_permissions -e %{_localstatedir}/log/squid/
|
||||
%endif
|
||||
|
||||
%postun
|
||||
%if 0%{?has_systemd}
|
||||
%service_del_postun squid.service
|
||||
%else
|
||||
%if 0%{?suse_version}
|
||||
%restart_on_update squid
|
||||
%insserv_cleanup
|
||||
%else
|
||||
if [ "$1" -ge "1" ] ; then
|
||||
service squid condrestart >/dev/null 2>&1
|
||||
fi
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
@ -400,14 +257,10 @@ end
|
||||
%doc README.kerberos
|
||||
%doc doc/contrib doc/scripts
|
||||
%doc doc/debug-sections.txt src/%{name}.conf.default
|
||||
%doc %{_mandir}/man?/*
|
||||
%if 0%{?has_systemd}
|
||||
%{_mandir}/man?/*
|
||||
%{_unitdir}/%{name}.service
|
||||
%{squidlibdir}/initialize_cache_if_needed.sh
|
||||
%{squidlibdir}/cache_dir.sed
|
||||
%else
|
||||
%{_sysconfdir}/init.d/%{name}
|
||||
%endif
|
||||
%verify(not user group mode) %attr(750,%{name},root) %dir %{_localstatedir}/cache/%{name}/
|
||||
%verify(not user group mode) %attr(750,%{name},root) %dir %{_localstatedir}/log/%{name}/
|
||||
%dir %{squidconfdir}
|
||||
@ -422,9 +275,6 @@ end
|
||||
%config %{squidconfdir}/%{name}.conf.default
|
||||
%config %{squidconfdir}/%{name}.conf.documented
|
||||
%config %{_sysconfdir}/pam.d/%{name}
|
||||
%if 0%{?suse_version} < 1140
|
||||
%config %{_sysconfdir}/permissions.d/%{name}
|
||||
%endif
|
||||
%dir %{_datadir}/%{name}
|
||||
%dir %{_datadir}/snmp
|
||||
%dir %{_datadir}/snmp/mibs
|
||||
@ -440,26 +290,16 @@ end
|
||||
%{_sbindir}/basic_getpwnam_auth
|
||||
%{_sbindir}/basic_ldap_auth
|
||||
%{_sbindir}/digest_edirectory_auth
|
||||
## will get removed in 3.6 series
|
||||
# http://www.squid-cache.org/Versions/v3/3.5/RELEASENOTES.html#toc2.8
|
||||
%{_sbindir}/basic_msnt_multi_domain_auth
|
||||
##
|
||||
%{_sbindir}/basic_ncsa_auth
|
||||
%{_sbindir}/basic_nis_auth
|
||||
%if 0%{?suse_version} < 1140
|
||||
%{_sbindir}/basic_pam_auth
|
||||
%else
|
||||
%verify(not mode) %attr(2750,root,shadow) %{_sbindir}/basic_pam_auth
|
||||
%endif
|
||||
%{_sbindir}/basic_pop3_auth
|
||||
%{_sbindir}/basic_radius_auth
|
||||
%{_sbindir}/basic_sasl_auth
|
||||
%{_sbindir}/basic_smb_auth
|
||||
%{_sbindir}/basic_smb_auth.sh
|
||||
## basic_msnt_auth has been deprecated and renamed to
|
||||
# http://www.squid-cache.org/Versions/v3/3.5/RELEASENOTES.html#toc2.8
|
||||
%{_sbindir}/basic_smb_lm_auth
|
||||
##
|
||||
%{_sbindir}/cert_tool
|
||||
%{_sbindir}/cert_valid.pl
|
||||
%{_sbindir}/digest_file_auth
|
||||
@ -480,24 +320,15 @@ end
|
||||
%{_sbindir}/negotiate_wrapper_auth
|
||||
%{_sbindir}/ntlm_fake_auth
|
||||
%{_sbindir}/ntlm_smb_lm_auth
|
||||
# not working %%caps(cap_net_raw=ep)
|
||||
%if 0%{?suse_version} < 1140
|
||||
%attr(0750,root,squid) %{_sbindir}/pinger
|
||||
%else
|
||||
%verify(not user group mode caps) %attr(0750,root,squid) %{_sbindir}/pinger
|
||||
%endif
|
||||
%{_sbindir}/%{name}
|
||||
%{_sbindir}/ssl_crtd
|
||||
%{_sbindir}/storeid_file_rewrite
|
||||
%{_sbindir}/unlinkd
|
||||
%{_sbindir}/url_fake_rewrite
|
||||
%{_sbindir}/url_fake_rewrite.sh
|
||||
%if 0%{?suse_version}
|
||||
%{_sbindir}/rc%{name}
|
||||
%{_localstatedir}/adm/fillup-templates/sysconfig.%{name}
|
||||
%else
|
||||
%{_sysconfdir}/sysconfig/%{name}
|
||||
%endif
|
||||
%dir %{_libdir}/%{name}
|
||||
%{_libdir}/%{name}/cachemgr.cgi
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user