Artifacts.toml timestamp is in the future

What’s up with this? time stamp 2019-12-09 08:40:51 is 0.244783138 s in the future

tar: JuliaBinaryWrappers-Wayland_protocols_jll.jl-d53533e/Artifacts.toml: time stamp 2019-12-09 08:40:51 is 0.244783138 s in the future
tar: JuliaBinaryWrappers-Wayland_protocols_jll.jl-d53533e/Project.toml: time stamp 2019-12-09 08:40:51 is 0.244491305 s in the future
tar: JuliaBinaryWrappers-Wayland_protocols_jll.jl-d53533e/README.md: time stamp 2019-12-09 08:40:51 is 0.244380904 s in the future
tar: JuliaBinaryWrappers-Wayland_protocols_jll.jl-d53533e/src/Wayland_protocols_jll.jl: time stamp 2019-12-09 08:40:51 is 0.244227431 s in the future
tar: JuliaBinaryWrappers-Wayland_protocols_jll.jl-d53533e/src/wrappers/aarch64-linux-gnu.jl: time stamp 2019-12-09 08:40:51 is 0.244106317 s in the future
tar: JuliaBinaryWrappers-Wayland_protocols_jll.jl-d53533e/src/wrappers/aarch64-linux-musl.jl: time stamp 2019-12-09 08:40:51 is 0.244024727 s in the future
tar: JuliaBinaryWrappers-Wayland_protocols_jll.jl-d53533e/src/wrappers/arm-linux-gnueabihf.jl: time stamp 2019-12-09 08:40:51 is 0.243885174 s in the future
tar: JuliaBinaryWrappers-Wayland_protocols_jll.jl-d53533e/src/wrappers/arm-linux-musleabihf.jl: time stamp 2019-12-09 08:40:51 is 0.24376702 s in the future
tar: JuliaBinaryWrappers-Wayland_protocols_jll.jl-d53533e/src/wrappers/i686-linux-gnu.jl: time stamp 2019-12-09 08:40:51 is 0.243679085 s in the future
tar: JuliaBinaryWrappers-Wayland_protocols_jll.jl-d53533e/src/wrappers/i686-linux-musl.jl: time stamp 2019-12-09 08:40:51 is 0.243484298 s in the future
tar: JuliaBinaryWrappers-Wayland_protocols_jll.jl-d53533e/src/wrappers/powerpc64le-linux-gnu.jl: time stamp 2019-12-09 08:40:51 is 0.243393191 s in the future
tar: JuliaBinaryWrappers-Wayland_protocols_jll.jl-d53533e/src/wrappers/x86_64-linux-gnu.jl: time stamp 2019-12-09 08:40:51 is 0.243334789 s in the future
tar: JuliaBinaryWrappers-Wayland_protocols_jll.jl-d53533e/src/wrappers/x86_64-linux-musl.jl: time stamp 2019-12-09 08:40:51 is 0.243277637 s in the future
tar: JuliaBinaryWrappers-Wayland_protocols_jll.jl-d53533e/src/wrappers: time stamp 2019-12-09 08:40:51 is 0.243200336 s in the future
tar: JuliaBinaryWrappers-Wayland_protocols_jll.jl-d53533e/src: time stamp 2019-12-09 08:40:51 is 0.243166065 s in the future
tar: JuliaBinaryWrappers-Wayland_protocols_jll.jl-d53533e: time stamp 2019-12-09 08:40:51 is 0.243134682 s in the future
 Installed Wayland_protocols_jll ───── v1.18.0+1

I got hundreds of these when I updated pkg

  Updating `~/.julia/environments/v1.3/Project.toml`
  [159f3aea] ↑ Cairo v0.6.0 ⇒ v1.0.1
  [86fae568] ↑ ImageView v0.9.0 ⇒ v0.10.0
  Updating `~/.julia/environments/v1.3/Manifest.toml`
  [7b86fcea] + ATK_jll v2.34.1+2
  [e1450e63] - BufferedStreams v1.0.0
  [6e34b625] + Bzip2_jll v1.0.6+1
  [159f3aea] ↑ Cairo v0.6.0 ⇒ v1.0.1
  [83423d85] + Cairo_jll v1.16.0+2
  [ee1fde0b] + Dbus_jll v1.12.16+0
  [a3f928ae] + Fontconfig_jll v2.13.1+7
  [d7e528f0] + FreeType2_jll v2.10.1+1
  [559328eb] + FriBidi_jll v1.0.5+2
  [e9467ef8] ↑ GLMakie v0.0.8 ⇒ v0.0.9
  [77ec8976] + GTK3_jll v3.24.11+1
  [78b55507] + Gettext_jll v0.20.1+0
  [7746bdde] + Glib_jll v2.59.0+1
  [75302f13] + Graphene_jll v1.10.0+1
  [a2bd30eb] ↑ Graphics v0.4.0 ⇒ v1.0.0
  [3b182d85] + Graphite2_jll v1.3.13+1
  [4c0ca9eb] ↑ Gtk v0.18.0 ⇒ v1.1.0
  [27996c0f] ↑ GtkReactive v0.7.0 ⇒ v1.0.0
  [0862f596] - HTTPClient v0.2.1
  [2e76f6c2] + HarfBuzz_jll v2.6.1+4
  [86fae568] ↑ ImageView v0.9.0 ⇒ v0.10.0
  [dd4b983a] + LZO_jll v2.10.0+0
  [b27032c2] - LibCURL v0.5.2
  [522f3ed2] - LibExpat v0.6.0
  [57eb2189] + Libcroco_jll v0.6.13+0
  [42c93a91] + Libepoxy_jll v1.5.3+1
  [e9f186c6] + Libffi_jll v3.2.1+0
  [d4300ac3] + Libgcrypt_jll v1.8.5+0
  [7e76a0d4] + Libglvnd_jll v1.2.0+1
  [7add5ba3] + Libgpg_error_jll v1.36.0+0
  [94ce4f54] + Libiconv_jll v1.16.0+0
  [925c91fb] + Librsvg_jll v2.42.2+0
  [38a345b3] + Libuuid_jll v2.34.0+3
  [2ec943e9] - Libz v1.0.0
  [2f80f16e] + PCRE_jll v8.42.0+1
  [36c8627f] + Pango_jll v1.42.4+7
  [30392449] + Pixman_jll v0.38.4+1
  [c4c386cf] ↑ Rsvg v0.2.3 ⇒ v1.0.0
  [a2964d1f] + Wayland_jll v1.17.0+0
  [2381bf8a] + Wayland_protocols_jll v1.18.0+1
  [c17dfb99] - WinRPM v0.4.2
  [546b0b6d] + X11_jll v1.6.8+4
  [02c8fc9c] + XML2_jll v2.9.9+0
  [aed1982a] + XSLT_jll v1.1.33+0
  [0af4abc2] + Xorg_compositeproto_jll v0.4.0+0
  [17eb5352] + Xorg_damageproto_jll v1.2.1+0
  [cf2f014d] + Xorg_fixesproto_jll v5.0.0+0
  [41595b7c] + Xorg_glproto_jll v1.4.17+0
  [84d6cd60] + Xorg_inputproto_jll v2.3.2+0
  [060dd47b] + Xorg_kbproto_jll v1.0.7+0
  [4f6342f7] + Xorg_libX11_jll v1.6.8+0
  [0c0b7dd1] + Xorg_libXau_jll v1.0.9+0
  [3c9796d7] + Xorg_libXcomposite_jll v0.4.5+0
  [935fb764] + Xorg_libXcursor_jll v1.2.0+0
  [0aeada51] + Xorg_libXdamage_jll v1.1.5+0
  [a3789734] + Xorg_libXdmcp_jll v1.1.3+0
  [1082639a] + Xorg_libXext_jll v1.3.4+0
  [d091e8ba] + Xorg_libXfixes_jll v5.0.3+0
  [a51aa0fd] + Xorg_libXi_jll v1.7.10+0
  [d1454406] + Xorg_libXinerama_jll v1.1.4+0
  [ec84b674] + Xorg_libXrandr_jll v1.5.2+0
  [ea2f1a96] + Xorg_libXrender_jll v0.9.10+0
  [b6f176f1] + Xorg_libXtst_jll v1.2.3+0
  [14d82f49] + Xorg_libpthread_stubs_jll v0.1.0+0
  [c7cfdc94] + Xorg_libxcb_jll v1.13.0+0
  [cc61e674] + Xorg_libxkbfile_jll v1.1.0+0
  [0e394dc1] + Xorg_randrproto_jll v1.5.0+0
  [a7b44dc7] + Xorg_recordproto_jll v1.14.2+0
  [21e99dc2] + Xorg_renderproto_jll v0.11.1+0
  [7c09cfe3] + Xorg_util_macros_jll v1.19.2+0
  [c2e9c405] + Xorg_xcb_proto_jll v1.13.0+0
  [d13bc2ba] + Xorg_xextproto_jll v7.3.0+0
  [6a3da44c] + Xorg_xineramaproto_jll v1.2.1+0
  [35661453] + Xorg_xkbcomp_jll v1.4.2+0
  [33bec58e] + Xorg_xkeyboard_config_jll v2.27.0+0
  [46797783] + Xorg_xproto_jll v7.0.31+0
  [c5fb5394] + Xorg_xtrans_jll v1.4.0+0
  [b437f822] + adwaita_icon_theme_jll v3.33.92+3
  [de012916] + at_spi2_atk_jll v2.34.1+0
  [0fc3237b] + at_spi2_core_jll v2.34.0+0
  [da03df04] + gdk_pixbuf_jll v2.38.2+5
  [059c91fe] + hicolor_icon_theme_jll v0.17.0+1
  [bf975903] + iso_codes_jll v4.3.0+1
  [d8fb68d0] + xkbcommon_jll v0.9.1+1

and when I type gc I get a huge list of junk that I don’t want to see:

(v1.3) pkg> gc
    Active manifests:
        `~/.julia/environments/v1.3/Manifest.toml`
    Active artifacts:
        `~/.julia/packages/hicolor_icon_theme_jll/Ws7hU/Artifacts.toml`
        `~/.julia/packages/X11_jll/oEZmc/Artifacts.toml`
        `~/.julia/packages/PCRE_jll/Fmted/Artifacts.toml`
        `~/.julia/packages/XML2_jll/A51xd/Artifacts.toml`
        `~/.julia/packages/Xorg_libXinerama_jll/gK76K/Artifacts.toml`
        `~/.julia/packages/Xorg_recordproto_jll/Zhuwx/Artifacts.toml`
        `~/.julia/packages/Libuuid_jll/3mCHX/Artifacts.toml`
        `~/.julia/packages/Libgpg_error_jll/swyfG/Artifacts.toml`
        `~/.julia/packages/Xorg_libX11_jll/0XCAH/Artifacts.toml`
        `~/.julia/packages/Xorg_randrproto_jll/KCL8q/Artifacts.toml`
        `~/.julia/packages/Libgcrypt_jll/HOSJf/Artifacts.toml`
        `~/.julia/packages/Wayland_jll/ZF5De/Artifacts.toml`
        `~/.julia/packages/Libtiff_jll/MmAZJ/Artifacts.toml`
        `~/.julia/packages/Xorg_libXrender_jll/8RSga/Artifacts.toml`
        `~/.julia/packages/Xorg_libXfixes_jll/N95p3/Artifacts.toml`
        `~/.julia/packages/Cairo_jll/YBi8c/Artifacts.toml`
        `~/.julia/packages/Xorg_kbproto_jll/aHdWf/Artifacts.toml`
        `~/.julia/packages/Pango_jll/UMiuu/Artifacts.toml`
        `~/.julia/packages/Xorg_compositeproto_jll/AvlY7/Artifacts.toml`
        `~/.julia/packages/Xorg_libpthread_stubs_jll/UaGdf/Artifacts.toml`
        `~/.julia/packages/Xorg_libxkbfile_jll/Il3a1/Artifacts.toml`
        `~/.julia/packages/Libcroco_jll/8Lf6u/Artifacts.toml`
        `~/.julia/packages/Xorg_libxcb_jll/7TTxz/Artifacts.toml`
        `~/.julia/packages/ATK_jll/yPlsG/Artifacts.toml`
        `~/.julia/packages/Libffi_jll/Foavt/Artifacts.toml`
        `~/.julia/packages/Librsvg_jll/Fwqty/Artifacts.toml`
        `~/.julia/packages/Libiconv_jll/WiiFQ/Artifacts.toml`
        `~/.julia/packages/Xorg_xextproto_jll/77yTk/Artifacts.toml`
        `~/.julia/packages/Glib_jll/ljqSo/Artifacts.toml`
        `~/.julia/packages/XSLT_jll/NFdIe/Artifacts.toml`
        `~/.julia/packages/FriBidi_jll/xiuUc/Artifacts.toml`
        `~/.julia/packages/Xorg_libXdamage_jll/dvkc9/Artifacts.toml`
        `~/.julia/packages/Xorg_glproto_jll/3QQqa/Artifacts.toml`
        `~/.julia/packages/Pixman_jll/JfpBS/Artifacts.toml`
        `~/.julia/packages/Zlib_jll/bEXvf/Artifacts.toml`
        `~/.julia/packages/Zstd_jll/sFMeQ/Artifacts.toml`
        `~/.julia/packages/Graphite2_jll/tL3HA/Artifacts.toml`
        `~/.julia/packages/Fontconfig_jll/ywTvl/Artifacts.toml`
        `~/.julia/packages/Xorg_xcb_proto_jll/VsBED/Artifacts.toml`
        `~/.julia/packages/Xorg_libXi_jll/WaWYF/Artifacts.toml`
        `~/.julia/packages/Xorg_xkbcomp_jll/BignN/Artifacts.toml`
        `~/.julia/packages/Xorg_libXrandr_jll/23Q2t/Artifacts.toml`
        `~/.julia/packages/Xorg_util_macros_jll/hVhIL/Artifacts.toml`
        `~/.julia/packages/Xorg_xineramaproto_jll/X4OnJ/Artifacts.toml`
        `~/.julia/packages/Xorg_damageproto_jll/kIeYp/Artifacts.toml`
        `~/.julia/packages/Bzip2_jll/2H8pU/Artifacts.toml`
        `~/.julia/packages/Dbus_jll/AzgQo/Artifacts.toml`
        `~/.julia/packages/Xorg_xproto_jll/eEcaW/Artifacts.toml`
        `~/.julia/packages/Xorg_libXext_jll/h2K7X/Artifacts.toml`
        `~/.julia/packages/iso_codes_jll/68Q4t/Artifacts.toml`
        `~/.julia/packages/Gettext_jll/taxbQ/Artifacts.toml`
        `~/.julia/packages/Xorg_xkeyboard_config_jll/I7p9M/Artifacts.toml`
        `~/.julia/packages/Xorg_libXtst_jll/ezyd0/Artifacts.toml`
        `~/.julia/packages/at_spi2_core_jll/WA4Vq/Artifacts.toml`
        `~/.julia/packages/Xorg_fixesproto_jll/m5mh5/Artifacts.toml`
        `~/.julia/packages/libpng_jll/msala/Artifacts.toml`
        `~/.julia/packages/Graphene_jll/sQ3ho/Artifacts.toml`
        `~/.julia/packages/Xorg_libXcomposite_jll/1nkTY/Artifacts.toml`
        `~/.julia/packages/gdk_pixbuf_jll/76Cuj/Artifacts.toml`
        `~/.julia/packages/Xorg_libXau_jll/VwzXL/Artifacts.toml`
        `~/.julia/packages/Wayland_protocols_jll/5GNkv/Artifacts.toml`
        `~/.julia/packages/Xorg_renderproto_jll/Hg95e/Artifacts.toml`
        `~/.julia/packages/Xorg_libXcursor_jll/DhBt8/Artifacts.toml`
        `~/.julia/packages/xkbcommon_jll/HyQPN/Artifacts.toml`
        `~/.julia/packages/OpenSpecFun_jll/XrUb6/Artifacts.toml`
        `~/.julia/packages/Libglvnd_jll/TbTqM/Artifacts.toml`
        `~/.julia/packages/Xorg_xtrans_jll/8r2eV/Artifacts.toml`
        `~/.julia/packages/Xorg_libXdmcp_jll/bA1UY/Artifacts.toml`
        `~/.julia/packages/adwaita_icon_theme_jll/Y1ZKA/Artifacts.toml`
        `~/.julia/packages/LZO_jll/pvHI5/Artifacts.toml`
        `~/.julia/packages/GTK3_jll/S7mg1/Artifacts.toml`
        `~/.julia/packages/JpegTurbo_jll/Cfr2U/Artifacts.toml`
        `~/.julia/packages/Expat_jll/YXYuQ/Artifacts.toml`
        `~/.julia/packages/HarfBuzz_jll/hmS9A/Artifacts.toml`
        `~/.julia/packages/Xorg_inputproto_jll/Rj3IK/Artifacts.toml`
        `~/.julia/packages/at_spi2_atk_jll/FoJFF/Artifacts.toml`
        `~/.julia/packages/FreeType2_jll/BxhKx/Artifacts.toml`
        `~/.julia/packages/ImageMagick_jll/VBgqs/Artifacts.toml`
        `~/.julia/packages/Libepoxy_jll/zxfXa/Artifacts.toml`
   Deleted no artifacts or packages

