From 6586159cc3be350b234631bfe5406994aac14674 Mon Sep 17 00:00:00 2001 From: Daiki Ueno Date: Thu, 5 Oct 2017 15:44:02 +0200 Subject: [PATCH] Update to 0.23.9-2 - server: Make it possible to eval envvar settings --- .gitignore | 3 ++ p11-kit-client.service | 11 ++++++++ p11-kit-server-eval-env.patch | 52 +++++++++++++++++++++++++++++++++++ p11-kit.spec | 12 ++++++-- sources | 1 + 5 files changed, 77 insertions(+), 2 deletions(-) create mode 100644 p11-kit-client.service create mode 100644 p11-kit-server-eval-env.patch diff --git a/.gitignore b/.gitignore index d9dfc82..f2d8374 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,6 @@ /x86_64/ /trust-extract-compat /p11-kit-0.23.9.tar.gz +/p11-kit-client.service +/trust-extract-compat +/p11-kit-0.23.9.tar.gz diff --git a/p11-kit-client.service b/p11-kit-client.service new file mode 100644 index 0000000..c9b8e30 --- /dev/null +++ b/p11-kit-client.service @@ -0,0 +1,11 @@ +[Unit] +Description=p11-kit client + +[Service] +Type=oneshot +RemainAfterExit=true +RuntimeDirectory=p11-kit +ExecStart=/usr/bin/true + +[Install] +WantedBy=default.target diff --git a/p11-kit-server-eval-env.patch b/p11-kit-server-eval-env.patch new file mode 100644 index 0000000..cd2a812 --- /dev/null +++ b/p11-kit-server-eval-env.patch @@ -0,0 +1,52 @@ +From 031912fa844c4f3da327c8b2578d9d9ce2a6473e Mon Sep 17 00:00:00 2001 +From: Daiki Ueno +Date: Thu, 5 Oct 2017 10:59:02 +0200 +Subject: [PATCH] server: Make it possible to eval envvar settings + +Previously, calling "eval $(p11-kit server)" from shell hung because +the program didn't properly close stdout before forking. +--- + p11-kit/server.c | 20 +++++++++++--------- + 1 file changed, 11 insertions(+), 9 deletions(-) + +diff --git a/p11-kit/server.c b/p11-kit/server.c +index 97e18e2..96c77ec 100644 +--- a/p11-kit/server.c ++++ b/p11-kit/server.c +@@ -346,6 +346,17 @@ server_loop (Server *server, + if (server->socket == -1) + return 1; + ++ if (!quiet) { ++ char *path; ++ ++ path = p11_path_encode (server->socket_name); ++ printf ("P11_KIT_SERVER_ADDRESS=unix:path=%s\n", path); ++ free (path); ++ printf ("P11_KIT_SERVER_PID=%d\n", getpid ()); ++ fflush (stdout); ++ close (STDOUT_FILENO); ++ } ++ + /* run as daemon */ + if (!foreground) { + pid = fork (); +@@ -372,15 +383,6 @@ server_loop (Server *server, + + sigprocmask (SIG_BLOCK, &blockset, NULL); + +- if (!quiet) { +- char *path; +- +- path = p11_path_encode (server->socket_name); +- printf ("P11_KIT_SERVER_ADDRESS=unix:path=%s\n", path); +- free (path); +- printf ("P11_KIT_SERVER_PID=%d\n", getpid ()); +- } +- + /* accept connections */ + ret = 0; + for (;;) { +-- +2.13.6 + diff --git a/p11-kit.spec b/p11-kit.spec index b8ca7fa..b12fd7d 100644 --- a/p11-kit.spec +++ b/p11-kit.spec @@ -1,6 +1,7 @@ # This spec file has been automatically updated Version: 0.23.9 -Release: 1%{?dist} +Release: 2%{?dist} +Patch1: p11-kit-server-eval-env.patch Name: p11-kit Summary: Library for loading and sharing PKCS#11 modules @@ -8,6 +9,7 @@ License: BSD URL: http://p11-glue.freedesktop.org/p11-kit.html Source0: https://github.com/p11-glue/p11-kit/releases/download/%{version}/p11-kit-%{version}.tar.gz Source1: trust-extract-compat +Source2: p11-kit-client.service BuildRequires: libtasn1-devel >= 2.3 BuildRequires: libffi-devel @@ -64,7 +66,7 @@ feature is still experimental. %prep -%setup -q +%autosetup -p1 %build # These paths are the source paths that come from the plan here: @@ -80,6 +82,8 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/pkcs11/*.la install -p -m 755 %{SOURCE1} $RPM_BUILD_ROOT%{_libexecdir}/p11-kit/ # Install the example conf with %%doc instead rm $RPM_BUILD_ROOT%{_sysconfdir}/pkcs11/pkcs11.conf.example +mkdir -p $RPM_BUILD_ROOT%{_userunitdir} +install -p -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_userunitdir} %check make check @@ -134,10 +138,14 @@ fi %files server %{_libdir}/pkcs11/p11-kit-client.so +%{_userunitdir}/p11-kit-client.service %{_libexecdir}/p11-kit/p11-kit-server %changelog +* Thu Oct 05 2017 Daiki Ueno - 0.23.9-2 +- server: Make it possible to eval envvar settings + * Wed Oct 04 2017 Daiki Ueno - 0.23.9-1 - Update to upstream 0.23.9 diff --git a/sources b/sources index d8660d0..e959f3c 100644 --- a/sources +++ b/sources @@ -1,2 +1,3 @@ +SHA512 (p11-kit-client.service) = 0f08618851c6eafb35c630957044fc96324be4d3828cdd2aa9b5d6e1245549197ca5b969d6a2f735c893d73c02e885cdc3205bd43e37f6124ebc6cfa61970d3b SHA512 (trust-extract-compat) = 91210705f9bcf1a13c0de1ca9943e3ac68296bfcb7953fc59241de060247b470b39be6e914dd4d92e38a78d5df0962c83315ad78f8c0eade8e62d884b05fdd42 SHA512 (p11-kit-0.23.9.tar.gz) = 6a8a569483763d3ffacadf669b8ba9b9be38a77dd8dc366ca0cb91c44753517fa1879d4422e4e8dfbcac594565727839a619566a170c0f94f8e112f18b0086ed