Hello community, here is the log from the commit of package libharu for openSUSE:Factory checked in at 2013-01-21 17:38:35 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libharu (Old) and /work/SRC/openSUSE:Factory/.libharu.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libharu", Maintainer is "" Changes: -------- New Changes file: --- /dev/null 2013-01-09 19:40:42.352580873 +0100 +++ /work/SRC/openSUSE:Factory/.libharu.new/libharu.changes 2013-01-21 17:38:37.000000000 +0100 @@ -0,0 +1,17 @@ +------------------------------------------------------------------- +Thu Jan 17 21:20:12 UTC 2013 - dmitr...@opensuse.org + +- Fix devel package requirements + +------------------------------------------------------------------- +Tue Jan 15 20:30:48 UTC 2013 - dmitr...@opensuse.org + +- spec file cleanup +- Rename library package according to shared library packaging policy +- Fix build with libpng 1.5 + * libharu-2.2.1-png15.patch + +------------------------------------------------------------------- +Wed Jul 09 00:00:00 UTC 2008 - otto.das...@gmx.de + +- created spec file for opensuse BuildService New: ---- libharu-2.2.1-png15.patch libharu-2.2.1.tar.bz2 libharu-rpmlintrc libharu.changes libharu.spec ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libharu.spec ++++++ # # spec file for package libharu # # Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # Name: libharu Version: 2.2.1 %define libver 2_2_1 Release: 0 # git clone https://github.com/libharu/libharu.git # git checkout 2_2 # git archive 9c0af303bf --prefix=libharu-2.2.1/ | bzip2 > ../libharu-2.2.1.tar.bz2 Summary: Cross platform library for generating PDF files License: Zlib Group: System/Libraries Url: http://libharu.org/files/ Source0: %{name}-%{version}.tar.bz2 Source1: %{name}-rpmlintrc # PATCH-FIX-UPSTREAM libharu-2.2.1-png15.patch -- fix build with libpng 1.5.0, commit e5bf8b01f6 Patch0: libharu-2.2.1-png15.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: bzip2 BuildRequires: libpng-devel BuildRequires: libtool BuildRequires: zlib-devel BuildRoot: %{_tmppath}/%{name}-%{version}-build %description libHaru is a free, cross platform, open source library for generating PDF files. It supports the following features: - Generating PDF files with lines, text, images. - Outline, text annotation, link annotation. - Compressing document with deflate-decode. - Embedding PNG, Jpeg images. - Embedding Type1 font and TrueType font. - Creating encrypted PDF files. - Using various character sets (ISO8859-1~16, MSCP1250~8, KOI8-R). - Supporting CJK fonts and encodings. %package -n %{name}-%{libver} Summary: Cross platform library for generating PDF files Group: System/Libraries %description -n %{name}-%{libver} libHaru is a free, cross platform, open source library for generating PDF files. It supports the following features: - Generating PDF files with lines, text, images. - Outline, text annotation, link annotation. - Compressing document with deflate-decode. - Embedding PNG, Jpeg images. - Embedding Type1 font and TrueType font. - Creating encrypted PDF files. - Using various character sets (ISO8859-1~16, MSCP1250~8, KOI8-R). - Supporting CJK fonts and encodings. %package devel Summary: Development files for libharu Group: Development/Libraries/C and C++ Requires: %{name}-%{libver} = %{version} Requires: libpng-devel Requires: zlib-devel %description devel This package contains libraries and header files for developing applications that use %{name}. %prep %setup -q %patch0 -p1 # fix wrong-file-end-of-line-encoding sed -i 's/\r$//' {CHANGES,README} %build autoreconf -fi %configure --disable-static make %{?_smp_mflags} %install %makeinstall find %{buildroot}%{_libdir} -name '*.la' -type f -delete -print %post -n %{name}-%{libver} -p /sbin/ldconfig %postun -n %{name}-%{libver} -p /sbin/ldconfig %files -n %{name}-%{libver} %defattr(-,root,root) %doc CHANGES README %{_libdir}/libhpdf-%{version}.so %files devel %defattr(-,root,root) %{_includedir}/*.h %{_libdir}/libhpdf.so %changelog ++++++ libharu-2.2.1-png15.patch ++++++ commit e5bf8b01f6c3d5e3fe0e26ac5345e0da10c03934 Author: Antony Dovgal <t...@daylessday.org> Date: Mon Jan 10 01:22:14 2011 +0300 fix build with libpng 1.5.0 (reported by Tamas Tevesz) diff --git a/src/hpdf_image_png.c b/src/hpdf_image_png.c index b8f831e..6057424 100644 --- a/src/hpdf_image_png.c +++ b/src/hpdf_image_png.c @@ -109,14 +109,15 @@ ReadPngData_Interlaced (HPDF_Dict image, png_infop info_ptr) { png_uint_32 len = png_get_rowbytes(png_ptr, info_ptr); + png_uint_32 height = png_get_image_height(png_ptr, info_ptr); png_bytep* row_pointers = HPDF_GetMem (image->mmgr, - info_ptr->height * sizeof (png_bytep)); + height * sizeof (png_bytep)); if (row_pointers) { HPDF_UINT i; - HPDF_MemSet (row_pointers, 0, info_ptr->height * sizeof (png_bytep)); - for (i = 0; i < (HPDF_UINT)info_ptr->height; i++) { + HPDF_MemSet (row_pointers, 0, height * sizeof (png_bytep)); + for (i = 0; i < (HPDF_UINT)height; i++) { row_pointers[i] = HPDF_GetMem (image->mmgr, len); if (image->error->error_no != HPDF_OK) @@ -126,7 +127,7 @@ ReadPngData_Interlaced (HPDF_Dict image, if (image->error->error_no == HPDF_OK) { png_read_image(png_ptr, row_pointers); if (image->error->error_no == HPDF_OK) { /* add this line */ - for (i = 0; i < (HPDF_UINT)info_ptr->height; i++) { + for (i = 0; i < (HPDF_UINT)height; i++) { if (HPDF_Stream_Write (image->stream, row_pointers[i], len) != HPDF_OK) break; @@ -135,7 +136,7 @@ ReadPngData_Interlaced (HPDF_Dict image, } /* clean up */ - for (i = 0; i < (HPDF_UINT)info_ptr->height; i++) { + for (i = 0; i < (HPDF_UINT)height; i++) { HPDF_FreeMem (image->mmgr, row_pointers[i]); } @@ -151,12 +152,13 @@ ReadPngData (HPDF_Dict image, png_infop info_ptr) { png_uint_32 len = png_get_rowbytes(png_ptr, info_ptr); + png_uint_32 height = png_get_image_height(png_ptr, info_ptr); png_bytep buf_ptr = HPDF_GetMem (image->mmgr, len); if (buf_ptr) { HPDF_UINT i; - for (i = 0; i < (HPDF_UINT)info_ptr->height; i++) { + for (i = 0; i < (HPDF_UINT)height; i++) { png_read_rows(png_ptr, (png_byte**)&buf_ptr, NULL, 1); if (image->error->error_no != HPDF_OK) break; @@ -182,14 +184,16 @@ ReadTransparentPaletteData (HPDF_Dict image, HPDF_STATUS ret = HPDF_OK; HPDF_UINT i, j; png_bytep *row_ptr; + png_uint_32 height = png_get_image_height(png_ptr, info_ptr); + png_uint_32 width = png_get_image_width(png_ptr, info_ptr); - row_ptr = HPDF_GetMem (image->mmgr, info_ptr->height * sizeof(png_bytep)); + row_ptr = HPDF_GetMem (image->mmgr, height * sizeof(png_bytep)); if (!row_ptr) { return HPDF_FAILD_TO_ALLOC_MEM; } else { png_uint_32 len = png_get_rowbytes(png_ptr, info_ptr); - for (i = 0; i < (HPDF_UINT)info_ptr->height; i++) { + for (i = 0; i < (HPDF_UINT)height; i++) { row_ptr[i] = HPDF_GetMem(image->mmgr, len); if (!row_ptr[i]) { for (; i >= 0; i--) { @@ -207,19 +211,19 @@ ReadTransparentPaletteData (HPDF_Dict image, goto Error; } - for (j = 0; j < info_ptr->height; j++) { - for (i = 0; i < info_ptr->width; i++) { - smask_data[info_ptr->width * j + i] = (row_ptr[j][i] < num_trans) ? trans[row_ptr[j][i]] : 0xFF; + for (j = 0; j < height; j++) { + for (i = 0; i < width; i++) { + smask_data[width * j + i] = (row_ptr[j][i] < num_trans) ? trans[row_ptr[j][i]] : 0xFF; } - if (HPDF_Stream_Write (image->stream, row_ptr[j], info_ptr->width) != HPDF_OK) { + if (HPDF_Stream_Write (image->stream, row_ptr[j], width) != HPDF_OK) { ret = HPDF_FILE_IO_ERROR; goto Error; } } Error: - for (i = 0; i < (HPDF_UINT)info_ptr->height; i++) { + for (i = 0; i < (HPDF_UINT)height; i++) { HPDF_FreeMem (image->mmgr, row_ptr[i]); } @@ -238,6 +242,8 @@ ReadTransparentPngData (HPDF_Dict image, HPDF_UINT i, j; png_bytep *row_ptr, row; png_byte color_type; + png_uint_32 height = png_get_image_height(png_ptr, info_ptr); + png_uint_32 width = png_get_image_width(png_ptr, info_ptr); color_type = png_get_color_type(png_ptr, info_ptr); @@ -245,13 +251,13 @@ ReadTransparentPngData (HPDF_Dict image, return HPDF_INVALID_PNG_IMAGE; } - row_ptr = HPDF_GetMem (image->mmgr, info_ptr->height * sizeof(png_bytep)); + row_ptr = HPDF_GetMem (image->mmgr, height * sizeof(png_bytep)); if (!row_ptr) { return HPDF_FAILD_TO_ALLOC_MEM; } else { png_uint_32 len = png_get_rowbytes(png_ptr, info_ptr); - for (i = 0; i < (HPDF_UINT)info_ptr->height; i++) { + for (i = 0; i < (HPDF_UINT)height; i++) { row_ptr[i] = HPDF_GetMem(image->mmgr, len); if (!row_ptr[i]) { for (; i >= 0; i--) { @@ -271,12 +277,12 @@ ReadTransparentPngData (HPDF_Dict image, switch (color_type) { case PNG_COLOR_TYPE_RGB_ALPHA: - row_len = 3 * info_ptr->width * sizeof(png_byte); - for (j = 0; j < info_ptr->height; j++) { - for (i = 0; i < info_ptr->width; i++) { + row_len = 3 * width * sizeof(png_byte); + for (j = 0; j < height; j++) { + for (i = 0; i < width; i++) { row = row_ptr[j]; memmove(row + (3 * i), row + (4*i), 3); - smask_data[info_ptr->width * j + i] = row[4 * i + 3]; + smask_data[width * j + i] = row[4 * i + 3]; } if (HPDF_Stream_Write (image->stream, row, row_len) != HPDF_OK) { @@ -286,12 +292,12 @@ ReadTransparentPngData (HPDF_Dict image, } break; case PNG_COLOR_TYPE_GRAY_ALPHA: - row_len = info_ptr->width * sizeof(png_byte); - for (j = 0; j < info_ptr->height; j++) { - for (i = 0; i < info_ptr->width; i++) { + row_len = width * sizeof(png_byte); + for (j = 0; j < height; j++) { + for (i = 0; i < width; i++) { row = row_ptr[j]; row[i] = row[2 * i]; - smask_data[info_ptr->width * j + i] = row[2 * i + 1]; + smask_data[width * j + i] = row[2 * i + 1]; } if (HPDF_Stream_Write (image->stream, row, row_len) != HPDF_OK) { @@ -306,7 +312,7 @@ ReadTransparentPngData (HPDF_Dict image, } Error: - for (i = 0; i < (HPDF_UINT)info_ptr->height; i++) { + for (i = 0; i < (HPDF_UINT)height; i++) { HPDF_FreeMem (image->mmgr, row_ptr[i]); } @@ -415,7 +421,8 @@ LoadPngData (HPDF_Dict image, { HPDF_STATUS ret = HPDF_OK; - + png_uint_32 width, height; + int bit_depth, color_type; png_structp png_ptr = NULL; png_infop info_ptr = NULL; @@ -447,8 +454,10 @@ LoadPngData (HPDF_Dict image, goto Exit; } + png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, &color_type, NULL, NULL, NULL); + /* 16bit images are not supported. */ - if (info_ptr->bit_depth == 16) { + if (bit_depth == 16) { png_set_strip_16(png_ptr); } @@ -458,7 +467,7 @@ LoadPngData (HPDF_Dict image, } /* check palette-based images for transparent areas and load them immediately if found */ - if (xref && PNG_COLOR_TYPE_PALETTE & info_ptr->color_type) { + if (xref && PNG_COLOR_TYPE_PALETTE & color_type) { png_bytep trans; int num_trans; HPDF_Dict smask; @@ -478,10 +487,10 @@ LoadPngData (HPDF_Dict image, smask->header.obj_class |= HPDF_OSUBCLASS_XOBJECT; ret = HPDF_Dict_AddName (smask, "Type", "XObject"); ret += HPDF_Dict_AddName (smask, "Subtype", "Image"); - ret += HPDF_Dict_AddNumber (smask, "Width", (HPDF_UINT)info_ptr->width); - ret += HPDF_Dict_AddNumber (smask, "Height", (HPDF_UINT)info_ptr->height); + ret += HPDF_Dict_AddNumber (smask, "Width", (HPDF_UINT)width); + ret += HPDF_Dict_AddNumber (smask, "Height", (HPDF_UINT)height); ret += HPDF_Dict_AddName (smask, "ColorSpace", "DeviceGray"); - ret += HPDF_Dict_AddNumber (smask, "BitsPerComponent", (HPDF_UINT)info_ptr->bit_depth); + ret += HPDF_Dict_AddNumber (smask, "BitsPerComponent", (HPDF_UINT)bit_depth); if (ret != HPDF_OK) { HPDF_Dict_Free(smask); @@ -489,7 +498,7 @@ LoadPngData (HPDF_Dict image, goto Exit; } - smask_data = HPDF_GetMem(image->mmgr, info_ptr->width * info_ptr->height); + smask_data = HPDF_GetMem(image->mmgr, width * height); if (!smask_data) { HPDF_Dict_Free(smask); ret = HPDF_FAILD_TO_ALLOC_MEM; @@ -503,7 +512,7 @@ LoadPngData (HPDF_Dict image, goto Exit; } - if (HPDF_Stream_Write(smask->stream, smask_data, info_ptr->width * info_ptr->height) != HPDF_OK) { + if (HPDF_Stream_Write(smask->stream, smask_data, width * height) != HPDF_OK) { HPDF_FreeMem(image->mmgr, smask_data); HPDF_Dict_Free(smask); ret = HPDF_FILE_IO_ERROR; @@ -513,9 +522,9 @@ LoadPngData (HPDF_Dict image, ret += CreatePallet(image, png_ptr, info_ptr); - ret += HPDF_Dict_AddNumber (image, "Width", (HPDF_UINT)info_ptr->width); - ret += HPDF_Dict_AddNumber (image, "Height", (HPDF_UINT)info_ptr->height); - ret += HPDF_Dict_AddNumber (image, "BitsPerComponent", (HPDF_UINT)info_ptr->bit_depth); + ret += HPDF_Dict_AddNumber (image, "Width", (HPDF_UINT)width); + ret += HPDF_Dict_AddNumber (image, "Height", (HPDF_UINT)height); + ret += HPDF_Dict_AddNumber (image, "BitsPerComponent", (HPDF_UINT)bit_depth); ret += HPDF_Dict_Add (image, "SMask", smask); png_destroy_read_struct(&png_ptr, &info_ptr, NULL); @@ -526,7 +535,7 @@ no_transparent_color_in_palette: /* read images with alpha channel right away we have to do this because image transparent mask must be added to the Xref */ - if (xref && PNG_COLOR_MASK_ALPHA & info_ptr->color_type) { + if (xref && PNG_COLOR_MASK_ALPHA & color_type) { HPDF_Dict smask; png_bytep smask_data; @@ -539,10 +548,10 @@ no_transparent_color_in_palette: smask->header.obj_class |= HPDF_OSUBCLASS_XOBJECT; ret = HPDF_Dict_AddName (smask, "Type", "XObject"); ret += HPDF_Dict_AddName (smask, "Subtype", "Image"); - ret += HPDF_Dict_AddNumber (smask, "Width", (HPDF_UINT)info_ptr->width); - ret += HPDF_Dict_AddNumber (smask, "Height", (HPDF_UINT)info_ptr->height); + ret += HPDF_Dict_AddNumber (smask, "Width", (HPDF_UINT)width); + ret += HPDF_Dict_AddNumber (smask, "Height", (HPDF_UINT)height); ret += HPDF_Dict_AddName (smask, "ColorSpace", "DeviceGray"); - ret += HPDF_Dict_AddNumber (smask, "BitsPerComponent", (HPDF_UINT)info_ptr->bit_depth); + ret += HPDF_Dict_AddNumber (smask, "BitsPerComponent", (HPDF_UINT)bit_depth); if (ret != HPDF_OK) { HPDF_Dict_Free(smask); @@ -550,7 +559,7 @@ no_transparent_color_in_palette: goto Exit; } - smask_data = HPDF_GetMem(image->mmgr, info_ptr->width * info_ptr->height); + smask_data = HPDF_GetMem(image->mmgr, width * height); if (!smask_data) { HPDF_Dict_Free(smask); ret = HPDF_FAILD_TO_ALLOC_MEM; @@ -564,7 +573,7 @@ no_transparent_color_in_palette: goto Exit; } - if (HPDF_Stream_Write(smask->stream, smask_data, info_ptr->width * info_ptr->height) != HPDF_OK) { + if (HPDF_Stream_Write(smask->stream, smask_data, width * height) != HPDF_OK) { HPDF_FreeMem(image->mmgr, smask_data); HPDF_Dict_Free(smask); ret = HPDF_FILE_IO_ERROR; @@ -572,14 +581,14 @@ no_transparent_color_in_palette: } HPDF_FreeMem(image->mmgr, smask_data); - if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) { + if (color_type == PNG_COLOR_TYPE_GRAY_ALPHA) { ret += HPDF_Dict_AddName (image, "ColorSpace", "DeviceGray"); } else { ret += HPDF_Dict_AddName (image, "ColorSpace", "DeviceRGB"); } - ret += HPDF_Dict_AddNumber (image, "Width", (HPDF_UINT)info_ptr->width); - ret += HPDF_Dict_AddNumber (image, "Height", (HPDF_UINT)info_ptr->height); - ret += HPDF_Dict_AddNumber (image, "BitsPerComponent", (HPDF_UINT)info_ptr->bit_depth); + ret += HPDF_Dict_AddNumber (image, "Width", (HPDF_UINT)width); + ret += HPDF_Dict_AddNumber (image, "Height", (HPDF_UINT)height); + ret += HPDF_Dict_AddNumber (image, "BitsPerComponent", (HPDF_UINT)bit_depth); ret += HPDF_Dict_Add (image, "SMask", smask); png_destroy_read_struct(&png_ptr, &info_ptr, NULL); @@ -589,9 +598,9 @@ no_transparent_color_in_palette: /* if the image has color palette, copy the pallet of the image to * create color map. */ - if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) + if (color_type == PNG_COLOR_TYPE_PALETTE) ret = CreatePallet(image, png_ptr, info_ptr); - else if (info_ptr->color_type == PNG_COLOR_TYPE_GRAY) + else if (color_type == PNG_COLOR_TYPE_GRAY) ret = HPDF_Dict_AddName (image, "ColorSpace", "DeviceGray"); else ret = HPDF_Dict_AddName (image, "ColorSpace", "DeviceRGB"); @@ -617,16 +626,16 @@ no_transparent_color_in_palette: } /* setting the info of the image. */ - if (HPDF_Dict_AddNumber (image, "Width", (HPDF_UINT)info_ptr->width) + if (HPDF_Dict_AddNumber (image, "Width", (HPDF_UINT)width) != HPDF_OK) goto Exit; - if (HPDF_Dict_AddNumber (image, "Height", (HPDF_UINT)info_ptr->height) + if (HPDF_Dict_AddNumber (image, "Height", (HPDF_UINT)height) != HPDF_OK) goto Exit; if (HPDF_Dict_AddNumber (image, "BitsPerComponent", - (HPDF_UINT)info_ptr->bit_depth) != HPDF_OK) + (HPDF_UINT)bit_depth) != HPDF_OK) goto Exit; /* clean up */ ++++++ libharu-rpmlintrc ++++++ addFilter("shlib-unversioned-lib") addFilter("shlib-policy-missing-lib") -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org