On Mon, 7 Jan 2013, Jonas Smedegaard wrote:
Quoting Jean-Michel Vourgère (2013-01-07 16:58:08)On Sunday 06 January 2013 11:29:55 Arno Töll wrote:(...)Seems that error comes from a2ensite call, so I suspect the cause might be some dependency of that script has not yet been configured.a2ensite does not call a shell to read /etc/apache2/envvars. Your output makes me suspect this is rather coming from the init script which is invoked from postinst. What makes you think a2ensite is the problem?Arno: a2ensite reads /etc/apache2/envvars in function read_env_file on line 331: env - sh -c '. /etc/apache2/envvars && env'Thanks, Jean-Michel. Sorry if I was unclear earlier: I am talking about postinst too: postinst calls a2ensite calls perl loads modules. Since those modules are not yet configured, postinst fails.
Are you sure? Perl modules usually don't need the package to be configured in order to be usable. An exception may be if ld.config needs to be called.
And even so, according to policy 7.2, the dependencies *will* be configured when postinst is run:
"In the case of `postinst configure', the depended-on packages will be unpacked and configured first. (If both packages are involved in a dependency loop, this might not work as expected; see the explanation a few paragraphs back.)"
Clearly perl-modules is not in a dependency loop with apache2.2-common. Perl-modules is priority standard, apache2.2-common is optional.
Package needs to pre-depend on perl, not just depend on it. Below test indicates that this bug is independent from that lack of predependency on perl - so do you guys want me to file a separate bug about the perl predependency?
If you still think there is a bug, yes please. But include the exact error message.
Jonas: What does the command line above yield? What is the result code ? ($?) What shell do you use? dash? (ls -l /bin/sh) Can you send us your envvars file?As I wrote before, it occurs using multistrap. Multistrap is like debootstrap but postpones all postinst calls till later. Therefore envvars file is the file shipped with the package itself.
/etc/apache2/envvars is included in apache2.2-common. Therefore apache2.2-common may assume that it is present in postinst.
+ env - sh -c '. /etc/apache2/envvars && env' sh: 1: .: Can't open /etc/apache2/envvars + echo 2 2 + ls -l /bin/sh lrwxrwxrwx 1 root root 4 Jan 7 18:53 /bin/sh -> bash + cat /etc/apache2/envvars # envvars - default environment variables for apache2ctl
This is rather weird. The shell can't source the file but immediately afterwards the "cat" succeeds. Does multistrap do things in parallel? Or do you do this on NFS or some other strange file system?
Maybe you should run strace -f -tt on the whole multistrap process to see what is happening with respect to /etc/apache2/envvars.
Another possible issue I could imagine (but your log does not really look like it): If removed apache2.2-common in your chroot without purging it, and then deleted /etc/apache2/* by hand. In this case dpkg will not re-create /etc/apache2/envvars during the next installation because it is a conffile.