Sync from SUSE:SLFO:Main erlang revision b7b566cec66f84e9c3ee40419d96f030
This commit is contained in:
commit
32bec414bb
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
## Default LFS
|
||||||
|
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zst filter=lfs diff=lfs merge=lfs -text
|
BIN
OTP-27.1.3.tar.gz
(Stored with Git LFS)
Normal file
BIN
OTP-27.1.3.tar.gz
(Stored with Git LFS)
Normal file
Binary file not shown.
26
README.SUSE
Normal file
26
README.SUSE
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# Erlang in openSUSE
|
||||||
|
## Erlang Port-mapper Daemon and systemd
|
||||||
|
|
||||||
|
Erlang Port-mapper Daemon in openSUSE uses systemd socket-activation. In order to fulfill security considerations, EPMd listens on loop-back interface by default. This is enough to run rabbitmq-server, ejabberd and user-started beam processes.
|
||||||
|
|
||||||
|
For clustering, please, use ```/etc/systemd/system/epmd.socket.d/``` to configure interfaces to listen on. See man systemd.unit(5) for details.
|
||||||
|
|
||||||
|
### Upgrading from sysvinit
|
||||||
|
```/etc/sysconfig/erlang``` has no effect now, to configure EPMd use systemd capabilities instead.
|
||||||
|
|
||||||
|
### Example 1: change port
|
||||||
|
Create ```/etc/systemd/system/epmd.socket.d/port.conf``` with following content:
|
||||||
|
```
|
||||||
|
[Socket]
|
||||||
|
ListenStream=
|
||||||
|
ListenStream=127.0.0.1:4444
|
||||||
|
```
|
||||||
|
The first line is to discard vendor configuration. The second line will change the port number to listen on to 4444.
|
||||||
|
|
||||||
|
### Example 2: enable external interface
|
||||||
|
To enable accepting external connections to EPMd, create ```/etc/systemd/system/epmd.socket.d/port.conf``` with following content:
|
||||||
|
```
|
||||||
|
[Socket]
|
||||||
|
ListenStream=
|
||||||
|
ListenStream=0.0.0.0:4369
|
||||||
|
```
|
7
_constraints
Normal file
7
_constraints
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<constraints>
|
||||||
|
<hardware>
|
||||||
|
<memory>
|
||||||
|
<size unit="M">6000</size>
|
||||||
|
</memory>
|
||||||
|
</hardware>
|
||||||
|
</constraints>
|
1
epmd-user.conf
Normal file
1
epmd-user.conf
Normal file
@ -0,0 +1 @@
|
|||||||
|
u epmd - "Erlang Port Mapper Daemon" /var/lib/epmd /bin/false
|
34
epmd.service
Normal file
34
epmd.service
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Erlang Port Mapper Daemon
|
||||||
|
After=network.target
|
||||||
|
Requires=epmd.socket
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
# added automatically, for details please see
|
||||||
|
# https://en.opensuse.org/openSUSE:Security_Features#Systemd_hardening_effort
|
||||||
|
ProtectSystem=full
|
||||||
|
ProtectHome=true
|
||||||
|
PrivateDevices=true
|
||||||
|
ProtectHostname=true
|
||||||
|
ProtectClock=true
|
||||||
|
ProtectKernelTunables=true
|
||||||
|
ProtectKernelModules=true
|
||||||
|
ProtectKernelLogs=true
|
||||||
|
ProtectControlGroups=true
|
||||||
|
RestrictRealtime=true
|
||||||
|
# end of automatic additions
|
||||||
|
ExecStart=/usr/bin/epmd -systemd
|
||||||
|
#ExecStop=/usr/bin/epmd -kill
|
||||||
|
Type=simple
|
||||||
|
StandardOutput=journal
|
||||||
|
StandardError=journal
|
||||||
|
Restart=always
|
||||||
|
LimitNPROC=1
|
||||||
|
LimitFSIZE=0
|
||||||
|
User=epmd
|
||||||
|
Group=epmd
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
Also=epmd.socket
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
|
10
epmd.socket
Normal file
10
epmd.socket
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Erlang Port Mapper Daemon Activation Socket
|
||||||
|
|
||||||
|
[Socket]
|
||||||
|
ListenStream=127.0.0.1:4369
|
||||||
|
Accept=false
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=sockets.target
|
||||||
|
|
39
erlang-not-install-misc.patch
Normal file
39
erlang-not-install-misc.patch
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
From: Peter Lemenkov <lemenkov@gmail.com>
|
||||||
|
Date: Thu, 25 Feb 2010 16:45:28 +0300
|
||||||
|
Subject: [PATCH] Do not format man-pages and do not install miscellaneous
|
||||||
|
utilities for dealing with man-pages.
|
||||||
|
|
||||||
|
Index: otp-OTP-23.0/erts/etc/common/Makefile.in
|
||||||
|
===================================================================
|
||||||
|
--- otp-OTP-23.0.orig/erts/etc/common/Makefile.in
|
||||||
|
+++ otp-OTP-23.0/erts/etc/common/Makefile.in
|
||||||
|
@@ -521,10 +521,6 @@ endif
|
||||||
|
ifneq ($(INSTALL_TOP_BIN),)
|
||||||
|
$(INSTALL_PROGRAM) $(INSTALL_TOP_BIN) "$(RELEASE_PATH)"
|
||||||
|
endif
|
||||||
|
-ifneq ($(INSTALL_MISC),)
|
||||||
|
- $(INSTALL_DIR) "$(RELEASE_PATH)/misc"
|
||||||
|
- $(INSTALL_SCRIPT) $(INSTALL_MISC) "$(RELEASE_PATH)/misc"
|
||||||
|
-endif
|
||||||
|
ifneq ($(INSTALL_SRC),)
|
||||||
|
$(INSTALL_DIR) "$(RELEASE_PATH)/erts-$(VSN)/src"
|
||||||
|
$(INSTALL_DATA) $(INSTALL_SRC) "$(RELEASE_PATH)/erts-$(VSN)/src"
|
||||||
|
Index: otp-OTP-23.0/erts/etc/unix/Install.src
|
||||||
|
===================================================================
|
||||||
|
--- otp-OTP-23.0.orig/erts/etc/unix/Install.src
|
||||||
|
+++ otp-OTP-23.0/erts/etc/unix/Install.src
|
||||||
|
@@ -142,14 +142,5 @@ cp -p ../releases/%I_SYSTEM_VSN%/start_*
|
||||||
|
cp -p ../releases/%I_SYSTEM_VSN%/no_dot_erlang.boot .
|
||||||
|
cp -p $Name.boot start.boot
|
||||||
|
cp -p ../releases/%I_SYSTEM_VSN%/$Name.script start.script
|
||||||
|
-#
|
||||||
|
-# Fixing the man pages
|
||||||
|
-#
|
||||||
|
-
|
||||||
|
-if [ -d "$ERL_ROOT/man" ]
|
||||||
|
-then
|
||||||
|
- cd "$ERL_ROOT"
|
||||||
|
- ./misc/format_man_pages "$ERL_ROOT"
|
||||||
|
-fi
|
||||||
|
|
||||||
|
exit 0
|
8
erlang-rpmlintrc
Normal file
8
erlang-rpmlintrc
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
import rpm
|
||||||
|
|
||||||
|
addFilter("erlang.* devel-file-in-non-devel-package")
|
||||||
|
|
||||||
|
suse_version = int(rpm.expandMacro("%suse_version"))
|
||||||
|
|
||||||
|
if suse_version > 1550:
|
||||||
|
addCheck("ErlangCheck")
|
7772
erlang.changes
Normal file
7772
erlang.changes
Normal file
File diff suppressed because it is too large
Load Diff
565
erlang.spec
Normal file
565
erlang.spec
Normal file
@ -0,0 +1,565 @@
|
|||||||
|
#
|
||||||
|
# spec file for package erlang
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# 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/
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
%{!?make_build:%{expand: %%global make_build %{make} %%{?_smp_mflags}}}
|
||||||
|
%define epmd_home %{_var}/lib/epmd
|
||||||
|
#Compat macro for new _fillupdir macro introduced in Nov 2017
|
||||||
|
%if ! %{defined _fillupdir}
|
||||||
|
%define _fillupdir %{_localstatedir}/adm/fillup-templates
|
||||||
|
%endif
|
||||||
|
Name: erlang
|
||||||
|
Version: 27.1.3
|
||||||
|
Release: 0
|
||||||
|
Summary: General-purpose programming language and runtime environment
|
||||||
|
License: Apache-2.0
|
||||||
|
URL: https://www.erlang.org
|
||||||
|
Source0: https://github.com/erlang/otp/archive/OTP-%{version}.tar.gz
|
||||||
|
# The link comes from ./make/ex_doc_link file
|
||||||
|
Source1: https://github.com/elixir-lang/ex_doc/releases/download/v0.34.1/ex_doc_otp_26
|
||||||
|
Source3: %{name}-rpmlintrc
|
||||||
|
Source5: erlang.sysconfig
|
||||||
|
Source6: macros.erlang
|
||||||
|
Source7: epmd.service
|
||||||
|
Source8: epmd.socket
|
||||||
|
Source9: README.SUSE
|
||||||
|
Source10: epmd-user.conf
|
||||||
|
# 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: Mesa-devel
|
||||||
|
BuildRequires: autoconf
|
||||||
|
BuildRequires: dejavu-fonts
|
||||||
|
BuildRequires: fdupes
|
||||||
|
BuildRequires: fop
|
||||||
|
BuildRequires: gcc-c++
|
||||||
|
BuildRequires: java-devel
|
||||||
|
BuildRequires: openssh
|
||||||
|
BuildRequires: openssl-devel
|
||||||
|
BuildRequires: pkgconfig
|
||||||
|
BuildRequires: sysuser-tools
|
||||||
|
BuildRequires: update-alternatives
|
||||||
|
BuildRequires: wxWidgets-devel >= 3.1
|
||||||
|
BuildRequires: xsltproc
|
||||||
|
BuildRequires: pkgconfig(krb5)
|
||||||
|
BuildRequires: pkgconfig(libsystemd)
|
||||||
|
BuildRequires: pkgconfig(ncurses)
|
||||||
|
BuildRequires: pkgconfig(odbc)
|
||||||
|
BuildRequires: pkgconfig(tcl)
|
||||||
|
BuildRequires: pkgconfig(tk)
|
||||||
|
# not set up to be built with position independend executable support
|
||||||
|
#!BuildIgnore: gcc-PIE
|
||||||
|
Requires: erlang-epmd
|
||||||
|
%if 0%{?rhel} >= 7
|
||||||
|
%undefine _missing_build_ids_terminate_build
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%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
|
||||||
|
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
|
||||||
|
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
|
||||||
|
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
|
||||||
|
Requires: %{name} = %{version}
|
||||||
|
|
||||||
|
%description doc
|
||||||
|
Documentation for Erlang.
|
||||||
|
|
||||||
|
%package epmd
|
||||||
|
Summary: Erlang Port Mapper daemon
|
||||||
|
Requires: %{name} = %{version}
|
||||||
|
Requires(post): %fillup_prereq
|
||||||
|
%{sysusers_requires}
|
||||||
|
|
||||||
|
%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
|
||||||
|
Requires: %{name} = %{version}
|
||||||
|
Requires: %{name}-wx = %{version}
|
||||||
|
|
||||||
|
%description et
|
||||||
|
An event tracer for Erlang programs.
|
||||||
|
|
||||||
|
%package jinterface
|
||||||
|
Summary: Erlang Java Interface
|
||||||
|
Requires: %{name} = %{version}
|
||||||
|
Requires: java >= 1.6.0
|
||||||
|
|
||||||
|
%description jinterface
|
||||||
|
JInterface module for accessing erlang from Java
|
||||||
|
|
||||||
|
%package reltool
|
||||||
|
Summary: A release management tool
|
||||||
|
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
|
||||||
|
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
|
||||||
|
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
|
||||||
|
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
|
||||||
|
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
|
||||||
|
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
|
||||||
|
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
|
||||||
|
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
|
||||||
|
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
|
||||||
|
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
|
||||||
|
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
|
||||||
|
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}
|
||||||
|
%patch -P 0 -p1 -b .rpath
|
||||||
|
%patch -P 4 -p1
|
||||||
|
cp %{SOURCE9} .
|
||||||
|
install -m 0755 %{SOURCE1} ./bin/ex_doc
|
||||||
|
|
||||||
|
# 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
|
||||||
|
export CFLAGS="%{optflags} -fno-strict-aliasing"
|
||||||
|
export CXXFLAGS=$CFLAGS
|
||||||
|
export LANG="en_US.UTF-8"
|
||||||
|
|
||||||
|
%configure \
|
||||||
|
--enable-systemd \
|
||||||
|
--with-ssl=%{_prefix} \
|
||||||
|
--enable-threads \
|
||||||
|
--enable-smp-support \
|
||||||
|
--enable-kernel-poll \
|
||||||
|
--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 ERL_TOP=$TMP_ERL_TOP %make_build docs
|
||||||
|
|
||||||
|
%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
|
||||||
|
|
||||||
|
%install
|
||||||
|
%make_install install-docs
|
||||||
|
|
||||||
|
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
|
||||||
|
find %{buildroot}%{_libdir}/erlang -name '.build' -print | xargs rm -rfv
|
||||||
|
|
||||||
|
# doc
|
||||||
|
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 {} +
|
||||||
|
|
||||||
|
#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}
|
||||||
|
install -D -m 0644 %{SOURCE7} %{buildroot}%{_unitdir}/epmd.service
|
||||||
|
install -D -m 0644 %{SOURCE8} %{buildroot}%{_unitdir}/epmd.socket
|
||||||
|
ln -s service %{buildroot}%{_sbindir}/rcepmd
|
||||||
|
install -D -m 0644 %{SOURCE6} %{buildroot}%{_rpmmacrodir}/macros.erlang
|
||||||
|
mkdir -p %{buildroot}%{_sysusersdir}
|
||||||
|
install -m 0644 %{SOURCE10} %{buildroot}%{_sysusersdir}
|
||||||
|
|
||||||
|
%pre epmd -f epmd.pre
|
||||||
|
%service_add_pre epmd.service epmd.socket
|
||||||
|
|
||||||
|
%post epmd
|
||||||
|
%fillup_only erlang
|
||||||
|
%service_add_post epmd.service epmd.socket
|
||||||
|
|
||||||
|
%preun epmd
|
||||||
|
%service_del_preun epmd.service epmd.socket
|
||||||
|
|
||||||
|
%postun epmd
|
||||||
|
%service_del_postun epmd.service epmd.socket
|
||||||
|
|
||||||
|
%files
|
||||||
|
%license LICENSE.txt
|
||||||
|
%doc AUTHORS README.md
|
||||||
|
%doc README.SUSE
|
||||||
|
%{_bindir}/*
|
||||||
|
%exclude %{_bindir}/dialyzer
|
||||||
|
%exclude %{_bindir}/epmd
|
||||||
|
%dir %{_libdir}/erlang
|
||||||
|
%dir %{_libdir}/erlang/lib/
|
||||||
|
%exclude %{_libdir}/erlang/lib/*/doc/chunks
|
||||||
|
%exclude %{_libdir}/erlang/lib/*/src
|
||||||
|
%exclude %{_libdir}/erlang/lib/*/c_src
|
||||||
|
%exclude %{_libdir}/erlang/lib/*/java_src
|
||||||
|
%dir %{_libdir}/erlang/bin/
|
||||||
|
%{_libdir}/erlang/bin/*
|
||||||
|
%exclude %{_libdir}/erlang/bin/dialyzer
|
||||||
|
%exclude %{_libdir}/erlang/bin/epmd
|
||||||
|
%dir %{_libdir}/erlang/erts-*/
|
||||||
|
%dir %{_libdir}/erlang/erts-*/bin/
|
||||||
|
%{_libdir}/erlang/erts-*/*
|
||||||
|
%exclude %{_libdir}/erlang/erts-*/bin/dialyzer
|
||||||
|
%exclude %{_libdir}/erlang/erts-*/bin/epmd
|
||||||
|
%dir %{_libdir}/erlang/lib/asn1-*/
|
||||||
|
%{_libdir}/erlang/lib/asn1-*/*
|
||||||
|
%dir %{_libdir}/erlang/lib/common_test-*/
|
||||||
|
%{_libdir}/erlang/lib/common_test-*/*
|
||||||
|
%dir %{_libdir}/erlang/lib/compiler-*/
|
||||||
|
%{_libdir}/erlang/lib/compiler-*/*
|
||||||
|
%dir %{_libdir}/erlang/lib/crypto-*/
|
||||||
|
%{_libdir}/erlang/lib/crypto-*/*
|
||||||
|
%dir %{_libdir}/erlang/lib/edoc-*/
|
||||||
|
%{_libdir}/erlang/lib/edoc-*/*
|
||||||
|
%dir %{_libdir}/erlang/lib/eldap-*/
|
||||||
|
%{_libdir}/erlang/lib/eldap-*/*
|
||||||
|
%dir %{_libdir}/erlang/lib/erl_interface-*/
|
||||||
|
%{_libdir}/erlang/lib/erl_interface-*/*
|
||||||
|
%dir %{_libdir}/erlang/lib/erts-*/
|
||||||
|
%{_libdir}/erlang/lib/erts-*/*
|
||||||
|
%dir %{_libdir}/erlang/lib/eunit-*/
|
||||||
|
%{_libdir}/erlang/lib/eunit-*/*
|
||||||
|
%dir %{_libdir}/erlang/lib/ftp-*/
|
||||||
|
%{_libdir}/erlang/lib/ftp-*/*
|
||||||
|
%dir %{_libdir}/erlang/lib/inets-*/
|
||||||
|
%{_libdir}/erlang/lib/inets-*/*
|
||||||
|
%dir %{_libdir}/erlang/lib/kernel-*/
|
||||||
|
%{_libdir}/erlang/lib/kernel-*/*
|
||||||
|
%dir %{_libdir}/erlang/lib/megaco-*/
|
||||||
|
%{_libdir}/erlang/lib/megaco-*/*
|
||||||
|
%dir %{_libdir}/erlang/lib/mnesia-*/
|
||||||
|
%{_libdir}/erlang/lib/mnesia-*/*
|
||||||
|
%dir %{_libdir}/erlang/lib/odbc-*/
|
||||||
|
%{_libdir}/erlang/lib/odbc-*/*
|
||||||
|
%dir %{_libdir}/erlang/lib/tftp-*/
|
||||||
|
%{_libdir}/erlang/lib/tftp-*/*
|
||||||
|
%dir %{_libdir}/erlang/lib/os_mon-*/
|
||||||
|
%{_libdir}/erlang/lib/os_mon-*/*
|
||||||
|
%dir %{_libdir}/erlang/lib/parsetools-*/
|
||||||
|
%{_libdir}/erlang/lib/parsetools-*/*
|
||||||
|
%dir %{_libdir}/erlang/lib/public_key-*/
|
||||||
|
%{_libdir}/erlang/lib/public_key-*/*
|
||||||
|
%dir %{_libdir}/erlang/lib/runtime_tools-*/
|
||||||
|
%{_libdir}/erlang/lib/runtime_tools-*/*
|
||||||
|
%dir %{_libdir}/erlang/lib/sasl-*/
|
||||||
|
%{_libdir}/erlang/lib/sasl-*/*
|
||||||
|
%dir %{_libdir}/erlang/lib/snmp-*/
|
||||||
|
%{_libdir}/erlang/lib/snmp-*/*
|
||||||
|
%dir %{_libdir}/erlang/lib/ssh-*/
|
||||||
|
%{_libdir}/erlang/lib/ssh-*/*
|
||||||
|
%dir %{_libdir}/erlang/lib/ssl-*/
|
||||||
|
%{_libdir}/erlang/lib/ssl-*/*
|
||||||
|
%dir %{_libdir}/erlang/lib/stdlib-*/
|
||||||
|
%{_libdir}/erlang/lib/stdlib-*/*
|
||||||
|
%dir %{_libdir}/erlang/lib/syntax_tools-*/
|
||||||
|
%{_libdir}/erlang/lib/syntax_tools-*/*
|
||||||
|
%dir %{_libdir}/erlang/lib/tools-*/
|
||||||
|
%{_libdir}/erlang/lib/tools-*/*
|
||||||
|
%dir %{_libdir}/erlang/lib/xmerl-*/
|
||||||
|
%{_libdir}/erlang/lib/xmerl-*/*
|
||||||
|
%{_libdir}/erlang/man/
|
||||||
|
%{_mandir}/man1/*.1%{?ext_man}
|
||||||
|
%{_libdir}/erlang/releases/
|
||||||
|
%dir %{_libdir}/erlang/usr/
|
||||||
|
%dir %{_libdir}/erlang/usr/include
|
||||||
|
%{_libdir}/erlang/usr/include/*.h
|
||||||
|
%dir %{_libdir}/erlang/usr/lib
|
||||||
|
%{_libdir}/erlang/usr/lib/*.a
|
||||||
|
%{_libdir}/erlang/Install
|
||||||
|
%{_datadir}/emacs/site-lisp/erlang.el
|
||||||
|
%{_rpmmacrodir}/macros.erlang
|
||||||
|
|
||||||
|
%files debugger
|
||||||
|
%{_libdir}/erlang/lib/debugger-*/
|
||||||
|
%exclude %{_libdir}/erlang/lib/debugger-*/src
|
||||||
|
|
||||||
|
%files dialyzer
|
||||||
|
%{_bindir}/dialyzer
|
||||||
|
%{_libdir}/erlang/bin/dialyzer
|
||||||
|
%{_libdir}/erlang/erts-*/bin/dialyzer
|
||||||
|
%dir %{_libdir}/erlang/lib/dialyzer-*/
|
||||||
|
%{_libdir}/erlang/lib/dialyzer-*/*
|
||||||
|
%exclude %{_libdir}/erlang/lib/dialyzer-*/src
|
||||||
|
|
||||||
|
%files diameter
|
||||||
|
%dir %{_libdir}/erlang/lib/diameter-*/
|
||||||
|
%{_libdir}/erlang/lib/diameter-*/*
|
||||||
|
%exclude %{_libdir}/erlang/lib/diameter-*/src
|
||||||
|
|
||||||
|
%files doc
|
||||||
|
%defattr(0644,root,root,0755)
|
||||||
|
%doc erlang_doc/*
|
||||||
|
%{_libdir}/erlang/lib/*/doc/chunks
|
||||||
|
%exclude %{_libdir}/erlang/lib/debugger-*/doc/chunks
|
||||||
|
%exclude %{_libdir}/erlang/lib/dialyzer-*/doc/chunks
|
||||||
|
%exclude %{_libdir}/erlang/lib/diameter-*/doc/chunks
|
||||||
|
%exclude %{_libdir}/erlang/lib/et-*/doc/chunks
|
||||||
|
%exclude %{_libdir}/erlang/lib/reltool-*/doc/chunks
|
||||||
|
%exclude %{_libdir}/erlang/lib/observer-*/doc/chunks
|
||||||
|
%exclude %{_libdir}/erlang/lib/wx-*/doc/chunks
|
||||||
|
|
||||||
|
%files et
|
||||||
|
%dir %{_libdir}/erlang/lib/et-*/
|
||||||
|
%{_libdir}/erlang/lib/et-*/*
|
||||||
|
%exclude %{_libdir}/erlang/lib/et-*/src
|
||||||
|
|
||||||
|
%files epmd
|
||||||
|
%{_bindir}/epmd
|
||||||
|
%dir %{_libdir}/erlang/
|
||||||
|
%dir %{_libdir}/erlang/bin/
|
||||||
|
%{_libdir}/erlang/bin/epmd
|
||||||
|
%dir %{_libdir}/erlang/erts-*/
|
||||||
|
%dir %{_libdir}/erlang/erts-*/bin/
|
||||||
|
%{_libdir}/erlang/erts-*/bin/epmd
|
||||||
|
%dir %attr(-,epmd,epmd) %{epmd_home}
|
||||||
|
%{_unitdir}/epmd.service
|
||||||
|
%{_unitdir}/epmd.socket
|
||||||
|
%{_sbindir}/rcepmd
|
||||||
|
%{_sysusersdir}/epmd-user.conf
|
||||||
|
|
||||||
|
%files jinterface
|
||||||
|
%dir %{_libdir}/erlang/lib/jinterface-*/
|
||||||
|
%{_libdir}/erlang/lib/jinterface-*/*
|
||||||
|
%exclude %{_libdir}/erlang/lib/jinterface-*/java_src
|
||||||
|
%{_javadir}/*
|
||||||
|
|
||||||
|
%files reltool
|
||||||
|
%dir %{_libdir}/erlang/lib/reltool-*/
|
||||||
|
%{_libdir}/erlang/lib/reltool-*/*
|
||||||
|
%exclude %{_libdir}/erlang/lib/reltool-*/src
|
||||||
|
|
||||||
|
%files observer
|
||||||
|
%dir %{_libdir}/erlang/lib/observer-*/
|
||||||
|
%{_libdir}/erlang/lib/observer-*/*
|
||||||
|
%exclude %{_libdir}/erlang/lib/observer-*/src
|
||||||
|
|
||||||
|
%files wx
|
||||||
|
%dir %{_libdir}/erlang/lib/wx-*/
|
||||||
|
%{_libdir}/erlang/lib/wx-*/*
|
||||||
|
%exclude %{_libdir}/erlang/lib/wx-*/src
|
||||||
|
|
||||||
|
%files src
|
||||||
|
%exclude %{_libdir}/erlang/lib/erl_interface-*/src/INSTALL
|
||||||
|
%dir %{_libdir}/erlang/lib/*/src
|
||||||
|
%{_libdir}/erlang/lib/*/src/*
|
||||||
|
%dir %{_libdir}/erlang/lib/*/c_src
|
||||||
|
%{_libdir}/erlang/lib/*/c_src/*
|
||||||
|
%dir %{_libdir}/erlang/lib/*/java_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
|
||||||
|
%dir %{_libdir}/erlang/lib/debugger-*/src
|
||||||
|
%{_libdir}/erlang/lib/debugger-*/src/*
|
||||||
|
|
||||||
|
%files dialyzer-src
|
||||||
|
%dir %{_libdir}/erlang/lib/dialyzer-*/src
|
||||||
|
%{_libdir}/erlang/lib/dialyzer-*/src/*
|
||||||
|
|
||||||
|
%files diameter-src
|
||||||
|
%dir %{_libdir}/erlang/lib/diameter-*/src
|
||||||
|
%{_libdir}/erlang/lib/diameter-*/src/*
|
||||||
|
|
||||||
|
%files et-src
|
||||||
|
%dir %{_libdir}/erlang/lib/et-*/src
|
||||||
|
%{_libdir}/erlang/lib/et-*/src/*
|
||||||
|
|
||||||
|
%files jinterface-src
|
||||||
|
%dir %{_libdir}/erlang/lib/jinterface-*/java_src
|
||||||
|
%{_libdir}/erlang/lib/jinterface-*/java_src/*
|
||||||
|
|
||||||
|
%files reltool-src
|
||||||
|
%dir %{_libdir}/erlang/lib/reltool-*/src
|
||||||
|
%{_libdir}/erlang/lib/reltool-*/src/*
|
||||||
|
|
||||||
|
%files observer-src
|
||||||
|
%dir %{_libdir}/erlang/lib/observer-*/src
|
||||||
|
%{_libdir}/erlang/lib/observer-*/src/*
|
||||||
|
|
||||||
|
%files wx-src
|
||||||
|
%dir %{_libdir}/erlang/lib/wx-*/src
|
||||||
|
%{_libdir}/erlang/lib/wx-*/src/*
|
||||||
|
|
||||||
|
%changelog
|
20
erlang.sysconfig
Normal file
20
erlang.sysconfig
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
## Path: Network/Erlang/epmd
|
||||||
|
## Description: epmd port
|
||||||
|
## Type: string
|
||||||
|
## Default: "127.0.0.1"
|
||||||
|
## ServiceRestart: epmd
|
||||||
|
#
|
||||||
|
# IPs that EPMD should listen on.
|
||||||
|
# Comma seperated
|
||||||
|
#
|
||||||
|
EPMD_ADDRESSES="127.0.0.1"
|
||||||
|
|
||||||
|
## Path: Network/Erlang/epmd
|
||||||
|
## Description: epmd port
|
||||||
|
## Type: string
|
||||||
|
## Default: "4369"
|
||||||
|
## ServiceRestart: epmd
|
||||||
|
#
|
||||||
|
# Port that EPMD should listen on.
|
||||||
|
#
|
||||||
|
EPMD_PORT="4369"
|
BIN
ex_doc_otp_26
Normal file
BIN
ex_doc_otp_26
Normal file
Binary file not shown.
14
macros.erlang
Normal file
14
macros.erlang
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# macros.erlang
|
||||||
|
#
|
||||||
|
|
||||||
|
# suse-style macros
|
||||||
|
%erlang_dir %{_libdir}/erlang
|
||||||
|
%erlang_libdir %{_libdir}/erlang/lib
|
||||||
|
|
||||||
|
%__erl /usr/bin/erl
|
||||||
|
%erlang_app_vsn() $(%{__erl} -noshell -eval '{ok,[{_,_,C}]}=file:consult("%{1}"), io:format(proplists:get_value(vsn,C)), halt().')
|
||||||
|
%erlang_app_name() $(%{__erl} -noshell -eval '{ok,[{_,N,_}]}=file:consult("%{1}"), io:format(N), halt().')
|
||||||
|
|
||||||
|
# fedora compat
|
||||||
|
%_erldir %{erlang_dir}
|
||||||
|
%_erllibdir %{erlang_libdir}
|
13
otp-R16B-rpath.patch
Normal file
13
otp-R16B-rpath.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Index: otp-OTP-24.0/lib/crypto/c_src/Makefile.in
|
||||||
|
===================================================================
|
||||||
|
--- otp-OTP-24.0.orig/lib/crypto/c_src/Makefile.in
|
||||||
|
+++ otp-OTP-24.0/lib/crypto/c_src/Makefile.in
|
||||||
|
@@ -136,7 +136,7 @@ endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(DYNAMIC_OR_WIN_CRYPTO_LIB),yes)
|
||||||
|
-SSL_DED_LD_RUNTIME_LIBRARY_PATH = @SSL_DED_LD_RUNTIME_LIBRARY_PATH@
|
||||||
|
+SSL_DED_LD_RUNTIME_LIBRARY_PATH =
|
||||||
|
CRYPTO_LINK_LIB=$(SSL_DED_LD_RUNTIME_LIBRARY_PATH) -L$(SSL_LIBDIR) -l$(SSL_CRYPTO_LIBNAME)
|
||||||
|
EXTRA_FLAGS = -DHAVE_DYNAMIC_CRYPTO_LIB
|
||||||
|
else
|
Loading…
Reference in New Issue
Block a user