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.
This is for PR 37610 to fix internationalized text bug.
This fix was already in XFree86 and Xorg libXaw versions since at
least Nov. 2004 and in Fedora for Xaw3d since 2002.
to use include/X11/Xaw/* and not the versions provided by Xaw3d. Many
packages also incorrectly linked against libXaw and not libXaw3d,
effectively making the dependency a nop.
Address this problem in two steps:
(a) Transform -lXaw to -lXaw3d. This magically fixes the packages which
got it wrong before. I haven't checked a list of packages affected by
this, so no revision bumps here.
(b) Link include/X11/Xaw3d to include/X11/Xaw for modular Xorg, so that
the dependency on Xaw3d actually works without pulling in libXaw as well.
This should be extended to the other Xaw packages, but I don't use them
nor do I have any interest in them.
Discussed with and not objected by: jlam
or USE_X11BASE set, but don't include mk/x11.buildlink3.mk directly or
via buildlink3.mks
- introduce BUILDLINK_PREFIX.libXpm as alias for BUILDLINK_PREFIX.xpm
in the !modular case
- fix some cases where the check for libX11 couldn't work at all by using
C++ for compilation without including the proper headers
Verified using a full X11_TYPE=xorg bulk build without additional
breakage. Discussed with salo@, wiz@ and send to packages@ for feedback.
packages with the modular Xorg equivalent. Those are falling back
to the old location by default, so this commmit doesn't change
dependencies.
graphics/xpm ==> x11/libXpm
fonts/Xft2 ==> x11/libXft
x11/Xfixes ==> x11/libXfixes
x11/xcursor ==> x11/libXcursor
x11/Xrender ==> x11/libXrender
x11/Xrandr ==> libXrandr
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).
of the geometry for a Box Layout (file Box.c). There, the box tries
to extend its width until its height fits within the constraint height
(influenced by the window manager). Unfortunately, widths are 16bit
unsigned and in the error case (occuring under KDE), the constraint
width is 65535, i.e. maximal.
The code loops until either the computed height is smaller than the
constraint height or the width exceeds the constraint width. In each
loop iteration, the width of the box layout is doubled. This loop
does not terminate, if one chooses unfortunate initial width, as the
width wraps around if it overflows 16 bits and if the maximal
constraint width is SHORT_INT_MAX.
Patch tries to capture the overflow before it wraps around the
`width' variable, setting the width to the maximal one.
From Stephan Thesing in PR pkg/32445. Bump PKGREVISION.
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.
New in 1.5A:
The SimpleMenu widget now supports scrolling through entries too
numerous to fit on the screen, with a new resource supporting a
scroll jump value. The record variable is simple_menu.jump_val,
resourced as XtNjumpScroll, and classed as XtCJumpScroll. Adapted
from an early neXtaw toolkit.
Added 3D support to the SimpleMenu, Text, and Viewport widgets.
Four minor changes in ThreeD.c and SmeThreeD.c to have the widgets
use the app's colormap, rather than the screen's default, for those
apps that create their own.
Added the deletion of laygram.h to the Imakefile.
Created Xaw3dP.c, for functions shared by other modules that have
no other appropriate home.
A new directory containing sample resource files for a few apps.
See the README.AD file in that directory.
New in 1.5B:
Made Imakefile a bit more friendly to build options. Makefile now
defines the build options in Xaw3dP.h during the build.
Added to the key translation tables in Panner.c and TextTr.c, and
some rules to Imakefile, to make this distribution X11R5 compliant.
Tested on exactly one X11R5 system; your mileage may vary.
Made internationalization support conditional, for systems lacking
or broken. Tested on exactly two systems, one with and one without;
your mileage may vary.
New in 1.5C:
Enabled multi-plane pixmap support with a new Xt resource type
converter. The "Xaw3d build options" section has more information.
Added private Pixmap resources to the Label and SmeBSB widgets for
stippled copies of the public Pixmap resources (record variables
label.stippled, label.right_stippled, sme_bsb.left_stippled, and
sme_bsb.right_stippled, respectively). Insensitive pixmaps are now
rendered properly.
New in 1.5D:
Added two resources to the SimpleMenu widget for setting margins.
The SmeBSB widgets have a tighter relationship with their parent
and siblings; menus and their entries now respond properly to
changes in themselves or their parent. See the section "The SimpleMenu
widget and margins" below for a detailed explanation.
New in 1.5E:
Enabled a new resource in the ThreeD widget to specify one of five
shadow types. The record variable is threeD.relief (the record part
is transparent), resourced as XtNRelief and classed as XtCRelief.
It accepts as values XtReliefNone, XtReliefRaised, XtReliefSunken,
XtReliefRidge, and XtReliefGroove. Note that the Text, SimpleMenu,
Scrollbar, and Viewport widgets ignore this resource, and display
only raised or sunken shadows. Built on the unfinished work of an
early neXtaw toolkit.
Added support for sub-menus in the SimpleMenu widget. Inspired by
the xfig application, adapted from XFree86's X11R6.6 "Xaw7" toolkit,
and made better than both. See the section "The SimpleMenu widget
and sub-menus" below for usage.
Added a resource to the SmeBSB widget to specify an underlined
character in the label. The record variable is sme_bsb.underline,
resourced as XtNunderline, and classed as XtCUnderline. It accepts
an integer as an index to the character; a value less than zero or
greater than or equal to the label length inhibits underlining.
Adapted from a recent distribution of the xfig application.
Made the SmeThreeD widget sensitive to the GRAY_BLKWHT_STIPPLES
build option (see the "Xaw3d build options" section for what this
is and does).
Added support for "tooltips". Inspired by the xfig application and
adapted from XFree86's X11R6.6 "Xaw7" toolkit. See the section "The
Tip widget" below for usage.
Fixed some geometry and positioning bugs in the Label widget. It's
internalHeight and internalWidth resources are now used to enforce
a minimum size when it's resize resource is True. The Label (and
superclasses of) widget now resizes properly to changes in label
parts and internal margins (subject to any constraints placed on
the widgets, of course).
Swapped the top and bottom colors in the stippled pixmap shadows.
Fixed a shadow drawing bug in the Command widget, when the shape
is changed.
Fixed the shadow state bug in the SmeBSB widget.
Dropped support for Linux shared a.out libraries.
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.
USE_XAW, a package Makefile may just include mk/xaw.buildlink.mk, which
pulls in the correct buildlink.mk file depending on the value of XAW_TYPE.
A package Makefile may also rely on LIBXAW being set to the correct
libraries.