Skip to contentSkip to conversation

package/giflib: New package

PATCH New Bernd Kuhls 4 participants 23 messages Jan 26, 2015 – Apr 8, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/5 package/giflib: New package

This package will replace libungif.

Needed for Kodi 15.0, TexturePacker depends on giflib >= 5.0.5
https://github.com/xbmc/xbmc/blob/master/tools/depends/native/TexturePacker/src/configure.ac#L29

---
 package/Config.in          |    1 +
 package/giflib/Config.in   |    8 ++++++++
 package/giflib/giflib.hash |    2 ++
 package/giflib/giflib.mk   |   28 ++++++++++++++++++++++++++++
 4 files changed, 39 insertions(+)
 create mode 100644 package/giflib/Config.in
 create mode 100644 package/giflib/giflib.hash
 create mode 100644 package/giflib/giflib.mk
package/Config.in +1 -0
index fbb1341..9bc8cdb 100644
@@ -664,6 +664,7 @@ menu "Graphics"
 	source "package/gd/Config.in"
 	source "package/gdk-pixbuf/Config.in"
 	source "package/giblib/Config.in"
+	source "package/giflib/Config.in"
 	source "package/gtk2-engines/Config.in"
 	source "package/gtk2-themes/Config.in"
 	source "package/harfbuzz/Config.in"
package/giflib/Config.in new file +8 -0
new file mode 100644
index 0000000..70368dc
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_GIFLIB
+	bool "giflib"
+	help
+	  giflib is a library for reading and writing gif images. It is API and
+	  ABI compatible with libungif which was in wide use while the LZW
+	  compression algorithm was patented.
+
+	  http://sourceforge.net/projects/giflib
package/giflib/giflib.hash new file +2 -0
new file mode 100644
index 0000000..46ba7ca
@@ -0,0 +1,2 @@
+# From http://sourceforge.net/projects/giflib/files
+sha1	e5d716e0ccef671103c38c25693927e413fac639	giflib-5.1.1.tar.bz2
package/giflib/giflib.mk new file +28 -0
new file mode 100644
index 0000000..96a1dfd
@@ -0,0 +1,28 @@
+################################################################################
+#
+# giflib
+#
+################################################################################
+
+GIFLIB_VERSION = 5.1.1
+GIFLIB_SOURCE = giflib-$(GIFLIB_VERSION).tar.bz2
+GIFLIB_SITE = http://downloads.sourceforge.net/project/giflib
+GIFLIB_INSTALL_STAGING = YES
+GIFLIB_LICENSE = MIT
+GIFLIB_LICENSE_FILES = COPYING
+
+GIFLIB_BINS = \
+	gif2epsn gif2ps gif2rgb gif2x11 gifasm gifbg gifbuild gifburst gifclip \
+	gifclrmp gifcolor gifcomb gifcompose gifecho giffiltr giffix gifflip  \
+	gifhisto gifinfo gifinter gifinto gifovly gifpos gifrotat     \
+	gifrsize gifspnge giftext giftool gifwedge icon2gif raw2gif rgb2gif \
+	text2gif
+
+define GIFLIB_BINS_CLEANUP
+	rm -f $(addprefix $(TARGET_DIR)/usr/bin/,$(GIFLIB_BINS))
+endef
+
+GIFLIB_POST_INSTALL_TARGET_HOOKS += GIFLIB_BINS_CLEANUP
+
+$(eval $(autotools-package))
+$(eval $(host-autotools-package))
Signature · 1 line
1.7.10.4
#1 lore raw

PATCH 2/5 package/fbv: Switch to giflib

---
 package/fbv/Config.in             |    4 +--
 package/fbv/fbv-1.0b-giflib.patch |   69 +++++++++++++++++++++++++++++++++++++
 package/fbv/fbv.mk                |   10 +++++-
 3 files changed, 80 insertions(+), 3 deletions(-)
 create mode 100644 package/fbv/fbv-1.0b-giflib.patch
package/fbv/Config.in +2 -2
index b8a9fe4..3160a85 100644
@@ -26,8 +26,8 @@ config BR2_PACKAGE_FBV_JPEG
 config BR2_PACKAGE_FBV_GIF
 	bool "GIF support"
 	default y
-	select BR2_PACKAGE_LIBUNGIF
+	select BR2_PACKAGE_GIFLIB
 	help
-	  Enable support for GIF using libungif.
+	  Enable support for GIF using giflib.
 
 endif # BR2_PACKAGE_FBV
package/fbv/fbv-1.0b-giflib.patch new file +69 -0

69 lines not on this page · raw message

package/fbv/fbv.mk +9 -1
index fe24a6f..81881ff 100644
@@ -30,7 +30,15 @@ else
 FBV_CONFIGURE_OPTS += --without-libjpeg
 endif
 ifeq ($(BR2_PACKAGE_FBV_GIF),y)
