mirror of
https://git.yoctoproject.org/poky
synced 2026-02-05 16:28:43 +01:00
Changelog: ============== * "git checkout --ours" (no other arguments) complained that the option is incompatible with branch switching, which is technically correct, but found confusing by some users. It now says that the user needs to give pathspec to specify what paths to checkout. * It has been documented that we avoid "VAR=VAL shell_func" and why. * "git add -p" by users with diff.suppressBlankEmpty set to true failed to parse the patch that represents an unmodified empty line with an empty line (not a line with a single space on it), which has been corrected. * "git rebase --help" referred to "offset" (the difference between the location a change was taken from and the change gets replaced) incorrectly and called it "fuzz", which has been corrected. * "git notes add -m '' --allow-empty" and friends that take prepared data to create notes should not invoke an editor, but it started doing so since Git 2.42, which has been corrected. * An expensive operation to prepare tracing was done in re-encoding code path even when the tracing was not requested, which has been corrected. * Perforce tests have been updated. * The credential helper to talk to OSX keychain sometimes sent garbage bytes after the username, which has been corrected. * A recent update broke "git ls-remote" used outside a repository, which has been corrected. * "git config --value=foo --fixed-value section.key newvalue" barfed when the existing value in the configuration file used the valueless true syntax, which has been corrected. * "git reflog expire" failed to honor annotated tags when computing reachable commits. * A flakey test and incorrect calls to strtoX() functions have been fixed. * Follow-up on 2.45.1 regression fix. * "git rev-list ... | git diff-tree -p --remerge-diff --stdin" should behave more or less like "git log -p --remerge-diff" but instead it crashed, forgetting to prepare a temporary object store needed. * The patch parser in "git patch-id" has been tightened to avoid getting confused by lines that look like a patch header in the log message. * "git bundle unbundle" outside a repository triggered a BUG() unnecessarily, which has been corrected. * The code forgot to discard unnecessary in-core commit buffer data for commits that "git log --skip=<number>" traversed but omitted from the output, which has been corrected. * "git verify-pack" and "git index-pack" started dying outside a repository, which has been corrected. * A corner case bug in "git stash" was fixed. (From OE-Core rev: 46298bda0ac17750d5a120be21feaef2407da7ee) Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit ee7e9866ad942a9682e54878f1e7fb06c68c8cf4) Signed-off-by: Steve Sakoman <steve@sakoman.com>
168 lines
6.0 KiB
BlitzBasic
168 lines
6.0 KiB
BlitzBasic
SUMMARY = "Distributed version control system"
|
|
HOMEPAGE = "http://git-scm.com"
|
|
DESCRIPTION = "Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency."
|
|
SECTION = "console/utils"
|
|
LICENSE = "GPL-2.0-only & GPL-2.0-or-later & BSD-3-Clause & MIT & BSL-1.0 & LGPL-2.1-or-later"
|
|
DEPENDS = "openssl zlib"
|
|
DEPENDS:class-native += "ca-certificates"
|
|
|
|
PROVIDES:append:class-native = " git-replacement-native"
|
|
|
|
SRC_URI = "${KERNELORG_MIRROR}/software/scm/git/git-${PV}.tar.gz;name=tarball \
|
|
file://fixsort.patch \
|
|
file://0001-config.mak.uname-do-not-force-RHEL-7-specific-build-.patch \
|
|
"
|
|
|
|
S = "${WORKDIR}/git-${PV}"
|
|
|
|
LIC_FILES_CHKSUM = "\
|
|
file://COPYING;md5=7c0d7ef03a7eb04ce795b0f60e68e7e1 \
|
|
file://reftable/LICENSE;md5=1a6424cafc4c9c88c689848e165af33b \
|
|
file://sha1dc/LICENSE.txt;md5=9bbe4c990a9e98ea4b98ef5d3bcb8a7a \
|
|
file://compat/nedmalloc/License.txt;md5=e4224ccaecb14d942c71d31bef20d78c \
|
|
file://compat/inet_ntop.c;md5=76593c6f74e8ced5b24520175688d59b;endline=16 \
|
|
file://compat/obstack.h;md5=08ad25fee5428cd879ceef451ce3a22e;endline=18 \
|
|
file://compat/poll/poll.h;md5=9fc00170a53b8e3e52157c91ac688dd1;endline=19 \
|
|
file://compat/regex/regex.h;md5=30cc8af0e6f0f8a25acec6d8783bb763;beginline=4;endline=22 \
|
|
"
|
|
|
|
CVE_PRODUCT = "git-scm:git"
|
|
|
|
PACKAGECONFIG ??= "expat curl"
|
|
PACKAGECONFIG[cvsserver] = ""
|
|
PACKAGECONFIG[svn] = ""
|
|
PACKAGECONFIG[manpages] = ",,asciidoc-native xmlto-native"
|
|
PACKAGECONFIG[curl] = "--with-curl,--without-curl,curl"
|
|
PACKAGECONFIG[expat] = "--with-expat,--without-expat,expat"
|
|
|
|
EXTRA_OECONF = "--with-perl=${STAGING_BINDIR_NATIVE}/perl-native/perl \
|
|
--without-tcltk \
|
|
--without-iconv \
|
|
"
|
|
EXTRA_OECONF:append:class-nativesdk = " --with-gitconfig=/etc/gitconfig "
|
|
EXTRA_OECONF:append:class-native = " --with-gitconfig=/etc/gitconfig "
|
|
|
|
# Needs brokensep as this doesn't use automake
|
|
inherit autotools-brokensep perlnative bash-completion manpages
|
|
|
|
EXTRA_OEMAKE = "NO_PYTHON=1 CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}'"
|
|
EXTRA_OEMAKE += "'PERL_PATH=/usr/bin/env perl'"
|
|
EXTRA_OEMAKE += "COMPUTE_HEADER_DEPENDENCIES=no"
|
|
EXTRA_OEMAKE:append:class-native = " NO_CROSS_DIRECTORY_HARDLINKS=1"
|
|
|
|
do_compile:prepend () {
|
|
# Remove perl/perl.mak to fix the out-of-date perl.mak error
|
|
# during rebuild
|
|
rm -f perl/perl.mak
|
|
|
|
if [ "${@bb.utils.filter('PACKAGECONFIG', 'manpages', d)}" ]; then
|
|
oe_runmake man
|
|
fi
|
|
}
|
|
|
|
do_install () {
|
|
oe_runmake install DESTDIR="${D}" bindir=${bindir} \
|
|
template_dir=${datadir}/git-core/templates
|
|
|
|
install -d ${D}/${datadir}/bash-completion/completions/
|
|
install -m 644 ${S}/contrib/completion/git-completion.bash ${D}/${datadir}/bash-completion/completions/git
|
|
|
|
if [ "${@bb.utils.filter('PACKAGECONFIG', 'manpages', d)}" ]; then
|
|
# Needs to be serial with make 4.4 due to https://savannah.gnu.org/bugs/index.php?63362
|
|
make install-man DESTDIR="${D}"
|
|
fi
|
|
}
|
|
|
|
perl_native_fixup () {
|
|
sed -i -e 's#${STAGING_BINDIR_NATIVE}/perl-native/#${bindir}/#' \
|
|
-e 's#${libdir}/perl-native/#${libdir}/#' \
|
|
${@d.getVar("PERLTOOLS").replace(' /',d.getVar('D') + '/')}
|
|
|
|
if [ ! "${@bb.utils.filter('PACKAGECONFIG', 'cvsserver', d)}" ]; then
|
|
# Only install the git cvsserver command if explicitly requested
|
|
# as it requires the DBI Perl module, which does not exist in
|
|
# OE-Core.
|
|
rm ${D}${libexecdir}/git-core/git-cvsserver \
|
|
${D}${bindir}/git-cvsserver
|
|
fi
|
|
|
|
if [ ! "${@bb.utils.filter('PACKAGECONFIG', 'svn', d)}" ]; then
|
|
# Only install the git svn command and all Git::SVN Perl modules
|
|
# if explicitly requested as they require the SVN::Core Perl
|
|
# module, which does not exist in OE-Core.
|
|
rm -r ${D}${libexecdir}/git-core/git-svn \
|
|
${D}${datadir}/perl5/Git/SVN*
|
|
fi
|
|
}
|
|
|
|
REL_GIT_EXEC_PATH = "${@os.path.relpath(libexecdir, bindir)}/git-core"
|
|
REL_GIT_TEMPLATE_DIR = "${@os.path.relpath(datadir, bindir)}/git-core/templates"
|
|
REL_GIT_SSL_CAINFO = "${@os.path.relpath(sysconfdir, bindir)}/ssl/certs/ca-certificates.crt"
|
|
|
|
do_install:append:class-target () {
|
|
perl_native_fixup
|
|
}
|
|
|
|
do_install:append:class-native() {
|
|
create_wrapper ${D}${bindir}/git \
|
|
GIT_EXEC_PATH='`dirname $''realpath`'/${REL_GIT_EXEC_PATH} \
|
|
GIT_SSL_CAINFO='`dirname $''realpath`'/${REL_GIT_SSL_CAINFO} \
|
|
GIT_TEMPLATE_DIR='`dirname $''realpath`'/${REL_GIT_TEMPLATE_DIR}
|
|
}
|
|
|
|
do_install:append:class-nativesdk() {
|
|
create_wrapper ${D}${bindir}/git \
|
|
GIT_EXEC_PATH='`dirname $''realpath`'/${REL_GIT_EXEC_PATH} \
|
|
GIT_TEMPLATE_DIR='`dirname $''realpath`'/${REL_GIT_TEMPLATE_DIR}
|
|
perl_native_fixup
|
|
}
|
|
|
|
FILES:${PN} += "${datadir}/git-core ${libexecdir}/git-core/"
|
|
|
|
PERLTOOLS = " \
|
|
${bindir}/git-cvsserver \
|
|
${libexecdir}/git-core/git-archimport \
|
|
${libexecdir}/git-core/git-cvsexportcommit \
|
|
${libexecdir}/git-core/git-cvsimport \
|
|
${libexecdir}/git-core/git-cvsserver \
|
|
${libexecdir}/git-core/git-send-email \
|
|
${libexecdir}/git-core/git-svn \
|
|
${libexecdir}/git-core/git-instaweb \
|
|
${datadir}/gitweb/gitweb.cgi \
|
|
${datadir}/git-core/templates/hooks/prepare-commit-msg.sample \
|
|
${datadir}/git-core/templates/hooks/pre-rebase.sample \
|
|
${datadir}/git-core/templates/hooks/fsmonitor-watchman.sample \
|
|
"
|
|
|
|
# Git tools requiring perl
|
|
PACKAGES =+ "${PN}-perltools"
|
|
FILES:${PN}-perltools += " \
|
|
${PERLTOOLS} \
|
|
${libdir}/perl \
|
|
${datadir}/perl5 \
|
|
"
|
|
|
|
RDEPENDS:${PN}-perltools = "${PN} perl perl-module-file-path findutils"
|
|
|
|
# git-tk package with gitk and git-gui
|
|
PACKAGES =+ "${PN}-tk"
|
|
#RDEPENDS:${PN}-tk = "${PN} tk tcl"
|
|
#EXTRA_OEMAKE = "TCL_PATH=${STAGING_BINDIR_CROSS}/tclsh"
|
|
FILES:${PN}-tk = " \
|
|
${bindir}/gitk \
|
|
${datadir}/gitk \
|
|
"
|
|
|
|
PACKAGES =+ "gitweb"
|
|
FILES:gitweb = "${datadir}/gitweb/"
|
|
RDEPENDS:gitweb = "perl"
|
|
|
|
BBCLASSEXTEND = "native nativesdk"
|
|
|
|
EXTRA_OECONF += "ac_cv_snprintf_returns_bogus=no \
|
|
ac_cv_fread_reads_directories=${ac_cv_fread_reads_directories=yes} \
|
|
"
|
|
EXTRA_OEMAKE += "NO_GETTEXT=1"
|
|
|
|
SRC_URI[tarball.sha256sum] = "b0a4d1ad50e820edd84c0d1b609c29349d4ae2681ed458914ea759aafcd4bf21"
|