[poppler] qt5/src qt6/src

2022-01-05 Thread GitLab Mirror
 qt5/src/poppler-pdf-converter.cc |2 +-
 qt5/src/poppler-qt5.h|2 +-
 qt6/src/poppler-pdf-converter.cc |2 +-
 qt6/src/poppler-qt6.h|2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

New commits:
commit bdcde37d2ca87b2b193d269b63cd9eff6b047286
Author: Albert Astals Cid 
Date:   Wed Jan 5 23:58:01 2022 +0100

Update (C) of commit-1

diff --git a/qt5/src/poppler-pdf-converter.cc b/qt5/src/poppler-pdf-converter.cc
index 28256dc7..1a21c591 100644
--- a/qt5/src/poppler-pdf-converter.cc
+++ b/qt5/src/poppler-pdf-converter.cc
@@ -1,6 +1,6 @@
 /* poppler-pdf-converter.cc: qt interface to poppler
  * Copyright (C) 2008, Pino Toscano 
- * Copyright (C) 2008, 2009, 2020, 2021, Albert Astals Cid 
+ * Copyright (C) 2008, 2009, 2020-2022, Albert Astals Cid 
  * Copyright (C) 2020, Thorsten Behrens 
  * Copyright (C) 2020, Klarälvdalens Datakonsult AB, a KDAB Group company, 
. Work sponsored by Technische Universität Dresden
  * Copyright (C) 2021, Klarälvdalens Datakonsult AB, a KDAB Group company, 
.
diff --git a/qt5/src/poppler-qt5.h b/qt5/src/poppler-qt5.h
index 19d30cac..8fa0a51e 100644
--- a/qt5/src/poppler-qt5.h
+++ b/qt5/src/poppler-qt5.h
@@ -1,7 +1,7 @@
 /* poppler-qt.h: qt interface to poppler
  * Copyright (C) 2005, Net Integration Technologies, Inc.
  * Copyright (C) 2005, 2007, Brad Hards 
- * Copyright (C) 2005-2015, 2017-2021, Albert Astals Cid 
+ * Copyright (C) 2005-2015, 2017-2022, Albert Astals Cid 
  * Copyright (C) 2005, Stefan Kebekus 
  * Copyright (C) 2006-2011, Pino Toscano 
  * Copyright (C) 2009 Shawn Rutledge 
diff --git a/qt6/src/poppler-pdf-converter.cc b/qt6/src/poppler-pdf-converter.cc
index 2d6c90a1..687d0e52 100644
--- a/qt6/src/poppler-pdf-converter.cc
+++ b/qt6/src/poppler-pdf-converter.cc
@@ -1,6 +1,6 @@
 /* poppler-pdf-converter.cc: qt interface to poppler
  * Copyright (C) 2008, Pino Toscano 
- * Copyright (C) 2008, 2009, 2020, 2021, Albert Astals Cid 
+ * Copyright (C) 2008, 2009, 2020-2022, Albert Astals Cid 
  * Copyright (C) 2020, Thorsten Behrens 
  * Copyright (C) 2020, Klarälvdalens Datakonsult AB, a KDAB Group company, 
. Work sponsored by Technische Universität Dresden
  * Copyright (C) 2021, Klarälvdalens Datakonsult AB, a KDAB Group company, 
.
diff --git a/qt6/src/poppler-qt6.h b/qt6/src/poppler-qt6.h
index 2ae36ab8..1c8948e9 100644
--- a/qt6/src/poppler-qt6.h
+++ b/qt6/src/poppler-qt6.h
@@ -1,7 +1,7 @@
 /* poppler-qt.h: qt interface to poppler
  * Copyright (C) 2005, Net Integration Technologies, Inc.
  * Copyright (C) 2005, 2007, Brad Hards 
- * Copyright (C) 2005-2015, 2017-2021, Albert Astals Cid 
+ * Copyright (C) 2005-2015, 2017-2022, Albert Astals Cid 
  * Copyright (C) 2005, Stefan Kebekus 
  * Copyright (C) 2006-2011, Pino Toscano 
  * Copyright (C) 2009 Shawn Rutledge 


[poppler] poppler/Annot.cc poppler/Annot.h poppler/PDFDoc.cc qt5/tests qt6/tests

2022-01-05 Thread GitLab Mirror
 poppler/Annot.cc|   12 ++--
 poppler/Annot.h |4 ++--
 poppler/PDFDoc.cc   |6 +++---
 qt5/tests/check_annotations.cpp |2 +-
 qt6/tests/check_annotations.cpp |2 +-
 5 files changed, 13 insertions(+), 13 deletions(-)

New commits:
commit dcf7b6c11b0a5e2c19c88b1e2525fd9532e1e2dd
Author: Albert Astals Cid 
Date:   Wed Jan 5 16:45:31 2022 +0100

Make DefaultAppearance::toAppearanceString return a std::string

diff --git a/poppler/Annot.cc b/poppler/Annot.cc
index 1397c730..c62cdd49 100644
--- a/poppler/Annot.cc
+++ b/poppler/Annot.cc
@@ -15,7 +15,7 @@
 //
 // Copyright (C) 2006 Scott Turner 
 // Copyright (C) 2007, 2008 Julien Rebetez 
-// Copyright (C) 2007-2013, 2015-2021 Albert Astals Cid 
+// Copyright (C) 2007-2013, 2015-2022 Albert Astals Cid 
 // Copyright (C) 2007-2013, 2018 Carlos Garcia Campos 
 // Copyright (C) 2007, 2008 Iñigo Martínez 
 // Copyright (C) 2007 Jeff Muizelaar 
@@ -844,14 +844,14 @@ void 
DefaultAppearance::setFontColor(std::unique_ptr fontColorA)
 fontColor = std::move(fontColorA);
 }
 
-GooString *DefaultAppearance::toAppearanceString() const
+std::string DefaultAppearance::toAppearanceString() const
 {
 AnnotAppearanceBuilder appearBuilder;
 if (fontColor) {
 appearBuilder.setDrawColor(fontColor.get(), true);
 }
 appearBuilder.setTextFont(fontName, fontPtSize);
-return appearBuilder.buffer()->copy();
+return appearBuilder.buffer()->toStr();
 }
 
 //
@@ -2723,9 +2723,9 @@ AnnotFreeText::AnnotFreeText(PDFDoc *docA, PDFRectangle 
*rectA, const DefaultApp
 {
 type = typeFreeText;
 
-GooString *daStr = da.toAppearanceString();
+const std::string daStr = da.toAppearanceString();
 annotObj.dictSet("Subtype", Object(objName, "FreeText"));
-annotObj.dictSet("DA", Object(daStr));
+annotObj.dictSet("DA", Object(new GooString(daStr)));
 
 initialize(docA, annotObj.getDict());
 }
@@ -2829,7 +2829,7 @@ void AnnotFreeText::setContents(GooString *new_content)
 
 void AnnotFreeText::setDefaultAppearance(const DefaultAppearance )
 {
-appearanceString = std::unique_ptr(da.toAppearanceString());
+appearanceString = std::make_unique(da.toAppearanceString());
 
 update("DA", Object(appearanceString->copy()));
 invalidateAppearance();
diff --git a/poppler/Annot.h b/poppler/Annot.h
index c8944ee4..13ccc58b 100644
--- a/poppler/Annot.h
+++ b/poppler/Annot.h
@@ -21,7 +21,7 @@
 // Copyright (C) 2008 Hugo Mercier 
 // Copyright (C) 2008 Pino Toscano 
 // Copyright (C) 2008 Tomas Are Haavet 
-// Copyright (C) 2009-2011, 2013, 2016-2021 Albert Astals Cid 
+// Copyright (C) 2009-2011, 2013, 2016-2022 Albert Astals Cid 
 // Copyright (C) 2012, 2013 Fabio D'Urso 
 // Copyright (C) 2012, 2015 Tobias Koenig 
 // Copyright (C) 2013 Thomas Freitag 
@@ -386,7 +386,7 @@ public:
 double getFontPtSize() const { return fontPtSize; }
 void setFontColor(std::unique_ptr fontColorA);
 const AnnotColor *getFontColor() const { return fontColor.get(); }
-GooString *toAppearanceString() const;
+std::string toAppearanceString() const;
 
 DefaultAppearance(const DefaultAppearance &) = delete;
 DefaultAppearance =(const DefaultAppearance &) = delete;
diff --git a/poppler/PDFDoc.cc b/poppler/PDFDoc.cc
index 90b431ad..71360a50 100644
--- a/poppler/PDFDoc.cc
+++ b/poppler/PDFDoc.cc
@@ -14,7 +14,7 @@
 // under GPL version 2 or later
 //
 // Copyright (C) 2005, 2006, 2008 Brad Hards 
-// Copyright (C) 2005, 2007-2009, 2011-2021 Albert Astals Cid 
+// Copyright (C) 2005, 2007-2009, 2011-2022 Albert Astals Cid 
 // Copyright (C) 2008 Julien Rebetez 
 // Copyright (C) 2008, 2010 Pino Toscano 
 // Copyright (C) 2008, 2010, 2011 Carlos Garcia Campos 
@@ -2158,8 +2158,8 @@ bool PDFDoc::sign(const char *saveFilename, const char 
*certNickname, const char
 rectArray->add(Object(rect.y2));
 annotObj.dictSet("Rect", Object(rectArray));
 
-GooString *daStr = da.toAppearanceString();
-annotObj.dictSet("DA", Object(daStr));
+const std::string daStr = da.toAppearanceString();
+annotObj.dictSet("DA", Object(new GooString(daStr)));
 
 const Ref ref = getXRef()->addIndirectObject(annotObj);
 catalog->addFormToAcroForm(ref);
diff --git a/qt5/tests/check_annotations.cpp b/qt5/tests/check_annotations.cpp
index 668a8e3f..2b702ccd 100644
--- a/qt5/tests/check_annotations.cpp
+++ b/qt5/tests/check_annotations.cpp
@@ -241,7 +241,7 @@ void TestAnnotations::checkDefaultAppearance()
 QCOMPARE(color->getValues()[0], 0.1);
 QCOMPARE(color->getValues()[1], 0.2);
 QCOMPARE(color->getValues()[2], 0.3);
-roundtripString.reset(da.toAppearanceString());
+roundtripString = std::make_unique(da.toAppearanceString());
 }
 {
 /* roundtrip through parse/generate/parse shall preserve values */
