redefines about which buildlink.mk files would care is BUILDLINK_X11_DIR,
which points to the location of the X11R6 hierarchy used during building.
If x11.buildlink.mk isn't included, then BUILDLINK_X11_DIR defaults to
${X11BASE} (set in bsd.pkg.mk), so its value is always safe to use. Remove
the ifdefs surrounding the use of BUILDLINK_X11_DIR in tk/buildlink.mk and
revert changes to move x11.buildlink.mk before the other buildlink.mk files.
use X11_BUILDLINK_MK as a test value. Generally just reordering the
inclusions so that x11.buildlink.mk comes before the other buildlink.mk
files will make everthing work.
foo-* to foo-[0-9]*. This is to cause the dependencies to match only the
packages whose base package name is "foo", and not those named "foo-bar".
A concrete example is p5-Net-* matching p5-Net-DNS as well as p5-Net. Also
change dependency examples in Packages.txt to reflect this.
A complete list of changes is not available unfortunately. Recent
changes are:
- Text drawing now handles UTF8-encoding.
- Off-by-one GetImagePixels() fix in draw.c
- PingImage() now reports attributes for all images an image sequence.
- magick/image.h: Rename QuantumLeap define to QuantumDepth.
QuantumDepth is set to the values 8 or 16, depend
configuration option.
- Updated PerlMagick signatures to signature algorithm.
- ImageMagick defaults to 16-bit quantum. Set QuantumMagick for 8-bit.
- Changed image->blob from BlobInfo to BlobInfo- so the Image
structure size is not dependent on the large-file defines.
- Added -background to convert prog
- DispatchImage() now properly handles grayscale images.
to ${X11BASE} in the header and library search paths into references to
${LOCALBASE}/share/x11-links. These packages should now be strongly-
buildlinked regardless of whether xpkgwedge is installed.
Changes well-tested on NetBSD-1.5X/i386 with and without xpkgwedge and
lightly-tested on NetBSD-1.5.1/alpha without xpkgwedge.
BUILDLINK_PREFIX.<pkgname>. This allows buildlink to find X11BASE packages
regardless of whether they were installed before or after xpkgwedge was
installed. Idea by Alistair Crooks <agc@pkgsrc.org>.
1.0.1 and up prefix functions with BZ2_ while older versions don't, but
ImageMagick was tested to work with bzip2 1.0.1, so don't change its
expectations.
using the newest PNG library won't work on system with an older one. To
prevent such problems with precompiled binary packages require at least
"png-1.0.9nb1" in all dependences.
- URL's are now understood on Win32 (thanks to libXML and William
Radcliffe).
- ImageMagick defaults to 16-bit per pixel component now.
- Support added for ART images (contributed by Jaroslav Fojtik).
- Added -pause to the animate program.
You can now specify a minimum/maximum delay for an image sequence.
- Added %c to -format to get the image comment (patch provided by Frank
Mattern).
- Over compositing is now the Porter-Duff algorithm (inspired by William
Radcliffe and Alvy Ray Smith).
- You can write SVG output if the input is SVG, MVG, or WMF.
- ImageMagick now can accept AFM, PFB, and PFM fonts.
- The linewidth parameter is deprecated in PerlMagick. Use stroke_width
instead.
- Digital Applications contributed text stroking code.
- You can now specify Truetype fonts directly. No @ prefix is required
(e.g. convert -font Arial.ttf ...)
- Digital Applications contributed line cap and dash pattern rendering
code.
- Added the Multiple composite operator for the creation of drop-shadows
(patch provided by John Harper).
- Support added for CUT images (contributed by Jaroslav Fojtik).
- Bill Radcliffe contributed fast polygoni rendering code. Parts of the
rendering algorithm were inspired by libart.
- Support added for BMP images with a 'BA' chunk (contributed by
Jaroslav Fojtik).
out of date - it was based on a.out OBJECT_FMT, and added entries in the
generated PLISTs to reflect the symlinks that ELF packages uses. It also
tried to be clever, and removed and recreated any symbolic links that were
created, which has resulted in some fun, especially with packages which
use dlopen(3) to load modules. Some recent changes to our ld.so to bring
it more into line with other Operating Systems also exposed some cracks.
+ Modify bsd.pkg.mk and its shared object handling, so that PLISTs now contain
the ELF symlinks.
+ Don't mess about with file system entries when handling shared objects in
bsd.pkg.mk, since it's likely that libtool and the BSD *.mk processing will
have got it right, and have a much better idea than we do.
+ Modify PLISTs to contain "ELF symlinks"
+ On a.out platforms, delete any "ELF symlinks" from the generated PLISTs
+ On ELF platforms, no extra processing needs to be done in bsd.pkg.mk
+ Modify print-PLIST target in bsd.pkg.mk to add dummy symlink entries on
a.out platforms
+ Update the documentation in Packages.txt
With many thanks to Thomas Klausner for keeping me honest with this.
- Support added for the Word Perfect Graphics (WPG) file format
(contributed by Jaroslav Fojtik).
- The pixel 'matte' field is changed to indicate the degree of pixel
transparency rather than the degree of opacity. This makes the pixels
compatable with most popular video cards, and many in-memory image
formats.
When the pixel quantum size is eight bits, the colormap is restricted
to 256 colors, but supports up to 65535 colors when the quantum size is
sixteen bits (when QuantumLeap is defined at compilation time).
- ImageMagick is more memory efficient (by 18%) when the quantum size is
eight bits, and the image is colormapped.
- ImageMagick is (finally) believed to be thread safe under Windows,
since it uses the Windows synchronization APIs to lock shared data.
- Under Unix and Windows, dynamically-loaded format coder modules are
supported. There are currently 72 loadable modules. Support for
loadable modules allows the user to add or remove formats from
ImageMagick by simply adding or removing a file. New modules are
automatically detected so users may add their own modules. This support
is proven to work for Sun Solaris, Linux, and SGI IRIX. Please let us
know about other operating systems they work on. Building a modular
ImageMagick is enabled by specifing the configure options
--enable-shared --with-modules.
- ImageMagick now has a set of modules for streaming. Here pixels are
passed to the application as they are available and deleted after use
ensuring a small memory footprint. This is useful for multi-media
applications such as MPEG.
- Image format identification (based on the file header) is now
configured via an external text file. This allows the user to add
automatic file identification for new formats added via a coder module,
or via a delegate (external program).
- XML files conforming to the W3C SVG DTD are now rendered directly by
ImageMagick. The support is incomplete but still useful.
- The Pilot Image Format (PDB) is now supported.
- The drawing primitives have been extended to support drawing bezier
curves, rounded rectangles, and arcs. There is now support for drawing
compound objects (a sequence of objects) using drawing paths. The
concept of a drawing pen has been split into stroke (for the outline)
and fill (for the objects internal color). If fill is not defined, then
only the object outline is drawn. This substantial change results in
the existing drawing commands for filled objects (fillEllipse,
fillRectangle, fillCircle, and fillPolygon) being deprecated.
- A cache file format is now supported which is a snapshot of an image's
pixel cache as it appears on disk. Images stored in this format (large)
may be loaded instantly by ImageMagick since decoding is not required.
In order to write this format , the argument -cache 0 must be supplied
(e.g. convert -cache 0 file.jpg file.cache).
- The build environment for Windows NT is entirely re-done. There is now
a configure program which generates a set of Visual C++ project files
which satisfy a set of reqirements (e.g. DLL, multi-thread, X11). These
project files are then used to build ImageMagick.
- The C API is significantly modified in order to provide thread-safe
operation via function re-entrancy. ImageMagick is believed to be
thread-safe when used with POSIX threads. It is not yet completely
thread safe under Windows or the Mac. Errors (of type ExceptionInfo)
are now reported by a function argument, or via a member of the current
image.
- The GaussianBlurImage() function (contributed by runger@cs.mcgill.ca)
supports Gaussian bluring an image.
- Functions (OpenCacheView(), CloseCacheView(), GetCacheView(),
SetCacheView(), and SyncCacheView()) are provided in order to support
manipulating multiple pixel views.
- Support added for the Word Perfect Graphics (WPG) file format
(contributed by Jaroslav Fojtik).
- The pixel 'matte' field is changed to indicate the degree of pixel
transparency rather than the degree of opacity. This makes the pixels
compatable with most popular video cards, and many in-memory image
formats.
When the pixel quantum size is eight bits, the colormap is restricted
to 256 colors, but supports up to 65535 colors when the quantum size is
sixteen bits (when QuantumLeap is defined at compilation time).
- ImageMagick is more memory efficient (by 18%) when the quantum size is
eight bits, and the image is colormapped.
- ImageMagick is (finally) believed to be thread safe under Windows,
since it uses the Windows synchronization APIs to lock shared data.
- Under Unix and Windows, dynamically-loaded format coder modules are
supported. There are currently 72 loadable modules. Support for
loadable modules allows the user to add or remove formats from
ImageMagick by simply adding or removing a file. New modules are
automatically detected so users may add their own modules. This support
is proven to work for Sun Solaris, Linux, and SGI IRIX. Please let us
know about other operating systems they work on. Building a modular
ImageMagick is enabled by specifing the configure options
--enable-shared --with-modules.
- ImageMagick now has a set of modules for streaming. Here pixels are
passed to the application as they are available and deleted after use
ensuring a small memory footprint. This is useful for multi-media
applications such as MPEG.
- Image format identification (based on the file header) is now
configured via an external text file. This allows the user to add
automatic file identification for new formats added via a coder module,
or via a delegate (external program).
- XML files conforming to the W3C SVG DTD are now rendered directly by
ImageMagick. The support is incomplete but still useful.
- The Pilot Image Format (PDB) is now supported.
- The drawing primitives have been extended to support drawing bezier
curves, rounded rectangles, and arcs. There is now support for drawing
compound objects (a sequence of objects) using drawing paths. The
concept of a drawing pen has been split into stroke (for the outline)
and fill (for the objects internal color). If fill is not defined, then
only the object outline is drawn. This substantial change results in
the existing drawing commands for filled objects (fillEllipse,
fillRectangle, fillCircle, and fillPolygon) being deprecated.
- A cache file format is now supported which is a snapshot of an image's
pixel cache as it appears on disk. Images stored in this format (large)
may be loaded instantly by ImageMagick since decoding is not required.
In order to write this format , the argument -cache 0 must be supplied
(e.g. convert -cache 0 file.jpg file.cache).
- The build environment for Windows NT is entirely re-done. There is now
a configure program which generates a set of Visual C++ project files
which satisfy a set of reqirements (e.g. DLL, multi-thread, X11). These
project files are then used to build ImageMagick.
- The C API is significantly modified in order to provide thread-safe
operation via function re-entrancy. ImageMagick is believed to be
thread-safe when used with POSIX threads. It is not yet completely
thread safe under Windows or the Mac. Errors (of type ExceptionInfo)
are now reported by a function argument, or via a member of the current
image.
- The GaussianBlurImage() function (contributed by runger@cs.mcgill.ca)
supports Gaussian bluring an image.
- Functions (OpenCacheView(), CloseCacheView(), GetCacheView(),
SetCacheView(), and SyncCacheView()) are provided in order to support
manipulating multiple pixel views.
Add a new USE_LIBTOOL definition that uses the libtool package instead of
pkglibtool which is now considered outdated.
USE_PKGLIBTOOL is available for backwards compatibility with old packages
but is deprecated for new packages.
- ImageMagick has a new logo (contributed by Ofer Tenenbaum).
- Requests for all or part of a pixel row, or multiple complete pixel
rows, are mapped directly to the underlying image in memory, or memory
mapped from a disk file, avoiding performance-robbing pixel copying.
Requested rectangular regions which are narrower than the image width
must still be copied to a scratch space.
- Support for WBMP, Wireless Bitmap (level 0) images (contributed by
Milan Votava)
- Image sizes are limited by physical memory plus available disk space on
the machine, or the file addressing limits of the operating system,
whichever comes first. This means that if you can figure out how to
build a big enough machine (and have plenty of time) terabyte images
can be processed.
- An image cache subsystem and API are provided to map portions (as small
as one pixel or as large as the entire image) of images into memory and
to save any updates.
- Memory mapping is used to access files. This is the most efficient
access mechanism available.
- DirectColor pixels are now stored in an efficient 32-bit structure (or
64-bit when QuantumLeap is enabled).
- PseudoColor indices are now stored separately from the DirectColor
pixels (PseudoColor and DirectColor representations are still available
simultaneously).
- In-memory run-length encoding is eliminated.
- Compressed images are decompressed and compressed incrementally in
order to limit memory consumption.
- Lots of minor C API fixes and improvements.
- Cache threshold setting for setting the boundary between use of RAM or
RAM + disk when processing an image:
- Use the --enable-cache option (e.g. --enable-cache=160) to set the
compiled-in default when running the configure script.
- Use -cache for ImageMagick utilities
- Set the cache_threshold attribute in PerlMagick
- Set the cacheThreshold attribute in Magick++
- The identify utility now displays precise read-time values.
- The Win32 build environment (now called "VisualMagick") is completely
re-done and supports building both multi-thread DLL as well as static
libraries.
- use the autoconf configure script to configure and build (we were
already running configure but using Imake to build!?)
- make use of pkglibtool (package already has full libtool support)
(Note that now that we use Autoconf, this installs in ${LOCALBASE} without
the need for a tool such as xpkgwedge. The configure script automatically
detects all the stuff for which we had used patches in the Imakefiles.)
Also use --without-... to disable optional components for which we have no
explicit dependencies, which can be reenabled by the user in pkgsrc, so
that the built binaries do not have "hidden" dependencies.
Closes PR pkg/7463.
PR pkg/7463 is RE-opened on this subject; someone can take the opportunity
to fix it, perhaps myself if I have the time this weekend.
This is NOT the correct fix.
- New, optional Makefile variable HOMEPAGE, specifies a URL for
the home page of the software if it has one.
- The value of HOMEPAGE is used to add a link from the
README.html files.
- pkglint updated to know about it. The "correct" location for
HOMEPAGE in the Makefile is after MAINTAINER, in that same
section.
(everything but ImageMagick, gs5, and xemacs20). The API hasn't changed
much, say the install instructions, but it isn't binary compatible--bump
shlib version to 1.0.
Implement a new DEPENDS definition, which looks for an installed
package, building it if not present, and use it in preference to
LIB_DEPENDS. This should make the package collection more useful on
NetBSD ELF ports.