Date: Wed, 4 May 2011 00:43:06 +0000 (UTC) From: "Bjoern A. Zeeb" <bz@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r221414 - in projects/pf/pf45: contrib/dialog contrib/dialog/po contrib/dialog/samples etc/periodic/daily etc/rc.d lib/libc/sys lib/libcrypt lib/libedit lib/libmd share/examples/kld/fir... Message-ID: <201105040043.p440h6IL022918@svn.freebsd.org>
index | next in thread | raw e-mail
Author: bz Date: Wed May 4 00:43:06 2011 New Revision: 221414 URL: http://svn.freebsd.org/changeset/base/221414 Log: Cleanup some of the previously merged but not really tracked files to reduce diffs to head. Reflect properties from head on the (locally) added files. Added: projects/pf/pf45/contrib/dialog/argv.c projects/pf/pf45/contrib/dialog/po/sl.po projects/pf/pf45/contrib/dialog/prgbox.c projects/pf/pf45/contrib/dialog/rename.sh (contents, props changed) projects/pf/pf45/contrib/dialog/samples/msgbox-utf8 (contents, props changed) projects/pf/pf45/contrib/dialog/samples/pause-both (contents, props changed) projects/pf/pf45/contrib/dialog/samples/pause-extra (contents, props changed) projects/pf/pf45/contrib/dialog/samples/prgbox (contents, props changed) projects/pf/pf45/contrib/dialog/samples/prgbox2 (contents, props changed) projects/pf/pf45/contrib/dialog/samples/programbox (contents, props changed) projects/pf/pf45/contrib/dialog/samples/programbox2 (contents, props changed) projects/pf/pf45/contrib/dialog/samples/shortlist (contents, props changed) projects/pf/pf45/contrib/dialog/samples/textbox-both (contents, props changed) projects/pf/pf45/contrib/dialog/samples/textbox-help (contents, props changed) projects/pf/pf45/etc/periodic/daily/220.backup-pkgdb (contents, props changed) projects/pf/pf45/etc/rc.d/rctl (contents, props changed) projects/pf/pf45/lib/libc/sys/posix_fallocate.2 (contents, props changed) projects/pf/pf45/lib/libcrypt/crypt-sha256.c (contents, props changed) projects/pf/pf45/lib/libcrypt/crypt-sha512.c (contents, props changed) projects/pf/pf45/lib/libedit/chartype.h (contents, props changed) projects/pf/pf45/lib/libedit/histedit.h (contents, props changed) projects/pf/pf45/lib/libedit/readline.c (contents, props changed) projects/pf/pf45/lib/libmd/sha512.3 (contents, props changed) projects/pf/pf45/lib/libmd/sha512.h (contents, props changed) projects/pf/pf45/lib/libmd/sha512c.c (contents, props changed) projects/pf/pf45/share/examples/kld/firmware/fwimage/firmware.img.uu (contents, props changed) projects/pf/pf45/share/man/man4/nvram2env.4 (contents, props changed) projects/pf/pf45/share/man/man5/rctl.conf.5 (contents, props changed) projects/pf/pf45/sys/arm/mv/orion/files.ts7800 (contents, props changed) projects/pf/pf45/sys/arm/mv/orion/std.ts7800 (contents, props changed) projects/pf/pf45/sys/boot/fdt/dts/ts7800.dts (contents, props changed) projects/pf/pf45/sys/kern/kern_racct.c (contents, props changed) projects/pf/pf45/sys/kern/kern_rctl.c (contents, props changed) projects/pf/pf45/tools/regression/bin/sh/builtins/case4.0 (contents, props changed) projects/pf/pf45/tools/regression/bin/sh/execution/fork3.0 (contents, props changed) projects/pf/pf45/tools/regression/bin/sh/execution/redir6.0 (contents, props changed) projects/pf/pf45/tools/regression/bin/sh/execution/redir7.0 (contents, props changed) projects/pf/pf45/tools/regression/bin/sh/expansion/length4.0 (contents, props changed) projects/pf/pf45/tools/regression/bin/sh/expansion/length5.0 (contents, props changed) projects/pf/pf45/tools/regression/bin/sh/expansion/length6.0 (contents, props changed) projects/pf/pf45/usr.sbin/bsdinstall/scripts/mirrorselect (contents, props changed) Added: projects/pf/pf45/contrib/dialog/argv.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pf/pf45/contrib/dialog/argv.c Wed May 4 00:43:06 2011 (r221414) @@ -0,0 +1,128 @@ +/* + * $Id: argv.c,v 1.1 2011/03/02 09:56:39 tom Exp $ + * + * argv - Reusable functions for argv-parsing. + * + * Copyright 2011 Thomas E. Dickey + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License, version 2.1 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to + * Free Software Foundation, Inc. + * 51 Franklin St., Fifth Floor + * Boston, MA 02110, USA. + */ + +#include <dialog.h> +#include <string.h> + +/* + * Convert a string to an argv[], returning a char** index (which must be + * freed by the caller). The string is modified (replacing gaps between + * tokens with nulls). + */ +char ** +dlg_string_to_argv(char *blob) +{ + size_t n; + int pass; + size_t length = strlen(blob); + char **result = 0; + + for (pass = 0; pass < 2; ++pass) { + bool inparm = FALSE; + bool quoted = FALSE; + char *param = blob; + size_t count = 0; + + for (n = 0; n < length; ++n) { + if (quoted && blob[n] == '"') { + quoted = FALSE; + } else if (blob[n] == '"') { + quoted = TRUE; + if (!inparm) { + if (pass) + result[count] = param; + ++count; + inparm = TRUE; + } + } else if (blob[n] == '\\') { + if (quoted && !isspace(UCH(blob[n + 1]))) { + if (!inparm) { + if (pass) + result[count] = param; + ++count; + inparm = TRUE; + } + if (pass) { + *param++ = blob[n]; + *param++ = blob[n + 1]; + } + } + ++n; + } else if (!quoted && isspace(UCH(blob[n]))) { + inparm = FALSE; + if (pass) { + *param++ = '\0'; + } + } else { + if (!inparm) { + if (pass) + result[count] = param; + ++count; + inparm = TRUE; + } + if (pass) { + *param++ = blob[n]; + } + } + } + + if (!pass) { + if (count) { + result = dlg_calloc(char *, count + 1); + assert_ptr(result, "string_to_argv"); + } else { + break; /* no tokens found */ + } + } else { + *param = '\0'; + } + } + return result; +} + +/* + * Count the entries in an argv list. + */ +int +dlg_count_argv(char **argv) +{ + int result = 0; + + if (argv != 0) { + while (argv[result] != 0) + ++result; + } + return result; +} + +int +dlg_eat_argv(int *argcp, char ***argvp, int start, int count) +{ + int k; + + *argcp -= count; + for (k = start; k <= *argcp; k++) + (*argvp)[k] = (*argvp)[k + count]; + (*argvp)[*argcp] = 0; + return TRUE; +} Added: projects/pf/pf45/contrib/dialog/po/sl.po ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pf/pf45/contrib/dialog/po/sl.po Wed May 4 00:43:06 2011 (r221414) @@ -0,0 +1,112 @@ +# Slovenian translation for dialog. +# Copyright (C) 2003-2007, 2008 Thomas Dickey +# This file is distributed under the same license as the dialog package. +# Klemen Košir <klemen.kosir@gmx.com>, 2011. +msgid "" +msgstr "" +"Project-Id-Version: dialog 1.1.20080819\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2008-06-18 18:26-0400\n" +"PO-Revision-Date: 2011-02-12 20:17+0100\n" +"Last-Translator: Klemen Košir <klemen.kosir@gmx.com>\n" +"Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Slovenian\n" +"X-Poedit-Country: SLOVENIA\n" + +#: buttons.c:385 +msgid "Yes" +msgstr "Da" + +#: buttons.c:393 +msgid "No" +msgstr "Ne" + +#: buttons.c:401 +msgid "OK" +msgstr "V redu" + +#: buttons.c:409 +msgid "Cancel" +msgstr "Prekliči" + +#: buttons.c:417 +msgid "EXIT" +msgstr "IZHOD" + +#: buttons.c:425 +msgid "Extra" +msgstr "Dodatno" + +#: buttons.c:433 +msgid "Help" +msgstr "Pomoč" + +#. Headline "Month" +#: calendar.c:273 +msgid "Month" +msgstr "Mesec" + +#. Headline "Year" +#: calendar.c:293 +msgid "Year" +msgstr "Leto" + +#: dialog.c:741 +msgid "Rename" +msgstr "Preimenuj" + +#: fselect.c:550 +msgid "Directories" +msgstr "Imeniki" + +#: fselect.c:551 +msgid "Files" +msgstr "Datoteke" + +#: mixedgauge.c:58 +msgid "Succeeded" +msgstr "Uspelo" + +#: mixedgauge.c:61 +msgid "Failed" +msgstr "Spodletelo" + +#: mixedgauge.c:64 +msgid "Passed" +msgstr "Prestalo" + +#: mixedgauge.c:67 +msgid "Completed" +msgstr "Končano" + +#: mixedgauge.c:70 +msgid "Checked" +msgstr "Preverjeno" + +#: mixedgauge.c:73 +msgid "Done" +msgstr "Opravljeno" + +#: mixedgauge.c:76 +msgid "Skipped" +msgstr "Preskočeno" + +#: mixedgauge.c:79 +msgid "In Progress" +msgstr "V teku" + +#: mixedgauge.c:85 +msgid "N/A" +msgstr "N/A" + +#: mixedgauge.c:193 +msgid "Overall Progress" +msgstr "Skupni napredek" + +#: textbox.c:489 +msgid "Search" +msgstr "Iskanje" Added: projects/pf/pf45/contrib/dialog/prgbox.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pf/pf45/contrib/dialog/prgbox.c Wed May 4 00:43:06 2011 (r221414) @@ -0,0 +1,110 @@ +/* + * $Id: prgbox.c,v 1.6 2011/03/02 09:59:26 tom Exp $ + * + * prgbox.c -- implements the prg box + * + * Copyright 2011 Thomas E. Dickey + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to + * Free Software Foundation, Inc. + * 51 Franklin St., Fifth Floor + * Boston, MA 02110, USA. + */ + +#include <dialog.h> + +/* + * Open a pipe which ties stderr and stdout together. + */ +static FILE * +dlg_popen(const char *command, const char *type) +{ + FILE *result = 0; + int fd[2]; + int pid; + const char *argv[4]; + + if ((*type == 'r' || *type != 'w') && pipe(fd) == 0) { + switch (pid = fork()) { + case -1: /* Error. */ + (void) close(fd[0]); + (void) close(fd[1]); + break; + case 0: /* child. */ + if (*type == 'r') { + if (fd[1] != STDOUT_FILENO) { + (void) dup2(fd[1], STDOUT_FILENO); + (void) close(fd[1]); + } + (void) dup2(STDOUT_FILENO, STDERR_FILENO); + (void) close(fd[0]); + } else { + if (fd[0] != STDIN_FILENO) { + (void) dup2(fd[0], STDIN_FILENO); + (void) close(fd[0]); + } + (void) close(fd[1]); + (void) close(STDERR_FILENO); + } + /* + * Bourne shell needs "-c" option to force it to use only the + * given command. Also, it needs the command to be parsed into + * tokens. + */ + argv[0] = "sh"; + argv[1] = "-c"; + argv[2] = command; + argv[3] = NULL; + execvp("sh", (char **)argv); + _exit(127); + /* NOTREACHED */ + default: /* parent */ + if (*type == 'r') { + result = fdopen(fd[0], type); + (void) close(fd[1]); + } else { + result = fdopen(fd[1], type); + (void) close(fd[0]); + } + break; + } + } + + return result; +} + +/* + * Display text from a pipe in a scrolling window. + */ +int +dialog_prgbox(const char *title, + const char *cprompt, + const char *command, + int height, + int width, + int pauseopt) +{ + int code; + FILE *fp; + + fp = dlg_popen(command, "r"); + if (fp == NULL) + dlg_exiterr("pipe open failed: %s", command); + + code = dlg_progressbox(title, cprompt, height, width, pauseopt, fp); + + pclose(fp); + + return code; +} Added: projects/pf/pf45/contrib/dialog/rename.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pf/pf45/contrib/dialog/rename.sh Wed May 4 00:43:06 2011 (r221414) @@ -0,0 +1,59 @@ +#! /bin/sh +# $Id: rename.sh,v 1.3 2011/01/06 10:51:02 tom Exp $ +############################################################################## +# Copyright (c) 2011 Thomas E. Dickey # +# # +# Permission is hereby granted, free of charge, to any person obtaining a # +# copy of this software and associated documentation files (the "Software"), # +# to deal in the Software without restriction, including without limitation # +# the rights to use, copy, modify, merge, publish, distribute, distribute # +# with modifications, sublicense, and/or sell copies of the Software, and to # +# permit persons to whom the Software is furnished to do so, subject to the # +# following conditions: # +# # +# The above copyright notice and this permission notice shall be included in # +# all copies or substantial portions of the Software. # +# # +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # +# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # +# DEALINGS IN THE SOFTWARE. # +# # +# Except as contained in this notice, the name(s) of the above copyright # +# holders shall not be used in advertising or otherwise to promote the sale, # +# use or other dealings in this Software without prior written # +# authorization. # +############################################################################## +# install-helper for dialog's manpages, e.g., as "cdialog". +# +# $1 = input file +# $2 = output file +# $3 = actual program name that dialog is installed as +# $4 = actual name that header/library are installed as +# $5+ = install program and possible options + +LANG=C; export LANG +LC_ALL=C; export LC_ALL +LC_CTYPE=C; export LC_CTYPE +LANGUAGE=C; export LANGUAGE + +SOURCE=$1; shift +TARGET=$1; shift +BINARY=$1; shift +PACKAGE=$1; shift + +CHR_LEAD=`echo "$BINARY" | sed -e 's/^\(.\).*/\1/'` +CHR_TAIL=`echo "$BINARY" | sed -e 's/^.//'` +ONE_CAPS=`echo $CHR_LEAD | tr '[a-z]' '[A-Z]'`$CHR_TAIL +ALL_CAPS=`echo "$BINARY" | tr '[a-z]' '[A-Z]'` + +sed -e "s,^\.ds p dialog\>,.ds p $BINARY," \ + -e "s,^\.ds l dialog\>,.ds l $PACKAGE," \ + -e "s,^\.ds L Dialog\>,.ds L $ONE_CAPS," \ + -e "s,^\.ds D DIALOG\>,.ds D $ALL_CAPS," \ + <$SOURCE >source.tmp +"$@" source.tmp $TARGET +rm -f source.tmp Added: projects/pf/pf45/contrib/dialog/samples/msgbox-utf8 ============================================================================== Binary file. No diff available. Added: projects/pf/pf45/contrib/dialog/samples/pause-both ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pf/pf45/contrib/dialog/samples/pause-both Wed May 4 00:43:06 2011 (r221414) @@ -0,0 +1,14 @@ +#!/bin/sh +# $Id: pause-both,v 1.1 2011/01/18 09:49:24 tom Exp $ + +. ./setup-vars + +$DIALOG --title "PAUSE" \ + --help-button \ + --extra-button "$@" \ + --pause "Hi, this is a pause widget" 20 70 10 + +retval=$? +echo return $retval + +. ./report-button Added: projects/pf/pf45/contrib/dialog/samples/pause-extra ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pf/pf45/contrib/dialog/samples/pause-extra Wed May 4 00:43:06 2011 (r221414) @@ -0,0 +1,13 @@ +#!/bin/sh +# $Id: pause-extra,v 1.1 2011/01/18 09:49:07 tom Exp $ + +. ./setup-vars + +$DIALOG --title "PAUSE" \ + --extra-button "$@" \ + --pause "Hi, this is a pause widget" 20 70 10 + +retval=$? +echo return $retval + +. ./report-button Added: projects/pf/pf45/contrib/dialog/samples/prgbox ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pf/pf45/contrib/dialog/samples/prgbox Wed May 4 00:43:06 2011 (r221414) @@ -0,0 +1,6 @@ +#!/bin/sh +# $Id: prgbox,v 1.1 2011/03/02 00:10:54 tom Exp $ + +. ./setup-vars + +$DIALOG --title "PRGBOX" "$@" --prgbox "./shortlist" 20 70 Added: projects/pf/pf45/contrib/dialog/samples/prgbox2 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pf/pf45/contrib/dialog/samples/prgbox2 Wed May 4 00:43:06 2011 (r221414) @@ -0,0 +1,6 @@ +#!/bin/sh +# $Id: prgbox2,v 1.1 2011/03/02 01:25:54 tom Exp $ + +. ./setup-vars + +$DIALOG --title "PRGBOX" "$@" --prgbox "./shortlist 3" 20 70 Added: projects/pf/pf45/contrib/dialog/samples/programbox ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pf/pf45/contrib/dialog/samples/programbox Wed May 4 00:43:06 2011 (r221414) @@ -0,0 +1,19 @@ +#!/bin/sh +# $Id: programbox,v 1.1 2011/03/02 01:17:28 tom Exp $ + +. ./setup-vars + +. ./setup-tempfile + +ls -1 >$tempfile +( +while true +do +read text +test -z "$text" && break +ls -ld "$text" +sleep 0.1 +done <$tempfile +) | + +$DIALOG --title "PROGRAMBOX" "$@" --programbox 20 70 Added: projects/pf/pf45/contrib/dialog/samples/programbox2 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pf/pf45/contrib/dialog/samples/programbox2 Wed May 4 00:43:06 2011 (r221414) @@ -0,0 +1,19 @@ +#!/bin/sh +# $Id: programbox2,v 1.1 2011/03/02 01:25:31 tom Exp $ + +. ./setup-vars + +. ./setup-tempfile + +ls -1 >$tempfile +( +while true +do +read text +test -z "$text" && break +ls -ld "$text" +sleep 0.1 +done <$tempfile +) | + +$DIALOG --title "PROGRAMBOX" "$@" --programbox "ProgramBox" 20 70 Added: projects/pf/pf45/contrib/dialog/samples/shortlist ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pf/pf45/contrib/dialog/samples/shortlist Wed May 4 00:43:06 2011 (r221414) @@ -0,0 +1,19 @@ +#!/bin/sh +# $Id: shortlist,v 1.2 2011/03/02 00:11:50 tom Exp $ +# make a short listing, which writes to both stdout and stderr. + +if test $# != 0 +then + count=$1 +else + count=10 +fi + +while test $count != 0 +do + echo "** $count -- `date`" + w >&2 + sleep 1 + count=`expr $count - 1 2>/dev/null` + test -z "$count" && count=0 +done Added: projects/pf/pf45/contrib/dialog/samples/textbox-both ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pf/pf45/contrib/dialog/samples/textbox-both Wed May 4 00:43:06 2011 (r221414) @@ -0,0 +1,21 @@ +#!/bin/sh +# $Id: textbox-both,v 1.1 2011/01/18 09:59:47 tom Exp $ + +. ./setup-vars + +. ./setup-tempfile + +TEXT=/usr/share/common-licenses/GPL +test -f $TEXT || TEXT=../COPYING + +cat textbox.txt | expand > $tempfile +cat $TEXT | expand >> $tempfile + +$DIALOG --clear --title "TEXT BOX" \ + --help-button \ + --extra-button "$@" \ + --textbox "$tempfile" 22 77 + +retval=$? + +. ./report-button Added: projects/pf/pf45/contrib/dialog/samples/textbox-help ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pf/pf45/contrib/dialog/samples/textbox-help Wed May 4 00:43:06 2011 (r221414) @@ -0,0 +1,20 @@ +#!/bin/sh +# $Id: textbox-help,v 1.1 2011/01/18 09:59:20 tom Exp $ + +. ./setup-vars + +. ./setup-tempfile + +TEXT=/usr/share/common-licenses/GPL +test -f $TEXT || TEXT=../COPYING + +cat textbox.txt | expand > $tempfile +cat $TEXT | expand >> $tempfile + +$DIALOG --clear --title "TEXT BOX" \ + --help-button "$@" \ + --textbox "$tempfile" 22 77 + +retval=$? + +. ./report-button Added: projects/pf/pf45/etc/periodic/daily/220.backup-pkgdb ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pf/pf45/etc/periodic/daily/220.backup-pkgdb Wed May 4 00:43:06 2011 (r221414) @@ -0,0 +1,50 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# 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 +fi + +rc=0 + +case "$daily_backup_pkgdb_enable" in + [Yy][Ee][Ss]) + bak="${daily_backup_pkgdb_dir:-/var/backups}" + bak_file="${bak}/pkgdb.bak.tbz" + + pkg_dbdir=`make -f/usr/share/mk/bsd.port.mk -V PKG_DBDIR 2>/dev/null` + + if [ ! -d "$bak" ] + then + install -d -o root -g wheel -m 750 $bak || { + echo '$daily_backup_pkgdb_enable is enabled but' \ + "$daily_backup_pkgdb_dbdir doesn't exist" ; + exit 2 ; } + fi + + echo '' + echo 'Backing up package db directory:' + + new_bak_file=`mktemp ${bak_file}-XXXXX` + + if tar -cjf "${new_bak_file}" "$pkg_dbdir"; then + chmod 644 "${new_bak_file}" + + if [ -e "${bak_file}.2" -a -e "${bak_file}" ]; then + unlink "${bak_file}.2" + mv "${bak_file}" "${bak_file}.2" + fi + [ -e "${bak_file}" ] && mv "${bak_file}" "${bak_file}.2" + mv "${new_bak_file}" "${bak_file}" + else + rc=3 + fi ;; +esac + +exit $rc Added: projects/pf/pf45/etc/rc.d/rctl ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pf/pf45/etc/rc.d/rctl Wed May 4 00:43:06 2011 (r221414) @@ -0,0 +1,39 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# PROVIDE: rctl +# BEFORE: LOGIN +# KEYWORD: nojail + +. /etc/rc.subr + +name="rctl" +start_cmd="rctl_start" +stop_cmd="rctl_stop" + +rctl_start() +{ + if [ -f /etc/rctl.conf ]; then + while read var comments + do + case ${var} in + \#*|'') + ;; + *) + rctl -a "${var}" + ;; + esac + done < /etc/rctl.conf + fi +} + +rctl_stop() +{ + + rctl -r : +} + +load_rc_config $name +run_rc_command "$1" Added: projects/pf/pf45/lib/libc/sys/posix_fallocate.2 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pf/pf45/lib/libc/sys/posix_fallocate.2 Wed May 4 00:43:06 2011 (r221414) @@ -0,0 +1,146 @@ +.\" Copyright (c) 1980, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)open.2 8.2 (Berkeley) 11/16/93 +.\" $FreeBSD$ +.\" +.Dd April 13, 2011 +.Dt POSIX_FALLOCATE 2 +.Os +.Sh NAME +.Nm posix_fallocate +.Nd pre-allocate storage for a range in a file +.Sh LIBRARY +.Lb libc +.Sh SYNOPSIS +.In fcntl.h +.Ft int +.Fn posix_fallocate "int fd" "off_t offset" "off_t len" +.Sh DESCRIPTION +Required storage for the range +.Fa offset +to +.Fa offset + +.Fa len +in the file referenced by +.Fa fd +is guarateed to be allocated upon successful return. +That is, if +.Fn posix_fallocate +returns successfully, subsequent writes to the specified file data +will not fail due to lack of free space on the file system storage +media. +Any existing file data in the specified range is unmodified. +If +.Fa offset + +.Fa len +is beyond the current file size, then +.Fn posix_fallocate +will adjust the file size to +.Fa offset + +.Fa len . +Otherwise, the file size will not be changed. +.Pp +Space allocated by +.Fn posix_fallocate +will be freed by a successful call to +.Xr creat 2 +or +.Xr open 2 +that truncates the size of the file. +Space allocated via +.Fn posix_fallocate +may be freed by a successful call to +.Xr ftruncate 2 +that reduces the file size to a size smaller than +.Fa offset + +.Fa len . +.Pp +.Sh RETURN VALUES +If successful, +.Fn posix_fallocate +returns zero. +It returns -1 on failure, and sets +.Va errno +to indicate the error. +.Sh ERRORS +Possible failure conditions: +.Bl -tag -width Er +.It Bq Er EBADF +The +.Fa fd +argument is not a valid file descriptor. +.It Bq Er EBADF +The +.Fa fd +argument references a file that was opened without write permission. +.It Bq Er EFBIG +The value of +.Fa offset + +.Fa len +is greater than the maximum file size. +.It Bq Er EINTR +A signal was caught during execution. +.It Bq Er EINVAL +The +.Fa len +argument was zero or the +.Fa offset +argument was less than zero. +.It Bq Er EIO +An I/O error occurred while reading from or writing to a file system. +.It Bq Er ENODEV +The +.Fa fd +argument does not refer to a regular file. +.It Bq Er ENOSPC +There is insufficient free space remaining on the file system storage +media. +.It Bq Er ESPIPE +The +.Fa fd +argument is associated with a pipe or FIFO. +.El +.Sh SEE ALSO +.Xr creat 2 , +.Xr ftruncate 2 , +.Xr open 2 , +.Xr unlink 2 +.Sh STANDARDS +The +.Fn posix_fallocate +system call conforms to +.St -p1003.1-2004 . +.Sh HISTORY +The +.Fn posix_fallocate +function appeared in +.Fx 9.0 . +.Sh AUTHORS +.Fn posix_fallocate +and this manual page were initially written by +.An Matthew Fleming Aq mdf@FreeBSD.org . Added: projects/pf/pf45/lib/libcrypt/crypt-sha256.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/pf/pf45/lib/libcrypt/crypt-sha256.c Wed May 4 00:43:06 2011 (r221414) @@ -0,0 +1,477 @@ +/* + * Copyright (c) 2011 The FreeBSD Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/* Based on: + * SHA256-based Unix crypt implementation. Released into the Public Domain by + * Ulrich Drepper <drepper@redhat.com>. */ + +#include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + +#include <sys/endian.h> +#include <sys/param.h> + +#include <errno.h> +#include <limits.h> +#include <sha256.h> +#include <stdbool.h> +#include <stdint.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include "crypt.h" + +/* Define our magic string to mark salt for SHA256 "encryption" replacement. */ +static const char sha256_salt_prefix[] = "$5$"; + +/* Prefix for optional rounds specification. */ +static const char sha256_rounds_prefix[] = "rounds="; + +/* Maximum salt string length. */ +#define SALT_LEN_MAX 16 +/* Default number of rounds if not explicitly specified. */ +#define ROUNDS_DEFAULT 5000 +/* Minimum number of rounds. */ +#define ROUNDS_MIN 1000 +/* Maximum number of rounds. */ +#define ROUNDS_MAX 999999999 + +static char * +sha256_crypt_r(const char *key, const char *salt, char *buffer, int buflen) +{ + u_long srounds; + int n; + uint8_t alt_result[32], temp_result[32]; + SHA256_CTX ctx, alt_ctx; + size_t salt_len, key_len, cnt, rounds; + char *cp, *copied_key, *copied_salt, *p_bytes, *s_bytes, *endp; + const char *num; + bool rounds_custom; + + copied_key = NULL; + copied_salt = NULL; + + /* Default number of rounds. */ + rounds = ROUNDS_DEFAULT; + rounds_custom = false; + + /* Find beginning of salt string. The prefix should normally always + * be present. Just in case it is not. */ + if (strncmp(sha256_salt_prefix, salt, sizeof(sha256_salt_prefix) - 1) == 0) + /* Skip salt prefix. */ + salt += sizeof(sha256_salt_prefix) - 1; + + if (strncmp(salt, sha256_rounds_prefix, sizeof(sha256_rounds_prefix) - 1) + == 0) { + num = salt + sizeof(sha256_rounds_prefix) - 1; + srounds = strtoul(num, &endp, 10); + + if (*endp == '$') { + salt = endp + 1; + rounds = MAX(ROUNDS_MIN, MIN(srounds, ROUNDS_MAX)); + rounds_custom = true; + } + } + + salt_len = MIN(strcspn(salt, "$"), SALT_LEN_MAX); + key_len = strlen(key); + + /* Prepare for the real work. */ + SHA256_Init(&ctx); + + /* Add the key string. */ + SHA256_Update(&ctx, key, key_len); + + /* The last part is the salt string. This must be at most 8 + * characters and it ends at the first `$' character (for + * compatibility with existing implementations). */ + SHA256_Update(&ctx, salt, salt_len); + + /* Compute alternate SHA256 sum with input KEY, SALT, and KEY. The + * final result will be added to the first context. */ + SHA256_Init(&alt_ctx); + + /* Add key. */ + SHA256_Update(&alt_ctx, key, key_len); + + /* Add salt. */ + SHA256_Update(&alt_ctx, salt, salt_len); + + /* Add key again. */ + SHA256_Update(&alt_ctx, key, key_len); + + /* Now get result of this (32 bytes) and add it to the other context. */ + SHA256_Final(alt_result, &alt_ctx); + + /* Add for any character in the key one byte of the alternate sum. */ + for (cnt = key_len; cnt > 32; cnt -= 32) + SHA256_Update(&ctx, alt_result, 32); + SHA256_Update(&ctx, alt_result, cnt); + + /* Take the binary representation of the length of the key and for + * every 1 add the alternate sum, for every 0 the key. */ + for (cnt = key_len; cnt > 0; cnt >>= 1) + if ((cnt & 1) != 0) + SHA256_Update(&ctx, alt_result, 32); + else + SHA256_Update(&ctx, key, key_len); + + /* Create intermediate result. */ + SHA256_Final(alt_result, &ctx); + + /* Start computation of P byte sequence. */ + SHA256_Init(&alt_ctx); + + /* For every character in the password add the entire password. */ + for (cnt = 0; cnt < key_len; ++cnt) + SHA256_Update(&alt_ctx, key, key_len); + + /* Finish the digest. */ + SHA256_Final(temp_result, &alt_ctx); + + /* Create byte sequence P. */ + cp = p_bytes = alloca(key_len); + for (cnt = key_len; cnt >= 32; cnt -= 32) { + memcpy(cp, temp_result, 32); + cp += 32; + } + memcpy(cp, temp_result, cnt); + + /* Start computation of S byte sequence. */ + SHA256_Init(&alt_ctx); + + /* For every character in the password add the entire password. */ + for (cnt = 0; cnt < 16 + alt_result[0]; ++cnt) + SHA256_Update(&alt_ctx, salt, salt_len); *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201105040043.p440h6IL022918>