-FBV_DEPENDENCIES += libungif
+FBV_DEPENDENCIES += giflib
+define FBV_CONFIGURE_LIBUNGIF_IS_NOW_GIFLIB
+	$(SED) 's|-lungif|-lgif|' $(@D)/configure
+endef
+FBV_PRE_CONFIGURE_HOOKS += FBV_CONFIGURE_LIBUNGIF_IS_NOW_GIFLIB
+define FBV_MAKE_LIBUNGIF_IS_NOW_GIFLIB
+	$(SED) 's|-lungif|-lgif|' $(@D)/Make.conf
+endef
+FBV_POST_CONFIGURE_HOOKS += FBV_MAKE_LIBUNGIF_IS_NOW_GIFLIB
 else
 FBV_CONFIGURE_OPTS += --without-libungif
 endif
Signature · 1 line
1.7.10.4
#2 lore raw

PATCH 2/5 package/fbv: Switch to giflib

Quoted 17 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Bernd" == Bernd Kuhls <[email protected]> writes:

---
 package/fbv/Config.in             |    4 +--
 package/fbv/fbv-1.0b-giflib.patch |   69 +++++++++++++++++++++++++++++++++++++
 package/fbv/fbv.mk                |   10 +++++-
 3 files changed, 80 insertions(+), 3 deletions(-)
 create mode 100644 package/fbv/fbv-1.0b-giflib.patch
package/fbv/fbv.mk +0 -0
index fe24a6f..81881ff 100644
@@ -30,7 +30,15 @@ else
 FBV_CONFIGURE_OPTS += --without-libjpeg
 endif

package/fbv/fbv.mk else · line 40

Quoted 10 lines
package/fbv/fbv.mk +8 -1
 ifeq ($(BR2_PACKAGE_FBV_GIF),y)
-FBV_DEPENDENCIES += libungif
+FBV_DEPENDENCIES += giflib
+define FBV_CONFIGURE_LIBUNGIF_IS_NOW_GIFLIB
+	$(SED) 's|-lungif|-lgif|' $(@D)/configure
+endef
+FBV_PRE_CONFIGURE_HOOKS += FBV_CONFIGURE_LIBUNGIF_IS_NOW_GIFLIB
+define FBV_MAKE_LIBUNGIF_IS_NOW_GIFLIB
+	$(SED) 's|-lungif|-lgif|' $(@D)/Make.conf
+endef

Why is it needed to patch Make.conf if you already patch configure (which generates it)?

I would prefer to see the configure changes in the giflib patch instead. How do the archlinux guys handle it?

Signature · 1 line
Bye, Peter Korsgaard
#3 lore raw

PATCH 2/5 package/fbv: Switch to giflib

Hi,

Peter Korsgaard <[email protected]> wrote in
news:87a914z20n.fsf at dell.be.48ers.dk:

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Bernd" == Bernd Kuhls <bernd.kuhls-

Quoted 11 lines · [email protected]> writes:

package/fbv/fbv.mk else · line 40

Quoted 8 lines
package/fbv/fbv.mk +7 -0
+define FBV_CONFIGURE_LIBUNGIF_IS_NOW_GIFLIB
+     $(SED) 's|-lungif|-lgif|' $(@D)/configure
+endef
+FBV_PRE_CONFIGURE_HOOKS += FBV_CONFIGURE_LIBUNGIF_IS_NOW_GIFLIB
+define FBV_MAKE_LIBUNGIF_IS_NOW_GIFLIB
+     $(SED) 's|-lungif|-lgif|' $(@D)/Make.conf
+endef

Why is it needed to patch Make.conf if you already patch configure (which generates it)?

right, patching Make.conf is not necessary, I will remove it in the next patch version.

Quoted 2 lines

I would prefer to see the configure changes in the giflib patch instead. How do the archlinux guys handle it?

They are using sed to change Make.conf
https://projects.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?
h=packages/fbv

which I did in the first place, but then configure printed this

checking for libungif presence... no

although compilation with libgif worked, so I patched the configure scripts afterwards to fix the wrong configure log but forgot to remove the Make.conf patch ;)

The next version will contain a patch for configure.

Regards, Bernd

#4 lore raw

PATCH 3/5 package/imlib2: Switch to giflib

In reply to Bernd Kuhls
---
 package/imlib2/0001-giflib51.patch |   71 ++++++++++++++++++++++++++++++++++++
 package/imlib2/Config.in           |    2 +-
 package/imlib2/imlib2.mk           |    2 +-
 3 files changed, 73 insertions(+), 2 deletions(-)
 create mode 100644 package/imlib2/0001-giflib51.patch
