commit-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[hurd] 01/04: New upstream release


From: Samuel Thibault
Subject: [hurd] 01/04: New upstream release
Date: Sat, 28 Sep 2013 14:26:43 +0000

This is an automated email from the git hooks/post-receive script.

sthibault pushed a commit to branch master
in repository hurd.

commit 0dd2d050b9ec991563101a0bc87d75ff84c320c8
Author: Samuel Thibault <address@hidden>
Date:   Sat Sep 28 12:37:28 2013 +0000

    New upstream release
---
 ChangeLog              |    5 -
 INSTALL                |    6 +-
 INSTALL-cross          |    2 +-
 Makeconf               |    4 +-
 Makefile               |   87 +++++++++-
 NEWS                   |   63 +++++--
 README                 |   37 +++--
 README.CVS             |   29 ----
 config.make.in         |    6 +-
 configure.ac           |    3 +-
 doc/Makefile           |    4 +-
 gitlog-to-changelog    |  432 ++++++++++++++++++++++++++++++++++++++++++++++++
 libdiskfs/dir-lookup.c |    4 +-
 proc/host.c            |    7 +-
 14 files changed, 600 insertions(+), 89 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 053477a..8ecce54 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -7,7 +7,6 @@ Use this to examine the change log for earlier changes:
     $ git show 2772f5c6a6a51cf946fd95bf6ffe254273157a21:auth/ChangeLog
     $ git show 2772f5c6a6a51cf946fd95bf6ffe254273157a21:benchmarks/ChangeLog
     $ git show 2772f5c6a6a51cf946fd95bf6ffe254273157a21:boot/ChangeLog
-    $ git show 2772f5c6a6a51cf946fd95bf6ffe254273157a21:bsdfsck/ChangeLog
     $ git show 2772f5c6a6a51cf946fd95bf6ffe254273157a21:config/ChangeLog
     $ git show 
2772f5c6a6a51cf946fd95bf6ffe254273157a21:console-client/ChangeLog
     $ git show 2772f5c6a6a51cf946fd95bf6ffe254273157a21:console/ChangeLog
@@ -49,14 +48,10 @@ Use this to examine the change log for earlier changes:
     $ git show 2772f5c6a6a51cf946fd95bf6ffe254273157a21:pflocal/ChangeLog
     $ git show 2772f5c6a6a51cf946fd95bf6ffe254273157a21:proc/ChangeLog
     $ git show 2772f5c6a6a51cf946fd95bf6ffe254273157a21:release/ChangeLog
-    $ git show 2772f5c6a6a51cf946fd95bf6ffe254273157a21:serverboot/ChangeLog
     $ git show 2772f5c6a6a51cf946fd95bf6ffe254273157a21:storeio/ChangeLog
     $ git show 2772f5c6a6a51cf946fd95bf6ffe254273157a21:sutils/ChangeLog
     $ git show 2772f5c6a6a51cf946fd95bf6ffe254273157a21:term/ChangeLog
     $ git show 2772f5c6a6a51cf946fd95bf6ffe254273157a21:tmpfs/ChangeLog
     $ git show 2772f5c6a6a51cf946fd95bf6ffe254273157a21:trans/ChangeLog
-    $ git show 2772f5c6a6a51cf946fd95bf6ffe254273157a21:ufs-fsck/ChangeLog
-    $ git show 2772f5c6a6a51cf946fd95bf6ffe254273157a21:ufs-utils/ChangeLog
-    $ git show 2772f5c6a6a51cf946fd95bf6ffe254273157a21:ufs/ChangeLog
     $ git show 2772f5c6a6a51cf946fd95bf6ffe254273157a21:usermux/ChangeLog
     $ git show 2772f5c6a6a51cf946fd95bf6ffe254273157a21:utils/ChangeLog
diff --git a/INSTALL b/INSTALL
index d675a73..b45322e 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,7 +1,6 @@
--*- Text -*-
-GNU Hurd 0.2
+This is the GNU Hurd, <http://www.gnu.org/software/hurd/>.  Welcome.
 
-This is the Hurd.  Welcome.
+The following text has not been updated in a long time.  Beware.
 
 This file contains instructions for compiling and installing the Hurd
 from your existing Hurd system.
