PR: ports/63652

Synchronize with www/squid.
This commit is contained in:
SADA Kenji 2004-03-23 17:12:47 +00:00
parent ace043a1eb
commit 093f420733
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=105071
4 changed files with 166 additions and 32 deletions

View file

@ -7,10 +7,17 @@
# Tunables not (yet) configurable via 'make config':
# SQUID_{U,G}ID
# Which user/group squid should run as (default: squid/squid).
# The user and group will be created if they do not already exist.
# The user and group will be created if they do not already exist with
# a uid:gid of 100:100.
# NOTE: before version 2.4.7_11, these settings defaulted to
# nobody/nogroup.
# If you wish to keep these settings, please define SQUID_UID=nobody and
# SQUID_GID=nogroup in your make environment before you start the update.
# NOTE2:
# Before version 2.4_12 the numerical id chosen for SQUID_UID (and
# SQUID_GID respectively) was the first free id greater than or equal 3128.
# If you wish to move your squid user to id 100:100, run "make changeuser",
# please see the changeuser target's definition for further information.
#
# SQUID_LANGUAGE
# The set of error pages to be installed. Valid values are:
@ -26,7 +33,7 @@
PORTNAME= squid
PORTVERSION= 2.4
PORTREVISION= 11
PORTREVISION= 12
CATEGORIES= www
MASTER_SITES= \
ftp://ftp.squid-cache.org/pub/%SUBDIR%/ \
@ -47,7 +54,7 @@ PATCH_DIST_STRIP= -p1
MAINTAINER= tmseck@netcologne.de
COMMENT= The successful WWW proxy cache and accelerator
CONFLICTS= squid-*
CONFLICTS= squid-2.[^4]
GNU_CONFIGURE= yes
STRIP= # won't install scripts correctly otherwise.
@ -222,4 +229,50 @@ post-install:
-cd ${PREFIX}/sbin && ${STRIP_CMD} ${sbin}
@${SETENV} PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
changeuser:
# Recover from the problem that earlier versions of this port created the
# squid pseudo-user with an id greater than 999 which is not allowed in
# FreeBSD's ports system. The port now uses id 100:100.
# NOTE:
# This target assumes that SQUID_GID is the primary group of SQUID_UID. If you
# have a different setup, do not run this target!
.if ${SQUID_UID:L} == nobody
@${ECHO_CMD} "'nobody' is a system user, you do not need to execute"; \
${ECHO_CMD} "this target!"
exit 1
.endif
@if [ `id -u` -ne 0 ]; \
then ${ECHO_CMD} "Sorry, you must be root to use this target."; exit 1; fi; \
current_uid=`id -u ${SQUID_UID}`; \
current_gid=`pw groupshow ${SQUID_GID}|cut -f 3 -d :`; \
${ECHO_CMD} "I will remove this user:"; \
id -P $${current_uid}; \
${ECHO_CMD} "and this group:"; \
pw groupshow ${SQUID_GID}; \
${ECHO_CMD} "I will then re-create them with a user and group id of 100."; \
${ECHO_CMD} "Then all files and directories under ${PREFIX} and /var that"; \
${ECHO_CMD} "are owned by uid $${current_uid} will be chown(1)'ed."; \
${ECHO_CMD} "After that, all files and directories that were accessible"; \
${ECHO_CMD} "by group $${current_gid} will chgrp(1)'ed respectively."; \
${ECHO_CMD} "Note that this assumes group '${SQUID_GID}' to be the primary"; \
${ECHO_CMD} "group of user '${SQUID_UID}'. If you have a different setup"; \
${ECHO_CMD} "please abort this target now."; \
read -p "Press RETURN to continue or CTRL-C to abort:" dummy ; \
${ECHO_CMD} "OK, here we go:"; \
${ECHO_CMD} "deleting user $${current_uid} and his primary group..."; \
pw userdel -u $${current_uid}; \
${ECHO_CMD} "adding user ${SQUID_UID} with id 100..."; \
pw groupadd -n ${SQUID_GID} -g 100; \
pw useradd -n ${SQUID_UID} -u 100 -c "squid caching-proxy pseudo user" \
-d ${PREFIX}/squid -s /sbin/nologin -h - ; \
${ECHO_CMD} "chown(1)'ing everything under ${PREFIX} from $${current_uid} to 100..."; \
${FIND} -H ${PREFIX} -user $${current_uid} -exec ${CHOWN} 100 {} \; ; \
${ECHO_CMD} "chgrp(1)'ing everything under ${PREFIX} from $${current_gid} to 100..."; \
${FIND} -H ${PREFIX} -group $${current_gid} -exec ${CHOWN} :100 {} \; ; \
${ECHO_CMD} "chown(1)'ing everything under /var from $${current_uid} to 100..."; \
${FIND} -H /var -user $${current_uid} -exec ${CHOWN} 100 {} \; ; \
${ECHO_CMD} "chgrp(1)'ing everything under /var from $${current_gid} to 100..."; \
${FIND} -H /var -group $${current_gid} -exec ${CHOWN} :100 {} \; ; \
${ECHO_CMD} "Finished."
.include <bsd.port.post.mk>

