Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package polaris for openSUSE:Factory checked in at 2023-09-06 18:58:12 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/polaris (Old) and /work/SRC/openSUSE:Factory/.polaris.new.1766 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "polaris" Wed Sep 6 18:58:12 2023 rev:22 rq:1109173 version:8.5.1 Changes: -------- --- /work/SRC/openSUSE:Factory/polaris/polaris.changes 2023-07-18 21:55:22.362711736 +0200 +++ /work/SRC/openSUSE:Factory/.polaris.new.1766/polaris.changes 2023-09-06 19:02:05.247887895 +0200 @@ -1,0 +2,16 @@ +Wed Sep 06 05:34:59 UTC 2023 - ka...@b1-systems.de + +- Update to version 8.5.1: + * Fix numerical resource ranges (#991) + * Update topologySpreadConstraint.yaml (#971) + +------------------------------------------------------------------- +Tue Sep 05 15:00:11 UTC 2023 - ka...@b1-systems.de + +- Update to version 8.5.0: + * Add helm-skip-tests flag (#986) + * update CLI documentation (#967) + * Bump k8s.io/apimachinery from 0.27.3 to 0.27.4 (#977) + * feat: handle multiple values files (#974) + +------------------------------------------------------------------- Old: ---- polaris-8.4.0.obscpio New: ---- polaris-8.5.1.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ polaris.spec ++++++ --- /var/tmp/diff_new_pack.xElPso/_old 2023-09-06 19:02:06.895946645 +0200 +++ /var/tmp/diff_new_pack.xElPso/_new 2023-09-06 19:02:06.903946930 +0200 @@ -19,7 +19,7 @@ %define __arch_install_post export NO_BRP_STRIP_DEBUG=true Name: polaris -Version: 8.4.0 +Version: 8.5.1 Release: 0 Summary: Validation of best practices in your Kubernetes clusters License: Apache-2.0 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.xElPso/_old 2023-09-06 19:02:06.931947929 +0200 +++ /var/tmp/diff_new_pack.xElPso/_new 2023-09-06 19:02:06.935948071 +0200 @@ -1,13 +1,13 @@ <services> - <service name="obs_scm" mode="disabled"> + <service name="obs_scm" mode="manual"> <param name="url">https://github.com/FairwindsOps/polaris</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">8.4.0</param> + <param name="revision">8.5.1</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">enable</param> </service> - <service name="set_version" mode="disabled"> + <service name="set_version" mode="manual"> <param name="basename">polaris</param> </service> <service name="tar" mode="buildtime"/> @@ -15,7 +15,7 @@ <param name="file">*.tar</param> <param name="compression">gz</param> </service> - <service name="go_modules" mode="disabled"> + <service name="go_modules" mode="manual"> </service> </services> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.xElPso/_old 2023-09-06 19:02:06.967949212 +0200 +++ /var/tmp/diff_new_pack.xElPso/_new 2023-09-06 19:02:06.971949354 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/FairwindsOps/polaris</param> - <param name="changesrevision">e7eb079921622bd896976c5d7c81f0f72dabdcac</param></service></servicedata> + <param name="changesrevision">97687761a78388a3d00ad875601a19f48a0999ae</param></service></servicedata> (No newline at EOF) ++++++ polaris-8.4.0.obscpio -> polaris-8.5.1.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polaris-8.4.0/checks/topologySpreadConstraint.yaml new/polaris-8.5.1/checks/topologySpreadConstraint.yaml --- old/polaris-8.4.0/checks/topologySpreadConstraint.yaml 2023-07-13 19:33:15.000000000 +0200 +++ new/polaris-8.5.1/checks/topologySpreadConstraint.yaml 2023-09-05 19:15:45.000000000 +0200 @@ -2,6 +2,10 @@ failureMessage: Pod should be configured with a valid topology spread constraint category: Reliability target: PodSpec +controllers: + exclude: + - Job + - CronJob schema: '$schema': http://json-schema.org/draft-07/schema type: object @@ -10,12 +14,4 @@ properties: topologySpreadConstraints: type: array - items: - type: object - properties: - topologyKey: - anyOf: - - type: string - const: "kubernetes.io/hostname" - - type: string - const: "topology.kubernetes.io/zone" + minItems: 1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polaris-8.4.0/cmd/polaris/audit.go new/polaris-8.5.1/cmd/polaris/audit.go --- old/polaris-8.4.0/cmd/polaris/audit.go 2023-07-13 19:33:15.000000000 +0200 +++ new/polaris-8.5.1/cmd/polaris/audit.go 2023-09-05 19:15:45.000000000 +0200 @@ -49,7 +49,8 @@ resourceToAudit string useColor bool helmChart string - helmValues string + helmValues []string + helmSkipTests bool checks []string auditNamespace string severityLevel string @@ -71,7 +72,8 @@ auditCmd.PersistentFlags().StringVar(&displayName, "display-name", "", "An optional identifier for the audit.") auditCmd.PersistentFlags().StringVar(&resourceToAudit, "resource", "", "Audit a specific resource, in the format namespace/kind/version/name, e.g. nginx-ingress/Deployment.apps/v1/default-backend.") auditCmd.PersistentFlags().StringVar(&helmChart, "helm-chart", "", "Will fill out Helm template") - auditCmd.PersistentFlags().StringVar(&helmValues, "helm-values", "", "Optional flag to add helm values") + auditCmd.PersistentFlags().StringSliceVar(&helmValues, "helm-values", []string{}, "Optional flag to add helm values") + auditCmd.PersistentFlags().BoolVar(&helmSkipTests, "helm-skip-tests", false, "Corresponds to --skip-tests of helm template") auditCmd.PersistentFlags().StringSliceVar(&checks, "checks", []string{}, "Optional flag to specify specific checks to check") auditCmd.PersistentFlags().StringVar(&auditNamespace, "namespace", "", "Namespace to audit. Only applies to in-cluster audits") auditCmd.PersistentFlags().StringVar(&severityLevel, "severity", "", "Severity level used to filter results. Behaves like log levels. 'danger' is the least verbose (warning, danger)") @@ -110,7 +112,7 @@ } if helmChart != "" { var err error - auditPath, err = ProcessHelmTemplates(helmChart, helmValues) + auditPath, err = ProcessHelmTemplates(helmChart, helmValues, helmSkipTests) if err != nil { logrus.Errorf("Couldn't process helm chart: %v", err) os.Exit(1) @@ -196,7 +198,7 @@ } // ProcessHelmTemplates turns helm into yaml to be processed by Polaris or the other tools. -func ProcessHelmTemplates(helmChart, helmValues string) (string, error) { +func ProcessHelmTemplates(helmChart string, helmValues []string, helmSkipTests bool) (string, error) { cmd := exec.Command("helm", "dependency", "update", helmChart) output, err := cmd.CombinedOutput() if err != nil { @@ -214,8 +216,12 @@ "--output-dir", dir, } - if helmValues != "" { - params = append(params, "--values", helmValues) + for _, v := range helmValues { + params = append(params, "--values", v) + } + + if helmSkipTests { + params = append(params, "--skip-tests") } cmd = exec.Command("helm", params...) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polaris-8.4.0/docs/cli.md new/polaris-8.5.1/docs/cli.md --- old/polaris-8.4.0/docs/cli.md 2023-07-13 19:33:15.000000000 +0200 +++ new/polaris-8.5.1/docs/cli.md 2023-09-05 19:15:45.000000000 +0200 @@ -9,14 +9,18 @@ # top-level commands audit Runs a one-time audit. +auth + Authenticate polaris with Fairwinds Insights dashboard Runs the webserver for Polaris dashboard. +fix + Fix Infrastructure as code files. help Prints help, if you give it a command then it will print help for that command. Same as -h version Prints the version of Polaris webhook - Runs the webhook webserver + Runs the webhook webserver. # global flags -c, --config string Location of Polaris configuration file. @@ -25,6 +29,7 @@ --disallow-config-exemptions Disallow exemptions set within the configuration file. --disallow-annotation-exemptions Disallow any exemption defined as a controller annotation. --kubeconfig string Paths to a kubeconfig. Only required if out-of-cluster. + --insights-host string Fairwinds Insights host URL. (default "https://insights.fairwinds.com") --log-level string Logrus log level. (default "info") # dashboard flags @@ -38,12 +43,14 @@ # audit flags --audit-path string If specified, audits one or more YAML files instead of a cluster. - --checks stringArray Optional flag to specify specific checks to check + --checks strings Optional flag to specify specific checks to check + --cluster-name string Set --cluster-name to a descriptive name for the cluster you're auditing --color Whether to use color in pretty format. (default true) --display-name string An optional identifier for the audit. -f, --format string Output format for results - json, yaml, pretty, or score. (default "json") --helm-chart string Will fill out Helm template --helm-values string Optional flag to add helm values + --helm-skip-tests bool Corresponds to --skip-tests of helm template -h, --help help for audit --namespace string Namespace to audit. Only applies to in-cluster audits --only-show-failed-tests If specified, audit output will only show failed tests. @@ -56,9 +63,21 @@ --skip-ssl-validation Skip https certificate verification --upload-insights Upload scan results to Fairwinds Insights +# fix flags + --checks strings Optional flag to specify specific checks to fix eg. checks=hostIPCSet,hostPIDSet and checks=all applies fix to all defined checks mutations + --files-path string mutate and fix one or more YAML files in a specified folder +-h, --help help for fix + --template set to true when modifyng a YAML template, like a Helm chart (experimental) + + # webhook flags --disable-webhook-config-installer disable the installer in the webhook server, so it won't install webhook configuration resources during bootstrapping. -h, --help help for webhook -p, --port int Port for the dashboard webserver. (default 9876) -``` +# auth sub-commands + login Authenticate polaris with Fairwinds Insights. + logout Log out of a Fairwinds Insights. + status View authentication status. + token Print the auth token gh is configured to use. +``` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polaris-8.4.0/go.mod new/polaris-8.5.1/go.mod --- old/polaris-8.4.0/go.mod 2023-07-13 19:33:15.000000000 +0200 +++ new/polaris-8.5.1/go.mod 2023-09-05 19:15:45.000000000 +0200 @@ -17,7 +17,7 @@ gomodules.xyz/jsonpatch/v2 v2.3.0 gopkg.in/yaml.v3 v3.0.1 k8s.io/api v0.27.3 - k8s.io/apimachinery v0.27.3 + k8s.io/apimachinery v0.27.4 k8s.io/client-go v0.27.3 sigs.k8s.io/controller-runtime v0.15.0 sigs.k8s.io/yaml v1.3.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polaris-8.4.0/go.sum new/polaris-8.5.1/go.sum --- old/polaris-8.4.0/go.sum 2023-07-13 19:33:15.000000000 +0200 +++ new/polaris-8.5.1/go.sum 2023-09-05 19:15:45.000000000 +0200 @@ -777,8 +777,8 @@ k8s.io/api v0.27.3 h1:yR6oQXXnUEBWEWcvPWS0jQL575KoAboQPfJAuKNrw5Y= k8s.io/api v0.27.3/go.mod h1:C4BNvZnQOF7JA/0Xed2S+aUyJSfTGkGFxLXz9MnpIpg= k8s.io/apiextensions-apiserver v0.27.2 h1:iwhyoeS4xj9Y7v8YExhUwbVuBhMr3Q4bd/laClBV6Bo= -k8s.io/apimachinery v0.27.3 h1:Ubye8oBufD04l9QnNtW05idcOe9Z3GQN8+7PqmuVcUM= -k8s.io/apimachinery v0.27.3/go.mod h1:XNfZ6xklnMCOGGFNqXG7bUrQCoR04dh/E7FprV6pb+E= +k8s.io/apimachinery v0.27.4 h1:CdxflD4AF61yewuid0fLl6bM4a3q04jWel0IlP+aYjs= +k8s.io/apimachinery v0.27.4/go.mod h1:XNfZ6xklnMCOGGFNqXG7bUrQCoR04dh/E7FprV6pb+E= k8s.io/client-go v0.27.3 h1:7dnEGHZEJld3lYwxvLl7WoehK6lAq7GvgjxpA3nv1E8= k8s.io/client-go v0.27.3/go.mod h1:2MBEKuTo6V1lbKy3z1euEGnhPfGZLKTS9tiJ2xodM48= k8s.io/component-base v0.27.2 h1:neju+7s/r5O4x4/txeUONNTS9r1HsPbyoPBAtHsDCpo= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polaris-8.4.0/pkg/config/schema.go new/polaris-8.5.1/pkg/config/schema.go --- old/polaris-8.4.0/pkg/config/schema.go 2023-07-13 19:33:15.000000000 +0200 +++ new/polaris-8.5.1/pkg/config/schema.go 2023-09-05 19:15:45.000000000 +0200 @@ -143,6 +143,9 @@ } func parseQuantity(i interface{}) (resource.Quantity, *[]jsonschema.ValError) { + if resNum, ok := i.(float64); ok { + i = fmt.Sprintf("%f", resNum) + } resStr, ok := i.(string) if !ok { return resource.Quantity{}, &[]jsonschema.ValError{ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polaris-8.4.0/test/checks/resourceRange/check.yaml new/polaris-8.5.1/test/checks/resourceRange/check.yaml --- old/polaris-8.4.0/test/checks/resourceRange/check.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/polaris-8.5.1/test/checks/resourceRange/check.yaml 2023-09-05 19:15:45.000000000 +0200 @@ -0,0 +1,32 @@ +containers: + exclude: + - initContainer +successMessage: Resource limits are within the required range +failureMessage: Resource limits should be within the required range +category: Resources +target: Container +schema: + '$schema': http://json-schema.org/draft-07/schema + type: object + required: + - resources + properties: + resources: + type: object + required: + - limits + properties: + limits: + type: object + required: + - memory + - cpu + properties: + memory: + type: string + resourceMinimum: 100Mi # 104857600 bytes + resourceMaximum: 6G + cpu: + type: string + resourceMinimum: 100m + resourceMaximum: "2" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polaris-8.4.0/test/checks/resourceRange/failure.cpu-number.yaml new/polaris-8.5.1/test/checks/resourceRange/failure.cpu-number.yaml --- old/polaris-8.4.0/test/checks/resourceRange/failure.cpu-number.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/polaris-8.5.1/test/checks/resourceRange/failure.cpu-number.yaml 2023-09-05 19:15:45.000000000 +0200 @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Pod +metadata: + name: nginx + labels: + app.kubernetes.io/name: nginx +spec: + containers: + - name: nginx + image: nginx + resources: + limits: + memory: 250Mi + cpu: 0.05 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polaris-8.4.0/test/checks/resourceRange/failure.mem-number.yaml new/polaris-8.5.1/test/checks/resourceRange/failure.mem-number.yaml --- old/polaris-8.4.0/test/checks/resourceRange/failure.mem-number.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/polaris-8.5.1/test/checks/resourceRange/failure.mem-number.yaml 2023-09-05 19:15:45.000000000 +0200 @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Pod +metadata: + name: nginx + labels: + app.kubernetes.io/name: nginx +spec: + containers: + - name: nginx + image: nginx + resources: + limits: + memory: 104857599 + cpu: 1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polaris-8.4.0/test/checks/resourceRange/success.cpu-number.yaml new/polaris-8.5.1/test/checks/resourceRange/success.cpu-number.yaml --- old/polaris-8.4.0/test/checks/resourceRange/success.cpu-number.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/polaris-8.5.1/test/checks/resourceRange/success.cpu-number.yaml 2023-09-05 19:15:45.000000000 +0200 @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Pod +metadata: + name: nginx + labels: + app.kubernetes.io/name: nginx +spec: + containers: + - name: nginx + image: nginx + resources: + limits: + memory: 250Mi + cpu: 1.5 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polaris-8.4.0/test/checks/resourceRange/success.mem-number.yaml new/polaris-8.5.1/test/checks/resourceRange/success.mem-number.yaml --- old/polaris-8.4.0/test/checks/resourceRange/success.mem-number.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/polaris-8.5.1/test/checks/resourceRange/success.mem-number.yaml 2023-09-05 19:15:45.000000000 +0200 @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Pod +metadata: + name: nginx + labels: + app.kubernetes.io/name: nginx +spec: + containers: + - name: nginx + image: nginx + resources: + limits: + memory: 104857600 + cpu: 1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polaris-8.4.0/test/checks/topologySpreadConstraint/failure.empty.yaml new/polaris-8.5.1/test/checks/topologySpreadConstraint/failure.empty.yaml --- old/polaris-8.4.0/test/checks/topologySpreadConstraint/failure.empty.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/polaris-8.5.1/test/checks/topologySpreadConstraint/failure.empty.yaml 2023-09-05 19:15:45.000000000 +0200 @@ -0,0 +1,62 @@ +# Source: basic-demo/templates/deployment.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: demo-basic-demo + labels: + app.kubernetes.io/name: basic-demo + helm.sh/chart: basic-demo-0.5.2 + app.kubernetes.io/instance: demo + app.kubernetes.io/managed-by: Helm +spec: + selector: + matchLabels: + app.kubernetes.io/name: basic-demo + app.kubernetes.io/instance: demo + template: + metadata: + labels: + app.kubernetes.io/name: basic-demo + app.kubernetes.io/instance: demo + spec: + topologySpreadConstraints: [] + containers: + - name: basic-demo + image: "quay.io/fairwinds/docker-demo:latest" + imagePullPolicy: Always + env: + - name: REFRESH_INTERVAL + value: "500" + - name: TITLE + value: "Kubernetes Demo" + - name: METADATA + value: "" + ports: + - name: http + containerPort: 8080 + protocol: TCP + securityContext: + runAsUser: 1200 + allowPrivilegeEscalation: false + privileged: false + readOnlyRootFilesystem: true + runAsNonRoot: true + capabilities: + drop: + - ALL + livenessProbe: + httpGet: + path: / + port: http + readinessProbe: + httpGet: + path: / + port: http + resources: + limits: + cpu: 1 + memory: 100Mi + requests: + cpu: 100m + memory: 100Mi + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polaris-8.4.0/test/checks/topologySpreadConstraint/failure.invalidtopologykey.yaml new/polaris-8.5.1/test/checks/topologySpreadConstraint/failure.invalidtopologykey.yaml --- old/polaris-8.4.0/test/checks/topologySpreadConstraint/failure.invalidtopologykey.yaml 2023-07-13 19:33:15.000000000 +0200 +++ new/polaris-8.5.1/test/checks/topologySpreadConstraint/failure.invalidtopologykey.yaml 1970-01-01 01:00:00.000000000 +0100 @@ -1,65 +0,0 @@ -# Source: basic-demo/templates/deployment.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: demo-basic-demo - labels: - app.kubernetes.io/name: basic-demo - helm.sh/chart: basic-demo-0.5.2 - app.kubernetes.io/instance: demo - app.kubernetes.io/managed-by: Helm -spec: - selector: - matchLabels: - app.kubernetes.io/name: basic-demo - app.kubernetes.io/instance: demo - template: - metadata: - labels: - app.kubernetes.io/name: basic-demo - app.kubernetes.io/instance: demo - spec: - topologySpreadConstraints: - - maxSkew: 1 - topologyKey: farglebargle - whenUnsatisfiable: ScheduleAnyway - containers: - - name: basic-demo - image: "quay.io/fairwinds/docker-demo:latest" - imagePullPolicy: Always - env: - - name: REFRESH_INTERVAL - value: "500" - - name: TITLE - value: "Kubernetes Demo" - - name: METADATA - value: "" - ports: - - name: http - containerPort: 8080 - protocol: TCP - securityContext: - runAsUser: 1200 - allowPrivilegeEscalation: false - privileged: false - readOnlyRootFilesystem: true - runAsNonRoot: true - capabilities: - drop: - - ALL - livenessProbe: - httpGet: - path: / - port: http - readinessProbe: - httpGet: - path: / - port: http - resources: - limits: - cpu: 1 - memory: 100Mi - requests: - cpu: 100m - memory: 100Mi - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/polaris-8.4.0/test/checks/topologySpreadConstraint/success.yaml new/polaris-8.5.1/test/checks/topologySpreadConstraint/success.yaml --- old/polaris-8.4.0/test/checks/topologySpreadConstraint/success.yaml 2023-07-13 19:33:15.000000000 +0200 +++ new/polaris-8.5.1/test/checks/topologySpreadConstraint/success.yaml 2023-09-05 19:15:45.000000000 +0200 @@ -21,8 +21,13 @@ spec: topologySpreadConstraints: - maxSkew: 1 - topologyKey: "topology.kubernetes.io/zone" - whenUnsatisfiable: ScheduleAnyway + topologyKey: kubernetes.io/hostname + whenUnsatisfiable: DoNotSchedule + labelSelector: + matchLabels: + app: foo + matchLabelKeys: + - pod-template-hash containers: - name: basic-demo image: "quay.io/fairwinds/docker-demo:latest" ++++++ polaris.obsinfo ++++++ --- /var/tmp/diff_new_pack.xElPso/_old 2023-09-06 19:02:07.283960477 +0200 +++ /var/tmp/diff_new_pack.xElPso/_new 2023-09-06 19:02:07.287960620 +0200 @@ -1,5 +1,5 @@ name: polaris -version: 8.4.0 -mtime: 1689269595 -commit: e7eb079921622bd896976c5d7c81f0f72dabdcac +version: 8.5.1 +mtime: 1693934145 +commit: 97687761a78388a3d00ad875601a19f48a0999ae ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/polaris/vendor.tar.gz /work/SRC/openSUSE:Factory/.polaris.new.1766/vendor.tar.gz differ: char 5, line 1