From 06563409e6f2b1cca7bc1b27e31efd07a7569da8 Mon Sep 17 00:00:00 2001 From: Philip McGrath Date: Thu, 14 Apr 2022 22:41:04 -0400 Subject: [PATCH] minimal support for offline builds Normally, Elm performs HTTP requests before building to obtain or update its list of all registed packages and their versions. This is problematic in the Guix build environment. This patch causes Elm to check if the `GUIX_ELM_OFFLINE_REGISTRY_FILE` is set and, if so, to use the contents of the file it specifies as though it were the response from https://package.elm-lang.org/all-packages. This patch does not attempt to add more general support for offline builds. In particular, it does not attempt to support incremental updates to the package registry cache file. See also discussion at https://discourse.elm-lang.org/t/private-package-tool-spec/6779/25. --- builder/src/Deps/Registry.hs | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/builder/src/Deps/Registry.hs b/builder/src/Deps/Registry.hs index 8d7def98..70cf3622 100644 --- a/builder/src/Deps/Registry.hs +++ b/builder/src/Deps/Registry.hs @@ -18,6 +18,8 @@ import Control.Monad (liftM2) import Data.Binary (Binary, get, put) import qualified Data.List as List import qualified Data.Map.Strict as Map +import System.Environment as Env +import qualified Data.ByteString as BS import qualified Deps.Website as Website import qualified Elm.Package as Pkg @@ -190,13 +192,28 @@ getVersions' name (Registry _ versions) = post :: Http.Manager -> String -> D.Decoder x a -> (a -> IO b) -> IO (Either Exit.RegistryProblem b) post manager path decoder callback = let - url = Website.route path [] - in - Http.post manager url [] Exit.RP_Http $ - \body -> + mkBodyCallback url body = case D.fromByteString decoder body of Right a -> Right <$> callback a Left _ -> return $ Left $ Exit.RP_Data url body + postOnline url cb = + Http.post manager url [] Exit.RP_Http cb + performPost f url = + f url (mkBodyCallback url) + in + do + maybeFile <- Env.lookupEnv "GUIX_ELM_OFFLINE_REGISTRY_FILE" + case (path, maybeFile) of + ( "/all-packages", Just file ) -> + performPost postOffline file + ( _, _ ) -> + -- don't know how to handle other endpoints yet + performPost postOnline (Website.route path []) + +postOffline :: String -> (BS.ByteString -> IO a) -> IO a +postOffline file callback = do + body <- BS.readFile file + callback body -- 2.32.0 howmsg=1'>Expand)Author 2024-09-03gnu: emacs-minimal: Do not native-compile lisp/transient.el....* gnu/packages/emacs.scm (emacs-minimal)[#:phases]: Add ‘disable-native-compilation’ to turn off native-compilation for the file lisp/transient.el. Change-Id: I27c9d660cbad46be66df641816e4596346969dfc Fixes: transient-prefix-object is void <https://issues.guix.gnu.org/72333>. Reported-by: Daniel Szmulewicz <daniel.szmulewicz@gmail.com> Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com> Simon Tournier 2024-07-21gnu: emacs-minimal: Ungraft....The current graft breaks native compilation and would do so even if reduced to an ABI hash. Thus remove it, and rebuild all Emacsen. * gnu/packages/emacs.scm (emacs-minimal): Update to 29.4. [replacement]: Remove. Add note for future replacements. (emacs-minimal/fixed): Remove variable. Fixes: Emacs native compilation across grafts <https://bugs.gnu.org/72045> Liliana Marie Prikler 2024-07-07gnu: emacs-next: Update to 30.0.60-1.4e22ef8....* gnu/packages/aux-files/emacs/comp-integrity-next.el: New file. * Makefile.am (AUX_FILES): Register it here. * gnu/packages/emacs.scm (emacs-next-minimal): Update to 30.0.60-1.4e22ef8. (emacs->emacs-next)[arguments]: Swap out ‘validate-comp-integrity’ phase, so as to refer to the new integrity check. Liliana Marie Prikler 2024-06-23Revert "gnu: emacs: Update to 29.4. (security fixes)"...This reverts commit 7e15704613b67ec54df8f1269916bc72b76bb785. It causes rebuilds to all of emacs-*, whereas a graft has already been applied in 868a022cdca164941a6fe8dcf205aefc693781cb. Liliana Marie Prikler 2024-06-23gnu: emacs: Update to 29.4. (security fixes)...This fixes an issue where org-mode would run arbitrary shell code on startup. See <https://lists.gnu.org/archive/html/emacs-devel/2024-06/msg00695.html> for the release announcement. * gnu/packages/emacs.scm (emacs-minimal): Update to 29.4. Liliana Marie Prikler 2024-06-23gnu: emacs-minimal: Graft with 29.4 [security fixes]....Arbitrary shell commands are no longer run when turning on Org mode. This is for security reasons, to avoid running malicious commands. * gnu/packages/emacs.scm (emacs-minimal/fixed): New variable. (emacs-minimal)[replacement]: Graft. Change-Id: Idb74ee0a05486bfe5052c4dd804fbdaec8921774 Zheng Junjie