Revisions of erlang

Matwey Kornilov's avatar Matwey Kornilov (matwey) accepted request 953011 from Matwey Kornilov's avatar Matwey Kornilov (matwey) (revision 118)
- Changes for 24.2:
  * compiler: When the compiler is invoked by Dialyzer, it will no
    longer apply an optimization of binary patterns that would turn
    the pattern <<"bar">> into <<6447474:24>>, which would be very
    confusing when printed out by Dialyzer.
  * compiler: The compiler would replace known failing calls (such
    as atom_to_list(42)) with a call to error(badarg). With the
    extended error information introduced in OTP 24 (EEP 54), those
    "optimized" calls would not have extended error information. To
    ensure that as much extended error information as possible is
    available, the compiler now keeps the original call even when
    it is known to fail.
  * sasl: Make release_handler even more resilient against exiting
    processes during upgrade. Same kind of bug fix as OTP-16744
    released in sasl-4.0.1 (OTP 23.1).
  * ssl: Allow re-connect on DTLS sockets Can happen when a
    computer reboots and connects from the same client port without
    the server noticing should be allowed according to RFC.
  * ssl: Fix tls and non-tls distribution to use
    erl_epmd:address_please to figure out if IPv4 or IPv6 addresses
    should be used when connecting to the remote node. Before this
    fix, a dns lookup of the remote node hostname determined which
    IP version was to be used which meant that the hostname had to
    resolve to a valid ip address.
  * ssl: Use supervisor significant child to manage tls connection
    process and tls sender process dependency.
  * ssl: Random generation adjustment for TLS1.3
  * ssl: Allow any {03,XX} TLS record version in the client hello
    for maximum interoperability
  * mnesia: Documentation and minor code cleanup.
Matwey Kornilov's avatar Matwey Kornilov (matwey) accepted request 926548 from Matwey Kornilov's avatar Matwey Kornilov (matwey) (revision 117)
- Changes for 24.1.2:
  * kernel: The undocumented DNS encode/decode module inet_dns has
    been cleaned up to handle the difference between "symbolic" and
    "raw" records in a more consistent manner. PR-5145/OTP-17584
    introduced a change that contributed to an already existing
    confusion, which this correction should remedy.
  * erts: The python scripts that existed in
    erts/lib_src/yielding_c_fun/lib/tiny_regex_c/scripts had a
    license that was incompatible with Erlang/OTP's license. This
    ticket removes these scripts that were not used by us.
  * ssl: Before that change, TLS downgrade could occasionally fail
    when data intended for downgraded socket were delivered
    together with CLOSE_NOTIFY alert to ssl app.
  * ssl: Avoid re-encoding of decoded certificates. This could
    cause unexpected failures as some subtle encoding errors can be
    tolerated when decoding but hence creating another sequence of
    bytes if the decoded value is re-encoded.
  * ssl: Fix possible process leak when the process doing
    ssl:transport_accept dies before initiating the TLS handshake.
  * ssl: Fix dtls memory leak, the replay window code was broken.
  * public_key: Avoid re-encoding of decoded certificates. This
    could cause unexpected failures as some subtle encoding errors
    can be tolerated when decoding but hence creating another
    sequence of bytes if the decoded value is re-encoded.
  * crypto: Fixed minor memory leak at crypto module purge.
  * crypto: Fix possible inconsistency in fips mode when linking
    with some cryptolibs.
- Changes for 24.1.1:
  * kernel: Add more info about the socket 'type' ('socket' or
    'port') for the DOWN message when monitoring sockets.
Matwey Kornilov's avatar Matwey Kornilov (matwey) accepted request 918929 from Johannes Segitz's avatar Johannes Segitz (jsegitz) (revision 116)
Automatic systemd hardening effort by the security team. This has not been tested. For details please see https://en.opensuse.org/openSUSE:Security_Features#Systemd_hardening_effort
Matwey Kornilov's avatar Matwey Kornilov (matwey) accepted request 910175 from Matwey Kornilov's avatar Matwey Kornilov (matwey) (revision 115)
- Changes for 24.0.5:
  * kernel: For gen_tcp:connect/3,4 it is possible to specify a
    specific source port, which should be enough to bind the socket
    to an address with that port before connecting. Unfortunately
    that feature was lost in OTP-17216 that made it mandatory to
    specify the source address to get an address binding, and
    ignored a specified source port if no source address was
    specified. That bug has now been corrected.
