diff --git a/erlang.spec b/erlang.spec index 1a74d5d..661ae3c 100644 --- a/erlang.spec +++ b/erlang.spec @@ -22,7 +22,6 @@ %global __with_emacs 1 %global __with_examples 1 %global __with_java 1 -%global __with_tcltk 1 # # wxWidgets plugin blocks the following ones: # @@ -37,10 +36,6 @@ # * common_test # * megaco # -# dialyzer blocks: -# -# * typer -# # et blocks: # # * megaco @@ -58,15 +53,14 @@ # megaco # observer # reltool (*) -# typer # wx # %global __with_wxwidgets 1 Name: erlang -Version: 19.3.6.5 -Release: 2%{?dist} +Version: 20.2.3 +Release: 1%{?dist} Summary: General-purpose programming language and runtime environment Group: Development/Languages @@ -104,9 +98,8 @@ Patch3: otp-0003-Do-not-install-C-sources.patch Patch4: otp-0004-Do-not-install-Java-sources.patch Patch5: otp-0005-Do-not-install-nteventlog-and-related-doc-files-on-n.patch Patch6: otp-0006-Do-not-install-erlang-sources.patch -Patch7: otp-0007-Fix-CVE-2016-10253.patch -Patch8: otp-0008-Fix-erl_epmd-port_please-when-using-IPv6.patch -Patch9: otp-0009-Add-extra-search-directory.patch +Patch7: otp-0007-Fix-erl_epmd-port_please-when-using-IPv6.patch +Patch8: otp-0008-Add-extra-search-directory.patch # end of autogenerated patch tag list BuildRequires: flex @@ -158,9 +151,6 @@ Requires: %{name}-erts%{?_isa} = %{version}-%{release} Requires: %{name}-et%{?_isa} = %{version}-%{release} %endif %{__with_wxwidgets} Requires: %{name}-eunit%{?_isa} = %{version}-%{release} -%if %{__with_tcltk} -Requires: %{name}-gs%{?_isa} = %{version}-%{release} -%endif %{__with_tcltk} Requires: %{name}-hipe%{?_isa} = %{version}-%{release} %if %{__with_java} Requires: %{name}-ic%{?_isa} = %{version}-%{release} @@ -182,7 +172,6 @@ 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}-public_key%{?_isa} = %{version}-%{release} %if %{__with_wxwidgets} Requires: %{name}-reltool%{?_isa} = %{version}-%{release} @@ -196,9 +185,6 @@ Requires: %{name}-stdlib%{?_isa} = %{version}-%{release} Requires: %{name}-syntax_tools%{?_isa} = %{version}-%{release} Requires: %{name}-tools%{?_isa} = %{version}-%{release} %if %{__with_wxwidgets} -Requires: %{name}-typer%{?_isa} = %{version}-%{release} -%endif %{__with_wxwidgets} -%if %{__with_wxwidgets} Requires: %{name}-wx%{?_isa} = %{version}-%{release} %endif %{__with_wxwidgets} Requires: %{name}-xmerl%{?_isa} = %{version}-%{release} @@ -380,6 +366,7 @@ Requires: %{name}-stdlib%{?_isa} = %{version}-%{release} Requires: %{name}-syntax_tools%{?_isa} = %{version}-%{release} Requires: %{name}-wx%{?_isa} = %{version}-%{release} Requires: graphviz +Obsoletes: erlang-typer %description dialyzer A DIscrepancy AnaLYZer for ERlang programs. @@ -472,12 +459,14 @@ Requires: lksctp-tools Provides: erlang(erl_drv_version) = 3.3 # See erts/emulator/beam/erl_nif.h or call erlang:system_info(nif_version). #Provides: erlang(erl_nif_version) = %%(%%{buildroot}/bin/erl -noshell -eval 'io:format(erlang:system_info(nif_version)).' -s erlang halt) -Provides: erlang(erl_nif_version) = 2.11 +Provides: erlang(erl_nif_version) = 2.13 Provides: bundled(pcre) = 8.33 Obsoletes: erlang-appmon Obsoletes: erlang-docbuilder +Obsoletes: erlang-gs Obsoletes: erlang-inviso Obsoletes: erlang-ose +Obsoletes: erlang-percept Obsoletes: erlang-pman Obsoletes: erlang-toolbar Obsoletes: erlang-tv @@ -515,9 +504,6 @@ Support for unit testing. Summary: Examples for some Erlang modules Group: Development/Languages Requires: %{name}-erts%{?_isa} = %{version}-%{release} -%if %{__with_tcltk} -Requires: %{name}-gs%{?_isa} = %{version}-%{release} -%endif %{__with_tcltk} Requires: %{name}-kernel%{?_isa} = %{version}-%{release} Requires: %{name}-public_key%{?_isa} = %{version}-%{release} Requires: %{name}-sasl%{?_isa} = %{version}-%{release} @@ -528,21 +514,6 @@ Requires: %{name}-stdlib%{?_isa} = %{version}-%{release} Examples for some Erlang modules. %endif %{__with_examples} -%if %{__with_tcltk} -%package gs -Summary: A library for Tcl/Tk support in Erlang -Group: Development/Languages -BuildRequires: tcl-devel -BuildRequires: tk-devel -Requires: %{name}-erts%{?_isa} = %{version}-%{release} -Requires: %{name}-kernel%{?_isa} = %{version}-%{release} -Requires: %{name}-stdlib%{?_isa} = %{version}-%{release} -Requires: tk - -%description gs -A Graphics System used to write platform independent user interfaces. -%endif %{__with_tcltk} - %package hipe Summary: High Performance Erlang Group: Development/Languages @@ -708,18 +679,6 @@ Requires: %{name}-stdlib%{?_isa} = %{version}-%{release} %description parsetools A set of parsing and lexical analysis tools. -%package percept -Summary: A concurrency profiler tool -Group: Development/Languages -Requires: %{name}-erts%{?_isa} = %{version}-%{release} -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} - -%description percept -A concurrency profiler tool. - %package public_key Summary: API to public key infrastructure Group: Development/Languages @@ -866,21 +825,6 @@ Obsoletes: xemacs-erlang-el A set of programming tools including a coverage analyzer etc. %if %{__with_wxwidgets} -%package typer -Summary: TYPe annotator for ERlang programs -Group: Development/Languages -Requires: %{name}-compiler%{?_isa} = %{version}-%{release} -Requires: %{name}-dialyzer%{?_isa} = %{version}-%{release} -Requires: %{name}-erts%{?_isa} = %{version}-%{release} -Requires: %{name}-hipe%{?_isa} = %{version}-%{release} -Requires: %{name}-kernel%{?_isa} = %{version}-%{release} -Requires: %{name}-stdlib%{?_isa} = %{version}-%{release} - -%description typer -TYPe annotator for ERlang programs. -%endif %{__with_wxwidgets} - -%if %{__with_wxwidgets} %package wx Summary: A library for wxWidgets support in Erlang Group: Development/Languages @@ -934,11 +878,6 @@ CFLAGS="${ERL_FLAGS}" CXXFLAGS="${ERL_FLAGS}" %configure --enable-shared-zlib -- %else --without-jinterface \ %endif %{__with_java} -%if %{__with_tcltk} - \ -%else - --without-gs \ -%endif %{__with_tcltk} %if %{__with_wxwidgets} --with-wx-config=/usr/bin/wx-config-3.0 %else @@ -949,7 +888,6 @@ CFLAGS="${ERL_FLAGS}" CXXFLAGS="${ERL_FLAGS}" %configure --enable-shared-zlib -- --without-megaco \ --without-observer \ --without-reltool \ - --without-typer \ --without-wx %endif %{__with_wxwidgets} @@ -1126,6 +1064,7 @@ install -D -p -m 0644 %{SOURCE8} %{buildroot}%{_unitdir}/epmd@.socket echo "No need to fix additional scripts" %else # FIXME workaround for broken Erlang install procedure +echo "Removing scripts which won't work w/o wxWidgets anyway" for exe in ct_run dialyzer typer do rm -f $RPM_BUILD_ROOT/%{_bindir}/${exe} @@ -1172,7 +1111,6 @@ useradd -r -g epmd -d /dev/null -s /sbin/nologin \ %{_libdir}/erlang/lib/asn1-*/src %if %{with doc} %{_libdir}/erlang/man/man3/asn1ct.* -%{_libdir}/erlang/man/man3/asn1rt.* %endif %if %{__with_wxwidgets} @@ -1345,11 +1283,16 @@ useradd -r -g epmd -d /dev/null -s /sbin/nologin \ %if %{__with_wxwidgets} %files dialyzer %{_bindir}/dialyzer +# FIXME FIXME FIXME this must be installed properly!!!!!! +#%%{_bindir}/typer %{_libdir}/erlang/bin/dialyzer +%{_libdir}/erlang/bin/typer %{_libdir}/erlang/erts-*/bin/dialyzer +%{_libdir}/erlang/erts-*/bin/typer %{_libdir}/erlang/lib/dialyzer-*/ %if %{with doc} %{_libdir}/erlang/man/man3/dialyzer.* +%{_libdir}/erlang/man/man3/typer.* %endif %endif %{__with_wxwidgets} @@ -1457,7 +1400,6 @@ useradd -r -g epmd -d /dev/null -s /sbin/nologin \ %{_libdir}/erlang/bin/to_erl %dir %{_libdir}/erlang/erts-*/ %dir %{_libdir}/erlang/erts-*/bin/ -%{_libdir}/erlang/erts-*/bin/beam %{_libdir}/erlang/erts-*/bin/beam.smp %{_libdir}/erlang/erts-*/bin/dyn_erl %{_libdir}/erlang/erts-*/bin/epmd @@ -1537,9 +1479,6 @@ useradd -r -g epmd -d /dev/null -s /sbin/nologin \ %{_libdir}/erlang/lib/et-*/examples/ %endif %{__with_wxwidgets} %{_libdir}/erlang/lib/eunit-*/examples/ -%if %{__with_tcltk} -%{_libdir}/erlang/lib/gs-*/examples/ -%endif %{__with_tcltk} %if %{__with_java} %{_libdir}/erlang/lib/ic-*/examples/ %endif %{__with_java} @@ -1566,17 +1505,6 @@ useradd -r -g epmd -d /dev/null -s /sbin/nologin \ %endif %{__with_wxwidgets} %endif %{__with_examples} -%if %{__with_tcltk} -%files gs -%dir %{_libdir}/erlang/lib/gs-*/ -%{_libdir}/erlang/lib/gs-*/ebin -%{_libdir}/erlang/lib/gs-*/priv -%{_libdir}/erlang/lib/gs-*/src -%if %{with doc} -%{_libdir}/erlang/man/man3/gs.* -%endif -%endif %{__with_tcltk} - %files hipe %{_libdir}/erlang/lib/hipe-*/ @@ -1775,14 +1703,6 @@ useradd -r -g epmd -d /dev/null -s /sbin/nologin \ %{_libdir}/erlang/man/man3/yecc.* %endif -%files percept -%{_libdir}/erlang/lib/percept-*/ -%if %{with doc} -%{_libdir}/erlang/man/man3/egd.* -%{_libdir}/erlang/man/man3/percept.* -%{_libdir}/erlang/man/man3/percept_profile.* -%endif - %files public_key %{_libdir}/erlang/lib/public_key-*/ %if %{with doc} @@ -2039,16 +1959,6 @@ useradd -r -g epmd -d /dev/null -s /sbin/nologin \ %{_xemacs_sitestartdir}/erlang-init.el %endif %{__with_emacs} - -%if %{__with_wxwidgets} -%files typer -%{_bindir}/typer -%{_libdir}/erlang/bin/typer -%{_libdir}/erlang/erts-*/bin/typer -%dir %{_libdir}/erlang/lib/typer-*/ -%{_libdir}/erlang/lib/typer-*/ebin/ -%endif %{__with_wxwidgets} - %if %{__with_wxwidgets} %files wx %dir %{_libdir}/erlang/lib/wx-*/ @@ -2304,6 +2214,12 @@ useradd -r -g epmd -d /dev/null -s /sbin/nologin \ %changelog +* Tue Feb 20 2018 Peter Lemenkov - 20.2.3-1 +- Ver. 20.2.3 +- Removed gs (also removed tcl/tk dependency), percept +- Application typer was merged into dialyzer +- NIF version bumped up to 2.13 + * Wed Feb 07 2018 Fedora Release Engineering - 19.3.6.5-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild @@ -2340,6 +2256,7 @@ useradd -r -g epmd -d /dev/null -s /sbin/nologin \ - Ver. 19.3.4 - Require javapackages-tools (/use/share/java) - Use /dev/null as a homedir for EPMD (its shell is /sbin/nologin anyway) +- Removed beam appilciation (non-SMP VM). * Tue May 2 2017 Peter Lemenkov - 19.3.3-1 - Ver. 19.3.3 diff --git a/otp-0001-Do-not-format-man-pages-and-do-not-install-miscellan.patch b/otp-0001-Do-not-format-man-pages-and-do-not-install-miscellan.patch index fe09948..be12bd8 100644 --- a/otp-0001-Do-not-format-man-pages-and-do-not-install-miscellan.patch +++ b/otp-0001-Do-not-format-man-pages-and-do-not-install-miscellan.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Do not format man-pages and do not install miscellaneous Signed-off-by: Peter Lemenkov diff --git a/erts/etc/common/Makefile.in b/erts/etc/common/Makefile.in -index cb053a1b7c..024307b9c9 100644 +index 5b1b9119ce..02535a78bc 100644 --- a/erts/etc/common/Makefile.in +++ b/erts/etc/common/Makefile.in -@@ -492,10 +492,6 @@ endif +@@ -495,10 +495,6 @@ endif ifneq ($(INSTALL_TOP_BIN),) $(INSTALL_PROGRAM) $(INSTALL_TOP_BIN) "$(RELEASE_PATH)" endif @@ -21,7 +21,7 @@ index cb053a1b7c..024307b9c9 100644 $(INSTALL_DIR) "$(RELEASE_PATH)/erts-$(VSN)/src" $(INSTALL_DATA) $(INSTALL_SRC) "$(RELEASE_PATH)/erts-$(VSN)/src" diff --git a/erts/etc/unix/Install.src b/erts/etc/unix/Install.src -index e71308edbe..ae2c9cf251 100644 +index e4b842877c..382561821f 100644 --- a/erts/etc/unix/Install.src +++ b/erts/etc/unix/Install.src @@ -141,14 +141,5 @@ cp -p ../releases/%I_SYSTEM_VSN%/start_*.boot . diff --git a/otp-0002-Remove-rpath.patch b/otp-0002-Remove-rpath.patch index 5d39eb0..b05f9ce 100644 --- a/otp-0002-Remove-rpath.patch +++ b/otp-0002-Remove-rpath.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Remove rpath Signed-off-by: Peter Lemenkov diff --git a/lib/crypto/c_src/Makefile.in b/lib/crypto/c_src/Makefile.in -index c62f25b3ee..bb28704c1e 100644 +index 31124ba477..a4a6c158cc 100644 --- a/lib/crypto/c_src/Makefile.in +++ b/lib/crypto/c_src/Makefile.in -@@ -90,7 +90,7 @@ endif +@@ -96,7 +96,7 @@ endif DYNAMIC_CRYPTO_LIB=@SSL_DYNAMIC_ONLY@ ifeq ($(DYNAMIC_CRYPTO_LIB),yes) diff --git a/otp-0003-Do-not-install-C-sources.patch b/otp-0003-Do-not-install-C-sources.patch index 5d169b0..51e7b8b 100644 --- a/otp-0003-Do-not-install-C-sources.patch +++ b/otp-0003-Do-not-install-C-sources.patch @@ -27,10 +27,10 @@ index 1f714df357..95835d6ed2 100644 release_docs_spec: diff --git a/lib/crypto/c_src/Makefile.in b/lib/crypto/c_src/Makefile.in -index bb28704c1e..165a2e0cd5 100644 +index a4a6c158cc..2a7532a399 100644 --- a/lib/crypto/c_src/Makefile.in +++ b/lib/crypto/c_src/Makefile.in -@@ -195,13 +195,9 @@ docs: +@@ -216,13 +216,9 @@ docs: include $(ERL_TOP)/make/otp_release_targets.mk release_spec: opt @@ -43,9 +43,9 @@ index bb28704c1e..165a2e0cd5 100644 - $(INSTALL_PROGRAM) $(CALLBACK_OBJS) "$(RELSYSDIR)/priv/obj" $(INSTALL_PROGRAM) $(CALLBACK_LIB) "$(RELSYSDIR)/priv/lib" endif - + $(INSTALL_PROGRAM) $(TEST_ENGINE_OBJS) "$(RELSYSDIR)/priv/obj" diff --git a/lib/erl_interface/src/Makefile.in b/lib/erl_interface/src/Makefile.in -index 4f393e952c..a9a7f7cc79 100644 +index 69b5b6003d..ba9a0e74b8 100644 --- a/lib/erl_interface/src/Makefile.in +++ b/lib/erl_interface/src/Makefile.in @@ -842,14 +842,14 @@ ifneq ($(EXE_TARGETS),) diff --git a/otp-0004-Do-not-install-Java-sources.patch b/otp-0004-Do-not-install-Java-sources.patch index 9e3861e..8948d81 100644 --- a/otp-0004-Do-not-install-Java-sources.patch +++ b/otp-0004-Do-not-install-Java-sources.patch @@ -18,7 +18,7 @@ index 21c38e54b5..eeba2e4eae 100644 $(INSTALL_DATA) $(JAVA_DEST_ROOT)$(JARFILE) "$(RELSYSDIR)/priv" diff --git a/lib/jinterface/java_src/com/ericsson/otp/erlang/Makefile b/lib/jinterface/java_src/com/ericsson/otp/erlang/Makefile -index e55cfa62ea..5e3a0a5274 100644 +index 001acfdd2e..35b2eb3446 100644 --- a/lib/jinterface/java_src/com/ericsson/otp/erlang/Makefile +++ b/lib/jinterface/java_src/com/ericsson/otp/erlang/Makefile @@ -120,8 +120,6 @@ release release_docs release_tests release_html: diff --git a/otp-0005-Do-not-install-nteventlog-and-related-doc-files-on-n.patch b/otp-0005-Do-not-install-nteventlog-and-related-doc-files-on-n.patch index bf1febc..50af2de 100644 --- a/otp-0005-Do-not-install-nteventlog-and-related-doc-files-on-n.patch +++ b/otp-0005-Do-not-install-nteventlog-and-related-doc-files-on-n.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Do not install nteventlog and related doc-files on non-win32 Signed-off-by: Peter Lemenkov diff --git a/lib/os_mon/doc/src/Makefile b/lib/os_mon/doc/src/Makefile -index 91c7ae7bc3..dc7bcf3686 100644 +index 4aa8879a91..46dfde42f1 100644 --- a/lib/os_mon/doc/src/Makefile +++ b/lib/os_mon/doc/src/Makefile @@ -36,12 +36,17 @@ RELSYSDIR = $(RELEASE_PATH)/lib/$(APPLICATION)-$(VSN) @@ -26,10 +26,10 @@ index 91c7ae7bc3..dc7bcf3686 100644 - nteventlog.xml + $(NTEVENTLOG_DOCFILE) - XML_REF6_FILES = os_mon_app.xml + XML_REF6_FILES = os_mon_app.xml diff --git a/lib/os_mon/src/Makefile b/lib/os_mon/src/Makefile -index 3ff63204c6..29b53a8188 100644 +index fc2eb22393..e2f4d5a090 100644 --- a/lib/os_mon/src/Makefile +++ b/lib/os_mon/src/Makefile @@ -34,8 +34,13 @@ RELSYSDIR = $(RELEASE_PATH)/lib/os_mon-$(VSN) diff --git a/otp-0006-Do-not-install-erlang-sources.patch b/otp-0006-Do-not-install-erlang-sources.patch index ba3c5fd..1bd9697 100644 --- a/otp-0006-Do-not-install-erlang-sources.patch +++ b/otp-0006-Do-not-install-erlang-sources.patch @@ -8,7 +8,7 @@ Signed-off-by: Peter Lemenkov Signed-off-by: Hans Ulrich Niedermann diff --git a/erts/preloaded/src/Makefile b/erts/preloaded/src/Makefile -index 2ab9edaf5e..9b8ed35d1a 100644 +index edb9f35258..6ee4ac2251 100644 --- a/erts/preloaded/src/Makefile +++ b/erts/preloaded/src/Makefile @@ -90,8 +90,6 @@ $(APP_TARGET): $(APP_SRC) $(ERL_TOP)/erts/vsn.mk @@ -21,10 +21,10 @@ index 2ab9edaf5e..9b8ed35d1a 100644 $(INSTALL_DATA) $(STATIC_TARGET_FILES) $(APP_TARGET) "$(RELSYSDIR)/ebin" diff --git a/lib/asn1/src/Makefile b/lib/asn1/src/Makefile -index 38cf2d496a..d4bb3982d2 100644 +index ba459f6cd3..5565126214 100644 --- a/lib/asn1/src/Makefile +++ b/lib/asn1/src/Makefile -@@ -155,7 +155,7 @@ release_spec: opt +@@ -154,7 +154,7 @@ release_spec: opt $(INSTALL_DIR) "$(RELSYSDIR)/ebin" $(INSTALL_DATA) $(TARGET_FILES) $(APP_TARGET) $(APPUP_TARGET) "$(RELSYSDIR)/ebin" $(INSTALL_DIR) "$(RELSYSDIR)/src" @@ -63,7 +63,7 @@ index f015064b39..57f96d2929 100644 $(INSTALL_SCRIPT) $(PROGRAMS) "$(RELEASE_PATH)/test_server" diff --git a/lib/compiler/src/Makefile b/lib/compiler/src/Makefile -index 518c89d044..1bcd19cff7 100644 +index ef6db66ff6..4c9be713aa 100644 --- a/lib/compiler/src/Makefile +++ b/lib/compiler/src/Makefile @@ -174,8 +174,8 @@ include $(ERL_TOP)/make/otp_release_targets.mk @@ -174,10 +174,10 @@ index 4cc1e487c2..084f0a7230 100644 $(INSTALL_DATA) $(EXTERNAL_GEN_HRL_FILES) "$(RELSYSDIR)/include" diff --git a/lib/crypto/src/Makefile b/lib/crypto/src/Makefile -index 456b8be64d..fcfa8def89 100644 +index edad0e6b61..00a30c010f 100644 --- a/lib/crypto/src/Makefile +++ b/lib/crypto/src/Makefile -@@ -82,8 +82,6 @@ docs: +@@ -81,8 +81,6 @@ docs: include $(ERL_TOP)/make/otp_release_targets.mk release_spec: opt @@ -187,7 +187,7 @@ index 456b8be64d..fcfa8def89 100644 $(INSTALL_DATA) $(TARGET_FILES) $(APP_TARGET) \ $(APPUP_TARGET) "$(RELSYSDIR)/ebin" diff --git a/lib/debugger/src/Makefile b/lib/debugger/src/Makefile -index 9594a0bfe3..bc33e67e88 100644 +index 118cb6b758..86722d8767 100644 --- a/lib/debugger/src/Makefile +++ b/lib/debugger/src/Makefile @@ -117,7 +117,7 @@ include $(ERL_TOP)/make/otp_release_targets.mk @@ -200,10 +200,10 @@ index 9594a0bfe3..bc33e67e88 100644 $(INSTALL_DATA) $(TARGET_FILES) $(TARGET_TOOLBOX_FILES) "$(RELSYSDIR)/ebin" diff --git a/lib/dialyzer/src/Makefile b/lib/dialyzer/src/Makefile -index 256f20f549..2920c0f198 100644 +index fc08e7ca2f..2464a15c3f 100644 --- a/lib/dialyzer/src/Makefile +++ b/lib/dialyzer/src/Makefile -@@ -154,7 +154,7 @@ include $(ERL_TOP)/make/otp_release_targets.mk +@@ -158,7 +158,7 @@ include $(ERL_TOP)/make/otp_release_targets.mk release_spec: opt $(INSTALL_DIR) "$(RELSYSDIR)/src" @@ -213,7 +213,7 @@ index 256f20f549..2920c0f198 100644 $(INSTALL_DIR) "$(RELSYSDIR)/ebin" $(INSTALL_DATA) $(INSTALL_FILES) "$(RELSYSDIR)/ebin" diff --git a/lib/diameter/src/Makefile b/lib/diameter/src/Makefile -index 6bf748a727..962d7b75d6 100644 +index 3af856f63e..9630a89ba6 100644 --- a/lib/diameter/src/Makefile +++ b/lib/diameter/src/Makefile @@ -251,11 +251,8 @@ release_spec: opt @@ -231,10 +231,10 @@ index 6bf748a727..962d7b75d6 100644 $(EXAMPLE_DIRS:%/=release_examples_%): release_examples_%: $(INSTALL_DIR) "$(RELSYSDIR)/examples/$*" diff --git a/lib/edoc/src/Makefile b/lib/edoc/src/Makefile -index 4e5a4182da..c0bb0c32ec 100644 +index ea2f45dc4c..84af08eb67 100644 --- a/lib/edoc/src/Makefile +++ b/lib/edoc/src/Makefile -@@ -88,7 +88,7 @@ release_spec: opt +@@ -87,7 +87,7 @@ release_spec: opt $(INSTALL_DIR) "$(RELSYSDIR)/ebin" $(INSTALL_DATA) $(OBJECTS) "$(RELSYSDIR)/ebin" $(INSTALL_DIR) "$(RELSYSDIR)/src" @@ -289,7 +289,7 @@ index b6347d8b6d..a695d2cc2d 100644 $(INSTALL_DIR) "$(RELSYSDIR)/include" $(INSTALL_DATA) $(HRL_FILES) "$(RELSYSDIR)/include" diff --git a/lib/eunit/src/Makefile b/lib/eunit/src/Makefile -index 86a6d8831e..5732fd85f3 100644 +index 3510d3cc93..9179e9b4c2 100644 --- a/lib/eunit/src/Makefile +++ b/lib/eunit/src/Makefile @@ -120,7 +120,6 @@ release_spec: opt @@ -300,21 +300,6 @@ index 86a6d8831e..5732fd85f3 100644 $(INSTALL_DATA) $(INTERNAL_HRL_FILES) "$(RELSYSDIR)/src" $(INSTALL_DIR) "$(RELSYSDIR)/include" $(INSTALL_DATA) $(INCLUDE_DELIVERABLES) "$(RELSYSDIR)/include" -diff --git a/lib/gs/src/Makefile b/lib/gs/src/Makefile -index e19ce822b9..6b7c96ea68 100644 ---- a/lib/gs/src/Makefile -+++ b/lib/gs/src/Makefile -@@ -109,8 +109,8 @@ include $(ERL_TOP)/make/otp_release_targets.mk - - release_spec: opt - $(INSTALL_DIR) "$(RELSYSDIR)/src" -- $(INSTALL_DATA) $(APP_SRC) $(ERL_FILES) $(HRL_FILES) $(GEN_HRL_FILES) \ -- $(GSTK_GENERIC) "$(RELSYSDIR)/src" -+ $(INSTALL_DATA) $(HRL_FILES) $(GEN_HRL_FILES) \ -+ "$(RELSYSDIR)/src" - $(INSTALL_DIR) "$(RELSYSDIR)/ebin" - $(INSTALL_DATA) $(TARGET_FILES) "$(RELSYSDIR)/ebin" - $(INSTALL_DIR) "$(RELSYSDIR)/priv/bitmap" diff --git a/lib/hipe/cerl/Makefile b/lib/hipe/cerl/Makefile index 9f50d6bf91..df92b84c0d 100644 --- a/lib/hipe/cerl/Makefile @@ -355,10 +340,10 @@ index b220bc16a0..d4073277be 100644 $(INSTALL_DATA) $(TARGET_FILES) "$(RELSYSDIR)/ebin" diff --git a/lib/hipe/llvm/Makefile b/lib/hipe/llvm/Makefile -index 88016a7d8b..d8e8fa0546 100644 +index 817ff67dcd..e50ba5e207 100644 --- a/lib/hipe/llvm/Makefile +++ b/lib/hipe/llvm/Makefile -@@ -102,7 +102,7 @@ include $(ERL_TOP)/make/otp_release_targets.mk +@@ -101,7 +101,7 @@ include $(ERL_TOP)/make/otp_release_targets.mk release_spec: opt $(INSTALL_DIR) $(RELSYSDIR)/llvm @@ -381,7 +366,7 @@ index 8ef31dbb46..80d28819f2 100644 $(INSTALL_DATA) $(TARGET_FILES) "$(RELSYSDIR)/ebin" diff --git a/lib/hipe/misc/Makefile b/lib/hipe/misc/Makefile -index 72cfff21a8..e55223a57d 100644 +index e5033e444b..74a444b386 100644 --- a/lib/hipe/misc/Makefile +++ b/lib/hipe/misc/Makefile @@ -102,7 +102,7 @@ include $(ERL_TOP)/make/otp_release_targets.mk @@ -394,7 +379,7 @@ index 72cfff21a8..e55223a57d 100644 $(INSTALL_DATA) $(TARGET_FILES) "$(RELSYSDIR)/ebin" diff --git a/lib/hipe/rtl/Makefile b/lib/hipe/rtl/Makefile -index b4cdf8b1f2..f9ebcaec30 100644 +index 5abc9ec049..664df3b0c6 100644 --- a/lib/hipe/rtl/Makefile +++ b/lib/hipe/rtl/Makefile @@ -105,7 +105,7 @@ include $(ERL_TOP)/make/otp_release_targets.mk @@ -407,12 +392,12 @@ index b4cdf8b1f2..f9ebcaec30 100644 $(INSTALL_DATA) $(TARGET_FILES) "$(RELSYSDIR)/ebin" diff --git a/lib/hipe/util/Makefile b/lib/hipe/util/Makefile -index 66e9421c25..19517427e6 100644 +index 20b1c3bf50..40c642a441 100644 --- a/lib/hipe/util/Makefile +++ b/lib/hipe/util/Makefile @@ -50,7 +50,6 @@ HIPE_MODULES = endif - MODULES = hipe_timing hipe_dot hipe_digraph $(HIPE_MODULES) + MODULES = hipe_timing hipe_dot hipe_digraph hipe_dsets $(HIPE_MODULES) -HRL_FILES= ERL_FILES= $(MODULES:%=%.erl) @@ -519,10 +504,10 @@ index 4eaa959cce..198fbf3106 100644 $(INSTALL_DATA) $(TARGET_FILES) $(BEHAVIOUR_TARGET_FILES) "$(RELSYSDIR)/ebin" diff --git a/lib/kernel/src/Makefile b/lib/kernel/src/Makefile -index 2b72f78dcf..31eed456ff 100644 +index 5946620f0f..b8944e0a26 100644 --- a/lib/kernel/src/Makefile +++ b/lib/kernel/src/Makefile -@@ -202,7 +202,6 @@ include $(ERL_TOP)/make/otp_release_targets.mk +@@ -204,7 +204,6 @@ include $(ERL_TOP)/make/otp_release_targets.mk release_spec: opt $(INSTALL_DIR) "$(RELSYSDIR)/src" @@ -621,10 +606,10 @@ index 028a63e98e..9e11e9bfb2 100644 release_docs_spec: diff --git a/lib/mnesia/src/Makefile b/lib/mnesia/src/Makefile -index 08a00e6aba..a21ffb3801 100644 +index 7d316df263..60fdefb5d0 100644 --- a/lib/mnesia/src/Makefile +++ b/lib/mnesia/src/Makefile -@@ -135,7 +135,7 @@ include $(ERL_TOP)/make/otp_release_targets.mk +@@ -134,7 +134,7 @@ include $(ERL_TOP)/make/otp_release_targets.mk release_spec: opt $(INSTALL_DIR) "$(RELSYSDIR)/src" @@ -687,7 +672,7 @@ index 7fec29a000..a71b9f1227 100644 $(INSTALL_DATA) $(EXTERNAL_HRL_FILES) $(GEN_HRL_FILES_EXT) "$(RELSYSDIR)/include" diff --git a/lib/os_mon/src/Makefile b/lib/os_mon/src/Makefile -index 29b53a8188..3ae2074f8c 100644 +index e2f4d5a090..57f21a145b 100644 --- a/lib/os_mon/src/Makefile +++ b/lib/os_mon/src/Makefile @@ -105,7 +105,6 @@ include $(ERL_TOP)/make/otp_release_targets.mk @@ -699,7 +684,7 @@ index 29b53a8188..3ae2074f8c 100644 $(INSTALL_DIR) "$(RELSYSDIR)/ebin" $(INSTALL_DATA) $(TARGET_FILES) "$(RELSYSDIR)/ebin" diff --git a/lib/otp_mibs/src/Makefile b/lib/otp_mibs/src/Makefile -index 4023f50d48..864a0a53d8 100644 +index 5c7af39c3f..a85368b4f4 100644 --- a/lib/otp_mibs/src/Makefile +++ b/lib/otp_mibs/src/Makefile @@ -96,8 +96,6 @@ $(APPUP_TARGET): $(APPUP_SRC) ../vsn.mk @@ -712,7 +697,7 @@ index 4023f50d48..864a0a53d8 100644 $(INSTALL_DATA) $(TARGETS) "$(RELSYSDIR)/ebin" diff --git a/lib/parsetools/src/Makefile b/lib/parsetools/src/Makefile -index dea29bee4c..655aea91ca 100644 +index ba206904ec..281cc8657c 100644 --- a/lib/parsetools/src/Makefile +++ b/lib/parsetools/src/Makefile @@ -91,8 +91,6 @@ $(APPUP_TARGET): $(APPUP_SRC) ../vsn.mk @@ -724,18 +709,6 @@ index dea29bee4c..655aea91ca 100644 $(INSTALL_DIR) "$(RELSYSDIR)/ebin" $(INSTALL_DATA) $(TARGET_FILES) "$(RELSYSDIR)/ebin" $(INSTALL_DIR) "$(RELSYSDIR)/include" -diff --git a/lib/percept/src/Makefile b/lib/percept/src/Makefile -index b2ec87d08c..3153e34f7a 100644 ---- a/lib/percept/src/Makefile -+++ b/lib/percept/src/Makefile -@@ -97,7 +97,6 @@ include $(ERL_TOP)/make/otp_release_targets.mk - - release_spec: opt - $(INSTALL_DIR) "$(RELSYSDIR)/src" -- $(INSTALL_DATA) $(ERL_FILES) "$(RELSYSDIR)/src" - $(INSTALL_DATA) $(INTERNAL_HRL_FILES) "$(RELSYSDIR)/src" - # $(INSTALL_DIR) "$(RELSYSDIR)/include" - # $(INSTALL_DATA) $(HRL_FILES) "$(RELSYSDIR)/include" diff --git a/lib/public_key/asn1/Makefile b/lib/public_key/asn1/Makefile index a920ea87ea..7672ef3470 100644 --- a/lib/public_key/asn1/Makefile @@ -778,10 +751,10 @@ index 4bddee4664..c714255548 100644 $(INSTALL_DATA) $(TARGET_FILES) "$(RELSYSDIR)/ebin" $(INSTALL_DATA) $(APP_TARGET) $(APPUP_TARGET) "$(RELSYSDIR)/ebin" diff --git a/lib/runtime_tools/src/Makefile b/lib/runtime_tools/src/Makefile -index 2c902952a1..d674a8fe13 100644 +index 5a99c6e240..bdd77fb4f4 100644 --- a/lib/runtime_tools/src/Makefile +++ b/lib/runtime_tools/src/Makefile -@@ -99,8 +99,6 @@ docs: +@@ -98,8 +98,6 @@ docs: include $(ERL_TOP)/make/otp_release_targets.mk release_spec: opt @@ -868,10 +841,10 @@ index adc2c4858f..89ce954e99 100644 $(INSTALL_DATA) $(TARGET_FILES) "$(RELSYSDIR)/ebin" # $(INSTALL_DIR) "$(RELSYSDIR)/include" diff --git a/lib/ssh/src/Makefile b/lib/ssh/src/Makefile -index 7ab6f22424..b57da4ad67 100644 +index 9e8d80c71f..6ce3dc96ef 100644 --- a/lib/ssh/src/Makefile +++ b/lib/ssh/src/Makefile -@@ -136,7 +136,7 @@ include $(ERL_TOP)/make/otp_release_targets.mk +@@ -137,7 +137,7 @@ include $(ERL_TOP)/make/otp_release_targets.mk release_spec: opt $(INSTALL_DIR) "$(RELSYSDIR)/src" @@ -894,10 +867,10 @@ index 2e7df9792e..0cd43d3805 100644 $(INSTALL_DATA) $(BEHAVIOUR_TARGET_FILES) $(TARGET_FILES) $(APP_TARGET) \ $(APPUP_TARGET) "$(RELSYSDIR)/ebin" diff --git a/lib/stdlib/src/Makefile b/lib/stdlib/src/Makefile -index 302834f9d0..53804f81ff 100644 +index bf836203ec..e86fb6a6d1 100644 --- a/lib/stdlib/src/Makefile +++ b/lib/stdlib/src/Makefile -@@ -208,7 +208,6 @@ include $(ERL_TOP)/make/otp_release_targets.mk +@@ -212,7 +212,6 @@ include $(ERL_TOP)/make/otp_release_targets.mk release_spec: opt $(INSTALL_DIR) "$(RELSYSDIR)/src" @@ -931,20 +904,6 @@ index 032bd612db..efb0309eb8 100644 $(INSTALL_DIR) "$(RELSYSDIR)/ebin" $(INSTALL_DATA) $(TARGET_FILES) $(APP_TARGET) $(APPUP_TARGET) \ "$(RELSYSDIR)/ebin" -diff --git a/lib/typer/src/Makefile b/lib/typer/src/Makefile -index 6c5d8b0726..82f516a0e5 100644 ---- a/lib/typer/src/Makefile -+++ b/lib/typer/src/Makefile -@@ -102,9 +102,6 @@ $(APPUP_TARGET): $(APPUP_SRC) ../vsn.mk - include $(ERL_TOP)/make/otp_release_targets.mk - - release_spec: opt -- $(INSTALL_DIR) "$(RELSYSDIR)/src" -- $(INSTALL_DATA) $(ERL_FILES) $(HRL_FILES) $(YRL_FILES) \ -- "$(RELSYSDIR)/src" - $(INSTALL_DIR) "$(RELSYSDIR)/ebin" - $(INSTALL_DATA) $(INSTALL_FILES) "$(RELSYSDIR)/ebin" - diff --git a/lib/wx/src/Makefile b/lib/wx/src/Makefile index 21b45af2c4..a7bf34f4f4 100644 --- a/lib/wx/src/Makefile diff --git a/otp-0007-Fix-CVE-2016-10253.patch b/otp-0007-Fix-CVE-2016-10253.patch deleted file mode 100644 index ca5ab5d..0000000 --- a/otp-0007-Fix-CVE-2016-10253.patch +++ /dev/null @@ -1,318 +0,0 @@ -From: Zephyr Pellerin -Date: Mon, 20 Mar 2017 15:36:41 -0700 -Subject: [PATCH] Fix CVE-2016-10253 - - -diff --git a/erts/emulator/pcre/pcre_compile.c b/erts/emulator/pcre/pcre_compile.c -index d48126a55d..15a81fae56 100644 ---- a/erts/emulator/pcre/pcre_compile.c -+++ b/erts/emulator/pcre/pcre_compile.c -@@ -2335,34 +2335,36 @@ for (;;) - } - } - -- -- - /************************************************* --* Scan compiled branch for non-emptiness * --*************************************************/ -+ * Scan compiled branch for non-emptiness * -+ *************************************************/ - - /* This function scans through a branch of a compiled pattern to see whether it --can match the empty string or not. It is called from could_be_empty() --below and from compile_branch() when checking for an unlimited repeat of a --group that can match nothing. Note that first_significant_code() skips over --backward and negative forward assertions when its final argument is TRUE. If we --hit an unclosed bracket, we return "empty" - this means we've struck an inner --bracket whose current branch will already have been scanned. -- --Arguments: -- code points to start of search -- endcode points to where to stop -- utf TRUE if in UTF-8 / UTF-16 / UTF-32 mode -- cd contains pointers to tables etc. -- --Returns: TRUE if what is matched could be empty -+ can match the empty string or not. It is called from could_be_empty() -+ below and from compile_branch() when checking for an unlimited repeat of a -+ group that can match nothing. Note that first_significant_code() skips over -+ backward and negative forward assertions when its final argument is TRUE. If we -+ hit an unclosed bracket, we return "empty" - this means we've struck an inner -+ bracket whose current branch will already have been scanned. -+ -+ Arguments: -+ code points to start of search -+ endcode points to where to stop -+ utf TRUE if in UTF-8 / UTF-16 / UTF-32 mode -+ cd contains pointers to tables etc. -+ recurses chain of recurse_check to catch mutual recursion -+ -+ Returns: TRUE if what is matched could be empty - */ - -+ - static BOOL - could_be_empty_branch(const pcre_uchar *code, const pcre_uchar *endcode, -- BOOL utf, compile_data *cd) -+ BOOL utf, compile_data *cd, recurse_check *recurses) - { - register pcre_uchar c; -+recurse_check this_recurse; -+ - for (code = first_significant_code(code + PRIV(OP_lengths)[*code], TRUE); - code < endcode; - code = first_significant_code(code + PRIV(OP_lengths)[c], TRUE)) -@@ -2390,25 +2392,47 @@ for (code = first_significant_code(code + PRIV(OP_lengths)[*code], TRUE); - - if (c == OP_RECURSE) - { -- const pcre_uchar *scode; -+ const pcre_uchar *scode = cd->start_code + GET(code, 1); -+ const pcre_uchar *endgroup = scode; - BOOL empty_branch; - -- /* Test for forward reference */ -+ /* Test for forward reference or uncompleted reference. This is disabled -+ when called to scan a completed pattern by setting cd->start_workspace to -+ NULL. */ - -- for (scode = cd->start_workspace; scode < cd->hwm; scode += LINK_SIZE) -- if ((int)GET(scode, 0) == (int)(code + 1 - cd->start_code)) return TRUE; -+ if (cd->start_workspace != NULL) -+ { -+ const pcre_uchar *tcode; -+ for (tcode = cd->start_workspace; tcode < cd->hwm; tcode += LINK_SIZE) -+ if ((int)GET(tcode, 0) == (int)(code + 1 - cd->start_code)) return TRUE; -+ if (GET(scode, 1) == 0) return TRUE; /* Unclosed */ -+ } - -- /* Not a forward reference, test for completed backward reference */ -+ /* If the reference is to a completed group, we need to detect whether this -+ is a recursive call, as otherwise there will be an infinite loop. If it is -+ a recursion, just skip over it. Simple recursions are easily detected. For -+ mutual recursions we keep a chain on the stack. */ - -- empty_branch = FALSE; -- scode = cd->start_code + GET(code, 1); -- if (GET(scode, 1) == 0) return TRUE; /* Unclosed */ -+ do endgroup += GET(endgroup, 1); while (*endgroup == OP_ALT); -+ if (code >= scode && code <= endgroup) continue; /* Simple recursion */ -+ else -+ { -+ recurse_check *r = recurses; -+ for (r = recurses; r != NULL; r = r->prev) -+ if (r->group == scode) break; -+ if (r != NULL) continue; /* Mutual recursion */ -+ } -+ -+ /* Completed reference; scan the referenced group, remembering it on the -+ stack chain to detect mutual recursions. */ - -- /* Completed backwards reference */ -+ empty_branch = FALSE; -+ this_recurse.prev = recurses; -+ this_recurse.group = scode; - - do - { -- if (could_be_empty_branch(scode, endcode, utf, cd)) -+ if (could_be_empty_branch(scode, endcode, utf, cd, &this_recurse)) - { - empty_branch = TRUE; - break; -@@ -2448,7 +2472,7 @@ for (code = first_significant_code(code + PRIV(OP_lengths)[*code], TRUE); - if (c == OP_BRA || c == OP_BRAPOS || - c == OP_CBRA || c == OP_CBRAPOS || - c == OP_ONCE || c == OP_ONCE_NC || -- c == OP_COND) -+ c == OP_COND || c == OP_SCOND) - { - BOOL empty_branch; - if (GET(code, 1) == 0) return TRUE; /* Hit unclosed bracket */ -@@ -2464,8 +2488,8 @@ for (code = first_significant_code(code + PRIV(OP_lengths)[*code], TRUE); - empty_branch = FALSE; - do - { -- if (!empty_branch && could_be_empty_branch(code, endcode, utf, cd)) -- empty_branch = TRUE; -+ if (!empty_branch && could_be_empty_branch(code, endcode, utf, cd, -+ recurses)) empty_branch = TRUE; - code += GET(code, 1); - } - while (*code == OP_ALT); -@@ -2522,34 +2546,57 @@ for (code = first_significant_code(code + PRIV(OP_lengths)[*code], TRUE); - - /* Opcodes that must match a character */ - -+ case OP_ANY: -+ case OP_ALLANY: -+ case OP_ANYBYTE: -+ - case OP_PROP: - case OP_NOTPROP: -+ case OP_ANYNL: -+ -+ case OP_NOT_HSPACE: -+ case OP_HSPACE: -+ case OP_NOT_VSPACE: -+ case OP_VSPACE: - case OP_EXTUNI: -+ - case OP_NOT_DIGIT: - case OP_DIGIT: - case OP_NOT_WHITESPACE: - case OP_WHITESPACE: - case OP_NOT_WORDCHAR: - case OP_WORDCHAR: -- case OP_ANY: -- case OP_ALLANY: -- case OP_ANYBYTE: -+ - case OP_CHAR: - case OP_CHARI: - case OP_NOT: - case OP_NOTI: -+ - case OP_PLUS: -+ case OP_PLUSI: - case OP_MINPLUS: -- case OP_POSPLUS: -- case OP_EXACT: -+ case OP_MINPLUSI: -+ - case OP_NOTPLUS: -+ case OP_NOTPLUSI: - case OP_NOTMINPLUS: -+ case OP_NOTMINPLUSI: -+ -+ case OP_POSPLUS: -+ case OP_POSPLUSI: - case OP_NOTPOSPLUS: -+ case OP_NOTPOSPLUSI: -+ -+ case OP_EXACT: -+ case OP_EXACTI: - case OP_NOTEXACT: -+ case OP_NOTEXACTI: -+ - case OP_TYPEPLUS: - case OP_TYPEMINPLUS: - case OP_TYPEPOSPLUS: - case OP_TYPEEXACT: -+ - return FALSE; - - /* These are going to continue, as they may be empty, but we have to -@@ -2583,30 +2630,58 @@ for (code = first_significant_code(code + PRIV(OP_lengths)[*code], TRUE); - return TRUE; - - /* In UTF-8 mode, STAR, MINSTAR, POSSTAR, QUERY, MINQUERY, POSQUERY, UPTO, -- MINUPTO, and POSUPTO may be followed by a multibyte character */ -+ MINUPTO, and POSUPTO and their caseless and negative versions may be -+ followed by a multibyte character. */ - - #if defined SUPPORT_UTF && !defined COMPILE_PCRE32 - case OP_STAR: - case OP_STARI: -+ case OP_NOTSTAR: -+ case OP_NOTSTARI: -+ - case OP_MINSTAR: - case OP_MINSTARI: -+ case OP_NOTMINSTAR: -+ case OP_NOTMINSTARI: -+ - case OP_POSSTAR: - case OP_POSSTARI: -+ case OP_NOTPOSSTAR: -+ case OP_NOTPOSSTARI: -+ - case OP_QUERY: - case OP_QUERYI: -+ case OP_NOTQUERY: -+ case OP_NOTQUERYI: -+ - case OP_MINQUERY: - case OP_MINQUERYI: -+ case OP_NOTMINQUERY: -+ case OP_NOTMINQUERYI: -+ - case OP_POSQUERY: - case OP_POSQUERYI: -+ case OP_NOTPOSQUERY: -+ case OP_NOTPOSQUERYI: -+ - if (utf && HAS_EXTRALEN(code[1])) code += GET_EXTRALEN(code[1]); - break; - - case OP_UPTO: - case OP_UPTOI: -+ case OP_NOTUPTO: -+ case OP_NOTUPTOI: -+ - case OP_MINUPTO: - case OP_MINUPTOI: -+ case OP_NOTMINUPTO: -+ case OP_NOTMINUPTOI: -+ - case OP_POSUPTO: - case OP_POSUPTOI: -+ case OP_NOTPOSUPTO: -+ case OP_NOTPOSUPTOI: -+ - if (utf && HAS_EXTRALEN(code[1 + IMM2_SIZE])) code += GET_EXTRALEN(code[1 + IMM2_SIZE]); - break; - #endif -@@ -2632,7 +2707,6 @@ return TRUE; - } - - -- - /************************************************* - * Scan compiled regex for non-emptiness * - *************************************************/ -@@ -2660,7 +2734,7 @@ could_be_empty(const pcre_uchar *code, const pcre_uchar *endcode, - { - while (bcptr != NULL && bcptr->current_branch >= code) - { -- if (!could_be_empty_branch(bcptr->current_branch, endcode, utf, cd)) -+ if (!could_be_empty_branch(bcptr->current_branch, endcode, utf, cd, NULL)) - return FALSE; - bcptr = bcptr->outer; - } -@@ -2668,7 +2742,6 @@ return TRUE; - } - - -- - /************************************************* - * Check for POSIX class syntax * - *************************************************/ -@@ -5392,7 +5465,7 @@ for (;; ptr++) - pcre_uchar *scode = bracode; - do - { -- if (could_be_empty_branch(scode, ketcode, utf, cd)) -+ if (could_be_empty_branch(scode, ketcode, utf, cd, NULL)) - { - *bracode += OP_SBRA - OP_BRA; - break; -diff --git a/erts/emulator/pcre/pcre_internal.h b/erts/emulator/pcre/pcre_internal.h -index af436bd99b..eb0db89619 100644 ---- a/erts/emulator/pcre/pcre_internal.h -+++ b/erts/emulator/pcre/pcre_internal.h -@@ -2455,6 +2455,13 @@ typedef struct branch_chain { - pcre_uchar *current_branch; - } branch_chain; - -+/* Structure for mutual recursion detection. */ -+ -+typedef struct recurse_check { -+ struct recurse_check *prev; -+ const pcre_uchar *group; -+} recurse_check; -+ - /* Structure for items in a linked list that represents an explicit recursive - call within the pattern; used by pcre_exec(). */ - diff --git a/otp-0007-Fix-erl_epmd-port_please-when-using-IPv6.patch b/otp-0007-Fix-erl_epmd-port_please-when-using-IPv6.patch new file mode 100644 index 0000000..866d325 --- /dev/null +++ b/otp-0007-Fix-erl_epmd-port_please-when-using-IPv6.patch @@ -0,0 +1,26 @@ +From: John Eckersberg +Date: Wed, 14 Jun 2017 12:32:17 -0400 +Subject: [PATCH] Fix erl_epmd:port_please when using IPv6 + +This mirrors the behavior of inet:gethostbyname when no family or +timeout is supplied. + +diff --git a/lib/kernel/src/erl_epmd.erl b/lib/kernel/src/erl_epmd.erl +index 7bc9e2ede3..f96bc88913 100644 +--- a/lib/kernel/src/erl_epmd.erl ++++ b/lib/kernel/src/erl_epmd.erl +@@ -79,7 +79,13 @@ port_please(Node, EpmdAddr, Timeout) -> + + + port_please1(Node,HostName, Timeout) -> +- case inet:gethostbyname(HostName, inet, Timeout) of ++ Family = case inet_db:res_option(inet6) of ++ true -> ++ inet6; ++ false -> ++ inet ++ end, ++ case inet:gethostbyname(HostName, Family, Timeout) of + {ok,{hostent, _Name, _ , _Af, _Size, [EpmdAddr | _]}} -> + get_port(Node, EpmdAddr, Timeout); + Else -> diff --git a/otp-0008-Add-extra-search-directory.patch b/otp-0008-Add-extra-search-directory.patch new file mode 100644 index 0000000..5b9acff --- /dev/null +++ b/otp-0008-Add-extra-search-directory.patch @@ -0,0 +1,32 @@ +From: Peter Lemenkov +Date: Wed, 2 Aug 2017 16:12:19 +0300 +Subject: [PATCH] Add extra search directory + +Signed-off-by: Peter Lemenkov + +diff --git a/lib/kernel/src/code_server.erl b/lib/kernel/src/code_server.erl +index 418b0c50e1..d24b73a9aa 100644 +--- a/lib/kernel/src/code_server.erl ++++ b/lib/kernel/src/code_server.erl +@@ -79,11 +79,17 @@ init(Ref, Parent, [Root,Mode]) -> + IPath = + case Mode of + interactive -> +- LibDir = filename:append(Root, "lib"), +- {ok,Dirs} = erl_prim_loader:list_dir(LibDir), +- Paths = make_path(LibDir, Dirs), ++ F = fun(R) -> ++ LD = filename:append(R, "lib"), ++ case erl_prim_loader:list_dir(LD) of ++ error -> []; ++ {ok, D} -> make_path(LD, D) ++ end ++ end, ++ Paths = F(Root), ++ SharedPaths = F("/usr/share/erlang"), + UserLibPaths = get_user_lib_dirs(), +- ["."] ++ UserLibPaths ++ Paths; ++ ["."] ++ UserLibPaths ++ Paths ++ SharedPaths; + _ -> + [] + end, diff --git a/otp-0008-Fix-erl_epmd-port_please-when-using-IPv6.patch b/otp-0008-Fix-erl_epmd-port_please-when-using-IPv6.patch deleted file mode 100644 index 866d325..0000000 --- a/otp-0008-Fix-erl_epmd-port_please-when-using-IPv6.patch +++ /dev/null @@ -1,26 +0,0 @@ -From: John Eckersberg -Date: Wed, 14 Jun 2017 12:32:17 -0400 -Subject: [PATCH] Fix erl_epmd:port_please when using IPv6 - -This mirrors the behavior of inet:gethostbyname when no family or -timeout is supplied. - -diff --git a/lib/kernel/src/erl_epmd.erl b/lib/kernel/src/erl_epmd.erl -index 7bc9e2ede3..f96bc88913 100644 ---- a/lib/kernel/src/erl_epmd.erl -+++ b/lib/kernel/src/erl_epmd.erl -@@ -79,7 +79,13 @@ port_please(Node, EpmdAddr, Timeout) -> - - - port_please1(Node,HostName, Timeout) -> -- case inet:gethostbyname(HostName, inet, Timeout) of -+ Family = case inet_db:res_option(inet6) of -+ true -> -+ inet6; -+ false -> -+ inet -+ end, -+ case inet:gethostbyname(HostName, Family, Timeout) of - {ok,{hostent, _Name, _ , _Af, _Size, [EpmdAddr | _]}} -> - get_port(Node, EpmdAddr, Timeout); - Else -> diff --git a/otp-0009-Add-extra-search-directory.patch b/otp-0009-Add-extra-search-directory.patch deleted file mode 100644 index 961fa32..0000000 --- a/otp-0009-Add-extra-search-directory.patch +++ /dev/null @@ -1,32 +0,0 @@ -From: Peter Lemenkov -Date: Wed, 2 Aug 2017 16:12:19 +0300 -Subject: [PATCH] Add extra search directory - -Signed-off-by: Peter Lemenkov - -diff --git a/lib/kernel/src/code_server.erl b/lib/kernel/src/code_server.erl -index 59b26176bf..89297718fe 100644 ---- a/lib/kernel/src/code_server.erl -+++ b/lib/kernel/src/code_server.erl -@@ -79,11 +79,17 @@ init(Ref, Parent, [Root,Mode]) -> - IPath = - case Mode of - interactive -> -- LibDir = filename:append(Root, "lib"), -- {ok,Dirs} = erl_prim_loader:list_dir(LibDir), -- Paths = make_path(LibDir, Dirs), -+ F = fun(R) -> -+ LD = filename:append(R, "lib"), -+ case erl_prim_loader:list_dir(LD) of -+ error -> []; -+ {ok, D} -> make_path(LD, D) -+ end -+ end, -+ Paths = F(Root), -+ SharedPaths = F("/usr/share/erlang"), - UserLibPaths = get_user_lib_dirs(), -- ["."] ++ UserLibPaths ++ Paths; -+ ["."] ++ UserLibPaths ++ Paths ++ SharedPaths; - _ -> - [] - end, diff --git a/sources b/sources index 0b72665..045735e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (otp-OTP-19.3.6.5.tar.gz) = 7ed91bb3b2a5baa9674b811281746aae82b8d06dc1f7dfccf1a00e0d6be34e249d5fe1300fb6bd3d3a2a81409e326b32f82340461da58bba042e6900fdb5ed71 +SHA512 (otp-OTP-20.2.3.tar.gz) = 54dd81041635d14c8c4c05e31a70017ae5c501c91e5071875711cad460c4f21572f586eb3faeeb6e400b888f32a56859e066ea049877356f02f8cab43d3e6207