commit e73e8a3d3fa34590794f6faeb9a68115869b4699
Author: Peter Lemenkov <[email protected]>
Date:   Wed Nov 12 09:09:56 2014 +0300

    Trimmed dependency chain
    
    Signed-off-by: Peter Lemenkov <[email protected]>

 erlang.spec                                        |  221 +++++++++-----------
 ...Install-internal-hrl-files-when-necessary.patch |   97 +++++++++
 otp-0015-Expose-NIF-version.patch                  |   90 ++++++++
 ...6-Split-off-webtool-dependency-from-tools.patch |   40 ++++
 sources                                            |    3 -
 5 files changed, 330 insertions(+), 121 deletions(-)
---
diff --git a/erlang.spec b/erlang.spec
index dbac58a..a221252 100644
--- a/erlang.spec
+++ b/erlang.spec
@@ -17,13 +17,6 @@
 
 %bcond_without doc
 
-# No fop for EPEL5, and only for x86/x86_64 in EPEL6, so just disable there too
-%if 0%{?el5}%{?el6}
-%global use_prebuilt_docs 1
-%else
-%global use_prebuilt_docs 0
-%endif
-
 %ifarch %{arm} %{ix86} x86_64 ppc %{power64}
 %global __with_hipe 1
 %endif
@@ -32,18 +25,16 @@
 
 Name:          erlang
 Version:       %{upstream_ver}
-Release:       %{upstream_rel_for_rpm}.7%{?dist}
+Release:       %{upstream_rel_for_rpm}.8%{?dist}
 Summary:       General-purpose programming language and runtime environment
 
 Group:         Development/Languages
 License:       ERPL
 URL:           http://www.erlang.org
-Source0:       
http://www.erlang.org/download/otp_src_%{upstream_ver}%{upstream_rel}-1.tar.gz
-%if %{use_prebuilt_docs}
-Source1:       
http://erlang.org/download/otp_doc_html_%{upstream_ver}%{upstream_rel}-1.tar.gz
-Source2:       
http://erlang.org/download/otp_doc_man_%{upstream_ver}%{upstream_rel}-1.tar.gz
+%if 0%{?el7}%{?fedora}
+VCS:           scm:git:https://github.com/erlang/otp
 %endif
-Source4:       
http://www.erlang.org/download/otp_src_%{upstream_ver}%{upstream_rel}-1.readme
+Source0:       
http://www.erlang.org/download/otp_src_%{upstream_ver}%{upstream_rel}-1.tar.gz
 Source5:       epmd.service
 Source6:       epmd.socket
 Source7:       [email protected]
@@ -104,11 +95,17 @@ Patch12: otp-0012-Add-systemd-support-to-epmd.patch
 # Fedora specific patch
 #   Added systemd notify support to EPMD
 Patch13: otp-0013-Added-systemd-notify-support-to-EPMD.patch
+# Fedora specific patch
+#   Install internal hrl files when necessary
+Patch14: otp-0014-Install-internal-hrl-files-when-necessary.patch
+# Fedora specific patch
+#   Expose NIF version
+Patch15: otp-0015-Expose-NIF-version.patch
+# Fedora specific patch
+#   Split off webtool dependency from tools
+Patch16: otp-0016-Split-off-webtool-dependency-from-tools.patch
 # end of autogenerated patch tag list
 
-# BuildRoot not strictly needed since F10, but keep it for spec file robustness
-BuildRoot:     %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
-
 BuildRequires: lksctp-tools-devel
 BuildRequires: ncurses-devel
 BuildRequires: openssl-devel
@@ -116,8 +113,7 @@ BuildRequires:      zlib-devel
 BuildRequires: flex
 BuildRequires: m4
 %if %{with doc}
-%if %{use_prebuilt_docs}
-%else
+# BEWARE. No fop for EPEL5, and only for x86/x86_64 in EPEL6, so we cannot 
regenerate docs here
 BuildRequires: fop
 BuildRequires: libxslt
 
@@ -126,14 +122,11 @@ BuildRequires:    libxslt
 BuildRequires: erlang
 %endif
 %endif
-%endif
 
-%if 0%{?el6}%{?fedora}
 BuildRequires: emacs
 BuildRequires: xemacs
 BuildRequires: emacs-el
 BuildRequires: xemacs-packages-extra-el
-%endif
 
 %if 0%{?el7}%{?fedora}
 # for <systemd/sd-daemon.h>
@@ -144,63 +137,64 @@ Requires(postun):systemd
 Requires:      systemd
 %endif
 
