Your message dated Mon, 4 Sep 2017 19:14:19 +0200
with message-id <[email protected]>
and subject line Re: Bug#868125: libevas-loaders: No thumbnails pdf and video
has caused the Debian Bug report #868125,
regarding libevas-loaders: No thumbnails pdf and video
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
868125: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=868125
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: libevas-loaders
Version: 1.8.1-2s1
Severity: normal

Dear Maintainer,

*** Reporter, please consider answering these questions, where appropriate ***

   * When compiling the package, the loaders pdf and gst are disabled.
   * I corrected the dependencies, rules and patched sources.



-- System Information:
Debian Release: 9.0
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 4.9.0-3-amd64 (SMP w/4 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8),
LANGUAGE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages libevas-loaders depends on:
ii  libc6               2.24-11+deb9u1
ii  libcairo2           1.14.8-1
ii  libeina1            1.8.6-2.5s1
ii  libgcc1             1:6.3.0-18
ii  libgdk-pixbuf2.0-0  2.36.5-2
ii  libglib2.0-0        2.50.3-2
ii  libgomp1            6.3.0-18
ii  libgstreamer1.0-0   1.10.4-1
ii  liblcms2-2          2.8-4
ii  libpoppler64        0.48.0-2
ii  libraw15            0.17.2-6+b1
ii  librsvg2-2          2.40.16-1+b1
ii  libspectre1         0.2.8-1
ii  libstdc++6          6.3.0-18
ii  zlib1g              1:1.2.8.dfsg-5

libevas-loaders recommends no packages.

libevas-loaders suggests no packages.

-- no debconf information

*** /home/ordissimo/control
Source: evas-loaders
Section: libs
Priority: optional
Maintainer: Debian Pkg-e Team <[email protected]>
Uploaders: Albin Tonnerre <[email protected]>
Build-Depends: debhelper (>= 9), dh-autoreconf, libeina-dev (>= 1.7.7),
 librsvg2-dev, libspectre-dev, libraw-dev, libpoppler-private-dev,
 libgstreamer-plugins-base1.0-dev, libgstreamer1.0-dev
Standards-Version: 3.9.5
Vcs-Git: git://anonscm.debian.org/pkg-e/libs/evas-loaders.git
Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-e/libs/evas-loaders.git
Homepage: http://www.enlightenment.org

Package: libevas-loaders
Architecture: any
Multi-Arch: same
Pre-Depends: ${misc:Pre-Depends}
Depends: ${shlibs:Depends}, ${misc:Depends}
Replaces: libevas1 (<< 1.7.7-5)
Description: Additional file format loaders for libevas
 This package contains programs that allow libevas to load various images
 and documents formats for which it has no built-in support:
  - XCF
  - SVG




*** /home/ordissimo/rules
#!/usr/bin/make -f

%:
        dh $@ --with autoreconf




