Skip to content

Commit

Permalink
Changes for next release
Browse files Browse the repository at this point in the history
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/trunk@39451 72102866-910b-0410-8b05-ffd578937521
  • Loading branch information
rfm committed Mar 4, 2016
1 parent c8a007b commit 733b21e
Show file tree
Hide file tree
Showing 9 changed files with 78 additions and 54 deletions.
11 changes: 11 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
2016-03-04 Richard Frith-Macdonald <rfm@gnu.org>

* configure.ac: Enable strict v2 mode by default
* configure: regenerate
* README.Packaging: Warn about updating ancient makefiles
* Documentation/library-combo.7: Talk about ng runtime
* Version:
* Documentation/news.texi:
* Documentation/releasenotes.texi:
Update prior to new release

2016-03-02 Richard Frith-Macdonald <rfm@gnu.org>

* configure.ac: Improve selection of clang when 'ng' runtime library
Expand Down
7 changes: 4 additions & 3 deletions Documentation/GNUstep.7
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ GNUstep \- A free implementation of the OpenStep standard
.B GNUstep
provides an Object-Oriented application development framework and toolset for use on a wide variety of computer platforms.
.B GNUstep
is based on the original OpenStep specification provided by NeXT, Inc. (now Apple).
is based on the original OpenStep specification provided by NeXT, Inc. (now Apple and called Cocoa).
.P
.B GNUstep
is written in Objective-C, an object-oriented superset of the C programming language, similar to SmallTalk. However there exist a number of brigdes and interfaces to develop
is written in Objective-C, an object-oriented superset of the C programming language, similar to SmallTalk. However there exist a number of bridges and interfaces to develop
.B GNUstep
programs using other languages like JAVA or Ruby.

Expand All @@ -36,7 +36,8 @@ This is the backend of
.BR GNUstep 's
GUI part which does the actual rendering and event handling. It acts as a layer between gnustep-gui and the operating/drawing system. Backends exist for X11 (one using cairo, one using libart, one using xlib drawing) and win32.
.PP
Apart from the above, there exist a number of addon libraries, like
Apart from the above, there exist a number of addon libraries related to
GNUstep, like
.B Renaissance
which allows developers to specify an application's user interface in xml. For database access, there is
.B GDL2
Expand Down
16 changes: 9 additions & 7 deletions Documentation/library-combo.7
Original file line number Diff line number Diff line change
Expand Up @@ -39,30 +39,30 @@ etc. flags.
An important issue is to let to a package the ability to deal with various libraries and configurations available now:
.TP
.B Objective-C runtimes
In the Objective-C world there are three major runtimes: the NeXT runtime, the Apple runtime and the
In the Objective-C world there are three major runtimes: the GNUstep runtime, the Apple runtime and the
.SM GNU
runtime (both with and without garbage collection enabled). They are different in several respects and a program or library that works at the runtime level should be aware of them.
.TP
.B Foundation libraries
There are several Foundation libraries an application or tool can be written on top of: NeXT Foundation library which runs on NeXTStep/OPENSTEP systems, gnustep-base, libFoundation and Apple Cocoa system.
There are different Foundation libraries an application or tool can be written on top of: gnustep-base, libFoundation and Apple Cocoa system.
.TP
.B Graphical interfaces
Until now three libraries provide or try to provide OpenStep compliant systems: the AppKit from NeXT, gnustep-gui and Cocoa from Apple.
.PP
If a program wants to work with all the possible combinations it will have to provide different binaries for each combination because it's not possible to have a tool compiled for NeXT Foundation that runs with gnustep-base or vice-versa. To summarize, a program can be compiled for these combinations:
.TP
.B Objective-C runtime
nx (for NeXT), gnu (for
ng (for GNUstep Next Generation), gnu (for
.SM GNU
without garbage collection), gnugc (for
without garbage collection, or for GNUstep without latest language features), gnugc (for
.SM GNU
with garbage collection), apple (for Apple)
with garbage collection), apple (for Apple), nx (for NeXT)
.TP
.B Foundation library
nx (for NeXT), gnu (for gnustep-base), fd (for libFoundation), apple (for Apple Cocoa)
gnu (for gnustep-base), fd (for libFoundation), apple (for Apple Cocoa), nx (for NeXT Foundation)
.TP
.B GUI library
nx (for NeXT), gnu (for gnustep-gui), apple (for Apple Cocoa)
gnu (for gnustep-gui), apple (for Apple Cocoa), nx (for NeXT GUI)
.PP
We'll denote the fact that an application was compiled for a certain combination of the above values by using the abbreviations of the different subsystems and placing dashes between them. For example an application compiled for NeXT Foundation using NeXT AppKit will have the compile attribute nx\-nx\-nx. An application compiled for Apple Cocoa with the
.SM GNU
Expand All @@ -80,6 +80,8 @@ under Unix will be denoted by gnu\-gnu\-gnu. Here is a list of some of the possi
nx fd gnu
.RS 0
gnu gnu gnu
.RS 0
ng gnu gnu
.RS 0
gnu fd gnu
.RS 0
Expand Down
18 changes: 16 additions & 2 deletions Documentation/news.texi
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,22 @@
The currently released version is @samp{@value{GNUSTEP-MAKE-VERSION}}.
@end ifclear

