Re: [PATCH] CUPS lives in libexecdir

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

 



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}])
-- 
2.43.0

  Jocke





[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