Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FreeType circular deps for extended capabilities (with HarfBuzz) #3441

Closed
hajgato opened this issue Aug 22, 2016 · 8 comments
Closed

FreeType circular deps for extended capabilities (with HarfBuzz) #3441

hajgato opened this issue Aug 22, 2016 · 8 comments
Milestone

Comments

@hajgato
Copy link
Collaborator

hajgato commented Aug 22, 2016

We might have to put in order FreeType (its with a circular dep for extended capabilities):
FreeType recommends HarfBuzz
HarfBuzz recommends FreeType
Solution would be:

  1. install FreeType without HarfBuzz
  2. install HarfBuzz (with FreeType without HarfBuzz)
  3. reinstall FreeType (with HarfBuzz)

We could use the new easyblock easybuilders/easybuild-easyblocks#979
see #3440
Putting the installation order to
FreeType
HarfBuzz
FreeType
then we would have a FreeType-HarfBuzz bundle.
Thoughts?

@boegel
Copy link
Member

boegel commented Aug 22, 2016

@hajgato not sure the enhanced ConfigureMake is a good approach here, and not a big fan of listing the same thing twice either (for normal extensions, this would mean the 2nd one is just skipped)

@boegel boegel added this to the v2.x milestone Aug 22, 2016
@hajgato
Copy link
Collaborator Author

hajgato commented Aug 22, 2016

@boegel: well, this is one more reason to extend the Bundle and not to use enhanced ConfigureMake. Plus implement "force reinstall" for (this kind of) circular deps. I am sure there are a couple of similar, just I bumped this one recently. Alternatively, this could be solved using an EasyBlock for FreeType-HarfBuzz (or HarfBuzz-FreeType?) , but maybe a general solution would be better?

@boegel
Copy link
Member

boegel commented Aug 22, 2016

@hajgato how about simply including the Freetype without Harfbuzz as build dep when installing Harfbuzz? Would that work?

@hajgato
Copy link
Collaborator Author

hajgato commented Aug 22, 2016

@boegel: I was thinking about it, but its a circular dep.
This might work:

  1. install FreeType (dep none)
  2. install HarfBuzz (buildep FreeType)
  3. install FreeType (dep HarfBuzz-Freetype [from 2])
    Here we have FreeType withHarfBuzz, but no HarfBuzz with Freetype as a dep
    So then we have to make a HarfBuzz with dep [from 3].
  4. install HarfBuzz (dep FreeType from[3]) will give us 2 HarfBuzz, the installed one and HarfBuzz [from 2].
    How would you name those modules? What would you do with the double HarfBuzz?

@hajgato
Copy link
Collaborator Author

hajgato commented Aug 22, 2016

@boegel: plus you have to load [from4], if you need FreeType

@boegel
Copy link
Member

boegel commented Aug 22, 2016

Urgh, what a mess... Is that how it is also done by other projects, e.g. RPMs?

Also, does the installation of both HarfBuzz and FreeType actually differ with the dependencies included? Or is the recommendation just to use them together?

@hajgato
Copy link
Collaborator Author

hajgato commented Aug 22, 2016

@boegel: HafBuzz extends the functionality of FreeType. I guess, For HarfBuzz a non extended functionaluity FreeType would be enough, but never checked. But then in this case, we would have two FreeType if we load HarfBuzz, one standard and one extended. Anyway, this is needed for extended capability FreeType only.

@boegel boegel modified the milestones: 3.x, 4.x Feb 20, 2020
@Micket
Copy link
Contributor

Micket commented Mar 22, 2024

I think it's safe to say by now that we haven't been hurt to much by missing out on whatever the extended functionality in freetype might have been (and circular deps would be a massive problem to deal with)

@Micket Micket closed this as completed Mar 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants