|
|
Subscribe / Log in / New account

Gnuplot 4.6 released

From:  "sfeam (Ethan Merritt)" <eamerritt-AT-gmail.com>
To:  lwn-AT-lwn.net
Subject:  Release of gnuplot version 4.6
Date:  Mon, 12 Mar 2012 20:16:26 -0700
Message-ID:  <201203122016.26431.sfeam@users.sourceforge.net>

                   GNUPLOT VERSION 4.6
            ===================================

The gnuplot team are happy to announce release of gnuplot version 4.6. 
This version is a major release with significant new capabilities
and enhancements added since release of the previous major version (4.4)
in March 2010.  Incremental releases are put out roughly twice a year.

Particularly noteworthy features include:

- New syntax supporting multi-line blocks of code delimited by curly braces
     if (<cond>) { ... } else { ... }
     do for [<iteration-spec>] { ... }
     while (<cond>) { ... }

- Time formats can handle fractional seconds to microsecond precision.

- User-definable linetypes that can be used to establish a locally
  preferred default sequence of colors or dash/thickness/point styles.

- Statistical summary of the data to be plotted (new command "stats")

- New terminal drivers:  qt  context  epscairo  cairolatex

- The version for Windows received a substantial update
  (GUI, help, native terminal and wxt, installer)

- Improved support for UTF-8, SJIS and other multi-byte encodings

The NEWS file contains a longer list of changes since the previous release.
Full information is given in the ChangeLog.

Demo plots illustrating new and old features are online at

             http://gnuplot.sourceforge.net/demo/


                NOTES TO PACKAGERS AND TESTERS 
                ==============================

Configuration options for interactive use
-----------------------------------------

The 4.6 source code supports three primary cross-platform output modes
in addition to several platform-specific modes.

1) Cairo/pango/wxWidgets
   These terminals were introduced in version 4.4 and are now the most
   stable and full-featured option.  This set of terminals includes
   - pngcairo, pdfcairo, epscairo, and cairolatex for output to a file
   - wxt for interactive display
   This is the default configuration, but requires installation of
   libcairo, libpango, libcairo, libwxgtk, and related support libraries
   To disable these terminals:
       ./configure --disable-wxt --without-cairo

2) Qt
   The new qt terminal supports interactive display, with menu-driven
   output to png, svg or pdf.
   Requires libqt version >= 4.5
       ./configure --enable-qt

3) X11 (the "classic" interactive interface)
   This used to be the preferred interactive interface, but the newer
   wxt and qt terminals offer nicer output and a wider range of features.


Options for output to files
---------------------------

Of course the terminals (output modes) present in previous gnuplot versions
are also still available. These include, among many more obscure options:
- png/jpeg/gif output via libgd
- PostScript
- Many flavors of TeX/LaTeX output, including TikZ and ConTeXt (new)
- Bitmapped output to support many older devices (e.g. HP deskjet, epson,
  seiko printers, pbm bitmapped graphics files) is available if needed
  but is no longer configured in by default.  Note that the bitmap code
  copyright is more restrictive than the rest of the gnuplot code.
      ./configure --with-bitmap-terminals

Options for generating interactive plots for web display
--------------------------------------------------------

- Mouseable output for display on the web can be created using either 
  the canvas terminal (HTML5 2D canvas element) or the svg terminal.
  Both allow zooming, toggling plot elements on/off, and user-scriptable
  hot keys.


                          OTHER NOTES
                ===============================

Installation
------------

You can download a source tarball for gnuplot version 4.6.0 from the 
gnuplot development site on SourceForge.

        http://sourceforge.net/project/showfiles.php?group_id=2055

Installation instructions are available in the source itself; the short
version for linux/unix-like systems is to unpack the tarball and then
build it:
                cd gnuplot-4.6.0 ; ./configure ; make
test it:
                make check
install it:
                make install

Pay careful attention to the output of the ./configure script.
It may indicate that some output drivers have been omitted because the
necessary support libraries were not found.  In general you need to have
previously installed the "*-devel-*" versions of these libraries. 


Known issues
------------

