commit ghostscript-library for openSUSE:Factory
Hello community, here is the log from the commit of package ghostscript-library for openSUSE:Factory checked in at Sun Oct 2 10:03:25 CEST 2011. -------- --- openSUSE:Factory/ghostscript-library/ghostscript-library.changes 2011-09-23 01:59:41.000000000 +0200 +++ /mounts/work_src_done/STABLE/ghostscript-library/ghostscript-library.changes 2011-09-29 15:30:54.000000000 +0200 @@ -1,0 +2,20 @@ +Thu Sep 29 13:23:40 CEST 2011 - jsmeix@suse.de + +- Switch from Freetype font scaler/renderer (used since + Ghostscript 9.0) back to the traditional Ghostscript + built-in font scaler/renderer to avoid bnc#692356 + by adding "-dDisableFAPI=true" to "gsopts" in pstoraster. + +------------------------------------------------------------------- +Thu Sep 29 11:11:15 CEST 2011 - jsmeix@suse.de + +- gs.svn_diff-c_12005.diff fixes + http://bugs.ghostscript.com/show_bug.cgi?id=691760 + which is the upstream bug for bnc#681071. + +------------------------------------------------------------------- +Tue Jul 26 09:41:26 UTC 2011 - andrea.turrini@gmail.com + +- Fixed typos in descriptions of ghostscript-library.spec + +------------------------------------------------------------------- --- openSUSE:Factory/ghostscript-library/ghostscript-mini.changes 2011-09-23 01:59:41.000000000 +0200 +++ /mounts/work_src_done/STABLE/ghostscript-library/ghostscript-mini.changes 2011-09-29 11:15:06.000000000 +0200 @@ -1,0 +2,12 @@ +Thu Sep 29 11:12:28 CEST 2011 - jsmeix@suse.de + +- gs.svn_diff-c_12005.diff fixes + http://bugs.ghostscript.com/show_bug.cgi?id=691760 + which is the upstream bug for bnc#681071. + +------------------------------------------------------------------- +Tue Jul 26 09:40:14 UTC 2011 - andrea.turrini@gmail.com + +- Fixed typos in descriptions of ghostscript-mini.spec + +------------------------------------------------------------------- calling whatdependson for head-i586 New: ---- gs.svn_diff-c_12005.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghostscript-library.spec ++++++ --- /var/tmp/diff_new_pack.p2TmW1/_old 2011-10-02 10:03:19.000000000 +0200 +++ /var/tmp/diff_new_pack.p2TmW1/_new 2011-10-02 10:03:19.000000000 +0200 @@ -124,6 +124,9 @@ Patch53: ghostscript-9.00-jbig2broken.dif Patch54: ghostscript-9.00-bnc559122.patch Patch55: gs-9.00-implicit-fortify-decl.patch +# Patch56 gs.svn_diff-c_12005.diff fixes http://bugs.ghostscript.com/show_bug.cgi?id=691760 +# which is the upstream bug for bnc#681071 +Patch56: gs.svn_diff-c_12005.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build %if 0%{?suse_version:%{suse_version}} > 1010 %define xfontdir /usr/share/fonts @@ -152,7 +155,7 @@ /usr/share/doc/packages/ghostscript-library/doc/ -For mor informations please read the files Use.htm and Devices.htm. +For more information please read the files Use.htm and Devices.htm. @@ -434,6 +437,9 @@ #Patch0: ghostscript-8.70.dif %patch0 -p0 -b .0 %patch55 -p1 +# Patch56 gs.svn_diff-c_12005.diff fixes http://bugs.ghostscript.com/show_bug.cgi?id=691760 +# which is the upstream bug for bnc#681071 +%patch56 -p0 -b .r12005 %build test ! -f /.buildenv || . /.buildenv @@ -912,6 +918,10 @@ chmod 0755 %{buildroot}%{_datadir}/ghostscript/%{gsver}/lib/pphs mv %{buildroot}%{_datadir}/ghostscript/%{gsver}/lib/pphs %{buildroot}%{_bindir}/ # +# Switch from Freetype font scaler/renderer (used since Ghostscript 9.0) +# back to the traditional Ghostscript built-in font scaler/renderer +# to avoid https://bugzilla.novell.com/show_bug.cgi?id=692356 +sed -i -e '/^gsopts="-dQUIET/a# Switch from Freetype back to the built-in font renderer to avoid bnc#692356\ngsopts="$gsopts -dDisableFAPI=true"' %{buildroot}%{cups_filter_dir}/pstoraster # %if "%name" != "ghostscript-mini" # ++++++ ghostscript-mini.spec ++++++ --- /var/tmp/diff_new_pack.p2TmW1/_old 2011-10-02 10:03:19.000000000 +0200 +++ /var/tmp/diff_new_pack.p2TmW1/_new 2011-10-02 10:03:19.000000000 +0200 @@ -124,6 +124,9 @@ Patch53: ghostscript-9.00-jbig2broken.dif Patch54: ghostscript-9.00-bnc559122.patch Patch55: gs-9.00-implicit-fortify-decl.patch +# Patch56 gs.svn_diff-c_12005.diff fixes http://bugs.ghostscript.com/show_bug.cgi?id=691760 +# which is the upstream bug for bnc#681071 +Patch56: gs.svn_diff-c_12005.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build %if 0%{?suse_version:%{suse_version}} > 1010 %define xfontdir /usr/share/fonts @@ -152,7 +155,7 @@ /usr/share/doc/packages/ghostscript-library/doc/ -For mor informations please read the files Use.htm and Devices.htm. +For more information please read the files Use.htm and Devices.htm. @@ -434,6 +437,9 @@ #Patch0: ghostscript-8.70.dif %patch0 -p0 -b .0 %patch55 -p1 +# Patch56 gs.svn_diff-c_12005.diff fixes http://bugs.ghostscript.com/show_bug.cgi?id=691760 +# which is the upstream bug for bnc#681071 +%patch56 -p0 -b .r12005 %build test ! -f /.buildenv || . /.buildenv ++++++ gs.svn_diff-c_12005.diff ++++++ Index: base/gdevp14.c =================================================================== --- base/gdevp14.c (revision 12004) +++ base/gdevp14.c (revision 12005) @@ -900,7 +900,11 @@ nos->parent_color_info_procs->num_components, 1, false, false, true, tos->planestride, tos->rowstride, num_rows, num_cols); - /* Transform the data */ + /* Transform the data. Since the pdf14 device should be + using RGB, CMYK or Gray buffers, this transform + does not need to worry about the cmap procs of + the target device. Those are handled when we do + the pdf14 put image operation */ gscms_transform_color_buffer(icc_link, &input_buff_desc, &output_buff_desc, tos->data, new_data_buf); Index: base/gxicolor.c =================================================================== --- base/gxicolor.c (revision 12004) +++ base/gxicolor.c (revision 12005) @@ -97,6 +97,8 @@ irender_proc_t gs_image_class_4_color(gx_image_enum * penum) { + bool std_cmap_procs; + if (penum->use_mask_color) { /* * Scale the mask colors to match the scaling of each sample to @@ -128,8 +130,14 @@ penum->mask_color.mask = 0; penum->mask_color.test = ~0; } + /* If the device has some unique color mapping procs due to its color space, + then we will need to use those and go through pixel by pixel instead + of blasting through buffers. This is true for example with many of + the color spaces for CUPs */ + std_cmap_procs = gx_device_uses_std_cmap_procs(penum->dev); if ( (gs_color_space_get_index(penum->pcs) == gs_color_space_index_DeviceN && - penum->pcs->cmm_icc_profile_data == NULL) || penum->use_mask_color ) { + penum->pcs->cmm_icc_profile_data == NULL) || penum->use_mask_color || + !std_cmap_procs) { return &image_render_color_DeviceN; } else { /* Set up the link now */ Index: base/gxcmap.c =================================================================== --- base/gxcmap.c (revision 12004) +++ base/gxcmap.c (revision 12005) @@ -31,6 +31,7 @@ #include "gsicc_manage.h" #include "gdevdevn.h" #include "gsicc_cache.h" +#include "gscms.h" /* Structure descriptor */ public_st_device_color(); @@ -1744,3 +1745,37 @@ } } + +bool +gx_device_uses_std_cmap_procs(gx_device * dev) +{ + const gx_cm_color_map_procs *pprocs; + + if (dev->device_icc_profile != NULL) { + pprocs = dev_proc(dev, get_color_mapping_procs)(dev); + /* Check if they are forwarding procs */ + if (fwd_uses_fwd_cmap_procs(dev)) { + pprocs = fwd_get_target_cmap_procs(dev); + } + switch(dev->device_icc_profile->data_cs) { + case gsGRAY: + if (pprocs == &DeviceGray_procs) { + return true; + } + break; + case gsRGB: + if (pprocs == &DeviceRGB_procs) { + return true; + } + break; + case gsCMYK: + if (pprocs == &DeviceCMYK_procs) { + return true; + } + break; + default: + break; + } + } + return false; +} Index: base/gxcmap.h =================================================================== --- base/gxcmap.h (revision 12004) +++ base/gxcmap.h (revision 12005) @@ -284,5 +284,11 @@ * [0,1] */ frac gx_unit_frac(float fvalue); +/* Determine if the device is using the standard color mapping procs. In + such a case, we can make use of the faster icc color conversions for + images */ +bool gx_device_uses_std_cmap_procs(gx_device * dev); +bool fwd_uses_fwd_cmap_procs(gx_device * dev); +const gx_cm_color_map_procs* fwd_get_target_cmap_procs(gx_device * dev); #endif /* gxcmap_INCLUDED */ Index: base/gxi12bit.c =================================================================== --- base/gxi12bit.c (revision 12004) +++ base/gxi12bit.c (revision 12005) @@ -113,6 +113,8 @@ irender_proc_t gs_image_class_2_fracs(gx_image_enum * penum) { + bool std_cmap_procs; + if (penum->bps > 8) { if (penum->use_mask_color) { /* Convert color mask values to fracs. */ @@ -122,9 +124,14 @@ penum->mask_color.values[i] = bits2frac(penum->mask_color.values[i], 12); } + /* If the device has some unique color mapping procs due to its color space, + then we will need to use those and go through pixel by pixel instead + of blasting through buffers. This is true for example with many of + the color spaces for CUPs */ + std_cmap_procs = gx_device_uses_std_cmap_procs(penum->dev); if ( (gs_color_space_get_index(penum->pcs) == gs_color_space_index_DeviceN && penum->pcs->cmm_icc_profile_data == NULL) || penum->use_mask_color || - penum->bps != 16 || + penum->bps != 16 || !std_cmap_procs || gs_color_space_get_index(penum->pcs) == gs_color_space_index_DevicePixel) { /* DevicePixel color space used in mask from 3x type. Basically a simple color space that just is scaled to the device bit Index: base/lib.mak =================================================================== --- base/lib.mak (revision 12004) +++ base/lib.mak (revision 12005) @@ -602,7 +602,7 @@ $(gxalpha_h) $(gxcspace_h) $(gxfarith_h) $(gxfrac_h)\ $(gxdcconv_h) $(gxdevice_h) $(gxcmap_h) $(gsnamecl_h) $(gxlum_h)\ $(gzstate_h) $(gxdither_h) $(gxcdevn_h) $(string__h)\ - $(gsicc_manage_h) $(gdevdevn_h) $(gsicc_cache_h) + $(gsicc_manage_h) $(gdevdevn_h) $(gsicc_cache_h) $(gscms_h) $(GLCC) $(GLO_)gxcmap.$(OBJ) $(C_) $(GLSRC)gxcmap.c $(GLOBJ)gxcpath.$(OBJ) : $(GLSRC)gxcpath.c $(GXERR)\ Index: base/gxiscale.c =================================================================== --- base/gxiscale.c (revision 12004) +++ base/gxiscale.c (revision 12005) @@ -104,6 +104,13 @@ != penum->dev->color_info.num_components) { use_icc = false; } + /* If the device has some unique color mapping procs due to its color space, + then we will need to use those and go through pixel by pixel instead + of blasting through buffers. This is true for example with many of + the color spaces for CUPs */ + if(!gx_device_uses_std_cmap_procs(penum->dev)) { + use_icc = false; + } /* * USE_CONSERVATIVE_INTERPOLATION_RULES is normally NOT defined since * the MITCHELL digital filter seems OK as long as we are going out to Index: base/gdevnfwd.c =================================================================== --- base/gdevnfwd.c (revision 12004) +++ base/gdevnfwd.c (revision 12005) @@ -1117,3 +1117,29 @@ { return 0; } + +bool +fwd_uses_fwd_cmap_procs(gx_device * dev) +{ + const gx_cm_color_map_procs *pprocs; + + pprocs = dev_proc(dev, get_color_mapping_procs)(dev); + if (pprocs == &FwdDevice_cm_map_procs) { + return true; + } + return false; +} + +const gx_cm_color_map_procs* +fwd_get_target_cmap_procs(gx_device * dev) +{ + const gx_cm_color_map_procs *pprocs; + gx_device_forward * const fdev = (gx_device_forward *)dev; + gx_device * const tdev = fdev->target; + + pprocs = dev_proc(tdev, get_color_mapping_procs(tdev)); + while (pprocs == &FwdDevice_cm_map_procs) { + pprocs = fwd_get_target_cmap_procs(tdev); + } + return pprocs; +} \ No newline at end of file continue with "q"... Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@hilbert.suse.de