package/imlib2/0001-giflib51.patch new file +71 -0
new file mode 100644
index 0000000..2b46329
@@ -0,0 +1,71 @@
+Adjust source code to work with giflib 5.1x
+
+Downloaded from
+https://projects.archlinux.org/svntogit/packages.git/plain/trunk/imlib2-giflib51.patch?h=packages/imlib2
+
+Signed-off-by: Bernd Kuhls <[email protected]>
+
+diff -ruN imlib2-1.4.6.orig/src/modules/loaders/loader_gif.c imlib2-1.4.6/src/modules/loaders/loader_gif.c
+--- imlib2-1.4.6.orig/src/modules/loaders/loader_gif.c	2013-12-21 10:16:10.000000000 +0000
++++ imlib2-1.4.6/src/modules/loaders/loader_gif.c	2014-05-27 09:52:35.857291512 +0000
+@@ -36,7 +36,7 @@
+ #endif
+    if (fd < 0)
+       return 0;
+-   gif = DGifOpenFileHandle(fd);
++   gif = DGifOpenFileHandle(fd, NULL);
+    if (!gif)
+      {
+         close(fd);
+@@ -60,13 +60,13 @@
+              h = gif->Image.Height;
+              if (!IMAGE_DIMENSIONS_OK(w, h))
+                {
+-                  DGifCloseFile(gif);
++                  DGifCloseFile(gif, NULL);
+                   return 0;
+                }
+              rows = malloc(h * sizeof(GifRowType *));
+              if (!rows)
+                {
+-                  DGifCloseFile(gif);
++                  DGifCloseFile(gif, NULL);
+                   return 0;
+                }
+              for (i = 0; i < h; i++)
+@@ -78,7 +78,7 @@
+                   rows[i] = malloc(w * sizeof(GifPixelType));
+                   if (!rows[i])
+                     {
+-                       DGifCloseFile(gif);
++                       DGifCloseFile(gif, NULL);
+                        for (i = 0; i < h; i++)
+                          {
+                             if (rows[i])
+@@ -150,7 +150,7 @@
+         im->data = (DATA32 *) malloc(sizeof(DATA32) * w * h);
+         if (!im->data)
+           {
+-             DGifCloseFile(gif);
++             DGifCloseFile(gif, NULL);
+              free(rows);
+              return 0;
+           }
+@@ -181,7 +181,7 @@
+                        last_per = (int)per;
+                        if (!(progress(im, (int)per, 0, last_y, w, i)))
+                          {
+-                            DGifCloseFile(gif);
++                            DGifCloseFile(gif, NULL);
+                             for (i = 0; i < h; i++)
+                               {
+                                  free(rows[i]);
+@@ -198,7 +198,7 @@
+      {
+         progress(im, 100, 0, last_y, w, h);
+      }
+-   DGifCloseFile(gif);
++   DGifCloseFile(gif, NULL);
+    for (i = 0; i < h; i++)
+      {
+         free(rows[i]);
package/imlib2/Config.in +1 -1
index a323a8d..7aac074 100644
@@ -23,7 +23,7 @@ config BR2_PACKAGE_IMLIB2_PNG
 
 config BR2_PACKAGE_IMLIB2_GIF
 	bool "GIF support"
-	select BR2_PACKAGE_LIBUNGIF
+	select BR2_PACKAGE_GIFLIB
 
 config BR2_PACKAGE_IMLIB2_TIFF
 	bool "TIFF support"
package/imlib2/imlib2.mk +1 -1
index 62f3989..d8feeb6 100644
@@ -38,7 +38,7 @@ endif
 
 ifeq ($(BR2_PACKAGE_IMLIB2_GIF),y)
 	IMLIB2_CONF_OPTS += --with-gif
-	IMLIB2_DEPENDENCIES += libungif
+	IMLIB2_DEPENDENCIES += giflib
 else
 	IMLIB2_CONF_OPTS += --without-gif
 endif
Signature · 1 line
1.7.10.4
#5 lore raw

PATCH 3/5 package/imlib2: Switch to giflib

Quoted 9 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Bernd" == Bernd Kuhls <[email protected]> writes:

---
 package/imlib2/0001-giflib51.patch |   71 ++++++++++++++++++++++++++++++++++++
 package/imlib2/Config.in           |    2 +-
 package/imlib2/imlib2.mk           |    2 +-
 3 files changed, 73 insertions(+), 2 deletions(-)
 create mode 100644 package/imlib2/0001-giflib51.patch

How about instead bumping our imlib2 version? I see there is some giflib support in upstream git:

https://git.enlightenment.org/legacy/imlib2.git/log/

Signature · 1 line
Bye, Peter Korsgaard
#6 lore raw

PATCH 3/5 package/imlib2: Switch to giflib

[posted and mailed]

Peter Korsgaard <[email protected]> wrote in
news:8761bsz1n6.fsf at dell.be.48ers.dk:

Quoted 4 lines

How about instead bumping our imlib2 version? I see there is some giflib support in upstream git:

https://git.enlightenment.org/legacy/imlib2.git/log/

Hi,

bumping to 1.4.6 and backporting some giflib related patches or switching directly to the upstream git HEAD is an option, but I am not in a position to runtime test the packages depending on imlib2, therefore I chose a way to support giflib with a minimum of code changes. I can provide v2 of my patch with one of my suggestions but fixing build errors later on will be a difficult task for me timewise. What do you suggest?

Since imlib2 1.4.6 was released over a year ago I suppose that there is not a big audience for this package in the buildroot community, the only reason I touched imlib2 is my desire to get rid of libungif in favour of giflib because Kodi 15.0 will depend on it ;)

Regards, Bernd

#7 lore raw

PATCH 3/5 package/imlib2: Switch to giflib

Quoted 19 lines · Bernd Kuhls

[posted and mailed]

Peter Korsgaard <[email protected]> wrote in
news:8761bsz1n6.fsf at dell.be.48ers.dk:

Quoted 4 lines

How about instead bumping our imlib2 version? I see there is some giflib support in upstream git:

https://git.enlightenment.org/legacy/imlib2.git/log/

Hi,

bumping to 1.4.6 and backporting some giflib related patches or switching directly to the upstream git HEAD is an option, but I am not in a position to runtime test the packages depending on imlib2, therefore I chose a way to support giflib with a minimum of code changes. I can provide v2 of my patch with one of my suggestions but fixing build errors later on will be a difficult task for me timewise. What do you suggest?

Quoted 4 lines

Since imlib2 1.4.6 was released over a year ago I suppose that there is not a big audience for this package in the buildroot community, the only reason I touched imlib2 is my desire to get rid of libungif in favour of giflib because Kodi 15.0 will depend on it ;)

I've made a patch for bumping it to 1.4.6 and back porting few upstream patches to support giflib:
http://patchwork.ozlabs.org/patch/447618/
http://patchwork.ozlabs.org/patch/447619/

Sorry but I've found your patch only right before sending mine.

BR

Signature · 1 line
Fabio Porcedda
#8 lore raw

PATCH 4/5 package/efl/libevas: Switch to giflib

In reply to Bernd Kuhls
---
 package/efl/libevas/0001-giflib.patch |   91 +++++++++++++++++++++++++++++++++
 package/efl/libevas/Config.in         |    2 +-
 package/efl/libevas/libevas.mk        |    2 +-
 3 files changed, 93 insertions(+), 2 deletions(-)
 create mode 100644 package/efl/libevas/0001-giflib.patch
package/efl/libevas/0001-giflib.patch new file +91 -0
new file mode 100644
index 0000000..1176721
@@ -0,0 +1,91 @@
+Adjust source code to work with giflib 5.1x
+
+Downloaded from
+http://commit.cvs.pld.groups.com.ru/332837-packagesevas_fix_building_with_giflib_51_rel_6
+
+Signed-off-by: Bernd Kuhls <[email protected]>
+
+diff -uNr evas-1.7.10.org/src/modules/loaders/gif/evas_image_load_gif.c evas-1.7.10/src/modules/loaders/gif/evas_image_load_gif.c
+--- evas-1.7.10.org/src/modules/loaders/gif/evas_image_load_gif.c	2013-08-01 17:41:35.000000000 +0200
++++ evas-1.7.10/src/modules/loaders/gif/evas_image_load_gif.c	2015-01-26 19:44:20.132955194 +0100
+@@ -338,7 +338,7 @@
+ 
+    if (!cmap)
+      {
+-        DGifCloseFile(gif);
++        DGifCloseFile(gif, NULL);
+         for (i = 0; i < scale_h; i++)
+           {
+              free(rows[i]);
+@@ -725,7 +725,7 @@
+    if ((w < 1) || (h < 1) || (w > IMG_MAX_SIZE) || (h > IMG_MAX_SIZE) ||
+        IMG_TOO_BIG(w, h))
+      {
+-        DGifCloseFile(gif);
++        DGifCloseFile(gif, NULL);
+         if (IMG_TOO_BIG(w, h))
+           *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
+         else
+@@ -740,7 +740,7 @@
+         if (DGifGetRecordType(gif, &rec) == GIF_ERROR)
+           {
+              /* PrintGifError(); */
+-             DGifCloseFile(gif);
++             DGifCloseFile(gif, NULL);
+              *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
+              return EINA_FALSE;
+           }
+@@ -754,7 +754,7 @@
+              if (DGifGetImageDesc(gif) == GIF_ERROR)
+                {
+                   /* PrintGifError(); */
+-                  DGifCloseFile(gif);
++                  DGifCloseFile(gif, NULL);
+                   *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
+                   return EINA_FALSE;
+                }
+@@ -762,7 +762,7 @@
+              if (DGifGetCode(gif, &img_code, &img) == GIF_ERROR)
+                {
+                   /* PrintGifError(); */
+-                  DGifCloseFile(gif);
++                  DGifCloseFile(gif, NULL);
+                   *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
+                   return EINA_FALSE;
+                }
+@@ -818,7 +818,7 @@
+         ie->frames = NULL;
+      }
+ 
+-   DGifCloseFile(gif);
++   DGifCloseFile(gif, NULL);
+    *error = EVAS_LOAD_ERROR_NONE;
+    return EINA_TRUE;
+ }
+@@ -885,7 +885,7 @@
+      }
+ 
+    ie->frames = eina_list_append(ie->frames, frame);
+-   DGifCloseFile(gif);
++   DGifCloseFile(gif, NULL);
+    return EINA_TRUE;
+ }
+ 
+@@ -959,7 +959,7 @@
+                   *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
+                   return EINA_FALSE;
+                }
+-             DGifCloseFile(gif);
++             DGifCloseFile(gif, NULL);
+              *error = EVAS_LOAD_ERROR_NONE;
+              return EINA_TRUE;
+           }
+@@ -1080,7 +1080,7 @@
+          }
+      } while (rec != TERMINATE_RECORD_TYPE);
+ 
+-   DGifCloseFile(gif);
++   DGifCloseFile(gif, NULL);
+    return duration;
+ }
+ 
package/efl/libevas/Config.in +1 -1
index febc115..fa36e80 100644
@@ -177,7 +177,7 @@ config BR2_PACKAGE_LIBEVAS_JPEG
 
 config BR2_PACKAGE_LIBEVAS_GIF
 	bool "libevas gif loader"
