1 Commits

Author SHA256 Message Date
2aef9036d9 Sync changes to SLFO-1.2 branch 2025-08-20 09:13:53 +02:00
4 changed files with 41 additions and 241 deletions

BIN
OTP-27.1.3.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

BIN
OTP-27.2.4.tar.gz (Stored with Git LFS)

Binary file not shown.

View File

@@ -1,232 +1,10 @@
-------------------------------------------------------------------
Sat Mar 01 18:46:53 UTC 2025 - matwey.kornilov@gmail.com
Mon May 19 13:56:42 UTC 2025 - Eugenio Paolantonio <eugenio.paolantonio@suse.com>
- Changes for 27.2.4:
* ssh: SFTP packets exceeding max packet size are not processed
and dropped.
* snmp: SNMP Agent transports type (intAgentTransports) was
incorrectly not documented as a list of transports. Also add a
couple of config file generation examples.
- Changes for 27.2.3:
* inets: Improved robustness of httpd startup procedure.
* ssl: Setting protocol version to a lower value then supported
by default in server API function called after ssl:listen/2
could result in wrong default values being used and connections
failing with insufficient security.
* ssl: Improve error handling of server name indication fun. This
implies that if the sni_fun returns undefined we will attempt
connection with original option values, if it returns
unrecognized we end the connection with UNRECOGNIZED_NAME alert
and if provided options fail option verification we will end
the connection with a HANDSHAKE_FAILURE and an error log.
- Changes for 27.2.2:
* compiler: Eliminated a bug in the alias analysis pass that
could potentially cause unsafe optimizations of binary
construction or record updates.
* erts: Disabled an unsafe runtime optimization in binary
construction that caused silent memory corruption.
* public_key: Consider keyCertSign to compatible with extended
key usage for TLS client/server auth in CAs, adhere to wide
spread implementations
* kernel: Fixed a couple of bugs that could make global's
internal state inconsistent when a connection was reconnected.
* ssl: An initiated handshake should always be closed with an
alert, some corner cases have been fixed so that this should
always be the case.
* ssl: Correct option handling to work properly for paused
handshaking. Could result in unwanted alerts or or error
messages.
-------------------------------------------------------------------
Tue Feb 18 20:23:00 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
- Enable verbose mode of the Makefiles so as to show commands
being executed.
- During build, use find -exec rather than complicated passing
via xargs.
-------------------------------------------------------------------
Mon Feb 03 16:15:51 UTC 2025 - matwey.kornilov@gmail.com
- Changes for 27.2.1:
* ssh: With this change, type specs for ssh:connection_info/1,2
functions are fixed so they include {error, term()} return
value.
* ssh: With this change, ssh client accepts a banner sent during
processing keyboard interactive user authentication.
* ssh: With this change, large sftp transfers does not hang.
Redundant window adjustment are not requested.
* tftp: Fix specs in tftp:read_file function.
* common_test: Common test will now not crash when running tests
with otp26 and earlier, while having previous test resuts from
otp27.
* erts: Fixed configure tests for GCC 14
* erts: Fix bug where log printouts would go missing when
application_controller is stopping while log messages are being
sent.
* dialyzer: Fixed a crash caused by the use of opaque types.
* kernel: Fix the default group_leader to reply {error,request}
on invalid I/O requests instead of crashing.
- Changes for 27.2:
* os_mon: Fixed the m:memsup memory alarm to use available_memory
when available, instead of always using free_memory.
* ssh: Documentation is polished after OTP-27 migration to
markdown.
* compiler: Fixed a crash in the common sub-expression
elimination pass.
* compiler: Fixed a bug where bogus code was generated for
consecutive calls to erlang:setelement/2, potentially crashing
the runtime system.
* compiler: When the line_coverage option was used, exceptions
could show the wrong line for where the exception was raised.
* compiler: The line_coverage option would be ignored if given in
a compile() attribute within a module.
* compiler: A segment matching a float in a binary generator will
now skip any invalid float (such as a NaN) and continue
matching the rest of the binary. Before this correction, the
comprehension would stop as soon as an invalid float was
encountered.
* observer: In the Memory tab of crashdump_viewer, the blocks
sizes in Allocator Summary would all be N/A.
* observer: The Kernel application now recognizes the epmd_module
and erl_epmd_listen_port parameters, similar to
-kernel:connect_all.
* stdlib: Made it possible to expand help text displayed by
pressing ^[h by pressing ^[h again.
* stdlib: Defining a fun in the shell using the syntax fun
Name/Arity would fail. This has been corrected so that the
following now works:
* stdlib: Fixed a bug where completion of 'fun(' would cause the
shell to crash.
* stdlib: Fixed a bug causing the shell to crash while trying to
complete an expression starting with a '/' or a variable
followed by '(' or '/'. E.g. Foo/ and Foo(.
* stdlib: zip:extract/2 with keep_old_files now respects the cwd
option.
* stdlib: Fixed an error in uri_string:percent_decode spec
* stdlib: Updated shell docs to display the type spec, that is,
[h(erlang, min, 2)](%60%5Cc:h/2%60) now prints the type spec
and documentation in the shell.
* stdlib: The t:file:io_device/0 type has been updated to clearly
show the difference between a raw and cooked IoDevice.
* stdlib: Added json:format_key_value_list/3 and
json:format_key_value_list_checked/3.
* stdlib: Improved documentation of
[timers](%60e:erts:time_correction.md#timers%60).
* stdlib: Added logging support to t:io:user/0,
t:io:standard_io/0 and t:io:standard_error/0. See io:setopts/2
for more details.
* common_test: Fixed a bug where the sum of testcases' execution
time in HTML logs was sometimes miscalculated, and the table
was not fully printed.
* snmp: Erlang/OTP type specifications has been updated to
eliminate overlapping domains.
* ssl: Enhanced return value spec for active messages from the
TLS connection socket.
* eldap: Corrected dialyzer spec for usage of TLS options. The
incorrect usage for the options in eldap could cause dialyzer
warnings in user code referring to eldap specs.
* erts: gen_sctp:peeloff/2 has been fixed to inherit socket
options to the peeled off socket more like gen_tcp:accept/1,
for example the options tos or tclass.
* erts: Fixed a bug where Erlang would corrupt the terminal
settings if stdin was a TTY but stdout was not.
* erts: Fixed a bug in the non-JIT VM when loading a NIF over a
function that is already traced by more than one session. This
caused a VM crash. This bug has existed since OTP-27.0, where
multiple trace sessions were introduced.
* erts: Fixed a bug where the loading of modules with extremely
large binary construction instructions crashed the emulator on
AArch64.
* erts: [inet:getifaddrs/0,1](%60inet:getifaddrs/1%60) is
improved when using inet_backend = socket.
* erts: win32reg:value/2 will no longer crash the emulator when
the value is an unterminated REG_SZ of size 0.
* erts: Makefile dependency generation on Windows in WSL 2 has
been corrected.
* erts: Fix lock order violation if a NIF monitor down callback
calls enif_whereis_pid. Would cause debug emulator to crash but
could potentially lead to deadlocks in optimized emulator.
* erts: Fixed compilation faults when compiling using --enable-
vm-probes.
* erts: Fixed erl_nif.h on Windows to compile when gcc or clang
is used.
* erts: Fixed a minor issue in the JIT debug information that
confused tools like GDB and perf.
* erts: Improved documentation of
[timers](time_correction.md#timers).
* erts: The label for a process can now be retrieved also using
process_info(Pid, label) in addition to proc_lib:get_label/1.
* mnesia: Mnesia table converted from ext_copies to disc_copies
will now be properly saved to disk.
* mnesia: Mnesia could crash if table was deleted during
checkpoint initialization.
* dialyzer: Fixed type inference for
erlang:system_info(logical_processors).
* dialyzer: Dialyzer would crash when attempting to analyze a
module compiled with the line_coverage option.
* dialyzer: Erlang/OTP type specifications has been updated to
eliminate overlapping domains.
* tools: Fixed some deprecated errors on emacs-29.
* tools: The cover tool could sometimes wrongly report lines as
uncovered.
* tools: Fixed tprof:format(IoDevice, ...) to not demand unicode
encoding supported by IoDevice.
* debugger: Defining a fun in the shell using the syntax fun
Name/Arity would fail. This has been corrected so that the
following now works:
* debugger: Erlang/OTP type specifications has been updated to
eliminate overlapping domains.
* crypto: crypto:strong_rand_bytes/2 fixed to work on Ubuntu pro
with installed FIPS support.
* crypto: Fixed crypto:hash_final/1 for digest types shake128 and
shake256 when using OpenSSL 3.4 or newer.
* kernel: gen_sctp:peeloff/2 has been fixed to inherit socket
options to the peeled off socket more like gen_tcp:accept/1,
for example the options tos or tclass.
* kernel: Made it possible to expand help text displayed by
pressing ^[h by pressing ^[h again.
* kernel: [inet:getifaddrs/0,1](%60inet:getifaddrs/1%60) is
improved when using inet_backend = socket.
* kernel: Fixed t:logger:report/0 to mandate at least one element
in the report. This fixes an issue with overlapping spec
domains in all m:logger functions that use t:logger:report/0.
* kernel: Fixed deadlock on code_server. Multiple calls loading
the same module with an on_load function loading call would
create a deadlock.
* kernel: The Kernel application now recognizes the epmd_module
and erl_epmd_listen_port parameters, similar to
-kernel:connect_all.
* kernel: The inetrc kernel argument will now tolerate atoms
again to improve compatibility with old configurations that
relied on atoms working by accident.
* kernel: The t:file:io_device/0 type has been updated to clearly
show the difference between a raw and cooked IoDevice.
* kernel: Erlang/OTP type specifications has been updated to
eliminate overlapping domains.
* kernel: Added the kernel parameter
[os_cmd_shell](kernel_app.md#os_cmd_shell) that controls which
shell should be used by os:cmd/1.
* kernel: Added logging support to t:io:user/0,
t:io:standard_io/0 and t:io:standard_error/0. See io:setopts/2
for more details.
* megaco: Erlang/OTP type specifications has been updated to
eliminate overlapping domains.
* inets: The HTTP client now correctly takes into account the
full_result option when returning an asynchronous request.
* inets: A synchronous httpc:request now timeouts after the
Timeout specified in HttpOption {timeout, Timeout}.
* inets: Fixed a bug where calling httpc:set_options/2 when one
of keys: ipfamily or unix_socket, was not present, would cause
the other value to get overriden by the default value. The
validation of these options was also improved.
* inets: The variable Env in the mod_esi callback will now have
an additional property {connect_addr, Addr} indicating on which
address the server received a connection.
* public_key: public_key:cacerts_load/1 can now be configured via
the application environment.
* public_key: On MacOS, CA certificates are now also loaded from
the system keychain.
- Allow disabling building documentation
- Disable building documentation by default on s390x: the
pre-built ex_doc has a different endianess, and the build
fails (bsc#1242999)
-------------------------------------------------------------------
Tue Dec 10 12:33:11 UTC 2024 - matwey.kornilov@gmail.com

View File

@@ -1,7 +1,7 @@
#
# spec file for package erlang
#
# Copyright (c) 2025 SUSE LLC
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -15,6 +15,13 @@
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%ifarch s390x
# Disable building docs on big endian architectures for now
# as we're using the pre-built ex_doc
%bcond_with docs
%else
%bcond_without docs
%endif
%{!?make_build:%{expand: %%global make_build %{make} %%{?_smp_mflags}}}
%define epmd_home %{_var}/lib/epmd
@@ -23,7 +30,7 @@
%define _fillupdir %{_localstatedir}/adm/fillup-templates
%endif
Name: erlang
Version: 27.2.4
Version: 27.1.3
Release: 0
Summary: General-purpose programming language and runtime environment
License: Apache-2.0
@@ -274,34 +281,43 @@ export LANG="en_US.UTF-8"
--enable-shared-zlib
# clean stalled files before rebuild them
%make_build clean
%make_build V=1
%make_build
%if %{with docs}
# to build the docs, just compiled erlang is required
PATH=$PWD/bin:$PATH ERL_TOP=$TMP_ERL_TOP %make_build docs
%endif
%sysusers_generate_pre %{SOURCE10} epmd epmd-user.conf
%check
# Disable tests by default, they are slow and have many false positives.
#PATH=$PWD/bin:$PATH make test V=1
#PATH=$PWD/bin:$PATH make test
%install
%make_install install-docs V=1
%if %{with docs}
%make_install install-docs
%else
%make_install
%endif
export TOOLS_VERSION=`ls %{buildroot}%{_libdir}/erlang/lib/ |grep ^tools- | sed "s|tools-||"`
# clean up
find %{buildroot}%{_libdir}/erlang -perm 0775 -exec chmod -v 0755 "{}" +
find %{buildroot}%{_libdir}/erlang -name Makefile -exec chmod -v 0644 "{}" +
find %{buildroot}%{_libdir}/erlang "(" -name "*.bat" -o -name index.txt.old ")" -print -delete
find %{buildroot}%{_libdir}/erlang -type d -path '*/priv/obj' -exec rm -Rfv "{}" "+"
find %{buildroot}%{_libdir}/erlang -name '.build' -exec rm -Rfv "{}" "+"
find %{buildroot}%{_libdir}/erlang -perm 0775 | xargs chmod -v 0755
find %{buildroot}%{_libdir}/erlang -name Makefile | xargs chmod -v 0644
find %{buildroot}%{_libdir}/erlang -name \*.bat | xargs rm -fv
find %{buildroot}%{_libdir}/erlang -name index.txt.old | xargs rm -fv
find %{buildroot}%{_libdir}/erlang -type d -path '*/priv/obj' -print | xargs rm -rfv
find %{buildroot}%{_libdir}/erlang -name '.build' -print | xargs rm -rfv
# doc
%if %{with docs}
mkdir -p erlang_doc
mv %{buildroot}%{_libdir}/erlang/doc ./erlang_doc
find %{buildroot}%{_libdir}/erlang -maxdepth 4 -name info -or -type d -and -path '%{buildroot}%{_libdir}/**/doc/*' -and -not -name chunks -prune | while read S;do D=`echo $S | sed -e 's|%{buildroot}%{_libdir}/erlang|erlang_doc|'`; B=`dirname $D`; mkdir -p $B; mv $S $D; done
# compress man pages ...
find %{buildroot}%{_libdir}/erlang/man -type f -exec gzip {} +
%endif
#make link to OtpErlang-*.jar in %%{_javadir}
mkdir -p %{buildroot}%{_javadir}
@@ -310,11 +326,13 @@ export JINTERFACE_VERSION=`ls %{buildroot}%{_libdir}/erlang/lib/ |grep ^jinterfa
ln -sf ../../%{_lib}/erlang/lib/jinterface-$JINTERFACE_VERSION/priv/OtpErlang.jar OtpErlang-$JINTERFACE_VERSION.jar
cd -
%if %{with docs}
# The man-pages for binaries are safe to move to %{_mandir}, others may conflict with other packages
mkdir -p %{buildroot}%{_mandir}/man1
for link in $(ls %{buildroot}%{_libdir}/erlang/man/man1/); do
ln -s %{_libdir}/erlang/man/man1/$link %{buildroot}%{_mandir}/man1/$link
done
%endif
# emacs: automatically load support for erlang
# http://lists.mandriva.com//bugs/2007-08/msg00930.php
@@ -326,7 +344,7 @@ cat > %{buildroot}%{_datadir}/emacs/site-lisp/erlang.el << EOF
EOF
# hardlink duplicates:
find . -name "start_erl*" -exec chmod 755 "{}" +
find . -name "start_erl*" | xargs chmod 755
%fdupes %{buildroot}/%{_libdir}/erlang
# %%doc macro copies the files to the package doc dir, hardlinks thus don't work
%fdupes -s erlang_doc
@@ -431,8 +449,10 @@ install -m 0644 %{SOURCE10} %{buildroot}%{_sysusersdir}
%{_libdir}/erlang/lib/tools-*/*
%dir %{_libdir}/erlang/lib/xmerl-*/
%{_libdir}/erlang/lib/xmerl-*/*
%if %{with docs}
%{_libdir}/erlang/man/
%{_mandir}/man1/*.1%{?ext_man}
%endif
%{_libdir}/erlang/releases/
%dir %{_libdir}/erlang/usr/
%dir %{_libdir}/erlang/usr/include
@@ -460,6 +480,7 @@ install -m 0644 %{SOURCE10} %{buildroot}%{_sysusersdir}
%{_libdir}/erlang/lib/diameter-*/*
%exclude %{_libdir}/erlang/lib/diameter-*/src
%if %{with docs}
%files doc
%defattr(0644,root,root,0755)
%doc erlang_doc/*
@@ -471,6 +492,7 @@ install -m 0644 %{SOURCE10} %{buildroot}%{_sysusersdir}
%exclude %{_libdir}/erlang/lib/reltool-*/doc/chunks
%exclude %{_libdir}/erlang/lib/observer-*/doc/chunks
%exclude %{_libdir}/erlang/lib/wx-*/doc/chunks
%endif
%files et
%dir %{_libdir}/erlang/lib/et-*/