Bug#345101: [Pkg-alsa-devel] alsa-tools
Michael Prokop
mika at grml.org
Fri Dec 30 14:58:40 UTC 2005
* Thomas Hood <jdthood at yahoo.co.uk> [20051230 15:15]:
> Jordi Mallach wrote:
> > Oh, btw, I modified alsa-base.modprobe to add the full path for
> > modprobe.
> I don't like to hard-code program paths, and I can quote some policy to
> back this up:
> > Programs called from maintainer scripts should not normally have a
^^^^^^
> > path prepended to them. Before installation is started, the package
> > management system checks to see if the programs `ldconfig',
> > `start-stop-daemon', `install-info', and `update-rc.d' can be found
> > via the `PATH' environment variable. Those programs, and any other
> > program that one would expect to be on the `PATH', should thus be
> > invoked without an absolute pathname. Maintainer scripts should also
> > not reset the `PATH', though they might choose to modify it by
> > prepending or appending package-specific directories. These
> > considerations really apply to all shell scripts. [6.1]
^^^^^^^^^^^^^
Do you consider the /etc/modprobe.d/* files as shell scripts?
> If "modprobe" is failing on the user's system then either he doesn't have a
> sane default PATH or zsh is broken.
If $PATH is not set zsh falls back to the following:
,---- [ $ZSH/Src/init.c ]
| /* Set default path */
| path = (char **) zalloc(sizeof(*path) * 5);
| path[0] = ztrdup("/bin");
| path[1] = ztrdup("/usr/bin");
| path[2] = ztrdup("/usr/ucb");
| path[3] = ztrdup("/usr/local/bin");
| path[4] = NULL;
`----
That's what happens in the reported case so modprobe can't be
executed.
> (Or modprobe isn't passing PATH, but my testing indicates that
> this is not the problem.)
Where does modprobe set $PATH? (Sorry, I could not find anything.
I'm still investing on the problem, if it's really a zsh problem
I'll contact zsh-upstream of course.)
> In either case, other things are going to break on his system
> unless many packages hard code paths. And Debian decided a long
> time ago that it wasn't going to do that.
No, everything else works as expected.
> The submitter says that other files in /etc/modprobe.d/ include statements to
> call modprobe with full path; however, on my systems there are _no_ files
> besides alsa-base that include statements to call modprobe. So I am curious
> to know what other packages have hard coded modprobe's path.
For example dumputils and irda-utils.
> modprobe's location is unlikely to change, but in principle the admin is
> supposed to be able to substitute commands by putting them in /usr/local/bin/
> and modifying PATH to include /usr/local/bin before the standard dirs.
Even the documentation mentions "/sbin/modprobe":
,---- [ man 5 modprobe.conf ]
| install modulename command...
|
| This is the most powerful primitive in modprobe.conf: it
| tells modprobe to run your command instead of inserting the
| module in the kernel as normal. The command can be any shell
| command: this allows you to do any kind of complex processing
| you might wish. For example, if the module "fred" worked
| better with the module "barney" already installed (but it
| didn't depend on it, so modprobe won't automatically load
| it), you could say "install fred /sbin/modprobe barney;
| /sbin/modprobe --ignore-install fred", which would do
| what you wanted. Note the --ignore-install, which stops the
| second modprobe from re-running the same install command.
| See also remove below.
|
| You can also use install to make up modules which don't
| otherwise exist. For example: "install probe-ethernet
| /sbin/modprobe e100 || /sbin/modprobe eepro100", which will
| try first the e100 driver, then the eepro100 driver, when you
| do "modprobe probe-ether- net".
|
| If you use the string "$CMDLINE_OPTS" in the command, it will
| be replaced by any options specified on the modprobe command
| line. This can be useful because users expect "modprobe
| fred opt=1" to pass the "opt=1" arg to the module, even if
| there's an install command in the configuration file. So our
| above example becomes "install fred /sbin/modprobe barney;
| /sbin/modprobe --ignore- install fred $CMDLINE_OPTS"
`----
regards,
-mika-
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.alioth.debian.org/pipermail/pkg-alsa-devel/attachments/20051230/51f48f4a/attachment.pgp
More information about the Pkg-alsa-devel
mailing list