diff options
Diffstat (limited to 'meta/recipes-devtools/dosfstools')
4 files changed, 422 insertions, 1 deletions
diff --git a/meta/recipes-devtools/dosfstools/dosfstools/0001-fsck.fat-Adhere-to-the-fsck-exit-codes.patch b/meta/recipes-devtools/dosfstools/dosfstools/0001-fsck.fat-Adhere-to-the-fsck-exit-codes.patch new file mode 100644 index 0000000000..3d2ce48723 --- /dev/null +++ b/meta/recipes-devtools/dosfstools/dosfstools/0001-fsck.fat-Adhere-to-the-fsck-exit-codes.patch | |||
@@ -0,0 +1,214 @@ | |||
1 | From 9d165145b9f9c20a56e111360fbc2003c2b28cba Mon Sep 17 00:00:00 2001 | ||
2 | From: Ricardo Simoes <ricardo.simoes@pt.bosch.com> | ||
3 | Date: Thu, 26 Jun 2025 08:14:29 +0100 | ||
4 | Subject: [PATCH] fsck.fat: Adhere to the fsck exit codes | ||
5 | |||
6 | fsck.fat is used as a filesystem-specific checker for the `fsck`. This | ||
7 | also causes `fsck` to return the same exit-codes given by `fsck.fat`. | ||
8 | |||
9 | In most cases this is already the case. One exception to that comes when | ||
10 | checking a read-only filesystem. In that case `fsck.fat` will return 6, | ||
11 | which for `fsck` means "Fiesystem errors left uncorrected" and "System | ||
12 | should reboot". When a more proper response would be to return 8, | ||
13 | "Operational Error". | ||
14 | |||
15 | This commit solves that problem by introducing a new header file which | ||
16 | standardizes the exit codes used by `fsck.fat`. | ||
17 | |||
18 | Signed-off-by: Ricardo Ungerer <ungerer.ricardo@gmail.com> | ||
19 | |||
20 | Upstream-Status: Inactive-Upstream [lastcommit: 2023, lastrelease: 2021] | ||
21 | Upstream-Status: Submitted [https://github.com/dosfstools/dosfstools/pull/217] | ||
22 | --- | ||
23 | src/Makefile.am | 4 ++-- | ||
24 | src/common.c | 8 ++++---- | ||
25 | src/exit_codes.h | 15 +++++++++++++++ | ||
26 | src/fsck.fat.c | 23 ++++++++++++----------- | ||
27 | src/io.c | 3 ++- | ||
28 | 5 files changed, 35 insertions(+), 18 deletions(-) | ||
29 | create mode 100644 src/exit_codes.h | ||
30 | |||
31 | diff --git a/src/Makefile.am b/src/Makefile.am | ||
32 | index a389046..48f00dd 100644 | ||
33 | --- a/src/Makefile.am | ||
34 | +++ b/src/Makefile.am | ||
35 | @@ -23,7 +23,7 @@ EXTRA_DIST = blkdev/README | ||
36 | |||
37 | charconv_common_sources = charconv.c charconv.h | ||
38 | charconv_common_ldadd = $(LIBICONV) | ||
39 | -fscklabel_common_sources = boot.c boot.h common.c common.h \ | ||
40 | +fscklabel_common_sources = boot.c boot.h common.c common.h exit_codes.h \ | ||
41 | fat.c fat.h io.c io.h msdos_fs.h \ | ||
42 | $(charconv_common_sources) \ | ||
43 | fsck.fat.h endian_compat.h | ||
44 | @@ -38,7 +38,7 @@ devinfo_common_sources = device_info.c device_info.h \ | ||
45 | blkdev/blkdev.c blkdev/blkdev.h \ | ||
46 | blkdev/linux_version.c blkdev/linux_version.h | ||
47 | mkfs_fat_SOURCES = mkfs.fat.c msdos_fs.h common.c common.h endian_compat.h \ | ||
48 | - $(charconv_common_sources) $(devinfo_common_sources) | ||
49 | + exit_codes.h $(charconv_common_sources) $(devinfo_common_sources) | ||
50 | mkfs_fat_CPPFLAGS = -I$(srcdir)/blkdev | ||
51 | mkfs_fat_CFLAGS = $(AM_CFLAGS) | ||
52 | mkfs_fat_LDADD = $(charconv_common_ldadd) | ||
53 | diff --git a/src/common.c b/src/common.c | ||
54 | index 4f1afcb..089d4b3 100644 | ||
55 | --- a/src/common.c | ||
56 | +++ b/src/common.c | ||
57 | @@ -38,7 +38,7 @@ | ||
58 | |||
59 | #include "common.h" | ||
60 | #include "charconv.h" | ||
61 | - | ||
62 | +#include "exit_codes.h" | ||
63 | |||
64 | int interactive; | ||
65 | int write_immed; | ||
66 | @@ -62,7 +62,7 @@ void die(const char *msg, ...) | ||
67 | vfprintf(stderr, msg, args); | ||
68 | va_end(args); | ||
69 | fprintf(stderr, "\n"); | ||
70 | - exit(1); | ||
71 | + exit(OPERATIONAL_ERROR); | ||
72 | } | ||
73 | |||
74 | void pdie(const char *msg, ...) | ||
75 | @@ -205,7 +205,7 @@ int get_choice(int noninteractive_result, const char *noninteractive_msg, | ||
76 | } while (choice == '\n'); /* filter out enter presses */ | ||
77 | |||
78 | if (choice == EOF) | ||
79 | - exit(1); | ||
80 | + exit(USAGE_OR_SYNTAX_ERROR); | ||
81 | |||
82 | printf("%c\n", choice); | ||
83 | |||
84 | @@ -235,7 +235,7 @@ int get_choice(int noninteractive_result, const char *noninteractive_msg, | ||
85 | inhibit_quit_choice = 0; | ||
86 | |||
87 | if (quit_choice == 1) | ||
88 | - exit(0); | ||
89 | + exit(NO_ERRORS); | ||
90 | } | ||
91 | } | ||
92 | |||
93 | diff --git a/src/exit_codes.h b/src/exit_codes.h | ||
94 | new file mode 100644 | ||
95 | index 0000000..f67d22e | ||
96 | --- /dev/null | ||
97 | +++ b/src/exit_codes.h | ||
98 | @@ -0,0 +1,15 @@ | ||
99 | +#ifndef _EXIT_CODES_H | ||
100 | +#define _EXIT_CODES_H | ||
101 | + | ||
102 | +/* Codes as defined by fsck. | ||
103 | + For more information, see fsck manpage. */ | ||
104 | +#define NO_ERRORS 0 | ||
105 | +#define FS_ERRORS_CORRECTED 1 | ||
106 | +#define SYSTEM_SHOULD_BE_REBOOTED 2 | ||
107 | +#define FS_ERRORS_LEFT_UNCORRECTED 4 | ||
108 | +#define OPERATIONAL_ERROR 8 | ||
109 | +#define USAGE_OR_SYNTAX_ERROR 16 | ||
110 | +#define CHECKING_CANCELED_BY_USER 32 | ||
111 | +#define SHARED_LIB_ERROR 128 | ||
112 | + | ||
113 | +#endif | ||
114 | diff --git a/src/fsck.fat.c b/src/fsck.fat.c | ||
115 | index 8b02b57..42e3ab4 100644 | ||
116 | --- a/src/fsck.fat.c | ||
117 | +++ b/src/fsck.fat.c | ||
118 | @@ -46,6 +46,7 @@ | ||
119 | #include "file.h" | ||
120 | #include "check.h" | ||
121 | #include "charconv.h" | ||
122 | +#include "exit_codes.h" | ||
123 | |||
124 | int rw = 0, list = 0, test = 0, verbose = 0; | ||
125 | long fat_table = 0; | ||
126 | @@ -147,10 +148,10 @@ int main(int argc, char **argv) | ||
127 | codepage = strtol(optarg, &tmp, 10); | ||
128 | if (!*optarg || isspace(*optarg) || *tmp || errno || codepage < 0 || codepage > INT_MAX) { | ||
129 | fprintf(stderr, "Invalid codepage : %s\n", optarg); | ||
130 | - usage(argv[0], 2); | ||
131 | + usage(argv[0], USAGE_OR_SYNTAX_ERROR); | ||
132 | } | ||
133 | if (!set_dos_codepage(codepage)) | ||
134 | - usage(argv[0], 2); | ||
135 | + usage(argv[0], USAGE_OR_SYNTAX_ERROR); | ||
136 | break; | ||
137 | case 'd': | ||
138 | file_add(optarg, fdt_drop); | ||
139 | @@ -163,7 +164,7 @@ int main(int argc, char **argv) | ||
140 | fat_table = strtol(optarg, &tmp, 10); | ||
141 | if (!*optarg || isspace(*optarg) || *tmp || errno || fat_table < 0 || fat_table > 255) { | ||
142 | fprintf(stderr, "Invalid FAT table : %s\n", optarg); | ||
143 | - usage(argv[0], 2); | ||
144 | + usage(argv[0], USAGE_OR_SYNTAX_ERROR); | ||
145 | } | ||
146 | break; | ||
147 | case 'l': | ||
148 | @@ -202,31 +203,31 @@ int main(int argc, char **argv) | ||
149 | atari_format = 1; | ||
150 | } else { | ||
151 | fprintf(stderr, "Unknown variant: %s\n", optarg); | ||
152 | - usage(argv[0], 2); | ||
153 | + usage(argv[0], USAGE_OR_SYNTAX_ERROR); | ||
154 | } | ||
155 | break; | ||
156 | case 'w': | ||
157 | write_immed = 1; | ||
158 | break; | ||
159 | case OPT_HELP: | ||
160 | - usage(argv[0], 0); | ||
161 | + usage(argv[0], EXIT_SUCCESS); | ||
162 | break; | ||
163 | case '?': | ||
164 | - usage(argv[0], 2); | ||
165 | + usage(argv[0], USAGE_OR_SYNTAX_ERROR); | ||
166 | break; | ||
167 | default: | ||
168 | fprintf(stderr, | ||
169 | "Internal error: getopt_long() returned unexpected value %d\n", c); | ||
170 | - exit(3); | ||
171 | + exit(OPERATIONAL_ERROR); | ||
172 | } | ||
173 | if (!set_dos_codepage(-1)) /* set default codepage if none was given in command line */ | ||
174 | - exit(2); | ||
175 | + exit(OPERATIONAL_ERROR); | ||
176 | if ((test || write_immed) && !rw) { | ||
177 | fprintf(stderr, "-t and -w can not be used in read only mode\n"); | ||
178 | - exit(2); | ||
179 | + exit(USAGE_OR_SYNTAX_ERROR); | ||
180 | } | ||
181 | if (optind != argc - 1) | ||
182 | - usage(argv[0], 2); | ||
183 | + usage(argv[0], USAGE_OR_SYNTAX_ERROR); | ||
184 | |||
185 | printf("fsck.fat " VERSION " (" VERSION_DATE ")\n"); | ||
186 | fs_open(argv[optind], rw); | ||
187 | @@ -285,5 +286,5 @@ exit: | ||
188 | n_files, (unsigned long)fs.data_clusters - free_clusters, | ||
189 | (unsigned long)fs.data_clusters); | ||
190 | |||
191 | - return fs_close(rw) ? 1 : 0; | ||
192 | + return fs_close(rw) ? FS_ERRORS_CORRECTED : NO_ERRORS; | ||
193 | } | ||
194 | diff --git a/src/io.c b/src/io.c | ||
195 | index 8c0c3b2..8bd1ae5 100644 | ||
196 | --- a/src/io.c | ||
197 | +++ b/src/io.c | ||
198 | @@ -44,6 +44,7 @@ | ||
199 | #include "fsck.fat.h" | ||
200 | #include "common.h" | ||
201 | #include "io.h" | ||
202 | +#include "exit_codes.h" | ||
203 | |||
204 | typedef struct _change { | ||
205 | void *data; | ||
206 | @@ -60,7 +61,7 @@ void fs_open(const char *path, int rw) | ||
207 | { | ||
208 | if ((fd = open(path, rw ? O_RDWR : O_RDONLY)) < 0) { | ||
209 | perror("open"); | ||
210 | - exit(6); | ||
211 | + exit(OPERATIONAL_ERROR); | ||
212 | } | ||
213 | changes = last = NULL; | ||
214 | did_change = 0; | ||
diff --git a/meta/recipes-devtools/dosfstools/dosfstools/0002-manpages-Document-fsck.fat-new-exit-codes.patch b/meta/recipes-devtools/dosfstools/dosfstools/0002-manpages-Document-fsck.fat-new-exit-codes.patch new file mode 100644 index 0000000000..29bba7b093 --- /dev/null +++ b/meta/recipes-devtools/dosfstools/dosfstools/0002-manpages-Document-fsck.fat-new-exit-codes.patch | |||
@@ -0,0 +1,46 @@ | |||
1 | From 8d703216d2ea3247092a08adb0c37b38eb77ccc7 Mon Sep 17 00:00:00 2001 | ||
2 | From: Ricardo Ungerer <ungerer.ricardo@gmail.com> | ||
3 | Date: Wed, 21 May 2025 07:18:15 +0100 | ||
4 | Subject: [PATCH 2/3] manpages: Document fsck.fat new exit codes | ||
5 | |||
6 | Signed-off-by: Ricardo Ungerer <ungerer.ricardo@gmail.com> | ||
7 | |||
8 | Upstream-Status: Inactive-Upstream [lastcommit: 2023, lastrelease: 2021] | ||
9 | Upstream-Status: Submitted [https://github.com/dosfstools/dosfstools/pull/217] | ||
10 | --- | ||
11 | manpages/fsck.fat.8.in | 18 +++++++++++++----- | ||
12 | 1 file changed, 13 insertions(+), 5 deletions(-) | ||
13 | |||
14 | diff --git a/manpages/fsck.fat.8.in b/manpages/fsck.fat.8.in | ||
15 | index 824a83d..557aa4c 100644 | ||
16 | --- a/manpages/fsck.fat.8.in | ||
17 | +++ b/manpages/fsck.fat.8.in | ||
18 | @@ -222,13 +222,21 @@ Display help message describing usage and options then exit. | ||
19 | .\" ---------------------------------------------------------------------------- | ||
20 | .SH "EXIT STATUS" | ||
21 | .IP "0" 4 | ||
22 | -No recoverable errors have been detected. | ||
23 | +No errors | ||
24 | .IP "1" 4 | ||
25 | -Recoverable errors have been detected or \fBfsck.fat\fP has discovered an | ||
26 | -internal inconsistency. | ||
27 | +Filesystem errors corrected | ||
28 | .IP "2" 4 | ||
29 | -Usage error. | ||
30 | -\fBfsck.fat\fP did not access the filesystem. | ||
31 | +System should be rebooted | ||
32 | +.IP "4" 4 | ||
33 | +Filesystem errors left uncorrected | ||
34 | +.IP "8" 4 | ||
35 | +Operational error | ||
36 | +.IP "16" 4 | ||
37 | +Usage or syntax error | ||
38 | +.IP "32" 4 | ||
39 | +Checking canceled by user request | ||
40 | +.IP "128" 4 | ||
41 | +Shared-library error | ||
42 | .\" ---------------------------------------------------------------------------- | ||
43 | .SH FILES | ||
44 | .IP "\fIfsck0000.rec\fP, \fIfsck0001.rec\fP, ..." 4 | ||
45 | -- | ||
46 | 2.25.1 | ||
diff --git a/meta/recipes-devtools/dosfstools/dosfstools/source-date-epoch.patch b/meta/recipes-devtools/dosfstools/dosfstools/source-date-epoch.patch new file mode 100644 index 0000000000..e3a649e55a --- /dev/null +++ b/meta/recipes-devtools/dosfstools/dosfstools/source-date-epoch.patch | |||
@@ -0,0 +1,158 @@ | |||
1 | From 8da7bc93315cb0c32ad868f17808468b81fa76ec Mon Sep 17 00:00:00 2001 | ||
2 | From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= <bjorn.forsman@gmail.com> | ||
3 | Date: Wed, 5 Dec 2018 19:52:51 +0100 | ||
4 | Subject: [PATCH] Honor the SOURCE_DATE_EPOCH variable | ||
5 | MIME-Version: 1.0 | ||
6 | Content-Type: text/plain; charset=UTF-8 | ||
7 | Content-Transfer-Encoding: 8bit | ||
8 | |||
9 | Implement the SOURCE_DATE_EPOCH specification[1] for reproducible | ||
10 | builds. If SOURCE_DATE_EPOCH is set, use it as timestamp instead of the | ||
11 | current time. | ||
12 | |||
13 | [1] https://reproducible-builds.org/specs/source-date-epoch/ | ||
14 | |||
15 | Upstream-Status: Backport [https://github.com/dosfstools/dosfstools/commit/8da7bc93315cb0c32ad868f17808468b81fa76ec] | ||
16 | Signed-off-by: Bjørn Forsman <bjorn.forsman@gmail.com> | ||
17 | --- | ||
18 | src/boot.c | 23 +++++++++++++++++++++-- | ||
19 | src/common.c | 18 ++++++++++++++++-- | ||
20 | src/mkfs.fat.c | 19 ++++++++++++++++--- | ||
21 | 3 files changed, 53 insertions(+), 7 deletions(-) | ||
22 | |||
23 | diff --git a/src/boot.c b/src/boot.c | ||
24 | index 4de450d..8f78e1c 100644 | ||
25 | --- a/src/boot.c | ||
26 | +++ b/src/boot.c | ||
27 | @@ -33,6 +33,8 @@ | ||
28 | #include <stdlib.h> | ||
29 | #include <sys/types.h> | ||
30 | #include <time.h> | ||
31 | +#include <errno.h> | ||
32 | +#include <ctype.h> | ||
33 | |||
34 | #include "common.h" | ||
35 | #include "fsck.fat.h" | ||
36 | @@ -672,6 +674,7 @@ void write_volume_label(DOS_FS * fs, char *label) | ||
37 | { | ||
38 | time_t now; | ||
39 | struct tm *mtime; | ||
40 | + char *source_date_epoch = NULL; | ||
41 | off_t offset; | ||
42 | int created; | ||
43 | DIR_ENT de; | ||
44 | @@ -687,8 +690,24 @@ void write_volume_label(DOS_FS * fs, char *label) | ||
45 | if (de.name[0] == 0xe5) | ||
46 | de.name[0] = 0x05; | ||
47 | |||
48 | - now = time(NULL); | ||
49 | - mtime = (now != (time_t)-1) ? localtime(&now) : NULL; | ||
50 | + source_date_epoch = getenv("SOURCE_DATE_EPOCH"); | ||
51 | + if (source_date_epoch) { | ||
52 | + char *tmp = NULL; | ||
53 | + long long conversion = 0; | ||
54 | + errno = 0; | ||
55 | + conversion = strtoll(source_date_epoch, &tmp, 10); | ||
56 | + now = conversion; | ||
57 | + if (!isdigit((unsigned char)*source_date_epoch) || *tmp != '\0' | ||
58 | + || errno != 0 || (long long)now != conversion) { | ||
59 | + die("SOURCE_DATE_EPOCH is too big or contains non-digits: \"%s\"", | ||
60 | + source_date_epoch); | ||
61 | + } | ||
62 | + mtime = gmtime(&now); | ||
63 | + } else { | ||
64 | + now = time(NULL); | ||
65 | + mtime = (now != (time_t)-1) ? localtime(&now) : NULL; | ||
66 | + } | ||
67 | + | ||
68 | if (mtime && mtime->tm_year >= 80 && mtime->tm_year <= 207) { | ||
69 | de.time = htole16((unsigned short)((mtime->tm_sec >> 1) + | ||
70 | (mtime->tm_min << 5) + | ||
71 | diff --git a/src/common.c b/src/common.c | ||
72 | index 6a2e396..4f1afcb 100644 | ||
73 | --- a/src/common.c | ||
74 | +++ b/src/common.c | ||
75 | @@ -30,6 +30,7 @@ | ||
76 | #include <string.h> | ||
77 | #include <stdarg.h> | ||
78 | #include <errno.h> | ||
79 | +#include <ctype.h> | ||
80 | #include <wctype.h> | ||
81 | #include <termios.h> | ||
82 | #include <sys/time.h> | ||
83 | @@ -298,8 +299,21 @@ void check_atari(void) | ||
84 | uint32_t generate_volume_id(void) | ||
85 | { | ||
86 | struct timeval now; | ||
87 | - | ||
88 | - if (gettimeofday(&now, NULL) != 0 || now.tv_sec == (time_t)-1 || now.tv_sec < 0) { | ||
89 | + char *source_date_epoch = NULL; | ||
90 | + | ||
91 | + source_date_epoch = getenv("SOURCE_DATE_EPOCH"); | ||
92 | + if (source_date_epoch) { | ||
93 | + char *tmp = NULL; | ||
94 | + long long conversion = 0; | ||
95 | + errno = 0; | ||
96 | + conversion = strtoll(source_date_epoch, &tmp, 10); | ||
97 | + if (!isdigit((unsigned char)*source_date_epoch) || *tmp != '\0' | ||
98 | + || errno != 0) { | ||
99 | + die("SOURCE_DATE_EPOCH is too big or contains non-digits: \"%s\"", | ||
100 | + source_date_epoch); | ||
101 | + } | ||
102 | + return (uint32_t)conversion; | ||
103 | + } else if (gettimeofday(&now, NULL) != 0 || now.tv_sec == (time_t)-1 || now.tv_sec < 0) { | ||
104 | srand(getpid()); | ||
105 | /* rand() returns int from [0,RAND_MAX], therefore only 31 bits */ | ||
106 | return (((uint32_t)(rand() & 0xFFFF)) << 16) | ((uint32_t)(rand() & 0xFFFF)); | ||
107 | diff --git a/src/mkfs.fat.c b/src/mkfs.fat.c | ||
108 | index 37fc8ff..1948635 100644 | ||
109 | --- a/src/mkfs.fat.c | ||
110 | +++ b/src/mkfs.fat.c | ||
111 | @@ -1074,7 +1074,7 @@ static void setup_tables(void) | ||
112 | } | ||
113 | |||
114 | /* If is not available then generate random 32 bit disk signature */ | ||
115 | - if (invariant) | ||
116 | + if (invariant || getenv("SOURCE_DATE_EPOCH")) | ||
117 | disk_sig = volume_id; | ||
118 | else if (!disk_sig) | ||
119 | disk_sig = generate_volume_id(); | ||
120 | @@ -1287,7 +1287,7 @@ static void setup_tables(void) | ||
121 | de->name[0] = 0x05; | ||
122 | de->attr = ATTR_VOLUME; | ||
123 | if (create_time != (time_t)-1) { | ||
124 | - if (!invariant) | ||
125 | + if (!invariant && !getenv("SOURCE_DATE_EPOCH")) | ||
126 | ctime = localtime(&create_time); | ||
127 | else | ||
128 | ctime = gmtime(&create_time); | ||
129 | @@ -1477,6 +1477,7 @@ int main(int argc, char **argv) | ||
130 | int blocks_specified = 0; | ||
131 | struct timeval create_timeval; | ||
132 | long long conversion; | ||
133 | + char *source_date_epoch = NULL; | ||
134 | |||
135 | enum {OPT_HELP=1000, OPT_INVARIANT, OPT_MBR, OPT_VARIANT, OPT_CODEPAGE, OPT_OFFSET}; | ||
136 | const struct option long_options[] = { | ||
137 | @@ -1497,8 +1498,20 @@ int main(int argc, char **argv) | ||
138 | program_name = p + 1; | ||
139 | } | ||
140 | |||
141 | - if (gettimeofday(&create_timeval, NULL) == 0 && create_timeval.tv_sec != (time_t)-1) | ||
142 | + source_date_epoch = getenv("SOURCE_DATE_EPOCH"); | ||
143 | + if (source_date_epoch) { | ||
144 | + errno = 0; | ||
145 | + conversion = strtoll(source_date_epoch, &tmp, 10); | ||
146 | + create_time = conversion; | ||
147 | + if (!isdigit((unsigned char)*source_date_epoch) || *tmp != '\0' | ||
148 | + || errno != 0 || (long long)create_time != conversion) { | ||
149 | + die("SOURCE_DATE_EPOCH is too big or contains non-digits: \"%s\"", | ||
150 | + source_date_epoch); | ||
151 | + } | ||
152 | + } else if (gettimeofday(&create_timeval, NULL) == 0 && create_timeval.tv_sec != (time_t)-1) { | ||
153 | create_time = create_timeval.tv_sec; | ||
154 | + } | ||
155 | + | ||
156 | volume_id = generate_volume_id(); | ||
157 | check_atari(); | ||
158 | |||
diff --git a/meta/recipes-devtools/dosfstools/dosfstools_4.2.bb b/meta/recipes-devtools/dosfstools/dosfstools_4.2.bb index 47d81dac8d..86fb68f664 100644 --- a/meta/recipes-devtools/dosfstools/dosfstools_4.2.bb +++ b/meta/recipes-devtools/dosfstools/dosfstools_4.2.bb | |||
@@ -10,7 +10,10 @@ LICENSE = "GPL-3.0-only" | |||
10 | LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" | 10 | LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" |
11 | 11 | ||
12 | SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.gz \ | 12 | SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.gz \ |
13 | " | 13 | file://source-date-epoch.patch \ |
14 | file://0001-fsck.fat-Adhere-to-the-fsck-exit-codes.patch \ | ||
15 | file://0002-manpages-Document-fsck.fat-new-exit-codes.patch \ | ||
16 | " | ||
14 | SRC_URI[sha256sum] = "64926eebf90092dca21b14259a5301b7b98e7b1943e8a201c7d726084809b527" | 17 | SRC_URI[sha256sum] = "64926eebf90092dca21b14259a5301b7b98e7b1943e8a201c7d726084809b527" |
15 | 18 | ||
16 | inherit autotools gettext pkgconfig update-alternatives github-releases | 19 | inherit autotools gettext pkgconfig update-alternatives github-releases |