FreeGLUT 3.0.0 is finally available for download.
I'd like to thank everyone who contributed to FreeGLUT and made yet
another release possible.
FreeGLUT 3.0.0 RC3 is available on sourceforge.
Hopefully this will be the last release candidate. Please give it a spin,
and let us know if there are any release-critical bugs with this one.
Here's the list of changes since RC2:
------------------------------------------------------------------------
r1742 | jtsiomb | 2015-01-03 13:55:09 +0200 (Sat, 03 Jan 2015) | 2 lines
pkgconfig files should go to $(PREFIX)/lib, not $(PREFIX)/share. Closing bug #216
------------------------------------------------------------------------
r1743 | jtsiomb | 2015-02-18 02:37:05 +0200 (Wed, 18 Feb 2015) | 5 lines
Applied Daniel Macks' patch to use ${CMAKE_INSTALL_LIBDIR} instead of
hardcoding lib for the installation directory of libraries, with the
additional modification of installing the pkg-config files there too.
closing bug #217
------------------------------------------------------------------------
r1744 | jtsiomb | 2015-02-18 05:59:21 +0200 (Wed, 18 Feb 2015) | 3 lines
added INCLUDE_DIRECTORIES(${X11_INCLUDE_DIR}) to make sure X11 header
files are correctly located, on systems where they are in weird places.
This closes bug: #218
------------------------------------------------------------------------
r1745 | jtsiomb | 2015-02-18 06:59:57 +0200 (Wed, 18 Feb 2015) | 7 lines
- changed the main INCLUDE_DIRECTORIES definition to place the main header
locations first in the list instead of appending them. This gives priority to
our freeglut*.h files instead of the old system-wide installed ones.
- removed the Xxf86vm hack from CMakeLists.txt: it seems like it's not needed
any more in new versions of cmake, and it fails to link on MacOSX.
------------------------------------------------------------------------
r1746 | jtsiomb | 2015-02-18 07:03:16 +0200 (Wed, 18 Feb 2015) | 6 lines
MacOSX doesn't define HOST_NAME_MAX in unistd.h, which made freeglut fail to
build. Now, if the definition is missing, we'll just define it arbitrarilly as
255, which should be a safe value. This is just needed for an obscure X11 WM
protocol.
------------------------------------------------------------------------
r1747 | jtsiomb | 2015-02-18 07:20:50 +0200 (Wed, 18 Feb 2015) | 2 lines
removed the completely outdated FrequentlyAskedQuestions file
Apologies for the long delay between RC1 and RC2. If there are no
critical bugs with this one, we'll be able to release 3.0.0 shortly.
Here's the complete list of changes between RC1 and RC2:
------------------------------------------------------------------------
r1727 | dcnieho | 2014-11-03 06:18:51 +0200 (Mon, 03 Nov 2014) | 1 line
Added missing glutStrokeWidthf and glutStrokeLengthf for mobile support.
------------------------------------------------------------------------
r1728 | dcnieho | 2014-11-03 06:19:10 +0200 (Mon, 03 Nov 2014) | 3 lines
Added support for minimizing window.
Fixed issue where reshape callback would be called multiple times due to
conflicting window size messages on keyboard closure.
Fixed issue where changing orientation with the keyboard open would
cause multiple reshape events.
------------------------------------------------------------------------
r1729 | jtsiomb | 2014-11-04 13:47:27 +0200 (Tue, 04 Nov 2014) | 3 lines
- changed the minor so version for the new release to 3.10.0 (fg2.8.1
was 3.9.0)
- made the so version numbers more prominent in the cmake file to make
sure they're not forgotten in future releases
------------------------------------------------------------------------
r1730 | jtsiomb | 2014-12-02 07:22:12 +0200 (Tue, 02 Dec 2014) | 2 lines
include standard UNIX header fcntl.h in fg_joystick_x11.c, since fcntl()
is called conditionally in there (bug #192).
------------------------------------------------------------------------
r1731 | dcnieho | 2014-12-22 18:27:02 +0200 (Mon, 22 Dec 2014) | 3 lines
typofixes - https://github.com/vlajos/misspell_fixer
(cherry picked from commit c85ed83b848379d49d0869b84ab15851e2df8784)
------------------------------------------------------------------------
r1732 | jtsiomb | 2014-12-24 23:23:29 +0200 (Wed, 24 Dec 2014) | 2 lines
brought back the option to build either as "glut" or "freeglut":
FREEGLUT_REPLACE_GLUT
------------------------------------------------------------------------
r1733 | dcnieho | 2014-12-25 16:35:09 +0200 (Thu, 25 Dec 2014) | 1 line
CMake: FREEGLUT_REPLACE_GLUT option should not be visible on windows
------------------------------------------------------------------------
r1734 | dcnieho | 2014-12-25 16:35:17 +0200 (Thu, 25 Dec 2014) | 1 line
updated list of cmake switches in README.cmake
RC1 of the 3.0.0 release has been posted on the sourceforge website,
get it here:
Please do test and let us know of any issues you find.
There have been hundreds of commits over the last year or so, but here
are some important changes since 2.8.1:
- internal cleanup and reorganization, making it easier to add new
platforms while avoiding ifdef hell
- moved to CMake for buildsystem
- added martin newell's teacup and teaspoon to complement the teapot
- shapes now use vertex buffers internally for faster drawing
- shapes can now be drawn in forward compatible contexts, see new
functions glutSetVertexAttribCoord3, glutSetVertexAttribNormal, and
glutSetVertexAttribTexCoord2.
- new GLUT_GEOMETRY_VISUALIZE_NORMALS option to visualize the normals
of the shapes (these are frequently used for educational demos after
all)
- experimental support for Android and BlackBerry 10/BlackBerry
PlayBook mobile platforms, note that so far only a subset of FreeGLUT
is implemented
- can now set font of menu
- menu behavior corrected, multiple bugs fixed
- X11 fullscreen code updated, correctness improved
- time internally now 64 bit, so timers and such wont wrap for humanly
possible timeframes
Problems found with existing digests:
Package fotoxx distfile fotoxx-14.03.1.tar.gz
ac2033f87de2c23941261f7c50160cddf872c110 [recorded]
118e98a8cc0414676b3c4d37b8df407c28a1407c [calculated]
Package ploticus-examples distfile ploticus-2.00/plnode200.tar.gz
34274a03d0c41fae5690633663e3d4114b9d7a6d [recorded]
da39a3ee5e6b4b0d3255bfef95601890afd80709 [calculated]
Problems found locating distfiles:
Package AfterShotPro: missing distfile AfterShotPro-1.1.0.30/AfterShotPro_i386.deb
Package pgraf: missing distfile pgraf-20010131.tar.gz
Package qvplay: missing distfile qvplay-0.95.tar.gz
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
Added dependencies which are linked to buildlink3.mk. Removed glu from
buildlink3.mk, as the resulting library doesn't link to it. patches/patch-{a,b}
were commited upstream - removed. Added patch to fix usb.h include on NetBSD.
From NEWS:
* Tons of bug fixes
* Added deprecated, but working Joystick API.
* Added new constant GLUT_INIT_STATE for glutGet() to check if freeglut is
already initialized.
* Added new API entry for full-screen mode
void glutFullScreenToggle( void );
with a related new constant GLUT_FULL_SCREEN for glutGet().
* Added new API entry to de-initialize freeglut:
void glutExit( void );
* Added more special keys: GLUT_KEY_NUM_LOCK, GLUT_KEY_BEGIN GLUT_KEY_DELETE
* Added support for windows without captions and/or borders via two new
constants GLUT_CAPTIONLESS and GLUT_BORDERLESS for glutInitDisplayMode
(currently works for Windows only).
* Added support for multisampling: The number of samples per pixel to use
when GLUT_MULTISAMPLE is specified in glutInitDisplayMode() can be set via
glutSetOption() with parameter GLUT_MULTISAMPLE now. glutGet() with the
same token retrieves that value. The possible number of samples per pixels
can be queried via the new API entry
int *glutGetModeValues( GLenum mode, int *size );
with mode GLUT_MULTISAMPLE. (glutGetModeValues() currently only works for
X11)
* Added new constant GLUT_AUX for glutSetOption() to set the number of
auxiliary buffers. The possible number of auxiliary buffers can be
queried via glutGetModeValues with mode GLUT_AUX.
* Added support for versioned (i.e. 3.0) OpenGL contexts: New API entries
void glutInitContextVersion( int majorVersion, int minorVersion );
void glutInitContextFlags( int flags );
with related new constants GLUT_DEBUG and GLUT_FORWARD_COMPATIBLE for
the latter API entry. Added new constants GLUT_INIT_MAJOR_VERSION,
GLUT_INIT_MINOR_VERSION and GLUT_INIT_FLAGS for glutGet().
This changes the buildlink3.mk files to use an include guard for the
recursive include. The use of BUILDLINK_DEPTH, BUILDLINK_DEPENDS,
BUILDLINK_PACKAGES and BUILDLINK_ORDER is handled by a single new
variable BUILDLINK_TREE. Each buildlink3.mk file adds a pair of
enter/exit marker, which can be used to reconstruct the tree and
to determine first level includes. Avoiding := for large variables
(BUILDLINK_ORDER) speeds up parse time as += has linear complexity.
The include guard reduces system time by avoiding reading files over and
over again. For complex packages this reduces both %user and %sys time to
half of the former time.
and add a new helper target and script, "show-buildlink3", that outputs
a listing of the buildlink3.mk files included as well as the depth at
which they are included.
For example, "make show-buildlink3" in fonts/Xft2 displays:
zlib
fontconfig
iconv
zlib
freetype2
expat
freetype2
Xrender
renderproto
RECOMMENDED is removed. It becomes ABI_DEPENDS.
BUILDLINK_RECOMMENDED.foo becomes BUILDLINK_ABI_DEPENDS.foo.
BUILDLINK_DEPENDS.foo becomes BUILDLINK_API_DEPENDS.foo.
BUILDLINK_DEPENDS does not change.
IGNORE_RECOMMENDED (which defaulted to "no") becomes USE_ABI_DEPENDS
which defaults to "yes".
Added to obsolete.mk checking for IGNORE_RECOMMENDED.
I did not manually go through and fix any aesthetic tab/spacing issues.
I have tested the above patch on DragonFly building and packaging
subversion and pkglint and their many dependencies.
I have also tested USE_ABI_DEPENDS=no on my NetBSD workstation (where I
have used IGNORE_RECOMMENDED for a long time). I have been an active user
of IGNORE_RECOMMENDED since it was available.
As suggested, I removed the documentation sentences suggesting bumping for
"security" issues.
As discussed on tech-pkg.
I will commit to revbump, pkglint, pkg_install, createbuildlink separately.
Note that if you use wip, it will fail! I will commit to pkgsrc-wip
later (within day).
developer is officially maintaining the package.
The rationale for changing this from "tech-pkg" to "pkgsrc-users" is
that it implies that any user can try to maintain the package (by
submitting patches to the mailing list). Since the folks most likely
to care about the package are the folks that want to use it or are
already using it, this would leverage the energy of users who aren't
developers.
Several changes are involved since they are all interrelated. These
changes affect about 1000 files.
The first major change is rewriting bsd.builtin.mk as well as all of
the builtin.mk files to follow the new example in bsd.builtin.mk.
The loop to include all of the builtin.mk files needed by the package
is moved from bsd.builtin.mk and into bsd.buildlink3.mk. bsd.builtin.mk
is now included by each of the individual builtin.mk files and provides
some common logic for all of the builtin.mk files. Currently, this
includes the computation for whether the native or pkgsrc version of
the package is preferred. This causes USE_BUILTIN.* to be correctly
set when one builtin.mk file includes another.
The second major change is teach the builtin.mk files to consider
files under ${LOCALBASE} to be from pkgsrc-controlled packages. Most
of the builtin.mk files test for the presence of built-in software by
checking for the existence of certain files, e.g. <pthread.h>, and we
now assume that if that file is under ${LOCALBASE}, then it must be
from pkgsrc. This modification is a nod toward LOCALBASE=/usr. The
exceptions to this new check are the X11 distribution packages, which
are handled specially as noted below.
The third major change is providing builtin.mk and version.mk files
for each of the X11 distribution packages in pkgsrc. The builtin.mk
file can detect whether the native X11 distribution is the same as
the one provided by pkgsrc, and the version.mk file computes the
version of the X11 distribution package, whether it's built-in or not.
The fourth major change is that the buildlink3.mk files for X11 packages
that install parts which are part of X11 distribution packages, e.g.
Xpm, Xcursor, etc., now use imake to query the X11 distribution for
whether the software is already provided by the X11 distribution.
This is more accurate than grepping for a symbol name in the imake
config files. Using imake required sprinkling various builtin-imake.mk
helper files into pkgsrc directories. These files are used as input
to imake since imake can't use stdin for that purpose.
The fifth major change is in how packages note that they use X11.
Instead of setting USE_X11, package Makefiles should now include
x11.buildlink3.mk instead. This causes the X11 package buildlink3
and builtin logic to be executed at the correct place for buildlink3.mk
and builtin.mk files that previously set USE_X11, and fixes packages
that relied on buildlink3.mk files to implicitly note that X11 is
needed. Package buildlink3.mk should also include x11.buildlink3.mk
when linking against the package libraries requires also linking
against the X11 libraries. Where it was obvious, redundant inclusions
of x11.buildlink3.mk have been removed.
in the process. (More information on tech-pkg.)
Bump PKGREVISION and BUILDLINK_DEPENDS of all packages using libtool and
installing .la files.
Bump PKGREVISION (only) of all packages depending directly on the above
via a buildlink3 include.
All library names listed by *.la files no longer need to be listed
in the PLIST, e.g., instead of:
lib/libfoo.a
lib/libfoo.la
lib/libfoo.so
lib/libfoo.so.0
lib/libfoo.so.0.1
one simply needs:
lib/libfoo.la
and bsd.pkg.mk will automatically ensure that the additional library
names are listed in the installed package +CONTENTS file.
Also make LIBTOOLIZE_PLIST default to "yes".
freeglut is a completely OpenSourced alternative to the OpenGL
Utility Toolkit (GLUT) library. GLUT was originally written by
Mark Kilgard to support the sample programs in the second edition
OpenGL 'RedBook'. Since then, GLUT has been used in a wide variety
of practical applications because it is simple, universally available
and highly portable.