From 6ae6acf3178d7dd10e2326f6833d25970e530f61 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 14 Apr 2004 18:08:41 +0000 Subject: [PATCH] Add instructions for doing a release clean up .spec file; perhaps this will be useful to somebody... Update to 2.2.93 Make 'scanopen' static so GCC doesn't whine about lacking prototype Add WARN_CFLAGS to pass -W flags for GCC systems Change various char types around to match across function calls. Fixed bug in using available_sizes[i].height which is in pixels, not 64ths of a pixel. --- ChangeLog | 30 +++++++++++ INSTALL | 13 +++++ README | 27 +++++++++- configure.in | 14 ++++- fc-glyphname/Makefile.am | 2 +- fc-lang/Makefile.am | 2 +- fc-lang/fc-lang.c | 2 +- fc-list/Makefile.am | 2 +- fc-match/Makefile.am | 2 +- fontconfig.spec.in | 42 +++++++++++---- fontconfig/fontconfig.h | 2 +- src/Makefile.am | 1 + src/fcfreetype.c | 109 ++++++++++++++++++++------------------- 13 files changed, 176 insertions(+), 72 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0462630..311e4d6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,33 @@ +2004-04-14 Keith Packard + + * INSTALL: + Add instructions for doing a release + + * fontconfig.spec.in: + clean up .spec file; perhaps this will be useful to somebody... + + * README: + * configure.in: + * fontconfig/fontconfig.h: + Update to 2.2.93 + + * fc-lang/fc-lang.c: + Make 'scanopen' static so GCC doesn't whine about lacking prototype + + * fc-glyphname/Makefile.am: + * fc-lang/Makefile.am: + * fc-list/Makefile.am: + * fc-match/Makefile.am: + * src/Makefile.am: + Add WARN_CFLAGS to pass -W flags for GCC systems + + * src/fcfreetype.c: (FcNoticeFoundry), (FcVendorMatch), + (FcVendorFoundry), (FcGetPixelSize), (FcFreeTypeQuery): + Change various char types around to match across + function calls. + Fixed bug in using available_sizes[i].height which + is in pixels, not 64ths of a pixel. + 2004-03-06 Keith Packard * src/fcfreetype.c: (FcFreeTypeQuery): diff --git a/INSTALL b/INSTALL index 86cf4f9..dcd6b3f 100644 --- a/INSTALL +++ b/INSTALL @@ -7,3 +7,16 @@ This should generate valid Makefiles, then: $ make $ make install +If you're going to package fontconfig for release, there are several +important steps: + + 1. Update the version numbers + configure.in + fontconfig/fontconfig.h + 2. Fix the README + Change version number + Set the date + 3. Commit those changes + 4. tag the tree + cvs tag fc-2_2_xx + 5. make dist diff --git a/README b/README index 5fceba8..381eee7 100644 --- a/README +++ b/README @@ -1,7 +1,30 @@ Fontconfig Font configuration and customization library - Version 2.2 - 2003-3-1 + Version 2.2.92 + 2004-2-19 + +2.2.93 + +This is the third prerelease of fontconfig 2.3. Significant changes from +2.2.92 are: + + o Use new FreeType #include syntax + o use y_ppem field instead of 'height' in bitmap sizes rec - + FreeType changed the semantics. Still uses height for + older versions of FreeType + o Don't construct program manuals unless docbook is available + +2.2.92 + + o make distcheck work + +2.2.91 + + o Switch to SGML manuals + o Add FC_DUAL width spacing value + o Add FcFini to close out fontconfig and release all memory + +2.2 This is the third public release of fontconfig, a font configuration and customization library. Fontconfig is designed to locate fonts within the diff --git a/configure.in b/configure.in index 100d7b9..910ac28 100644 --- a/configure.in +++ b/configure.in @@ -33,7 +33,8 @@ dnl This is the package version number, not the shared library dnl version. This same version number must appear in fontconfig/fontconfig.h dnl Yes, it is a pain to synchronize version numbers. Unfortunately, it's dnl not possible to extract the version number here from fontconfig.h -AM_INIT_AUTOMAKE(fontconfig, 2.2.92) +AM_INIT_AUTOMAKE(fontconfig, 2.2.93) +AM_MAINTAINER_MODE dnl libtool versioning @@ -76,6 +77,15 @@ if test "$os_win32" = "yes"; then fi AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes) +WARN_CFLAGS="" + +if test "x$GCC" = "xyes"; then + WARN_CFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes \ + -Wmissing-prototypes -Wmissing-declarations \ + -Wnested-externs -fno-strict-aliasing" +fi +AC_SUBST(WARN_CFLAGS) + dnl ========================================================================== # Checks for header files. @@ -132,6 +142,8 @@ AC_CHECK_MEMBER(FT_Bitmap_Size.y_ppem, #include FT_FREETYPE_H]) AC_DEFINE_UNQUOTED(HAVE_FT_BITMAP_SIZE_Y_PPEM,$HAVE_FT_BITMAP_SIZE_Y_PPEM, [FT_Bitmap_Size structure includes y_ppem field]) +CFLAGS="$fontconfig_save_cflags" +LIBS="$fontconfig_save_libs" # # Check expat configuration diff --git a/fc-glyphname/Makefile.am b/fc-glyphname/Makefile.am index d741f4e..25dbdff 100644 --- a/fc-glyphname/Makefile.am +++ b/fc-glyphname/Makefile.am @@ -22,7 +22,7 @@ # PERFORMANCE OF THIS SOFTWARE. # -INCLUDES=-I${top_srcdir}/src -I${top_srcdir} $(FREETYPE_CFLAGS) +INCLUDES=-I${top_srcdir}/src -I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS) TMPL=fcglyphname.tmpl.h STMPL=${top_srcdir}/fc-glyphname/${TMPL} diff --git a/fc-lang/Makefile.am b/fc-lang/Makefile.am index 3544545..d97e52e 100644 --- a/fc-lang/Makefile.am +++ b/fc-lang/Makefile.am @@ -22,7 +22,7 @@ # PERFORMANCE OF THIS SOFTWARE. # -INCLUDES=-I${top_srcdir}/src -I${top_srcdir} $(FREETYPE_CFLAGS) +INCLUDES=-I${top_srcdir}/src -I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS) TMPL=fclang.tmpl.h STMPL=${top_srcdir}/fc-lang/fclang.tmpl.h diff --git a/fc-lang/fc-lang.c b/fc-lang/fc-lang.c index edfad3b..31d708b 100644 --- a/fc-lang/fc-lang.c +++ b/fc-lang/fc-lang.c @@ -77,7 +77,7 @@ get_line (FILE *f, char *line, int *lineno) char *dir = 0; -FILE * +static FILE * scanopen (char *file) { FILE *f; diff --git a/fc-list/Makefile.am b/fc-list/Makefile.am index 427ab18..1a50948 100644 --- a/fc-list/Makefile.am +++ b/fc-list/Makefile.am @@ -29,7 +29,7 @@ SGML = ${FC_LIST_SRC}/fc-list.sgml bin_PROGRAMS=fc-list -INCLUDES=-I${top_srcdir} $(FREETYPE_CFLAGS) +INCLUDES=-I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS) EXTRA_DIST=$(SGML) diff --git a/fc-match/Makefile.am b/fc-match/Makefile.am index 80629fc..7a32e34 100644 --- a/fc-match/Makefile.am +++ b/fc-match/Makefile.am @@ -25,7 +25,7 @@ bin_PROGRAMS=fc-match man_MANS=fc-match.1 -INCLUDES=-I${top_srcdir} $(FREETYPE_CFLAGS) +INCLUDES=-I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS) EXTRA_DIST=$(man_MANS) diff --git a/fontconfig.spec.in b/fontconfig.spec.in index 47e80aa..9037352 100644 --- a/fontconfig.spec.in +++ b/fontconfig.spec.in @@ -38,22 +38,31 @@ header files, and developer docs for the fontconfig package. Install fontconfig-devel if you want to develop programs which will use fontconfig. +# Some rpm specific directories. Prefix 'my' hopefully does not collide with anything. +%define my_docdir %{_datadir}/doc/%{name}-%{version} +%define my_develdocdir %{_datadir}/doc/%{name}-devel-%{version} +%define my_tmpdocdir $RPM_BUILD_ROOT%{my_docdir} +%define my_tmpdeveldocdir $RPM_BUILD_ROOT%{my_develdocdir} + %prep %setup -q %build -%configure --with-x-fonts=/usr/X11R6/lib/X11/fonts --disable-gtk-doc --disable-docs +%configure --with-x-fonts=/usr/X11R6/lib/X11/fonts --disable-gtk-doc \ + --with-docdir=%{my_docdir} make %{_smp_mflags} %install [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT { - %makeinstall - # fontconfig is currently installing these in improper location for RPM - # based Linux distributions, so we remove what it installs here, and let - # RPM pick up the same files with 'doc' directives in the file lists as - # a workaround - rm -rf $RPM_BUILD_ROOT/%{_datadir}/doc/fontconfig + %makeinstall docdir=%{my_tmpdocdir} + + # The make does not distinguish the base and devel packages + mkdir -p %{my_tmpdeveldocdir} + mv -f %{my_tmpdocdir}/*devel* %{my_tmpdeveldocdir} + + # Use a more informative directory name: + mv -f %{my_tmpdeveldocdir}/fontconfig-devel %{my_tmpdeveldocdir}/html } %clean @@ -70,20 +79,23 @@ make %{_smp_mflags} %files %defattr(-, root, root) -%doc README AUTHORS COPYING ChangeLog doc/fontconfig-*.{html,txt} +%doc README AUTHORS COPYING ChangeLog doc/fontconfig-user.{html,txt} +%{my_docdir}/* %dir %{_sysconfdir}/fonts %{_sysconfdir}/fonts/fonts.conf %{_sysconfdir}/fonts/fonts.dtd %config %{_sysconfdir}/fonts/local.conf %{_bindir}/fc-* %{_libdir}/libfontconfig*.so.* +%{_mandir}/man1/* %{_mandir}/man5/* %files devel %defattr(-, root, root) -%doc doc/fontconfig-devel.txt doc/fontconfig-devel/* +#%doc doc/fontconfig-devel.txt doc/fontconfig-devel/* +%{my_develdocdir} %dir %{_includedir}/fontconfig -%{_includedir}/fontconfig +%{_includedir}/fontconfig/* %{_libdir}/*.a %{_libdir}/*.la %{_libdir}/libfontconfig.so @@ -91,6 +103,16 @@ make %{_smp_mflags} %{_mandir}/man3/* %changelog +* Wed Mar 20 2004 Enrique Perez-Terron +- Added mandir /man1/* to main file list +- Added missing '/*' after includedir/fontconfig to avoid "listed twice" error. +- Removed configure option --disable-docs since its problem is solved, see below. +- Added option to makeinstall to have it install docs in the proper directory. + Notice though that the %doc macro deletes and recreates the docs directory. +- Cleaner separation of devel docs. +- Renamed doc/fontconfig-devel-*/fontconfig-devel subdirectory to 'html'. +- Removed %doc macro from devel filelist, since it deletes installed files. + * Fri Mar 7 2003 Mike A. Harris 2.1.92-1 - Removed man1/* and added man5/* to main package and man3/* to devel package - Added missing defattr(-, root, root) to main package diff --git a/fontconfig/fontconfig.h b/fontconfig/fontconfig.h index 8894219..75c16d3 100644 --- a/fontconfig/fontconfig.h +++ b/fontconfig/fontconfig.h @@ -40,7 +40,7 @@ typedef int FcBool; #define FC_MAJOR 2 #define FC_MINOR 2 -#define FC_REVISION 92 +#define FC_REVISION 93 #define FC_VERSION ((FC_MAJOR * 10000) + (FC_MINOR * 100) + (FC_REVISION)) diff --git a/src/Makefile.am b/src/Makefile.am index 7890e96..0e42b24 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -44,6 +44,7 @@ endif INCLUDES = \ $(FREETYPE_CFLAGS) \ $(EXPAT_CFLAGS) \ + $(WARN_CFLAGS) \ -DFONTCONFIG_PATH='"$(CONFDIR)"' \ -I$(top_srcdir) \ -I$(top_srcdir)/src diff --git a/src/fcfreetype.c b/src/fcfreetype.c index 6248595..816f08a 100644 --- a/src/fcfreetype.c +++ b/src/fcfreetype.c @@ -158,31 +158,34 @@ FcUtf8IsLatin (FcChar8 *str, int len) URW++, and both strings appear in the notice. */ static const struct { - const FcChar8 *notice; + const FT_String *notice; const FcChar8 *foundry; } FcNoticeFoundries[] = { - { (const FcChar8*) "Bigelow", (const FcChar8 *) "b&h" }, - { (const FcChar8*) "Adobe", (const FcChar8 *) "adobe" }, - { (const FcChar8*) "Bitstream", (const FcChar8 *) "bitstream" }, - { (const FcChar8*) "Monotype", (const FcChar8 *) "monotype" }, - { (const FcChar8*) "Linotype", (const FcChar8 *) "linotype" }, - { (const FcChar8*) "LINOTYPE-HELL", (const FcChar8 *) "linotype" }, - { (const FcChar8*) "IBM", (const FcChar8 *) "ibm" }, - { (const FcChar8*) "URW", (const FcChar8 *) "urw" }, - { (const FcChar8*) "International Typeface Corporation", + { (const FT_String *) "Bigelow", (const FcChar8 *) "b&h" }, + { (const FT_String *) "Adobe", (const FcChar8 *) "adobe" }, + { (const FT_String *) "Bitstream", (const FcChar8 *) "bitstream" }, + { (const FT_String *) "Monotype", (const FcChar8 *) "monotype" }, + { (const FT_String *) "Linotype", (const FcChar8 *) "linotype" }, + { (const FT_String *) "LINOTYPE-HELL", + (const FcChar8 *) "linotype" }, + { (const FT_String *) "IBM", (const FcChar8 *) "ibm" }, + { (const FT_String *) "URW", (const FcChar8 *) "urw" }, + { (const FT_String *) "International Typeface Corporation", (const FcChar8 *) "itc" }, - { (const FcChar8*) "Tiro Typeworks",(const FcChar8 *) "tiro" }, - { (const FcChar8*) "XFree86", (const FcChar8 *) "xfree86" }, - { (const FcChar8*) "Microsoft", (const FcChar8 *) "microsoft" }, - { (const FcChar8*) "Omega", (const FcChar8 *) "omega" }, - { (const FcChar8*) "Font21", (const FcChar8 *) "hwan" }, - { (const FcChar8*) "HanYang System",(const FcChar8 *) "hanyang" } + { (const FT_String *) "Tiro Typeworks", + (const FcChar8 *) "tiro" }, + { (const FT_String *) "XFree86", (const FcChar8 *) "xfree86" }, + { (const FT_String *) "Microsoft", (const FcChar8 *) "microsoft" }, + { (const FT_String *) "Omega", (const FcChar8 *) "omega" }, + { (const FT_String *) "Font21", (const FcChar8 *) "hwan" }, + { (const FT_String *) "HanYang System", + (const FcChar8 *) "hanyang" } }; #define NUM_NOTICE_FOUNDRIES (sizeof (FcNoticeFoundries) / sizeof (FcNoticeFoundries[0])) static const FcChar8 * -FcNoticeFoundry(const char *notice) +FcNoticeFoundry(const FT_String *notice) { int i; @@ -194,7 +197,7 @@ FcNoticeFoundry(const char *notice) } static FcBool -FcVendorMatch(const char *vendor, const char *vendor_string) +FcVendorMatch(const FT_Char vendor[4], const FT_Char *vendor_string) { /* vendor is not necessarily NUL-terminated. */ int i, len; @@ -214,44 +217,44 @@ FcVendorMatch(const char *vendor, const char *vendor_string) entries for padding both with spaces and NULs. */ static const struct { - const FcChar8 *vendor; + const FT_Char *vendor; const FcChar8 *foundry; } FcVendorFoundries[] = { - { (const FcChar8*) "ADBE", (const FcChar8 *) "adobe"}, - { (const FcChar8*) "AGFA", (const FcChar8 *) "agfa"}, - { (const FcChar8*) "ALTS", (const FcChar8 *) "altsys"}, - { (const FcChar8*) "APPL", (const FcChar8 *) "apple"}, - { (const FcChar8*) "ARPH", (const FcChar8 *) "arphic"}, - { (const FcChar8*) "ATEC", (const FcChar8 *) "alltype"}, - { (const FcChar8*) "B&H", (const FcChar8 *) "b&h"}, - { (const FcChar8*) "BITS", (const FcChar8 *) "bitstream"}, - { (const FcChar8*) "CANO", (const FcChar8 *) "cannon"}, - { (const FcChar8*) "DYNA", (const FcChar8 *) "dynalab"}, - { (const FcChar8*) "EPSN", (const FcChar8 *) "epson"}, - { (const FcChar8*) "FJ", (const FcChar8 *) "fujitsu"}, - { (const FcChar8*) "IBM", (const FcChar8 *) "ibm"}, - { (const FcChar8*) "ITC", (const FcChar8 *) "itc"}, - { (const FcChar8*) "IMPR", (const FcChar8 *) "impress"}, - { (const FcChar8*) "LARA", (const FcChar8 *) "larabiefonts"}, - { (const FcChar8*) "LEAF", (const FcChar8 *) "interleaf"}, - { (const FcChar8*) "LETR", (const FcChar8 *) "letraset"}, - { (const FcChar8*) "LINO", (const FcChar8 *) "linotype"}, - { (const FcChar8*) "MACR", (const FcChar8 *) "macromedia"}, - { (const FcChar8*) "MONO", (const FcChar8 *) "monotype"}, - { (const FcChar8*) "MS", (const FcChar8 *) "microsoft"}, - { (const FcChar8*) "MT", (const FcChar8 *) "monotype"}, - { (const FcChar8*) "NEC", (const FcChar8 *) "nec"}, - { (const FcChar8*) "PARA", (const FcChar8 *) "paratype"}, - { (const FcChar8*) "QMSI", (const FcChar8 *) "qms"}, - { (const FcChar8*) "RICO", (const FcChar8 *) "ricoh"}, - { (const FcChar8*) "URW", (const FcChar8 *) "urw"}, - { (const FcChar8*) "Y&Y", (const FcChar8 *) "y&y"} + { (const FT_Char *) "ADBE", (const FcChar8 *) "adobe"}, + { (const FT_Char *) "AGFA", (const FcChar8 *) "agfa"}, + { (const FT_Char *) "ALTS", (const FcChar8 *) "altsys"}, + { (const FT_Char *) "APPL", (const FcChar8 *) "apple"}, + { (const FT_Char *) "ARPH", (const FcChar8 *) "arphic"}, + { (const FT_Char *) "ATEC", (const FcChar8 *) "alltype"}, + { (const FT_Char *) "B&H", (const FcChar8 *) "b&h"}, + { (const FT_Char *) "BITS", (const FcChar8 *) "bitstream"}, + { (const FT_Char *) "CANO", (const FcChar8 *) "cannon"}, + { (const FT_Char *) "DYNA", (const FcChar8 *) "dynalab"}, + { (const FT_Char *) "EPSN", (const FcChar8 *) "epson"}, + { (const FT_Char *) "FJ", (const FcChar8 *) "fujitsu"}, + { (const FT_Char *) "IBM", (const FcChar8 *) "ibm"}, + { (const FT_Char *) "ITC", (const FcChar8 *) "itc"}, + { (const FT_Char *) "IMPR", (const FcChar8 *) "impress"}, + { (const FT_Char *) "LARA", (const FcChar8 *) "larabiefonts"}, + { (const FT_Char *) "LEAF", (const FcChar8 *) "interleaf"}, + { (const FT_Char *) "LETR", (const FcChar8 *) "letraset"}, + { (const FT_Char *) "LINO", (const FcChar8 *) "linotype"}, + { (const FT_Char *) "MACR", (const FcChar8 *) "macromedia"}, + { (const FT_Char *) "MONO", (const FcChar8 *) "monotype"}, + { (const FT_Char *) "MS", (const FcChar8 *) "microsoft"}, + { (const FT_Char *) "MT", (const FcChar8 *) "monotype"}, + { (const FT_Char *) "NEC", (const FcChar8 *) "nec"}, + { (const FT_Char *) "PARA", (const FcChar8 *) "paratype"}, + { (const FT_Char *) "QMSI", (const FcChar8 *) "qms"}, + { (const FT_Char *) "RICO", (const FcChar8 *) "ricoh"}, + { (const FT_Char *) "URW", (const FcChar8 *) "urw"}, + { (const FT_Char *) "Y&Y", (const FcChar8 *) "y&y"} }; #define NUM_VENDOR_FOUNDRIES (sizeof (FcVendorFoundries) / sizeof (FcVendorFoundries[0])) static const FcChar8 * -FcVendorFoundry(const char *vendor) +FcVendorFoundry(const FT_Char vendor[4]) { int i; @@ -263,8 +266,8 @@ FcVendorFoundry(const char *vendor) } typedef struct _FcStringConst { - const char *name; - int value; + const FcChar8 *name; + int value; } FcStringConst; static int @@ -361,7 +364,7 @@ FcGetPixelSize (FT_Face face, int i) #if HAVE_FT_BITMAP_SIZE_Y_PPEM return (double) face->available_sizes[i].y_ppem / 64.0; #else - return (double) face->available_sizes[i].height / 64.0; + return (double) face->available_sizes[i].height; #endif } @@ -670,7 +673,7 @@ FcFreeTypeQuery (const FcChar8 *file, case TT_NAME_ID_MANUFACTURER: /* If the foundry wasn't found in the OS/2 table, look here */ if(!foundry) - foundry = FcNoticeFoundry(utf8); + foundry = FcNoticeFoundry((FT_String *) utf8); break; } if (utf8) -- 2.39.5