[Top][All Lists]

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

[Guile-commits] GNU Guile branch, stable-2.0, updated. v2.0.2-11-g126a32

From: Ludovic Courtès
Subject: [Guile-commits] GNU Guile branch, stable-2.0, updated. v2.0.2-11-g126a322
Date: Tue, 12 Jul 2011 22:08:54 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Guile".

The branch, stable-2.0 has been updated
       via  126a32243146d9ad238a3a5adb8d6af5a87ad2aa (commit)
       via  3565df4546d97da4be573610a73f333d45a6287a (commit)
       via  1fe9920adc80fa7ff59020b13479e5bedeed4401 (commit)
       via  2a8b3b80502e7f5ac9da462c15525858409b1909 (commit)
      from  ae88d9bcf622baa6745a91fafb9be2fb331ad6c0 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 126a32243146d9ad238a3a5adb8d6af5a87ad2aa
Author: Ludovic Courtès <address@hidden>
Date:   Tue Jul 12 23:57:57 2011 +0200

    Fix `open' mode bits on GNU/Hurd.
    * libguile/filesys.c (scm_open): Fix check for read-write flags for
      systems such as GNU/Hurd, where O_RDWR == (O_WRONLY | O_RDONLY)
      and O_RDONLY != 0.

commit 3565df4546d97da4be573610a73f333d45a6287a
Author: Ludovic Courtès <address@hidden>
Date:   Tue Jul 12 23:08:42 2011 +0200

    Define `O_NOTRANS' on GNU/Hurd.
    * libguile/filesys.c (scm_init_filesys): Define `O_NOTRANS' when

commit 1fe9920adc80fa7ff59020b13479e5bedeed4401
Author: Ludovic Courtès <address@hidden>
Date:   Tue Jul 12 09:26:32 2011 +0200

    Disable TLS on NetBSD up to 5.x included.
    * acinclude.m4 (GUILE_THREAD_LOCAL_STORAGE): Disable TLS on
      `x86_64-unknown-netbsd5.1' too.

commit 2a8b3b80502e7f5ac9da462c15525858409b1909
Author: Ludovic Courtès <address@hidden>
Date:   Tue Jul 12 09:24:14 2011 +0200

    Add document describing the release process.
    * doc/ New file.


Summary of changes:
 acinclude.m4       |    3 +-
 doc/    |  164 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 libguile/filesys.c |   28 ++++++---
 3 files changed, 184 insertions(+), 11 deletions(-)
 create mode 100644 doc/