diff --git a/qt6/tests/check_annotations.cpp 

[poppler] qt5/src qt6/src

2022-01-05 Thread GitLab Mirror
 qt5/src/poppler-pdf-converter.cc |   27 ++-
 qt5/src/poppler-qt5.h|   20 
 qt6/src/poppler-pdf-converter.cc |   27 ++-
 qt6/src/poppler-qt6.h|   20 
 4 files changed, 92 insertions(+), 2 deletions(-)

New commits:
commit 902ef7b20b7b7b6d434e45b3f06d2ac8b3e8ba54
Author: Albert Astals Cid 
Date:   Wed Dec 29 19:26:15 2021 +0100

qt: Allow passing the document password when signing

We need it since in the middle of the signing process we need to reopen
the document we just created to do some final modifications

diff --git a/qt5/src/poppler-pdf-converter.cc b/qt5/src/poppler-pdf-converter.cc
index 5b2e7c03..28256dc7 100644
--- a/qt5/src/poppler-pdf-converter.cc
+++ b/qt5/src/poppler-pdf-converter.cc
@@ -134,9 +134,11 @@ bool PDFConverter::sign(const NewSignatureData )
 std::unique_ptr gSignatureLeftText = 
std::unique_ptr(QStringToUnicodeGooString(data.signatureLeftText()));
 const auto reason = std::unique_ptr(data.reason().isEmpty() ? 
nullptr : QStringToUnicodeGooString(data.reason()));
 const auto location = std::unique_ptr(data.location().isEmpty() 
? nullptr : QStringToUnicodeGooString(data.location()));
+const auto ownerPwd = 
std::make_unique(data.documentOwnerPassword().constData());
+const auto userPwd = 
std::make_unique(data.documentUserPassword().constData());
 return doc->sign(d->outputFileName.toUtf8().constData(), 
data.certNickname().toUtf8().constData(), data.password().toUtf8().constData(), 
QStringToGooString(data.fieldPartialName()), data.page() + 1,
  boundaryToPdfRectangle(destPage, 
data.boundingRectangle(), Annotation::FixedRotation), *gSignatureText, 
*gSignatureLeftText, data.fontSize(), convertQColor(data.fontColor()), 
data.borderWidth(),
- convertQColor(data.borderColor()), 
convertQColor(data.backgroundColor()), reason.get(), location.get());
+ convertQColor(data.borderColor()), 
convertQColor(data.backgroundColor()), reason.get(), location.get(), "" 
/*imagepath*/, ownerPwd.get(), userPwd.get());
 }
 
 struct PDFConverter::NewSignatureData::NewSignatureDataPrivate
