JuliaPackaging / Homebrew.jl

OSX Binary dependency provider for Julia
Other
27 stars 32 forks source link

Pkg.update() always rebuilds fontconfig #142

Closed rsrock closed 8 years ago

rsrock commented 8 years ago

Lately, I've been getting this every time I update. The line about "this may take a while" is certainly true 😄

INFO: Building Homebrew
Already up-to-date.
Uninstalling fontconfig... (450 files, 2.9M)
==> Installing fontconfig from staticfloat/juliatranslated
==> Downloading https://homebrew.bintray.com/bottles/fontconfig-2.11.1_2.el_capitan.bottle.tar.gz
Already downloaded: /Users/rrock/Library/Caches/Homebrew.jl/fontconfig-2.11.1_2.el_capitan.bottle.tar.gz
==> Pouring fontconfig-2.11.1_2.el_capitan.bottle.tar.gz
==> Regenerating font cache, this may take a while
==> /Users/rrock/.julia/v0.5/Homebrew/deps/usr/Cellar/fontconfig/2.11.1_2/bin/fc-cache -frv
🍺  /Users/rrock/.julia/v0.5/Homebrew/deps/usr/Cellar/fontconfig/2.11.1_2: 450 files, 2.9M
Warning: Already linked: /Users/rrock/.julia/v0.5/Homebrew/deps/usr/Cellar/fontconfig/2.11.1_2

pinging @staticfloat

tkelman commented 8 years ago

what's your Pkg.status() ?

rsrock commented 8 years ago

Constantly changing, but currently

julia> Pkg.status()
93 required packages:
 - ASCIIPlots                    0.0.3
 - AffineTransforms              0.1.4
 - AndorSIF                      0.0.3
 - AppleAccelerate               0.2.1
 - ArgParse                      0.3.1
 - Atom                          0.4.4
 - Autoreload                    0.2.0
 - BaseTestNext                  0.2.2
 - BenchmarkTools                0.0.3
 - BioSeq                        0.4.0
 - Bootstrap                     1.0.0
 - Cairo                         0.2.34
 - Changepoints                  0.2.0
 - Clang                         0.1.0
 - Clustering                    0.6.0
 - ColorVectorSpace              0.1.6
 - Colors                        0.6.6
 - Compat                        0.8.6
 - Compose                       0.4.2+             master
 - Coverage                      0.3.0
 - DSP                           0.0.11
 - DataArrays                    0.3.8
 - DataFrames                    0.7.8
 - Dates                         0.4.4
 - DecisionTree                  0.4.2
 - DeclarativePackages           0.1.2
 - Dierckx                       0.1.9
 - Distances                     0.3.2
 - Distributions                 0.10.2
 - DocOpt                        0.1.3
 - Documenter                    0.2.0
 - FactCheck                     0.4.3
 - FastaIO                       0.1.5
 - GR                            0.14.0
 - Gadfly                        0.4.2+             f46f74ac (dirty)
 - Gallium                       0.0.3
 - Gillespie                     0.0.1
 - Graphics                      0.1.3
 - Grid                          0.4.2
 - Gtk                           0.10.1
 - HDF5                          0.6.5
 - HypothesisTests               0.3.0
 - IJulia                        1.2.0
 - IProfile                      0.4.0
 - ImageMagick                   0.1.7
 - ImageView                     0.1.20
 - Images                        0.5.8
 - Immerse                       0.0.11
 - Interact                      0.3.1
 - JLD                           0.6.3
 - JSON                          0.6.0
 - LightXML                      0.3.0
 - Lint                          0.2.4
 - Logging                       0.2.0
 - LsqFit                        0.0.2
 - MacroTools                    0.3.2
 - Match                         0.2.2
 - Mustache                      0.0.15
 - NBInclude                     1.0.1
 - NLopt                         0.3.2
 - Netpbm                        0.1.0
 - NullableArrays                0.0.7
 - NumericExtensions             0.6.2
 - OpenGL                        2.0.3
 - Optim                         0.5.0
 - PGFPlots                      1.3.5
 - Patchwork                     0.2.2
 - PkgDev                        0.1.2
 - PlotlyJS                      0.3.1
 - Plots                         0.9.0
 - Polynomials                   0.0.5
 - ProfileView                   0.1.3
 - ProgressMeter                 0.3.3
 - PyCall                        1.7.0
 - PyPlot                        2.2.1
 - QuartzImageIO                 0.1.4              master
 - RCall                         0.5.1
 - RDatasets                     0.1.3
 - SIUnits                       0.0.6
 - StatsBase                     0.9.0
 - StrPack                       0.0.1
 - StructsOfArrays               0.0.3
 - TerminalExtensions            0.1.0
 - TestImages                    0.1.1
 - TextPlots                     0.3.0
 - TimeSeries                    0.5.10
 - Tk                            0.3.8
 - TypeCheck                     0.0.3
 - UnicodePlots                  0.1.4
 - Watcher                       0.1.0
 - Winston                       0.11.13
 - YAML                          0.1.10
 - ZMQ                           0.3.4
98 additional packages:
 - ASTInterpreter                0.0.3
 - AbstractTrees                 0.0.3
 - ArrayViews                    0.6.4
 - AxisAlgorithms                0.1.5
 - Benchmark                     0.1.0
 - BinDeps                       0.4.2
 - Blink                         0.3.4
 - Blosc                         0.1.6
 - BufferedStreams               0.1.6
 - COFF                          0.0.1
 - CRC                           1.1.1
 - Calculus                      0.1.15
 - CodeTools                     0.3.1
 - Codecs                        0.2.0
 - ColorBrewer                   0.3.0
 - ColorTypes                    0.2.5
 - Combinatorics                 0.3.2
 - Conda                         0.2.3
 - Contour                       0.1.1
 - DWARF                         0.0.3
 - DataStructures                0.4.5
 - DocStringExtensions           0.1.0
 - Docile                        0.5.23
 - DualNumbers                   0.2.2
 - ELF                           0.0.3
 - FIONA                         0.0.0-             master (unregistered, dirty)
 - FileIO                        0.1.0
 - FixedPointNumbers             0.1.4
 - FixedSizeArrays               0.2.2
 - ForwardDiff                   0.2.2
 - FunctionalCollections         0.1.3
 - GZip                          0.2.20
 - GetC                          1.1.1
 - GtkUtilities                  0.1.0
 - Hexagons                      0.0.4
 - Hiccup                        0.0.3
 - Homebrew                      0.3.4
 - HttpCommon                    0.2.6
 - HttpParser                    0.1.1
 - HttpServer                    0.1.6
 - ImageJ                        0.0.0-             master (unregistered)
 - IniFile                       0.2.5
 - Interpolations                0.3.5
 - Iterators                     0.1.10
 - JuliaParser                   0.7.4
 - KernelDensity                 0.2.0
 - Kymograph                     0.0.0-             master (unregistered)
 - LNR                           0.0.2
 - LaTeXStrings                  0.2.0
 - Lazy                          0.11.0
 - LegacyStrings                 0.1.1
 - Lexicon                       0.1.18
 - Libz                          0.2.0
 - Loess                         0.0.7
 - MachO                         0.0.3
 - MathProgBase                  0.5.2
 - MbedTLS                       0.2.6
 - Measures                      0.0.3
 - Media                         0.2.1
 - MicroManagerTIFFs             0.0.0-             master (unregistered)
 - Mux                           0.2.1
 - NaNMath                       0.2.1
 - Nettle                        0.2.3
 - NumericFuns                   0.2.4
 - ObjFileBase                   0.0.3
 - PDMats                        0.4.2
 - PimpMyREPL                    0.0.0-             master (unregistered)
 - PlotUtils                     0.0.4
 - PositiveFactorizations        0.0.2
 - Primes                        0.1.1
 - Ratios                        0.0.4
 - Reactive                      0.3.4
 - RecipesBase                   0.0.6
 - Reexport                      0.0.3
 - Registration                  0.0.0-             master (unregistered)
 - Requests                      0.3.9
 - Requires                      0.3.0
 - Rmath                         0.1.2
 - RockTests                     0.0.0-             master (unregistered)
 - Roots                         0.2.1
 - SHA                           0.2.0
 - ScikitLearnBase               0.1.1
 - Showoff                       0.0.7
 - SortingAlgorithms             0.1.0
 - Spots                         0.0.0-             master (unregistered)
 - StatsFuns                     0.3.0
 - StructIO                      0.0.2
 - TerminalUI                    0.0.2
 - TexExtensions                 0.0.3
 - TextWrap                      0.1.6
 - TikzPictures                  0.3.3
 - Tokenize                      0.0.0-             master (unregistered)
 - URIParser                     0.1.6
 - VT100                         0.0.2
 - WebSockets                    0.2.0
 - WoodburyMatrices              0.2.0
 - ZipFile                       0.2.6
 - Zlib                          0.1.12
staticfloat commented 8 years ago

If you run Pkg.build() does it happen as well?

rsrock commented 8 years ago

Yes, same thing with Pkg.build().

staticfloat commented 8 years ago

@rsrock I think I crushed this bug, turns out there was a new version of fontconfig available, but because we override it with our own, that newer version wasn't getting installed. I've updated our overriding version, so this should be all good to go now! After one last installation of fontconfig, you won't see this again. (Until, of course, a new version comes out, but at least then I'll know the symptoms and will be able to fix this faster)

rsrock commented 8 years ago

Sorry, doesn't seem to have fixed it for me. I even tried a Homebrew.rm("fontconfig"), and then I even tried deleting the bottle in my ~/Library/Caches/.... If I Pkg.build("Homebrew"), it still rebuilds fontconfig.

staticfloat commented 8 years ago

Please try running Pkg.checkout("Homebrew") to get the latest and greatest, then post the output of Pkg.build("Homebrew") again to make sure.

rsrock commented 8 years ago

Still have the same problem after checking out Homebrew master (I thought I had already done that, but I was wrong...). Here's the output:

julia> Pkg.build("Homebrew")
INFO: Building Homebrew
Already up-to-date.
Uninstalling fontconfig... (450 files, 2.9M)
==> Installing fontconfig from staticfloat/juliatranslated
==> Downloading https://homebrew.bintray.com/bottles/fontconfig-2.11.1_2.el_capitan.bottle.tar.gz
Already downloaded: /Users/rrock/Library/Caches/Homebrew.jl/fontconfig-2.11.1_2.el_capitan.bottle.tar.gz
==> Pouring fontconfig-2.11.1_2.el_capitan.bottle.tar.gz
==> Regenerating font cache, this may take a while
==> /Users/rrock/.julia/v0.5/Homebrew/deps/usr/Cellar/fontconfig/2.11.1_2/bin/fc-cache -frv
🍺  /Users/rrock/.julia/v0.5/Homebrew/deps/usr/Cellar/fontconfig/2.11.1_2: 450 files, 2.9M
Warning: Already linked: /Users/rrock/.julia/v0.5/Homebrew/deps/usr/Cellar/fontconfig/2.11.1_2

The tarball that ends up in my Caches folder is from Feb 10, if that helps.

staticfloat commented 8 years ago

Huh. What is the output of using Homebrew; Homebrew.update()?

Homebrew should be trying to install fontconfig v2.12.1, not 2.11.1_2.

rsrock commented 8 years ago
julia> Homebrew.update()
Already up-to-date.
Uninstalling fontconfig... (450 files, 2.9M)
==> Installing fontconfig from staticfloat/juliatranslated
==> Downloading https://homebrew.bintray.com/bottles/fontconfig-2.11.1_2.el_capitan.bottle.tar.gz
Already downloaded: /Users/rrock/Library/Caches/Homebrew.jl/fontconfig-2.11.1_2.el_capitan.bottle.tar.gz
==> Pouring fontconfig-2.11.1_2.el_capitan.bottle.tar.gz
==> Regenerating font cache, this may take a while
==> /Users/rrock/.julia/v0.5/Homebrew/deps/usr/Cellar/fontconfig/2.11.1_2/bin/fc-cache -frv
🍺  /Users/rrock/.julia/v0.5/Homebrew/deps/usr/Cellar/fontconfig/2.11.1_2: 450 files, 2.9M
Warning: Already linked: /Users/rrock/.julia/v0.5/Homebrew/deps/usr/Cellar/fontconfig/2.11.1_2

Here's something weird (and probably the source of the problem). If I look in ~/.julia/v0.5/Homebrew/deps/usr/Library/Taps/staticfloat/homebrew-juliadeps, I'm 15 commits behind (b71ab09). Nothing dirty in that dir.

tkelman commented 8 years ago

Wonder whether we're also susceptible to https://github.com/Homebrew/brew#update-bug ?

rsrock commented 8 years ago

Should I try that magic incantation?

staticfloat commented 8 years ago

Fascinating. Here's a Homebrew.jl-appropriate version:

using Homebrew
;cd $(Homebrew.brew_prefix)
;git fetch
;git reset --hard origin/master
;$(Homebrew.brew_exe) update

Try that and see if you're still seeing issues.

rsrock commented 8 years ago

Bingo! You've saved hours of my life. Thanks!