dev-db/pgagent: Fix pthread linking

Bug: https://bugs.gentoo.org/688472
Package-Manager: Portage-2.3.84, Repoman-2.3.16
Signed-off-by: Aaron W. Swenson <titanofold@gentoo.org>
This commit is contained in:
Aaron W. Swenson
2020-02-18 14:03:37 -05:00
parent 27206121b4
commit cf58dfea3e
2 changed files with 88 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
From 5b79460bdda286ca988b39e93e446176e8a781d1 Mon Sep 17 00:00:00 2001
From: Neel Patel <neel.patel@enterprisedb.com>
Date: Fri, 20 Jul 2018 13:35:35 +0100
Subject: [PATCH] Link with pthreads on non-Windows and non-macOS platforms.
Patch based on feedback and initial work by Christoph Berg.
---
CMakeLists.txt | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1be24da..6f1eaa0 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -134,9 +134,15 @@ IF(WIN32)
ENDIF(WIN32)
ADD_EXECUTABLE(pgagent ${_srcs})
+IF(UNIX AND NOT APPLE)
+TARGET_LINK_LIBRARIES(
+ pgagent ${PG_LIBRARIES} ${Boost_LIBRARIES} -pthread
+)
+ELSE()
TARGET_LINK_LIBRARIES(
pgagent ${PG_LIBRARIES} ${Boost_LIBRARIES}
)
+ENDIF()
# Installation
IF (WIN32)
--
2.24.1

View File

@@ -0,0 +1,55 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
CMAKE_IN_SOURCE_BUILD=1
inherit cmake-utils user
MY_PN=${PN/a/A}
KEYWORDS="~amd64 ~x86"
DESCRIPTION="${MY_PN} is a job scheduler for PostgreSQL"
HOMEPAGE="https://www.pgadmin.org/download/pgagent-source-code/"
SRC_URI="https://ftp.postgresql.org/pub/pgadmin/${PN}/${MY_PN}-${PV}-Source.tar.gz"
LICENSE="POSTGRESQL GPL-2"
SLOT="0"
RDEPEND="dev-db/postgresql:*
dev-libs/boost
"
DEPEND="${RDEPEND}"
S="${WORKDIR}/${MY_PN}-${PV}-Source"
PATCHES=( "${FILESDIR}"/pgagent-4.0.0-pthreads-linking.patch )
src_prepare() {
cmake-utils_src_prepare
sed -e "s:share):share/${P}):" \
-i CMakeLists.txt || die "failed to patch CMakeLists.txt"
}
src_configure() {
mycmakeargs=( "-DSTATIC_BUILD:BOOLEAN=FALSE"
)
cmake-utils_src_configure
}
src_install() {
cmake-utils_src_install
newinitd "${FILESDIR}/pgagent.initd-r1" "${PN}"
newconfd "${FILESDIR}/pgagent.confd" "${PN}"
rm "${ED}"/usr/{LICENSE,README} || die "failed to remove useless docs"
}
pkg_preinst() {
# This user needs a real shell, and the daemon will use the
# ~/.pgpass file from its home directory.
enewuser pgagent -1 /bin/bash /home/pgagent
}