Compare commits

...
Sign in to create a new pull request.

121 commits

Author SHA1 Message Date
Fedora Release Engineering
246f20758c Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 18:40:29 +00:00
Fedora Release Engineering
a219bd1500 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-19 11:30:13 +00:00
Fedora Release Engineering
4f33d9dd14 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-20 06:19:06 +00:00
Fedora Release Engineering
2a6d2b84fe Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-27 04:13:51 +00:00
Pavel Reichl
dc19b30fc6 Convert License tag to SPDX format
Related: https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_2
Signed-off-by: Pavel Reichl <preichl@redhat.com>
2023-10-16 05:44:23 +02:00
Fedora Release Engineering
a85b390063 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-22 02:23:48 +00:00
Bruno Wolff III
19fef1af31 Update for 4.6.1
Only one of the fixes seems to apply to us and shouldn't have
affected composes.
I was also able to simplify the spec file after Phillip modified
the way he tagged releases.
2023-03-29 18:55:56 -05:00
Bruno Wolff III
6a1ea5214e Remove dist prefix from the release
Upstream used a different naming scheme for the release to solve
someone else's problem. That required us to tweak how we used
forgemeta to use the matching archive naming. The fix for that
triggered adding the tag to the release which I didn't want for
rpms based off of an actual release. So a second tweak was done
to fix that.
2023-03-17 19:05:01 -05:00
Bruno Wolff III
edbe07b14f 4.6 release 2023-03-17 18:36:36 -05:00
Adam Williamson
170ea8d03e Backport PR #231 to fix a crash (#2178510) 2023-03-15 12:58:39 -07:00
Bruno Wolff III
c83d9ab871 A few minor memory leaks were fixed 2023-03-14 18:49:50 -05:00
Bruno Wolff III
b280d436ab Probably the last update before the official release
The release is tetstively scheduled for tomorrow and I'd like one last
chance for testing before it happens.
2023-03-12 22:22:05 -05:00
Bruno Wolff III
2073c47ba2 Get all README and USAGE files
This way we don't need to worry about version numbers in the names.
2023-03-12 22:14:19 -05:00
Bruno Wolff III
780d2c1999 Get some manual updates and unanchored search improvements 2023-03-06 02:03:41 -06:00
Bruno Wolff III
b80cc2ea93 Update the release string
This is extra important since there was a typo in the date previously.
2023-02-28 07:26:21 -06:00
Bruno Wolff III
1356cfd6af Get some more prerelease updates
This includes updated documentation and a minor bug fix
2023-02-28 07:09:27 -06:00
Bruno Wolff III
bbde1b74a3 Update the sources file 2023-02-23 11:03:13 -06:00
Bruno Wolff III
d539ae94f6 I forgot to remove the -i and -v options to forgemeta
This adds noise to builds that isn't needed.
2023-02-23 10:50:17 -06:00
Bruno Wolff III
c68ead5389 Fix incorrect date 2023-02-23 10:39:59 -06:00
Bruno Wolff III
bc602cbf2f Prerelease of 4.6
Phillip is about to release version 4.6 and I'd like to get some
testing in rawhide before that to make deploying any needed fix
easier.

I already ran a test that exercises the features that we use in
composes and didn't see any problems, so I'm not expecting any
problems.
2023-02-23 10:35:21 -06:00
Fedora Release Engineering
a781d747a4 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-21 03:56:30 +00:00
Fedora Release Engineering
ff459fa3cf Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-23 09:18:10 +00:00
Bruno Wolff III
5658fff821 4.5.1 released 2022-03-19 11:32:27 -05:00
Bruno Wolff III
d5ed7f4010 Minor fix
Changes should slow down now and a tagged release might be a week
away. So this version might get pushed down to f34 and f35 even
though the release hasn't been tagged yet.
2022-03-11 01:46:42 -06:00
Bruno Wolff III
80b6c5c24d Minor fixes and doc files updates 2022-03-10 05:38:11 -06:00
Bruno Wolff III
6b746e8d48 Upstream fix for breakage of unsquashfs 2022-03-08 23:07:14 -06:00
Bruno Wolff III
c5ff26b19a Lastest upstream
Minor fixes
Man page tweaks
Tentative change log
2022-03-08 19:12:26 -06:00
Bruno Wolff III
dc28aaa917 Pick up a couple of minor fixes 2022-03-07 22:34:36 -06:00
Bruno Wolff III
c16b959039 Some more minor fixes 2022-03-04 19:56:41 -06:00
Bruno Wolff III
967d3cda1d Some more man page improvements 2022-02-28 20:59:17 -06:00
Bruno Wolff III
72ea487830 Pick up some more man page improvements 2022-02-25 11:43:24 -06:00
Bruno Wolff III
0e227007f0 Get a man page improvement 2022-02-23 04:19:11 -06:00
Bruno Wolff III
1b406bfb5b More minor fixes for static analysis issues 2022-02-21 21:10:39 -06:00
Bruno Wolff III
0f2a443449 Pick up some more fixes for some minor issues 2022-02-18 22:36:58 -06:00
Bruno Wolff III
c5efeec477 Pick up a few more fixes 2022-02-17 01:23:21 -06:00
Bruno Wolff III
2521e66946 Pick up a few fixes for issues caught by a static analyzer 2022-02-15 07:21:45 -06:00
Bruno Wolff III
8b41a6d40e A few more bug fixes before 4.5.1 2022-02-14 03:42:15 -06:00
Bruno Wolff III
a9c890485b Add some fixes for gcc warnings 2022-02-10 17:11:07 -06:00
Bruno Wolff III
70b9243850 Add a man page for sqfscat 2022-02-10 02:00:25 -06:00
Bruno Wolff III
7268db5b5a Add a man page for sqfstar 2022-02-09 00:17:49 -06:00
Bruno Wolff III
e9b6e8c165 Man page for unsquashfs has been added 2022-02-08 17:26:07 -06:00
Bruno Wolff III
3a81516970 Get lmza man pages improvements
There is now better documentation in the man page and help for
the deprecated lzma support when it is built with that enabled.

There is still a bit more stuff expected before the 4.5.1 release.
I don't expect updates to be pushed back to released versions of
Fedora until that release occurs or something unexpected happens.

The point of getting these updates into rawhide is to make it less
likely that a regression gets into the 4.5.1 release.
2022-02-07 18:50:31 -06:00
Bruno Wolff III
ec28c2bb72 Switch to building man pages from help output
For now only mksquashfs.1 is built, as the work isn't complete.
I've provided some feedback already on this feature.
2022-02-07 05:04:24 -06:00
Bruno Wolff III
8c554f53c4 More testing of squashfs-tools before the imminent release
Phillip has one of the man pages ready.
2022-02-04 01:28:10 -06:00
Bruno Wolff III
fce3fe9586 Testing before new release gets tagged
There are a few more commits updating help messages. This is still
just for rawhide.
2022-02-02 02:38:48 -06:00
Bruno Wolff III
7514e2801d Get some wider testing before a new squashfs-tools point release
Phillip is going to issue a new point release soon. Adding man pages is
the main thing to still be done. There are a few changes since our last
bug fix update. I want to get a little wider testing of the changes
before Phillip tags the new release. I'd rather not find something
just after the releae like what happened with 4.5.