-	select BR2_PACKAGE_LIBUNGIF
+	select BR2_PACKAGE_GIFLIB
 	help
 	  This enables the loader code that loads gif files using
 	  libungif.
package/efl/libevas/libevas.mk +1 -1
index b5a2d72..9f2e801 100644
@@ -167,7 +167,7 @@ endif
 
 ifeq ($(BR2_PACKAGE_LIBEVAS_GIF),y)
 LIBEVAS_CONF_OPTS += --enable-image-loader-gif
-LIBEVAS_DEPENDENCIES += libungif
+LIBEVAS_DEPENDENCIES += giflib
 else
 LIBEVAS_CONF_OPTS += --disable-image-loader-gif
 endif
Signature · 1 line
1.7.10.4
#9 lore raw

PATCH 4/5 package/efl/libevas: Switch to giflib

Quoted 30 lines · Bernd Kuhls
---
 package/efl/libevas/0001-giflib.patch |   91 +++++++++++++++++++++++++++++++++
 package/efl/libevas/Config.in         |    2 +-
 package/efl/libevas/libevas.mk        |    2 +-
 3 files changed, 93 insertions(+), 2 deletions(-)
 create mode 100644 package/efl/libevas/0001-giflib.patch
package/efl/libevas/0001-giflib.patch new file +15 -0
new file mode 100644
index 0000000..1176721
@@ -0,0 +1,91 @@
+Adjust source code to work with giflib 5.1x
+
+Downloaded from
+http://commit.cvs.pld.groups.com.ru/332837-packagesevas_fix_building_with_giflib_51_rel_6
+
+Signed-off-by: Bernd Kuhls <[email protected]>
+
+diff -uNr evas-1.7.10.org/src/modules/loaders/gif/evas_image_load_gif.c evas-1.7.10/src/modules/loaders/gif/evas_image_load_gif.c
+--- evas-1.7.10.org/src/modules/loaders/gif/evas_image_load_gif.c      2013-08-01 17:41:35.000000000 +0200
++++ evas-1.7.10/src/modules/loaders/gif/evas_image_load_gif.c  2015-01-26 19:44:20.132955194 +0100
+@@ -338,7 +338,7 @@
+
+    if (!cmap)
+      {
+-        DGifCloseFile(gif);

package/efl/libevas/0001-giflib.patch line 25

Quoted 10 lines
package/efl/libevas/0001-giflib.patch new file +10 -0
++        DGifCloseFile(gif, NULL);
+         for (i = 0; i < scale_h; i++)
+           {
+              free(rows[i]);
+@@ -725,7 +725,7 @@
+    if ((w < 1) || (h < 1) || (w > IMG_MAX_SIZE) || (h > IMG_MAX_SIZE) ||
+        IMG_TOO_BIG(w, h))
+      {
+-        DGifCloseFile(gif);
++        DGifCloseFile(gif, NULL);

IMHO it's cleaner if instead of adding this patch you can add a post_patch hook that using sed change all "DGifCloseFile(gif)" to "DGifCloseFile(gif, NULL)".

Quoted 99 lines
package/efl/libevas/0001-giflib.patch new file +66 -0
+         if (IMG_TOO_BIG(w, h))
+           *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED;
+         else
+@@ -740,7 +740,7 @@
+         if (DGifGetRecordType(gif, &rec) == GIF_ERROR)
+           {
+              /* PrintGifError(); */
+-             DGifCloseFile(gif);
++             DGifCloseFile(gif, NULL);
+              *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
+              return EINA_FALSE;
+           }
+@@ -754,7 +754,7 @@
+              if (DGifGetImageDesc(gif) == GIF_ERROR)
+                {
+                   /* PrintGifError(); */
+-                  DGifCloseFile(gif);
++                  DGifCloseFile(gif, NULL);
+                   *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
+                   return EINA_FALSE;
+                }
+@@ -762,7 +762,7 @@
+              if (DGifGetCode(gif, &img_code, &img) == GIF_ERROR)
+                {
+                   /* PrintGifError(); */
+-                  DGifCloseFile(gif);
++                  DGifCloseFile(gif, NULL);
+                   *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
+                   return EINA_FALSE;
+                }
+@@ -818,7 +818,7 @@
+         ie->frames = NULL;
+      }
+
+-   DGifCloseFile(gif);
++   DGifCloseFile(gif, NULL);
+    *error = EVAS_LOAD_ERROR_NONE;
+    return EINA_TRUE;
+ }
+@@ -885,7 +885,7 @@
+      }
+
+    ie->frames = eina_list_append(ie->frames, frame);
+-   DGifCloseFile(gif);
++   DGifCloseFile(gif, NULL);
+    return EINA_TRUE;
+ }
+
+@@ -959,7 +959,7 @@
+                   *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT;
+                   return EINA_FALSE;
+                }
+-             DGifCloseFile(gif);
++             DGifCloseFile(gif, NULL);
+              *error = EVAS_LOAD_ERROR_NONE;
+              return EINA_TRUE;
+           }
+@@ -1080,7 +1080,7 @@
+          }
+      } while (rec != TERMINATE_RECORD_TYPE);
+
+-   DGifCloseFile(gif);
++   DGifCloseFile(gif, NULL);
+    return duration;
+ }
+
package/efl/libevas/Config.in +1 -1
index febc115..fa36e80 100644
@@ -177,7 +177,7 @@ config BR2_PACKAGE_LIBEVAS_JPEG
 
 config BR2_PACKAGE_LIBEVAS_GIF
        bool "libevas gif loader"
