You should read carefully terms 2 and 3 of the GPL v2 as they directly relate to your question. You should also consult with a lawyer (IANAL).
It is unclear in your question how your program relates to hobocopy.exe. There are three possibilities:
- If your software does not include hobocopy.exe and the users must download/install it from somewhere to use your program, then your program does not need to be licenced as GPL and you do not have to distribute the sources of your program or those of hobocopy.exe.
- If your software does include hobocopy.exe as a clearly separated component that your code uses as an external program (e.g. in Java, Runtime.getRuntime().exec(params)), then your program does not need to be licenced as GPL and you do not have to distribute the sources of your program, but you must distribute the sources of hobocopy.exe (if you distribute GPL software you must distribute the sources too).
- If your software merges somehow with hobocopy.exe, even just creating a wrapper around it, in a way that the separation is not clear or they cannot "reasonably [be] considered independent and separate works in themselves", then your program can be considered a derived work and therefore must be licenced as GPL, and you must distribute the source code of your program and of HoboCopy. You can still charge for it, though, and "sell it like a normal program". The GPL does not prevent you from charging for the software, it only prevents you from distributing the binaries without the sources.
The boilerplate notice for the Apache License is:
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License"); you
may not use this file except in compliance with the License. You may
obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied. See the License for the specific language governing
permissions and limitations under the License.
There is also the complete Apache License v2 available in HTML and TXT formats.
If you are distributing a source code for a project, you should place the complete license in a text file called LICENSE at the root of the project. If you need a NOTICE file (projects run by the Apache Software Foundation require one), it goes at the same level.
If you are distributing a binary for a project and are providing a JAR or a tarball, then the LICENSE (and NOTICE) files must be at the top level. That is, when you uncompress the file, you should see a LICENSE (and NOTICE) file in the target.
If you are distribute a single file (such as a Gist on GitHub), then you are probably OK with putting the boilerplate notice at the top of the file.
If you are using Apache License v2 licensed software in your project, you need to include the LICENSE and NOTICE files for that library. The way I usually do this is that I have a lib
directory in the root of my project. I would extract the library distribution into a subdirectory of the lib directory. Assuming that the author packaged their application properly, it will contain the appropriate license files.
Best Answer
It depends on what you intend to do with the software that you produce.
Firstly, neither ASL1, GPL or LGPL make any restrictions on what you can use software to do inside your organization. The restrictions are all on code that is distributed outside of your organization.
For GPL the restriction is that if you incorporate GPL'ed code into your own software, AND you then distribute your software outside of your organization, THEN you must make the source code available under the terms of the GPL or a compatible open source license.
So if you use GPL'ed code in your application and you distribute it, then your application must be open source ... or else you are violating the license.
For LGPL, the restriction (see above) only applies to the source-code of the LGPL'ed library itself; i.e. if you change the library. If you just use the library, you are not required to make your source code available.
There is also a restriction that the LGPL code in your application must be replaceable by the user of your code. That means (in effect) that if you distribute your code as binaries only, then you cannot statically link your code against that the library. You must use dynamic linking.
For ASL, the only significant restriction is that you must say if you have changed anything from the original version the ASL'ed code that you using.
Finally, just to make it clear, neither GPL, LPGL or ASL places any restriction on your purpose in using the software. And that includes whether your purpose is to make money. They just constrain the way you can make money ... and in the case of LGPL and ASL, the constraint is pretty minimal.
For LGPL and ASL, no precautions are necessary.
IANAL - I am not a lawyer. If you need to be sure, ask a real, qualified expert; i.e. a lawyer who specializes in software IP law.
1 - For the purposes of this answer, ASL == Apache Software License version 2.