launchd requires self closing tag for boolean

Number:rdar://47256054 Date Originated:01/14/2019
Status: Resolved:
Product:macOS Product Version:10.14.2
Classification: Reproducible:yes
LaunchD will not load Property List files with boolean properties unless they have a self closing tag. 

results in 

victor@kl ~> sudo launchctl load -w /Library/LaunchDaemons/co.kolide.runload.plist
/Library/LaunchDaemons/co.kolide.runload.plist: Invalid property list

but changing the value to `<true/>` the plist loads. 

`plutil -lint` validates both. 

Steps to Reproduce:
Load this plist with launchd on 10.14

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "">
<plist version="1.0">

Expected Results:
LaunchDaemon loads

Actual Results:

/Library/LaunchDaemons/co.kolide.runload.plist: Invalid property list


macOS 10.14.2 18C54


Notable, is that this passes plutil -lint

` $ cat /tmp/boolean.plutil <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" ""> Label co.kolide.runload Program /Users/me/ RunAtLoad

$ plutil -lint /tmp/boolean.plutil /tmp/boolean.plutil: OK `

Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!