-       select BR2_PACKAGE_LIBUNGIF
+       select BR2_PACKAGE_GIFLIB
        help
          This enables the loader code that loads gif files using
          libungif.
package/efl/libevas/libevas.mk +1 -2
index b5a2d72..9f2e801 100644
@@ -167,7 +167,7 @@ endif
 
 ifeq ($(BR2_PACKAGE_LIBEVAS_GIF),y)
 LIBEVAS_CONF_OPTS += --enable-image-loader-gif
-LIBEVAS_DEPENDENCIES += libungif
+LIBEVAS_DEPENDENCIES += giflib
 else
 LIBEVAS_CONF_OPTS += --disable-image-loader-gif
 endif
--

1.7.10.4

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

Signature · 1 line
Fabio Porcedda
#10 lore raw

PATCH 4/5 package/efl/libevas: Switch to giflib

Dear Fabio Porcedda,

Quoted 3 lines · Fabio Porcedda

IMHO it's cleaner if instead of adding this patch you can add a post_patch hook that using sed change all "DGifCloseFile(gif)" to "DGifCloseFile(gif, NULL)".

I don't agree. Such sed expressions can very easily be overlooked when bumping the package, and they don't solve a problem that should be solved by submitting a patch to the upstream project.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#11 lore raw

PATCH 4/5 package/efl/libevas: Switch to giflib