@section Changes in version @samp{2.6.8}

Configure option '--with-library-combo=ng-gnu-gnu' to use the 'Next Generation' setup of the latest ObjectiveC-2 runtime and compiler features rather than traditional runtime. Requires the new runtime and a recent clang compiler.

Command line option 'documentation=no' to suppress builds of documentation.

Integration of testsuite for regression/unit testing of libraries using the 'check' target. In your makefile define libraryname_TEST_DIR = TestsSubdirectory

Various minor bugfixes, documentation spelling corrections etc.

The '--enable-strict-v2-mode' option is now, after eight years, turned on by default (in anticipation of finally removing backward compatibility with version one). WARNING; Packagers please ensure that you update any old gnustep-make version one makefiles.

Garbage collection support to be removed at the next release.

@ifclear ANNOUNCE-ONLY

@section Changes in version @samp{2.6.7}

Improved package building support
Expand All @@ -19,8 +35,6 @@ Improved Java support

Various minor bugfixes, documentation spelling corrections etc.

@ifclear ANNOUNCE-ONLY

@section Changes in version @samp{2.6.6}

Debian packaging support
Expand Down
14 changes: 14 additions & 0 deletions Documentation/releasenotes.texi
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,20 @@ The release notes include descriptions of API changes, behavior
changes and other information that might help developers and users
migrate to using a newer version of the make system.

@section Version 2.6.8

Configure option '--with-library-combo=ng-gnu-gnu' to use the 'Next Generation' setup of the latest ObjectiveC-2 runtime and compiler features rather than traditional runtime. Requires the new runtime and a recent clang compiler.

Command line option 'documentation=no' to suppress builds of documentation.

Integration of testsuite for regression/unit testing of libraries using the 'check' target. In your makefile define libraryname_TEST_DIR = TestsSubdirectory

Various minor bugfixes, documentation spelling corrections etc.

The '--enable-strict-v2-mode' option is now, after eight years, turned on by default (in anticipation of finally removing backward compatibility with version one). WARNING; Packagers please ensure that you update any old gnustep-make version one makefiles.

Garbage collection support to be removed at the next release.

@section Version 2.6.7

Improved package building support
Expand Down
19 changes: 9 additions & 10 deletions README.Packaging
Original file line number Diff line number Diff line change
Expand Up @@ -163,17 +163,16 @@ filesystem layout.
=================

The library-combo defines the main components of your Objective-C
environment. Unless you're on Darwin or Apple, it's unlikely that you
ever need to bother with library-combos and the default gnu-gnu-gnu is
perfect for you.
environment.

"gnu-gnu-gnu" means that the system is using the GNU Objective-C
runtime library, the GNU foundation/base library, and the GNU app/gui
library. It is possible in some situations to replace some of these
components with Apple libraries, for example, eg, the apple-gnu-gnu
library combo would mean using the Apple Objective-C runtime library
instead of the GNU one.
The default is currently "gnu-gnu-gnu", which means that the system
is using the GNU Objective-C runtime library, the GNU foundation/base
library, and the GNU app/gui library.

You may well wish to use "ng-gnu-gnu", which means that the runtime
library is the GNUstep runtime for ObjectiveC-2, and also means that
the latest language features are expected with the compiler.
To use this you must ship the GNUstep runtime and clang-3.1 or later.

4. CONFIGURATION FILE
=====================
Expand Down Expand Up @@ -253,7 +252,7 @@ command now looks something like

Or, if you really wanted to change a lot of things, it might look like

./configure --with-layout={FILE} --with-config-file={LOCATION} --with-user-defaults-dir={DEFAULTS_DIR}
./configure --with-layout={FILE} --with-library-combo=ng-gnu-gnu --with-config-file={LOCATION} --with-user-defaults-dir={DEFAULTS_DIR}


8. USER ENVIRONMENT
Expand Down
2 changes: 1 addition & 1 deletion Version
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@
# The version number of this release.
GNUSTEP_MAKE_MAJOR_VERSION=2
GNUSTEP_MAKE_MINOR_VERSION=6
GNUSTEP_MAKE_SUBMINOR_VERSION=7
GNUSTEP_MAKE_SUBMINOR_VERSION=8
GNUSTEP_MAKE_VERSION=${GNUSTEP_MAKE_MAJOR_VERSION}.${GNUSTEP_MAKE_MINOR_VERSION}.${GNUSTEP_MAKE_SUBMINOR_VERSION}

