diff options
author | amdmi3 <amdmi3@FreeBSD.org> | 2010-08-19 11:06:13 +0800 |
---|---|---|
committer | amdmi3 <amdmi3@FreeBSD.org> | 2010-08-19 11:06:13 +0800 |
commit | 4b0b98818d0afe07c934565785f9b4a6a3c19361 (patch) | |
tree | 5e6e381ebb5b748b0b26bb742cdb96cbf193c8d7 /sysutils/bsdstats | |
parent | b7ccdfd3d7e6cd33194ff9b145602ef563e63604 (diff) | |
download | freebsd-ports-gnome-4b0b98818d0afe07c934565785f9b4a6a3c19361.tar.gz freebsd-ports-gnome-4b0b98818d0afe07c934565785f9b4a6a3c19361.tar.zst freebsd-ports-gnome-4b0b98818d0afe07c934565785f9b4a6a3c19361.zip |
- Respect LOCALBASE
- Switch to modern style of rc script handling
- Installation-related nits
PR: 146257
Submitted by: Anonymous <swell.k@gmail.com>
Diffstat (limited to 'sysutils/bsdstats')
-rw-r--r-- | sysutils/bsdstats/Makefile | 12 | ||||
-rw-r--r-- | sysutils/bsdstats/files/300.statistics | 446 | ||||
-rw-r--r-- | sysutils/bsdstats/files/300.statistics.in | 4 | ||||
-rw-r--r-- | sysutils/bsdstats/files/bsdstats.in | 2 | ||||
-rw-r--r-- | sysutils/bsdstats/files/bsdstats.sh | 30 | ||||
-rw-r--r-- | sysutils/bsdstats/files/pkg-message.in | 2 | ||||
-rw-r--r-- | sysutils/bsdstats/pkg-message | 30 | ||||
-rw-r--r-- | sysutils/bsdstats/pkg-plist | 1 |
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 |