On Tue, 2009-10-13 at 00:08 +0100, Ghee Teo wrote:
> Laszlo (Laca) Peter wrote:
> > Ghee,
> >
> > While runtime detection is a step forward, I wouldn't reverse
> > the packaging changes.  With the printing backends in separate
> > packages, SUNWgtk2 need not depend on _both_ cups and papi.
> >   
> This is true,  also meant all applications that provides printing should 
> now depend on SUNWgtk2-print-cups and SUNWgtk2-print-papi.

I don't think they need to depend on either of those.
They are dynamically loadable modules, if they are not
present, the functionality should be reduced but things
should still work.  I.e. you should still be able to
print to file or via lpr.

However, it would be desirable if the right backend
was installed automagically when both gtk2 and cups
or papi are installed.  Not sure how to do that but
I posted a question to pkg-discuss.

Laca

> that is need to modify the Requires for gedit, evince, thunderbird, 
> firefox, gimp-2 etc, right?


> > On Mon, 2009-10-12 at 16:34 +0100, Ghee Teo wrote:
> >   
> >> Bug: http://defect.opensolaris.org/bz/show_bug.cgi?id=11830
> >>
> >> This is now a new fix which does not include the create of the new 
> >> packages.
> >> Essentially, a run-time check is made when the backend modules (cups/papi) 
> >> are
> >> loaded. If the supporting print system is found then create the print 
> >> backend
> >> so that the applications can use.  However, it is not then don't create the
> >> print backend module.
> >>
> >> The check for papi is to check for /usr/lib/libpapi.so
> >> and for cups is /usr/lib/libcups.so
> >>
> >> The patch is attached include a reverting the changes made to 
> >> SUNWgtk2.spec.
> >> So we would not be generating SUNWgtk2-print-[cups|papi] anymore.
> >>
> >> -Ghee
> >>
> >> plain text document attachment (print-system-libs-check.diff)
> >> --- SUNWgtk2.spec  2009-10-12 16:04:25.887908177 +0100
> >> +++ SUNWgtk2.spec.reverted 2009-10-12 15:31:54.263184834 +0100
> >> @@ -63,7 +63,9 @@
> >>  SUNW_BaseDir:            %{_basedir}
> >>  %include default-depend.inc
> >>  Requires: SUNWgtk2
> >> +Requires: SUNWcupsu
> >>  Requires: SUNWlibmsr
> >> +Requires: SUNWpapi
> >>  Requires: SUNWpng-devel
> >>  Requires: SUNWglib2-devel
> >>  Requires: SUNWcairo-devel
> >> @@ -71,37 +73,6 @@
> >>  Requires: SUNWlibatk-devel
> >>  Requires: SUNWxwinc
> >>  
> >> -%package print-cups
> >> -Summary:                 %{summary} - CUPS Print Backend
> >> -SUNW_BaseDir:            %{_basedir}
> >> -%include default-depend.inc
> >> -Requires: SUNWglib2
> >> -Requires: SUNWgtk2
> >> -Requires: SUNWcairo
> >> -Requires: SUNWcupsu
> >> -Requires: SUNWpango
> >> -Requires: SUNWxwplt
> >> -Requires: SUNWxwrtl
> >> -Requires: SUNWxorg-clientlibs
> >> -BuildRequires: SUNWglib2-devel
> >> -BuildRequires: SUNWcairo-devel
> >> -
> >> -%package print-papi
> >> -Summary:                 %{summary} - PAPI (LP) Print Backend
> >> -SUNW_BaseDir:            %{_basedir}
> >> -%include default-depend.inc
> >> -Requires: SUNWglib2
> >> -Requires: SUNWgtk2
> >> -Requires: SUNWcairo
> >> -Requires: SUNWpango
> >> -Requires: SUNWpapi
> >> -Requires: SUNWxwplt
> >> -Requires: SUNWxwrtl
> >> -Requires: SUNWxorg-clientlibs
> >> -BuildRequires: SUNWglib2-devel
> >> -BuildRequires: SUNWgtk2-devel
> >> -BuildRequires: SUNWcairo-devel
> >> -
> >>  %if %build_l10n
> >>  %package l10n
> >>  Summary:                 %{summary} - l10n content
> >> @@ -243,8 +214,7 @@
> >>  %{_libdir}/gtk*/*/loaders/*.so
> >>  %{_libdir}/gtk*/*/immodules/im-xim.so
> >>  %{_libdir}/gtk-2.0/modules/*.so
> >> -%{_libdir}/gtk*/*/printbackends/libprintbackend-file.so
> >> -%{_libdir}/gtk*/*/printbackends/libprintbackend-lpr.so
> >> +%{_libdir}/gtk*/*/printbackends
> >>  %ifarch amd64 sparcv9
> >>  %dir %attr (0755, root, bin) %{_bindir}/%{_arch64}
> >>  %{_bindir}/%{_arch64}/gtk-builder-convert
> >> @@ -256,8 +226,7 @@
> >>  %{_libdir}/%{_arch64}/gtk*/*/engines/*.so
> >>  %{_libdir}/%{_arch64}/gtk*/*/immodules/im-xim.so
> >>  %{_libdir}/%{_arch64}/gtk*/modules/*.so
> >> -%{_libdir}/%{_arch64}/gtk*/*/printbackends/libprintbackend-file.so
> >> -%{_libdir}/%{_arch64}/gtk*/*/printbackends/libprintbackend-lpr.so
> >> +%{_libdir}/%{_arch64}/gtk*/*/printbackends
> >>  %endif
> >>  %dir %attr (0755, root, sys) %{_datadir}
> >>  %{_datadir}/themes
> >> @@ -312,20 +281,6 @@
> >>  %{_sysconfdir}/%{_arch64}/gtk-2.0/im-multipress.conf
> >>  %endif
> >>  
> >> -%files print-cups
> >> -%defattr (-, root, bin)
> >> -%dir %attr (0755, root, bin) %{_libdir}
> >> -%{_libdir}/gtk*/*/printbackends/libprintbackend-cups.so
> >> -%ifarch amd64 sparcv9
> >> -%dir %attr (0755, root, bin) %{_libdir}/%{_arch64}
> >> -%{_libdir}/%{_arch64}/gtk*/*/printbackends/libprintbackend-cups.so
> >> -%endif
> >> -
> >> -%files print-papi
> >> -%defattr (-, root, bin)
> >> -%dir %attr (0755, root, bin) %{_libdir}
> >> -%{_libdir}/gtk*/*/printbackends/libprintbackend-papi.so
> >> -
> >>  %if %build_l10n
> >>  %files l10n
> >>  %defattr (-, root, bin)
> >> @@ -334,12 +289,6 @@
> >>  %endif
> >>  
> >>  %changelog
> >> -* Sun Oct 11 2009 - ghee.teo at sun.com
> >> -- rename backend print modules to SUNWgtk2-print-cups and 
> >> SUNWgtk2-print-papi
> >> -* Sat Oct 10 2009 - dave.lin at sun.com
> >> -- Fixed directory attribute issue for SUNWgtk2-cups/papi-be.
> >> -* Fri Oct 09 2009 - ghee.teo at sun.com
> >> -- split out CUPS and PAPI print backends into SUNWgtk2-cups-be, 
> >> SUNWgtk2-papi-be
> >>  * Thu Sep 10 2009 - jedy.wang at sun.com
> >>  - Remove SUNWmlib dependency. It's optinal now.
> >>  * Tue Jun 30 2009 - dave.lin at sun.com
> >> diff -urN gtk+-2.18.0/modules/printbackends/cups/gtkprintbackendcups.c 
> >> ../../SUNWgtk2-2.18.0.hacked/i386/gtk+-2.18.0/modules/printbackends/cups/gtkprintbackendcups.c
> >> --- gtk+-2.18.0/modules/printbackends/cups/gtkprintbackendcups.c   
> >> 2009-09-12 03:58:39.000000000 +0100
> >> +++ 
> >> ../../SUNWgtk2-2.18.0.hacked/i386/gtk+-2.18.0/modules/printbackends/cups/gtkprintbackendcups.c
> >>  2009-10-12 15:16:34.544907874 +0100
> >> @@ -228,6 +228,23 @@
> >>  G_MODULE_EXPORT GtkPrintBackend * 
> >>  pb_module_create (void)
> >>  {
> >> +  static gboolean loaded = FALSE;
> >> +
> >> +  if (!loaded)
> >> +  {
> >> +    GModule *cups;
> >> +    GModuleFlags flags;
> >> +
> >> +    flags = G_MODULE_BIND_LAZY | G_MODULE_BIND_LOCAL;
> >> +
> >> +    cups = g_module_open ("libcups.so", flags);
> >> +    loaded = TRUE;
> >> +    if (!cups)
> >> +      return NULL;
> >> +    else
> >> +      g_module_close (cups);
> >> +  }
> >> +
> >>    return gtk_print_backend_cups_new ();
> >>  }
> >>  
> >> diff -urN gtk+-2.18.0/modules/printbackends/papi/gtkprintbackendpapi.c 
> >> ../../SUNWgtk2-2.18.0.hacked/i386/gtk+-2.18.0/modules/printbackends/papi/gtkprintbackendpapi.c
> >> --- gtk+-2.18.0/modules/printbackends/papi/gtkprintbackendpapi.c   
> >> 2009-09-12 03:58:39.000000000 +0100
> >> +++ 
> >> ../../SUNWgtk2-2.18.0.hacked/i386/gtk+-2.18.0/modules/printbackends/papi/gtkprintbackendpapi.c
> >>  2009-10-12 15:16:10.112638436 +0100
> >> @@ -140,6 +140,23 @@
> >>  G_MODULE_EXPORT GtkPrintBackend * 
> >>  pb_module_create (void)
> >>  {
> >> +  static gboolean loaded = FALSE;
> >> +
> >> +  if (!loaded)
> >> +  {
> >> +    GModule *papi;
> >> +    GModuleFlags flags;
> >> +
> >> +    flags = G_MODULE_BIND_LAZY | G_MODULE_BIND_LOCAL;
> >> +
> >> +    papi = g_module_open ("libpapi.so", flags);
> >> +    loaded = TRUE;
> >> +    if (!papi)
> >> +      return NULL;
> >> +    else
> >> +      g_module_close (papi);
> >> +  }
> >> +
> >>    return gtk_print_backend_papi_new ();
> >>  }
> >>  
> >>     
> >
> >
> >   
> 



Reply via email to