erlang/erlang.spec
Matwey Kornilov d61bd569e1 Accepting request 703430 from home:gsantomaggio_suse:branches:devel:languages:erlang:Factory
- Update to 21.3.8.1:
- Changes for 21.3.8.1:
 * http://erlang.org/download/OTP-21.3.8.1.README
 * erts: Fixed a buffer overflow when binary_to_existing_atom/2
   and list_to_existing_atom/2 was used with the latin1
   encoding. 
 * ssl: Correct solution for retaining tcp flow control
   OTP-15802 (ERL-934) as to not break ssl:recv as
   reported in (ERL-938)
 * tools: cover would fail to start if two processes tried to
   start it at the exact same time.
- Update to 21.3.8:
- Changes for 21.3.8:
 * http://erlang.org/download/OTP-21.3.8.README
 * common_test: The test result when a hook function fails is in
   general the same as if the function that the hook is
   associated with fails. For example, if
   post_init_per_testcase fails the result is that the
   test case is skipped, as is the case when
   init_per_testcase fails.This, however, was earlier not
   true for timetrap timeouts or other error situations
   where the process running the hook function was killed.
   This is now corrected, so the error handling should be
   the same no matter how the hook function fails.
   Related Id(s): ERIERL-334
 * common_test: In some rare cases, when two common_test nodes used the
   same log directory, a timing problem could occur which
   caused common_test to crash because it's log cache file
   was unexpectedly empty. This is now corrected.
   Related Id(s): ERIERL-342
 * common_test: Two new common_test hook functions are introduced:
   post_groups/2, which is called after Suite:groups/0
   post_all/3, which is called after Suite:all/0
   A new term, {testcase,TestCase,RepeatProperties} is now
   also allowed in the return from all/0. This can be used
   for repeating a single test case a specific number of
   times, or until it fails or succeeds once.
 * eldap, public_key, ssl:  Back port of bug fix ERL-893 from OTP-22 and document
   enhancements that will solve dialyzer warnings for
   users of the ssl application.
   This change also affects public_key, eldap (and inet doc).
   Related Id(s): ERL-893, ERL-929, PR-2215
 * erl_interface: erl_interface/ei refused to use node names with an
   alive name (the part of the node name preceding the @
   sign) longer than 63 characters and a host name longer
   than 64 characters. The total amount of characters
   allowed in a node name (alivename@hostname) was thus
   limited to 128 characters. These limits applied both to
   the own node name as well as node names of other nodes.
   Ordinary Erlang nodes limit the node name length to 256
   characters, which meant that you could not communicate
   with certain Erlang nodes due to their node name used.
   erl_interface/ei now allow the total amount of
   characters in a node name to be up to 256 characters.
   These characters may be distributed between alive name
   and host name in whatever way needed. That is, the
   maximum amount of characters in the alive name may be
   254 and the maximum amount of characters in the host
   name may be 254, but in total the node name must not
   exceed 256 characters.
 * erts:  Fixed more bugs in process_info(reductions) causing it
   to sometimes behave non-monotonic. That is, a
   subsequent call toward the same process could return a
   lower reduction value.
   Related Id(s): ERIERL-337, OTP-15709
 * ssl:  Missing check of size of user_data_buffer made internal
   socket behave as an active socket instead of active N.
   This could cause memory problems.
 * eldap, public_key, ssl: Back port of bug fix ERL-893 from OTP-22 and document
   enhancements that will solve dialyzer warnings for
   users of the ssl application.
   This change also affects public_key, eldap (and inet doc).
 * stdlib: A bug in gen_statem has been fixed where the internal
   timeout message could arrive as an info to the callback
   module during high load due to incorrect use of
   asynchronous timer cancel.

OBS-URL: https://build.opensuse.org/request/show/703430
OBS-URL: https://build.opensuse.org/package/show/devel:languages:erlang:Factory/erlang?expand=0&rev=83
2019-05-17 10:15:30 +00:00

609 lines
18 KiB
RPMSpec

#
# spec file for package erlang
#
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
#Compat macro for new _fillupdir macro introduced in Nov 2017
%if ! %{defined _fillupdir}
%define _fillupdir /var/adm/fillup-templates
%endif
%if 0%{?rhel} >= 7
%undefine _missing_build_ids_terminate_build
%endif
Name: erlang
Version: 21.3.8.1
Release: 0
# not set up to be built with position independend executable support
#!BuildIgnore: gcc-PIE
Summary: General-purpose programming language and runtime environment
License: Apache-2.0
Group: Development/Languages/Other
Url: http://www.erlang.org
Source0: https://github.com/erlang/otp/archive/OTP-%{version}.tar.gz
Source3: %{name}-rpmlintrc
Source4: epmd.init
Source5: erlang.sysconfig
Source6: macros.erlang
Source7: epmd.service
Source8: epmd.socket
Source9: README.SUSE
# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch0: otp-R16B-rpath.patch
# PATCH-FIX-OPENSUSE erlang-not-install-misc.patch - matwey.kornilov@gmail.com -- patch from Fedora, this removes unneeded magic
Patch4: erlang-not-install-misc.patch
BuildRequires: autoconf
BuildRequires: gcc-c++
BuildRequires: ncurses-devel
BuildRequires: openssh
BuildRequires: openssl-devel
BuildRequires: tcl-devel
BuildRequires: tk-devel
BuildRequires: unixODBC-devel
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: %fillup_prereq
BuildRequires: %insserv_prereq
BuildRequires: Mesa-devel
BuildRequires: fdupes
BuildRequires: fop
BuildRequires: dejavu-fonts
BuildRequires: java-devel >= 1.6.0
BuildRequires: krb5-devel
BuildRequires: update-alternatives
%if 0%{?suse_version} >= 1220
BuildRequires: xsltproc
%else
BuildRequires: libxslt
%endif
Requires: erlang-epmd
%if 0%{?suse_version} >= 1320
BuildRequires: wxWidgets-devel >= 3
%else
%if 0%{?suse_version} >= 1315
BuildRequires: wxWidgets-devel >= 2.8
%define wx_requires_generator 1
%else
BuildRequires: wxWidgets >= 2.8
BuildRequires: wxWidgets-wxcontainer-devel >= 2.8
%define wx_requires_generator 1
%endif
%endif
%if 0%{?wx_requires_generator}
%define _use_internal_dependency_generator 0
%define __find_requires %wx_requires
%endif
%if 0%{?suse_version} >=1230
BuildRequires: systemd-devel
BuildRequires: pkgconfig(systemd)
%define have_systemd 1
%endif
%define epmd_home %{_var}/lib/epmd
%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 debugger
Summary: A debugger for debugging and testing of Erlang programs
Group: Development/Languages/Other
Requires: %{name} = %{version}
Requires: %{name}-wx = %{version}
%description debugger
A debugger for debugging and testing of Erlang programs.
%package dialyzer
Summary: A DIscrepany AnaLYZer for ERlang programs
Group: Development/Languages/Other
Requires: %{name} = %{version}
Requires: %{name}-wx = %{version}
Requires: graphviz
%description dialyzer
A DIscrepany AnaLYZer for ERlang programs.
%package diameter
Summary: Main API of the Diameter application
Group: Development/Languages/Other
Requires: %{name} = %{version}
%description diameter
This module provides the interface with which a user can implement a Diameter
node that sends and receives messages using the Diameter protocol as defined in
RFC 6733.
%package doc
Summary: Erlang documentation
Group: Development/Languages/Other
%if 0%{?suse_version}
Recommends: %{name} = %{version}
%endif
%description doc
Documentation for Erlang.
%package epmd
Summary: Erlang Port Mapper daemon
Group: Development/Languages/Other
Requires: %{name} = %{version}
Requires(postun): %insserv_prereq
Requires(post): %fillup_prereq
%if 0%{?have_systemd}
%{?systemd_requires}
%endif
%description epmd
The Erlang Port Mapper daemon acts as a name server on all hosts involved in distributed Erlang computations.
%package et
Summary: An event tracer for Erlang programs
Group: Development/Languages/Other
Requires: %{name} = %{version}
Requires: %{name}-wx = %{version}
%description et
An event tracer for Erlang programs.
%package jinterface
Summary: Erlang Java Interface
Group: Development/Libraries/Java
Requires: %{name} = %{version}
Requires: java >= 1.6.0
%description jinterface
JInterface module for accessing erlang from Java
%package reltool
Summary: A release management tool
Group: Development/Languages/Other
Requires: %{name} = %{version}
Requires: %{name}-wx = %{version}
%description reltool
Reltool is a release management tool. It analyses a given
Erlang/OTP installation and determines various dependencies
between applications. The graphical frontend depicts the
dependencies and enables interactive customization of a
target system. The backend provides a batch interface
for generation of customized target systems.
%package observer
Summary: A GUI tool for observing an erlang system
Group: Development/Languages/Other
Requires: %{name} = %{version}
Requires: %{name}-wx = %{version}
%description observer
The observer is gui frontend containing various tools to inspect a system.
It displays system information, application structures, process information,
ets or mnesia tables and a frontend for tracing with ttb.
%package src
Summary: Erlang/OTP applications sources
Group: Development/Languages/Other
Requires: %{name} = %{version}
%description src
Erlang sources for all the applications in the Erlang/OTP system.
They are useful for educational purpose and as a base for creating
embedded systems.
%package debugger-src
Summary: Erlang/OTP debugger application sources
Group: Development/Languages/Other
Requires: %{name}-debugger = %{version}
%description debugger-src
Erlang sources for the debugger application in the Erlang/OTP system.
They are useful for educational purpose and as a base for creating
embedded systems.
%package dialyzer-src
Summary: Erlang/OTP dialyzer application sources
Group: Development/Languages/Other
Requires: %{name}-dialyzer = %{version}
%description dialyzer-src
Erlang sources for the dialyzer application in the Erlang/OTP system.
They are useful for educational purpose and as a base for creating
embedded systems.
%package diameter-src
Summary: Erlang/OTP Diameter application sources
Group: Development/Languages/Other
Requires: %{name}-diameter = %{version}
%description diameter-src
Erlang sources for the Diameter application in the Erlang/OTP system.
They are useful for educational purpose and as a base for creating
embedded systems.
%package et-src
Summary: Erlang/OTP et application sources
Group: Development/Languages/Other
Requires: %{name}-et = %{version}
%description et-src
Erlang sources for the et application in the Erlang/OTP system.
They are useful for educational purpose and as a base for creating
embedded systems.
%package jinterface-src
Summary: Erlang/OTP jinterface application sources
Group: Development/Languages/Other
Requires: %{name}-jinterface = %{version}
%description jinterface-src
Erlang sources for the jinterface application in the Erlang/OTP system.
They are useful for educational purpose and as a base for creating
embedded systems.
%package reltool-src
Summary: Erlang/OTP reltool application sources
Group: Development/Languages/Other
Requires: %{name}-reltool = %{version}
%description reltool-src
Erlang sources for the reltool application in the Erlang/OTP system.
They are useful for educational purpose and as a base for creating
embedded systems.
%package observer-src
Summary: Erlang/OTP observer application sources
Group: Development/Languages/Other
Requires: %{name}-observer = %{version}
%description observer-src
Erlang sources for the observer application in the Erlang/OTP system.
They are useful for educational purpose and as a base for creating embedded systems.
%package wx-src
Summary: Erlang/OTP wx application sources
Group: Development/Languages/Other
Requires: %{name}-wx = %{version}
%description wx-src
Erlang sources for the wx application in the Erlang/OTP system.
They are useful for educational purpose and as a base for creating
embedded systems.
%package wx
Summary: A library for wxWidgets support in Erlang
Group: Development/Languages/Other
Requires: %{name} = %{version}
Requires: wxWidgets >= 2.8
%description wx
A Graphics System used to write platform independent user interfaces.
%prep
%setup -q -n otp-OTP-%{version}
%patch0 -p1 -b .rpath
%patch4 -p1
cp %{S:9} .
./otp_build autoconf
# enable dynamic linking for ssl
sed -i 's|SSL_DYNAMIC_ONLY=no|SSL_DYNAMIC_ONLY=yes|' erts/configure
# Remove shipped zlib sources
#rm -f erts/emulator/zlib/*.[ch]
# fix for arch linux bug #17001 (wx not working)
sed -i 's|WX_LIBS=`$WX_CONFIG_WITH_ARGS --libs`|WX_LIBS="`$WX_CONFIG_WITH_ARGS --libs` -lGLU"|' lib/wx/configure || return 1
%build
# we need build only 1.6 target for java
# for SLE only
%if 0%{?sles_version} >= 10 || 0%{?suse_version} >= 1110
export JAVAC="javac -source 1.6 -target 1.6"
%endif
%if 0%{?suse_version} == 1100 || 0%{?fedora_version} == 9
export CFLAGS="-fno-strict-aliasing"
%else
export CFLAGS="%{optflags} -fno-strict-aliasing"
%endif
export CXXFLAGS=$CFLAGS
%configure \
%if 0%{?have_systemd}
--enable-systemd \
%endif
--with-ssl=%{_prefix} \
--enable-threads \
--enable-smp-support \
--enable-kernel-poll \
%ifnarch s390 s390x
--enable-hipe \
%endif
--enable-shared-zlib
# clean stalled files before rebuild them
make %{?_smp_mflags} clean
# should work up to at least -j8
make %{?_smp_mflags}
# to build the docs, just compiled erlang is required
PATH=$PWD/bin:$PATH make %{?_smp_mflags} docs
%install
%if 0%{?sles_version} >= 10
make DESTDIR=%{buildroot} install
make DESTDIR=%{buildroot} install-docs
%else
%make_install install-docs
%endif
export TOOLS_VERSION=`ls %{buildroot}%{_libdir}/erlang/lib/ |grep ^tools- | sed "s|tools-||"`
# clean up
find %{buildroot}%{_libdir}/erlang -perm 0775 | xargs chmod -v 0755
find %{buildroot}%{_libdir}/erlang -name Makefile | xargs chmod -v 0644
find %{buildroot}%{_libdir}/erlang -name \*.bat | xargs rm -fv
find %{buildroot}%{_libdir}/erlang -name index.txt.old | xargs rm -fv
# doc
mv README.md README
mkdir -p erlang_doc
find %{buildroot}%{_libdir}/erlang -maxdepth 3 -type d -name doc -or -name info | while read S;do D=`echo $S | sed -e 's|%{buildroot}%{_libdir}/erlang|erlang_doc|'`; B=`dirname $D`; mkdir -p $B; mv $S $D; done
# compress man pages ...
find %{buildroot}%{_libdir}/erlang/man -type f -exec gzip {} +
#make link to OtpErlang-*.jar in %%{_javadir}
mkdir -p %{buildroot}%{_javadir}
cd %{buildroot}%{_javadir}
export JINTERFACE_VERSION=`ls %{buildroot}%{_libdir}/erlang/lib/ |grep ^jinterface- | sed "s|jinterface-||"`
ln -sf ../../%{_lib}/erlang/lib/jinterface-$JINTERFACE_VERSION/priv/OtpErlang.jar OtpErlang-$JINTERFACE_VERSION.jar
cd -
# The man-pages for binaries are safe to move to %{_mandir}, others may conflict with other packages
mkdir -p %{buildroot}%{_mandir}/man1
for link in $(ls %{buildroot}%{_libdir}/erlang/man/man1/); do
ln -s %{_libdir}/erlang/man/man1/$link %{buildroot}%{_mandir}/man1/$link
done
# emacs: automatically load support for erlang
# http://lists.mandriva.com//bugs/2007-08/msg00930.php
mkdir -p %{buildroot}%{_datadir}/emacs/site-lisp
cat > %{buildroot}%{_datadir}/emacs/site-lisp/erlang.el << EOF
(setq load-path (cons "%{_libdir}/erlang/lib/tools-$TOOLS_VERSION/emacs" load-path))
(add-to-list 'load-path "%{_datadir}/emacs/site-lisp/ess")
(load-library "erlang-start")
EOF
# hardlink duplicates:
find . -name "start_erl*" | xargs chmod 755
%fdupes %{buildroot}/%{_libdir}/erlang
# %%doc macro copies the files to the package doc dir, hardlinks thus don't work
%fdupes -s erlang_doc
install -d -m 0750 %{buildroot}%{epmd_home}
install -d -m 0755 %{buildroot}%{_sbindir}
%if 0%{?have_systemd}
install -D -m 0644 %{S:7} %{buildroot}%{_unitdir}/epmd.service
install -D -m 0644 %{S:8} %{buildroot}%{_unitdir}/epmd.socket
ln -s /sbin/service %{buildroot}%{_sbindir}/rcepmd
%else
ln -s /etc/init.d/epmd %{buildroot}%{_sbindir}/rcepmd
install -D -m 0755 %{S:4} %{buildroot}/etc/init.d/epmd
install -D -m 0644 %{S:5} %{buildroot}%{_fillupdir}/sysconfig.erlang
%endif
install -D -m 0644 %{S:6} %{buildroot}%{_sysconfdir}/rpm/macros.erlang
%pre epmd
getent group epmd || /usr/sbin/groupadd -r epmd || :
getent passwd epmd || /usr/sbin/useradd -g epmd -s /bin/false -r -c "Erlang Port Mapper Daemon" -d %{epmd_home} epmd || :
%if 0%{?have_systemd}
%service_add_pre epmd.service epmd.socket
%endif
%post epmd
%fillup_only erlang
%if 0%{?have_systemd}
%service_add_post epmd.service epmd.socket
%endif
%preun epmd
%if 0%{?have_systemd}
%service_del_preun epmd.service epmd.socket
%endif
%stop_on_removal epmd
%postun epmd
%if 0%{?have_systemd}
%service_del_postun epmd.service epmd.socket
%endif
%restart_on_update epmd
%{insserv_cleanup}
%files
%defattr(-,root,root)
%doc AUTHORS LICENSE.txt README
%if 0%{?have_systemd}
%doc README.SUSE
%endif
%doc %{_libdir}/erlang/PR.template
%doc %{_libdir}/erlang/README.md
%doc %{_libdir}/erlang/COPYRIGHT
%{_bindir}/*
%exclude %{_bindir}/dialyzer
%exclude %{_bindir}/epmd
%dir %{_libdir}/erlang
%dir %{_libdir}/erlang/lib/
%exclude %{_libdir}/erlang/lib/*/src
%exclude %{_libdir}/erlang/lib/*/c_src
%exclude %{_libdir}/erlang/lib/*/java_src
%{_libdir}/erlang/bin/
%exclude %{_libdir}/erlang/bin/dialyzer
%exclude %{_libdir}/erlang/bin/epmd
%{_libdir}/erlang/erts-*/
%exclude %{_libdir}/erlang/erts-*/bin/dialyzer
%exclude %{_libdir}/erlang/erts-*/bin/epmd
%{_libdir}/erlang/lib/asn1-*/
%{_libdir}/erlang/lib/common_test-*/
%{_libdir}/erlang/lib/compiler-*/
%{_libdir}/erlang/lib/crypto-*/
%{_libdir}/erlang/lib/edoc-*/
%{_libdir}/erlang/lib/eldap-*/
%{_libdir}/erlang/lib/erl_docgen-*/
%{_libdir}/erlang/lib/erl_interface-*/
%{_libdir}/erlang/lib/erts-*/
%{_libdir}/erlang/lib/eunit-*/
%{_libdir}/erlang/lib/hipe-*/
%{_libdir}/erlang/lib/ftp-*/
%{_libdir}/erlang/lib/inets-*/
%{_libdir}/erlang/lib/kernel-*/
%{_libdir}/erlang/lib/megaco-*/
%{_libdir}/erlang/lib/mnesia-*/
%{_libdir}/erlang/lib/odbc-*/
%{_libdir}/erlang/lib/tftp-*/
%{_libdir}/erlang/lib/os_mon-*/
%{_libdir}/erlang/lib/otp_mibs-*/
%{_libdir}/erlang/lib/parsetools-*/
%{_libdir}/erlang/lib/public_key-*/
%{_libdir}/erlang/lib/runtime_tools-*/
%{_libdir}/erlang/lib/sasl-*/
%{_libdir}/erlang/lib/snmp-*/
%{_libdir}/erlang/lib/ssh-*/
%{_libdir}/erlang/lib/ssl-*/
%{_libdir}/erlang/lib/stdlib-*/
%{_libdir}/erlang/lib/syntax_tools-*/
%{_libdir}/erlang/lib/tools-*/
%{_libdir}/erlang/lib/xmerl-*/
%{_libdir}/erlang/man/
%{_mandir}/man1/*.1.gz
%{_libdir}/erlang/releases/
%{_libdir}/erlang/usr/
%{_libdir}/erlang/Install
%{_datadir}/emacs/site-lisp/erlang.el
%config %{_sysconfdir}/rpm/macros.erlang
%files debugger
%defattr(-,root,root)
%{_libdir}/erlang/lib/debugger-*/
%exclude %{_libdir}/erlang/lib/debugger-*/src
%files dialyzer
%defattr(-,root,root)
%{_libdir}/erlang/lib/dialyzer-*/
%exclude %{_libdir}/erlang/lib/dialyzer-*/src
%{_bindir}/dialyzer
%{_libdir}/erlang/bin/dialyzer
%{_libdir}/erlang/erts-*/bin/dialyzer
%files diameter
%defattr(-,root,root)
%{_libdir}/erlang/lib/diameter-*/
%exclude %{_libdir}/erlang/lib/diameter-*/src
%files doc
%defattr(0644,root,root,0755)
%doc erlang_doc/*
%files et
%defattr(-,root,root)
%{_libdir}/erlang/lib/et-*/
%exclude %{_libdir}/erlang/lib/et-*/src
%files epmd
%defattr(-,root,root)
%{_bindir}/epmd
%{_libdir}/erlang/bin/epmd
%{_libdir}/erlang/erts-*/bin/epmd
%dir %attr(-,epmd,epmd) %{epmd_home}
%if 0%{?have_systemd}
%{_unitdir}/epmd.service
%{_unitdir}/epmd.socket
%else
/etc/init.d/epmd
%{_fillupdir}/sysconfig.erlang
%endif
%{_sbindir}/rcepmd
%files jinterface
%defattr(-,root,root,-)
%{_libdir}/erlang/lib/jinterface-*/
%exclude %{_libdir}/erlang/lib/jinterface-*/java_src
%{_javadir}/*
%files reltool
%defattr(-,root,root)
%{_libdir}/erlang/lib/reltool-*/
%exclude %{_libdir}/erlang/lib/reltool-*/src
%files observer
%defattr(-,root,root)
%{_libdir}/erlang/lib/observer-*/
%exclude %{_libdir}/erlang/lib/observer-*/src
%files wx
%defattr(-,root,root)
%{_libdir}/erlang/lib/wx-*/
%exclude %{_libdir}/erlang/lib/wx-*/src
%files src
%defattr(-,root,root)
%exclude %{_libdir}/erlang/lib/erl_interface-*/src/INSTALL
%{_libdir}/erlang/lib/*/src
%{_libdir}/erlang/lib/*/c_src
%{_libdir}/erlang/lib/*/java_src
%exclude %{_libdir}/erlang/lib/debugger-*/src
%exclude %{_libdir}/erlang/lib/dialyzer-*/src
%exclude %{_libdir}/erlang/lib/diameter-*/src
%exclude %{_libdir}/erlang/lib/et-*/src
%exclude %{_libdir}/erlang/lib/jinterface-*/java_src
%exclude %{_libdir}/erlang/lib/reltool-*/src
%exclude %{_libdir}/erlang/lib/observer-*/src
%exclude %{_libdir}/erlang/lib/wx-*/src
%files debugger-src
%defattr(-,root,root)
%{_libdir}/erlang/lib/debugger-*/src
%files dialyzer-src
%defattr(-,root,root)
%{_libdir}/erlang/lib/dialyzer-*/src
%files diameter-src
%defattr(-,root,root)
%{_libdir}/erlang/lib/diameter-*/src
%files et-src
%defattr(-,root,root)
%{_libdir}/erlang/lib/et-*/src
%files jinterface-src
%defattr(-,root,root)
%{_libdir}/erlang/lib/jinterface-*/java_src
%files reltool-src
%defattr(-,root,root)
%{_libdir}/erlang/lib/reltool-*/src
%files observer-src
%defattr(-,root,root)
%{_libdir}/erlang/lib/observer-*/src
%files wx-src
%defattr(-,root,root)
%{_libdir}/erlang/lib/wx-*/src
%changelog