Firstly, if there is any possibility, you will incur a loss as a result of improper licensing, contact a real lawyer. The Internet is NOT a real lawyer, and you cannot sue the Internet for negligence if it gives you bad advice.
Secondly, I am not a lawyer, and most people are here. The following is my occupation, based on experience over many years. Do not blame me if you follow my advice, and it will harm you.
Third, read ALL licenses and make sure you understand what they say. If not, ask for clarification from my first point.
Fourth:
GPL / LGPL does not require an application source. They demand that the source be "on demand". Put it on a password-protected web page or save a copy that you can burn to CD and mail (you can charge for a CD and postage), if someone asks, that's enough.
You must provide the source to any binary that you distribute, even if these binary files came to you from a third party. If a third party does not provide you with its source, you must either indicate the GPL requirements or find another provider. It is not enough to send requests for GPL code to a vendor or web page for an unmodified package, especially if it came from a third-party vendor who probably changed it. You must be careful to map the correct version of the code to each binary version you create so that you can provide the source of any particular version of your product.
You must list all free (and non-free) software and their licenses. Some licenses do not require this, some (early BSDs). Better to be safe than sorry later. This is also a good way to show the user what the various licenses are and give them the opportunity to decide whether to use your product.
You want to be very careful about links if you have a proprietary application that binds the [L] GPL code. There is a chance that you might accidentally associate the code with a viral license (GPL), and then you have problems if someone notices and requires a source. Make sure you are not statically linking LGPL code for the same reason (Details: Can I embed call functions in the functions defined in the LGPL package headers? ).
You should also consider including a source for your toolchain if you use your own cross-compiler. I'm not sure that the GPL actually requires this, but it's a bit like a bastard to give someone a source, and then they failed to compile and configure it on your device. I know of at least one provider who did this - they changed the language a bit and fixed their compiler. They did not distribute the compiler and therefore did not require distributing the source. As a result, it was impossible to build from the set source so that it corresponded to the goal. AFIK they stopped doing this, so I wonβt give names.