Initial Fedora package
This commit is contained in:
parent
403e41b80f
commit
c56eb06f3c
1
.gitignore
vendored
1
.gitignore
vendored
@ -0,0 +1 @@
|
||||
/go1.1.src.tar.gz
|
27
golang-1.1-verbose-build.patch
Normal file
27
golang-1.1-verbose-build.patch
Normal file
@ -0,0 +1,27 @@
|
||||
diff -ur go~/src/make.bash go/src/make.bash
|
||||
--- go~/src/make.bash 2013-05-13 16:07:18.000000000 -0400
|
||||
+++ go/src/make.bash 2013-05-23 21:20:56.804544307 -0400
|
||||
@@ -135,7 +135,7 @@
|
||||
if [ "$1" = "--no-clean" ]; then
|
||||
buildall=""
|
||||
fi
|
||||
-./cmd/dist/dist bootstrap $buildall -v # builds go_bootstrap
|
||||
+./cmd/dist/dist bootstrap $buildall -vv # builds go_bootstrap
|
||||
# Delay move of dist tool to now, because bootstrap may clear tool directory.
|
||||
mv cmd/dist/dist "$GOTOOLDIR"/dist
|
||||
"$GOTOOLDIR"/go_bootstrap clean -i std
|
||||
@@ -144,12 +144,12 @@
|
||||
if [ "$GOHOSTARCH" != "$GOARCH" -o "$GOHOSTOS" != "$GOOS" ]; then
|
||||
echo "# Building packages and commands for host, $GOHOSTOS/$GOHOSTARCH."
|
||||
GOOS=$GOHOSTOS GOARCH=$GOHOSTARCH \
|
||||
- "$GOTOOLDIR"/go_bootstrap install -ccflags "$GO_CCFLAGS" -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v std
|
||||
+ "$GOTOOLDIR"/go_bootstrap install -ccflags "$GO_CCFLAGS" -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v -x std
|
||||
echo
|
||||
fi
|
||||
|
||||
echo "# Building packages and commands for $GOOS/$GOARCH."
|
||||
-"$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -ccflags "$GO_CCFLAGS" -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v std
|
||||
+"$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -ccflags "$GO_CCFLAGS" -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v -x std
|
||||
echo
|
||||
|
||||
rm -f "$GOTOOLDIR"/go_bootstrap
|
288
golang.spec
Normal file
288
golang.spec
Normal file
@ -0,0 +1,288 @@
|
||||
# build ids are not currently generated:
|
||||
# https://code.google.com/p/go/issues/detail?id=5238
|
||||
#
|
||||
# also, debuginfo extraction currently fails with
|
||||
# "Failed to write file: invalid section alignment"
|
||||
%global debug_package %{nil}
|
||||
|
||||
Name: golang
|
||||
Version: 1.1
|
||||
Release: 1%{?dist}
|
||||
Summary: The Go Programming Language
|
||||
|
||||
License: BSD
|
||||
URL: http://golang.org/
|
||||
Source0: https://go.googlecode.com/files/go%{version}.src.tar.gz
|
||||
|
||||
BuildRequires: /bin/hostname
|
||||
BuildRequires: emacs xemacs xemacs-packages-extra
|
||||
|
||||
Patch0: golang-1.1-verbose-build.patch
|
||||
|
||||
%description
|
||||
%{summary}.
|
||||
|
||||
|
||||
%package godoc
|
||||
Summary: The Go documentation tool
|
||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-docs = %{version}-%{release}
|
||||
|
||||
%description godoc
|
||||
%{summary}.
|
||||
|
||||
|
||||
%package docs
|
||||
Summary: Go sources and documentation
|
||||
BuildArch: noarch
|
||||
|
||||
%description docs
|
||||
%{summary}.
|
||||
|
||||
|
||||
%package vim
|
||||
Summary: Vim plugins for Go
|
||||
Requires: vim-filesystem
|
||||
BuildArch: noarch
|
||||
|
||||
%description vim
|
||||
%{summary}.
|
||||
|
||||
|
||||
%package -n emacs-%{name}
|
||||
Summary: Emacs add-on package for Go
|
||||
Requires: emacs(bin) >= %{_emacs_version}
|
||||
BuildArch: noarch
|
||||
|
||||
%description -n emacs-%{name}
|
||||
%{summary}.
|
||||
|
||||
|
||||
%package -n xemacs-%{name}
|
||||
Summary: XEmacs add-on package for Go
|
||||
Requires: xemacs(bin) >= %{_xemacs_version}
|
||||
Requires: xemacs-packages-extra
|
||||
BuildArch: noarch
|
||||
|
||||
%description -n xemacs-%{name}
|
||||
%{summary}.
|
||||
|
||||
|
||||
%prep
|
||||
%setup -q -n go
|
||||
|
||||
# increase verbosity of build
|
||||
%patch0 -p1
|
||||
|
||||
|
||||
%build
|
||||
# create a gcc wrapper to allow us to build with our own flags
|
||||
mkdir zz
|
||||
cd zz
|
||||
echo -e "#!/bin/sh\n/usr/bin/gcc $RPM_OPT_FLAGS $RPM_LD_FLAGS \"\$@\"" > mygcc
|
||||
chmod +x mygcc
|
||||
export CC="$(pwd -P)/mygcc"
|
||||
cd ..
|
||||
|
||||
# set up final install location
|
||||
export GOROOT_FINAL=%{_libdir}/%{name}
|
||||
|
||||
# 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
|
||||
./make.bash
|
||||
cd ..
|
||||
|
||||
# build static version of documentation
|
||||
export GOROOT=$(pwd -P)
|
||||
export PATH="$PATH":"$GOROOT"/bin
|
||||
cd doc
|
||||
make
|
||||
cd ..
|
||||
|
||||
# compile for emacs and xemacs
|
||||
cd misc
|
||||
mv emacs/go-mode-load.el emacs/%{name}-init.el
|
||||
cp -av emacs xemacs
|
||||
%{_emacs_bytecompile} emacs/go-mode.el
|
||||
%{_xemacs_bytecompile} xemacs/go-mode.el
|
||||
cd ..
|
||||
|
||||
|
||||
%check
|
||||
export GOROOT=$(pwd -P)
|
||||
export PATH="$PATH":"$GOROOT"/bin
|
||||
cd src
|
||||
./run.bash --no-rebuild
|
||||
cd ..
|
||||
|
||||
|
||||
%install
|
||||
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%{_datadir}/%{name}
|
||||
|
||||
# install binaries and runtime files into libdir
|
||||
cp -av bin pkg $RPM_BUILD_ROOT%{_libdir}/%{name}
|
||||
|
||||
# install sources and other data in datadir
|
||||
cp -av api doc include lib favicon.ico robots.txt $RPM_BUILD_ROOT%{_datadir}/%{name}
|
||||
|
||||
# remove the unnecessary zoneinfo file (Go will always use the system one first)
|
||||
rm -rfv $RPM_BUILD_ROOT%{_datadir}/%{name}/lib/time
|
||||
|
||||
# remove the doc Makefile
|
||||
rm -rfv $RPM_BUILD_ROOT%{_datadir}/%{name}/doc/Makefile
|
||||
|
||||
# install all sources, used by godoc
|
||||
mkdir $RPM_BUILD_ROOT%{_datadir}/%{name}/src
|
||||
cp -av src/pkg $RPM_BUILD_ROOT%{_datadir}/%{name}/src
|
||||
|
||||
# remove testdata, tests, and non-go files: this is all we need for godoc
|
||||
pushd $RPM_BUILD_ROOT%{_datadir}/%{name}/src/pkg
|
||||
find \( -name testdata -type d -o -name '*_test.go' -type f \) -print0 | xargs -0 rm -rfv
|
||||
find -type f \! -name '*.go' -print0 | xargs -0 rm -rfv
|
||||
popd
|
||||
|
||||
# restore the gdb debugging script, needed at runtime by gdb
|
||||
cp -av src/pkg/runtime/runtime-gdb.py $RPM_BUILD_ROOT%{_datadir}/%{name}/src/pkg/runtime
|
||||
|
||||
# add symlinks for things in datadir
|
||||
for z in $RPM_BUILD_ROOT%{_datadir}/%{name}/*
|
||||
do ln -s ../../share/%{name}/$(basename "$z") $RPM_BUILD_ROOT%{_libdir}/%{name}
|
||||
done
|
||||
|
||||
# add symlinks for binaries
|
||||
pushd $RPM_BUILD_ROOT%{_bindir}
|
||||
for z in $RPM_BUILD_ROOT%{_libdir}/%{name}/bin/*
|
||||
do ln -s %{_libdir}/%{name}/bin/$(basename $z)
|
||||
done
|
||||
popd
|
||||
|
||||
# misc/bash
|
||||
mkdir -p $RPM_BUILD_ROOT%{_datadir}/bash-completion/completions
|
||||
cp -av misc/bash/go $RPM_BUILD_ROOT%{_datadir}/bash-completion/completions
|
||||
for z in 8l 6l 5l 8g 6g 5g gofmt gccgo
|
||||
do ln -s go $RPM_BUILD_ROOT%{_datadir}/bash-completion/completions/$z
|
||||
done
|
||||
|
||||
# misc/emacs
|
||||
mkdir -p $RPM_BUILD_ROOT%{_emacs_sitelispdir}/%{name}
|
||||
mkdir -p $RPM_BUILD_ROOT%{_emacs_sitestartdir}
|
||||
cp -av misc/emacs/go-mode.* $RPM_BUILD_ROOT%{_emacs_sitelispdir}/%{name}
|
||||
cp -av misc/emacs/%{name}-init.el $RPM_BUILD_ROOT%{_emacs_sitestartdir}
|
||||
|
||||
# misc/xemacs
|
||||
mkdir -p $RPM_BUILD_ROOT%{_xemacs_sitelispdir}/%{name}
|
||||
mkdir -p $RPM_BUILD_ROOT%{_xemacs_sitestartdir}
|
||||
cp -av misc/xemacs/go-mode.* $RPM_BUILD_ROOT%{_xemacs_sitelispdir}/%{name}
|
||||
cp -av misc/xemacs/%{name}-init.el $RPM_BUILD_ROOT%{_xemacs_sitestartdir}
|
||||
|
||||
# misc/vim
|
||||
mkdir -p $RPM_BUILD_ROOT%{_datadir}/vim/vimfiles
|
||||
cp -av misc/vim/* $RPM_BUILD_ROOT%{_datadir}/vim/vimfiles
|
||||
rm $RPM_BUILD_ROOT%{_datadir}/vim/vimfiles/readme.txt
|
||||
|
||||
# misc/zsh
|
||||
mkdir -p $RPM_BUILD_ROOT%{_datadir}/zsh/site-functions
|
||||
cp -av misc/zsh/go $RPM_BUILD_ROOT%{_datadir}/zsh/site-functions
|
||||
|
||||
|
||||
%files
|
||||
%doc AUTHORS CONTRIBUTORS LICENSE PATENTS VERSION
|
||||
|
||||
# binaries
|
||||
%dir %{_libdir}/%{name}
|
||||
%dir %{_libdir}/%{name}/bin
|
||||
%{_libdir}/%{name}/bin/go
|
||||
%{_libdir}/%{name}/bin/gofmt
|
||||
%{_libdir}/%{name}/pkg
|
||||
|
||||
# data
|
||||
%dir %{_datadir}/%{name}
|
||||
%{_datadir}/%{name}/api
|
||||
%{_datadir}/%{name}/include
|
||||
|
||||
# symlinks (lib -> share)
|
||||
%{_bindir}/go
|
||||
%{_bindir}/gofmt
|
||||
%{_libdir}/%{name}/api
|
||||
%{_libdir}/%{name}/include
|
||||
%{_libdir}/%{name}/src
|
||||
|
||||
# GDB script
|
||||
%dir %{_datadir}/%{name}/src
|
||||
%dir %{_datadir}/%{name}/src/pkg
|
||||
%dir %{_datadir}/%{name}/src/pkg/runtime
|
||||
%{_datadir}/%{name}/src/pkg/runtime/runtime-gdb.*
|
||||
|
||||
# bash completion
|
||||
%{_datadir}/bash-completion
|
||||
|
||||
# zsh
|
||||
%{_datadir}/zsh
|
||||
|
||||
|
||||
%files godoc
|
||||
# binaries
|
||||
%{_libdir}/%{name}/bin/godoc
|
||||
|
||||
# symlinks
|
||||
%{_bindir}/godoc
|
||||
%{_libdir}/%{name}/doc
|
||||
%{_libdir}/%{name}/favicon.ico
|
||||
%{_libdir}/%{name}/lib
|
||||
%{_libdir}/%{name}/robots.txt
|
||||
|
||||
|
||||
%files docs
|
||||
%doc AUTHORS CONTRIBUTORS LICENSE PATENTS VERSION
|
||||
|
||||
# data
|
||||
%dir %{_datadir}/%{name}
|
||||
%{_datadir}/%{name}/doc
|
||||
%{_datadir}/%{name}/favicon.ico
|
||||
%{_datadir}/%{name}/robots.txt
|
||||
%{_datadir}/%{name}/lib
|
||||
%{_datadir}/%{name}/src
|
||||
|
||||
# exclude the GDB script
|
||||
%exclude %{_datadir}/%{name}/src/pkg/runtime/runtime-gdb.*
|
||||
|
||||
|
||||
%files vim
|
||||
%doc AUTHORS CONTRIBUTORS LICENSE PATENTS
|
||||
%{_datadir}/vim/vimfiles/*
|
||||
|
||||
|
||||
%files -n emacs-%{name}
|
||||
%doc AUTHORS CONTRIBUTORS LICENSE PATENTS
|
||||
%{_emacs_sitelispdir}/%{name}
|
||||
%{_emacs_sitestartdir}/*.el
|
||||
|
||||
|
||||
%files -n xemacs-%{name}
|
||||
%doc AUTHORS CONTRIBUTORS LICENSE PATENTS
|
||||
%{_xemacs_sitelispdir}/%{name}
|
||||
%{_xemacs_sitestartdir}/*.el
|
||||
|
||||
|
||||
%changelog
|
||||
* Fri May 24 2013 Adam Goode <adam@spicenitz.org> - 1.1-1
|
||||
- Initial Fedora release.
|
||||
- Update to 1.1
|
||||
|
||||
* Thu May 9 2013 Adam Goode <adam@spicenitz.org> - 1.1-0.3.rc3
|
||||
- Update to rc3
|
||||
|
||||
* Thu Apr 11 2013 Adam Goode <adam@spicenitz.org> - 1.1-0.2.beta2
|
||||
- Update to beta2
|
||||
|
||||
* Tue Apr 9 2013 Adam Goode <adam@spicenitz.org> - 1.1-0.1.beta1
|
||||
- Initial packaging.
|
Loading…
Reference in New Issue
Block a user