Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Mar 2015 09:01:47 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-ports-bugs@FreeBSD.org
Subject:   [Bug 198089] New port: www/squid35
Message-ID:  <bug-198089-13-kGrwHnfpJ0@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-198089-13@https.bugs.freebsd.org/bugzilla/>
References:  <bug-198089-13@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=198089

--- Comment #2 from timp87@gmail.com ---
Created attachment 154185
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=154185&action=edit
squid35-11.03.15.shar

Difference between previous shar version:
   - fix install on FreeBSD 9 and 8, I hope;
   - disable gnutls. It affects only squidclient.



The root of build problem is NIS auth helper.
I'm not a smart person here, so, please, don't hit me hard =)

The squid's configure script has code in 31845-31865 lines which decides if we
can build NIS helper:
...
BUILD_HELPER="NIS"
for ac_header in sys/types.h rpc/rpc.h rpcsvc/ypclnt.h rpcsvc/yp_prot.h crypt.h
do :
  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_cxx_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "
#if HAVE_RPC_RPC_H
#include <rpc/rpc.h>
#endif


"
if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF

else
  BUILD_HELPER=""
fi
...

There is a list of headers which must be tried to compile. What's wrong here?
   1. rpcsvc/yp_prot.h can't be compiled on FreeBSD 8, 9 and 10 because of this
active PR https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=188247.
Configure script tells us in config.log:
usr/include/rpcsvc/yp_prot.h:71:15: error: redeclaration of C++ built-in type
'bool'
typedef u_int bool;
              ^
   2. crypt.h can't be compiled on FreeBSD < 10. Yes, I pointed it to right
place, to rpcsvc/crypt.h, see the files/patch-configure_crypt.h.
Configure script tells us in config.log:
/usr/include/rpcsvc/crypt.h:30: error: declaration of 'des_dir
desargs::des_dir'
/usr/include/rpcsvc/crypt.h:20: error: changes meaning of 'des_dir' from
'typedef enum des_dir des_dir'
/usr/include/rpcsvc/crypt.h:31: error: declaration of 'des_mode
desargs::des_mode'
/usr/include/rpcsvc/crypt.h:26: error: changes meaning of 'des_mode' from
'typedef enum des_mode des_mode'


Why it worked in squid 3.4 branch? The result of these header checks wasn't
handled properly. That's all. So I just made the same - returned that broken
behaviour, see the files/patch-configure-NIS.



TODO:
   - rewrite rc script to support running multiple instances
(http://wiki.squid-cache.org/MultipleInstances);
   - provide single_option to build squid with different kerberos
implementations (base, security/heimdal, security/krb5).



Active problems, i.e. why we can't add it to ports tree right now:
   1. In some difficult reproducible cases negotiate_kerberos_auth crashes and
squid starts and stops in loop.
   2. Sometimes squid crashes - "kernel: pid 44436 (squid), uid 100: exited on
signal 6 (core dumped)".

I'm testing squid-3.5 on FreeBSD 10.1-RELEASE amd64.

P.S. I'd highly appreciate any help and ideas! I don't have much time and
skills to investigate the problems, but I'm doing my best.

-- 
You are receiving this mail because:
You are the assignee for the bug.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-198089-13-kGrwHnfpJ0>