diff --git a/squid.spec b/squid.spec index 60ef443..7797e99 100644 --- a/squid.spec +++ b/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 -- 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