bolt: update to 0.6.
This commit is contained in:
parent
1fa97915a7
commit
91a7685f4d
2 changed files with 721 additions and 2 deletions
718
srcpkgs/bolt/patches/140.patch
Normal file
718
srcpkgs/bolt/patches/140.patch
Normal file
|
@ -0,0 +1,718 @@
|
||||||
|
Upstream: https://gitlab.freedesktop.org/bolt/bolt/merge_requests/140
|
||||||
|
|
||||||
|
From 7c0218e69062409f936bea943b0fdfe2e90eb85f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Christian Kellner <christian@kellner.me>
|
||||||
|
Date: Mon, 10 Dec 2018 17:18:20 +0100
|
||||||
|
Subject: [PATCH 01/14] test: bolt_closedir error check only on glibc
|
||||||
|
|
||||||
|
The error check for bolt_closedir is based on the fact that glibc
|
||||||
|
will return EINVAL when passing NULL. On "musl" there is no such
|
||||||
|
check and instead we crash. Let's not crash, and instead omit the
|
||||||
|
test case on !glibc.
|
||||||
|
---
|
||||||
|
tests/test-common.c | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/tests/test-common.c b/tests/test-common.c
|
||||||
|
index e25dd6a..49b7d4d 100644
|
||||||
|
--- a/tests/test-common.c
|
||||||
|
+++ b/tests/test-common.c
|
||||||
|
@@ -694,10 +694,12 @@ test_io_errors (TestIO *tt, gconstpointer user_data)
|
||||||
|
g_clear_pointer (&err, g_error_free);
|
||||||
|
|
||||||
|
/* closedir */
|
||||||
|
+#ifdef __GLIBC__
|
||||||
|
ok = bolt_closedir (NULL, &err);
|
||||||
|
g_assert_error (err, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT);
|
||||||
|
g_assert_false (ok);
|
||||||
|
g_clear_pointer (&err, g_error_free);
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
/* rmdir */
|
||||||
|
ok = bolt_rmdir (noexist, &err);
|
||||||
|
--
|
||||||
|
2.18.1
|
||||||
|
|
||||||
|
|
||||||
|
From b3b93465923c29df7ca0ce009a31d882d9a1922e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Christian Kellner <christian@kellner.me>
|
||||||
|
Date: Mon, 10 Dec 2018 17:21:42 +0100
|
||||||
|
Subject: [PATCH 02/14] test: just assert G_IO_ERROR for bolt_copy_bytes
|
||||||
|
|
||||||
|
When passing an invalid file descriptor to bolt_copy_bytes, to check
|
||||||
|
its error handling is correct, just check we get an G_IO_ERROR back,
|
||||||
|
but don't expect a specific error code, because that depends on the
|
||||||
|
copy primitive used in bolt_copy_bytes; currently this is only the
|
||||||
|
copy_file_range function used, but in the future sendfile should be
|
||||||
|
added and that will return a different error code (EBADF).
|
||||||
|
---
|
||||||
|
tests/test-common.c | 3 ++-
|
||||||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/tests/test-common.c b/tests/test-common.c
|
||||||
|
index 49b7d4d..2c261df 100644
|
||||||
|
--- a/tests/test-common.c
|
||||||
|
+++ b/tests/test-common.c
|
||||||
|
@@ -806,7 +806,8 @@ test_io_errors (TestIO *tt, gconstpointer user_data)
|
||||||
|
|
||||||
|
/* copy_bytes */
|
||||||
|
ok = bolt_copy_bytes (to, from, 1, &err);
|
||||||
|
- g_assert_error (err, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT);
|
||||||
|
+ g_assert_nonnull (err);
|
||||||
|
+ g_assert_cmpint (err->domain, ==, G_IO_ERROR);
|
||||||
|
g_assert_false (ok);
|
||||||
|
g_clear_pointer (&err, g_error_free);
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.18.1
|
||||||
|
|
||||||
|
|
||||||
|
From 1d4f037e3f607732444069ea6e096c9fb389cf38 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Christian Kellner <christian@kellner.me>
|
||||||
|
Date: Mon, 10 Dec 2018 17:25:53 +0100
|
||||||
|
Subject: [PATCH 03/14] test: power: explicitly include stdlib.h
|
||||||
|
|
||||||
|
The EXIT_FAILURE/EXIT_SUCCESS "constants" are defined in the
|
||||||
|
"stdlib.h" header, so explicitly include that file to make sure
|
||||||
|
they are properly defined.
|
||||||
|
---
|
||||||
|
tests/test-power.c | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/tests/test-power.c b/tests/test-power.c
|
||||||
|
index a97c19c..d806723 100644
|
||||||
|
--- a/tests/test-power.c
|
||||||
|
+++ b/tests/test-power.c
|
||||||
|
@@ -38,6 +38,7 @@
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <sys/wait.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
+#include <stdlib.h>
|
||||||
|
|
||||||
|
typedef struct udev_device udev_device;
|
||||||
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC (udev_device, udev_device_unref);
|
||||||
|
--
|
||||||
|
2.18.1
|
||||||
|
|
||||||
|
|
||||||
|
From cea5cd2cd3337fc3e611c23c54befb851684147a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Christian Kellner <christian@kellner.me>
|
||||||
|
Date: Mon, 10 Dec 2018 17:28:48 +0100
|
||||||
|
Subject: [PATCH 04/14] cli: boltctl: explicitly include stdlib.h
|
||||||
|
|
||||||
|
The EXIT_FAILURE/EXIT_SUCCESS "constants" are defined in the
|
||||||
|
"stdlib.h" header, so explicitly include that file to make sure
|
||||||
|
they are properly defined.
|
||||||
|
---
|
||||||
|
cli/boltctl-authorize.c | 2 ++
|
||||||
|
cli/boltctl-domains.c | 2 ++
|
||||||
|
cli/boltctl-enroll.c | 2 ++
|
||||||
|
cli/boltctl-forget.c | 2 ++
|
||||||
|
cli/boltctl-info.c | 2 ++
|
||||||
|
cli/boltctl-list.c | 2 ++
|
||||||
|
cli/boltctl-monitor.c | 2 ++
|
||||||
|
cli/boltctl-power.c | 2 ++
|
||||||
|
8 files changed, 16 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/cli/boltctl-authorize.c b/cli/boltctl-authorize.c
|
||||||
|
index b774889..a2f47b3 100644
|
||||||
|
--- a/cli/boltctl-authorize.c
|
||||||
|
+++ b/cli/boltctl-authorize.c
|
||||||
|
@@ -25,6 +25,8 @@
|
||||||
|
#include "bolt-error.h"
|
||||||
|
#include "bolt-str.h"
|
||||||
|
|
||||||
|
+#include <stdlib.h>
|
||||||
|
+
|
||||||
|
int
|
||||||
|
authorize (BoltClient *client, int argc, char **argv)
|
||||||
|
{
|
||||||
|
diff --git a/cli/boltctl-domains.c b/cli/boltctl-domains.c
|
||||||
|
index 7ac2467..40d7643 100644
|
||||||
|
--- a/cli/boltctl-domains.c
|
||||||
|
+++ b/cli/boltctl-domains.c
|
||||||
|
@@ -25,6 +25,8 @@
|
||||||
|
|
||||||
|
#include "bolt-str.h"
|
||||||
|
|
||||||
|
+#include <stdlib.h>
|
||||||
|
+
|
||||||
|
/* domain related commands */
|
||||||
|
static void
|
||||||
|
print_domain (BoltDomain *domain, gboolean verbose)
|
||||||
|
diff --git a/cli/boltctl-enroll.c b/cli/boltctl-enroll.c
|
||||||
|
index 498c57e..59d8aac 100644
|
||||||
|
--- a/cli/boltctl-enroll.c
|
||||||
|
+++ b/cli/boltctl-enroll.c
|
||||||
|
@@ -24,6 +24,8 @@
|
||||||
|
|
||||||
|
#include "bolt-str.h"
|
||||||
|
|
||||||
|
+#include <stdlib.h>
|
||||||
|
+
|
||||||
|
int
|
||||||
|
enroll (BoltClient *client, int argc, char **argv)
|
||||||
|
{
|
||||||
|
diff --git a/cli/boltctl-forget.c b/cli/boltctl-forget.c
|
||||||
|
index 8bf34fc..def60bb 100644
|
||||||
|
--- a/cli/boltctl-forget.c
|
||||||
|
+++ b/cli/boltctl-forget.c
|
||||||
|
@@ -24,6 +24,8 @@
|
||||||
|
|
||||||
|
#include "bolt-str.h"
|
||||||
|
|
||||||
|
+#include <stdlib.h>
|
||||||
|
+
|
||||||
|
int
|
||||||
|
forget (BoltClient *client, int argc, char **argv)
|
||||||
|
{
|
||||||
|
diff --git a/cli/boltctl-info.c b/cli/boltctl-info.c
|
||||||
|
index 1df612a..02454d9 100644
|
||||||
|
--- a/cli/boltctl-info.c
|
||||||
|
+++ b/cli/boltctl-info.c
|
||||||
|
@@ -24,6 +24,8 @@
|
||||||
|
|
||||||
|
#include "bolt-str.h"
|
||||||
|
|
||||||
|
+#include <stdlib.h>
|
||||||
|
+
|
||||||
|
int
|
||||||
|
info (BoltClient *client, int argc, char **argv)
|
||||||
|
{
|
||||||
|
diff --git a/cli/boltctl-list.c b/cli/boltctl-list.c
|
||||||
|
index 0ef1bd0..ae7ee95 100644
|
||||||
|
--- a/cli/boltctl-list.c
|
||||||
|
+++ b/cli/boltctl-list.c
|
||||||
|
@@ -24,6 +24,8 @@
|
||||||
|
|
||||||
|
#include "bolt-str.h"
|
||||||
|
|
||||||
|
+#include <stdlib.h>
|
||||||
|
+
|
||||||
|
int
|
||||||
|
list_devices (BoltClient *client, int argc, char **argv)
|
||||||
|
{
|
||||||
|
diff --git a/cli/boltctl-monitor.c b/cli/boltctl-monitor.c
|
||||||
|
index 77d143a..93dd8a6 100644
|
||||||
|
--- a/cli/boltctl-monitor.c
|
||||||
|
+++ b/cli/boltctl-monitor.c
|
||||||
|
@@ -24,6 +24,8 @@
|
||||||
|
|
||||||
|
#include "bolt-str.h"
|
||||||
|
|
||||||
|
+#include <stdlib.h>
|
||||||
|
+
|
||||||
|
static void
|
||||||
|
handle_domain_added (BoltClient *cli,
|
||||||
|
const char *opath,
|
||||||
|
diff --git a/cli/boltctl-power.c b/cli/boltctl-power.c
|
||||||
|
index 1cdeee7..1c93251 100644
|
||||||
|
--- a/cli/boltctl-power.c
|
||||||
|
+++ b/cli/boltctl-power.c
|
||||||
|
@@ -24,6 +24,8 @@
|
||||||
|
|
||||||
|
#include "bolt-str.h"
|
||||||
|
|
||||||
|
+#include <stdlib.h>
|
||||||
|
+
|
||||||
|
static gboolean
|
||||||
|
quit_main_loop (gpointer user_data)
|
||||||
|
{
|
||||||
|
--
|
||||||
|
2.18.1
|
||||||
|
|
||||||
|
|
||||||
|
From 4f33281c98c92c1592d5810cb1aabca9b9d97ce9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Christian Kellner <christian@kellner.me>
|
||||||
|
Date: Mon, 10 Dec 2018 17:31:38 +0100
|
||||||
|
Subject: [PATCH 05/14] meson: auto-detect system unit installation
|
||||||
|
|
||||||
|
This deprecates the "systemd" meson option. Instead of requiring
|
||||||
|
systemd (for the unit file installation) depending on the meson
|
||||||
|
option, make "systemd" an optional dependency and if it is found
|
||||||
|
we install the unit file.
|
||||||
|
---
|
||||||
|
meson.build | 4 ++--
|
||||||
|
meson_options.txt | 2 +-
|
||||||
|
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/meson.build b/meson.build
|
||||||
|
index 585c0c0..7a0e020 100644
|
||||||
|
--- a/meson.build
|
||||||
|
+++ b/meson.build
|
||||||
|
@@ -102,8 +102,8 @@ dbdir = join_paths(statedir, 'lib', dbname)
|
||||||
|
udevdir = udev.get_pkgconfig_variable('udevdir')
|
||||||
|
|
||||||
|
unitdir = ''
|
||||||
|
-if get_option('systemd')
|
||||||
|
- systemd = dependency('systemd')
|
||||||
|
+systemd = dependency('systemd', required: false)
|
||||||
|
+if systemd.found()
|
||||||
|
unitdir = systemd.get_pkgconfig_variable('systemdsystemunitdir')
|
||||||
|
endif
|
||||||
|
|
||||||
|
diff --git a/meson_options.txt b/meson_options.txt
|
||||||
|
index 9f835c9..ab9288a 100644
|
||||||
|
--- a/meson_options.txt
|
||||||
|
+++ b/meson_options.txt
|
||||||
|
@@ -2,5 +2,5 @@ option('db-path', type: 'string', description: 'DEPRECATED')
|
||||||
|
option('db-name', type: 'string', value: 'boltd', description: 'Name for the device database')
|
||||||
|
option('man', type: 'combo', choices: ['auto', 'true', 'false'], value: 'auto', description: 'Build man pages')
|
||||||
|
option('privileged-group', type: 'string', value: 'wheel', description: 'Name of privileged group')
|
||||||
|
-option('systemd', type: 'boolean', value: 'true', description: 'Whether or not to install the systemd unit')
|
||||||
|
+option('systemd', type: 'boolean', value: 'true', description: 'DEPRECATED')
|
||||||
|
option('coverity', type: 'boolean', value: 'false', description: 'Whether or not to do a coverity build')
|
||||||
|
--
|
||||||
|
2.18.1
|
||||||
|
|
||||||
|
|
||||||
|
From 3aa83dc313650248038f97fa7532b42890a3e951 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Christian Kellner <christian@kellner.me>
|
||||||
|
Date: Mon, 10 Dec 2018 17:42:12 +0100
|
||||||
|
Subject: [PATCH 06/14] meson: check if copy_file_range(2) is available
|
||||||
|
|
||||||
|
Test if the copy_file_range(2) function is available and define
|
||||||
|
HAVE_FN_COPY_FILE_RANGE as 1 if so, as 0 otherwise. _GNU_SOURCE
|
||||||
|
must be defined in for glibc to expose it, so add that for all
|
||||||
|
function tests.
|
||||||
|
---
|
||||||
|
config.h.in | 1 +
|
||||||
|
meson.build | 7 ++++---
|
||||||
|
2 files changed, 5 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/config.h.in b/config.h.in
|
||||||
|
index 16ea8e9..11bf48e 100644
|
||||||
|
--- a/config.h.in
|
||||||
|
+++ b/config.h.in
|
||||||
|
@@ -34,6 +34,7 @@
|
||||||
|
/* availability of features */
|
||||||
|
#mesondefine HAVE_FN_EXPLICIT_BZERO
|
||||||
|
#mesondefine HAVE_FN_GETRANDOM
|
||||||
|
+#mesondefine HAVE_FN_COPY_FILE_RANGE
|
||||||
|
#mesondefine HAVE_POLKIT_AUTOPTR
|
||||||
|
|
||||||
|
/* constants */
|
||||||
|
diff --git a/meson.build b/meson.build
|
||||||
|
index 7a0e020..11164e4 100644
|
||||||
|
--- a/meson.build
|
||||||
|
+++ b/meson.build
|
||||||
|
@@ -125,11 +125,12 @@ conf.set('VERSION_MINOR', version_minor)
|
||||||
|
conf.set('_GNU_SOURCE', true)
|
||||||
|
|
||||||
|
foreach fn : [
|
||||||
|
- ['explicit_bzero', '''#include <string.h>'''],
|
||||||
|
- ['getrandom', '''#include <sys/random.h>''']
|
||||||
|
+ ['copy_file_range', '''#include <unistd.h>'''],
|
||||||
|
+ ['explicit_bzero', '''#include <string.h>'''],
|
||||||
|
+ ['getrandom', '''#include <sys/random.h>'''],
|
||||||
|
]
|
||||||
|
|
||||||
|
- have = compiler.has_function(fn[0], prefix : fn[1])
|
||||||
|
+ have = compiler.has_function(fn[0], prefix: fn[1], args: '-D_GNU_SOURCE')
|
||||||
|
conf.set10('HAVE_FN_' + fn[0].to_upper(), have)
|
||||||
|
endforeach
|
||||||
|
|
||||||
|
--
|
||||||
|
2.18.1
|
||||||
|
|
||||||
|
|
||||||
|
From 452bb4934e8cce48c2f198cdba170945a09993f5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Christian Kellner <christian@kellner.me>
|
||||||
|
Date: Mon, 10 Dec 2018 17:44:46 +0100
|
||||||
|
Subject: [PATCH 07/14] common: io: fallback stub for copy_file_range
|
||||||
|
|
||||||
|
If the copy_file_range function is not provided by the system libc,
|
||||||
|
provide a fallback implementation that uses syscall(2). This wont
|
||||||
|
work on older kernels (> 4.5) but on these systems bold won't work
|
||||||
|
anyway.
|
||||||
|
---
|
||||||
|
common/bolt-io.c | 22 ++++++++++++++++++++++
|
||||||
|
1 file changed, 22 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/common/bolt-io.c b/common/bolt-io.c
|
||||||
|
index 41f3730..33d17b0 100644
|
||||||
|
--- a/common/bolt-io.c
|
||||||
|
+++ b/common/bolt-io.c
|
||||||
|
@@ -30,6 +30,11 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
+#if !HAVE_FN_COPY_FILE_RANGE
|
||||||
|
+#include <unistd.h>
|
||||||
|
+#include <sys/syscall.h>
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
#include "bolt-error.h"
|
||||||
|
#include "bolt-str.h"
|
||||||
|
|
||||||
|
@@ -727,6 +732,23 @@ bolt_rename (const char *from,
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#if !HAVE_FN_COPY_FILE_RANGE
|
||||||
|
+static loff_t
|
||||||
|
+copy_file_range (int fd_in,
|
||||||
|
+ loff_t *off_in,
|
||||||
|
+ int fd_out,
|
||||||
|
+ loff_t *off_out,
|
||||||
|
+ size_t len,
|
||||||
|
+ unsigned int flags)
|
||||||
|
+{
|
||||||
|
+ return syscall (__NR_copy_file_range,
|
||||||
|
+ fd_in, off_in,
|
||||||
|
+ fd_out, off_out,
|
||||||
|
+ len,
|
||||||
|
+ flags);
|
||||||
|
+}
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
gboolean
|
||||||
|
bolt_copy_bytes (int fd_from,
|
||||||
|
int fd_to,
|
||||||
|
--
|
||||||
|
2.18.1
|
||||||
|
|
||||||
|
|
||||||
|
From 679f09716bfe8e9255b960b67f90a4e68be2d7b3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Christian Kellner <christian@kellner.me>
|
||||||
|
Date: Wed, 12 Dec 2018 15:36:49 +0100
|
||||||
|
Subject: [PATCH 08/14] common: io: define __NR_copy_file_range if missing
|
||||||
|
|
||||||
|
Define __NR_copy_file_range on x86 & x86_64 if missing; this should
|
||||||
|
only be needed (and working!) on old distributions with a new kernel.
|
||||||
|
---
|
||||||
|
common/bolt-io.c | 9 +++++++++
|
||||||
|
1 file changed, 9 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/common/bolt-io.c b/common/bolt-io.c
|
||||||
|
index 33d17b0..2d3367e 100644
|
||||||
|
--- a/common/bolt-io.c
|
||||||
|
+++ b/common/bolt-io.c
|
||||||
|
@@ -33,6 +33,15 @@
|
||||||
|
#if !HAVE_FN_COPY_FILE_RANGE
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <sys/syscall.h>
|
||||||
|
+# ifndef __NR_copy_file_range
|
||||||
|
+# if defined(__x86_64__)
|
||||||
|
+# define __NR_copy_file_range 326
|
||||||
|
+# elif defined(__i386__)
|
||||||
|
+# define __NR_copy_file_range 377
|
||||||
|
+# else
|
||||||
|
+# error "__NR_copy_file_range on this architecture"
|
||||||
|
+# endif
|
||||||
|
+# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "bolt-error.h"
|
||||||
|
--
|
||||||
|
2.18.1
|
||||||
|
|
||||||
|
|
||||||
|
From a395cb9a7ab12bb520ddb0ce2c8059ed673a2441 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Christian Kellner <christian@kellner.me>
|
||||||
|
Date: Mon, 10 Dec 2018 17:58:10 +0100
|
||||||
|
Subject: [PATCH 09/14] contrib: add an Alpine based container
|
||||||
|
|
||||||
|
Alpine is uses "musl" as C library and does not use systemd, but
|
||||||
|
instead uses eudev as "udev" implementation.
|
||||||
|
---
|
||||||
|
contrib/Dockerfile-alpine | 8 ++++++++
|
||||||
|
1 file changed, 8 insertions(+)
|
||||||
|
create mode 100644 contrib/Dockerfile-alpine
|
||||||
|
|
||||||
|
diff --git a/contrib/Dockerfile-alpine b/contrib/Dockerfile-alpine
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..72ab6a6
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/contrib/Dockerfile-alpine
|
||||||
|
@@ -0,0 +1,8 @@
|
||||||
|
+## -*- mode: dockerfile -*-
|
||||||
|
+FROM alpine:latest
|
||||||
|
+ENV LANG en_US.UTF-8
|
||||||
|
+ENV LANGUAGE en_US:en
|
||||||
|
+ENV LC_ALL en_US.UTF-8
|
||||||
|
+RUN apk add --no-cache bash dbus dbus-dev eudev-dev gcc glib-dev libc-dev meson ninja polkit-dev udev
|
||||||
|
+RUN mkdir /src
|
||||||
|
+WORKDIR /src
|
||||||
|
--
|
||||||
|
2.18.1
|
||||||
|
|
||||||
|
|
||||||
|
From 2f30028c0dd688c041d044633551ac01cbd776cd Mon Sep 17 00:00:00 2001
|
||||||
|
From: Christian Kellner <christian@kellner.me>
|
||||||
|
Date: Mon, 10 Dec 2018 18:01:21 +0100
|
||||||
|
Subject: [PATCH 10/14] ci: gitlab: test on alpine
|
||||||
|
|
||||||
|
Alpine uses "musl" as C standard library, "eudev" for udev and does
|
||||||
|
not use systemd. This makes Alpine a good candidate for more
|
||||||
|
"esoteric" systems that bolt still wants to support.
|
||||||
|
---
|
||||||
|
.gitlab-ci.yml | 6 ++++++
|
||||||
|
1 file changed, 6 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
|
||||||
|
index e864094..8846ac6 100644
|
||||||
|
--- a/.gitlab-ci.yml
|
||||||
|
+++ b/.gitlab-ci.yml
|
||||||
|
@@ -25,3 +25,9 @@ debian:
|
||||||
|
variables:
|
||||||
|
OS: debian
|
||||||
|
<<: *build
|
||||||
|
+
|
||||||
|
+alpine:
|
||||||
|
+ stage: build
|
||||||
|
+ variables:
|
||||||
|
+ OS: alpine
|
||||||
|
+ <<: *build
|
||||||
|
--
|
||||||
|
2.18.1
|
||||||
|
|
||||||
|
|
||||||
|
From 1d92269c8338523b7dc917b6dd3f53695df96bab Mon Sep 17 00:00:00 2001
|
||||||
|
From: Christian Kellner <christian@kellner.me>
|
||||||
|
Date: Tue, 11 Dec 2018 17:09:48 +0100
|
||||||
|
Subject: [PATCH 11/14] test: common: bolt_copy_bytes check
|
||||||
|
|
||||||
|
Verify we can successfully copy a bunch of random data from one
|
||||||
|
file to another, but generating a random file, bolt_copy_bytes
|
||||||
|
to a new one and then reading it back and verifying the checksums
|
||||||
|
match.
|
||||||
|
---
|
||||||
|
tests/test-common.c | 86 +++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
1 file changed, 86 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/tests/test-common.c b/tests/test-common.c
|
||||||
|
index 2c261df..415117e 100644
|
||||||
|
--- a/tests/test-common.c
|
||||||
|
+++ b/tests/test-common.c
|
||||||
|
@@ -901,6 +901,85 @@ test_io_file_write_all (TestIO *tt, gconstpointer user_data)
|
||||||
|
g_assert_true (strncmp (data, ref, 5) == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
+static void
|
||||||
|
+test_io_copy_bytes (TestIO *tt, gconstpointer user_data)
|
||||||
|
+{
|
||||||
|
+ g_autoptr(GError) error = NULL;
|
||||||
|
+ g_autoptr(GChecksum) chk = NULL;
|
||||||
|
+ g_autofree char *source = NULL;
|
||||||
|
+ g_autofree char *target = NULL;
|
||||||
|
+ g_autofree char *chksum = NULL;
|
||||||
|
+ const gsize N = 1024;
|
||||||
|
+ char buf[4096];
|
||||||
|
+ gboolean ok;
|
||||||
|
+ int from = -1;
|
||||||
|
+ int to = -1;
|
||||||
|
+
|
||||||
|
+ chk = g_checksum_new (G_CHECKSUM_SHA256);
|
||||||
|
+
|
||||||
|
+ source = g_build_filename (tt->path, "copy_bytes_source", NULL);
|
||||||
|
+ from = bolt_open (source, O_RDWR | O_CREAT, 0666, &error);
|
||||||
|
+ g_assert_no_error (error);
|
||||||
|
+ g_assert_cmpint (from, >, -1);
|
||||||
|
+
|
||||||
|
+ for (gsize i = 0; i < N; i++)
|
||||||
|
+ {
|
||||||
|
+ bolt_random_prng (buf, sizeof (buf));
|
||||||
|
+ bolt_write_all (from, buf, sizeof (buf), &error);
|
||||||
|
+ g_assert_no_error (error);
|
||||||
|
+ g_checksum_update (chk, (const guchar *) buf, sizeof (buf));
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ chksum = g_strdup (g_checksum_get_string (chk));
|
||||||
|
+
|
||||||
|
+ /* close, reopen readonly */
|
||||||
|
+ ok = bolt_close (from, &error);
|
||||||
|
+ g_assert_no_error (error);
|
||||||
|
+ g_assert_true (ok);
|
||||||
|
+
|
||||||
|
+ from = bolt_open (source, O_CLOEXEC | O_RDONLY, 0, &error);
|
||||||
|
+ g_assert_no_error (error);
|
||||||
|
+ g_assert_cmpint (from, >, -1);
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+ /* copy the data with bolt_copy_bytes */
|
||||||
|
+ target = g_build_filename (tt->path, "copy_bytes_target", NULL);
|
||||||
|
+ to = bolt_open (target, O_RDWR | O_CREAT, 0666, &error);
|
||||||
|
+ g_assert_no_error (error);
|
||||||
|
+ g_assert_cmpint (to, >, -1);
|
||||||
|
+
|
||||||
|
+ ok = bolt_copy_bytes (from, to, N * sizeof (buf), &error);
|
||||||
|
+ g_assert_no_error (error);
|
||||||
|
+ g_assert_true (ok);
|
||||||
|
+
|
||||||
|
+ /* close, reopen, check checksum */
|
||||||
|
+ ok = bolt_close (to, &error);
|
||||||
|
+ g_assert_no_error (error);
|
||||||
|
+ g_assert_true (ok);
|
||||||
|
+
|
||||||
|
+ to = bolt_open (target, O_CLOEXEC | O_RDONLY, 0, &error);
|
||||||
|
+ g_assert_no_error (error);
|
||||||
|
+ g_assert_cmpint (to, >, -1);
|
||||||
|
+
|
||||||
|
+ g_checksum_reset (chk);
|
||||||
|
+ for (gsize i = 0; i < N; i++)
|
||||||
|
+ {
|
||||||
|
+ gsize nread = 0;
|
||||||
|
+
|
||||||
|
+ bolt_read_all (to, buf, sizeof (buf), &nread, &error);
|
||||||
|
+ g_assert_no_error (error);
|
||||||
|
+ g_checksum_update (chk, (const guchar *) buf, nread);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ ok = bolt_close (to, &error);
|
||||||
|
+ g_assert_no_error (error);
|
||||||
|
+ g_assert_true (ok);
|
||||||
|
+
|
||||||
|
+ g_assert_cmpstr (g_checksum_get_string (chk),
|
||||||
|
+ ==,
|
||||||
|
+ chksum);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static void
|
||||||
|
test_autoclose (TestIO *tt, gconstpointer user_data)
|
||||||
|
{
|
||||||
|
@@ -1677,6 +1756,13 @@ main (int argc, char **argv)
|
||||||
|
test_io_file_write_all,
|
||||||
|
test_io_tear_down);
|
||||||
|
|
||||||
|
+ g_test_add ("/common/io/copy_bytes",
|
||||||
|
+ TestIO,
|
||||||
|
+ NULL,
|
||||||
|
+ test_io_setup,
|
||||||
|
+ test_io_copy_bytes,
|
||||||
|
+ test_io_tear_down);
|
||||||
|
+
|
||||||
|
g_test_add ("/common/io/autoclose",
|
||||||
|
TestIO,
|
||||||
|
NULL,
|
||||||
|
--
|
||||||
|
2.18.1
|
||||||
|
|
||||||
|
|
||||||
|
From 65cf2c5552949dae0280afced908b15834d8b9bc Mon Sep 17 00:00:00 2001
|
||||||
|
From: Christian Kellner <christian@kellner.me>
|
||||||
|
Date: Tue, 11 Dec 2018 18:36:47 +0100
|
||||||
|
Subject: [PATCH 12/14] udev: explicitly include string.h for strstr
|
||||||
|
|
||||||
|
The strstr(3) function is used in boltd/bolt-udev.c but the string.h
|
||||||
|
header not explicitly included.
|
||||||
|
---
|
||||||
|
boltd/bolt-udev.c | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/boltd/bolt-udev.c b/boltd/bolt-udev.c
|
||||||
|
index 1888f98..178404a 100644
|
||||||
|
--- a/boltd/bolt-udev.c
|
||||||
|
+++ b/boltd/bolt-udev.c
|
||||||
|
@@ -26,6 +26,7 @@
|
||||||
|
#include "bolt-sysfs.h"
|
||||||
|
|
||||||
|
#include <libudev.h>
|
||||||
|
+#include <string.h>
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
|
--
|
||||||
|
2.18.1
|
||||||
|
|
||||||
|
|
||||||
|
From b77c83acbef2f876ad18e35fb974e1a349a71bf7 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Christian Kellner <christian@kellner.me>
|
||||||
|
Date: Tue, 11 Dec 2018 19:14:32 +0100
|
||||||
|
Subject: [PATCH 13/14] contrib: ubuntu 18.05 based container image added
|
||||||
|
|
||||||
|
export OS=ub1804
|
||||||
|
sudo docker build -t bolt-$OS -f ./contrib/Dockerfile-$OS .
|
||||||
|
sudo docker run -e -t -v `pwd`:/src bolt-$OS ./contrib/docker-build.sh
|
||||||
|
---
|
||||||
|
contrib/Dockerfile-ub1804 | 25 +++++++++++++++++++++++++
|
||||||
|
1 file changed, 25 insertions(+)
|
||||||
|
create mode 100644 contrib/Dockerfile-ub1804
|
||||||
|
|
||||||
|
diff --git a/contrib/Dockerfile-ub1804 b/contrib/Dockerfile-ub1804
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..3fc28a5
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/contrib/Dockerfile-ub1804
|
||||||
|
@@ -0,0 +1,25 @@
|
||||||
|
+## -*- mode: dockerfile -*-
|
||||||
|
+FROM ubuntu:18.04
|
||||||
|
+ARG DEBIAN_FRONTEND=noninteractive
|
||||||
|
+RUN apt-get update -q && apt-get install -yy \
|
||||||
|
+ asciidoc \
|
||||||
|
+ git \
|
||||||
|
+ gobject-introspection \
|
||||||
|
+ libgirepository1.0-dev \
|
||||||
|
+ libpolkit-gobject-1-dev \
|
||||||
|
+ locales \
|
||||||
|
+ libudev-dev \
|
||||||
|
+ libumockdev-dev \
|
||||||
|
+ libsystemd-dev \
|
||||||
|
+ meson \
|
||||||
|
+ pkg-config \
|
||||||
|
+ policykit-1 \
|
||||||
|
+ python3-dbus \
|
||||||
|
+ python3-dbusmock \
|
||||||
|
+ udev \
|
||||||
|
+ umockdev \
|
||||||
|
+ systemd \
|
||||||
|
+ && rm -rf /var/lib/apt/lists/*
|
||||||
|
+
|
||||||
|
+RUN mkdir /src
|
||||||
|
+WORKDIR /src
|
||||||
|
--
|
||||||
|
2.18.1
|
||||||
|
|
||||||
|
|
||||||
|
From 65b3b3b3438a6923a3cc2f8a77cbee05a52ae10c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Christian Kellner <christian@kellner.me>
|
||||||
|
Date: Wed, 12 Dec 2018 14:54:03 +0100
|
||||||
|
Subject: [PATCH 14/14] test: explicitly include stdlib.h for exit(3)
|
||||||
|
|
||||||
|
The exit(3) function is declared in <stdlib.h> so include that
|
||||||
|
explicitly wherever needed.
|
||||||
|
---
|
||||||
|
tests/test-common.c | 1 +
|
||||||
|
tests/test-journal.c | 1 +
|
||||||
|
tests/test-logging.c | 1 +
|
||||||
|
3 files changed, 3 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/tests/test-common.c b/tests/test-common.c
|
||||||
|
index 415117e..2cb174d 100644
|
||||||
|
--- a/tests/test-common.c
|
||||||
|
+++ b/tests/test-common.c
|
||||||
|
@@ -41,6 +41,7 @@
|
||||||
|
#include <errno.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <locale.h>
|
||||||
|
+#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
diff --git a/tests/test-journal.c b/tests/test-journal.c
|
||||||
|
index 2398f15..752f6f8 100644
|
||||||
|
--- a/tests/test-journal.c
|
||||||
|
+++ b/tests/test-journal.c
|
||||||
|
@@ -31,6 +31,7 @@
|
||||||
|
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <locale.h>
|
||||||
|
+#include <stdlib.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
|
||||||
|
diff --git a/tests/test-logging.c b/tests/test-logging.c
|
||||||
|
index 722f6e9..1e54cf6 100644
|
||||||
|
--- a/tests/test-logging.c
|
||||||
|
+++ b/tests/test-logging.c
|
||||||
|
@@ -36,6 +36,7 @@
|
||||||
|
|
||||||
|
#include <locale.h>
|
||||||
|
#include <stdarg.h>
|
||||||
|
+#include <stdlib.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
typedef struct _LogData
|
||||||
|
--
|
||||||
|
2.18.1
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Template file for 'bolt'
|
# Template file for 'bolt'
|
||||||
pkgname=bolt
|
pkgname=bolt
|
||||||
version=0.5
|
version=0.6
|
||||||
revision=1
|
revision=1
|
||||||
build_style=meson
|
build_style=meson
|
||||||
configure_args="-Dman=true -Dsystemd=false"
|
configure_args="-Dman=true -Dsystemd=false"
|
||||||
|
@ -12,8 +12,9 @@ maintainer="Rasmus Thomsen <rasmus.thomsen@protonmail.com>"
|
||||||
license="LGPL-2.1-or-later"
|
license="LGPL-2.1-or-later"
|
||||||
homepage="https://gitlab.freedesktop.org/bolt/bolt"
|
homepage="https://gitlab.freedesktop.org/bolt/bolt"
|
||||||
distfiles="https://gitlab.freedesktop.org/bolt/bolt/-/archive/${version}/bolt-${version}.tar.gz"
|
distfiles="https://gitlab.freedesktop.org/bolt/bolt/-/archive/${version}/bolt-${version}.tar.gz"
|
||||||
checksum=f0ed0a6f50fd3a741fbe2b51290daf1cd4c9d4859941df832c5c1f681a418631
|
checksum=0a50cfcf73cbc897c2d265b227afe1799d9d846c64f866fffb62dd486d5b3c4b
|
||||||
make_dirs="/var/lib/boltd 0755 root root"
|
make_dirs="/var/lib/boltd 0755 root root"
|
||||||
|
patch_args="-Np1"
|
||||||
|
|
||||||
post_install() {
|
post_install() {
|
||||||
vsv boltd
|
vsv boltd
|
||||||
|
|
Loading…
Add table
Reference in a new issue