-Requires: erlang-appmon%{?_isa} = %{version}-%{release}
-Requires: erlang-asn1%{?_isa} = %{version}-%{release}
-Requires: erlang-common_test%{?_isa} = %{version}-%{release}
-Requires: erlang-compiler%{?_isa} = %{version}-%{release}
-Requires: erlang-cosEvent%{?_isa} = %{version}-%{release}
-Requires: erlang-cosEventDomain%{?_isa} = %{version}-%{release}
-Requires: erlang-cosFileTransfer%{?_isa} = %{version}-%{release}
-Requires: erlang-cosNotification%{?_isa} = %{version}-%{release}
-Requires: erlang-cosProperty%{?_isa} = %{version}-%{release}
-Requires: erlang-cosTime%{?_isa} = %{version}-%{release}
-Requires: erlang-cosTransactions%{?_isa} = %{version}-%{release}
-Requires: erlang-crypto%{?_isa} = %{version}-%{release}
-Requires: erlang-debugger%{?_isa} = %{version}-%{release}
-
-Requires: erlang-dialyzer%{?_isa} = %{version}-%{release}
-Requires: erlang-diameter%{?_isa} = %{version}-%{release}
-Requires: erlang-edoc%{?_isa} = %{version}-%{release}
-Requires: erlang-eldap%{?_isa} = %{version}-%{release}
-Requires: erlang-erl_docgen%{?_isa} = %{version}-%{release}
-Requires: erlang-erl_interface%{?_isa} = %{version}-%{release}
-Requires: erlang-erts%{?_isa} = %{version}-%{release}
-Requires: erlang-et%{?_isa} = %{version}-%{release}
-Requires: erlang-eunit%{?_isa} = %{version}-%{release}
-Requires: erlang-examples%{?_isa} = %{version}-%{release}
-Requires: erlang-gs%{?_isa} = %{version}-%{release}
-Requires: erlang-hipe%{?_isa} = %{version}-%{release}
-Requires: erlang-ic%{?_isa} = %{version}-%{release}
-Requires: erlang-inets%{?_isa} = %{version}-%{release}
-Requires: erlang-jinterface%{?_isa} = %{version}-%{release}
-Requires: erlang-kernel%{?_isa} = %{version}-%{release}
-Requires: erlang-megaco%{?_isa} = %{version}-%{release}
-Requires: erlang-mnesia%{?_isa} = %{version}-%{release}
-Requires: erlang-observer%{?_isa} = %{version}-%{release}
-Requires: erlang-odbc%{?_isa} = %{version}-%{release}
-Requires: erlang-orber%{?_isa} = %{version}-%{release}
-Requires: erlang-os_mon%{?_isa} = %{version}-%{release}
-Requires: erlang-otp_mibs%{?_isa} = %{version}-%{release}
-Requires: erlang-parsetools%{?_isa} = %{version}-%{release}
-Requires: erlang-percept%{?_isa} = %{version}-%{release}
-Requires: erlang-pman%{?_isa} = %{version}-%{release}
-Requires: erlang-public_key%{?_isa} = %{version}-%{release}
-Requires: erlang-reltool%{?_isa} = %{version}-%{release}
-Requires: erlang-runtime_tools%{?_isa} = %{version}-%{release}
-Requires: erlang-sasl%{?_isa} = %{version}-%{release}
-Requires: erlang-snmp%{?_isa} = %{version}-%{release}
-Requires: erlang-ssh%{?_isa} = %{version}-%{release}
-Requires: erlang-ssl%{?_isa} = %{version}-%{release}
-Requires: erlang-stdlib%{?_isa} = %{version}-%{release}
-Requires: erlang-syntax_tools%{?_isa} = %{version}-%{release}
-Requires: erlang-test_server%{?_isa} = %{version}-%{release}
-Requires: erlang-toolbar%{?_isa} = %{version}-%{release}
-Requires: erlang-tools%{?_isa} = %{version}-%{release}
-Requires: erlang-tv%{?_isa} = %{version}-%{release}
-Requires: erlang-typer%{?_isa} = %{version}-%{release}
-Requires: erlang-webtool%{?_isa} = %{version}-%{release}
-Requires: erlang-wx%{?_isa} = %{version}-%{release}
-Requires: erlang-xmerl%{?_isa} = %{version}-%{release}
+BuildRequires: erlang-rpm-macros
+
+Requires: %{name}-appmon%{?_isa} = %{version}-%{release}
+Requires: %{name}-asn1%{?_isa} = %{version}-%{release}
+Requires: %{name}-common_test%{?_isa} = %{version}-%{release}
+Requires: %{name}-compiler%{?_isa} = %{version}-%{release}
+Requires: %{name}-cosEvent%{?_isa} = %{version}-%{release}
+Requires: %{name}-cosEventDomain%{?_isa} = %{version}-%{release}
+Requires: %{name}-cosFileTransfer%{?_isa} = %{version}-%{release}
+Requires: %{name}-cosNotification%{?_isa} = %{version}-%{release}
+Requires: %{name}-cosProperty%{?_isa} = %{version}-%{release}
+Requires: %{name}-cosTime%{?_isa} = %{version}-%{release}
+Requires: %{name}-cosTransactions%{?_isa} = %{version}-%{release}
+Requires: %{name}-crypto%{?_isa} = %{version}-%{release}
+Requires: %{name}-debugger%{?_isa} = %{version}-%{release}
+Requires: %{name}-dialyzer%{?_isa} = %{version}-%{release}
+Requires: %{name}-diameter%{?_isa} = %{version}-%{release}
+Requires: %{name}-edoc%{?_isa} = %{version}-%{release}
+Requires: %{name}-eldap%{?_isa} = %{version}-%{release}
+Requires: %{name}-erl_docgen%{?_isa} = %{version}-%{release}
+Requires: %{name}-erl_interface%{?_isa} = %{version}-%{release}
+Requires: %{name}-erts%{?_isa} = %{version}-%{release}
+Requires: %{name}-et%{?_isa} = %{version}-%{release}
+Requires: %{name}-eunit%{?_isa} = %{version}-%{release}
+Requires: %{name}-examples%{?_isa} = %{version}-%{release}
+Requires: %{name}-gs%{?_isa} = %{version}-%{release}
+Requires: %{name}-hipe%{?_isa} = %{version}-%{release}
+Requires: %{name}-ic%{?_isa} = %{version}-%{release}
+Requires: %{name}-inets%{?_isa} = %{version}-%{release}
+Requires: %{name}-jinterface%{?_isa} = %{version}-%{release}
+Requires: %{name}-kernel%{?_isa} = %{version}-%{release}
+Requires: %{name}-megaco%{?_isa} = %{version}-%{release}
+Requires: %{name}-mnesia%{?_isa} = %{version}-%{release}
+Requires: %{name}-observer%{?_isa} = %{version}-%{release}
+Requires: %{name}-odbc%{?_isa} = %{version}-%{release}
+Requires: %{name}-orber%{?_isa} = %{version}-%{release}
+Requires: %{name}-os_mon%{?_isa} = %{version}-%{release}
+Requires: %{name}-otp_mibs%{?_isa} = %{version}-%{release}
+Requires: %{name}-parsetools%{?_isa} = %{version}-%{release}
+Requires: %{name}-percept%{?_isa} = %{version}-%{release}
+Requires: %{name}-pman%{?_isa} = %{version}-%{release}
+Requires: %{name}-public_key%{?_isa} = %{version}-%{release}
+Requires: %{name}-reltool%{?_isa} = %{version}-%{release}
+Requires: %{name}-runtime_tools%{?_isa} = %{version}-%{release}
+Requires: %{name}-sasl%{?_isa} = %{version}-%{release}
+Requires: %{name}-snmp%{?_isa} = %{version}-%{release}
+Requires: %{name}-ssh%{?_isa} = %{version}-%{release}
+Requires: %{name}-ssl%{?_isa} = %{version}-%{release}
+Requires: %{name}-stdlib%{?_isa} = %{version}-%{release}
+Requires: %{name}-syntax_tools%{?_isa} = %{version}-%{release}
+Requires: %{name}-test_server%{?_isa} = %{version}-%{release}
+Requires: %{name}-toolbar%{?_isa} = %{version}-%{release}
+Requires: %{name}-tools%{?_isa} = %{version}-%{release}
+Requires: %{name}-tv%{?_isa} = %{version}-%{release}
+Requires: %{name}-typer%{?_isa} = %{version}-%{release}
+Requires: %{name}-webtool%{?_isa} = %{version}-%{release}
+Requires: %{name}-wx%{?_isa} = %{version}-%{release}
+Requires: %{name}-xmerl%{?_isa} = %{version}-%{release}
 Obsoletes: erlang-docbuilder
 Obsoletes: erlang-inviso
 