I'm not going to push this to released versions of Fedora. Once the
new point release is out, I expect to eventually push that to released
versions of Fedora.
2022-01-28 01:55:07 -06:00
Fedora Release Engineering
5ba26eb7bd - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-22 01:33:06 +00:00
Bruno Wolff III
3bda04b33e Pick up a few upstream fixes.
These are pretty minor and I wasn't planning on building anywhere but
rawhide for the time being. I think there is a good chance of additional
minor updates within a month or two. In particular, it would make sense
to tag a minor release. But I'd like to get a little wider testing of
the changes so far, because we found some issues right after the last
tagged release, because we didn't do enough testing.
2021-12-28 09:09:49 -06:00
Bruno Wolff III
4603989d56 Get fix for write outside destination directory
Another write outside destination directory issue was fixed
post 4.5. While 4.5.1 should be out soon, I wanted to get
this out since the release date isn't known yet.
2021-09-13 09:52:04 -05:00
Bruno Wolff III
8bc59796df Prepare for rebase 2021-09-13 08:50:22 -05:00
Bruno Wolff III
dae6dc6e91 Include upstream fix for bug 1985561
From a comment on the bug:
This is a regression caused by rewriting the duplicate checking code
to be more aggressive when looking for duplicates when using tail-end
packing.  In particular a file doesn't now have to be the same size
to be considered a (partial) duplicate.
2021-07-26 07:23:53 -05:00
Bruno Wolff III
081359eb42 4.5 has been released
his is a bare bones update to test the release. There were a lot of
changes and 2 new sym lynced names. The programs help has info
about this. But the man pages are missing a lot and still need to
be updated. Potentially command line changes could break composes,
though I am not expecting that.
2021-07-23 01:14:26 -05:00
Fedora Release Engineering
e86b5be82f - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-27 20:57:09 +00:00
Tom Stellard
c62728b1e0 Add BuildRequires: make
https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot
2021-01-08 21:54:11 +00:00
Bruno Wolff III
dd8407797b Work around not being able to restart gating tests 2020-11-14 06:55:41 -06:00
Bruno Wolff III
14b09b0380 New upstream release 4.4-git.1
This has a minor fix added after the snapshot we used.
2020-11-11 13:07:23 -06:00
Fedora Release Engineering
c671752333 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-29 11:21:48 +00:00
Bruno Wolff III
a22c334e07 Sources for the man pages had some changes that were uploaded
This changed the hashes in the sources file.
2020-05-12 20:42:31 -05:00
Bruno Wolff III
0fe4a80add Update list of documentation files 2020-05-12 20:09:49 -05:00
Bruno Wolff III
3f7b918958 Avoid warning for macro use in a comment 2020-05-12 20:06:22 -05:00
Bruno Wolff III
66cdccfe02 Update the change log for the new release 2020-05-12 20:03:49 -05:00
Bruno Wolff III
aab9aed384 None of the old patches are needed any more 2020-05-12 19:59:33 -05:00
Bruno Wolff III
2b6677ffdf Switch upstream from sourceforge to github
Some more work still needs to be done since the version is also
changing.
2020-05-12 19:54:04 -05:00
Bruno Wolff III
e9664596a0 New upstream source tar ball. 2020-05-12 19:52:08 -05:00
Bruno Wolff III
23b679cf9b Fix a duplicate definition flagged by gcc10
This git fixed a couple of weeks ago upstream, the same way.
2020-02-08 22:14:33 -06:00
Fedora Release Engineering
fd7f0cdadb - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-31 00:09:47 +00:00
Jeff Law
e209865f0d - Fix undefined symbol when building with LTO due to incorrect
use of inline function
2020-01-17 13:13:21 -07:00
Fedora Release Engineering
abdfb4b8be - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-27 00:02:45 +00:00
Bruno Wolff III
da565ee59f Update release in spec file 2019-06-24 19:44:40 -05:00
Bruno Wolff III
258bc8ea26 Add zstd support
In order to get this done now, rather than double some patches before
going to the tip of Phillip's tree, use a cherry picked patch from that
tree.

