<feed xmlns='http://www.w3.org/2005/Atom'>
<title>squashfs-tools-ng.git/lib, branch fixes-1.3.0</title>
<subtitle>A new set of tools and libraries for working with SquashFS images</subtitle>
<id>https://git.infraroot.at/squashfs-tools-ng.git/atom?h=fixes-1.3.0</id>
<link rel='self' href='https://git.infraroot.at/squashfs-tools-ng.git/atom?h=fixes-1.3.0'/>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/'/>
<updated>2024-09-26T09:47:24+00:00</updated>
<entry>
<title>Add no-pad option to gensquashfs, sqfs2tar</title>
<updated>2024-09-26T09:47:24+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2024-09-26T09:47:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=e9d1d3dc9aa4b53be536f97f253cc908e58429ec'/>
<id>urn:sha1:e9d1d3dc9aa4b53be536f97f253cc908e58429ec</id>
<content type='text'>
This works similar to the option for mksquashfs, preventing the image
from being padded to device block size.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Fix win32 filename sanitation for cases were we have clashes</title>
<updated>2024-02-14T08:21:30+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2024-02-14T08:21:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=358073d713deb16460ae633d5a48a8e48180369f'/>
<id>urn:sha1:358073d713deb16460ae633d5a48a8e48180369f</id>
<content type='text'>
We fix filenames containing components like COM1 or PRN by appending
an underscore ('_'). A squashfs archive may contain files that already
have such a modifed name (e.g. COM1_) which would now potentially
clash.

This is fixed by matching any number of trailing '_' characters for
the bad name and adding another one. So all existing names that start
with an illegal prefix and have any number of underscores, will always
have an additional one appended.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Add utility function to fixup Windows file paths</title>
<updated>2024-02-09T14:59:37+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2024-02-09T14:59:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=ae048f7ac4a9ab6576ca6842aa13e5c9c31e35a7'/>
<id>urn:sha1:ae048f7ac4a9ab6576ca6842aa13e5c9c31e35a7</id>
<content type='text'>
The idea is to iterate over a (canonicalized) path with forward
slashes by components, i.e. file and directory names. Each name
is then looked at by iterating over components, i.e. everything
between dots.

If a component is an illegal name, like COM1 or AUX, we add an
underscore. If it contains illegal characters, like : or \, we
re-map that character into unicode private use area.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Remove check for OS specific stuff from is_filename_sane</title>
<updated>2024-02-09T14:32:41+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2024-02-09T14:24:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=48b3355c7a887530a9bd17a1ad571e402102dd95'/>
<id>urn:sha1:48b3355c7a887530a9bd17a1ad571e402102dd95</id>
<content type='text'>
Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>libsqfs: add a threshold for extended directory inodes with index</title>
<updated>2024-01-24T08:56:10+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2023-01-19T14:18:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=d81b85ba4db12c2052a8fdd3b4e77343740d6fba'/>
<id>urn:sha1:d81b85ba4db12c2052a8fdd3b4e77343740d6fba</id>
<content type='text'>
mksquashfs generates extended inodes if a directory contains 256
entries. libsquashfs so far only generated extended inodes if there
is no other way to encode it. Mimic the behaviour of mksquashfs by
adding a threshold.

For this to work, the "sqfs_inode_set_xattr_index" function has to
be changed to not immediately try to demote inodes to basic types.
The fstree serialization is modified to do that itself if the index
is 0xFFFFFFFF and the target is not a directory inode.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Fix unix istream eof flag</title>
<updated>2022-12-13T23:06:50+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2022-12-13T23:04:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=13276810b1b892d4aad62e2362e00afbe654b5b2'/>
<id>urn:sha1:13276810b1b892d4aad62e2362e00afbe654b5b2</id>
<content type='text'>
Propperly set the parent eof flag and not a local one that isn't
accessed at all.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Move gensquashfs specific code from libfstree to gensquashfs</title>
<updated>2022-11-22T13:45:32+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2022-11-22T13:45:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=168ef9be32ad754d7bcb38ed70787237fc12630d'/>
<id>urn:sha1:168ef9be32ad754d7bcb38ed70787237fc12630d</id>
<content type='text'>
The "from dir" and from "from file" code, as well as the "sort file"
code is specific to gensquashfs, so move them there and the test
cases as well.

The medium term idea is to reduce libfstree to a stub, merge it into
the generic writer and ultimately hoist that into libsquashfs.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Get rid of the built-in copy of LZ4</title>
<updated>2022-11-22T07:17:44+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2022-11-22T07:17:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=47e531197b18a0e9806bf8e3a2e69f203f5efd13'/>
<id>urn:sha1:47e531197b18a0e9806bf8e3a2e69f203f5efd13</id>
<content type='text'>
On Linux or BSD distributions we have a native version installed
via package manager. On Windows, we can just build it from source
like the other libraries.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Make some string functions from libcompat available to libsquashfs</title>
<updated>2022-11-21T14:27:10+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2022-11-21T13:25:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=91e8aafc8259115b7fff81d46bee82bca036526e'/>
<id>urn:sha1:91e8aafc8259115b7fff81d46bee82bca036526e</id>
<content type='text'>
Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>libsqfs: Fix an overzealous bounds check in the block processor</title>
<updated>2022-11-18T15:21:12+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2022-11-18T15:17:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=9d189b6091a7011bfac8a9c09af750614d82a10d'/>
<id>urn:sha1:9d189b6091a7011bfac8a9c09af750614d82a10d</id>
<content type='text'>
When (during fragment deduplication) a fragment block is read back
from disk and unpacked, it can happen that it is _exactly_ the
given block size. The bounds check did '&gt;=' instead of '&gt;' and
failed in that case with a "data corruption" error.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
</feed>
