Package: make
Version: 3.81-1
Followup-For: Bug #358903

Hi,

Corenetwork.te is still missing from expansion.
I tried reducing this to a simple testcase that fails, but I couldn't 
accomplish that.
So I wrote a little makefile that does the same that the failing rule does. 
This little makefile works.
It seems the problem only appears when you use the original makefile to do the 
build, if you extract portions from it they work, they
just don't work put together.

Here it is the Makefile that works:
-----------------
vpath %.te 
policy/modules/admin:policy/modules/apps:policy/modules/kernel:policy/modules/services:policy/modules/system
MODBASE := base
MOD_CONF := policy/modules.conf
BASE_MODS := $(addsuffix .te,$(sort $(shell awk '/^[[:blank:]]*[[:alpha:]]/{ if 
($$3 == "$(MODBASE)") print $$1 }' $(MOD_CONF) 2> /dev/null)))
BASE_TE_FILES := $(BASE_MODS)

/tmp/all_te_files.conf: $(BASE_TE_FILES)
        cat $^ >$@
---------------------------

However the original Makefile doesn't work, despite having the same rule:

$(TMPDIR)/all_te_files.conf: $(BASE_TE_FILES)
    ifeq ($(BASE_TE_FILES),)
        $(error No enabled modules! $(notdir $(MOD_CONF)) may need to be 
generated by using "make conf")
    endif
    @test -d $(TMPDIR) || mkdir -p $(TMPDIR)
    $(verbose) cat $^ > $@
    $(call parse-rolemap,base,$@)
                                
Looking at the output of 'make -p >log' here it is what that rule is translated 
to:
                                
tmp/all_te_files.conf: policy/modules/kernel/corecommands.te 
policy/modules/kernel/devices.te policy/modules/kernel/domain.te 
policy/modules/kernel/files.t
e policy/modules/kernel/filesystem.te policy/modules/kernel/kernel.te 
policy/modules/kernel/mcs.te policy/modules/kernel/mls.te 
policy/modules/kernel/selin
ux.te policy/modules/kernel/terminal.te
                                
However, look what BASE_TE_FILES is expanded to:
BASE_TE_FILES := corecommands.te corenetwork.te devices.te domain.te files.te 
filesystem.te kernel.te mcs.te mls.te selinux.te terminal.te
                                
Why is corenetwork.te missing from the dependency rule above?
Any ideas on how to debug this?

                                
That corenetwork.te is really needed there, because otherwise the build fails.
I worked around this issue by adding '$(verbose) cat 
policy/modules/kernel/corenetwork.te >> $@' to that rule, and then everything 
builds ok.
But this is not a solution.
                                
                                
                                
P.S.: the makefile is from the selinux reference policy package, configured to 
create modular policies. 

                                
If you want to take a look at the entire makefile:
http://edwintorok.googlepages.com/Makefile
http://edwintorok.googlepages.com/Rules.modular
http://edwintorok.googlepages.com/build.conf
                                
Cheers,
Edwin

-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.16-1-amd64-k8
Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1)

Versions of packages make depends on:
ii  libc6                         2.3.6-7    GNU C Library: Shared libraries

make recommends no packages.

-- no debconf information


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to