Bump buildroot to 2019.02

This commit is contained in:
2019-03-28 22:49:48 +01:00
parent 5598b1b762
commit 920d307141
5121 changed files with 78550 additions and 46132 deletions

View File

@@ -0,0 +1,103 @@
# CONFIG_SWAP is not set
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
# CONFIG_CROSS_MEMORY_ATTACH is not set
CONFIG_HIGH_RES_TIMERS=y
CONFIG_CGROUPS=y
CONFIG_MEMCG=y
CONFIG_BLK_CGROUP=y
CONFIG_CGROUP_SCHED=y
CONFIG_CGROUP_PIDS=y
CONFIG_CGROUP_FREEZER=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CGROUP_CPUACCT=y
# CONFIG_COMPAT_BRK is not set
# CONFIG_X86_EXTENDED_PLATFORM is not set
CONFIG_IOSF_MBI=y
CONFIG_MCORE2=y
# CONFIG_X86_MCE is not set
# CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS is not set
CONFIG_LEGACY_VSYSCALL_NONE=y
# CONFIG_SUSPEND is not set
# CONFIG_ACPI is not set
CONFIG_CPU_IDLE=y
CONFIG_PCI_MSI=y
# CONFIG_VIRTUALIZATION is not set
# CONFIG_IOSCHED_CFQ is not set
# CONFIG_MQ_IOSCHED_DEADLINE is not set
# CONFIG_MQ_IOSCHED_KYBER is not set
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_IPV6 is not set
CONFIG_NETFILTER=y
CONFIG_NF_CONNTRACK=y
# CONFIG_NF_CONNTRACK_PROCFS is not set
# CONFIG_NF_CT_PROTO_DCCP is not set
# CONFIG_NF_CT_PROTO_SCTP is not set
# CONFIG_NF_CT_PROTO_UDPLITE is not set
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=y
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
CONFIG_NETFILTER_XT_MATCH_IPVS=y
CONFIG_IP_VS=y
CONFIG_IP_VS_RR=y
CONFIG_IP_VS_NFCT=y
CONFIG_IP_NF_IPTABLES=y
CONFIG_IP_NF_FILTER=y
CONFIG_IP_NF_NAT=y
CONFIG_IP_NF_TARGET_MASQUERADE=y
CONFIG_BRIDGE=y
# CONFIG_BRIDGE_IGMP_SNOOPING is not set
# CONFIG_WIRELESS is not set
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_VIRTIO_BLK=y
CONFIG_NETDEVICES=y
CONFIG_DUMMY=y
CONFIG_MACVLAN=y
CONFIG_VXLAN=y
CONFIG_VETH=y
CONFIG_VIRTIO_NET=y
# CONFIG_ETHERNET is not set
# CONFIG_WLAN is not set
# CONFIG_INPUT_KEYBOARD is not set
# CONFIG_INPUT_MOUSE is not set
# CONFIG_SERIO is not set
CONFIG_VT_HW_CONSOLE_BINDING=y
# CONFIG_DEVMEM is not set
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
# CONFIG_SERIAL_8250_LPSS is not set
# CONFIG_SERIAL_8250_MID is not set
# CONFIG_HW_RANDOM_INTEL is not set
# CONFIG_HW_RANDOM_AMD is not set
# CONFIG_HW_RANDOM_VIA is not set
CONFIG_HW_RANDOM_VIRTIO=y
# CONFIG_DEVPORT is not set
# CONFIG_HWMON is not set
# CONFIG_USB_SUPPORT is not set
CONFIG_RTC_CLASS=y
CONFIG_VIRTIO_PCI=y
# CONFIG_VIRTIO_PCI_LEGACY is not set
# CONFIG_X86_PLATFORM_DEVICES is not set
# CONFIG_IOMMU_SUPPORT is not set
CONFIG_EXT4_FS=y
CONFIG_OVERLAY_FS=y
CONFIG_OVERLAY_FS_REDIRECT_DIR=y
CONFIG_TMPFS=y
# CONFIG_MISC_FILESYSTEMS is not set
# CONFIG_NETWORK_FILESYSTEMS is not set
CONFIG_KEYS=y
CONFIG_SECURITYFS=y
# CONFIG_CRYPTO_ECHAINIV is not set
# CONFIG_CRYPTO_HW is not set
# CONFIG_UNUSED_SYMBOLS is not set
CONFIG_UNWINDER_FRAME_POINTER=y

View File

@@ -0,0 +1,4 @@
version: '3'
services:
busybox:
image: "busybox:latest"

View File

@@ -0,0 +1,5 @@
CONFIG_F2FS_FS=y
CONFIG_F2FS_STAT_FS=y
CONFIG_F2FS_FS_XATTR=y
CONFIG_F2FS_FS_POSIX_ACL=y
CONFIG_F2FS_FS_SECURITY=y

View File

@@ -34,17 +34,17 @@ def download(dldir, filename):
os.makedirs(dldir)
tmpfile = tempfile.mktemp(dir=dldir)
print "Downloading to {}".format(tmpfile)
print("Downloading to {}".format(tmpfile))
try:
url_fh = urlopen(os.path.join(ARTIFACTS_URL, filename))
with open(tmpfile, "w+") as tmpfile_fh:
tmpfile_fh.write(url_fh.read())
except (HTTPError, URLError), err:
except (HTTPError, URLError) as err:
os.unlink(tmpfile)
raise err
print "Renaming from %s to %s" % (tmpfile, finalpath)
print("Renaming from {} to {}".format(tmpfile, finalpath))
os.rename(tmpfile, finalpath)
return finalpath

View File

@@ -28,8 +28,9 @@ MINIMAL_CONFIG = \
"""
class BRTest(unittest.TestCase):
class BRConfigTest(unittest.TestCase):
config = None
br2_external = list()
downloaddir = None
outputdir = None
logtofile = True
@@ -38,15 +39,15 @@ class BRTest(unittest.TestCase):
timeout_multiplier = 1
def __init__(self, names):
super(BRTest, self).__init__(names)
super(BRConfigTest, self).__init__(names)
self.testname = self.__class__.__name__
self.builddir = self.outputdir and os.path.join(self.outputdir, self.testname)
self.emulator = None
self.config += '\nBR2_DL_DIR="{}"\n'.format(self.downloaddir)
self.config += "\nBR2_JLEVEL={}\n".format(self.jlevel)
def show_msg(self, msg):
print "{} {:40s} {}".format(datetime.datetime.now().strftime("%H:%M:%S"),
self.testname, msg)
print("{} {:40s} {}".format(datetime.datetime.now().strftime("%H:%M:%S"),
self.testname, msg))
def setUp(self):
self.show_msg("Starting")
@@ -55,6 +56,22 @@ class BRTest(unittest.TestCase):
if not self.keepbuilds:
self.b.delete()
if not self.b.is_finished():
self.b.configure(make_extra_opts=["BR2_EXTERNAL={}".format(":".join(self.br2_external))])
def tearDown(self):
self.show_msg("Cleaning up")
if self.b and not self.keepbuilds:
self.b.delete()
class BRTest(BRConfigTest):
def __init__(self, names):
super(BRTest, self).__init__(names)
self.emulator = None
def setUp(self):
super(BRTest, self).setUp()
if not self.b.is_finished():
self.show_msg("Building")
self.b.build()
@@ -64,8 +81,6 @@ class BRTest(unittest.TestCase):
self.logtofile, self.timeout_multiplier)
def tearDown(self):
self.show_msg("Cleaning up")
if self.emulator:
self.emulator.stop()
if self.b and not self.keepbuilds:
self.b.delete()
super(BRTest, self).tearDown()

View File

@@ -12,7 +12,17 @@ class Builder(object):
self.builddir = builddir
self.logfile = infra.open_log_file(builddir, "build", logtofile)
def build(self):
def configure(self, make_extra_opts=[], make_extra_env={}):
"""Configure the build.
make_extra_opts: a list of arguments to be passed to the make
command.
e.g. make_extra_opts=["BR2_EXTERNAL=/path"]
make_extra_env: a dict of variables to be appended (or replaced)
in the environment that calls make.
e.g. make_extra_env={"BR2_DL_DIR": "/path"}
"""
if not os.path.isdir(self.builddir):
os.makedirs(self.builddir)
@@ -24,15 +34,43 @@ class Builder(object):
"> end defconfig\n")
self.logfile.flush()
env = {"PATH": os.environ["PATH"]}
env.update(make_extra_env)
cmd = ["make",
"O={}".format(self.builddir),
"olddefconfig"]
ret = subprocess.call(cmd, stdout=self.logfile, stderr=self.logfile)
"O={}".format(self.builddir)]
cmd += make_extra_opts
cmd += ["olddefconfig"]
ret = subprocess.call(cmd, stdout=self.logfile, stderr=self.logfile,
env=env)
if ret != 0:
raise SystemError("Cannot olddefconfig")
def build(self, make_extra_opts=[], make_extra_env={}):
"""Perform the build.
make_extra_opts: a list of arguments to be passed to the make
command. It can include a make target.
e.g. make_extra_opts=["foo-source"]
make_extra_env: a dict of variables to be appended (or replaced)
in the environment that calls make.
e.g. make_extra_env={"BR2_DL_DIR": "/path"}
"""
env = {"PATH": os.environ["PATH"]}
if "http_proxy" in os.environ:
self.logfile.write("Using system proxy: " +
os.environ["http_proxy"] + "\n")
env['http_proxy'] = os.environ["http_proxy"]
env['https_proxy'] = os.environ["http_proxy"]
env.update(make_extra_env)
cmd = ["make", "-C", self.builddir]
ret = subprocess.call(cmd, stdout=self.logfile, stderr=self.logfile)
cmd += make_extra_opts
ret = subprocess.call(cmd, stdout=self.logfile, stderr=self.logfile,
env=env)
if ret != 0:
raise SystemError("Build failed")

View File

@@ -5,7 +5,7 @@ import os
import nose2
import multiprocessing
from infra.basetest import BRTest
from infra.basetest import BRConfigTest
def main():
@@ -38,10 +38,10 @@ def main():
test_dir = os.path.dirname(script_path)
if args.stdout:
BRTest.logtofile = False
BRConfigTest.logtofile = False
if args.list:
print "List of tests"
print("List of tests")
nose2.discover(argv=[script_path,
"-s", test_dir,
"-v",
@@ -52,37 +52,36 @@ def main():
if args.download is None:
args.download = os.getenv("BR2_DL_DIR")
if args.download is None:
print "Missing download directory, please use -d/--download"
print ""
print("Missing download directory, please use -d/--download")
print("")
parser.print_help()
return 1
BRTest.downloaddir = os.path.abspath(args.download)
os.putenv("BR2_DL_DIR", BRTest.downloaddir)
BRConfigTest.downloaddir = os.path.abspath(args.download)
if args.output is None:
print "Missing output directory, please use -o/--output"
print ""
print("Missing output directory, please use -o/--output")
print("")
parser.print_help()
return 1
if not os.path.exists(args.output):
os.mkdir(args.output)
BRTest.outputdir = os.path.abspath(args.output)
BRConfigTest.outputdir = os.path.abspath(args.output)
if args.all is False and len(args.testname) == 0:
print "No test selected"
print ""
print("No test selected")
print("")
parser.print_help()
return 1
BRTest.keepbuilds = args.keep
BRConfigTest.keepbuilds = args.keep
if args.testcases != 1:
if args.testcases < 1:
print "Invalid number of testcases to run simultaneously"
print ""
print("Invalid number of testcases to run simultaneously")
print("")
parser.print_help()
return 1
# same default BR2_JLEVEL as package/Makefile.in
@@ -90,23 +89,23 @@ def main():
each_testcase = br2_jlevel / args.testcases
if each_testcase < 1:
each_testcase = 1
BRTest.jlevel = each_testcase
BRConfigTest.jlevel = each_testcase
if args.jlevel:
if args.jlevel < 0:
print "Invalid BR2_JLEVEL to use for each testcase"
print ""
print("Invalid BR2_JLEVEL to use for each testcase")
print("")
parser.print_help()
return 1
# the user can override the auto calculated value
BRTest.jlevel = args.jlevel
BRConfigTest.jlevel = args.jlevel
if args.timeout_multiplier < 1:
print "Invalid multiplier for timeout values"
print ""
print("Invalid multiplier for timeout values")
print("")
parser.print_help()
return 1
BRTest.timeout_multiplier = args.timeout_multiplier
BRConfigTest.timeout_multiplier = args.timeout_multiplier
nose2_args = ["-v",
"-N", str(args.testcases),

View File

@@ -40,7 +40,7 @@ class TestATFAllwinner(infra.basetest.BRTest):
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2017.09"
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2017.11"
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="bananapi_m64"
BR2_TARGET_UBOOT_NEEDS_DTC=y
BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y
@@ -63,7 +63,7 @@ class TestATFMarvell(infra.basetest.BRTest):
BR2_TARGET_ARM_TRUSTED_FIRMWARE=y
BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y
BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://github.com/MarvellEmbeddedProcessors/atf-marvell.git"
BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="43965481990fd92e9666cf9371a8cf478055ec7c"
BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="711ecd32afe465b38052b5ba374c825b158eea18"
BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="a80x0_mcbin"
BR2_TARGET_ARM_TRUSTED_FIRMWARE_FIP=y
BR2_TARGET_ARM_TRUSTED_FIRMWARE_UBOOT_AS_BL33=y
@@ -74,7 +74,7 @@ class TestATFMarvell(infra.basetest.BRTest):
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BOARDNAME="mvebu_mcbin-88f8040"
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2017.09"
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2018.09"
BR2_TARGET_UBOOT_NEEDS_DTC=y
"""

View File

@@ -0,0 +1,110 @@
import os
import subprocess
import json
import infra.basetest
class TestHardeningBase(infra.basetest.BRTest):
config = \
"""
BR2_powerpc64=y
BR2_powerpc_e5500=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
BR2_TOOLCHAIN_EXTERNAL_URL="https://toolchains.bootlin.com/downloads/releases/toolchains/powerpc64-e5500/tarballs/powerpc64-e5500--glibc--stable-2018.02-2.tar.bz2"
BR2_TOOLCHAIN_EXTERNAL_GCC_6=y
BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_1=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y
BR2_TOOLCHAIN_EXTERNAL_CXX=y
BR2_PACKAGE_LIGHTTPD=y
BR2_PACKAGE_HOST_CHECKSEC=y
# BR2_TARGET_ROOTFS_TAR is not set
"""
checksec_files = ["usr/sbin/lighttpd", "bin/busybox"]
def checksec_run(self, target_file):
filepath = os.path.join(self.builddir, "target", target_file)
cmd = ["host/bin/checksec", "--output", "json", "--file", filepath]
# Checksec is being used for elf file analysis only. There are no
# assumptions of target/run-time checks as part of this testing.
ret = subprocess.check_output(cmd,
stderr=open(os.devnull, "w"),
cwd=self.builddir,
env={"LANG": "C"})
return json.loads(ret)
class TestRelro(TestHardeningBase):
config = TestHardeningBase.config + \
"""
BR2_RELRO_FULL=y
"""
def test_run(self):
for f in self.checksec_files:
out = self.checksec_run(f)
self.assertEqual(out["file"]["relro"], "full")
self.assertEqual(out["file"]["pie"], "yes")
class TestRelroPartial(TestHardeningBase):
config = TestHardeningBase.config + \
"""
BR2_RELRO_PARTIAL=y
"""
def test_run(self):
for f in self.checksec_files:
out = self.checksec_run(f)
self.assertEqual(out["file"]["relro"], "partial")
self.assertEqual(out["file"]["pie"], "no")
class TestSspNone(TestHardeningBase):
config = TestHardeningBase.config + \
"""
BR2_SSP_NONE=y
"""
def test_run(self):
for f in self.checksec_files:
out = self.checksec_run(f)
self.assertEqual(out["file"]["canary"], "no")
class TestSspStrong(TestHardeningBase):
config = TestHardeningBase.config + \
"""
BR2_SSP_STRONG=y
"""
def test_run(self):
for f in self.checksec_files:
out = self.checksec_run(f)
self.assertEqual(out["file"]["canary"], "yes")
class TestFortifyNone(TestHardeningBase):
config = TestHardeningBase.config + \
"""
BR2_FORTIFY_SOURCE_NONE=y
"""
def test_run(self):
for f in self.checksec_files:
out = self.checksec_run(f)
self.assertEqual(out["file"]["fortified"], "0")
class TestFortifyConserv(TestHardeningBase):
config = TestHardeningBase.config + \
"""
BR2_FORTIFY_SOURCE_1=y
"""
def test_run(self):
for f in self.checksec_files:
out = self.checksec_run(f)
self.assertNotEqual(out["file"]["fortified"], "0")

View File

@@ -18,17 +18,17 @@ class TestPostScripts(infra.basetest.BRTest):
infra.filepath("tests/core/post-fakeroot.sh"),
infra.filepath("tests/core/post-image.sh"))
def check_post_log_file(self, path, what):
def check_post_log_file(self, f, what, target_dir):
lines = {}
with open(path, 'rb') as csvfile:
with open(os.path.join(self.builddir, "build", f), 'rb') as csvfile:
r = csv.reader(csvfile, delimiter=',')
for row in r:
lines[row[0]] = row[1]
self.assertEqual(lines["arg1"], os.path.join(self.builddir, what))
self.assertEqual(lines["arg1"], what)
self.assertEqual(lines["arg2"], "foobar")
self.assertEqual(lines["arg3"], "baz")
self.assertEqual(lines["TARGET_DIR"], os.path.join(self.builddir, "target"))
self.assertEqual(lines["TARGET_DIR"], target_dir)
self.assertEqual(lines["BUILD_DIR"], os.path.join(self.builddir, "build"))
self.assertEqual(lines["HOST_DIR"], os.path.join(self.builddir, "host"))
staging = os.readlink(os.path.join(self.builddir, "staging"))
@@ -37,9 +37,12 @@ class TestPostScripts(infra.basetest.BRTest):
self.assertEqual(lines["BR2_CONFIG"], os.path.join(self.builddir, ".config"))
def test_run(self):
f = os.path.join(self.builddir, "build", "post-build.log")
self.check_post_log_file(f, "target")
f = os.path.join(self.builddir, "build", "post-fakeroot.log")
self.check_post_log_file(f, "target")
f = os.path.join(self.builddir, "build", "post-image.log")
self.check_post_log_file(f, "images")
self.check_post_log_file("post-build.log",
os.path.join(self.builddir, "target"),
os.path.join(self.builddir, "target"))
self.check_post_log_file("post-fakeroot.log",
os.path.join(self.builddir, "build/buildroot-fs/tar/target"),
os.path.join(self.builddir, "build/buildroot-fs/tar/target"))
self.check_post_log_file("post-image.log",
os.path.join(self.builddir, "images"),
os.path.join(self.builddir, "target"))

