From: "Manuel Rüger" <mrueg@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] dev/mrueg:master commit in: eclass/
Date: Thu, 25 Jun 2015 10:45:19 +0000 (UTC) [thread overview]
Message-ID: <1435229047.2df56853ddc8b2a627c0c6167b8b1c9a2073f135.mrueg@gentoo> (raw)
commit: 2df56853ddc8b2a627c0c6167b8b1c9a2073f135
Author: Manuel Rüger <mrueg <AT> gentoo <DOT> org>
AuthorDate: Thu Jun 25 10:44:07 2015 +0000
Commit: Manuel Rüger <mrueg <AT> gentoo <DOT> org>
CommitDate: Thu Jun 25 10:44:07 2015 +0000
URL: https://gitweb.gentoo.org/dev/mrueg.git/commit/?id=2df56853
[eclass] Initial version of github.eclass.
eclass/github.eclass | 135 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 135 insertions(+)
diff --git a/eclass/github.eclass b/eclass/github.eclass
new file mode 100644
index 0000000..df0263d
--- /dev/null
+++ b/eclass/github.eclass
@@ -0,0 +1,135 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+# @ECLASS: github.eclass
+# @MAINTAINER:
+# mrueg@gentoo.org
+# @BLURB: Support eclass for packages hosted on Github.
+# @DESCRIPTION:
+# The github.eclass provides support for packages hosted on Github.
+
+if [[ -z ${_GH_ECLASS} ]]; then
+_GH_ECLASS=1
+
+case "${EAPI:-0}" in
+ 5)
+ ;;
+ *)
+ die "Unsupported EAPI=${EAPI} (unknown) for ${ECLASS}"
+ ;;
+esac
+
+# @ECLASS-VARIABLE: GH_USER
+# @DESCRIPTION:
+# Github user, usually a project or user.
+: ${GH_USER:=${PN}}
+
+# @ECLASS-VARIABLE: GH_REPO
+# @DESCRIPTION:
+# Github repository name.
+: ${GH_REPO:=${PN}}
+
+# @ECLASS-VARIABLE: GH_BUILD_TYPE
+# @DESCRIPTION:
+# Live ebuilds use "live" here.
+: ${GH_BUILD_TYPE:=default}
+
+# @ECLASS-VARIABLE: GH_PATCHES
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# Patches to be fetched and applied from Github by commit id.
+# Example:
+# @CODE
+# GH_PATCHES=( "b02c39fb8dec9043b0ac9d23d5caec19b8b0c337" )
+# @CODE
+
+# @ECLASS-VARIABLE: GH_TAG
+# @DESCRIPTION:
+# Tag/commit that is fetched from Github.
+: ${GH_TAG:=${PV}}
+
+
+inherit eutils
+
+if [[ ${PV} == *9999 ]]; then
+ GH_BUILD_TYPE=live
+fi
+
+if [[ ${GH_BUILD_TYPE} = live ]]; then
+ inherit git-r3
+fi
+
+if [[ ${GH_BUILD_TYPE} = default ]]; then
+ inherit vcs-snapshot
+fi
+
+HOMEPAGE="https://github.com/${GH_USER}/${GH_REPO}"
+
+EXPORT_FUNCTIONS src_prepare src_unpack
+
+# If patches are fetched, calculate their location
+_calculate_patches_uri() {
+ if [[ -n $GH_PATCHES ]]; then
+ _GH_PATCHES=
+ for gh_commit in "${GH_PATCHES[@]}"; do
+ SRC_URI=+" https://github.com/${GH_USER}/${GH_REPO}/commit/${gh_commit}.patch -> ${PN}-${gh_commit}.patch"
+ _GH_PATCHES+=( "${DISTDIR}"/${PN}-${gh_commit}.patch )
+ done
+ fi
+}
+
+
+# Determine fetch location for tarballs and patches
+_calculate_src_uri() {
+ debug-print-function ${FUNCNAME} "$@"
+ SRC_URI="https://github.com/${GH_USER}/${GH_REPO}/archive/${GH_TAG}.tar.gz -> ${P}.tar.gz"
+}
+
+# Determine fetch location for live sources
+_calculate_live_repo() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ SRC_URI=""
+ # @ECLASS-VARIABLE: EGIT_MIRROR
+ # @DESCRIPTION:
+ # This variable allows easy overriding of default kde mirror service
+ # (anongit) with anything else you might want to use.
+ EGIT_MIRROR=${EGIT_MIRROR:=https://github.com}
+
+ EGIT_REPO_URI="${EGIT_MIRROR}/${GH_USER}/${GH_REPO}.git"
+}
+
+
+case ${GH_BUILD_TYPE} in
+ live) _calculate_live_repo ;;
+ default) _calculate_src_uri ;;
+esac
+_calculate_patches_uri
+
+debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SRC_URI is ${SRC_URI}"
+
+# @FUNCTION: github_src_unpack
+# @DESCRIPTION:
+# Function for unpacking Github packages.
+github_src_unpack() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${GH_BUILD_TYPE} = live ]]; then
+ git-r3_src_unpack
+ else
+ vcs-snapshot_src_unpack
+ fi
+}
+
+
+# @FUNCTION: github_src_unpack
+# @DESCRIPTION:
+# Function for applying patches to Github packages.
+github_src_prepare() {
+ [[ $_GH_PATCHES ]] && epatch "${_GH_PATCHES[@]}"
+ epatch_user
+ default
+}
+
+fi
next reply other threads:[~2015-06-25 10:45 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-25 10:45 Manuel Rüger [this message]
-- strict thread matches above, loose matches on Subject: below --
2015-06-25 10:47 [gentoo-commits] dev/mrueg:master commit in: eclass/ Manuel Rüger
2015-06-25 11:03 Manuel Rüger
2015-06-25 11:07 Manuel Rüger
2015-06-25 11:09 Manuel Rüger
2015-06-25 11:11 Manuel Rüger
2015-06-25 11:18 Manuel Rüger
2015-06-25 11:38 Manuel Rüger
2015-06-25 11:45 Manuel Rüger
2015-06-25 11:45 Manuel Rüger
2015-06-25 11:46 Manuel Rüger
2015-06-25 11:47 Manuel Rüger
2015-06-25 11:50 Manuel Rüger
2015-06-25 15:39 Manuel Rüger
2015-06-25 16:55 Manuel Rüger
2015-12-31 11:42 Manuel Rüger
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=1435229047.2df56853ddc8b2a627c0c6167b8b1c9a2073f135.mrueg@gentoo \
--to=mrueg@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