Why do I need to see all this unnecessary junk about active artifacts when no artifacts were deleted?

The gc output really shouldn’t take up the entire screen if it doesn’t delete anything…

And why are there so many of these jll things being downloaded? I already have xorg and wayland installed on my Linux system… why would I need to have the Julia package manager do all this?

Why can’t I have a single Artifacts.toml just like a single Manifest.toml in the gc command?

I got the same tar error previously and the issue was, that my system clock wasn’t set correctly.

See https://julialang.org/blog/2019/11/artifacts

Regarding the massive output. The output from Pkg has been largely designed based on “normal” (non-jll) packages so it is possible that there should be some tweaking to the printing of jll-packages in particular.

@kristoffer.carlsson why wouldn’t the gc command list a single active Artifacts.toml file, just like it only lists a single Manifests.toml file?

Also, what if I want to rely on my system installed binaries instead of jll binaries?

It just happens that you haven’t used other projects. For me it says:

(v1.3) pkg> gc
    Active manifests:
        `~/Downloads/elastic/Manifest.toml`
        `~/.julia/dev/BinaryBuilder/Manifest.toml`
        `~/NewSysImageEnv/Manifest.toml`
        `~/Documents/JuliaTests/Manifest.toml`
        `~/JuliaPkgs/MacroTools.jl/Manifest.toml`
        `~/JuliaPkgs/PGFPlotsX.jl/Manifest.toml`
