)]}'
{
  "log": [
    {
      "commit": "15fde6751886fd972a64ed65ba49db309919c504",
      "tree": "513c1eec2135f65ba0d980627346f7c07ad2b897",
      "parents": [
        "3041e47e8b08d51188b2cbdbd9c1e6f43314c8f1"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@suse.de",
        "time": "Tue May 09 20:37:30 2006 +0200"
      },
      "committer": {
        "name": "Sam Ravnborg",
        "email": "sam@mars.ravnborg.org",
        "time": "Sat Jun 24 23:42:46 2006 +0200"
      },
      "message": "kbuild: support for %.symtypes files\n\nHere is a patch that adds a new -T option to genksyms for generating dumps of\nthe type definition that makes up the symbol version hashes. This allows to\ntrace modversion changes back to what caused them. The dump format is the\nname of the type defined, followed by its definition (which is almost C):\n\n  s#list_head struct list_head { s#list_head * next , * prev ; }\n\nThe s#, u#, e#, and t# prefixes stand for struct, union, enum, and typedef.\nThe exported symbols do not define types, and thus do not have an x# prefix:\n\n  nfs4_acl_get_whotype int nfs4_acl_get_whotype ( char * , t#u32 )\n\nThe symbol type defintion of a single file can be generated with:\n\n  make fs/jbd/journal.symtypes\n\nIf KBUILD_SYMTYPES is defined, all the *.symtypes of all object files that\nexport symbols are generated.\n\nThe single *.symtypes files can be combined into a single file after a kernel\nbuild with a script like the following:\n\nfor f in $(find -name \u0027*.symtypes\u0027 | sort); do\n    f\u003d${f#./}\n    echo \"/* ${f%.symtypes}.o */\"\n    cat $f\n    echo\ndone \\\n| sed -e \u0027\\:UNKNOWN:d\u0027 \\\n      -e \u0027s:[,;] }:}:g\u0027 \\\n      -e \u0027s:\\([[({]\\) :\\1:g\u0027 \\\n      -e \u0027s: \\([])},;]\\):\\1:g\u0027 \\\n      -e \u0027s: $::\u0027 \\\n      $f \\\n| awk \u0027\n/^.#/   { if (defined[$1] \u003d\u003d $0) {\n            print $1\n            next\n          }\n          defined[$1] \u003d $0\n        }\n        { print }\n\u0027\n\nWhen the kernel ABI changes, diffing individual *.symtype files, or the\ncombined files, against each other will show which symbol changes caused the\nABI changes. This can save a tremendous amount of time.\n\nDump the types that make up modversions\n\nSigned-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\n"
    },
    {
      "commit": "ce560686947fd50b30eaf42045554797f53949dd",
      "tree": "ae04b6c366eec6c6ff9726a8034ffd61c269ce1b",
      "parents": [
        "78c041530ac2e65c9290137bfe3004340e0840d2"
      ],
      "author": {
        "name": "Sam Ravnborg",
        "email": "sam@mars.ravnborg.org",
        "time": "Sun Mar 12 23:26:29 2006 +0100"
      },
      "committer": {
        "name": "Sam Ravnborg",
        "email": "sam@mars.ravnborg.org",
        "time": "Sun Mar 12 23:26:29 2006 +0100"
      },
      "message": "kbuild: clean-up genksyms\n\no remove all inlines\no declare everything static which is only used by genksyms.c\no delete unused functions\no delete unused variables\no delete unused stuff in genksyms.h\no properly ident genksyms.h\n\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
