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 A3D0D138335 for ; Tue, 7 May 2019 08:06:45 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 64A32E08FC; Tue, 7 May 2019 08:06:44 +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 3AB71E08FC for ; Tue, 7 May 2019 08:06:43 +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 0922A3439F9 for ; Tue, 7 May 2019 08:06:42 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 46D094F6 for ; Tue, 7 May 2019 08:06:40 +0000 (UTC) From: "Michael Haubenwallner" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Michael Haubenwallner" Message-ID: <1557216352.cbadcf4152a101a8e5c08a4ab44b818c7cd136ca.haubi@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: app-admin/cygwin-rebase/ X-VCS-Repository: repo/gentoo X-VCS-Files: app-admin/cygwin-rebase/Manifest app-admin/cygwin-rebase/cygwin-rebase-4.4.4.ebuild app-admin/cygwin-rebase/cygwin-rebase-9999.ebuild app-admin/cygwin-rebase/metadata.xml X-VCS-Directories: app-admin/cygwin-rebase/ X-VCS-Committer: haubi X-VCS-Committer-Name: Michael Haubenwallner X-VCS-Revision: cbadcf4152a101a8e5c08a4ab44b818c7cd136ca X-VCS-Branch: master Date: Tue, 7 May 2019 08:06:40 +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-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 3cc3ce9b-ce49-46f2-a930-932cec3f6b23 X-Archives-Hash: 722f2a9d9cb02ef4348080d903d696de commit: cbadcf4152a101a8e5c08a4ab44b818c7cd136ca Author: Michael Haubenwallner gentoo org> AuthorDate: Thu Apr 25 07:02:20 2019 +0000 Commit: Michael Haubenwallner gentoo org> CommitDate: Tue May 7 08:05:52 2019 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cbadcf41 app-admin/cygwin-rebase: new package Package-Manager: Portage-2.3.51, Repoman-2.3.11 Signed-off-by: Michael Haubenwallner gentoo.org> app-admin/cygwin-rebase/Manifest | 2 + app-admin/cygwin-rebase/cygwin-rebase-4.4.4.ebuild | 76 ++++++++++++++++++++++ app-admin/cygwin-rebase/cygwin-rebase-9999.ebuild | 76 ++++++++++++++++++++++ app-admin/cygwin-rebase/metadata.xml | 22 +++++++ 4 files changed, 176 insertions(+) diff --git a/app-admin/cygwin-rebase/Manifest b/app-admin/cygwin-rebase/Manifest new file mode 100644 index 00000000000..7dd1c0b357f --- /dev/null +++ b/app-admin/cygwin-rebase/Manifest @@ -0,0 +1,2 @@ +DIST cygwin-rebase-4.4.4.tar.gz 114445 BLAKE2B f0741513fb3b636876ce6e33b882e4075d41606118ec1c663939b2e9a9d8690360011352f27ebfeffc49a644b5de8c5026bcab0fb7fb9b41ff36ee6cd6c031c8 SHA512 d155b05f663fab971c70b6618755ac528d49b96e17017c0fcabf26332e4a50c46ee346705fc59490f741bf37625e94a2bba8cc36d41c23f5643d54d08eb1051b +DIST cygwin-rebase-4.4.4_merge-files-flag-0.patch 15409 BLAKE2B 6f8061903439c9baa508eb130f43fe5e9fe8b71725ab5efe92d6d8a667b71c467f2f0fddd8b4ca22c68087e24bbafc2db6c288ef87d125b23c8f8d35bb1b5a37 SHA512 b067751218026867681c24003a4f224599b5fd6a29920c3662b7964a3447db8b6b680acfaab637de911ecea08c3196bf268eba3237b92830dcbf531e05842fb2 diff --git a/app-admin/cygwin-rebase/cygwin-rebase-4.4.4.ebuild b/app-admin/cygwin-rebase/cygwin-rebase-4.4.4.ebuild new file mode 100644 index 00000000000..9575601c7c8 --- /dev/null +++ b/app-admin/cygwin-rebase/cygwin-rebase-4.4.4.ebuild @@ -0,0 +1,76 @@ +# Copyright 2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +DESCRIPTION="Core of the automatic rebase facility during postinstall on Cygwin" +HOMEPAGE="https://cygwin.com" + +LICENSE="GPL-2" +SLOT="0" +IUSE="" + +inherit autotools + +if [[ ${PV} == 9999 ]] +then + EGIT_REPO_URI="https://sourceware.org/git/cygwin-apps/rebase.git" + EGIT_REPO_URI="https://github.com/haubi/cygwin-rebase.git" + EGIT_BRANCH="gentoo" + inherit git-r3 +else + # Upstream does not provide archived source tarballs from git release tags, + # only non archived cygwin distro packages with embedded source tarballs. + # For now, we download from haubi's github mirror repo, having + # repo name "cygwin-rebase" and tag names like "rebase-4-4-4". + MY_PN=cygwin-rebase-rebase + MY_PV=${PV//./-} + S="${WORKDIR}/${MY_PN}-${MY_PV}" + SRC_URI=" + https://github.com/haubi/cygwin-rebase/archive/rebase-${MY_PV}.tar.gz -> ${P}.tar.gz + https://github.com/haubi/cygwin-rebase/compare/rebase-${MY_PV}...rebase-${MY_PV}_merge-files-flag-0.patch -> ${P}_merge-files-flag-0.patch + " + PATCHES=( "${DISTDIR}/${P}_merge-files-flag-0.patch" ) + KEYWORDS="-* ~x64-cygwin" +fi + +DEPEND="" +RDEPEND="${DEPEND}" +BDEPEND="" + +src_prepare() { + default + # do not bother upstream with bug reports yet + sed -e "/AC_INIT/{s|rebase|${PN}|;s|cygwin@cygwin.com|https://bugs.gentoo.org/|}" \ + -i configure.ac || die + eautoreconf +} + +src_configure() { + econf --with-posix-shell="${BASH}" +} + +src_install() { + default + # do not work nor make so much sense in Gentoo Prefix + rm -f "${ED}"/usr/bin/{rebase,peflags}all || die +} + +pkg_preinst() { + local rebasedb + local baseaddr + case ${CHOST} in + x86_64-*-cygwin*) + rebasedb=/etc/rebase.db.x86_64 + baseaddr=0x1000000000 + ;; + esac + [[ ${rebasedb} ]] || die "CHOST ${CHOST} is not supported for ${PN}." + + [[ -s ${EROOT}${rebasedb} ]] && return 0 + + einfo "Creating initial rebase database with default base address ${baseaddr}..." + cp /bin/cygwin1.dll "${T}/initial.dll" || die + "${ED}/usr/bin/rebase" --verbose "--base=${baseaddr}" --database "${T}/initial.dll" || die + eend $? +} diff --git a/app-admin/cygwin-rebase/cygwin-rebase-9999.ebuild b/app-admin/cygwin-rebase/cygwin-rebase-9999.ebuild new file mode 100644 index 00000000000..9575601c7c8 --- /dev/null +++ b/app-admin/cygwin-rebase/cygwin-rebase-9999.ebuild @@ -0,0 +1,76 @@ +# Copyright 2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +DESCRIPTION="Core of the automatic rebase facility during postinstall on Cygwin" +HOMEPAGE="https://cygwin.com" + +LICENSE="GPL-2" +SLOT="0" +IUSE="" + +inherit autotools + +if [[ ${PV} == 9999 ]] +then + EGIT_REPO_URI="https://sourceware.org/git/cygwin-apps/rebase.git" + EGIT_REPO_URI="https://github.com/haubi/cygwin-rebase.git" + EGIT_BRANCH="gentoo" + inherit git-r3 +else + # Upstream does not provide archived source tarballs from git release tags, + # only non archived cygwin distro packages with embedded source tarballs. + # For now, we download from haubi's github mirror repo, having + # repo name "cygwin-rebase" and tag names like "rebase-4-4-4". + MY_PN=cygwin-rebase-rebase + MY_PV=${PV//./-} + S="${WORKDIR}/${MY_PN}-${MY_PV}" + SRC_URI=" + https://github.com/haubi/cygwin-rebase/archive/rebase-${MY_PV}.tar.gz -> ${P}.tar.gz + https://github.com/haubi/cygwin-rebase/compare/rebase-${MY_PV}...rebase-${MY_PV}_merge-files-flag-0.patch -> ${P}_merge-files-flag-0.patch + " + PATCHES=( "${DISTDIR}/${P}_merge-files-flag-0.patch" ) + KEYWORDS="-* ~x64-cygwin" +fi + +DEPEND="" +RDEPEND="${DEPEND}" +BDEPEND="" + +src_prepare() { + default + # do not bother upstream with bug reports yet + sed -e "/AC_INIT/{s|rebase|${PN}|;s|cygwin@cygwin.com|https://bugs.gentoo.org/|}" \ + -i configure.ac || die + eautoreconf +} + +src_configure() { + econf --with-posix-shell="${BASH}" +} + +src_install() { + default + # do not work nor make so much sense in Gentoo Prefix + rm -f "${ED}"/usr/bin/{rebase,peflags}all || die +} + +pkg_preinst() { + local rebasedb + local baseaddr + case ${CHOST} in + x86_64-*-cygwin*) + rebasedb=/etc/rebase.db.x86_64 + baseaddr=0x1000000000 + ;; + esac + [[ ${rebasedb} ]] || die "CHOST ${CHOST} is not supported for ${PN}." + + [[ -s ${EROOT}${rebasedb} ]] && return 0 + + einfo "Creating initial rebase database with default base address ${baseaddr}..." + cp /bin/cygwin1.dll "${T}/initial.dll" || die + "${ED}/usr/bin/rebase" --verbose "--base=${baseaddr}" --database "${T}/initial.dll" || die + eend $? +} diff --git a/app-admin/cygwin-rebase/metadata.xml b/app-admin/cygwin-rebase/metadata.xml new file mode 100644 index 00000000000..1dc5534cdb9 --- /dev/null +++ b/app-admin/cygwin-rebase/metadata.xml @@ -0,0 +1,22 @@ + + + + + haubi@gentoo.org + Michael Haubenwallner + + + The rebaseall utility is a convenient way for users that suffer from the + Cygwin rebase problem to rebase their entire system (i.e., all of their + DLLs). The following is a list of known Cygwin applications that are + affected by the rebase problem: + + Apache + Perl + Python + + The rebase problem is due to fork() failing when it is unable to load + DLLs in the child at the same address as in the parent. This is caused + by DLLs which have conflicting base addresses. + +