diff mbox series

[bug#53536,v2] gnu: Include poppler-data with poppler.

Message ID 20220202034852.31190-1-higashi@taiju.info
State Accepted
Headers show
Series [bug#53536,v2] gnu: Include poppler-data with poppler. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

Taiju HIGASHI Feb. 2, 2022, 3:48 a.m. UTC
---
 gnu/packages/djvu.scm | 1 -
 gnu/packages/pdf.scm  | 1 +
 2 files changed, 1 insertion(+), 1 deletion(-)

--
2.34.0

Comments

Liliana Marie Prikler Feb. 2, 2022, 7:27 a.m. UTC | #1
Am Mittwoch, dem 02.02.2022 um 12:48 +0900 schrieb Taiju HIGASHI:
> ---
>  gnu/packages/djvu.scm | 1 -
>  gnu/packages/pdf.scm  | 1 +
>  2 files changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/gnu/packages/djvu.scm b/gnu/packages/djvu.scm
> index 07c77f318e..4773e408da 100644
> --- a/gnu/packages/djvu.scm
> +++ b/gnu/packages/djvu.scm
> @@ -159,7 +159,6 @@ (define-public pdf2djvu
>         ("exiv2" ,exiv2)
>         ("graphicsmagick" ,graphicsmagick)
>         ("poppler" ,poppler)
> -       ("poppler-data" ,poppler-data)
>         ("util-linux-lib" ,util-linux "lib"))) ; for libuuid
>      (arguments
>       `(#:test-target "test"
> diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
> index d4e97e1d82..6894640317 100644
> --- a/gnu/packages/pdf.scm
> +++ b/gnu/packages/pdf.scm
> @@ -241,6 +241,7 @@ (define-public poppler
>               ("libtiff" ,libtiff)
>               ("lcms" ,lcms)
>               ("openjpeg" ,openjpeg)
> +             ("poppler-data", poppler-data)
>               ("zlib" ,zlib)
> 
>               ;; To build poppler-glib (as needed by Evince), we need
> Cairo and
> --
> 2.34.0
Note that the ChangeLog is missing here.  It should be something along
the lines of

* gnu/packages/pdf.scm (poppler)[inputs]: Add poppler-data.
* gnu/packages/djvu.scm (pdf2djvu)[inputs]: Remove poppler-data.

In my personal opinion, adding and removing should be done in separate
commits, as it appears that there are other ways in which a package can
depend on poppler-data.  On that note, I haven't built the package, so
I need to ask you: are the contents of poppler-data now included in the
install of poppler?  If not, that might be a reason as to why gimp and
glimpse are failing.

Cheers
Taiju HIGASHI Feb. 2, 2022, 1:35 p.m. UTC | #2
> I need to ask you: are the contents of poppler-data now included in the
> install of poppler?  If not, that might be a reason as to why gimp and
> glimpse are failing.

It is understood as follows.

poppler (with poppler-data)

  1. During the build process, poppler will check to see if poppler-data
  has been installed by pkg-config.
  2. Newer versions of poppler depend on poppler-data directly, and
  pkg-config can detect poppler-data during the build process.

gimp and glimpse (without poppler-data)

  1. During the build process, gimp and glimpse will check to see if poppler-data
  has been installed by pkg-config.
  2. gimp or glimpse depend on poppler-data indirectly, and pkg-config
  cannot detect poppler-data during the build process.

The above is just a problem in the build process.
Poppler knows where the poppler-data is during the build process, so the
installed poppler can use it in its processing.

I have confirmed in the poppler build log that poppler-data is detected.

I have also confirmed that evince can render Japanese PDFs with the
contents of this patch.


I'll add the changelog and split the commits together at the end.

Thanks
Liliana Marie Prikler Feb. 2, 2022, 2:16 p.m. UTC | #3
Hi,

Am Mittwoch, dem 02.02.2022 um 22:35 +0900 schrieb Taiju HIGASHI:
> 
> [...]
> gimp and glimpse (without poppler-data)
> 
>   1. During the build process, gimp and glimpse will check to see if
> poppler-data
>   has been installed by pkg-config.
>   2. gimp or glimpse depend on poppler-data indirectly, and pkg-
> config
>   cannot detect poppler-data during the build process.
Assertion (2) is wrong here: gimp's configure.ac directly checks for
the existence of poppler-data.  That makes it a direct dependency as
far as I'm concerned, even if they only ever use it through poppler.

> I have also confirmed that evince can render Japanese PDFs with the
> contents of this patch.
Good to know.

> I'll add the changelog and split the commits together at the end.
Thanks.

@Leo I've heard that there's a Rust related world rebuild coming soon.
Can we tack this feature onto that?

Cheers
Taiju HIGASHI Feb. 2, 2022, 3:47 p.m. UTC | #4
> Assertion (2) is wrong here: gimp's configure.ac directly checks for
> the existence of poppler-data.  That makes it a direct dependency as
> far as I'm concerned, even if they only ever use it through poppler.

I did not convey the context correctly.

I thought I was describing the behavior of the gimp package with the
poppler-data dependency removed (= gimp,which indirectly depend on
poppler-data).
In that state, gimp will fail to build because pkg-config cannot detect
poppler-data during the build process.
Therefore, I left the poppler-data dependency in gimp.

I'm really sorry for my poor explanation.
Liliana Marie Prikler Feb. 3, 2022, 6:54 a.m. UTC | #5
Am Donnerstag, dem 03.02.2022 um 00:47 +0900 schrieb Taiju HIGASHI:
> > Assertion (2) is wrong here: gimp's configure.ac directly checks for
> > the existence of poppler-data.  That makes it a direct dependency as
> > far as I'm concerned, even if they only ever use it through poppler.
> 
> I did not convey the context correctly.
> 
> I thought I was describing the behavior of the gimp package with the
> poppler-data dependency removed (= gimp,which indirectly depend on
> poppler-data).
> In that state, gimp will fail to build because pkg-config cannot detect
> poppler-data during the build process.
> Therefore, I left the poppler-data dependency in gimp.
> 
> I'm really sorry for my poor explanation.
Again, w.r.t. your explanation I claim that gimp does not "indirectly"
depend on poppler-data, but directly.  Voilà, le configure.ac [1].

[1]
https://gitlab.gnome.org/GNOME/gimp/-/blob/GIMP_2_10_30/configure.ac#L2023-L2024
Taiju HIGASHI Feb. 3, 2022, 7:23 a.m. UTC | #6
> > > Assertion (2) is wrong here: gimp's configure.ac directly checks for
> > > the existence of poppler-data.  That makes it a direct dependency as
> > > far as I'm concerned, even if they only ever use it through poppler.
> >
> > I did not convey the context correctly.
> >
> > I thought I was describing the behavior of the gimp package with the
> > poppler-data dependency removed (= gimp,which indirectly depend on
> > poppler-data).
> > In that state, gimp will fail to build because pkg-config cannot detect
> > poppler-data during the build process.
> > Therefore, I left the poppler-data dependency in gimp.
> >
> > I'm really sorry for my poor explanation.
> Again, w.r.t. your explanation I claim that gimp does not "indirectly"
> depend on poppler-data, but directly.  Voilà, le configure.ac [1].

> > Assertion (2) is wrong here: gimp's configure.ac directly checks for
> > the existence of poppler-data.  That makes it a direct dependency as
> > far as I'm concerned, even if they only ever use it through poppler.
>
> I did not convey the context correctly.
>
> I thought I was describing the behavior of the gimp package with the
> poppler-data dependency removed (= gimp,which indirectly depend on
> poppler-data).
> In that state, gimp will fail to build because pkg-config cannot detect
> poppler-data during the build process.
> Therefore, I left the poppler-data dependency in gimp.
>
> I'm really sorry for my poor explanation.

Your assertion that the Gimp depends on poppler-data directly, not
indirectly, is absolutely true and correct.

As you pointed out, the gimp source code definitely depends directly on
poppler-data, so it can't be built without poppler-data.

I was describing the removal of poppler-data from the input in the Gimp
package definition as "gimp indirectly depends on poppler-data", which
complicated the claim. I apologize for that.
diff mbox series

Patch

diff --git a/gnu/packages/djvu.scm b/gnu/packages/djvu.scm
index 07c77f318e..4773e408da 100644
--- a/gnu/packages/djvu.scm
+++ b/gnu/packages/djvu.scm
@@ -159,7 +159,6 @@  (define-public pdf2djvu
        ("exiv2" ,exiv2)
        ("graphicsmagick" ,graphicsmagick)
        ("poppler" ,poppler)
-       ("poppler-data" ,poppler-data)
        ("util-linux-lib" ,util-linux "lib"))) ; for libuuid
     (arguments
      `(#:test-target "test"
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index d4e97e1d82..6894640317 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -241,6 +241,7 @@  (define-public poppler
              ("libtiff" ,libtiff)
              ("lcms" ,lcms)
              ("openjpeg" ,openjpeg)
+             ("poppler-data", poppler-data)
              ("zlib" ,zlib)

              ;; To build poppler-glib (as needed by Evince), we need Cairo and