Bug 184993 - www/squid33 - fails to build on ^/stable/10
Summary: www/squid33 - fails to build on ^/stable/10
Status: Closed Overcome By Events
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: freebsd-ports-bugs (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-12-19 13:10 UTC by Volodymyr Kostyrko
Modified: 2014-09-04 09:47 UTC (History)
3 users (show)

See Also:


Attachments
squid.patch.txt (1.73 KB, text/plain; charset=UTF-8)
2014-02-13 14:06 UTC, Volodymyr Kostyrko
no flags Details
Patch for www/squid33/files/patch-configure (899 bytes, patch)
2014-06-03 20:56 UTC, Dimitry Andric
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Volodymyr Kostyrko 2013-12-19 13:10:00 UTC
When building some kerberos stuff gets enabled somehow:

--- peer_proxy_negotiate_auth.o ---
peer_proxy_negotiate_auth.cc:259:32: error: 'krb5_princ_realm' is deprecated [-Werror,-Wdeprecated-declarations]
                client_realm = krb5_princ_realm(kparam.context, creds2.client);
                               ^
/usr/include/krb5-protos.h:3251:1: note: 'krb5_princ_realm' declared here
krb5_princ_realm (
^
peer_proxy_negotiate_auth.cc:403:13: error: 'krb5_get_init_creds_opt_init' is deprecated [-Werror,-Wdeprecated-declarations]
            krb5_get_init_creds_opt_init(&options);
            ^
/usr/include/krb5-protos.h:2284:1: note: 'krb5_get_init_creds_opt_init' declared here
krb5_get_init_creds_opt_init (krb5_get_init_creds_opt */*opt*/)
^
2 errors generated.
*** [peer_proxy_negotiate_auth.o] Error code 1

Kerberos and GSSAPI are disabled in options. Enabled options are: ARP_ACL CACHE_DIGESTS FOLLOW_XFF HTCP IPV6 KQUEUE LARGEFILE STRICT_HTTP TP_PF VIA_DB
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2013-12-19 13:10:08 UTC
Responsible Changed
From-To: freebsd-ports-bugs->tmseck

Over to maintainer (via the GNATS Auto Assign Tool)
Comment 2 Volodymyr Kostyrko 2014-02-13 14:06:51 UTC
Hi all.

The core problem to whole this stuff is about how squid is compiled when 
it requires threading support (and AUFS needs pthreads).

Let's see some diffs. The whole difference between this two is FS_AUFS 
is enabled for the +++ and disables for the ---.

--- squid.nobuild       2014-02-13 13:48:44.361353003 +0200
+++ squid.build 2014-02-13 14:24:09.565205775 +0200
@@ -162,7 +162,7 @@
  configure: cbdata debugging enabled: no
  configure: xmalloc stats display: no
  checking for library containing shm_open... none required
-checking for DiskIO modules to be enabled...  AIO Blocking DiskDaemon 
IpcIo Mmapped
+checking for DiskIO modules to be enabled...  AIO Blocking DiskDaemon 
IpcIo Mmapped DiskThreads
  checking aio.h usability... yes
  checking aio.h presence... yes
  checking for aio.h... yes
@@ -173,8 +173,10 @@
  configure: Enabling DiskDaemon DiskIO module
  configure: Enabling IpcIo DiskIO module
  configure: Enabling Mmapped DiskIO module
+configure: pthread library requires FreeBSD 7 or later

That's a weird one. Like we have no support on 10 for pthreads?

+configure: Native pthreads support disabled. DiskThreads module 
automaticaly disabled.

And that's why aufs stops working.

  configure: IO Modules built:  AIO Blocking DiskDaemon IpcIo Mmapped
-configure: Store modules built:  diskd rock ufs
+configure: Store modules built:  diskd rock ufs aufs
  configure: Removal policies to build: lru heap
  configure: Disabling ESI processor
  checking whether to support eCAP... no, explicitly
@@ -674,7 +676,7 @@
  checking for prctl... no
  checking for pthread_attr_setschedparam... yes
  checking for pthread_attr_setscope... yes
-checking for pthread_setschedparam... no
+checking for pthread_setschedparam... yes
  checking for pthread_sigmask... yes
  checking for putenv... (cached) yes
  checking for random... (cached) yes
@@ -743,9 +745,9 @@
  configure: BUILD OBJECTS:
  configure: BUILD EXTRA OBJECTS:
  configure: BUILD C FLAGS:  -O2 -pipe -march=native 
-fno-strict-aliasing -I/usr/local/include
-configure: BUILD EXTRA C FLAGS:  -Werror -Qunused-arguments
+configure: BUILD EXTRA C FLAGS:
  configure: BUILD C++ FLAGS:  -O2 -pipe -march=native 
-fno-strict-aliasing -Wno-unused-private-field -std=c++0x 
-I/usr/local/include
-configure: BUILD EXTRA C++ FLAGS:  -Werror -Qunused-arguments
+configure: BUILD EXTRA C++ FLAGS:

And those two are about why squid can't build withous AUFS. -Werror 
chimes in and thrashes whole thing.

  configure: creating ./config.status
  config.status: creating Makefile
  config.status: creating compat/Makefile

The tiny patch attached fixes wording around AUFS (ie stops calling it 
async) and disables by default DISKD and ROCK storages (as they seem to 
fail anyway).

-- 
Sphinx of black quartz, judge my vow.
Comment 3 Dimitry Andric freebsd_committer freebsd_triage 2014-02-13 15:33:17 UTC
On 13 Feb 2014, at 15:06, Volodymyr Kostyrko <arcade@b1t.name> wrote:
> 
> The core problem to whole this stuff is about how squid is compiled when it requires threading support (and AUFS needs pthreads).

...
> 
> +configure: pthread library requires FreeBSD 7 or later
> 
> That's a weird one. Like we have no support on 10 for pthreads?


It's a bug in Squid's configure script, see this earlier thread:

http://lists.freebsd.org/pipermail/freebsd-ports/2014-February/089768.html

-Dimitry
Comment 4 Dimitry Andric freebsd_committer freebsd_triage 2014-06-03 20:56:22 UTC
Created attachment 143344 [details]
Patch for www/squid33/files/patch-configure

Here is the patch referred to in comment 3.  This adds another hunk to the patch file for Squid's configure script, making it correctly detect FreeBSD 10.0 and later.
Comment 5 John Marino freebsd_committer freebsd_triage 2014-08-13 06:45:34 UTC
The maintainer has been reset in all squid ports, throw squid PRs back on heap
Comment 6 John Marino freebsd_committer freebsd_triage 2014-08-13 06:56:29 UTC
it's building now:
http://portsmon.freebsd.org/portoverview.py?category=www&portname=squid33
Comment 7 Volodymyr Kostyrko 2014-08-13 14:06:38 UTC
I'll recheck...
Comment 8 Volodymyr Kostyrko 2014-08-13 14:31:45 UTC
Funny. Currently build fails on two different machines with:

===>  Building for squid33-3.3.11_2
Making all in compat
c++ -DHAVE_CONFIG_H  -I.. -I../include -I../lib  -I../src -I../include   -I/usr/include  -I/usr/include -I../libltdl   -I/usr/include  -I/usr/include -Werror -Qunused-arguments -O2 -pipe -march=native -fno-strict-aliasing  -Wno-unused-private-field -std=c++0x -I/usr/local/include -MT assert.o -MD -MP -MF .deps/assert.Tpo -c -o assert.o assert.cc
In file included from assert.cc:32:
In file included from ../include/squid.h:66:
In file included from ../compat/compat.h:61:
../compat/os/hpux.h:1:9: error: 'SQUID_OS_HPUX_H' is used as a header guard here, followed by #define of a different macro [-Werror,-Wheader-guard]
#ifndef SQUID_OS_HPUX_H
        ^~~~~~~~~~~~~~~
../compat/os/hpux.h:2:9: note: 'SQUID_OS_PHUX_H' is defined here; did you mean 'SQUID_OS_HPUX_H'?
#define SQUID_OS_PHUX_H
        ^~~~~~~~~~~~~~~
        SQUID_OS_HPUX_H
1 error generated.
*** [assert.o] Error code 1

Enabled options: CACHE_DIGESTS FOLLOW_XFF HTCP IPV6 KQUEUE LARGEFILE STRICT_HTTP TP_PF VIA_DB.
Comment 9 Pavel Timofeev 2014-08-22 11:37:38 UTC
(In reply to arcade from comment #0)
> When building some kerberos stuff gets enabled somehow:
> 
> --- peer_proxy_negotiate_auth.o ---
> peer_proxy_negotiate_auth.cc:259:32: error: 'krb5_princ_realm' is deprecated
> [-Werror,-Wdeprecated-declarations]
>                 client_realm = krb5_princ_realm(kparam.context,
> creds2.client);
>                                ^
> /usr/include/krb5-protos.h:3251:1: note: 'krb5_princ_realm' declared here
> krb5_princ_realm (
> ^
> peer_proxy_negotiate_auth.cc:403:13: error: 'krb5_get_init_creds_opt_init'
> is deprecated [-Werror,-Wdeprecated-declarations]
>             krb5_get_init_creds_opt_init(&options);
>             ^
> /usr/include/krb5-protos.h:2284:1: note: 'krb5_get_init_creds_opt_init'
> declared here
> krb5_get_init_creds_opt_init (krb5_get_init_creds_opt */*opt*/)
> ^
> 2 errors generated.
> *** [peer_proxy_negotiate_auth.o] Error code 1
> 
> Kerberos and GSSAPI are disabled in options. Enabled options are: ARP_ACL
> CACHE_DIGESTS FOLLOW_XFF HTCP IPV6 KQUEUE LARGEFILE STRICT_HTTP TP_PF VIA_DB

This is still actual, but only on FreeBSD 10+.

(In reply to arcade from comment #8)
> Funny. Currently build fails on two different machines with:
> 
> ===>  Building for squid33-3.3.11_2
> Making all in compat
> c++ -DHAVE_CONFIG_H  -I.. -I../include -I../lib  -I../src -I../include  
> -I/usr/include  -I/usr/include -I../libltdl   -I/usr/include  -I/usr/include
> -Werror -Qunused-arguments -O2 -pipe -march=native -fno-strict-aliasing 
> -Wno-unused-private-field -std=c++0x -I/usr/local/include -MT assert.o -MD
> -MP -MF .deps/assert.Tpo -c -o assert.o assert.cc
> In file included from assert.cc:32:
> In file included from ../include/squid.h:66:
> In file included from ../compat/compat.h:61:
> ../compat/os/hpux.h:1:9: error: 'SQUID_OS_HPUX_H' is used as a header guard
> here, followed by #define of a different macro [-Werror,-Wheader-guard]
> #ifndef SQUID_OS_HPUX_H
>         ^~~~~~~~~~~~~~~
> ../compat/os/hpux.h:2:9: note: 'SQUID_OS_PHUX_H' is defined here; did you
> mean 'SQUID_OS_HPUX_H'?
> #define SQUID_OS_PHUX_H
>         ^~~~~~~~~~~~~~~
>         SQUID_OS_HPUX_H
> 1 error generated.
> *** [assert.o] Error code 1
> 
> Enabled options: CACHE_DIGESTS FOLLOW_XFF HTCP IPV6 KQUEUE LARGEFILE
> STRICT_HTTP TP_PF VIA_DB.

How did you get this error messages?

Does it help?
--- compat/os/hpux.h.orig       2014-08-22 15:33:54.000000000 +0400
+++ compat/os/hpux.h    2014-08-22 15:34:10.000000000 +0400
@@ -1,5 +1,5 @@
 #ifndef SQUID_OS_HPUX_H
-#define SQUID_OS_PHUX_H
+#define SQUID_OS_HPUX_H

 #if _SQUID_HPUX_
Comment 10 Pavel Timofeev 2014-08-25 07:17:07 UTC
arcade@b1t.name, can you try this one?
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=192983
I hope it solves your initial error message.
Comment 11 Volodymyr Kostyrko 2014-09-04 09:47:30 UTC
1. When I was fixing PHUX it just failed later on some cryptic messages. I think taht was rather some autoconf stuff.

2. And yes, now on 3.3.13 everything works perfectly.