- Mac OSX ships with a terminal input library that appears to be GNU
libreadline, but isn't really.  The program tries to cope with this, but
you may get better results by configuring gnuplot to use either its own
built-in readline routines or the real GNU libreadline.

- The gnuplot build system is not very good at figuring out where to find
or install LaTeX-related files.  This can affect use of the new lua/tikz
and ConTeXt terminals.

- Alpha-channel support in aquaterm requires aquaterm version 1.0.1 or
newer, available from http://aquaterm.sourceforge.net.  Aquaterm does
not support mousing.  Autoconfiguration of aquaterm support is still a
work in progress.  If you can help, please do!

- You can configure support for both wxt and qt into the same gnuplot
executable, but only one of these two output modes can be used in any
given gnuplot session.


Support
-------
Please report all bugs and installation problems to the bug tracker
on SourceForge:

        http://sourceforge.net/tracker/?group_id=2055&atid=10...

There is also an gnuplot discussion forum on usenet group

        comp.graphics.apps.gnuplot


Development
-----------
Gnuplot development is quite active. The development branch on SourceForge
contains preliminary implementations of many new features.  Following the
release of gnuplot 4.6, the development branch will be identified as 
version 4.7.  Feedback and contributions of code are very welcome.




(Log in to post comments)

Gnuplot 4.6 released