@@ -159,6 +161,9 @@ struct 
PDFConverter::NewSignatureData::NewSignatureDataPrivate
 QColor backgroundColor = QColor(240, 240, 240);
 
 QString partialName = QUuid::createUuid().toString();
+
+QByteArray documentOwnerPassword;
+QByteArray documentUserPassword;
 };
 
 PDFConverter::NewSignatureData::NewSignatureData() : d(new 
NewSignatureDataPrivate()) { }
@@ -317,4 +322,24 @@ void 
PDFConverter::NewSignatureData::setFieldPartialName(const QString )
 {
 d->partialName = name;
 }
+
+QByteArray PDFConverter::NewSignatureData::documentOwnerPassword() const
+{
+return d->documentOwnerPassword;
+}
+
+void PDFConverter::NewSignatureData::setDocumentOwnerPassword(const QByteArray 
)
+{
+d->documentOwnerPassword = password;
+}
+
+QByteArray PDFConverter::NewSignatureData::documentUserPassword() const
+{
+return d->documentUserPassword;
+}
+
+void PDFConverter::NewSignatureData::setDocumentUserPassword(const QByteArray 
)
+{
+d->documentUserPassword = password;
+}
 }
diff --git a/qt5/src/poppler-qt5.h b/qt5/src/poppler-qt5.h
index f307a26e..19d30cac 100644
--- a/qt5/src/poppler-qt5.h
+++ b/qt5/src/poppler-qt5.h
@@ -2291,6 +2291,26 @@ public:
 QString fieldPartialName() const;
 void setFieldPartialName(const QString );
 
