Re: [PATCH] CUPS lives in libexecdir

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2024-02-23 at 16:14 +0000, Emil Velikov wrote:
> On Fri, 23 Feb 2024 at 12:01, Joakim Tjernlund
> <Joakim.Tjernlund@xxxxxxxxxxxx> wrote:
> > 
> > On Fri, 2024-02-23 at 11:09 +0000, Emil Velikov wrote:
> > > On Thu, 22 Feb 2024 at 13:22, Joakim Tjernlund
> > > <Joakim.Tjernlund@xxxxxxxxxxxx> wrote:
> > > > 
> > > > On Thu, 2024-02-22 at 13:06 +0000, Emil Velikov wrote:
> > > > > On Wed, 21 Feb 2024 at 11:19, Joakim Tjernlund
> > > > > <joakim.tjernlund@xxxxxxxxxxxx> wrote:
> > > > > > 
> > > > > > From: Joakim Tjernlund <Joakim.Tjernlund@xxxxxxxxxxxx>
> > > > > > 
> > > > > > Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@xxxxxxxxxxxx>
> > > > > > ---
> > > > > >  Makefile.tools | 2 +-
> > > > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > > > > 
> > > > > > diff --git a/Makefile.tools b/Makefile.tools
> > > > > > index 044342e29..b785ebea8 100644
> > > > > > --- a/Makefile.tools
> > > > > > +++ b/Makefile.tools
> > > > > > @@ -538,7 +538,7 @@ endif
> > > > > >  endif
> > > > > > 
> > > > > >  if CUPS
> > > > > > -cupsdir = $(libdir)/cups/backend
> > > > > > +cupsdir = $(libexecdir)/cups/backend
> > > > > > 
> > > > > 
> > > > > Is this true, can you provide some references?
> > > > > 
> > > > > Looking at Debian [1] (which contrary to Arch has libexec) - backends
> > > > > are in /usr/lib. Glancing at the cups backends makefile it's using
> > > > > SERVERBIN. Casual grep shows that libexec can be applicable for
> > > > > BSD/Darwin platforms [3], which are out of scope for bluez IIRC.
> > > > 
> > > > on Gentoo you have:
> > > > 
> > > > qlist net-print/cups | grep backend
> > > > ...
> > > > /usr/libexec/cups/backend/implicitclass
> > > > /usr/libexec/cups/backend/beh
> > > > /usr/libexec/cups/backend/serial
> > > > /usr/libexec/cups/backend/parallel
> > > > /usr/libexec/cups/backend/driverless-fax
> > > > /usr/libexec/cups/backend/driverless
> > > > /usr/libexec/cups/backend/cups-pdf
> > > > 
> > > > but now I see this in Gentoo ebuild:
> > > >         # Install in /usr/libexec always, instead of using /usr/lib/cups, as that
> > > >         # makes more sense when facing multilib support.
> > > >         sed -i -e 's:CUPS_SERVERBIN="$exec_prefix/lib/cups":CUPS_SERVERBIN="$exec_prefix/libexec/cups":g' configure ||die
> > > > 
> > > >         econf "${myeconfargs[@]}"
> > > > 
> > > >         sed -i -e "s:SERVERBIN.*:SERVERBIN = \"\$\(BUILDROOT\)${EPREFIX}/usr/libexec/cups\":" Makedefs || die
> > > >         sed -i -e "s:#define CUPS_SERVERBIN.*:#define CUPS_SERVERBIN \"${EPREFIX}/usr/libexec/cups\":" config.h || die
> > > >         sed -i -e "s:cups_serverbin=.*:cups_serverbin=\"${EPREFIX}/usr/libexec/cups\":" cups-config || die
> > > > 
> > > > so it appears to be a Gentoo addition.
> > > > Would perhaps
> > > >   pkg-config cups --variable=cups_serverbin
> > > > or
> > > >   cups-config --serverbin
> > > > be acceptable? If no we can just drop this and Gentoo will continue to patch bluez for cups
> > > > 
> > > 
> > > Using the foo-config tools sounds better than the current hard-coded
> > > behaviour. Patch that does that gets a big thumbs-up from me.
> > > Personally I have slight inclination towards the pkg-config - although
> > > it'll be up-to the maintainers.
> > 
> > This is what I came up with:
> > 
> > From c6776b205b8adbf6e2e29108a1a7ff348546a531 Mon Sep 17 00:00:00 2001
> > From: Joakim Tjernlund <joakim.tjernlund@xxxxxxxxxxxx>
> > Date: Fri, 23 Feb 2024 12:56:21 +0100
> > Subject: [PATCH] cups: Use pkg-config to find cups backend dir
> > 
> > Some distributions(Gentoo) patch cups backend path to
> > something else than libdir. Use pkg-config to find backend
> > path for cups.
> > 
> > Signed-off-by: Joakim Tjernlund <joakim.tjernlund@xxxxxxxxxxxx>
> > ---
> >  Makefile.tools | 2 --
> >  configure.ac   | 3 +++
> >  2 files changed, 3 insertions(+), 2 deletions(-)
> > 
> > diff --git a/Makefile.tools b/Makefile.tools
> > index 044342e29..760727557 100644
> > --- a/Makefile.tools
> > +++ b/Makefile.tools
> > @@ -538,8 +538,6 @@ endif
> >  endif
> > 
> >  if CUPS
> > -cupsdir = $(libdir)/cups/backend
> > -
> >  cups_PROGRAMS = profiles/cups/bluetooth
> > 
> >  profiles_cups_bluetooth_SOURCES = profiles/cups/main.c \
> > diff --git a/configure.ac b/configure.ac
> > index bb6380f2f..6a7fefa1d 100644
> > --- a/configure.ac
> > +++ b/configure.ac
> > @@ -242,6 +242,9 @@ AC_SUBST(UDEV_DIR, [${path_udevdir}])
> >  AC_ARG_ENABLE(cups, AS_HELP_STRING([--disable-cups],
> >                  [disable CUPS printer support]), [enable_cups=${enableval}])
> >  AM_CONDITIONAL(CUPS, test "${enable_cups}" != "no")
> > +if (test "${enable_cups}" != "no"); then
> > +   AC_SUBST(cupsdir, `$PKG_CONFIG cups --variable=cups_serverbin`/backend)
> > +fi
> > 
> >  AC_ARG_ENABLE(mesh, AS_HELP_STRING([--enable-mesh],
> >                 [enable Mesh profile support]), [enable_mesh=${enableval}])
> 
> AFAICT the existing patterns is to use "AC_SUBST(FOOBARDIR, ...)" in
> configure.ac and "foobardir = $(FOOBARDIR)" in the makefiles.
> 
> Thanks
> Emil
Like so ?