John Friend pulled together the patch written by Sean Purcell for upstream.
Paul Frields did some review, so I didn't need to.
2019-06-24 18:22:40 -05:00
Bruno Wolff III
a0f4e549d0 Update mksquashfs man page for zstd 2019-06-24 18:06:51 -05:00
Bruno Wolff III
612a735785 Need a trailing slash for the artifacts directory 2019-05-23 11:18:35 -05:00
Bruno Wolff III
4f08b31430 Change to supported method of referring to artifacts location
The documentation used to be wrong, but has been fixed. So the hack here
has been fixed as well.
2019-05-23 09:39:06 -05:00
Bruno Wolff III
6013fc72af Make kernel-modules match running kernel 2019-05-22 16:37:32 -05:00
Bruno Wolff III
b429d76ed8 Need a comma 2019-05-22 16:05:50 -05:00
Bruno Wolff III
5fe4bc06f6 Try another syntax for multiple packages 2019-05-22 15:52:41 -05:00
Bruno Wolff III
7369a2d782 It looks like we do need kernel-modules 2019-05-22 15:36:03 -05:00
Bruno Wolff III
3bd4f13835 Try force loading the squashfs module 2019-05-22 15:13:00 -05:00
Bruno Wolff III
b2fd4155d2 Keep the newline 2019-05-22 14:39:09 -05:00
Bruno Wolff III
727b615127 Add squashfs to filesystems that should be supported 2019-05-22 14:20:03 -05:00
Bruno Wolff III
71002dc00f Auto detect for squashfs might not be working 2019-05-22 13:36:11 -05:00
Bruno Wolff III
6c0fbc51d1 Correct dnf module syntax 2019-05-22 12:42:57 -05:00
Bruno Wolff III
f0298d56c6 Try using the dnf module 2019-05-22 12:05:04 -05:00
Bruno Wolff III
6a521a3d60 Fix typo 2019-05-22 11:49:58 -05:00
Bruno Wolff III
786bcd85ae Add some filesystem related diagnostics
Get some help trying to figure out what is missing for squashfs loopback
mounts.
2019-05-22 11:10:45 -05:00
Bruno Wolff III
3e58d02dc3 Fix typo 2019-05-22 07:53:37 -05:00
Bruno Wolff III
60cf0845ea Keep setup output out of test.log
It looks like the command that gets run covers more than the test script.
We need to keep that other output out of the output we search for
failure. The includes the dnf step, since it can have non fatal failures.
It also looks like the dnf step might need kernel-modules-extra for
mounting squashfs file systems.
2019-05-22 04:47:43 -05:00
Bruno Wolff III
0e49acc5e0 Get rid of remnents of indirect test run 2019-05-22 04:22:53 -05:00
Bruno Wolff III
046ee552fa Since no keys are local, we need to skip the gpg check 2019-05-22 04:15:43 -05:00
Bruno Wolff III
03cca674b3 Revert "Temporary test of failure condition"
This reverts commit 3ee685078b.
2019-05-22 04:10:25 -05:00
Bruno Wolff III
1c8c77c39c Need a trailing slash 2019-05-22 03:56:54 -05:00
Bruno Wolff III
e6946467a1 See if we can make .. work. 2019-05-22 03:41:16 -05:00
Bruno Wolff III
3665efe8d8 remote_artifacts is used by the basic role
So it might be it is defined even for the wrapper playbook. Probably not,
but let's test it.
2019-05-22 03:25:25 -05:00
Bruno Wolff III
ed7f34e778 Guess that the logs directory is in the logs variable
If that doesn't work, we will try using .. to go up.
2019-05-22 02:56:00 -05:00
Bruno Wolff III
9409f1ebcb Let artifacts be default
It might be that setting artificts to allow running locally breaks
things when used by CI.
2019-05-22 02:31:36 -05:00
Bruno Wolff III
d0cc794f82 Missed a reference to the output 2019-05-22 02:12:19 -05:00
Bruno Wolff III
8108bf4d52 Need to install rpmdevtools manually again
When running a wrapper there doesn't seem to be a way to require packages.
2019-05-22 01:53:45 -05:00
Bruno Wolff III
f90f73457d Retest using the wrapper directly 2019-05-22 01:51:56 -05:00
Bruno Wolff III
1d41ba0fdc The standard interface has test.log as output
I can't choose what I want, so avoiding overwriting by using a different
name isn't going to work.
2019-05-22 01:43:14 -05:00
Bruno Wolff III
9f5a5af2ab It looks like test.log is getting over written
The output checked for failure doesn't show up as an artifact, making
it hard to know why a test failed.
2019-05-22 01:00:53 -05:00
Bruno Wolff III
3ee685078b Temporary test of failure condition 2019-05-22 00:27:33 -05:00
Bruno Wolff III
94a7f4a166 rpmdevtools is installed by basic role
We don't need to try and install it in the test script.
2019-05-22 00:26:06 -05:00
Bruno Wolff III
9959118c08 We need ansible installed
For this approach to maybe work, we need to be able to
run ansible-playbook.
2019-05-21 23:55:57 -05:00
Bruno Wolff III
afc87975fa Try calling tests using ansible-playbook
I'm guessing that the wrapper isn't supposed to be run directly, but
should be run using ansible-playbook from a test using the basic role.
2019-05-21 18:46:21 -05:00
Bruno Wolff III
e89b109bdc Revert "Try not specifying artifacts location"
This reverts commit 0a03e389c6.
It made things worse.
2019-05-21 14:12:07 -05:00
Bruno Wolff III
0a03e389c6 Try not specifying artifacts location
It looks like the artifacts might not have been going to the correct
place based on the reported errors. So try using the default value instead
of the one from the examples.
2019-05-21 13:48:15 -05:00
Bruno Wolff III
8fb4d38c98 Add gating
This won't do anything in rawhide, but once it is moved to release
branches, it will catch really broken builds.
2019-05-21 13:25:50 -05:00
Bruno Wolff III
d81a1f88a6 Add a CI test 2019-05-21 12:39:33 -05:00
Bruno Wolff III
6f53595658 Fix issue with LDFLAGS not getting set
Bug 1573109.
2019-05-21 02:48:48 -05:00
Bruno Wolff III
bc150b2804 Add fix for glibc changes 2019-05-21 01:59:57 -05:00
Fedora Release Engineering
48fdbae943 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-02-03 08:28:12 +00:00
Igor Gnatenko
3e0884a0b5 Remove obsolete Group tag
References: https://fedoraproject.org/wiki/Changes/Remove_Group_Tag
2019-01-28 20:24:50 +01:00
Igor Gnatenko
b85fd9509f
Add missing BuildRequires on gcc
make: cc: Command not found

References: https://bugzilla.redhat.com/show_bug.cgi?id=1606409
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-07-24 16:55:37 +02:00
Fedora Release Engineering
2860d59181 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-07-14 06:38:28 +00:00
Jason Tibbitts
8354ad07a4 Remove needless use of %defattr 2018-07-10 01:26:43 -05:00
Igor Gnatenko
931f8cd02f
Remove %clean section
None of currently supported distributions need that.
Last one was EL5 which is EOL for a while.

Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-02-14 07:40:21 +01:00
Igor Gnatenko
6e02df8406 Remove BuildRoot definition
None of currently supported distributions need that.
It was needed last for EL5 which is EOL now

Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-02-14 00:39:57 +01:00
Fedora Release Engineering
c150302e27 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-02-09 17:32:20 +00:00
Fedora Release Engineering
5cdea330e6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild 2017-08-03 08:48:01 +00:00
Fedora Release Engineering
6da06ea655 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild 2017-07-27 19:12:02 +00:00
Fedora Release Engineering
b21880f363 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild 2017-02-11 13:54:19 +00:00
13 changed files with 493 additions and 292 deletions

38
.gitignore vendored
View file

@ -8,3 +8,41 @@ squashfs-4.1.tar.bz2
/squashfs4.3.tar.gz
/unsquashfs.1
/mksquashfs.1
/squashfs-tools-c570c6188811088b12ffdd9665487a2960c997a0.tar.gz
/4.4-git.1.tar.gz
/squashfs-tools-4.5.tar.gz
/4.5.tar.gz
/squashfs-tools-e0485802ec72996c20026da320650d8362f555bd.tar.gz
/squashfs-tools-5ae7238a0ae6fc420f55227d052ce9b1c66a9d0f.tar.gz
/squashfs-tools-d5a583e4edce3df9f0c3bca84bff4f1d5ad3d09c.tar.gz
/squashfs-tools-11c9591260599b7874841db6f69ae570708a4077.tar.gz
/squashfs-tools-8a9d02e0027c69e6f47d8c2ed995d8c755c9581b.tar.gz
/squashfs-tools-d61eb68d75b32977b6c5a8b2d2fe57cbef0d6b4a.tar.gz
/squashfs-tools-7f9203e31bae003d12c0fc81a4b32097d17b5618.tar.gz
/squashfs-tools-bd186a77fe670d635e65b021b3d05fc6e67f8d07.tar.gz
/squashfs-tools-9e46a75985f0b236797976e387e8bce717e7a2d5.tar.gz
/squashfs-tools-0425d3d2d87a7775864bc6d04a4c8c45b93fa9b2.tar.gz
/squashfs-tools-e7e96fe6ecd5c01aada20908188d9d0096ad0bd8.tar.gz
/squashfs-tools-a8f61e2a38992d4cd967303a61277123fcd66681.tar.gz
/squashfs-tools-de944c3e6fc8861d8a8844186983d1295415fdaf.tar.gz
/squashfs-tools-f491ad858bcacf32dab2b37b3b0b325aa0ea6668.tar.gz
/squashfs-tools-75951fb96de64e8062306359c87d987b527a42d0.tar.gz
/squashfs-tools-f3783bbec5b0f105c6571699d3fd38803a345b12.tar.gz
/squashfs-tools-bc0c097be93154997fe0576181e5c12d746a1420.tar.gz
/squashfs-tools-2dfbcdac38bc42af4b200a1a1e86d3154e079e04.tar.gz
/squashfs-tools-c883f3212cf5004c49121e0803f12d26d0db6a97.tar.gz
/squashfs-tools-263a14e4d1ec93fbd192289bc3aae0cac2485221.tar.gz
/squashfs-tools-2baf12e55af5a519e1285437343d3a606962a4b6.tar.gz
/squashfs-tools-580b4e122471c11dffb7dcf1e392a72c8dcb6512.tar.gz
/squashfs-tools-8b6ee895c763f0b8e2f394d83e93fc5a3e51942f.tar.gz
/squashfs-tools-2ac40ca6d23cad73fb5b5da0c915382eaa31378d.tar.gz
/squashfs-tools-de61d00ffd2689d122696d4fc39f584c72fb24cf.tar.gz
/squashfs-tools-76624e1e6be8e16ca08273eaadb82d7b38f3d5a5.tar.gz
/squashfs-tools-4.5.1.tar.gz
/squashfs-tools-7cf6cee6acfa61a423d63168ad198a3bfafacda8.tar.gz
/squashfs-tools-746a81c8ea15e0573cc6abca9dc52e265d43a049.tar.gz
/squashfs-tools-1eaad6d730604131f0da0c675e547cfe544ddcfa.tar.gz
/squashfs-tools-aaf011a868c786b06e74cbdaf860d45793939f35.tar.gz
/squashfs-tools-36abab0ad661247498834c2e7f5e1ec476f2081d.tar.gz
/squashfs-tools-squashfs-tools-4.6.tar.gz
/squashfs-tools-4.6.1.tar.gz

