Blob Blame History Raw
%global debug_package   %{nil}
%global provider        google
%global provider_sub    code
%global provider_tld    com
%global project         p
%global repo            crypto
%global import_path     %{provider_sub}.%{provider}.%{provider_tld}/%{project}/go.%{repo}
%global rev             69e2a90ed92d03812364aeb947b7068dc42e561e
%global shortrev        %(r=%{rev}; echo ${r:0:12})

%global x_provider      golang
%global x_provider_tld  org
%global x_repo          crypto
%global x_import_path   %{x_provider}.%{x_provider_tld}/x/%{x_repo}
%global x_name          golang-%{x_provider}%{x_provider_tld}-%{repo}

Name:           golang-%{provider}%{provider_sub}-go-%{repo}
Version:        0
Release:        0.2.hg%{shortrev}%{?dist}
Summary:        Supplementary Go cryptography libraries
License:        BSD
URL:            https://%{import_path}
Source0:        https://%{repo}.go.%{provider}%{provider_sub}.%{provider_tld}/archive/%{rev}.tar.gz
%if 0%{?fedora} >= 19 || 0%{?rhel} >= 7
BuildArch:      noarch
%else
ExclusiveArch:  %{ix86} x86_64 %{arm}
%endif

%description
%{summary}

%package devel
BuildRequires:  golang >= 1.2.1-3
Requires:       golang >= 1.2.1-3
Summary:        %{summary}
Provides:       golang(%{import_path}/bcrypt) = %{version}-%{release}
Provides:       golang(%{import_path}/blowfish) = %{version}-%{release}
Provides:       golang(%{import_path}/bn256) = %{version}-%{release}
Provides:       golang(%{import_path}/cast5) = %{version}-%{release}
Provides:       golang(%{import_path}/curve25519) = %{version}-%{release}
Provides:       golang(%{import_path}/hkdf) = %{version}-%{release}
Provides:       golang(%{import_path}/md4) = %{version}-%{release}
Provides:       golang(%{import_path}/nacl/box) = %{version}-%{release}
Provides:       golang(%{import_path}/nacl/secretbox) = %{version}-%{release}
Provides:       golang(%{import_path}/ocsp) = %{version}-%{release}
Provides:       golang(%{import_path}/openpgp) = %{version}-%{release}
Provides:       golang(%{import_path}/openpgp/armor) = %{version}-%{release}
Provides:       golang(%{import_path}/openpgp/clearsign) = %{version}-%{release}
Provides:       golang(%{import_path}/openpgp/elgamal) = %{version}-%{release}
Provides:       golang(%{import_path}/openpgp/errors) = %{version}-%{release}
Provides:       golang(%{import_path}/openpgp/packet) = %{version}-%{release}
Provides:       golang(%{import_path}/openpgp/s2k) = %{version}-%{release}
Provides:       golang(%{import_path}/otr) = %{version}-%{release}
Provides:       golang(%{import_path}/pbkdf2) = %{version}-%{release}
Provides:       golang(%{import_path}/poly1305) = %{version}-%{release}
Provides:       golang(%{import_path}/ripemd160) = %{version}-%{release}
Provides:       golang(%{import_path}/salsa20) = %{version}-%{release}
Provides:       golang(%{import_path}/salsa20/salsa) = %{version}-%{release}
Provides:       golang(%{import_path}/scrypt) = %{version}-%{release}
Provides:       golang(%{import_path}/sha3) = %{version}-%{release}
Provides:       golang(%{import_path}/ssh) = %{version}-%{release}
Provides:       golang(%{import_path}/ssh/agent) = %{version}-%{release}
Provides:       golang(%{import_path}/ssh/terminal) = %{version}-%{release}
Provides:       golang(%{import_path}/ssh/test) = %{version}-%{release}
Provides:       golang(%{import_path}/ssh/testdata) = %{version}-%{release}
Provides:       golang(%{import_path}/twofish) = %{version}-%{release}
Provides:       golang(%{import_path}/xtea) = %{version}-%{release}
Provides:       golang(%{import_path}/xts) = %{version}-%{release}