>From 70a424b9935712fef297afcb0e6dff8ee154b21e Mon Sep 17 00:00:00 2001
From: Joakim Tjernlund <joakim.tjernlund@xxxxxxxxxxxx>
Date: Fri, 23 Feb 2024 12:56:21 +0100
Subject: [PATCH] cups: Use pkg-config to find cups backend dir

Some distributions(Gentoo) patch cups backend path to
something else than libdir. Use pkg-config to find backend
path for cups.

Signed-off-by: Joakim Tjernlund <joakim.tjernlund@xxxxxxxxxxxx>
---
 Makefile.tools | 3 ++-
 configure.ac   | 3 +++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/Makefile.tools b/Makefile.tools
index 044342e29..c17244677 100644
--- a/Makefile.tools
+++ b/Makefile.tools
@@ -538,7 +538,8 @@ endif
 endif
 
 if CUPS
-cupsdir = $(libdir)/cups/backend
+
+cupsdir = $(CUPSDIR)
 
 cups_PROGRAMS = profiles/cups/bluetooth
 
diff --git a/configure.ac b/configure.ac
index bb6380f2f..778c27a0f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -242,6 +242,9 @@ AC_SUBST(UDEV_DIR, [${path_udevdir}])
 AC_ARG_ENABLE(cups, AS_HELP_STRING([--disable-cups],
                 [disable CUPS printer support]), [enable_cups=${enableval}])
 AM_CONDITIONAL(CUPS, test "${enable_cups}" != "no")
+if (test "${enable_cups}" != "no"); then
+   AC_SUBST(CUPSDIR, `$PKG_CONFIG cups --variable=cups_serverbin`/backend)
+fi
 
 AC_ARG_ENABLE(mesh, AS_HELP_STRING([--enable-mesh],
 		[enable Mesh profile support]), [enable_mesh=${enableval}])
-- 
2.43.0





[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux