From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 1/1] package/fis: remove package
Date: Mon, 3 Feb 2020 15:11:13 +0100 [thread overview]
Message-ID: <20200203141113.GD3299@scaer> (raw)
In-Reply-To: <20200203135726.10872-1-mark@dibsco.co.uk>
Mark, All,
On 2020-02-03 13:57 +0000, Mark Corbin spake thusly:
> Remove fis as RedBoot hasn't been updated for over 10 years.
>
> Signed-off-by: Mark Corbin <mark@dibsco.co.uk>
Applied to master, thanks.
Regards,
Yann E. MORIN.
> ---
> Config.in.legacy | 6 +
> package/Config.in | 1 -
> package/fis/0001-checksum.patch | 274 -----------------------------
> package/fis/0003-list_output.patch | 21 ---
> package/fis/0004-sorted_list.patch | 30 ----
> package/fis/Config.in | 4 -
> package/fis/fis.mk | 22 ---
> 7 files changed, 6 insertions(+), 352 deletions(-)
> delete mode 100644 package/fis/0001-checksum.patch
> delete mode 100644 package/fis/0003-list_output.patch
> delete mode 100644 package/fis/0004-sorted_list.patch
> delete mode 100644 package/fis/Config.in
> delete mode 100644 package/fis/fis.mk
>
> diff --git a/Config.in.legacy b/Config.in.legacy
> index 4b84116e0c..5fd086b499 100644
> --- a/Config.in.legacy
> +++ b/Config.in.legacy
> @@ -144,6 +144,12 @@ endif
>
> ###############################################################################
>
> +config BR2_PACKAGE_FIS
> + bool "fis was removed"
> + select BR2_LEGACY
> + help
> + The fis package was removed.
> +
> comment "Legacy options removed in 2020.02"
>
> config BR2_PACKAGE_CELT051
> diff --git a/package/Config.in b/package/Config.in
> index 273d39c81f..492bb352a6 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -448,7 +448,6 @@ endmenu
> source "package/fan-ctrl/Config.in"
> source "package/fbtft/Config.in"
> source "package/fconfig/Config.in"
> - source "package/fis/Config.in"
> source "package/flashrom/Config.in"
> source "package/fmtools/Config.in"
> source "package/freescale-imx/Config.in"
> diff --git a/package/fis/0001-checksum.patch b/package/fis/0001-checksum.patch
> deleted file mode 100644
> index a6325eb01a..0000000000
> --- a/package/fis/0001-checksum.patch
> +++ /dev/null
> @@ -1,274 +0,0 @@
> -diff -uN fis.orig/crc.c fis/crc.c
> ---- fis.orig/crc.c 1970-01-01 10:00:00.000000000 +1000
> -+++ fis/crc.c 2008-04-01 11:39:13.000000000 +1100
> -@@ -0,0 +1,88 @@
> -+/*
> -+ * crc.c
> -+ *
> -+ * $Id: crc.c,v 1.1 2006/02/13 09:58:08 andrzej Exp $
> -+ *
> -+ * Gary S. Brown's CRC
> -+ * Code based on Gary S. Brown CRC (1986).
> -+ * Generation polynomial is:
> -+ * X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0
> -+ *
> -+ * Copyright (C) 2006 Ekiert sp z o.o.
> -+ * Author: Andrzej Ekiert <a.ekiert@ekiert.com>
> -+ *
> -+ * This program is free software; you can redistribute it and/or
> -+ * modify it under the terms of the GNU General Public License
> -+ * as published by the Free Software Foundation; either version
> -+ * 2 of the License, or (at your option) any later version.
> -+ */
> -+
> -+#include <stdint.h>
> -+
> -+#include "crc.h"
> -+
> -+static const uint32_t crc32_tab[] = {
> -+ 0x00000000L, 0x77073096L, 0xee0e612cL, 0x990951baL, 0x076dc419L,
> -+ 0x706af48fL, 0xe963a535L, 0x9e6495a3L, 0x0edb8832L, 0x79dcb8a4L,
> -+ 0xe0d5e91eL, 0x97d2d988L, 0x09b64c2bL, 0x7eb17cbdL, 0xe7b82d07L,
> -+ 0x90bf1d91L, 0x1db71064L, 0x6ab020f2L, 0xf3b97148L, 0x84be41deL,
> -+ 0x1adad47dL, 0x6ddde4ebL, 0xf4d4b551L, 0x83d385c7L, 0x136c9856L,
> -+ 0x646ba8c0L, 0xfd62f97aL, 0x8a65c9ecL, 0x14015c4fL, 0x63066cd9L,
> -+ 0xfa0f3d63L, 0x8d080df5L, 0x3b6e20c8L, 0x4c69105eL, 0xd56041e4L,
> -+ 0xa2677172L, 0x3c03e4d1L, 0x4b04d447L, 0xd20d85fdL, 0xa50ab56bL,
> -+ 0x35b5a8faL, 0x42b2986cL, 0xdbbbc9d6L, 0xacbcf940L, 0x32d86ce3L,
> -+ 0x45df5c75L, 0xdcd60dcfL, 0xabd13d59L, 0x26d930acL, 0x51de003aL,
> -+ 0xc8d75180L, 0xbfd06116L, 0x21b4f4b5L, 0x56b3c423L, 0xcfba9599L,
> -+ 0xb8bda50fL, 0x2802b89eL, 0x5f058808L, 0xc60cd9b2L, 0xb10be924L,
> -+ 0x2f6f7c87L, 0x58684c11L, 0xc1611dabL, 0xb6662d3dL, 0x76dc4190L,
> -+ 0x01db7106L, 0x98d220bcL, 0xefd5102aL, 0x71b18589L, 0x06b6b51fL,
> -+ 0x9fbfe4a5L, 0xe8b8d433L, 0x7807c9a2L, 0x0f00f934L, 0x9609a88eL,
> -+ 0xe10e9818L, 0x7f6a0dbbL, 0x086d3d2dL, 0x91646c97L, 0xe6635c01L,
> -+ 0x6b6b51f4L, 0x1c6c6162L, 0x856530d8L, 0xf262004eL, 0x6c0695edL,
> -+ 0x1b01a57bL, 0x8208f4c1L, 0xf50fc457L, 0x65b0d9c6L, 0x12b7e950L,
> -+ 0x8bbeb8eaL, 0xfcb9887cL, 0x62dd1ddfL, 0x15da2d49L, 0x8cd37cf3L,
> -+ 0xfbd44c65L, 0x4db26158L, 0x3ab551ceL, 0xa3bc0074L, 0xd4bb30e2L,
> -+ 0x4adfa541L, 0x3dd895d7L, 0xa4d1c46dL, 0xd3d6f4fbL, 0x4369e96aL,
> -+ 0x346ed9fcL, 0xad678846L, 0xda60b8d0L, 0x44042d73L, 0x33031de5L,
> -+ 0xaa0a4c5fL, 0xdd0d7cc9L, 0x5005713cL, 0x270241aaL, 0xbe0b1010L,
> -+ 0xc90c2086L, 0x5768b525L, 0x206f85b3L, 0xb966d409L, 0xce61e49fL,
> -+ 0x5edef90eL, 0x29d9c998L, 0xb0d09822L, 0xc7d7a8b4L, 0x59b33d17L,
> -+ 0x2eb40d81L, 0xb7bd5c3bL, 0xc0ba6cadL, 0xedb88320L, 0x9abfb3b6L,
> -+ 0x03b6e20cL, 0x74b1d29aL, 0xead54739L, 0x9dd277afL, 0x04db2615L,
> -+ 0x73dc1683L, 0xe3630b12L, 0x94643b84L, 0x0d6d6a3eL, 0x7a6a5aa8L,
> -+ 0xe40ecf0bL, 0x9309ff9dL, 0x0a00ae27L, 0x7d079eb1L, 0xf00f9344L,
> -+ 0x8708a3d2L, 0x1e01f268L, 0x6906c2feL, 0xf762575dL, 0x806567cbL,
> -+ 0x196c3671L, 0x6e6b06e7L, 0xfed41b76L, 0x89d32be0L, 0x10da7a5aL,
> -+ 0x67dd4accL, 0xf9b9df6fL, 0x8ebeeff9L, 0x17b7be43L, 0x60b08ed5L,
> -+ 0xd6d6a3e8L, 0xa1d1937eL, 0x38d8c2c4L, 0x4fdff252L, 0xd1bb67f1L,
> -+ 0xa6bc5767L, 0x3fb506ddL, 0x48b2364bL, 0xd80d2bdaL, 0xaf0a1b4cL,
> -+ 0x36034af6L, 0x41047a60L, 0xdf60efc3L, 0xa867df55L, 0x316e8eefL,
> -+ 0x4669be79L, 0xcb61b38cL, 0xbc66831aL, 0x256fd2a0L, 0x5268e236L,
> -+ 0xcc0c7795L, 0xbb0b4703L, 0x220216b9L, 0x5505262fL, 0xc5ba3bbeL,
> -+ 0xb2bd0b28L, 0x2bb45a92L, 0x5cb36a04L, 0xc2d7ffa7L, 0xb5d0cf31L,
> -+ 0x2cd99e8bL, 0x5bdeae1dL, 0x9b64c2b0L, 0xec63f226L, 0x756aa39cL,
> -+ 0x026d930aL, 0x9c0906a9L, 0xeb0e363fL, 0x72076785L, 0x05005713L,
> -+ 0x95bf4a82L, 0xe2b87a14L, 0x7bb12baeL, 0x0cb61b38L, 0x92d28e9bL,
> -+ 0xe5d5be0dL, 0x7cdcefb7L, 0x0bdbdf21L, 0x86d3d2d4L, 0xf1d4e242L,
> -+ 0x68ddb3f8L, 0x1fda836eL, 0x81be16cdL, 0xf6b9265bL, 0x6fb077e1L,
> -+ 0x18b74777L, 0x88085ae6L, 0xff0f6a70L, 0x66063bcaL, 0x11010b5cL,
> -+ 0x8f659effL, 0xf862ae69L, 0x616bffd3L, 0x166ccf45L, 0xa00ae278L,
> -+ 0xd70dd2eeL, 0x4e048354L, 0x3903b3c2L, 0xa7672661L, 0xd06016f7L,
> -+ 0x4969474dL, 0x3e6e77dbL, 0xaed16a4aL, 0xd9d65adcL, 0x40df0b66L,
> -+ 0x37d83bf0L, 0xa9bcae53L, 0xdebb9ec5L, 0x47b2cf7fL, 0x30b5ffe9L,
> -+ 0xbdbdf21cL, 0xcabac28aL, 0x53b39330L, 0x24b4a3a6L, 0xbad03605L,
> -+ 0xcdd70693L, 0x54de5729L, 0x23d967bfL, 0xb3667a2eL, 0xc4614ab8L,
> -+ 0x5d681b02L, 0x2a6f2b94L, 0xb40bbe37L, 0xc30c8ea1L, 0x5a05df1bL,
> -+ 0x2d02ef8dL
> -+ };
> -+
> -+uint32_t crc32(uint8_t *s, uint32_t len)
> -+{
> -+ uint32_t i, val = 0;
> -+
> -+ for (i = 0; i < len; i++) {
> -+ val = crc32_tab[(val^s[i]) & 0xff] ^ (val >> 8);
> -+ }
> -+ return val;
> -+}
> -+
> -diff -uN fis.orig/crc.h fis/crc.h
> ---- fis.orig/crc.h 1970-01-01 10:00:00.000000000 +1000
> -+++ fis/crc.h 2008-04-01 11:39:13.000000000 +1100
> -@@ -0,0 +1,25 @@
> -+/*
> -+ * crc.h
> -+ *
> -+ * $Id: crc.h,v 1.1 2006/02/13 09:58:08 andrzej Exp $
> -+ *
> -+ * Gary S. Brown's CRC - header.
> -+ *
> -+ * Copyright (C) 2006 Ekiert sp z o.o.
> -+ * Author: Andrzej Ekiert <a.ekiert@ekiert.com>
> -+ *
> -+ * This program is free software; you can redistribute it and/or
> -+ * modify it under the terms of the GNU General Public License
> -+ * as published by the Free Software Foundation; either version
> -+ * 2 of the License, or (at your option) any later version.
> -+ */
> -+
> -+#ifndef CRC_H
> -+#define CRC_H
> -+
> -+#include <stdint.h>
> -+
> -+uint32_t crc32(uint8_t *s, uint32_t len);
> -+
> -+#endif //CRC_H
> -+
> -diff -uN fis.orig/fis.c fis/fis.c
> ---- fis.orig/fis.c 2007-05-03 06:42:51.000000000 +1000
> -+++ fis/fis.c 2008-04-01 11:52:11.000000000 +1100
> -@@ -30,6 +30,7 @@
> - #include <sys/stat.h>
> - #include <fcntl.h>
> -
> -+#include "crc.h"
> -
> - // Report an error and terminate:
> -
> -@@ -141,8 +142,8 @@
> -
> - static void dump_desc(FILE* f, const struct fis_image_desc* d)
> - {
> -- fprintf(f,"%16s: addr = 0x%08x, size = 0x%08x\n",
> -- d->name, d->flash_base, d->size);
> -+ fprintf(f,"%16s: flash addr = 0x%08x, mem addr = 0x%08x, size = 0x%08x, checksum = 0x%08x\n",
> -+ d->name, d->flash_base, d->mem_base, d->size, d->file_cksum);
> - for (unsigned int i=0; i<(sizeof(d->skips)/4); ++i) {
> - if (d->skips[i]==0x736b6970 || d->skips[i]==0x70696b73) { // "skip"
> - uint32_t offset = d->skips[i+1];
> -@@ -332,6 +333,7 @@
> - d->size = swap_end_32(d->size);
> - d->entry_point = swap_end_32(d->entry_point);
> - d->data_length = swap_end_32(d->data_length);
> -+ d->file_cksum = swap_end_32(d->file_cksum);
> - for (unsigned int i=0; i<(sizeof(d->skips)/4); ++i) {
> - d->skips[i] = swap_end_32(d->skips[i]);
> - }
> -@@ -446,19 +448,25 @@
> - char* arg=argv[i];
> - if (strcmp(arg,"-l")==0) {
> - if (i==argc-1) {
> -- fatal("argumnet missing for -l");
> -+ fatal("argument missing for -l");
> - }
> - ++i;
> - d->size = str_to_int_maybe_hex(argv[i]);
> - } else if (strcmp(arg,"-f")==0) {
> - if (i==argc-1) {
> -- fatal("argumnet missing for -f");
> -+ fatal("argument missing for -f");
> - }
> - ++i;
> - d->flash_base = str_to_int_maybe_hex(argv[i]);
> -+ } else if (strcmp(arg,"-m")==0) {
> -+ if (i==argc-1) {
> -+ fatal("argument missing for -m");
> -+ }
> -+ ++i;
> -+ d->mem_base = str_to_int_maybe_hex(argv[i]);
> - } else if (strcmp(arg,"-n")==0) {
> - if (i==argc-1) {
> -- fatal("argumnet missing for -n");
> -+ fatal("argument missing for -n");
> - }
> - ++i;
> - char* name = argv[i];
> -@@ -499,6 +507,66 @@
> - save_dir(fd,offset,size,swap_endianness,dir);
> - }
> -
> -+static void fis_checksum(const char* device, int offset, int size, bool swap_endianness,
> -+ int argc, char* argv[])
> -+{
> -+ char* name = NULL;
> -+ char* filename = NULL;
> -+
> -+ for (int i=0; i<argc; ++i) {
> -+ char* arg=argv[i];
> -+ if (strcmp(arg,"-f")==0) {
> -+ if (i==argc-1) {
> -+ fatal("argument missing for -f");
> -+ }
> -+ ++i;
> -+ filename = argv[i];
> -+ } else if (strcmp(arg,"-n")==0) {
> -+ if (i==argc-1) {
> -+ fatal("argument missing for -n");
> -+ }
> -+ ++i;
> -+ name = argv[i];
> -+ if (strlen(name)>=16) {
> -+ fatal("name too long, max 16 chars including terminating null");
> -+ }
> -+ } else {
> -+ fputs("Unrecognised option '",stderr);
> -+ fputs(arg,stderr);
> -+ fputs("'\n",stderr);
> -+ exit(1);
> -+ }
> -+ }
> -+
> -+ if (name == NULL || filename == NULL)
> -+ fatal("filename and partition name must be specified");
> -+
> -+ int fd;
> -+ char *buf;
> -+ struct stat stat_buf;
> -+ uint32_t crc;
> -+
> -+ CHECK(fd=open(filename,O_RDONLY),-1);
> -+ CHECK(stat(filename, &stat_buf),-1);
> -+ buf = (char*)chk_malloc(stat_buf.st_size);
> -+ CHECK(read(fd,buf,stat_buf.st_size),-1);
> -+ crc = crc32(buf,stat_buf.st_size);
> -+ close(fd);
> -+ free(buf);
> -+
> -+ CHECK(fd=open(device,O_RDWR),-1);
> -+ dir_t dir;
> -+ load_dir(fd,offset,&size,swap_endianness,&dir);
> -+ iter_t after = NULL;
> -+ FOR_EACH_DIR_ENTRY(dir,i) {
> -+ if (strcmp(get(i)->name, name) == 0) {
> -+ get(i)->file_cksum = crc;
> -+ get(i)->data_length = stat_buf.st_size;
> -+ break;
> -+ }
> -+ }
> -+ save_dir(fd,offset,size,swap_endianness,dir);
> -+}
> -
> - static void fis_delete(const char* device, int offset, int size, bool swap_endianness,
> - char* name)
> -@@ -526,8 +594,9 @@
> - fputs("Usage:\n"
> - " fis [options] list\n"
> - " fis [options] init\n"
> -- " fis [options] create -f address -l size -n name\n"
> -+ " fis [options] create -f address -l size -n name [-m memory_address]\n"
> - " fis [options] delete name\n"
> -+ " fis [options] checksum -f filename -n name\n"
> - "Options:\n"
> - " -d device specify /dev/mtd* device containing directory\n"
> - " -o offset specify offset into device of start of directory\n"
> -@@ -597,9 +666,14 @@
> - fis_create(device,offset,size,swap_endianness,
> - argc-i-1,&argv[i+1]);
> - break;
> -+ } else if (strcmp(arg,"checksum")==0) {
> -+ check_dev(device);
> -+ fis_checksum(device,offset,size,swap_endianness,
> -+ argc-i-1,&argv[i+1]);
> -+ break;
> - } else if (strcmp(arg,"delete")==0) {
> - if (i!=argc-2) {
> -- fatal("Exactly one argumnet required after 'delete'");
> -+ fatal("Exactly one argument required after 'delete'");
> - }
> - ++i;
> - char* name = argv[i];
> diff --git a/package/fis/0003-list_output.patch b/package/fis/0003-list_output.patch
> deleted file mode 100644
> index 6c1e4eb9dd..0000000000
> --- a/package/fis/0003-list_output.patch
> +++ /dev/null
> @@ -1,21 +0,0 @@
> ---- fis.orig/fis.c 2010-05-12 10:22:10.000000000 -0700
> -+++ fis/fis.c 2010-05-12 10:19:24.000000000 -0700
> -@@ -142,8 +142,8 @@
> -
> - static void dump_desc(FILE* f, const struct fis_image_desc* d)
> - {
> -- fprintf(f,"%16s: flash addr = 0x%08x, mem addr = 0x%08x, size = 0x%08x, checksum = 0x%08x\n",
> -- d->name, d->flash_base, d->mem_base, d->size, d->file_cksum);
> -+ fprintf(f,"%-16s 0x%08x 0x%08x 0x%08x 0x%08x 0x%08x\n",
> -+ d->name, d->flash_base, d->mem_base, d->size, d->entry_point, d->file_cksum);
> - for (unsigned int i=0; i<(sizeof(d->skips)/4); ++i) {
> - if (d->skips[i]==0x736b6970 || d->skips[i]==0x70696b73) { // "skip"
> - uint32_t offset = d->skips[i+1];
> -@@ -400,6 +400,7 @@
> - CHECK(fd=open(device,O_RDONLY),-1);
> - dir_t dir;
> - load_dir(fd,offset,&size,swap_endianness,&dir);
> -+ fprintf(stdout,"Name FLASH addr Mem addr Length Entry point Checksum\n");
> - FOR_EACH_DIR_ENTRY(dir,i) {
> - dump_desc(stdout,get(i));
> - }
> diff --git a/package/fis/0004-sorted_list.patch b/package/fis/0004-sorted_list.patch
> deleted file mode 100644
> index 6854977ba4..0000000000
> --- a/package/fis/0004-sorted_list.patch
> +++ /dev/null
> @@ -1,30 +0,0 @@
> ---- fis.orig/fis.c 2010-05-12 11:09:22.000000000 -0700
> -+++ fis/fis.c 2010-05-12 11:05:45.000000000 -0700
> -@@ -401,9 +401,24 @@
> - dir_t dir;
> - load_dir(fd,offset,&size,swap_endianness,&dir);
> - fprintf(stdout,"Name FLASH addr Mem addr Length Entry point Checksum\n");
> -- FOR_EACH_DIR_ENTRY(dir,i) {
> -- dump_desc(stdout,get(i));
> -- }
> -+ uint32_t last_addr = 0;
> -+ bool image_found;
> -+ do {
> -+ uint32_t lowest_addr = 0xffffffff;
> -+ iter_t index;
> -+ image_found = false;
> -+ FOR_EACH_DIR_ENTRY(dir,i) {
> -+ const struct fis_image_desc *d = get(i);
> -+ if ((d->flash_base >= last_addr) && (d->flash_base < lowest_addr)) {
> -+ lowest_addr = d->flash_base;
> -+ image_found = true;
> -+ index = i;
> -+ }
> -+ }
> -+ if (image_found)
> -+ dump_desc(stdout,get(index));
> -+ last_addr = lowest_addr + 1;
> -+ } while (image_found == true);
> - }
> -
> -
> diff --git a/package/fis/Config.in b/package/fis/Config.in
> deleted file mode 100644
> index c5bfbb82cc..0000000000
> --- a/package/fis/Config.in
> +++ /dev/null
> @@ -1,4 +0,0 @@
> -config BR2_PACKAGE_FIS
> - bool "fis"
> - help
> - fis - manipulate RedBoot partition table from Linux.
> diff --git a/package/fis/fis.mk b/package/fis/fis.mk
> deleted file mode 100644
> index 6db06bf74a..0000000000
> --- a/package/fis/fis.mk
> +++ /dev/null
> @@ -1,22 +0,0 @@
> -################################################################################
> -#
> -# fis
> -#
> -################################################################################
> -
> -FIS_SITE = http://svn.chezphil.org/utils/trunk
> -FIS_SITE_METHOD = svn
> -FIS_VERSION = 2892
> -FIS_LICENSE = GPL-2.0+
> -FIS_LICENSE_FILES = fis.c
> -
> -define FIS_BUILD_CMDS
> - $(TARGET_CC) $(TARGET_CFLAGS) -std=c99 -o $(@D)/fis \
> - $(@D)/fis.c $(@D)/crc.c $(TARGET_LDFLAGS)
> -endef
> -
> -define FIS_INSTALL_TARGET_CMDS
> - $(INSTALL) -m 0755 -D $(@D)/fis $(TARGET_DIR)/sbin/fis
> -endef
> -
> -$(eval $(generic-package))
> --
> 2.20.1
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
prev parent reply other threads:[~2020-02-03 14:11 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-03 13:57 [Buildroot] [PATCH 1/1] package/fis: remove package Mark Corbin
2020-02-03 14:11 ` Yann E. MORIN [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200203141113.GD3299@scaer \
--to=yann.morin.1998@free.fr \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.