%description devel
%{summary}

This package contains library source intended for building other packages
which use the supplementary Go crypto libraries with code.google.com/p/ imports.

%package -n %{x_name}-devel
BuildRequires:  golang >= 1.2.1-3
Requires:       golang >= 1.2.1-3
Summary:        %{summary}
Provides:       golang(%{x_import_path}/bcrypt) = %{version}-%{release}
Provides:       golang(%{x_import_path}/blowfish) = %{version}-%{release}
Provides:       golang(%{x_import_path}/bn256) = %{version}-%{release}
Provides:       golang(%{x_import_path}/cast5) = %{version}-%{release}
Provides:       golang(%{x_import_path}/curve25519) = %{version}-%{release}
Provides:       golang(%{x_import_path}/hkdf) = %{version}-%{release}
Provides:       golang(%{x_import_path}/md4) = %{version}-%{release}
Provides:       golang(%{x_import_path}/nacl/box) = %{version}-%{release}
Provides:       golang(%{x_import_path}/nacl/secretbox) = %{version}-%{release}
Provides:       golang(%{x_import_path}/ocsp) = %{version}-%{release}
Provides:       golang(%{x_import_path}/openpgp) = %{version}-%{release}
Provides:       golang(%{x_import_path}/openpgp/armor) = %{version}-%{release}
Provides:       golang(%{x_import_path}/openpgp/clearsign) = %{version}-%{release}
Provides:       golang(%{x_import_path}/openpgp/elgamal) = %{version}-%{release}
Provides:       golang(%{x_import_path}/openpgp/errors) = %{version}-%{release}
Provides:       golang(%{x_import_path}/openpgp/packet) = %{version}-%{release}
Provides:       golang(%{x_import_path}/openpgp/s2k) = %{version}-%{release}
Provides:       golang(%{x_import_path}/otr) = %{version}-%{release}
Provides:       golang(%{x_import_path}/pbkdf2) = %{version}-%{release}
Provides:       golang(%{x_import_path}/poly1305) = %{version}-%{release}
Provides:       golang(%{x_import_path}/ripemd160) = %{version}-%{release}
Provides:       golang(%{x_import_path}/salsa20) = %{version}-%{release}
Provides:       golang(%{x_import_path}/salsa20/salsa) = %{version}-%{release}
Provides:       golang(%{x_import_path}/scrypt) = %{version}-%{release}
Provides:       golang(%{x_import_path}/sha3) = %{version}-%{release}
Provides:       golang(%{x_import_path}/ssh) = %{version}-%{release}
Provides:       golang(%{x_import_path}/ssh/agent) = %{version}-%{release}
Provides:       golang(%{x_import_path}/ssh/terminal) = %{version}-%{release}
Provides:       golang(%{x_import_path}/ssh/test) = %{version}-%{release}
Provides:       golang(%{x_import_path}/ssh/testdata) = %{version}-%{release}
Provides:       golang(%{x_import_path}/twofish) = %{version}-%{release}
Provides:       golang(%{x_import_path}/xtea) = %{version}-%{release}
Provides:       golang(%{x_import_path}/xts) = %{version}-%{release}


%description -n %{x_name}-devel
%{summary}

This package contains library source intended for building other packages
which use the supplementary Go crypto libraries with golang.org/x/ imports.

%prep
%setup -q -n %{repo}.go-%{shortrev}

%build

%install
install -d -p %{buildroot}%{gopath}/src/%{import_path}/
install -d -p %{buildroot}%{gopath}/src/%{x_import_path}/
for dir in */ ; do
    cp -rpav $dir %{buildroot}%{gopath}/src/%{import_path}/
    cp -rpav $dir %{buildroot}%{gopath}/src/%{x_import_path}/
done

cd %{buildroot}/%{gopath}/src/%{import_path}/
# from https://groups.google.com/forum/#!topic/golang-nuts/eD8dh3T9yyA, first post
sed -i 's/"golang\.org\/x\//"code\.google\.com\/p\/go\./g' \
        $(find . -name '*.go')