@@ -208,4 +207,3 @@ operates.
      script, and exit.
 
 `configure' also accepts some other, not widely useful, options.
-
diff --git a/INSTALL-cross b/INSTALL-cross
index f91d119..05f8b8f 100644
--- a/INSTALL-cross
+++ b/INSTALL-cross
@@ -4,7 +4,7 @@ Cross-compiling the GNU Hurd                             -*- 
Outline -*-
 
 The procedure described below -- albeit not completely obsolete, of course --
 is outdated a bit.  If you attempt to build a cross compiler, have a look at
-<http://www.bddebian.com/~wiki/hurd/building/cross-compiling/> for now.
+<http://www.gnu.org/software/hurd/toolchain/cross-gnu.html> for now.
 
 Last update 1998-06-01  Gordon Matzigkeit  <address@hidden>.
 Previous update 1996-04-11  Thomas Bushnell, n/BSG  <address@hidden>.
diff --git a/Makeconf b/Makeconf
index c72287a..5cf995d 100644
--- a/Makeconf
+++ b/Makeconf
@@ -1,7 +1,7 @@
 # Generic configuration for Hurd compilation           -*- makefile-gmake -*-
 
 # Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003,
-# 2006, 2007, 2008, 2010, 2011, 2012 Free Software Foundation, Inc.
+# 2006, 2007, 2008, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License as
@@ -647,5 +647,5 @@ endef
 
 # Rule to make executable shell scripts from .sh files.
 %: %.sh $(..)config.make
-       sed -e 's/STANDARD_HURD_VERSION_\(.[^_]*\)_/\1 (GNU Hurd) 
$(hurd-version)/' < $< > $@
+       sed -e 's/STANDARD_HURD_VERSION_\(.[^_]*\)_/\1 (GNU Hurd) 
$(package-version)/' < $< > $@
        chmod +x $@
diff --git a/Makefile b/Makefile
index 818826f..106f2f6 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 #
 #   Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2004,
-#   2006, 2009, 2011, 2012 Free Software Foundation, Inc.
+#   2006, 2009, 2011, 2012, 2013 Free Software Foundation, Inc.
 #
 #   This program is free software; you can redistribute it and/or
 #   modify it under the terms of the GNU General Public License as
@@ -86,11 +86,86 @@ HEAD.tar: FORCE
                false; }
        (cd $(top_srcdir)/ && git archive --prefix=$(dist-version)/ HEAD) > $@
 
-$(dist-version).tar: HEAD.tar $(addsuffix /dist-hook,hurd/.. $(subdirs))
+ChangeLog.tar: gen-ChangeLog
+       tar -c -f $@ --owner=0 --group=0 \
+         --transform='s%^%$(dist-version)/%' $(ChangeLog_files)
+
+gen_start_commit = 2772f5c6a6a51cf946fd95bf6ffe254273157a21
+ChangeLog_files = \
+  ChangeLog \
+  auth/ChangeLog \
+  benchmarks/ChangeLog \
+  boot/ChangeLog \
+  config/ChangeLog \
+  console-client/ChangeLog \
+  console/ChangeLog \
+  daemons/ChangeLog \
+  defpager/ChangeLog \
+  doc/ChangeLog \
+  exec/ChangeLog \
+  ext2fs/ChangeLog \
+  fatfs/ChangeLog \
+  fstests/ChangeLog \
+  ftpfs/ChangeLog \
+  hostmux/ChangeLog \
+  hurd/ChangeLog \
+  include/ChangeLog \
+  init/ChangeLog \
+  isofs/ChangeLog \
+  libcons/ChangeLog \
+  libdirmgt/ChangeLog \
+  libdiskfs/ChangeLog \
+  libfshelp/ChangeLog \
+  libftpconn/ChangeLog \
+  libhurdbugaddr/ChangeLog \
+  libihash/ChangeLog \
+  libiohelp/ChangeLog \
+  libnetfs/ChangeLog \
+  libpager/ChangeLog \
+  libpipe/ChangeLog \
+  libports/ChangeLog \
+  libps/ChangeLog \
+  libshouldbeinlibc/ChangeLog \
+  libstore/ChangeLog \
+  libthreads/ChangeLog \
+  libtrivfs/ChangeLog \
+  login/ChangeLog \
+  mach-defpager/ChangeLog \
+  nfs/ChangeLog \
+  nfsd/ChangeLog \
+  pfinet/ChangeLog \
+  pflocal/ChangeLog \
+  proc/ChangeLog \
+  release/ChangeLog \
+  storeio/ChangeLog \
+  sutils/ChangeLog \
+  term/ChangeLog \
+  tmpfs/ChangeLog \
+  trans/ChangeLog \
+  usermux/ChangeLog \
+  utils/ChangeLog
+distdir = .
+.PHONY: gen-ChangeLog
+gen-ChangeLog:
+       $(AM_V_GEN)if test -d $(top_srcdir)/.git; then                  \
+         (cd $(top_srcdir)/ &&                                         \
+         ./gitlog-to-changelog --strip-tab                             \
+           $(gen_start_commit).. &&                                    \
+         echo) >> $(distdir)/cl-t &&                                   \
+         for f in $(ChangeLog_files); do                               \
+           (cd $(top_srcdir)/ &&                                       \
+           git show $(gen_start_commit):$$f) >> $(distdir)/cl-t &&     \
+           rm -f $(distdir)/$$f &&                                     \
+           mv $(distdir)/cl-t $(distdir)/$$f                           \
+           || exit $$?;                                                \
+         done;                                                         \
+       fi
+
+$(dist-version).tar: HEAD.tar $(addsuffix /dist-hook,hurd/.. $(subdirs)) 
ChangeLog.tar
        tar -c -f $@ --files-from=/dev/null
-# Concatenate HEAD.tar and all subdirs' dist.tar that have been created.  Have
+# Concatenate the tar files.  Have
 # to do it one by one: <http://savannah.gnu.org/patch/?7757>.
-       for f in HEAD.tar dist.tar */dist.tar; do \
+       for f in HEAD.tar dist.tar */dist.tar ChangeLog.tar; do \
          tar -v --concatenate -f $@ "$$f"; \
        done
 
@@ -145,7 +220,7 @@ FORCE:
 
 .PHONY: clean-misc distclean
 clean-misc:
-       rm -f HEAD.tar
+       rm -f HEAD.tar ChangeLog.tar $(ChangeLog_files)
 
 distclean: clean
        rm -f config.make config.log config.status config.cache
@@ -187,7 +262,7 @@ config.make: config.status $(top_srcdir)/config.make.in
 
 version.h: stamp-version; @:
 stamp-version: version.h.in config.make
-       sed -e 's/MASTER_HURD_VERSION/\"$(hurd-version)\"/' \
+       sed -e 's/MASTER_HURD_VERSION/\"$(package-version)\"/' \
          < $< > version.h.new
        $(move-if-change) version.h.new version.h
        touch $@
diff --git a/NEWS b/NEWS
index 703106b..72a2e2d 100644
--- a/NEWS
+++ b/NEWS
@@ -1,22 +1,53 @@
--*- Text -*-
-
-XXX this needs much work, trolling through ChangeLogs.
+2013-09-27
+Version 0.5
+
+Really too many changes have been applied to list them individually.  Some
+highlights include:
+
+Numerous bug fixes, compatibility fixes (for compliance to standards such as
+POSIX), and stability fixes.
+
+Thread-local storage (TLS) support in the threading libraries.  Conversion from
+cthreads to POSIX Threads (pthreads).
+
+Large store support for ext2fs.
+
+A mtab translator.
+
+IPv6 support in pfinet, based on Linux 2.2.14.
+
+A XKB parser and wide character support for the Hurd console.
+
+The new remap translator can be used to create an environment in which
+some paths are redirected, for instance the TCP/IP stack, or /bin/sh.
+
+The new nullauth utility drops all authentication credentials before running a
+program.  This is also useful to drop privileges on behalf of translators that
+do not need any credentials.
+
+Several improvements to rpctrace, such as the -E option to add/change/unset
+environment variables among the ones inherited by the process.
+
+Improvements to the default pager and tmpfs virtual filesystem generally, and
+for the latter also add the possibility to specify the size with the --size
+parameter.
+
+The UFS filesystem translator and supporting utilities have been removed:
+unused/untested/unmaintained for a decade.
+
+Follows a list assembled in 2002, more than ten years ago:
 
 Many, many, many bugs have been fixed, including some resource
 consumption problems and race conditions.  The system can compile
 itself as well as most external applications.  The amount of stress
 the system can tolerate has increased a lot.
 
-The new remap translator can be used to create an environment in which
-some paths are redirected, for instance the TCP/IP stack, or /bin/sh,
-etc.
-
 The new ftpfs translator can be used to transparently access FTP
 servers through the filesystem.  Together with the new hostmux
 translator, which can invoke host-specific translators like ftpfs,
 this leads to a very comfortable way to use FTP archives on the Hurd.
 
-A new translator usermux can invoke user specific translators. It can
+A new translator usermux can invoke user-specific translators.  It can
 be used to provide a symlink to all users home directories in a single
 place (similar to amd/automount).
 
@@ -37,8 +68,7 @@ ioctls now.
 
 The Hurd can now access CD-ROMs containing an ISO9660 file format with
 the new iso9660fs translator. Rock Ridge extensions are supported, as
-well as some GNU extensions to store GNU specific file system
-attributes in such filesystems.
+well as some GNU extensions to store GNU-specific filesystem attributes.
 
 Two new translators, hello and hello-mt, illustrate how to implement
 simple trivfs based filesystems in the Hurd.
@@ -107,9 +137,8 @@ The Hurd interfaces have been changed to support large 
files.
 
 The new proxy-defpager translator grants unprivileged users access to
 the default pager.
-
 
-9 June 1997
+1997-06-09
 Version 0.2
 
 Summary of important externally visible changes since version 0.1:
@@ -182,10 +211,8 @@ New library `libftpconn' is used to manage FTP 
connections.  We are
 already using this library for some local system administration tasks,
 and are making it the basis of the (as yet unfinished) ftpfs
 filesystem for the Hurd.