+/**
+ * Document owner password (needed if the document that is being 
signed is password protected)
+ *
+ * Default: no password
+ *
+ * \since 22.02
+ */
+QByteArray documentOwnerPassword() const;
+void setDocumentOwnerPassword(const QByteArray );
+
+/**
+ * Document user password (needed if the document that is being signed 
is password protected)
+ *
+ * Default: no password
+ *
+ * \since 22.02
+ */
+QByteArray documentUserPassword() const;
+void setDocumentUserPassword(const QByteArray );
+
 private:
 struct NewSignatureDataPrivate;
 NewSignatureDataPrivate *const d;
diff --git a/qt6/src/poppler-pdf-converter.cc b/qt6/src/poppler-pdf-converter.cc
index 1c77146d..2d6c90a1 100644
--- a/qt6/src/poppler-pdf-converter.cc
+++ b/qt6/src/poppler-pdf-converter.cc
@@ -134,9 +134,11 @@ bool PDFConverter::sign(const NewSignatureData )
 std::unique_ptr gSignatureLeftText = 
std::unique_ptr(QStringToUnicodeGooString(data.signatureLeftText()));
 const auto reason = std::unique_ptr(data.reason().isEmpty() ? 
nullptr : QStringToUnicodeGooString(data.reason()));
 const auto location = std::unique_ptr(data.location().isEmpty() 
? nullptr : QStringToUnicodeGooString(data.location()));
+const auto ownerPwd = 
std::make_unique(data.documentOwnerPassword().constData());
+const auto 

[poppler] 6 commits - fofi/FoFiTrueType.cc fofi/FoFiTrueType.h poppler/CairoFontEngine.cc poppler/GfxFont.cc poppler/GfxFont.h poppler/PSOutputDev.cc poppler/PSOutputDev.h poppler/SplashOutputDev.cc q

