diff -rNu /usr/local/ports/pobj/efivar-38/efivar-bsd-v1/src/efivar.c ./efivar.c
--- /usr/local/ports/pobj/efivar-38/efivar-bsd-v1/src/efivar.c	Wed Oct  5 12:03:05 2022
+++ ./efivar.c	Wed Mar  5 09:58:35 2025
@@ -29,6 +29,7 @@
 #define ACTION_USAGE		0x00
 #define ACTION_LIST		0x01
 #define ACTION_PRINT		0x02
+#define ACTION_DELETE		0x03
 #define ACTION_APPEND		0x04
 #define ACTION_LIST_GUIDS	0x08
 #define ACTION_WRITE		0x10
@@ -259,6 +260,29 @@
 }
 
 static void
+delete_variable(char *guid_name)
+{
+	efi_guid_t guid = efi_guid_empty;
+	char *name = NULL;
+	int rc;
+
+	parse_name(guid_name, &name, &guid);
+	if (!name || efi_guid_is_empty(&guid)) {
+		fprintf(stderr, "efivar: could not parse variable name.\n");
+		show_errors();
+		exit(1);
+	}
+
+	errno = 0;
+	rc = efi_del_variable(guid, name);
+	if (rc < 0) {
+		fprintf(stderr, "efivar: delete variable: %s\n", strerror(errno));
+		show_errors();
+		exit(1);
+	}
+}
+
+static void
 save_variable_data(efi_variable_t *var, char *outfile, bool dmpstore)
 {
 	FILE *out = NULL;
@@ -441,6 +465,7 @@
 		"  -A, --attributes=<attributes>     attributes to use on append\n"
 		"  -l, --list                        list current variables\n"
 		"  -p, --print                       print variable specified by --name\n"
+		"  -r, --remove                      delete variable specified by --name\n"
 		"  -D, --dmpstore                    use DMPSTORE format when exporting\n"
 		"  -d, --print-decimal               print variable in decimal values specified\n"
 		"                                    by --name\n"
@@ -475,7 +500,7 @@
 	uint32_t attributes = EFI_VARIABLE_NON_VOLATILE
 			      | EFI_VARIABLE_BOOTSERVICE_ACCESS
 			      | EFI_VARIABLE_RUNTIME_ACCESS;
-	char *sopts = "aA:Dde:f:i:Llpn:vw?";
+	char *sopts = "aA:Dde:f:i:Llprn:vw?";
 	struct option lopts[] = {
 		{"append", no_argument, 0, 'a'},
 		{"attributes", required_argument, 0, 'A'},
@@ -489,6 +514,7 @@
 		{"name", required_argument, 0, 'n'},
 		{"print", no_argument, 0, 'p'},
 		{"print-decimal", no_argument, 0, 'd'},
+		{"remove", no_argument, 0, 'r'},
 		{"usage", no_argument, 0, 0},
 		{"verbose", no_argument, 0, 'v'},
 		{"write", no_argument, 0, 'w'},
@@ -535,6 +561,9 @@
 			case 'p':
 				action |= ACTION_PRINT;
 				break;
+			case 'r':
+				action |= ACTION_DELETE;
+				break;
 			case 'v':
 				verbose += 1;
 				break;
@@ -565,6 +594,9 @@
 			break;
 		case ACTION_PRINT_DEC | ACTION_PRINT:
 			show_variable(guid_name, SHOW_DECIMAL);
+			break;
+		case ACTION_DELETE:
+			delete_variable(guid_name);
 			break;
 		case ACTION_APPEND | ACTION_PRINT:
 			prepare_data(datafile, &data, &data_size);