View File

@@ -0,0 +1 @@
name: GIT_HASH

View File

@@ -0,0 +1,4 @@
include $(sort $(wildcard $(BR2_EXTERNAL_GIT_HASH_PATH)/package/*/*.mk))
# Get the git server port number from the test infra
GITREMOTE_PORT_NUMBER ?= 9418

View File

@@ -0,0 +1 @@
sha256 0000000000000000000000000000000000000000000000000000000000000000 bad-a238b1dfcd825d47d834af3c5223417c8411d90d.tar.gz

View File

@@ -0,0 +1,10 @@
################################################################################
#
# bad
#
################################################################################
BAD_VERSION = a238b1dfcd825d47d834af3c5223417c8411d90d
BAD_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git
$(eval $(generic-package))

View File

@@ -0,0 +1 @@
sha256 d00ae598e9e770d607621a86766030b42eaa58156cb8d482b043969da7963c23 good-a238b1dfcd825d47d834af3c5223417c8411d90d.tar.gz

View File

@@ -0,0 +1,10 @@
################################################################################
#
# good
#
################################################################################
GOOD_VERSION = a238b1dfcd825d47d834af3c5223417c8411d90d
GOOD_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git
$(eval $(generic-package))

View File

@@ -0,0 +1,10 @@
################################################################################
#
# nohash
#
################################################################################
NOHASH_VERSION = a238b1dfcd825d47d834af3c5223417c8411d90d
NOHASH_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git
$(eval $(generic-package))

View File

@@ -0,0 +1 @@
name: GIT_REFS

View File

@@ -0,0 +1,4 @@
include $(sort $(wildcard $(BR2_EXTERNAL_GIT_REFS_PATH)/package/*/*.mk))
# Get the git server port number from the test infra
GITREMOTE_PORT_NUMBER ?= 9418

View File

@@ -0,0 +1,2 @@
sha256 70b76187369e47db69dac02c5696e63b35199cd20490fa473d289dd377774613 git-partial-sha1-branch-head-68c197d0879d485f4f6c.tar.gz
sha256 2c1126513651b0d346a4e6d1bb75ac1c9999217e18026302d27bea47b06c7fb2 file

View File

@@ -0,0 +1,11 @@
################################################################################
#
# git-partial-sha1-branch-head
#
################################################################################
GIT_PARTIAL_SHA1_BRANCH_HEAD_VERSION = 68c197d0879d485f4f6c
GIT_PARTIAL_SHA1_BRANCH_HEAD_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git
GIT_PARTIAL_SHA1_BRANCH_HEAD_LICENSE_FILES = file
$(eval $(generic-package))

View File

@@ -0,0 +1,2 @@
sha256 9db079b9e215799d59975db7b2b26671eff1932ee6cf1075296f2ace3e2cb746 git-partial-sha1-reachable-by-branch-317406308d9259e2231b.tar.gz
sha256 fabbc65c442bacb5e69b7adfea6d14fbbfc1327134322efd12771dc84387d507 file

View File

@@ -0,0 +1,11 @@
################################################################################
#
# git-partial-sha1-reachable-by-branch
#
################################################################################
GIT_PARTIAL_SHA1_REACHABLE_BY_BRANCH_VERSION = 317406308d9259e2231b
GIT_PARTIAL_SHA1_REACHABLE_BY_BRANCH_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git
GIT_PARTIAL_SHA1_REACHABLE_BY_BRANCH_LICENSE_FILES = file
$(eval $(generic-package))

View File

@@ -0,0 +1,2 @@
sha256 f2ef9772f13a9ef9a2c7cde0795e179defb12320d1747fc8d2408748ef5844c2 git-partial-sha1-reachable-by-tag-46bae5b639e5a18e2cc4.tar.gz
sha256 2de87d77a2f226813f2d9bda906e970e4195605cdba6680443c0c04d89c532b6 file

View File

@@ -0,0 +1,11 @@
################################################################################
#
# git-partial-sha1-reachable-by-tag
#
################################################################################
GIT_PARTIAL_SHA1_REACHABLE_BY_TAG_VERSION = 46bae5b639e5a18e2cc4
GIT_PARTIAL_SHA1_REACHABLE_BY_TAG_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git
GIT_PARTIAL_SHA1_REACHABLE_BY_TAG_LICENSE_FILES = file
$(eval $(generic-package))

View File

@@ -0,0 +1,2 @@
sha256 721143b41b8e56cfd9025833f1602e900a490627db2504e5b4907baa23e0019e git-partial-sha1-tag-itself-2b0e0d98a49c97da6a61.tar.gz
sha256 6de8772a0a58fa62e2b8c58d4dae55c9db7534ad3b3918ecc849a9008d58f081 file

View File