...

I’ve also seen the stream of “timestamp in the future” messages - I don’t think it’s a problem with my local clock - maybe something with time zones?

We need to at least switch to calling tar -m so that it ignores the recorded mtimes and just makes files with the current time as the mtime. After all, we don’t care about capturing the actual mtime of an artifiact, just the contents. This is what Tar.jl does by default (currently the only thing it supports), so we can also switch to using that, but throwing a -m flag on the tar call is an easy fix.

Update: PR created https://github.com/JuliaLang/Pkg.jl/pull/1537. Hopefully I untangled the rat’s nest that is PlatformEngines correctly; I cannot wait to get rid of it and replace it with pure Julia implementations.

1 Like

So how can I figure out which Julia packages caused the download of xorg and wayland as jll?

Currently, it isn’t possible to easily trace or figure out why all these jll were downloaded.

Note that these warnings usually indicate that your system clock is out of sync, maybe you want to check syncing is working. If you go to https://time.is/ you’ll probably get about the same amount of time difference as that reported by tar. As annoying these warnings are, they’re telling you the truth.

How can I manage the installation and removal of these artifacts? What happens if I delete the wayland and xorg artifacts? How do I know which packages are affected by the deletion?

Like any other package

That package depending on them will stop working, but I guess you can’t easily uninstall a package that is a dependency of other packages without breaking a lot of stuff. It’s not clear to me why you would want to do that.

I see you have Cairo, so everything related with Cairo won’t work.

1 Like

Alright, I have found the information I needed in Manitest.toml.

It would be good if there was an option to use the native linux binaries of xorg instead of using artifacts.

1 Like

This is what happened with BinDeps and proved to be the cause of all sort of problems. The idea of these jll packages is exactly to not use them. On GNU/Linux systems installing this dependency tends to be easy, but it’s not always as straightforward as you can think. There are distributions that make it hard to use system libraries. Also, installing system libraries usually means requiring admin access to the machine, I’m sure you understand that this isn’t always possible. And even with sudo access, BinDeps used to fail to install libraries (it happened to me a few times, I had to install them manually).

Note also that shipping the libraries in this way helps reproducibility, as everybody gets the same version of the library, instead of using dozens of different libraries versions across all the different operating systems and their versions.

3 Likes

That’s nice it is fixed for all those people, but I would still prefer an option for utilizing system libraries.

I had no problems with them in the past.

I think you’re not the only user out there :wink: Also, if the new system is also working, I don’t see why complaining :confused:

1 Like

I only have 5 more GB of free space currently, and this is a lot of extra un-necessary binaries

that is why I worry about this type of issue

1 Like

There is—see the documentation on “overrides”:

https://julialang.github.io/Pkg.jl/dev/artifacts/#Overriding-artifact-locations-1

In the future, Linux distros that offer Julia will probably want to provide override files with correct locations to their native libraries.

5 Likes

The trade-off here is between storage price (currently < $0.25/Gb for SSDs!) and developer time (yours, and the others tracking down issues that come from not using the same binaries).

While almost-duplicating stuff can be seen as wasteful, expect this trend to continue, since the bottleneck is developer time — anyone who has spent a few hours tracking down some library incompatibility is very eager to avoid doing it again, even if this comes at the cost of a few hundred megabytes per library (yes, it adds up, but so does the work).

2 Likes

Sounds great, except I don’t have a few hundred dollars laying around to spend on SSD drives.

Also, I don’t necessarily trust binaries that are not distributed by my OS or compiled by myself. This is a rather large amount of binaries compiled by someone else I have to trust now, instead of my OS distributor.

It would be much more secure to only rely on the binaries from my OS or ones I compile myself, so that there are less potential points of security failure.

I am glad these binaries ate available for difficult situations, but it is a BAD trend and I will always prefer selecting my own binaries over having others select.

1 Like