*** /home/ordissimo/compatibility_with_poppler_and_gstreamer.patch
Index: evas-loaders-1.8.1+ordissimo/src/bin/pdf/main.cpp
===================================================================
--- evas-loaders-1.8.1+ordissimo.orig/src/bin/pdf/main.cpp
+++ evas-loaders-1.8.1+ordissimo/src/bin/pdf/main.cpp
@@ -62,11 +62,6 @@ Eina_Bool poppler_init(const char *file,
    if (!eina_init())
      goto del_global_param;

-   if (globalParams->getAntialias())
-     globalParams->setAntialias((char *)"yes");
-   if (globalParams->getVectorAntialias())
-     globalParams->setVectorAntialias((char *)"yes");
-
    pdfdoc = new PDFDoc(new GooString(file), NULL);
    if (!pdfdoc)
      goto del_global_param;
@@ -202,8 +197,8 @@ void poppler_load_image(int size_w, int
 int
 main(int argc, char **argv)
 {
-   Eina_Tmpstr *tmpdir = NULL;
-   Eina_Tmpstr *generated = NULL;
+   char tmpdir[PATH_MAX];
+   char generated[PATH_MAX];
    char *extension;
    char *dir;
    char *file;
@@ -253,49 +248,51 @@ main(int argc, char **argv)
    extension = strrchr(file, '.');
    dir = dirname(argv[0]);
    if (extension && dir && strcmp(extension, ".pdf"))
+   {
+     strcpy(tmpdir, "evas_generic_pdf_loaderXXXXXX");
+     mktemp(tmpdir);
+     if (*tmpdir != 0)
      {
-        if (eina_file_mkdtemp("evas_generic_pdf_loaderXXXXXX", &tmpdir))
-          {
-             Eina_Strbuf *tmp;
-             FILE *cmd;
+       Eina_Strbuf *tmp;
+       FILE *cmd;

-             tmp = eina_strbuf_new();
-             eina_strbuf_append_printf(tmp, "%s/evas_generic_pdf_loader.%s
'%s' %s", dir, extension + 1, file, tmpdir);
+       tmp = eina_strbuf_new();
+       eina_strbuf_append_printf(tmp, "%s/evas_generic_pdf_loader.%s '%s' %s",
dir, extension + 1, file, tmpdir);

-             cmd = popen(eina_strbuf_string_get(tmp), "r");
-             D("running preprocessing process '%s'...\n",
eina_strbuf_string_get(tmp));
-             eina_strbuf_reset(tmp);
-
-             if (cmd)
-               {
-                  struct stat st;
-                  const char *filename;
-                  char buf[1024];
-
-                  while (fgets(buf, sizeof (buf), cmd))
-                    ;
-                  pclose(cmd);
-
-                  filename = basename(file);
-                  generated = eina_tmpstr_add_length(filename,
strlen(filename) - strlen(extension));
-
-                  eina_strbuf_append_printf(tmp, "%s/%s.pdf", tmpdir,
generated);
-
-                  eina_tmpstr_del(generated);
-                  generated = NULL;
-
-                  if (stat(eina_strbuf_string_get(tmp), &st) == 0)
-                    {
-                       generated =
eina_tmpstr_add_length(eina_strbuf_string_get(tmp),
-
eina_strbuf_length_get(tmp));
-                       file = (char*) generated;
-                    }
-               }
+       cmd = popen(eina_strbuf_string_get(tmp), "r");
+       D("running preprocessing process '%s'...\n",
eina_strbuf_string_get(tmp));
+       eina_strbuf_reset(tmp);
+
+       if (cmd)
+       {
+         struct stat st;
+         const char *filename;
+         char buf[1024];
+
+         while (fgets(buf, sizeof (buf), cmd))
+           ;
+         pclose(cmd);
+
+         filename = basename(file);
+         snprintf (generated, sizeof (generated) , "%s", filename);
+         generated[strlen(filename) - strlen(extension) - 1] = 0;
+
+         eina_strbuf_append_printf(tmp, "%s/%s.pdf", tmpdir, generated);
+
+         *generated = 0;
+
+         if (stat(eina_strbuf_string_get(tmp), &st) == 0)
+         {
+           snprintf (generated, sizeof (generated) , "%s",
eina_strbuf_string_get(tmp));
+           generated[eina_strbuf_length_get(tmp) - 1] = 0;
+           file = strdup (generated);
+         }
+       }

-             D("generated file: '%s'\n", generated);
-             eina_strbuf_free(tmp);
-          }
+       D("generated file: '%s'\n", generated);
+       eina_strbuf_free(tmp);
      }
+   }

    // Let's force a timeout if things go wrong
    timeout_init(10);
@@ -303,7 +300,13 @@ main(int argc, char **argv)
    // Now process the pdf (or the generated pdf)
    D("poppler_file_init\n");
    if (!poppler_init(file, page, size_w, size_h))
+   {
+     if (file)
+       free (file);
      return -1;
+   }
+   if (file)
+     free (file);
    D("poppler_file_init done\n");

    D("dpi2...: %f\n", dpi);
@@ -340,9 +343,6 @@ main(int argc, char **argv)
      {
         if (generated) unlink(generated);
         rmdir(tmpdir);
-
-        eina_tmpstr_del(tmpdir);
-        eina_tmpstr_del(generated);
      }

    return 0;
Index: evas-loaders-1.8.1+ordissimo/configure.ac
===================================================================
--- evas-loaders-1.8.1+ordissimo.orig/configure.ac
+++ evas-loaders-1.8.1+ordissimo/configure.ac
@@ -82,6 +82,26 @@ if test "x${want_poppler}" = "xyes" ; th
          [have_poppler="no"])
    fi

+   if test "x${have_poppler}" = "xno" ; then
+      PKG_CHECK_EXISTS([poppler >= 0.31 poppler < 0.38],
+         [
+          poppler_pc="poppler >= 0.31"
+          AC_DEFINE(HAVE_POPPLER_031, 1, [Have poppler 0.31])
+          have_poppler="yes"
+         ],
+         [have_poppler="no"])
+   fi
+
+   if test "x${have_poppler}" = "xno" ; then
+      PKG_CHECK_EXISTS([poppler >= 0.38 poppler < 0.49],
+         [
+          poppler_pc="poppler >= 0.38"
+          AC_DEFINE(HAVE_POPPLER_038, 1, [Have poppler 0.38])
+          have_poppler="yes"
+         ],
+         [have_poppler="no"])
+   fi
+
    if test "x${have_poppler}" = "xyes" ; then
       PKG_CHECK_MODULES([POPPLER], [${poppler_pc}],
          [have_poppler="yes"],
@@ -147,9 +167,9 @@ if test "x$want_svg" = "xyes" ; then
 else
    have_svg=no
 fi
-GST_REQS=0.10.13
-GSTPLUG_REQS=0.10.13
-GST_MAJORMINOR=0.10
+GST_REQS=1.10.4
+GSTPLUG_REQS=1.10.4
+GST_MAJORMINOR=1.0

 AC_ARG_ENABLE([gstreamer],
    [AC_HELP_STRING([--disable-gstreamer], [disable gstreamer support
@<:@default==enabled@:>@])],
Index: evas-
loaders-1.8.1+ordissimo/src/bin/pdf/evas_generic_pdf_loader.libreoffice
===================================================================
--- evas-
loaders-1.8.1+ordissimo.orig/src/bin/pdf/evas_generic_pdf_loader.libreoffice
+++ evas-
loaders-1.8.1+ordissimo/src/bin/pdf/evas_generic_pdf_loader.libreoffice
@@ -1,2 +1,10 @@
 #!/bin/sh
-/usr/lib/libreoffice/program/soffice.bin --headless --convert-to pdf --outdir
"$2" "$1"
+LOBIN=soffice
+if [ -x /usr/lib/libreoffice/program/soffice.bin ]; then
+       LOBIN=/usr/lib/libreoffice/program/soffice.bin
+elif [ -x /usr/lib64/libreoffice/program/soffice.bin ]; then
+       LOBIN=/usr/lib64/libreoffice/program/soffice.bin
+elif [ -x /opt/libreoffice4.4/program/soffice.bin ]; then
+       LOBIN=/opt/libreoffice4.4/program/soffice.bin
+fi
+$LOBIN --headless --convert-to pdf --outdir "$2" "$1"
Index: evas-loaders-1.8.1+ordissimo/src/bin/gst/main.c
===================================================================
--- evas-loaders-1.8.1+ordissimo.orig/src/bin/gst/main.c
+++ evas-loaders-1.8.1+ordissimo/src/bin/gst/main.c
@@ -23,7 +23,11 @@
 #define D(fmt, args...)
 #endif

-#define CAPS "video/x-raw-
rgb,bpp=(int)32,depth=(int)32,endianness=(int)4321,red_mask=(int)0x0000ff00,
green_mask=(int)0x00ff0000, blue_mask=(int)0xff000000"
+#ifdef WORDS_BIGENDIAN
+# define CAPS "video/x-raw,format=ARGB"
+#else
+# define CAPS "video/x-raw,format=BGRA"
+#endif

 static GstElement *pipeline = NULL;
 static GstElement *sink = NULL;
@@ -45,7 +49,7 @@ _gst_init(const char *filename)
    GError              *error = NULL;
    GstFormat            format;
    GstStateChangeReturn ret;
-   int                  vidstr = 0;
+//   int                  vidstr = 0;

    if (!filename || !*filename)
      return EINA_FALSE;
@@ -67,7 +71,7 @@ _gst_init(const char *filename)

    D("Setting file %s\n", uri);

-   descr = g_strdup_printf("uridecodebin uri=%s ! typefind ! ffmpegcolorspace
! "
+   descr = g_strdup_printf("uridecodebin uri=%s ! typefind ! videoconvert ! "
       " appsink name=sink caps=\"" CAPS "\"", uri);
    pipeline = gst_parse_launch(descr, &error);
    free(uri);
@@ -79,6 +83,7 @@ _gst_init(const char *filename)
         goto gst_shutdown;
      }
 /* needs gst 1.0+
+ * also only works on playbin objects!!! this is a uridecodebin!
    g_object_get(G_OBJECT(pipeline),
                 "n-video", &vidstr,
                 NULL);
@@ -106,26 +111,27 @@ _gst_init(const char *filename)
    ret = gst_element_get_state((pipeline), NULL, NULL, GST_CLOCK_TIME_NONE);
    if (ret == GST_STATE_CHANGE_FAILURE)
      {
-       D("could not complete pause\n");
+        D("could not complete pause\n");
         goto unref_pipeline;
      }

    format = GST_FORMAT_TIME;
-   gst_element_query_duration (pipeline, &format, &duration);
+   gst_element_query_duration (pipeline, format, &duration);
    if (duration == -1)
      {
-       D("could not retrieve the duration, set it to 1s\n");
+        fprintf(stderr, "duration fetch err\n");
+        D("could not retrieve the duration, set it to 1s\n");
         duration = 1 * GST_SECOND;
      }

    pad = gst_element_get_static_pad(sink, "sink");
    if (!pad)
      {
-       D("could not retrieve the sink pad\n");
+        D("could not retrieve the sink pad\n");
         goto unref_pipeline;
      }

-   caps = gst_pad_get_negotiated_caps(pad);
+   caps = gst_pad_get_current_caps(pad);
    if (!caps)
      goto unref_pad;

@@ -163,31 +169,42 @@ _gst_shutdown()
 }

 static void
-_gst_load_image(int size_w EINA_UNUSED, int size_h EINA_UNUSED)
+_gst_load_image(int size_w EINA_UNUSED, int size_h EINA_UNUSED, double pos)
 {
    GstBuffer *buffer;
+   GstMapInfo info;
+   GstSample *sample;

    D("load image\n");
-   gst_element_seek_simple(pipeline, GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH,
-                           duration / 2);
-   g_signal_emit_by_name(sink, "pull-preroll", &buffer, NULL);
-   D("load image : %p %d\n", GST_BUFFER_DATA(buffer),
GST_BUFFER_SIZE(buffer));
+   if (pos >= 0.0)
+     gst_element_seek_simple(pipeline, GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH,
+                             pos);
+   else
+     gst_element_seek_simple(pipeline, GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH,
+                             duration / 2);
+   g_signal_emit_by_name(sink, "pull-preroll", &sample, NULL);

    shm_alloc(width * height * sizeof(DATA32));
    if (!shm_addr) return;
    data = shm_addr;

-   memcpy(data, GST_BUFFER_DATA(buffer), GST_BUFFER_SIZE(buffer));
+   buffer = gst_sample_get_buffer (sample);
+   gst_buffer_map (buffer, &info, GST_MAP_READ);
+   D("load image: %p %d\n", info.data, info.size);
+
+   memcpy(data, info.data, info.size);
+
+   gst_buffer_unmap(buffer, &info);
 }

 int
 main(int argc, char **argv)
 {
-   char *file;
-   int i;
+   char *file, *p;
+   int i, numonly;
    int size_w = 0, size_h = 0;
    int head_only = 0;
-   int page = 0;
+   long long pos = -1.0;

    if (argc < 2) return -1;
    // file is ALWAYS first arg, other options come after
@@ -200,7 +217,16 @@ main(int argc, char **argv)
         else if (!strcmp(argv[i], "-key"))
           {
              i++;
-             page = atoi(argv[i]);
+             numonly = 1;
+             for (p = argv[i]; *p; p++)
+               {
+                  if ((*p < '0') || (*p > '9'))
+                    {
+                       numonly = 0;
+                       break;
+                    }
+               }
+             if (numonly) pos = atoll(argv[i]) * 1000000;
              i++;
           }
         else if (!strcmp(argv[i], "-opt-scale-down-by"))
@@ -222,16 +248,18 @@ main(int argc, char **argv)
      }

    timeout_init(10);
-
+
    D("_gst_init_file\n");

    if (!_gst_init(file))
      return -1;
    D("_gst_init done\n");

+   if ((pos >= 0) && (pos > duration)) return -1;
+
    if (!head_only)
      {
-        _gst_load_image(size_w, size_h);
+        _gst_load_image(size_w, size_h, pos);
      }

    D("size...: %ix%i\n", width, height);
@@ -259,6 +287,7 @@ main(int argc, char **argv)
      printf("done\n");

    _gst_shutdown();
-
+   fflush(stdout);
    return 0;

--- End Message ---
--- Begin Message ---
Version: 1.18.4-1

On 2017-09-04 Thierry HUCHARD <[email protected]> wrote:
> On Fri, 14 Jul 2017 09:30:50 -0400 Ross Vandegrift <[email protected]> wrote:
>> On 2017-07-12 03:43, Thierry Ordissimo wrote:
>>> * When compiling the package, the loaders pdf and gst are disabled.
>>> * I corrected the dependencies, rules and patched sources.

>> Hello - the version of EFL in jessie, stretch, and sid is very old and
>> unmaintained. experimental has a newer release. Are these changes
>> needed for
>> the packages in experimental?

> Sorry for this delay.
> No, this correction has been made.

No worries. Let's mark it as fixed in experimental.

cu Andreas

-- 
`What a good friend you are to him, Dr. Maturin. His other friends are
so grateful to you.'
`I sew his ears on from time to time, sure'

--- End Message ---

Reply via email to