Looks the problem manifests if you specify more than 1 replace file.
Most of the build tools get their arguments specified via $^, which
removes duplicates. The mac_permissions.xml was unique in the sense
that it was a raw call to build-policy. By adding the sort in, we
remove this duplicate. This change has been pushed to Gerrit on
Android review as Cange-Id I5d5362ad0055275052b0c2ba535b599a8e26112e

https://android-review.googlesource.com/49090


-      $(wildcard $(addsuffix $(expanded_type), $(dir
$(sepolicy_replace_paths)))), \
+      $(wildcard $(addsuffix $(expanded_type), $(sort $(dir
$(sepolicy_replace_paths))))), \


On Thu, Jan 3, 2013 at 3:06 PM, Robert Craig <[email protected]> wrote:
> The problem seems to relate to the original "build_policy" patch and not the
> dae746f7 one. Do you have the mac_permissions.xml file listed multiple times
> in your makefiles that use the same BOARD_SEPOLICY_DIRS var? We probably
> need to augment the "build_policy" or "sepolicy_replace_paths" functions in
> external/sepolicy/Android.mk to ensure that we catch this case. Either use a
> "sort" on the final assignment of the var or explicitly add another
> conditional to error out.
>
>
> On Thu, Jan 3, 2013 at 5:33 PM, William Roberts <[email protected]>
> wrote:
>>
>> On Thu, Jan 3, 2013 at 2:15 PM, Robert Craig <[email protected]>
>> wrote:
>> > If you remove the '$@' (the name of the target of the rule which is also
>> > the
>> > name of the output file for the insertkeys script) then the script will
>> > error out before it even starts for your highlighted case. The script
>> > needs
>> > positional arguments that specify both the config_file (key
>> > substitutions)
>> > and 1 or more mac_permission.xml files. If a mac_permissions.xml file is
>> > specified using BOARD_SEPOLICY_REPLACE then you should get your desired
>> > result (transparently handled by the ''build_policy" makefile function
>> > in
>> > external/sepolicy/Android.mk). If you include multiple
>> > mac_permissions.xml
>> > files via the BOARD_SEPOLICY_UNION construct then a union occurs (again,
>> > transparently handled by the same ''build_policy" makefile function).
>> > The
>> > $(ALL_MAC_PERMS_FILES) contains the result of the "build_policy"
>> > function
>> > call which is then used to put positional arguments into insertkeys.py.
>> > But
>> > it should not be used as the desired output file like your example.
>> >
>> >  > insertkeys.py -h
>> >  Usage: insertkeys.py [options] CONFIG_FILE MAC_PERMISSIONS_FILE
>> > [MAC_PERMISSIONS_FILE...]
>> >  This tool allows one to configure an automatic inclusion
>> >  of signing keys into the mac_permision.xml file(s) from the
>> >  pem files. If mulitple mac_permision.xml files are included
>> >  then they are unioned to produce a final version.
>> >
>> >  Options:
>> >    --version             show program's version number and exit
>> >    -h, --help            show this help message and exit
>> >    -v, --verbose         Print internal operations to stdout
>> >    -o FILE, --output=FILE
>> >                          Specify an output file, default is stdout
>> >    -c DIR, --cwd=DIR     Specify a root (CWD) directory to run this
>> > from,
>> >                          itchdirs' AFTER loading the config file
>> >    -t TARGET_BUILD_VARIANT, --target-build-variant=TARGET_BUILD_VARIANT
>> >                          Specify the TARGET_BUILD_VARIANT, defaults to
>> > eng
>> >
>> >
>> >
>> > On Thu, Jan 3, 2013 at 4:26 PM, William Roberts
>> > <[email protected]>
>> > wrote:
>> >>
>> >> The aforementioned commit introduces:
>> >>
>> >> -       $(HOST_OUT_EXECUTABLES)/insertkeys.py -t
>> >> $(TARGET_BUILD_VARIANT)
>> >> -c
>> >> $(ANDROID_BUILD_TOP) $(mac_perms_keys.tmp) -o $@ $<
>> >> +       $(hide) $(HOST_OUT_EXECUTABLES)/insertkeys.py -t
>> >> $(TARGET_BUILD_VARIANT) -c $(ANDROID_BUILD_TOP) $< -o $@
>> >> $(ALL_MAC_PERMS_FILES)
>> >>
>> >> Shouldn't it be
>> >> +       $(hide) $(HOST_OUT_EXECUTABLES)/insertkeys.py -t
>> >> $(TARGET_BUILD_VARIANT) -c $(ANDROID_BUILD_TOP) $< -o
>> >> $(ALL_MAC_PERMS_FILES)
>> >>
>> >> I am seeing multiple errant input files to the insertkeys script, when
>> >> I just want a replace.
>> >>
>> >> --
>> >> Respectfully,
>> >>
>> >> William C Roberts
>> >>
>> >> --
>> >> This message was distributed to subscribers of the seandroid-list
>> >> mailing
>> >> list.
>> >> If you no longer wish to subscribe, send mail to
>> >> [email protected]
>> >> with
>> >> the words "unsubscribe seandroid-list" without quotes as the message.
>> >
>> >
>>
>> Hmm misread the line, then the $(ALL_MAC_PERMS_FILES) is expanding to
>> multiple definitions of all the same file.
>>
>> --
>> Respectfully,
>>
>> William C Roberts
>
>



-- 
Respectfully,

William C Roberts

--
This message was distributed to subscribers of the seandroid-list mailing list.
If you no longer wish to subscribe, send mail to [email protected] with
the words "unsubscribe seandroid-list" without quotes as the message.

Reply via email to