@@ -405,15 +399,15 @@ Requires: %{name}-syntax_tools%{?_isa} = 
%{version}-%{release}
 %description diameter
 Diameter (RFC 3588) library
 
+%if %{with doc}
 %package doc
 Summary:       Erlang documentation
 Group:         Development/Languages
-%if 0%{?el6}%{?el7}%{?fedora}
 BuildArch:     noarch
-%endif
 
 %description doc
 Documentation for Erlang.
+%endif
 
 %package edoc
 Summary:       A utility used to generate documentation out of tags in source 
files
@@ -464,8 +458,12 @@ Summary:   Functionality necessary to run the Erlang 
System itself
 Group:         Development/Languages
 Requires: %{name}-kernel%{?_isa} = %{version}-%{release}
 Requires: %{name}-stdlib%{?_isa} = %{version}-%{release}
+# This library is dlopened so it can't be picked up automatically by the RPM
+# dependency checker
 Requires: lksctp-tools
+# See erts/emulator/beam/erl_driver.h or call 
erlang:system_info(driver_version).
 Provides: erlang(erl_drv_version) = 2.2
+# See erts/emulator/beam/erl_nif.h or call erlang:system_info(nif_version).
 Provides: erlang(erl_nif_version) = 2.4
 
 %description erts
@@ -558,7 +556,7 @@ Group:              Development/Languages
 Requires:      %{name}-erts%{?_isa} = %{version}-%{release}
 # FIXME see erlang-ic also
 #Requires:     jpackage-utils
-%if 0%{?fedora}%{?el7}
+%if 0%{?el7}%{?fedora}
 BuildRequires: java-devel
 %else
 %ifarch %{ix86} x86_64
@@ -788,7 +786,6 @@ Secure Shell application with sftp and ssh support.
 %package ssl
 Summary:       Secure Socket Layer support
 Group:         Development/Languages
-#Requires: %{name}-asn1%{?_isa} = %{version}-%{release}
 Requires: %{name}-crypto%{?_isa} = %{version}-%{release}
 Requires: %{name}-erts%{?_isa} = %{version}-%{release}
 Requires: %{name}-kernel%{?_isa} = %{version}-%{release}
@@ -828,7 +825,6 @@ Requires: %{name}-inets%{?_isa} = %{version}-%{release}
 Requires: %{name}-kernel%{?_isa} = %{version}-%{release}
 Requires: %{name}-observer%{?_isa} = %{version}-%{release}
 Requires: %{name}-runtime_tools%{?_isa} = %{version}-%{release}
-#Requires: %{name}-sasl%{?_isa} = %{version}-%{release}
 Requires: %{name}-stdlib%{?_isa} = %{version}-%{release}
 Requires: %{name}-tools%{?_isa} = %{version}-%{release}
 
@@ -855,7 +851,12 @@ Requires: %{name}-inets%{?_isa} = %{version}-%{release}
 Requires: %{name}-kernel%{?_isa} = %{version}-%{release}
 Requires: %{name}-runtime_tools%{?_isa} = %{version}-%{release}
 Requires: %{name}-stdlib%{?_isa} = %{version}-%{release}
-Requires: %{name}-webtool%{?_isa} = %{version}-%{release}
+# This is a weak dependency triggered by the "cover_web" application.
+# Unfortunately Recommends/Suggests tags are supported only in Fedora 21+ and
+# RHEL 8+ (eventually)
+%if 0%{?fedora} >= 21 || 0%{?rhel} >= 8
+Suggests: %{name}-webtool%{?_isa} = %{version}-%{release}
+%endif
 Provides:      emacs-common-erlang = %{version}-%{release}
 
 %description tools
@@ -922,7 +923,6 @@ Requires: %{name}-stdlib%{?_isa} = %{version}-%{release}
 %description xmerl
 Provides support for XML 1.0.
 
-%if 0%{?el6}%{?fedora}
 %package -n emacs-erlang
 Summary:       Compiled elisp files for erlang-mode under GNU Emacs
 Requires:      emacs-common-erlang = %{version}-%{release}
@@ -960,7 +960,6 @@ BuildArch:  noarch
 
 %description -n xemacs-erlang-el
 Erlang mode for XEmacs (source lisp files).
-%endif
 
 %prep
 %setup -q -n otp_src_%{upstream_ver}%{upstream_rel}-1
@@ -983,6 +982,9 @@ Erlang mode for XEmacs (source lisp files).
 %patch11 -p1 -b .Add_systemd_option_to_empd_Check_for_include_system
 %patch12 -p1 -b .Add_systemd_support_to_epmd
 %patch13 -p1 -b .Added_systemd_notify_support_to_EPMD
+%patch14 -p1 -b .Install_internal_hrl_files_when_necessary
+%patch15 -p1 -b .Expose_NIF_version
+%patch16 -p1 -b .Split_off_webtool_dependency_from_tools
 # end of autogenerated prep patch list
 
 # FIXME we should come up with a better solution
@@ -1005,9 +1007,9 @@ rm -f lib/ssl/examples/certs/etc/erlangCA/index.txt.old
 
 %build
 %ifarch sparcv9 sparc64
-CFLAGS="$RPM_OPT_FLAGS -mcpu=ultrasparc -fno-strict-aliasing" %configure 
--enable-shared-zlib --enable-sctp %{?__with_hipe:--enable-hipe}
+CFLAGS="$RPM_OPT_FLAGS -mcpu=ultrasparc -fno-strict-aliasing" %configure 
--enable-shared-zlib --enable-sctp --enable-systemd 
%{?__with_hipe:--enable-hipe}
 %else
-CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" %configure --enable-shared-zlib 
--enable-sctp %{?__with_hipe:--enable-hipe}
+CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" %configure --enable-shared-zlib 
--enable-sctp --enable-systemd %{?__with_hipe:--enable-hipe}
 %endif
 
 # Remove pre-built BEAM files
@@ -1016,7 +1018,6 @@ make clean
 # GNU Emacs/XEmacs related stuff
 erlang_tools_vsn="$(sed -n 's/TOOLS_VSN = //p' lib/tools/vsn.mk)"
 
