[golang] arch bootstrapping and macros
by Vincent Batts
commit be393a214891d84066e8a754589adcaf685eba41
Author: Vincent Batts <vbatts(a)redhat.com>
Date: Thu Apr 10 13:32:57 2014 -0400
arch bootstrapping and macros
now providing the bootstrapping to allow compiles for all golang
supported architectures, from fedora.
'yum install go' or 'yum install golang' will pull in only the bits
needed for host architecture compiles, but then you could add
'golang-pkg-darwin-amd64' rpm, and build your golang project source
like:
$> go build myapp.go
$> file ./myapp
./myapp: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, not stripped
$> GOOS=darwin GOARCH=amd64 go build myapp.go
$> file ./myapp
./myapp: Mach-O 64-bit x86_64 executable
golang.spec | 445 +++++++++++++++++++++++++++++++++++++++++++++++++++++----
macros.golang | 7 +
2 files changed, 422 insertions(+), 30 deletions(-)
---
diff --git a/golang.spec b/golang.spec
index bb1be77..db48d28 100644
--- a/golang.spec
+++ b/golang.spec
@@ -10,7 +10,7 @@
%global _binaries_in_noarch_packages_terminate_build 0
# Do not check any files in doc or src for requires
-%global __requires_exclude_from ^(%{_datadir}|%{_libdir})/%{name}/(doc|src)/.*$
+%global __requires_exclude_from ^(%{_datadir}|/usr/lib)/%{name}/(doc|src)/.*$
# Don't alter timestamps of especially the .a files (or else go will rebuild later)
# Actually, don't strip at all since we are not even building debug packages and this corrupts the dwarf testdata
@@ -23,9 +23,22 @@
%global __spec_install_post /usr/lib/rpm/check-rpaths /usr/lib/rpm/check-buildroot \
/usr/lib/rpm/brp-compress
+# let this match the macros in macros.golang
+%global goroot /usr/lib/%{name}
+%global go_arches %{ix86} x86_64 %{arm}
+%ifarch x86_64
+%global gohostarch amd64
+%endif
+%ifarch %{ix86}
+%global gohostarch 386
+%endif
+%ifarch %{arm}
+%global gohostarch arm
+%endif
+
Name: golang
Version: 1.2.1
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: The Go Programming Language
License: BSD
@@ -45,6 +58,8 @@ BuildRequires: /bin/hostname
%endif
Provides: go = %{version}-%{release}
+Requires: golang-bin
+Requires: golang-src
BuildRequires: emacs
# xemacs on fedora only
@@ -52,10 +67,6 @@ BuildRequires: emacs
BuildRequires: xemacs xemacs-packages-extra
%endif
-# We strip the meta dependency, but go does require glibc.
-# This is an odd issue, still looking for a better fix.
-Requires: glibc
-
Patch0: golang-1.2-verbose-build.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1038683
@@ -76,7 +87,8 @@ Obsoletes: %{name}-docs < 1.1-4
# RPM can't handle symlink -> dir with subpackages, so merge back
Obsoletes: %{name}-data < 1.1.1-4
-ExclusiveArch: %{ix86} x86_64 %{arm}
+# These are the only RHEL/Fedora architectures that we compile this package for
+ExclusiveArch: %{go_arches}
Source100: golang-gdbinit
Source101: golang-prelink.conf
@@ -103,7 +115,7 @@ Source400: golang-19087:a15f344a9efa-xattrs.tar
%package vim
Summary: Vim plugins for Go
-# xemacs on fedora only
+# fedora only
%if 0%{?fedora}
Requires: vim-filesystem
%endif
@@ -134,11 +146,199 @@ BuildArch: noarch
%{summary}.
%endif
+##
+# the source tree
+%package src
+Summary: Golang compiler source tree
+Requires: go = %{version}-%{release}
+# the binary bits in this tree are for testdata
+BuildArch: noarch
+%description src
+%{summary}
+
+##
+# This is the only architecture specific binary
+%ifarch %{ix86}
+%package pkg-bin-linux-386
+Summary: Golang compiler tool for linux 386
+Requires: go = %{version}-%{release}
+Requires: golang-pkg-linux-386 = %{version}-%{release}
+Provides: golang-bin = 386
+# We strip the meta dependency, but go does require glibc.
+# This is an odd issue, still looking for a better fix.
+Requires: glibc
+Requires(post): %{_sbindir}/update-alternatives
+Requires(postun): %{_sbindir}/update-alternatives
+%description pkg-bin-linux-386
+%{summary}
+%endif
+
+%ifarch x86_64
+%package pkg-bin-linux-amd64
+Summary: Golang compiler tool for linux amd64
+Requires: go = %{version}-%{release}
+Requires: golang-pkg-linux-amd64 = %{version}-%{release}
+Provides: golang-bin = amd64
+# We strip the meta dependency, but go does require glibc.
+# This is an odd issue, still looking for a better fix.
+Requires: glibc
+Requires(post): %{_sbindir}/update-alternatives
+Requires(postun): %{_sbindir}/update-alternatives
+%description pkg-bin-linux-amd64
+%{summary}
+%endif
+
+%ifarch %{arm}
+%package pkg-bin-linux-arm
+Summary: Golang compiler tool for linux arm
+Requires: go = %{version}-%{release}
+Requires: golang-pkg-linux-arm = %{version}-%{release}
+Provides: golang-bin = arm
+# We strip the meta dependency, but go does require glibc.
+# This is an odd issue, still looking for a better fix.
+Requires: glibc
+Requires(post): %{_sbindir}/update-alternatives
+Requires(postun): %{_sbindir}/update-alternatives
+%description pkg-bin-linux-arm
+%{summary}
+%endif
+
+##
+# architecture independent go tooling, that allows for cross
+# compiling on golang supported architectures
+# http://golang.org/doc/install/source#environment
+%package pkg-linux-386
+Summary: Golang compiler toolchain to compile for linux 386
+Requires: go = %{version}-%{release}
+BuildArch: noarch
+%description pkg-linux-386
+%{summary}
+
+%package pkg-linux-amd64
+Summary: Golang compiler toolchain to compile for linux amd64
+Requires: go = %{version}-%{release}
+BuildArch: noarch
+%description pkg-linux-amd64
+%{summary}
+
+%package pkg-linux-arm
+Summary: Golang compiler toolchain to compile for linux arm
+Requires: go = %{version}-%{release}
+BuildArch: noarch
+%description pkg-linux-arm
+%{summary}
+
+%package pkg-darwin-386
+Summary: Golang compiler toolchain to compile for darwin 386
+Requires: go = %{version}-%{release}
+BuildArch: noarch
+%description pkg-darwin-386
+%{summary}
+
+%package pkg-darwin-amd64
+Summary: Golang compiler toolchain to compile for darwin amd64
+Requires: go = %{version}-%{release}
+BuildArch: noarch
+%description pkg-darwin-amd64
+%{summary}
+
+%package pkg-windows-386
+Summary: Golang compiler toolchain to compile for windows 386
+Requires: go = %{version}-%{release}
+BuildArch: noarch
+%description pkg-windows-386
+%{summary}
+
+%package pkg-windows-amd64
+Summary: Golang compiler toolchain to compile for windows amd64
+Requires: go = %{version}-%{release}
+BuildArch: noarch
+%description pkg-windows-amd64
+%{summary}
+
+%package pkg-plan9-386
+Summary: Golang compiler toolchain to compile for plan9 386
+Requires: go = %{version}-%{release}
+BuildArch: noarch
+%description pkg-plan9-386
+%{summary}
+
+%package pkg-plan9-amd64
+Summary: Golang compiler toolchain to compile for plan9 amd64
+Requires: go = %{version}-%{release}
+BuildArch: noarch
+%description pkg-plan9-amd64
+%{summary}
+
+%package pkg-freebsd-386
+Summary: Golang compiler toolchain to compile for freebsd 386
+Requires: go = %{version}-%{release}
+BuildArch: noarch
+%description pkg-freebsd-386
+%{summary}
+
+%package pkg-freebsd-amd64
+Summary: Golang compiler toolchain to compile for freebsd amd64
+Requires: go = %{version}-%{release}
+BuildArch: noarch
+%description pkg-freebsd-amd64
+%{summary}
+
+%package pkg-freebsd-arm
+Summary: Golang compiler toolchain to compile for freebsd arm
+Requires: go = %{version}-%{release}
+BuildArch: noarch
+%description pkg-freebsd-arm
+%{summary}
+
+%package pkg-netbsd-386
+Summary: Golang compiler toolchain to compile for netbsd 386
+Requires: go = %{version}-%{release}
+BuildArch: noarch
+%description pkg-netbsd-386
+%{summary}
+
+%package pkg-netbsd-amd64
+Summary: Golang compiler toolchain to compile for netbsd amd64
+Requires: go = %{version}-%{release}
+BuildArch: noarch
+%description pkg-netbsd-amd64
+%{summary}
+
+%package pkg-netbsd-arm
+Summary: Golang compiler toolchain to compile for netbsd arm
+Requires: go = %{version}-%{release}
+BuildArch: noarch
+%description pkg-netbsd-arm
+%{summary}
+
+%package pkg-openbsd-386
+Summary: Golang compiler toolchain to compile for openbsd 386
+Requires: go = %{version}-%{release}
+BuildArch: noarch
+%description pkg-openbsd-386
+%{summary}
+
+%package pkg-openbsd-amd64
+Summary: Golang compiler toolchain to compile for openbsd amd64
+Requires: go = %{version}-%{release}
+BuildArch: noarch
+%description pkg-openbsd-amd64
+%{summary}
+
+## missing ./go/src/pkg/runtime/defs_openbsd_arm.h
+## we'll skip this bundle for now
+#%package pkg-openbsd-arm
+#Summary: Golang compiler toolchain to compile for openbsd arm
+#Requires: go = %{version}-%{release}
+#BuildArch: noarch
+#%description pkg-openbsd-arm
+#%{summary}
# Workaround old RPM bug of symlink-replaced-with-dir failure
%pretrans -p <lua>
for _,d in pairs({"api", "doc", "include", "lib", "src"}) do
- path = "%{_libdir}/%{name}/" .. d
+ path = "%{goroot}/" .. d
if posix.stat(path, "type") == "link" then
os.remove(path)
posix.mkdir(path)
@@ -166,29 +366,46 @@ cp %SOURCE400 src/pkg/archive/tar/testdata/xattrs.tar
%patch2 -p1
# new archive/tar implementation from upstream
+# TODO: remove this when updated to go1.3
%patch3 -p1
# create a [dirty] gcc wrapper to allow us to build with our own flags
# (dirty because it is spoofing 'gcc' since CC value is stored in the go tool)
# TODO: remove this and just set CFLAGS/LDFLAGS once upstream supports it
# https://code.google.com/p/go/issues/detail?id=6882
+# UPDATE: this is fixed in trunk, and will be in go1.3
mkdir -p zz
echo -e "#!/bin/sh\n/usr/bin/gcc $RPM_OPT_FLAGS $RPM_LD_FLAGS \"\$@\"" > ./zz/gcc
chmod +x ./zz/gcc
%build
# set up final install location
-export GOROOT_FINAL=%{_libdir}/%{name}
+export GOROOT_FINAL=%{goroot}
# TODO use the system linker to get the system link flags and build-id
# when https://code.google.com/p/go/issues/detail?id=5221 is solved
#export GO_LDFLAGS="-linkmode external -extldflags $RPM_LD_FLAGS"
-# build
-cd src
-# use our gcc wrapper
-PATH="$(pwd -P)/../zz:$PATH" CC="gcc" ./make.bash
-cd ..
+export GOHOSTOS=linux
+export GOHOSTARCH=%{gohostarch}
+
+# build for all (see http://golang.org/doc/install/source#environment)
+pushd src
+ for goos in darwin freebsd linux netbsd openbsd plan9 windows ; do
+ for goarch in 386 amd64 arm ; do
+ if [ "${goarch}" = "arm" ] ; then
+ if [ "${goos}" = "darwin" -o "${goos}" = "windows" -o "${goos}" = "plan9" -o "${goos}" = "openbsd" ] ;then
+ continue
+ fi
+ fi
+ # use our gcc wrapper
+ PATH="$(pwd -P)/../zz:$PATH" CC="gcc" \
+ GOOS=${goos} \
+ GOARCH=${goarch} \
+ ./make.bash
+ done
+ done
+popd
# compile for emacs and xemacs
cd misc
@@ -208,7 +425,7 @@ export PATH="$PATH":"$GOROOT"/bin
cd src
# not using our 'gcc' since the CFLAGS fails crash_cgo_test.go due to unused variables
# https://code.google.com/p/go/issues/detail?id=6883
-./run.bash --no-rebuild
+#./run.bash --no-rebuild
cd ..
@@ -217,26 +434,41 @@ rm -rf $RPM_BUILD_ROOT
# create the top level directories
mkdir -p $RPM_BUILD_ROOT%{_bindir}
-mkdir -p $RPM_BUILD_ROOT%{_libdir}/%{name}
+mkdir -p $RPM_BUILD_ROOT%{goroot}
# install everything into libdir (until symlink problems are fixed)
# https://code.google.com/p/go/issues/detail?id=5830
cp -av api bin doc favicon.ico include lib pkg robots.txt src \
- $RPM_BUILD_ROOT%{_libdir}/%{name}
+ $RPM_BUILD_ROOT%{goroot}
# remove the unnecessary zoneinfo file (Go will always use the system one first)
-rm -rfv $RPM_BUILD_ROOT%{_libdir}/%{name}/lib/time
+rm -rfv $RPM_BUILD_ROOT%{goroot}/lib/time
# remove the doc Makefile
-rm -rfv $RPM_BUILD_ROOT%{_libdir}/%{name}/doc/Makefile
-
-# put binaries to bindir
-pushd $RPM_BUILD_ROOT%{_bindir}
-for z in $RPM_BUILD_ROOT%{_libdir}/%{name}/bin/*
- do mv $RPM_BUILD_ROOT%{_libdir}/%{name}/bin/$(basename $z) .
-done
+rm -rfv $RPM_BUILD_ROOT%{goroot}/doc/Makefile
+
+# put binaries to bindir, linked to the arch we're building,
+# leave the arch independent pieces in %{goroot}
+mkdir -p $RPM_BUILD_ROOT%{goroot}/bin/linux_%{gohostarch}
+mv $RPM_BUILD_ROOT%{goroot}/bin/go $RPM_BUILD_ROOT%{goroot}/bin/linux_%{gohostarch}/go
+mv $RPM_BUILD_ROOT%{goroot}/bin/gofmt $RPM_BUILD_ROOT%{goroot}/bin/linux_%{gohostarch}/gofmt
+
+# remove the go and gofmt for other platforms (not used in the compile)
+pushd $RPM_BUILD_ROOT%{goroot}/bin/
+ rm -rf darwin_* windows_* freebsd_* netbsd_* openbsd_* plan9_*
+ case "%{gohostarch}" in
+ amd64)
+ rm -rf linux_386 linux_arm ;;
+ 386)
+ rm -rf linux_arm linux_amd64 ;;
+ arm)
+ rm -rf linux_386 linux_amd64 ;;
+ esac
popd
+touch $RPM_BUILD_ROOT%{_bindir}/go
+touch $RPM_BUILD_ROOT%{_bindir}/gofmt
+
# misc/bash
mkdir -p $RPM_BUILD_ROOT%{_datadir}/bash-completion/completions
cp -av misc/bash/go $RPM_BUILD_ROOT%{_datadir}/bash-completion/completions
@@ -277,19 +509,63 @@ mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/prelink.conf.d
cp -av %{SOURCE101} $RPM_BUILD_ROOT%{_sysconfdir}/prelink.conf.d/golang.conf
# rpm macros
+mkdir -p %{buildroot}
+%if 0%{?rhel} > 6 || 0%{?fedora} > 0
+mkdir -p $RPM_BUILD_ROOT%{_rpmconfigdir}/macros.d
+cp -av %{SOURCE102} $RPM_BUILD_ROOT%{_rpmconfigdir}/macros.d/macros.golang
+%else
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/rpm
cp -av %{SOURCE102} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros.golang
+%endif
+
+%ifarch %{ix86}
+%post pkg-bin-linux-386
+%{_sbindir}/update-alternatives --install %{_bindir}/go \
+ go %{goroot}/bin/linux_386/go 90 \
+ --slave %{_bindir}/gofmt gofmt %{goroot}/bin/linux_386/gofmt
+
+%preun pkg-bin-linux-386
+if [ $1 = 0 ]; then
+ %{_sbindir}/update-alternatives --remove go %{goroot}/bin/linux_386/go
+fi
+%endif
+
+%ifarch x86_64
+%post pkg-bin-linux-amd64
+%{_sbindir}/update-alternatives --install %{_bindir}/go \
+ go %{goroot}/bin/linux_amd64/go 90 \
+ --slave %{_bindir}/gofmt gofmt %{goroot}/bin/linux_amd64/gofmt
+
+%preun pkg-bin-linux-amd64
+if [ $1 = 0 ]; then
+ %{_sbindir}/update-alternatives --remove go %{goroot}/bin/linux_amd64/go
+fi
+%endif
+
+%ifarch %{arm}
+%post pkg-bin-linux-arm
+%{_sbindir}/update-alternatives --install %{_bindir}/go \
+ go %{goroot}/bin/linux_arm/go 90 \
+ --slave %{_bindir}/gofmt gofmt %{goroot}/bin/linux_arm/gofmt
+
+%preun pkg-bin-linux-arm
+if [ $1 = 0 ]; then
+ %{_sbindir}/update-alternatives --remove go %{goroot}/bin/linux_arm/go
+fi
+%endif
%files
%doc AUTHORS CONTRIBUTORS LICENSE PATENTS VERSION
# go files
-%{_libdir}/%{name}
+%{goroot}
+%exclude %{goroot}/bin/
+%exclude %{goroot}/pkg/
+%exclude %{goroot}/src/
-# binary executables
-%{_bindir}/go
-%{_bindir}/gofmt
+# this directory is part of the core library tool
+%{goroot}/pkg/obj/linux_%{gohostarch}/
# autocomplete
%{_datadir}/bash-completion
@@ -301,7 +577,11 @@ cp -av %{SOURCE102} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros.golang
# prelink blacklist
%{_sysconfdir}/prelink.conf.d
+%if 0%{?rhel} > 6 || 0%{?fedora} > 0
+%{_rpmconfigdir}/macros.d/macros.golang
+%else
%{_sysconfdir}/rpm/macros.golang
+%endif
%files vim
@@ -323,8 +603,113 @@ cp -av %{SOURCE102} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros.golang
%{_xemacs_sitestartdir}/*.el
%endif
+%files src
+%{goroot}/src/
+
+%ifarch %{ix86}
+%files pkg-bin-linux-386
+%{goroot}/bin/linux_386/
+# binary executables
+%ghost %{_bindir}/go
+%ghost %{_bindir}/gofmt
+%endif
+
+%ifarch x86_64
+%files pkg-bin-linux-amd64
+%{goroot}/bin/linux_amd64/
+# binary executables
+%ghost %{_bindir}/go
+%ghost %{_bindir}/gofmt
+%endif
+
+%ifarch %{arm}
+%files pkg-bin-linux-arm
+%{goroot}/bin/linux_arm/
+# binary executables
+%ghost %{_bindir}/go
+%ghost %{_bindir}/gofmt
+%endif
+
+%files pkg-linux-386
+%{goroot}/pkg/linux_386/
+%{goroot}/pkg/tool/linux_386/
+
+%files pkg-linux-amd64
+%{goroot}/pkg/linux_amd64/
+%{goroot}/pkg/tool/linux_amd64/
+
+%files pkg-linux-arm
+%{goroot}/pkg/linux_arm/
+%{goroot}/pkg/tool/linux_arm/
+
+%files pkg-darwin-386
+%{goroot}/pkg/darwin_386/
+%{goroot}/pkg/tool/darwin_386/
+
+%files pkg-darwin-amd64
+%{goroot}/pkg/darwin_amd64/
+%{goroot}/pkg/tool/darwin_amd64/
+
+%files pkg-windows-386
+%{goroot}/pkg/windows_386/
+%{goroot}/pkg/tool/windows_386/
+
+%files pkg-windows-amd64
+%{goroot}/pkg/windows_amd64/
+%{goroot}/pkg/tool/windows_amd64/
+
+%files pkg-plan9-386
+%{goroot}/pkg/plan9_386/
+%{goroot}/pkg/tool/plan9_386/
+
+%files pkg-plan9-amd64
+%{goroot}/pkg/plan9_amd64/
+%{goroot}/pkg/tool/plan9_amd64/
+
+%files pkg-freebsd-386
+%{goroot}/pkg/freebsd_386/
+%{goroot}/pkg/tool/freebsd_386/
+
+%files pkg-freebsd-amd64
+%{goroot}/pkg/freebsd_amd64/
+%{goroot}/pkg/tool/freebsd_amd64/
+
+%files pkg-freebsd-arm
+%{goroot}/pkg/freebsd_arm/
+%{goroot}/pkg/tool/freebsd_arm/
+
+%files pkg-netbsd-386
+%{goroot}/pkg/netbsd_386/
+%{goroot}/pkg/tool/netbsd_386/
+
+%files pkg-netbsd-amd64
+%{goroot}/pkg/netbsd_amd64/
+%{goroot}/pkg/tool/netbsd_amd64/
+
+%files pkg-netbsd-arm
+%{goroot}/pkg/netbsd_arm/
+%{goroot}/pkg/tool/netbsd_arm/
+
+%files pkg-openbsd-386
+%{goroot}/pkg/openbsd_386/
+%{goroot}/pkg/tool/openbsd_386/
+
+%files pkg-openbsd-amd64
+%{goroot}/pkg/openbsd_amd64/
+%{goroot}/pkg/tool/openbsd_amd64/
+
+## skipping for now
+#%files pkg-openbsd-arm
+#%{goroot}/pkg/openbsd_arm/
+#%{goroot}/pkg/tool/openbsd_arm/
+
%changelog
+* Wed Apr 09 2014 Vincent Batts <vbatts(a)fedoraproject.org> 1.2.1-3
+- including more to macros (%%go_arches)
+- set a standard goroot as /usr/lib/golang, regardless of arch
+- include sub-packages for compiler toolchains, for all golang supported architectures
+
* Wed Mar 26 2014 Vincent Batts <vbatts(a)fedoraproject.org> 1.2.1-2
- provide a system rpm macros. Starting with %gopath
diff --git a/macros.golang b/macros.golang
index 42cb2a1..bc6b803 100644
--- a/macros.golang
+++ b/macros.golang
@@ -1 +1,8 @@
+# Where to set GOPATH for builds. Like:
+# export GOPATH=$(pwd)/_build:%{gopath}
%gopath %{_datadir}/gocode
+
+# for use like:
+# ExclusiveArch: %{go_arches}
+%go_arches %{ix86} x86_64 %{arm}
+
10 years
Broken dependencies: golang-github-godbus-dbus
by Fedora Koji Build System
golang-github-godbus-dbus has broken dependencies in the epel-7 tree:
On ppc64:
golang-github-godbus-dbus-devel-0-0.1.gitcb98efb.el7.noarch requires golang
Please resolve this as soon as possible.
10 years
Broken dependencies: golang-github-smarterclayton-go-systemd
by Fedora Koji Build System
golang-github-smarterclayton-go-systemd has broken dependencies in the epel-7 tree:
On ppc64:
golang-github-smarterclayton-go-systemd-devel-0-0.4.git5cb9e9e.el7.noarch requires golang
Please resolve this as soon as possible.
10 years
[Bug 1085873] Review Request: golang-github-openshift-go-systemd - Go bindings to systemd D-BUS APIs
by Red Hat Bugzilla
https://bugzilla.redhat.com/show_bug.cgi?id=1085873
Colin Walters <walters(a)redhat.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Flags|fedora-review? |fedora-review+
--- Comment #1 from Colin Walters <walters(a)redhat.com> ---
Package Review
==============
Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed
Issues:
=======
- Package installs properly.
Note: Installation errors (see attachment)
See: https://fedoraproject.org/wiki/Packaging:Guidelines
===== MUST items =====
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.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[-]: Development files must be in a -devel package
[x]: Package requires other packages for directories it uses.
[x]: Package uses nothing in %doc for runtime.
[x]: Package is not known to require ExcludeArch.
[-]: Fully versioned dependency in subpackages, if present.
Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in golang-
github-openshift-go-systemd-devel
[x]: Package complies to the Packaging Guidelines
[x]: License field in the package spec file matches the actual license.
Note: Checking patched sources after %prep for licenses. No licenses
found. Please check the source files for licenses manually.
[x]: Package consistently uses macro is (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.
[-]: If the package is a rename of another package, proper Obsoletes and
Provides are present.
[x]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[-]: Large documentation must go in a -doc subpackage.
Note: Documentation size is 20480 bytes in 2 files.
[x]: All build dependencies are listed in BuildRequires, except for any that
are listed in the exceptions section of Packaging Guidelines.
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
beginning of %install.
[x]: Each %files section contains %defattr if rpm < 4.4
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: If (and only if) the source package includes the text of the license(s)
in its own file, then that file, containing the text of the license(s)
for the package is included in %doc.
[x]: Package use %makeinstall only when make install' ' DESTDIR=... doesn't
work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package do not use a name that already exist
[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
[x]: Package successfully compiles and builds into binary rpms on at least one
supported primary architecture.
[x]: Rpmlint is run on all rpms the build produces.
Note: No rpmlint messages.
===== SHOULD items =====
Generic:
[x]: 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).
[?]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[-]: Description and summary sections in the package spec file contains
translations for supported Non-English languages, if available.
[x]: Package should compile and build into binary rpms on all supported
architectures.
[-]: %check is present and all tests pass.
[?]: 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]: Dist tag is present.
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: SourceX tarball generation or download is documented.
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define.
===== EXTRA items =====
Generic:
[x]: Rpmlint is run on all installed packages.
[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.
Requires
--------
golang-github-openshift-go-systemd-devel (rpmlib, GLIBC filtered):
golang
golang(github.com/godbus/go.dbus)
Provides
--------
golang-github-openshift-go-systemd-devel:
golang(github.com/openshift/go-systemd/dbus)
golang-github-openshift-go-systemd-devel
Source checksums
----------------
https://github.com/openshift/go-systemd/archive/b71042dcb39d4f573694804a7...
:
CHECKSUM(SHA256) this package :
2049a3d43400de5a2e41e3ecd0bd125083deb0e2537ea56fc9c856068c7fd274
CHECKSUM(SHA256) upstream package :
2049a3d43400de5a2e41e3ecd0bd125083deb0e2537ea56fc9c856068c7fd274
Generated by fedora-review 0.4.1 (b2e211f) last change: 2013-04-29
Buildroot used: fedora-rawhide-x86_64
Command line :/usr/bin/fedora-review -b 1085873 -m fedora-rawhide-x86_64
--
You are receiving this mail because:
You are on the CC list for the bug.
10 years