altlinux / admx-lint

Is a file verification tool, that checks ADMX/ADML contents against their XSD schema.
GNU General Public License v2.0
1 stars 0 forks source link

admx-lint not works for firefox policy templates #1

Open mastersin opened 2 years ago

mastersin commented 2 years ago

admx-lint not correctly works against firefox policy templates: https://github.com/mozilla/policy-templates

Выполняется(%check): /bin/sh -e /tmp/.private/sin/rpm-tmp.19133
+ umask 022
+ /bin/mkdir -p /home/sin/RPM/BUILD
+ cd /home/sin/RPM/BUILD
+ cd policy-templates
+ for file in /tmp/.private/sin/admx-firefox-buildroot/usr/share/PolicyDefinitions/*.admx /tmp/.private/sin/admx-firefox-buildroot/usr/share/PolicyDefinitions/*-*/*.adml
+ admx-lint --input_file /tmp/.private/sin/admx-firefox-buildroot/usr/share/PolicyDefinitions/firefox.admx
Error an unexpected element: policyDefinitions in namespace:  was encountered. Expected element: policyDefinitions in namespace: http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions
In file: /tmp/.private/sin/admx-firefox-buildroot/usr/share/PolicyDefinitions/firefox.admx
ошибка: Неверный код возврата из /tmp/.private/sin/rpm-tmp.19133 (%check)
sin@xdt .gear $ head /tmp/.private/sin/admx-firefox-buildroot/usr/share/PolicyDefinitions/firefox.admx
<?xml version="1.0" encoding="utf-8"?>
<policyDefinitions revision="2.12" schemaVersion="1.0">
  <policyNamespaces>
    <target prefix="firefox" namespace="Mozilla.Policies.Firefox"/>
    <using prefix="Mozilla" namespace="Mozilla.Policies"/>
  </policyNamespaces>
  <resources minRequiredRevision="2.12"/>
  <supportedOn>
    <definitions>
      <definition name="UNSUPPORTED" displayName="$(string.UNSUPPORTED)"/>
mastersin commented 2 years ago

Current work around in spec file:

for file in %buildroot%_destdir/*.admx %buildroot%_destdir/*-*/*.adml; do
    grep -q "^\(<policyDefinitions\|<policyDefinitionResources\) .*xmlns:xsd=" "$file" ||
        sed -i 's/^\(<policyDefinitions\|<policyDefinitionResources\)/\1 xmlns:xsd="http:\/\/www.w3.org\/2001\/XMLSchema"/' "$file"
    grep -q "^\(<policyDefinitions\|<policyDefinitionResources\) .*xmlns:xsi=" "$file" ||
        sed -i 's/^\(<policyDefinitions\|<policyDefinitionResources\)/\1 xmlns:xsi="http:\/\/www.w3.org\/2001\/XMLSchema-instance"/' "$file"
    grep -q "^\(<policyDefinitions\|<policyDefinitionResources\) .*xmlns=" "$file" ||
        sed -i 's/^\(<policyDefinitions\|<policyDefinitionResources\)/\1 xmlns="http:\/\/schemas.microsoft.com\/GroupPolicy\/2006\/07\/PolicyDefinitions"/' "$file"
done
mastersin commented 2 years ago

Same problem with chrome. Also chrome.admx files encoded in UTF-16. https://www.chromium.org/administrators/policy-templates


admx-lint --input_file /tmp/.private/sin/admx-chromium-buildroot/usr/share/PolicyDefinitions/chrome.admx
Error an unexpected element: policyDefinitions in namespace:  was encountered. Expected element: policyDefinitions in namespace: http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions
In file: /tmp/.private/sin/admx-chromium-buildroot/usr/share/PolicyDefinitions/chrome.admx
``