--- Begin Message ---
Subject: |
[PATCH core-updates 0/4] Replace libjpeg with libjpeg-turbo |
Date: |
Mon, 20 Jan 2020 00:16:51 +0100 |
AIUI most distributions have moved away from the IJG libjpeg library in
favor of libjpeg-turbo (which is ABI- and API-compatible, and under lots
of scrutiny by security researchers).
This series do the same for Guix.
Marius Bakke (4):
gnu: RHash: Do not use git-fetch, but provide a fallback URL.
gnu: cmake-minimal: Build with a minimal variant of cURL.
gnu: Replace uses of 'libjpeg' with 'libjpeg-turbo'.
gnu: Deprecate the 'libjpeg' variable.
gnu/packages/abiword.scm | 2 +-
gnu/packages/admin.scm | 2 +-
gnu/packages/algebra.scm | 2 +-
gnu/packages/animation.scm | 2 +-
gnu/packages/astronomy.scm | 4 ++--
gnu/packages/cdrom.scm | 2 +-
gnu/packages/cmake.scm | 5 ++++-
gnu/packages/cran.scm | 6 +++---
gnu/packages/crypto.scm | 18 ++++++++++++------
gnu/packages/cups.scm | 4 ++--
gnu/packages/curl.scm | 16 ++++++++++++++--
gnu/packages/display-managers.scm | 2 +-
gnu/packages/ebook.scm | 2 +-
gnu/packages/emacs.scm | 2 +-
gnu/packages/emulators.scm | 2 +-
gnu/packages/enlightenment.scm | 2 +-
gnu/packages/fltk.scm | 4 ++--
gnu/packages/fontutils.scm | 2 +-
gnu/packages/freedesktop.scm | 2 +-
gnu/packages/game-development.scm | 12 ++++++------
gnu/packages/games.scm | 20 ++++++++++----------
gnu/packages/gd.scm | 4 ++--
gnu/packages/ghostscript.scm | 6 +++---
gnu/packages/gimp.scm | 4 ++--
gnu/packages/gnome.scm | 8 ++++----
gnu/packages/gnunet.scm | 2 +-
gnu/packages/gnustep.scm | 2 +-
gnu/packages/graphics.scm | 14 +++++++-------
gnu/packages/graphviz.scm | 2 +-
gnu/packages/gstreamer.scm | 2 +-
gnu/packages/gtk.scm | 2 +-
gnu/packages/image-processing.scm | 16 ++++++++--------
gnu/packages/image-viewers.scm | 4 ++--
gnu/packages/image.scm | 31 +++++++++++++++++--------------
gnu/packages/imagemagick.scm | 4 ++--
gnu/packages/java.scm | 10 +++++-----
gnu/packages/kde-frameworks.scm | 2 +-
gnu/packages/kodi.scm | 2 +-
gnu/packages/machine-learning.scm | 4 ++--
gnu/packages/mate.scm | 4 ++--
gnu/packages/maths.scm | 8 ++++----
gnu/packages/netpbm.scm | 2 +-
gnu/packages/pdf.scm | 8 ++++----
gnu/packages/photo.scm | 12 ++++++------
gnu/packages/prolog.scm | 2 +-
gnu/packages/python-xyz.scm | 4 ++--
gnu/packages/qt.scm | 6 +++---
gnu/packages/rdesktop.scm | 2 +-
gnu/packages/scanner.scm | 4 ++--
gnu/packages/scheme.scm | 2 +-
gnu/packages/scribus.scm | 2 +-
gnu/packages/sdl.scm | 4 ++--
gnu/packages/spice.scm | 2 +-
gnu/packages/statistics.scm | 2 +-
gnu/packages/tcl.scm | 2 +-
gnu/packages/upnp.scm | 2 +-
gnu/packages/video.scm | 8 ++++----
gnu/packages/web-browsers.scm | 4 ++--
gnu/packages/web.scm | 2 +-
gnu/packages/webkit.scm | 2 +-
gnu/packages/wine.scm | 2 +-
gnu/packages/wv.scm | 2 +-
gnu/packages/wxwidgets.scm | 4 ++--
gnu/packages/xdisorg.scm | 2 +-
gnu/packages/xfce.scm | 2 +-
gnu/packages/xfig.scm | 4 ++--
gnu/packages/xorg.scm | 2 +-
67 files changed, 179 insertions(+), 155 deletions(-)
--
2.24.1
--- End Message ---
--- Begin Message ---
Subject: |
Re: [PATCH core-updates 2/4] gnu: cmake-minimal: Build with a minimal variant of cURL. |
Date: |
Wed, 22 Jan 2020 19:46:00 +0100 |
User-agent: |
Notmuch/0.29.3 (https://notmuchmail.org) Emacs/26.3 (x86_64-pc-linux-gnu) |
Jakub Kądziołka <address@hidden> writes:
>> This is necessary to avoid a circular dependency in the next commit.
>>
>> * gnu/packages/curl.scm (curl-minimal): New public variable.
>> * gnu/packages/cmake.scm (cmake-minimal)[inputs]: Change from CURL to
>> CURL-MINIMAL.
>> (cmake)[inputs]: Do the opposite.
>
> Is there a reason this curl-minimal couldn't also be used for
> git-minimal? This would keep the updater working for rhash.
Good catch. I did this initially, but found it simpler to not use
git-fetch for RHash. I don't like inserting these 'magic' packages
around the graph. It also means we need two graft two cURLs instead of
one.
But I don't feel strongly about it, and keeping the updater working is a
good argument. So I was about to revert back, but then found out RHash
is available on sourceforge too:
https://sourceforge.net/projects/rhash/
Much better!
Since you made me reconsider, I also found a better solution for 2/4: we
can lose CMakes runtime dependency on 'curl-minimal' as well by using it
only once, to build libjpeg-turbo:
diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm
index d053935a86..fcc6642280 100644
--- a/gnu/packages/cmake.scm
+++ b/gnu/packages/cmake.scm
@@ -152,7 +152,7 @@
(apply invoke "./configure" configure-flags))))))
(native-inputs
`(("bzip2" ,bzip2)
- ("curl" ,curl-minimal)
+ ("curl" ,curl)
("expat" ,expat)
("file" ,file)
("libarchive" ,libarchive)
@@ -235,6 +235,18 @@ and workspaces that can be used in the compiler
environment of your choice.")
(search-paths
(package-native-search-paths cmake-minimal))))
+;; The purpose of this package is to solve a circular dependency between
+;; packages that use cmake-build-system and CMakes own dependencies.
+(define-public cmake-minimal-bootstrap
+ (package
+ (inherit cmake-minimal)
+ (name "cmake-minimal-bootstrap")
+ (native-inputs
+ `(;; cURL depends on ghostscript (via groff and OpenLDAP), which depends
on
+ ;; 'cmake-build-system' through libtiff and ultimately libjpeg-turbo.
+ ("curl" ,curl-minimal)
+ ,@(alist-delete "curl" (package-native-inputs cmake-minimal))))))
+
(define-public emacs-cmake-mode
(package
(inherit cmake)
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 38efe61780..1b86f700e4 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -46,6 +46,7 @@
#:use-module (gnu packages autotools)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
+ #:use-module (gnu packages cmake)
#:use-module (gnu packages curl)
#:use-module (gnu packages compression)
#:use-module (gnu packages documentation)
@@ -1505,8 +1506,13 @@ is hereby granted."))))
(native-inputs
`(("nasm" ,nasm)))
(arguments
- '(#:configure-flags '("-DCMAKE_INSTALL_LIBDIR:PATH=lib"
- "-DENABLE_STATIC=0")))
+ `(#:configure-flags '("-DCMAKE_INSTALL_LIBDIR:PATH=lib"
+ "-DENABLE_STATIC=0")
+ ,@(if (%current-target-system)
+ '()
+ ;; Use a special "bootstrap" CMake for the native build to work
+ ;; around a circular dependency between CMake and this package.
+ `(#:cmake ,cmake-minimal-bootstrap))))
(home-page "https://libjpeg-turbo.org/")
(synopsis "SIMD-accelerated JPEG image handling library")
(description "libjpeg-turbo is a JPEG image codec that accelerates baseline
Thanks a lot for the feedback. Will push this shortly. :-)
signature.asc
Description: PGP signature
--- End Message ---