A működőképesség kritériuma a másik, ami picit zavaros számomra, ugyanis elég tág fogalom. Pl. mi van akkor, ha:
1.) a program nem fordul le a lib nélkül → egyszerű eset, a programnak is GPL-nek kell lennie.
2.) lefordul a lib nélkül, és:
2.1) a lib által nyújtott funkciók nem elérhetőek?
2.2) a lib funkcionalitását részben implementálták?
2.3) teljesen használható, ugyanis lehet más libet választani, amelyek közül:
2.3.1) van !GPL alternatíva → a program nem lesz GPL-es?
2.3.2) nincs !GPL alternatíva → a program GPL alá kerül?
másik lehetőség: a program XY libet igényel, ami GPL-es. Mivel nem akarom GPL alá helyezni, átadom a forráskódot valaki másnak mindenféle csúf NDA meg hasonlók kíséretében, hogy csináljon vele, amit akar (az NDA keretein belül), tehát akár lefordíthatja a GPL-es libbel együtt. Vagy megírhatja a libet maga. Ez vajon legális? ☺
int getRandomNumber() { return 4; } // ← aláírás
//szabályos kockadobással választva. garantáltan véletlenszerű. xkcd