@@ -0,0 +1,11 @@
################################################################################
#
# git-partial-sha1-tag-itself
#
################################################################################
GIT_PARTIAL_SHA1_TAG_ITSELF_VERSION = 2b0e0d98a49c97da6a61
GIT_PARTIAL_SHA1_TAG_ITSELF_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git
GIT_PARTIAL_SHA1_TAG_ITSELF_LICENSE_FILES = file
$(eval $(generic-package))

View File

@@ -0,0 +1,2 @@
sha256 0fbf7fe935f962ceaafcf8e0ffd25dd2a83752c3f0fd055a942a53f8c9235fa7 git-partial-sha1-tag-points-to-516c9c5f64ec66534d4d.tar.gz
sha256 6de8772a0a58fa62e2b8c58d4dae55c9db7534ad3b3918ecc849a9008d58f081 file

View File

@@ -0,0 +1,11 @@
################################################################################
#
# git-partial-sha1-tag-points-to
#
################################################################################
GIT_PARTIAL_SHA1_TAG_POINTS_TO_VERSION = 516c9c5f64ec66534d4d
GIT_PARTIAL_SHA1_TAG_POINTS_TO_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git
GIT_PARTIAL_SHA1_TAG_POINTS_TO_LICENSE_FILES = file
$(eval $(generic-package))

View File

@@ -0,0 +1,2 @@
sha256 a21a2507b6d94ad484e49e3a9ae698f672a57469aab8e1779da77df7c9d4d337 git-sha1-branch-head-68c197d0879d485f4f6cee85544722b79e68e59f.tar.gz
sha256 2c1126513651b0d346a4e6d1bb75ac1c9999217e18026302d27bea47b06c7fb2 file

View File

@@ -0,0 +1,11 @@
################################################################################
#
# git-sha1-branch-head
#
################################################################################
GIT_SHA1_BRANCH_HEAD_VERSION = 68c197d0879d485f4f6cee85544722b79e68e59f
GIT_SHA1_BRANCH_HEAD_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git
GIT_SHA1_BRANCH_HEAD_LICENSE_FILES = file
$(eval $(generic-package))

View File

@@ -0,0 +1,2 @@
sha256 8909e76d898e651af0bc23fae4103b87888bfe77448d71aaf1fbec3da97a3ce2 git-sha1-reachable-by-branch-317406308d9259e2231bd0d6ddad3de3832bce08.tar.gz
sha256 fabbc65c442bacb5e69b7adfea6d14fbbfc1327134322efd12771dc84387d507 file

View File

@@ -0,0 +1,11 @@
################################################################################
#
# git-sha1-reachable-by-branch
#
################################################################################
GIT_SHA1_REACHABLE_BY_BRANCH_VERSION = 317406308d9259e2231bd0d6ddad3de3832bce08
GIT_SHA1_REACHABLE_BY_BRANCH_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git
GIT_SHA1_REACHABLE_BY_BRANCH_LICENSE_FILES = file
$(eval $(generic-package))

View File

@@ -0,0 +1,2 @@
sha256 9b20256a3058221a8e91031f11700d9945ea84e8f328fa8e42e1cb9f7a30e3b2 git-sha1-reachable-by-tag-46bae5b639e5a18e2cc4dc508f080d566baeff59.tar.gz
sha256 2de87d77a2f226813f2d9bda906e970e4195605cdba6680443c0c04d89c532b6 file

View File

@@ -0,0 +1,11 @@
################################################################################
#
# git-sha1-reachable-by-tag
#
################################################################################
GIT_SHA1_REACHABLE_BY_TAG_VERSION = 46bae5b639e5a18e2cc4dc508f080d566baeff59
GIT_SHA1_REACHABLE_BY_TAG_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git
GIT_SHA1_REACHABLE_BY_TAG_LICENSE_FILES = file
$(eval $(generic-package))

View File

@@ -0,0 +1,2 @@
sha256 7d301c1a1054d6aee49193ca9e938f4da561ff73fb01719662865aa38bdc4361 git-sha1-tag-itself-2b0e0d98a49c97da6a618ab36337e2058eb733a2.tar.gz
sha256 6de8772a0a58fa62e2b8c58d4dae55c9db7534ad3b3918ecc849a9008d58f081 file

View File

@@ -0,0 +1,11 @@
################################################################################
#
# git-sha1-tag-itself
#
################################################################################
GIT_SHA1_TAG_ITSELF_VERSION = 2b0e0d98a49c97da6a618ab36337e2058eb733a2
GIT_SHA1_TAG_ITSELF_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git
GIT_SHA1_TAG_ITSELF_LICENSE_FILES = file
$(eval $(generic-package))

View File

@@ -0,0 +1,2 @@
sha256 c1f9f5734529a31140a71c031534460811f001b4db37d26833f386358150ab47 git-sha1-tag-points-to-516c9c5f64ec66534d4d069c2e408d9ae4dce023.tar.gz
sha256 6de8772a0a58fa62e2b8c58d4dae55c9db7534ad3b3918ecc849a9008d58f081 file

