public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Michael Haubenwallner" <haubi@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: app-admin/cygwin-rebase/
Date: Tue,  7 May 2019 08:06:40 +0000 (UTC)	[thread overview]
Message-ID: <1557216352.cbadcf4152a101a8e5c08a4ab44b818c7cd136ca.haubi@gentoo> (raw)

commit:     cbadcf4152a101a8e5c08a4ab44b818c7cd136ca
Author:     Michael Haubenwallner <haubi <AT> gentoo <DOT> org>
AuthorDate: Thu Apr 25 07:02:20 2019 +0000
Commit:     Michael Haubenwallner <haubi <AT> gentoo <DOT> 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 <haubi <AT> 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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+	<maintainer type="person">
+		<email>haubi@gentoo.org</email>
+		<name>Michael Haubenwallner</name>
+	</maintainer>
+	<longdescription lang="en">
+		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.
+	</longdescription>
+</pkgmetadata>


             reply	other threads:[~2019-05-07  8:06 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-07  8:06 Michael Haubenwallner [this message]
  -- strict thread matches above, loose matches on Subject: below --
2019-12-31 11:12 [gentoo-commits] repo/gentoo:master commit in: app-admin/cygwin-rebase/ Fabian Groffen
2020-12-18 14:16 Fabian Groffen
2021-04-23  6:53 Michael Haubenwallner
2023-05-26  3:39 Michał Górny

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1557216352.cbadcf4152a101a8e5c08a4ab44b818c7cd136ca.haubi@gentoo \
    --to=haubi@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox