Dear list members,
I have a question about source code copyright. I hope I can get an answer here.
Could someone please explain what is the level of copy which violets copyright?
For example take 3 cases.
Case 1: Exact replica of source code.
Ans: Violation
Case 2: Functions and variables renamed.
Ans: Violation
Case 3: Functions moved up/down, some function call deleted and some
new function calls introduced. But overall template/concept remains
same.
Ans: ???
I put another example to make my question clear.
Lets consider one function from LDD3 that has following source:
void end_request(struct request *req, int uptodate)
{
if(!end_that_request_first(req, uptodate, req->hard_cur_sectors)) {
add_disk_randomness(req->rq_disk);
blkdev_dequeue_request(req);
end_that_request_last(req);
}
}
Now consider another function from drivers/block/floppy.c
static void floppy_end_request(struct request *req, int uptodate)
{
unsigned int nr_sectors = current_count_sectors;
/* current_count_sectors can be zero if transfer failed */
if (!uptodate)
nr_sectors = req->current_nr_sectors;
if (end_that_request_first(req, uptodate, nr_sectors))
return;
add_disk_randomness(req->rq_disk);
floppy_off((long)req->rq_disk->private_data);
blkdev_dequeue_request(req);
end_that_request_last(req, uptodate);
/* We're done with the request */
current_req = NULL;
}
Assume the function floppy_end_request is not from kernel and I have
written it for my employer.
Now the basic template of floppy_end_request is almost same as
end_request from LDD3. Since end_request is copyright protected, can I
not write a function like floppy_end_request function?
If I can not, then does it not virtually make new block device driver
writing impossible? Because all block device drivers will more or less
have same code at request handling level.
--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [email protected]
Please read the FAQ at http://kernelnewbies.org/FAQ