From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] pseudo: remaining issues...
Date: Tue, 22 Nov 2016 22:25:34 +0100 [thread overview]
Message-ID: <20161122212534.GA3529@free.fr> (raw)
Hello All,
We recently switched from using fakeroot to using pseudo to generate the
filesystem images.
After fixing the biggest fallouts from the conversion, we're still left
with a few users reporting remaining issues.
We're now starting to better understand what is going on, and it is
pretty messy...
Those issues seem to occur on second-and-subsequent (re)builds, never on
the first (full) build. They manifest themselves as incorrect acces
rights in the generated images, like (as reported by J?r?me), first line
is correct, second line is incorrect:
rwxr-xr-x 0/0 4700 2016-11-22 16:57 ./usr/sbin/nologin
rw------- 0/0 4700 2016-11-22 16:57 ./usr/sbin/nologin
Then J?r?me noticed that those files were the ones stripped during
target-finalize. Removing the call to strip fixed the issue for him.
What this means is that, by tweaking the content of target/ outside of
pseudo, we break its internal state that it saved in its DB.
Now, when pseudo reloades its DB and detects inconsistencies, it wil try
to repare it. Sometimes, it guesses correctly; sometimes, it gueses
wrong.
However, we don't really need the pseudo DB because we ensure setting
all acces rights when assembling the filesystem images; we don;t need to
remember anything.
Hence, we could very well get rid of the DB after exiting pseudo.
Except it still breaks one case.
/dev/console is created under pseudo and its {c,5,1} is tored in the DB.
When we remove the DB, a second run under pseudo will see a real file,
not a {c,5,1}. Then makedevs will whine that /dev/console already exist
as a real file and fail.
So, we now have two antagonist needs:
- keep the "specialness" of some files so that makedevs does not break
when creating /dev entries;
- get rid of the DB to avoid mis-match when pseudo rebuilds its
internal state.
There is no way we can (easily) satisfy both.
One solution that would make it work in all cases would be:
- do the target-finalize actions in a copy of target/
- generate, filesystem images form that copy
- trash the copy
- trash pseudo DB
Another possibility would be to always do changes in target/ under
pseudo:
- installing packages
- taget-finalize
- filesystem generation
Neither solution is trivial, especially so close to the release.
Alternatively, we can revert back to using fakeroot for this release, at
the expense of breaking (already previously broken) setups with SELinux
on the host.
Thoughts? Ideas?
(In Cc:, people already aware/working on the issue).
Regards,
Yann E. MORIN.
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
next reply other threads:[~2016-11-22 21:25 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-22 21:25 Yann E. MORIN [this message]
2016-11-22 22:16 ` [Buildroot] pseudo: remaining issues Yann E. MORIN
2016-11-23 5:44 ` Gaël PORTAY
2016-11-22 23:02 ` Arnout Vandecappelle
2016-11-23 6:37 ` Gaël PORTAY
2016-11-23 10:10 ` Arnout Vandecappelle
2016-11-23 18:50 ` Yann E. MORIN
2016-11-23 18:46 ` Yann E. MORIN
2016-11-23 6:29 ` Gaël PORTAY
2016-11-23 8:35 ` Thomas Petazzoni
2016-11-23 8:47 ` Maxime Hadjinlian
2016-11-24 15:24 ` Waldemar Brodkorb
2016-11-26 23:25 ` Peter Korsgaard
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=20161122212534.GA3529@free.fr \
--to=yann.morin.1998@free.fr \
--cc=buildroot@busybox.net \
/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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox