Bump version to 2.7.1
Update .gitignore
Bump libtool versions that 2.7.0 (I forgot to do back then)
Hardcode /etc/fonts instead of @CONFDIR@ in docs (#22911)
We distribute the docs, so it makes little sense to distribute with
@CONFDIR@ replaced. Until we find a better solution, I've hardcoded
/etc/fonts now.
[doc] Add ~/fonts.conf.d to user docs
TT_MS_ID_UCS_4 is really UTF-16BE, not UTF-32
Reported by Yuriy Kaminskiy.
Fix doc syntax (#22902)
Fix FcNameUnparseLangSet()
Remove unused macros
Don't change the order of names unnecessarily (#20128)
so that TT_NAME_ID_PREFERRED_FAMILY is consistently preferred over
TT_NAME_ID_FONT_FAMILY when both are specified for the default
language.
Use GetSystemWindowsDirectory() instead of GetWindowsDirectory()
(#22037)
Improve libtool version parsing (#22122)
Fix leak with string VStack objects
Add Inconsolata to monospace config (#22710)
Remove unused ftglue code
Replace spaces with tabs in conf files
Fix win32 build
git-tag -s again
Alexey Khoroshilov (1):
Use human-readable file names in the docs (bug #16278)
Behdad Esfahbod (121):
Avoid C99ism in Win32 code (#16651)
[doc] Fix inaccuracy in FcFontRenderPrepare docs (#16985)
When canonizing filenames, squash // and remove final / (#bug 16286)
Add orth file for Maithili mai.orth (#15821)
Replace RCS Id tags with the file name
[doc] Fix signatures of FcPatternGetFTFace and FcPatternGetLangSet (#16272)
Update Thai default families (#16223)
Add ~/.fonts.conf.d to default config (#17100)
[fc-match] Fix list of getopt options in --help
Update man pages
Add fc-query (#13019)
Implement fc-list --verbose (#13015)
[doc] Add const decorator for FcPatternDuplicate()
Add FcPatternFilter() (#13016)
[doc] Document that a zero rescanInterval disables automatic checks
(#17103)
Get rid of $Id$ tags
[doc] Fix signature of FcConfigHome()
Fix docs re 'orig' argument of FcPatternBuild and family
Update sr.orth to actul subset of Cyrillic used by Serbian (#17208)
Add Sindhi .orth file. (#17140)
Add WenQuanYi fonts to default conf (#17262, from Mandriva)
Handle -h and --help according to GNU Coding Standards (#17104)
Document when config can be NULL (#17105)
Add FcConfigReference() (#17124)
Document how to free return value of FcNameUnparse()
Don't leak FcValues string loaded through fcxml.c (#17661)
Don't call FcPatternGetCharSet in FcSortWalk unless we need to (#17361)
Fix two more doc typos
[.gitignore] Update
Cleanup symlinks in "make uninstall" (bug #18885)
[fccache] Consistently use FcStat() over stat() (bug #18195)
Consistently use FcStat() over stat() in all places
Use __builtin_popcount() when available (bug #17592)
Fix compile with old FreeType that doesn't have FT_Select_Size() (bug
#17498)
Implement fc-list --quiet ala grep (bug #17141)
[65-fonts-persian.conf] Set foundry in target=scan instead of target=font
Don't use identifier named complex
Explicitly chmod() directories (bug #18934)
Remove special-casing of FC_FILE in FcPatternPrint()
[.gitignore] Update
Implement FcPatternFormat and use it in cmdline tools (bug #17107)
Fix comparison of family names to ignore leading space properly
[fcmatch.c] Fix debug formatting
[fcmatch] Use larger multipliers to enforce order
[fcmatch] When matching, reserve score 0 for when elements don't exist
[fcmatch] Move FcFontSetMatch() functionality into FcFontSetMatchInternal()
[doc] Note that fontset returned by FcConfigGetFonts should not be modified
Make FcCharSetMerge() public
Don't use FcCharSetCopy in FcCharSetMerge
Oops. Fix usage output.
Revive FcConfigScan() (bug #17121)
Add fc-scan too that runs FcFileScan/FcDirScan
Oops, fix FcPatternFilter
[fc-match] Accept list of elements like fc-list (bug #13017)
Cleanup all manpage.* files
[fcmatch] Fix crash when no fonts are available.
[fcfreetype] Fix typo in GB2312 encoding name string (#19845)
Add ICONV_LIBS to fontconfig.pc.in (#19606)
[win32] Fix usage of GetFullPathName()
[win32] Expand "APPSHAREFONTDIR" to ../share/fonts relative to binary
location
[win32] Do not remove leading '\\' such that network paths work
[fccache] Make sure the cache is current when reusing from open caches
Update Sinhala orthography (#19288)
[cache] After writing cache to file, update the internal copy to
reflect this
Further update Sinhala orthography (#19288)
[fcformat] Add support for width modifiers
[fcformat] Refactor and restructure code for upcoming changes
[fcformat] Add support for subexpressions
[fcformat] Add element filtering and deletion
[fcformat] Add conditionals
[fcformat] Add simple converters
[fcformat] Implement 'cescape', 'shescape', and 'xmlescape' converters
[FcStrBuf] better handle malloc failure
[fcformat] Add value-count syntax
[fcformat] Implement 'delete', 'escape', and 'translate' filter functions
[fcformat] Start adding builtins
[fcformat] Refactor code to avoid malloc
[fcformat] Add support for builtin formats
[fcformat] Support indexing simple tags
[fcformat] Support 'default value' for simple tags
[fcformat] Implement array enumeration
[fclang] Implement FcLangSetGetLangs() (#18846)
[fcformat] Enumerate langsets like we do arrays of values
[fcformat] Add a 'pkgkit' builtin that prints tags for font packages
[fcformat] Add list of undocumented language features
[fc-lang] Continue parsing after an "include" (#20179)
Fix Fanti (fat) orth file (#20390)
Fix Makefile's to not create target file in case of failure
[fcstr.c] Embed a static 64-byte buffer in FcStrBuf
[fcstr,fcxml] Don't copy FcStrBuf contents when we would free it soon
[fcxml] Don't allocate attr array if there are no attributes
[fcxml] Embed 8 static FcPStack objects in FcConfigParse
[fcxml] Embed 64 static FcVStack objects in FcConfigParse
[fcxml.c] Embed a static 64-byte attr buffer in FcPStack
Call git tools using "git cmd" instead of "git-cmd" syntax
Replace 'KEITH PACKARD' with 'THE AUTHOR(S)' in license text in all files
[fcformat] Fix default-value handling
Document FcPatternFormat() format
[Makefile.am] Don't clean ChangeLog in distclean
Revert "[conf] Disable hinting when emboldening (#19904)" (#20599)
[fc-lang] Fix bug in country map generation
[fcstr] Remove unused variable
[fc-lang] Make LangSet representation in the cache files stable
[fc-cache] Remove obsolete sentence from man page
Detect TrueType Collections by checking the font data header
Mark matchers array const (#21935)
Use/prefer WWS family/style (name table id 21/22)
Simplify FcValueSave() semantics
Add XXX note about Unicode Plane 16
Always set *changed in FcCharsetMerge
[charset] Grow internal FcCharset arrays exponentially
Remove unused prototypes and function
[xml] Centralize FcExpr allocation
[xml] Mark more symbols static
[xml] Allocate FcExpr's in a pool in FcConfig
[xml] Intern more strings
Bug 22154 -- fontconfig.pc doesn't include libxml2 link flags
Fix distcheck
Remove keithp's GPG key id
Bump version to 2.7.0
git-tag -s again
Benjamin Close (1):
Remove build manpage logfile if it exists
Chris Wilson (1):
Reduce number of allocations during FcSortWalk().
Dan Nicholson (1):
Let make expand fc_cachedir/FC_CACHEDIR (bug #18675)
Harald Fernengel (1):
Don't use variables named 'bool' (bug #18851)
Harshula Jayasuriya (1):
Fix Sinhala coverage (bug #19288)
Karl Tomlinson (1):
Change FcCharSetMerge API
Mike FABIAN (1):
[conf] Disable hinting when emboldening (#19904)
Peter (1):
Make sure alias files are built first (bug 16464)
Rahul Bhalerao (1):
Add config for new Indic fonts (bug #17856)
Roozbeh Pournader (60):
Correct Sindhi orthography to use Arabic script (bug #17140)
Remove Sinhala characters not in modern use (bug #19288)
Add Filipino orth, alias Tagalog to Filipino (bug #19846)
Split Mongolian orth to Mongolia and China (bug #19847)
Fix doubly encoded UTF-8 in comments (bug #19848)
Change Turkmen orth from Cyrillic to Latin (bug #19849)
Rename Venda from "ven" to "ve" (bug #19852)
Rename "ku" to "ku_am", add "ku_iq" (bug #19853).
Add Kashubian (csb) orth file (bug #19866)
Add Malay (ms) orthography (bug #19867)
Add Kinyarwanda (rw) orthography (bug #19868)
Add Upper Sorbian (hsb) orthography (bug #19870)
Add Berber orthographies in Latin and Tifinagh scripts (bug #19881)
Renamed az to az_az (bug #19889)
Rename Igbo from "ibo" to "ig" (bug #19892)
Remove punctuation symbols from Asturian orthography (bug #19893)
Add Chhattisgarhi (hne) orthography (bug #19891)
Use newly added Cyrillic letters for Kurdish (bug #20049)
Add Kurdish in Turkey (ku_tr) orthography (bug #19891)
Add Aragonese (an) orthography (bug #19891)
Add Haitian Creole (ht) orthography (bug #19891)
Ad Ganda (lg) orthography (bug #19891)
Add Limburgan (li) orthography (bug #19891)
Add Sardinian (sc) orthography (bug #19891)
Add Sidamo (sid) and Wolaitta (wal) orthographies (bug #19891)
Fix Bengali (bn) and Assamese (as) orthographies (bug #22924)
Remove Euro Sign from all orthographies (bug #19865)
Add Ottoman Turkish (ota) orthography (bug #20114)
Divide Panjabi (pa) to that of Pakistan and India (bug #19890)
Add Blin (byn) orthography (bug #19891)
Add Papiamento (pap_aw, pap_an) orthographies (bug #19891)
Add Crimean Tatar (crh) orthography (bug #19891)
Switch Uzbek (uz) orthography to Latin (bug #19851)
Update Azerbaijani in Latin (az_az) to present usage (bug #20173)
Rename Avaric orthography from 'ava' to 'av' (bug #20174)
Rename Bambara orthography from 'bam' to 'bm' (bug #20175)
Rename Fulah orthography from 'ful' to 'ff' (bug #20177)
Change Kashmiri (ks) orthography to Arabic script (bug #20200)
Tighten Central Khmer (km) orthography (bug #20202)
Remove digits and symbols from some Indic orthographies (bug #20204)
Add Divehi (dv) orthography (bug #20207)
Extend Crimean Tatar (crh) orthography (bug #19891)
Update Serbo-Croatian (sh) orthography (bug #20368)
Add Ewe (ee) orthography (bug #20386)
Add Herero (hz) orthograhy (bug #20387)
Add Akan (ak) and Fanti (fat) orthographies (bug #20390)
Added Quechua (qu) orthography (bug #20392)
Add Sango (sg) orthography (bug #20393)
Add Tahitian (ty) orthography (bug #20391)
Add Navajo (nv) orthography (bug #20395)
Add Rundi (rn) orthography (bug #20398)
Add Zhuang (za) orthography (bug #20399)
Add orthographies for Oshiwambo languages (bug #20401)
Add Shona (sn) orthography (bug #20394)
Add Sichuan Yi (ii) orthography (bug #20402)
Add Javanese (jv) orthography (bug #20403)
Add Nauru (na) orthography (bug #20418)
Add Kanuri (kr) orthography (bug #20438)
Add Sundanese (su) orthography (bug #20440)
Reorganize Panjabi/Punjabi and Lahnda orthographies (bug #19890)
Serge van den Boom (1):
Correctly handle mmap() failure (#21062)
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.
X.Org found in NetBSD-current.
Thanks a lot to all who helped, especially Matthias Scheler who did
repeated tests on Mac OS X and older versions of NetBSD to make sure the
support for those platforms wouldn't be broken (or at least, not fatally,
as I would still expect a few hiccups here and there, because there is
only so much one can test in such limited time).
On the infrastructure side, this branch brings pkgconfig-builtin.mk, in
order to write very easily new builtin.mk files. It can actually handle
more than just pkgconfig files, but it will provide a version if it finds
such a file. x11.builtin.mk has also been made more useful and now all
existing (and future!) native-X11-related builtin.mk files should include
it.
Major changes since 2.5.0:
* Handle bitmap-only TTF files that do not have a GLYF table
* Ignore point size and DPI for bitmap (PCF) fonts.
* Add fantasy and cursive generic families
* Merge Fedora and Mandriva configuration options
* Build fixes for cross compile and Win32 platforms
2.5
Keith Packard (4):
Document several function return values (Bug 13145).
Document that Match calls FcFontRenderPrepare (bug 13162).
Document that FcConfigGetFonts returns the internal fontset (bug 13197)
Revert "Remove fcprivate.h, move the remaining macros to fcint.h."
Tor Lillqvist (1):
Workaround for stat() brokenness in Microsoft's C library (bug 8526)
2.4.92 (2.5 RC2)
Behdad Esfahbod (14):
Make fc-match --sort call FcFontRenderPrepare.
Port fonts-persian.conf to new alias syntax with binding="same"
Fix trivial bugs in edit-sgml.c
Add FcGetLangs() and FcLangGetCharSet().
Add/update config files from Fedora.
Split 40-generic.conf into 40-nonlatin.conf and 45-latin.conf
Use binding="same" in 30-urw-aliases.conf and remove duplicate entries.
Remove redundant/obsolete comments from conf files.
Remove 20-lohit-gujarati.conf. It's covered by 25-unhint-nonlatin.conf now.
Oops, fix Makefile.am.
Remove 25-unhint-nonlatin.conf from default configuration by not linking it.
Fix documented conf-file naming format in README
Remove list of available conf files from README.
Simplify/improve 30-metric-aliases.conf
Keith Packard (25):
Also check configDirs mtimes in FcConfigUptoDate
Respect "binding" attribute in <alias> entries.
Correct documentation for FcAtomicLock (Bug 12947).
Remove fcprivate.h, move the remaining macros to fcint.h.
Correct documentation for FcConfigUptoDate (bug 12948).
Document skipping of fonts from FcFileScan/FcDirScan.
Make file_stat argument to FcDirCacheLoadFile optional.
Clean up exported names in fontconfig.h.
Track line numbers in sgml edit tool input.
Typo error in function name: Inverval -> interval
Don't check cache file time stamps when cleaning cache dir.
Use FcLangDifferentTerritory instead of FcLangDifferentCountry.
Verify documentation covers exposed symbols.
Document previously undocumented functions. (bug 12963)
Update documentation for FcStrCopyFilename (bug 12964).
Update documentation for stale FcConfigGetConfig function.
Have FcConfigSetCurrent accept the current configuration and simply return
Remove references to FcConfigParse and FcConfigLoad.
Replace incorrect documentation uses of 'char' with 'FcChar8' (bug 13002).
Fix formatting syntax in doc/fccache.fncs
Generate fccache.sgml, fcdircache.sgml and fclangset.sgml.
Formatting syntax mistake in doc/fclangset.fncs.
Link new function documentation into the fontconfig-devel.sgml
Ignore new generated documentation
Export FcConfig{G,S}etRescanInverval from .so, mark as deprecated.
2.4.91 (2.5 RC1)
Behdad Esfahbod (1):
Update CaseFolding.txt to Unicode 5.1.0
Dwayne Bailey (1):
Add/fix *.orth files for South African languages
Hideki Yamane (1):
Handle Japanese fonts better. (debian bug #435971)
Keith Packard (32):
rehash increment could be zero, causing rehash infinite loop.
Work around FreeType bug when glyph name buffer is too small.
Free temporary string in FcDirCacheUnlink (Bug #11758)
Fix ChangeLog generation to avoid circular make dependency
Store font directory mtime in cache file.
Comment about mmaping cache files was misleading.
Make FC_FULLNAME include all fullname entries, elide nothing. [bug 12827]
Remove unneeded call to access(2) in fc-cache.
Improve verbose messages from fc-cache.
Verbose message about cleaning directories was imprecise
Don't use X_OK bit when checking for writable directories (bug 12438)
Have fc-cache remove invalid cache files from cache directories.
FcConfigParseAndLoad doc was missing the last param.
Place language name in constant array instead of pointer.
Must not insert cache into hash table before completely validating.
Eliminate relocations for glyph name table.
Eliminate relocations from FcCodePageRange structure (bug 10982).
Leave generated headers out of distribution (bug 12734).
Move <cachedir> elements to the end of fonts.conf.
Add BRAILLE PATTERN BLANK to list of blank glyphs.
Replace makealias pattern with something supported by POSIX grep (bug 11083)
FcInit should return FcFalse when FcInitLoadConfigAndFonts fails. (bug 10976)
There is no U+1257 (bug 10899).
Spelling errors in documentation. (bug 10879).
Oops. Left debugging printf in previous commit.
Handle UltraBlack weight.
Fix parallel build in fontconfig/docs (bug 10481).
Distribute man source files for command line programs (bug 9678).
Ensure weight/slant values present even when style is supplied (bug 9313).
fontconfig needs configure option to use gnu iconv (bug 4083).
Match 'ultra' on word boundaries to detect ultra bold fonts. (bug 2511)
Build fix for Solaris 10 with GCC.
Mike FABIAN (1):
Avoid crashes if config files contain junk.
Stephan Kulow (1):
Make FcPatternDuplicate copy the binding instead of always using Strong.
Tilman Sauerbeck (2):
Store FcNoticeFoundries in read-only memory.
Store FcVendorFoundries in read-only memory.
So get rid of BUILDLINK_ABI_DEPENDS.fontconfig.
And increase BUILDLINK_API_DEPENDS.fontconfig to fontconfig>=2.4.2.
Noticed this when using a binary package for qt4-libs built on
different system:
/usr/pkg/qt4/lib/libQtGui.so: undefined reference to `FcFreeTypeQueryFace'
I am not bumping the PKGREVISIONs for all the dependents, since the
upgrade to fontconfig 2.4.2 happened ten months ago.
detected by autoconf for use in the fontconfig cache file names.
Pass down CC_FOR_BUILD when doing cross-compilation.
A script for how to do the original fc-arch dance in a cross-compile
safe way was sent to the authors as well as a question why this was
done. No reply received so far.
Bump revision. Note that you might want to clean /var/cache/fontconfig
after installing this.
Supported-by: Google SoC 2007.
2.4.2
Han-Wen Nienhuys:
FcStrCanonFileName buggy for mingw. (bug 8311)
More fixes for Win32 building (bug 8311)
Kean Johnston:
Don't use varargs CPP macros in fccache.c. (bug 8733)
Keith Packard:
Remove documentation for non-existant FcConfigNormalizeFontDir.
Build fontconfig.def from header files when needed.
Detect and use available random number generator (bug 8308)
Add sparc64 architecture string.
FcStrCanonAbsoluteFilename should be static.
Use explicit platform/nameid order when scanning ttf files.
Warn (and recover) from config file without <cachedir> elements.
Avoid writing uninitialized structure pad bytes to cache files.
Fix grep pattern in makealias to work on non-Gnu grep (bug 8368).
Add FcFreeTypeQueryFace external API. Bug #7311.
Segfault scanning non-font files. Disallow scan edit of user vars. (#8767)
Add space between type and formal in devel man pages (bug 8935)
Mike FABIAN:
Do not clean cache files for different architectures
Peter Breitenlohner:
A VPATH build of fontconfig-2.4.1 fails for various reasons. Bug 8933.
Use <literal> instead of <sgmltag> when documenting fonts.conf. Bug 8935.
Fix fc-cat documentation (bug 8935).
This fixes the build on a couple of systems (m68k and mipsel), and
re-implements a function that was broken by the cache file rework that
is needed for lilypond.
Fontconfig version 2.4 is API and ABI compatible with the 2.3
release, although some significant internal restructuring has
occurred.
Major changes from the 2.3 series:
* Shared mmap'ed cache files. All font cache files are mapped
read-only and shared across multiple processes. Startup
performance and memory footprint of the library have, as a
result, been significantly improved.
* Configuration split into multiple files. While 2.3 provided
the ability to incorporate additional configuration files from
a directory, it didn't use them extensively. The new configuration
structure places most of the configuration into separate files
and provides conventions for naming them that are designed to
permit user and distribution customization of the library
without needing to edit the master config file.
* Eliminate internal symbols from shared library symbol table.
The shared library now exports precisely the list of symbols
present in the public header files. Use of private symbols,
always unsupported, will now result in failure to link and run.
Thanks to all who have made this release possible, especially
Patrick Lam who built the shared cache file code and performed most
of the maintenance over the last year.
Keith Packard 2006-9-9
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.
caches for individuals as needed.
Remove gnome from CATEGORIES.
Redo the added font paths because ${LOCALBASE}/lib/X11/fonts is
already default as configured above, so don't need to add again.
And don't need to list sub-directories of "fonts" because fontconfig
already looks in sub-directories too. (I have been using this over
a year on various systems like this.)
Update to 2.3.2. Changes include:
* fc-cache/fc-cache.c: (scanDirs):
Fix a few minor leaks in error cases.
* fc-cache/fc-cache.c: (main):
Destroy font configuration on exit to help valgrind
* fonts.conf.in:
* src/fcfreetype.c: (FcSfntNameTranscode), (FcFreeTypeCharIndex),
(FcFreeTypeCheckGlyph):
Use own transcoding routines in preference to iconv
which appears to have leaks in some translators.
Call iconv_close after using iconv (oops).
Prefer unicode encoding of Euro char as some
fonts mis-encode Euro in other ones.
Must fetch bitmap glyphs to get width values
to check for monospace/dual-width fonts.
Complete changes at
http://www.fontconfig.org/release/ChangeLog-2.3.2
Note that manpage for fc-cache(1) is not installed yet. It is in SGML.
Also note that the new version provides same library version
libfontconfig.so.1.0.4. This was reported to developer and was an
accidently oversite. Nevertheless, it is still ABI compatible.
the X11 distribution using imake into mk/buildlink3/imake-check.mk.
imake-check.mk calls out to a helper shell script mk/buildlink3/imake-check
that generates the required Imakefiles and runs imake. Remove the
now extraneous builtin-imake.mk files as the builtin.mk files can now
contain the name of the imake symbol to check.
contain a command plus arguments. We use the standard idiom to extract
the first word of a list stored in a make variable:
VAR_CMD= ${VAR:C/^/_asdf_/1:M_asdf_*:S/^_asdf_//}
XXX This can be replaced with a more succinct use of variable modifiers
XXX when we update the bootstrap bmake to match the latest NetBSD make
XXX sources, i.e.:
XXX
XXX VAR_CMD= ${VAR:[1]}
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.