aboutsummaryrefslogtreecommitdiff
path: root/sysutils/bsdstats
diff options
context:
space:
mode:
authorDmitry Marakasov <amdmi3@FreeBSD.org>2010-08-19 03:06:13 +0000
committerDmitry Marakasov <amdmi3@FreeBSD.org>2010-08-19 03:06:13 +0000
commitf836db89c8eaa39bb375e67ec3f84c55d6b24261 (patch)
tree243258818f5f4c7edcb45a3c6de2ca06ec9f6c04 /sysutils/bsdstats
parentaf3b87d027fb5627334aa9b2610642e8028beeb6 (diff)
downloadports-f836db89c8eaa39bb375e67ec3f84c55d6b24261.tar.gz
ports-f836db89c8eaa39bb375e67ec3f84c55d6b24261.zip
- Respect LOCALBASE
- Switch to modern style of rc script handling - Installation-related nits PR: 146257 Submitted by: Anonymous <swell.k@gmail.com>
Notes
Notes: svn path=/head/; revision=259558
Diffstat (limited to 'sysutils/bsdstats')
-rw-r--r--sysutils/bsdstats/Makefile12
-rw-r--r--sysutils/bsdstats/files/300.statistics446
-rw-r--r--sysutils/bsdstats/files/300.statistics.in4
-rw-r--r--sysutils/bsdstats/files/bsdstats.in2
-rw-r--r--sysutils/bsdstats/files/bsdstats.sh30
-rw-r--r--sysutils/bsdstats/files/pkg-message.in2
-rw-r--r--sysutils/bsdstats/pkg-message30
-rw-r--r--sysutils/bsdstats/pkg-plist1
8 files changed, 10 insertions, 517 deletions
diff --git a/sysutils/bsdstats/Makefile b/sysutils/bsdstats/Makefile
index 522ea71b545f..e0aaa2000e83 100644
--- a/sysutils/bsdstats/Makefile
+++ b/sysutils/bsdstats/Makefile
@@ -7,6 +7,7 @@
PORTNAME= bsdstats
PORTVERSION= 5.5
+PORTREVISION= 1
CATEGORIES= sysutils
DISTFILES=
@@ -14,15 +15,14 @@ MAINTAINER= ports@FreeBSD.org
COMMENT= Monthly script for reporting anonymous statistics about your machine
NO_BUILD= yes
+USE_RC_SUBR= bsdstats
+SUB_FILES= 300.statistics pkg-message
do-install:
- ${MKDIR} ${LOCALBASE}/etc/periodic/monthly
- ${CP} ${FILESDIR}/300.statistics ${LOCALBASE}/etc/periodic/monthly
- ${CP} ${FILESDIR}/bsdstats.sh ${LOCALBASE}/etc/rc.d
- ${CHMOD} 0755 ${LOCALBASE}/etc/rc.d/bsdstats.sh
- ${CHMOD} 0755 ${LOCALBASE}/etc/periodic/monthly/300.statistics
+ ${MKDIR} ${PREFIX}/etc/periodic/monthly
+ ${INSTALL_SCRIPT} ${WRKDIR}/300.statistics ${PREFIX}/etc/periodic/monthly
post-install:
- ${CAT} ${PKGMESSAGE}
+ @${CAT} ${PKGMESSAGE}
.if defined(BATCH) || defined(PACKAGE_BUILDING)
@${ECHO_MSG} " To activate monthly statistics reporting in /etc/periodic.conf,"
@${ECHO_MSG} " execute the following as root user:"
diff --git a/sysutils/bsdstats/files/300.statistics b/sysutils/bsdstats/files/300.statistics
deleted file mode 100644
index 09485d96085f..000000000000
--- a/sysutils/bsdstats/files/300.statistics
+++ /dev/null
@@ -1,446 +0,0 @@
-#!/bin/sh -
-#
-# $FreeBSD: /tmp/pcvs/ports/sysutils/bsdstats/files/Attic/300.statistics,v 1.42 2009-09-18 21:19:34 pav Exp $
-#
-
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
- periodic_conf=/etc/periodic.conf
-else
- . /etc/rc.conf # For systems without periodic.conf, use rc.conf
- if [ -r /etc/rc.conf.local ]
- then
- . /etc/rc.conf.local
- fi
- periodic_conf=/etc/rc.conf.local
-fi
-
-oldmask=$(umask)
-umask 066
-timeout=10
-
-version="5.5"
-checkin_server=${monthly_statistics_checkin_server:-"rpt.bsdstats.org"}
-bsdstats_log=${monthly_statistics_logfile:-"/var/log/bsdstats"}
-id_token_file='/var/db/bsdstats'
-
-PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
-export PATH
-
-unset HTTP_USER_AGENT
-
-IFS="
-"
-
-random () {
- jot -r 1 0 900
-}
-
-# RFC 2396
-uri_escape () {
- echo ${1+$@} | sed -e '
- s/%/%25/g
- s/;/%3b/g
- s,/,%2f,g
- s/?/%3f/g
- s/:/%3a/g
- s/@/%40/g
- s/&/%26/g
- s/=/%3d/g
- s/+/%2b/g
- s/\$/%24/g
- s/,/%2c/g
- s/ /%20/g
- '
-}
-
-do_fetch () {
- url="http://$checkin_server/scripts/$1"
- case $(uname) in
- FreeBSD )
- /usr/bin/fetch -T "$timeout" -q -o - "$url"
- ;;
- * )
- /usr/bin/ftp -q "$timeout" -V -o - "$url"
- ;;
- esac
-}
-
-check_dns () {
- if [ `dig bsdstats.org txt | grep TXT | grep UP | wc -l` = 0 ]
- then
- echo "DNS not reachable, Network Down?"
- exit
- fi
-}
-
-send_devices () {
- case $(uname) in
- FreeBSD )
- for line in `/usr/sbin/pciconf -l`
- do
- DRIVER=`echo $line | awk -F\@ '{print $1}'`
- DEV=`echo $line | awk '{print $4}' | cut -c8-15`
- CLASS=`echo $line | awk '{print $2}' | cut -c9-14`
- query_string=$query_string`echo \&dev[]=$DRIVER:$DEV:$CLASS`
- done
-
- report_devices
- ;;
- * )
- # Not supported
- ;;
- esac
-}
-
-send_ports () {
- case $(uname) in
- FreeBSD )
- for line in `/usr/sbin/pkg_info | /usr/bin/awk '{print $1}' `
- do
- category=`grep "@comment ORIGIN" /var/db/pkg/${line}/+CONTENTS | sed -E 's/^\@comment ORIGIN:(.+)\/.+/\1/g'`
- line=$(uri_escape $line)
- category=$(uri_escape $category)
- query_string=$query_string`echo \&port[]=${category}:${line}`
- done
-
- report_ports
- ;;
- * )
- # Not supported
- ;;
- esac
-}
-
-report_ports () {
- # Handle HTTP proxy services
- #
- # HTTP_PROXY/http_proxy can take the following form:
- # [http://][username:password@]proxy[:port][/]
- # Authentication details may also be provided via HTTP_PROXY_AUTH:
- # HTTP_PROXY_AUTH="basic:*:username:password"
- #
-
- if [ -z "$HTTP_PROXY" -a -n "$http_proxy" ]; then
- HTTP_PROXY=$http_proxy
- fi
- if [ -n "$HTTP_PROXY" ]; then
- # Attempt to resolve any HTTP authentication
- if [ -n "$HTTP_PROXY_AUTH" ]; then
- PROXY_AUTH_USER=`echo $HTTP_PROXY_AUTH | sed -E 's/^.+:\*:(.+):.+$/\1/g'`
- PROXY_AUTH_PASS=`echo $HTTP_PROXY_AUTH | sed -E 's/^.+:\*:.+:(.+)$/\1/g'`
- else
- # Check for authentication within HTTP_PROXY
- HAS_HTTP_AUTH=`echo $HTTP_PROXY | sed -E 's/^(http:\/\/)?(.+:.+@)?.+/\2/'`
- if [ -n "$HAS_HTTP_AUTH" ]; then
- # Found HTTP authentication details
- PROXY_AUTH_USER=`echo $HAS_HTTP_AUTH | cut -d: -f1`
- PROXY_AUTH_PASS=`echo $HAS_HTTP_AUTH | cut -d: -f2`
- fi
- fi
-
- # Determine the proxy components
- PROXY_HOST=`echo $HTTP_PROXY | sed -E 's/^(http:\/\/)?(.+:.+@)?([^@:]+)(:.+)?/\3/'`
- PROXY_PORT=`echo $HTTP_PROXY | sed -E 's/^(http:\/\/)?(.+:.+@)?(.+):([0-9]+)/\4/' | sed -e 's/[^0-9]//g'`
- if [ -z "$PROXY_PORT" ]; then
- # Use default proxy port
- PROXY_PORT=3128
- fi
- fi
-
- # Determine the host/port netcat should connect to
- if [ -n "$PROXY_HOST" -a -n "$PROXY_PORT" ]; then
- nc_host=$PROXY_HOST
- nc_port=$PROXY_PORT
- url_prefix="http://${checkin_server}"
- else
- nc_host=$checkin_server
- nc_port=80
- fi
-
- # Proxy authentication, if required
- if [ -n "$PROXY_AUTH_USER" -a -n "$PROXY_AUTH_PASS" ]; then
- auth_base64=`echo "$PROXY_AUTH_USER:$PROXY_AUTH_PASS" | openssl base64`
- proxy_auth="Proxy-Authorization: Basic $auth_base64
-"
- fi
-
-
- # Make the request
- string_length=`echo ${query_string} | wc -m`
- string_length=`expr ${string_length} - 1`
-
- echo "POST ${url_prefix}/scripts/report_ports.php HTTP/1.0
-Host: ${checkin_server}
-User-Agent: bsdstats ${version}
-Connection: close
-${proxy_auth}Content-Type: application/x-www-form-urlencoded
-Content-Length: ${string_length}
-
-token=${TOKEN}&key=${KEY}${query_string}" | \
- nc $nc_host $nc_port | \
- grep STATUS= | {
- local IFS
- IFS='=
-'
-
- while read var val
- do
- case $var in
- STATUS)
- if [ $val = "OK" ]
- then
- echo "[`date`] System Ports reported"
- else
- echo "[`date`] System Ports not reported, exiting"
- exit
- fi
- ;;
- *)
- echo "[`date`] Error with fetch to server"
- exit
- ;;
- esac
- done
- } >> $bsdstats_log
-
-}
-
-report_devices () {
- do_fetch report_devices.php?token=$TOKEN\&key=$KEY$query_string | {
- local IFS
- IFS='=
-'
-
- while read var val
- do
- case $var in
- STATUS)
- if [ $val = "OK" ]
- then
- echo "[`date`] System Devices reported"
- else
- echo "[`date`] System Devices not reported, exiting"
- exit
- fi
- ;;
- *)
- echo "[`date`] Error with fetch to server"
- exit
- ;;
- esac
- done
- } >> $bsdstats_log
-}
-
-get_id_token () {
- if [ -f $id_token_file ]
- then
- if [ `wc -l < $id_token_file` -lt 3 ]
- then
- rm $id_token_file
- fi
- fi
-
- if [ ! -f $id_token_file -o ! -s $id_token_file ] ;
- then
- IDTOKEN=$(uri_escape $( openssl rand -base64 32 ) )
-
- idf=$( mktemp "$id_token_file.XXXXXX" ) && \
- chown root:wheel $idf && \
- chmod 600 $idf
-
- do_fetch getid.php?key=$IDTOKEN | {
- local IFS
- IFS='=
-'
-
- while read var val
- do
- case $var in
- KEY)
- echo "KEY=$val"
- ;;
- TOKEN)
- echo "TOKEN=$val"
- ;;
- *)
- ;;
- esac
- done
- echo "VERSION=$version"
- } > $idf && \
-
- mv $idf $id_token_file
- if [ ! -s $id_token_file ] ;
- then
- echo "Nothing returned from $checkin_server"
- exit 1
- fi
- fi
- . $id_token_file
- KEY=$( uri_escape $KEY )
- TOKEN=$( uri_escape $TOKEN )
-}
-
-
-enable_token () {
- do_fetch enable_token.php?key=$TOKEN\&token=$KEY | {
- local IFS
- IFS='=
-'
-
- while read var val
- do
- case $var in
- STATUS)
- if [ $val = "OK" ]
- then
- echo "[`date`] System enabled"
- else
- echo "[`date`] System not enabled, exiting"
- exit
- fi
- ;;
- *)
- echo "[`date`] Error with fetch to server"
- exit
- ;;
- esac
- done
- } >> $bsdstats_log
-}
-
-disable_token () {
- do_fetch disable_token.php?key=$TOKEN\&token=$KEY | {
- local IFS
- IFS='=
-'
-
- while read var val
- do
- case $var in
- STATUS)
- if [ $val = "OK" ]
- then
- echo "[`date`] System disabled"
- else
- echo "[`date`] System not disabled, exiting"
- exit
- fi
- ;;
- *)
- echo "[`date`] Error with fetch to server"
- exit
- ;;
- esac
- done
- } >> $bsdstats_log
-}
-
-report_system () {
- do_fetch report_system.php?token=$TOKEN\&key=$KEY\&rel=$REL\&arch=$ARCH\&opsys=$OS | {
- local IFS
- IFS='=
-'
-
- while read var val
- do
- case $var in
- STATUS)
- if [ $val = "OK" ]
- then
- echo "[`date`] System reported"
- else
- echo "[`date`] System report failed, exiting"
- exit
- fi
- ;;
- *)
- echo "[`date`] Error with fetch to server"
- exit
- ;;
- esac
- done
- } >> $bsdstats_log
-}
-
-report_cpu () {
- do_fetch report_cpu.php?token=$TOKEN\&key=$KEY\&cpus=$count\&vendor=$VEN\&cpu_type=$DEV | {
- local IFS
- IFS='=
-'
-
- while read var val
- do
- case $var in
- STATUS)
- if [ $val = "OK" ]
- then
- echo "[`date`] System CPU reported"
- else
- echo "[`date`] System CPU report failed, exiting"
- exit
- fi
- ;;
- *)
- echo "[`date`] Error with fetch to server"
- exit
- ;;
- esac
- done
- } >> $bsdstats_log
-}
-case "$monthly_statistics_enable" in
- [Yy][Ee][Ss])
- check_dns
- REL=`/usr/bin/uname -r`
- ARCH=`/usr/bin/uname -m`
- OS=`/usr/bin/uname -s`
- get_id_token
- test X"$1" = X-nodelay || sleep `random`
- enable_token
- report_system
- echo "Posting monthly OS statistics to $checkin_server"
- if [ X"$1" != X-nodelay ]; then
- case "$monthly_statistics_report_devices" in
- [Yy][Ee][Ss])
- send_devices
- echo "Posting monthly device statistics to $checkin_server"
- line=$( sysctl -n hw.model )
- VEN=$( echo $line | cut -d ' ' -f 1 )
- DEV=$( uri_escape $( echo $line | cut -d ' ' -f 2- ) )
- count=$( sysctl -n hw.ncpu )
- report_cpu
- echo "Posting monthly CPU statistics to $checkin_server"
- ;;
- *)
- echo "Posting monthly device/CPU statistics disabled"
- echo " set monthly_statistics_report_devices=\"YES\" in $periodic_conf"
- ;;
- esac
- case "$monthly_statistics_report_ports" in
- [Yy][Ee][Ss])
- send_ports
- echo "Posting monthly ports statistics to $checkin_server"
- ;;
- *)
- echo "Posting monthly ports statistics disabled"
- echo " set monthly_statistics_report_ports=\"YES\" in $periodic_conf"
- ;;
- esac
- fi
- disable_token
- ;;
- *)
- echo "Posting monthly OS statistics disabled"
- echo " set monthly_statistics_enable=\"YES\" in $periodic_conf"
- ;;
-esac
-
-umask $oldmask
-exit $rc
diff --git a/sysutils/bsdstats/files/300.statistics.in b/sysutils/bsdstats/files/300.statistics.in
index 381352c505d5..50173b629006 100644
--- a/sysutils/bsdstats/files/300.statistics.in
+++ b/sysutils/bsdstats/files/300.statistics.in
@@ -1,6 +1,6 @@
#!/bin/sh -
#
-# $FreeBSD: /tmp/pcvs/ports/sysutils/bsdstats/files/300.statistics.in,v 1.43 2010-08-19 03:03:34 amdmi3 Exp $
+# $FreeBSD: /tmp/pcvs/ports/sysutils/bsdstats/files/300.statistics.in,v 1.44 2010-08-19 03:06:13 amdmi3 Exp $
#
# If there is a global system configuration file, suck it in.
@@ -28,7 +28,7 @@ checkin_server=${monthly_statistics_checkin_server:-"rpt.bsdstats.org"}
bsdstats_log=${monthly_statistics_logfile:-"/var/log/bsdstats"}
id_token_file='/var/db/bsdstats'
-PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
+PATH=/sbin:/bin:/usr/sbin:/usr/bin:%%PREFIX%%/sbin:%%PREFIX%%/bin
export PATH
unset HTTP_USER_AGENT
diff --git a/sysutils/bsdstats/files/bsdstats.in b/sysutils/bsdstats/files/bsdstats.in
index a31b4a7efe0f..c598733e5cfa 100644
--- a/sysutils/bsdstats/files/bsdstats.in
+++ b/sysutils/bsdstats/files/bsdstats.in
@@ -21,7 +21,7 @@ load_rc_config bsdstats
name=bsdstats
rcvar=`set_rcvar`
-command=/usr/local/etc/periodic/monthly/300.statistics
+command=%%PREFIX%%/etc/periodic/monthly/300.statistics
# default to disable
bsdstats_enable=${bsdstats_enable:-"NO"}
diff --git a/sysutils/bsdstats/files/bsdstats.sh b/sysutils/bsdstats/files/bsdstats.sh
deleted file mode 100644
index 8c03bc0d9472..000000000000
--- a/sysutils/bsdstats/files/bsdstats.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/sh
-#
-# $FreeBSD: /tmp/pcvs/ports/sysutils/bsdstats/files/Attic/bsdstats.sh,v 1.1 2007-04-28 23:54:03 scrappy Exp $
-#
-
-# PROVIDE: bsdstats
-# REQUIRE: LOGIN
-# KEYWORD: shutdown
-
-# bsdstats is disabled by default, if you have configuration file
-#
-# Add the following line to /etc/rc.conf to enable bsdstats:
-#
-#bsdstats_enable="YES"
-#
-
-. /etc/rc.subr
-
-load_rc_config bsdstats
-
-name=bsdstats
-rcvar=`set_rcvar`
-
-command=/usr/local/etc/periodic/monthly/300.statistics
-
-# default to disable
-bsdstats_enable=${bsdstats_enable:-"NO"}
-bsdstats_flags=${bsdstats_flags:-"-nodelay"}
-
-run_rc_command "$1"
diff --git a/sysutils/bsdstats/files/pkg-message.in b/sysutils/bsdstats/files/pkg-message.in
index 88ed8e4b87a4..a2a3d5f12bb3 100644
--- a/sysutils/bsdstats/files/pkg-message.in
+++ b/sysutils/bsdstats/files/pkg-message.in
@@ -23,7 +23,7 @@ To enable ports reporting, add this line:
monthly_statistics_report_ports="YES"
To run it manually the first time, just run it as:
- ${LOCALBASE}/etc/periodic/monthly/300.statistics -nodelay
+ %%PREFIX%%/etc/periodic/monthly/300.statistics -nodelay
To view current statistics, go to:
http://www.bsdstats.org
diff --git a/sysutils/bsdstats/pkg-message b/sysutils/bsdstats/pkg-message
deleted file mode 100644
index 88ed8e4b87a4..000000000000
--- a/sysutils/bsdstats/pkg-message
+++ /dev/null
@@ -1,30 +0,0 @@
-
-This script, meant to be run monthly, submits statistics anonymously
-to a central checkin server (http://bsdstats.org), in an attempt to
-generate reasonably accurate demographics of both *BSD usage, as well
-as devices in use.
-
-Steps have been taken to make eliminate security concerns brought up
-in earlier releases of this, including, but not limited to, not storing
-anything in the database that has been deemed as 'sensitive' (ie. IP of
-the reporting server, and hostname).
-
-********************
-To enable monthly reporting, edit or create /etc/periodic.conf and add this line:
- monthly_statistics_enable="YES"
-
-To enable boottime reporting, edit or create /etc/rc.conf and add this line:
- bsdstats_enable="YES"
-
-To enable device reporting, add this line:
- monthly_statistics_report_devices="YES"
-
-To enable ports reporting, add this line:
- monthly_statistics_report_ports="YES"
-
-To run it manually the first time, just run it as:
- ${LOCALBASE}/etc/periodic/monthly/300.statistics -nodelay
-
-To view current statistics, go to:
- http://www.bsdstats.org
-********************
diff --git a/sysutils/bsdstats/pkg-plist b/sysutils/bsdstats/pkg-plist
index a3f926dfa107..df3825568969 100644
--- a/sysutils/bsdstats/pkg-plist
+++ b/sysutils/bsdstats/pkg-plist
@@ -1,4 +1,3 @@
etc/periodic/monthly/300.statistics
-etc/rc.d/bsdstats.sh
@dirrmtry etc/periodic/monthly
@dirrmtry etc/periodic