)]}'
{
  "log": [
    {
      "commit": "8f67ab5340bdba008503019d6941c06e5de534af",
      "tree": "bd3ae942256055d8378da718bc554a487a64d733",
      "parents": [
        "017893f244dd9e6d16311743121ca82e39ab5a01"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Fri Sep 20 01:50:40 2013 -0500"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Fri Sep 20 01:50:40 2013 -0500"
      },
      "message": "NEWS: add entries\n"
    },
    {
      "commit": "017893f244dd9e6d16311743121ca82e39ab5a01",
      "tree": "5ac4c59b53551b596647cb6a1ab0078f5b5c23c1",
      "parents": [
        "7ab8804448377fb6b8854f2dd288608db01bb43b"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Fri Sep 20 01:40:58 2013 -0500"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Fri Sep 20 01:42:04 2013 -0500"
      },
      "message": "rmmod: remove --wait option\n\nLet libkmod enforce KMOD_REMOVE_NOWAIT.\n"
    },
    {
      "commit": "7ab8804448377fb6b8854f2dd288608db01bb43b",
      "tree": "b45f97fbe7f859aa4072988b9cb4df485e736724",
      "parents": [
        "82fc7d986cdc60aeb34224f59a92a04e2d514da9"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Fri Sep 20 01:30:07 2013 -0500"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Fri Sep 20 01:37:24 2013 -0500"
      },
      "message": "libkmod: always pass O_NONBLOCK to kernel\n\nNot passsing O_NONBLOCK to delete_module() is deprecated since kmod 11\nand is being removed from the kernel. Force this flag in libkmod.\n"
    },
    {
      "commit": "82fc7d986cdc60aeb34224f59a92a04e2d514da9",
      "tree": "bc8e205d6950aca01ddccd547eabb3f0b13e3c52",
      "parents": [
        "3ba7f59e84857eb4dbe56a68fc7a3ffe8a650393"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Thu Aug 22 01:36:45 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Fri Sep 20 01:10:37 2013 -0500"
      },
      "message": "libkmod-hash: always align n_buckets to power of 2\n\nBy aligning n_buckets to power of 2 we can turn the \"bucket \u003d hashval %\nn_buckets\" into a less expensive bucket \u003d hashval \u0026 (n_buckets - 1).\nThis removes the DIV instruction as shown below.\n\nBefore:\n\txor    %edx,%edx\n\tdivl   0x8(%rbx)\n\tmov    %edx,%eax\n\tadd    $0x1,%rax\n\tshl    $0x4,%rax\n\tadd    %rbx,%rax\n\nAfter:\n\tlea    -0x1(%rdi),%edx\n\tand    %edx,%eax\n\tadd    $0x1,%rax\n\tshl    $0x4,%rax\n\tadd    %rbx,%rax\n\nWith a microbenchmark, measuring the time to locate the bucket (i.e.\ntime_to_calculate_hashval + time_to_calculate_bucket_position) we have\nthe results below (time in clock cycles):\n\n\tkeylen      before   after\n\t2-10          79.0    61.9 (-21.65%)\n\t11-17         81.0    64.4 (-20.48%)\n\t18-25         90.0    73.2 (-18.69%)\n\t26-32        104.7    87.0 (-16.82%)\n\t33-40        108.4    89.6 (-17.37%)\n\t41-48        111.2    91.9 (-17.38%)\n\t49-55        120.1   102.1 (-15.04%)\n\t56-63        134.4   115.7 (-13.91%)\n\nAs expected the gain is constant, regardless of the key length.\nThe time to clculate the hashval varies with the key length, which\nexplains the bigger gains for short keys.\n"
    },
    {
      "commit": "3ba7f59e84857eb4dbe56a68fc7a3ffe8a650393",
      "tree": "14f75fb0dcf0469fdf2aaeecd658ff97fb97cac5",
      "parents": [
        "6506ddf5a37849049509324eeff72697f94584e3"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Thu Aug 22 01:10:13 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Fri Sep 20 01:08:46 2013 -0500"
      },
      "message": "util: Add ALIGN_POWER2\n\nAdd static inline function to align a value to it\u0027s next power of 2.\nThis is commonly done by a SWAR like the one in:\n\nhttp://aggregate.org/MAGIC/#Next Largest Power of 2\n\nHowever a microbench shows that the implementation herer is a faster.\nIt doesn\u0027t really impact the possible user of this function, but it\u0027s\ninteresting nonetheless.\n\nUsing a x86_64 i7 Ivy Bridge it shows a ~4% advantage by using clz\ninstead instead of the OR and SHL chain. And this is by using a BSR\nsince Ivy Bridge doesn\u0027t have LZCNT. New Haswell processors have the\nLZCNT instruction which can make this even better. ARM also has a CLZ\ninstruction so it should be better, too.\n\nCode used to test:\n\n\t...\n\tv \u003d val[i];\n\tt1 \u003d get_cycles(0);\n\ta \u003d ALIGN_POWER2(v);\n\tt1 \u003d get_cycles(t1);\n\n\tt2 \u003d get_cycles(0);\n\tv \u003d nlpo2(v);\n\tt2 \u003d get_cycles(t2);\n\n\tprintf(\"%u\\t%llu\\t%llu\\t%d\\n\", v, t1, t2, v \u003d\u003d a);\n\t...\n\nIn which val is an array of 20 random unsigned int, nlop2 is the SWAR\nimplementation and get_cycles uses RDTSC to measure the performance.\n\nAverages:\n\tALIGN_POWER2: \t30 cycles\n\tnlop2:\t\t31.4 cycles\n"
    },
    {
      "commit": "6506ddf5a37849049509324eeff72697f94584e3",
      "tree": "ba2f3373c2a22b8307296ae73ff2c20fc8b4b2cf",
      "parents": [
        "4c2dc16a2ef46cf139f505379927a68fdb798ce9"
      ],
      "author": {
        "name": "Tom Gundersen",
        "email": "teg@jklm.no",
        "time": "Mon Sep 09 20:01:01 2013 +0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Tue Sep 10 00:49:41 2013 -0300"
      },
      "message": "depmod: warn on invalid devname specification\n\nDuring the last merge window (3.12) a couple of modules gained devname\naliases, but without the necessary major and minor information. These were\nthen silently ignored when generating modules.devname.\n\nComplain loudly to avoid such errors sneaking in undetected in the future:\n\n    depmod: ERROR: Module \u0027zram\u0027 has devname (zram) but lacks major and minor information. Ignoring.\n    depmod: ERROR: Module \u0027uhid\u0027 has devname (uhid) but lacks major and minor information. Ignoring.\n\nCc: Kay Sievers \u003ckay@vrfy.org\u003e\nCc: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "4c2dc16a2ef46cf139f505379927a68fdb798ce9",
      "tree": "adadb662ce88313e6421b5cb052901c8e247cd97",
      "parents": [
        "dc8ed09f8f21d17ef9481001683d7edfdb308983"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Fri Sep 06 11:15:02 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Fri Sep 06 11:31:35 2013 -0300"
      },
      "message": "build: remove check for typeof\n\nIt\u0027s used in so many places without checking, that\u0027s really pointless to\ncheck for it in macro.h.\n\nAlso remove AC_C_TYPEOF from configure.ac since we don\u0027t use -ansi.\n"
    },
    {
      "commit": "dc8ed09f8f21d17ef9481001683d7edfdb308983",
      "tree": "1a8bf2807d8a3aea3d0a9daf39b105a1d2603cee",
      "parents": [
        "7e0385c47ae7c313a59de3ea431af7b5d18807d7"
      ],
      "author": {
        "name": "Thomas Petazzoni",
        "email": "thomas.petazzoni@free-electrons.com",
        "time": "Fri Sep 06 15:27:04 2013 +0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Fri Sep 06 11:06:19 2013 -0300"
      },
      "message": "Add configure check for _Static_assert()\n\nCommit 8efede20ef (\"Use _Static_assert\") introduced the usage of\n_Static_assert(). However, _Static_assert() is a fairly new thing,\nsince it was introduced only in gcc 4.6. In order to support older\ncompilers, this patch adds a configure.in test that checks whether\n_Static_assert() is usable or not, and adjust the behavior of the\nassert_cc() macro accordingly.\n"
    },
    {
      "commit": "7e0385c47ae7c313a59de3ea431af7b5d18807d7",
      "tree": "88653cafaf974851937d6edccc843bb4d284d177",
      "parents": [
        "bd4e7340bcd9f95e04a6309667ffe1a5427edcaa"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Tue Aug 27 23:29:47 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Thu Aug 29 01:33:51 2013 -0300"
      },
      "message": "Fix usage of readdir_r()\n\nWith readdir_r() we should be providing enough space to store the dir\nname. This could be accomplished by define an union like systemd does:\n\n\tunion dirent_storage {\n\t\tstruct dirent de;\n\t\tuint8_t storage[offsetof(struct dirent, d_name) +\n\t\t\t\t((NAME_MAX + 1 + sizeof(long)) \u0026 ~(sizeof(long) - 1))];\n\t};\n\nHowever in all places that we use readdir_r() we have no concerns about\nreentrance nor we have problems with threads. Thus use the simpler\nreaddir() instead.\n\nWe also remove the error logging here (that could be added back by\nchecking errno), but it was not adding much value so it\u0027s gone.\n"
    },
    {
      "commit": "bd4e7340bcd9f95e04a6309667ffe1a5427edcaa",
      "tree": "81c9b1401c01879174cc208cc7005970b0b31480",
      "parents": [
        "18811d22e9923893555b88a482aa967db0e7892a"
      ],
      "author": {
        "name": "John Spencer",
        "email": "maillist-kmod@barfooze.de",
        "time": "Tue Aug 27 01:38:11 2013 +0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Thu Aug 29 01:22:20 2013 -0300"
      },
      "message": "testsuite: fix usage of reserved names\n\nstdout and stderr are names reserved for the implementation\nand musl uses them rightfully as macro - and the expansion\ncauses (of course) unexpected results.\n\nrename the struct members stdout to out and stderr\nto err, to be 1) compliant 2) cause compilation to\nsucceed.\n\nfixes build with musl libc.\n"
    },
    {
      "commit": "18811d22e9923893555b88a482aa967db0e7892a",
      "tree": "008012858468f70e7ef81a271db30a4da471bc80",
      "parents": [
        "493dc650d687a5a3acec37ea11d0d1d073b83d5e"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Thu Aug 22 10:44:08 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Thu Aug 22 10:44:08 2013 -0300"
      },
      "message": "kmod 15\n"
    },
    {
      "commit": "493dc650d687a5a3acec37ea11d0d1d073b83d5e",
      "tree": "a4106f5bd97c08c1e36cf44ed04f5ae3cc41307c",
      "parents": [
        "ea225b982c2bfa5244d818586f337f0673fef75a"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Tue Aug 13 22:04:46 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Tue Aug 13 22:04:46 2013 -0300"
      },
      "message": "libkmod: Fix getting param with no value from kcmdline\n"
    },
    {
      "commit": "ea225b982c2bfa5244d818586f337f0673fef75a",
      "tree": "3d4f9d4527f70dced4e45454281419a37883230e",
      "parents": [
        "c1170883b4b42eadaddf951b3334286c6dfdf6e5"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Tue Aug 13 22:03:26 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Tue Aug 13 22:03:26 2013 -0300"
      },
      "message": "testsuite: Add test for parameter with no value in kcmdline\n\nCurrently we fail to add the module option if the parameter doesn\u0027t have\na value.\n"
    },
    {
      "commit": "c1170883b4b42eadaddf951b3334286c6dfdf6e5",
      "tree": "90669d6ff5a971dbb38ceb0a1472e300fa548da7",
      "parents": [
        "48a409644199d5efff6d966cd72ccc7f5a06c2a5"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@inai.de",
        "time": "Wed Aug 07 23:58:58 2013 +0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Fri Aug 09 12:01:10 2013 -0300"
      },
      "message": "depmod: add missing \"else\" clause\n\nIt occurred to an openSUSE user that our mkinitrd would throw a\nwarning when used with kmod:\n\nlibkmod: conf_files_list: unsupported file mode /dev/null: 0x21b6\n\nGrepping for the error message revealed that there might be a missing\n\"else\" keyword here, since it is unusual to put an \"if\" directly after\nclosing brace.\n"
    },
    {
      "commit": "48a409644199d5efff6d966cd72ccc7f5a06c2a5",
      "tree": "240d62fc1b1f6ab2b712d3655dddf31c5a0dd448",
      "parents": [
        "80cf2c8f05813b04a5479746ce3ddaef00ea240d"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Fri Aug 02 12:07:39 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Fri Aug 02 12:07:39 2013 -0300"
      },
      "message": "shell-completion: Make options accept \u0027\u003d\u0027 as last char\n"
    },
    {
      "commit": "80cf2c8f05813b04a5479746ce3ddaef00ea240d",
      "tree": "f77029e4b4cd1f3587c982f02d73a420ac3fd39f",
      "parents": [
        "ec6d026f26af3bc76365f2a40da758248d849809"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Tue Jul 30 03:47:19 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Tue Jul 30 14:45:21 2013 -0300"
      },
      "message": "build: Install bash completion data\n"
    },
    {
      "commit": "ec6d026f26af3bc76365f2a40da758248d849809",
      "tree": "c659ae778e15aaacf09be329ab683e3d7f0d1397",
      "parents": [
        "ac6573aab4815c26500240658d4a7d680d79143c"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Tue Jul 30 03:28:41 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Tue Jul 30 14:45:21 2013 -0300"
      },
      "message": "shell-completion: Add kmod static-nodes\n"
    },
    {
      "commit": "ac6573aab4815c26500240658d4a7d680d79143c",
      "tree": "85167eabf0b96a1a6524c96f9973c2e6db47ff18",
      "parents": [
        "b3e19ce92ed222b5e0787eaae194df25c07b6251"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Mon Jul 29 13:23:54 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Tue Jul 30 14:45:18 2013 -0300"
      },
      "message": "shell-completion: Add initial completion for kmod\n\nBased on journalctl and udevadm from systemd and adapted to kmod needs.\n"
    },
    {
      "commit": "b3e19ce92ed222b5e0787eaae194df25c07b6251",
      "tree": "5491182c9d557ac07d229224aff76d2fd30a3efc",
      "parents": [
        "cd923111c6c5352d7fa1b9a73fde25008b47c7f5"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Wed Jul 17 02:31:36 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Wed Jul 17 02:31:50 2013 -0300"
      },
      "message": "NEWS: Add entries\n"
    },
    {
      "commit": "cd923111c6c5352d7fa1b9a73fde25008b47c7f5",
      "tree": "bc4748256d61fddec4c4a92187e9c9b67f4248a1",
      "parents": [
        "232bf4d86303d86aff0e29c619f0543b29479c8c"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Wed Jul 17 02:26:47 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Wed Jul 17 02:31:27 2013 -0300"
      },
      "message": "README: Move items from TODO\n\nPut the differences between kmod and module-init-tools in the README\nfile so it\u0027s more visible.\n"
    },
    {
      "commit": "232bf4d86303d86aff0e29c619f0543b29479c8c",
      "tree": "65a42500f2157e7b192ac1b781248ffb5fc96fcc",
      "parents": [
        "fa6fc9f0b8a749281b14252155a326a5cb1bc41d"
      ],
      "author": {
        "name": "Tom Gundersen",
        "email": "teg@jklm.no",
        "time": "Sun Jul 14 15:13:34 2013 +0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Mon Jul 15 12:46:12 2013 -0300"
      },
      "message": "static-nodes: create parent directories of output file\n\nAllows us to drop call to \"mkdir -p\" from the systemd service file.\n"
    },
    {
      "commit": "fa6fc9f0b8a749281b14252155a326a5cb1bc41d",
      "tree": "42fc61ac7e92af7d6fda6262870199582f1d7241",
      "parents": [
        "c493b937509596eb038a00926a714c3c99615287"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Mon Jul 15 02:05:52 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Mon Jul 15 12:45:35 2013 -0300"
      },
      "message": "util: Add mkdir_parents()\n\nLike mkdir_p, but discards the leaf, creating the parent directories.\n"
    },
    {
      "commit": "c493b937509596eb038a00926a714c3c99615287",
      "tree": "be71383e3853be2c337efa3d78ee781f437f8c7b",
      "parents": [
        "ae17710117628de46d67ff28e545b52a45bd268e"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Mon Jul 15 01:58:44 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Mon Jul 15 12:44:33 2013 -0300"
      },
      "message": "util: Add len arg to mkdir_p()\n"
    },
    {
      "commit": "ae17710117628de46d67ff28e545b52a45bd268e",
      "tree": "59e9db8d906158fbebd31109826a7f5e9403069e",
      "parents": [
        "85d02ebea38a782a23c4af65619d253dc08f8a26"
      ],
      "author": {
        "name": "Tom Gundersen",
        "email": "teg@jklm.no",
        "time": "Sun Jul 14 15:13:33 2013 +0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Mon Jul 15 12:44:33 2013 -0300"
      },
      "message": "static-nodes: don\u0027t fail if modules.devname not found\n\nIn containers/VM\u0027s/initrd one might not have installed any modules and\naccompanying modules.devname Don\u0027t fail if this is the case, just warn.\n\nWhen used in systemd this means we don\u0027t get a failing unit on booting\ncontainers.\n"
    },
    {
      "commit": "85d02ebea38a782a23c4af65619d253dc08f8a26",
      "tree": "4538377dc0096d964a7119bd3d9b7bca2bef3414",
      "parents": [
        "7980eaf0ec0ffd47e2af79f647f5eed1d22f5e32"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Mon Jul 15 01:41:19 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Mon Jul 15 12:44:33 2013 -0300"
      },
      "message": "util: Add mkdir_p implementation from testsuite\n"
    },
    {
      "commit": "7980eaf0ec0ffd47e2af79f647f5eed1d22f5e32",
      "tree": "c7164a3c1078b4107e171a1c0a6b5bdbac306d79",
      "parents": [
        "83b855a6ed7028173e231eab0a39c929a962ddf5"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Mon Jul 15 01:21:27 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Mon Jul 15 12:44:26 2013 -0300"
      },
      "message": "testsuite: Fix mkdir_p corner cases\n\n - Fix infinite loop when path is relative\n - Fix not considering EEXIST as a success\n - General refactor to mkdir_p so it never calls mkdir for an existing\n   dir (given no one creates it from outside)\n"
    },
    {
      "commit": "83b855a6ed7028173e231eab0a39c929a962ddf5",
      "tree": "d2d11ed237e5e068e6a4d48ca3c3fb7da185beaa",
      "parents": [
        "b6adccd6ff819b8befc48ede41a13f2201dce443"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Thu Jul 04 16:13:11 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Thu Jul 04 16:13:11 2013 -0300"
      },
      "message": "Use \"-internal\" suffix instead of \"-private\"\n"
    },
    {
      "commit": "b6adccd6ff819b8befc48ede41a13f2201dce443",
      "tree": "6709556fe6d0e908a54873592c48dcdfd8d922f9",
      "parents": [
        "3b38c7fcb58be4ddc34f90454c5f5dc3693d2d85"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Thu Jul 04 16:01:55 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Thu Jul 04 16:08:10 2013 -0300"
      },
      "message": "tools: Do not link dynamically with libkmod\n\nInstead of linking dynamically with libkmod, use libkmod-private.la. We\ndisallow creating a static libkmod because we can\u0027t hide symbols there\nand it cause problems with external programs. However this should not\nprevent users that are only interested in the tools we provide not being\nable to ship only them keeping the library alone.\n\nOther projects also do this to allow our tools to use certain functions\nthat should not be used outside of the project.\n"
    },
    {
      "commit": "3b38c7fcb58be4ddc34f90454c5f5dc3693d2d85",
      "tree": "f6fe0a38d74c3b5305b7e3307dbab608b995c909",
      "parents": [
        "9de9e07da6ce6fc110b4359ff058b13b5e92dcf4"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Wed Jul 03 12:42:04 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Wed Jul 03 12:42:04 2013 -0300"
      },
      "message": "kmod 14\n"
    },
    {
      "commit": "9de9e07da6ce6fc110b4359ff058b13b5e92dcf4",
      "tree": "c83930685042d3b4c0ba68cd5c21d00355f2eae8",
      "parents": [
        "a5cbde4bcea66e80418bada4e0aedbc26713e5ed"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Tue Jul 02 21:03:20 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Tue Jul 02 21:15:54 2013 -0300"
      },
      "message": "tools: Use test/kmod instead of kmod-nolib\n\nThe reason to have a kmod-nolib binary is that we need to call kmod on\ntest cases (or a symlink to it) and for testing things in tree. Since\nwe are using libtool if we are dinamically linking to libkmod what we\nend up having is a shell script that (depending on the version *)\nchanges argv[0] to contain an \"lt-\" prefix. Since this screws with our\ncompat stuff, we had a kmod-nolib that links statically.\n\nThis all workaround works fine iff we are using one of the compat\ncommands, i.e. we are using the symlinks insmod, rmmod, modprobe, etc.\nHowever if we are actually trying the kmod binary, this doesn\u0027t work\nbecause we can\u0027t create a kmod symlink since there\u0027s already a kmod\nbinary.\n\nSo, completely give up on libtool fixing their mess. Now we create a\ntool/test/ directory and the symlinks and kmod is put there.\n\n* http://lists.gnu.org/archive/html/bug-libtool/2011-12/msg00023.html\n"
    },
    {
      "commit": "a5cbde4bcea66e80418bada4e0aedbc26713e5ed",
      "tree": "001cc1fa21b55795429e31466d7ae4ec3c0bb9b8",
      "parents": [
        "b7016153ec87dba2b0f0d182cc8f1e3b12f4dfaf"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Mon Jul 01 23:00:20 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Mon Jul 01 23:02:08 2013 -0300"
      },
      "message": "static-nodes: Better -f option description\n"
    },
    {
      "commit": "b7016153ec87dba2b0f0d182cc8f1e3b12f4dfaf",
      "tree": "e556f03cf649861aa13462b1b8eefd685780074d",
      "parents": [
        "4b9cab287263ec9c7558b54c5fec1feff0c82fe1"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Thu Jun 06 11:43:19 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@intel.com",
        "time": "Thu Jun 06 11:48:38 2013 -0300"
      },
      "message": "build-sys: do not allow --enable static\n\nDo the same as done in systemd by Cristian Rodríguez\n\u003ccrrodriguez@opensuse.org\u003e. We use private symbols, not namespaced. So\ndon\u0027t pretend we support static linking.\n"
    },
    {
      "commit": "4b9cab287263ec9c7558b54c5fec1feff0c82fe1",
      "tree": "7a79ea24c4d2add705b5e3026589cc170c8ce11e",
      "parents": [
        "5eac795b8b067842caec32f96d55a7554c3c67f9"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Tue Apr 30 00:21:21 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Sat May 11 01:32:31 2013 -0300"
      },
      "message": "Add travis-ci config file\n\nExperiment with a build bot.\n"
    },
    {
      "commit": "5eac795b8b067842caec32f96d55a7554c3c67f9",
      "tree": "46679ea83400120d8dae8390d5b245177b33ee75",
      "parents": [
        "03f7dfb868b33ee73f2b1e36ab4a1bfa440dcd2c"
      ],
      "author": {
        "name": "Jan Luebbe",
        "email": "jlu@pengutronix.de",
        "time": "Thu May 02 16:47:12 2013 +0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Sat May 11 00:54:15 2013 -0300"
      },
      "message": "libkmod: Avoid calling syscall() with -1\n\nAt least in qemu 1.4.1 for vexpress/arm-cortexa9, this resulted in an\nillegal instruction error. Solve that by returning an error when\n__NR_finit_module is -1.\n"
    },
    {
      "commit": "03f7dfb868b33ee73f2b1e36ab4a1bfa440dcd2c",
      "tree": "e1e420aedfdaedcebf79f743a88456b3ae623950",
      "parents": [
        "d7152f6282fe10486d41f7917393e3b86c0e5766"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Sat May 11 00:50:32 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Sat May 11 00:50:32 2013 -0300"
      },
      "message": "Revert \"missing: Don\u0027t call syscall() with syscallno \u003d\u003d -1\"\n\nThis reverts commit 38829712e5c411bc250aeae142fc6bf06e794d58.  It fixes\nthe problem, but it breaks the testsuite for those who don\u0027t have\n__NR_finit_module. The testsuite would have to make the same check.\n\nInstead, I\u0027m reverting this change and I\u0027m going to apply another patch\nfrom Jan Luebbe who got this right from the beginning.\n"
    },
    {
      "commit": "d7152f6282fe10486d41f7917393e3b86c0e5766",
      "tree": "98cf8f19ecb23d723e30a3d575d541059e23fb16",
      "parents": [
        "491c490204f72a8eea627bebe25f6d242e4fecb7"
      ],
      "author": {
        "name": "Chengwei Yang",
        "email": "chengwei.yang@intel.com",
        "time": "Sat May 04 17:07:03 2013 +0800"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Sat May 04 18:57:43 2013 -0300"
      },
      "message": "Add document for exported enums\n\nThere are several exported enums by libkmod without document, this patch\nmainly added documentation for below enums like the way kmod_resources\nbe documented in.\n* kmod_index\n* kmod_remove\n* kmod_insert\n* kmod_probe\n* kmod_filter\n* kmod_module_initstate\n\nThis is not the best way to document these exported enums, however, it\u0027s\nthe simple way due to gtkdoc limits. It doesn\u0027t support export plain\nenum like below: see https://bugzilla.gnome.org/show_bug.cgi?id\u003d657444\n---------8\u003c-------head.h--------------8\u003c-----------\n...\nenum foo {\n    ...\n};\n...\n---------8\u003c-------end of head.h-------8\u003c-----------\n---------8\u003c-------source.c------------8\u003c-----------\n...\n/**\n * document for foo here\n */\n...\ntypedef enum foo foo;\n...\n---------8\u003c-------end of source.c-----8\u003c----------\n"
    },
    {
      "commit": "491c490204f72a8eea627bebe25f6d242e4fecb7",
      "tree": "1baf777dc413cf3dd58313f7d9f88ed7c2d19242",
      "parents": [
        "c010f02030003c64faded49ee277b8903b8feb9f"
      ],
      "author": {
        "name": "Chengwei Yang",
        "email": "chengwei.yang@intel.com",
        "time": "Sat May 04 17:07:02 2013 +0800"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Sat May 04 10:42:56 2013 -0300"
      },
      "message": "Several minor fixes for documentation\n"
    },
    {
      "commit": "c010f02030003c64faded49ee277b8903b8feb9f",
      "tree": "8f87134bc709ed11f6df11701b5423ef5106a132",
      "parents": [
        "38829712e5c411bc250aeae142fc6bf06e794d58"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Thu May 02 15:23:28 2013 +0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Thu May 02 23:30:44 2013 -0300"
      },
      "message": "modprobe: don\u0027t check refcount with remove command\n\nThe modprobe.d (5) documentation for the \"install\" command\nstates that you could specify\n\ninstall fred /sbin/modprobe barney; /sbin/modprobe --ignore-install fred\n\nThis makes some sense, but then the loading of \"barney\" is\nhidden from the user who did only \"modprobe fred\". Thus,\nit seems it should be possible to be able to unload the\n\"fred\" module with \"modprobe -r fred\" by configuring the\n\"barney\" module to also be removed:\n\nremove fred /sbin/rmmod barney fred\n\n(or similar.)\n\nMake this possible by not checking the refcount when an\nunload command was configured.\n\nReported-by: David Spinadel \u003cdavid.spinadel@intel.com\u003e\n"
    },
    {
      "commit": "38829712e5c411bc250aeae142fc6bf06e794d58",
      "tree": "cf3f234bd4b6a780ca119270847ebac1c7a930a6",
      "parents": [
        "1114e781ad9df2972efd5e8f49f525214f119e7b"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Thu May 02 13:22:57 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Thu May 02 17:02:52 2013 -0300"
      },
      "message": "missing: Don\u0027t call syscall() with syscallno \u003d\u003d -1\n\nReported-by: Jean-Francis Roy \u003cjeanfrancis@funtoo.org\u003e\nReported-by: Jan Luebbe \u003cjlu@pengutronix.de\u003e\n"
    },
    {
      "commit": "1114e781ad9df2972efd5e8f49f525214f119e7b",
      "tree": "5883998379ed6ed2ac0e2a9f8214610882088df4",
      "parents": [
        "e975fd3115e85ed24ae4c6fb5b96fa21641ddcee"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Tue Apr 30 12:34:55 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Tue Apr 30 12:37:43 2013 -0300"
      },
      "message": "Fix coding style\n\nEither with space or without, not a mix of both.\n"
    },
    {
      "commit": "e975fd3115e85ed24ae4c6fb5b96fa21641ddcee",
      "tree": "ba720e5053a7e5dff28ef00350b34ad81ecd37c2",
      "parents": [
        "681bf89afd5ebe34de7651dccd6b2522d821d60e"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Tue Apr 30 12:34:23 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Tue Apr 30 12:37:43 2013 -0300"
      },
      "message": "TODO: Add some entries\n"
    },
    {
      "commit": "681bf89afd5ebe34de7651dccd6b2522d821d60e",
      "tree": "b43bffa77b3a03c1cd2c928e8c3cbcdb656f389e",
      "parents": [
        "b9a7da391066768736a2f23a360a3995df4bc097"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Tue Apr 23 21:21:00 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Tue Apr 23 21:26:09 2013 -0300"
      },
      "message": "libkmod-index: Return early if readroot failed\n"
    },
    {
      "commit": "b9a7da391066768736a2f23a360a3995df4bc097",
      "tree": "e2ad6951af6f726bf15e403879da7bf939d1e3b9",
      "parents": [
        "818af4f6fa925a2affdc6d65e9d18d6922b11baf"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Tue Apr 23 20:47:28 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Tue Apr 23 21:26:08 2013 -0300"
      },
      "message": "libkmod-module: Don\u0027t pass NULL ctx to kmod_log\n"
    },
    {
      "commit": "818af4f6fa925a2affdc6d65e9d18d6922b11baf",
      "tree": "0521cefc163c1bac1c1ba305da15578b23517eae",
      "parents": [
        "eb978f10bd3ba10fb8e14026209ba4a0cb947ff8"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Tue Apr 23 20:33:13 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Tue Apr 23 21:26:08 2013 -0300"
      },
      "message": "libkmod-module: Don\u0027t pass NULL pointer to memcpy\n\nWhen passing n\u003d0, don\u0027t pass a NULL pointer, but instead pass anything\nelse (like the pointer to the start of the string).\n"
    },
    {
      "commit": "eb978f10bd3ba10fb8e14026209ba4a0cb947ff8",
      "tree": "c092e832005b57df4a16606dd3e9c786645855da",
      "parents": [
        "1958af88a2078970cc0b4281cdfef16fe54071b6"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Sun Apr 21 16:33:54 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Sun Apr 21 16:33:54 2013 -0300"
      },
      "message": "build-sys: Add AM_V_XSLT to rule creating man pages\n"
    },
    {
      "commit": "1958af88a2078970cc0b4281cdfef16fe54071b6",
      "tree": "28ed9b758760991606655ed0e1f52ae392afc6bd",
      "parents": [
        "19ac5bd8a00395945a4e34d12ea756d744cce909"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Sun Apr 21 16:16:18 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Sun Apr 21 16:17:12 2013 -0300"
      },
      "message": "Add format attribute and fix issues\n\nAdd __attribute__((format)) to log_filep() and _show() functions, fixing\nthe bugs they found in the source code.\n\nFor functions that receive va_list instead of being variadic functions\nwe put 0 in the last argument, so at least the string is checked and we\nget warnings of -Wformat-nonliteral type. So, it\u0027s better than adding a\npragma here to shut up the warning.\n"
    },
    {
      "commit": "19ac5bd8a00395945a4e34d12ea756d744cce909",
      "tree": "fba965b7f9b244cb89944fa6c797ffc158e8b493",
      "parents": [
        "4905769de7cb35990c86279d9e079ff39ffdd72a"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Fri Apr 19 19:08:43 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Fri Apr 19 19:28:46 2013 -0300"
      },
      "message": "static-nodes: Fix indentation\n\nkmod uses tab instead of spaces and tries to honour 80chr limit, when\nthat doesn\u0027t worsen the readability.\n"
    },
    {
      "commit": "4905769de7cb35990c86279d9e079ff39ffdd72a",
      "tree": "f8544a83e83c8acf5af0f2bf165d8a28ed4b9afc",
      "parents": [
        "279b177de62cd9778ed6b111a11d93d8e18fa169"
      ],
      "author": {
        "name": "Tom Gundersen",
        "email": "teg@jklm.no",
        "time": "Fri Apr 19 23:53:35 2013 +0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Fri Apr 19 19:03:03 2013 -0300"
      },
      "message": "static-nodes: tmpfiles - also create parents directories of device nodes\n\nBefore:\n\nc /dev/cpu/microcode 0600 - - - 10:184\nc /dev/fuse 0600 - - - 10:229\nc /dev/btrfs-control 0600 - - - 10:234\nc /dev/loop-control 0600 - - - 10:237\nc /dev/snd/timer 0600 - - - 116:33\n\nAfter:\n\nd /dev/cpu 0755 - - -\nc /dev/cpu/microcode 0600 - - - 10:184\nc /dev/fuse 0600 - - - 10:229\nc /dev/btrfs-control 0600 - - - 10:234\nc /dev/loop-control 0600 - - - 10:237\nd /dev/snd 0755 - - -\nc /dev/snd/timer 0600 - - - 116:33\n"
    },
    {
      "commit": "279b177de62cd9778ed6b111a11d93d8e18fa169",
      "tree": "c0635f1a939ebf54f33c54b4bf684736fb92addb",
      "parents": [
        "db6f2fc7e1152fb9aee8530e85c40bf514457aa4"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Wed Apr 17 00:54:17 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Wed Apr 17 00:57:11 2013 -0300"
      },
      "message": "kmod: It\u0027s an error not to have modules.devname\n\nThis file is created by depmod even if there\u0027s no node. In this case it\nwill be empty.\n\nPreviously \u0027kmod static-nodes\u0027 was segfaulting due to passing in\u003d\u003dNULL\nto fgets.\n\nAlso show the error message with %m.\n"
    },
    {
      "commit": "db6f2fc7e1152fb9aee8530e85c40bf514457aa4",
      "tree": "15c726b600d2e4b20b49e4590723d86bbb7c9266",
      "parents": [
        "a20a37c351a2197992b277cee4c3209d45cbe065"
      ],
      "author": {
        "name": "Tom Gundersen",
        "email": "teg@jklm.no",
        "time": "Tue Apr 16 22:39:55 2013 +0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Tue Apr 16 23:10:36 2013 -0300"
      },
      "message": "tools: add static-nodes tool\n\nThis tool reads modules.devname from the current kernel directory and outputs\nthe information. By default in a human-readable format, and optionally in\nmachine-readable formats.\n\nFor now only the tmpfiles.d(5) format is supported, but more could easily be\nadded in the future if there is a need.\n\nThis means nothing but kmod needs to reads the private files under\n/lib/modules/. In particular systemd-udevd can stop reading modules.devname.\n\nTools that used to read /lib/modules/`uname -r`/modules.devname directly, can\nnow move to reading \u0027kmod static-nodes devname\u0027.\n"
    },
    {
      "commit": "a20a37c351a2197992b277cee4c3209d45cbe065",
      "tree": "94359fcf0cf77fb3e2009cb586ef06d482aa0f79",
      "parents": [
        "8efede20efbaaeef8dc9d2289d6cc0add48b56e0"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Mon Apr 15 14:14:07 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Mon Apr 15 14:14:07 2013 -0300"
      },
      "message": "Use static assertions for sizeof checks\n"
    },
    {
      "commit": "8efede20efbaaeef8dc9d2289d6cc0add48b56e0",
      "tree": "f1c2374ba0692ba806c1ecedcd79f707e5dc5f1b",
      "parents": [
        "2ad09ccf0fc5232d9d45eb5b5b94193e64ed7ed2"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Mon Apr 15 14:09:05 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Mon Apr 15 14:09:05 2013 -0300"
      },
      "message": "Use _Static_assert\n\nBoth GCC and clang already supports C11\u0027s _Static_assert, so use it\ninstead of defining our own macro.\n"
    },
    {
      "commit": "2ad09ccf0fc5232d9d45eb5b5b94193e64ed7ed2",
      "tree": "f61d4d3f110ada803d2a926fa98cae0e289f67b1",
      "parents": [
        "46939ec7beea451756e0d31163c25ff65cbd98e0"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Fri Apr 12 01:24:30 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Fri Apr 12 01:24:30 2013 -0300"
      },
      "message": "testsuite: errno is a positive number\n"
    },
    {
      "commit": "46939ec7beea451756e0d31163c25ff65cbd98e0",
      "tree": "6689dd2ea92fb2f6420873d654bb7155d9fcf5fc",
      "parents": [
        "abb910eb9db6b40900a64651a4d63a37edbcc739"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Tue Apr 09 20:20:38 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Tue Apr 09 20:20:38 2013 -0300"
      },
      "message": "TODO: update and reorder\n"
    },
    {
      "commit": "abb910eb9db6b40900a64651a4d63a37edbcc739",
      "tree": "90ec03292a36c0f96c76f56bd95a6f9f86da2f7a",
      "parents": [
        "8edd5bb292fb128148191648a3f266027d3b56d8"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Tue Apr 09 19:35:32 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Tue Apr 09 19:35:32 2013 -0300"
      },
      "message": "kmod 13\n"
    },
    {
      "commit": "8edd5bb292fb128148191648a3f266027d3b56d8",
      "tree": "945a740c37355e759f008855c3581f8b0b1abd3f",
      "parents": [
        "8e00db9537fee379d900b352b4f6750c52d17726"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Tue Apr 09 11:59:33 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Tue Apr 09 12:02:37 2013 -0300"
      },
      "message": "build-sys: Always enable parallel tests\n\nAutomake \u003c 1.13 doesn\u0027t enable parallel tests by default, so add it to our\nautomake options.\n"
    },
    {
      "commit": "8e00db9537fee379d900b352b4f6750c52d17726",
      "tree": "f07773fcc330e3ff3d0110788be01c62ad18a5c3",
      "parents": [
        "0ae58609dc0b983aa17ea7aa38c071cf1830819a"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Tue Apr 09 11:54:05 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Tue Apr 09 11:54:05 2013 -0300"
      },
      "message": "testsuite: Fix checking __sysno\n\nUse an if instead of a case statemente. If __NR_finit_module is not\ndefined in system headers we define it to -1, causing a \"duplicate case\nvalue\" error. Yet, we don\u0027t want to actually call our finit_module()\nfunction if -1 is passed.\n\nThis also fix errno being set with negative value.\n"
    },
    {
      "commit": "0ae58609dc0b983aa17ea7aa38c071cf1830819a",
      "tree": "fda6077a3c5abbecede073477ceb79722e1cccbe",
      "parents": [
        "55112d19f7067dff89b1481d5bd8cc49139c4ecb"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Tue Apr 09 05:21:42 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Tue Apr 09 05:45:44 2013 -0300"
      },
      "message": "testsuite: Wrap syscall() to get calls to finit_module()\n\nWhen we don\u0027t have finit_module() in libc (most likely because as of\ntoday glibc didn\u0027t add it yet), we end up using\nsyscall(__NR_finit_module, ...). In this case we would not wrap the\nfunction in the testsuite and thus having some tests failing:\n\nTESTSUITE: ERR: could not insert module: Operation not permitted\n\nThis implementation relies on the fact that this is the only caller of\nsyscall(2), because we can\u0027t call libc\u0027s syscall(). There\u0027s an abort()\nin place to be future safe: as soon as we need more calls to syscall(),\nwe can detect (and decide what to do).\n\nNow we have all tests passing in the testsuite again.\n"
    },
    {
      "commit": "55112d19f7067dff89b1481d5bd8cc49139c4ecb",
      "tree": "3e9ba480cbc0c22d4773d9e71a365ac403b1180d",
      "parents": [
        "1407064e730732dd20952671077007dd4133f7db"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Tue Apr 09 04:16:57 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Tue Apr 09 04:38:27 2013 -0300"
      },
      "message": "libkmod: Move finit_module() definition to missing.h\n\nCheck for finit_module() and don\u0027t use our own static inline function if\nthere\u0027s such function in libc (or another lib).\n\nIn testsuite we need to unconditionally define HAVE_FINIT_MODULE because\nwe want to override this function, and never use the static inline one\nin missing.h\n"
    },
    {
      "commit": "1407064e730732dd20952671077007dd4133f7db",
      "tree": "381d5ca0aa992cd4c60973f0a2ea8bc16de8b2eb",
      "parents": [
        "41a51c2af915bc99851446cf604fac99eca1848f"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Tue Apr 09 04:00:20 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Tue Apr 09 04:05:09 2013 -0300"
      },
      "message": "libkmod: Add missing definitions\n\nDepending on kernel header and simply not passing the flags in\nfinit_module() if this header is not found is not good.\n\nAdd a missing.h header in which stuff like this should be added.\n"
    },
    {
      "commit": "41a51c2af915bc99851446cf604fac99eca1848f",
      "tree": "7a07665851f63a0011cc7a2ccaa584ca95dff346",
      "parents": [
        "ace742fa9aee1aec5931d5ee8a51fa9b8f0d94e0"
      ],
      "author": {
        "name": "Cristian Rodríguez",
        "email": "crrodriguez@opensuse.org",
        "time": "Mon Feb 11 15:07:52 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Thu Apr 04 15:58:29 2013 -0300"
      },
      "message": "libkmod: Use secure_getenv if available\n\n\"The secure_getenv() function is intended for use in general-purpose\nlibraries to avoid vulnerabilities that could occur if set-user-ID or\nset-group-ID programs accidentally trusted the environment.\"\n"
    },
    {
      "commit": "ace742fa9aee1aec5931d5ee8a51fa9b8f0d94e0",
      "tree": "fd71e3cd18ef6b16f29289c101015afb2a6efda1",
      "parents": [
        "5278396d987f5da11ecc3d3e5750083ff1df4f89"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Thu Mar 21 02:33:25 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Thu Mar 21 02:33:25 2013 -0300"
      },
      "message": "modprobe: Fix assertion on --show-depends with bogus config file\n\nPutting something like \"alias psmouse deadbeef\" is a hackish way to\nblacklist a module. While I don\u0027t encourage doing so, let\u0027s not explode\nif we fiund such config files.\n\nA small difference from the behavior of module-init-tools: we exit with\n0 instead of 1.\n"
    },
    {
      "commit": "5278396d987f5da11ecc3d3e5750083ff1df4f89",
      "tree": "38f8d5672001974d785d6bd733cba7cb77bdc90f",
      "parents": [
        "489c04ddecb63e12b0fe6d45efd7376762e106f1"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Thu Mar 21 02:24:07 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Thu Mar 21 02:31:16 2013 -0300"
      },
      "message": "testsuite: Add test to check if modprobe explodes on bogus config\n\nPut this one /etc/modprobe.d/bougs.conf:\n\nalias psmouse deaddood\n\n`modprobe --show-depends --quiet psmouse` explodes in an assertion\n(unless you have a module named deaddood). Some people and initrd\u0027s use\n\"alias psmouse off\" to disable a module instead of blacklisting it or\nadding a install rule.\n\nAdd a test with expected_fail \u003d\u003d true before fixing this.\n"
    },
    {
      "commit": "489c04ddecb63e12b0fe6d45efd7376762e106f1",
      "tree": "5ffc5cf1d030e51c6cbf5847131bc1c06140e176",
      "parents": [
        "b66381385a950e9699ce27dd6f473bc6b37e1a6e"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Thu Mar 21 02:22:15 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Thu Mar 21 02:22:15 2013 -0300"
      },
      "message": "testsuite: Exit with success on signal if test has expected_fail\u003dtrue\n"
    },
    {
      "commit": "b66381385a950e9699ce27dd6f473bc6b37e1a6e",
      "tree": "178d2226586f1ffc70a02bd46361bfe94dd7e255",
      "parents": [
        "d53abca3bef50c2e0983821347d5da37e0ec3478"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Tue Mar 19 17:44:59 2013 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Tue Mar 19 17:52:30 2013 -0300"
      },
      "message": "libkmod-util: Add missing include file\n\nFix compilation issue with musl-libc:\n\n  CC       libkmod/libkmod-list.lo\nIn file included from libkmod/libkmod-private.h:183:0,\n                 from libkmod/libkmod-list.c:24:\nlibkmod/libkmod-util.h:33:45: warning: \u0027struct stat\u0027 declared inside parameter list [enabled by default]\nlibkmod/libkmod-util.h:33:45: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]\n"
    },
    {
      "commit": "d53abca3bef50c2e0983821347d5da37e0ec3478",
      "tree": "8f62bb47f245c9e7990d36990deb6363ae741ecc",
      "parents": [
        "c3e8d269466ab02e4c4a928f9f5af222f1138725"
      ],
      "author": {
        "name": "Josh Boyer",
        "email": "jwboyer@redhat.com",
        "time": "Fri Mar 15 13:43:40 2013 -0400"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Mon Mar 18 11:16:50 2013 -0300"
      },
      "message": "rmmod: Teach rmmod about builtin modules\n\nCurrently modprobe -r will fail if a module is built in and report that it\nis built in.  rmmod calls the same function to determine state but doesn\u0027t\nhandle the KMOD_MODULE_BUILTIN return code.  This leads to confusing errors\nlike this:\n\n\tlibkmod: kmod_module_get_holders: could not open \u0027/sys/module/loop/holders\u0027: No such file or directory\n\tError: Module loop is in use\n\nFix this so that it actually reports the correct problem to the user.\n"
    },
    {
      "commit": "c3e8d269466ab02e4c4a928f9f5af222f1138725",
      "tree": "31706870d67e976313fe7171b159da649a7d27d9",
      "parents": [
        "e87352d289aa19ed388e9e19507d86a39936f3b4"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Mon Feb 18 12:02:34 2013 -0800"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Tue Feb 19 19:19:51 2013 -0300"
      },
      "message": "libkmod: fix address argument to mmap calls\n\nThe first argument to mmap should be \"NULL\" instead of \"0\".\n"
    },
    {
      "commit": "e87352d289aa19ed388e9e19507d86a39936f3b4",
      "tree": "8d6fd59dc0fd13a35e8c86ba6229e19ff8bda3b0",
      "parents": [
        "144d1826f1a0fcd6cc59c4535f0a8145163c640c"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Mon Feb 18 12:02:33 2013 -0800"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Tue Feb 19 19:19:51 2013 -0300"
      },
      "message": "testsuite: handle finit_module\n\nThis adds the finit_module logic to the testsuite.\n"
    },
    {
      "commit": "144d1826f1a0fcd6cc59c4535f0a8145163c640c",
      "tree": "18c289b56d5a557a67d107b233071b117445901d",
      "parents": [
        "709b86346e78f18badacd269b48868f153b87383"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Mon Feb 18 12:02:32 2013 -0800"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Tue Feb 19 19:19:51 2013 -0300"
      },
      "message": "libkmod: add finit_module logic\n\nWhen a module is being loaded directly from disk (no compression, etc),\npass the file descriptor to the new finit_module() syscall. If the\nfinit_module syscall is exported by the kernel syscall headers, use it.\nAdditionally, if the kernel\u0027s module.h file is available, map kmod flags\nto finit_module flags.\n"
    },
    {
      "commit": "709b86346e78f18badacd269b48868f153b87383",
      "tree": "69551b2ea018567c5fc4f5f49384d5645a325b43",
      "parents": [
        "8fe1681c52ceec35c77e37ca03837c0948e41b49"
      ],
      "author": {
        "name": "Michal Marek",
        "email": "mmarek@suse.cz",
        "time": "Wed Jan 16 21:04:00 2013 +0100"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Jan 17 23:48:43 2013 -0200"
      },
      "message": "testsuite: Add modinfo test for module signatures\n"
    },
    {
      "commit": "8fe1681c52ceec35c77e37ca03837c0948e41b49",
      "tree": "30a1741dcd175e36cc465e9ab3a1620d076e34fb",
      "parents": [
        "6333934e27934a4d8d7dde729e965fab7f2c416b"
      ],
      "author": {
        "name": "Michal Marek",
        "email": "mmarek@suse.cz",
        "time": "Wed Jan 16 09:52:01 2013 +0100"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Jan 17 23:48:43 2013 -0200"
      },
      "message": "libkmod: Return module signature information in kmod_module_get_info()\n\nIf the module is built with CONFIG_MODULE_SIG, add the the signer\u0027s\nname, hexadecimal key id and hash algorithm to the list returned in\nkmod_module_get_info(). The modinfo output then looks like this:\n\nfilename:       /home/mmarek/kmod/testsuite/rootfs-pristine/test-modinfo/ext4-x86_64-sha256.ko\nlicense:        GPL\ndescription:    Fourth Extended Filesystem\nauthor:         Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger, Theodore Ts\u0027o and others\nalias:          ext3\nalias:          ext2\ndepends:        mbcache,jbd2\nintree:         Y\nvermagic:       3.7.0 SMP mod_unload\nsigner:         Magrathea: Glacier signing key\nsig_key:        E3:C8:FC:A7:3F:B3:1D:DE:84:81:EF:38:E3:4C:DE:4B:0C:FD:1B:F9\nsig_hashalgo:   sha256\n\nThe signature algorithm (RSA) and key identifier type (X509) are not\ndisplayed, because they are constant information for every signed\nmodule. But it would be trivial to add this. Note: No attempt is made at\nverifying the signature, I don\u0027t think that modinfo is the right tool\nfor this.\n"
    },
    {
      "commit": "6333934e27934a4d8d7dde729e965fab7f2c416b",
      "tree": "025a9680c63027c68928bd8909bd7e59f65cff00",
      "parents": [
        "e6b0e49b4ea7937a98b16f23d621244ee1a3e588"
      ],
      "author": {
        "name": "Michal Marek",
        "email": "mmarek@suse.cz",
        "time": "Wed Jan 16 17:51:57 2013 +0100"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Jan 17 23:48:43 2013 -0200"
      },
      "message": "libkmod-module: Do not free the list in kmod_module_info_append\n\nIn error case, just return NULL and let the caller free the list.\n"
    },
    {
      "commit": "e6b0e49b4ea7937a98b16f23d621244ee1a3e588",
      "tree": "15757786abd74e366f035c351cd0d10a47e83639",
      "parents": [
        "f64458cab522670135950adc4b04f18df20ae947"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Jan 16 11:27:21 2013 -0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Jan 16 11:27:45 2013 -0200"
      },
      "message": "Update copyright notices\n"
    },
    {
      "commit": "f64458cab522670135950adc4b04f18df20ae947",
      "tree": "57f8cd6d270a22ff7df14bac1bec10f917377bb5",
      "parents": [
        "4111bc0fc7fa00b40f401445bc84da1e39afeeb5"
      ],
      "author": {
        "name": "Michal Marek",
        "email": "mmarek@suse.cz",
        "time": "Wed Jan 16 10:18:17 2013 +0100"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Jan 16 09:53:46 2013 -0200"
      },
      "message": "libkmod-module: Add helper for building the module info list\n"
    },
    {
      "commit": "4111bc0fc7fa00b40f401445bc84da1e39afeeb5",
      "tree": "953cbda56380efd9bbbf98da5def99e5eef9afa2",
      "parents": [
        "eecdcf2e42aa9dafe1c88fed07a88bcfee02319a"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Tue Jan 15 18:03:55 2013 -0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Tue Jan 15 18:03:55 2013 -0200"
      },
      "message": "gitignore: ignore files generated by Automake\u0027s testsuite\n\nThese files are generated by Automake 1.13 when running the testsuite.\n"
    },
    {
      "commit": "eecdcf2e42aa9dafe1c88fed07a88bcfee02319a",
      "tree": "4e2934c8387d7f3fe65b9f4338fe34839aa89276",
      "parents": [
        "572a2711e711edb1810c88b124b709fa58f80880"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Mon Jan 07 23:08:46 2013 -0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Mon Jan 07 23:14:00 2013 -0200"
      },
      "message": "man: fix lib dir in which we look for config\n\nThanks to William Hubbs \u003cw.d.hubbs@gmail.com\u003e for spotting the bug.\n"
    },
    {
      "commit": "572a2711e711edb1810c88b124b709fa58f80880",
      "tree": "a5c71925e26c18a054fa31ff83fa6380a4f76bb7",
      "parents": [
        "c02a8e6f9b6c600514a6d9d2564eca3e45c4fe35"
      ],
      "author": {
        "name": "Andrey Mazo",
        "email": "mazo@telum.ru",
        "time": "Wed Dec 12 16:39:18 2012 +0400"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Mon Dec 31 18:23:30 2012 -0200"
      },
      "message": "depmod: fix builtin symbols resolution when the prefix symbol is set\n\nWhen the prefix symbol is set, take it into account while adding symbols\nfrom System.map file by skipping it before \"__ksymtab_\" comparison.\n\nAlso, prevent inserted fake symbols (like \"__this_module\") from being\nwrongly truncated from beginning.\n"
    },
    {
      "commit": "c02a8e6f9b6c600514a6d9d2564eca3e45c4fe35",
      "tree": "166afb681bc66a12941a0e3effc6f8d66b5dbc20",
      "parents": [
        "6feba028783faac89bbebd3861dfb07897210cb3"
      ],
      "author": {
        "name": "Andrey Mazo",
        "email": "mazo@telum.ru",
        "time": "Wed Dec 12 16:36:58 2012 +0400"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Dec 13 15:52:42 2012 -0200"
      },
      "message": "depmod: --symbol-prefix actually requires an argument\n\n-P requires and uses an argument but its long counterpart --symbol-prefix does not:\ndepmod: option \u0027--symbol-prefix\u0027 doesn\u0027t allow an argument\n"
    },
    {
      "commit": "6feba028783faac89bbebd3861dfb07897210cb3",
      "tree": "ef28c082b0f905db786baaa487d49e3a6d813e2c",
      "parents": [
        "650f89cd2510820a71dfc1b004634a309f12ecf1"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Dec 05 01:39:17 2012 -0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Dec 05 01:39:17 2012 -0200"
      },
      "message": "kmod 12\n"
    },
    {
      "commit": "650f89cd2510820a71dfc1b004634a309f12ecf1",
      "tree": "70560a3b4ed8ad02947a61dfd8ae32686afc7d22",
      "parents": [
        "5d352563bd3a8d1c6bc07969a5fefe7ddf6bf1c6"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Wed Nov 28 14:26:23 2012 -0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Wed Nov 28 14:26:23 2012 -0200"
      },
      "message": "depmod: fix checking file extension\n\nIn depfile_up_to_date_dir() we need to check if name has a kmod\nextension. \"path\" variable there will be the directory name, which\ndoesn\u0027t contain an extension.\n\nWithout this, \"depmod -A\" returns that the modules.dep is up to date,\neven if it isn\u0027t.\n\nIn depmod_modules_search_file() it\u0027s pointless to compare the basename,\nso pass only the name to be checked.\n"
    },
    {
      "commit": "5d352563bd3a8d1c6bc07969a5fefe7ddf6bf1c6",
      "tree": "858f4869bb5ce9890596198799393b40381a90f4",
      "parents": [
        "6f02b6fa7ac435017b8f63dc9a1c8ce62bba008b"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Wed Nov 28 14:25:50 2012 -0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.de.marchi@gmail.com",
        "time": "Wed Nov 28 14:25:50 2012 -0200"
      },
      "message": "Use bool instead of int\n\nAlso change the last field initializer in array to be empty.\n"
    },
    {
      "commit": "6f02b6fa7ac435017b8f63dc9a1c8ce62bba008b",
      "tree": "80fdc1500dea5b7be6907d3a39015ffd978175a2",
      "parents": [
        "a4578669ca25ef6ede96bf4262821bcb07c8065c"
      ],
      "author": {
        "name": "Aleksey Makarov",
        "email": "amakarov@dev.rtsoft.ru",
        "time": "Wed Nov 28 10:44:00 2012 +0700"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Nov 28 11:22:00 2012 -0200"
      },
      "message": "fix is_module_filename()\n\nmodinfo fails if there is a \".ko\" substring in the path to the module\n"
    },
    {
      "commit": "a4578669ca25ef6ede96bf4262821bcb07c8065c",
      "tree": "69ff61c73217065f81dcf31d81d6c4cbcd25464b",
      "parents": [
        "d196b8d99f0a46d5e96678daabe74fda94875886"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Nov 21 20:17:25 2012 -0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Nov 21 20:23:02 2012 -0200"
      },
      "message": "libkmod-module: mangle the section header, not the section\n\nWhen we are told to remove the \"__versions\" section we were mangling\nthat section instead of tweaking the SHF_ALLOC flag in its header.\n"
    },
    {
      "commit": "d196b8d99f0a46d5e96678daabe74fda94875886",
      "tree": "b2f66ca1ed3d558188a85d2a227f3c987cce2d10",
      "parents": [
        "02c64df3c2b33880b18d3f4aba9fa8e48e5ca904"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Nov 21 18:34:50 2012 -0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Nov 21 20:22:56 2012 -0200"
      },
      "message": "libkmod-module: Remove key+value vermagic from .modinfo section\n\nWhen told to force load a module, we were removing only the value of\nvermagic instead of the complete entry.\n\nPhilippe De Swert (philippe.deswert@jollamobile.com) sent a patch that\nwas additionally mangling also the last two chars of the key\n(\"vermagic\u003d\"). Instead of creating an invalid entry in .modinfo section\nlike this, this patch removes the complete entry, key + value, by\nzeroing the entire string.\n\nMuch thanks to Philippe who found the issue and pointed to the fix.\n"
    },
    {
      "commit": "02c64df3c2b33880b18d3f4aba9fa8e48e5ca904",
      "tree": "7acf1e04731eeaed6e6b5bea7290de1bb2c9960e",
      "parents": [
        "06294621a944e4611e15ce8201df80870e052e7d"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Fri Nov 16 12:05:42 2012 -0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Fri Nov 16 12:05:42 2012 -0200"
      },
      "message": "depmod: fix asserting mod-\u003ekmod \u003d\u003d NULL\n\nIf we are replacing a lower priority module (due to its location), we\nalready created a kmod_module, but didn\u0027t open the file for reading its\nsymbols. This means mod-\u003ekmod won\u0027t be NULL, and this is just ok. Since\nall the functions freeing stuff below the previous assert already takes\nNULL into consideration, it\u0027s safe to just unref mod-\u003ekmod and let the\nright thing happens.\n"
    },
    {
      "commit": "06294621a944e4611e15ce8201df80870e052e7d",
      "tree": "b6389a7c55d2eb14fca39ecb031bc86cbce3e7a8",
      "parents": [
        "c599606f7525580b0b418a361d1c7798ea6f19f3"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Fri Nov 16 11:35:30 2012 -0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Fri Nov 16 11:39:41 2012 -0200"
      },
      "message": "depmod: fix hash lookup by relpath instead of uncrelpath\n\nWe index modules in depmod by it\u0027s uncompressed relative path, not\nrelative path. We didn\u0027t notice this bug before since this function is\nonly triggered if we release a module to be replaced by one of higher\npriority.\n\nAlso fix a leftover log message referring to relpath instead of\nuncrelpath.\n"
    },
    {
      "commit": "c599606f7525580b0b418a361d1c7798ea6f19f3",
      "tree": "d9ce502eda6f7c39e2b34c450d45a8c562904572",
      "parents": [
        "6c29e5c6705781073d8b6ec6bb23c964578cab84"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Nov 08 02:30:21 2012 -0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Nov 08 02:30:21 2012 -0200"
      },
      "message": "kmod 11\n"
    },
    {
      "commit": "6c29e5c6705781073d8b6ec6bb23c964578cab84",
      "tree": "904be254b276dea1d7ff596cbe229ece87a9cc6a",
      "parents": [
        "7c04aeee40e9cced2656e286b2dc4bfbe8008a9f"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Nov 08 02:01:59 2012 -0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Nov 08 02:01:59 2012 -0200"
      },
      "message": "TODO: remove completed action\n"
    },
    {
      "commit": "7c04aeee40e9cced2656e286b2dc4bfbe8008a9f",
      "tree": "a5893622844427f2f393286fee4643d9b3634e84",
      "parents": [
        "c84127372112642464fe3d266ffe58bbc1bc37f3"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Tue Nov 06 19:20:09 2012 -0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Tue Nov 06 19:30:16 2012 -0200"
      },
      "message": "tools: use program_invocation_short_name provided by libc\n\nThanks to Dave Reisner for pointing this out.\n"
    },
    {
      "commit": "c84127372112642464fe3d266ffe58bbc1bc37f3",
      "tree": "f8e25a51dc9b7099d2108b111b86b96b9669d872",
      "parents": [
        "fcb0ce9475509f22031e77456c1075c891cbcd2e"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Tue Nov 06 19:06:11 2012 -0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Tue Nov 06 19:06:11 2012 -0200"
      },
      "message": "tools: staticize functions that are now only used in log.c\n"
    },
    {
      "commit": "fcb0ce9475509f22031e77456c1075c891cbcd2e",
      "tree": "8f50d9793cc6f172dd634a09e7be44404f2b817c",
      "parents": [
        "52a50fe2e548d3a3c112074e9c4e89237c257161"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Tue Nov 06 19:01:59 2012 -0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Tue Nov 06 19:02:23 2012 -0200"
      },
      "message": "tools: share function for logging\n"
    },
    {
      "commit": "52a50fe2e548d3a3c112074e9c4e89237c257161",
      "tree": "7592d5a15399dff756fa2504c795c00c2c71b98c",
      "parents": [
        "92aad74925f788097b54a3f45392e7d272c0201b"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Tue Nov 06 18:26:34 2012 -0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Tue Nov 06 18:52:09 2012 -0200"
      },
      "message": "tools: share setting up libkmod log\n\nThis also fixes a bug in \"e6996c5 rmmod: route all messages to syslog if\ntold to\" in which \"+ verbose\" was removed. Instead of letting verbose\nadd to kmod_get_log_priority(), let it be similar to the other programs\ninstead.\n"
    },
    {
      "commit": "92aad74925f788097b54a3f45392e7d272c0201b",
      "tree": "db8f12ebd652a8a3c5f1e47f0aa4b32d71ad79ae",
      "parents": [
        "34e06bfb545f7a4cce6773b96b602db8329d4009"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Tue Nov 06 18:04:09 2012 -0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Tue Nov 06 18:35:17 2012 -0200"
      },
      "message": "tools: use a single function for logging libkmod output\n"
    },
    {
      "commit": "34e06bfb545f7a4cce6773b96b602db8329d4009",
      "tree": "83fb5b4a29ccad7b9b06a357354b4dd54a825267",
      "parents": [
        "84341fbe013bca49038174b03e95c2943a8e184c"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Tue Nov 06 17:32:41 2012 -0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Tue Nov 06 17:32:41 2012 -0200"
      },
      "message": "tools: make usage() messages go to stdout rather than stderr\n\nWhen user supplied --help/-h, program should output to stdout the usage,\nnot to stderr. It\u0027s the expected behavior, what the user asked for,\nnot something to log or an error.\n"
    },
    {
      "commit": "84341fbe013bca49038174b03e95c2943a8e184c",
      "tree": "aa1997883803f8e194c84eef833d5068853c96f0",
      "parents": [
        "4a2e20dfb3f94b0c5f0b8269b0dd84974a5dac56"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Tue Nov 06 17:08:43 2012 -0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Tue Nov 06 17:10:57 2012 -0200"
      },
      "message": "tools: share function to convert prio to string\n\nNo change is expected in the final binary since right now only an inline\nfunction is shared. Later we expect to share more code.\n"
    },
    {
      "commit": "4a2e20dfb3f94b0c5f0b8269b0dd84974a5dac56",
      "tree": "dfa043682702bc7d617c66e389ec063867b63d20",
      "parents": [
        "e6996c5c30454574d392aac8cbff879e90004e02"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Tue Nov 06 16:54:17 2012 -0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Tue Nov 06 16:55:00 2012 -0200"
      },
      "message": "tools: share getting program name from argv for all tools\n"
    },
    {
      "commit": "e6996c5c30454574d392aac8cbff879e90004e02",
      "tree": "0dddc68bbecf167a8ac2c98b7503dbfcc404d09b",
      "parents": [
        "04c26d28be58a207078aef9a82634fff1047b00c"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Mon Nov 05 18:32:05 2012 -0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Mon Nov 05 18:32:05 2012 -0200"
      },
      "message": "rmmod: route all messages to syslog if told to\n"
    },
    {
      "commit": "04c26d28be58a207078aef9a82634fff1047b00c",
      "tree": "8b5835d7b6897dee4c6440b9b99438dc1658c277",
      "parents": [
        "9382dbf7aa8e65b3e080f154b7b986da0e1fbfce"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Mon Nov 05 17:51:32 2012 -0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Mon Nov 05 18:31:19 2012 -0200"
      },
      "message": "rmmod: prefer ERR over plain fprintf\n"
    },
    {
      "commit": "9382dbf7aa8e65b3e080f154b7b986da0e1fbfce",
      "tree": "d753118b973716040195420c77917397571d34f3",
      "parents": [
        "e2f9478fafe6730fb7aff07b10295bce9b0552b0"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Mon Nov 05 17:58:57 2012 -0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Mon Nov 05 18:31:19 2012 -0200"
      },
      "message": "modinfo: prefer ERR over plain fprintf\n"
    },
    {
      "commit": "e2f9478fafe6730fb7aff07b10295bce9b0552b0",
      "tree": "c28cd15ddb2fec4e9940e72ee7735ede57203d1a",
      "parents": [
        "96b50d362349d78b3dd452e80221ab6ed0563002"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Mon Nov 05 15:08:54 2012 -0200"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Mon Nov 05 17:59:23 2012 -0200"
      },
      "message": "insmod: prefer ERR over plain fprintf\n"
    }
  ],
  "next": "96b50d362349d78b3dd452e80221ab6ed0563002"
}