-
-
 
-6 September 1996
+1996-09-06
 Version 0.1.
 
 Summary of important externally visible changes since version 0.0:
@@ -236,8 +263,8 @@ All disk filesystems (ext2fs) now do directory name caching 
of
 cache size to be large, and then do experiments and see what the cache
 hit rate would have been for various smaller sizes.  This should help
 in optimizing the size of the cache.
-
 
-6 August 1996
+1996-08-06
 Version 0.0
-Initial release
+
+Initial release.
diff --git a/README b/README
index 69c8dad..72955e3 100644
--- a/README
+++ b/README
@@ -1,11 +1,25 @@
--*- Text -*-
-GNU Hurd version 0.2.
+This is the GNU Hurd, <http://www.gnu.org/software/hurd/>.  Welcome.
 
+GNU Hurd runs on 32-bit x86 machines.  A version running on 64-bit x86
+(x86_64) machines is in progress.  Volunteers interested in ports to
+other architectures are sought; please contact us (see below) if you'd
+like to help.
 
-This is the Hurd.  Welcome.
+To compile the Hurd, you need a toolchain configured to target i?86-gnu;
+you cannot use a toolchain targeting GNU/Linux.  Also note that you
+cannot run the Hurd "in isolation": you'll need to add further components
+such as the GNU C Library (glibc), to turn it into a runnable system.
 
