Bug 408181 - wpa_supplicant service script is completely FUBARed
Summary: wpa_supplicant service script is completely FUBARed
Alias: None
Product: Fedora
Classification: Fedora
Component: wpa_supplicant
Version: 8
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Dan Williams
QA Contact: Fedora Extras Quality Assurance
Keywords: Reopened
Depends On:
TreeView+ depends on / blocked
Reported: 2007-12-03 01:19 UTC by sarcastic.mannequin
Modified: 2007-12-03 22:35 UTC (History)
0 users

Clone Of:
Last Closed: 2007-12-03 22:35:24 UTC

Attachments (Terms of Use)

Description sarcastic.mannequin 2007-12-03 01:19:28 UTC
Description of problem:

wpa_supplicant service script is completely FUBARed.

Version-Release number of selected component (if applicable):

current release at 2007-11-02

How reproducible:

Try to get wpa_supplicant service to work.

Steps to Reproduce:
Actual results:

Expected results:

Additional info: The wpa_supplicant service script won't work and I don't see
how it can ever work the way the script is written. I don't mean to be mean, but
is this stuff not tested or what!!!???

Comment 1 Peter Lemenkov 2007-12-03 09:55:35 UTC
Please be more descriptive. 

Speaking closely to topic of your question - looks like wpa_supplicant not
tested by its Fedora maintainers in any configuration w/o NetworkManager.

Comment 2 Dan Williams 2007-12-03 14:59:43 UTC
In what way is it not working?  The known issues are that options to enable the
D-Bus interface are used, but that the dynamic initscript dependency calculation
introduced with Fedora 8 broke the manual dependency that made wpa_supplicant
start after the messagebus service, leading to a failure to start at boot.  As a
workaround for hte moment, please remove the "-u" option from

Comment 3 sarcastic.mannequin 2007-12-03 18:07:05 UTC
The wpa_supplicant initscript picks up $INTERFACES and $DRIVERS configuration
items from /etc/sysconfig/wpa_supplicant but the initscript uses the
configuration items incorrectly. The result is that wpa_supplicant cannot find
the interface and it does not know which driver to use.

This happens every time because the configuration items are passed incorrectly
to the wpa_supplicant program. Would fail any testing.

Comment 4 Dan Williams 2007-12-03 18:22:46 UTC
It doesn't use them incorrectly, the problem is that wpa_supplicant is somewhat
special in the way that it orders and processes arguments.  So either the
INTERFACES3, DRIVERS3, etc, and there needs to be CONFFILE1, CONFFILE2,
CONFFILE3, OR the onus is on the person who's configuring the supplicant
_manually_ (at which point you have enough knowledge to figure this out) to make
the arguments correct.  Piling on more shell logic in the initscript to parse
space-separated arguments in each of DRIVERS INTERFACES CONFFILE is just way too
ugly and totally not an option.

Comment 5 sarcastic.mannequin 2007-12-03 21:45:47 UTC
Have you tested this?

wpa_supplicant requires a '-i' before the interface name and a '-D' before the
driver name but the initscript does not add these bits when it uses $INTERFACES
and $DRIVERS from /etc/sysconfig/wpa_supplicant.

This is correct: wpa_supplicant -D wext -i wlan0 ...

This is wrong: wpa_supplicant wext wlan0 ...  <=== the way it is now

I've changed my initscript to add these missing bits and it now works. Sadly, my
linux-fu is too weak to write production scripts so I'll leave that to someone else.

I do agree that it would be overkill to modify the initscript to handle more
than a single wlan. That would seem to be a very rare case. Perhaps just a
comment in the initscript pointing out that it is for a single wlan would suffice.

In that case, to be completely correct, the variables should drop the plurals
and become $INTERFACE and $DRIVER (in both the initscript and the config file).
That assumes the variable names won't conflict with any other network scripts. A
better choice might be $WLAN_INTERFACE and $WLAN_DRIVER. Picky, picky, eh!

Comment 6 Dan Williams 2007-12-03 22:35:24 UTC
Please reread my comments.  You, as the person modifying
/etc/sysconfig/wpa_supplicant, need to put the -i and -D in yourself.  SO, in
that file, you likely need:


I have added comments in that file in the next build to let users who need to
modify the arguments know what to put there. 

Note You need to log in before you can comment on or make changes to this bug.