Posted Mar 13, 2012 13:57 UTC (Tue) by Ben_P (guest, #74247) [Link]

I find myself recommending GnuPlot to someone at least weekly. Glad it's being actively maintained.

Gnuplot 4.6 released

Posted Mar 13, 2012 15:54 UTC (Tue) by jimparis (guest, #38647) [Link]

The links on their documentation page haven't been updated yet, but the PDF is at http://gnuplot.sourceforge.net/docs_4.6/gnuplot.pdf and has more information on the new looping and conditionals, and other features (page 18). Nice!

Gnuplot 4.6 released

Posted Mar 13, 2012 16:14 UTC (Tue) by gowen (guest, #23914) [Link]

Sadly you've let a typo slip in and that points to a site squatted by GoDaddy. Here's the fixed link.

(Editors, please correct the typo and delete this)

Gnuplot 4.6 released

Posted Mar 13, 2012 16:26 UTC (Tue) by jimparis (guest, #38647) [Link]

I'm confused -- my link was a cut-and-paste and is identical to yours.

Link

Posted Mar 13, 2012 16:29 UTC (Tue) by corbet (editor, #1) [Link]

It was missing an "o" - I silently fixed it, thus creating additional confusion, sorry.

Sadly ...

Posted Mar 14, 2012 2:17 UTC (Wed) by ldo (guest, #40946) [Link]

... still a non-Free package.

Sadly ...

Posted Mar 14, 2012 2:28 UTC (Wed) by mjg59 (subscriber, #23239) [Link]

By whose definition of non-free? Debian and Fedora certainly consider it free software.

Sadly ...

Posted Mar 14, 2012 3:02 UTC (Wed) by geofft (subscriber, #59789) [Link]

The thing you link to satisfies the FSF Free Software Definition, and is even easier to satisfy than, say, the LaTeX Project Public License, which also satisfies the Free Software Definition, despite having requirements that (according to the same FSF) make it a "nuisance" to use those rights in certain ways.

Do you have a particular definition of "non-Free" in mind? It's hard to discuss whether it satisfies that definition without knowing what the definition is.

Sadly ...

Posted Mar 14, 2012 5:45 UTC (Wed) by ldo (guest, #40946) [Link]

The thing you link to satisfies the FSF Free Software Definition...

No it doesn’t. May I draw your attention to Freedom 3: “The freedom to distribute copies of your modified versions to others”.

Sadly ...

Posted Mar 14, 2012 5:56 UTC (Wed) by geofft (subscriber, #59789) [Link]

Yes, I see it. The license explicitly grants me "permission to distribute binaries produced by compiling modified sources", which satisfies the most pedantic reading of that rule, in that it applies to the software and not its source code.

A more useful, non-pedantic reading would acknowledge there is no practical distinction between distributing modified code and distributing patchfiles. The cases where there is a distinction (and there certainly are such cases!) are those like Pine, where source patchfiles could be distributed, but modified binaries could not (and even unmodified binaries could not be generally redistributed). Pine was nonfree, not because of the restriction that you had to distribute modified source in the form of original source plus patches, but because of the constraints regarding distributing the binaries -- what Freedom 3 refers to as "your modified versions".

Sadly ...

Posted Mar 14, 2012 11:03 UTC (Wed) by nye (guest, #51576) [Link]

There are other practical distinctions. For example, this license does not allow you to re-use any code in another project, unless you structure that project in terms of a modification to gnuplot.

It's explicitly designed to minimize code re-use, which to my mind makes it non-free in effect. That it technically satisfies the definition seems more like a bug in the definition to me.

(Also, it requires the modifier to attach their meatspace address to any modifications, which is a fairly nasty restriction for many, though not in itself non-free.)

Sadly ...

Posted Mar 14, 2012 18:04 UTC (Wed) by geofft (subscriber, #59789) [Link]

Good point, I had failed to consider reusability in other software

In fairness I think the FSF definition does a bad job of mandating it / making it clear that this is important (as do the Debian, OSI, etc. ones), but it's certainly something I personally think is very important to "free" software.

Not GPL

Posted Mar 14, 2012 14:49 UTC (Wed) by man_ls (guest, #15091) [Link]

Apparently it's free software, but in a weird way. The package would be much more useful if it was licensed under the GPL (or 2-clause BSD for the non-copyleft folks). See e.g. how github has created a social model around forking git repos.

Not GPL (because it pre-dates the GPL)

Posted Mar 14, 2012 19:11 UTC (Wed) by sfeam (subscriber, #2841) [Link]

Perhaps I should step in here as a gnuplot developer with a bit of historical perspective. The "weirdness" you see is due to the evolution of the concept of open source and open licensing terms over the past three decades. When you read the gnuplot license, you should be aware that you are reading a document from more than 25 years ago.

Gnuplot has been distributed under this same license for longer than the GPL has been in existence. Gnuplot version 1.0 was released by the original authors in 1986, and a much expanded version 2.0 incorporating contributions from a larger development group came in 1990. Up to this point there was no connection to the GNU project or the FSF. The "gnu" part of "gnuplot" is purely coincidental according to the original authors. Although this was all before my involvement with gnuplot and therefore out of my direct knowledge, my understanding is that starting about that time early versions of gnuplot with this same license were hosted as part of the GNU project even after GPL1 was drafted. If anyone has specific documentation to support or contradict this, I would appreciate having a copy for the project records. To my knowledge, no connection to the GNU project or to the FSF continued past the point where gnuplot moved to being hosted on SourceForge, but again this was before my direct involvement so I am hazy on the exact timeline.

Several years back we (the current gnuplot team) made an effort to contact as many early developers as we could find to see if there was a more modern license that everyone would agree to. As you might imagine, we failed to track down everyone. Furthermore, even among the people we did get responses from there was no such universal agreement that would allow a license switch for the existing body of code.

We did introduce guidelines encouraging dual-licensing for any new self-contained modules or subsystems contributed to gnuplot, and if you look you will see that several of the new terminals are dual-licensed GPL and one is dual-licensed to BSD. This works nicely for individual terminal support because each terminal type (i.e. output mode) is a module that can be configured in or out of the program when building. It doesn't work so well for contributed modifications to the core plotting code.

Last year (2011) a review by Debian identified a single problematic file in gnuplot, dating back to contributed 1980s freeware code whose license restricted commercial use. This file was used only to support dot-matrix printers and similar 1990s vintage output modes. As a result, these devices are not configured or supported by default in gnuplot version 4.6.

Bottom line? There was no intent to choose a "weird" license. Rather there was a very forward-looking intent 25 years ago to release code under what we would now call an open source license. The GPL did not yet exist as a model.

We might have a separate, interesting and perhaps flame-attracting, discussion about how well the GPLv2 or GPLv3 would have meshed with gnuplot's original design intent, but absent a time travel device to provide Thomas Williams and Colin Kelley with an advance-reading copy this is a moot point. Spilt milk under a bridge never crossed.

Not GPL (because it pre-dates the GPL)

Posted Mar 14, 2012 21:03 UTC (Wed) by man_ls (guest, #15091) [Link]

Well, thanks for the detailed story (which I had read but did not remember quite right). Your efforts to switch licenses are appreciated. And don't think I am looking a gift horse in the mouth; gnuplot is still my package of choice to generate graphics, and now even more so. Thanks for maintaining it and making it grow!

Not GPL (because it pre-dates the GPL)

Posted Mar 15, 2012 6:48 UTC (Thu) by geofft (subscriber, #59789) [Link]

Thanks for the history! Having a policy of licensing new code under a free software license in the modern sense sounds like an excellent way to deal with this issue.

Not GPL (because it pre-dates the GPL)

Posted Mar 15, 2012 8:12 UTC (Thu) by eupator (guest, #44581) [Link]

> When you read the gnuplot license, you should be aware that you are
> reading a document from more than 25 years ago.

This is not true. Gnuplot was actually relicensed in 1998, for version 3.7 (the previous license didn't permit to distribute modified binaries at all). It is a bit sad that such an obnoxious clause was introduced at the time when the benefits of free software should have been already obvious.

Not GPL (because it pre-dates the GPL)

Posted Mar 15, 2012 16:39 UTC (Thu) by sfeam (subscriber, #2841) [Link]

I apologize for implying incorrectly that the full text was unchanged since 1986. You are correct that the original Copyright notice was expanded later. To my non-lawyer's eyes the change constituted a clarification to the original terms rather than a substantive change, but you can judge for yourself. Here is the entire text from the source distribution for version 2.0, dated 1990:

* Copyright (C) 1986, 1987, 1990 Thomas Williams, Colin Kelley
*
* Permission to use, copy, and distribute this software and its
* documentation for any purpose with or without fee is hereby granted,
* provided that the above copyright notice appear in all copies and
* that both that copyright notice and this permission notice appear
* in supporting documentation.
*
* Permission to modify the software is granted, but not the right to
* distribute the modified code. Modifications are to be distributed
* as patches to released version.
*
* This software is provided "as is" without express or implied warranty.

You are correct that the clarifying clauses that follow this in the current Copyright notice were added in 1998. They make it explicit that the restriction against distributing "the modified code" applies to the source code, not to the resulting binary executable. I can imagine that the omission of a separate statement in the original text about distribution of binary executables left room for paranoia if one were so inclined. The additional clauses were added at about the time this exact issue came up with regard to the pine license, right?

You call the clarification itself "an obnoxious clause", and imply that the result is non-free, but that is a far from universal opinion. Equivalent limitations requiring a distinction between the original code and any modifications to it appear for instance in perl's Artistic License. The FSF may dislike licenses that take this approach but hey, also there are lots of people who dislike the GPL. And as pointed out at the start of these comments, even the FSF Free Software Definition categorizes the current gnuplot license as "free". To declare that it is "non-free" or "obnoxious" is IMHO staking out a position on the radical fringe of GPL advocacy. It is quite true that the gnuplot license is not the same as the GPL. As to which is "more free", let's not re-fight the GPL/BSD wars on another front. In practical terms, gnuplot's license allowed things that the GPL would not, such as linking to less-free or non-free versions of PDFlib to generate pdf output (no longer necessary since gnuplot now uses libcairo for pdf generation, but I'm digressing...).

(Still) unwise to run compile untrusted gnuplots.

Posted Mar 14, 2012 13:41 UTC (Wed) by gmatht (subscriber, #58961) [Link]

While it is natural to think of plots of documents, I understand it is not safe to compile plots from untrusted sources, and there is no trivial and obviously correct way of filtering out dangerous plots while allowing normal plots. This limits the usefulness of gnuplot in document editors and wiki's. See e.g. http://lyx.475766.n2.nabble.com/PATCH-Proposal-for-a-new-...

(Still) unwise to run compile untrusted gnuplots.

Posted Mar 15, 2012 17:56 UTC (Thu) by ssam (guest, #46587) [Link]

could you just use external sandboxing?
http://danwalsh.livejournal.com/28545.html


Copyright © 2012, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds