ports/151837: [patch] sysutils/bsdstats : does honor BATCH when installed from package

Panagiotis Christias p.christias at noc.ntua.gr
Sat Oct 30 20:50:15 UTC 2010


>Number:         151837
>Category:       ports
>Synopsis:       [patch] sysutils/bsdstats : does honor BATCH when installed from package
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat Oct 30 20:50:11 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator:     Panagiotis Christias
>Release:        7.3-RELEASE-p3 amd64
>Organization:
NTUA NOC
>Environment:
FreeBSD builder7-amd64.noc.ntua.gr 7.3-RELEASE-p3 FreeBSD 7.3-RELEASE-p3 #0: Wed Sep 22 15:55:56 EEST 2010     root at agamemnon.noc.ntua.gr:/usr/obj/usr/src/sys/NTUA  amd64
>Description:
Currently, when installing sysutils/bsdstats from package the BATCH variable, if defined, is not honored and the installation requires user input in order to complete.

>How-To-Repeat:
cd /usr/ports/sysutils/bsdstats
env BATCH=1 make install package
make deinstall
env BATCH=1 /usr/ports/packages/Latest/bsdstats.tbz

>Fix:
See attached patch.


Patch attached with submission follows:

# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	bsdstats
#	bsdstats/files
#	bsdstats/files/300.statistics.in
#	bsdstats/files/bsdstats.in
#	bsdstats/files/pkg-message.in
#	bsdstats/files/pkg-install.in
#	bsdstats/Makefile
#	bsdstats/pkg-descr
#	bsdstats/pkg-plist
#
echo c - bsdstats
mkdir -p bsdstats > /dev/null 2>&1
echo c - bsdstats/files
mkdir -p bsdstats/files > /dev/null 2>&1
echo x - bsdstats/files/300.statistics.in
sed 's/^X//' >bsdstats/files/300.statistics.in << 'cada2042a8259c11a0272b68196f6459'
X#!/bin/sh -
X#
X# $FreeBSD: ports/sysutils/bsdstats/files/300.statistics.in,v 1.44 2010/08/19 03:06:13 amdmi3 Exp $
X#
X
X# If there is a global system configuration file, suck it in.
X#
Xif [ -r /etc/defaults/periodic.conf ]
Xthen
X    . /etc/defaults/periodic.conf
X    source_periodic_confs
X    periodic_conf=/etc/periodic.conf
Xelse
X    . /etc/rc.conf	# For systems without periodic.conf, use rc.conf
X    if [ -r /etc/rc.conf.local ] 
X    then
X        . /etc/rc.conf.local
X    fi
X    periodic_conf=/etc/rc.conf.local
Xfi
X
Xoldmask=$(umask)
Xumask 066
Xtimeout=10
X
Xversion="5.5"
Xcheckin_server=${monthly_statistics_checkin_server:-"rpt.bsdstats.org"}
Xbsdstats_log=${monthly_statistics_logfile:-"/var/log/bsdstats"}
Xid_token_file='/var/db/bsdstats'
X
XPATH=/sbin:/bin:/usr/sbin:/usr/bin:%%PREFIX%%/sbin:%%PREFIX%%/bin
Xexport PATH
X
Xunset HTTP_USER_AGENT
X
XIFS="
X"
X
Xrandom () {
X  jot -r 1 0 900
X}
X
X# RFC 2396
Xuri_escape () {
X    echo ${1+$@} | sed -e '
X        s/%/%25/g
X        s/;/%3b/g
X        s,/,%2f,g
X        s/?/%3f/g
X        s/:/%3a/g
X        s/@/%40/g
X        s/&/%26/g
X        s/=/%3d/g
X        s/+/%2b/g
X        s/\$/%24/g
X        s/,/%2c/g
X        s/ /%20/g
X        '
X}
X
Xdo_fetch () {
X    url="http://$checkin_server/scripts/$1"
X    case $(uname) in
X	FreeBSD )	
X		/usr/bin/fetch -T "$timeout" -q -o - "$url"
X		;;
X	* )
X		/usr/bin/ftp -q "$timeout" -V -o - "$url"
X		;;
X    esac
X}
X
Xcheck_dns () {
X    if [ `dig bsdstats.org txt | grep TXT | grep UP | wc -l` = 0 ] 
X    then
X      echo "DNS not reachable, Network Down?"
X      exit
X    fi
X}
X
Xsend_devices () {
X    case $(uname) in
X	FreeBSD )
X	    for line in `/usr/sbin/pciconf -l`
X	    do
X	      DRIVER=`echo $line | awk -F\@ '{print $1}'`
X	      DEV=`echo $line | awk '{print $4}' | cut -c8-15`
X	      CLASS=`echo $line | awk '{print $2}' | cut -c9-14`
X	      query_string=$query_string`echo \&dev[]=$DRIVER:$DEV:$CLASS`
X	    done
X
X	    report_devices
X	    ;;
X	* )
X	    # Not supported
X	    ;;
X    esac
X}
X
Xsend_ports () {
X    case $(uname) in
X	FreeBSD )
X	    for line in `/usr/sbin/pkg_info | /usr/bin/awk '{print $1}' `
X	    do
X              category=`grep "@comment ORIGIN" /var/db/pkg/${line}/+CONTENTS | sed -E 's/^\@comment ORIGIN:(.+)\/.+/\1/g'`
X              line=$(uri_escape $line)
X              category=$(uri_escape $category)
X	      query_string=$query_string`echo \&port[]=${category}:${line}`
X	    done
X
X	    report_ports
X	    ;;
X	* )
X	    # Not supported
X	    ;;
X    esac
X}
X
Xreport_ports () {
X	# Handle HTTP proxy services
X	#
X	# HTTP_PROXY/http_proxy can take the following form:
X	#    [http://][username:password@]proxy[:port][/]
X	# Authentication details may also be provided via HTTP_PROXY_AUTH:
X	#    HTTP_PROXY_AUTH="basic:*:username:password"
X	#
X
X	if [ -z "$HTTP_PROXY" -a -n "$http_proxy" ]; then
X		HTTP_PROXY=$http_proxy
X	fi
X	if [ -n "$HTTP_PROXY" ]; then
X		# Attempt to resolve any HTTP authentication
X		if [ -n "$HTTP_PROXY_AUTH" ]; then
X			PROXY_AUTH_USER=`echo $HTTP_PROXY_AUTH | sed -E 's/^.+:\*:(.+):.+$/\1/g'`
X			PROXY_AUTH_PASS=`echo $HTTP_PROXY_AUTH | sed -E 's/^.+:\*:.+:(.+)$/\1/g'`
X		else
X			# Check for authentication within HTTP_PROXY
X			HAS_HTTP_AUTH=`echo $HTTP_PROXY | sed -E 's/^(http:\/\/)?(.+:.+@)?.+/\2/'`
X			if [ -n "$HAS_HTTP_AUTH" ]; then
X				# Found HTTP authentication details
X				PROXY_AUTH_USER=`echo $HAS_HTTP_AUTH | cut -d: -f1`
X				PROXY_AUTH_PASS=`echo $HAS_HTTP_AUTH | cut -d: -f2`
X			fi
X		fi
X
X		# Determine the proxy components
X		PROXY_HOST=`echo $HTTP_PROXY | sed -E 's/^(http:\/\/)?(.+:.+@)?([^@:]+)(:.+)?/\3/'`
X		PROXY_PORT=`echo $HTTP_PROXY | sed -E 's/^(http:\/\/)?(.+:.+@)?(.+):([0-9]+)/\4/' | sed -e 's/[^0-9]//g'`
X		if [ -z "$PROXY_PORT" ]; then
X			# Use default proxy port
X			PROXY_PORT=3128
X		fi
X	fi
X
X	# Determine the host/port netcat should connect to
X	if [ -n "$PROXY_HOST" -a -n "$PROXY_PORT" ]; then
X		nc_host=$PROXY_HOST
X		nc_port=$PROXY_PORT
X		url_prefix="http://${checkin_server}"
X	else
X		nc_host=$checkin_server
X		nc_port=80
X	fi
X
X	# Proxy authentication, if required
X	if [ -n "$PROXY_AUTH_USER" -a -n "$PROXY_AUTH_PASS" ]; then
X		auth_base64=`echo "$PROXY_AUTH_USER:$PROXY_AUTH_PASS" | openssl base64`
X		proxy_auth="Proxy-Authorization: Basic $auth_base64
X"
X	fi
X
X
X	# Make the request	
X	string_length=`echo ${query_string} | wc -m` 
X	string_length=`expr ${string_length} - 1`
X
X	echo "POST ${url_prefix}/scripts/report_ports.php HTTP/1.0
XHost: ${checkin_server}
XUser-Agent: bsdstats ${version}
XConnection: close
X${proxy_auth}Content-Type: application/x-www-form-urlencoded
XContent-Length: ${string_length}
X
Xtoken=${TOKEN}&key=${KEY}${query_string}" | \
X		nc $nc_host $nc_port  | \
X		grep STATUS= | {
X          local IFS
X          IFS='= 
X'
X
X           while read var val
X             do  
X             case $var in
X                 STATUS)
X                     if [ $val = "OK" ]
X                     then
X                       echo "[`date`] System Ports reported"
X                     else
X                       echo "[`date`] System Ports not reported, exiting"
X                       exit
X                     fi
X                 ;; 
X                 *)
X                     echo "[`date`] Error with fetch to server"
X                     exit
X                 ;;
X                 esac
X           done   
X       } >> $bsdstats_log
X
X}
X
Xreport_devices () {
X      do_fetch report_devices.php?token=$TOKEN\&key=$KEY$query_string | { 
X          local IFS
X          IFS='=
X'
X
X           while read var val
X             do
X             case $var in
X                 STATUS)
X                     if [ $val = "OK" ]
X                     then
X                       echo "[`date`] System Devices reported"
X                     else
X                       echo "[`date`] System Devices not reported, exiting"
X                       exit
X                     fi
X                 ;;
X                 *)
X                     echo "[`date`] Error with fetch to server"
X                     exit
X                 ;;
X                 esac
X           done  
X       } >> $bsdstats_log
X}
X
Xget_id_token () {
X    if [ -f $id_token_file ]
X    then
X      if [ `wc -l < $id_token_file` -lt 3 ] 
X      then
X        rm $id_token_file
X      fi
X    fi
X
X    if [ ! -f $id_token_file -o ! -s $id_token_file ] ;
X    then
X       IDTOKEN=$(uri_escape $( openssl rand -base64 32 ) )
X       
X       idf=$( mktemp "$id_token_file.XXXXXX" )  && \
X       chown root:wheel $idf          && \
X       chmod 600 $idf
X
X       do_fetch getid.php?key=$IDTOKEN | {
X          local IFS
X          IFS='=
X'
X
X	   while read var val 
X	     do  
X	     case $var in
X		 KEY)
X                     echo "KEY=$val"
X		 ;;
X		 TOKEN)
X                     echo "TOKEN=$val"
X		 ;;
X		 *)
X                 ;;
X		 esac
X	   done
X           echo "VERSION=$version"
X       } > $idf                                  && \
X
X       mv $idf $id_token_file
X       if [ ! -s $id_token_file ] ;
X       then
X    	  echo "Nothing returned from $checkin_server"
X	  exit 1
X       fi
X    fi
X    . $id_token_file
X    KEY=$( uri_escape $KEY )
X    TOKEN=$( uri_escape $TOKEN )
X}
X
X
Xenable_token () {
X      do_fetch enable_token.php?key=$TOKEN\&token=$KEY | {
X          local IFS
X          IFS='=
X'
X
X           while read var val
X             do
X             case $var in
X                 STATUS)
X                     if [ $val = "OK" ]
X                     then
X                       echo "[`date`] System enabled"
X                     else
X                       echo "[`date`] System not enabled, exiting"
X                       exit
X                     fi
X                 ;;
X                 *)
X                     echo "[`date`] Error with fetch to server"
X                     exit
X                 ;;
X                 esac
X           done  
X       } >> $bsdstats_log
X}
X
Xdisable_token () {
X      do_fetch disable_token.php?key=$TOKEN\&token=$KEY | {
X          local IFS
X          IFS='=
X'
X
X           while read var val
X             do
X             case $var in
X                 STATUS)
X                     if [ $val = "OK" ]
X                     then
X                       echo "[`date`] System disabled"
X                     else
X                       echo "[`date`] System not disabled, exiting"
X                       exit
X                     fi
X                 ;;
X                 *)
X                     echo "[`date`] Error with fetch to server"
X                     exit
X                 ;;
X                 esac
X           done  
X       } >> $bsdstats_log
X}
X
Xreport_system () {
X      do_fetch report_system.php?token=$TOKEN\&key=$KEY\&rel=$REL\&arch=$ARCH\&opsys=$OS | {
X          local IFS
X          IFS='=
X'
X
X           while read var val
X             do
X             case $var in
X                 STATUS)
X                     if [ $val = "OK" ]
X                     then
X                       echo "[`date`] System reported"
X                     else
X                       echo "[`date`] System report failed, exiting"
X                       exit
X                     fi
X                 ;;
X                 *)
X                     echo "[`date`] Error with fetch to server"
X                     exit
X                 ;;
X                 esac
X           done  
X       } >> $bsdstats_log
X}
X
Xreport_cpu () {
X    do_fetch report_cpu.php?token=$TOKEN\&key=$KEY\&cpus=$count\&vendor=$VEN\&cpu_type=$DEV | {
X          local IFS
X          IFS='=
X'
X
X           while read var val
X             do
X             case $var in
X                 STATUS)
X                     if [ $val = "OK" ]
X                     then
X                       echo "[`date`] System CPU reported"
X                     else
X                       echo "[`date`] System CPU report failed, exiting"
X                       exit
X                     fi
X                 ;;
X                 *)
X                     echo "[`date`] Error with fetch to server"
X                     exit
X                 ;;
X                 esac
X           done  
X       } >> $bsdstats_log
X}
Xcase "$monthly_statistics_enable" in
X    [Yy][Ee][Ss])
X      check_dns
X      REL=`/usr/bin/uname -r`
X      ARCH=`/usr/bin/uname -m`
X      OS=`/usr/bin/uname -s`
X      get_id_token
X      test X"$1" = X-nodelay || sleep `random`
X      enable_token
X      report_system
X      echo "Posting monthly OS statistics to $checkin_server"
X      if [ X"$1" != X-nodelay ]; then
X          case "$monthly_statistics_report_devices" in
X              [Yy][Ee][Ss])
X                  send_devices
X                  echo "Posting monthly device statistics to $checkin_server"
X                  line=$( sysctl -n hw.model )
X                  VEN=$( echo $line | cut -d ' ' -f 1 )
X                  DEV=$( uri_escape $( echo $line | cut -d ' ' -f 2- ) )
X                  count=$( sysctl -n hw.ncpu )
X                  report_cpu
X                  echo "Posting monthly CPU statistics to $checkin_server"
X                 ;;
X              *) 
X                 echo "Posting monthly device/CPU statistics disabled"
X                 echo "    set monthly_statistics_report_devices=\"YES\" in $periodic_conf"
X                 ;;
X          esac
X          case "$monthly_statistics_report_ports" in
X              [Yy][Ee][Ss])
X                  send_ports
X                  echo "Posting monthly ports statistics to $checkin_server"
X                 ;;
X              *) 
X                 echo "Posting monthly ports statistics disabled"
X                 echo "    set monthly_statistics_report_ports=\"YES\" in $periodic_conf"
X                 ;;
X          esac
X      fi
X      disable_token
X      ;;
X    *) 
X      echo "Posting monthly OS statistics disabled"
X      echo "    set monthly_statistics_enable=\"YES\" in $periodic_conf"
X    ;;
Xesac
X
Xumask $oldmask
Xexit $rc
cada2042a8259c11a0272b68196f6459
echo x - bsdstats/files/bsdstats.in
sed 's/^X//' >bsdstats/files/bsdstats.in << 'c6fd4a2e3db095ed05ececdac9b0dcc0'
X#!/bin/sh 
X#
X# $FreeBSD: ports/sysutils/bsdstats/files/bsdstats.in,v 1.3 2010/08/19 03:06:13 amdmi3 Exp $
X#
X
X# PROVIDE: bsdstats
X# REQUIRE: LOGIN
X# KEYWORD: shutdown
X
X# bsdstats is disabled by default, if you have configuration file
X#
X# Add the following line to /etc/rc.conf to enable bsdstats:
X#
X#bsdstats_enable="YES"
X#
X
X. /etc/rc.subr
X
Xload_rc_config bsdstats
X
Xname=bsdstats
Xrcvar=`set_rcvar`
X
Xcommand=%%PREFIX%%/etc/periodic/monthly/300.statistics
X
X# default to disable
Xbsdstats_enable=${bsdstats_enable:-"NO"}
Xbsdstats_flags=${bsdstats_flags:-"-nodelay"}
X
Xrun_rc_command "$1"
c6fd4a2e3db095ed05ececdac9b0dcc0
echo x - bsdstats/files/pkg-message.in
sed 's/^X//' >bsdstats/files/pkg-message.in << '1887d3f6146bc5a0dc33d6b0f7263f71'
X
XThis script, meant to be run monthly, submits statistics anonymously
Xto a central checkin server (http://bsdstats.org), in an attempt to
Xgenerate reasonably accurate demographics of both *BSD usage, as well
Xas devices in use.
X
XSteps have been taken to make eliminate security concerns brought up
Xin earlier releases of this, including, but not limited to, not storing
Xanything in the database that has been deemed as 'sensitive' (ie. IP of
Xthe reporting server, and hostname).
X
X********************
XTo enable monthly reporting, edit or create /etc/periodic.conf and add this line:
X	monthly_statistics_enable="YES"
X
XTo enable boottime reporting, edit or create /etc/rc.conf and add this line:
X	bsdstats_enable="YES"
X
XTo enable device reporting, add this line:
X	monthly_statistics_report_devices="YES"
X
XTo enable ports reporting, add this line:
X	monthly_statistics_report_ports="YES"
X
XTo run it manually the first time, just run it as:
X	%%PREFIX%%/etc/periodic/monthly/300.statistics -nodelay
X
XTo view current statistics, go to:
X        http://www.bsdstats.org
X********************
1887d3f6146bc5a0dc33d6b0f7263f71
echo x - bsdstats/files/pkg-install.in
sed 's/^X//' >bsdstats/files/pkg-install.in << '046606ca1c8f79bb0f13b08f3b66301f'
X#!/bin/sh -x
X#
X# pkg-install : based off ${PORTSDIR}/mail/courier/files/pkg-install.in
X#
XLOCALBASE=${LOCALBASE:=/usr/local}
X
Xask() {
X    local question default answer
X
X    question=$1
X    default=$2
X    if [ -z "${PACKAGE_BUILDING}" ]; then
X        read -p "${question} [${default}]? " answer
X    fi
X    if [ -z "${answer}" ]; then
X        answer=${default}
X    fi
X    echo ${answer}
X}
X
Xyesno() {
X    local question default answer
X
X    question=$1
X    default=$2
X    while :; do
X        answer=$(ask "${question}" "${default}")
X        case "${answer}" in
X        [Yy]*)	return 0;;
X        [Nn]*)	return 1;;
X        esac
X        echo "Please answer yes or no."
X    done
X}
X
Xif [ ":$2" = ":POST-INSTALL" ]; then
X    if [ -n "${BATCH}" -o -n "${PACKAGE_BUILDING}" ]; then
X	if [ ":$OSVERSION" != ":" ]; then
X            echo
X            echo "To activate monthly statistics reporting in /etc/periodic.conf,"
X            echo "execute the following as root user:"
X            echo
X            echo "PKG_PREFIX=\"%%PREFIX%%\" %%SH%% %%PKGINSTALL%% %%PKGNAME%% POST-INSTALL"
X            echo
X	fi
X        exit 0
X    fi
X    if [ -f "/etc/periodic.conf" ]; then
X        if [ `grep monthly_statistics /etc/periodic.conf | wc -l` = 0 ]; then
X            if yesno "Would you like to activate monthly reporting in /etc/periodic.conf" n; then
X                echo "monthly_statistics_enable=\"YES\"" >> /etc/periodic.conf
X                if yesno "Would you like to send a list of installed hardware as well" n; then
X                    echo "monthly_statistics_report_devices=\"YES\"" >> /etc/periodic.conf
X                fi
X                if yesno "Would you like to send a list of installed ports as well" n; then
X                    echo "monthly_statistics_report_ports=\"YES\"" >> /etc/periodic.conf
X                fi
X                if yesno "Would you like to run it now" y; then
X                   ${PKG_PREFIX}/etc/periodic/monthly/300.statistics -nodelay
X                fi
X            fi
X        fi
X    elif [ ! -f "/etc/periodic.conf" ]; then
X        if yesno "Would you like to activate monthly reporting in /etc/periodic.conf" n; then
X            echo "monthly_statistics_enable=\"YES\"" >> /etc/periodic.conf
X            if yesno "Would you like to send a list of installed hardware as well" n; then
X                echo "monthly_statistics_report_devices=\"YES\"" >> /etc/periodic.conf
X            fi
X            if yesno "Would you like to send a list of installed ports as well" n; then
X                echo "monthly_statistics_report_ports=\"YES\"" >> /etc/periodic.conf
X            fi
X            if yesno "Would you like to run it now" y; then
X               ${PKG_PREFIX}/etc/periodic/monthly/300.statistics -nodelay
X            fi
X        fi
X    fi
X    if [ -f "/etc/rc.conf" ]; then
X        if [ `grep bsdstats_enable /etc/rc.conf | wc -l` = 0 ]; then
X            echo ""
X            echo "If running as a desktop, or on a laptop, it is recommended that you"
X            echo "enable bsdstats within /etc/rc.conf, so that it will run on reboot."
X            echo ""
X            echo "This will ensure that even if your computer is off when monthly runs,"
X            echo "your computer will be properly counted."
X            echo ""
X            if yesno "Would you like to activate reporting on reboot in /etc/rc.conf" n; then
X                echo "bsdstats_enable=\"YES\"" >> /etc/rc.conf
X            fi
X        fi
X    elif [ ! -f "/etc/rc.conf" ]; then
X        echo ""
X        echo "If running as a desktop, or on a laptop, it is recommended that you"
X        echo "enable bsdstats within /etc/rc.conf, so that it will run on reboot."
X        echo ""
X        echo "This will ensure that even if your computer is off when monthly runs,"
X        echo "your computer will be properly counted."
X        echo ""
X        if yesno "Would you like to activate reporting on reboot in /etc/rc.conf" n; then
X            echo "bsdstats_enable=\"YES\"" >> /etc/rc.conf
X        fi
X    fi
Xfi
X
046606ca1c8f79bb0f13b08f3b66301f
echo x - bsdstats/Makefile
sed 's/^X//' >bsdstats/Makefile << '11d1cbfbb132d8e380b60425bfbbe4dd'
X# New ports collection makefile for:	bsdstats
X# Date created:		5 August 2006
X# Whom:			Marc G. Fournier <scrappy at freebsd.org>
X#
X# $FreeBSD: ports/sysutils/bsdstats/Makefile,v 1.61 2010/08/19 03:06:13 amdmi3 Exp $
X#
X
XPORTNAME=	bsdstats
XPORTVERSION=	5.5
XPORTREVISION=	2
XCATEGORIES=	sysutils
XDISTFILES=
X
XMAINTAINER=	ports at FreeBSD.org
XCOMMENT=	Monthly script for reporting anonymous statistics about your machine
X
XNO_BUILD=	yes
XUSE_RC_SUBR=	bsdstats
XSUB_LIST=	SH=${SH} PKGINSTALL=${PKGINSTALL} PKGNAME=${PKGNAME}
XSUB_FILES=	300.statistics pkg-message pkg-install
X
Xdo-install:
X	${MKDIR} ${PREFIX}/etc/periodic/monthly
X	${INSTALL_SCRIPT} ${WRKDIR}/300.statistics ${PREFIX}/etc/periodic/monthly
Xpost-install:
X	@${CAT} ${PKGMESSAGE}
X	@PKG_PREFIX="${PREFIX}" ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
X
X.include <bsd.port.mk>
11d1cbfbb132d8e380b60425bfbbe4dd
echo x - bsdstats/pkg-descr
sed 's/^X//' >bsdstats/pkg-descr << 'e35709a52408444cd679a2b8a4dd87e5'
XThe purpose of this port is to attempt to produce reasonably accurate
Xstatistics on FreeBSD deployment, to be used for both marketing, and 
Xadvocacy purposes by the project.
X
XThe major problem that we are trying to address is vendors who do not
Xfeel that FreeBSD presents enough of a market to bother supporting.
X
XWWW: http://www.bsdstats.org/
e35709a52408444cd679a2b8a4dd87e5
echo x - bsdstats/pkg-plist
sed 's/^X//' >bsdstats/pkg-plist << '7ec19d3614f27202b23ed58a1d13b5a0'
Xetc/periodic/monthly/300.statistics
X at dirrmtry etc/periodic/monthly
X at dirrmtry etc/periodic
7ec19d3614f27202b23ed58a1d13b5a0
exit



>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list