summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/recipes-devtools/dpkg/dpkg.inc25
-rw-r--r--meta/recipes-devtools/dpkg/dpkg/0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch19
-rw-r--r--meta/recipes-devtools/dpkg/dpkg/0005-dpkg-compiler.m4-remove-Wvla.patch16
-rw-r--r--meta/recipes-devtools/dpkg/dpkg/0007-dpkg-deb-build.c-Remove-usage-of-clamp-mtime-in-tar.patch12
-rw-r--r--meta/recipes-devtools/dpkg/dpkg/dpkg-configure.service17
-rw-r--r--meta/recipes-devtools/dpkg/dpkg/glibc2.5-sync_file_range.patch11
-rw-r--r--meta/recipes-devtools/dpkg/dpkg/tweak-options-require-tar-1.27.patch27
-rw-r--r--meta/recipes-devtools/dpkg/dpkg_1.19.4.bb (renamed from meta/recipes-devtools/dpkg/dpkg_1.18.25.bb)11
8 files changed, 77 insertions, 61 deletions
diff --git a/meta/recipes-devtools/dpkg/dpkg.inc b/meta/recipes-devtools/dpkg/dpkg.inc
index fe4732d1db..fee7a75814 100644
--- a/meta/recipes-devtools/dpkg/dpkg.inc
+++ b/meta/recipes-devtools/dpkg/dpkg.inc
@@ -9,15 +9,8 @@ RDEPENDS_${PN}_class-native = ""
9 9
10UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/dpkg/" 10UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/dpkg/"
11 11
12inherit autotools gettext perlnative pkgconfig systemd perl-version 12inherit autotools gettext perlnative pkgconfig perl-version
13 13
14python () {
15 if not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d):
16 pn = d.getVar('PN')
17 d.setVar('SYSTEMD_SERVICE_%s' % (pn), 'dpkg-configure.service')
18}
19
20export PERL = "${bindir}/perl"
21PERL_class-native = "${STAGING_BINDIR_NATIVE}/perl-native/perl" 14PERL_class-native = "${STAGING_BINDIR_NATIVE}/perl-native/perl"
22 15
23export PERL_LIBDIR = "${libdir}/perl/${@get_perl_version(d)}" 16export PERL_LIBDIR = "${libdir}/perl/${@get_perl_version(d)}"
@@ -29,14 +22,14 @@ EXTRA_OECONF = "\
29 --with-libz \ 22 --with-libz \
30 --with-libbz2 \ 23 --with-libbz2 \
31 --without-libselinux \ 24 --without-libselinux \
25 TAR=tar \
32 " 26 "
33 27
28EXTRA_OECONF_append_class-target = " --disable-update-alternatives DEB_HOST_ARCH=${DPKG_ARCH}"
29
34PACKAGECONFIG = "liblzma" 30PACKAGECONFIG = "liblzma"
35PACKAGECONFIG[liblzma] = "--with-liblzma,--without-liblzma, xz" 31PACKAGECONFIG[liblzma] = "--with-liblzma,--without-liblzma, xz"
36 32
37EXTRA_OECONF += "TAR=tar"
38EXTRA_OECONF_append_class-target = " DEB_HOST_ARCH=${DPKG_ARCH}"
39
40do_install_append () { 33do_install_append () {
41 if [ "${PN}" = "dpkg-native" ]; then 34 if [ "${PN}" = "dpkg-native" ]; then
42 # update-alternatives doesn't have an offline mode 35 # update-alternatives doesn't have an offline mode
@@ -45,16 +38,6 @@ do_install_append () {
45 else 38 else
46 sed -i -e 's|^#!.*${bindir}/perl-native.*/perl|#!/usr/bin/env perl|' ${D}${bindir}/dpkg-* 39 sed -i -e 's|^#!.*${bindir}/perl-native.*/perl|#!/usr/bin/env perl|' ${D}${bindir}/dpkg-*
47 fi 40 fi
48
49 if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','false','true',d)};then
50 install -d ${D}${systemd_unitdir}/system
51 install -m 0644 ${WORKDIR}/dpkg-configure.service ${D}${systemd_unitdir}/system/
52 sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
53 -e 's,@SYSCONFDIR@,${sysconfdir},g' \
54 -e 's,@BINDIR@,${bindir},g' \
55 -e 's,@SYSTEMD_UNITDIR@,${systemd_unitdir},g' \
56 ${D}${systemd_unitdir}/system/dpkg-configure.service
57 fi
58} 41}
59 42
60PROV = "virtual/update-alternatives" 43PROV = "virtual/update-alternatives"
diff --git a/meta/recipes-devtools/dpkg/dpkg/0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch b/meta/recipes-devtools/dpkg/dpkg/0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch
index 93d870443c..b88be87490 100644
--- a/meta/recipes-devtools/dpkg/dpkg/0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch
+++ b/meta/recipes-devtools/dpkg/dpkg/0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch
@@ -10,15 +10,16 @@ Upstream-Status: Inappropriate [OE Specific]
10RP 2011/12/07 10RP 2011/12/07
11ALIMON 2016/05/26 11ALIMON 2016/05/26
12ALIMON 2017/02/21 12ALIMON 2017/02/21
13KKang 2019/02/20
13--- 14---
14 src/script.c | 44 +++----------------------------------------- 15 src/script.c | 44 +++-----------------------------------------
15 1 file changed, 3 insertions(+), 41 deletions(-) 16 1 file changed, 3 insertions(+), 41 deletions(-)
16 17
17diff --git a/src/script.c b/src/script.c 18diff --git a/src/script.c b/src/script.c
18index 2f252ae..768a9d1 100644 19index 0865b95..73ed35d 100644
19--- a/src/script.c 20--- a/src/script.c
20+++ b/src/script.c 21+++ b/src/script.c
21@@ -97,48 +97,10 @@ setexecute(const char *path, struct stat *stab) 22@@ -96,58 +96,11 @@ setexecute(const char *path, struct stat *stab)
22 static const char * 23 static const char *
23 maintscript_pre_exec(struct command *cmd) 24 maintscript_pre_exec(struct command *cmd)
24 { 25 {
@@ -32,6 +33,8 @@ index 2f252ae..768a9d1 100644
32- changedir = "/"; 33- changedir = "/";
33- 34-
34- if (instdirlen > 0 && !fc_script_chrootless) { 35- if (instdirlen > 0 && !fc_script_chrootless) {
36- int rc;
37-
35- if (strncmp(admindir, instdir, instdirlen) != 0) 38- if (strncmp(admindir, instdir, instdirlen) != 0)
36- ohshit(_("admindir must be inside instdir for dpkg to work properly")); 39- ohshit(_("admindir must be inside instdir for dpkg to work properly"));
37- if (setenv("DPKG_ADMINDIR", admindir + instdirlen, 1) < 0) 40- if (setenv("DPKG_ADMINDIR", admindir + instdirlen, 1) < 0)
@@ -39,7 +42,12 @@ index 2f252ae..768a9d1 100644
39- if (setenv("DPKG_ROOT", "", 1) < 0) 42- if (setenv("DPKG_ROOT", "", 1) < 0)
40- ohshite(_("unable to setenv for subprocesses")); 43- ohshite(_("unable to setenv for subprocesses"));
41- 44-
42- if (chroot(instdir)) 45- rc = chroot(instdir);
46- if (rc && fc_nonroot && errno == EPERM)
47- ohshit(_("not enough privileges to change root "
48- "directory with --force-not-root, consider "
49- "using --force-script-chrootless?"));
50- else if (rc)
43- ohshite(_("failed to chroot to '%.250s'"), instdir); 51- ohshite(_("failed to chroot to '%.250s'"), instdir);
44+ if (*instdir) { 52+ if (*instdir) {
45+ setenv("D", instdir, 1); 53+ setenv("D", instdir, 1);
@@ -64,7 +72,10 @@ index 2f252ae..768a9d1 100644
64- if (instdirlen == 0 || fc_script_chrootless) 72- if (instdirlen == 0 || fc_script_chrootless)
65- return cmd->filename; 73- return cmd->filename;
66- 74-
67- assert(strlen(cmd->filename) >= instdirlen); 75- if (strlen(cmd->filename) < instdirlen)
76- internerr("maintscript name '%s' length < instdir length %zd",
77- cmd->filename, instdirlen);
78
68- return cmd->filename + instdirlen; 79- return cmd->filename + instdirlen;
69+ return cmd->filename; 80+ return cmd->filename;
70 } 81 }
diff --git a/meta/recipes-devtools/dpkg/dpkg/0005-dpkg-compiler.m4-remove-Wvla.patch b/meta/recipes-devtools/dpkg/dpkg/0005-dpkg-compiler.m4-remove-Wvla.patch
index 96e96f277b..b368508862 100644
--- a/meta/recipes-devtools/dpkg/dpkg/0005-dpkg-compiler.m4-remove-Wvla.patch
+++ b/meta/recipes-devtools/dpkg/dpkg/0005-dpkg-compiler.m4-remove-Wvla.patch
@@ -15,22 +15,26 @@ Upstream-Status: Pending
15Signed-off-by: Donn Seeley <donn.seeley@windriver.com> 15Signed-off-by: Donn Seeley <donn.seeley@windriver.com>
16Signed-off-by: Robert Yang <liezhi.yang@windriver.com> 16Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
17Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> 17Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
18
19Update patch context for dpkg 1.19.4.
20
21Signed-off-by: Kai Kang <kai.kang@windriver.com>
18--- 22---
19 m4/dpkg-compiler.m4 | 1 - 23 m4/dpkg-compiler.m4 | 1 -
20 1 file changed, 1 deletion(-) 24 1 file changed, 1 deletion(-)
21 25
22diff --git a/m4/dpkg-compiler.m4 b/m4/dpkg-compiler.m4 26diff --git a/m4/dpkg-compiler.m4 b/m4/dpkg-compiler.m4
23index 682857c..23ed7d0 100644 27index a6192f6..4c7bf2e 100644
24--- a/m4/dpkg-compiler.m4 28--- a/m4/dpkg-compiler.m4
25+++ b/m4/dpkg-compiler.m4 29+++ b/m4/dpkg-compiler.m4
26@@ -52,7 +52,6 @@ AC_DEFUN([DPKG_CHECK_COMPILER_WARNINGS], [ 30@@ -67,7 +67,6 @@ AC_DEFUN([DPKG_CHECK_COMPILER_WARNINGS], [
27 DPKG_CHECK_COMPILER_FLAG([-Wlogical-op]) 31 DPKG_CHECK_COMPILER_FLAG([-Wshift-negative-value])
28 DPKG_CHECK_COMPILER_FLAG([-Wlogical-not-parentheses]) 32 DPKG_CHECK_COMPILER_FLAG([-Wsizeof-array-argument])
29 DPKG_CHECK_COMPILER_FLAG([-Wswitch-bool]) 33 DPKG_CHECK_COMPILER_FLAG([-Wswitch-bool])
30- DPKG_CHECK_COMPILER_FLAG([-Wvla]) 34- DPKG_CHECK_COMPILER_FLAG([-Wvla])
31 DPKG_CHECK_COMPILER_FLAG([-Winit-self])
32 DPKG_CHECK_COMPILER_FLAG([-Wwrite-strings]) 35 DPKG_CHECK_COMPILER_FLAG([-Wwrite-strings])
33 DPKG_CHECK_COMPILER_FLAG([-Wcast-align]) 36
37 AC_LANG_CASE(
34-- 38--
352.1.4 392.1.4
36 40
diff --git a/meta/recipes-devtools/dpkg/dpkg/0007-dpkg-deb-build.c-Remove-usage-of-clamp-mtime-in-tar.patch b/meta/recipes-devtools/dpkg/dpkg/0007-dpkg-deb-build.c-Remove-usage-of-clamp-mtime-in-tar.patch
index 1b985df0f5..4f79a40d8b 100644
--- a/meta/recipes-devtools/dpkg/dpkg/0007-dpkg-deb-build.c-Remove-usage-of-clamp-mtime-in-tar.patch
+++ b/meta/recipes-devtools/dpkg/dpkg/0007-dpkg-deb-build.c-Remove-usage-of-clamp-mtime-in-tar.patch
@@ -18,22 +18,26 @@ Upstream-Status: Inappropriate [Configuration]
18 18
19[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=759999#20 19[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=759999#20
20[2] https://lists.gnu.org/archive/html/help-tar/2016-01/msg00000.html 20[2] https://lists.gnu.org/archive/html/help-tar/2016-01/msg00000.html
21
22Update patch context for dpkg 1.19.4.
23
24Signed-off-by: Kai Kang <kai.kang@windriver.com>
21--- 25---
22 dpkg-deb/build.c | 2 +- 26 dpkg-deb/build.c | 2 +-
23 1 file changed, 1 insertion(+), 1 deletion(-) 27 1 file changed, 1 insertion(+), 1 deletion(-)
24 28
25diff --git a/dpkg-deb/build.c b/dpkg-deb/build.c 29diff --git a/dpkg-deb/build.c b/dpkg-deb/build.c
26index a92b58e..a3d1912 100644 30index 68d1875..053fcb7 100644
27--- a/dpkg-deb/build.c 31--- a/dpkg-deb/build.c
28+++ b/dpkg-deb/build.c 32+++ b/dpkg-deb/build.c
29@@ -450,7 +450,7 @@ tarball_pack(const char *dir, filenames_feed_func *tar_filenames_feeder, 33@@ -457,7 +457,7 @@ tarball_pack(const char *dir, filenames_feed_func *tar_filenames_feeder,
30 34
31 command_init(&cmd, TAR, "tar -cf"); 35 command_init(&cmd, TAR, "tar -cf");
32 command_add_args(&cmd, "tar", "-cf", "-", "--format=gnu", 36 command_add_args(&cmd, "tar", "-cf", "-", "--format=gnu",
33- "--mtime", mtime, "--clamp-mtime", NULL); 37- "--mtime", mtime, "--clamp-mtime", NULL);
34+ "--mtime", mtime, NULL); 38+ "--mtime", mtime, NULL);
35 /* Mode might become a positional argument, pass it before -T. */ 39 /* Mode might become a positional argument, pass it before -T. */
36 if (mode) 40 if (options->mode)
37 command_add_args(&cmd, "--mode", mode, NULL); 41 command_add_args(&cmd, "--mode", options->mode, NULL);
38-- 42--
392.11.0 432.11.0
diff --git a/meta/recipes-devtools/dpkg/dpkg/dpkg-configure.service b/meta/recipes-devtools/dpkg/dpkg/dpkg-configure.service
deleted file mode 100644
index 9a248ccb4a..0000000000
--- a/meta/recipes-devtools/dpkg/dpkg/dpkg-configure.service
+++ /dev/null
@@ -1,17 +0,0 @@
1[Unit]
2Description=dpkg first boot configure
3DefaultDependencies=no
4After=systemd-remount-fs.service systemd-tmpfiles-setup.service tmp.mount
5Before=sysinit.target
6
7[Service]
8Type=oneshot
9EnvironmentFile=-@SYSCONFDIR@/default/postinst
10ExecStart=-@BASE_BINDIR@/sh -c " if [ $POSTINST_LOGGING = '1' ]; then @BINDIR@/dpkg --configure -a > $LOGFILE 2>&1; else @BINDIR@/dpkg --configure -a; fi"
11ExecStartPost=@BASE_BINDIR@/systemctl --no-reload disable dpkg-configure.service
12StandardOutput=syslog
13RemainAfterExit=No
14
15[Install]
16WantedBy=basic.target
17WantedBy=sysinit.target
diff --git a/meta/recipes-devtools/dpkg/dpkg/glibc2.5-sync_file_range.patch b/meta/recipes-devtools/dpkg/dpkg/glibc2.5-sync_file_range.patch
index d48386647e..5debcc5209 100644
--- a/meta/recipes-devtools/dpkg/dpkg/glibc2.5-sync_file_range.patch
+++ b/meta/recipes-devtools/dpkg/dpkg/glibc2.5-sync_file_range.patch
@@ -66,15 +66,18 @@ Upstream-Status: Inappropriate [everyone else builds on newer hosts :-)]
66Signed-off-by: Donn Seeley <donn.seeley@windriver.com> 66Signed-off-by: Donn Seeley <donn.seeley@windriver.com>
67Signed-off-by: Lei Liu <lei.liu2@windriver.com> 67Signed-off-by: Lei Liu <lei.liu2@windriver.com>
68 68
69Update patch context for dpkg 1.19.4.
70
71Signed-off-by: Kai Kang <kai.kang@windriver.com>
69--- 72---
70 src/archives.c | 4 ++-- 73 src/archives.c | 4 ++--
71 1 file changed, 2 insertions(+), 2 deletions(-) 74 1 file changed, 2 insertions(+), 2 deletions(-)
72 75
73diff --git a/src/archives.c b/src/archives.c 76diff --git a/src/archives.c b/src/archives.c
74index 4b2fc92..a92b795 100644 77index 8476a5c..b05a63f 100644
75--- a/src/archives.c 78--- a/src/archives.c
76+++ b/src/archives.c 79+++ b/src/archives.c
77@@ -69,7 +69,7 @@ fd_writeback_init(int fd) 80@@ -68,7 +68,7 @@ fd_writeback_init(int fd)
78 /* Ignore the return code as it should be considered equivalent to an 81 /* Ignore the return code as it should be considered equivalent to an
79 * asynchronous hint for the kernel, we are doing an fsync() later on 82 * asynchronous hint for the kernel, we are doing an fsync() later on
80 * anyway. */ 83 * anyway. */
@@ -83,14 +86,14 @@ index 4b2fc92..a92b795 100644
83 sync_file_range(fd, 0, 0, SYNC_FILE_RANGE_WRITE); 86 sync_file_range(fd, 0, 0, SYNC_FILE_RANGE_WRITE);
84 #elif defined(HAVE_POSIX_FADVISE) 87 #elif defined(HAVE_POSIX_FADVISE)
85 posix_fadvise(fd, 0, 0, POSIX_FADV_DONTNEED); 88 posix_fadvise(fd, 0, 0, POSIX_FADV_DONTNEED);
86@@ -1078,7 +1078,7 @@ tarobject(void *ctx, struct tar_entry *ti) 89@@ -1093,7 +1093,7 @@ tarobject(struct tar_archive *tar, struct tar_entry *ti)
87 return 0; 90 return 0;
88 } 91 }
89 92
90-#if defined(SYNC_FILE_RANGE_WAIT_BEFORE) 93-#if defined(SYNC_FILE_RANGE_WAIT_BEFORE)
91+#if defined(SYNC_FILE_RANGE_WAIT_BEFORE) && __GLIBC_PREREQ(2, 6) 94+#if defined(SYNC_FILE_RANGE_WAIT_BEFORE) && __GLIBC_PREREQ(2, 6)
92 static void 95 static void
93 tar_writeback_barrier(struct fileinlist *files, struct pkginfo *pkg) 96 tar_writeback_barrier(struct fsys_namenode_list *files, struct pkginfo *pkg)
94 { 97 {
95-- 98--
962.16.2 992.16.2
diff --git a/meta/recipes-devtools/dpkg/dpkg/tweak-options-require-tar-1.27.patch b/meta/recipes-devtools/dpkg/dpkg/tweak-options-require-tar-1.27.patch
new file mode 100644
index 0000000000..e9119918b1
--- /dev/null
+++ b/meta/recipes-devtools/dpkg/dpkg/tweak-options-require-tar-1.27.patch
@@ -0,0 +1,27 @@
1GNU tar >= 1.27 is required for --owner=NAME:ID and --group=NAME:ID. And fails
2to build .deb packages with error:
3
4| dpkg-deb: building package 'linux-libc-headers-dbg' in '.../tmp/work/i586-poky-linux/linux-libc-headers/4.19-r0/deploy-debs/i586/linux-libc-headers-dbg_ 4.19-r0.0_i386.deb'.
5| tar: root\:0: Invalid owner
6| tar: Error is not recoverable: exiting now
7| dpkg-deb: error: tar -cf subprocess returned error exit status 2
8
9Tweak tar options in dpkg-deb source code to make it work on old machines.
10
11Upstream-Status: Inappropriate [cross build specific]
12
13Signed-off-by: Kai Kang <kai.kang@windriver.com>
14---
15diff --git a/dpkg-deb/build.c b/dpkg-deb/build.c
16index 68d187511..86fe22e25 100644
17--- a/dpkg-deb/build.c
18+++ b/dpkg-deb/build.c
19@@ -462,7 +462,7 @@ tarball_pack(const char *dir, filenames_feed_func *tar_filenames_feeder,
20 if (options->mode)
21 command_add_args(&cmd, "--mode", options->mode, NULL);
22 if (options->root_owner_group)
23- command_add_args(&cmd, "--owner", "root:0", "--group", "root:0", NULL);
24+ command_add_args(&cmd, "--owner", "root", "--group", "root", NULL);
25 command_add_args(&cmd, "--null", "--no-unquote", "--no-recursion",
26 "-T", "-", NULL);
27 command_exec(&cmd);
diff --git a/meta/recipes-devtools/dpkg/dpkg_1.18.25.bb b/meta/recipes-devtools/dpkg/dpkg_1.19.4.bb
index 350bd94f54..c3dbda77a4 100644
--- a/meta/recipes-devtools/dpkg/dpkg_1.18.25.bb
+++ b/meta/recipes-devtools/dpkg/dpkg_1.19.4.bb
@@ -1,11 +1,10 @@
1require dpkg.inc 1require dpkg.inc
2LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" 2LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
3 3
4SRC_URI = "http://snapshot.debian.org/archive/debian/20181228T152949Z/pool/main/d/dpkg/dpkg_1.18.25.tar.xz \ 4SRC_URI = "${DEBIAN_MIRROR}/main/d/${BPN}/${BPN}_${PV}.tar.xz \
5 file://noman.patch \ 5 file://noman.patch \
6 file://remove-tar-no-timestamp.patch \ 6 file://remove-tar-no-timestamp.patch \
7 file://arch_pm.patch \ 7 file://arch_pm.patch \
8 file://dpkg-configure.service \
9 file://add_armeb_triplet_entry.patch \ 8 file://add_armeb_triplet_entry.patch \
10 file://0002-Adapt-to-linux-wrs-kernel-version-which-has-characte.patch \ 9 file://0002-Adapt-to-linux-wrs-kernel-version-which-has-characte.patch \
11 file://0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch \ 10 file://0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch \
@@ -15,7 +14,9 @@ SRC_URI = "http://snapshot.debian.org/archive/debian/20181228T152949Z/pool/main/
15 file://0007-dpkg-deb-build.c-Remove-usage-of-clamp-mtime-in-tar.patch \ 14 file://0007-dpkg-deb-build.c-Remove-usage-of-clamp-mtime-in-tar.patch \
16 file://0001-dpkg-Support-muslx32-build.patch \ 15 file://0001-dpkg-Support-muslx32-build.patch \
17 " 16 "
18SRC_URI_append_class-native = " file://glibc2.5-sync_file_range.patch " 17SRC_URI_append_class-native = " file://glibc2.5-sync_file_range.patch \
18 file://tweak-options-require-tar-1.27.patch \
19"
19 20
20SRC_URI[md5sum] = "e463f58b04acb23659df23d2a7a05cff" 21SRC_URI[md5sum] = "1e4420409426d8c58bbe13a8e07c0c0b"
21SRC_URI[sha256sum] = "c49c371953aea03f543814dcae37c069e86069333fb2e24e9252e76647663492" 22SRC_URI[sha256sum] = "c15234e98655689586bff2d517a6fdc6135d139c54d52ae9cfa6a90007fee0ae"