My CCID driver: 20 years anniversary

The first version of my CCID driver was released on August 13th 2003.

From the README.md file:

0.1.0 - 13 August 2003, Ludovic Rousseau
   - First public release

The first commit was:

commit 631107ca310243cb8c9068c160106a580fd6ed64
Author: Ludovic Rousseau <ludovic.rousseau@free.fr>
Date:   Tue Aug 12 12:40:23 2003 +0000

        Initial revision


        git-svn-id: svn://anonscm.debian.org/svn/pcsclite/trunk/Drivers/ccid@269 0ce88b0d-b2fd-0310-8134-9614164e65ea

 AUTHORS                 |   1 +
 COPYING                 | 340 ++++++++++++++++++++++++++++
 Makefile                |  16 ++
 README                  |  63 ++++++
 readers/CardMan3121.txt |  35 +++
 readers/GemPC433_SL.txt |  35 +++
 readers/GemPCKey.txt    |  36 +++
 readers/GemPCTwin.txt   |  35 +++
 readers/LTC31.txt       |  35 +++
 readers/SCR331.txt      |  35 +++
 readers/SCR335.txt      |  35 +++
 src/.dependencies       |   0
 src/Info.plist          |  71 ++++++
 src/Makefile            |  86 +++++++
 src/capabilities.c      |  30 +++
 src/ccid_ifdhandler.h   | 141 ++++++++++++
 src/ccid_usb.c          | 486 ++++++++++++++++++++++++++++++++++++++++
 src/ccid_usb.h          |  47 ++++
 src/check               | 189 ++++++++++++++++
 src/commands.c          | 254 +++++++++++++++++++++
 src/commands.h          |  34 +++
 src/config.h            |  42 ++++
 src/debug.c             |  72 ++++++
 src/debug.h             | 100 +++++++++
 src/defs.h              |  58 +++++
 src/ifdhandler.c        | 579 ++++++++++++++++++++++++++++++++++++++++++++++++
 src/parse.c             | 238 ++++++++++++++++++++
 src/parser.h            |  22 ++
 src/pcscdefines.h       |  51 +++++
 src/tokenparser.l       | 144 ++++++++++++
 src/utils.c             |  37 ++++
 src/utils.h             |  32 +++
 32 files changed, 3379 insertions(+)

It was not a git commit. git was not yet invented. It was a Subversion (SVN) commit.

Maybe I should sell this first commit as an NFT and become super rich? Ha ha ha! Any offer?

Readers

Readme v0.1.0 extract:

Supported CCID readers:
=======================

- Gemplus GemPCKey
- Gemplus GemPC 433 SL
- GemPC Twin

Unsupported CCID readers:
=========================

- none known

Only 3 readers were supported in the version 0.1.0. And 0 readers were unsupported.

Today the CCID driver lists readers in 4 categories. The current version has:

My reader collection

I physically have 172 different readers in 10 cardboard boxes. Yes, that is many readers.

Statistics

Thanks to nova_git_stats I was able to generate nice statistics. Here are some extracts:

Hour of day of the commits

/images/2023/10/charts_hour_of_day.svg

Not so many commits during the night. Not really surprising :-)

Year of the commits

/images/2023/10/charts_year.svg

The activity is decreasing because the driver is now stable. I am surprised as I was expecting a lower activity in recent years.

Files by date

/images/2023/10/charts_files_by_date.svg

Lines by date

/images/2023/10/charts_lines_by_date.svg

Thanks

From the Authors statistics you can see 24 people contibuting.

  • Achmad Yusri Afandi

  • Aitor Pazos

  • Deividas Puplauskas

  • Erki Aring

  • Fabio Araujo

  • Feitian Technologies

  • Godfrey Chung

  • Guido Trentalancia

  • Ingo Fankner

  • Ludovic Rousseau

  • Maksim Ivanov

  • Martin Paljak

  • Nathan Barrett-Morrison

  • Nicolas Schneider

  • Petr Vaněk

  • Ray Veldkamp

  • Rodrigo

  • Santiago Gimeno

  • Stephan Guilloux (home)

But many patches are applied by me and the real author name is in the commit message with a line like "Thanks to John Doe for the patch/bug report/idea".

We have around 110 different names in that case:

$ git log | grep "Thanks" | sed -E "s/for .*//" | sort -u | wc -l
         112
  • Abraham Macías Paredes

  • Adam Laurie

  • Alan Kozlay

  • Alexander Abarzhi

  • Alexander Georg

  • Alon Bar-Lev

  • Anders Storsveen

  • Benoit Gonzalvo

  • Bruce Stephens

  • Byron Johnson

  • Chris Calvesbert

  • Christian Schaubschläger

  • Daniel Kucera

  • David L. Markowitz

  • David Markowitz

  • David Woodhouse

  • Diego Elio Pettenò

  • Diego Elio Pettenò and Dario Leone

  • Dominik Heidler

  • Douglas E. Engert

  • Dr Jean-Pierre Szikora

  • Dr Russel Winder

  • El Tuba

  • Elatec

  • Emmanuel Deloget

  • Fabrizio del Tin

  • Florent VIBERT

  • Frederic Dumas

  • Gerald Richter

  • Godfrey Chung

  • Godfrey Chung

  • Harm Braams

  • Hasso Tepper

  • Hendrik Donner

  • Henryk Plötz

  • Hiroyuki Yamamoto

  • Ivan Vilata i Balaguer

  • Jaidev Bhattacharjee

  • Jakub Jelen

  • Jan Suhr

  • Jean Lusetti

  • Jeffrey Dai

  • Jim Dawson

  • Joachim Breitner

  • Johann Dantant

  • John Billings

  • Jörg Grundmann

  • Jose Ramon Alvarez-Sanchez

  • Josep Monés Teixidor

  • Karl Dahlén

  • Kenjiro Tsuji

  • Kjell M. Myksvoll

  • Loïs Lherbier

  • Luka Logar

  • Maarten

  • Maksim Ivanov

  • Marc Kewitz

  • Martin Elshuber

  • Martin Paljak

  • Martin Preuss

  • Martin Rauch

  • Martin Vogt

  • Matt and Tim Banchi

  • Maximilian Stein

  • Michael Wegner

  • Nicolas Stalder

  • Niki W. Waibel

  • Niki Waibel

  • Peter Koch

  • Rachid HARBI-ASSYSTEM

  • Rafael Dominguez Vega

  • Robert Relyea

  • Roman Pasechnik

  • Stas Sergeev

  • Stef Hoeben

  • Stefan Bühler

  • Stefan Neis

  • Stéphane Durand

  • Takuto Matsuu

  • Thomas Capricelli

  • Thomas Vetter

  • Tilman Linneweh

  • Tilman Linneweh

  • Tomasz Kłoczko

  • Torsten Maykranz

  • Toshimune Konno

  • Ulrich Vogl

  • Ville Skyttä

  • Vladimir K

  • Wolfgang Glas

  • ZF Friedrichshafen AG

  • Zheng Ruoqin

  • Zoltan Kelemen

  • el Tuba

  • ronie19

  • somova

I want to say a great thank you to all the contibutors.

Conclusion

Long live to libccid.