I have a client who sent me his source code for me to review.
If I have a "client", then this means I have likely some commercial contractual relationship with this company. And if this client sent me the source code for review, there is likely some trust and strong relationship in place.
Therefore I will consider both the open source aspects and my business relationship in this context.
It was a non-paying job. His source code was clearly a heavy modification from a popular GPL-licensed software. I can see the original code (including GPL license headers) everywhere in the project. We didn't have any contract or agreement, simply email exchanges.
If we did not have any agreement in place either explicit or implied, I am wondering how this could be a client of mine in this context.
His application is commercial and he charges few dollars per download. However, he never stated his project is GPL, so nobody had asked him for the code.
Q: I have a copy of his application (I'm also his customer). Can I enforce GPL and distribute the application and source code?
NOTE: I'm 100% sure the seller isn't going to acknowledge his GPL commitment. It's a commercial software and he's selling it.
The context is rather unclear: I do not seem to be sure that I am the customer of this business or that this business is my client, or both.
In this context, I can do two things:
Do the right thing: I could advise my client about this possible GPL compliance issues they are likely facing. I would not assume anything about their willingness to comply. I would contact them and alert them to the facts I have noted and tell them I want to ensure that I can use the rights granted my by the GPL.
From experience most companies want to do the right thing and are just unaware about the fact there are things to do to be compliant. I would also note that there are no conflicts with the software being sold: this is fully allowed by the GPL.
Do the mean thing: I could ignore anything about any relationship I have with my client and I can use the rights granted to me by the GPL license and redistribute the application and source code. Doing this without a discussion would likely be rather irresponsible though. It is likely to be illegal as pointed by MSalters. This is likely to draw me in unwarranted problems and conflicts and damage my relationship with this client or customer. So unless I have a strong reason to enter such a conflict, I would take the high road and use approach 1.
Now, your question is missing a rather important point that you only mentioned in a comment to another answer so far:
@StudentT Are you also a copyright holder on the original code? (You are by default unless it was a work for hire or you assigned your copyright to someone else.) – Kevin Krumwiede
I'm the secondary author. I licensed it out the source code with GPL. I partly own the original code, but not the new modification
So I am after all the original author or a significant author. If I am the original author, then things are rather different. The first thing I would do is contact the culprit in all cases as explained in 1. above.
Then the other important thing is which version of the GPL is used. With a GPL 2.0, the license terminates immediately with no easy way to reinstate it. With GPL 3.0, there is a bit more flexibility and no immediate termination. What really happens/can happen depends a lot on this.
A third possibility to consider could be that in conjunction with 1. I could thank my client/customer for their contribution back to my GPL-license codebase and say I will integrate this in future releases...