* Force recipe to provide specific file
@ 2014-08-12 12:20 Richard Leitner
2014-08-12 12:27 ` Robert P. J. Day
0 siblings, 1 reply; 8+ messages in thread
From: Richard Leitner @ 2014-08-12 12:20 UTC (permalink / raw)
To: yocto
Hello folks,
is there a possibility to force a recipe to provide a specific file?
My problem is that my own recipe is providing a file which is already provided
by another recipe. I don't want to change that other recipe and the rootfs
should include both package but only the specified file from my package.
The following message is produced by bitbake:
WARNING: The recipe ghostscript is trying to install files into a shared area
when those files already exist. Those files and their manifest location are:
/opt/yocto/poky/build_2.2/tmp/sysroots/board/usr/lib/cups/filter/gstopxl
Matched in manifest-board-cups-filters.populate_sysroot
/opt/yocto/poky/build_2.2/tmp/sysroots/board/usr/lib/cups/filter/gstoraster
Matched in manifest-board-cups-filters.populate_sysroot
Please verify which package should provide the above files.
The only solution which came to my mind is to remove the file from the original
recipe using a bbappend, but I think this isn't a really "clean" way.
Does anybody have another/better idea how to solve this "problem"?
Thanks!
regards,
richard
P.S.: I hope I'm on the correct mailing list, if not please drop me a line!
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Force recipe to provide specific file
2014-08-12 12:20 Force recipe to provide specific file Richard Leitner
@ 2014-08-12 12:27 ` Robert P. J. Day
2014-08-12 12:58 ` Richard Leitner
0 siblings, 1 reply; 8+ messages in thread
From: Robert P. J. Day @ 2014-08-12 12:27 UTC (permalink / raw)
To: Richard Leitner; +Cc: yocto
On Tue, 12 Aug 2014, Richard Leitner wrote:
> Hello folks,
> is there a possibility to force a recipe to provide a specific file?
>
> My problem is that my own recipe is providing a file which is already provided
> by another recipe. I don't want to change that other recipe and the rootfs
> should include both package but only the specified file from my package.
>
> The following message is produced by bitbake:
>
> WARNING: The recipe ghostscript is trying to install files into a shared area
> when those files already exist. Those files and their manifest location are:
> /opt/yocto/poky/build_2.2/tmp/sysroots/board/usr/lib/cups/filter/gstopxl
> Matched in manifest-board-cups-filters.populate_sysroot
> /opt/yocto/poky/build_2.2/tmp/sysroots/board/usr/lib/cups/filter/gstoraster
> Matched in manifest-board-cups-filters.populate_sysroot
> Please verify which package should provide the above files.
>
> The only solution which came to my mind is to remove the file from the original
> recipe using a bbappend, but I think this isn't a really "clean" way.
>
> Does anybody have another/better idea how to solve this "problem"?
why not just provide a .bbappend file and an overriding file?
rday
--
========================================================================
Robert P. J. Day Ottawa, Ontario, CANADA
http://crashcourse.ca
Twitter: http://twitter.com/rpjday
LinkedIn: http://ca.linkedin.com/in/rpjday
========================================================================
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: Force recipe to provide specific file
2014-08-12 12:27 ` Robert P. J. Day
@ 2014-08-12 12:58 ` Richard Leitner
2014-08-12 13:04 ` Nicolas Dechesne
0 siblings, 1 reply; 8+ messages in thread
From: Richard Leitner @ 2014-08-12 12:58 UTC (permalink / raw)
To: Robert P. J. Day; +Cc: yocto
Hi,
thanks for your answer!
On Tue, 12 Aug 2014 08:27:46 -0400
"Robert P. J. Day" <rpjday@crashcourse.ca> wrote:
> On Tue, 12 Aug 2014, Richard Leitner wrote:
>
> >
> > WARNING: The recipe ghostscript is trying to install files into a shared area
> > when those files already exist. Those files and their manifest location are:
> > /opt/yocto/poky/build_2.2/tmp/sysroots/board/usr/lib/cups/filter/gstopxl
> > Matched in manifest-board-cups-filters.populate_sysroot
> > /opt/yocto/poky/build_2.2/tmp/sysroots/board/usr/lib/cups/filter/gstoraster
> > Matched in manifest-board-cups-filters.populate_sysroot
> > Please verify which package should provide the above files.
> >
> > The only solution which came to my mind is to remove the file from the original
> > recipe using a bbappend, but I think this isn't a really "clean" way.
> >
> > Does anybody have another/better idea how to solve this "problem"?
>
> why not just provide a .bbappend file and an overriding file?
Do you mean that I should integrate my version of the files into the
ghostscript package?
This is what I want to avoid because all cups-filters should reside in the
cups-filters package.
I've also tried the following in my ghostscript bbappend, but it does not
work. Shouldn't [1] work this way?
FILES_${PN}-cups_remove = "${exec_prefix}/lib/cups/filter/gstopxl"
FILES_${PN}-cups_remove = "${exec_prefix}/lib/cups/filter/gstoraster"
thanks & regards,
richard
[1] https://www.yoctoproject.org/docs/1.6/bitbake-user-manual/bitbake-user-manual.html#removing-override-style-syntax
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: Force recipe to provide specific file
2014-08-12 12:58 ` Richard Leitner
@ 2014-08-12 13:04 ` Nicolas Dechesne
2014-08-12 13:52 ` Richard Leitner
0 siblings, 1 reply; 8+ messages in thread
From: Nicolas Dechesne @ 2014-08-12 13:04 UTC (permalink / raw)
To: Richard Leitner; +Cc: Yocto list discussion
On Tue, Aug 12, 2014 at 2:58 PM, Richard Leitner
<richard.leitner@skidata.com> wrote:
>
> I've also tried the following in my ghostscript bbappend, but it does not
> work. Shouldn't [1] work this way?
>
> FILES_${PN}-cups_remove = "${exec_prefix}/lib/cups/filter/gstopxl"
> FILES_${PN}-cups_remove = "${exec_prefix}/lib/cups/filter/gstoraster"
the packaging step is using regexp to get the file list to include in
the package. so it's unlikely that this pattern will be in FILES. it
might be worth printing the value of FILES with bitbake -e..
but anyways, a simpler way to so the same thing would be do have a
do_install_append() function and remove the files from ${D}. that
would in turns have the same effect as what you are trying to do here
i believe.
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: Force recipe to provide specific file
2014-08-12 13:04 ` Nicolas Dechesne
@ 2014-08-12 13:52 ` Richard Leitner
2014-08-22 9:07 ` Anders Darander
0 siblings, 1 reply; 8+ messages in thread
From: Richard Leitner @ 2014-08-12 13:52 UTC (permalink / raw)
To: Nicolas Dechesne; +Cc: Yocto list discussion
Hi,
On Tue, 12 Aug 2014 15:04:46 +0200
Nicolas Dechesne <nicolas.dechesne@linaro.org> wrote:
> On Tue, Aug 12, 2014 at 2:58 PM, Richard Leitner
> <richard.leitner@skidata.com> wrote:
> >
> > I've also tried the following in my ghostscript bbappend, but it does not
> > work. Shouldn't [1] work this way?
> >
> > FILES_${PN}-cups_remove = "${exec_prefix}/lib/cups/filter/gstopxl"
> > FILES_${PN}-cups_remove = "${exec_prefix}/lib/cups/filter/gstoraster"
>
> the packaging step is using regexp to get the file list to include in
> the package. so it's unlikely that this pattern will be in FILES. it
> might be worth printing the value of FILES with bitbake -e..
I've copied the file paths from the ghostscript recipe, so they should match.
They occur in FILES when i run bitbake -e ghostscript:
FILES_ghostscript-cups=" /usr/lib/cups/filter/gstoraster /usr/lib/cups/filter/gstopxl /usr/share/cups /etc/cups"
For some strange reasons it works when I substitute the variable and use:
FILES_${PN}-cups_remove = "/usr/lib/cups/filter/gstoraster"
FILES_${PN}-cups_remove = "/usr/lib/cups/filter/gstopxl"
Can anyone explain why? :-)
>
> but anyways, a simpler way to so the same thing would be do have a
> do_install_append() function and remove the files from ${D}. that
> would in turns have the same effect as what you are trying to do here
> i believe.
Yeah, this works, this is the way I'm currently doing it as I already mentioned
earlier.
But is this really a clean way?
What happens for example if do_install_append is already defined in the recipe?
thanks & regards,
richard
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: Force recipe to provide specific file
2014-08-12 13:52 ` Richard Leitner
@ 2014-08-22 9:07 ` Anders Darander
2014-08-27 12:42 ` Richard Leitner
0 siblings, 1 reply; 8+ messages in thread
From: Anders Darander @ 2014-08-22 9:07 UTC (permalink / raw)
To: Richard Leitner; +Cc: Yocto list discussion
* Richard Leitner <richard.leitner@skidata.com> [140812 15:53]:
> > but anyways, a simpler way to so the same thing would be do have a
> > do_install_append() function and remove the files from ${D}. that
> > would in turns have the same effect as what you are trying to do here
> > i believe.
> Yeah, this works, this is the way I'm currently doing it as I already mentioned
> earlier.
> But is this really a clean way?
It's a pretty clean way, yes.
> What happens for example if do_install_append is already defined in the recipe?
No issue at all. The do_install_append's will just be appended one after
each other.
Cheers,
Anders
--
Anders Darander
ChargeStorm AB / eStorm AB
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Force recipe to provide specific file
@ 2014-08-12 16:19 Stath, Paul
0 siblings, 0 replies; 8+ messages in thread
From: Stath, Paul @ 2014-08-12 16:19 UTC (permalink / raw)
To: yocto@yoctoproject.org
> > why not just provide a .bbappend file and an overriding file?
>
> Do you mean that I should integrate my version of the files into the
> ghostscript package?
> This is what I want to avoid because all cups-filters should reside in the
> cups-filters package.
>
It is not necessarily true that all cups-filter programs should reside in the cups-filters package.
Remember that the CUPS system expects a PostScript printer, and the filters in the cups-filters
package filter (or convert) non-PostScript input to PostScript.
The ghostscipt package is a PostScript interpreter that is capable of taking a PostScript
input file and producing output in several different formats.
Since the ghostscript package creates filters that convert files from PostScript
to a different format, both the gstopxl and gstoraster filter programs require the
ghostscript interpreter package for them to execute properly.
Note that the ghostscript recipe lists 'cups' in the DEPENDS.
A system where the cups* packages are installed, but the ghostscript package
is not can still print to a printer capable of accepting PostScript print jobs.
Such a system would not be able to print to a PCL or dot-matrix printers however.
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2014-08-27 12:42 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-12 12:20 Force recipe to provide specific file Richard Leitner
2014-08-12 12:27 ` Robert P. J. Day
2014-08-12 12:58 ` Richard Leitner
2014-08-12 13:04 ` Nicolas Dechesne
2014-08-12 13:52 ` Richard Leitner
2014-08-22 9:07 ` Anders Darander
2014-08-27 12:42 ` Richard Leitner
-- strict thread matches above, loose matches on Subject: below --
2014-08-12 16:19 Stath, Paul
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.