View File

@@ -0,0 +1,11 @@
################################################################################
#
# git-sha1-tag-points-to
#
################################################################################
GIT_SHA1_TAG_POINTS_TO_VERSION = 516c9c5f64ec66534d4d069c2e408d9ae4dce023
GIT_SHA1_TAG_POINTS_TO_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git
GIT_SHA1_TAG_POINTS_TO_LICENSE_FILES = file
$(eval $(generic-package))

View File

@@ -0,0 +1,2 @@
sha256 f9d46ff8a1a344c6c31fa4211220f3085c446abd31626232540703158276f22c git-submodule-disabled-a9dbc1e23c45e8e1b88c0448763f54d714eb6f8f.tar.gz
sha256 ba8b6ddc4726bfb6a05045ebfd8c43263c968ad1bc601bd46a25bc055008eddc file

View File

@@ -0,0 +1,11 @@
################################################################################
#
# git-submodule-disabled
#
################################################################################
GIT_SUBMODULE_DISABLED_VERSION = a9dbc1e23c45e8e1b88c0448763f54d714eb6f8f
GIT_SUBMODULE_DISABLED_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git
GIT_SUBMODULE_DISABLED_LICENSE_FILES = file
$(eval $(generic-package))

View File

@@ -0,0 +1 @@
sha256 139a34c3c844c844dee74b6746418cfa75fbcc4205794ac8c0b3cd7d55a76792 git-submodule-enabled-a9dbc1e23c45e8e1b88c0448763f54d714eb6f8f.tar.gz

View File

@@ -0,0 +1,11 @@
################################################################################
#
# git-submodule-enabled
#
################################################################################
GIT_SUBMODULE_ENABLED_VERSION = a9dbc1e23c45e8e1b88c0448763f54d714eb6f8f
GIT_SUBMODULE_ENABLED_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git
GIT_SUBMODULE_ENABLED_GIT_SUBMODULES = YES
$(eval $(generic-package))

View File

@@ -0,0 +1,2 @@
sha256 85dcb5bcf9bed496688d0eb01c7a3ce05c5b46b984cc1e9e76a6dbefd976e6b3 git-tag-mytag.tar.gz
sha256 6de8772a0a58fa62e2b8c58d4dae55c9db7534ad3b3918ecc849a9008d58f081 file

View File

@@ -0,0 +1,11 @@
################################################################################
#
# git-tag
#
################################################################################
GIT_TAG_VERSION = mytag
GIT_TAG_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git
GIT_TAG_LICENSE_FILES = file
$(eval $(generic-package))

View File

@@ -0,0 +1,2 @@
sha256 04715901977503d1df650e0959f4d31d8e7b105e2ac99a2182e0652b8f13baa1 git-wrong-content-a238b1dfcd825d47d834af3c5223417c8411d90d.tar.gz
sha256 0000000000000000000000000000000000000000000000000000000000000000 file

View File

@@ -0,0 +1,11 @@
################################################################################
#
# git-wrong-content
#
################################################################################
GIT_WRONG_CONTENT_VERSION = a238b1dfcd825d47d834af3c5223417c8411d90d
GIT_WRONG_CONTENT_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git
GIT_WRONG_CONTENT_LICENSE_FILES = file
$(eval $(generic-package))

View File

@@ -0,0 +1,11 @@
################################################################################
#
# git-wrong-sha1
#
################################################################################
GIT_WRONG_SHA1_VERSION = 0000000000000000000000000000000000000000
GIT_WRONG_SHA1_SITE = git://localhost:$(GITREMOTE_PORT_NUMBER)/repo.git
GIT_WRONG_SHA1_LICENSE_FILES = file
$(eval $(generic-package))

View File

@@ -0,0 +1 @@
objects/*/* binary

View File

@@ -0,0 +1 @@
cb545facf77bbc5f24f95b6d503c338d10b7b717

View File

@@ -0,0 +1,4 @@
[core]
repositoryformatversion = 0
filemode = true
bare = true

View File

@@ -0,0 +1 @@
x­Î˝ Â0@ajOq $:;˛#„X€&8˙…q,S°=íW<=_rćjśv­ĆÖ&‡(˝“:Y§U"e“1a<31>0B#<23>•#9AĎv+.쩆gŞŤW_w†Cý`źżxš3ńŇűŹ 5N¨Ť4*D±é6ŃâźrWnL׺Rç^ű_fĹW`

View File

@@ -0,0 +1 @@
1df823cb8a6d1866148ae50a8009762a9c4c777f

View File

@@ -0,0 +1 @@
objects/*/* binary

View File

@@ -0,0 +1 @@
32d61bae693af7879da63b89a60d3ae67f851e56

View File

