Discussion:
[gentoo-user] How to find which .keep file creation is failing
(too old to reply)
Peter Humphrey
2023-08-22 13:20:01 UTC
Permalink
Hello list,

In an effort to sort out my ruby problem I'm building a new system piecemeal,
by which I mean one step at a time with dev-lang/ruby masked.

The latest snag is in the early stages of the build process, when installing
polkit, with a "keepfile creation failed" error, or similar.

How can I find out where it's trying to install a .keep file? I tried installing
polkit on another machine and searching for .keep, but nothing related
appeared.

(This is turning into just about the most frustrating build ever.)
--
Regards,
Peter.
Michael
2023-08-22 23:20:01 UTC
Permalink
Post by Peter Humphrey
Hello list,
In an effort to sort out my ruby problem I'm building a new system
piecemeal, by which I mean one step at a time with dev-lang/ruby masked.
The latest snag is in the early stages of the build process, when installing
polkit, with a "keepfile creation failed" error, or similar.
How can I find out where it's trying to install a .keep file? I tried
installing polkit on another machine and searching for .keep, but nothing
related appeared.
(This is turning into just about the most frustrating build ever.)
I don't know if line 151 in the ebuild is related to the messages you're
getting. I see in '/var/db/repos/gentoo/sys-auth/polkit/polkit-122-r1.ebuild'

147 if use daemon; then
148 if [[ ${EUID} == 0 ]]; then
149 diropts -m 0700 -o polkitd
150 fi
151 keepdir /etc/polkit-1/rules.d
152 fi

Which was created with permissions 0700 and ownership of polkitd:root,

# stat /etc/polkit-1/rules.d
File: /etc/polkit-1/rules.d
Size: 46 Blocks: 0 IO Block: 4096 directory
Device: 0,21 Inode: 1004 Links: 1
Access: (0700/drwx------) Uid: ( 102/ polkitd) Gid: ( 0/ root)

I would think this would be at the end, not early in the build stage. I
mention it just in case it may be relevant.
Peter Humphrey
2023-08-25 14:00:01 UTC
Permalink
Post by Michael
I would think this would be at the end, not early in the build stage. I
mention it just in case it may be relevant.
Hm. It seems not to be. I tried a different tack in the end: reinstalling from
scratch.

Now I find that ruby30 has been masked, before upstream - but it's specifically
required by webkit-gtk and app-text/docbook-xsl-stylesheets-1.79.1-r4.

This is the error I get when I emerge @preserved-rebuild:

!!! All ebuilds that could satisfy "=dev-lang/ruby-3.0.6-r3" have been masked.
!!! One of the following masked packages is required to complete your request:
- dev-lang/ruby-3.0.6-r3::gentoo (masked by: package.mask)
/var/db/repos/gentoo/profiles/package.mask:
# Hans de Graaff <***@gentoo.org> (2023-08-19)
# Ruby 3.0 is not compatible with OpenSSL 3 and consequently will be
# masked earlier than its upstream EOL date. Please use a newer Ruby
# version instead. Masked for removal on 2023-09-19.

I'm now in a hole, as I can't "use a newer Ruby version instead."
--
Regards,
Peter.
Peter Humphrey
2023-08-25 15:30:02 UTC
Permalink
Post by Peter Humphrey
I'm now in a hole, as I can't "use a newer Ruby version instead."
I tried yanking and recompiling the docbook package, and that removed its
dependency on ruby30. Then webkit-gkt with:

$ grep -ir ruby /etc/portage
/etc/portage/make.conf:RUBY_TARGETS="ruby31 ruby32"

Returned the same dependencies, every one of which (other than webkit-gtk) is
conditional or version-unspecific, unless my eyes are deceiving me:

