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