2022-01-05 Thread GitLab Mirror
 fofi/FoFiTrueType.cc |   18 ++---
 fofi/FoFiTrueType.h  |5 -
 poppler/CairoFontEngine.cc   |   27 +++-
 poppler/GfxFont.cc   |  132 +--
 poppler/GfxFont.h|   25 +---
 poppler/PSOutputDev.cc   |   54 ++---
 poppler/PSOutputDev.h|6 -
 poppler/SplashOutputDev.cc   |   26 +++-
 qt5/src/QPainterOutputDev.cc |   18 ++---
 qt6/src/QPainterOutputDev.cc |   18 ++---
 splash/SplashFTFontEngine.cc |3 
 splash/SplashFontFile.cc |2 
 splash/SplashFontFile.h  |2 
 13 files changed, 159 insertions(+), 177 deletions(-)

New commits:
commit 4d3c2cb33bb0b71697fee27fc0ed6da4ba81bb53
Author: Oliver Sander 
Date:   Fri Dec 31 11:29:16 2021 +0100

Remove a bit of duplicate code

diff --git a/poppler/GfxFont.cc b/poppler/GfxFont.cc
index e99985d4..0c04cae4 100644
--- a/poppler/GfxFont.cc
+++ b/poppler/GfxFont.cc
@@ -726,20 +726,16 @@ std::optional GfxFont::locateFont(XRef *xref, 
PSOutputDev *ps)
 return std::move(fontLoc); // std::move only required to 
please g++-7
 }
 } else {
+GfxFontLoc fontLoc;
+fontLoc.setPath(path);
+fontLoc.locType = gfxFontLocExternal;
 if (sysFontType == sysFontTTF || sysFontType == sysFontTTC) {
-GfxFontLoc fontLoc;
-fontLoc.locType = gfxFontLocExternal;
 fontLoc.fontType = fontTrueType;
-fontLoc.setPath(path);
-return std::move(fontLoc); // std::move only required to 
please g++-7
 } else if (sysFontType == sysFontPFA || sysFontType == sysFontPFB) 
{
-GfxFontLoc fontLoc;
-fontLoc.locType = gfxFontLocExternal;
 fontLoc.fontType = fontType1;
-fontLoc.setPath(path);
 fontLoc.fontNum = fontNum;
-return std::move(fontLoc); // std::move only required to 
please g++-7
 }
+return std::move(fontLoc); // std::move only required to please 
g++-7
 }
 delete path;
 }
commit 953c9c762f346236d856327833f3a550b993138a
Author: Oliver Sander 
Date:   Thu Dec 30 10:46:46 2021 +0100

Let FoFiTrueType::make and ...::load return std::unique_ptr

Because these methods do release the object ownership.

diff --git a/fofi/FoFiTrueType.cc b/fofi/FoFiTrueType.cc
index ce592b8c..d1ab233f 100644
--- a/fofi/FoFiTrueType.cc
+++ b/fofi/FoFiTrueType.cc
@@ -450,33 +450,31 @@ static const char *macGlyphNames[258] = { ".notdef",
 // FoFiTrueType
 //
 
-FoFiTrueType *FoFiTrueType::make(const char *fileA, int lenA, int faceIndexA)
+std::unique_ptr FoFiTrueType::make(const char *fileA, int lenA, 
int faceIndexA)
 {
-FoFiTrueType *ff;
-
-ff = new FoFiTrueType(fileA, lenA, false, faceIndexA);
+// Cannot use std::make_unique, because the constructor is private
+auto ff = new FoFiTrueType(fileA, lenA, false, faceIndexA);
 if (!ff->parsedOk) {
 delete ff;
 return nullptr;
 }
-return ff;
+return std::unique_ptr(ff);
 }
 
-FoFiTrueType *FoFiTrueType::load(const char *fileName, int faceIndexA)
+std::unique_ptr FoFiTrueType::load(const char *fileName, int 
faceIndexA)
 {
-FoFiTrueType *ff;
 char *fileA;
 int lenA;
 
 if (!(fileA = FoFiBase::readFile(fileName, ))) {
 return nullptr;
 }
-ff = new FoFiTrueType(fileA, lenA, true, faceIndexA);
+// Cannot use std::make_unique, because the constructor is private
+auto ff = new FoFiTrueType(fileA, lenA, true, faceIndexA);
 if (!ff->parsedOk) {
-delete ff;
 return nullptr;
 }
-return ff;
+return std::unique_ptr(ff);
 }
 
 FoFiTrueType::FoFiTrueType(const char *fileA, int lenA, bool freeFileDataA, 
int faceIndexA) : FoFiBase(fileA, lenA, freeFileDataA)
diff --git a/fofi/FoFiTrueType.h b/fofi/FoFiTrueType.h
index b90ae2be..908438c0 100644
--- a/fofi/FoFiTrueType.h
+++ b/fofi/FoFiTrueType.h
@@ -29,6 +29,7 @@
 #define FOFITRUETYPE_H
 
 #include 
+#include 
 #include 
 #include 
 #include "FoFiBase.h"
@@ -46,10 +47,10 @@ class POPPLER_PRIVATE_EXPORT FoFiTrueType : public FoFiBase
 {
 public:
 // Create a FoFiTrueType object from a memory buffer.
-static FoFiTrueType *make(const char *fileA, int lenA, int faceIndexA = 0);
+static std::unique_ptr make(const char *fileA, int lenA, int 
faceIndexA = 0);
 
 // Create a FoFiTrueType object from a file on disk.
-static FoFiTrueType *load(const char *fileName, int faceIndexA = 0);
+static std::unique_ptr load(const char *fileName, int 
faceIndexA = 0);
 
 ~FoFiTrueType() override;
 
diff --git a/poppler/CairoFontEngine.cc b/poppler/CairoFontEngine.cc
index c39a3a55..4d98d0f2 100644
--- a/poppler/CairoFontEngine.cc
+++ b/poppler/CairoFontEngine.cc
@@ -351,7 +351,6 @@ CairoFreeTypeFont 

[poppler] Poppler 22.01.0 released

2022-01-05 Thread Albert Astals Cid
This one is a bit late because 3 reasons:
 a) gitlab.freedesktop.org has been acting a bit broken lately
 b) coverity isn't working
 c) the buildbot provided by igalia isn't working