View file

@ -0,0 +1,33 @@
From 5b2b9acd762e859822c99c5262d0bcbccff619de Mon Sep 17 00:00:00 2001
From: Adam Williamson <awilliam@redhat.com>
Date: Wed, 15 Mar 2023 12:35:38 -0700
Subject: [PATCH] xattrs: fix out of bounds access (again)
This restores the fix from c5db34e , which was somehow lost in
83b2f3a . `j` is not available after the loop is done, we need
to use i. We use `i - 1` because, of course, list indexes start
at 0.
Fixes https://github.com/plougher/squashfs-tools/issues/230
Signed-off-by: Adam Williamson <awilliam@redhat.com>
---
squashfs-tools/xattr.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/squashfs-tools/xattr.c b/squashfs-tools/xattr.c
index d48d950..32343f5 100644
--- a/squashfs-tools/xattr.c
+++ b/squashfs-tools/xattr.c
@@ -838,7 +838,7 @@ int read_xattrs(void *d, int type)
for(j = 1; j < i; j++)
xattr_list[j - 1].vnext = &xattr_list[j];
- xattr_list[j].vnext = NULL;
+ xattr_list[i - 1].vnext = NULL;
head = xattr_list;
sort_xattr_list(&head, i);
--
2.39.2

View file

@ -1,11 +0,0 @@
--- squashfs-tools/mksquashfs.c.orig 2014-09-13 11:08:27.352318167 -0500
+++ squashfs-tools/mksquashfs.c 2014-09-13 11:09:36.701132044 -0500
@@ -2055,7 +2055,7 @@
inline int is_fragment(struct inode_info *inode)
{
- int file_size = inode->buf.st_size;
+ off_t file_size = inode->buf.st_size;
/*
* If this block is to be compressed differently to the

159
PAE.patch
View file

@ -1,159 +0,0 @@
From 55f7ba830d40d438f0b0663a505e0c227fc68b6b Mon Sep 17 00:00:00 2001
From: Phillip Lougher <phillip@squashfs.org.uk>
Date: Tue, 10 Jun 2014 21:51:52 +0100
Subject: mksquashfs: fix phys mem calculation for 32-bit processes on
PAE/64-bit kernels
When adding the code to base default memory usage on physical memory
(by default use 25% of physical memory), I made an oversight. I assumed
the process would be able to address 25% of physical memory.
However, for 32-bit processes running on a PAE kernel or 64-bit kernel,
25% of physical memory can easily exceed the addressible memory for a
32-bit process, e.g. if a machine has 24 GB of physical memory, the
code would asume the process could easily use 6 GB.
A 32-bit process by definition can only address 4 GB (32-bit pointers).
But, due to the typical kernel/user-space split (1GB/3GB, or 2GB/2GB)
on PAE kernels, a 32-bit process may only be able to address 2 GB.
So, if Mksquashfs is a 32-bit application running on a PAE/64-bit kernel,
the code assumes it can address much more memory than it really can, which
means it runs out of memory.
The fix is to impose a maximum default limit on 32-bit kernels, or
otherwise to never use a value more than 25% of the address space. If
we assume the maximum address space is 2 GB, then the maximum becomes
512 MB. But, given most kernels used the 1GB/3GB split, that may be
unduely conservative, and 25% of 3 GB (756 MB) may be better. This
patch compromises on 640 MB, which is mid-way between the 512 MB and 756 MB
values. It is also the fixed default value previously used by Mksquashfs.
This patch also alters the code which imposes a maximum size. Previously
it was believed limiting to the physical memory size was adequate. But
obviously this needs to be updated to take into account a 32-bit process
may only be able to address 2 GB. In the process I've also taken the
opportunity to limit all requests to no more than 75% of physical memory.
Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
diff --git a/squashfs-tools/mksquashfs.c b/squashfs-tools/mksquashfs.c
index 86f82bb..5370ecf 100644
--- a/squashfs-tools/mksquashfs.c
+++ b/squashfs-tools/mksquashfs.c
@@ -304,7 +304,7 @@ void restorefs();
struct dir_info *scan1_opendir(char *pathname, char *subpath, int depth);
void write_filesystem_tables(struct squashfs_super_block *sBlk, int nopad);
unsigned short get_checksum_mem(char *buff, int bytes);
-int get_physical_memory();
+void check_usable_phys_mem(int total_mem);
void prep_exit()
@@ -4053,11 +4053,7 @@ void initialise_threads(int readq, int fragq, int bwriteq, int fwriteq,
BAD_ERROR("Queue sizes rediculously too large\n");
total_mem += fwriteq;
- if(total_mem > get_physical_memory()) {
- ERROR("Total queue sizes larger than physical memory.\n");
- ERROR("Mksquashfs will exhaust physical memory and thrash.\n");
- BAD_ERROR("Queues too large\n");
- }
+ check_usable_phys_mem(total_mem);
/*
* convert from queue size in Mbytes to queue size in
@@ -4879,6 +4875,72 @@ int get_physical_memory()
}
+void check_usable_phys_mem(int total_mem)
+{
+ /*
+ * We want to allow users to use as much of their physical
+ * memory as they wish. However, for practical reasons there are
+ * limits which need to be imposed, to protect users from themselves
+ * and to prevent people from using Mksquashfs as a DOS attack by using
+ * all physical memory. Mksquashfs uses memory to cache data from disk
+ * to optimise performance. It is pointless to ask it to use more
+ * than 75% of physical memory, as this causes thrashing and it is thus
+ * self-defeating.
+ */
+ int mem = get_physical_memory();
+
+ mem = (mem >> 1) + (mem >> 2); /* 75% */
+
+ if(total_mem > mem) {
+ ERROR("Total memory requested is more than 75%% of physical "
+ "memory.\n");
+ ERROR("Mksquashfs uses memory to cache data from disk to "
+ "optimise performance.\n");
+ ERROR("It is pointless to ask it to use more than this amount "
+ "of memory, as this\n");
+ ERROR("causes thrashing and it is thus self-defeating.\n");
+ BAD_ERROR("Requested memory size too large\n");
+ }
+
+ if(sizeof(void *) == 4 && total_mem > 2048) {
+ /*
+ * If we're running on a kernel with PAE or on a 64-bit kernel,
+ * then the 75% physical memory limit can still easily exceed
+ * the addressable memory by this process.
+ *
+ * Due to the typical kernel/user-space split (1GB/3GB, or
+ * 2GB/2GB), we have to conservatively assume the 32-bit
+ * processes can only address 2-3GB. So refuse if the user
+ * tries to allocate more than 2GB.
+ */
+ ERROR("Total memory requested may exceed maximum "
+ "addressable memory by this process\n");
+ BAD_ERROR("Requested memory size too large\n");
+ }
+}
+
+
+int get_default_phys_mem()
+{
+ int mem = get_physical_memory() / SQUASHFS_TAKE;
+
+ if(sizeof(void *) == 4 && mem > 640) {
+ /*
+ * If we're running on a kernel with PAE or on a 64-bit kernel,
+ * the default memory usage can exceed the addressable
+ * memory by this process.
+ * Due to the typical kernel/user-space split (1GB/3GB, or
+ * 2GB/2GB), we have to conservatively assume the 32-bit
+ * processes can only address 2-3GB. So limit the default
+ * usage to 640M, which gives room for other data.
+ */
+ mem = 640;
+ }
+
+ return mem;
+}
+
+
void calculate_queue_sizes(int mem, int *readq, int *fragq, int *bwriteq,
int *fwriteq)
{
@@ -4890,7 +4952,7 @@ void calculate_queue_sizes(int mem, int *readq, int *fragq, int *bwriteq,
#define VERSION() \
- printf("mksquashfs version 4.3 (2014/05/12)\n");\
+ printf("mksquashfs version 4.3-git (2014/06/09)\n");\
printf("copyright (C) 2014 Phillip Lougher "\
"<phillip@squashfs.org.uk>\n\n"); \
printf("This program is free software; you can redistribute it and/or"\
@@ -4918,7 +4980,7 @@ int main(int argc, char *argv[])
int fragq;
int bwriteq;
int fwriteq;
- int total_mem = get_physical_memory() / SQUASHFS_TAKE;
+ int total_mem = get_default_phys_mem();
int progress = TRUE;
int force_progress = FALSE;
struct file_buffer **fragment = NULL;
--
cgit v0.10.1

View file

@ -1,29 +0,0 @@
diff --git a/squashfs-tools/unsquash-4.c b/squashfs-tools/unsquash-4.c
index ecdaac796f09..2c0cf63daf67 100644
--- a/squashfs-tools/unsquash-4.c
+++ b/squashfs-tools/unsquash-4.c
@@ -31,9 +31,9 @@ static unsigned int *id_table;
int read_fragment_table_4(long long *directory_table_end)
{
int res, i;
- int bytes = SQUASHFS_FRAGMENT_BYTES(sBlk.s.fragments);
- int indexes = SQUASHFS_FRAGMENT_INDEXES(sBlk.s.fragments);
- long long fragment_table_index[indexes];
+ size_t bytes = SQUASHFS_FRAGMENT_BYTES(sBlk.s.fragments);
+ size_t indexes = SQUASHFS_FRAGMENT_INDEXES(sBlk.s.fragments);
+ long long *fragment_table_index;
TRACE("read_fragment_table: %d fragments, reading %d fragment indexes "
"from 0x%llx\n", sBlk.s.fragments, indexes,
@@ -44,6 +44,11 @@ int read_fragment_table_4(long long *directory_table_end)
return TRUE;
}
+ fragment_table_index = malloc(indexes*sizeof(long long));
+ if(fragment_table_index == NULL)
+ EXIT_UNSQUASH("read_fragment_table: failed to allocate "
+ "fragment table index\n");
+
fragment_table = malloc(bytes);
if(fragment_table == NULL)
EXIT_UNSQUASH("read_fragment_table: failed to allocate "

7
gating.yaml Normal file
View file

@ -0,0 +1,7 @@
--- !Policy
product_versions:
- fedora-*
decision_context: bodhi_update_push_testing
rules:
- !PassingTestCaseRule {test_case_name: dist.depcheck}
- !PassingTestCaseRule {test_case_name: working}

View file

@ -1,11 +0,0 @@
--- squashfs-tools/unsquash-4.c.orig 2015-06-24 14:23:22.270710744 -0500
+++ squashfs-tools/unsquash-4.c 2015-06-24 14:24:13.671243487 -0500
@@ -35,7 +35,7 @@
size_t indexes = SQUASHFS_FRAGMENT_INDEXES(sBlk.s.fragments);
long long *fragment_table_index;
- TRACE("read_fragment_table: %d fragments, reading %d fragment indexes "
+ TRACE("read_fragment_table: %u fragments, reading %zu fragment indexes "
"from 0x%llx\n", sBlk.s.fragments, indexes,
sBlk.s.fragment_table_start);

View file

@ -1,33 +0,0 @@
From 604b607d8ac91eb8afc0b6e3d917d5c073096103 Mon Sep 17 00:00:00 2001
From: Phillip Lougher <phillip@squashfs.org.uk>
Date: Wed, 11 Jun 2014 04:51:37 +0100
Subject: mksquashfs: ensure value does not overflow a signed int in -mem
option
Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
diff --git a/squashfs-tools/mksquashfs.c b/squashfs-tools/mksquashfs.c
index 5370ecf..9676dc8 100644
--- a/squashfs-tools/mksquashfs.c
+++ b/squashfs-tools/mksquashfs.c
@@ -5193,7 +5193,16 @@ print_compressor_options:
argv[0]);
exit(1);
}
- /* convert from bytes to Mbytes */
+
+ /*
+ * convert from bytes to Mbytes, ensuring the value
+ * does not overflow a signed int
+ */
+ if(number >= (1LL << 51)) {
+ ERROR("%s: -mem invalid mem size\n", argv[0]);
+ exit(1);
+ }
+
total_mem = number / 1048576;
if(total_mem < (SQUASHFS_LOWMEM / SQUASHFS_TAKE)) {
ERROR("%s: -mem should be %d Mbytes or "
--
cgit v0.10.1

View file

@ -1,3 +1 @@
d92ab59aabf5173f2a59089531e30dbf squashfs4.3.tar.gz
ed8d2bb2cac678a394815d081f1c465c mksquashfs.1
68bf9bbf3ba00dc6e480a59b24905185 unsquashfs.1
SHA512 (squashfs-tools-4.6.1.tar.gz) = 10e8a4b1e2327e062aef4f85860e76ebcd7a29e4c19e152ff7edec4a38316982b5bcfde4ab69da6bcb931258d264c2b6cb40cb5f635f9e6f6eba1ed5976267cb

View file

@ -1,74 +1,289 @@
Summary: Utility for the creation of squashfs filesystems
Name: squashfs-tools
Version: 4.3
Release: 12%{?dist}
License: GPLv2+
Group: System Environment/Base
URL: http://squashfs.sourceforge.net/
Source0: http://downloads.sourceforge.net/squashfs/squashfs%{version}.tar.gz
# manpages from http://ftp.debian.org/debian/pool/main/s/squashfs-tools/squashfs-tools_4.2+20121212-1.debian.tar.xz
# The man pages have been modified for 4.3 for Fedora.
Source1: mksquashfs.1
Source2: unsquashfs.1
# From master branch (55f7ba830d40d438f0b0663a505e0c227fc68b6b).
# 32 bit process can use too much memory when using PAE or 64 bit kernels
Patch0: PAE.patch
# From master branch (604b607d8ac91eb8afc0b6e3d917d5c073096103).
# Prevent overflows when using the -mem option.
Patch1: mem-overflow.patch
# From squashfs-devel@lists.sourceforge.net by Guan Xin <guanx.bac@gmail.com>
# For https://bugzilla.redhat.com/show_bug.cgi?id=1141206
Patch2: 2gb.patch
# From https://github.com/gcanalesb/sasquatch/commit/6777e08cc38bc780d27c69c1d8c272867b74524f
# Which is forked from Phillip's squashfs-tools, though it looks like
# the issue applies to us.
Patch3: cve-2015-4645.patch
# Update formats to match changes in cve-2015-4645.patch
Patch4: local-cve-fix.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
Version: 4.6.1
Summary: Utility for the creation of squashfs filesystems
%global forgeurl https://github.com/plougher/%{name}
%global tag %{version}
%forgemeta
URL: %{forgeurl}
Source: %{forgesource}
# https://github.com/plougher/squashfs-tools/pull/231
# https://github.com/plougher/squashfs-tools/issues/230
# https://bugzilla.redhat.com/show_bug.cgi?id=2178510
# Fix a crash caused by an out-of-bounds access that was inadvertently
# re-introduced in a memory leak fix
Release: 7%{dist}
License: GPL-2.0-or-later
BuildRequires: make
BuildRequires: gcc
BuildRequires: zlib-devel
BuildRequires: xz-devel
BuildRequires: lzo-devel
BuildRequires: libattr-devel
BuildRequires: lz4-devel
BuildRequires: libzstd-devel
BuildRequires: help2man
%description
Squashfs is a highly compressed read-only filesystem for Linux. This package
contains the utilities for manipulating squashfs filesystems.
%prep
%setup -q -n squashfs%{version}
%patch0 -p1
%patch1 -p1
%patch2 -p0
%patch3 -p1
%patch4 -p0
%forgesetup
%build
%set_build_flags
pushd squashfs-tools
CFLAGS="%{optflags}" XZ_SUPPORT=1 LZO_SUPPORT=1 LZMA_XZ_SUPPORT=1 LZ4_SUPPORT=1 make %{?_smp_mflags}
CFLAGS="%optflags" XZ_SUPPORT=1 LZO_SUPPORT=1 LZMA_XZ_SUPPORT=1 LZ4_SUPPORT=1 ZSTD_SUPPORT=1 make %{?_smp_mflags}
%install
mkdir -p %{buildroot}%{_sbindir} %{buildroot}%{_mandir}/man1
install -m 755 squashfs-tools/mksquashfs %{buildroot}%{_sbindir}/mksquashfs
install -m 755 squashfs-tools/unsquashfs %{buildroot}%{_sbindir}/unsquashfs
install -m 644 %{SOURCE1} %{buildroot}%{_mandir}/man1/mksquashfs.1
install -m 644 %{SOURCE2} %{buildroot}%{_mandir}/man1/unsquashfs.1
%clean
rm -rf %{buildroot}
pushd squashfs-tools
make INSTALL_PREFIX=%{buildroot}/usr INSTALL_DIR=%{buildroot}%{_sbindir} INSTALL_MANPAGES_DIR=%{buildroot}%{_mandir}/man1 install
%files
%defattr(-,root,root,-)
%doc README ACKNOWLEDGEMENTS DONATIONS PERFORMANCE.README README-4.3 CHANGES pseudo-file.example COPYING
%doc ACKNOWLEDGEMENTS README* CHANGES COPYING USAGE* ACTIONS-README
%doc README
%{_mandir}/man1/*
%{_mandir}/man1/mksquashfs.1.gz
%{_mandir}/man1/unsquashfs.1.gz
%{_mandir}/man1/sqfstar.1.gz
%{_mandir}/man1/sqfscat.1.gz
%{_sbindir}/mksquashfs
%{_sbindir}/unsquashfs
%{_sbindir}/sqfstar
%{_sbindir}/sqfscat
%changelog
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 4.6.1-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 4.6.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 4.6.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 4.6.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Mon Oct 16 2023 Pavel Reichl <preichl@redhat.com> - 4.6.1-3
- Convert License tag to SPDX format
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 4.6.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Wed Mar 29 2023 Bruno Wolff III <bruno@wolff.to> - 4.6.1-1
- Phillip is now doing two tags per release and we can
- use the one that works better with forgemeta
- There are a few fixes after the 4.6 release. I think only
- one applies to Fedora because of the build options we use.
- It was not something that affects image builds.
* Fri Mar 17 2023 Bruno Wolff III <bruno@wolff.to> - 4.6-2
- Remove the dist prefix from the release
* Fri Mar 17 2023 Bruno Wolff III <bruno@wolff.to> - 4.6-1
- 4.6 release
- PR #231 was merged
- See https://github.com/plougher/squashfs-tools/blob/master/CHANGES
* Wed Mar 15 2023 Adam Williamson <awilliam@redhat.com> - 4.6-0.7.20230314git36abab0
- Backport PR #231 to fix a crash (#2178510)
* Tue Mar 14 2023 Bruno Wolff III <bruno@wolff.to> - 4.6-0.6^20230314git36abab0
- A few minor memory leaks were fixed
* Sun Mar 12 2023 Bruno Wolff III <bruno@wolff.to> - 4.6-0.5^20230312gitaaf011a
- Doc updates
- Probably the last version before the official release (tentatively tomorrow)
* Mon Mar 06 2023 Bruno Wolff III <bruno@wolff.to> - 4.6-0.4^20230306git1eaad6d
- Doc updates and unanchored search improvemebts
* Tue Feb 28 2023 Bruno Wolff III <bruno@wolff.to> - 4.6-0.3^20230228git746a81c
- Doc updates and minor bug fix
* Thu Feb 23 2023 Bruno Wolff III <bruno@wolff.to> - 4.6-0.2^20230323git7cf6cee
- Remove the -i and -v forgemeta flags to get rid of the extra noise
* Thu Feb 23 2023 Bruno Wolff III <bruno@wolff.to> - 4.6-0.1^20230323git7cf6cee
- Prerelease snapshot of 4.6
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - Packaging variables read or set by %forgemeta
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - Packaging variables read or set by %forgemeta
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Sat Mar 19 2022 Bruno Wolff III <bruno@wolff.to> - 4.5-1
- 4.5.1 release
- Up to date man pages
- Lots of little fixes
* Fri Mar 11 2022 Bruno Wolff III <bruno@wolff.to> - 4.5-27.20220311git76624e1
- Continue testing upstream patches prior to 4.5.1 release.
- Minor fixes
* Thu Mar 10 2022 Bruno Wolff III <bruno@wolff.to> - 4.5-26.20220310gitde61d0a
- Continue testing upstream patches prior to 4.5.1 release.
- Minor fixes
- Doc updates
* Tue Mar 08 2022 Bruno Wolff III <bruno@wolff.to> - 4.5-25.20220308git2ac40ca
- Upstream fix for unsquashfs breakage from recent commit
* Tue Mar 08 2022 Bruno Wolff III <bruno@wolff.to> - 4.5-24.20220308git8b6ee89
- Continue testing upstream patches prior to 4.5.1 release.
- Minor fixes
- Man page tweaks
- Tentative 4.5.1 change log
* Mon Mar 07 2022 Bruno Wolff III <bruno@wolff.to> - 4.5-23.20220307git580b4e1
- Continue testing upstream patches prior to 4.5.1 release.
- Minor fixes
* Fri Mar 04 2022 Bruno Wolff III <bruno@wolff.to> - 4.5-22.20220304git2baf12e
- Continue testing upstream patches prior to 4.5.1 release.
- Minor fixes
* Mon Feb 28 2022 Bruno Wolff III <bruno@wolff.to> - 4.5-21.20220228git263a14e
- Continue testing upstream patches prior to 4.5.1 release.
- Man page improvement
* Fri Feb 25 2022 Bruno Wolff III <bruno@wolff.to> - 4.5-20.20220225gitc883f32
- Continue testing upstream patches prior to 4.5.1 release.
- Man page improvement
* Wed Feb 23 2022 Bruno Wolff III <bruno@wolff.to> - 4.5-19.20220223git2dfbcda
- Continue testing upstream patches prior to 4.5.1 release.
- Man page improvement
* Mon Feb 21 2022 Bruno Wolff III <bruno@wolff.to> - 4.5-18.20220221gitbc0c097
- Continue testing upstream patches prior to 4.5.1 release.
- Some minor fixes.
* Fri Feb 18 2022 Bruno Wolff III <bruno@wolff.to> - 4.5-17.20220218gitf3783bb
- Continue testing upstream patches prior to 4.5.1 release.
- Some minor fixes.
* Thu Feb 17 2022 Bruno Wolff III <bruno@wolff.to> - 4.5-16.20220217git75951fb
- Continue testing upstream patches prior to 4.5.1 release.
- Some minor fixes.
* Tue Feb 15 2022 Bruno Wolff III <bruno@wolff.to> - 4.5-15.20220215gitf491ad8
- Continue testing upstream patches prior to 4.5.1 release.
- Some minor fixes.
* Mon Feb 14 2022 Bruno Wolff III <bruno@wolff.to> - 4.5-14.20220214gitde944c3
- Continue testing upstream patches prior to 4.5.1 release.
- Some minor fixes.
* Thu Feb 10 2022 Bruno Wolff III <bruno@wolff.to> - 4.5-13.20220210gita8f61e2
- Continue testing upstream patches prior to 4.5.1 release.
- Some code cleanups for stuff noted by gcc.
* Thu Feb 10 2022 Bruno Wolff III <bruno@wolff.to> - 4.5-12.20220210gite7e96fe
- Continue testing upstream patches prior to 4.5.1 release.
- Add man page for sqfscat.
* Wed Feb 09 2022 Bruno Wolff III <bruno@wolff.to> - 4.5-11.20220209git0425d3d
- Continue testing upstream patches prior to 4.5.1 release.
- Add man page for sqfstar.
* Tue Feb 08 2022 Bruno Wolff III <bruno@wolff.to> - 4.5-10.20220208git9e46a75
- Continue testing upstream patches prior to 4.5.1 release.
- Upstream man page for unsquashfs replaces out of date one froom Debian.
* Mon Feb 07 2022 Bruno Wolff III <bruno@wolff.to> - 4.5-9.20220207gitbd186a7
- Continue testing upstream patches
- The deprecated lzma support options are improved in the man page
* Mon Feb 07 2022 Bruno Wolff III <bruno@wolff.to> - 4.5-8.20220207git7f9203e
- Continue testing upstream patches
- Man pages are now built during the build process
* Fri Feb 04 2022 Bruno Wolff III <bruno@wolff.to> - 4.5-7.20220204git8a9d02e
- Continue testing upstream patches
- A makefile for mksquashfs is now included
* Wed Feb 02 2022 Bruno Wolff III <bruno@wolff.to> - 4.5-6.20220202git11c9591
- Continue testing upstream patches
- This includes help text changes
* Fri Jan 28 2022 Bruno Wolff III <bruno@wolff.to> - 4.5-5.20220128gitd5a583e
- Test a few changes before upstream tags a new point release
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - Packaging variables read or set by %forgemeta
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Mon Dec 27 2021 Bruno Wolff III <bruno@wolff.to> - 4.5-4.20211227git5ae7238
- Get fixes for a few minor bugs
* Mon Sep 13 2021 Bruno Wolff III <bruno@wolff.to> - 4.5-3.20210913gite048580
- Fix bug 2003701 (additional write outside destination directory exploit)
* Mon Jul 26 2021 Bruno Wolff III <bruno@wolff.to> - 4.5-2
- Fix for sparse fragment bug 1985561
* Fri Jul 23 2021 Bruno Wolff III <bruno@wolff.to> - 4.5-1
- First crack at 4.5 release
- Man pages still need significant work
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.4-5.git1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Sat Nov 14 2020 Bruno Wolff III <bruno@wolff.to> - 4.4-4.git1
- Gating tests failed and unable to rerun them
* Wed Nov 11 2020 Bruno Wolff III <bruno@wolff.to> - 4.4-3.git1
- New upstream release with a minor fix
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue May 12 2020 Bruno Wolff III <bruno@wolff.to> - 4.4-1.20200513gitc570c61
- Go to 4.4 release + plus a few upstream post release patches
* Sat Feb 08 2020 Bruno Wolff III <bruno@wolff.to> - 4.3-25
- Fix duplicate definition flagged by gcc10
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.3-24
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Fri Jan 17 2020 Jeff Law <law@redhat.com> - 4.3-23
- Fix undefined symbol when building with LTO due to incorrect
use of inline function
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.3-22
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Mon Jun 24 2019 Bruno Wolff III <bruno@wolff.to> - 4.3-21
- Add zstd compression support (Sean Purcell via github.com/plougher/squashfs-tools)
* Tue May 21 2019 Bruno Wolff III <bruno@wolff.to> - 4.3-20
- Fix issue with LDFLAGS not being set
* Tue May 21 2019 Bruno Wolff III <bruno@wolff.to> - 4.3-19
- Fix issue with glibc changes
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.3-18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 4.3-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 4.3-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.3-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.3-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.3-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 4.3-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

View file

@ -0,0 +1,122 @@
#!/bin/bash
# We need rpmdev-vercmp
rpm -q rpmdevtools > /dev/null 2>&1 || (echo 'rpmdev-vercmp from rpmdevtools is needed to run this script, aborting (failed).'; exit 1)
# Define block sizes
blocks=(4K 1M)
# Define fill files
fill=(/dev/zero /dev/urandom)
# Define number of iterations
iter=5
# Define fragment sizes
frags=(0 1 2047 4095)
# Define test directory
testdir=/tmp/test-squashfs
# Define mount point
mp=${testdir}/mnt
# Define data directory
datadir=${testdir}/data
# Check for squashfs-tools version and set compression types to test
sqfsver=`rpm -q --qf '%{EVR}' squashfs-tools`
if rpmdev-vercmp 4.1 ${sqfsver} > /dev/null; [ $? == '11' ]; then
ucomp=('gzip')
elif rpmdev-vercmp 4.2 ${sqfsver} > /dev/null; [ $? == '11' ]; then
ucomp=(gzip lzo lzma)
elif rpmdev-vercmp 4.3-1 ${sqfsver} > /dev/null; [ $? == '11' ]; then
ucomp=(gzip lzo lzma xz)
elif rpmdev-vercmp 4.3-21 ${sqfsver} > /dev/null; [ $? == '11' ]; then
ucomp=(gzip lzo lzma xz lz4)
else
ucomp=(gzip lzo lzma xz lz4 zstd)
fi
# Check for kernel verion and set mount test compression types
kernel=`uname -r`
if rpmdev-vercmp 2.6.36 ${kernel} > /dev/null; [ $? == '11' ]; then
mcomp=('gzip')
elif rpmdev-vercmp 2.6.38 ${kernel} > /dev/null; [ $? == '11' ]; then
mcomp=(gzip lzo)
elif rpmdev-vercmp 3.19 ${kernel} > /dev/null; [ $? == '11' ]; then
mcomp=(gzip lzo xz)
elif rpmdev-vercmp 4.14 ${kernel} > /dev/null; [ $? == '11' ]; then
mcomp=(gzip lzo xz lz4)
else
mcomp=(gzip lzo xz lz4 zstd)
fi
# Check for uid 0 and print a warning if not
[ ${UID} -ne 0 ] && echo 'Mount tests will not be performed when not running as root'
# Check if test directory exists and make if not
[ -d ${testdir} ] || mkdir ${testdir}
[ -d ${testdir} ] || (echo "Unable to make '${testdir}', aborting (failed)."; exit 1)
# Check if mount point directory exists and make if not
[ -d ${mp} ] || mkdir ${mp}
[ -d ${mp} ] || (echo "Unable to make '${mp}', aborting (failed)."; exit 1)
# Check if data directory exists and make if not
if [ -d ${datadir} ]; then
echo "Using existing data directory."
else
echo "Building data directory."
mkdir ${datadir}
[ -d ${datadir} ] || (echo "Unable to make '${datadir}', aborting (failed)."; exit 1)
for size in ${frags[*]}; do
for file in ${fill[*]}; do
dd if=${file} of=${datadir}/frag-`basename ${file}`-${size} bs=1 count=${size} > /dev/null 2>&1
done
done
for size in ${blocks[*]}; do
for ((count=1;${count}<=${iter};count++)); do
for file in ${fill[*]}; do
dd if=${file} of=${datadir}/file-`basename ${file}`-${size}-${count} bs=${size} count=${count} > /dev/null 2>&1
done
done
done
for size1 in ${frags[*]}; do
for file1 in ${fill[*]}; do
for size2 in ${blocks[*]}; do
for ((count=1;${count}<=${iter};count++)); do
for file2 in ${fill[*]}; do
cat ${datadir}/file-`basename ${file2}`-${size2}-${count} ${datadir}/frag-`basename ${file1}`-${size1} > ${datadir}/combined-`basename ${file2}`-${size2}-${count}-`basename ${file1}`-${size1}
done
done
done
done
done
fi
# Run unmounted tests
for comp in ${ucomp[*]}; do
echo "Building squashfs image using ${comp} compression."
if [ "${comp}" == gzip ]; then
mksquashfs ${datadir} ${testdir}/sq.img || (echo "mksquashfs failed for ${comp} compression."; continue)
else
mksquashfs ${datadir} ${testdir}/sq.img -comp ${comp} || (echo "mksquashfs failed for ${comp} compression."; continue)
fi
echo "Testing unmounted extract using ${comp} compression."
unsquashfs -d ${testdir}/sq ${testdir}/sq.img || echo "unsquashfs failed for ${comp} compression."
diff -r -q ${testdir}/sq ${datadir} || (echo "Extract test failed for ${comp} compression."; exit)
rm -rf ${testdir}/sq
if [ ${UID} == 0 ]; then
for kern in ${mcomp[*]}; do
if [ ${kern} == ${comp} ]; then
echo "Testing mounted image using ${comp} compression."
mount -r -o loop -t squashfs ${testdir}/sq.img ${mp} || echo "Mount failed.";
diff -r -q ${mp} ${datadir} || echo "Mounted test failed for ${comp} compression."
umount ${mp}
break
fi
done
fi
rm -f ${testdir}/sq ${testdir}/sq.img
done

30
tests/test_working.yml Normal file
View file

@ -0,0 +1,30 @@
---
- hosts: localhost
vars:
- artifacts: "{{ lookup('env', 'TEST_ARTIFACTS')|default('./artifacts', true) }}"
tags:
- classic
remote_user: root
tasks:
- name: Add extra required packages
dnf:
name: rpmdevtools, kernel-modules-{{ ansible_kernel }}
- name: Install the test files
copy: src={{ item.file }} dest=/usr/local/bin/{{ item.dest }} mode=0755
with_items:
- {file: Squashfs-compression-test.sh, dest: Squashfs-compression-test.sh }
- name: Test block
block:
- name: Execute the tests
shell: |
(/usr/local/bin/Squashfs-compression-test.sh &> /tmp/test.log); grep -iq failed /tmp/test.log && result=fail || result=pass
echo -e "results:\n- {result: $result, test: working}" > /tmp/results.yml
always:
- name: Pull out the logs
fetch:
dest: "{{ artifacts }}/"
src: "{{ item }}"
flat: yes
with_items:
- /tmp/test.log
- /tmp/results.yml

1
tests/tests.yml Normal file
View file

@ -0,0 +1 @@
- import_playbook: test_working.yml