public inbox for passt-dev@passt.top
 help / color / mirror / code / Atom feed
From: Stefano Brivio <sbrivio@redhat.com>
To: Max Chernoff <git@maxchernoff.ca>
Cc: passt-dev@passt.top, Paul Holzinger <pholzing@redhat.com>
Subject: Re: [PATCH] fedora: Separately restore context for /run/user in %posttrans selinux
Date: Fri, 23 May 2025 14:19:07 +0200	[thread overview]
Message-ID: <20250523141907.74aff624@elisabeth> (raw)
In-Reply-To: <f0ae3b503fadaecc3ba75d0713dc87d5b31f54e2.camel@maxchernoff.ca>

On Thu, 22 May 2025 22:19:11 -0600
Max Chernoff <git@maxchernoff.ca> wrote:

> Hi Stefano,
> 
> On Thu, 2025-05-22 at 23:13 +0200, Stefano Brivio wrote:
> > The previous change introduces specific file contexts for
> > /run/user/%{USERID}/netns and
> > /run/user/%{USERID}/containers/networks/rootless-netns, but
> > %selinux_relabel_post can't handle that, see comments for more
> > details.
> >
> > Add a separate restorecon(8) call for /run/user in the
> > post-transaction scriptlet for the SELinux subpackage.  
> 
> I've tested this out and can confirm that it works, thanks.

Thanks for testing! I'll apply both patches soon and make a new release
within a few days, then we'll finally have the intended SELinux setup
for pasta as well. I'm quite relieved about it. :)

> Aside: what is the correct way to build passt rpms? "make pkgs" doesn't
> build the SELinux package,

Right, 'make pkgs' is just a quick hack to make static builds (which
doesn't need a proper rpm / rpmbuild setup) and I build RPMs for releases
and release testing via Koji / Copr, which source git snapshots anyway.

For one-off builds:

> but I was eventually able to get the following to work:
> 
>     $ git archive --prefix=passt-$(git rev-parse @)/ @ > ./passt-$(git rev-parse @).tar
>     $ xz passt-*.tar
>     $ mv *.tar.xz contrib/fedora/
>     $ cd contrib/fedora/
>     $ rpkg local --outdir $(realpath .)

I actually do something like this, but uglier. I didn't think of using
git-archive:

$ mkdir passt-679cb68455a9ae40cc72233abf218c20527500a6/
$ cp -Rpd *.c *.h Makefile seccomp.sh passt.1 passt-repair.1 qrap.1 README.md doc/ contrib/ LICENSES/ passt-679cb68455a9ae40cc72233abf218c20527500a6/
$ tar Jcvf /home/sbrivio/rpmbuild/SOURCES/passt-679cb68455a9ae40cc72233abf218c20527500a6.tar.xz passt-679cb68455a9ae40cc72233abf218c20527500a6/
$ cd contrib/fedora
$ rpkg spec
/tmp/rpkg/passt-1-djdq6cud/passt.spec
$ rpmbuild -ba /tmp/rpkg/passt-1-djdq6cud/passt.spec

> Is there a way to do this without needing to manually create the .tar.xz
> archive first?

We would need to replace %prep with a simple copy from the current
directory. I didn't really think this through, but perhaps we could
make it conditional, like this:

diff --git a/contrib/fedora/passt.spec b/contrib/fedora/passt.spec
index 745cf01..f1973ee 100644
--- a/contrib/fedora/passt.spec
+++ b/contrib/fedora/passt.spec
@@ -47,7 +47,13 @@ Requires(preun): policycoreutils
 This package adds SELinux enforcement to passt(1), pasta(1), passt-repair(1).
 
 %prep
+%if "%(ls passt.c)" == "passt.c"
+# Hack for local build from source tree
+cp -a %(pwd)/* .
+%else
+# The usual process with an upstream tarball
 %setup -q -n passt-%{git_hash}
+%endif
 
 %build
 %set_build_flags

?

Maybe there's a more common or idiomatic way though...

-- 
@@ -47,7 +47,13 @@ Requires(preun): policycoreutils
 This package adds SELinux enforcement to passt(1), pasta(1), passt-repair(1).
 
 %prep
+%if "%(ls passt.c)" == "passt.c"
+# Hack for local build from source tree
+cp -a %(pwd)/* .
+%else
+# The usual process with an upstream tarball
 %setup -q -n passt-%{git_hash}
+%endif
 
 %build
 %set_build_flags

?

Maybe there's a more common or idiomatic way though...

-- 
Stefano


  reply	other threads:[~2025-05-23 12:19 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-22 21:13 [PATCH] fedora: Separately restore context for /run/user in %posttrans selinux Stefano Brivio
2025-05-23  4:19 ` Max Chernoff
2025-05-23 12:19   ` Stefano Brivio [this message]
2025-05-24  7:07     ` Max Chernoff

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250523141907.74aff624@elisabeth \
    --to=sbrivio@redhat.com \
    --cc=git@maxchernoff.ca \
    --cc=passt-dev@passt.top \
    --cc=pholzing@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://passt.top/passt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for IMAP folder(s).