parent
b5c1bfd9ba
commit
ff217ad58c
@ -0,0 +1,155 @@
|
||||
# gitver-pkg.bbclass
|
||||
#
|
||||
# Based on gitpkgv.bbclass from meta-openembedded
|
||||
|
||||
PKGGITH = "${@get_pkg_gith(d, '${PN}')}"
|
||||
PKGGITN = "${@get_pkg_gitn(d, '${PN}')}"
|
||||
PKGGITV = "${@get_pkg_gitv(d, '${PN}')}"
|
||||
|
||||
def gitpkgv_drop_tag_prefix(version):
|
||||
import re
|
||||
if re.match("v\d", version):
|
||||
return version[1:]
|
||||
else:
|
||||
return version
|
||||
|
||||
def get_pkg_gitv(d, pn):
|
||||
import os
|
||||
import bb
|
||||
from pipes import quote
|
||||
|
||||
src_uri = d.getVar('SRC_URI', 1).split()
|
||||
fetcher = bb.fetch2.Fetch(src_uri, d)
|
||||
ud = fetcher.ud
|
||||
|
||||
ver = "0.0-0"
|
||||
|
||||
for url in ud.values():
|
||||
if url.type == 'git' or url.type == 'gitsm':
|
||||
for name, rev in url.revisions.items():
|
||||
if not os.path.exists(url.localpath):
|
||||
return None
|
||||
|
||||
vars = { 'repodir' : quote(url.localpath),
|
||||
'rev' : quote(rev) }
|
||||
|
||||
# Verify of the hash is present
|
||||
try:
|
||||
bb.fetch2.runfetchcmd(
|
||||
"cd %(repodir)s && "
|
||||
"git describe %(rev)s --always 2>/dev/null" % vars,
|
||||
d, quiet=True).strip()
|
||||
|
||||
except Exception:
|
||||
bb.fetch2.runfetchcmd(
|
||||
"cd %(repodir)s && git fetch 2>/dev/null" % vars,
|
||||
d, quiet=True).strip()
|
||||
|
||||
# Try to get a version using git describe
|
||||
try:
|
||||
output = bb.fetch2.runfetchcmd(
|
||||
"cd %(repodir)s && "
|
||||
"git describe %(rev)s --long 2>/dev/null" % vars,
|
||||
d, quiet=True).strip()
|
||||
|
||||
ver = gitpkgv_drop_tag_prefix(output)
|
||||
|
||||
except Exception:
|
||||
try:
|
||||
commits = bb.fetch2.runfetchcmd(
|
||||
"cd %(repodir)s && "
|
||||
"git rev-list %(rev)s --count 2> /dev/null " % vars,
|
||||
d, quiet=True).strip()
|
||||
|
||||
if commits == "":
|
||||
commits = "0"
|
||||
|
||||
rev = bb.fetch2.get_srcrev(d).split('+')[1]
|
||||
|
||||
ver = "0.0-%s-g%s" % (commits, rev[:7])
|
||||
|
||||
except Exception:
|
||||
pass
|
||||
return ver
|
||||
|
||||
def get_pkg_gitn(d, pn):
|
||||
import os
|
||||
import bb
|
||||
from pipes import quote
|
||||
|
||||
src_uri = d.getVar('SRC_URI', 1).split()
|
||||
fetcher = bb.fetch2.Fetch(src_uri, d)
|
||||
ud = fetcher.ud
|
||||
|
||||
for url in ud.values():
|
||||
if url.type == 'git' or url.type == 'gitsm':
|
||||
for name, rev in url.revisions.items():
|
||||
if not os.path.exists(url.localpath):
|
||||
return None
|
||||
|
||||
vars = { 'repodir' : quote(url.localpath),
|
||||
'rev' : quote(rev) }
|
||||
|
||||
# Verify of the hash is present
|
||||
try:
|
||||
bb.fetch2.runfetchcmd(
|
||||
"cd %(repodir)s && "
|
||||
"git describe %(rev)s --always 2>/dev/null" % vars,
|
||||
d, quiet=True).strip()
|
||||
|
||||
except Exception:
|
||||
bb.fetch2.runfetchcmd(
|
||||
"cd %(repodir)s && git fetch 2>/dev/null" % vars,
|
||||
d, quiet=True).strip()
|
||||
|
||||
|
||||
try:
|
||||
tag = bb.fetch2.runfetchcmd(
|
||||
"cd %(repodir)s && "
|
||||
"git describe --abbrev=0 %(rev)s 2>/dev/null" % vars,
|
||||
d, quiet=True).strip()
|
||||
|
||||
vars = { 'repodir' : quote(url.localpath),
|
||||
'rev' : quote(rev),
|
||||
'tag' : quote(tag) }
|
||||
|
||||
commits = bb.fetch2.runfetchcmd(
|
||||
"cd %(repodir)s && "
|
||||
"git rev-list %(rev)s ^%(tag)s --count 2> /dev/null " % vars,
|
||||
d, quiet=True).strip()
|
||||
|
||||
return commits
|
||||
|
||||
except Exception:
|
||||
commits = bb.fetch2.runfetchcmd(
|
||||
"cd %(repodir)s && "
|
||||
"git rev-list %(rev)s --count 2> /dev/null " % vars,
|
||||
d, quiet=True).strip()
|
||||
|
||||
if commits == "":
|
||||
commits = "0"
|
||||
|
||||
return commits
|
||||
|
||||
return '0'
|
||||
|
||||
|
||||
def get_pkg_gith(d, pn):
|
||||
import os
|
||||
import bb
|
||||
from pipes import quote
|
||||
|
||||
src_uri = d.getVar('SRC_URI', 1).split()
|
||||
fetcher = bb.fetch2.Fetch(src_uri, d)
|
||||
ud = fetcher.ud
|
||||
|
||||
for url in ud.values():
|
||||
if url.type == 'git' or url.type == 'gitsm':
|
||||
for name, rev in url.revisions.items():
|
||||
if not os.path.exists(url.localpath):
|
||||
return None
|
||||
else:
|
||||
return rev
|
||||
|
||||
return None
|
||||
|
@ -0,0 +1,139 @@
|
||||
# gitver-repo.bbclass
|
||||
#
|
||||
# Based on gitpkgv.bbclass from meta-openembedded
|
||||
|
||||
REPODIR ?= "${THISDIR}"
|
||||
|
||||
REPOGITH = "${@get_repo_gith(d, '${REPODIR}')}"
|
||||
REPOGITN = "${@get_repo_gitn(d, '${REPODIR}')}"
|
||||
REPOGITV = "${@get_repo_gitv(d, '${REPODIR}')}"
|
||||
REPOGITT = "${@get_repo_gitt(d, '${REPODIR}')}"
|
||||
REPOGITFN = "${@get_repo_gitfn(d, '${REPODIR}', '${REPOFILE}')}"
|
||||
|
||||
def gitver_repo_drop_tag_prefix(version):
|
||||
import re
|
||||
if re.match("v\d", version):
|
||||
return version[1:]
|
||||
else:
|
||||
return version
|
||||
|
||||
def get_repo_gitv(d, repodir):
|
||||
import os
|
||||
import bb
|
||||
from pipes import quote
|
||||
|
||||
vars = { 'repodir' : quote(repodir) }
|
||||
|
||||
try:
|
||||
output = bb.fetch2.runfetchcmd(
|
||||
"git -C %(repodir)s describe --long 2>/dev/null" % vars,
|
||||
d, quiet=True).strip()
|
||||
|
||||
ver = gitver_repo_drop_tag_prefix(output)
|
||||
|
||||
except Exception:
|
||||
return None
|
||||
|
||||
return ver
|
||||
|
||||
def get_repo_gitn(d, repodir):
|
||||
import os
|
||||
import bb
|
||||
from pipes import quote
|
||||
|
||||
vars = { 'repodir' : quote(repodir) }
|
||||
|
||||
try:
|
||||
|
||||
tag = bb.fetch2.runfetchcmd(
|
||||
"git -C %(repodir)s describe --abbrev=0 2>/dev/null" % vars,
|
||||
d, quiet=False).strip()
|
||||
|
||||
vars = { 'repodir' : quote(repodir),
|
||||
'tag' : quote(tag) }
|
||||
|
||||
commits = bb.fetch2.runfetchcmd(
|
||||
"git -C %(repodir)s rev-list %(tag)s.. --count 2> /dev/null" % vars,
|
||||
d, quiet=True).strip()
|
||||
|
||||
return commits
|
||||
|
||||
except Exception:
|
||||
commits = bb.fetch2.runfetchcmd(
|
||||
"git -C %(repodir)s rev-list --count HEAD 2>/dev/null" % vars,
|
||||
d, quiet=True).strip()
|
||||
|
||||
if commits == "":
|
||||
commits = "0"
|
||||
|
||||
return commits
|
||||
|
||||
def get_repo_gitt(d, repodir):
|
||||
import os
|
||||
import bb
|
||||
from pipes import quote
|
||||
|
||||
vars = { 'repodir' : quote(repodir) }
|
||||
|
||||
try:
|
||||
tag = bb.fetch2.runfetchcmd(
|
||||
"git -C %(repodir)s describe --abbrev=0 2>/dev/null" % vars,
|
||||
d, quiet=True).strip()
|
||||
|
||||
return tag
|
||||
|
||||
except Exception:
|
||||
return None
|
||||
|
||||
def get_repo_gith(d, repodir):
|
||||
import os
|
||||
import bb
|
||||
from pipes import quote
|
||||
|
||||
vars = { 'repodir' : quote(repodir) }
|
||||
|
||||
try:
|
||||
hash = bb.fetch2.runfetchcmd(
|
||||
"git -C %(repodir)s rev-parse HEAD 2>/dev/null" % vars,
|
||||
d, quiet=True).strip()
|
||||
|
||||
return hash
|
||||
|
||||
except Exception:
|
||||
return None
|
||||
|
||||
def get_repo_gitfn(d, repodir, repofile):
|
||||
import os
|
||||
import bb
|
||||
from pipes import quote
|
||||
|
||||
vars = { 'repodir' : quote(repodir),
|
||||
'repofile' : quote(repofile) }
|
||||
|
||||
try:
|
||||
|
||||
tag = bb.fetch2.runfetchcmd(
|
||||
"git -C %(repodir)s describe --abbrev=0 2>/dev/null" % vars,
|
||||
d, quiet=False).strip()
|
||||
|
||||
vars = { 'repodir' : quote(repodir),
|
||||
'repofile' : quote(repofile),
|
||||
'tag' : quote(tag) }
|
||||
|
||||
commits = bb.fetch2.runfetchcmd(
|
||||
"git -C %(repodir)s rev-list --count %(tag)s.. %(repofile)s 2> /dev/null" % vars,
|
||||
d, quiet=True).strip()
|
||||
|
||||
return commits
|
||||
|
||||
except Exception:
|
||||
commits = bb.fetch2.runfetchcmd(
|
||||
"git -C %(repodir)s rev-list --count HEAD %(repofile)s 2>/dev/null" % vars,
|
||||
d, quiet=True).strip()
|
||||
|
||||
if commits == "":
|
||||
commits = "0"
|
||||
|
||||
return commits
|
||||
|
||||
|
@ -0,0 +1,48 @@
|
||||
SUMMARY = "Firmware files for Nuran Wireless Litecell 1.5 Mainboard"
|
||||
LICENSE = "CLOSED"
|
||||
|
||||
NRW_LC15_MIRROR ??= "git@gitlab.com/nrw_litecell15"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit gitver-pkg gitver-repo
|
||||
|
||||
REPODIR = "${THISDIR}"
|
||||
REPOFILE = "lc15-firmware_git.bb"
|
||||
PR := "r${REPOGITFN}"
|
||||
|
||||
PV = "git${SRCPV}"
|
||||
PKGV = "${PKGGITV}"
|
||||
|
||||
DEV_BRANCH = "${@ 'nrw/litecell15-next' if d.getVar('NRW_BSP_DEVEL', False) == "next" else 'nrw/litecell15'}"
|
||||
DEV_SRCREV = "${AUTOREV}"
|
||||
DEV_SRCURI := "git://${NRW_LC15_MIRROR}/litecell15-fw.git;protocol=ssh;branch=${DEV_BRANCH}"
|
||||
|
||||
REL_BRANCH = "nrw/litecell15"
|
||||
REL_SRCREV = "68607b5c33a02883c50f9408f423234747407d99"
|
||||
REL_SRCURI := "git://${NRW_LC15_MIRROR}/litecell15-fw.git;protocol=ssh;branch=${REL_BRANCH}"
|
||||
|
||||
BRANCH = "${@ '${DEV_BRANCH}' if d.getVar('NRW_BSP_DEVEL', False) else '${REL_BRANCH}'}"
|
||||
SRCREV = "${@ '${DEV_SRCREV}' if d.getVar('NRW_BSP_DEVEL', False) else '${REL_SRCREV}'}"
|
||||
SRC_URI = "${@ '${DEV_SRCURI}' if d.getVar('NRW_BSP_DEVEL', False) else '${REL_SRCURI}'}"
|
||||
|
||||
addtask showversion after do_compile before do_install
|
||||
do_showversion() {
|
||||
bbplain "${PN}: ${PKGGITV} => ${BRANCH}:${PKGGITH}"
|
||||
}
|
||||
|
||||
inherit allarch
|
||||
|
||||
do_install() {
|
||||
install -d ${D}${includedir}/nrw
|
||||
install -d ${D}${includedir}/nrw/litecell15
|
||||
install -m 0644 ${S}/inc/nrw/litecell15/* ${D}${includedir}/nrw/litecell15
|
||||
|
||||
install -d ${D}${base_libdir}/firmware
|
||||
install -m 0644 ${S}/bin/* ${D}${base_libdir}/firmware
|
||||
}
|
||||
|
||||
INSANE_SKIP_${PN} = "arch"
|
||||
|
||||
FILES_${PN} = "${base_libdir}/firmware/*"
|
||||
FILES_${PN}-dev = "${includedir}/nrw/litecell15/*"
|
Loading…
Reference in new issue