-%if 0%{?el6}%{?fedora}
 # GNU Emacs related stuff
 cat > emacs-erlang-init.el << EOF
 (setq load-path (cons "%{_emacs_sitelispdir}/erlang" load-path))
@@ -1043,12 +1044,10 @@ rm -f xemacs-erlang/erlang-flymake.el
 pushd xemacs-erlang
 %{_xemacs_bytecompile} *.el
 popd
-%endif
 
 make
+
 %if %{with doc}
-%if %{use_prebuilt_docs}
-%else
 # should use FOP_OPTS after #832323 is resolved
 %ifnarch ppc %{power64}
 export BASE_OPTIONS=-Xmx1024m
@@ -1057,13 +1056,9 @@ export BASE_OPTIONS=-Xmx1536m
 %endif
 make docs
 %endif
-%endif
 
 
 %install
-rm -rf $RPM_BUILD_ROOT
-
-%if 0%{?el6}%{?fedora}
 # GNU Emacs/XEmacs related stuff
 erlang_tools_vsn="$(sed -n 's/TOOLS_VSN = //p' lib/tools/vsn.mk)"
 
@@ -1089,25 +1084,12 @@ for f in lib/tools/emacs/{README,*.el}; do
 done
 rm -f "$RPM_BUILD_ROOT%{_xemacs_sitelispdir}/erlang/erlang-flymake.el"
 install -m 0644 xemacs-erlang/*.elc 
"$RPM_BUILD_ROOT%{_xemacs_sitelispdir}/erlang/"
-%endif
 
 make DESTDIR=$RPM_BUILD_ROOT install
+
 %if %{with doc}
-%if %{use_prebuilt_docs}
-# extract prebuilt docs and man-pages
-tar xf %{SOURCE1} -C $RPM_BUILD_ROOT%{_libdir}/erlang
-tar xf %{SOURCE2} -C $RPM_BUILD_ROOT%{_libdir}/erlang
-# rm Win32-specific functionality
-rm -f $RPM_BUILD_ROOT%{_libdir}/erlang/man/man3/nteventlog.*
-# rm VxWorks specific
-rm -f $RPM_BUILD_ROOT%{_libdir}/erlang/man/man3/erl_set_memory_block.*
-# rm unneeded files
-rm -f $RPM_BUILD_ROOT%{_libdir}/erlang/erts-*/info
-rm -f $RPM_BUILD_ROOT%{_libdir}/erlang/lib/*-*/info
-%else
 env ERL_LIBS="$RPM_BUILD_ROOT%{_libdir}/erlang/lib" make 
DESTDIR=$RPM_BUILD_ROOT install-docs
 %endif
-%endif
 
 # Do not install info files - they are almost empty and useless
 find $RPM_BUILD_ROOT%{_libdir}/erlang -type f -name info -exec rm -f {} \;
@@ -1194,10 +1176,6 @@ useradd -r -g epmd -d /tmp -s /sbin/nologin \
 -c "Erlang Port Mapper Daemon" epmd 2>/dev/null || :
 
 
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-
 %files
 %if %{with doc}
 %dir %{_docdir}/%{n_uvr}/
@@ -1410,8 +1388,8 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/erlang/man/man4/diameter_dict.*
 %endif
 
-%files doc
 %if %{with doc}
+%files doc
 %doc %{_docdir}/%{n_uvr}/doc
 %doc %{_docdir}/%{n_uvr}/erts-*/
 %doc %{_docdir}/%{n_uvr}/lib/
@@ -1436,7 +1414,9 @@ rm -rf $RPM_BUILD_ROOT
 
 %files erl_docgen
 %{_libdir}/erlang/lib/erl_docgen-*/
+%if %{with doc}
 %{_libdir}/erlang/man/man6/erl_docgen.*
+%endif
 
 %files erl_interface
 %{_libdir}/erlang/lib/erl_interface-*/
@@ -1455,7 +1435,9 @@ rm -rf $RPM_BUILD_ROOT
 %endif
 
 %files erts
-# TODO these directories should be packaged separately
+# TODO
+# In order to have a parallel-installable Erlang packages these directories
+# should be packaged separately
 %dir %{_libdir}/erlang/
 %dir %{_libdir}/erlang/bin/
 %dir %{_libdir}/erlang/lib/
@@ -1556,6 +1538,7 @@ rm -rf $RPM_BUILD_ROOT
 %dir %{_libdir}/erlang/lib/eunit-*/
 %{_libdir}/erlang/lib/eunit-*/ebin
 %{_libdir}/erlang/lib/eunit-*/include
+%{_libdir}/erlang/lib/eunit-*/src
 %if %{with doc}
 %{_libdir}/erlang/man/man3/eunit.*
 %{_libdir}/erlang/man/man3/eunit_surefire.*
