From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 6CC1C138334 for ; Tue, 7 Aug 2018 00:26:03 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 5055DE0784; Tue, 7 Aug 2018 00:26:01 +0000 (UTC) Received: from smtp.gentoo.org (dev.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 10769E0784 for ; Tue, 7 Aug 2018 00:26:01 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 32B55335CA7 for ; Tue, 7 Aug 2018 00:25:58 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 20FF3390 for ; Tue, 7 Aug 2018 00:25:56 +0000 (UTC) From: "Steve Arnold" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Steve Arnold" Message-ID: <1533601546.cf2f2958d1397ef24fcb402e1115704058c05814.nerdboy@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lang/erlang/files/, dev-lang/erlang/ X-VCS-Repository: repo/gentoo X-VCS-Files: dev-lang/erlang/erlang-20.3.2.ebuild dev-lang/erlang/erlang-20.3.8.ebuild dev-lang/erlang/erlang-20.3.ebuild dev-lang/erlang/erlang-21.0.2.ebuild dev-lang/erlang/files/epmd.init dev-lang/erlang/files/erlang-add-epmd-pid-file-creation-for-openrc.patch X-VCS-Directories: dev-lang/erlang/files/ dev-lang/erlang/ X-VCS-Committer: nerdboy X-VCS-Committer-Name: Steve Arnold X-VCS-Revision: cf2f2958d1397ef24fcb402e1115704058c05814 X-VCS-Branch: master Date: Tue, 7 Aug 2018 00:25:56 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: adfdf61a-5e46-4422-83f7-6504ba8a40db X-Archives-Hash: b2edf023a4744b5729fc9c40ebc34b65 commit: cf2f2958d1397ef24fcb402e1115704058c05814 Author: Stephen L Arnold gentoo org> AuthorDate: Tue Aug 7 00:24:33 2018 +0000 Commit: Steve Arnold gentoo org> CommitDate: Tue Aug 7 00:25:46 2018 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cf2f2958 dev-lang/erlang: add create pidfile patch for epmd and openrc * this is supposed to be clean and minimally invasive, so follows upstream idef practices :/ Package-Manager: Portage-2.3.40, Repoman-2.3.9 dev-lang/erlang/erlang-20.3.2.ebuild | 1 + dev-lang/erlang/erlang-20.3.8.ebuild | 1 + dev-lang/erlang/erlang-20.3.ebuild | 3 +- dev-lang/erlang/erlang-21.0.2.ebuild | 1 + dev-lang/erlang/files/epmd.init | 13 +++- ...ang-add-epmd-pid-file-creation-for-openrc.patch | 90 ++++++++++++++++++++++ 6 files changed, 105 insertions(+), 4 deletions(-) diff --git a/dev-lang/erlang/erlang-20.3.2.ebuild b/dev-lang/erlang/erlang-20.3.2.ebuild index d9828cad710..fa93bdca560 100644 --- a/dev-lang/erlang/erlang-20.3.2.ebuild +++ b/dev-lang/erlang/erlang-20.3.2.ebuild @@ -48,6 +48,7 @@ S="${WORKDIR}/otp-OTP-${PV}" PATCHES=( "${FILESDIR}/18.2.1-wx3.0.patch" "${FILESDIR}/${PN}-20.3.2-dont-ignore-LDFLAGS.patch" + "${FILESDIR}/${PN}-add-epmd-pid-file-creation-for-openrc.patch" ) SITEFILE=50"${PN}"-gentoo.el diff --git a/dev-lang/erlang/erlang-20.3.8.ebuild b/dev-lang/erlang/erlang-20.3.8.ebuild index ed20da173d4..5ca952eeb26 100644 --- a/dev-lang/erlang/erlang-20.3.8.ebuild +++ b/dev-lang/erlang/erlang-20.3.8.ebuild @@ -48,6 +48,7 @@ S="${WORKDIR}/otp-OTP-${PV}" PATCHES=( "${FILESDIR}/18.2.1-wx3.0.patch" "${FILESDIR}/${PN}-20.3.2-dont-ignore-LDFLAGS.patch" + "${FILESDIR}/${PN}-add-epmd-pid-file-creation-for-openrc.patch" ) SITEFILE=50"${PN}"-gentoo.el diff --git a/dev-lang/erlang/erlang-20.3.ebuild b/dev-lang/erlang/erlang-20.3.ebuild index 80c077ee54b..80b1e5b08a4 100644 --- a/dev-lang/erlang/erlang-20.3.ebuild +++ b/dev-lang/erlang/erlang-20.3.ebuild @@ -48,7 +48,8 @@ SITEFILE=50${PN}-gentoo.el src_prepare() { default - eapply "${FILESDIR}"/18.2.1-wx3.0.patch + eapply "${FILESDIR}"/18.2.1-wx3.0.patch \ + "${FILESDIR}"/${PN}-add-epmd-pid-file-creation-for-openrc.patch if ! use odbc; then sed -i 's: odbc : :' lib/Makefile || die diff --git a/dev-lang/erlang/erlang-21.0.2.ebuild b/dev-lang/erlang/erlang-21.0.2.ebuild index 4d85955c470..874512907a2 100644 --- a/dev-lang/erlang/erlang-21.0.2.ebuild +++ b/dev-lang/erlang/erlang-21.0.2.ebuild @@ -47,6 +47,7 @@ S="${WORKDIR}/otp-OTP-${PV}" PATCHES=( "${FILESDIR}/18.2.1-wx3.0.patch" "${FILESDIR}/${PN}-20.3.2-dont-ignore-LDFLAGS.patch" + "${FILESDIR}/${PN}-add-epmd-pid-file-creation-for-openrc.patch" ) SITEFILE=50"${PN}"-gentoo.el diff --git a/dev-lang/erlang/files/epmd.init b/dev-lang/erlang/files/epmd.init index 9b3b9e2ad72..f0ef7c22416 100644 --- a/dev-lang/erlang/files/epmd.init +++ b/dev-lang/erlang/files/epmd.init @@ -1,14 +1,21 @@ #!/sbin/openrc-run -# Copyright 1999-2012 Gentoo Foundation +# Copyright 1999-2018 Gentoo Foundation # Distributed under the terms of the Erlang Public License 1.1 +ZT_ADDRESS="" +pidfile="/var/run/epmd.pid" +command_args="-daemon -relaxed_command_check -address 127.0.0.1" + depend() { - need net + need loopback + before sshd } start() { ebegin "Starting Erlang Port Mapper Daemon" - start-stop-daemon --start --quiet --user nobody --group nobody --exec /usr/bin/epmd -- -daemon + start-stop-daemon --start --quiet \ + --pidfile $pidfile \ + --exec /usr/bin/epmd -- $command_args eend $? } diff --git a/dev-lang/erlang/files/erlang-add-epmd-pid-file-creation-for-openrc.patch b/dev-lang/erlang/files/erlang-add-epmd-pid-file-creation-for-openrc.patch new file mode 100644 index 00000000000..56e3946c93f --- /dev/null +++ b/dev-lang/erlang/files/erlang-add-epmd-pid-file-creation-for-openrc.patch @@ -0,0 +1,90 @@ +From 04ace92c33a699f75445dc99c30d521311aba826 Mon Sep 17 00:00:00 2001 +From: Steve Arnold +Date: Mon, 6 Aug 2018 16:38:30 -0700 +Subject: [PATCH] Add daemon-mode pid file creation when not configured for + systemd + +Signed-off-by: Steve Arnold +--- + erts/epmd/src/epmd.c | 39 ++++++++++++++++++++++++++++++++++++++- + erts/epmd/src/epmd.h | 3 +++ + 2 files changed, 41 insertions(+), 1 deletion(-) + +diff --git a/erts/epmd/src/epmd.c b/erts/epmd/src/epmd.c +index 44e997e609..c74888a1ee 100644 +--- a/erts/epmd/src/epmd.c ++++ b/erts/epmd/src/epmd.c +@@ -40,6 +40,37 @@ static int check_relaxed(void); + #ifdef __WIN32__ + static int has_console(void); + #endif ++#ifndef HAVE_SYSTEMD_DAEMON ++static int create_pidfile(void); ++static const char *pidfile = EPMD_PIDFILE; ++#endif ++ ++#ifndef HAVE_SYSTEMD_DAEMON ++static int create_pidfile(void) ++{ ++ int fd; ++ ++ unlink(pidfile); ++ ++ /* open the pidfile */ ++ fd = open(pidfile, O_WRONLY|O_CREAT|O_EXCL, 0644); ++ if (fd >= 0) { ++ FILE *f; ++ ++ /* write our pid to it */ ++ f = fdopen(fd, "w"); ++ if (f != NULL) { ++ fprintf(f, "%d\n", getpid()); ++ fclose(f); ++ /* leave the fd open */ ++ return 0; ++ } ++ close(fd); ++ } ++ ++ return -1; ++} ++#endif /* (no) HAVE_SYSTEMD_DAEMON */ + + #ifdef DONT_USE_MAIN + +@@ -340,6 +371,13 @@ static void run_daemon(EpmdVars *g) + + umask(0); + ++#ifndef HAVE_SYSTEMD_DAEMON ++ if (create_pidfile() < 0) { ++ dbg_perror(g,"could not create pidfile %s", pidfile); ++ epmd_cleanup_exit(g,1); ++ } ++#endif /* HAVE_SYSTEMD_DAEMON */ ++ + for (fd = 0; fd < g->max_conn ; fd++) /* close all files ... */ + close(fd); + /* Syslog on linux will try to write to whatever if we dont +@@ -614,4 +652,3 @@ static int check_relaxed(void) + char* port_str = getenv("ERL_EPMD_RELAXED_COMMAND_CHECK"); + return (port_str != NULL) ? 1 : 0; + } +- +diff --git a/erts/epmd/src/epmd.h b/erts/epmd/src/epmd.h +index cffcd4ae7a..e53322acf5 100644 +--- a/erts/epmd/src/epmd.h ++++ b/erts/epmd/src/epmd.h +@@ -20,6 +20,9 @@ + + /* The port number is defined in a makefile */ + ++/* The name and path to the pid file */ ++#define EPMD_PIDFILE "/var/run/epmd.pid" ++ + /* Definitions of message codes */ + + /* Registration and queries */ +-- +2.17.0 +