Quoted 11 lines · Thomas Petazzoni

Dear Fabio Porcedda,

Quoted 3 lines · Fabio Porcedda

IMHO it's cleaner if instead of adding this patch you can add a post_patch hook that using sed change all "DGifCloseFile(gif)" to "DGifCloseFile(gif, NULL)".

I don't agree. Such sed expressions can very easily be overlooked when bumping the package, and they don't solve a problem that should be solved by submitting a patch to the upstream project.

I don't know exactly but the libevas seems dead, the last change in the git repository was made 15 months ago.

https://git.enlightenment.org/legacy/evas.git/

I hope there is a chance for the patch to be accepted.

Bernd, have you tried to send the patch upstream?

Could you add a note in patch to justify the change? Example:
From http://giflib.sourceforge.net/gif_lib.html
GIF file openers and closers - DGifOpenFileName(), DGifOpenFileHandle(), DGifOpen(), DGifClose(), EGifOpenFileName(), EGifOpenFileHandle(), EGifOpen(), and EGifClose() - all now take a final integer address argument. If non-null, this is used to pass back an error code when the function returns NULL.

With above note added and because the sed option is not available:

[build fine the following defconfig:
BR2_TOOLCHAIN_EXTERNAL=y
BR2_PACKAGE_EFL=y
BR2_PACKAGE_LIBEVAS=y
BR2_PACKAGE_LIBEVAS_GIF=y]