24 changes: 8 additions & 16 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -1430,19 +1430,9 @@ Optional Features:
--enable-strict-v2-mode
Enable strict gnustep-make version 2 mode by default. Use this
option to have gnustep-make be aggressively backwards-incompatible
with gnustep-make version 1. You can use it when you are debugging /
upgrading your makefiles and software to gnustep-make version 2 and
want to test test that they do not depend on obsolete or deprecated
version 1 features and variables. Important: you must never ship
gnustep-make to end-users with --enable-strict-v2-mode as it would
cause extremely confusing and dangerous problems with software that
has not been updated to gnustep-make v2 yet. Use it only on test
builds or development machines to test that makefiles and software
have been updated. Make sure to use it extremely carefully with old
makefiles because it can produce unpredictable and dangerous results
(for examples, since GNUSTEP_SYSTEM_ROOT is undefined when using
--enable-strict-v2-mode, installing into GNUSTEP_SYSTEM_ROOT/Headers
would actually install into /Headers).
with gnustep-make version 1. You should use it to help upgrade old
makefiles. Packegers should make sure that old makefiles have been
upgraded before releasing builds using this option.
--enable-absolute-install-paths
Expand Down Expand Up @@ -4613,20 +4603,22 @@ $as_echo_n "checking if we should enable strict gnustep-make version 2 mode by d
if test "${enable_strict_v2_mode+set}" = set; then :
enableval=$enable_strict_v2_mode; ac_cv_strict_v2_mode=$enableval
else
ac_cv_strict_v2_mode="no"
ac_cv_strict_v2_mode="yes"
fi
if test "$ac_cv_strict_v2_mode" = "yes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; };
GNUSTEP_MAKE_STRICT_V2_MODE="yes"
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Use strict version 2 mode at your own risk; it must only be used on development/test systems" >&5
$as_echo "$as_me: WARNING: Use strict version 2 mode at your own risk; it must only be used on development/test systems" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Useing strict version 2 mode; ancient makefiles may need to be updated" >&5
$as_echo "$as_me: WARNING: Useing strict version 2 mode; ancient makefiles may need to be updated" >&2;}
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; };
GNUSTEP_MAKE_STRICT_V2_MODE="no"
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Disable strict version 2 mode at your own risk; it may allow faulty makefiles to go unnoticed" >&5
$as_echo "$as_me: WARNING: Disable strict version 2 mode at your own risk; it may allow faulty makefiles to go unnoticed" >&2;}
fi
Expand Down
21 changes: 6 additions & 15 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -343,30 +343,21 @@ AC_ARG_ENABLE(strict-v2-mode, [
--enable-strict-v2-mode
Enable strict gnustep-make version 2 mode by default. Use this
option to have gnustep-make be aggressively backwards-incompatible
with gnustep-make version 1. You can use it when you are debugging /
upgrading your makefiles and software to gnustep-make version 2 and
want to test test that they do not depend on obsolete or deprecated
version 1 features and variables. Important: you must never ship
gnustep-make to end-users with --enable-strict-v2-mode as it would
cause extremely confusing and dangerous problems with software that
has not been updated to gnustep-make v2 yet. Use it only on test
builds or development machines to test that makefiles and software
have been updated. Make sure to use it extremely carefully with old
makefiles because it can produce unpredictable and dangerous results
(for examples, since GNUSTEP_SYSTEM_ROOT is undefined when using
--enable-strict-v2-mode, installing into GNUSTEP_SYSTEM_ROOT/Headers
would actually install into /Headers).
with gnustep-make version 1. You should use it to help upgrade old
makefiles. Packegers should make sure that old makefiles have been
upgraded before releasing builds using this option.
],
ac_cv_strict_v2_mode=$enableval,
ac_cv_strict_v2_mode="no")
ac_cv_strict_v2_mode="yes")

if test "$ac_cv_strict_v2_mode" = "yes"; then
AC_MSG_RESULT(yes);
GNUSTEP_MAKE_STRICT_V2_MODE="yes"
AC_MSG_WARN(Use strict version 2 mode at your own risk; it must only be used on development/test systems)
AC_MSG_WARN(Useing strict version 2 mode; ancient makefiles may need to be updated)
else
AC_MSG_RESULT(no);
GNUSTEP_MAKE_STRICT_V2_MODE="no"
AC_MSG_WARN(Disable strict version 2 mode at your own risk; it may allow faulty makefiles to go unnoticed)
fi

AC_SUBST(GNUSTEP_MAKE_STRICT_V2_MODE)
Expand Down

0 comments on commit 733b21e

Please sign in to comment.