@@ -2313,7 +2296,6 @@ rm -rf $RPM_BUILD_ROOT
 %{_libdir}/erlang/man/man3/xmerl_xsd.*
 %endif
 
-%if 0%{?el6}%{?fedora}
 %files -n emacs-erlang
 %dir %{_emacs_sitelispdir}/erlang
 %doc %{_emacs_sitelispdir}/erlang/README
@@ -2331,10 +2313,13 @@ rm -rf $RPM_BUILD_ROOT
 
 %files -n xemacs-erlang-el
 %{_xemacs_sitelispdir}/erlang/*.el
-%endif
 
 
 %changelog
+* Tue Nov 11 2014 Peter Lemenkov <[email protected]> - R16B-03.8
+- Trimmed dependency chain
+- Cleaned up spec-file
+
 * Wed Jun 11 2014 Peter Lemenkov <[email protected]> - R16B-03.7
 - Added missing template for [email protected]
 
diff --git a/otp-0014-Install-internal-hrl-files-when-necessary.patch 
b/otp-0014-Install-internal-hrl-files-when-necessary.patch
new file mode 100644
index 0000000..14cf312
--- /dev/null
+++ b/otp-0014-Install-internal-hrl-files-when-necessary.patch
@@ -0,0 +1,97 @@
+From: Peter Lemenkov <[email protected]>
+Date: Tue, 26 Aug 2014 13:53:49 +0400
+Subject: [PATCH] Install internal hrl files when necessary
+
+Sometimes we install *.erl files. Some these files include a private
+*.hrl files, so in order to make these *.erl files usable we have to
+install these private includes as well.
+
+Signed-off-by: Peter Lemenkov <[email protected]>
+
+Conflicts:
+       lib/eunit/src/Makefile
+       lib/percept/src/Makefile
+       lib/test_server/src/Makefile
+
+diff --git a/lib/debugger/src/Makefile b/lib/debugger/src/Makefile
+index 5a6f298..b40ef23 100644
+--- a/lib/debugger/src/Makefile
++++ b/lib/debugger/src/Makefile
+@@ -77,7 +77,7 @@ MODULES= \
+ 
+ HRL_FILES=
+ 
+-INTERNAL_HRL_FILES= dbg_ieval.hrl
++INTERNAL_HRL_FILES= dbg_ieval.hrl dbg_wx_filedialog_win.hrl
+ 
+ ERL_FILES= $(MODULES:%=%.erl)
+ 
+diff --git a/lib/eunit/src/Makefile b/lib/eunit/src/Makefile
+index a5e147d..8483e28 100644
+--- a/lib/eunit/src/Makefile
++++ b/lib/eunit/src/Makefile
+@@ -46,6 +46,8 @@ SOURCES= \
+ 
+ INCLUDE_FILES = eunit.hrl
+ 
++INTERNAL_HRL_FILES= eunit_internal.hrl
++
+ PARSE_TRANSFORM_BIN = $(PARSE_TRANSFORM:%.erl=$(EBIN)/%.$(EMULATOR))
+ 
+ TARGET_FILES= $(SOURCES:%.erl=$(EBIN)/%.$(EMULATOR))
+@@ -117,6 +119,8 @@ include $(ERL_TOP)/make/otp_release_targets.mk
+ release_spec: opt
+       $(INSTALL_DIR) "$(RELSYSDIR)/ebin"
+       $(INSTALL_DATA) $(PARSE_TRANSFORM_BIN) $(OBJECTS) "$(RELSYSDIR)/ebin"
++      $(INSTALL_DIR) "$(RELSYSDIR)/src"
++      $(INSTALL_DATA) $(INTERNAL_HRL_FILES) "$(RELSYSDIR)/src"
+       $(INSTALL_DIR) "$(RELSYSDIR)/include"
+       $(INSTALL_DATA) $(INCLUDE_DELIVERABLES) "$(RELSYSDIR)/include"
+ 
+diff --git a/lib/kernel/src/Makefile b/lib/kernel/src/Makefile
+index dbda2a2..3e1792f 100644
+--- a/lib/kernel/src/Makefile
++++ b/lib/kernel/src/Makefile
+@@ -122,6 +122,7 @@ HRL_FILES= ../include/file.hrl ../include/inet.hrl 
../include/inet_sctp.hrl \
+       ../include/net_address.hrl 
+ 
+ INTERNAL_HRL_FILES= application_master.hrl disk_log.hrl \
++        erl_epmd.hrl hipe_ext_format.hrl \
+         inet_dns.hrl inet_res.hrl \
+         inet_boot.hrl inet_config.hrl inet_int.hrl \
+       inet_dns_record_adts.hrl
+diff --git a/lib/percept/src/Makefile b/lib/percept/src/Makefile
+index e501539..5902da3 100644
+--- a/lib/percept/src/Makefile
++++ b/lib/percept/src/Makefile
+@@ -50,6 +50,8 @@ MODULES= \
+ 
+ #HRL_FILES= ../include/
+ 
++INTERNAL_HRL_FILES= egd.hrl percept.hrl
++
+ ERL_FILES= $(MODULES:%=%.erl)
+ 
+ TARGET_FILES= $(MODULES:%=$(EBIN)/%.$(EMULATOR)) $(APP_TARGET) $(APPUP_TARGET)
+@@ -93,6 +95,8 @@ docs:
+ include $(ERL_TOP)/make/otp_release_targets.mk
+ 
+ release_spec: opt
++      $(INSTALL_DIR) "$(RELSYSDIR)/src"
++      $(INSTALL_DATA) $(INTERNAL_HRL_FILES) "$(RELSYSDIR)/src"
+ #     $(INSTALL_DIR) "$(RELSYSDIR)/include"
+ #     $(INSTALL_DATA) $(HRL_FILES) "$(RELSYSDIR)/include"
+       $(INSTALL_DIR) "$(RELSYSDIR)/ebin"
+diff --git a/lib/test_server/src/Makefile b/lib/test_server/src/Makefile
+index bcb1bc3..deb7caf 100644
+--- a/lib/test_server/src/Makefile
++++ b/lib/test_server/src/Makefile
+@@ -123,7 +123,7 @@ include $(ERL_TOP)/make/otp_release_targets.mk
+ 
+ release_spec: opt
+       $(INSTALL_DIR) "$(RELSYSDIR)/src"
+-      $(INSTALL_DATA) $(INTERNAL_HRL_FILES) "$(RELSYSDIR)/src"
++      $(INSTALL_DATA) $(INTERNAL_HRL_FILES) $(TS_HRL_FILES) "$(RELSYSDIR)/src"
+       $(INSTALL_DIR) "$(RELSYSDIR)/include"
+       $(INSTALL_DATA) $(HRL_FILES) "$(RELSYSDIR)/include"
+       $(INSTALL_DIR) "$(RELSYSDIR)/ebin"
diff --git a/otp-0015-Expose-NIF-version.patch 
b/otp-0015-Expose-NIF-version.patch
new file mode 100644
index 0000000..3ae0096
--- /dev/null
+++ b/otp-0015-Expose-NIF-version.patch
@@ -0,0 +1,90 @@
+From: Peter Lemenkov <[email protected]>
+Date: Sun, 2 Nov 2014 19:49:55 +0300
+Subject: [PATCH] Expose NIF version
+
+This patch allows checking for NIF API version in a way similar to
+driver version. E.g. by calling erlang:system_info(nif_version).
+
+Signed-off-by: Peter Lemenkov <[email protected]>
+
+Conflicts:
+       erts/emulator/test/driver_SUITE.erl
+
+diff --git a/erts/doc/src/erlang.xml b/erts/doc/src/erlang.xml
+index e3ef48a..b9d7230 100644
+--- a/erts/doc/src/erlang.xml
++++ b/erts/doc/src/erlang.xml
+@@ -5903,6 +5903,11 @@ ok
+               <seealso 
marker="#system_info_multi_scheduling">erlang:system_info(multi_scheduling)</seealso>,
 and
+               <seealso 
marker="#system_info_schedulers">erlang:system_info(schedulers)</seealso>.</p>
+           </item>
++          <tag><c>nif_version</c></tag>
++          <item>
++            <p>Returns a string containing the erlang NIF version
++              used by the runtime system. It will be on the form "&lt;major 
ver&gt;.&lt;minor ver&gt;".</p>
++          </item>
+           <tag><marker 
id="system_info_otp_release"><c>otp_release</c></marker></tag>
+           <item>
+             <p>Returns a string containing the OTP release number.</p>
+diff --git a/erts/emulator/beam/erl_bif_info.c 
b/erts/emulator/beam/erl_bif_info.c
+index d7f1e2d..7a7f23e 100755
+--- a/erts/emulator/beam/erl_bif_info.c
++++ b/erts/emulator/beam/erl_bif_info.c
+@@ -27,6 +27,7 @@
+ #include "erl_process.h"
+ #include "error.h"
+ #include "erl_driver.h"
++#include "erl_nif.h"
+ #include "bif.h"
+ #include "big.h"
+ #include "erl_version.h"
+@@ -2428,6 +2429,13 @@ BIF_RETTYPE system_info_1(BIF_ALIST_1)
+                             ERL_DRV_EXTENDED_MINOR_VERSION);
+       hp = HAlloc(BIF_P, 2*n);
+       BIF_RET(buf_to_intlist(&hp, buf, n, NIL));
++    } else if (ERTS_IS_ATOM_STR("nif_version", BIF_ARG_1)) {
++      char buf[42];
++      int n = erts_snprintf(buf, 42, "%d.%d",
++                            ERL_NIF_MAJOR_VERSION,
++                            ERL_NIF_MINOR_VERSION);
++      hp = HAlloc(BIF_P, 2*n);
++      BIF_RET(buf_to_intlist(&hp, buf, n, NIL));
+     } else if (ERTS_IS_ATOM_STR("smp_support", BIF_ARG_1)) {
+ #ifdef ERTS_SMP
+       BIF_RET(am_true);
+diff --git a/erts/preloaded/src/erlang.erl b/erts/preloaded/src/erlang.erl
+index 2919265..c0f14ad 100644
+--- a/erts/preloaded/src/erlang.erl
++++ b/erts/preloaded/src/erlang.erl
+@@ -2124,6 +2124,7 @@ tuple_to_list(_Tuple) ->
+          (modified_timing_level) -> integer() | undefined;
+          (multi_scheduling) -> disabled | blocked | enabled;
+          (multi_scheduling_blockers) -> [PID :: pid()];
++         (nif_version) -> string();
+          (otp_release) -> string();
+          (port_count) -> non_neg_integer();
+          (port_limit) -> pos_integer();
+diff --git a/lib/runtime_tools/src/system_information.erl 
b/lib/runtime_tools/src/system_information.erl
+index 1d4b878..64f1b82 100644
+--- a/lib/runtime_tools/src/system_information.erl
++++ b/lib/runtime_tools/src/system_information.erl
+@@ -344,6 +344,7 @@ erlang_system_info() ->
+           logical_processors_online,
+           logical_processors_available,
+           driver_version,
++          nif_version,
+           emu_args,
+           ethread_info,
+           beam_jump_table,
+diff --git 
a/lib/runtime_tools/test/system_information_SUITE_data/information_test_report.dat
 
b/lib/runtime_tools/test/system_information_SUITE_data/information_test_report.dat
+index 0900ead..9ded5a1 100644
+--- 
a/lib/runtime_tools/test/system_information_SUITE_data/information_test_report.dat
++++ 
b/lib/runtime_tools/test/system_information_SUITE_data/information_test_report.dat
+@@ -9720,6 +9720,7 @@
+                  {logical_processors_online,4},
+                  {logical_processors_available,4},
+                  {driver_version,"2.1"},
++                 {nif_version,"1.1"},
+                  {taints,[]}]},
+                {erts_compile_info,
+                 [{ldflags,[]},
diff --git a/otp-0016-Split-off-webtool-dependency-from-tools.patch 
b/otp-0016-Split-off-webtool-dependency-from-tools.patch
new file mode 100644
index 0000000..f2de8ac
--- /dev/null
+++ b/otp-0016-Split-off-webtool-dependency-from-tools.patch
@@ -0,0 +1,40 @@
+From: Peter Lemenkov <[email protected]>
+Date: Sat, 8 Nov 2014 22:54:57 +0300
+Subject: [PATCH] Split off webtool dependency from tools
+
+Signed-off-by: Peter Lemenkov <[email protected]>
+
+diff --git a/lib/tools/src/cover_web.erl b/lib/tools/src/cover_web.erl
+index 69f2f3b..9085300 100644
+--- a/lib/tools/src/cover_web.erl
++++ b/lib/tools/src/cover_web.erl
+@@ -50,14 +50,25 @@
+ %%%----------------------------------------------------------------------
+ %% Start webtool and webcover from erlang shell
+ start() ->
+-    webtool:start(),
+-    webtool:start_tools([],"app=webcover"),
++    try
++        % Disable automatic dependency picking up
++        erlang:apply(webtool, start, []),
++        erlang:apply(webtool, start_tools, [[],"app=webcover"])
++    catch
++        error:undef -> error_logger:error_msg("No erlang-webtool 
found.~nPlease install erlang-webtool package first.~n")
++    end,
+     ok.
+ 
+ %% Stop webtool and webcover from erlang shell
+ stop() ->
+-    webtool:stop_tools([],"app=webcover"),
+-    webtool:stop().
++    try
++        % Disable automatic dependency picking up
++        erlang:apply(webtool, stop_tools, [[],"app=webcover"]),
++        erlang:apply(webtool, stop, [])
++    catch
++        error:undef -> error_logger:error_msg("No erlang-webtool 
found.~nPlease install erlang-webtool package first.~n")
++    end,
++    ok.
+ 
+ 
+ 
diff --git a/sources b/sources
index df29746..aa69160 100644
--- a/sources
+++ b/sources
@@ -1,4 +1 @@
-d27250e9ee98d6388e7f2e65379a0406  otp_src_R16B03-1.readme
-eff44490c9bbae3a5c5741bec2390ba3  otp_doc_html_R16B03-1.tar.gz
-39113c0d2515bdd8cd7e0f975a380122  otp_doc_man_R16B03-1.tar.gz
 e5ece977375197338c1b93b3d88514f8  otp_src_R16B03-1.tar.gz
_______________________________________________
erlang mailing list
[email protected]
https://lists.fedoraproject.org/mailman/listinfo/erlang

Reply via email to