First-time mock user
Jerry James
loganjerry at gmail.com
Fri Nov 30 20:19:27 UTC 2007
I'm trying to use mock for the first time in order to do a package
review. I've hit a few snags that I thought I should point out on
this list. Let me know what I can do to help resolve them.
First, the SHOULD item on this page:
http://fedoraproject.org/wiki/Packaging/ReviewGuidelines
that refers to mock should probably link to this page:
http://fedoraproject.org/wiki/PackageMaintainers/MockTricks
I have edit rights on the wiki, so if nobody objects I can make that
change. As it was, I had to hunt for information on how to use mock.
So I read the MockTricks page and the mock man page. MockTricks tells
me to use '-r <config>' to select a config file. The mock man page
says that if you don't select one, you get whatever
/etc/mock/default.cfg links to. That's great, except that there is no
such link as /etc/mock/default.cfg after installing mock. Should
there be? If not, the text on the MockTricks page should perhaps be
expanded a bit to note this and explain why not.
Next I created the "build" user as described on the MockTricks page.
Then I did "su - build", just like it says to do. It wants a
password. The null password doesn't work. My password doesn't work.
Fortunately, I am root on my box, so I can "su -" and then "su -
build", but what is supposed to work here?
I also noted that MockTricks says to do "mock rebuild <SRPM>", but the
mock man page says that usage is deprecated. It's supposed to be
"mock --rebuild <SRPM>" now.
So I kicked off the mock build ... and setroubleshoot pops up to tell
me about AVC denials. These are NOT the SELinux problems described on
the MockTricks page. I got the following:
1) /usr/sbin/groupadd (groupadd_t) cannot "write" to /dev/null (var_lib_t).
2) /usr/sbin/groupadd (groupadd_t) cannot "ioctl" to /dev/null (var_lib_t).
3) /usr/sbin/useradd (useradd_t) cannot "ioctl" to /dev/null (var_lib_t).
4) /usr/sbin/useradd (useradd_t) cannot "read write" to (var_log_t).
5) /usr/sbin/useradd (useradd_t) cannot "write" to /dev/null (var_lib_t).
I just updated to selinux-policy-3.0.8-58.fc8 shortly before
installing and running mock. Are these failures expected? If so,
MockTricks should warn me about them. If not, against what do I file
a bug?
So the mock build failed. I expected that, since I was pretty sure I
had identified a missing BuildRequires. I went to the log files to
verify that my guess was right, and found that build.log is empty.
OK, so I'll try root.log. No sign of a missing BuildRequires there;
but I do see some scary looking stuff:
2007-11-30 12:35:46,634 - DEBUG util.py, Line: 234: tar:
./usr/lib/locale/locale-archive: file changed as we read it
2007-11-30 12:35:46,638 - DEBUG trace_decorator.py, Line: 27:
EXCEPTION: Command(tar czf
/var/lib/mock/cache/fedora-8-x86_64/root_cache/cache.tar.gz -C
/var/lib/mock/fedora-8-x86_64/root .) failed. See logs for output.
Traceback (most recent call last):
File "/usr/lib/python2.5/site-packages/mock/trace_decorator.py",
line 24, in trace
result = f(*args, **kw)
File "/usr/lib/python2.5/site-packages/mock/util.py", line 260, in do
raise mock.exception.Error, "Command(%s) failed. See logs for
output." % command
Error: Command(tar czf
/var/lib/mock/cache/fedora-8-x86_64/root_cache/cache.tar.gz -C
/var/lib/mock/fedora-8-x86_64/root .) failed. See logs for output.
2007-11-30 12:35:46,648 - DEBUG trace_decorator.py, Line: 30: LEAVE
do --> EXCEPTION RAISED
[repeats several times with the word after "LEAVE" changing each time]
When I try that tar command myself, I get this:
[build at localhost ~]$ tar czf
/var/lib/mock/cache/fedora-8-x86_64/root_cache/cache.tar.gz -C
/var/lib/mock/fedora-8-x86_64/root .
tar: ./root: Cannot open: Permission denied
tar: ./sbin/unix_update: Cannot open: Permission denied
tar: ./lib64/dbus-1/dbus-daemon-launch-helper: Cannot open: Permission denied
tar: ./usr/sbin/groupmod: Cannot open: Permission denied
tar: ./usr/sbin/groupdel: Cannot open: Permission denied
tar: ./usr/sbin/userdel: Cannot open: Permission denied
tar: ./usr/sbin/groupadd: Cannot open: Permission denied
tar: ./usr/sbin/tzdata-update: Cannot open: Permission denied
tar: ./usr/sbin/groupmems: Cannot open: Permission denied
tar: ./usr/sbin/build-locale-archive: Cannot open: Permission denied
tar: ./usr/sbin/usermod: Cannot open: Permission denied
tar: ./usr/sbin/useradd: Cannot open: Permission denied
tar: ./usr/sbin/glibc_post_upgrade.x86_64: Cannot open: Permission denied
tar: ./usr/libexec/pt_chown: Cannot open: Permission denied
tar: ./usr/bin/chfn: Cannot open: Permission denied
tar: ./usr/bin/chsh: Cannot open: Permission denied
tar: ./etc/securetty: Cannot open: Permission denied
tar: ./etc/.pwd.lock: Cannot open: Permission denied
tar: ./etc/security/opasswd: Cannot open: Permission denied
tar: ./etc/group-: Cannot open: Permission denied
tar: ./etc/libaudit.conf: Cannot open: Permission denied
tar: ./etc/default/useradd: Cannot open: Permission denied
tar: ./etc/passwd-: Cannot open: Permission denied
tar: ./var/log/maillog: Cannot open: Permission denied
tar: ./var/log/secure: Cannot open: Permission denied
tar: ./var/log/tallylog: Cannot open: Permission denied
tar: ./var/log/btmp: Cannot open: Permission denied
tar: ./var/log/spooler: Cannot open: Permission denied
tar: ./var/log/faillog: Cannot open: Permission denied
tar: ./var/log/messages: Cannot open: Permission denied
tar: ./var/cache/ldconfig: Cannot open: Permission denied
tar: ./var/spool/mail/vcsa: Cannot open: Permission denied
tar: ./var/spool/mail/dbus: Cannot open: Permission denied
tar: ./var/spool/mail/rpm: Cannot open: Permission denied
tar: Error exit delayed from previous errors
Sure enough, the root directory has 0750 permissions and is owned by
root:root, so my build:mock user cannot read it. Likewise with the
other directories on that list. How is this supposed to work?
I hope we can work together to make this less confusing and
frustrating for the next mock newbie. Regards,
--
Jerry James
http://loganjerry.googlepages.com/
More information about the devel
mailing list