- Changes for 24.0.4:
  * stdlib: Fix a bug that could cause a crash when formatting
    tuples using the control sequences p or P and limiting the
    output with the option chars_limit.
  * ssl: Handle cross-signed root certificates when old root
    expired as reported in GH-4877.
  * ssl: The signature selection algorithm has been changed to also
    verify if the client supports signatures using the elliptic
    curve of the server's public/private key pair. This change
    fixes #4958.
  * ssl: Slight optimization of certificate decoding.
  * public_key: Handle cross-signed root certificates when old root
    expired as reported in GH-4877.
  * common_test: An incoming NETCONF notification received before a
    call to ct_netconfc:create_subscription/* caused the connection
    process to fail with badarg. Unexpected notifications are now
    logged in the same way as other unexpected messages.
  * common_test: Add 'receiver' option to ct_netconfc To allow a
    destination for incoming NETCONF notifications to be specified
    at sessions creation. Previously, a caller of
    create_subscription/* became the destination, but RFC 5277
    create-subscription is no longer the only way in which NETCONF
Matwey Kornilov's avatar Matwey Kornilov (matwey) accepted request 907952 from Matwey Kornilov's avatar Matwey Kornilov (matwey) (revision 114)
- Fix more directories not owned by the package (boo#1187546)
- Changes for 24.0.3:
  * erts: A call to erlang:cancel_timer(_, [{info, false}]) could
    cause the calling process to block forever in the call. Note
    that only the synchronous version of the call (that is, the
    async option is false) in combination with the info option set
    to false was effected by this bug.
  * erts: Microstate accounting (msacc) and os:perf_counter()
    unintentionally used system time instead of monotonic time for
    time measurements on a lot of systems. These systems were all
    non x86/x86_64 systems or x86/x86_64 systems without a reliable
    and constant rdtsc instruction. The lock counting (lcnt) built
    runtime system also unintentionally used system time instead of
    monotonic time for time measurements on all systems.
  * erts: Simultaneous calls to
    erlang:system_flag(schedulers_online, _) could cause callers to
    end up in a suspended state forever.
  * dialyzer: Do not expose line number 0 in messages if there are
    other locations to use.
  * dialyzer: In rare circumstances, Dialyzer could crash analyzing
    code with a list comprehension whose value was ignored. (Thanks
    to Ulf Wiger for reporting this bug.)
  * ssh: Filter out sensitive data (passwords etc) from progress
    reports and supervisor reports.
  * inets: Improved user input handling in inets/mod_esi preventing
    unnecessary atom creation.
  * compiler: A compiler optimization pass could crash when given
    odd but legal code using throw/1.
- Changes for 24.0.2:
  * kernel: Fix a race condition in Global.
  * kernel: After a node restart with init:restart/0,1, the module
    socket was not usable because supporting tables had been
    cleared and not re-initialized. This has now been fixed.
    Handling of the "." domain as a search domain was incorrect and
    caused a crash in the DNS resolver inet_res, which has now been
    fixed.
  * kernel: Handling of combinations of the fd option and binding
    to an address has been corrected, especially for the local
    address family.
  * kernel: Bug fixes and code cleanup for the new socket
    implementation, such as: Assertions on the result of
    demonitoring has been added in the NIF code, where appropriate.
    Internal state handling for socket close in the NIF code has
    been reviewed. Looping over close() for EINTR in the NIF code
    has been removed, since it is strongly discouraged on Linux and
    Posix is not clear about if it is allowed. The inet_backend
    temporary socket option for legacy gen_tcp sockets has been
    documented. The return value from net:getaddrinfo/2 has been
    corrected: the protocol field is now an atom(), instead of,
    incorrectly, list(atom()). The documentation has also been
    corrected about this return type. Deferred close of a
    socket:sendfile/* file was broken and has been corrected. Some
    debug code, not enabled by default, in the socket NIF has been
    corrected to not accidentally core dump for debug printouts of
    more or less innocent events.
  * stdlib: Fix a bug that could cause a loop when formatting terms
    using the control sequences p or P and limiting the output with
    the option chars_limit.
  * erts: Not yet handled alias-message signals in the signal queue
    at the time when a garbage collection was performed could cause
    a memory corruption which in turn could result in a crash of
    the runtime system. This bug was introduced in OTP 24.0.
  * erts: Fixed bug when using external pids/ports in keys of big
    maps (> 32). Could cause runtime crash. Bug exists since OTP
    24.0.
  * erts: After a node restart with init:restart/0,1, the module
    socket was not usable because supporting tables had been
    cleared and not re-initialized. This has now been fixed.
    Handling of the "." domain as a search domain was incorrect and
    caused a crash in the DNS resolver inet_res, which has now been
    fixed.
  * erts: A call to port_command() could cause a scheduler to end
    up in an eternal loop if the port was busy and the calling
    process had incoming signals at the time of the call. This bug
    was introduced in OTP 23.3.2 (ERTS version 11.2.1), OTP
    22.3.4.18 (ERTS version 10.7.2.10), and OTP 21.3.8.23 (ERTS
    version 10.3.5.18).
  * erts: Bug fixes and code cleanup for the new socket
    implementation, such as: Assertions on the result of
    demonitoring has been added in the NIF code, where appropriate.
    Internal state handling for socket close in the NIF code has
    been reviewed. Looping over close() for EINTR in the NIF code
    has been removed, since it is strongly discouraged on Linux and
    Posix is not clear about if it is allowed. The inet_backend
    temporary socket option for legacy gen_tcp sockets has been
    documented. The return value from net:getaddrinfo/2 has been
    corrected: the protocol field is now an atom(), instead of,
    incorrectly, list(atom()). The documentation has also been
    corrected about this return type. Deferred close of a
    socket:sendfile/* file was broken and has been corrected. Some
    debug code, not enabled by default, in the socket NIF has been
    corrected to not accidentally core dump for debug printouts of
    more or less innocent events.
  * erts: Dirty execution of a process in combination with an
    unlink signal from a port to the process could cause the signal
    queue of the process to enter into an inconsistent state. The
    result of the inconsistency typically caused a crash of the
    runtime system. This bug was introduced in OTP 23.3 (ERTS
    version 11.2).
  * erl_docgen: Fix links generated in specs to types in other
    applications to point to the correct place. This bug was
    introduced in Erlang/OTP 24.0.
  * ssl: Fix cache invalidation problem for CA certs provided by
    the cacertfile option.
  * ssh: Avoid an extra blank line in the ssh known_hosts file
  * compiler: Fixed a bug that could cause after blocks to be
    ignored when erlang:raise/3 was used in a catch block.
  * compiler: Fixed a bug in the validation pass that could cause
    it to reject valid code.
  * crypto: EC keys are now zero-padded to the expected length if
    needed.
Matwey Kornilov's avatar Matwey Kornilov (matwey) accepted request 902534 from Matwey Kornilov's avatar Matwey Kornilov (matwey) (revision 113)
- Use sysusers-tools to provide epmd user
- Fix directories not owned by the package (boo#1187546)
Matwey Kornilov's avatar Matwey Kornilov (matwey) accepted request 899918 from Callum Farmer's avatar Callum Farmer (gmbr3) (revision 112)
- Install RPM macros file to %{_rpmmacrodir} (boo#1185667)
Matwey Kornilov's avatar Matwey Kornilov (matwey) accepted request 894854 from Matwey Kornilov's avatar Matwey Kornilov (matwey) (revision 111)
- Changes for 24.0.1:
  * erl_interface: Commit of generated configure script.
  * wx: Fix build problems when wxWidgets are built with -enable-
    std.
  * wx: Commit of generated configure script.
  * crypto: Removed a risk for coredump.
  * crypto: Fixed and documented the DED_LDFLAGS_CONFTEST
    configuration variable in $ERL_TOP/HOWTO/INSTALL.md.
  * crypto: Commit of generated configure script.
  * common_test: Commit of generated configure script.
  * ssh: Add missing known_hosts and authorized_keys file types to
    ssh_file:decode/2 and ssh_file:encode/2.
  * erts: Commit of generated configure script.
  * snmp: Commit of generated configure script.
  * megaco: Commit of generated configure script.
  * odbc: Commit of generated configure script.
- Version 24.0:
  - Highlights compiler:
    * The compiler will now inline funs that are used only once
      immediately after their definition.
    * Compiler warnings and errors now include column numbers in
      addition to line numbers.
    * Variables bound between the keywords 'try' and 'of' can now
      be used in the clauses following the 'of' keyword (that is,
      in the success case when no exception was raised).
    * Generators in list and binary comprehensions will now raise a
      {bad_generator,Generator} exception if the generator has an
      incorrect type Similarly, when a filter does not evaluate to
      a boolean, a {bad_filter,Filter} exception will be raised.
    * Warnings for expressions whose result was ignored that could
      be suppressed by using the anonymous variable '_' can now be
      suppressed with a variable beginning with '_'.
    * Selective receive optimization will now be applied much more
      often. The new recv_opt_info compile flag can be used to
      print diagnostics relating to this optimization. You can read
      more about the selective receive optimization in the
      Efficiency Guide.
  - erts, kernel, stdlib:
    * hex encoding and decoding functions added in the binary module
    * The BeamAsm JIT-compiler has been added to Erlang/OTP and
      will give a significant performance boost for many
      applications. The JIT-compiler is enabled by default on most
      x86 64-bit platforms that have a C++ compiler that can
      compile C++17. To verify that a JIT enabled emulator is
      running you can use erlang:system_info(emu_flavor).
    * A compatibility adaptor for gen_tcp to use the new socket API
      has been implemented (gen_tcp_socket).
    * Extended error information for failing BIF calls as proposed
      in EEP 54 has been implemented.
    * Process aliases as outlined by EEP 53 has been introduced.
    * Implementation of EEP 56 in supervisor. It adds the concept
      of significant children as well as the auto_shutdown
      supervisor flag. See the supervisor manual page for more
      information.
  - ftp:
    * Add support for FTPES (explicit FTP over TLS).
  - ssl:
    * Make TLS handshakes in Erlang distribution concurrent.
    * TLS connections now support EdDSA certificates.
  - wx:
    * The application has been completely rewritten in order to use
      wxWidgets version 3 as its base.
    * Added support for wxWebView.
  - edoc:
    * EDoc is now capable of emitting EEP-48 doc chunks. This means
      that, with some configuration, community projects can now
      provide documentation for shell_docs the same way that OTP
      libraries did since OTP 23.0.
Matwey Kornilov's avatar Matwey Kornilov (matwey) accepted request 884205 from Matwey Kornilov's avatar Matwey Kornilov (matwey) (revision 110)
- Pack doc/chunks into %{_libdir} (boo#1184492)
Matwey Kornilov's avatar Matwey Kornilov (matwey) accepted request 863811 from Matwey Kornilov's avatar Matwey Kornilov (matwey) (revision 109)
- Use wxWidgets < 3.1 (boo#1180488)

- Changes for 23.2.2:
  * crypto: Fixed usage of AC_CONFIG_AUX_DIRS() macros in configure
    script sources.
  * odbc: Fixed usage of AC_CONFIG_AUX_DIRS() macros in configure
    script sources.
  * snmp: Fixed usage of AC_CONFIG_AUX_DIRS() macros in configure
    script sources.
  * erts: The suspend_process() and resume_process() BIFs did not
    check their arguments properly which could cause an emulator
    crash.
  * erts: The runtime system would get into an infinite loop if the
    runtime system was started with more than 1023 file descriptors
    already open.
  * megaco: Fixed usage of AC_CONFIG_AUX_DIRS() macros in configure
    script sources.
  * erl_interface: Integers outside of the range [-(1 bsl 32) - 1,
    (1 bsl 32) -1] were previously intended to be printed in an
    internal bignum format by ei_print_term() and
    ei_s_print_term(). Unfortunately the implementation has been
    buggy since OTP R13B02 and since then produced results with
    random content which also could crash the calling program. This
    fix replaces the printing of the internal format with printing
    in hexadecimal form and extend the range for printing in
    decimal form. Currently integers in the range [-(1 bsl 64), (1
    bsl 64)] are printed in decimal form and integers outside of
    this range in Erlang hexadecimal form.
  * erl_interface: The ei API for decoding/encoding terms is not
    fully 64-bit compatible since terms that have a representation
Matwey Kornilov's avatar Matwey Kornilov (matwey) accepted request 849306 from Matwey Kornilov's avatar Matwey Kornilov (matwey) (revision 108)
- Changes for 23.1.3:
  * erts: Fixed a crash when exceptions were thrown during call
    time tracing.
  * ssh: A supervisor sub-tree could be left if the connection
    handler process is brutally killed. This will make the
    max_sessions checking option to count the existing sessions
    erroneously and could finally block further sessions.
- Changes for 23.1.2:
  * compiler: Fixed a bug in the boolean optimization pass that
    caused the compiler to confuse different clauses.
  * erts: Fixed bugs causing issues when enabling the ERTS internal
    allocators on a system built with the undocumented and
    unsupported SMALL_MEMORY feature.
  * erts: The inet driver used to use 16 as maximum elements in an
    I/O vector passed to writev() (and WSASend() on Windows). When
    the data to send contained lots of elements, this caused a
    performance degradation since repeated calls to writev() had to
    be made to a much larger extent. The inet driver now looks up
    actual maximum amount of elements that can be used on the
    system, instead of just assuming 16. On most systems this will
    result in a maximum amount of I/O vector elements of 1024. As
    of OTP 23.0 the term encoding of signals to send over the
    distribution are encoded into I/O vectors of buffers instead of
    into a single buffer. Reference counted binaries are referred
    to directly from the I/O vector instead of being copied into
    the single buffer. That is, Erlang signals containing huge
    amounts of reference counted binaries was effected by this
    performance degradation.
  * erts: In the distributed case, a faulty reply option in a call
    to the spawn_request() BIF erroneously caused a badarg
Gabriele Santomaggio's avatar Gabriele Santomaggio (gsantomaggio_suse) accepted request 839763 from Matwey Kornilov's avatar Matwey Kornilov (matwey) (revision 107)
- Changes for 23.1.1:
  * erts: inet:setopts([{active,once}]) wakes up IO polling thread
    unnecessarily, leading to lock contention and visibly higher
    CPU utilization.
  * erts: Two bugs in the ERTS internal thread wakeup functionality
    have been fixed. These bugs mainly hit when all threads in the
    system tried to go to sleep. When the bugs were triggered,
    certain operations were delayed until a thread woke up due to
    some other reason. Most important operations effected were code
    loading, persistent term updates, and memory deallocation.
  * erts: Fixed bug in ets:select_replace/2 on compressed tables
    that could produce faulty results or VM crash. Bug exists since
    OTP 20.
  * erts: When compiling Erlang/OTP on macOS using Xcode 12, the
    performance of the BEAM interpreter would be degraded.
  * erts: As of OTP 22, the allocator specific memory carrier pools
    were replaced by a node global carrier pool. This unfortunately
    caused substantial memory fragmentation in some cases due to
    long lived data being spread into carriers used by allocators
    mainly handling short lived data. A new command line argument
    +M<S>cp has been introduced with which one can enable the old
    behavior as well as configuring other behaviors for the carrier
    pools. In order to configure the old behavior, with allocator
    specific carrier pools for all allocators, pass +Mucp :
    (including the colon character) as a command line argument to
    erl when starting the Erlang system. The default configuration
    for carrier pools will be changed to +Mucp : some time in the
    future, but not in this patch.
  * os_mon: The configuration parameter
    memsup_improved_system_memory_data has been introduced. It can
Matwey Kornilov's avatar Matwey Kornilov (matwey) accepted request 828926 from Gabriele Santomaggio's avatar Gabriele Santomaggio (gsantomaggio_suse) (revision 106)
- Changes for 23.0.3:
  * erts: Fixed bug in erlang:load_nif/2 that could cause it to
    throw badarg exception if a concurrent code change operation
    was in progress. Bug existed since OTP 23.0.
  * erts: Minor fix of debug compiled VM.
  * erts: An unintentional reuse of an already used emulator
    internal event object could cause a wakeup signal to a thread
    to be lost. In worst case this could cause the runtime system
    to hang. This hang was however quite rare.
  * erts: NIF threads and driver threads on non-Linux systems
    leaked internal resources when terminating. On Windows these
    resources were one event per thread. On most other systems one
    mutex and one condition variable per thread. On these other
    systems that also lacked pthread_cond_timedwait() also a pipe
    with its file descriptors was leaked.
  * compiler: When calls to is_map_key were repeated, the compiler
    could terminate with an internal consistency failure.
  * compiler: Fixed a bug in the type inference pass that could
    cause the compiler to hang.
Gabriele Santomaggio's avatar Gabriele Santomaggio (gsantomaggio_suse) accepted request 814090 from Matwey Kornilov's avatar Matwey Kornilov (matwey) (revision 105)
- Changes for 23.0.2:
  * erts: Fixed bug when sending an export fun (eg lists:reverse/1)
    on a not yet established connection. It could cause VM crash.
    Bug exists since OTP 23.0.
  * megaco: The mini parser could not properly decode some IPv6
    addresses.
- Changes for 23.0.1:
  * erts: The functionality utilized by BIFs for temporary
    disabling of garbage collection while yielding could cause
    system task queues to become inconsistent on a process
    executing such a BIF. Process system tasks are for example
    utilized when purging code, garbage collecting literal data,
    and when issuing an ordinary garbage collection from another
    process. The bug does not trigger frequently. Multiple code
    purges in direct sequence makes it more likely that this bug is
    triggered. In the cases observed, this has resulted in a
    hanging code purge operation.
  * erts: SCTP and UDP recv/2,3 hangs indefinitely if socket is
    closed while recv is called (socket in passive mode).
  * compiler: In rare circumstances, a guard using 'not' could
    evaluate to the wrong boolean value.
  * compiler: A guard expression that referenced a variable bound
    to a boolean expression could evaluate to the wrong value.

- Version 23.0:
- Potential Incompatibilities:
  * SSL:Support for SSL 3.0 is completely removed. TLS 1.3 is added
    to the list of default supported versions.
  * erl_interface: Removed the deprecated parts of erl_interface
    (erl_interface.h and essentially all C functions with prefix
Matwey Kornilov's avatar Matwey Kornilov (matwey) accepted request 788113 from Gabriele Santomaggio's avatar Gabriele Santomaggio (gsantomaggio_suse) (revision 104)
- Changes for 22.3:
  * compiler: A 'receive' with an 'after 0' clause would prevent
    the optimization that can avoid scanning the entire receive
    queue when matching on a newly created reference.
  * compiler: HiPE can again handle modules with catch and try
    constructs.
  * compiler: Fixed a bug in bit-syntax optimization that could
    crash the compiler.
  * crypto: Fixed potential memory leaks involving calls to the
    crypto ng_api.
  * common_test: Document incl_apps cover option
  * common_test: The ct_property_test has now a report function for
    results of stateful testing.
  * common_test: Don't hide error reasons from user
  * stdlib: Fix type specification for uri_string:normalize/2 that
    may also return error().
  * stdlib: Improve error handling in uri_string:normalize/2. This
    change fixes a crash when the input URI has faulty percent-
    encoding.
  * stdlib: Fix minor bugs in the Erlang pretty printer (erl_pp).
  * stdlib: Fix the Erlang parser regarding consecutive unary
    operators.
  * stdlib: Let calendar:rfc3339_to_system_time() crash when the
    time offset is missing.
  * stdlib: Implement uri_string:resolve/{2,3} that can be used to
    resolve a URI reference against a base URI.
  * stdlib: In gen_statem it is now possible to change the callback
    module for a running server. See gen_statem's documentation for
    change_callback_module, push_callback_module, and
    pop_callback_module.
  * ssl: Correct handling of TLS record limit in TLS-1.3. The max
    value differs from previous versions. Also the payload data max
    record check was broken, that is record overflow problems could
    occur if user sent large amounts of data.
  * ssl: Correct close handling for DTLS
  * ssl: Fix ssl:getstat/1-2 to also work for DTLS sockets
  * ssl: Correct internal handling och socket active mode to avoid
    reviving TCP data aimed for a downgraded TLS socket.
  * ssl: When using the host name as fallback for SNI (server name
    indication) strip a possible trailing dot that is allowed in a
    host name but not in the SNI. Also if the server receives a SNI
    with a trailing dot send an UNRECOGNIZED_NAME alert.
  * ssl: Immediately remove session entries if handshake is
    abruptly closed at transport level.
  * ssl: Implementation of the key and initialization vector update
    feature, and general hardening of TLS 1.3. There are
    cryptographic limits on the amount of plaintext which can be
    safely encrypted under a given set of keys. This change
    enforces those limits by triggering automatic key updates on
    TLS 1.3 connections.
  * ssl: Add support for TLS 1.3 Session Tickets (stateful and
    stateless). This allows session resumption using keying
    material from a previous successful handshake.
  * ssl: Add support for key exchange with Edward curves and PSS-
    RSA padding in signature verification.
  * megaco: The documented function
    megaco:get_sdp_record_from_PropertGroup/2 was a wrapper for
    megaco_sdp:get_sdp_record_from_PropertGroup/2 but did not
    actually exist. This has now been fixed.
  * megaco: Test suite completely reworked. Add (timestamp) utility
    functions for debugging and testing.
  * erl_interface: Fix link error "multiple definition of
    `ei_default_socket_callbacks'" for gcc version 10 or when built
    with gcc option -fno-common. Error exists since OTP-21.3.
  * asn1: Fix 'DEFAULT' with 'OCTET STRING' and 'SEQUENCE OF
    CHOICE' with extensions.
  * erts: gen_udp:recv(S, N, 0) corrupted the internal state for
    the socket so after receive with {active, once} it always
    returned {error, timeout}, and wasted the received UDP packets.
    This bug has now been fixed. Reported and pinpointed by
    Alexander Petrovsky.
  * erts: The atom esock_atom_user and esock_atom_kernel was never
    actually created. This has now been corrected.
  * erts: Fixed bug in socket module that could potentially lead to
    scheduler deadlocks.
  * erts: Fix bug causing VM crash if down or stop callback of a
    NIF resource is called after the NIF module has been purged.
    The fix will postpone unloading until all such resource objects
    have been garbage collected.
  * erts: Fixed bug in ets:update_counter/4, when called with an
    invalid UpdateOp and a Key that does not exist, causing
    ets:info(T,size) to return incorrect values. Bug exists since
    OTP-19.0.2.
  * erts: Fix potential heap corrupting bugs when a process calls a
    BIF that blocks other normal schedulers and then writes to its
    own heap without the main process lock. A NIF running on a
    dirty scheduler trying to interact with such a process could
    corrupt its heap. The fixed BIFs were related to code loading
    and tracing.
  * erts: Fixed bug in erlang:list_to_ref/1 when called with a
    reference created by a remote note. Function list_to_ref/1 is
    intended for debugging and not to be used in application
    programs. Bug exist since OTP 20.0.
  * erts: The prim_net nif (net/kernel) made use of an undefined
    atom, notsup. This has now been corrected.
  * erts: Corrected the valid range of the erl command line
    argument +SDio <NumberOfDirtyIoSchedulers> from 0..1024 to
    1..1024. +SDio 0 was erroneously allowed which just caused the
    VM to crash on the first dirty I/O job scheduled.
  * erts: Fix a crash when attempting to log faults when loading
    files during early boot.
  * erts: For socket, not all send and receive flags are supported
    on all platforms. In order to (at least) simplify testing, the
    socket:supports/0,1,2,3 functions has been extended with
    send_flags and recv_flags items, which indicates what the
    current platform can manage.
  * erts: Add a "full featured" version of getifaddrs in the net
    module.
  * erts: The options busy_limits_port and busy_limits_msgq have
    been added to the BIF erlang:open_port/2. The busy_limits_port
    option can be used for controlling the busy state of a port
    executing the spawn_driver or the fd_driver. The
    busy_limits_msgq option can be used for controlling the busy
    state of the port message queue.
  * erts: A socket "registry" has been added making it possible to
    list current open sockets.
  * erts: The counters managed by the socket nif has been extended.
    Their "size" has been increased from 32 bit to 64. Two max
    package size (for read and write) has been added. And four
    accept counters has been added.
  * erts: Add gcc option -fno-common to detect accidental name
    clashes of global variables.
  * erts: New dynamic lock checker that verifies locking orders and
    detects potential deadlock bugs in drivers and NIFs. Enabled
    together with the old static lock checker (for ERTS internal
    locks) in emulator started with -emu_type debug or built with
    configuration option --enable-lock-checking.
  * snmp: A simple supervision of the snmp manager net-if process
    has been added. Also, a way to forcibly restart the net-if
    process has been added. This could be useful if the net-if
    process hangs for some reason.
  * snmp: Misc documentation corrections
  * mnesia: Fixed a timing issue in uninstall fallback
    functionality.
  * eunit: Backport of PR-2316: Strip control codes from
    eunit_surefire output to avoid generation of invalid xml
  * ssh: Unicode problems for ssh_sftp:write fixed.
  * ssh: Changes to the internal api of the experimental ssh_dbg
    tool.
  * ssh: The new functions ssh:set_sock_opts/2 and
    ssh:get_sock_opts/2 sets and reads option values for the
    underlying TCP stream.
  * hipe: HiPE can again handle modules with catch and try
    constructs.
  * hipe: When the return value for try/catch was ignored, the
    native code compiler could crash.
  * public_key: Add support for key exchange with Edward curves and
    PSS-RSA padding in signature verification.
  * diameter: Add the 'first' tuple to type diameter:peer_filter/0.
    The filter was added in OTP-17.5.6.8 and OTP-18.3, but neither
    release updated the type specification.
  * tools: An Emacs warning due to lacking type in defcustom
    declaration has been fixed.
  * tools: Improve emacs indentation.
  * tools: The cover tool could generate instrumented code for a
    module that would cause warnings to be issued.
  * tools: Fixed generated fprof analysis format to also handle
    data in maps.
  * sasl: A socket "registry" has been added making it possible to
    list current open sockets.
  * kernel: The DNS resolver `inet_res` has been fixed to return
    the last intermediate error when subsequent requests times out.
  * kernel: The prim_net nif (net/kernel) made use of an undefined
    atom, notsup. This has now been corrected.
  * kernel: Fix a crash when attempting to log faults when loading
    files during early boot.
  * kernel: Fix crash in logger when logging to a remote node
    during boot.
  * kernel: Improved net_kernel debug functionality.
- Changes for 22.2.8:
  * diameter: The possibility of choosing a handler process for an
    incoming Diameter request with a configured MFA was documented
    in OTP 20.0, but counters (with {traffic_counters, true}) were
    not incremented when this process was on a remote node.
    Counters are now incremented on the node that configures the
    transport in question. Introduced in OTP 21.3.
  * diameter: Transport options differing from those passed to
    diameter:add_transport/2 were used in several situations: when
    starting a transport process after connect_timer expiry after
    an initial connection attempt has failed, when starting a
    transport process after a connection has been accepted, when
    sending events, when returning options in
    diameter:service_info/2, and possibly more. In particular, the
    following configuration options to diameter:add_transport/2
    were dropped: avp_dictionaries, incoming_maxlen, spawn_opt,
    strict_mbit. Moreover, any service options mistakenly passed to
    diameter:add_transport/2 were interpreted as such, instead of
    being ignored as the documentation states, with the consequence
    that outgoing and incoming requests saw different values of
    some options, some were always taken from transport options,
    and others from service options. diameter:add_transport/2 must
    be called in new code for the fix to have effect. Introduced in
    OTP 20.1.
Matwey Kornilov's avatar Matwey Kornilov (matwey) accepted request 780983 from Tomáš Chvátal's avatar Tomáš Chvátal (scarabeus_iv) (revision 103)
- Remove conditions and support for openSUSE/SLE < 15
- Remove not really needed service file _service
- Convert the dependencies to pkgconfig style ones
Matwey Kornilov's avatar Matwey Kornilov (matwey) accepted request 777387 from Gabriele Santomaggio's avatar Gabriele Santomaggio (gsantomaggio_suse) (revision 102)
- Changes for 22.2.7:
  * compiler: Fixed a bug that could cause the compiler to reject
    valid code that used the is_map_key/2 BIF.
  * compiler: Fixed a bug that could cause the compiler to reject
    valid code that matched the same map key several times.
  * compiler: The compiler could crash when compiling a convoluted
    receive statement.
  * compiler: The compiler could crash when a fun was created but
    never used. The compiler could crash when compiling the
    expression true = 0 / X.
- jsc#SLE-10913
Gabriele Santomaggio's avatar Gabriele Santomaggio (gsantomaggio_suse) accepted request 774506 from Matwey Kornilov's avatar Matwey Kornilov (matwey) (revision 101)
- Changes for 22.2.6:
  * erts: A process could get into an inconsistent state where it
    was runnable, but never scheduled for execution. This could
    occur when a mix of normal and low priority processes where
    scheduled on the same type of dirty scheduler simultaneously.
Matwey Kornilov's avatar Matwey Kornilov (matwey) accepted request 771566 from Gabriele Santomaggio's avatar Gabriele Santomaggio (gsantomaggio_suse) (revision 100)
- Changes for 22.2.5:
  * erts: A process could end up in a state where it got
    endlessly rescheduled without making any progress. This
    occurred when a system task, such as check of process
    code (part of a code purge), was scheduled on a high
    priority process trying to execute on a dirty
    scheduler.
  * erts: Improved signal handling for processes executing dirty.
    For example, avoid busy wait in dirty signal handler
    process when process is doing garbage collection on
    dirty scheduler.
  * stdlib:  A directory traversal vulnerability has been eliminated
    in erl_tar. erl_tar will now refuse to extract symlinks
    that points outside the targeted extraction directory
    and will return {error,{Path,unsafe_symlink}}. (Thanks
    to Eric Meadows-Jönsson for the bug report and for
    suggesting a fix.)
Matwey Kornilov's avatar Matwey Kornilov (matwey) accepted request 769520 from Gabriele Santomaggio's avatar Gabriele Santomaggio (gsantomaggio_suse) (revision 99)
- Changes for 22.2.4:
  * ssl: Enhance error handling, all ALERTS shall be handled
    gracefully and not cause a crash.  
  * ssl: Enhance alert logging, in some places the role
    indication of the alert origin was missing. So the log
    would say undefined instead of client or server.
  * ssl: Two different optimizations did not work together and
    resulted in the possible breakage of connections using
    stream ciphers (that is RC4). Reworked the
    implementation to avoid this.
Displaying revisions 21 - 40 of 138
openSUSE Build Service is sponsored by