diff --git a/acinclude.m4 b/acinclude.m4
index c930444..ba17e93 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -374,13 +374,14 @@ AC_DEFUN([GUILE_THREAD_LOCAL_STORAGE], [
      dnl Known broken systems includes:
      dnl   - x86_64-unknown-netbsd5.0.
+     dnl   - x86_64-unknown-netbsd5.1
      dnl   - sparc-sun-solaris2.8
      dnl On `x86_64-unknown-freebsd8.0', thread-local storage appears to
      dnl be reclaimed at the wrong time, leading to a segfault when
      dnl running `threads.test'.  So disable it.
      case "$enable_shared--$host_os" in
-       [yes--netbsd[0-5].[0-9].|yes--solaris2.8|yes--freebsd[0-8]*])
+       [yes--netbsd[0-5].[0-9]*|yes--solaris2.8|yes--freebsd[0-8]*])
diff --git a/doc/ b/doc/
new file mode 100644
index 0000000..0d18be3
--- /dev/null
+++ b/doc/
@@ -0,0 +1,164 @@
+#+TITLE: Release Process for GNU Guile 2.0
+#+AUTHOR: Ludovic Courtès
+#+EMAIL: address@hidden
+This document describes the typical release process for Guile 2.0.
+* Preparing & uploading the tarball
+** Update Gnulib
+The commit log's first line should be "Update Gnulib to X", where X is
+the output of `git describe' in the Gnulib repo.
+This allows us to keep track of the source code we use, in case a bug or
+security vulnerability gets fixed in Gnulib sometime later.
+Ideally update Gnulib several days prior to the release, so that
+portability or build issues can be uncovered in time.
+** Make sure it works, portably, and with different configurations
+*** Check [[][Hydra]]
+This contains builds and cross-builds on different platforms, with
+different `configure' switches, different CPPFLAGS, and different
+versions of the compiler.
+As of this writing, there are unfixed failures.  For instance Darwin's
+compiler randomly crashes, preventing build completion; the FreeBSD 7.x
+box experiences Guile crashes while running the test suite, which were
+not fixed because not reproduced elsewhere.  Even for these platforms,
+make sure "things don't get worse", at least.
+*** Check [[][Autobuild]]
+This contains build reports from other people, typically on lesser used
+platforms, so it's worth checking.
+*** Use the [[][GCC Compile Farm]]
+Use the GCC Compile Farm to check on lesser used architectures or
+operating systems.  In particular, the Farm has ARM, SPARC64, PowerPC,
+and MIPS GNU/Linux boxes (remember that this is not superfluous: Debian
+builds on 11 architectures).  It also has FreeBSD and NetBSD boxes.
+*** Use porter boxes
+If you're still in a good mood, you may also want to check on porter
+boxes for other OSes.  The GNU/Hurd people have 
[[][porter boxes]], so 
+the [[][OpenCSW Solaris Team]].
+** Update `GUILE-VERSION'
+For stable releases, make sure to update the SONAME appropriately.  To
+that end, review the commit logs for libguile in search of any C ABI
+changes (new functions added, existing functions deprecated, etc.)
+Change `LIBGUILE_INTERFACE_*' accordingly.  Re-read the Libtool manual
+if in doubt.
+`libguile/' should also be updated as new public symbols are
+added.  Ideally, new symbols should get under a new version
+symbol---e.g., `GUILE_2.0.3' for symbols introduced in Guile 2.0.3.
+However, this has not been done for Guile <= 2.0.2.
+** Tag v2.0.x
+Create a signed Git tag, like this:
+  $ git tag -s u MY-KEY -m "GNU Guile 2.0.X." v2.0.X
+The tag *must* be `v2.0.X'.  For the sake of consistency, always use
+"GNU Guile 2.0.X." as the tag comment.
+** Push the tag and changes
+  $ git push && git push --tags
+Normally nobody committed in the meantime.  ;-)
+** Run "make dist"
+This should trigger an `autoreconf', as `build-aux/git-version-gen'
+notices the new tag.  After "make dist", double-check that `./configure
+--version' reports the new version number.
+The reason for running "make dist" instead of "make distcheck" is that
+it's much faster and any distribution issues should have been caught by
+Hydra already.
+** Upload
+  $ ./build-aux/gnupload --to guile-2.0.X.tar.gz
+You'll get an email soon after when the upload is complete.
+Your GPG public key must be registered for this to work (info
+"(maintain) Automated Upload Registration").
+Make sure to publish your public key on public OpenPGP servers
+(,, etc.), so that people can actually use it
+to check the authenticity and integrity of the tarball.
+** Download
+Make sure the file was uploaded and is available for download as
+  $ mkdir t && cd t && wget
+  $ diff guile-2.0.X.tar.gz ../guile-2.0.X.tar.gz
+You're almost done!
+* Announcements
+First, re-read the GNU Maintainers Guide on this topic (info "(maintain)
+** Update web pages
+  - Replace any references to the previous version number and replace it
+    with the new one.
+  - Update news.html.
+** Update the on-line copy of the manual
+  - Use `build-aux/gendocs', add to the manual/ directory of the web
+    site.
+** Prepare the email announcement
+  $ build-aux/announce-gen --release-type=stable --package-name=guile \
+      --previous-version=2.0.1 --current-version=2.0.2 \
+      --gpg-key-id=MY-KEY --url-directory= \
+      --bootstrap-tools=autoconf,automake,libtool,gnulib \
+      --gnulib-version=$( cd ~/src/gnulib ; git describe )
+The subject must be "GNU Guile 2.0.X released".  The text should remain
+formal and impersonal (it is sent on behalf of the Guile and GNU
+projects.)  It must include a description of what Guile is (not everyone
+reading info-gnu may know about it.)  Use the text of previous
+announcements as a template.
+Below the initial boilerplate that describes Guile should come the
+output of `announce-gen', and then the `NEWS' file excerpt in its
+entirety (don't call it a change log since that's not what it is.)
+** Send the email announcement
+  - address@hidden, address@hidden, address@hidden
+  - address@hidden (for stable releases only!)
+  - comp.lang.scheme
+** Post a news on [[][Savannah]]
+The news will end up on  The text can be shorter and
+more informal, with a link to the email announcement for details.
+Copyright © 2011 Free Software Foundation, Inc.
+  Copying and distribution of this file, with or without modification,
+  are permitted in any medium without royalty provided the copyright
+  notice and this notice are preserved.
diff --git a/libguile/filesys.c b/libguile/filesys.c
index ceec877..f600328 100644
--- a/libguile/filesys.c
+++ b/libguile/filesys.c
@@ -261,8 +261,10 @@ SCM_DEFINE (scm_open, "open", 2, 1, 0,
   fd = scm_to_int (scm_open_fdes (path, flags, mode));
   iflags = SCM_NUM2INT (2, flags);
-  if (iflags & O_RDWR)
+  if ((iflags & O_RDWR) == O_RDWR)
+      /* Opened read-write.  */
       if (iflags & O_APPEND)
        port_mode = "a+";
       else if (iflags & O_CREAT)
@@ -270,14 +272,17 @@ SCM_DEFINE (scm_open, "open", 2, 1, 0,
        port_mode = "r+";
-  else {
-    if (iflags & O_APPEND)
-      port_mode = "a";
-    else if (iflags & O_WRONLY)
-      port_mode = "w";
-    else
-      port_mode = "r";
-  }
+  else
+    {
+      /* Opened read-only or write-only.  */
+      if (iflags & O_APPEND)
+       port_mode = "a";
+      else if (iflags & O_WRONLY)
+       port_mode = "w";
+      else
+       port_mode = "r";
+    }
   newpt = scm_fdes_to_port (fd, port_mode, path);
   return newpt;
@@ -1856,7 +1861,10 @@ scm_init_filesys ()
 #ifdef O_LARGEFILE  
   scm_c_define ("O_LARGEFILE", scm_from_int (O_LARGEFILE));
+#ifdef O_NOTRANS
+  scm_c_define ("O_NOTRANS", scm_from_int (O_NOTRANS));
 #ifdef F_DUPFD  
   scm_c_define ("F_DUPFD", scm_from_int (F_DUPFD));

GNU Guile

reply via email to

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