cowsay-org / cowsay

apjanke's fork of the classic cowsay project
http://cowsay.diamonds
GNU General Public License v3.0
72 stars 15 forks source link

Extra cows in Debian; adopt them? And tag our cows better for licensing? #64

Open apjanke opened 2 weeks ago

apjanke commented 2 weeks ago

The current Debian cowsay package, based on classic cowsay 3.03, has some cows that are not in cowsay-org's current cows, and also don't seem to be in the original 3.03/3.04 repo that Tony posted. Let's see if we can get those in to our herd.

(As noted in this comment on the "NSFW" ticket.)

TODO

The situation

On my Debian 12 box:

janke@debbie:~$ apt info cowsay 2>/dev/null | head -2
Package: cowsay
Version: 3.03+dfsg2-8
janke@debbie:~$ ls /usr/share/cowsay/cows/
apt.cow         default.cow            gnu.cow           moose.cow         suse.cow
beavis.zen.cow  dragon-and-cow.cow     hellokitty.cow    mutilated.cow     three-eyes.cow
bong.cow        dragon.cow             kangaroo.cow      pony.cow          turkey.cow
bud-frogs.cow   duck.cow               kiss.cow          pony-smaller.cow  turtle.cow
bunny.cow       elephant.cow           koala.cow         ren.cow           tux.cow
calvin.cow      elephant-in-snake.cow  kosh.cow          sheep.cow         unipony.cow
cheese.cow      eyes.cow               luke-koala.cow    skeleton.cow      unipony-smaller.cow
cock.cow        flaming-sheep.cow      mech-and-cow.cow  snowman.cow       vader.cow
cower.cow       fox.cow                milk.cow          stegosaurus.cow   vader-koala.cow
daemon.cow      ghostbusters.cow       moofasa.cow       stimpy.cow        www.cow
janke@debbie:~$ 

Compared to our current cows:

diff cows-debian12.txt cows-current.txt
1c1
< apt.cow
---
> alpaca.cow
2a3
> blowfish.cow
6d6
< calvin.cow
8d7
< cock.cow
9a9
> cupcake.cow
14,15d13
< duck.cow
< elephant.cow
16a15
> elephant.cow
21c20
< gnu.cow
---
> head-in.cow
23d21
< kangaroo.cow
24a23
> kitty.cow
26a26
> llama.cow
28a29
> meow.cow
33,34d33
< pony.cow
< pony-smaller.cow
38c37
< snowman.cow
---
> small.cow
41c40,41
< suse.cow
---
> supermilker.cow
> surgery.cow
46,48c46
< unipony.cow
< unipony-smaller.cow
< vader.cow
---
> udder.cow
49a48
> vader.cow

References

apjanke commented 2 weeks ago

Interesting. The Debian package copyright file says that the satanic, sodomized, and telebears cows were removed because they had no known license, not due to offensiveness.

$ cat copyright 
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: cowsay
Upstream-Contact: Tony Monroe <tony@nog.net>
Source: https://web.archive.org/web/20120527202447/http://www.nog.net/~tony/warez/cowsay.shtml
Comment: Files from upstream which had no known license have been removed
 The files are:
 .
 kitty.cow
 meow.cow
 satanic.cow
 small.cow
 sodomized.cow
 supermilker.cow
 surgery.cow
 telebears.cow
 udder.cow

And then I see patches for those various Debian-only cows, with various licenses. Covers cows: apt, calvin, cock, duck, fox, gnu, kangaroo, pony, pony-smaller, snowman, suse. But apparently not: elephant

Files: debian/patches/apt_cow
Copyright: 2002 Steven Barker <scbarker@uiuc.edu>
License: GPL
[...]

Files: debian/patches/calvin_cow debian/patches/cock_cow
Copyright: 2006 Krishna Kumar <krish.kumar@gmail.com>
License: COWSAY
[...]

Files: debian/patches/duck_cow
Copyright: 1999 Gürkan Sengün <gurkan@phys.ethz.ch>
License: COWSAY

Need to get the packaging file, and download the exact source distribution they're using, to see if elephant etc. are covered by those other files like *.

That copyright text also indicates that some cow files from the main cowsay distribution are covered under different licenses. May be an issue with multi-contributor work in the original cowsay project. Based on my reading, the license wasn't changed from COWSAY to GPLv3 until the cowsay 3.04 release in 2016 when it was posted to GitHub, in a new commit by Tony.

image image

There's no formal contributor agreement or copyright assignment in the cowsay documentation, so I don't know if that re-licensing actually works for the cow files contributed by other authors besides Tony. We may want to change the copyright info in this distribution to be finer grained and reflect that, and in a way that makes it easy for Debian and other packagers to pick it up and incorporate it. And maybe remove the no-license-info files like Debian does.

apjanke commented 2 weeks ago

I checked our current cows against the original 3.04 posting. It's as expected - just the NSFW and broken .pm cows removed, some new cows added, and the file extension on mech-and-cow fixed.

[cowsay] $ diff cows-3.04-orig.txt cows-3.04-my-import.txt
[cowsay] $ diff cows-3.04-orig.txt cows-current.txt
1,7c1
< DragonAndCow.pm
< Example.pm
< Frogs.pm
< MechAndCow.pm
< Stegosaurus.pm
< TextBalloon.pm
< TuxStab.pm
---
> alpaca.cow
14a9
> cupcake.cow
22a18
> fox.cow
29a26
> llama.cow
31c28
< mech-and-cow
---
> mech-and-cow.cow
38d34
< satanic.cow
42d37
< sodomized.cow
47d41
< telebears.cow
[cowsay] $

And the diff against the 3.03 dist tarball (downloaded from Internet Archive's Wayback Machine, sha ) is smaller, and as expected. (The .pm cows were added in the lat, abortive 3.04 development work, I think.)

[cowsay] $ diff cows-3.03-dist.txt cows-current.txt
0a1
> alpaca.cow
1a3
> blowfish.cow
6a9
> cupcake.cow
14a18
> fox.cow
21a26
> llama.cow
23c28
< mech-and-cow
---
> mech-and-cow.cow
30d34
< satanic.cow
34d37
< sodomized.cow
39d41
< telebears.cow
[cowsay] $
apjanke commented 2 weeks ago

I emailed some of the openSUSE cowsay package maintainers about the chami chameleon cow; we'll see what they have to say about upstreaming it.