[csw-maintainers] excluding components from a package

Peter FELECAN pfelecan at opencsw.org
Sun Aug 4 15:41:35 CEST 2013


Dagobert Michelsen <dam at opencsw.org> writes:

> Hi Peter,
>
> Am 30.07.2013 um 22:31 schrieb Peter FELECAN <pfelecan at opencsw.org>:
>> Dagobert Michelsen <dam at opencsw.org> writes:
>> 
>>> Hi Peter,
>>> 
>>> Am 30.07.2013 um 20:20 schrieb Peter FELECAN <pfelecan at opencsw.org>:
>>>> I have an issue as follows:
>>>> 
>>>> - package pp has in its PKGFILES a set of files fp, explicitly defined
>>>> - package pd has in its PKGFILES a set of file fd, implicitly defined
>>>> through PKGFILES_DEVEL macro
>>>> - the packages are defined in pp, pd order
>>>> - the fp set is include in the fd set
>>>> 
>>>> How can I exclude from fd the content of fp, i.e. complement it?
>>>> 
>>>> Is there a known way or should I resort to my magic wand?
>>> 
>>> 
>>> No magic wand needed :-)
>>> 
>>> You can either use the respective expression from PKGFILES_DEVEL explicitly
>>> or reset the components from PKGFILES_DEVEL to empty which belong to fp as
>>> in the composite variable defined here:
>>>  http://sourceforge.net/apps/trac/gar/browser/csw/mgar/gar/v2/gar.pkg.mk#L383
>>> like
>>>  PKGFILES_DEVEL_LIBTOOL =
>>> to exclude *.la files from fd.
>> 
>> I'm not sure that this will do as fp is composed of include files,
>> sub-tree of $(includedir), and fd contains all the relevant files from
>> $(includedir). This is why I thought about the magic wand. In fact the
>> question is how to exclude from pd some sub-trees.
>
> I see. Unfortunately there is no easy way for that, you must restrict the included
> pathes for fd to be disjunct with fp manually. Sorry.

As you said, no magic wand was really needed, just reading gar.pkg.mk

You can see in the following excerpt, how using EXTRA_PKGFILES_EXCLUDED_
solved the issue:

PACKAGES						+=	CSWqt4-private-dev
CATALOGNAME_CSWqt4-private-dev	=	qt4_private_dev
SPKG_DESC_CSWqt4-private-dev	=	$(DESCRIPTION), private development files
PKGFILES_CSWqt4-private-dev		+=	$(includedir)/QtCore/private/.*
PKGFILES_CSWqt4-private-dev		+=	$(includedir)/QtDeclarative/private/.*
PKGFILES_CSWqt4-private-dev		+=	$(includedir)/QtGui/private/.*
PKGFILES_CSWqt4-private-dev		+=	$(includedir)/QtScript/private/.*
ARCHALL_CSWqt4-private-dev		=	1

PACKAGES += CSWqt4-dev
SPKG_DESC_CSWqt4-dev += $(DESCRIPTION), development files
PKGFILES_CSWqt4-dev += $(PKGFILES_DEVEL)
PKGFILES_CSWqt4-dev += $(call baseisadirs,$(bindir),.*)
PKGFILES_CSWqt4-dev += $(libdir)/libQt.*\.prl
PKGFILES_CSWqt4-dev += $(libdir)/$(NAME)$(MAJOR)/examples/.*
PKGFILES_CSWqt4-dev += $(libdir)/$(NAME)$(MAJOR)/plugins/.*
PKGFILES_CSWqt4-dev += $(libdir)/$(NAME)$(MAJOR)/demos/.*
PKGFILES_CSWqt4-dev += $(libdir)/$(NAME)$(MAJOR)/imports/.*
PKGFILES_CSWqt4-dev += $(sharedstatedir)/$(NAME)$(MAJOR)/mkspecs/.*
EXTRA_PKGFILES_EXCLUDED_CSWqt4-dev += $(PKGFILES_CSWqt4-private-dev)

Now, CSWqt4-dev doesn't contain anymore the files in CSWqt4-private-dev
and you know what? I'm happy!
-- 
Peter


More information about the maintainers mailing list