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.