@@ -0,0 +1,4 @@
[core]
repositoryformatversion = 0
filemode = true
bare = true

View File

@@ -0,0 +1 @@
x­Î½ Â0@ajOq $:;²#„X€&8ÿ…q,S°=íW<=_ræjœv­ÆÖ&‡(½“:Y§U"e“1a˜0B#ƒ•#9AÏv+.쩆<67>W_w†Cý`Ÿ¿xš3ñÒû<C3BB> 5N¨<4E>-t¨ŦÛDÊ ^¹1-B\y^cèJJ<4A>{í™o`Ì`+

View File

@@ -0,0 +1,2 @@
x­Î=n!†aל ¬5,? i Ã`#‡ÅbqÛg£飴<C2A3>ô}z©ÕZ†Ô³=ŒÎ,5‡hUðä 1È~£µQŠu4É)ì¼~“SÙ<05>yñKHètô$½ó½Ul<55>À縵.ß
aOM¾be¥¶Ý<Ö_¼\+<>#µzÊëLXä3€Øu<C398>üOwb{ÆyRB¼—ëÊij9Oñóå/­â ãxl)

View File

@@ -0,0 +1 @@
e83f6f805bd016b90acafc8702c52d778eb57310

View File

@@ -0,0 +1 @@
objects/*/* binary

View File

@@ -0,0 +1 @@
ref: refs/heads/master

View File

@@ -0,0 +1,4 @@
[core]
repositoryformatversion = 0
filemode = true
bare = true

View File

@@ -0,0 +1 @@
xEŽK!]s~BbŒpã °i *ƒA6s{1³póR©Eåõ<C3A5>`6jWo¦f¶äÉÜ­f²Ö(uDëI²F}`‰Q*Ñ×7ÕRr}4Ê:öG‰\3…+\Bëy¡úyf8¶MNå/Ï©„üšFæ4NàÁ'ÑÁ¢ L3

View File

@@ -0,0 +1 @@
x╜н;N1@Qj╞бхъ▄█P■ п░<©Ob▐▒ЦЛ·H)ХМ)╝.ЖжЙтчМ_Ф`жЛPьЛ⌠╛bОDь╨` ╒┤┌°RfУ┐╥╘аЫT, Rr▒б▐я9Л┼)XKы░┌Ш╪Т║?*б═╝ъaл╨a©]╚~Oэ╣_<·тоЖvп6 5гДcж▀Яф╗┤>╕'ЪSN∙^╛R╖zч≤√.╡■Ов©л╙1nS

View File

@@ -0,0 +1 @@
x­Î1n!@Qל ¬Å0àa£(òÒÄ'˜e`<60>“··¥î-·¯øú±ÕZ†F»ÑSÒ1ìrðB )![±~™çƒ‡À<E280A1>(±1 ~¹§mh¶<16>%X/Ž$ ãŒÑ[( ³Åãܺþ*»4ýÉ}”-¶ËwÑïý÷õ<C3B7>ǵrùÙÇV?4xC³pðz2hŒºë}z¤åÔà”:•uK2µœ§åúöÌ©ºÍFkb

View File

@@ -0,0 +1,2 @@
x­ÎKN1EQÆ^…7ÐåBQ6À„¬ º\n¬à6rœ»'æˆéyÒÓ¥ÞZ<C39E>Òû4³dc|ZK
¾pÖœÅV“ÂâˆO¼OéüŠ «·‰udCä2<C3A4>ŠEE•Á?æR ¼Í÷>ä[%¹ËW³îÔ¯—*_ÆÚ/ž¶†õã@½¥D¬\”UJÜõ=ùŸîÄÄÍq®ÛÎyé¥,ë×ó_JÅ7Êle

View File

@@ -0,0 +1 @@
x­Î=N1†ajŸÂØÈ;³ë !'ÏL+x<>Œ)¸=+¥HÑ>Ò÷éåVkÁ?<3F>®j3,cð°¨pˆâ ÍxA&I™R`æºnûp‹óè¢$X“àœÅ‰!AQŒ™ÕEC?ãÒºý(L]š}§>ÊÆíûZìK¿á¡Þñí\©|¸ÕW;¯.¤5¢G;9tÎìºGý§;“;m|cŽå¼©Lítšòïó#±æ$bl·

View File

@@ -0,0 +1 @@
x­ÎM @aלb.Ш”bŒñÃ_<C383>´@¸ðö6qáÞ¸ý/Ï•”¨<E2809D>ÔÓ®ÕÀ˜(ijBEc•Œ(MG?LÜ{ä£ðFh´ Ÿí^*\Éaõ.XeW Á±~°O_<Ï ií]I'Šk£ô´×Ðñ<C390>s¶é6ÑŸrŒ25•±Í9ø®ÄØÙ×á—YölÚ`C

Some files were not shown because too many files have changed in this diff Show More