[Bug 1569400] Re: mk-sbuild fails with cp: /etc/localtime... are the same file
Steve Langasek
steve.langasek at canonical.com
Fri Jul 1 19:29:43 UTC 2016
** Description changed:
+ [SRU Justification]
+ The mk-sbuild command fails to completely set up its schroot environment if /etc/localtime is a symlink, due to wrong 'cp' options. Since /etc/localtime is a symlink /by default/, this makes the tool unusable for most users in xenial.
+
+ [Test case]
+ 1. Verify that /etc/localtime is a symlink on your system.
+ 2. Install ubuntu-dev-tools.
+ 3. Run 'mk-sbuild yakkety'. When prompted to edit ~/.sbuildrc, you can accept the defaults.
+ 4. Run 'sg sbuild' to make sure you are in the 'sbuild' group in case this is newly added.
+ 5. Run 'mk-sbuild yakkety' again. Verify that the command output ends with the line:
+ cp: '/etc/localtime' and '/var/lib/schroot/chroots/yakkety-amd64/etc/localtime' are the same file.
+ 6. Run 'echo $?' to verify that the return value of mk-sbuild is 1.
+ 7. Install ubuntu-dev-tools from xenial-proposed.
+ 8. Run 'sudo rm -rf /var/lib/schroot/chroots/yakkety-amd64' to remove the incompletely-bootstrapped directory from the previous attempt.
+ 9. Run 'mk-sbuild yakkety' again. Confirm that the command exits 0.
+ 10. Confirm that 'schroot -l' shows the yakkety-amd64 chroot.
+
On my system, /etc/localtime points to Etc/UTC. When I run mk-sbuild, it
fails as follows:
I: Base system installed successfully.
cp: '/etc/localtime' and '/var/lib/schroot/chroots/xenial-amd64/etc/localtime' are the same file
rbasak at diglett:~$ stat /etc/localtime
- File: '/etc/localtime' -> '/usr/share/zoneinfo/Etc/UTC'
- Size: 27 Blocks: 0 IO Block: 4096 symbolic link
+ File: '/etc/localtime' -> '/usr/share/zoneinfo/Etc/UTC'
+ Size: 27 Blocks: 0 IO Block: 4096 symbolic link
Device: fa00h/64000d Inode: 24904635 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-04-12 14:34:01.913544692 +0000
Modify: 2016-04-09 14:16:56.000000000 +0000
Change: 2016-04-11 14:33:38.788003973 +0000
- Birth: -
+ Birth: -
rbasak at diglett:~$ stat /var/lib/schroot/chroots/xenial-amd64/etc/localtime
- File: '/var/lib/schroot/chroots/xenial-amd64/etc/localtime' -> '/usr/share/zoneinfo/Etc/UTC'
- Size: 27 Blocks: 0 IO Block: 4096 symbolic link
+ File: '/var/lib/schroot/chroots/xenial-amd64/etc/localtime' -> '/usr/share/zoneinfo/Etc/UTC'
+ Size: 27 Blocks: 0 IO Block: 4096 symbolic link
Device: fa00h/64000d Inode: 25958842 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-04-12 14:39:39.042359630 +0000
Modify: 2016-04-12 14:39:39.038359620 +0000
Change: 2016-04-12 14:39:39.038359620 +0000
- Birth: -
+ Birth: -
rbasak at diglett:~$
ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: ubuntu-dev-tools 0.155 [modified: usr/bin/mk-sbuild]
ProcVersionSignature: Ubuntu 4.4.0-18.34-generic 4.4.6
Uname: Linux 4.4.0-18-generic x86_64
NonfreeKernelModules: zfs zunicode zcommon znvpair zavl
ApportVersion: 2.20.1-0ubuntu1
Architecture: amd64
Date: Tue Apr 12 14:52:21 2016
JournalErrors:
- Error: command ['journalctl', '-b', '--priority=warning', '--lines=1000'] failed with exit code 1: Hint: You are currently not seeing messages from other users and the system.
- Users in the 'systemd-journal' group can see all messages. Pass -q to
- turn off this notice.
- No journal files were opened due to insufficient permissions.
+ Error: command ['journalctl', '-b', '--priority=warning', '--lines=1000'] failed with exit code 1: Hint: You are currently not seeing messages from other users and the system.
+ Users in the 'systemd-journal' group can see all messages. Pass -q to
+ turn off this notice.
+ No journal files were opened due to insufficient permissions.
PackageArchitecture: all
SourcePackage: ubuntu-dev-tools
UpgradeStatus: No upgrade log present (probably fresh install)
** Description changed:
[SRU Justification]
- The mk-sbuild command fails to completely set up its schroot environment if /etc/localtime is a symlink, due to wrong 'cp' options. Since /etc/localtime is a symlink /by default/, this makes the tool unusable for most users in xenial.
+ The mk-sbuild command fails to completely set up its schroot environment if /etc/localtime is a symlink to the default timezone file (Etc/UTC), due to wrong 'cp' options. This makes the tool unusable in xenial on systems with a default config. It also causes the tool to do the wrong thing on systems with a user-configured timezone, as the Etc/UTC file within the chroot environment will be overwritten by the host system's zone file, rather than changing the *target* of the /etc/localtime symlink.
[Test case]
- 1. Verify that /etc/localtime is a symlink on your system.
+ 1. Verify that /etc/localtime is a symlink to /usr/share/zoneinfo/Etc/UTC on your system.
2. Install ubuntu-dev-tools.
3. Run 'mk-sbuild yakkety'. When prompted to edit ~/.sbuildrc, you can accept the defaults.
4. Run 'sg sbuild' to make sure you are in the 'sbuild' group in case this is newly added.
5. Run 'mk-sbuild yakkety' again. Verify that the command output ends with the line:
cp: '/etc/localtime' and '/var/lib/schroot/chroots/yakkety-amd64/etc/localtime' are the same file.
6. Run 'echo $?' to verify that the return value of mk-sbuild is 1.
7. Install ubuntu-dev-tools from xenial-proposed.
8. Run 'sudo rm -rf /var/lib/schroot/chroots/yakkety-amd64' to remove the incompletely-bootstrapped directory from the previous attempt.
9. Run 'mk-sbuild yakkety' again. Confirm that the command exits 0.
10. Confirm that 'schroot -l' shows the yakkety-amd64 chroot.
- On my system, /etc/localtime points to Etc/UTC. When I run mk-sbuild, it
- fails as follows:
+ [Regression potential]
+ Minimal. We don't want to dereference /etc/localtime when copying it into the target environment; this never DTRT and often fails altogether. The fix for this is small and targeted.
+
+
+ On my system, /etc/localtime points to Etc/UTC. When I run mk-sbuild, it fails as follows:
I: Base system installed successfully.
cp: '/etc/localtime' and '/var/lib/schroot/chroots/xenial-amd64/etc/localtime' are the same file
rbasak at diglett:~$ stat /etc/localtime
File: '/etc/localtime' -> '/usr/share/zoneinfo/Etc/UTC'
Size: 27 Blocks: 0 IO Block: 4096 symbolic link
Device: fa00h/64000d Inode: 24904635 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-04-12 14:34:01.913544692 +0000
Modify: 2016-04-09 14:16:56.000000000 +0000
Change: 2016-04-11 14:33:38.788003973 +0000
Birth: -
rbasak at diglett:~$ stat /var/lib/schroot/chroots/xenial-amd64/etc/localtime
File: '/var/lib/schroot/chroots/xenial-amd64/etc/localtime' -> '/usr/share/zoneinfo/Etc/UTC'
Size: 27 Blocks: 0 IO Block: 4096 symbolic link
Device: fa00h/64000d Inode: 25958842 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-04-12 14:39:39.042359630 +0000
Modify: 2016-04-12 14:39:39.038359620 +0000
Change: 2016-04-12 14:39:39.038359620 +0000
Birth: -
rbasak at diglett:~$
ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: ubuntu-dev-tools 0.155 [modified: usr/bin/mk-sbuild]
ProcVersionSignature: Ubuntu 4.4.0-18.34-generic 4.4.6
Uname: Linux 4.4.0-18-generic x86_64
NonfreeKernelModules: zfs zunicode zcommon znvpair zavl
ApportVersion: 2.20.1-0ubuntu1
Architecture: amd64
Date: Tue Apr 12 14:52:21 2016
JournalErrors:
Error: command ['journalctl', '-b', '--priority=warning', '--lines=1000'] failed with exit code 1: Hint: You are currently not seeing messages from other users and the system.
Users in the 'systemd-journal' group can see all messages. Pass -q to
turn off this notice.
No journal files were opened due to insufficient permissions.
PackageArchitecture: all
SourcePackage: ubuntu-dev-tools
UpgradeStatus: No upgrade log present (probably fresh install)
--
You received this bug notification because you are a member of MOTU,
which is subscribed to ubuntu-dev-tools in Ubuntu.
https://bugs.launchpad.net/bugs/1569400
Title:
mk-sbuild fails with cp: /etc/localtime... are the same file
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ubuntu-dev-tools/+bug/1569400/+subscriptions
More information about the universe-bugs
mailing list