From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.7 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6E02FC3A5A6 for ; Thu, 29 Aug 2019 04:21:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 43FC72339E for ; Thu, 29 Aug 2019 04:21:24 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ihGK8Lp/" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726283AbfH2EVV (ORCPT ); Thu, 29 Aug 2019 00:21:21 -0400 Received: from mail-lf1-f65.google.com ([209.85.167.65]:33997 "EHLO mail-lf1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725730AbfH2EVU (ORCPT ); Thu, 29 Aug 2019 00:21:20 -0400 Received: by mail-lf1-f65.google.com with SMTP id z21so1394021lfe.1; Wed, 28 Aug 2019 21:21:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to:cc; bh=CGB9Bl00N7Lgxzrk7tZ5l5gvqjuiS0y44pMFujY10BE=; b=ihGK8Lp/17EloWaRBtwcX8XNs4z0PpzB8xd8nyViAhLHTN2tAfb7Bni9w+CvwDos42 NuorxXROXpm8wqPgK6NYfebQj4c/37yT7xMwy1HGZL/OFP9IpOOS6YMp9RrDf8dyT4Oj DocVbQ4YuC69VnZ46WT+bR49xq3dfvY77cS42GXaxoP05EIdtXeRz9o+//HcuqX9VXWE sNzwud/napxKEkarL1CgX+8vzaluyQJ+Xn9Ll1LWD2NMQvvSwDeQ5XbvROO/YMBJh6m/ DlFe+0EmR+ZRIQwI6Ja9+xHnGL0cXtrefrLcnJQz7NX/uxIssxyJ1QUBiHSFvBDb4Bk7 FKdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=CGB9Bl00N7Lgxzrk7tZ5l5gvqjuiS0y44pMFujY10BE=; b=VhH2fbQ+0gQ07wP5Sw+FysTETaJQypaay3lZP97jPDtkVUGOvI39JE2Sbrw/PDmAPB 6d04gGtZX1JCwdRJ9+SCoWiy6/lzbHwH+iw+TCikh1itDY1L/3x3IOjPmZgtG4l9L29Q LAOSMKXA0CV1hzwlBxjluhVrDiO5U3Iy4uxUzOQoyWtlXcHBYHQvkJFQO6+KPbe8BfeX +xt6jpafLfd6aWQLP6VMdmDx+bZqwgW1Az4Oho3z16YPZuhyWtxN17aAISereAk3pNaf 5fbLOLRpzj8wz2IrNcdFMwGUx4rZHCIzDhzva3ok9FmjehW7I+b4FZBlLWBkZKOYAHYR fUDQ== X-Gm-Message-State: APjAAAVKSd5cjZGFU7unjqffh4m46W2BQ63EAEwEJD3/zz9CBFd1CLRB Qhfox4i+Qu+WH1WHF3EVa5ncuFq/Oq8ZtDwg80PXU3g0Lfo= X-Google-Smtp-Source: APXvYqznYeVZobExCUA8Tn1HV7i8TGsk9X8fOeiUMU57idxaCp59CqoDSGvmxVIVUe967r2joBQ09Ecl2Ac5RJGxIxY= X-Received: by 2002:a05:6512:4c8:: with SMTP id w8mr4387379lfq.17.1567052477155; Wed, 28 Aug 2019 21:21:17 -0700 (PDT) MIME-Version: 1.0 From: Phillip Lougher Date: Thu, 29 Aug 2019 05:21:06 +0100 Message-ID: Subject: [ANN] Squashfs tools 4.4 released To: linux-fsdevel@vger.kernel.org Cc: LKML Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, I'm pleased to announce the release of Squashfs tools 4.4. This is the first release in over 5 years, and there are substantial improvements: reproducible builds, new compressors, CVE fixes, security hardening and new options for Mksquashfs/Unsquashfs. The new release can be downloaded here: http://sourceforge.net/projects/squashfs/files/latest/download?source=files Summary of changes in Squashfs tools 4.4 ---------------------------------------- 1. Mksquashfs now generates reproducible images by default. Mkfs time and file timestamps can also be specified. 2. Support for the Zstandard (ZSTD) compression algorithm has been added. 3. Pseudo files now support symbolic links. 4. CVE-2015-4645 and CVE-2015-4646 have been fixed. 5. Unsquashfs has been further hardened against corrupted filestems. 6. Unsquashfs is now more strict about error handling. 7. Miscellaneous new options and major bug fixes for Mksquashfs. 8. Miscellaneous new options and major bug fixes for Unsquashfs. 9. Squashfs-tools 4.4 is compatible with all earlier 4.x filesystems and releases. 1. Introducing reproducible builds ---------------------------------- Ever since Mksquashfs was parallelised back in 2006, there has been a certain randomness in how fragments and multi-block files are ordered in the output filesystem even if the input remains the same. This is because the multiple parallel threads can be scheduled differently between Mksquashfs runs. For example, the thread given fragment 10 to compress may finish before the thread given fragment 9 to compress on one run (writing fragment 10 to the output filesystem before fragment 9), but, on the next run it could be vice-versa. There are many different scheduling scenarios here, all of which can have a knock on effect causing different scheduling and ordering later in the filesystem too. Mkquashfs doesn't care about the ordering of fragments and multi-block files within the filesystem, as this does not affect the correctness of the filesystem. In fact not caring about the ordering, as it doesn't matter, allows Mksquashfs to run as fast as possible, maximising CPU and I/O performance. But, in the last couple of years, Squashfs has become used in scenarios (cloud etc) where this randomness is causing problems. Specifically this appears to be where downloaders, installers etc. try to work out the differences between Squashfs filesystem updates to minimise the amount of data that needs to transferred to update an image. Additionally, in the last couple of years has arisen the notion of reproducible builds, that is the same source and build environment etc should be able to (re-)generate identical output. This is usually for verification and security, allowing binaries/distributions to be checked for malicious activity. See https://reproducible-builds.org/ for more information. Mksquashfs now generates reproducible images by default. Images generated by Mksquashfs will be ordered identically to previous runs if the same input has been supplied, and the same options used. 1.1.1 Dealing with timestamps Timestamps embedded in the filesystem will stiil cause differences. Each new run of Mksquashfs will produce a different mkfs (make filesystem) timestamp in the super-block. Moreover if any file timestamps have changed (even if the content hasn't), this will produce a difference. To prevent timestamps from producing differences, the following new Mksquashfs options have been added. 1.1.2 -mkfs-time