Evan Broder wrote:
> Hi,
> I think I've got a patch that fixes the postflight script on 10.5.
>
> There are two things that I fix: first, ps axww seems to for some reason
> list lots of processes on 10.5. I will freely admit that I don't
> understand the options to ps on OS X or any other platform - I just kept
> pulling arguments one at a time until it seemed to do the right thing.
Good catch. To me this looks like a bug in Leopard's /bin/ps: When the
"-a" flag is present, it ignores the "-p pid" flag. I have immediately
filed a bug with Apple's bugreporter.
> The other change causes pathsetup.sh to run with the privileges,
> environment, and shell scripts of the user that is being sudo'd to.
> Currently, pathsetup.sh will try to write to /var/root/.profile as the
> normal user, which fails for obvious reasons.
The environment variables (in particular $HOME and $USER) with which the
installer runs the postflight script keep changing between OS releases,
sometimes between minor releases. There was a time when the current
version of postflight did the right thing, but on Leopard your
suggestion is looks correct, and it looks correct for Tiger, too.
However, I think this needs some more testing: When I try to execute
this by hand from a root command line prompt, I get weird error messages
(perhaps due to my using tcsh as login shell):
root# sudo -i -u costabel /sw/bin/pathsetup.sh
Badly placed ()'s.
With another command it gets weirder:
root# sudo -i -u costabel /usr/bin/printenv HOME
\312\376\272\276^B^G^C^PEp^L^R: Command not found.
^QU\211\345WVS\203\354,\213u^H\213]^L\353^E\350\261\377\377\377\307D:
Event not found.
There is definitely something fishy about this "-i" flag when used with
a command. On the other hand, "-H" seems to work correctly:
root# sudo -H -u costabel /usr/bin/printenv HOME
/Users/costabel
root# sudo -H -u costabel /sw/bin/pathsetup.sh
--------------------------------
Setting up your Fink environment
--------------------------------
Your environment seems to be correctly
set up for Fink already.
> - Evan Broder
>
> cvs diff: Diffing installer/resources
> Index: installer/resources/postflight
> ===================================================================
> RCS file: /cvsroot/fink/scripts/installer/resources/postflight,v
> retrieving revision 1.13
> diff -u -r1.13 postflight
> --- installer/resources/postflight 9 Jun 2006 16:59:14 -0000 1.13
> +++ installer/resources/postflight 4 Feb 2008 02:32:33 -0000
> @@ -16,7 +16,7 @@
> # get ps data for a given PID
> sub process_info {
> my($pid) = shift;
> - my $command = "ps axww -p$pid -o user,ppid,tty,command | tail
> -n 1";
> + my $command = "ps xww -p$pid -o user,ppid,tty,command | tail -n 1";
> my @info = split(/\s+/, `$command`, 4);
> return (
> user => $info[0],
> @@ -40,7 +40,7 @@
> # Running from Installer.app: have Aqua session, so run pathsetup
> # as user who ran Installer.app.
> my $real_user = $info{user};
> - system "sudo -u $real_user /sw/bin/pathsetup.sh";
> + system "sudo -i -u $real_user /sw/bin/pathsetup.sh";
> system "osascript -e 'tell application \"Installer\"' -e 'activate'
> -e 'end tell'";
> } else {
> # Running from commandline: not certain to have Aqua session, so
--
Martin
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Fink-devel mailing list
[email protected]
http://news.gmane.org/gmane.os.apple.fink.devel