View file

@ -1,6 +1,6 @@
#!/bin/sh
#
# $FreeBSD: /tmp/pcvs/ports/www/squid24/files/Attic/squid.sh,v 1.4 2004-02-18 12:25:09 sergei Exp $
# $FreeBSD: /tmp/pcvs/ports/www/squid24/files/Attic/squid.sh,v 1.5 2004-03-23 17:12:47 sada Exp $
#
# PROVIDE: squid
# REQUIRE: NETWORKING SERVERS
@ -8,15 +8,13 @@
# KEYWORD: FreeBSD
#
# Note:
# If you are running an rcNG-System (i.e. FreeBSD 5 and later or after
# having installed the rc_subr-port on an earlier system) you must set
# If you are running an rcNG-System (i.e. FreeBSD 5 and later) you need to set
# "squid_enable=YES" in either /etc/rc.conf, /etc/rc.conf.local or
# /etc/rc.conf.d/squid to make this script actually do something. There
# you can also set squid_chdir, squid_user, and squid_flags.
#
# Please see squid(8), rc.conf(5) and rc(8) for further details.
unset rcNG
name="squid"
command=%%PREFIX%%/sbin/squid
extra_commands=reload
@ -28,33 +26,29 @@ stop_cmd="${command} -k shutdown"
default_config=%%PREFIX%%/etc/squid/squid.conf
if [ -f /etc/rc.subr ]; then
. /etc/rc.subr && rcNG=yes
else
if [ -f %%PREFIX%%/etc/rc.subr ]; then
. %%PREFIX%%/etc/rc.subr && rcNG=yes
fi
fi
if [ "${rcNG}" ]; then
# make use of rcNG features:
. /etc/rc.subr
rcvar=`set_rcvar`
load_rc_config ${name}
# check that squid's default configuration is present when
# squid_flags is not set. We assume that you specify at
# least the path to your non-default configuration with
# '-f /path/to/config.file' in squid_flags if you delete this file.
# squid(8) will not start if ${default_config} is not present so try
# to catch that beforehand via ${required_files} rather than make
# squid(8) crash.
# If you remove the default configuration file make sure to add
# '-f /path/to/your/squid.conf' to squid_flags
if [ -z "${squid_flags}" ]; then
required_files=${default_config}
fi
required_dirs=${squid_chdir}
run_rc_command "$1"
else
# implement the startup using the "old style" for non-rcNG-systems:
case $1 in
start)
if [ -x "${command}" -a \
\( -f "${default_config}" -o "${squid_flags}" \) ]; then
\( -f "${default_config}" -o "${squid_flags}" \) ]; then
echo -n ' squid'
(cd ${squid_chdir} && exec su -fm ${squid_user} -c \
"${command} ${squid_flags}")
"${command} ${squid_flags}")
fi
;;
stop)
@ -66,7 +60,7 @@ else
done
fi
;;
*)
*)
echo "usage: `basename $0` {start|stop}" >&2
exit 64
;;

36
www/squid24/pkg-deinstall Normal file
View file

@ -0,0 +1,36 @@
#!/bin/sh
#
# $FreeBSD: /tmp/pcvs/ports/www/squid24/Attic/pkg-deinstall,v 1.1 2004-03-23 17:12:47 sada Exp $
#
PATH=/bin:/usr/bin:/usr/sbin
pkgname=$1
case $2 in
DEINSTALL)
cd ${PKG_PREFIX}/etc/squid || exit 1
for f in squid.conf mime.conf ; do
cmp -s -z ${f} ${f}.default && rm ${f}
done
;;
POST-DEINSTALL)
rmdir ${PKG_PREFIX}/etc/squid 2>/dev/null
rmdir ${PKG_PREFIX}/squid/cache 2>/dev/null
rmdir -p ${PKG_PREFIX}/squid/logs 2>/dev/null
echo "===> post-deinstallation information for ${pkgname}"
echo ""
echo " Please note that ${pkgname} was not completely removed"
echo " from this system."
echo ""
echo " The cache and log directories, squid's user account,"
echo " and any modified configuration files have been preserved"
echo " in case you want to install an updated version of squid"
echo " on this system. You must remove them manually if you do"
echo " not want to use squid any longer."
echo ""
;;
*)
exit 64
;;
esac
exit 0

View file