-This version of the GNU Hurd runs on various ix86 machines, including
-i386, i486, i586 (pentium), i686 (hexium [pentium pro]).  
+Recent versions of Mach, MIG, glibc, and GCC are required.  Optionally, a Sun
+RPC implementation is needed to build the NFS translator and daemon:
+
+glibc   Configured with --enable-obsolete-rpc.
+TI-RPC  Currently fails to build on GNU, see
+        <http://lists.debian.org/debian-hurd/2010/12/msg00007.html>.
+
+Obviously, you also need somewhat recent versions of binutils, make,
+bash and some other tools.  No hard requirements are currently known
+for these, though.
 
 For instructions on compiling and installing the GNU Hurd from an
 already running Hurd system, see the file `INSTALL'.
@@ -24,16 +38,15 @@ Please note that this directory also contains a fair amount 
of
 not-yet-working code.  By default, the makefiles build only the
 working code.
 
-Bug reports for the GNU Hurd should be sent to the mailing list
address@hidden'.  Please do not send requests for
-assistance in installing or using the software to that address.
-Instead, send requests for assistance to the mailing list
address@hidden'.  You can join these lists by sending a
-request to address@hidden' or
address@hidden' respectively.
 
 The GNU Hurd is free software.  All of it, including the libraries in
 this distribution, is covered by the GNU General Public License, found
 in the file COPYING.
 
 
+Please read the FAQ at <http://www.gnu.org/software/hurd/faq.html>.
+Bug reports should be sent to <address@hidden> or filed on
+<http://savannah.gnu.org/bugs/?group=hurd>.  Requests for assistance
+should be sent to <address@hidden> or filed on
+<http://savannah.gnu.org/support/?group=hurd>.  You can also find us on
+the Freenode IRC network in the #hurd channel.
diff --git a/README.CVS b/README.CVS
deleted file mode 100644
index 92a2392..0000000
--- a/README.CVS
+++ /dev/null
@@ -1,29 +0,0 @@
--*- Text -*-
-GNU Hurd CVS version.
-
-
-This is the Hurd.  Welcome.
-
-For installation instructions, you might try your luck with the files
-README, INSTALL, and INSTALL-cross.  However, they have not been
-updated for a long time.
-
-For now, this file documents the version requirements for the CVS
-version of the Hurd.  Other combinations might work, but the stated
-minimum requirements are best tested by the developers.
-
-GNU MiG                at least 1.3
-GNU Mach       at least 1.3
-GNU C library  CVS from 2004-03-09 or later
-GNU C compiler at least 3.3.2
-
-Optionally, a Sun RPC implementation is needed to build the NFS
-translator and daemon:
-
-GNU C library   at most 2.13
-TI-RPC          (currently fails to build on GNU, see
-                 <http://lists.debian.org/debian-hurd/2010/12/msg00007.html>.)
-
-Obviously, you also need somewhat recent versions of binutils, make,
-bash and some other tools.  No hard requirements are currently known
-for these, though.
diff --git a/config.make.in b/config.make.in
index 4d2abcc..5bfc777 100644
--- a/config.make.in
+++ b/config.make.in
@@ -1,7 +1,9 @@
 # @configure_input@
 
-# What version of the Hurd is this?
-hurd-version := @PACKAGE_VERSION@
+package-version := @PACKAGE_VERSION@
+# What version of the Hurd is this?  For compatibility (libraries' SONAMEs),
+# hard-code this to 0.3 instead of coupling with PACKAGE_VERSION.
+hurd-version := 0.3
 
 # Machine architecture.
 machine = @host_cpu@
diff --git a/configure.ac b/configure.ac
index a505b1d..6844f6c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,7 +1,6 @@
 dnl Process this file with autoconf to produce a configure script.
-AC_REVISION([$Id: configure.in,v 1.38 2008/11/17 11:34:18 tschwinge Exp $])
 AC_PREREQ(2.54)                        dnl Minimum Autoconf version required.
-AC_INIT([GNU Hurd], [0.3], address@hidden)
+AC_INIT([GNU Hurd], [0.5], address@hidden)
 AC_CONFIG_SRCDIR([hurd/hurd_types.h])  dnl File to look for in srcdir.
 
 AC_PREFIX_DEFAULT()            dnl Default to empty prefix, not /usr/local.
diff --git a/doc/Makefile b/doc/Makefile
index b64a838..2a75803 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -1,4 +1,4 @@
-#   Copyright (C) 1994, 1998, 1999, 2003, 2012 Free Software Foundation
+#   Copyright (C) 1994, 1998, 1999, 2003, 2012, 2013 Free Software Foundation
 #
 #   This program is free software; you can redistribute it and/or
 #   modify it under the terms of the GNU General Public License as
@@ -50,6 +50,6 @@ include ../Makeconf
 
 version.texi: stamp-version; @:
 stamp-version: $(..)config.make
-       echo '@set VERSION $(hurd-version)' > version.texi.new
+       echo '@set VERSION $(package-version)' > version.texi.new
        $(move-if-change) version.texi.new version.texi
        touch $@
diff --git a/gitlog-to-changelog b/gitlog-to-changelog
new file mode 100755
index 0000000..e02d34c
--- /dev/null
+++ b/gitlog-to-changelog
@@ -0,0 +1,432 @@
+eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}'
+  & eval 'exec perl -wS "$0" $argv:q'
+    if 0;
+# Convert git log output to ChangeLog format.
+
+my $VERSION = '2012-07-29 06:11'; # UTC
+# The definition above must lie within the first 8 lines in order
+# for the Emacs time-stamp write hook (at end) to update it.
+# If you change this file with Emacs, please let the write hook
+# do its job.  Otherwise, update this string manually.
+
+# Copyright (C) 2008-2013 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 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 General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Written by Jim Meyering
+
+use strict;
+use warnings;
+use Getopt::Long;
+use POSIX qw(strftime);
+
+(my $ME = $0) =~ s|.*/||;
+
+# use File::Coda; # http://meyering.net/code/Coda/
+END {
+  defined fileno STDOUT or return;
+  close STDOUT and return;
+  warn "$ME: failed to close standard output: $!\n";
+  $? ||= 1;
+}
+
+sub usage ($)
+{
+  my ($exit_code) = @_;
+  my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR);
+  if ($exit_code != 0)
+    {
+      print $STREAM "Try '$ME --help' for more information.\n";
+    }
+  else
+    {
+      print $STREAM <<EOF;
+Usage: $ME [OPTIONS] [ARGS]
+
+Convert git log output to ChangeLog format.  If present, any ARGS
+are passed to "git log".  To avoid ARGS being parsed as options to
+$ME, they may be preceded by '--'.
+
+OPTIONS:
+
+   --amend=FILE FILE maps from an SHA1 to perl code (i.e., s/old/new/) that
+                  makes a change to SHA1's commit log text or metadata.
+   --append-dot append a dot to the first line of each commit message if
+                  there is no other punctuation or blank at the end.
+   --no-cluster never cluster commit messages under the same date/author
+                  header; the default is to cluster adjacent commit messages
+                  if their headers are the same and neither commit message
+                  contains multiple paragraphs.
+   --srcdir=DIR the root of the source tree, from which the .git/
+                  directory can be derived.
+   --since=DATE convert only the logs since DATE;
+                  the default is to convert all log entries.
+   --format=FMT set format string for commit subject and body;
+                  see 'man git-log' for the list of format metacharacters;
+                  the default is '%s%n%b%n'
+   --strip-tab  remove one additional leading TAB from commit message lines.
+   --strip-cherry-pick  remove data inserted by "git cherry-pick";
+                  this includes the "cherry picked from commit ..." line,
+                  and the possible final "Conflicts:" paragraph.
+   --help       display this help and exit
+   --version    output version information and exit
+
+EXAMPLE:
+
+  $ME --since=2008-01-01 > ChangeLog
+  $ME -- -n 5 foo > last-5-commits-to-branch-foo
+
+SPECIAL SYNTAX:
+
+The following types of strings are interpreted specially when they appear
+at the beginning of a log message line.  They are not copied to the output.
+
+  Copyright-paperwork-exempt: Yes
+    Append the "(tiny change)" notation to the usual "date name email"
+    ChangeLog header to mark a change that does not require a copyright
+    assignment.
+  Co-authored-by: Joe User <address@hidden>
+    List the specified name and email address on a second
+    ChangeLog header, denoting a co-author.
+  Signed-off-by: Joe User <address@hidden>
+    These lines are simply elided.
+
+In a FILE specified via --amend, comment lines (starting with "#") are ignored.
+FILE must consist of <SHA,CODE+> pairs where SHA is a 40-byte SHA1 (alone on
+a line) referring to a commit in the current project, and CODE refers to one
+or more consecutive lines of Perl code.  Pairs must be separated by one or
+more blank line.
+
+Here is sample input for use with --amend=FILE, from coreutils:
+
+3a169f4c5d9159283548178668d2fae6fced3030
+# fix typo in title:
+s/all tile types/all file types/
+
+1379ed974f1fa39b12e2ffab18b3f7a607082202
+# Due to a bug in vc-dwim, I mis-attributed a patch by Paul to myself.
+# Change the author to be Paul.  Note the escaped "@":
+s,Jim .*>,Paul Eggert <address@hidden>,
+
+EOF
+    }
+  exit $exit_code;
+}
+
+# If the string $S is a well-behaved file name, simply return it.
+# If it contains white space, quotes, etc., quote it, and return the new 
string.
+sub shell_quote($)
+{
+  my ($s) = @_;
+  if ($s =~ m![^\w+/.,-]!)
+    {
+      # Convert each single quote to '\''
+      $s =~ s/\'/\'\\\'\'/g;
+      # Then single quote the string.
+      $s = "'$s'";
+    }
+  return $s;
+}
+
+sub quoted_cmd(@)
+{
+  return join (' ', map {shell_quote $_} @_);
+}
+
+# Parse file F.
+# Comment lines (starting with "#") are ignored.
+# F must consist of <SHA,CODE+> pairs where SHA is a 40-byte SHA1
+# (alone on a line) referring to a commit in the current project, and
+# CODE refers to one or more consecutive lines of Perl code.
+# Pairs must be separated by one or more blank line.
+sub parse_amend_file($)
+{
+  my ($f) = @_;
+
+  open F, '<', $f
+    or die "$ME: $f: failed to open for reading: $!\n";
+
+  my $fail;
+  my $h = {};
+  my $in_code = 0;
+  my $sha;
+  while (defined (my $line = <F>))
+    {
+      $line =~ /^\#/
+        and next;
+      chomp $line;
+      $line eq ''
+        and $in_code = 0, next;
+
+      if (!$in_code)
+        {
+          $line =~ /^([0-9a-fA-F]{40})$/
+            or (warn "$ME: $f:$.: invalid line; expected an SHA1\n"),
+              $fail = 1, next;
+          $sha = lc $1;
+          $in_code = 1;
+          exists $h->{$sha}
+            and (warn "$ME: $f:$.: duplicate SHA1\n"),
+              $fail = 1, next;
+        }
+      else
+        {
+          $h->{$sha} ||= '';
+          $h->{$sha} .= "$line\n";
+        }
+    }
+  close F;
+
+  $fail
+    and exit 1;
+
+  return $h;
+}
+
+# git_dir_option $SRCDIR
+#
+# From $SRCDIR, the --git-dir option to pass to git (none if $SRCDIR
+# is undef).  Return as a list (0 or 1 element).
+sub git_dir_option($)
+{
+  my ($srcdir) = @_;
+  my @res = ();
+  if (defined $srcdir)
+    {
+      my $qdir = shell_quote $srcdir;
+      my $cmd = "cd $qdir && git rev-parse --show-toplevel";
+      my $qcmd = shell_quote $cmd;
+      my $git_dir = qx($cmd);
+      defined $git_dir
+        or die "$ME: cannot run $qcmd: $!\n";
+      $? == 0
+        or die "$ME: $qcmd had unexpected exit code or signal ($?)\n";
+      chomp $git_dir;
+      push @res, "--git-dir=$git_dir/.git";
+    }
+  @res;
+}
+
+{
+  my $since_date;
+  my $format_string = '%s%n%b%n';
+  my $amend_file;
+  my $append_dot = 0;
+  my $cluster = 1;
+  my $strip_tab = 0;
+  my $strip_cherry_pick = 0;
+  my $srcdir;
+  GetOptions
+    (
+     help => sub { usage 0 },
+     version => sub { print "$ME version $VERSION\n"; exit },
+     'since=s' => \$since_date,
+     'format=s' => \$format_string,
+     'amend=s' => \$amend_file,
+     'append-dot' => \$append_dot,
+     'cluster!' => \$cluster,
+     'strip-tab' => \$strip_tab,
+     'strip-cherry-pick' => \$strip_cherry_pick,
+     'srcdir=s' => \$srcdir,
+    ) or usage 1;
+
+  defined $since_date
+    and unshift @ARGV, "--since=$since_date";
+
+  # This is a hash that maps an SHA1 to perl code (i.e., s/old/new/)
+  # that makes a correction in the log or attribution of that commit.
+  my $amend_code = defined $amend_file ? parse_amend_file $amend_file : {};
+
+  my @cmd = ('git',
+             git_dir_option $srcdir,
+             qw(log --log-size),
+             '--pretty=format:%H:%ct  %an  <%ae>%n%n'.$format_string, @ARGV);
+  open PIPE, '-|', @cmd
+    or die ("$ME: failed to run '". quoted_cmd (@cmd) ."': $!\n"
+            . "(Is your Git too old?  Version 1.5.1 or later is required.)\n");
+
+  my $prev_multi_paragraph;
+  my $prev_date_line = '';
+  my @prev_coauthors = ();
+  while (1)
+    {
+      defined (my $in = <PIPE>)
+        or last;
+      $in =~ /^log size (\d+)$/
+        or die "$ME:$.: Invalid line (expected log size):\n$in";
+      my $log_nbytes = $1;
+
+      my $log;
+      my $n_read = read PIPE, $log, $log_nbytes;
+      $n_read == $log_nbytes
+        or die "$ME:$.: unexpected EOF\n";
+
+      # Extract leading hash.
+      my ($sha, $rest) = split ':', $log, 2;
+      defined $sha
+        or die "$ME:$.: malformed log entry\n";
+      $sha =~ /^[0-9a-fA-F]{40}$/
+        or die "$ME:$.: invalid SHA1: $sha\n";
+
+      # If this commit's log requires any transformation, do it now.
+      my $code = $amend_code->{$sha};
+      if (defined $code)
+        {
+          eval 'use Safe';
+          my $s = new Safe;
+          # Put the unpreprocessed entry into "$_".
+          $_ = $rest;
+
+          # Let $code operate on it, safely.
+          my $r = $s->reval("$code")
+            or die "$ME:$.:$sha: failed to eval \"$code\":address@hidden";
+
+          # Note that we've used this entry.
+          delete $amend_code->{$sha};
+
+          # Update $rest upon success.
+          $rest = $_;
+        }
+
+      # Remove lines inserted by "git cherry-pick".
+      if ($strip_cherry_pick)
+        {
+          $rest =~ s/^\s*Conflicts:\n.*//sm;
+          $rest =~ s/^\s*\(cherry picked from commit [\da-f]+\)\n//m;
+        }
+
+      my @line = split "\n", $rest;
+      my $author_line = shift @line;
+      defined $author_line
+        or die "$ME:$.: unexpected EOF\n";
+      $author_line =~ /^(\d+)  (.*>)$/
+        or die "$ME:$.: Invalid line "
+          . "(expected date/author/email):\n$author_line\n";
+
+      # Format 'Copyright-paperwork-exempt: Yes' as a standard ChangeLog
+      # `(tiny change)' annotation.
+      my $tiny = (grep (/^Copyright-paperwork-exempt:\s+[Yy]es$/, @line)
+                  ? '  (tiny change)' : '');
+
+      my $date_line = sprintf "%s  %s$tiny\n",
+        strftime ("%F", localtime ($1)), $2;
+
+      my @coauthors = grep /^Co-authored-by:.*$/, @line;
+      # Omit meta-data lines we've already interpreted.
+      @line = grep !/^(?:Signed-off-by:[ ].*>$
+                       |Co-authored-by:[ ]
+                       |Copyright-paperwork-exempt:[ ]
+                       )/x, @line;
+
+      # Remove leading and trailing blank lines.
+      if (@line)
+        {
+          while ($line[0] =~ /^\s*$/) { shift @line; }
+          while ($line[$#line] =~ /^\s*$/) { pop @line; }
+        }
+
+      # Record whether there are two or more paragraphs.
+      my $multi_paragraph = grep /^\s*$/, @line;
+
+      # Format 'Co-authored-by: A U Thor <address@hidden>' lines in
+      # standard multi-author ChangeLog format.
+      for (@coauthors)
+        {
+          s/^Co-authored-by:\s*/\t    /;
+          s/\s*</  </;
+
+          /<address@hidden>/
+            or warn "$ME: warning: missing email address for "
+              . substr ($_, 5) . "\n";
+        }
+
+      # If clustering of commit messages has been disabled, if this header
+      # would be different from the previous date/name/email/coauthors header,
+      # or if this or the previous entry consists of two or more paragraphs,
+      # then print the header.
+      if ( ! $cluster
+          || $date_line ne $prev_date_line
+          || "@coauthors" ne "@prev_coauthors"
+          || $multi_paragraph
+          || $prev_multi_paragraph)
+        {
+          $prev_date_line eq ''
+            or print "\n";
+          print $date_line;
+          @coauthors
+            and print join ("\n", @coauthors), "\n";
+        }
+      $prev_date_line = $date_line;
+      @prev_coauthors = @coauthors;
+      $prev_multi_paragraph = $multi_paragraph;
+
+      # If there were any lines
+      if (@line == 0)
+        {
+          warn "$ME: warning: empty commit message:\n  $date_line\n";
+        }
+      else
+        {
+          if ($append_dot)
+            {
+              # If the first line of the message has enough room, then
+              if (length $line[0] < 72)
+                {
+                  # append a dot if there is no other punctuation or blank
+                  # at the end.
+                  $line[0] =~ /[[:punct:]\s]$/
+                    or $line[0] .= '.';
+                }
+            }
+
+          # Remove one additional leading TAB from each line.
+          $strip_tab
+            and map { s/^\t// } @line;
+
+          # Prefix each non-empty line with a TAB.
+          @line = map { length $_ ? "\t$_" : '' } @line;
+
+          print "\n", join ("\n", @line), "\n";
+        }
+
+      defined ($in = <PIPE>)
+        or last;
+      $in ne "\n"
+        and die "$ME:$.: unexpected line:\n$in";
+    }
+
+  close PIPE
+    or die "$ME: error closing pipe from " . quoted_cmd (@cmd) . "\n";
+  # FIXME-someday: include $PROCESS_STATUS in the diagnostic
+
+  # Complain about any unused entry in the --amend=F specified file.
+  my $fail = 0;
+  foreach my $sha (keys %$amend_code)
+    {
+      warn "$ME:$amend_file: unused entry: $sha\n";
+      $fail = 1;
+    }
+
+  exit $fail;
+}
+
+# Local Variables:
+# mode: perl
+# indent-tabs-mode: nil
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "my $VERSION = '"
+# time-stamp-format: "%:y-%02m-%02d %02H:%02M"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "'; # UTC"
+# End:
diff --git a/libdiskfs/dir-lookup.c b/libdiskfs/dir-lookup.c
index 15a9b0c..86116e3 100644
--- a/libdiskfs/dir-lookup.c
+++ b/libdiskfs/dir-lookup.c
@@ -294,8 +294,6 @@ diskfs_S_dir_lookup (struct protid *dircred,
 
          if (error != ENOENT)
            {
-             diskfs_nrele (dnp);
-             diskfs_nput (np);
              *returned_port_poly = MACH_MSG_TYPE_MOVE_SEND;
              if (!lastcomp && !error)
                {
@@ -303,7 +301,7 @@ diskfs_S_dir_lookup (struct protid *dircred,
                  *end++ = '/';
                  strcpy (end, nextname);
                }
-             return error;
+             goto out;
            }
 
          /* ENOENT means there was a hiccup, and the translator
diff --git a/proc/host.c b/proc/host.c
index 2b3c4f3..488863b 100644
--- a/proc/host.c
+++ b/proc/host.c
@@ -1,5 +1,7 @@
 /* Proc server host management calls
-   Copyright (C) 1992,93,94,96,97,2001,02 Free Software Foundation, Inc.
+
+   Copyright (C) 1992, 1993, 1994, 1996, 1997, 2001, 2002, 2013 Free Software
+   Foundation, Inc.
 
 This file is part of the GNU Hurd.
 
@@ -231,8 +233,7 @@ check_dead_execdata_notify (mach_port_t port)
 
 /* Version information handling.
 
-   A server registers its name and version with
-   startup_register_version.
+   A server registers its name and version with proc_register_version.
 
    The uname release is the most popular version number.
 

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-hurd/hurd.git



reply via email to

[Prev in Thread] Current Thread [Next in Thread]