From owner-freebsd-ports-bugs@FreeBSD.ORG Sat Oct 30 20:50:15 2010 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7606F10656DE for ; Sat, 30 Oct 2010 20:50:15 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 34AEC8FC15 for ; Sat, 30 Oct 2010 20:50:13 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id o9UKoC82046111 for ; Sat, 30 Oct 2010 20:50:12 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id o9UKoChh046110; Sat, 30 Oct 2010 20:50:12 GMT (envelope-from gnats) Resent-Date: Sat, 30 Oct 2010 20:50:12 GMT Resent-Message-Id: <201010302050.o9UKoChh046110@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Panagiotis Christias Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BB915106564A for ; Sat, 30 Oct 2010 20:48:29 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21]) by mx1.freebsd.org (Postfix) with ESMTP id A84DF8FC12 for ; Sat, 30 Oct 2010 20:48:29 +0000 (UTC) Received: from www.freebsd.org (localhost [127.0.0.1]) by www.freebsd.org (8.14.3/8.14.3) with ESMTP id o9UKmTgK029766 for ; Sat, 30 Oct 2010 20:48:29 GMT (envelope-from nobody@www.freebsd.org) Received: (from nobody@localhost) by www.freebsd.org (8.14.3/8.14.3/Submit) id o9UKmTcm029765; Sat, 30 Oct 2010 20:48:29 GMT (envelope-from nobody) Message-Id: <201010302048.o9UKmTcm029765@www.freebsd.org> Date: Sat, 30 Oct 2010 20:48:29 GMT From: Panagiotis Christias To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Cc: Subject: ports/151837: [patch] sysutils/bsdstats : does honor BATCH when installed from package X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 30 Oct 2010 20:50:15 -0000 >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@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 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@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 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@dirrmtry etc/periodic/monthly X@dirrmtry etc/periodic 7ec19d3614f27202b23ed58a1d13b5a0 exit >Release-Note: >Audit-Trail: >Unformatted: