Bug 1287822
Summary: | Review Request: origin - OpenShift Open Source Container Management by Red Hat | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Adam Miller <admiller> |
Component: | Package Review | Assignee: | Troy Dawson <tdawson> |
Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | rawhide | CC: | misc, package-review, panemade, tdawson, walters |
Target Milestone: | --- | Flags: | tdawson:
fedora-review+
|
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2016-01-12 22:59:42 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Adam Miller
2015-12-02 18:43:49 UTC
Worth noting here the current `kubernetes` package actually is openshift/origin right now since http://pkgs.fedoraproject.org/cgit/kubernetes.git/commit/?id=2aa44d2f9bac8239851fddfe94095f28aaf523c5 If we do this, would we switch the current `kubernetes` package back to upstream kube? I was uner the impression that kubernetes package was using the bundled version of kubernetes inside the openshift source in the Godeps as it's source, which is upstream kubernetes. It's a snapshot that can be mapped back upstream to the git commit id. I think the motivation behind using the openshift source was to keep the version of kubernetes in the kubernetes package and the version of kubernetes built into the origin openshift package the same. I suppose the maintainer of kubernetes could deviate if there's motivation, but I'm not involved in the kubernetes packaging anymore. So the 330 bundled provides make me sad at the idea of maintaining a stable version and bug fixes, but I guess since guidelines have been relaxed, that's acceptable. However, I have a few questions: - Why is there test for %if "%{dist}" == ".el7aos" ? Is this specs file supposed to be used for more than Fedora/EPEL ? - you should remove %defattr around, since that's no longer needed. - why a obsolete, since that's a new package ? (ie, we usually do not deal with externnal package to Fedora in Fedora, so why the exception for this one ?) - the summary is not that helpful, and description is just a copy of the summary - the specs file mention it being generated directly by upstream. I am not sure if that's a common practice, as it was refused for sugar, for example. - License must be tagged %license. Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated [ ] = Manual review needed Issues: ======= - License file LICENSE is marked as %doc instead of %license See: http://fedoraproject.org/wiki/Packaging/LicensingGuidelines#License_Text - The clients and tuned-profiles-origin-node package can be installed without the main package, which has the license. They to need a license when installed. - There are several directories not owned by any package. All of them are in the origin-sdn-ovs package, so I suggest it get fixed there. %{kube_plugin_path} %{_unitdir}/docker.service.d/ %{_unitdir}/origin-node.service.d/ - If this package isn't going to be for older distributions, it would be cleaner to remove the %defattr ===== MUST items ===== C/C++: [X]: Package does not contain kernel modules. [-]: Package contains no static executables. Note: This is a Go package, not a C package. Go has static executables. [x]: Package does not contain any libtool archives (.la) [x]: Rpath absent or only used for internal libs. Generic: [X]: Package is licensed with an open-source compatible license and meets other legal requirements as defined in the legal section of Packaging Guidelines. [!]: License file installed when any subpackage combination is installed. [!]: Package requires other packages for directories it uses. Note: No known owner of /usr/libexec/kubernetes/kubelet- plugins/net/exec, /usr/lib/systemd/system/docker.service.d, /usr/libexec/kubernetes, /usr/libexec/kubernetes/kubelet-plugins, /usr/lib/systemd/system/origin-node.service.d, /usr/libexec/kubernetes /kubelet-plugins/net/exec/redhat~openshift-ovs-subnet, /usr/libexec/kubernetes/kubelet-plugins/net [X]: %build honors applicable compiler flags or justifies otherwise. [X]: Package contains no bundled libraries without FPC exception. [X]: Changelog in prescribed format. [X]: Sources contain only permissible code or content. [X|!]: Each %files section contains %defattr if rpm < 4.4 Note: %defattr present but not needed [-]: Package contains desktop file if it is a GUI application. [-]: Development files must be in a -devel package [X]: Package uses nothing in %doc for runtime. [X]: Package consistently uses macros (instead of hard-coded directory names). [X]: Package is named according to the Package Naming Guidelines. [X]: Package does not generate any conflict. [X]: Package obeys FHS, except libexecdir and /usr/target. [X]: If the package is a rename of another package, proper Obsoletes and Provides are present. [X]: Requires correct, justified where necessary. [X]: Spec file is legible and written in American English. [X]: Package contains systemd file(s) if in need. [-]: Useful -debuginfo package or justification otherwise. [X]: Package is not known to require an ExcludeArch tag. [X]: Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files. Note: Documentation size is 30720 bytes in 2 files. [X]: Package complies to the Packaging Guidelines [x]: Package successfully compiles and builds into binary rpms on at least one supported primary architecture. [x]: Package installs properly. [x]: Rpmlint is run on all rpms the build produces. Note: There are rpmlint messages (see attachment). [x]: Package does not own files or directories owned by other packages. [x]: All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines. [x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT [x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the beginning of %install. [x]: %config files are marked noreplace or the reason is justified. [x]: Macros in Summary, %description expandable at SRPM build time. [x]: Dist tag is present. [x]: Package does not contain duplicates in %files. [x]: Permissions on files are set properly. [x]: Package use %makeinstall only when make install DESTDIR=... doesn't work. [x]: Package is named using only allowed ASCII characters. [x]: No %config files under /usr. [x]: Package does not use a name that already exists. [x]: Package is not relocatable. [x]: Sources used to build the package match the upstream source, as provided in the spec URL. [x]: Spec file name must match the spec package %{name}, in the format %{name}.spec. [x]: File names are valid UTF-8. [x]: Packages must not store files under /srv, /opt or /usr/local ===== SHOULD items ===== Generic: [-]: If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it. [X]: Final provides and requires are sane (see attachments). [X]: Fully versioned dependency in subpackages if applicable. [?]: Package functions as described. [X]: Latest version is packaged. [X]: Package does not include license text files separate from upstream. [X]: Scriptlets must be sane, if used. [-]: Description and summary sections in the package spec file contains translations for supported Non-English languages, if available. [!]: %check is present and all tests pass. Note: There is currently no upstream tests [X]: Packages should try to preserve timestamps of original installed files. [x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file [x]: Sources can be downloaded from URI in Source: tag [x]: Reviewer should test that the package builds in mock. [x]: Buildroot is not present [x]: Package has no %clean section with rm -rf %{buildroot} (or $RPM_BUILD_ROOT) [x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin. [x]: SourceX is a working URL. [x]: Package should compile and build into binary rpms on all supported architectures. [x]: Spec use %global instead of %define unless justified. ===== EXTRA items ===== Generic: [x]: Rpmlint is run on all installed packages. Note: There are rpmlint messages (see attachment). [x]: Large data in /usr/share should live in a noarch subpackage if package is arched. [x]: Spec file according to URL is the same as in SRPM. Rpmlint ------- Checking: origin-1.1-0.git.0.ac7a99a.fc24.x86_64.rpm origin-master-1.1-0.git.0.ac7a99a.fc24.x86_64.rpm origin-node-1.1-0.git.0.ac7a99a.fc24.x86_64.rpm tuned-profiles-origin-node-1.1-0.git.0.ac7a99a.fc24.x86_64.rpm origin-clients-1.1-0.git.0.ac7a99a.fc24.x86_64.rpm origin-dockerregistry-1.1-0.git.0.ac7a99a.fc24.x86_64.rpm origin-pod-1.1-0.git.0.ac7a99a.fc24.x86_64.rpm origin-recycle-1.1-0.git.0.ac7a99a.fc24.x86_64.rpm origin-sdn-ovs-1.1-0.git.0.ac7a99a.fc24.x86_64.rpm origin-1.1-0.git.0.ac7a99a.fc24.src.rpm origin.x86_64: W: obsolete-not-provided openshift origin.x86_64: E: useless-provides bundled(golang(k8s.io/kubernetes/pkg/securitycontextconstraints)) origin.x86_64: W: unstripped-binary-or-object /usr/bin/openshift origin.x86_64: W: non-conffile-in-etc /etc/bash_completion.d/openshift origin.x86_64: E: sourced-script-with-shebang /etc/bash_completion.d/openshift /bin/bash origin.x86_64: W: non-conffile-in-etc /etc/bash_completion.d/oadm origin.x86_64: E: sourced-script-with-shebang /etc/bash_completion.d/oadm /bin/bash origin.x86_64: W: non-conffile-in-etc /etc/bash_completion.d/atomic-enterprise origin.x86_64: E: sourced-script-with-shebang /etc/bash_completion.d/atomic-enterprise /bin/bash origin.x86_64: W: no-manual-page-for-binary atomic-enterprise origin.x86_64: W: no-manual-page-for-binary kubelet origin.x86_64: W: no-manual-page-for-binary kube-apiserver origin.x86_64: W: no-manual-page-for-binary openshift-sti-build origin.x86_64: W: no-manual-page-for-binary kube-controller-manager origin.x86_64: W: no-manual-page-for-binary openshift-router origin.x86_64: W: no-manual-page-for-binary openshift-docker-build origin.x86_64: W: no-manual-page-for-binary oadm origin.x86_64: W: no-manual-page-for-binary openshift origin.x86_64: W: no-manual-page-for-binary kube-scheduler origin.x86_64: W: no-manual-page-for-binary origin origin.x86_64: W: no-manual-page-for-binary kube-proxy origin.x86_64: W: no-manual-page-for-binary openshift-deploy origin.x86_64: W: no-manual-page-for-binary kubernetes origin.x86_64: W: dangerous-command-in-%pre ln origin-master.x86_64: W: obsolete-not-provided openshift-master origin-master.x86_64: W: no-documentation origin-master.x86_64: E: non-readable /etc/origin/admin.key 0 origin-master.x86_64: E: non-readable /etc/origin/master.kubelet-client.crt 0 origin-master.x86_64: E: non-readable /etc/origin/ca.serial.txt 0 origin-master.x86_64: E: non-readable /etc/origin/openshift-master.key 0 origin-master.x86_64: E: non-readable /etc/origin/master.kubelet-client.key 0 origin-master.x86_64: E: non-readable /etc/origin/openshift-master.kubeconfig 0 origin-master.x86_64: E: non-readable /etc/origin/openshift-router.kubeconfig 0 origin-master.x86_64: E: non-readable /etc/origin/openshift-router.key 0 origin-master.x86_64: E: non-readable /etc/origin/serviceaccounts.public.key 0 origin-master.x86_64: E: non-readable /etc/origin/etcd.server.key 0 origin-master.x86_64: E: non-readable /etc/origin/openshift-registry.crt 0 origin-master.x86_64: E: non-readable /etc/origin/admin.kubeconfig 0 origin-master.x86_64: E: non-readable /etc/origin/master.etcd-client.crt 0 origin-master.x86_64: E: non-readable /etc/origin/serviceaccounts.private.key 0 origin-master.x86_64: E: non-readable /etc/origin/openshift-registry.kubeconfig 0 origin-master.x86_64: E: non-readable /etc/origin/ca.crt 0 origin-master.x86_64: E: non-readable /etc/origin/admin.crt 0 origin-master.x86_64: E: non-readable /etc/origin/master.server.key 0 origin-master.x86_64: E: non-readable /etc/origin/openshift-router.crt 0 origin-master.x86_64: E: non-readable /etc/origin/master-config.yaml 0 origin-master.x86_64: E: non-readable /etc/origin/master.etcd-client.key 0 origin-master.x86_64: E: non-readable /etc/origin/etcd.server.crt 0 origin-master.x86_64: E: non-readable /etc/origin/openshift-master.crt 0 origin-master.x86_64: E: non-readable /etc/origin/ca.key 0 origin-master.x86_64: E: non-readable /etc/origin/policy.json 0 origin-master.x86_64: E: non-readable /etc/origin/openshift-registry.key 0 origin-master.x86_64: E: non-readable /etc/origin/master.server.crt 0 origin-master.x86_64: W: empty-%postun origin-node.x86_64: W: obsolete-not-provided openshift-node origin-node.x86_64: W: no-documentation origin-node.x86_64: W: empty-%postun tuned-profiles-origin-node.x86_64: W: obsolete-not-provided tuned-profiles-openshift-node tuned-profiles-origin-node.x86_64: W: only-non-binary-in-usr-lib tuned-profiles-origin-node.x86_64: W: manual-page-warning /usr/share/man/man7/tuned-profiles-origin-node.7.gz 46: warning: macro `NF' not defined origin-clients.x86_64: W: obsolete-not-provided openshift-clients origin-clients.x86_64: W: unstripped-binary-or-object /usr/bin/oc origin-clients.x86_64: W: no-documentation origin-clients.x86_64: W: non-conffile-in-etc /etc/bash_completion.d/oc origin-clients.x86_64: E: sourced-script-with-shebang /etc/bash_completion.d/oc /bin/bash origin-clients.x86_64: W: no-manual-page-for-binary oc origin-clients.x86_64: W: no-manual-page-for-binary kubectl origin-dockerregistry.x86_64: W: unstripped-binary-or-object /usr/bin/dockerregistry origin-dockerregistry.x86_64: W: no-documentation origin-dockerregistry.x86_64: W: no-manual-page-for-binary dockerregistry origin-pod.x86_64: W: unstripped-binary-or-object /usr/bin/pod origin-pod.x86_64: E: statically-linked-binary /usr/bin/pod origin-pod.x86_64: W: no-documentation origin-pod.x86_64: W: no-manual-page-for-binary pod origin-recycle.x86_64: W: unstripped-binary-or-object /usr/bin/recycle origin-recycle.x86_64: E: statically-linked-binary /usr/bin/recycle origin-recycle.x86_64: W: no-documentation origin-recycle.x86_64: W: no-manual-page-for-binary recycle origin-sdn-ovs.x86_64: W: spelling-error Summary(en_US) vSwitch -> v Switch, switch, vs witch origin-sdn-ovs.x86_64: W: spelling-error %description -l en_US vSwitch -> v Switch, switch, vs witch origin-sdn-ovs.x86_64: W: obsolete-not-provided openshift-sdn-ovs origin-sdn-ovs.x86_64: W: no-documentation origin-sdn-ovs.x86_64: W: no-manual-page-for-binary openshift-ovs-multitenant origin-sdn-ovs.x86_64: W: no-manual-page-for-binary openshift-sdn-multitenant-setup.sh origin-sdn-ovs.x86_64: W: no-manual-page-for-binary openshift-sdn-kube-subnet-setup.sh origin.src:17: W: macro-in-comment %commit origin.src:17: W: macro-in-comment %ldflags origin.src:481: W: rpm-buildroot-usage %build export GOPATH=$(pwd)/_build:$(pwd)/_thirdpartyhacks:%{buildroot}%{gopath}:%{gopath} origin.src:540: E: hardcoded-library-path in %{_prefix}/lib/tuned/%{name}-node-{guest origin.src:541: E: hardcoded-library-path in %{_prefix}/lib/tuned/%{name}-node-guest/tuned.conf origin.src:542: E: hardcoded-library-path in %{_prefix}/lib/tuned/%{name}-node-host/tuned.conf origin.src:687: E: hardcoded-library-path in %{_prefix}/lib/tuned/%{name}-node-host origin.src:688: E: hardcoded-library-path in %{_prefix}/lib/tuned/%{name}-node-guest 10 packages and 0 specfiles checked; 39 errors, 54 warnings. Rpmlint (installed packages) ---------------------------- origin.x86_64: W: obsolete-not-provided openshift origin.x86_64: E: useless-provides bundled(golang(k8s.io/kubernetes/pkg/securitycontextconstraints)) origin.x86_64: W: unstripped-binary-or-object /usr/bin/openshift origin.x86_64: W: non-conffile-in-etc /etc/bash_completion.d/oadm origin.x86_64: E: sourced-script-with-shebang /etc/bash_completion.d/oadm /bin/bash origin.x86_64: W: non-conffile-in-etc /etc/bash_completion.d/atomic-enterprise origin.x86_64: E: sourced-script-with-shebang /etc/bash_completion.d/atomic-enterprise /bin/bash origin.x86_64: W: non-conffile-in-etc /etc/bash_completion.d/openshift origin.x86_64: E: sourced-script-with-shebang /etc/bash_completion.d/openshift /bin/bash origin.x86_64: W: no-manual-page-for-binary atomic-enterprise origin.x86_64: W: no-manual-page-for-binary openshift-docker-build origin.x86_64: W: no-manual-page-for-binary openshift-deploy origin.x86_64: W: no-manual-page-for-binary kube-proxy origin.x86_64: W: no-manual-page-for-binary oadm origin.x86_64: W: no-manual-page-for-binary kubelet origin.x86_64: W: no-manual-page-for-binary origin origin.x86_64: W: no-manual-page-for-binary openshift-sti-build origin.x86_64: W: no-manual-page-for-binary openshift-router origin.x86_64: W: no-manual-page-for-binary kube-controller-manager origin.x86_64: W: no-manual-page-for-binary openshift origin.x86_64: W: no-manual-page-for-binary kube-apiserver origin.x86_64: W: no-manual-page-for-binary kubernetes origin.x86_64: W: no-manual-page-for-binary kube-scheduler origin.x86_64: W: dangerous-command-in-%pre ln tuned-profiles-origin-node.x86_64: W: obsolete-not-provided tuned-profiles-openshift-node tuned-profiles-origin-node.x86_64: W: only-non-binary-in-usr-lib tuned-profiles-origin-node.x86_64: W: manual-page-warning /usr/share/man/man7/tuned-profiles-origin-node.7.gz 46: warning: macro `NF' not defined origin-recycle.x86_64: W: unstripped-binary-or-object /usr/bin/recycle origin-recycle.x86_64: W: ldd-failed /usr/bin/recycle origin-recycle.x86_64: E: statically-linked-binary /usr/bin/recycle origin-recycle.x86_64: W: no-documentation origin-recycle.x86_64: W: no-manual-page-for-binary recycle origin-clients.x86_64: W: obsolete-not-provided openshift-clients origin-clients.x86_64: W: unstripped-binary-or-object /usr/bin/oc origin-clients.x86_64: W: no-documentation origin-clients.x86_64: W: non-conffile-in-etc /etc/bash_completion.d/oc origin-clients.x86_64: E: sourced-script-with-shebang /etc/bash_completion.d/oc /bin/bash origin-clients.x86_64: W: no-manual-page-for-binary kubectl origin-clients.x86_64: W: no-manual-page-for-binary oc origin-master.x86_64: W: obsolete-not-provided openshift-master origin-master.x86_64: W: no-documentation origin-master.x86_64: E: non-readable /etc/origin/openshift-registry.key 0 origin-master.x86_64: E: non-readable /etc/origin/policy.json 0 origin-master.x86_64: E: non-readable /etc/origin/openshift-router.crt 0 origin-master.x86_64: E: non-readable /etc/origin/master-config.yaml 0 origin-master.x86_64: E: non-readable /etc/origin/admin.key 0 origin-master.x86_64: E: non-readable /etc/origin/master.etcd-client.crt 0 origin-master.x86_64: E: non-readable /etc/origin/openshift-master.key 0 origin-master.x86_64: E: non-readable /etc/origin/openshift-registry.kubeconfig 0 origin-master.x86_64: E: non-readable /etc/origin/openshift-router.key 0 origin-master.x86_64: E: non-readable /etc/origin/master.etcd-client.key 0 origin-master.x86_64: E: non-readable /etc/origin/ca.serial.txt 0 origin-master.x86_64: E: non-readable /etc/origin/serviceaccounts.public.key 0 origin-master.x86_64: E: non-readable /etc/origin/master.kubelet-client.key 0 origin-master.x86_64: E: non-readable /etc/origin/etcd.server.crt 0 origin-master.x86_64: E: non-readable /etc/origin/admin.kubeconfig 0 origin-master.x86_64: E: non-readable /etc/origin/master.server.crt 0 origin-master.x86_64: E: non-readable /etc/origin/openshift-master.crt 0 origin-master.x86_64: E: non-readable /etc/origin/ca.crt 0 origin-master.x86_64: E: non-readable /etc/origin/master.server.key 0 origin-master.x86_64: E: non-readable /etc/origin/openshift-router.kubeconfig 0 origin-master.x86_64: E: non-readable /etc/origin/admin.crt 0 origin-master.x86_64: E: non-readable /etc/origin/openshift-master.kubeconfig 0 origin-master.x86_64: E: non-readable /etc/origin/master.kubelet-client.crt 0 origin-master.x86_64: E: non-readable /etc/origin/openshift-registry.crt 0 origin-master.x86_64: E: non-readable /etc/origin/ca.key 0 origin-master.x86_64: E: non-readable /etc/origin/serviceaccounts.private.key 0 origin-master.x86_64: E: non-readable /etc/origin/etcd.server.key 0 origin-master.x86_64: W: empty-%postun origin-pod.x86_64: W: unstripped-binary-or-object /usr/bin/pod origin-pod.x86_64: W: ldd-failed /usr/bin/pod origin-pod.x86_64: E: statically-linked-binary /usr/bin/pod origin-pod.x86_64: W: no-documentation origin-pod.x86_64: W: no-manual-page-for-binary pod origin-sdn-ovs.x86_64: W: obsolete-not-provided openshift-sdn-ovs origin-sdn-ovs.x86_64: W: no-documentation origin-sdn-ovs.x86_64: W: no-manual-page-for-binary openshift-sdn-kube-subnet-setup.sh origin-sdn-ovs.x86_64: W: no-manual-page-for-binary openshift-sdn-multitenant-setup.sh origin-sdn-ovs.x86_64: W: no-manual-page-for-binary openshift-ovs-multitenant origin-node.x86_64: W: obsolete-not-provided openshift-node origin-node.x86_64: W: no-documentation origin-node.x86_64: W: empty-%postun origin-dockerregistry.x86_64: W: unstripped-binary-or-object /usr/bin/dockerregistry origin-dockerregistry.x86_64: W: no-documentation origin-dockerregistry.x86_64: W: no-manual-page-for-binary dockerregistry 9 packages and 0 specfiles checked; 34 errors, 51 warnings. Requires -------- origin (rpmlib, GLIBC filtered): /bin/sh iptables libc.so.6()(64bit) libpthread.so.0()(64bit) origin-clients rtld(GNU_HASH) tuned-profiles-origin-node (rpmlib, GLIBC filtered): /bin/sh tuned origin-recycle (rpmlib, GLIBC filtered): origin origin-clients (rpmlib, GLIBC filtered): libc.so.6()(64bit) libpthread.so.0()(64bit) rtld(GNU_HASH) origin-master (rpmlib, GLIBC filtered): /bin/sh config(origin-master) origin systemd origin-pod (rpmlib, GLIBC filtered): origin origin-sdn-ovs (rpmlib, GLIBC filtered): /bin/bash bridge-utils ethtool openvswitch origin-node origin-node (rpmlib, GLIBC filtered): /bin/sh config(origin-node) docker-io ethtool nfs-utils origin socat systemd tuned-profiles-origin-node util-linux origin-dockerregistry (rpmlib, GLIBC filtered): libc.so.6()(64bit) libpthread.so.0()(64bit) origin rtld(GNU_HASH) Provides -------- origin: bundled(golang(bitbucket.org/ww/goautoneg)) bundled(golang(code.google.com/p/go-uuid/uuid)) bundled(golang(github.com/AaronO/go-git-http)) bundled(golang(github.com/AdRoll/goamz/aws)) bundled(golang(github.com/AdRoll/goamz/s3)) bundled(golang(github.com/ClusterHQ/flocker-go)) bundled(golang(github.com/MakeNowJust/heredoc)) bundled(golang(github.com/RangelReale/osin)) bundled(golang(github.com/RangelReale/osincli)) bundled(golang(github.com/Sirupsen/logrus)) bundled(golang(github.com/abbot/go-http-auth)) bundled(golang(github.com/appc/cni/libcni)) bundled(golang(github.com/appc/cni/pkg/invoke)) bundled(golang(github.com/appc/cni/pkg/types)) bundled(golang(github.com/appc/spec/schema)) bundled(golang(github.com/aws/aws-sdk-go/aws)) bundled(golang(github.com/aws/aws-sdk-go/internal/endpoints)) bundled(golang(github.com/aws/aws-sdk-go/internal/protocol/ec2query)) bundled(golang(github.com/aws/aws-sdk-go/internal/protocol/query)) bundled(golang(github.com/aws/aws-sdk-go/internal/protocol/rest)) bundled(golang(github.com/aws/aws-sdk-go/internal/protocol/xml/xmlutil)) bundled(golang(github.com/aws/aws-sdk-go/internal/signer/v4)) bundled(golang(github.com/aws/aws-sdk-go/service/autoscaling)) bundled(golang(github.com/aws/aws-sdk-go/service/ec2)) bundled(golang(github.com/aws/aws-sdk-go/service/elb)) bundled(golang(github.com/beorn7/perks/quantile)) bundled(golang(github.com/bradfitz/http2)) bundled(golang(github.com/coreos/etcd/client)) bundled(golang(github.com/coreos/etcd/discovery)) bundled(golang(github.com/coreos/etcd/error)) bundled(golang(github.com/coreos/etcd/etcdserver)) bundled(golang(github.com/coreos/etcd/migrate)) bundled(golang(github.com/coreos/etcd/pkg/crc)) bundled(golang(github.com/coreos/etcd/pkg/fileutil)) bundled(golang(github.com/coreos/etcd/pkg/idutil)) bundled(golang(github.com/coreos/etcd/pkg/ioutil)) bundled(golang(github.com/coreos/etcd/pkg/netutil)) bundled(golang(github.com/coreos/etcd/pkg/osutil)) bundled(golang(github.com/coreos/etcd/pkg/pbutil)) bundled(golang(github.com/coreos/etcd/pkg/runtime)) bundled(golang(github.com/coreos/etcd/pkg/timeutil)) bundled(golang(github.com/coreos/etcd/pkg/transport)) bundled(golang(github.com/coreos/etcd/pkg/types)) bundled(golang(github.com/coreos/etcd/pkg/wait)) bundled(golang(github.com/coreos/etcd/raft)) bundled(golang(github.com/coreos/etcd/rafthttp)) bundled(golang(github.com/coreos/etcd/snap)) bundled(golang(github.com/coreos/etcd/storage/storagepb)) bundled(golang(github.com/coreos/etcd/store)) bundled(golang(github.com/coreos/etcd/version)) bundled(golang(github.com/coreos/etcd/wal)) bundled(golang(github.com/coreos/go-etcd/etcd)) bundled(golang(github.com/coreos/go-oidc/http)) bundled(golang(github.com/coreos/go-oidc/jose)) bundled(golang(github.com/coreos/go-oidc/key)) bundled(golang(github.com/coreos/go-oidc/oauth2)) bundled(golang(github.com/coreos/go-oidc/oidc)) bundled(golang(github.com/coreos/go-semver/semver)) bundled(golang(github.com/coreos/go-systemd/activation)) bundled(golang(github.com/coreos/go-systemd/daemon)) bundled(golang(github.com/coreos/go-systemd/dbus)) bundled(golang(github.com/coreos/go-systemd/unit)) bundled(golang(github.com/coreos/pkg/capnslog)) bundled(golang(github.com/coreos/pkg/health)) bundled(golang(github.com/coreos/pkg/httputil)) bundled(golang(github.com/coreos/pkg/timeutil)) bundled(golang(github.com/cpuguy83/go-md2man/md2man)) bundled(golang(github.com/davecgh/go-spew/spew)) bundled(golang(github.com/daviddengcn/go-colortext)) bundled(golang(github.com/dgrijalva/jwt-go)) bundled(golang(github.com/docker/distribution)) bundled(golang(github.com/docker/docker/builder/command)) bundled(golang(github.com/docker/docker/builder/parser)) bundled(golang(github.com/docker/docker/pkg/jsonmessage)) bundled(golang(github.com/docker/docker/pkg/mount)) bundled(golang(github.com/docker/docker/pkg/parsers)) bundled(golang(github.com/docker/docker/pkg/symlink)) bundled(golang(github.com/docker/docker/pkg/tarsum)) bundled(golang(github.com/docker/docker/pkg/term)) bundled(golang(github.com/docker/docker/pkg/timeutils)) bundled(golang(github.com/docker/docker/pkg/units)) bundled(golang(github.com/docker/libcontainer)) bundled(golang(github.com/docker/libtrust)) bundled(golang(github.com/docker/spdystream)) bundled(golang(github.com/elazarl/go-bindata-assetfs)) bundled(golang(github.com/emicklei/go-restful)) bundled(golang(github.com/evanphx/json-patch)) bundled(golang(github.com/fsouza/go-dockerclient)) bundled(golang(github.com/garyburd/redigo/internal)) bundled(golang(github.com/garyburd/redigo/redis)) bundled(golang(github.com/getsentry/raven-go)) bundled(golang(github.com/ghodss/yaml)) bundled(golang(github.com/godbus/dbus)) bundled(golang(github.com/gogo/protobuf/proto)) bundled(golang(github.com/golang/glog)) bundled(golang(github.com/golang/groupcache/lru)) bundled(golang(github.com/golang/protobuf/proto)) bundled(golang(github.com/gonum/blas)) bundled(golang(github.com/gonum/graph)) bundled(golang(github.com/gonum/internal/asm)) bundled(golang(github.com/gonum/lapack)) bundled(golang(github.com/gonum/matrix/mat64)) bundled(golang(github.com/google/cadvisor/api)) bundled(golang(github.com/google/cadvisor/cache/memory)) bundled(golang(github.com/google/cadvisor/collector)) bundled(golang(github.com/google/cadvisor/container)) bundled(golang(github.com/google/cadvisor/events)) bundled(golang(github.com/google/cadvisor/fs)) bundled(golang(github.com/google/cadvisor/healthz)) bundled(golang(github.com/google/cadvisor/http)) bundled(golang(github.com/google/cadvisor/info/v1)) bundled(golang(github.com/google/cadvisor/info/v2)) bundled(golang(github.com/google/cadvisor/manager)) bundled(golang(github.com/google/cadvisor/metrics)) bundled(golang(github.com/google/cadvisor/pages)) bundled(golang(github.com/google/cadvisor/storage)) bundled(golang(github.com/google/cadvisor/summary)) bundled(golang(github.com/google/cadvisor/utils)) bundled(golang(github.com/google/cadvisor/validate)) bundled(golang(github.com/google/cadvisor/version)) bundled(golang(github.com/google/gofuzz)) bundled(golang(github.com/gorilla/context)) bundled(golang(github.com/gorilla/handlers)) bundled(golang(github.com/gorilla/mux)) bundled(golang(github.com/gorilla/securecookie)) bundled(golang(github.com/gorilla/sessions)) bundled(golang(github.com/hashicorp/golang-lru)) bundled(golang(github.com/imdario/mergo)) bundled(golang(github.com/inconshreveable/mousetrap)) bundled(golang(github.com/influxdb/influxdb/client)) bundled(golang(github.com/jlhawn/go-crypto)) bundled(golang(github.com/jonboulle/clockwork)) bundled(golang(github.com/jteeuwen/go-bindata)) bundled(golang(github.com/juju/ratelimit)) bundled(golang(github.com/kr/pty)) bundled(golang(github.com/matttproud/golang_protobuf_extensions/pbutil)) bundled(golang(github.com/mesos/mesos-go/detector)) bundled(golang(github.com/mesos/mesos-go/mesosproto)) bundled(golang(github.com/mesos/mesos-go/mesosutil)) bundled(golang(github.com/mesos/mesos-go/upid)) bundled(golang(github.com/miekg/dns)) bundled(golang(github.com/mitchellh/mapstructure)) bundled(golang(github.com/mxk/go-flowrate/flowrate)) bundled(golang(github.com/onsi/ginkgo)) bundled(golang(github.com/onsi/gomega)) bundled(golang(github.com/openshift/openshift-sdn/pkg)) bundled(golang(github.com/openshift/openshift-sdn/plugins)) bundled(golang(github.com/openshift/source-to-image/pkg/api)) bundled(golang(github.com/openshift/source-to-image/pkg/build)) bundled(golang(github.com/openshift/source-to-image/pkg/docker)) bundled(golang(github.com/openshift/source-to-image/pkg/errors)) bundled(golang(github.com/openshift/source-to-image/pkg/ignore)) bundled(golang(github.com/openshift/source-to-image/pkg/scm)) bundled(golang(github.com/openshift/source-to-image/pkg/scripts)) bundled(golang(github.com/openshift/source-to-image/pkg/tar)) bundled(golang(github.com/openshift/source-to-image/pkg/util)) bundled(golang(github.com/pborman/uuid)) bundled(golang(github.com/pkg/profile)) bundled(golang(github.com/prometheus/client_golang/extraction)) bundled(golang(github.com/prometheus/client_golang/prometheus)) bundled(golang(github.com/prometheus/client_model/go)) bundled(golang(github.com/prometheus/common/expfmt)) bundled(golang(github.com/prometheus/common/model)) bundled(golang(github.com/prometheus/procfs)) bundled(golang(github.com/rackspace/gophercloud)) bundled(golang(github.com/russross/blackfriday)) bundled(golang(github.com/samuel/go-zookeeper/zk)) bundled(golang(github.com/scalingdata/gcfg)) bundled(golang(github.com/shurcooL/sanitized_anchor_name)) bundled(golang(github.com/skynetservices/skydns/backends/etcd)) bundled(golang(github.com/skynetservices/skydns/cache)) bundled(golang(github.com/skynetservices/skydns/msg)) bundled(golang(github.com/skynetservices/skydns/server)) bundled(golang(github.com/spf13/cobra)) bundled(golang(github.com/spf13/pflag)) bundled(golang(github.com/stretchr/objx)) bundled(golang(github.com/stretchr/testify/assert)) bundled(golang(github.com/stretchr/testify/mock)) bundled(golang(github.com/stretchr/testify/require)) bundled(golang(github.com/syndtr/gocapability/capability)) bundled(golang(github.com/ugorji/go/codec)) bundled(golang(github.com/vaughan0/go-ini)) bundled(golang(github.com/vjeantet/asn1-ber)) bundled(golang(github.com/vjeantet/ldapserver)) bundled(golang(golang.org/x/crypto/bcrypt)) bundled(golang(golang.org/x/crypto/blowfish)) bundled(golang(golang.org/x/crypto/ssh)) bundled(golang(golang.org/x/exp/inotify)) bundled(golang(golang.org/x/net/context)) bundled(golang(golang.org/x/net/html)) bundled(golang(golang.org/x/net/internal/timeseries)) bundled(golang(golang.org/x/net/trace)) bundled(golang(golang.org/x/net/websocket)) bundled(golang(golang.org/x/oauth2)) bundled(golang(google.golang.org/api/cloudmonitoring/v2beta2)) bundled(golang(google.golang.org/api/compute/v1)) bundled(golang(google.golang.org/api/container/v1beta1)) bundled(golang(google.golang.org/api/googleapi)) bundled(golang(google.golang.org/cloud/compute/metadata)) bundled(golang(google.golang.org/cloud/internal)) bundled(golang(google.golang.org/grpc)) bundled(golang(gopkg.in/asn1-ber.v1)) bundled(golang(gopkg.in/ldap.v2)) bundled(golang(gopkg.in/yaml.v2)) bundled(golang(k8s.io/heapster/api/v1/types)) bundled(golang(k8s.io/kubernetes/cmd/kube-apiserver/app)) bundled(golang(k8s.io/kubernetes/cmd/kube-controller-manager/app)) bundled(golang(k8s.io/kubernetes/cmd/kube-proxy/app)) bundled(golang(k8s.io/kubernetes/cmd/kubelet/app)) bundled(golang(k8s.io/kubernetes/pkg/admission)) bundled(golang(k8s.io/kubernetes/pkg/api)) bundled(golang(k8s.io/kubernetes/pkg/apis/extensions)) bundled(golang(k8s.io/kubernetes/pkg/apiserver)) bundled(golang(k8s.io/kubernetes/pkg/auth/authenticator)) bundled(golang(k8s.io/kubernetes/pkg/auth/authorizer)) bundled(golang(k8s.io/kubernetes/pkg/auth/handlers)) bundled(golang(k8s.io/kubernetes/pkg/auth/user)) bundled(golang(k8s.io/kubernetes/pkg/capabilities)) bundled(golang(k8s.io/kubernetes/pkg/client/cache)) bundled(golang(k8s.io/kubernetes/pkg/client/chaosclient)) bundled(golang(k8s.io/kubernetes/pkg/client/metrics)) bundled(golang(k8s.io/kubernetes/pkg/client/record)) bundled(golang(k8s.io/kubernetes/pkg/client/unversioned)) bundled(golang(k8s.io/kubernetes/pkg/cloudprovider)) bundled(golang(k8s.io/kubernetes/pkg/controller)) bundled(golang(k8s.io/kubernetes/pkg/conversion)) bundled(golang(k8s.io/kubernetes/pkg/credentialprovider)) bundled(golang(k8s.io/kubernetes/pkg/fieldpath)) bundled(golang(k8s.io/kubernetes/pkg/fields)) bundled(golang(k8s.io/kubernetes/pkg/healthz)) bundled(golang(k8s.io/kubernetes/pkg/httplog)) bundled(golang(k8s.io/kubernetes/pkg/kubectl)) bundled(golang(k8s.io/kubernetes/pkg/kubelet)) bundled(golang(k8s.io/kubernetes/pkg/labels)) bundled(golang(k8s.io/kubernetes/pkg/master)) bundled(golang(k8s.io/kubernetes/pkg/probe)) bundled(golang(k8s.io/kubernetes/pkg/proxy)) bundled(golang(k8s.io/kubernetes/pkg/registry/componentstatus)) bundled(golang(k8s.io/kubernetes/pkg/registry/controller)) bundled(golang(k8s.io/kubernetes/pkg/registry/daemonset)) bundled(golang(k8s.io/kubernetes/pkg/registry/deployment)) bundled(golang(k8s.io/kubernetes/pkg/registry/endpoint)) bundled(golang(k8s.io/kubernetes/pkg/registry/event)) bundled(golang(k8s.io/kubernetes/pkg/registry/experimental/controller/etcd)) bundled(golang(k8s.io/kubernetes/pkg/registry/generic)) bundled(golang(k8s.io/kubernetes/pkg/registry/horizontalpodautoscaler)) bundled(golang(k8s.io/kubernetes/pkg/registry/ingress)) bundled(golang(k8s.io/kubernetes/pkg/registry/job)) bundled(golang(k8s.io/kubernetes/pkg/registry/limitrange)) bundled(golang(k8s.io/kubernetes/pkg/registry/namespace)) bundled(golang(k8s.io/kubernetes/pkg/registry/node)) bundled(golang(k8s.io/kubernetes/pkg/registry/persistentvolume)) bundled(golang(k8s.io/kubernetes/pkg/registry/persistentvolumeclaim)) bundled(golang(k8s.io/kubernetes/pkg/registry/pod)) bundled(golang(k8s.io/kubernetes/pkg/registry/podtemplate)) bundled(golang(k8s.io/kubernetes/pkg/registry/registrytest)) bundled(golang(k8s.io/kubernetes/pkg/registry/resourcequota)) bundled(golang(k8s.io/kubernetes/pkg/registry/secret)) bundled(golang(k8s.io/kubernetes/pkg/registry/service)) bundled(golang(k8s.io/kubernetes/pkg/registry/serviceaccount)) bundled(golang(k8s.io/kubernetes/pkg/registry/thirdpartyresource)) bundled(golang(k8s.io/kubernetes/pkg/registry/thirdpartyresourcedata)) bundled(golang(k8s.io/kubernetes/pkg/runtime)) bundled(golang(k8s.io/kubernetes/pkg/securitycontext)) bundled(golang(k8s.io/kubernetes/pkg/securitycontextconstraints)) bundled(golang(k8s.io/kubernetes/pkg/storage)) bundled(golang(k8s.io/kubernetes/pkg/tools)) bundled(golang(k8s.io/kubernetes/pkg/types)) bundled(golang(k8s.io/kubernetes/pkg/ui)) bundled(golang(k8s.io/kubernetes/pkg/util)) bundled(golang(k8s.io/kubernetes/pkg/version)) bundled(golang(k8s.io/kubernetes/pkg/volume)) bundled(golang(k8s.io/kubernetes/pkg/watch)) bundled(golang(k8s.io/kubernetes/plugin/cmd/kube-scheduler/app)) bundled(golang(k8s.io/kubernetes/plugin/pkg/admission/admit)) bundled(golang(k8s.io/kubernetes/plugin/pkg/admission/deny)) bundled(golang(k8s.io/kubernetes/plugin/pkg/admission/exec)) bundled(golang(k8s.io/kubernetes/plugin/pkg/admission/initialresources)) bundled(golang(k8s.io/kubernetes/plugin/pkg/admission/limitranger)) bundled(golang(k8s.io/kubernetes/plugin/pkg/admission/namespace/autoprovision)) bundled(golang(k8s.io/kubernetes/plugin/pkg/admission/namespace/exists)) bundled(golang(k8s.io/kubernetes/plugin/pkg/admission/namespace/lifecycle)) bundled(golang(k8s.io/kubernetes/plugin/pkg/admission/resourcequota)) bundled(golang(k8s.io/kubernetes/plugin/pkg/admission/securitycontext/scdeny)) bundled(golang(k8s.io/kubernetes/plugin/pkg/admission/serviceaccount)) bundled(golang(k8s.io/kubernetes/plugin/pkg/auth/authenticator/password/passwordfile)) bundled(golang(k8s.io/kubernetes/plugin/pkg/auth/authenticator/request/basicauth)) bundled(golang(k8s.io/kubernetes/plugin/pkg/auth/authenticator/request/keystone)) bundled(golang(k8s.io/kubernetes/plugin/pkg/auth/authenticator/request/union)) bundled(golang(k8s.io/kubernetes/plugin/pkg/auth/authenticator/request/x509)) bundled(golang(k8s.io/kubernetes/plugin/pkg/auth/authenticator/token/oidc)) bundled(golang(k8s.io/kubernetes/plugin/pkg/auth/authenticator/token/tokenfile)) bundled(golang(k8s.io/kubernetes/plugin/pkg/scheduler)) bundled(golang(k8s.io/kubernetes/test/e2e)) bundled(golang(k8s.io/kubernetes/third_party/forked/coreos/go-etcd/etcd)) bundled(golang(k8s.io/kubernetes/third_party/forked/json)) bundled(golang(k8s.io/kubernetes/third_party/forked/reflect)) bundled(golang(k8s.io/kubernetes/third_party/golang/expansion)) bundled(golang(k8s.io/kubernetes/third_party/golang/netutil)) bundled(golang(k8s.io/kubernetes/third_party/golang/template)) bundled(golang(speter.net/go/exp/math/dec/inf)) origin origin(x86-64) tuned-profiles-origin-node: tuned-profiles-origin-node tuned-profiles-origin-node(x86-64) origin-recycle: origin-recycle origin-recycle(x86-64) origin-clients: origin-clients origin-clients(x86-64) origin-master: config(origin-master) origin-master origin-master(x86-64) origin-pod: origin-pod origin-pod(x86-64) origin-sdn-ovs: origin-sdn-ovs origin-sdn-ovs(x86-64) origin-node: config(origin-node) origin-node origin-node(x86-64) origin-dockerregistry: origin-dockerregistry origin-dockerregistry(x86-64) Source checksums ---------------- https://github.com/openshift/origin/archive/v1.1.tar.gz : CHECKSUM(SHA256) this package : 5a090bf2b9461fa176897e46f22a0800c1ba7f0596dbc6ee9da2d8eb488acee2 CHECKSUM(SHA256) upstream package : 5a090bf2b9461fa176897e46f22a0800c1ba7f0596dbc6ee9da2d8eb488acee2 Generated by fedora-review 0.6.0 (3c5c9d7) last change: 2015-05-20 Command line :/usr/bin/fedora-review -b 1287822 -x CheckOwnDirs,CheckLicenseField Buildroot used: fedora-rawhide-x86_64 Active plugins: Generic, Shell-api, C/C++ Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP, Ruby Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6 Note: I don't know why my rpmlist didn't understand ghost files, but I left those in. Need to Fix: - License file LICENSE is marked as %doc instead of %license See: http://fedoraproject.org/wiki/Packaging/LicensingGuidelines#License_Text - The clients and tuned-profiles-origin-node package can be installed without the main package, which has the license. They to need a license when installed. - There are several directories not owned by any package. All of them are in the origin-sdn-ovs package, so I suggest it get fixed there. %{kube_plugin_path} %{_unitdir}/docker.service.d/ %{_unitdir}/origin-node.service.d/ Should Fix: - If this package isn't going to be for older distributions, it would be cleaner to remove the %defattr - I agree with Michael Scherer that the description is very short. (But I like the summary). If you go to the https://github.com/openshift/origin, and you remove the first sentence, the rest of the description there is pretty good. I suggest you add it for the description Debatable Fix: - I think the big question Michael Scherer posts is whether you should be totally true to the upstreams spec file. I believe the reason you want to be is because this spec file is also building packages in COPR, so it would be nice to not have to change it. -- If it is decided to deviate from upstream, then you should remove the three things Michael said. --- test for %if "%{dist}" == ".el7aos" --- obsolete of file not found in fedora/epel --- the comments that say the spec file was generated from upstream As well as the comment lines saying how bad this spec file is. (In reply to Michael Scherer from comment #3) > So the 330 bundled provides make me sad at the idea of maintaining a stable > version and bug fixes, but I guess since guidelines have been relaxed, > that's acceptable. Yeah, I'm not the biggest fan myself. :/ > > However, I have a few questions: > > - Why is there test for %if "%{dist}" == ".el7aos" ? Is this specs file > supposed to be used for more than Fedora/EPEL ? That is something that came from upstream, I was hoping to align with their spec work as much as possible but I don't mind removing that. > > - you should remove %defattr around, since that's no longer needed. Will fix > > - why a obsolete, since that's a new package ? (ie, we usually do not deal > with externnal package to Fedora in Fedora, so why the exception for this > one ?) Also from upstream, but in a Fedora context I agree it doesn't make a lot of sense. > > - the summary is not that helpful, and description is just a copy of the > summary I think the summary is accurate but will fill in a better description from upstream documentation > > - the specs file mention it being generated directly by upstream. I am not > sure if that's a common practice, as it was refused for sugar, for example. > It's not a direct generation from upstream, more so "based on" the upstream generation for the sake of keeping track of the 'Provides: bundled' list. > - License must be tagged %license. Will fix (In reply to Troy Dawson from comment #5) > Note: I don't know why my rpmlist didn't understand ghost files, but I left > those in. > > Need to Fix: > - License file LICENSE is marked as %doc instead of %license > See: > http://fedoraproject.org/wiki/Packaging/LicensingGuidelines#License_Text > > - The clients and tuned-profiles-origin-node package can be installed without > the main package, which has the license. They to need a license > when installed. > > - There are several directories not owned by any package. All of them are > in > the origin-sdn-ovs package, so I suggest it get fixed there. > %{kube_plugin_path} > %{_unitdir}/docker.service.d/ > %{_unitdir}/origin-node.service.d/ > > Should Fix: > - If this package isn't going to be for older distributions, it would be > cleaner > to remove the %defattr > > - I agree with Michael Scherer that the description is very short. (But I > like the summary). If you go to the https://github.com/openshift/origin, > and you remove the first sentence, the rest of the description there is > pretty good. I suggest you add it for the description > > Debatable Fix: > - I think the big question Michael Scherer posts is whether you should be > totally true to the upstreams spec file. I believe the reason you want to > be is because this spec file is also building packages in COPR, so it would > be nice to not have to change it. > > -- If it is decided to deviate from upstream, then you should remove the > three things Michael said. > --- test for %if "%{dist}" == ".el7aos" > --- obsolete of file not found in fedora/epel > --- the comments that say the spec file was generated from upstream > > As well as the comment lines saying how bad this spec file is. I have updated based on feedback. The only thing I left in was the note about where the 'Provides: bundled' listing comes from just for posterity. I'll do my best to track upstream's spec work where applicable but will favor Fedora-specific requirements for sake of the Fedora package. Spec URL: https://maxamillion.fedorapeople.org/origin.spec SRPM URL: https://maxamillion.fedorapeople.org/origin-1.1-1.git.0.ac7a99a.fc23.src.rpm Description: OpenShift Open Source Container Management by Red Hat Fedora Account System Username: maxamillion I have a test build in COPR here: https://copr.fedoraproject.org/coprs/maxamillion/fedora-openshift/builds/ Looking forward to further review! Thank you, -AdamM Spec URL: https://maxamillion.fedorapeople.org/origin.spec SRPM URL: https://maxamillion.fedorapeople.org/origin-1.1-2.git.0.ac7a99a.fc23.src.rpm Fixed %dir listing for sdn. - So, there is no license file for the redistribuable clients (since it doesn't requires anything). Same got for the master rpm, since it doesn't pull the origin rpm. - %{_sysconfdir}/openshift should be maybe marked as %ghost, since that's a file that would be created by the rpm. ( in fact, maybe you can just add it always, along a date to deprecate the symlink in the future ) - I do not understand the use of basename in : %systemd_post %{basename:%{name}-master.service} Can you explain ? - %{kube_plugin_path} should be listed as %dir in the %files sdn-ovs section - %{_datadir}/%{name}/linux/ and others should be marked %dir and owned, If I am not wrong. - Also, there is a missing deps on procps-ng in the sdn-ovs subpackage, required for sysctl, and since procps-ng is not installed by default in a docker container, I think it should be made explicit, even if I suspect I am just being pedantic for this one. The same go for iproute (required for the 'ip' tools). - there is also a different name for the files in the sdn-ovs subpackage: %files sdn-ovs %dir %{_unitdir}/origin-node.service.d/ ... %{_unitdir}/%{name}-node.service.d/openshift-sdn-ovs.conf I think there is a warning on using the same macro everywhere. - %{_sysconfdir}/origin/.config_managed should be marked as ghost. - Haikel guemard also noted that if this package install files in /usr/bin/kubernetes, we would need some conflict at the rpm level. - Since sdn-ovs change systemd configuration ( by adding 2 files for docker and origin ), shouldn't it reload systemd in %post ? Also, since openshift-sdn-multitenant-setup.sh create a directory /etc/openshift-sdn and a file config.env, I think it would be nice to have them owned by the subpackage. So on removal, it will clean the file and directory (and it also help sysadmin to see what is going on, I guess). Spec URL: https://maxamillion.fedorapeople.org/origin.spec SRPM URL: https://maxamillion.fedorapeople.org/origin-1.1-3.git.0.ac7a99a.fc23.src.rpm Fixed %dir listing for kube_config_path Looks Great. Approved. For the sake of posterity, I did include improvements based on feedback from Michael Scherer. Spec URL: https://maxamillion.fedorapeople.org/origin.spec SRPM URL: https://maxamillion.fedorapeople.org/origin-1.1-4.git.0.ac7a99a.fc23.src.rpm Thanks! Package request has been approved: https://admin.fedoraproject.org/pkgdb/package/origin |