From b310b1daf8793b948719175b3de813bcb2e350ce Mon Sep 17 00:00:00 2001 From: Jackie Huang Date: Tue, 14 Oct 2014 02:56:08 -0400 Subject: squid: add new recipe squid is a fully-featured http proxy and web-cache daemon for Linux. Signed-off-by: Jackie Huang Signed-off-by: Martin Jansa --- .../Add-default-entry-for-cross-compile.patch | 31 +++++++++++ ...-ksh-reference-in-krb-ldap-helper-to-bash.patch | 29 ++++++++++ ...flawed-dynamic-ldb-link-test-in-configure.patch | 43 +++++++++++++++ .../squid/files/Set-up-for-cross-compilation.patch | 29 ++++++++++ .../squid/files/Skip-AC_RUN_IFELSE-tests.patch | 64 ++++++++++++++++++++++ .../recipes-daemons/squid/files/run-ptest | 3 + ...d-use-serial-tests-config-needed-by-ptest.patch | 31 +++++++++++ .../recipes-daemons/squid/files/volatiles.03_squid | 2 + .../recipes-daemons/squid/squid_3.4.7.bb | 64 ++++++++++++++++++++++ 9 files changed, 296 insertions(+) create mode 100644 meta-networking/recipes-daemons/squid/files/Add-default-entry-for-cross-compile.patch create mode 100644 meta-networking/recipes-daemons/squid/files/Change-ksh-reference-in-krb-ldap-helper-to-bash.patch create mode 100644 meta-networking/recipes-daemons/squid/files/Fix-flawed-dynamic-ldb-link-test-in-configure.patch create mode 100644 meta-networking/recipes-daemons/squid/files/Set-up-for-cross-compilation.patch create mode 100644 meta-networking/recipes-daemons/squid/files/Skip-AC_RUN_IFELSE-tests.patch create mode 100644 meta-networking/recipes-daemons/squid/files/run-ptest create mode 100644 meta-networking/recipes-daemons/squid/files/squid-use-serial-tests-config-needed-by-ptest.patch create mode 100644 meta-networking/recipes-daemons/squid/files/volatiles.03_squid create mode 100644 meta-networking/recipes-daemons/squid/squid_3.4.7.bb diff --git a/meta-networking/recipes-daemons/squid/files/Add-default-entry-for-cross-compile.patch b/meta-networking/recipes-daemons/squid/files/Add-default-entry-for-cross-compile.patch new file mode 100644 index 0000000000..5f845bb4cd --- /dev/null +++ b/meta-networking/recipes-daemons/squid/files/Add-default-entry-for-cross-compile.patch @@ -0,0 +1,31 @@ +From faa212a4e0aaf442ff58fca50770a8fadc1038e3 Mon Sep 17 00:00:00 2001 +Message-Id: +From: Jim Somerville +Date: Thu, 17 Oct 2013 16:17:48 -0400 +Subject: [PATCH 1/1] Add default entry for cross compile + +Signed-off-by: Jim Somerville +--- + acinclude/krb5.m4 | 6 +++++- + 1 files changed, 5 insertions(+), 1 deletions(-) + +diff --git a/acinclude/krb5.m4 b/acinclude/krb5.m4 +index 5d9ac36..7a072a2 100644 +--- a/acinclude/krb5.m4 ++++ b/acinclude/krb5.m4 +@@ -82,7 +82,11 @@ main(void) + + return 0; + } +-]])], [ squid_cv_broken_heimdal_krb5_h=yes ], [ squid_cv_broken_heimdal_krb5_h=no ]) ++]])], [ squid_cv_broken_heimdal_krb5_h=yes ], [ squid_cv_broken_heimdal_krb5_h=no ], ++[ ++ dnl Can't test in cross compiled env - so assume good ++ squid_cv_broken_heimdal_krb5_h=no ++]) + ], + [ + dnl Can't test in cross compiled env - so assume good +-- +1.7.4.1 + diff --git a/meta-networking/recipes-daemons/squid/files/Change-ksh-reference-in-krb-ldap-helper-to-bash.patch b/meta-networking/recipes-daemons/squid/files/Change-ksh-reference-in-krb-ldap-helper-to-bash.patch new file mode 100644 index 0000000000..6591d5c6f7 --- /dev/null +++ b/meta-networking/recipes-daemons/squid/files/Change-ksh-reference-in-krb-ldap-helper-to-bash.patch @@ -0,0 +1,29 @@ +From 37da4010f41d936c2c727fc32adab832bdde9bec Mon Sep 17 00:00:00 2001 +Message-Id: <37da4010f41d936c2c727fc32adab832bdde9bec.1382481765.git.Jim.Somerville@windriver.com> +From: Jim Somerville +Date: Tue, 22 Oct 2013 18:39:39 -0400 +Subject: [PATCH 1/1] Change ksh reference in krb ldap helper to bash + +Very simple cert_tool script with no ksh specifics. +Change it to use bash so a package dependency doesn't +get created to ksh. + +Signed-off-by: Jim Somerville +--- + helpers/external_acl/kerberos_ldap_group/cert_tool | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/helpers/external_acl/kerberos_ldap_group/cert_tool b/helpers/external_acl/kerberos_ldap_group/cert_tool +index 9f14959..b61be5d 100644 +--- a/helpers/external_acl/kerberos_ldap_group/cert_tool ++++ b/helpers/external_acl/kerberos_ldap_group/cert_tool +@@ -1,4 +1,5 @@ +-#!/bin/ksh ++#!/bin/bash ++# The above was originally ksh + # + # ----------------------------------------------------------------------------- + # +-- +1.7.4.1 + diff --git a/meta-networking/recipes-daemons/squid/files/Fix-flawed-dynamic-ldb-link-test-in-configure.patch b/meta-networking/recipes-daemons/squid/files/Fix-flawed-dynamic-ldb-link-test-in-configure.patch new file mode 100644 index 0000000000..2304c5f1dd --- /dev/null +++ b/meta-networking/recipes-daemons/squid/files/Fix-flawed-dynamic-ldb-link-test-in-configure.patch @@ -0,0 +1,43 @@ +From 0d5b337ff5ef7dd48f970f08bd95d6327917cfd1 Mon Sep 17 00:00:00 2001 +Message-Id: <0d5b337ff5ef7dd48f970f08bd95d6327917cfd1.1382375807.git.Jim.Somerville@windriver.com> +From: Jim Somerville +Date: Mon, 21 Oct 2013 12:50:44 -0400 +Subject: [PATCH 1/1] Fix flawed dynamic -ldb link test in configure + +The test uses dbopen, but just ignores the fact +that this function may not exist in the db version +used. This leads to the dynamic link test failing +and the configure script just making assumptions +about why and setting the need for -ldb incorrectly. + +Signed-off-by: Jim Somerville +--- + configure.ac | 12 ++++++++++-- + 1 files changed, 10 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 962a748..42e6a93 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3051,8 +3051,16 @@ AC_CHECK_DECL(dbopen,,,[ + #include + #endif]) + +-dnl 1.85 +-SQUID_CHECK_DBOPEN_NEEDS_LIBDB ++if test "x$ac_cv_have_decl_dbopen" = "xyes"; then ++ dnl 1.85 ++ SQUID_CHECK_DBOPEN_NEEDS_LIBDB ++else ++ # dbopen isn't there. So instead of running a compile/link test that ++ # uses it and is thus guaranteed to fail, we just assume that we will ++ # need to link in the db library, rather than fabricate some other ++ # dynamic compile/link test. ++ ac_cv_dbopen_libdb="yes" ++fi + if test "x$ac_cv_dbopen_libdb" = "xyes"; then + LIB_DB="-ldb" + fi +-- +1.7.4.1 + diff --git a/meta-networking/recipes-daemons/squid/files/Set-up-for-cross-compilation.patch b/meta-networking/recipes-daemons/squid/files/Set-up-for-cross-compilation.patch new file mode 100644 index 0000000000..4ca27444a4 --- /dev/null +++ b/meta-networking/recipes-daemons/squid/files/Set-up-for-cross-compilation.patch @@ -0,0 +1,29 @@ +From 17e5a28667f667859c48bee25e575a072d39ee1b Mon Sep 17 00:00:00 2001 +Message-Id: <17e5a28667f667859c48bee25e575a072d39ee1b.1381956170.git.Jim.Somerville@windriver.com> +From: Jim Somerville +Date: Wed, 16 Oct 2013 16:41:03 -0400 +Subject: [PATCH 1/1] Set up for cross compilation + +Set the host compiler to BUILD_CXX so +proper cross compilation can occur. + +Signed-off-by: Jim Somerville +--- + configure.ac | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/configure.ac b/configure.ac +index c2d3033..dda9ed9 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -19,6 +19,7 @@ m4_include([acinclude/lib-checks.m4]) + m4_include([acinclude/ax_cxx_compile_stdcxx_0x.m4]) + m4_include([acinclude/ax_cxx_0x_types.m4]) + ++HOSTCXX="$BUILD_CXX" + PRESET_CFLAGS="$CFLAGS" + PRESET_CXXFLAGS="$CXXFLAGS" + PRESET_LDFLAGS="$LDFLAGS" +-- +1.7.4.1 + diff --git a/meta-networking/recipes-daemons/squid/files/Skip-AC_RUN_IFELSE-tests.patch b/meta-networking/recipes-daemons/squid/files/Skip-AC_RUN_IFELSE-tests.patch new file mode 100644 index 0000000000..7b6dcc820d --- /dev/null +++ b/meta-networking/recipes-daemons/squid/files/Skip-AC_RUN_IFELSE-tests.patch @@ -0,0 +1,64 @@ +Subject: [PATCH] Skip AC_RUN_IFELSE tests + +Upstream-Status: Inappropriate [cross compiling specific] + +Such tests are not supported in a cross compile +environment. Choose sane defaults. + +Signed-off-by: Jim Somerville +Signed-off-by: Jackie Huang +--- + acinclude/krb5.m4 | 10 +++++++++- + acinclude/lib-checks.m4 | 8 ++++++-- + 2 files changed, 15 insertions(+), 3 deletions(-) + +diff --git a/acinclude/krb5.m4 b/acinclude/krb5.m4 +index 946bea8..7a072a2 100644 +--- a/acinclude/krb5.m4 ++++ b/acinclude/krb5.m4 +@@ -82,7 +82,15 @@ main(void) + + return 0; + } +-]])], [ squid_cv_broken_heimdal_krb5_h=yes ], [ squid_cv_broken_heimdal_krb5_h=no ]) ++]])], [ squid_cv_broken_heimdal_krb5_h=yes ], [ squid_cv_broken_heimdal_krb5_h=no ], ++[ ++ dnl Can't test in cross compiled env - so assume good ++ squid_cv_broken_heimdal_krb5_h=no ++]) ++ ], ++ [ ++ dnl Can't test in cross compiled env - so assume good ++ squid_cv_broken_heimdal_krb5_h=no + ]) + ]) + ]) dnl SQUID_CHECK_KRB5_HEIMDAL_BROKEN_KRB5_H +diff --git a/acinclude/lib-checks.m4 b/acinclude/lib-checks.m4 +index 2bf98ee..50dba9b 100644 +--- a/acinclude/lib-checks.m4 ++++ b/acinclude/lib-checks.m4 +@@ -128,7 +128,9 @@ AC_DEFUN([SQUID_CHECK_OPENSSL_GETCERTIFICATE_WORKS],[ + AC_DEFINE(SQUID_SSLGETCERTIFICATE_BUGGY, 1) + AC_MSG_RESULT([yes]) + ], +- []) ++ [ ++ AC_MSG_RESULT([skipped - can't test in cross-compiled env]) ++ ]) + + AC_MSG_CHECKING(whether the workaround for SSL_get_certificate works) + AC_RUN_IFELSE([ +@@ -154,7 +156,9 @@ AC_DEFUN([SQUID_CHECK_OPENSSL_GETCERTIFICATE_WORKS],[ + [ + AC_MSG_RESULT([no]) + ], +-[]) ++[ ++ AC_MSG_RESULT([skipped - can't test in cross-compiled env]) ++]) + + SQUID_STATE_ROLLBACK(check_SSL_get_certificate) + ]) +-- +1.7.1 + diff --git a/meta-networking/recipes-daemons/squid/files/run-ptest b/meta-networking/recipes-daemons/squid/files/run-ptest new file mode 100644 index 0000000000..de79a293c5 --- /dev/null +++ b/meta-networking/recipes-daemons/squid/files/run-ptest @@ -0,0 +1,3 @@ +#!/bin/sh +# +make -C test-suite -k runtest-TESTS diff --git a/meta-networking/recipes-daemons/squid/files/squid-use-serial-tests-config-needed-by-ptest.patch b/meta-networking/recipes-daemons/squid/files/squid-use-serial-tests-config-needed-by-ptest.patch new file mode 100644 index 0000000000..9e2ceab880 --- /dev/null +++ b/meta-networking/recipes-daemons/squid/files/squid-use-serial-tests-config-needed-by-ptest.patch @@ -0,0 +1,31 @@ +From 2192fdbc90b0ff2d5408e8763df200620870deea Mon Sep 17 00:00:00 2001 +From: Jackie Huang +Date: Mon, 13 Oct 2014 01:32:37 -0700 +Subject: [PATCH] squid: use serial-tests config needed by ptest + +ptest needs buildtest-TESTS and runtest-TESTS targets. +serial-tests is required to generate those targets. + +Upstream-Status: Inappropriate [default automake behavior incompatible with ptest] + +Signed-off-by: Jackie Huang +--- + configure.ac | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 6f7171f..ab9b93e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3,7 +3,7 @@ AC_PREREQ(2.61) + AC_CONFIG_HEADERS([include/autoconf.h]) + AC_CONFIG_AUX_DIR(cfgaux) + AC_CONFIG_SRCDIR([src/main.cc]) +-AM_INIT_AUTOMAKE([tar-ustar nostdinc]) ++AM_INIT_AUTOMAKE([tar-ustar nostdinc serial-tests]) + AC_REVISION($Revision$)dnl + AC_PREFIX_DEFAULT(/usr/local/squid) + AM_MAINTAINER_MODE +-- +1.7.1 + diff --git a/meta-networking/recipes-daemons/squid/files/volatiles.03_squid b/meta-networking/recipes-daemons/squid/files/volatiles.03_squid new file mode 100644 index 0000000000..b96865d731 --- /dev/null +++ b/meta-networking/recipes-daemons/squid/files/volatiles.03_squid @@ -0,0 +1,2 @@ +# +d squid squid 0755 /var/run/squid none diff --git a/meta-networking/recipes-daemons/squid/squid_3.4.7.bb b/meta-networking/recipes-daemons/squid/squid_3.4.7.bb new file mode 100644 index 0000000000..37e4bba9ef --- /dev/null +++ b/meta-networking/recipes-daemons/squid/squid_3.4.7.bb @@ -0,0 +1,64 @@ +SUMMARY = "A fully-featured http proxy and web-cache daemon for Linux" +DESCRIPTION = "A fully-featured http proxy and web-cache daemon for Linux. \ +Squid offers a rich access control, authorization and logging environment to \ +develop web proxy and content serving applications. \ +Squid offers a rich set of traffic optimization options, most of which are \ +enabled by default for simpler installation and high performance. \ +" +HOMEPAGE = "http://www.squid-cache.org" +SECTION = "network" +LICENSE = "GPLv2+" + +MAJ_VER = "${@oe.utils.trim_version("${PV}", 1)}" +MIN_VER = "${@oe.utils.trim_version("${PV}", 2)}" + +SRC_URI = "http://www.squid-cache.org/Versions/v${MAJ_VER}/${MIN_VER}/${BPN}-${PV}.tar.bz2 \ + file://Set-up-for-cross-compilation.patch \ + file://Skip-AC_RUN_IFELSE-tests.patch \ + file://Fix-flawed-dynamic-ldb-link-test-in-configure.patch \ + file://Change-ksh-reference-in-krb-ldap-helper-to-bash.patch \ + file://squid-use-serial-tests-config-needed-by-ptest.patch \ + file://run-ptest \ + file://volatiles.03_squid \ +" + +LIC_FILES_CHKSUM = "file://COPYING;md5=c492e2d6d32ec5c1aad0e0609a141ce9 \ + file://COPYRIGHT;md5=2900f50789c498be8e9f1eb23b55cbe9 \ + " +SRC_URI[md5sum] = "9951034b10f7ee0f45a95cfae61c57c2" +SRC_URI[sha256sum] = "7b423f3d3495a317503ca559ea535f80445fd7c4e3c3e268cb7a8c97c61af2b6" + +DEPENDS = "libtool krb5 openldap db cyrus-sasl" + +inherit autotools useradd ptest + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = "--system --no-create-home --home-dir /var/run/squid --shell /bin/false --user-group squid" + +EXTRA_OECONF += "--with-default-user=squid" + +TESTDIR = "test-suite" +do_compile_ptest() { + oe_runmake -C ${TESTDIR} buildtest-TESTS +} + +do_install_ptest() { + cp -rf ${B}/${TESTDIR} ${D}${PTEST_PATH} + cp -rf ${S}/${TESTDIR} ${D}${PTEST_PATH} + + # do NOT need to rebuild Makefile itself + sed -i 's/^Makefile:.*$/Makefile:/' ${D}${PTEST_PATH}/${TESTDIR}/Makefile +} + +do_install_append() { + install -d ${D}${sysconfdir}/default/volatiles + install -m 0644 ${WORKDIR}/volatiles.03_squid ${D}${sysconfdir}/default/volatiles/volatiles.03_squid + rmdir "${D}${localstatedir}/run/${BPN}" + rmdir --ignore-fail-on-non-empty "${D}${localstatedir}/run" +} + +FILES_${PN} += "${libdir} ${datadir}/errors ${datadir}/icons" +FILES_${PN}-dbg += "/usr/src/debug" +FILES_${PN}-doc += "${datadir}/*.txt" + +RDEPENDS_${PN}-ptest += "make" -- cgit 1.2.3-korg