rpms/htmldoc/devel htmldoc-1.8.27-dingbats-standard.patch, NONE, 1.1 htmldoc-1.8.27-system-fonts.patch, NONE, 1.1 htmldoc.spec, 1.12, 1.13
Adam Goode
agoode at fedoraproject.org
Wed Feb 11 18:02:55 UTC 2009
Author: agoode
Update of /cvs/extras/rpms/htmldoc/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv13258
Modified Files:
htmldoc.spec
Added Files:
htmldoc-1.8.27-dingbats-standard.patch
htmldoc-1.8.27-system-fonts.patch
Log Message:
* Tue Feb 10 2009 Adam Goode <adam at spicenitz.org> - 1.8.27-9
- Patch to specify Dingbats as a standard PS and PDF font
- Use system fonts to conform to new font guidelines (#477397)
htmldoc-1.8.27-dingbats-standard.patch:
--- NEW FILE htmldoc-1.8.27-dingbats-standard.patch ---
diff --git a/htmldoc/htmllib.cxx b/htmldoc/htmllib.cxx
index 451a26c..079d47c 100644
--- a/htmldoc/htmllib.cxx
+++ b/htmldoc/htmllib.cxx
@@ -251,7 +251,7 @@ int _htmlStandardFonts[TYPE_MAX] =
0, // Sans
0, // Serif
1, // Symbol
- 0 // Dingbats
+ 1 // Dingbats
};
htmldoc-1.8.27-system-fonts.patch:
--- NEW FILE htmldoc-1.8.27-system-fonts.patch ---
diff --git a/fonts/Makefile b/fonts/Makefile
index b5a918a..b747af4 100644
--- a/fonts/Makefile
+++ b/fonts/Makefile
@@ -43,24 +43,26 @@ FONTS = \
Helvetica-Bold \
Helvetica-BoldOblique \
Helvetica-Oblique \
- Monospace \
- Monospace-Bold \
- Monospace-BoldOblique \
- Monospace-Oblique \
- Sans \
- Sans-Bold \
- Sans-BoldOblique \
- Sans-Oblique \
- Serif-Roman \
- Serif-Bold \
- Serif-BoldOblique \
- Serif-Oblique \
Symbol \
Times-Bold \
Times-BoldItalic \
Times-Italic \
Times-Roman
+TTF_FONTS = \
+ DejaVuSansMono \
+ DejaVuSansMono-Bold \
+ DejaVuSansMono-BoldOblique \
+ DejaVuSansMono-Oblique \
+ DejaVuSans \
+ DejaVuSans-Oblique \
+ DejaVuSans-Bold \
+ DejaVuSans-BoldOblique \
+ DejaVuSerif \
+ DejaVuSerif-Bold \
+ DejaVuSerif-Italic \
+ DejaVuSerif-BoldItalic
+
#
# Make everything...
@@ -79,10 +81,12 @@ install:
$(MKDIR) $(datadir)/htmldoc/fonts;\
fi
for font in $(FONTS); do \
- $(CP) $$font.afm $(datadir)/htmldoc/fonts; \
- $(CP) $$font.pfa $(datadir)/htmldoc/fonts; \
+ $(CP) -a $$font.afm $(datadir)/htmldoc/fonts; \
+ $(CP) -a $$font.pfb $(datadir)/htmldoc/fonts; \
+ done
+ for font in $(TTF_FONTS); do \
+ $(CP) -a $$font.ttf $(datadir)/htmldoc/fonts; \
done
- $(CHMOD) ugo+r $(datadir)/htmldoc/fonts/*
#
diff --git a/htmldoc/htmllib.cxx b/htmldoc/htmllib.cxx
index 7281964..57ddd08 100644
--- a/htmldoc/htmllib.cxx
+++ b/htmldoc/htmllib.cxx
@@ -212,22 +212,22 @@ const char *_htmlFonts[TYPE_MAX][STYLE_MAX] =
"Helvetica-BoldOblique"
},
{
- "Monospace",
- "Monospace-Bold",
- "Monospace-Oblique",
- "Monospace-BoldOblique"
+ "DejaVuSansMono",
+ "DejaVuSansMono-Bold",
+ "DejaVuSansMono-Oblique",
+ "DejaVuSansMono-BoldOblique"
},
{
- "Serif-Roman",
- "Serif-Bold",
- "Serif-Oblique",
- "Serif-BoldOblique"
+ "DejaVuSerif",
+ "DejaVuSerif-Bold",
+ "DejaVuSerif-Italic",
+ "DejaVuSerif-BoldItalic"
},
{
- "Sans",
- "Sans-Bold",
- "Sans-Oblique",
- "Sans-BoldOblique"
+ "DejaVuSans",
+ "DejaVuSans-Bold",
+ "DejaVuSans-Oblique",
+ "DejaVuSans-BoldOblique"
},
{
"Symbol",
@@ -2104,7 +2104,8 @@ htmlLoadFontWidths(void)
float width; /* Width value */
char glyph[64]; /* Glyph name */
char line[1024]; /* Line from AFM file */
-
+ int used_popen; /* Did we popen? */
+ char popen_command[2048]; /* Argument to popen */
/*
* Now read all of the font widths...
@@ -2118,8 +2119,22 @@ htmlLoadFontWidths(void)
snprintf(filename, sizeof(filename), "%s/fonts/%s.afm", _htmlData,
_htmlFonts[i][j]);
+ used_popen = 0;
if ((fp = fopen(filename, "r")) == NULL)
{
+ /*
+ * Try opening as ttf
+ */
+
+ snprintf(filename, sizeof(filename), "%s/fonts/%s.ttf", _htmlData,
+ _htmlFonts[i][j]);
+ snprintf(popen_command, sizeof(popen_command),
+ "ttf2pt1 '%s' -G A - 2> /dev/null", filename);
+ used_popen = 1;
+ fp = popen(popen_command, "r");
+ }
+ if (fp == NULL)
+ {
#ifndef DEBUG
progress_error(HD_ERROR_FILE_NOT_FOUND,
"Unable to open font width file %s!", filename);
@@ -2160,7 +2175,14 @@ htmlLoadFontWidths(void)
}
}
- fclose(fp);
+ if (used_popen)
+ {
+ pclose(fp);
+ }
+ else
+ {
+ fclose(fp);
+ }
// Make sure that non-breaking space has the same width as
// a breaking space...
diff --git a/htmldoc/ps-pdf.cxx b/htmldoc/ps-pdf.cxx
index 0bc8271..9cfae68 100644
--- a/htmldoc/ps-pdf.cxx
+++ b/htmldoc/ps-pdf.cxx
@@ -471,6 +471,10 @@ static void write_trailer(FILE *out, int pages);
static int write_type1(FILE *out, typeface_t typeface,
style_t style);
static void write_utf16(FILE *out, uchar *s);
+static FILE *open_afm_file(char *name);
+static FILE *open_pfa_file(char *name);
+static FILE *tmpfile_from_popen(char *command);
+
/*
@@ -12336,10 +12340,9 @@ write_type1(FILE *out, /* I - File to write to */
/*
* Try to open the PFA file for the Type1 font...
*/
-
- snprintf(filename, sizeof(filename), "%s/fonts/%s.pfa", _htmlData,
+ snprintf(filename, sizeof(filename), "%s/fonts/%s", _htmlData,
_htmlFonts[typeface][style]);
- if ((fp = fopen(filename, "r")) == NULL)
+ if ((fp = open_pfa_file(filename)) == NULL)
{
#ifndef DEBUG
progress_error(HD_ERROR_FILE_NOT_FOUND,
@@ -12457,9 +12460,9 @@ write_type1(FILE *out, /* I - File to write to */
* Try to open the AFM file for the Type1 font...
*/
- snprintf(filename, sizeof(filename), "%s/fonts/%s.afm", _htmlData,
+ snprintf(filename, sizeof(filename), "%s/fonts/%s", _htmlData,
_htmlFonts[typeface][style]);
- if ((fp = fopen(filename, "r")) == NULL)
+ if ((fp = open_afm_file(filename)) == NULL)
{
#ifndef DEBUG
progress_error(HD_ERROR_FILE_NOT_FOUND,
@@ -12577,6 +12580,113 @@ write_type1(FILE *out, /* I - File to write to */
/*
+ * 'open_afm_file()' - Get a seekable AFM file either directly or otherwise
+ */
+
+static FILE * // O - AFM file
+open_afm_file(char *name) // I - Font filename without extension
+{
+
+ char filename[1024]; /* AFM filename */
+ char popen_command[2048]; /* Argument to popen */
+ FILE *fp; /* The file */
+
+ /*
+ * First try AFM
+ */
+ snprintf(filename, sizeof(filename), "%s.afm", name);
+ fp = fopen(filename, "r");
+
+ /*
+ * Then try TTF
+ */
+ if (fp == NULL)
+ {
+ snprintf(filename, sizeof(filename), "%s.ttf", name);
+ snprintf(popen_command, sizeof(popen_command),
+ "ttf2pt1 '%s' -G A - 2> /dev/null", filename);
+ fp = tmpfile_from_popen(popen_command);
+ }
+
+ return (fp);
+}
+
+/*
+ * 'open_pfa_file()' - Get a seekable PFA file from PFB or TTF
+ */
+
+static FILE * // O - PFA file
+open_pfa_file(char *name) // I - Font filename without extension
+{
+
+ char filename[1024]; /* PFA filename */
+ char popen_command[2048]; /* Argument to popen */
+ FILE *fp; /* The file */
+
+ /*
+ * First try PFB
+ */
+ snprintf(filename, sizeof(filename), "%s.pfb", name);
+ if (access(filename, F_OK) == 0)
+ {
+ snprintf(popen_command, sizeof(popen_command),
+ "t1ascii '%s' -l 60", filename);
+ fp = tmpfile_from_popen(popen_command);
+ }
+ else
+ {
+ /*
+ * Then try TTF
+ */
+ snprintf(filename, sizeof(filename), "%s.ttf", name);
+ snprintf(popen_command, sizeof(popen_command),
+ "ttf2pt1 '%s' -G F - 2> /dev/null | t1asm -a -l 60", filename);
+ fp = tmpfile_from_popen(popen_command);
+ }
+
+ return (fp);
+}
+
+/*
+ * 'tmpfile_from_popen()' - Generate a temporary text file from popen
+ */
+
+static FILE * // O - Output file
+tmpfile_from_popen(char *command) // I - Command for popen
+{
+
+ FILE *fp; /* file */
+ FILE *pfp; /* popen file */
+ char line[1024]; /* Line from file */
+
+ pfp = popen(command, "r");
+
+ if (pfp == NULL)
+ return (NULL);
+
+ /*
+ * Open a temporary file to hold the result
+ */
+ fp = tmpfile();
+ if (fp == NULL) {
+ pclose(pfp);
+ return (NULL);
+ }
+
+ while (fgets(line, sizeof(line), pfp) != NULL)
+ fputs(line, fp);
+
+ if (line[strlen(line) - 1] != '\n')
+ fputs("\n", fp);
+
+ rewind(fp);
+
+ pclose(pfp);
+
+ return (fp);
+}
+
+/*
* 'write_utf16()' - Write a UTF-16 string...
*/
Index: htmldoc.spec
===================================================================
RCS file: /cvs/extras/rpms/htmldoc/devel/htmldoc.spec,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- htmldoc.spec 16 Jan 2009 18:19:08 -0000 1.12
+++ htmldoc.spec 11 Feb 2009 18:02:25 -0000 1.13
@@ -1,6 +1,6 @@
Name: htmldoc
Version: 1.8.27
-Release: 8%{?dist}
+Release: 9%{?dist}
Summary: Converter from HTML into indexed HTML, PostScript, or PDF
Group: Applications/Publishing
@@ -13,10 +13,18 @@
Source: http://ftp.easysw.com/pub/%{name}/%{version}/%{name}-%{version}-source.tar.bz2
Patch0: htmldoc-1.8.27-desktop-icon.patch
+Patch1: htmldoc-1.8.27-dingbats-standard.patch
+Patch2: htmldoc-1.8.27-system-fonts.patch
BuildRequires: openssl-devel libjpeg-devel libpng-devel zlib-devel
BuildRequires: fltk-devel libXpm-devel desktop-file-utils
-#Requires:
+BuildRequires: dejavu-sans-fonts dejavu-sans-mono-fonts dejavu-serif-fonts
+BuildRequires: urw-fonts fontpackages-devel
+BuildRequires: ttf2pt1 t1utils
+
+Requires: dejavu-sans-fonts dejavu-sans-mono-fonts dejavu-serif-fonts
+Requires: urw-fonts
+Requires: ttf2pt1 t1utils
%description
@@ -37,9 +45,57 @@
# fix up hardcoded documentation path
sed -i 's/\(\$prefix\/share\/doc\/htmldoc\)/\1-%{version}/g' configure
-# fix desktop icon (upstream bug STR #169)
+# fix desktop icon (http://www.htmldoc.org/str.php?L169)
%patch0 -p1 -b .desktop-icon
+# make Dingbats standard (http://www.htmldoc.org/str.php?L198)
+%patch1 -p1 -b .dingbats
+
+# use Fedora system fonts (http://www.htmldoc.org/str.php?L196)
+%patch2 -p1 -b .system-fonts
+cd fonts
+rm -f *.pfa *.afm
+ln -s %{_fontbasedir}/default/Type1/n022003l.afm Courier.afm
+ln -s %{_fontbasedir}/default/Type1/n022004l.afm Courier-Bold.afm
+ln -s %{_fontbasedir}/default/Type1/n022024l.afm Courier-BoldOblique.afm
+ln -s %{_fontbasedir}/default/Type1/n022024l.pfb Courier-BoldOblique.pfb
+ln -s %{_fontbasedir}/default/Type1/n022004l.pfb Courier-Bold.pfb
+ln -s %{_fontbasedir}/default/Type1/n022023l.afm Courier-Oblique.afm
+ln -s %{_fontbasedir}/default/Type1/n022023l.pfb Courier-Oblique.pfb
+ln -s %{_fontbasedir}/default/Type1/n022003l.pfb Courier.pfb
+ln -s %{_fontbasedir}/default/Type1/d050000l.afm Dingbats.afm
+ln -s %{_fontbasedir}/default/Type1/d050000l.pfb Dingbats.pfb
+ln -s %{_fontbasedir}/default/Type1/n019003l.afm Helvetica.afm
+ln -s %{_fontbasedir}/default/Type1/n019004l.afm Helvetica-Bold.afm
+ln -s %{_fontbasedir}/default/Type1/n019024l.afm Helvetica-BoldOblique.afm
+ln -s %{_fontbasedir}/default/Type1/n019024l.pfb Helvetica-BoldOblique.pfb
+ln -s %{_fontbasedir}/default/Type1/n019004l.pfb Helvetica-Bold.pfb
+ln -s %{_fontbasedir}/default/Type1/n019023l.afm Helvetica-Oblique.afm
+ln -s %{_fontbasedir}/default/Type1/n019023l.pfb Helvetica-Oblique.pfb
+ln -s %{_fontbasedir}/default/Type1/n019003l.pfb Helvetica.pfb
+ln -s %{_fontbasedir}/default/Type1/s050000l.afm Symbol.afm
+ln -s %{_fontbasedir}/default/Type1/s050000l.pfb Symbol.pfb
+ln -s %{_fontbasedir}/default/Type1/n021004l.afm Times-Bold.afm
+ln -s %{_fontbasedir}/default/Type1/n021024l.afm Times-BoldItalic.afm
+ln -s %{_fontbasedir}/default/Type1/n021024l.pfb Times-BoldItalic.pfb
+ln -s %{_fontbasedir}/default/Type1/n021004l.pfb Times-Bold.pfb
+ln -s %{_fontbasedir}/default/Type1/n021023l.afm Times-Italic.afm
+ln -s %{_fontbasedir}/default/Type1/n021023l.pfb Times-Italic.pfb
+ln -s %{_fontbasedir}/default/Type1/n021003l.afm Times-Roman.afm
+ln -s %{_fontbasedir}/default/Type1/n021003l.pfb Times-Roman.pfb
+ln -s %{_fontbasedir}/dejavu/DejaVuSans-BoldOblique.ttf
+ln -s %{_fontbasedir}/dejavu/DejaVuSans-Bold.ttf
+ln -s %{_fontbasedir}/dejavu/DejaVuSansMono-BoldOblique.ttf
+ln -s %{_fontbasedir}/dejavu/DejaVuSansMono-Bold.ttf
+ln -s %{_fontbasedir}/dejavu/DejaVuSansMono-Oblique.ttf
+ln -s %{_fontbasedir}/dejavu/DejaVuSansMono.ttf
+ln -s %{_fontbasedir}/dejavu/DejaVuSans-Oblique.ttf
+ln -s %{_fontbasedir}/dejavu/DejaVuSans.ttf
+ln -s %{_fontbasedir}/dejavu/DejaVuSerif-BoldItalic.ttf
+ln -s %{_fontbasedir}/dejavu/DejaVuSerif-Bold.ttf
+ln -s %{_fontbasedir}/dejavu/DejaVuSerif-Italic.ttf
+ln -s %{_fontbasedir}/dejavu/DejaVuSerif.ttf
+
%build
%configure
@@ -65,8 +121,8 @@
cp -a desktop/htmldoc.xml ${RPM_BUILD_ROOT}%{_datadir}/mime/packages
# desktop file
-desktop-file-install --vendor fedora \
- --dir ${RPM_BUILD_ROOT}%{_datadir}/applications \
+desktop-file-install --vendor fedora \
+ --dir ${RPM_BUILD_ROOT}%{_datadir}/applications \
--remove-category=X-Red-Hat-Base \
--add-mime-type=application/vnd.htmldoc-book \
desktop/htmldoc.desktop
@@ -76,7 +132,7 @@
# scriptlet for icons
touch --no-create %{_datadir}/icons/hicolor || :
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
- %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
+ %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
fi
# scriptlet for MIME
@@ -90,7 +146,7 @@
# scriptlet for icons
touch --no-create %{_datadir}/icons/hicolor || :
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
- %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
+ %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
fi
# scriptlet for MIME
@@ -117,6 +173,10 @@
%changelog
+* Tue Feb 10 2009 Adam Goode <adam at spicenitz.org> - 1.8.27-9
+- Patch to specify Dingbats as a standard PS and PDF font
+- Use system fonts to conform to new font guidelines (#477397)
+
* Fri Jan 16 2009 Tomas Mraz <tmraz at redhat.com> - 1.8.27-8
- rebuild with new openssl
More information about the scm-commits
mailing list