commit e73e8a3d3fa34590794f6faeb9a68115869b4699 Author: Peter Lemenkov lemenkov@gmail.com Date: Wed Nov 12 09:09:56 2014 +0300
Trimmed dependency chain
Signed-off-by: Peter Lemenkov lemenkov@gmail.com
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_%%7Bupstream_ver%7D%%7Bupstream_rel%7... -%if %{use_prebuilt_docs} -Source1: http://erlang.org/download/otp_doc_html_%%7Bupstream_ver%7D%%7Bupstream_rel%... -Source2: http://erlang.org/download/otp_doc_man_%%7Bupstream_ver%7D%%7Bupstream_rel%7... +%if 0%{?el7}%{?fedora} +VCS: scm:git:https://github.com/erlang/otp %endif -Source4: http://www.erlang.org/download/otp_src_%%7Bupstream_ver%7D%%7Bupstream_rel%7... +Source0: http://www.erlang.org/download/otp_src_%%7Bupstream_ver%7D%%7Bupstream_rel%7... Source5: epmd.service Source6: epmd.socket Source7: epmd@.service @@ -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 lemenkov@gmail.com - R16B-03.8 +- Trimmed dependency chain +- Cleaned up spec-file + * Wed Jun 11 2014 Peter Lemenkov lemenkov@gmail.com - R16B-03.7 - Added missing template for epmd@.socket
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 lemenkov@gmail.com +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 lemenkov@gmail.com + +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 lemenkov@gmail.com +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 lemenkov@gmail.com + +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 "<major ver>.<minor ver>".</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 lemenkov@gmail.com +Date: Sat, 8 Nov 2014 22:54:57 +0300 +Subject: [PATCH] Split off webtool dependency from tools + +Signed-off-by: Peter Lemenkov lemenkov@gmail.com + +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