For a) I think I've managed to get all I wanted in the release so we should be 
good

For b) well, we will just have to trust ourselves that we didn't make any 
mistake that an automatic tool would detect

For c) I ran a manual rendering regression test and couldn't find any rendering 
changed so I think we're also good.

Available from
http://poppler.freedesktop.org/poppler-22.01.0.tar.xz

The tarball is signed at 
http://poppler.freedesktop.org/poppler-22.01.0.tar.xz.sig with my key
http://pgp.rediris.es:11371/pks/lookup?op=get=0xCA262C6C83DE4D2FB28A332A3A6A4DB839EAA6D7

Release 22.01.0:
core:
 * Allow local (relative to dll) fonts dir on Windows
 * TextOutputDev: require more spacing between columns. Issue #1093
 * Fix crash in Splash::gouraudTriangleShadedFill. Issue #1183
 * Fix crash when calling Form::reset()
 * GfxSeparationColorSpace: Check validity of colorspace and function. Issue 
#1184
 * Minor code improvements

glib:
 * Include glib.h before using defines from it
 * Close file descriptors on error
 * Plug some memory leaks
 * Replace use of deprecated g_memdup/g_time_zone_new
 * Remove FD-taking functions on windows

utils:
 * pdfsig: Add support for documents with passwords
 * pdfsig: Fix signing with -sign if nss password is needed

This release was brought to you by Albert Astals Cid, Christian Persch, Marco 
Genasci, Marek Kasik, Nelson Benítez León, sunderme and everyone else that 
filed bugs or helped with code reviews :)

Testing, patches and bug reports welcome.

Cheers,
  Albert













[poppler] Changes to 'refs/tags/poppler-22.01.0'

2022-01-05 Thread GitLab Mirror
Tag 'poppler-22.01.0' created by Albert Astals Cid  at 
2022-01-05 13:09 +

poppler 22.01.0

Changes since poppler-21.12.0-26:
---
 0 files changed
---


[poppler] CMakeLists.txt cpp/Doxyfile NEWS qt5/src qt6/src

2022-01-05 Thread GitLab Mirror
 CMakeLists.txt   |6 +++---
 NEWS |   20 
 cpp/Doxyfile |2 +-
 qt5/src/Doxyfile |2 +-
 qt6/src/Doxyfile |2 +-
 5 files changed, 26 insertions(+), 6 deletions(-)

New commits:
commit 16a34e9dfffa9ad1e32459bd05455f25b02a772f
Author: Albert Astals Cid 
Date:   Wed Jan 5 13:53:28 2022 +0100