BR

Signature · 1 line
Fabio Porcedda
#12 lore raw

PATCH 4/5 package/efl/libevas: Switch to giflib

Dear Fabio Porcedda,

Quoted 2 lines · Fabio Porcedda

I don't know exactly but the libevas seems dead, the last change in the git repository was made 15 months ago.

The EFL stuff in Buildroot needs a complete update: most of the EFL libraries have been merged into one single project/tarball. So many of the EFL related packages in Buildroot should be removed, and the main EFL library bumped to a higher version.

Quoted 1 line

https://git.enlightenment.org/legacy/evas.git/

See the "legacy" in this URL ?

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#13 lore raw

PATCH 4/5 package/efl/libevas: Switch to giflib

Quoted 7 lines · Thomas Petazzoni

Dear Fabio Porcedda,

Quoted 2 lines · Fabio Porcedda

I don't know exactly but the libevas seems dead, the last change in the git repository was made 15 months ago.

Quoted 8 lines

The EFL stuff in Buildroot needs a complete update: most of the EFL libraries have been merged into one single project/tarball. So many of the EFL related packages in Buildroot should be removed, and the main EFL library bumped to a higher version.

Quoted 1 line

https://git.enlightenment.org/legacy/evas.git/

See the "legacy" in this URL ?

I understand that is a legacy repository but because you talked about to send a patch upstream i was trying to understand if there is any chance that the patch will be accepted.

So when you have talked about to send the patch upstream didn't know about the legacy status of this repository?

Nevertheless the https://git.enlightenment.org/legacy/imlib2.git/
repository gets updated even if it has the "legacy" word in the prefix, but it's the only one so maybe it's just an exception.

BR

Signature · 1 line
Fabio Porcedda
#14 lore raw

PATCH 4/5 package/efl/libevas: Switch to giflib

Dear Fabio Porcedda,

Quoted 6 lines · Fabio Porcedda

I understand that is a legacy repository but because you talked about to send a patch upstream i was trying to understand if there is any chance that the patch will be accepted.

So when you have talked about to send the patch upstream didn't know about the legacy status of this repository?

Well, when you want to send a patch upstream, then obviously you have to send the patch based on the latest upstream version. Which generally involves bumping the Buildroot package to use the latest stable version from upstream.

In the case of EFL, it indeed involves quite a bit of work, because all the libraries that used to be split in separate tarballs are now provided as one single tarball by upstream.

See https://phab.enlightenment.org/phame/live/3/post/efl_1_8/ :

"""
We have merged Ecore, Edje, Eet, Eeze, Efreet, Eina, Eio, Embryo, Emotion, Ethumb, Evas and Evil into a single EFL package (as you can see above these are no longer there, but inside the EFL distribution). We also added in Eldbus, EPhysics, and Escape.
"""

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#15 lore raw

PATCH 4/5 package/efl/libevas: Switch to giflib

Quoted 20 lines · Thomas Petazzoni

Dear Fabio Porcedda,

Quoted 6 lines · Fabio Porcedda

I understand that is a legacy repository but because you talked about to send a patch upstream i was trying to understand if there is any chance that the patch will be accepted.

So when you have talked about to send the patch upstream didn't know about the legacy status of this repository?

Well, when you want to send a patch upstream, then obviously you have to send the patch based on the latest upstream version. Which generally involves bumping the Buildroot package to use the latest stable version from upstream.

In the case of EFL, it indeed involves quite a bit of work, because all the libraries that used to be split in separate tarballs are now provided as one single tarball by upstream.

Quoted 8 lines

See https://phab.enlightenment.org/phame/live/3/post/efl_1_8/ :

"""
We have merged Ecore, Edje, Eet, Eeze, Efreet, Eina, Eio, Embryo, Emotion, Ethumb, Evas and Evil into a single EFL package (as you can see above these are no longer there, but inside the EFL distribution). We also added in Eldbus, EPhysics, and Escape.
"""

In the efl project where the evas library was merged, they have already added support for giflib 5:
https://git.enlightenment.org/core/efl.git/commit/?id=096ae0e86fe306d40d744c8c11960dd9e736c4b4

So maybe we can just back port that commit.

BR

Signature · 1 line
Fabio Porcedda
#16 lore raw

PATCH 4/5 package/efl/libevas: Switch to giflib

Dear Fabio Porcedda,

Quoted 5 lines · Fabio Porcedda

In the efl project where the evas library was merged, they have already added support for giflib 5:
https://git.enlightenment.org/core/efl.git/commit/?id=096ae0e86fe306d40d744c8c11960dd9e736c4b4

So maybe we can just back port that commit.

If you bump EFL to the latest version, there's no need to do this, since the commit is already part of EFL releases.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#17 lore raw

PATCH 4/5 package/efl/libevas: Switch to giflib

In reply to Bernd Kuhls

Dear Bernd Kuhls,

Quoted 8 lines · Bernd Kuhls
---
 package/efl/libevas/0001-giflib.patch |   91 +++++++++++++++++++++++++++++++++
 package/efl/libevas/Config.in         |    2 +-
 package/efl/libevas/libevas.mk        |    2 +-
 3 files changed, 93 insertions(+), 2 deletions(-)
 create mode 100644 package/efl/libevas/0001-giflib.patch

Thanks, applied.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#18 lore raw

PATCH 5/5 package/libungif: deprecate package

In reply to Bernd Kuhls

To be replaced with giflib.

---
 package/libungif/Config.in |    2 ++
 1 file changed, 2 insertions(+)
package/libungif/Config.in +2 -0
index e8c301c..012ef76 100644
@@ -1,5 +1,7 @@
 config BR2_PACKAGE_LIBUNGIF
 	bool "libungif"
+	depends on !BR2_PACKAGE_GIFLIB
+	depends on BR2_DEPRECATED_SINCE_2015_02 # giflib
 	help
 	  libungif is a library for handling the uncompressed GIF image format.
 
Signature · 1 line
1.7.10.4
#19 lore raw

PATCH 5/5 package/libungif: deprecate package

Quoted 1 line · Bernd Kuhls

To be replaced with giflib.

Can you respin this patch?

It's important to deprecate libungif because it's incompatible with libgif so if both are installed, the headers get overwritten, right now we don't have build problems because we are lucky and they are overwritten in right order :)

But using top-parallel make i get build failures because the order is changed.

Example:
BR2_TOOLCHAIN_EXTERNAL=y
BR2_PACKAGE_FBV=y
BR2_PACKAGE_LIBUNGIF=y

The following command build fine:
make clean libungif giflib fbv

But fbv fail to build with the following command:
make clean giflib libungif fbv

Quoted 24 lines
---
 package/libungif/Config.in |    2 ++
 1 file changed, 2 insertions(+)
package/libungif/Config.in +2 -1
index e8c301c..012ef76 100644
@@ -1,5 +1,7 @@
 config BR2_PACKAGE_LIBUNGIF
        bool "libungif"
+       depends on !BR2_PACKAGE_GIFLIB
+       depends on BR2_DEPRECATED_SINCE_2015_02 # giflib
        help
          libungif is a library for handling the uncompressed GIF image format.
 
--

1.7.10.4

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

Signature · 1 line
Fabio Porcedda
#20 lore raw

PATCH 5/5 package/libungif: deprecate package

In reply to Bernd Kuhls

Dear Bernd Kuhls,

Quoted 6 lines · Bernd Kuhls

To be replaced with giflib.

---
 package/libungif/Config.in |    2 ++
 1 file changed, 2 insertions(+)

I cannot apply this patch: Kodi is still selecting libungif currently.

Can you resend an updated patch series that fixes Kodi before marking libungif as deprecated ?

I'll mark this patch as Changes Requested in patchwork in the mean time.

Thanks,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#21 lore raw

PATCH 5/5 package/libungif: deprecate package

Hi,

Thomas Petazzoni <thomas.petazzoni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8 @public.gmane.org> wrote in news:20150404184613.448298e5 at free-electrons.com:

Quoted 4 lines

I cannot apply this patch: Kodi is still selecting libungif currently.

Can you resend an updated patch series that fixes Kodi before marking libungif as deprecated ?

Done: http://patchwork.ozlabs.org/patch/459483/

Shall I resend http://patchwork.ozlabs.org/patch/432990/ ?

Regards, Bernd

#22 lore raw

PATCH 1/5 package/giflib: New package

In reply to Bernd Kuhls
Quoted 7 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Bernd" == Bernd Kuhls <[email protected]> writes:

This package will replace libungif.
Needed for Kodi 15.0, TexturePacker depends on giflib >= 5.0.5
https://github.com/xbmc/xbmc/blob/master/tools/depends/native/TexturePacker/src/configure.ac#L29

Committed, thanks.

I did a quick test and they are basically equivalent in file size:

find output/staging/usr/lib/lib*gif.so* -type f | xargs ls -lah -rwxr-xr-x 1 peko peko 31K Jan 27 16:04 output/staging/usr/lib/libgif.so.7.0.0 -rwxr-xr-x 1 peko peko 32K Jan 27 16:08 output/staging/usr/lib/libungif.so.4.1.4

Signature · 1 line
Bye, Peter Korsgaard