summaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
Diffstat (limited to 'util')
-rwxr-xr-xutil/grubpo/grubpo.sh68
-rw-r--r--util/nvmutil/nvmutil.c10
-rw-r--r--util/spkmodem_recv/spkmodem-recv.c43
3 files changed, 90 insertions, 31 deletions
diff --git a/util/grubpo/grubpo.sh b/util/grubpo/grubpo.sh
new file mode 100755
index 00000000..87abc735
--- /dev/null
+++ b/util/grubpo/grubpo.sh
@@ -0,0 +1,68 @@
+#!/bin/sh
+
+# SPDX-License-Identifier: MIT
+
+# Copyright (c) 2026 Leah Rowe
+
+set -u -e
+
+urlmain="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub"
+urlbkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub"
+
+# script to grab GNU gettext po files from translationproject.org -
+# i noticed that the grub bootstrap script grabs these at build time,
+# without actually checking signatures, and they could change on the
+# server upstream at any time
+
+# this means that the GRUB build process is currently non-deterministic,
+# which is a violation of libreboot policy.
+
+tmpdir="`mktemp -d`"
+tmpmod="`mktemp -d`"
+
+mkdir -p "$tmpdir" "$tmpmod" || exit 1
+
+(
+cd "$tmpdir" || exit 1
+wget --mirror --level=1 -nd -nv -A.po -P 'po/.reference' \
+ https://translationproject.org/latest/grub/ || \
+ exit 1
+find -type f > "$tmpmod/tmplist" || exit 1
+while read -r f; do
+ printf "%s\n" "${f#./}" >> "$tmpmod/module.list"
+
+ # now make the actual config files, but don't use
+ # the main upstream, because those files can change
+ # at any time. we will, over time, manually update
+ # our mirrors
+
+ pkgname="${f##*/}"
+ [ -z "$pkgname" ] && printf "ERR\n" && exit 1
+
+ pkgsum="`sha512sum "$f" | awk '{print $1}'`"
+
+ mkdir -p "$tmpmod/$pkgname" || exit 1
+
+ printf "# SPDX-License-Identifier: GPL-3.0-or-later\n\n" >> \
+ "$tmpmod/$pkgname/module.cfg" || exit 1
+
+ printf "subcurl=\"%s/%s\"\n" "$urlmain" "$pkgname" >> \
+ "$tmpmod/$pkgname/module.cfg" || exit 1
+ printf "subcurl_bkup=\"%s/%s\"\n" "$urlbkup" "$pkgname" >> \
+ "$tmpmod/$pkgname/module.cfg" || exit 1
+ printf "subhash=\"%s\"\n" "$pkgsum" >> "$tmpmod/$pkgname/module.cfg"
+
+done < "$tmpmod/tmplist" || exit 1; :
+mv "$tmpmod/tmplist" "$tmpdir" || exit 1
+)
+
+printf "tmpdir for modules: '%s'\n" "$tmpmod"
+
+rm -f "module.list" || exit 1
+
+printf "Check directory for lbmk files: '%s'\n" "$tmpmod"
+printf "This directory has the PO files: '%s'\n" "$tmpdir"
+
+exit 0
+
+
diff --git a/util/nvmutil/nvmutil.c b/util/nvmutil/nvmutil.c
index 05459bb7..b1469586 100644
--- a/util/nvmutil/nvmutil.c
+++ b/util/nvmutil/nvmutil.c
@@ -1,5 +1,5 @@
/* SPDX-License-Identifier: MIT */
-/* Copyright (c) 2022-2025 Leah Rowe <leah@libreboot.org> */
+/* Copyright (c) 2022-2026 Leah Rowe <leah@libreboot.org> */
/* Copyright (c) 2023 Riku Viitanen <riku.viitanen@protonmail.com> */
#include <sys/stat.h>
@@ -38,7 +38,7 @@ uint16_t mac[3] = {0, 0, 0};
ssize_t nf;
size_t partsize, gbe[2];
uint8_t nvmPartChanged[2] = {0, 0}, do_read[2] = {1, 1};
-int flags, rfd, fd, part;
+int flags, rfd, fd, part, e = 1;
const char *strMac = NULL, *strRMac = "xx:xx:xx:xx:xx:xx", *filename = NULL;
@@ -459,12 +459,10 @@ writeGbe(void)
void
swap(int partnum)
{
- size_t w, x;
uint8_t *n = (uint8_t *) gbe[partnum];
- int e = 1;
- for (w = NVM_SIZE * ((uint8_t *) &e)[0], x = 1; w < NVM_SIZE;
- w += 2, x += 2) {
+ for (size_t w = NVM_SIZE * ((uint8_t *) &e)[0], x = 1;
+ w < NVM_SIZE; w += 2, x += 2) {
n[w] ^= n[x];
n[x] ^= n[w];
n[w] ^= n[x];
diff --git a/util/spkmodem_recv/spkmodem-recv.c b/util/spkmodem_recv/spkmodem-recv.c
index 4467282d..38ceb72a 100644
--- a/util/spkmodem_recv/spkmodem-recv.c
+++ b/util/spkmodem_recv/spkmodem-recv.c
@@ -5,7 +5,7 @@
/* Forked from coreboot's version, at util/spkmodem_recv/ in coreboot.git,
* revision 5c2b5fcf2f9c9259938fd03cfa3ea06b36a007f0 as of 3 January 2022.
* This version is heavily modified, re-written based on OpenBSD Kernel Source
- * File Style Guide (KNF); this change is Copyright 2023 Leah Rowe. */
+ * File Style Guide (KNF); this change is Copyright 2023,2026 Leah Rowe. */
#include <err.h>
#include <errno.h>
@@ -25,28 +25,24 @@
#define ERR() (errno = errno ? errno : ECANCELED)
#define reset_char() ascii = 0, ascii_bit = 7
+#define err_if(x) if (x) err(ERR(), NULL)
signed short frame[MAX_SAMPLES], pulse[MAX_SAMPLES];
int ringpos, debug, freq_data, freq_separator, sample_count, ascii_bit = 7;
char ascii = 0;
-void handle_audio(void);
-void decode_pulse(void);
int set_ascii_bit(void);
-void print_char(void);
-void print_stats(void);
+void handle_audio(void), decode_pulse(void), print_char(void),
+ print_stats(void);
int
main(int argc, char *argv[])
{
- int c;
#ifdef __OpenBSD__
- if (pledge("stdio", NULL) == -1)
- err(ERR(), "pledge");
+ err_if (pledge("stdio", NULL) == -1);
#endif
- while ((c = getopt(argc, argv, "d")) != -1)
- if (!(debug = (c == 'd')))
- err(errno = EINVAL, NULL);
+ for (int c; (c = getopt(argc, argv, "d")) != -1;)
+ err_if (!(debug = (c == 'd')));
setvbuf(stdout, NULL, _IONBF, 0);
while (!feof(stdin))
handle_audio();
@@ -65,7 +61,6 @@ handle_audio(void)
decode_pulse();
return;
}
-
if (set_ascii_bit() < 0)
print_char();
sample_count = 0;
@@ -85,9 +80,8 @@ decode_pulse(void)
if (ferror(stdin) != 0)
err(ERR(), "Could not read from frame.");
- if ((pulse[ringpos] = (abs(frame[ringpos]) > THRESHOLD) ? 1 : 0))
- ++freq_separator;
- ++ringpos;
+ pulse[ringpos] = (abs(frame[ringpos]) > THRESHOLD) ? 1 : 0;
+ freq_separator += pulse[ringpos++];
ringpos %= MAX_SAMPLES;
++sample_count;
}
@@ -104,6 +98,15 @@ set_ascii_bit(void)
}
void
+print_stats(void)
+{
+ long stdin_pos;
+ err_if ((stdin_pos = ftell(stdin)) == -1);
+ printf ("%d %d %d @%ld\n", freq_data, freq_separator,
+ FREQ_DATA_THRESHOLD, stdin_pos - sizeof(frame));
+}
+
+void
print_char(void)
{
if (debug)
@@ -112,13 +115,3 @@ print_char(void)
printf("%c", ascii);
reset_char();
}
-
-void
-print_stats(void)
-{
- long stdin_pos;
- if ((stdin_pos = ftell(stdin)) == -1)
- err(ERR(), NULL);
- printf ("%d %d %d @%ld\n", freq_data, freq_separator,
- FREQ_DATA_THRESHOLD, stdin_pos - sizeof(frame));
-}