- Changes for 22.1: * kernel: The type specification for gen_sctp:connect/4,5 has been corrected. * kernel: Extra -mode flags given to erl are ignored with a warning. * kernel: Fix type spec for seq_trace:set_token/2. * kernel: logger:compare_levels/2 would fail with a badarg exception if given the values all or none as any of the parameters. This is now corrected. * kernel: Fix bug where the log file in logger_std_h would not be closed when the inode of the file changed. This would in turn cause a file descriptor leak when tools like logrotate are used. * kernel: Fix a race condition in the debugging function net_kernel:nodes_info/0. * kernel: Fix race condition when closing a file opened in compressed or delayed_write mode. * kernel: The possibility to send ancillary data, in particular the TOS field, has been added to gen_udp:send/4,5. * kernel: If the log file was given with relative path, the standard logger handler (logger_std_h) would store the file name with relative path. If the current directory of the node was later changed, a new file would be created relative the new current directory, potentially failing with an enoent if the new directory did not exist. This is now corrected and logger_std_h always stores the log file name as an absolute path, calculated from the current directory at the time of the handler startup. * kernel: Support local sockets with inet:i/0. * observer: Fix bug after a user followed link on a pid from an expanded term window. * observer: Improved dark mode colors on Linux. * mnesia: mnesia:add_table_copy/3 could cause a deadlock if called when a new node was starting. * mnesia: Transactions with sticky locks could with async_asym transactions be committed in the wrong order, since asym transaction are spawned on the remote nodes. To fix this bug the communication protocol between mnesia nodes had to be updated, thus mnesia will no longer be able to connect to nodes earlier than mnesia-4.14 , OTP-19.0. *** POTENTIAL INCOMPATIBILITY *** * stdlib: re:run() now yields when validating utf8 in a large subject. * stdlib: Upgraded the ERTS internal PCRE library from version 8.42 to version 8.43. See http://pcre.org/original/changelog.txt for information about changes made to PCRE. This library implements major parts of the re regular expressions module. * stdlib: The bug with ID ERL-717 has been fixed. The functions io:columns() and io:rows() only worked correctly inside interactive erlang shells before this fix. These functions returned {error,enotsup} before this fix even if stdout and stdin were connected to a terminal when they were invoked from an escript or a program started with e.g., erl -noshell. * stdlib: Fixed handling of ".." and "@" in wildcards. ".." would only work when preceded by a literal pattern such as in "a/..", not when preceded by wildcard characters such as in "*/..". The combination "@/.." was also broken, and in addition "@" in a pattern could degrade performance of the wildcard matching. * stdlib: Make sure ets:fun2ms() can handle ++/2 in the head of functions when called from the shell. * stdlib: Debugging of time-outs in gen_statem has been improved. Starting a time-out is now logged in sys:log and sys:trace. Running time-outs are visible in server crash logs, and with sys:get_status. Due to this system events {start_timer, Action, State} and {insert_timout, Event, State} have been added, which may surprise tools that rely on the format of these events. New features: The EventContent of a running time-out can be updated with {TimeoutType, update, NewEventContent}. Running time-outs can be cancelled with {TimeoutType, cancel} which is more readable than using Time = infinity. *** POTENTIAL INCOMPATIBILITY *** * stdlib: re:run() now avoids validating utf8 in the subject more than once in the same call. This validation could previously be performed multiple times when the global option was passed. * stdlib: ETS ordered_set tables with write_concurrency enabled has got a performance issue fixed. There were no limits for the values of internal statistics counters before this fix. This could result in that the data structure sometimes reacted slowly to a change in how many parallel processes were using it. * stdlib: The ordsets:union/1 is now faster when passed a long list of ordsets. * stdlib: unicode:characters_to_binary() could return very small binaries as reference counted off heap binaries. This could cause an unnecessary large memory usage and an unnecessary load on the binary allocator. Small binaries are now always returned as heap binaries. * stdlib: Display a more meaningful error message when a bad I/O server is used in a script written in Erlang (escript). * stdlib: New feature ets:info(_, binary) to get information about all reference counted binaries kept by a table. This is the same kind of debug information that process_info(_, binary) returns for a process. * stdlib: Corrected ETS documentation about the behavior of compiled match specifications when serialized through external format. * tools: cover would fail to start if two processes tried to start it at the exact same time. * common_test: If a ct hook is installed in the suite/0 function in a test suite, then the hook's terminate/1 function would be called several times without it's init/2 function being called first. This is now corrected. * common_test: If init_per_testcase fails, the test itself is skipped. According to the documentation, it should be possible to change the result to failed in a hook function. The only available hook function in this case is post_init_per_testcase, but changing the return value there did not affect the test case result. This is now corrected. * common_test: Add ct_netconfc support for NETCONF 1.1 (RFC 6241). The 1.1 base capability can be sent in hello, and RFC 6242 chunk framing is applied when both client and server advertise 1.1 support. * common_test: Correct lib_dir paths in common_tests opaque data structure that is passed to ct_release_test callback modules in functions upgrade_init/2, upgrade_upgraded/2 and upgrade_downgraded/2. The incorrect paths may cause confusion when debugging although it will not cause any incorrect behavior on the part of common_test as it is currently not used. * erts: If you set {linger,{true,0}} on a gen_tcp listen socket, accept a connection on that socket, and then close the accepted socket, now the linger zero setting is transferred to the accepted socket. Before this correction that information was lost and the close behaviour on the accepted socket incorrect. * erts: Sending ancillary data implemented in OTP-15747 accidentally left behind test code that caused all UDP sends to fail on Windows. This has now been fixed. * erts: In the socket nif, used invalid flags when if-def'ing for supported TCP flags: TCP_MAXSEG and TCP_NODELAY (the support function). * erts: Fixed memory leaks in experimental socket module. * erts: re:run() now yields when validating utf8 in a large subject. * erts: Fixed bug in seq_trace:set_token(label,Term) which could cause VM crash if Term was heap allocated (not an atom, small integer, local pid or port). Bug exists since OTP 21.0 when terms other than small integers were first allowed as labels. * erts: Extra -mode flags given to erl are ignored with a warning. * erts: Don't loop indefinitely when --enable-pgo is given to configure, but compiler does not support pgo. * erts: Fix seq_trace:print/2 not to raise badarg exception if label is not a small integer. Bug exists since OTP 21.0. * erts: Fixed hipe_flush_icache_range for non-Linux OS on ARM. * erts: The fix in OTP-15871 was too conservative and disabled the offending load-time optimization in some cases where it was safe. * erts: Upgraded the ERTS internal PCRE library from version 8.42 to version 8.43. See http://pcre.org/original/changelog.txt for information about changes made to PCRE. This library implements major parts of the re regular expressions module. * erts: Fix race condition when closing a socket while using {active,N} on Windows. * erts: Allow more than one -config command line option to erl on Windows to conform with other OS. * erts: Fix so that ERL_FLAGS environment variable does not interfere with command line arguments. Before this fix you could write: ERL_FLAGS="10" erl +S and erlang would start as if +S had been given the argument 10. * erts: The bug with ID ERL-717 has been fixed. The functions io:columns() and io:rows() only worked correctly inside interactive erlang shells before this fix. These functions returned {error,enotsup} before this fix even if stdout and stdin were connected to a terminal when they were invoked from an escript or a program started with e.g., erl -noshell. * erts: Do not use named label in ethread.c inline assemble. This allows erts to be compiled using gcc 9.1.0 with LTO enabled. * erts: erlang:fun_to_list/1 will now escape the module and function name when necessary. * erts: process_info(P,binary) would neglect to look through heap fragments, potentially missing a few binaries associated with the process. * erts: HiPE is now automatically disabled on systems with non- glibc implementation (for instance musl). This is because musl does not provide the API's for guaranteeing that signals are delivered on the correct native stack. * erts: Fixed bug triggered if a process is killed during call to persistent_term:put or persistent_term:erase. * erts: Add units to all memory slogans in the crash dump documentation. * erts: Fix a bug in binary_to_term that would crash the emulator if a term larger than 16GB was to be decoded. * erts: Fixed bug related to an exiting process sending EXIT and DOWN signals to remote linked/monitored processes. Bugs exists since OTP 22.0. * erts: erlc can now automatically use a compile server to avoid starting an Erlang system for each file to be compiled in a multi-file project. See the documentation for how to enable it. * erts: The possibility to send ancillary data, in particular the TOS field, has been added to gen_udp:send/4,5. * erts: The net module has been split into 'net' (kernel) and prim_net (preloaded). * erts: Socket counters now works as expected and can also be extracted with the (new) info function. * erts: re:run() now avoids validating utf8 in the subject more than once in the same call. This validation could previously be performed multiple times when the global option was passed. * erts: The un-documented function erlang:dist_get_stat/1 now returns the real value of what the distribution queue contains instead of a boolean. * erts: ETS ordered_set tables with write_concurrency enabled has got a performance issue fixed. There were no limits for the values of internal statistics counters before this fix. This could result in that the data structure sometimes reacted slowly to a change in how many parallel processes were using it. * erts: Optimize the reception of large distribution messages. * erts: Binary matching and functions like split_binary/2 will now create heap binaries when the results are small enough, reducing the chances of small sub-binaries keeping large binaries alive. * erts: Fixed rare emulator crash in instrument:allocations/0-1. * erts: Ports could pass very small binaries as reference counted off heap binaries to processes. This could cause an unnecessary large memory usage and an unnecessary load on the binary allocator. Small binaries are now always passed as heap binaries to processes. * erts: unicode:characters_to_binary() could return very small binaries as reference counted off heap binaries. This could cause an unnecessary large memory usage and an unnecessary load on the binary allocator. Small binaries are now always returned as heap binaries. * erts: Improved erl_nif documentation regarding on_load and Erlang stub/fallback functions. * erts: New feature ets:info(_, binary) to get information about all reference counted binaries kept by a table. This is the same kind of debug information that process_info(_, binary) returns for a process. * erl_docgen: Update the documentation build support to handle FOP 2.1 . * ftp: A possibly infinite loop when receiving messages divided in parts is removed. * dialyzer: Allow native compilation when using Dialyzer from Erlang. The options native (defaults to false) and native_cache have been added. * eunit: Handle get_until request with explicit encoding in the implementation of the I/O protocol. * snmp: Fix various minor issues related to Dialyzer. Mostly these are dialyzer warnings, but there was also some minor bugs detected by Dialyzer. * snmp: Fixed a dets usage problem detected by dialyzer. * snmp: The function snmp:print_version_info() prints various version info. For each module a number of items are printed, such as app vsn and md5 digest. And an attempt was also made to print "compile time". This used to be available in the module_info for each module, but has now been removed. * snmp: The use of the deprecated random module has been replaced the with rand module. * snmp: Removed use of the deprecated function erlang:get_stacktrace(). Instead make use of the 'catch Class:Error:Stacktrace' feature. * syntax_tools: Add missing calls to erl_syntax:unwrap/1. The nodes concerned represent names and values of maps and map types. * wx: Fix a driver bug that could crashes when allocating memory. * erl_interface: Fix bugs in ei_print_term for binaries and bit strings causing incorrect output. * erl_interface: Fixed bug in ei_decode_fun for very old fun encoding format. Bug exist since OTP 22.0. * erl_interface: ei_print_term() now supports printing of maps and funs. * xmerl: xmerl_sax_parser crashed during charset detection when the xml declarations attribute values was missing the closing quotation (' or "). * ssl: Handling of zero size fragments in TLS could cause an infinite loop. This has now been corrected. * ssl: DTLS record check needs to consider that a resent hello message can have a different version than the negotiated. * ssl: Basic support for TLS 1.3 Client for experimental use. For more information see the Standards Compliance chapter of the User's Guide. * ssl: Correct solution for retaining tcp flow control OTP-15802 (ERL-934) as to not break ssl:recv as reported in (ERL-938) * ssl: Enhance dialyzer specs to reflect implementation better and avoid dialyzer warnings for the user that wants to use TLS with unix domain sockets. * ssl: Add support for ECDSA signature algorithms in TLS 1.3. * ssl: Correct error handling of TLS downgrade, possible return values form ssl:close/2 when downgrading is {ok, Port} or {error, Reason}, it could happen that only ok was returned instead of {error, closed} when downgrade failed due to that the peer closed the TCP connection. * os_mon: Fix disk_sup to ignore squashfs on Linux when determining if a mounted filesystem is full or not. * os_mon: Fix bug where cpu_sup:util() always returned 100% on systems not using gnu libc, for example Alpine OS. * ssh: Fixed wrong type definition for the daemon option subsystems. * ssh: Fixed a possible SSH logging crash if there was a problem in an early stage of session setup. * ssh: The documentation for the modules ssh_connection, ssh_sftp and ssh_sftpd are now generated from the -spec:s. * ssh: Internal cleanup including removal of the internal file ssh_userauth.hrl. * ssh: Removed unused definitions in ssh.hrl. * ssh: Removed unused fields in the internal #connection{} record. * ssh: To get information of a connection_ref() from for example ssh:connect/3, there was previously one function available namely ssh:connection_info/2. This ticket adds ssh:connection_info/1 which returns all information. For daemons (servers) started with for example ssh:daemon/2 the function ssh:daemon_info/1 returning all information was available. This ticket adds ssh:daemon_info/2 which returns only the information specified in the second argument. The info of connections and of daemons now also includes the item 'options'. Only those options that does not have their default values are returned. For a connection also the items 'algorithms' and 'channels' are added. * inets: httpd - Accept singel LF as line terminator * inets: mod_esi will now always propagate the actual HTTP status code that it answered with, to later mod-modules, and not in some cases hardcode 200. * compiler: Code such as the following would crash the compiler in OTP 22: [some_atom = fun some_function/1] * compiler: Compilation could get really slow (in the order of minutes instead of seconds) when compiling huge functions. (Thanks to Kostis Sagonas for reporting this bug.) * compiler: Fixed a bug in the validator that could reject valid code. * compiler: In rare circumstances, when two clauses had identical bodies and guard tests that tested a single boolean variable, the guard test for the second clause could be discarded, executing the second clause unconditionally if the first clause was not executed. * compiler: Fixed extremely slow compilation for huge functions doing predominantly pattern matching. * compiler: The compiler could generate unsafe code (that would crash the runtime system) for map pattern matching. The code could be unsafe if the matched key was not present in the map at runtime. * compiler: Correct code using try/after could fail to compile when using the option 'no_type_opt'. * compiler: The compiler could crash when compiling code that called 'length/1' on a binary extracted using the binary syntax. * compiler: Fixed a bug where the compiler could fail with an internal consistency failure error when compiling receive statements. * compiler: Fixed a problem where the compiler would crash when compiling binary matching in a function head. * public_key: Support Password based encryption with AES * public_key: Change dialyzer spec to avoid confusion * runtime_tools: Fix dbg:stop_clear/0 to also clear trace events (send and 'receive'). * megaco: Fix various minor issues related to Dialyzer. Mostly these are dialyzer warnings, but there was also some minor bugs detected by Dialyzer. * crypto: The implementation of crypto_one_time/4 is adjusted to match the type specification. The spec and the black-box behaviour of the function are unchanged. Some details: Both the spec and the implementation were correct seen separately. But with both of them combined simultaneously with crypto_one_time/5 which was called by the implementation of crypto_one_time/4, an (obvious) error was detected by a Dialyzer with more thorough checking than usual. * crypto: When using crypto with FIPS mode enabled, the digests were not correctly handled. * crypto: A memory leak in error handling code in ng_crypto_init_nif is fixed. * crypto: Fixed the broken static build of the crypto nifs * crypto: The Message Authentication Codes (MAC) CMAC, HMAC and Poly1305 are unified into common functions in the New Crypto API. See the manual for CRYPTO. * sasl: The net module has been split into 'net' (kernel) and prim_net (preloaded). * jinterface: Replaced deprecated <tt> with <code> in documentation. - Rebased patches: + 0001-erts-Do-not-use-named-no_cpuid-label-in-asm.patch dropped (merged upstream) OBS-URL: https://build.opensuse.org/request/show/732489 OBS-URL: https://build.opensuse.org/package/show/devel:languages:erlang:Factory/erlang?expand=0&rev=89
611 lines
18 KiB
RPMSpec
611 lines
18 KiB
RPMSpec
#
|
|
# spec file for package erlang
|
|
#
|
|
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
#Compat macro for new _fillupdir macro introduced in Nov 2017
|
|
%if ! %{defined _fillupdir}
|
|
%define _fillupdir /var/adm/fillup-templates
|
|
%endif
|
|
|
|
%if 0%{?rhel} >= 7
|
|
%undefine _missing_build_ids_terminate_build
|
|
%endif
|
|
|
|
%{!?make_build:%{expand: %%global make_build %%{__make} %%{?_smp_mflags}}}
|
|
|
|
Name: erlang
|
|
Version: 22.1
|
|
Release: 0
|
|
# not set up to be built with position independend executable support
|
|
#!BuildIgnore: gcc-PIE
|
|
Summary: General-purpose programming language and runtime environment
|
|
License: Apache-2.0
|
|
Group: Development/Languages/Other
|
|
Url: http://www.erlang.org
|
|
Source0: https://github.com/erlang/otp/archive/OTP-%{version}.tar.gz
|
|
Source3: %{name}-rpmlintrc
|
|
Source4: epmd.init
|
|
Source5: erlang.sysconfig
|
|
Source6: macros.erlang
|
|
Source7: epmd.service
|
|
Source8: epmd.socket
|
|
Source9: README.SUSE
|
|
# PATCH-MISSING-TAG -- See http://en.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
|
Patch0: otp-R16B-rpath.patch
|
|
# PATCH-FIX-OPENSUSE erlang-not-install-misc.patch - matwey.kornilov@gmail.com -- patch from Fedora, this removes unneeded magic
|
|
Patch4: erlang-not-install-misc.patch
|
|
BuildRequires: autoconf
|
|
BuildRequires: gcc-c++
|
|
BuildRequires: ncurses-devel
|
|
BuildRequires: openssh
|
|
BuildRequires: openssl-devel
|
|
BuildRequires: tcl-devel
|
|
BuildRequires: tk-devel
|
|
BuildRequires: unixODBC-devel
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|
BuildRequires: %fillup_prereq
|
|
BuildRequires: %insserv_prereq
|
|
BuildRequires: Mesa-devel
|
|
BuildRequires: fdupes
|
|
BuildRequires: fop
|
|
BuildRequires: dejavu-fonts
|
|
BuildRequires: java-devel >= 1.6.0
|
|
BuildRequires: krb5-devel
|
|
BuildRequires: update-alternatives
|
|
%if 0%{?suse_version} >= 1220
|
|
BuildRequires: xsltproc
|
|
%else
|
|
BuildRequires: libxslt
|
|
%endif
|
|
Requires: erlang-epmd
|
|
|
|
%if 0%{?suse_version} >= 1320
|
|
BuildRequires: wxWidgets-devel >= 3
|
|
%else
|
|
%if 0%{?suse_version} >= 1315
|
|
BuildRequires: wxWidgets-devel >= 2.8
|
|
%define wx_requires_generator 1
|
|
%else
|
|
BuildRequires: wxWidgets >= 2.8
|
|
BuildRequires: wxWidgets-wxcontainer-devel >= 2.8
|
|
%define wx_requires_generator 1
|
|
%endif
|
|
%endif
|
|
|
|
%if 0%{?wx_requires_generator}
|
|
%define _use_internal_dependency_generator 0
|
|
%define __find_requires %wx_requires
|
|
%endif
|
|
|
|
%if 0%{?suse_version} >=1230
|
|
BuildRequires: systemd-devel
|
|
BuildRequires: pkgconfig(systemd)
|
|
%define have_systemd 1
|
|
%endif
|
|
|
|
%define epmd_home %{_var}/lib/epmd
|
|
|
|
%description
|
|
Erlang is a general-purpose programming language and runtime
|
|
environment. Erlang has built-in support for concurrency, distribution
|
|
and fault tolerance. Erlang is used in several large telecommunication
|
|
systems from Ericsson.
|
|
|
|
%package debugger
|
|
Summary: A debugger for debugging and testing of Erlang programs
|
|
Group: Development/Languages/Other
|
|
Requires: %{name} = %{version}
|
|
Requires: %{name}-wx = %{version}
|
|
|
|
%description debugger
|
|
A debugger for debugging and testing of Erlang programs.
|
|
|
|
%package dialyzer
|
|
Summary: A DIscrepany AnaLYZer for ERlang programs
|
|
Group: Development/Languages/Other
|
|
Requires: %{name} = %{version}
|
|
Requires: %{name}-wx = %{version}
|
|
Requires: graphviz
|
|
|
|
%description dialyzer
|
|
A DIscrepany AnaLYZer for ERlang programs.
|
|
|
|
%package diameter
|
|
Summary: Main API of the Diameter application
|
|
Group: Development/Languages/Other
|
|
Requires: %{name} = %{version}
|
|
|
|
%description diameter
|
|
This module provides the interface with which a user can implement a Diameter
|
|
node that sends and receives messages using the Diameter protocol as defined in
|
|
RFC 6733.
|
|
|
|
%package doc
|
|
Summary: Erlang documentation
|
|
Group: Development/Languages/Other
|
|
%if 0%{?suse_version}
|
|
Recommends: %{name} = %{version}
|
|
%endif
|
|
|
|
%description doc
|
|
Documentation for Erlang.
|
|
|
|
%package epmd
|
|
Summary: Erlang Port Mapper daemon
|
|
Group: Development/Languages/Other
|
|
Requires: %{name} = %{version}
|
|
Requires(postun): %insserv_prereq
|
|
Requires(post): %fillup_prereq
|
|
%if 0%{?have_systemd}
|
|
%{?systemd_requires}
|
|
%endif
|
|
|
|
%description epmd
|
|
The Erlang Port Mapper daemon acts as a name server on all hosts involved in distributed Erlang computations.
|
|
|
|
%package et
|
|
Summary: An event tracer for Erlang programs
|
|
Group: Development/Languages/Other
|
|
Requires: %{name} = %{version}
|
|
Requires: %{name}-wx = %{version}
|
|
|
|
%description et
|
|
An event tracer for Erlang programs.
|
|
|
|
%package jinterface
|
|
Summary: Erlang Java Interface
|
|
Group: Development/Libraries/Java
|
|
Requires: %{name} = %{version}
|
|
Requires: java >= 1.6.0
|
|
|
|
%description jinterface
|
|
JInterface module for accessing erlang from Java
|
|
|
|
%package reltool
|
|
Summary: A release management tool
|
|
Group: Development/Languages/Other
|
|
Requires: %{name} = %{version}
|
|
Requires: %{name}-wx = %{version}
|
|
|
|
%description reltool
|
|
Reltool is a release management tool. It analyses a given
|
|
Erlang/OTP installation and determines various dependencies
|
|
between applications. The graphical frontend depicts the
|
|
dependencies and enables interactive customization of a
|
|
target system. The backend provides a batch interface
|
|
for generation of customized target systems.
|
|
|
|
%package observer
|
|
Summary: A GUI tool for observing an erlang system
|
|
Group: Development/Languages/Other
|
|
Requires: %{name} = %{version}
|
|
Requires: %{name}-wx = %{version}
|
|
|
|
%description observer
|
|
The observer is gui frontend containing various tools to inspect a system.
|
|
It displays system information, application structures, process information,
|
|
ets or mnesia tables and a frontend for tracing with ttb.
|
|
|
|
%package src
|
|
Summary: Erlang/OTP applications sources
|
|
Group: Development/Languages/Other
|
|
Requires: %{name} = %{version}
|
|
|
|
%description src
|
|
Erlang sources for all the applications in the Erlang/OTP system.
|
|
They are useful for educational purpose and as a base for creating
|
|
embedded systems.
|
|
|
|
%package debugger-src
|
|
Summary: Erlang/OTP debugger application sources
|
|
Group: Development/Languages/Other
|
|
Requires: %{name}-debugger = %{version}
|
|
|
|
%description debugger-src
|
|
Erlang sources for the debugger application in the Erlang/OTP system.
|
|
They are useful for educational purpose and as a base for creating
|
|
embedded systems.
|
|
|
|
%package dialyzer-src
|
|
Summary: Erlang/OTP dialyzer application sources
|
|
Group: Development/Languages/Other
|
|
Requires: %{name}-dialyzer = %{version}
|
|
|
|
%description dialyzer-src
|
|
Erlang sources for the dialyzer application in the Erlang/OTP system.
|
|
They are useful for educational purpose and as a base for creating
|
|
embedded systems.
|
|
|
|
%package diameter-src
|
|
Summary: Erlang/OTP Diameter application sources
|
|
Group: Development/Languages/Other
|
|
Requires: %{name}-diameter = %{version}
|
|
|
|
%description diameter-src
|
|
Erlang sources for the Diameter application in the Erlang/OTP system.
|
|
They are useful for educational purpose and as a base for creating
|
|
embedded systems.
|
|
|
|
%package et-src
|
|
Summary: Erlang/OTP et application sources
|
|
Group: Development/Languages/Other
|
|
Requires: %{name}-et = %{version}
|
|
|
|
%description et-src
|
|
Erlang sources for the et application in the Erlang/OTP system.
|
|
They are useful for educational purpose and as a base for creating
|
|
embedded systems.
|
|
|
|
%package jinterface-src
|
|
Summary: Erlang/OTP jinterface application sources
|
|
Group: Development/Languages/Other
|
|
Requires: %{name}-jinterface = %{version}
|
|
|
|
%description jinterface-src
|
|
Erlang sources for the jinterface application in the Erlang/OTP system.
|
|
They are useful for educational purpose and as a base for creating
|
|
embedded systems.
|
|
|
|
%package reltool-src
|
|
Summary: Erlang/OTP reltool application sources
|
|
Group: Development/Languages/Other
|
|
Requires: %{name}-reltool = %{version}
|
|
|
|
%description reltool-src
|
|
Erlang sources for the reltool application in the Erlang/OTP system.
|
|
They are useful for educational purpose and as a base for creating
|
|
embedded systems.
|
|
|
|
%package observer-src
|
|
Summary: Erlang/OTP observer application sources
|
|
Group: Development/Languages/Other
|
|
Requires: %{name}-observer = %{version}
|
|
|
|
%description observer-src
|
|
Erlang sources for the observer application in the Erlang/OTP system.
|
|
They are useful for educational purpose and as a base for creating embedded systems.
|
|
|
|
%package wx-src
|
|
Summary: Erlang/OTP wx application sources
|
|
Group: Development/Languages/Other
|
|
Requires: %{name}-wx = %{version}
|
|
|
|
%description wx-src
|
|
Erlang sources for the wx application in the Erlang/OTP system.
|
|
They are useful for educational purpose and as a base for creating
|
|
embedded systems.
|
|
|
|
%package wx
|
|
Summary: A library for wxWidgets support in Erlang
|
|
Group: Development/Languages/Other
|
|
Requires: %{name} = %{version}
|
|
Requires: wxWidgets >= 2.8
|
|
|
|
%description wx
|
|
A Graphics System used to write platform independent user interfaces.
|
|
|
|
%prep
|
|
%setup -q -n otp-OTP-%{version}
|
|
%patch0 -p1 -b .rpath
|
|
%patch4 -p1
|
|
cp %{S:9} .
|
|
|
|
./otp_build autoconf
|
|
# enable dynamic linking for ssl
|
|
sed -i 's|SSL_DYNAMIC_ONLY=no|SSL_DYNAMIC_ONLY=yes|' erts/configure
|
|
# Remove shipped zlib sources
|
|
#rm -f erts/emulator/zlib/*.[ch]
|
|
|
|
# fix for arch linux bug #17001 (wx not working)
|
|
sed -i 's|WX_LIBS=`$WX_CONFIG_WITH_ARGS --libs`|WX_LIBS="`$WX_CONFIG_WITH_ARGS --libs` -lGLU"|' lib/wx/configure || return 1
|
|
|
|
%build
|
|
%global _lto_cflags %{_lto_cflags} -ffat-lto-objects
|
|
# we need build only 1.6 target for java
|
|
# for SLE only
|
|
%if 0%{?sles_version} >= 10 || 0%{?suse_version} >= 1110
|
|
export JAVAC="javac -source 1.6 -target 1.6"
|
|
%endif
|
|
%if 0%{?suse_version} == 1100 || 0%{?fedora_version} == 9
|
|
export CFLAGS="-fno-strict-aliasing"
|
|
%else
|
|
export CFLAGS="%{optflags} -fno-strict-aliasing"
|
|
%endif
|
|
export CXXFLAGS=$CFLAGS
|
|
|
|
%configure \
|
|
%if 0%{?have_systemd}
|
|
--enable-systemd \
|
|
%endif
|
|
--with-ssl=%{_prefix} \
|
|
--enable-threads \
|
|
--enable-smp-support \
|
|
--enable-kernel-poll \
|
|
%ifnarch s390 s390x
|
|
--enable-hipe \
|
|
%endif
|
|
--enable-shared-zlib
|
|
# clean stalled files before rebuild them
|
|
%make_build clean
|
|
%make_build
|
|
# to build the docs, just compiled erlang is required
|
|
PATH=$PWD/bin:$PATH %make_build docs
|
|
|
|
%install
|
|
%if 0%{?sles_version} >= 10
|
|
make DESTDIR=%{buildroot} install
|
|
make DESTDIR=%{buildroot} install-docs
|
|
%else
|
|
%make_install install-docs
|
|
%endif
|
|
|
|
export TOOLS_VERSION=`ls %{buildroot}%{_libdir}/erlang/lib/ |grep ^tools- | sed "s|tools-||"`
|
|
|
|
# clean up
|
|
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
|
|
|
|
# doc
|
|
mv README.md README
|
|
mkdir -p erlang_doc
|
|
find %{buildroot}%{_libdir}/erlang -maxdepth 3 -type d -name doc -or -name info | 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 {} +
|
|
|
|
#make link to OtpErlang-*.jar in %%{_javadir}
|
|
mkdir -p %{buildroot}%{_javadir}
|
|
cd %{buildroot}%{_javadir}
|
|
export JINTERFACE_VERSION=`ls %{buildroot}%{_libdir}/erlang/lib/ |grep ^jinterface- | sed "s|jinterface-||"`
|
|
ln -sf ../../%{_lib}/erlang/lib/jinterface-$JINTERFACE_VERSION/priv/OtpErlang.jar OtpErlang-$JINTERFACE_VERSION.jar
|
|
cd -
|
|
|
|
# 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
|
|
|
|
# emacs: automatically load support for erlang
|
|
# http://lists.mandriva.com//bugs/2007-08/msg00930.php
|
|
mkdir -p %{buildroot}%{_datadir}/emacs/site-lisp
|
|
cat > %{buildroot}%{_datadir}/emacs/site-lisp/erlang.el << EOF
|
|
(setq load-path (cons "%{_libdir}/erlang/lib/tools-$TOOLS_VERSION/emacs" load-path))
|
|
(add-to-list 'load-path "%{_datadir}/emacs/site-lisp/ess")
|
|
(load-library "erlang-start")
|
|
EOF
|
|
|
|
# hardlink duplicates:
|
|
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
|
|
|
|
install -d -m 0750 %{buildroot}%{epmd_home}
|
|
install -d -m 0755 %{buildroot}%{_sbindir}
|
|
%if 0%{?have_systemd}
|
|
install -D -m 0644 %{S:7} %{buildroot}%{_unitdir}/epmd.service
|
|
install -D -m 0644 %{S:8} %{buildroot}%{_unitdir}/epmd.socket
|
|
ln -s /sbin/service %{buildroot}%{_sbindir}/rcepmd
|
|
%else
|
|
ln -s /etc/init.d/epmd %{buildroot}%{_sbindir}/rcepmd
|
|
install -D -m 0755 %{S:4} %{buildroot}/etc/init.d/epmd
|
|
install -D -m 0644 %{S:5} %{buildroot}%{_fillupdir}/sysconfig.erlang
|
|
%endif
|
|
install -D -m 0644 %{S:6} %{buildroot}%{_sysconfdir}/rpm/macros.erlang
|
|
|
|
%pre epmd
|
|
getent group epmd || /usr/sbin/groupadd -r epmd || :
|
|
getent passwd epmd || /usr/sbin/useradd -g epmd -s /bin/false -r -c "Erlang Port Mapper Daemon" -d %{epmd_home} epmd || :
|
|
%if 0%{?have_systemd}
|
|
%service_add_pre epmd.service epmd.socket
|
|
%endif
|
|
|
|
%post epmd
|
|
%fillup_only erlang
|
|
%if 0%{?have_systemd}
|
|
%service_add_post epmd.service epmd.socket
|
|
%endif
|
|
|
|
%preun epmd
|
|
%if 0%{?have_systemd}
|
|
%service_del_preun epmd.service epmd.socket
|
|
%endif
|
|
%stop_on_removal epmd
|
|
|
|
%postun epmd
|
|
%if 0%{?have_systemd}
|
|
%service_del_postun epmd.service epmd.socket
|
|
%endif
|
|
%restart_on_update epmd
|
|
%{insserv_cleanup}
|
|
|
|
%files
|
|
%license LICENSE.txt
|
|
%doc AUTHORS README
|
|
%if 0%{?have_systemd}
|
|
%doc README.SUSE
|
|
%endif
|
|
%doc %{_libdir}/erlang/PR.template
|
|
%doc %{_libdir}/erlang/README.md
|
|
%doc %{_libdir}/erlang/COPYRIGHT
|
|
%{_bindir}/*
|
|
%exclude %{_bindir}/dialyzer
|
|
%exclude %{_bindir}/epmd
|
|
%dir %{_libdir}/erlang
|
|
%dir %{_libdir}/erlang/lib/
|
|
%exclude %{_libdir}/erlang/lib/*/src
|
|
%exclude %{_libdir}/erlang/lib/*/c_src
|
|
%exclude %{_libdir}/erlang/lib/*/java_src
|
|
%{_libdir}/erlang/bin/
|
|
%exclude %{_libdir}/erlang/bin/dialyzer
|
|
%exclude %{_libdir}/erlang/bin/epmd
|
|
%{_libdir}/erlang/erts-*/
|
|
%exclude %{_libdir}/erlang/erts-*/bin/dialyzer
|
|
%exclude %{_libdir}/erlang/erts-*/bin/epmd
|
|
%{_libdir}/erlang/lib/asn1-*/
|
|
%{_libdir}/erlang/lib/common_test-*/
|
|
%{_libdir}/erlang/lib/compiler-*/
|
|
%{_libdir}/erlang/lib/crypto-*/
|
|
%{_libdir}/erlang/lib/edoc-*/
|
|
%{_libdir}/erlang/lib/eldap-*/
|
|
%{_libdir}/erlang/lib/erl_docgen-*/
|
|
%{_libdir}/erlang/lib/erl_interface-*/
|
|
%{_libdir}/erlang/lib/erts-*/
|
|
%{_libdir}/erlang/lib/eunit-*/
|
|
%{_libdir}/erlang/lib/hipe-*/
|
|
%{_libdir}/erlang/lib/ftp-*/
|
|
%{_libdir}/erlang/lib/inets-*/
|
|
%{_libdir}/erlang/lib/kernel-*/
|
|
%{_libdir}/erlang/lib/megaco-*/
|
|
%{_libdir}/erlang/lib/mnesia-*/
|
|
%{_libdir}/erlang/lib/odbc-*/
|
|
%{_libdir}/erlang/lib/tftp-*/
|
|
%{_libdir}/erlang/lib/os_mon-*/
|
|
%{_libdir}/erlang/lib/parsetools-*/
|
|
%{_libdir}/erlang/lib/public_key-*/
|
|
%{_libdir}/erlang/lib/runtime_tools-*/
|
|
%{_libdir}/erlang/lib/sasl-*/
|
|
%{_libdir}/erlang/lib/snmp-*/
|
|
%{_libdir}/erlang/lib/ssh-*/
|
|
%{_libdir}/erlang/lib/ssl-*/
|
|
%{_libdir}/erlang/lib/stdlib-*/
|
|
%{_libdir}/erlang/lib/syntax_tools-*/
|
|
%{_libdir}/erlang/lib/tools-*/
|
|
%{_libdir}/erlang/lib/xmerl-*/
|
|
%{_libdir}/erlang/man/
|
|
%{_mandir}/man1/*.1.gz
|
|
%{_libdir}/erlang/releases/
|
|
%{_libdir}/erlang/usr/
|
|
%{_libdir}/erlang/Install
|
|
%{_datadir}/emacs/site-lisp/erlang.el
|
|
%config %{_sysconfdir}/rpm/macros.erlang
|
|
|
|
%files debugger
|
|
%defattr(-,root,root)
|
|
%{_libdir}/erlang/lib/debugger-*/
|
|
%exclude %{_libdir}/erlang/lib/debugger-*/src
|
|
|
|
%files dialyzer
|
|
%defattr(-,root,root)
|
|
%{_libdir}/erlang/lib/dialyzer-*/
|
|
%exclude %{_libdir}/erlang/lib/dialyzer-*/src
|
|
%{_bindir}/dialyzer
|
|
%{_libdir}/erlang/bin/dialyzer
|
|
%{_libdir}/erlang/erts-*/bin/dialyzer
|
|
|
|
%files diameter
|
|
%defattr(-,root,root)
|
|
%{_libdir}/erlang/lib/diameter-*/
|
|
%exclude %{_libdir}/erlang/lib/diameter-*/src
|
|
|
|
%files doc
|
|
%defattr(0644,root,root,0755)
|
|
%doc erlang_doc/*
|
|
|
|
%files et
|
|
%defattr(-,root,root)
|
|
%{_libdir}/erlang/lib/et-*/
|
|
%exclude %{_libdir}/erlang/lib/et-*/src
|
|
|
|
%files epmd
|
|
%defattr(-,root,root)
|
|
%{_bindir}/epmd
|
|
%{_libdir}/erlang/bin/epmd
|
|
%{_libdir}/erlang/erts-*/bin/epmd
|
|
%dir %attr(-,epmd,epmd) %{epmd_home}
|
|
%if 0%{?have_systemd}
|
|
%{_unitdir}/epmd.service
|
|
%{_unitdir}/epmd.socket
|
|
%else
|
|
/etc/init.d/epmd
|
|
%{_fillupdir}/sysconfig.erlang
|
|
%endif
|
|
%{_sbindir}/rcepmd
|
|
|
|
%files jinterface
|
|
%defattr(-,root,root,-)
|
|
%{_libdir}/erlang/lib/jinterface-*/
|
|
%exclude %{_libdir}/erlang/lib/jinterface-*/java_src
|
|
%{_javadir}/*
|
|
|
|
%files reltool
|
|
%defattr(-,root,root)
|
|
%{_libdir}/erlang/lib/reltool-*/
|
|
%exclude %{_libdir}/erlang/lib/reltool-*/src
|
|
|
|
%files observer
|
|
%defattr(-,root,root)
|
|
%{_libdir}/erlang/lib/observer-*/
|
|
%exclude %{_libdir}/erlang/lib/observer-*/src
|
|
|
|
%files wx
|
|
%defattr(-,root,root)
|
|
%{_libdir}/erlang/lib/wx-*/
|
|
%exclude %{_libdir}/erlang/lib/wx-*/src
|
|
|
|
%files src
|
|
%defattr(-,root,root)
|
|
%exclude %{_libdir}/erlang/lib/erl_interface-*/src/INSTALL
|
|
%{_libdir}/erlang/lib/*/src
|
|
%{_libdir}/erlang/lib/*/c_src
|
|
%{_libdir}/erlang/lib/*/java_src
|
|
%exclude %{_libdir}/erlang/lib/debugger-*/src
|
|
%exclude %{_libdir}/erlang/lib/dialyzer-*/src
|
|
%exclude %{_libdir}/erlang/lib/diameter-*/src
|
|
%exclude %{_libdir}/erlang/lib/et-*/src
|
|
%exclude %{_libdir}/erlang/lib/jinterface-*/java_src
|
|
%exclude %{_libdir}/erlang/lib/reltool-*/src
|
|
%exclude %{_libdir}/erlang/lib/observer-*/src
|
|
%exclude %{_libdir}/erlang/lib/wx-*/src
|
|
|
|
%files debugger-src
|
|
%defattr(-,root,root)
|
|
%{_libdir}/erlang/lib/debugger-*/src
|
|
|
|
%files dialyzer-src
|
|
%defattr(-,root,root)
|
|
%{_libdir}/erlang/lib/dialyzer-*/src
|
|
|
|
%files diameter-src
|
|
%defattr(-,root,root)
|
|
%{_libdir}/erlang/lib/diameter-*/src
|
|
|
|
%files et-src
|
|
%defattr(-,root,root)
|
|
%{_libdir}/erlang/lib/et-*/src
|
|
|
|
%files jinterface-src
|
|
%defattr(-,root,root)
|
|
%{_libdir}/erlang/lib/jinterface-*/java_src
|
|
|
|
%files reltool-src
|
|
%defattr(-,root,root)
|
|
%{_libdir}/erlang/lib/reltool-*/src
|
|
|
|
%files observer-src
|
|
%defattr(-,root,root)
|
|
%{_libdir}/erlang/lib/observer-*/src
|
|
|
|
%files wx-src
|
|
%defattr(-,root,root)
|
|
%{_libdir}/erlang/lib/wx-*/src
|
|
|
|
%changelog
|