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).
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.
Intermediate release 4.50.99
-------------------
* Changed the configuration file for the build. The auto(conf|make) people
changed their API so we changed our build.
* The string-to-pixel-table converter had gone missing; fixed.
* Several resources were not getting treated in SetValues and GetValues.
Some must have been disabled for a while, several others died because
moving them into the per-cell structure had the side-effect that they
weren't any regular widget resources any more.
I'm afraid this was oversight on my behalf during the per-cell conversion.
* Changed the functionality of drawCellCallback slightly: we're now initializing
the callback structure with the cell contents. If the callback doesn't
alter anything, something will still end up getting displayed.
* New work from Tobias Oed :
- setlabel.patch corrects the buggy logic of XbaeSetRowLabel (and ColumnLabel).
- SCROLLBAR_TOP.patch introduces two simple macros to make things a bit more readable
- clips.patch redraws the left/right/bottom/top clips in the same way the clipchild is
redrawn. IMHO it makes things cleaner and avoids redrawing the partially
fixed cells twice in some cases. Also fixes bugs when deleting a row/col
makes the matrix scroll.
- ClearCell.patch fixes a small bug I introduced in GetCellClip.patch (one of the draw
examples crashes).
- deadspace-clipmask.patch redraws the dead space similarly to the labels (they are
both drawn on the matrix). This makes things cleaner as now everything gets redrawn
the way clipped cells are or the way labels are. It also eliminates the need to redraw
the last non fixed row/columns to get the dead space to be drawn. It kills
calcVertfill/calcHorzfill and removes a bunch of unnecessary
- xbaeSetClipMask calls
and simplifies that function. It gets the shadow to span the dead space (when there are
trailing attached rows/columns) and one of XmGRID_ROW_SHADOW etc are set.
It simplifies the way a highlights are drawn and deprecates HighLightOther but these
do not span the dead space yet.
* Protect against passing gadgets as cell widgets for now, because we don't have the
right support for them yet.
* More work from Tobias :
- refresh.patch adds stuff I missed in GetCellClip.patch that leads to this bug: start
choice, add some (trailing)fixed columns, set cell margin heigtht to 10, scroll to the
bottom of the matrix and then reduce the margin height. The fixed column don't get
updated right.
- left_column.patch. Do the same thing with the above patch applied. Everything gets
updated correctly now, but the scrolling is somewhat erratic. This patch fixes this by
making left_column/top_row 'fake' resources (like cells now is). It relies on the assumption
that SetValuesHook gets called after SetValues. If someone has a better X doc than me, let
me know if this is safe.
- filletc.patch gets the fill(s)/trailing attached to work under all combinations of these
options and shadow types according to spec (these are wierd). The approach I started
to take in deadspace-clipmask.patch was a hopless nightmare and this is much simpler. It makes
the fill part of the cell that preced it. To accomodate this, the size of the clips is changed.
It removes the more obscure macros (Sir Silly Macro's) and introduces new ones
VISIBLE_FIXED_*_{HEIGHT|WIDTH}. The new version of exaples/add lets you try the stuff out.
- renamemacro.patch does the renaming I suggested.
- rowlabelwidth.patch fixes the calculation of the row label width as it included
cell_shadow_thickness twice when the labels were buttons.
- labelClip.patch - This patch puts the scrollable parts of labels in their own clips. It adds
two clips and two scrollMgrs but on the other hand kills 3 gcs and the matrix scrollMgr.
Now everything that scrolls is treated the same way and we have as many scrollMgrs as clips.
Time to put them in the clip.
- This patch fixes a few more problems due to the per_cell change of arcad: Set/GetValuesHook
were missing some items and SetValuesHook wasn't updating the display.
I also changes the semantics of per_cell[][].shadow_type a bit: a value of 0 now
means to use the default matrix.cell_shadow_type. Unfortunately there is no
XmUNSPECIFIED_SHODOW so this may not work on all motif flaviours. On
the other hand, the values currently used come from two different motif enums
so it's either already broken or safe.This gets that part of examples/choice to work again.
I modified examples/choice to get the Arm option to work again (You can't just
fiddle with what GetValues returned for cellBackgrounds and cellShadowTypes
and do a redisplay, you need to SetValues what you changed). I also fixed the
memory leaks that every other third party app will suffer after a GetValues of
these resources. That probably needs to be documented somewhere.
- fifteen.patch gets the shadow to follow the empty cell again and fixes some memory leaks
(same thing as my latest changes to choice.c, all other examples are OK)
- labelClipfix.patch fixes a bug I introduced in labelClip.patch (very apparent when scrollbars
are TOP and/or LEFT). I had to remove some XClearArea calls from resize() . I had doubts about
them for a while: they were using outdated values. I also decided to have labels clear their
'cell' before redrawing and collapsed drawXmLlabel into drawLabel.
- ClearArea breaks relayout out of resize and removes all calls to
XClearArea from these functions, adding them to add/delete row/column.
This hopefully gets all that working. It also eliminates private header
dependence of some examples allowing to remove xbaeClearCell.
- CopyPerCell.patch replaces calls to xbaeCopyPerCell by xbaeCreatePerCell
where apropriate. After that there is a call to copypercell left in a dead
piece of code and another one that is commented out. So I killed the dead
code and the whloe xbaeCopyPerCell function.
- userWidget.patch: (at least) since the new XbaeMatrixSetUserWidget apeared,
user widgets can be treated just like the text widget and xbaeMoveUserWidget
is not needed anymore.
* Fixes from Michel Bardiaux :
- allow build using an older gcc (still the official compiler in Debian)
- fix a 'BadWindow' happening with the following sequence:
XbaeCreateMatrix
XtRealizeWidget(toplevel)
create a widget as child of matrix
XbaeMatrixSetCellWidget
* Another one from Tobias : The first part makes the scroll managers part of the clips,
and the second part isolates all the scrolling to the clips widgets.
* Change the signature of XbaeMatrixGetCellPixmap so it has a return code.
* Implement XbaeMatrixSortRows() as the same function as XbaeMatrixSort().
Maybe the latter should disappear.
* Document the new interfaces from Arcad.
* Include code for creating a DLL under the Exceed environment.
Until we figure out how to auto-detect Exceed, a flag should be passed to configure
to enable this.
Intermediate release 4.50.97
----------------------------
* A submission of code by Arcad Systemhaus for :
- Added XbaeMatrixSort(Widget, void *proc);
- Moved the cell string into the per_cell structure, to be able to sort.
- Fixes for multiline text display in cells.
- Added XbaeMatrixTrackCellCallback which fires everytime the cursor enters
a new cell (something entercell/leavecell do differently).
* Modified ("fixed" really) cell width calculation, as requested by Evgeny,
to mimic the behaviour described in the Motif documentation.
Test release 4.50.93
--------------------
* Lots of bugfixes and code cleanup by Tobias Oed, see ChangeLog.
Test release 4.50.91
--------------------
* Lots of bugfixes and code cleanup by Tobias Oed, see ChangeLog.
Release 4.50.5
--------------
* Fix for XmNautoFill in XbaeInput when the pattern begins with an
optional literal, such as [-]d[d][d][d][d] .
* Add the new resources introduced in the last months to the example
Builder Xcessory integration file in examples/builderXcessory.
* Bugfix for a clip window size problem that showed up when resizing the
window (e.g. resize examples/traversal/traversal to smaller than the
original and then bigger). Bug #702560.
* Some source code cleanup.
* Fixes by James Georgas for colour handling.
* Fixes by Van to eliminate slider size warnings (see bugs #823041 and #823037).
* Fixes by David Traill for both resize and scrollbar warnings.
* Add XmNXmColumnLabel resource to handle XmString as column labels.
* Fix a memory problem with row_heights.
4.50.3 was not an official release.
It was a test version distributed to parties interested in it.
Release 4.50.2
--------------
* A memory (double free) related bugfix.
* Two new resources (XmNhorzFill, XmNvertFill) were added to allow for
additional fill behaviour. This allows you to specify how the matrix
treats highlighting of the last row or column.
* The foreground and background resources are no longer being set on
cell widgets, as this appears to be strange behaviour.
* Bugfix related to incorrect refresh after deleting rows.
* Remove some C++ style comments.
* Fix some build problems.
* Move some stuff in the share/ directory at installation.
* Implement the XBAE_PRODUCTION symbol to compile Xbae with or without
debugging code.
* Improve resizing rows and columns.
* Avoid X Errors when setting clip geometry to 0.
* Implement showColumnArrows and showRowArrows resources.
* Fix incorrect behaviour when rapidly clicking with two different
mouse buttons.
* Fix nested comments and a missing prototype.
* Fix scrollbar warning problem.
* Changed the column width measurement.
Release 4.50
------------
This is a stable release, basically equivalent to 4.9.13.
Changes in 4.9.13
-----------------
* Fix the GROHTML build problem.
* Bugfix : when resizing first of trailing fixed rows, the VSB slider
was not updated and a blank area was visible between clip and bottomclip.
* Changed useXbaeInput default value to False.
Changes in 4.9.11
-----------------
* Sascha Göbel and Greg Shebert are now part of the Xbae development team.
* Many bugfixes to the scrolling (smooth scrolling now),
and to resizing row heights.
* Received code from Sasha Göbel.
Changes in 4.9.9
----------------
* Bug fixes related to redrawing.
* Enable dynamic row/column resizes again.
* Include images in release files again - this makes for a large package.
* Build HTML manual pages from their sources (the HTML is in doc/,
but the sources are in src/*.3.in).
Changes in 4.9.7
----------------
* Sascha Göbel contributed substantial improvement to scrolling.
* Bugfixes.
Changes in 4.9.5
----------------
* Improved internal debugging support (dmalloc, dbmalloc)
* Fix pattern check in XbaeInput
* Remove support for Motif <=1.1
* Bugfix by Phil Eccles to position cell widgets correctly when row/column
headers are active.
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".
buildlink2.mk files back into the main trunk. This provides sufficient
buildlink2 infrastructure to start merging other packages from the
buildlink2 branch that have already been converted to use the buildlink2
framework.
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.
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.
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.
Recent changes:
Add XbaeGetVersionTxt(), XbaeGetVersionNum() to get the version number from the
(shared) library. Macros to get this at compile time are already in place.
Change version numbers to include the UPDATE number as well. Now 4.8.0 becomes
40800 (M * 10000 + m * 100 + u).
Xbae configuration :
--enable-xbae-24bit (enable 24-bit code in XbaeMatrix)
--enable-xbae-row-heights (allow rows to have variable height in
XbaeMatrix)
Xbae API : add XbaeMatrixSetRowHeight(), XbaeMatrixGetRowHeight(),
XbaeMatrixSetColumnWidth(), XbaeMatrixGetColumnWidth()