poppler 22.01.0

diff --git a/CMakeLists.txt b/CMakeLists.txt
index c70eea5c..645560d4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -45,8 +45,8 @@ if (ECM_FOUND)
 endif()
 endif()
 
-set(POPPLER_MAJOR_VERSION "21")
-set(POPPLER_MINOR_VERSION_STRING "12")
+set(POPPLER_MAJOR_VERSION "22")
+set(POPPLER_MINOR_VERSION_STRING "01")
 # We want the string version to have 08 but the integer version can't have a 
leading 0 since otherwise it's considered octal
 # So strip a leading 0 if found in POPPLER_MINOR_VERSION_STRING and store the 
result in POPPLER_MINOR_VERSION
 string(REGEX REPLACE "^0?(.+)$" "\\1" POPPLER_MINOR_VERSION 
"${POPPLER_MINOR_VERSION_STRING}")
@@ -591,7 +591,7 @@ else()
 add_library(poppler ${poppler_SRCS})
 endif()
 generate_export_header(poppler BASE_NAME poppler-private EXPORT_FILE_NAME 
"${CMAKE_CURRENT_BINARY_DIR}/poppler_private_export.h")
-set_target_properties(poppler PROPERTIES VERSION 116.0.0 SOVERSION 116)
+set_target_properties(poppler PROPERTIES VERSION 117.0.0 SOVERSION 117)
 if(MINGW AND BUILD_SHARED_LIBS)
 get_target_property(POPPLER_SOVERSION poppler SOVERSION)
 set_target_properties(poppler PROPERTIES SUFFIX 
"-${POPPLER_SOVERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}")
diff --git a/NEWS b/NEWS
index e01b3cf1..a065c5e7 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,23 @@
+Release 22.01.0:
+core:
+ * Allow local (relative to dll) fonts dir on Windows
+ * TextOutputDev: require more spacing between columns. Issue #1093
+ * Fix crash in Splash::gouraudTriangleShadedFill. Issue #1183
+ * Fix crash when calling Form::reset()
+ * GfxSeparationColorSpace: Check validity of colorspace and function. 
Issue #1184
+ * Minor code improvements
+
+glib:
+ * Include glib.h before using defines from it
+ * Close file descriptors on error
+ * Plug some memory leaks
+ * Replace use of deprecated g_memdup/g_time_zone_new
+ * Remove FD-taking functions on windows
+
+utils:
+ * pdfsig: Add support for documents with passwords
+ * pdfsig: Fix signing with -sign if nss password is needed
+
 Release 21.12.0:
 core:
  * Add API to add images
diff --git a/cpp/Doxyfile b/cpp/Doxyfile
index 381881d0..1d814c5d 100644
--- a/cpp/Doxyfile
+++ b/cpp/Doxyfile
@@ -31,7 +31,7 @@ PROJECT_NAME   = "Poppler CPP"
 # This could be handy for archiving the generated documentation or
 # if some version control system is used.
 
-PROJECT_NUMBER = 21.12.0
+PROJECT_NUMBER = 22.01.0
 
 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
 # base path where the generated documentation will be put.
diff --git a/qt5/src/Doxyfile b/qt5/src/Doxyfile
index 364f2be5..bd8963e7 100644
--- a/qt5/src/Doxyfile
+++ b/qt5/src/Doxyfile
@@ -31,7 +31,7 @@ PROJECT_NAME   = "Poppler Qt5"
 # This could be handy for archiving the generated documentation or
 # if some version control system is used.
 
-PROJECT_NUMBER = 21.12.0
+PROJECT_NUMBER = 22.01.0
 
 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
 # base path where the generated documentation will be put.
diff --git a/qt6/src/Doxyfile b/qt6/src/Doxyfile
index 8ec539d1..fb0ab853 100644
--- a/qt6/src/Doxyfile
+++ b/qt6/src/Doxyfile
@@ -31,7 +31,7 @@ PROJECT_NAME   = "Poppler Qt6"
 # This could be handy for archiving the generated documentation or
 # if some version control system is used.
 
-PROJECT_NUMBER = 21.12.0
+PROJECT_NUMBER = 22.01.0
 
 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
 # base path where the generated documentation will be put.