Skip to content
This repository has been archived by the owner on Jan 1, 2023. It is now read-only.

Commit

Permalink
MassOS 2022.08 Release
Browse files Browse the repository at this point in the history
  • Loading branch information
TheSonicMaster committed Aug 2, 2022
1 parent 61a2696 commit fc8fb1f
Show file tree
Hide file tree
Showing 15 changed files with 546 additions and 233 deletions.
195 changes: 124 additions & 71 deletions build-system.sh

Large diffs are not rendered by default.

30 changes: 21 additions & 9 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ This document contains the full changelog for every previous versions of MassOS,
# Current Development
Changes:

- GNOME is now an officially supported desktop environment alongside Xfce.
- The snapd package manager is now supported on MassOS, but not installed by default. See the [MassOS-Snapd](https://github.com/MassOS-Linux/MassOS-Snapd) project for more information and how to set it up.
- Reworked some of the MassOS build system to improve support for other desktop environments.
- Improved accessibility by providing an optional high contrast theme.
- Fixed broken video playback in Parole and other GStreamer-based applications.
- Fixed PATH-related issues with `sudo`.
- Fixed an issue where custom system-installed (NOT Flatpak) GUI apps could break after an update.
- Miscellaneous bug fixes and quality-of-life improvements (see commits for detailed/technical information).
- [Xfce] Added mounted drives panel plugin.

Upgraded software (core):
Expand All @@ -20,17 +20,23 @@ Upgraded software (core):
- Atkmm: `2.28.2 --> 2.28.3`
- BIND Utils: `9.18.4 --> 9.18.5`
- BlueZ: `5.64 --> 5.65`
- chardet: `4.0.0 --> 5.0.0`
- CMake: `3.23.2 --> 3.23.3`
- cryptsetup: `2.4.3 --> 2.5.0`
- dialog: `1.3-20220526 --> 1.3-20220728`
- dmidecode: `3.3 --> 3.4`
- efibootmgr: `17 --> 18`
- font-util: `1.3.2 --> 1.3.3`
- Git: `2.37.0 --> 2.37.1`
- GNUPG: `2.3.6 --> 2.3.7`
- GNUTLS: `3.7.6 --> 3.7.7`
- Graphviz: `4.0.0 --> 5.0.0`
- HarfBuzz: `4.4.1 --> 5.0.1`
- HarfBuzz: `4.4.1 --> 5.1.0`
- hwdata: `0.360 --> 0.361`
- iana-etc: `20220524 --> 20220715`
- Inetutils: `2.2 --> 2.3`
- inih: `55 --> 56`
- ISO-Codes: `4.10.0 --> 4.11.0`
- JasPer: `3.0.5 --> 3.0.6`
- libcap: `2.64 --> 2.65`
- libdrm: `2.4.111 --> 2.4.112`
Expand All @@ -41,17 +47,20 @@ Upgraded software (core):
- libnl: `3.6.0 --> 3.7.0`
- libnotify: `0.7.12 --> 0.8.1`
- libuv: `1.44.1 --> 1.44.2`
- libwacom: `2.2.0 --> 2.4.0`
- libwebp: `1.2.2 --> 1.2.3`
- libxcvt: `0.1.1 --> 0.1.2`
- libzip: `1.8.0 --> 1.9.2`
- Linux Kernel `5.18.8 --> 5.18.14`
- Linux Kernel `5.18.8 --> 5.19`
- LSB-Tools: `0.9 --> 0.10`
- lxml: `4.9.0 --> 4.9.1`
- Mesa: `22.1.3 --> 22.1.4`
- Meson: `0.62.2 --> 0.63.0`
- mobile-broadband-provider-info: `20220511 --> 20220725`
- Mousepad: `0.5.9 --> 0.5.10`
- mpg123: `1.30.0 --> 1.30.1`
- Net-SNMP: `5.9.1 --> 5.9.3`
- Nettle: `3.8 --> 3.8.1`
- NSS: `3.80 --> 3.81`
- NVIDIA Open Kernel Modules: `515.43.04 --> 515.57`
- OpenLDAP: `2.6.2 --> 2.6.3`
Expand All @@ -64,17 +73,19 @@ Upgraded software (core):
- Poppler: `22.06.0 --> 22.07.0`
- PyGObject: `3.42.1 --> 3.42.2`
- python-dbusmock: `0.27.5 --> 0.28.2`
- smbclient: `4.16.2 --> 4.16.3`
- requests: `2.27.1 --> 2.28.1`
- rrdtool: `1.7.2 --> 1.8.0`
- smbclient: `4.16.2 --> 4.16.4`
- SQLite: `3.39.0 --> 3.39.2`
- systemd: `251.2 --> 251.3`
- UPower: `0.99.19 --> 1.90.0`
- Vala: `0.56.1 --> 0.56.2`
- Vim: `9.0.0000 --> 9.0.0050`
- Vulkan-Headers: `1.3.217 --> 1.3.221`
- Vulkan-Loader: `1.3.217 --> 1.3.221`
- Vulkan-Tools: `1.3.217 --> 1.3.221`
- Vulkan-Headers: `1.3.217 --> 1.3.223`
- Vulkan-Loader: `1.3.217 --> 1.3.223`
- Vulkan-Tools: `1.3.217 --> 1.3.223`
- Wayland: `1.20.0 --> 1.21.0`
- WebKitGTK: `2.36.3 --> 2.36.4`
- WebKitGTK: `2.36.3 --> 2.36.5`
- WirePlumber: `0.4.10 --> 0.4.11`
- xcmsdb: `1.0.5 --> 1.0.6`
- xdg-desktop-portal: `1.14.4 --> 1.14.5`
Expand All @@ -92,8 +103,9 @@ Upgraded software (core):

Upgraded software (Xfce):

- Firefox: `102.0 --> 102.0.1`
- Firefox: `102.0.1 --> 103.0.1`
- LightDM: `1.30.0 --> 1.32.0`
- Thunar: `4.17.8 --> 4.17.9`
- xfce4-settings: `4.16.2 --> 4.16.3`

# MassOS 2022.07
Expand Down
2 changes: 0 additions & 2 deletions finalize.sh
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,6 @@ rm -rf /usr/share/doc/*
rm -rf /usr/doc
rm -rf /usr/docs
rm -rf /usr/share/gtk-doc/html/*
# Remove temporary compiler from stage1.
find /usr -depth -name $(uname -m)-massos-linux-gnu\* | xargs rm -rf
# Remove libtool archives.
find /usr/lib /usr/libexec -name \*.la -delete
# Remove any temporary files.
Expand Down
180 changes: 180 additions & 0 deletions patches/libtiff-4.4.0-upstreamfix.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,180 @@
From dd1bcc7abb26094e93636e85520f0d8f81ab0fab Mon Sep 17 00:00:00 2001
From: 4ugustus <wangdw.augustus@qq.com>
Date: Sat, 11 Jun 2022 09:31:43 +0000
Subject: [PATCH] fix the FPE in tiffcrop (#415, #427, and #428)

---
libtiff/tif_aux.c | 9 +++++++
libtiff/tiffiop.h | 1 +
tools/tiffcrop.c | 62 ++++++++++++++++++++++++++---------------------
3 files changed, 44 insertions(+), 28 deletions(-)

diff --git a/libtiff/tif_aux.c b/libtiff/tif_aux.c
index 140f26c7..5b88c8d0 100644
--- a/libtiff/tif_aux.c
+++ b/libtiff/tif_aux.c
@@ -402,6 +402,15 @@ float _TIFFClampDoubleToFloat( double val )
return (float)val;
}

+uint32_t _TIFFClampDoubleToUInt32(double val)
+{
+ if( val < 0 )
+ return 0;
+ if( val > 0xFFFFFFFFU || val != val )
+ return 0xFFFFFFFFU;
+ return (uint32_t)val;
+}
+
int _TIFFSeekOK(TIFF* tif, toff_t off)
{
/* Huge offsets, especially -1 / UINT64_MAX, can cause issues */
diff --git a/libtiff/tiffiop.h b/libtiff/tiffiop.h
index e3af461d..4e8bdac2 100644
--- a/libtiff/tiffiop.h
+++ b/libtiff/tiffiop.h
@@ -365,6 +365,7 @@ extern double _TIFFUInt64ToDouble(uint64_t);
extern float _TIFFUInt64ToFloat(uint64_t);

extern float _TIFFClampDoubleToFloat(double);
+extern uint32_t _TIFFClampDoubleToUInt32(double);

extern tmsize_t
_TIFFReadEncodedStripAndAllocBuffer(TIFF* tif, uint32_t strip,
diff --git a/tools/tiffcrop.c b/tools/tiffcrop.c
index 1f827b2b..90286a5e 100644
--- a/tools/tiffcrop.c
+++ b/tools/tiffcrop.c
@@ -5268,17 +5268,17 @@ computeInputPixelOffsets(struct crop_mask *crop, struct image_data *image,
{
if ((crop->res_unit == RESUNIT_INCH) || (crop->res_unit == RESUNIT_CENTIMETER))
{
- x1 = (uint32_t) (crop->corners[i].X1 * scale * xres);
- x2 = (uint32_t) (crop->corners[i].X2 * scale * xres);
- y1 = (uint32_t) (crop->corners[i].Y1 * scale * yres);
- y2 = (uint32_t) (crop->corners[i].Y2 * scale * yres);
+ x1 = _TIFFClampDoubleToUInt32(crop->corners[i].X1 * scale * xres);
+ x2 = _TIFFClampDoubleToUInt32(crop->corners[i].X2 * scale * xres);
+ y1 = _TIFFClampDoubleToUInt32(crop->corners[i].Y1 * scale * yres);
+ y2 = _TIFFClampDoubleToUInt32(crop->corners[i].Y2 * scale * yres);
}
else
{
- x1 = (uint32_t) (crop->corners[i].X1);
- x2 = (uint32_t) (crop->corners[i].X2);
- y1 = (uint32_t) (crop->corners[i].Y1);
- y2 = (uint32_t) (crop->corners[i].Y2);
+ x1 = _TIFFClampDoubleToUInt32(crop->corners[i].X1);
+ x2 = _TIFFClampDoubleToUInt32(crop->corners[i].X2);
+ y1 = _TIFFClampDoubleToUInt32(crop->corners[i].Y1);
+ y2 = _TIFFClampDoubleToUInt32(crop->corners[i].Y2);
}
/* a) Region needs to be within image sizes 0.. width-1; 0..length-1
* b) Corners are expected to be submitted as top-left to bottom-right.
@@ -5357,17 +5357,17 @@ computeInputPixelOffsets(struct crop_mask *crop, struct image_data *image,
{
if (crop->res_unit != RESUNIT_INCH && crop->res_unit != RESUNIT_CENTIMETER)
{ /* User has specified pixels as reference unit */
- tmargin = (uint32_t)(crop->margins[0]);
- lmargin = (uint32_t)(crop->margins[1]);
- bmargin = (uint32_t)(crop->margins[2]);
- rmargin = (uint32_t)(crop->margins[3]);
+ tmargin = _TIFFClampDoubleToUInt32(crop->margins[0]);
+ lmargin = _TIFFClampDoubleToUInt32(crop->margins[1]);
+ bmargin = _TIFFClampDoubleToUInt32(crop->margins[2]);
+ rmargin = _TIFFClampDoubleToUInt32(crop->margins[3]);
}
else
{ /* inches or centimeters specified */
- tmargin = (uint32_t)(crop->margins[0] * scale * yres);
- lmargin = (uint32_t)(crop->margins[1] * scale * xres);
- bmargin = (uint32_t)(crop->margins[2] * scale * yres);
- rmargin = (uint32_t)(crop->margins[3] * scale * xres);
+ tmargin = _TIFFClampDoubleToUInt32(crop->margins[0] * scale * yres);
+ lmargin = _TIFFClampDoubleToUInt32(crop->margins[1] * scale * xres);
+ bmargin = _TIFFClampDoubleToUInt32(crop->margins[2] * scale * yres);
+ rmargin = _TIFFClampDoubleToUInt32(crop->margins[3] * scale * xres);
}

if ((lmargin + rmargin) > image->width)
@@ -5397,24 +5397,24 @@ computeInputPixelOffsets(struct crop_mask *crop, struct image_data *image,
if (crop->res_unit != RESUNIT_INCH && crop->res_unit != RESUNIT_CENTIMETER)
{
if (crop->crop_mode & CROP_WIDTH)
- width = (uint32_t)crop->width;
+ width = _TIFFClampDoubleToUInt32(crop->width);
else
width = image->width - lmargin - rmargin;

if (crop->crop_mode & CROP_LENGTH)
- length = (uint32_t)crop->length;
+ length = _TIFFClampDoubleToUInt32(crop->length);
else
length = image->length - tmargin - bmargin;
}
else
{
if (crop->crop_mode & CROP_WIDTH)
- width = (uint32_t)(crop->width * scale * image->xres);
+ width = _TIFFClampDoubleToUInt32(crop->width * scale * image->xres);
else
width = image->width - lmargin - rmargin;

if (crop->crop_mode & CROP_LENGTH)
- length = (uint32_t)(crop->length * scale * image->yres);
+ length = _TIFFClampDoubleToUInt32(crop->length * scale * image->yres);
else
length = image->length - tmargin - bmargin;
}
@@ -5868,13 +5868,13 @@ computeOutputPixelOffsets (struct crop_mask *crop, struct image_data *image,
{
if (page->res_unit == RESUNIT_INCH || page->res_unit == RESUNIT_CENTIMETER)
{ /* inches or centimeters specified */
- hmargin = (uint32_t)(page->hmargin * scale * page->hres * ((image->bps + 7) / 8));
- vmargin = (uint32_t)(page->vmargin * scale * page->vres * ((image->bps + 7) / 8));
+ hmargin = _TIFFClampDoubleToUInt32(page->hmargin * scale * page->hres * ((image->bps + 7) / 8));
+ vmargin = _TIFFClampDoubleToUInt32(page->vmargin * scale * page->vres * ((image->bps + 7) / 8));
}
else
{ /* Otherwise user has specified pixels as reference unit */
- hmargin = (uint32_t)(page->hmargin * scale * ((image->bps + 7) / 8));
- vmargin = (uint32_t)(page->vmargin * scale * ((image->bps + 7) / 8));
+ hmargin = _TIFFClampDoubleToUInt32(page->hmargin * scale * ((image->bps + 7) / 8));
+ vmargin = _TIFFClampDoubleToUInt32(page->vmargin * scale * ((image->bps + 7) / 8));
}

if ((hmargin * 2.0) > (pwidth * page->hres))
@@ -5912,13 +5912,13 @@ computeOutputPixelOffsets (struct crop_mask *crop, struct image_data *image,
{
if (page->mode & PAGE_MODE_PAPERSIZE )
{
- owidth = (uint32_t)((pwidth * page->hres) - (hmargin * 2));
- olength = (uint32_t)((plength * page->vres) - (vmargin * 2));
+ owidth = _TIFFClampDoubleToUInt32((pwidth * page->hres) - (hmargin * 2));
+ olength = _TIFFClampDoubleToUInt32((plength * page->vres) - (vmargin * 2));
}
else
{
- owidth = (uint32_t)(iwidth - (hmargin * 2 * page->hres));
- olength = (uint32_t)(ilength - (vmargin * 2 * page->vres));
+ owidth = _TIFFClampDoubleToUInt32(iwidth - (hmargin * 2 * page->hres));
+ olength = _TIFFClampDoubleToUInt32(ilength - (vmargin * 2 * page->vres));
}
}

@@ -5927,6 +5927,12 @@ computeOutputPixelOffsets (struct crop_mask *crop, struct image_data *image,
if (olength > ilength)
olength = ilength;

+ if (owidth == 0 || olength == 0)
+ {
+ TIFFError("computeOutputPixelOffsets", "Integer overflow when calculating the number of pages");
+ exit(EXIT_FAILURE);
+ }
+
/* Compute the number of pages required for Portrait or Landscape */
switch (page->orient)
{
--
GitLab

Loading

0 comments on commit fc8fb1f

Please sign in to comment.