I consider that attribution is the essence of free and open source licensing.
It is also an important part of the FOSS bargain: I give you my free code and in exchange I get credited for this gift.
But there are other practical aspects to attribution. Let's assume first that my code contains third-party code.
At heart attribution is about communicating to my users the licensing
terms of the third-party code that I redistribute. Therefore all bona fide
FLOSS licenses require some type of attribution, if anything to ensure that I communicate the licensing terms of third-party code to the recipients of this code including the all important warranty disclaimers.
As stated above, attribution is also about giving due credit to the authors of the third-party code that I leverage (which may or may not be required by a license); this is:
- part of the bargain for me receiving free code
- the right thing to do
- the thing I would appreciate others to do when they reuse my own code
Attribution can take several forms and some licenses are very prescriptive about attribution requirements stating which forms it should take, where and when it should be provided or displayed, whether it is required or optional, or applies to source code and/or binary code redistribution, should be present in the documentation, in the UI, etc.
In its minimal form it requires at least to communicate the original license terms as a notice and in many cases the whole text of the license.
To be correct, complete and do the right thing, I would also:
- specify who this attribution is for: the simplest form would
be a copyright statement.
- specify which code this attribution applies to.
Without a proper copyright statement, an attribution would be moot and meaningless as the recipient would not know who I attributed.
Without a proper statement of which code the attribution is for, an attribution would have not much substance as the attributed code would be undetermined.
In general, the requirements are rather simple and easy to comply with and some licenses like the GPL are more prescriptive and explicit in their requirements.
Note: I copied and adapted part of my answer to this other question here as I felt it was relevant.