[Glibc-bsd-commits] r2738 - in trunk/freebsd-utils/debian: . patches
Aurelien Jarno
aurel32 at alioth.debian.org
Sat Aug 22 18:08:33 UTC 2009
Author: aurel32
Date: 2009-08-22 18:08:33 +0000 (Sat, 22 Aug 2009)
New Revision: 2738
Added:
trunk/freebsd-utils/debian/patches/019_kenv_sources.diff
trunk/freebsd-utils/debian/patches/019_kenv_syscall.diff
Modified:
trunk/freebsd-utils/debian/changelog
trunk/freebsd-utils/debian/freebsd-utils-udeb.install
trunk/freebsd-utils/debian/freebsd-utils.install
trunk/freebsd-utils/debian/freebsd-utils.manpages
trunk/freebsd-utils/debian/patches/series
trunk/freebsd-utils/debian/rules
Log:
* Add a /bin/kenv binary in both freebsd-utils and freebsd-utils-udeb.
Modified: trunk/freebsd-utils/debian/changelog
===================================================================
--- trunk/freebsd-utils/debian/changelog 2009-08-22 17:42:32 UTC (rev 2737)
+++ trunk/freebsd-utils/debian/changelog 2009-08-22 18:08:33 UTC (rev 2738)
@@ -1,10 +1,11 @@
-freebsd-utils (7.2-9) UNRELEASEd; urgency=low
+freebsd-utils (7.2-9) UNRELEASED; urgency=low
* debian/rules: adjust start priority of freebsd-utils.init and
kldutils.init.
* debian/freebsd-utils.init: avoid printing error messages during
boot.
* debian/rules: also fetch kenv in the get-orig-source.
+ * Add a /bin/kenv binary in both freebsd-utils and freebsd-utils-udeb.
-- Aurelien Jarno <aurel32 at debian.org> Sat, 22 Aug 2009 19:42:25 +0200
Modified: trunk/freebsd-utils/debian/freebsd-utils-udeb.install
===================================================================
--- trunk/freebsd-utils/debian/freebsd-utils-udeb.install 2009-08-22 17:42:32 UTC (rev 2737)
+++ trunk/freebsd-utils/debian/freebsd-utils-udeb.install 2009-08-22 18:08:33 UTC (rev 2738)
@@ -1,2 +1,3 @@
+bin/kenv/kenv /bin
sbin/sysctl/sysctl /bin
usr.bin/ktrace/ktrace /bin
Modified: trunk/freebsd-utils/debian/freebsd-utils.install
===================================================================
--- trunk/freebsd-utils/debian/freebsd-utils.install 2009-08-22 17:42:32 UTC (rev 2737)
+++ trunk/freebsd-utils/debian/freebsd-utils.install 2009-08-22 18:08:33 UTC (rev 2738)
@@ -1,3 +1,5 @@
+bin/kenv/kenv /bin
+
sbin/mount/mount /lib/freebsd
sbin/umount/umount /lib/freebsd
sbin/sysctl/sysctl /lib/freebsd
Modified: trunk/freebsd-utils/debian/freebsd-utils.manpages
===================================================================
--- trunk/freebsd-utils/debian/freebsd-utils.manpages 2009-08-22 17:42:32 UTC (rev 2737)
+++ trunk/freebsd-utils/debian/freebsd-utils.manpages 2009-08-22 18:08:33 UTC (rev 2738)
@@ -1,3 +1,4 @@
+bin/kenv/kenv.1
usr.bin/ktrace/ktrace.1
sbin/dmesg/dmesg.8
sbin/ccdconfig/ccdconfig.8
Added: trunk/freebsd-utils/debian/patches/019_kenv_sources.diff
===================================================================
--- trunk/freebsd-utils/debian/patches/019_kenv_sources.diff (rev 0)
+++ trunk/freebsd-utils/debian/patches/019_kenv_sources.diff 2009-08-22 18:08:33 UTC (rev 2738)
@@ -0,0 +1,286 @@
+This patch is there to avoid regenerating a new .orig.tar.gz. It can be
+dropped when a new one is generated.
+
+--- a/bin/kenv/Makefile
++++ b/bin/kenv/Makefile
+@@ -0,0 +1,5 @@
++# $FreeBSD$
++
++PROG= kenv
++
++.include <bsd.prog.mk>
+--- a/bin/kenv/kenv.1
++++ b/bin/kenv/kenv.1
+@@ -0,0 +1,77 @@
++.\"-
++.\" Copyright (c) 2000 Peter Wemm <peter at FreeBSD.org>
++.\"
++.\" 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 AUTHORS 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 AUTHORS 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.
++.\"
++.\" $FreeBSD$
++.\"
++.Dd September 13, 2005
++.Dt KENV 1
++.Os
++.Sh NAME
++.Nm kenv
++.Nd dump or modify the kernel environment
++.Sh SYNOPSIS
++.Nm
++.Op Fl hq
++.Nm
++.Op Fl q
++.Ar variable Ns Op = Ns Ar value
++.Nm
++.Op Fl q
++.Fl u
++.Ar variable
++.Sh DESCRIPTION
++The
++.Nm
++utility will dump the kernel environment if
++invoked without arguments.
++If the
++.Fl h
++option is specified, it will limit the report to kernel probe hints.
++If an optional
++.Ar variable
++name is specified,
++.Nm
++will only report that value.
++If the
++.Fl u
++option is specified,
++.Nm
++will delete the given environment variable.
++If the environment variable is followed by an optional
++.Ar value ,
++.Nm
++will set the environment variable to this value.
++.Pp
++If the
++.Fl q
++option is set, warnings normally printed as a result of being unable to
++perform the requested operation will be suppressed.
++.Sh SEE ALSO
++.Xr kenv 2 ,
++.Xr loader 8
++.Sh HISTORY
++The
++.Nm
++utility appeared in
++.Fx 4.1.1 .
+--- a/bin/kenv/kenv.c
++++ b/bin/kenv/kenv.c
+@@ -0,0 +1,192 @@
++/*-
++ * Copyright (c) 2000 Peter Wemm <peter at freebsd.org>
++ *
++ * 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 AUTHORS 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 AUTHORS 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.
++ */
++
++#include <sys/cdefs.h>
++__FBSDID("$FreeBSD$");
++
++#include <sys/types.h>
++#include <sys/sysctl.h>
++#include <err.h>
++#include <kenv.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++#include <unistd.h>
++
++static void usage(void);
++static int kdumpenv(void);
++static int kgetenv(char *);
++static int ksetenv(char *, char *);
++static int kunsetenv(char *);
++
++static int hflag = 0;
++static int qflag = 0;
++static int uflag = 0;
++
++static void
++usage(void)
++{
++ (void)fprintf(stderr, "%s\n%s\n%s\n",
++ "usage: kenv [-hq]",
++ " kenv [-q] variable[=value]",
++ " kenv [-q] -u variable");
++ exit(1);
++}
++
++int
++main(int argc, char **argv)
++{
++ char *env, *eq, *val;
++ int ch, error;
++
++ error = 0;
++ val = NULL;
++ env = NULL;
++ while ((ch = getopt(argc, argv, "hqu")) != -1) {
++ switch (ch) {
++ case 'h':
++ hflag++;
++ break;
++ case 'q':
++ qflag++;
++ break;
++ case 'u':
++ uflag++;
++ break;
++ default:
++ usage();
++ }
++ }
++ argc -= optind;
++ argv += optind;
++ if (argc > 0) {
++ env = argv[0];
++ eq = strchr(env, '=');
++ if (eq != NULL) {
++ *eq++ = '\0';
++ val = eq;
++ }
++ argv++;
++ argc--;
++ }
++ if (hflag && (env != NULL))
++ usage();
++ if ((argc > 0) || (uflag && (env == NULL)))
++ usage();
++ if (env == NULL) {
++ error = kdumpenv();
++ if (error && !qflag)
++ warn("kdumpenv");
++ } else if (val == NULL) {
++ if (uflag) {
++ error = kunsetenv(env);
++ if (error && !qflag)
++ warnx("unable to unset %s", env);
++ } else {
++ error = kgetenv(env);
++ if (error && !qflag)
++ warnx("unable to get %s", env);
++ }
++ } else {
++ error = ksetenv(env, val);
++ if (error && !qflag)
++ warnx("unable to set %s to %s", env, val);
++ }
++ return (error);
++}
++
++static int
++kdumpenv()
++{
++ char *buf, *cp;
++ int buflen, envlen;
++
++ envlen = kenv(KENV_DUMP, NULL, NULL, 0);
++ if (envlen < 0)
++ return (-1);
++ for (;;) {
++ buflen = envlen * 120 / 100;
++ buf = malloc(buflen + 1);
++ if (buf == NULL)
++ return (-1);
++ memset(buf, 0, buflen + 1); /* Be defensive */
++ envlen = kenv(KENV_DUMP, NULL, buf, buflen);
++ if (envlen < 0) {
++ free(buf);
++ return (-1);
++ }
++ if (envlen > buflen)
++ free(buf);
++ else
++ break;
++ }
++
++ for (; *buf != '\0'; buf += strlen(buf) + 1) {
++ if (hflag) {
++ if (strncmp(buf, "hint.", 5) != 0)
++ continue;
++ }
++ cp = strchr(buf, '=');
++ if (cp == NULL)
++ continue;
++ *cp++ = '\0';
++ printf("%s=\"%s\"\n", buf, cp);
++ buf = cp;
++ }
++ return (0);
++}
++
++static int
++kgetenv(char *env)
++{
++ char buf[1024];
++ int ret;
++
++ ret = kenv(KENV_GET, env, buf, sizeof(buf));
++ if (ret == -1)
++ return (ret);
++ printf("%s\n", buf);
++ return (0);
++}
++
++static int
++ksetenv(char *env, char *val)
++{
++ int ret;
++
++ ret = kenv(KENV_SET, env, val, strlen(val)+1);
++ if (ret == 0)
++ printf("%s=\"%s\"\n", env, val);
++ return (ret);
++}
++
++static int
++kunsetenv(char *env)
++{
++ int ret;
++
++ ret = kenv(KENV_UNSET, env, NULL, 0);
++ return (ret);
++}
Added: trunk/freebsd-utils/debian/patches/019_kenv_syscall.diff
===================================================================
--- trunk/freebsd-utils/debian/patches/019_kenv_syscall.diff (rev 0)
+++ trunk/freebsd-utils/debian/patches/019_kenv_syscall.diff 2009-08-22 18:08:33 UTC (rev 2738)
@@ -0,0 +1,21 @@
+This patch is there to workaround a missing syscall in the glibc that
+will appear with version 2.10. It can be dropped when this version is
+available.
+
+--- a/bin/kenv/kenv.c
++++ b/bin/kenv/kenv.c
+@@ -45,6 +45,14 @@
+ static int qflag = 0;
+ static int uflag = 0;
+
++#if (GLIBC_MINOR <= 9)
++#include <sys/syscall.h>
++int kenv(int action, const char *name, char *value, int len)
++{
++ syscall(SYS_kenv, action, name, value, len);
++}
++#endif
++
+ static void
+ usage(void)
+ {
Modified: trunk/freebsd-utils/debian/patches/series
===================================================================
--- trunk/freebsd-utils/debian/patches/series 2009-08-22 17:42:32 UTC (rev 2737)
+++ trunk/freebsd-utils/debian/patches/series 2009-08-22 18:08:33 UTC (rev 2738)
@@ -16,3 +16,5 @@
016_swapon.diff
017_sysctl.diff
018_umount.diff
+019_kenv_sources.diff
+019_kenv_syscall.diff
Modified: trunk/freebsd-utils/debian/rules
===================================================================
--- trunk/freebsd-utils/debian/rules 2009-08-22 17:42:32 UTC (rev 2737)
+++ trunk/freebsd-utils/debian/rules 2009-08-22 18:08:33 UTC (rev 2738)
@@ -53,6 +53,7 @@
freebsd-utils: freebsd-utils-stamp
freebsd-utils-stamp: patch-stamp
# $(PMAKE) -C bin/chflags
+ $(PMAKE) -C bin/kenv
$(PMAKE) -C sbin/ccdconfig
$(PMAKE) -C sbin/dmesg
$(PMAKE) -C sbin/mdconfig
@@ -119,6 +120,7 @@
dh_testdir
dh_testroot
$(PMAKE) -C bin/chflags clean
+ [ ! -f bin/kenv/Makefile ] || $(PMAKE) -C bin/kenv clean
$(PMAKE) -C sbin/ccdconfig clean
$(PMAKE) -C sbin/dmesg clean
$(PMAKE) -C sbin/mdconfig clean
More information about the Glibc-bsd-commits
mailing list