File erlang-CentOS_5.spec of Package erlang

%define ver R13B
%define rel 01

Name:           erlang
Version:        %{ver}
Release:        %{rel}.6%{?dist}.1
Summary:        General-purpose programming language and runtime environment

Group:          Development/Languages
License:        ERPL
URL:            http://www.erlang.org
Source:         http://www.erlang.org/download/otp_src_%{ver}%{rel}.tar.gz
Source1:        http://www.erlang.org/download/otp_doc_html_%{ver}%{rel}.tar.gz
Source2:        http://www.erlang.org/download/otp_doc_man_%{ver}%{rel}.tar.gz
Patch0:		otp-links.patch
Patch1:		otp-install.patch
Patch2:		otp-rpath.patch
Patch3:         otp-sslrpath.patch
Patch6:         otp-ssl_missing_libs.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildRequires:	ncurses-devel
BuildRequires:  openssl-devel
BuildRequires:  unixODBC-devel
BuildRequires:	tcl-devel
BuildRequires:	tk-devel
BuildRequires:  gd-devel
%if 0%{?rhel}
BuildRequires:	java-1.4.2-gcj-compat-devel
%else
BuildRequires:	java-1.5.0-gcj-devel
%endif
BuildRequires:  flex
BuildRequires:	m4

Requires:	tk

%description
Erlang is a general-purpose programming language and runtime
environment. Erlang has built-in support for concurrency, distribution
and fault tolerance. Erlang is used in several large telecommunication
systems from Ericsson.


%package doc
Summary:	Erlang documentation
Group:		Development/Languages

%description doc
Documentation for Erlang.


%prep
%setup -q -n otp_src_%{ver}-%{rel}
%patch0 -p1 -b .links
%patch1 -p1 -b .install
%patch2 -p1 -b .rpath
#%patch3 -p1 -b .sslrpath
%patch6 -p0 -b .keyutils

# enable dynamic linking for ssl
sed -i 's|SSL_DYNAMIC_ONLY=no|SSL_DYNAMIC_ONLY=yes|' erts/configure
sed -i 's|^LD.*=.*|LD = gcc -shared|' lib/common_test/c_src/Makefile
# fix for newer glibc version
sed -i 's|__GLIBC_MINOR__ <= 7|__GLIBC_MINOR__ <= 8|' erts/emulator/hipe/hipe_x86_signal.c
# use gcc -shared instead of ld
sed -i 's|@RX_LD@|gcc -shared|' lib/common_test/c_src/Makefile.in
sed -i 's|@RX_LDFLAGS@||' lib/common_test/c_src/Makefile.in



%build
# WARN: --enable-dynamic-ssl-lib needed for preventing strange messages about missing dependencies on EPEL
# see https://bugzilla.redhat.com/show_bug.cgi?id=458646 and https://bugzilla.redhat.com/show_bug.cgi?id=499525
%ifarch sparcv9 sparc64
CFLAGS="-mcpu=ultrasparc -fno-strict-aliasing" ./configure --enable-dynamic-ssl-lib --prefix=%{_prefix} --exec-prefix=%{_prefix} --bindir=%{_bindir} --libdir=%{_libdir}
%else
CFLAGS="-fno-strict-aliasing" ./configure --enable-dynamic-ssl-lib --prefix=%{_prefix} --exec-prefix=%{_prefix} --bindir=%{_bindir} --libdir=%{_libdir}
%endif
chmod -R u+w .
make


%install
rm -rf $RPM_BUILD_ROOT
make INSTALL_PREFIX=$RPM_BUILD_ROOT install

# clean up
find $RPM_BUILD_ROOT%{_libdir}/erlang -perm 0775 | xargs chmod 755
find $RPM_BUILD_ROOT%{_libdir}/erlang -name Makefile | xargs chmod 644
find $RPM_BUILD_ROOT%{_libdir}/erlang -name \*.o | xargs chmod 644
find $RPM_BUILD_ROOT%{_libdir}/erlang -name \*.bat | xargs rm -f
find $RPM_BUILD_ROOT%{_libdir}/erlang -name index.txt.old | xargs rm -f

# doc
mkdir -p erlang_doc
tar -C erlang_doc -zxf %{SOURCE1}
tar -C $RPM_BUILD_ROOT/%{_libdir}/erlang -zxf %{SOURCE2}

# make links to binaries
mkdir -p $RPM_BUILD_ROOT/%{_bindir}
cd $RPM_BUILD_ROOT/%{_bindir}
for file in erl erlc escript dialyzer
do
  ln -sf ../%{_lib}/erlang/bin/$file .
done

# remove buildroot from installed files
cd $RPM_BUILD_ROOT/%{_libdir}/erlang
sed -i "s|$RPM_BUILD_ROOT||" erts*/bin/{erl,start} releases/RELEASES bin/{erl,start}


%clean
rm -rf $RPM_BUILD_ROOT


%files
%defattr(-,root,root)
%doc AUTHORS EPLICENCE README
%{_bindir}/*
%{_libdir}/erlang


%files doc
%defattr(-,root,root)
%doc erlang_doc/*


%post
%{_libdir}/erlang/Install -minimal %{_libdir}/erlang >/dev/null 2>/dev/null


%changelog
openSUSE Build Service is sponsored by