$ equery d dev-lang/ruby:3.0
* These packages depend on dev-lang/ruby:
app-text/docbook-xsl-ns-stylesheets-1.79.1 (ruby ? dev-lang/ruby)
dev-ruby/bundler-2.4.15 (ruby_targets_ruby30 ? dev-lang/ruby:3.0)
dev-ruby/date-3.3.3 (ruby_targets_ruby30 ? dev-lang/ruby:3.0)
dev-ruby/debug-1.7.2 (ruby_targets_ruby30 ? dev-lang/ruby:3.0)
dev-ruby/did_you_mean-1.6.3 (ruby_targets_ruby30 ? dev-lang/ruby:3.0)
dev-ruby/forwardable-1.3.3 (ruby_targets_ruby30 ? dev-lang/ruby:3.0)
dev-ruby/json-2.6.3 (ruby_targets_ruby30 ? dev-lang/ruby:3.0)
dev-ruby/kpeg-1.3.3 (ruby_targets_ruby30 ? dev-lang/ruby:3.0)
dev-ruby/matrix-0.4.2 (ruby_targets_ruby30 ? dev-lang/ruby:3.0)
dev-ruby/minitest-5.19.0 (ruby_targets_ruby30 ? dev-lang/ruby:3.0)
dev-ruby/net-ftp-0.2.0 (ruby_targets_ruby30 ? dev-lang/ruby:3.0)
dev-ruby/net-imap-0.3.7 (ruby_targets_ruby30 ? dev-lang/ruby:3.0)
dev-ruby/net-pop-0.1.2 (ruby_targets_ruby30 ? dev-lang/ruby:3.0)
dev-ruby/net-protocol-0.2.1 (ruby_targets_ruby30 ? dev-lang/ruby:3.0)
dev-ruby/net-smtp-0.3.3 (ruby_targets_ruby30 ? dev-lang/ruby:3.0)
dev-ruby/power_assert-2.0.3 (ruby_targets_ruby30 ? dev-lang/ruby:3.0)
dev-ruby/prime-0.1.2-r1 (ruby_targets_ruby30 ? dev-lang/ruby:3.0)
dev-ruby/psych-5.1.0 (ruby_targets_ruby30 ? dev-lang/ruby:3.0)
dev-ruby/racc-1.7.0 (ruby_targets_ruby30 ? dev-lang/ruby:3.0)
dev-ruby/rake-13.0.6-r2 (ruby_targets_ruby30 ? dev-lang/ruby:3.0)
dev-ruby/rdoc-6.5.0 (ruby_targets_ruby30 ? dev-lang/ruby:3.0)
dev-ruby/rexml-3.2.6 (ruby_targets_ruby30 ? dev-lang/ruby:3.0)
dev-ruby/rss-0.3.0 (ruby_targets_ruby30 ? dev-lang/ruby:3.0)
dev-ruby/rubygems-3.4.15 (ruby_targets_ruby30 ? dev-lang/ruby:3.0)
dev-ruby/singleton-0.1.1 (ruby_targets_ruby30 ? dev-lang/ruby:3.0)
dev-ruby/stringio-3.0.8 (ruby_targets_ruby30 ? dev-lang/ruby:3.0)
dev-ruby/test-unit-3.6.1 (ruby_targets_ruby30 ? dev-lang/ruby:3.0)
dev-ruby/time-0.2.2 (ruby_targets_ruby30 ? dev-lang/ruby:3.0)
dev-ruby/timeout-0.3.2 (ruby_targets_ruby30 ? dev-lang/ruby:3.0)
dev-ruby/typeprof-0.21.7 (ruby_targets_ruby30 ? dev-lang/ruby:3.0)
net-libs/webkit-gtk-2.40.5-r600 (dev-lang/ruby:3.0)
virtual/ruby-ssl-13 (ruby_targets_ruby30 ? dev-lang/ruby:3.0)
(ruby_targets_ruby30 ? dev-lang/ruby:3.0[ssl])
virtual/rubygems-18 (ruby_targets_ruby30 ? dev-lang/ruby:3.0)

Now what? I can't do without webkit-gtk.
--
Regards,
Peter.
Peter Humphrey
2023-08-25 15:50:01 UTC
Permalink
Post by Peter Humphrey
Now what? I can't do without webkit-gtk.
I have a precompiled package from before the mask was applied; is there a way
to ebuild it in spite of the mask?

# find /var/cache/packages/dev-lang -name ruby-3.0\*
/var/cache/packages/dev-lang/ruby/ruby-3.0.6-r3-1.xpak
--
Regards,
Peter.
Jack
2023-08-25 17:30:01 UTC
Permalink
Post by Peter Humphrey
Post by Peter Humphrey
Now what? I can't do without webkit-gtk.
I have a precompiled package from before the mask was applied; is there a way
to ebuild it in spite of the mask?
# find /var/cache/packages/dev-lang -name ruby-3.0\*
/var/cache/packages/dev-lang/ruby/ruby-3.0.6-r3-1.xpak
Sorry if I missed it, but which version of webkit-gtk do you
have/want/need? I have webkit-gtk:4.1 installed with ruby:3.1. Are
you somehow stuck on webkit-gtk:4?

You should be able to install a masked package by putting it in
package.unmask. It looks to me like ruby-3.0.6-r3 has been masked, but
not yet actually removed from the tree.
Emily Rowlands
2023-08-25 20:20:02 UTC
Permalink
Post by Peter Humphrey
I have a precompiled package from before the mask was applied; is there a way
to ebuild it in spite of the mask?
You can put the package atom in /etc/portage/package.unmask. See
portage(5) for more details.

Emily
Arve Barsnes
2023-08-26 11:10:01 UTC
Permalink
Post by Peter Humphrey
Now what? I can't do without webkit-gtk.
webkit-gtk's ruby dependency also is given by RUBY_TARGETS, so this
should mean you have set ruby30 on it somewhere in /etc/portage/

Regards,
Arve
Peter Humphrey
2023-08-26 12:00:01 UTC
Permalink
Post by Arve Barsnes
Post by Peter Humphrey
Now what? I can't do without webkit-gtk.
webkit-gtk's ruby dependency also is given by RUBY_TARGETS, so this
should mean you have set ruby30 on it somewhere in /etc/portage/
Yes, and indeed I set it in make.conf. But that only led to more demands for
nonexistent ebuilds, and the mess grew so byzantine that I just scrapped the
whole system and reinstalled.
--
Regards,
Peter.
Loading...