)]}'
{
  "log": [
    {
      "commit": "e38956b92f738518c29734399629e7cdb33072d3",
      "tree": "9d19db7618ddda5be34455f725799265970bbd68",
      "parents": [
        "aa75ccd1c03c1cba282be6adce2bce5c09f9a578"
      ],
      "author": {
        "name": "Sean Purcell",
        "email": "me@seanp.xyz",
        "time": "Mon Aug 14 22:46:04 2017 -0700"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@refracta",
        "time": "Tue Nov 14 03:44:47 2017 +0000"
      },
      "message": "squashfs-tools: Add zstd support\n\nThis patch adds zstd support to squashfs-tools. It works with zstd\nversions \u003e\u003d 1.0.0. It was originally written by Sean Purcell.\n\nSigned-off-by: Sean Purcell \u003cme@seanp.xyz\u003e\nSigned-off-by: Nick Terrell \u003cterrelln@fb.com\u003e\n"
    },
    {
      "commit": "aa75ccd1c03c1cba282be6adce2bce5c09f9a578",
      "tree": "b7fc3dcd8b1105916172648c35c07f7dfbb6879e",
      "parents": [
        "1a6ffc749a7d9eb9f6425cb851746108e36c9127"
      ],
      "author": {
        "name": "Nick Terrell",
        "email": "terrelln@fb.com",
        "time": "Wed Aug 09 12:59:16 2017 -0700"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@refracta",
        "time": "Tue Nov 14 03:44:22 2017 +0000"
      },
      "message": "mksquashfs: Make all compressor functions static\n\nMake these functions static, since they are only exposed through the\ncompressor struct.\n\nSigned-off-by: Nick Terrell \u003cterrelln@fb.com\u003e\n"
    },
    {
      "commit": "1a6ffc749a7d9eb9f6425cb851746108e36c9127",
      "tree": "99ed879aa37481192bd2cc3f648d1a62356d63bf",
      "parents": [
        "ba909f59ac5da3c69a2b166a8a9d5c1b14d3a6ad"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Jul 31 20:43:27 2017 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Jul 31 20:43:27 2017 +0100"
      },
      "message": "pseudo.c: Fix pseudo format error message\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "ba909f59ac5da3c69a2b166a8a9d5c1b14d3a6ad",
      "tree": "1b4ced2e93b1c191e18e75fb6898c39c9743d9a4",
      "parents": [
        "4ec4a8e70a708d141d271f03511ce3c4ad561d04"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Jul 31 20:37:54 2017 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Jul 31 20:37:54 2017 +0100"
      },
      "message": "mksquashfs: add pseudo definition format to the help text\n\nDisplay the format in the help text, and not only on error when\nthe format is not recognised by the parser.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "4ec4a8e70a708d141d271f03511ce3c4ad561d04",
      "tree": "d34f44836664f3accc3e0da3df8562fab37bdaea",
      "parents": [
        "00c9237041a068dd410e67b774fd25dcc6aee47e"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Tue Jul 18 05:09:37 2017 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Jul 31 19:20:59 2017 +0100"
      },
      "message": "Pseudo: improve the error message when filenames with spaces are used\n\nIf someone used filenames with spaces but didn\u0027t backslash\nthe spaces (or use the new support for quoted filenames), then they\u0027d\nget the less than illuminating error message\n\n\"Read filename and type, but failed to read or match octal mode\"\n\nBecause the code would treat the filename before the first space\nas the filename, match the type using the first character after\nthe space, and only then fail to parse the expected octal number.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "00c9237041a068dd410e67b774fd25dcc6aee47e",
      "tree": "113cb065e586f1fdfebad1d325384939b001b76f",
      "parents": [
        "83e05169a448dc9fe6f281248b141f708a5c00e0"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Tue Jul 18 04:45:58 2017 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Jul 31 19:20:59 2017 +0100"
      },
      "message": "pseudo: handle quoted filenames\n\nTypically there are two methods of handling filenames with spaces.\nEither backslash the space, or quote the filename.\n\nPesudo allowed backslashing but oddly didn\u0027t allow quoting.\nCorrect that deficiency now.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "83e05169a448dc9fe6f281248b141f708a5c00e0",
      "tree": "fbb175abba1d3c42ea9dc8b2f5f8ffeca7653d1c",
      "parents": [
        "29a07ff0a0b53af1d6fb7f900630547042ea26b0"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Tue Jul 18 03:58:04 2017 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Jul 31 19:20:59 2017 +0100"
      },
      "message": "Fix compile warnings introduced with the -quiet option\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "29a07ff0a0b53af1d6fb7f900630547042ea26b0",
      "tree": "de23924f0dc8f6f5f24c13349589f5c63ff6b107",
      "parents": [
        "e4a57ef479e0abbc4c96fec5593635cf14aed05c"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Mar 13 07:28:19 2017 +0000"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Jul 31 19:20:59 2017 +0100"
      },
      "message": "pseudo: Add missing line termination in ERROR()\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "e4a57ef479e0abbc4c96fec5593635cf14aed05c",
      "tree": "fa4030db9a708919b13e9ea99537f126f07415d7",
      "parents": [
        "0d654504832b872daf70fad8be6463f4e12ecc6c"
      ],
      "author": {
        "name": "probonopd",
        "email": "probonopd@users.noreply.github.com",
        "time": "Thu Sep 15 21:09:52 2016 +0200"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Jul 31 19:20:59 2017 +0100"
      },
      "message": "Add -offset function to skip n bytes at the beginning of the squashfs file\n"
    },
    {
      "commit": "0d654504832b872daf70fad8be6463f4e12ecc6c",
      "tree": "85d218041da1298eab49ce877c8a05d467d7371a",
      "parents": [
        "bc93faae0808feeb5d13dfb9d0cd872097b36c61"
      ],
      "author": {
        "name": "probonopd",
        "email": "probonopd@users.noreply.github.com",
        "time": "Thu Sep 15 18:24:10 2016 +0200"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Jul 31 19:20:59 2017 +0100"
      },
      "message": "Add -offset option to skip n bytes at the start of the input file\n"
    },
    {
      "commit": "bc93faae0808feeb5d13dfb9d0cd872097b36c61",
      "tree": "6e2e2924815a4a53bd012a78f3a892a25aeeb638",
      "parents": [
        "713fb3c3305cb5e7ac5f743adc48e0319c4ad383"
      ],
      "author": {
        "name": "Sebastien Bourdelin",
        "email": "sebastien.bourdelin@savoirfairelinux.com",
        "time": "Mon Mar 14 10:59:31 2016 -0400"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Jul 31 19:20:59 2017 +0100"
      },
      "message": "unsquashfs: add code to dump the exact bytes used\n\nThe option to display the superblock information currently give a\nrounded value of the bytes used by the filesystem.\nThere are use cases in which knowing the exact value is very valuable.\nThis commit just adds this information.\n"
    },
    {
      "commit": "713fb3c3305cb5e7ac5f743adc48e0319c4ad383",
      "tree": "a522a9c6ce5e05a25686c1080894c23e8a9374b5",
      "parents": [
        "8a627c2206f6caa094fc200b77dc2c32b5542955"
      ],
      "author": {
        "name": "Martin Väth",
        "email": "martin@mvath.de",
        "time": "Wed Jan 13 09:28:26 2016 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Jul 31 19:20:11 2017 +0100"
      },
      "message": "mksquashfs: enable -quiet option\n\nIt is nice if the user interface of wrapper scripts can display a\nprogress bar to the user without having to display the detailed\ninformation about the generated file. This can be achieved easily\nby the new -quiet option. This is optionally already used by e.g.\nhttps://github.com/vaeth/squashmount/\n"
    },
    {
      "commit": "8a627c2206f6caa094fc200b77dc2c32b5542955",
      "tree": "1033e9eae4979487f0770bdcf77218db51b0ecff",
      "parents": [
        "a81678d6a698b8a016f9abac9f3d981281cc52eb"
      ],
      "author": {
        "name": "Alexandru Ardelean",
        "email": "aa@ocedo.com",
        "time": "Wed Jan 06 15:36:48 2016 +0200"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Jul 31 19:10:24 2017 +0100"
      },
      "message": "pseudo.c: add explicit \u003csys/stat.h\u003e include\n\nSigned-off-by: Alexandru Ardelean \u003caa@ocedo.com\u003e\n"
    },
    {
      "commit": "a81678d6a698b8a016f9abac9f3d981281cc52eb",
      "tree": "6868fa200310b31c4fbaad6d92b0e608f7d5ca36",
      "parents": [
        "d47b13874e17a9a9faa7840f04e1069ce29debf1"
      ],
      "author": {
        "name": "Alexandru Ardelean",
        "email": "aa@ocedo.com",
        "time": "Wed Jan 06 15:33:43 2016 +0200"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Jul 31 19:10:24 2017 +0100"
      },
      "message": "squashfs-tools: with fnmatch.h compatibility with musl\n\nmusl does not define FNM_EXTMATCH\n\nSigned-off-by: Alexandru Ardelean \u003caa@ocedo.com\u003e\n"
    },
    {
      "commit": "d47b13874e17a9a9faa7840f04e1069ce29debf1",
      "tree": "fc56c5210901e809f1858a35042751f87725671d",
      "parents": [
        "ecc20cd3b4b79698fbd1caa2329d320757e00e3e"
      ],
      "author": {
        "name": "Pranay Kr. Srivastava",
        "email": "pranaykumar.srivastava@cognizant.com",
        "time": "Wed Jul 22 11:56:27 2015 +0530"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Jul 31 19:10:24 2017 +0100"
      },
      "message": "fix device type handling with extended attributes\n\nIf character device files have extended attributes then\nunsquashfs will incorrectly create them as block\ndevice files. This patch checks if the file is character\ndevice file in case it has extended attributes.\n"
    },
    {
      "commit": "ecc20cd3b4b79698fbd1caa2329d320757e00e3e",
      "tree": "50df4a3c0e0f692ccfac997d85e4407f4c4f8838",
      "parents": [
        "c1d1ca267668eeb347bf8376768a5631beeb0b2c"
      ],
      "author": {
        "name": "Michael S. Fischer",
        "email": "mfischer@zendesk.com",
        "time": "Tue Jun 02 16:29:57 2015 -0700"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Jul 31 19:10:24 2017 +0100"
      },
      "message": "unsquashfs: modify xattrs after other changes\n\nFixes a bug in which security capabilities were not properly set on\nwritten files.  chown(2) resets all capabilities so it should be run\nbefore setting xattrs instead of afterwards.\n"
    },
    {
      "commit": "c1d1ca267668eeb347bf8376768a5631beeb0b2c",
      "tree": "19cd533fd29b2842e62336227c4a9a219ac8f399",
      "parents": [
        "ee759bfef0f3da88f2116e72375f41f484c26ce7"
      ],
      "author": {
        "name": "Mohamad Ayyash",
        "email": "mkayyash@google.com",
        "time": "Wed May 06 14:05:06 2015 -0700"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Jul 31 19:10:24 2017 +0100"
      },
      "message": "mksquashfs: Fix segfault when SQUASHFS_TRACE is enabled and no -pf flag\n\nSegfault happens when attempting to dump pseudo files in SQUASHFS_TRACE\nmode after attempting to dereference NULL pseudo pointer.\n\nSigned-off-by: Mohamad Ayyash \u003cmkayyash@google.com\u003e\n"
    },
    {
      "commit": "ee759bfef0f3da88f2116e72375f41f484c26ce7",
      "tree": "6f6c57930abee1bf96f0d3e777e5d71517641377",
      "parents": [
        "3de1687d7432ea9b302c2db9521996f506c140a3"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Mar 13 06:15:28 2017 +0000"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Mar 13 06:27:34 2017 +0000"
      },
      "message": "pseudo: Add support for pseudo file symlinks\n\nThe pseudo format follows the standard definition, with the type \"s\"\n\nName s mode uid gid symlink\n\nWill create the symlink \"Name\" with \u003cgid\u003e and \u003cuid\u003e and the contents\n\u003csymlink\u003e.\n\nNote \u003cmode\u003e is ignored, as symlinks always have \"rwxrwxrwx\" permissions.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "3de1687d7432ea9b302c2db9521996f506c140a3",
      "tree": "45a7768c8c9b7a88371e56cac7ceaec78476db2e",
      "parents": [
        "9c1db6d13a51a2e009f0027ef336ce03624eac0d"
      ],
      "author": {
        "name": "Thomas De Schampheleire",
        "email": "thomas.de.schampheleire@gmail.com",
        "time": "Wed Nov 04 11:07:32 2015 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Dec 07 01:42:03 2015 +0000"
      },
      "message": "mksquashfs: fix compilation on older toolchains\n\nCompiling mksquashfs on RHEL 5 (gcc 4.1.2, glibc 2.5) gives the following\nerror:\n\n    mksquashfs.c: In function ‘get_fragment’:\n    mksquashfs.c:1440: error: label at end of compound statement\n\nOn RHEL 6 (gcc 4.4.7, glibc 2.12), the preprocessed output shows a difference\nfor pthread_cleanup_pop, which now has a dummy do {} while (0); statement,\npresumably to fix this exact error.\n\nFix for RHEL 5 by manually inserting that dummy statement.\n\nSigned-off-by: Thomas De Schampheleire \u003cthomas.de.schampheleire@gmail.com\u003e\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "9c1db6d13a51a2e009f0027ef336ce03624eac0d",
      "tree": "ebf670ba57e9ef443f72b87411a7e0278191e538",
      "parents": [
        "de03266983ceb62e5365aac84fcd3b2fd4d16e6f"
      ],
      "author": {
        "name": "Guan, Xin",
        "email": "guanx.bac@gmail.com",
        "time": "Sat Sep 13 13:15:26 2014 +0200"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Sep 19 03:16:18 2014 +0100"
      },
      "message": "Fix 2GB-limit of the is_fragment(...) function.\n\nApplies to squashfs-tools 4.3.\n\nReported-by: Bruno Wolff III \u003cbruno@wolff.to\u003e\nSigned-off-by: Guan, Xin \u003cguanx.bac@gmail.com\u003e\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "de03266983ceb62e5365aac84fcd3b2fd4d16e6f",
      "tree": "b4966f40e2e6cb0f5fca9b104bb9f0318f478d17",
      "parents": [
        "27167b98babab9cc70b97ed3b0ae8a63378c14f7"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Thu Sep 18 01:28:11 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Thu Sep 18 01:28:11 2014 +0100"
      },
      "message": "mksquashfs: fix rare race in fragment waiting in filesystem finalisation\n\nFix a rare race condition in fragment waiting when finalising the\nfilesystem.  This is a race condition that was initially fixed in 2009,\nbut inadvertantly re-introduced in the latest release when the code\nwas rewritten.\n\nBackground:\n\nWhen finalising the filesystem, the main control thread needs to ensure\nall the in-flight fragments have been queued to the writer thread before\nasking the writer thread to finish, and then writing the metadata.\n\nIt does this by waiting on the fragments_outstanding counter.  Once this\ncounter reaches 0, it synchronises with the writer thread, waiting until\nthe writer thread reports no outstanding data to be written.\n\nHowever, the main thread can race with the fragment deflator thread(s)\nbecause the fragment deflator thread(s) decrement the fragments_outstanding\ncounter and release the mutex before queueing the compressed fragment\nto the writer thread, i.e. the offending code is:\n\n                        fragments_outstanding --;\n                        pthread_mutex_unlock(\u0026fragment_mutex);\n                        queue_put(to_writer, write_buffer);\n\nIn extremely rare circumstances, the main thread may see the\nfragments_outstanding counter is zero before the fragment\ndeflator sends the fragment buffer to the writer thread, and synchronise\nwith the writer thread, and finalise before the fragment has been written.\n\nThe fix is to ensure the fragment is queued to the writer thread\nbefore releasing the mutex.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "27167b98babab9cc70b97ed3b0ae8a63378c14f7",
      "tree": "aa5128bae2b071e428ae9b5a0f88368f2b017b99",
      "parents": [
        "d033a7f78ac6b9d59338f2d2f16373659b29b77e"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Sep 12 23:28:59 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Sep 12 23:28:59 2014 +0100"
      },
      "message": "mksquashfs: fix progressbar for sort files\n\nThe progressbar was incorrectly enabled *after* writing files\nif sort files were used.  This meant the progressbar would not\nbe updated whilst files were being written to the filesystem.\n\nAs this is the bulk of the work for Mksquashfs, this means\nthe progressbar basically didn\u0027t appear to update whilst\nMksquashfs was running, and then suddenly updated to 100%\nat the end of Mksquashfs.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "d033a7f78ac6b9d59338f2d2f16373659b29b77e",
      "tree": "c6475a6be794c441727f0da421d25f885e3c12ed",
      "parents": [
        "2c88404c1282e8cb44242eb02aa48cea7f5bfa34"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Sep 12 00:31:56 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Sep 12 00:31:56 2014 +0100"
      },
      "message": "actions: add new noop action\n\nThis action does exactly what it says, i.e. nothing.\n\nIt\u0027s designed to be used in conjunction with the verbose action\noptions to enable debugging of the test expression.\n\nIn otherwords, it allows you to check which files match on\nyour test expression but without doing anything to the filesystem.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "2c88404c1282e8cb44242eb02aa48cea7f5bfa34",
      "tree": "385be3ee939197e0d81627ec4bfdbdca6d4d3cee",
      "parents": [
        "d8295a1c0b06b3fa2754e321bfb94a2063bac9a7"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Sep 10 23:52:39 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Sep 10 23:55:27 2014 +0100"
      },
      "message": "actions: change expression logging to not print brackets if test has no arguments\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "d8295a1c0b06b3fa2754e321bfb94a2063bac9a7",
      "tree": "7476e205f0baa3fc35fcdc8bade965db7cde06b0",
      "parents": [
        "1b06ce9dd5363dad2bcc3d2dcdc17279f0cabe43"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Sep 10 23:24:35 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Sep 10 23:24:35 2014 +0100"
      },
      "message": "action: change expression logging to use atom-\u003eargs\n\nPreviously it used atom-\u003etest-\u003eargs which is the arg count in the \"generic\"\ntest function.\n\nNow that test function parsing has been improved to add variable arguments,\nwe should be using the new atom-\u003eargs field which is the number of actual\narguments in the particular parsed test - i.e. the instance rather than\nthe definition.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "1b06ce9dd5363dad2bcc3d2dcdc17279f0cabe43",
      "tree": "610a372944dca013dda8f9050a005f8909ea00c3",
      "parents": [
        "f3946943a020d0a7d93bf876b5ee3d48794e2097"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Sep 10 22:27:48 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Sep 10 22:27:48 2014 +0100"
      },
      "message": "action: chmod: fix mode setting if octal value specified for mode\n\nThe set code incorrectly did (st_mode \u0026 ~S_IFMT) | mode, which is the\nexact inverse of what it should have been, i.e.  (st_mode \u0026 S_IFMT) | mode\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "f3946943a020d0a7d93bf876b5ee3d48794e2097",
      "tree": "232496da5dcaeb5de01dba4ebe4e572361775043",
      "parents": [
        "5b2a8f40a8ee7ffca7c6ada1d8535dfc5a3941aa"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Sep 08 03:09:35 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Sep 08 03:09:35 2014 +0100"
      },
      "message": "action: add octal mode support to perm test function\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "5b2a8f40a8ee7ffca7c6ada1d8535dfc5a3941aa",
      "tree": "4c1b234fff734f0badbed881da7975d5d7ff4dcd",
      "parents": [
        "80b55212de79589f9cd8fd0d3411361c7762e346"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Sep 08 02:11:45 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Sep 08 02:30:57 2014 +0100"
      },
      "message": "actions: refactor parse_octal_mode_args(), to use it with the perm test function\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "80b55212de79589f9cd8fd0d3411361c7762e346",
      "tree": "ddf0aea72b87bfa6377ddeff79a92b404a860660",
      "parents": [
        "ab69e4fc976d02298424f142f0a61de671a2a21c"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Sat Sep 06 05:34:51 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Sat Sep 06 05:44:44 2014 +0100"
      },
      "message": "actions: implement perm() test function\n\nImplement perm() test function, this is modelled directly on\nfind -perm and implements its behaviour.\n\nFollowing find, three types of match are supported:\n\nperm(mode) - exact match\nperm(-mode) - all of the permission bits are set for the file\nperm(/mode) - any of the permission bits are set for the file\n\nWith perm(/mode) if no permission bits are set in mode match\non any file, this is to be consistent with find, which\ndoes this to be consistent with the behaviour of\n-perm -000\n\nNote, only symbolic modes are currently implemented.  Octal modes\nwill be implemented next.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "ab69e4fc976d02298424f142f0a61de671a2a21c",
      "tree": "33ba4529bbce876844f140248dc382953cf092c9",
      "parents": [
        "b193da1cf1e0f54878b224ad69e21d7eb2866b0f"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Sep 05 04:09:47 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Sep 05 04:09:47 2014 +0100"
      },
      "message": "action: fix move argument parsing\n\nAt one point in time it was anticipated that the move action\nmight take multiple arguments.  So it used the multi argument\nsetting of \"-2\"...\n\nBut the current implementation expects one argument only.  But\nthe -2 setting allows zero arguments which isn\u0027t expected.  So\nenforce 1 argument.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "b193da1cf1e0f54878b224ad69e21d7eb2866b0f",
      "tree": "2cb55fef6173afd9543e1af71da4dd4e7bca6c02",
      "parents": [
        "ef9685fed7d52df0d3ba512ed732021ced244680"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Sep 05 03:00:57 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Sep 05 04:09:11 2014 +0100"
      },
      "message": "actions: update test function parser to handle variable amount of arguments\n\nUpdate the test function parser to handle variable amount of arguments,\nas that\u0027s now needed for the perm() test function.  Up till now, though\nupdating the test parser has been a TODO, it been a low priority because\nit\u0027s done what\u0027s needed.\n\nUpdating the parser to speculatively read the number of arguments\npresent (and hence handle variable number of arguments) has been a\nTODO even without the need to handle a variable number of arguments\nbecause experience gained updating the action parser to do this showed\nit generates better syntax error messages.\n\nPreviously the parser just parsed the number of arguments expected, and\nthen quit.  The parser now parses all the arguments present, and then\ncompares it against what was expected.\n\nNo big deal?  Well guess what gives the better syntax error if you\nenter too many arguments.  Reading just the number of arguments\nexpected, and then quitting, means the extra arguments cause to\nparaphrase a \"I expected a ) here, and I got a comma or string\".\nNow, you get an error message like \"I got 5 arguments, but only\nexpected 2\".  Which IMHO is a better syntax error message.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "ef9685fed7d52df0d3ba512ed732021ced244680",
      "tree": "4fc9c15e9604ba1eeeb538ca68cea76360d0e1f7",
      "parents": [
        "4f24381e7edc0a46cf10278e4597051ac697ec7c"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Sep 05 00:48:01 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Sep 05 00:49:37 2014 +0100"
      },
      "message": "action: split the execute mode code out of mode_action()\n\nAllowing it to be used by the (to be added later) perm test function.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "4f24381e7edc0a46cf10278e4597051ac697ec7c",
      "tree": "e514e91af020fbe47dd0b641a56ca5ff05a6bafb",
      "parents": [
        "9d914641db3c8c37aec8c690d4aa22339fd13749"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Sep 03 02:20:55 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Sep 03 02:20:55 2014 +0100"
      },
      "message": "mksquashfs: fix cmdline arg free if \u003e1 source dir and one of them is excluded\n\nIf you specify multiple sources (directories and/or files) on the command\nline, Mksquashfs will merge those sources into a root directory\ncontaining all of them.  This is different to the behaviour when\na single directory is specified, in which case Mksquashfs creates\na filesystem with the root containing the contents of the source\ndirectory.\n\nThe difference manifests itself in the way the pathname of each\nof the directory entries is stored/obtained.  Normally to reduce\nruntime overhead when the directory entries have all come from the\nsame parent directory, the source pathname is not stored in each\ndirectory entry, but is computed from the source pathname of the\nparent directory.  But in the case of the \"dummy\" root created\nto merge multiple sources specified on the command line, each\ndirectory entry does not share the same parent pathname, and so\nthe source pathname of each directory entry is stored in the\nnonstandard_pathname field.  This nonstandard_pathname was originally\nfilled in using a pointer to the source pathname on the command line.\n\nNow, if you later exclude one of these source directories, Mksquashfs\nwill free the storage, and it will try and free the nonstandard_pathname\nfield, which leads to a crash as you cannot free a command line argument.\n\nThe fix to this is to strdup the command line source and store the\ncopy in the directory entry.\n\nThis is not considered a serious bug, it has not been reported, and\nthe scenario was discovered by chance whilst looking at the code.\nAdditionally the trigger scenario is highly artificial and there\nis no use-case where this bug will be triggered.  To trigger it you\nneed to specifiy multiple source command arguments, and then you\nneed to exclude one of them.  But, if you explicitly specified it\non the command line why would you later exclude it, and if\nyou did want to exclude it the obvious way would be to remove it\nfrom the command line.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "9d914641db3c8c37aec8c690d4aa22339fd13749",
      "tree": "1c99ad48257ca44718fc56dae6da49858985e7f4",
      "parents": [
        "75e84b3d44f4430fa2c1a761b14498c26c58145a"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Sun Aug 31 23:56:22 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Sun Aug 31 23:56:22 2014 +0100"
      },
      "message": "actions: Regularise SYNTAX_ERROR() statements\n\nGet rid of the redundant \"Action mode: \" prefix and make the\nerror messages match others.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "75e84b3d44f4430fa2c1a761b14498c26c58145a",
      "tree": "c0b2557dedaf6ec912b9181ea1337abe748e58b1",
      "parents": [
        "6b809631d49eddbe2a6efe3b15559e81d6a0bbab"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Sun Aug 31 23:56:02 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Sun Aug 31 23:56:02 2014 +0100"
      },
      "message": "actions: Regularise SYNTAX_ERROR() statements\n\nGet rid of the redundant \"action: \" prefix and make the\nerror messages match others.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "6b809631d49eddbe2a6efe3b15559e81d6a0bbab",
      "tree": "b51d59439e3d18397af7ab35518a62672f61c2e9",
      "parents": [
        "26d29c119544faf6800f6e1056a646253c5c46da"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Sun Aug 31 03:47:50 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Sun Aug 31 04:06:35 2014 +0100"
      },
      "message": "action: expression logging should be using action-\u003eargs\n\nFix display of the arguments in the action() statement.\nPreviously it used action-\u003eaction-\u003eargs which is the arg\ncount in the \"generic\" action statement, not the number of\nactual arguments in the particular parsed action - i.e. the instance\nrather than the definition.\n\nFor actions which take a fixed number of arguments there, obviously,\nis no difference.  But for actions which take a variable number of\narguments the generic action count is \"-2\", and it is the\nresponsibility of an specific action parser helper to parse\nthe arguments.  In this case the discovered number of arguments\nin the instance will be different to the -2 argument count in the\ngeneric statement.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "26d29c119544faf6800f6e1056a646253c5c46da",
      "tree": "7bd36de65920a4e03e6303ed995b40202dfc7774",
      "parents": [
        "051eafc838200122d9fc7217aafd8bead8b2307d"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Sun Aug 31 03:31:07 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Sun Aug 31 03:31:07 2014 +0100"
      },
      "message": "action: add chmod() as a synonym for mode()\n\nWhen testing the mode action, I\u0027m always typing chmod() as\nthat\u0027s what it\u0027s called elsewhere.  So add chmod as a synonym, it\nshould probably have been called chmod in the first place.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "051eafc838200122d9fc7217aafd8bead8b2307d",
      "tree": "afe23b798c3acd99c55d66ad1091c0eb59ba84de",
      "parents": [
        "84d9f63f4480009ff235c945df105160e1104dd1"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Sun Aug 31 02:22:08 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Sun Aug 31 02:22:08 2014 +0100"
      },
      "message": "actions: fix symbolic mode parsing in the mode() action\n\nWhen I implemented symbolic modes in the mode() action (i.e.\nu+r-w) I made an oversight.  I didn\u0027t realise the specification\nallowed multiple \u003d-+ sequences after the ownership specification.\nIn otherwords if you wanted to add r (+r) and remove w (-w)\nfrom user, I assumed you would do u+r,u-w.  After revisiting\nthe symbolic mode specification it turns out you should be able\nto do u+r-w as a short cut to the previous specification.  It\nalso should be obvious I don\u0027t tend to use the symbolic mode but\ndirectly use the octal specification!\n\nSo fix the parser to allow multiple \u003d-+ sequences.\n\nSo the syntax of the symbolic mode support goes from\n\n[ugoa]+[+-\u003d]PERMS\nPERMS \u003d [rwxXst]+ or [ugo]\n\nto\n\n[ugoa]*[[+-\u003d]PERMS]+\nPERMS \u003d [rwxXst]+ or [ugo]\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "84d9f63f4480009ff235c945df105160e1104dd1",
      "tree": "a3326ebdf86550d77abcb8cc1aad54966e998ba6",
      "parents": [
        "161bf1cd24b41a8eec86152eee632598fdf50144"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Sat Aug 30 03:08:31 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Sat Aug 30 03:08:31 2014 +0100"
      },
      "message": "actions: fix those underscores\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "161bf1cd24b41a8eec86152eee632598fdf50144",
      "tree": "ec31617a2f30863d4d0e901abf98507124362507",
      "parents": [
        "81c0be5728200e0ddcb01f0cb74b8a44fb9fcc5e"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Sat Aug 30 03:04:11 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Sat Aug 30 03:04:11 2014 +0100"
      },
      "message": "actions: eval_expr_top() should be using subpath and not pathname\n\nSubpath is the path rooted at the root of the destination filesystem.\nIt includes renames (due to name conflicts), and moves.\n\nPathname is the original source pathname rooted at whatever pathname(s)\nwere given on the command line.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "81c0be5728200e0ddcb01f0cb74b8a44fb9fcc5e",
      "tree": "0e3c44ffd0ccc7dfe5d2dae3c3705801cf94a997",
      "parents": [
        "f46459170a8924f8fc23174c21e51b44b29cda14"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Aug 27 06:32:11 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Aug 27 06:32:11 2014 +0100"
      },
      "message": "mksquashfs: add -false-action-file option\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "f46459170a8924f8fc23174c21e51b44b29cda14",
      "tree": "9aef89a07d771991d822ac836cab2284955cf0f7",
      "parents": [
        "59889f1048934296f25ebc1c6fca35413b3f9f3b"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Aug 27 06:14:38 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Aug 27 06:14:38 2014 +0100"
      },
      "message": "mksquashfs: fix usage of \"_\" in new options\n\nGah, I like using \"_\" as the separator between words in\noptions.  But, a long time ago I noticed I\u0027d ended up with \"-\"\nas the separator in the majority case, and so I\u0027m stuck with\n\"-\" as the separator.\n\nFix verbose_option, true_option, false_option, action_file\nand verbse_action_file.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "59889f1048934296f25ebc1c6fca35413b3f9f3b",
      "tree": "d42c7880bdfb4398de5d8b112f03320f7d5547fd",
      "parents": [
        "c08b7620e933251c8162d713220ba44fb675d0b7"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Aug 27 06:11:41 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Aug 27 06:11:41 2014 +0100"
      },
      "message": "mksquashfs: add -true-action-file option\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "c08b7620e933251c8162d713220ba44fb675d0b7",
      "tree": "743a29d48029d609a2e53086d673923bf3facd99",
      "parents": [
        "ca29803d285975485c6825af18433eff49de3aca"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Aug 27 06:09:30 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Aug 27 06:09:30 2014 +0100"
      },
      "message": "mksquashfs: add -true_action_file option\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "ca29803d285975485c6825af18433eff49de3aca",
      "tree": "1c87cbb932b0a6d84fce25d85386441c60af141e",
      "parents": [
        "2185ee5319652353571eda7437522c12927b091e"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Aug 27 06:01:10 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Aug 27 06:01:10 2014 +0100"
      },
      "message": "mksquashfs: fix read_action_file to use ACTION_LOG_{NONE|VERBOSE}\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "2185ee5319652353571eda7437522c12927b091e",
      "tree": "d3d47bfb8fb2ff0162134d3c5a9e65171c9442bf",
      "parents": [
        "c6127379056cc81b60b7c72d6fa4a692b6bb7363"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Aug 27 05:58:31 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Aug 27 05:58:31 2014 +0100"
      },
      "message": "mksquashfs: add -verbose_action_file as synonym for -vaf\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "c6127379056cc81b60b7c72d6fa4a692b6bb7363",
      "tree": "1263dde4341f5fc99e3b9cede5f965f059b1e08a",
      "parents": [
        "9c9e4304acee8e8e3ed1e9c398f28920d3216084"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Aug 27 05:56:13 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Aug 27 05:56:13 2014 +0100"
      },
      "message": "mksquashfs: add -action_file as synonym for -af\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "9c9e4304acee8e8e3ed1e9c398f28920d3216084",
      "tree": "743426603628b9065521855c004d13826fc96461",
      "parents": [
        "48cc24893f0c2e69a388c6c45678a076316a9e25"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Aug 27 05:52:20 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Aug 27 05:52:20 2014 +0100"
      },
      "message": "mksquashfs: add -false_action option\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "48cc24893f0c2e69a388c6c45678a076316a9e25",
      "tree": "bd5a517abca842a4291e1557569a31844e045e5a",
      "parents": [
        "2f194c80b141d1fe5a68f8661750264beaefdc78"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Aug 27 05:50:21 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Aug 27 05:50:21 2014 +0100"
      },
      "message": "mksquashfs: add -true_action option\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "2f194c80b141d1fe5a68f8661750264beaefdc78",
      "tree": "a5f5c3a727dc7184460450cf87970538e4a86382",
      "parents": [
        "95140b96545de5e1cbe88a5316bdc41cfab717ed"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Aug 27 05:46:27 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Aug 27 05:46:27 2014 +0100"
      },
      "message": "action: make action_read_file use ACTION_LOG_{NONE|VERBOSE}\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "95140b96545de5e1cbe88a5316bdc41cfab717ed",
      "tree": "5bd39de1900052fe97786fe15c8da8bc4dffbed8",
      "parents": [
        "daa1bcbeb8b9aa3d572caba1fbd3d19cf345824a"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Aug 27 05:40:39 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Aug 27 05:41:55 2014 +0100"
      },
      "message": "action: update action option parsing to use ACTION_LOG_{NONE|VERBOSE}\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "daa1bcbeb8b9aa3d572caba1fbd3d19cf345824a",
      "tree": "9ed89ee4feedb4d0dedbaecc1b9ae0cdc5ed5d4c",
      "parents": [
        "4995ac5e470068c276c3604c04982185d111ee08"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Aug 27 05:36:27 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Aug 27 05:36:27 2014 +0100"
      },
      "message": "action: extend logging to handle log if action TRUE and log if action FALSE\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "4995ac5e470068c276c3604c04982185d111ee08",
      "tree": "fc0a50f91bd5017d69ac6a02e0811b6bbc7eefec",
      "parents": [
        "17f01bfe6317dedd25ee04c0b8f7727ba09134ce"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Sun Aug 24 03:46:46 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Sun Aug 24 03:46:46 2014 +0100"
      },
      "message": "actions: implement -vaf (verbose action file) option\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "17f01bfe6317dedd25ee04c0b8f7727ba09134ce",
      "tree": "d6d41bc7cbe137318e6d065cb7b4eb750c15d6ec",
      "parents": [
        "5db907390716d1dc7d57cac5734a9b1ed315ea06"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Sun Aug 24 02:06:51 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Sun Aug 24 02:06:51 2014 +0100"
      },
      "message": "actions: implement verbose_action for stat_fn test operator\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "5db907390716d1dc7d57cac5734a9b1ed315ea06",
      "tree": "be2f49c43ae2916a602e348f2c3e5a3fa42fc718",
      "parents": [
        "9c883949d7c34d7ccd646f6035e1e81e1bbf3a50"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Sat Aug 23 03:53:50 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Sat Aug 23 03:53:50 2014 +0100"
      },
      "message": "actions: implement verbose_action for readlink_fn test operator\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "9c883949d7c34d7ccd646f6035e1e81e1bbf3a50",
      "tree": "279f2cc52f257c768030fca9a5758401b47f68cb",
      "parents": [
        "878174f982ec5ae6e14675bfeb3f4dee19377294"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 22 06:13:06 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 22 06:16:42 2014 +0100"
      },
      "message": "actions: implement verbose_action for eval_fn test operator\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "878174f982ec5ae6e14675bfeb3f4dee19377294",
      "tree": "91d3de8a0cff9036066b7b99d2c14cf8ef3d912c",
      "parents": [
        "ef981fbfd0bd29f9f00624c3415d9595d7e5757c"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Aug 18 03:03:14 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Aug 18 03:03:14 2014 +0100"
      },
      "message": "actions: implement -verbose_action option\n\nAdd an action option that prints the result of evaluating\nthe associated expression, annotating the result of evaluating each\natom (test operation) with \u003dTrue or \u003dFalse.\n\nThis can be used (especially in debugging action statements) to\nshow which action statements triggered, and why, and which\naction statements didn\u0027t trigger and again why.\n\nFor instance given the action\n\n-verbose_action \u0027uid(root)@type(d)||name(file*)\u0027\n\nThis could produce the following output\n\ntest2/empty\u003duid(root)@(type(d)\u003dTrue)\ntest2/file9\u003duid(root)@(type(d)\u003dFalse||name(file*)\u003dTrue)\ntest2/file4\u003duid(root)@(type(d)\u003dFalse||name(file*)\u003dTrue)\ntest2/a\u003duid(root)@(type(d)\u003dFalse||name(file*)\u003dFalse)\ntest2/sym\u003duid(root)@(type(d)\u003dFalse||name(file*)\u003dFalse)\ntest2/dir\u003duid(root)@(type(d)\u003dTrue)\ntest2/dir/fred\u003duid(root)@(type(d)\u003dFalse||name(file*)\u003dFalse)\ntest2/file8\u003duid(root)@(type(d)\u003dFalse||name(file*)\u003dTrue)\ntest2\u003duid(root)@(type(d)\u003dTrue)\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "ef981fbfd0bd29f9f00624c3415d9595d7e5757c",
      "tree": "b2065a7560595a840c8fbc908c88e181660b2d09",
      "parents": [
        "d5267d9238cc27f34aeab7ce2f0d65d31d7da7ad"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Aug 11 02:26:43 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Aug 11 02:26:43 2014 +0100"
      },
      "message": "action: add eval() test operation\n\nFollow path (arg1) and evaluate the expression (arg2)\nin the context of the file discovered.  All attributes are updated\nto refer to the file that is pointed to.\n\nThis test operation allows you to add additional context to the\nevaluation of the file being scanned, such as \"if current file is\nXXX and the parent is YYY, then ...\"  Often times you need or\nwant to test a combination of file status\n\nIf the file referenced by the path does not exist in\nthe output filesystem, or some other failure is experienced in\nwalking the path (see follow_path above), then FALSE is returned.\n\nIf you wish to evaluate the inode attributes of files which\nexist in the source filestem (but not in the output filesystem then\nuse stat instead (see above).\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "d5267d9238cc27f34aeab7ce2f0d65d31d7da7ad",
      "tree": "23efa9761279506b2d49fa57008f43fb04bf9c60",
      "parents": [
        "d304ba3a4ac273fd56ae51898b1b9abafd39fc8a"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Aug 11 02:03:45 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Aug 11 02:04:19 2014 +0100"
      },
      "message": "action: readlink_fn should be using it\u0027s own copy of struct action_data\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "d304ba3a4ac273fd56ae51898b1b9abafd39fc8a",
      "tree": "3fcd888802c8ff7b52c018731ae6a04f2ffda840",
      "parents": [
        "37e8556d62af6ef4edd07d48eb1caba19f49fcc1"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Aug 11 01:43:42 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Aug 11 01:43:42 2014 +0100"
      },
      "message": "action: stat_fn should be using it\u0027s own copy of struct action_data\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "37e8556d62af6ef4edd07d48eb1caba19f49fcc1",
      "tree": "2f48b1267f80aa15b41a904fd04ef58546f70c41",
      "parents": [
        "46afc0d8f6aff557af78d1f104883aed9044a074"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Aug 11 01:23:14 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Aug 11 01:23:14 2014 +0100"
      },
      "message": "action: in eval_XXX_action() functions strdup (sub-)pathname\n\nThe strings that are passed back by the (sub-)pathname\nfunctions are over-written every time another call is\nmade to these functions.  This is deliberate to avoid\nallocating and freeing the strings everytime on functions\nwhich are called frequently, *and* the returned value is\nonly needed temporarily.  Only rarely is the string kept\nlong term and then the principle is the string should be\nstrdupped then.\n\nThe action usage of these string values without strdupping\nhas always been a bit edgy - on the one hand the action code\ndoes *not* call back into the Mksquashfs mainloop which is\nwhere the additional use of (sub-)pathname is expected to be,\non the other hand such long term reliance on strings not\nbeing reused is prone to break with code changes.\n\nSuch a thing has happened here in the actions code - we have\nintroduced a new \"follow_link()\" test function which needs\nto compute it\u0027s own action_data structure using, you guessed it,\n(sub-)pathname.\n\nSo the actions code can now call (sub-)pathname whilst relying\non the previous value.  So, we need to strdup and free it.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "46afc0d8f6aff557af78d1f104883aed9044a074",
      "tree": "b923e53009155790cf92eef2d133389957184d47",
      "parents": [
        "34502b79ddf5a62664482be4b89f12bd781e7f2c"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 22:10:59 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Sat Aug 09 00:31:28 2014 +0100"
      },
      "message": "Release files - Squashfs4.3\n\n4.3     12 MAY 2014     New compressor options, new Mksquashfs/Unsquashfs\n                        functionality, duplicate checking optimisations,\n                        stability improvements (option/file parsing,\n                        buffer/memory overflow checks, filesystem hardening\n                        on corrupted filesystems), CVE fixes.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "34502b79ddf5a62664482be4b89f12bd781e7f2c",
      "tree": "ad862843ac2ab99d33da10cab7ae9f2c7f2b1839",
      "parents": [
        "e9afdfb93d1604685b8a1de4183f714d0f6dc2f4"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 22:02:51 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 22:02:51 2014 +0100"
      },
      "message": "Release files - Squashfs4.2\n\n4.2     28 FEB 2011     XZ compression, and compression options support\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "e9afdfb93d1604685b8a1de4183f714d0f6dc2f4",
      "tree": "4f56df07fa7e9c45f3f9634e4d6c081e6752ca31",
      "parents": [
        "cfcc37fe157f08bf43afa46a90a39de5c4e025f2"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 21:59:19 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 21:59:19 2014 +0100"
      },
      "message": "Release files - Squashfs4.1\n\n4.1     19 SEPT 2010    Major filesystem and tools improvements\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "cfcc37fe157f08bf43afa46a90a39de5c4e025f2",
      "tree": "711a9900a4186417a4c118af32757948c257816a",
      "parents": [
        "e59367cd3e7c406b1ebef6e0343958b6e3a5428a"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 21:56:15 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 21:56:15 2014 +0100"
      },
      "message": "Release files - Squashfs4.0\n\n4.0     5 APR 2009      Major filesystems improvements\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "e59367cd3e7c406b1ebef6e0343958b6e3a5428a",
      "tree": "1152113e810c5406d43fa5e63a462a63f0fd0378",
      "parents": [
        "bd60829d2cba81f942db0de788e089c16d6e1ca2"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 21:49:25 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 21:49:25 2014 +0100"
      },
      "message": "Release files - Squashfs3.4\n\n3.4\t26 AUG 2008\tPerformance improvements to Unsquashfs, Mksquashfs\n\t\t\tand the kernel code.  Plus many small bug fixes.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "bd60829d2cba81f942db0de788e089c16d6e1ca2",
      "tree": "30ed33bbcd0dfe0394b080f5c39f525e397b2194",
      "parents": [
        "0ab719cc00435d18b0c875388d3924ab27af8c17"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 21:46:45 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 21:46:45 2014 +0100"
      },
      "message": "Release files - Squashfs3.3\n\n3.3\t1 NOV 2007\tIncrease in block size, sparse file support,\n\t\t\tMksquashfs and Unsquashfs extended to use\n\t\t\tpattern matching in exclude/extract files, plus\n\t\t\tmany more improvements and bug fixes.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "0ab719cc00435d18b0c875388d3924ab27af8c17",
      "tree": "57730bcb0021694ea92cfed2ddff31b3e639d4ef",
      "parents": [
        "8c2a0dd28d2c29faee2a2f612a5e365e896a3a99"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 21:44:03 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 21:44:03 2014 +0100"
      },
      "message": "Release files - Squashfs3.2-r2\n\n3.2-r2  15 JAN 2007     Kernel patch update and progress bar bug fix\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "8c2a0dd28d2c29faee2a2f612a5e365e896a3a99",
      "tree": "2a57c8004d7994303dbb82d831c738c7e1ee31da",
      "parents": [
        "ad18f8a864430dd19a3fa5f393446b43554f37c0"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 21:34:13 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 21:34:13 2014 +0100"
      },
      "message": "Release files - Squashfs3.2\n\n3.2\t2 JAN 2007\tNFS support, improvements to the Squashfs-tools, major\n\t\t\tbug fixes, lots of small improvements/bug fixes, and new\n\t\t\tkernel patches.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "ad18f8a864430dd19a3fa5f393446b43554f37c0",
      "tree": "3600a180b3574e65cf7bdde1b11d47dc5bad60e4",
      "parents": [
        "c79e68cff862ff613a7124846c5d9d18ebd7aaed"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 21:29:29 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 21:29:29 2014 +0100"
      },
      "message": "Release files - Squashfs3.1-r2\n\n3.1-r2  30 AUG 2006     Mksquashfs -sort bug fix\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "c79e68cff862ff613a7124846c5d9d18ebd7aaed",
      "tree": "eee657f83adb457b708aff31e121f9045dc122c4",
      "parents": [
        "8a3a7c737112e731117507a1afab0b4fa0f12172"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 21:27:38 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 21:27:38 2014 +0100"
      },
      "message": "Release files - Squashfs3.1\n\n3.1\t19 AUG 2006\tThis release has some major improvements to\n\t\t\tthe squashfs-tools, a couple of major bug\n\t\t\tfixes, lots of small improvements/bug fixes,\n\t\t\tand new kernel patches.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "8a3a7c737112e731117507a1afab0b4fa0f12172",
      "tree": "c5e2df6401b78f995c820f533ad352617a609b59",
      "parents": [
        "f425f97455e8364fcf8669446677b5d1ea1ccb7d"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 21:24:28 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 21:24:28 2014 +0100"
      },
      "message": "Release files - Squashfs3.0\n\n3.0\t15 MAR 2006\tMajor filesystem improvements\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "f425f97455e8364fcf8669446677b5d1ea1ccb7d",
      "tree": "df28dd1a8397d718767a39e09e131f1f98aece45",
      "parents": [
        "704571f7908a0ca0aa1e982d750a443167c6c76f"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 21:20:45 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 21:20:45 2014 +0100"
      },
      "message": "Release files - Squashfs2.2-r2\n\n2.2-r2\t8 SEPT 2005\tSecond release of 2.2, this release fixes a couple\n\t\t\tof small bugs, a couple of small documentation\n\t\t\tmistakes, and adds a patch for kernel 2.6.13.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "704571f7908a0ca0aa1e982d750a443167c6c76f",
      "tree": "81e7bc46ded62a4cba839f84792e88141fa8a21d",
      "parents": [
        "70e72580cb67a03ddc16444e810d0d65bcab7b99"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 21:18:11 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 21:18:11 2014 +0100"
      },
      "message": "Release files - Squashfs2.2\n\n2.2\t3 JUL 2005\tThis release has some small improvements, bug fixes\n\t\t\tand patches for new kernels.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "70e72580cb67a03ddc16444e810d0d65bcab7b99",
      "tree": "a933ab81c960cd71bed7bd52ea068fe4eff6e9df",
      "parents": [
        "821530eae596abc66688b38acc8bae3262cdb5e9"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 21:11:34 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 21:11:34 2014 +0100"
      },
      "message": "Release files - Squashfs2.1-r2\n\n2.1-r2\t15 DEC 2004\tCode changed so it can be compiled with gcc 2.x\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "821530eae596abc66688b38acc8bae3262cdb5e9",
      "tree": "69d58d7bea7f06eef2a9727a6e2e1662cfddbcec",
      "parents": [
        "84fb9e32fe8a434544751d82c320000aa4ee59a5"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 20:55:59 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 20:55:59 2014 +0100"
      },
      "message": "Release files - Squashfs2.1\n\n2.1\t10 DEC 2004\tSignificantly improved directory handling plus numerous\n\t\t\tother smaller improvements\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "84fb9e32fe8a434544751d82c320000aa4ee59a5",
      "tree": "3ba0b763a1ab42612d0efde163de24a89f65f625",
      "parents": [
        "b314dae08c46f4f2a7b698e4ff4e568119a9c817"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 20:44:49 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 20:44:49 2014 +0100"
      },
      "message": "Release files - Squashfs2.0r2\n\n2.0r2   29 AUG 2004     Workaround for kernel bug in kernels 2.6.8 and newer\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "b314dae08c46f4f2a7b698e4ff4e568119a9c817",
      "tree": "34156c9f44d1323c13e5c262ac8f9764b18d2a62",
      "parents": [
        "7868314d1addac1cdd876e80d1f9970cf43cea31"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 20:39:26 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 20:39:26 2014 +0100"
      },
      "message": "Release files - Squashfs2.0\n\n2.0\t13 JULY 2004\tA couple of new options, and some bug fixes\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "7868314d1addac1cdd876e80d1f9970cf43cea31",
      "tree": "577627fd3eedfe502eabf52961a4aa1bdf25aea2",
      "parents": [
        "9ef507759a3cb5535e5ba41892bc9f14fb5e66e1"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 20:30:49 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 20:30:49 2014 +0100"
      },
      "message": "Release files - Squashfs2.0-ALPHA\n\n2.0-ALPHA       21 MAY 2004     Filesystem changes and compression improvements\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "9ef507759a3cb5535e5ba41892bc9f14fb5e66e1",
      "tree": "889554e60a8eb08444d35640a1dcf70d9bcbbdbf",
      "parents": [
        "82d02f66678e924fcd809fd39895ea9d7136fb7a"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 19:56:10 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 19:57:05 2014 +0100"
      },
      "message": "Release files - Squashfs1.3r3\n\n1.3r3   18 JAN 2004\tThird release of 1.3, this adds a new mksquashfs option,\n\t\t\tsome bug fixes, and extra patches for new kernels\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "82d02f66678e924fcd809fd39895ea9d7136fb7a",
      "tree": "e3189162d4c5a8ba6f5cba46fd3261793e4d0888",
      "parents": [
        "f57a611f9753ae4b8381348373152b5cd7ab5053"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 19:50:51 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 19:50:51 2014 +0100"
      },
      "message": "Release files - Squashfs1.3r2\n\n1.3r2   14 OCT 2003     Second release of 1.3, bug fixes and extra patches for\n                        new kernels\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "f57a611f9753ae4b8381348373152b5cd7ab5053",
      "tree": "d382d4d5097bee32b924529b895a062be4a59b84",
      "parents": [
        "5f8544935b55edcfbe5c686e584151ad0b203b7d"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 19:47:20 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 19:47:20 2014 +0100"
      },
      "message": "Release files - Squashfs 1.3\n\n1.3\t29 JUL 2003\tFIFO/Socket support added plus optimisations and\n\t\t\timprovements\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "5f8544935b55edcfbe5c686e584151ad0b203b7d",
      "tree": "cff4cd339d8898b13ace42bba0db3338a992e06f",
      "parents": [
        "39ae28877fe1d7882e6830acfa02c5cc2832b316"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 05:44:57 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 19:43:27 2014 +0100"
      },
      "message": "Release files - Squashfs 1.2\n\n1.2\t13 MAR 2003\tAppend feature and new mksquashfs options added\n\nand the date typos in the CHANGES file have been fixed :)\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "39ae28877fe1d7882e6830acfa02c5cc2832b316",
      "tree": "5ea55e3a06abed5a76744b822803f73eb066743d",
      "parents": [
        "535346fab405e7f0dbaf0e7e640533d375920a7f"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 05:35:27 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 05:41:42 2014 +0100"
      },
      "message": "Release files - Squashfs 1.1b\n\n1.1b\t16 JAN 2003\tBug fix release\n\nOriginal release files, warts and all from the archives, including\nthe 2002 for 2003 typo in the CHANGES file.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "535346fab405e7f0dbaf0e7e640533d375920a7f",
      "tree": "e072fc29e49bb11d1a50ae522709d3a56573b2e7",
      "parents": [
        "7359718d0247fd674d3c8e794908d7b148b7b266"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 05:30:01 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 05:40:51 2014 +0100"
      },
      "message": "Release files - Squashfs 1.1\n\n1.1\t8 JAN 2003\tAdded features\n\nOriginal release files, warts and all from the archives, including\nthe 2002 for 2003 typo in the CHANGES file.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "7359718d0247fd674d3c8e794908d7b148b7b266",
      "tree": "d4ec1781703d4bfd65ef122830444e8c15209b3a",
      "parents": [
        "0f3cfbcbb437c04c3869f03ec8a5bf2bfdddbbe1"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 05:26:32 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 05:26:32 2014 +0100"
      },
      "message": "Release files - Squashfs 1.0c\n\n1.0c\t14 NOV 2002\tBug fix release\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "0f3cfbcbb437c04c3869f03ec8a5bf2bfdddbbe1",
      "tree": "4df7b37c4da8a8a57e7be06a668424e78e0fd06c",
      "parents": [
        "a3503709084785976d491eb37aa51ecf0dd02e4d"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 05:24:22 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 05:24:22 2014 +0100"
      },
      "message": "Release files - Squashfs 1.0b\n\n1.0b\t30 OCT 2002\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "a3503709084785976d491eb37aa51ecf0dd02e4d",
      "tree": "43c40d68060adf6a0f5d101746a30535c29e468b",
      "parents": [
        "c000873f337772cfdb8a844144d940c09c019c3e"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 05:15:38 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 05:15:38 2014 +0100"
      },
      "message": "Add the release files - Squashfs 1.0\n\nAdd the release files - the READMEs, CHANGES files etc. from\nthe Squashfs releases.  It is high time these were added to\nsource control!\n\nStart versioning from the very first README\n\n1.0\t23 OCT 2002\tInitial Release\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "c000873f337772cfdb8a844144d940c09c019c3e",
      "tree": "5df3ea2dced72cc7f16cec43f9b3ff6c0b88cd12",
      "parents": [
        "401c5785a8a7c0e5dddcb8ac31ae15304c3edf33"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 02:55:33 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 02:55:33 2014 +0100"
      },
      "message": "mksquashfs/actions: make the root of the in-core directory structure available\n\nto various action test operations.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "401c5785a8a7c0e5dddcb8ac31ae15304c3edf33",
      "tree": "611efee0941291e7827a5455826c2a0c456582f7",
      "parents": [
        "0ec549eea7cd751212b8fa5738dfa7917a59c5ab"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 01:08:27 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Fri Aug 08 01:11:16 2014 +0100"
      },
      "message": "GPL 2.0 license file - aka COPYING file\n\nSomeones\u0027s asked for this - so here it is :)\n"
    },
    {
      "commit": "0ec549eea7cd751212b8fa5738dfa7917a59c5ab",
      "tree": "5220f19c5424332567f66d8c3d2af1b64bb2268e",
      "parents": [
        "6b5d455697dab175e7131e6cf9d2fe656c85d997"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Aug 06 23:48:39 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Aug 06 23:48:39 2014 +0100"
      },
      "message": "action: add dircount_range test operation\n\nCompare the number of items in the directory (in the output\nfilesystem as opposed to the source filesystem) against the supplied\n[min, max] value range and return TRUE or FALSE.\n\nInitially believed this and the previous dircount() couldn\u0027t\nbe implemented via my generic TEST_VAR_{RANGE_}FN macros, but in\nfact they can.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "6b5d455697dab175e7131e6cf9d2fe656c85d997",
      "tree": "840902e79cf4b6d7a980e15cceb43fd758578168",
      "parents": [
        "a164cfdfb0a9ace9512b92d267cc02c721bc82fb"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Aug 04 04:43:15 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Aug 04 04:43:15 2014 +0100"
      },
      "message": "mksquashfs: fix dir_scan5() -- empty prune action\n\nDir_scan5() did not check for root entries (entries in the root\ndirectory read from the original filesystem in append mode).\n\nThese entries are not \"real\" entries in that they cannot be evaluated\nfor emptiness.  The entries only exist in the original filesystem\namd must be skipped.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "a164cfdfb0a9ace9512b92d267cc02c721bc82fb",
      "tree": "b6b83772edd0e982ff351a7f90a819282919471d",
      "parents": [
        "c40908f87cbaa9b4ee5cc9bfb0543f50250643c0"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Aug 04 04:26:33 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Aug 04 04:26:33 2014 +0100"
      },
      "message": "action: add dircount() test operation\n\nCompare the number of items in the directory (in the output\nfilesystem as opposed to the source filesystem) against the supplied\nvalue and return TRUE or FALSE.\n\nThe comparison can be less than ([\u003c-]value), more than ([\u003e+]value),\nor equal (value).\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "c40908f87cbaa9b4ee5cc9bfb0543f50250643c0",
      "tree": "5e3df0bcaa6ba34afaec1d47ed576f9acb8e7307",
      "parents": [
        "2c4aa7347e84125d18bb537bd0246ae3a5f29d9d"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Aug 04 01:52:17 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Mon Aug 04 01:52:17 2014 +0100"
      },
      "message": "action: add comment describing generic TEST_VAR_FN macros\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "2c4aa7347e84125d18bb537bd0246ae3a5f29d9d",
      "tree": "647e7e4421c528ba4252221fcd04ae2f7d8a03fd",
      "parents": [
        "90f1ce35b03601b889fc57c9683aa040ab4dbc2d"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Sun Aug 03 23:26:07 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Sun Aug 03 23:26:07 2014 +0100"
      },
      "message": "action: parse_gid()\n\nName should be group in syntax error message.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "90f1ce35b03601b889fc57c9683aa040ab4dbc2d",
      "tree": "d91227da7b655710cc84a39f0ef901e8d6baaa38",
      "parents": [
        "9bdb0d91f8ba2110ab1828faa4e0fc3a49e68a7a"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Sun Aug 03 05:54:07 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Sun Aug 03 05:54:07 2014 +0100"
      },
      "message": "actions: fix gid() so it takes a name rather than just a number\n\nThe gid() test operation was added at the same time as all the other\ninode attribute test operators, and all these operations were implemented\ntaking a [+-]number as an argument.\n\nThis is obviously wrong for GIDs.  GIDs should be able to be specified\nas a name as well as a [+-]number.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "9bdb0d91f8ba2110ab1828faa4e0fc3a49e68a7a",
      "tree": "33e191b6a047995c0259aef20982dcd164e0be26",
      "parents": [
        "5038b13adc0b5a6ab96b9cf64852ab6cc0b979a7"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Sun Aug 03 05:26:05 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Sun Aug 03 05:26:05 2014 +0100"
      },
      "message": "actions: fix uid() so it takes a name rather than just a number\n\nThe uid() test operation was added at the same time as all the other\ninode attribute test operators, and all these operations were implemented\ntaking a [+-]number as an argument.\n\nThis is obviously wrong for UIDs.  UIDs should be able to be specified\nas a name as well as a [+-]number.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "5038b13adc0b5a6ab96b9cf64852ab6cc0b979a7",
      "tree": "c5bab22dae64fc6b3a8e1874f52a79b6657baffb",
      "parents": [
        "b792207c0eb7fa9eb318d0ab04e516a46c91e84c"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Thu Jul 31 04:16:13 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Thu Jul 31 04:16:13 2014 +0100"
      },
      "message": "action: implement readlink test operation\n\nDereference the symlink and evaluate the expression in the\ncontext of the file pointed to by the symlink.\nAll attributes are updated to refer to the file that is pointed to.\nThus the inode attributes, pathname, name and depth all refer to\nthe dereferenced file, and not the symlink\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "b792207c0eb7fa9eb318d0ab04e516a46c91e84c",
      "tree": "b2e3bb8c748e6aaf582e8639ad48c3173890f544",
      "parents": [
        "c4ec4eee0f13b8a07f248a52fa84f2f47dce91f8"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Jul 30 06:01:42 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Jul 30 06:01:42 2014 +0100"
      },
      "message": "actions: get rid of contained and contained_followlink\n\nThey are now subsumed in the rewritten exists function.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    },
    {
      "commit": "c4ec4eee0f13b8a07f248a52fa84f2f47dce91f8",
      "tree": "1261ceb80685f92ec66f215c1a94587dcc483083",
      "parents": [
        "b0bc3dd9a35e000251be592ed1296d9c793e7ac8"
      ],
      "author": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Tue Jul 29 05:20:26 2014 +0100"
      },
      "committer": {
        "name": "Phillip Lougher",
        "email": "phillip@squashfs.org.uk",
        "time": "Wed Jul 30 05:34:51 2014 +0100"
      },
      "message": "actions: rewrite exists() test operation\n\nRewrite exists() test operation to operate on the scanned in-core\ndirectory structure.\n\nThis allows exists() to be rewritten, and to change it\u0027s behaviour to\nbe more straightforward.  It now tests to see if the symbolic link\nexists in the output filesystem.  It also now follows any symbolic\nlinks embedded in the pathname to ensure that the symbolic link\nis fully dereferenceable to an existing entry, and that no\nsymlinks do not exist or are absolute.\n\nIn that way, it is believed the semantics of exists() are now more\nobvious and are more intuitive.\n\nThe new implementation of exists() subsumes the previously separate\nexists(), contained() and contained_followlink() test operations.\n\nPreviously, three separate test operations were needed, and they\nwere written in the way they were, due to limitations imposed due\nto the fact they were operating on the source directory.  This is because\nthey were originally intended to be used with the exclude action where\nthe directory structure has not been fully scanned.\n\nThe introduction of the prune action allows these test operations to\nbe rewritten.  Which is, obviously, why the prune action was\nintroduced.\n\nSigned-off-by: Phillip Lougher \u003cphillip@squashfs.org.uk\u003e\n"
    }
  ],
  "next": "b0bc3dd9a35e000251be592ed1296d9c793e7ac8"
}
