[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v23 16/33] libtasn1: compile into asn1 module
From: |
Gary Lin |
Subject: |
[PATCH v23 16/33] libtasn1: compile into asn1 module |
Date: |
Fri, 15 Nov 2024 15:34:44 +0800 |
From: Daniel Axtens <dja@axtens.net>
Create a wrapper file that specifies the module license.
Set up the makefile so it is built.
Signed-off-by: Daniel Axtens <dja@axtens.net>
Signed-off-by: Gary Lin <glin@suse.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
---
autogen.sh | 19 +++++++++++++++++++
grub-core/Makefile.core.def | 15 +++++++++++++++
grub-core/lib/libtasn1_wrap/wrap.c | 27 +++++++++++++++++++++++++++
3 files changed, 61 insertions(+)
create mode 100644 grub-core/lib/libtasn1_wrap/wrap.c
diff --git a/autogen.sh b/autogen.sh
index 195daa541..d08dc9a31 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -51,6 +51,25 @@ for x in mpi-asm-defs.h mpih-add1.c mpih-sub1.c mpih-mul1.c
mpih-mul2.c mpih-mul
cp grub-core/lib/libgcrypt-grub/mpi/generic/"$x"
grub-core/lib/libgcrypt-grub/mpi/"$x"
done
+echo "Importing libtasn1..."
+if [ -d grub-core/lib/libtasn1-grub ]; then
+ rm -rf grub-core/lib/libtasn1-grub
+fi
+
+mkdir -p grub-core/lib/libtasn1-grub/lib
+cp grub-core/lib/libtasn1/lib/*.[ch] grub-core/lib/libtasn1-grub/lib
+cp grub-core/lib/libtasn1/libtasn1.h grub-core/lib/libtasn1-grub/
+
+for patch in \
+ 0001-libtasn1-disable-code-not-needed-in-grub.patch \
+ 0002-libtasn1-replace-strcat-with-strcpy-in-_asn1_str_cat.patch \
+ 0003-libtasn1-replace-strcat-with-_asn1_str_cat.patch \
+ 0004-libtasn1-adjust-the-header-paths-in-libtasn1.h.patch \
+ 0005-libtasn1-Use-grub_divmod64-for-division.patch \
+ 0006-libtasn1-fix-the-potential-buffer-overrun.patch ; do
+ patch -p1 -i grub-core/lib/libtasn1-patches/$patch
+done
+
echo "Generating Automake input..."
# Automake doesn't like including files from a path outside the project.
diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
index 063ef5dd7..cb4c5800e 100644
--- a/grub-core/Makefile.core.def
+++ b/grub-core/Makefile.core.def
@@ -2606,3 +2606,18 @@ module = {
enable = efi;
depends = part_gpt;
};
+
+module = {
+ name = asn1;
+ common = lib/libtasn1-grub/lib/decoding.c;
+ common = lib/libtasn1-grub/lib/coding.c;
+ common = lib/libtasn1-grub/lib/element.c;
+ common = lib/libtasn1-grub/lib/structure.c;
+ common = lib/libtasn1-grub/lib/parser_aux.c;
+ common = lib/libtasn1-grub/lib/gstr.c;
+ common = lib/libtasn1-grub/lib/errors.c;
+ common = lib/libtasn1_wrap/wrap.c;
+ cflags = '$(CFLAGS_POSIX) $(CFLAGS_GNULIB)';
+ /* -Wno-type-limits comes from configure.ac of libtasn1 */
+ cppflags = '$(CPPFLAGS_POSIX) $(CPPFLAGS_GNULIB)
-I$(srcdir)/lib/libtasn1-grub -I$(srcdir)/lib/libtasn1-grub/lib
-Wno-type-limits';
+};
diff --git a/grub-core/lib/libtasn1_wrap/wrap.c
b/grub-core/lib/libtasn1_wrap/wrap.c
new file mode 100644
index 000000000..fcada55a8
--- /dev/null
+++ b/grub-core/lib/libtasn1_wrap/wrap.c
@@ -0,0 +1,27 @@
+/*
+ * GRUB -- GRand Unified Bootloader
+ * Copyright (C) 2020 IBM Corporation
+ * Copyright (C) 2024 Free Software Foundation, Inc.
+ *
+ * GRUB 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 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GRUB is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GRUB. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <grub/dl.h>
+
+/*
+ * libtasn1 is provided under LGPL2.1+, which is compatible
+ * with GPL3+. As GRUB as a whole is under GPL3+, this module
+ * is therefore under GPL3+ also.
+ */
+GRUB_MOD_LICENSE ("GPLv3+");
--
2.43.0
- [PATCH v23 05/33] libtasn1: replace strcat() with _asn1_str_cat(), (continued)
- [PATCH v23 05/33] libtasn1: replace strcat() with _asn1_str_cat(), Gary Lin, 2024/11/15
- [PATCH v23 07/33] libtasn1: Use grub_divmod64() for division, Gary Lin, 2024/11/15
- [PATCH v23 08/33] libtasn1: fix the potential buffer overrun, Gary Lin, 2024/11/15
- [PATCH v23 09/33] asn1_test: include asn1_test.h only, Gary Lin, 2024/11/15
- [PATCH v23 10/33] asn1_test: rename the main functions to the test names, Gary Lin, 2024/11/15
- [PATCH v23 11/33] asn1_test: return either 0 or 1 to reflect the results, Gary Lin, 2024/11/15
- [PATCH v23 12/33] asn1_test: remove 'verbose' and the unnecessary printf(), Gary Lin, 2024/11/15
- [PATCH v23 13/33] asn1_test: print the error messages with grub_printf(), Gary Lin, 2024/11/15
- [PATCH v23 14/33] asn1_test: use the grub-specific functions and types, Gary Lin, 2024/11/15
- [PATCH v23 15/33] asn1_test: enable the testcase only when GRUB_LONG_MAX is larger than GRUB_INT_MAX, Gary Lin, 2024/11/15
- [PATCH v23 16/33] libtasn1: compile into asn1 module,
Gary Lin <=
- [PATCH v23 17/33] asn1_test: test module for libtasn1, Gary Lin, 2024/11/15
- [PATCH v23 18/33] libtasn1: Add the documentation, Gary Lin, 2024/11/15
- [PATCH v23 19/33] key_protector: Add key protectors framework, Gary Lin, 2024/11/15
- [PATCH v23 20/33] tss2: Add TPM2 buffer handling functions, Gary Lin, 2024/11/15
- [PATCH v23 21/33] tss2: Add TPM2 types and Marshal/Unmarshal functions, Gary Lin, 2024/11/15
- [PATCH v23 25/33] util/grub-protect: Add new tool, Gary Lin, 2024/11/15
- [PATCH v23 28/33] cryptodisk: Fallback to passphrase, Gary Lin, 2024/11/15
- [PATCH v23 26/33] tpm2_key_protector: Support authorized policy, Gary Lin, 2024/11/15
- [PATCH v23 27/33] tpm2_key_protector: Implement NV index, Gary Lin, 2024/11/15
- [PATCH v23 22/33] tss2: Add TPM2 Software Stack (TSS2) support, Gary Lin, 2024/11/15