@ -1,6 +1,6 @@
#!/bin/sh
#
# $FreeBSD: /tmp/pcvs/ports/www/squid24/Attic/pkg-install,v 1.8 2004-02-18 12:25:08 sergei Exp $
# $FreeBSD: /tmp/pcvs/ports/www/squid24/Attic/pkg-install,v 1.9 2004-03-23 17:12:47 sada Exp $
#
PATH=/bin:/usr/bin:/usr/sbin
@ -9,16 +9,19 @@ squid_base=${PKG_PREFIX:-/usr/local}/squid
squid_confdir=${PKG_PREFIX:-/usr/local}/etc/squid
squid_user=${SQUID_USER:=squid}
squid_group=${SQUID_GROUP:=squid}
squid_gid=3128
squid_uid=3128
squid_gid=100
squid_uid=100
# Try to catch the case where the $squid_user might have been created with an
# id greater than or equal 3128. The valid exception is "nobody".
nobody_uid=65534
nobody_gid=65534
squid_oldgid=3128
squid_olduid=3128
unset wrong_id
case $2 in
PRE-INSTALL)
echo "===> Pre-installation configuration for ${pkgname}"
if ! pw groupshow ${squid_group} -q >/dev/null ; then
while pw groupshow -g ${squid_gid} -q >/dev/null; do
squid_gid=`expr ${squid_gid} + 1`
done
echo "There is no group '${squid_group}' on this system, so I will try to create it:"
if ! pw groupadd ${squid_group} -g ${squid_gid} -q ; then
echo "Failed to create group \"${squid_group}\"!" >&2
@ -29,12 +32,15 @@ PRE-INSTALL)
fi
else
echo "I will use the existing group '${squid_group}':"
current_gid=`pw groupshow ${squid_group}|cut -f 3 -d :`
if [ ${current_gid} -ge ${squid_oldgid} \
-a ${current_gid} -ne ${nobody_gid} ]; then
wrong_id=1
fi
fi
pw groupshow ${squid_group}
if ! pw usershow ${squid_user} -q >/dev/null ; then
while pw usershow -u ${squid_uid} -q >/dev/null; do
squid_uid=`expr ${squid_uid} + 1`
done
echo "There is no account '${squid_user}' on this system, so I will try to create it:"
if ! pw useradd ${squid_user} -u ${squid_uid} -q \
-c "squid caching-proxy pseudo user" -g ${squid_group} \
@ -47,8 +53,53 @@ PRE-INSTALL)
fi
else
echo "I will use the existing user '${squid_user}':"
current_uid=`id -u ${squid_user}`
if [ ${current_uid} -ge ${squid_olduid} \
-a ${current_uid} -ne ${nobody_uid} ];
then
wrong_id=1
fi
fi
pw usershow ${squid_user}
if [ "${wrong_id}" ]; then
echo ""
echo " * NOTICE *"
echo ""
echo "The squid pseudo-user's uid and/or gid have been found"
echo "to be greater than or equal 3128."
echo ""
echo "This is not a problem as such, but violates the FreeBSD"
echo "ports' principle that a ports must not claim a uid greater"
echo "than 999."
echo ""
echo "Since version 2.5.4_11, the squid user is thus created"
echo "with an id of ${squid_uid}:${squid_gid} while earlier versions of this"
echo "port used the first unused uid/gid greater than or"
echo "equal 3128."
echo ""
echo "If you want to change the existing squid user's id, run"
echo "'make changeuser' after the installation has completed."
echo "If you installed this port via a package, issue the"
echo "following commands as root:"
echo ""
echo "pw userdel -u ${current_uid}"
echo "pw groupadd -n ${squid_group} -g ${squid_gid}"
echo "pw useradd -n ${squid_user} -u ${squid_uid} \\"
echo " -c \"squid caching-proxy pseudo user\" \\"
echo " -g ${squid_group} -d ${squid_base} -s /sbin/nologin \\"
echo " -h -"
echo "find -H ${PKG_PREFIX} -user ${current_uid} -exec chown ${squid_user} {} \\;"
echo "find -H ${PKG_PREFIX} -group ${current_gid} -exec chgrp ${squid_group} {} \\;"
echo ""
echo "In case you have installed third party software for squid"
echo "like squidGuard, you should additionally run:"
echo "find -H /var -user ${current_uid} -exec chown ${squid_user} {} \\;"
echo "find -H /var -group ${current_gid} -exec chgrp ${squid_group} {} \\;"
echo ""
if [ -z "${PACKAGE_BUILDING}" -a -z "${BATCH}" ]; then
sleep 30
fi
fi
for dir in cache logs; do
if [ ! -d ${squid_base}/${dir} ]; then
echo "Creating ${squid_base}/${dir}..."