On 07/05/2018 02:50 AM, Xi Ruoyao wrote:
On 2018-07-04 15:21 -0500, Bruce Dubbs wrote:
On 07/04/2018 09:30 AM, Xi Ruoyao wrote:
On 2018-07-04 05:49 -0500, DJ Lucas wrote:
On July 3, 2018 10:21:43 PM CDT, Bruce Dubbs <bruce.du...@gmail.com> wrote:
I'm checking out meson-0.47.0 for lfs and the instructions in the bool
work nicely with the exception of the last two:

mv -v
/usr/lib/python3.6/site-packages/meson-0.47.0-py3.6.egg/share/man/man1/*.1
\
        /usr/share/man/man1
rm -r /usr/lib/python3.6/site-packages/meson-0.47.0-py3.6.egg/share

Actually the mv command is OK, but there is more in the share
directory:

/usr/lib/python3.6/site-packages/meson-0.47.0-py3.6.egg/share/polkit-1/actions/com.mesonbuild.install.policy

What that appears to be for is installing packages via meson (we use
ninja, but I don't know if meson inserts things into the build files).

We do not install polkit in LFS, so I don't know what to do with this
file now or later in BLFS when we do install polkit.

I have three options that I can see:

1.  Throw away the .policy file and leave the meson instructions as
they
are.
2.  Just delete the man portion: rm ...egg/share/man
3.  Create /usr/share/polkit-1/actions/ and move the .policy file
there.

Opinions?
Option 3.

Unfortunately the polkit action policy doesn't work with our configuration.
Meson seems "designed" to be installed with:

      python3 setup.py install --root=dest
      cp -rv dest/* /

I suggest to do this.  If we still use "python3 setup.py install", the
polkit action file is useless (at least for now).

It would be interesting to see the differences between what you suggest
and what we have now.

1. The man pages, polkit rules, etc. would be copied to correct location.

2. "python3 setup.py install" installs Meson scripts into
/usr/lib/python3.x/site-packages/meson-*-egg/EGG-INFO/scripts, and creates
their "easy install" wrappers in /usr/bin.  The polkit rule only matches
"/usr/bin/python3 /usr/bin/meson install ..." and doesn't work when meson
script is in EGG-INFO/scripts directory.  With "--root", the "real" meson
scripts will be installed into /usr/bin.

And, "meson install" with polkit authentication is completely broken now.
I'll submit a PR tomorrow to fix it.

https://github.com/mesonbuild/meson/pull/3835

Nowhere in lfs or blfs do we do 'meson install'.  We use it as a
substitute for configure and then use ninja instead of make.

c.f. https://github.com/mesonbuild/meson/pull/3567

The polkit file mentioned in the origin thread is used to support
unprivillaged user running `meson install` with polkit support.  It shows
a better prompt ("Authentication is required to install this project") for
root password.  With "python3 setup.py install" this rule doesn't work.
So I think we have the options:

1. Keep "python3 setup.py install", and remove the polkit rule.  Without it
polkit authentication would still work, just with a defaulted prompt.
2. Use "--root=dest" and copy the files from "dest" to "/".  It would place
meson scripts and data into standard location without wrapping, and enable
the polkit rule to work.
3. Keep "python3 setup.py install", but fix the polkit rule with:
     mv -v /usr/lib/python3.x/site-packages/meson-*/.../actions/* \
         /usr/share/polkit-1/actions
     sed 's@/usr/bin/meson@/usr/lib/python3.6/.../scripts/meson@' \
         -i /usr/share/polkit-1/actions/com.mesonbuild.install.policy

I don't like the idea to leave an useless polkit rule in the LFS system.
If we wish to keep "python3 setup.py install", we should either fix it or
remove it.

OK, You've convinced me. I'll do it as a destdir install. Do we need to use a sed to add -C to mesonbuild/minstall.py? Or just wait for the next version?

  -- Bruce

--
http://lists.linuxfromscratch.org/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to