%check
GOPATH=%{buildroot}%{gopath}:%{gopath} go test %{import_path}/xts
GOPATH=%{buildroot}%{gopath}:%{gopath} go test %{import_path}/xtea
GOPATH=%{buildroot}%{gopath}:%{gopath} go test %{import_path}/twofish
# fails on ssh/keys_test.go:55: undefined: elliptic.P224 
#GOPATH=%{buildroot}/%{gopath}:%{gopath} go test %{import_path}/ssh
GOPATH=%{buildroot}%{gopath}:%{gopath} go test %{import_path}/ssh/test
GOPATH=%{buildroot}%{gopath}:%{gopath} go test %{import_path}/ssh/terminal
GOPATH=%{buildroot}%{gopath}:%{gopath} go test %{import_path}/ssh/agent
GOPATH=%{buildroot}%{gopath}:%{gopath} go test %{import_path}/sha3
GOPATH=%{buildroot}%{gopath}:%{gopath} go test %{import_path}/scrypt
GOPATH=%{buildroot}%{gopath}:%{gopath} go test %{import_path}/salsa20
GOPATH=%{buildroot}%{gopath}:%{gopath} go test %{import_path}/salsa20/salsa
GOPATH=%{buildroot}%{gopath}:%{gopath} go test %{import_path}/ripemd160
GOPATH=%{buildroot}%{gopath}:%{gopath} go test %{import_path}/poly1305
GOPATH=%{buildroot}%{gopath}:%{gopath} go test %{import_path}/pbkdf2
GOPATH=%{buildroot}%{gopath}:%{gopath} go test %{import_path}/otr
GOPATH=%{buildroot}%{gopath}:%{gopath} go test %{import_path}/openpgp
GOPATH=%{buildroot}%{gopath}:%{gopath} go test %{import_path}/openpgp/s2k
GOPATH=%{buildroot}%{gopath}:%{gopath} go test %{import_path}/openpgp/packet
GOPATH=%{buildroot}%{gopath}:%{gopath} go test %{import_path}/openpgp/elgamal
GOPATH=%{buildroot}%{gopath}:%{gopath} go test %{import_path}/openpgp/clearsign
GOPATH=%{buildroot}%{gopath}:%{gopath} go test %{import_path}/openpgp/armor
GOPATH=%{buildroot}%{gopath}:%{gopath} go test %{import_path}/ocsp
GOPATH=%{buildroot}%{gopath}:%{gopath} go test %{import_path}/nacl/secretbox
GOPATH=%{buildroot}%{gopath}:%{gopath} go test %{import_path}/nacl/box
GOPATH=%{buildroot}%{gopath}:%{gopath} go test %{import_path}/md4
GOPATH=%{buildroot}%{gopath}:%{gopath} go test %{import_path}/hkdf
GOPATH=%{buildroot}%{gopath}:%{gopath} go test %{import_path}/curve25519
GOPATH=%{buildroot}%{gopath}:%{gopath} go test %{import_path}/cast5
GOPATH=%{buildroot}%{gopath}:%{gopath} go test %{import_path}/bn256
GOPATH=%{buildroot}%{gopath}:%{gopath} go test %{import_path}/blowfish
GOPATH=%{buildroot}%{gopath}:%{gopath} go test %{import_path}/bcrypt

%files devel
%doc LICENSE README
%{gopath}/src/%{import_path}/

%files -n %{x_name}-devel
%doc AUTHORS CONTRIBUTORS LICENSE PATENTS README
%{gopath}/src/%{x_import_path}

%changelog
* Sun Dec 14 2014 Lokesh Mandvekar <lsm5@fedoraproject.org> - 0-0.2.hg69e2a90ed92d
- Correct Source0 URL
- Correct paths for golang.org/x/crypto/*

* Thu Dec 04 2014 jchaloup <jchaloup@redhat.com> - 0-0.1.hg69e2a90ed92d
- First package for Fedora
  resolves: #1148704