-
Notifications
You must be signed in to change notification settings - Fork 111
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
Formulae names & dependencies #827
Comments
To take into consideration: Homebrew/homebrew-core#31510 |
I think we should also check what are they take into duplicate formulae and so. Either we ask in the issue tracker of core or here: https://discourse.brew.sh |
Very timely reflection. Beyond the difficulties involved, I especially agree with
Now, if this is the official tap of the Osgeo project, this tap must be the host of the formulas related to it On the duplicity of formulas. What options are not available in the core formulas? Why are they not available? |
Sorry for the inconvenience. But know understand that we decided to rename formulas to make other things simpler. p/d: I will be rebuilding everything for PROJ 6. |
we are working to migrate the bottles to osgeo, bintray already caused many problems. |
Yes please! I currently use osgeo4mac to install qgis. Its 294 dependencies include: osgeo-gdal This is quite a lot. Why does qgis want to overwrite the core postgresql, and why does qgis have a hard requirement on postgresql anyway? Installing qgis also installs lighttpd, mysql, openldap, gtk, unbound and e2fsprogs. I don't understand why, especially the last one. |
@grischard For several reasons. Mainly to not have as many flags in the formulas and to provide more supports. In this way the user will not have to build on his machine if he requires optional supports (but required by many). Also to have more control of when to update, there are many dependencies that are updated very late and inopportunely. And that they do not provide all their functions. For example, for PostgreSQL the versions of homebrew-core do not work for a migration process. We are having problems with Bintray, that's why the work stopped. Tonight we will remate everything. p/d: yes, e2fsprogs can be removed, since it is for linux. |
I'm really thankful for the qgis packages, but I feel misunderstood as an user. I don't get control of when to update, I'm married to osgeo4mac's postgresql and proj and gdal and so on. I'm currently sitting on a broken osgeo4mac qgis that can't find libproj.13.dylib in osgeo4mac's proj, and wondering if installing all these osgeo formulae won't just break something else. Yeah, I got bitten by that postgresql migration thing myself too, but isn't the right way to go about this to fix the core? Can qgis be built with, e.g., mysql support but not include the whole server as a dependency? |
All secondary dependencies will be on the tap. I'm already working to load everything again http://bottle.download.osgeo.org/ Once updated you will realize that everything works very well. |
to temporarily fix proj: |
Yup, that gets qgis to load, thanks. I see what you're trying to do. But the way I had to symlink libproj.15.dylib to libproj.13.dylib, the way PyQt5.QtCore seems to be missing as a dependency which produces an error when opening, the way python produces a second error when opening because it can't find the module called 'qgis', scares me. |
Just wait, it will be a few hours and everything will return to normal. I really regret the inconvenience, but we had problems with Bintray in the middle of the tap update process. |
I'll be patient then. Thank you! |
I have finished configuring everything! I will start to migrate the bottles from Bintray and update the missing ones. |
@grischard I really don't know what is your specific problem, but as thing are right now, you can make it work qgis with a little bit of tweaking. At least it's working for me. Anyhow.... wait a little bit and probably in the next hours everything is going to back to normal. |
During the morning I will transfer the bottles that are in bintray to osgeo.org. After eating I will sit down to complete the updates. Everything will return to normal, in the future we will not have these problems. |
already building qgis! #1063 |
the bottles for qgis are ready! |
Thank you so much for your hard work! I just nuked my previous installation of qgis + dependencies and reinstalled from scratch, everything looks good. |
Thank you. So I can now nuke any unlinked |
@grischard yes, we will use our versions for some dependencies. |
Yeah!!! @fjperini thanks a lot for all the work these last weeks, we have a really great version of QGIS up and running thanks to you! |
I'm not sure how things are supposed to be installed cleanly now. QGIS depends on ffmpeg (why?) which depends on openjpeg, which conflicts with osgeo-insighttoolkit on /usr/local/lib/pkgconfig/libopenjp2.pc. My osm2pgsql requires, directly or indirectly, postgres, gdal and proj, and qgis installs its own version. All this for QGIS. Hmm. Is the long-term plan to have qgis in the main homebrew repository? |
No, this is in anyway possible now with the current Homebrew core policy... QGIS is an app so there is no place for it in Core. It has to be build and has several dependencies... so it doesn't fit either in Cask. I know that it's annoying but it's what it's
I think, @fjperini can give you a more comprehensive answer about it since he has engineered and knitted the formulae... However, I can give you some insights:
We are really open so suggestions, feedback and even more to people to participate in the tap. In other words, help is wanted! |
PS/ in the opinion of some of us, we have to best QGIS in years using Homebrew, and I would say that it's even better than the one you can install from the official installer. Thanks to @fjperini we don't have to build anymore in our machines to have most the capabilities. This doesn't mean that it's perfect, just better. We want to make it even better 😉 and easier, but QGIS is complicated. |
It's definitely a lot better than all the other methods we had before! |
@LeonardAukea you can start by uninstalling these dependencies:
and install these:
|
@fjperini Ok, thanks. this is what sort of happens:
I've got similar url error codes earlier. |
@LeonardAukea solved the problem with |
@fjperini Thanks. but something seems to be messy still. Looks like the packages without the
Linking the packages leads to error sins e.g And if I want to e.g reinstall
|
there are tons of packages without the
You can have both If you want to have both I'm doing the same with
With this is the same... you still have the other versions installed... If you are using those formulae just with QGIS the recommendation is to uninstall all the other and let |
@fjperini, a bit like @grischard I don't understand what are all these dependencies for ? I understand the idea but maybe that these formulae install a Qgis version which is too complete ? On my computer, Of course, it's a base installation without many add-ons but that's enough for me. For me, less is better. I would prefer can choose to install or not Maybe formulae should be base on the official installer with similar options for more simplicity ? And if the advanced user want use a specific add-on, he can install it using an option or simply install "optional" package. |
Ok! In the course of the day I will be doing some tests. |
We will be working, some inconveniences with proj6 and gdal3 arose. |
@grischard is almost decided, we will use gdal 2.4.1 and proj 5.0.0. |
Keep in mind that for In case homebrew does not update these packages |
While I really appreciate the ability to install QGIS from Homebrew and all the work that must have gone into this, I just want to add an enormous +1 to the request for cutting down the gigantic dependencies tree. I understand that all the dependencies are required for building the QGIS Bottle with support for all the modules on the server, but is it really necessary to specify them as dependencies when installing the Formula on the user side? Even if QGIS was built with support for certain modules, it's still possible to run the build without most of the current dependencies (as I'm currently doing), and it would only throw up appropriate error messages once the users attempts to use a functionality that requires other libraries. You say that a large part of the community uses many of the tools, but I doubt that even a power user ever makes use of even half of those dependencies. Things like the full postgresql and mysql servers aren't actually required by anyone who doesn't know how to install them themselves (apart from the fact that the dependency should really only be some (client) header files and not the full server formula, no?). I gave up full installation about half way through the dependencies, then just installed with |
@kevinstadler we will create an option for those that decide a simpler installation, first we are solving other problems with proj and gdal. Just wait for the process to complete. |
Hurray to the option for a simpler installation with less dependencies. Thank you @fjperini for all your hard work! |
Thanks so much! Just one more slightly unrelated question, is there a specific formula for installing QGIS with Python plugin support? For me the plugin menu just says "no Python support detected" even though I'm pretty sure I have all necessary dependencies, and I've also manually put a plugin in the |
@kevinstadler It should work. You could share the plugin that you put so I try it. |
@fjperini thanks for your help! It's the profiletool plugin: https://plugins.qgis.org/plugins/profiletool/ The |
@kevinstadler After updating QGIS I will check this. |
@kevinstadler I have checked this and the plugin works correctly.
|
@kevinstadler The message is just a message, it is not an error. If you can share the result of |
Nevermind, I think I got it:
With so many different Pythons installed I was sure there would be a 3.7 among them but apparently not (and it doesn't seem to be among the osgeo-qgis dependencies?). I'm just running Edit: I actually had a 3.7 installed in |
@kevinstadler Yes, you need to have linked python.
|
👋 Howdy! Homebrew maintainer here, also in the process of reviewing a submission to JOSS. I haven't read this entire thread, but just wanted to weigh RE: depending on packages in core, duplicating packages, option removal. Dependencies in homebrew-coreI would highly recommend you try to depend on formulae in home-brew core since it's very well tested, predictable, and plays nice with other brewed software. In addition, when a dependency of a package is updated, all the formula that use it are tested and the linkage is tested. Option removalI understand the desire to provide flexibility, but keep in mind that there is a combinatorial explosion of possible builds if a package has options and it's dependencies have options, and their dependencies, etc. Since this change, the rate of errors reported by users has significantly dropped, and the vast majority of software gets installed from a bottle which has been tested in a very controlled and reproducible environment. If you see a package in homebrew core where you wish there was an option that was previously removed, then there are two possible recourses for regaining the missing functionality:
The ultimate goal is to provide the most functionality possible, while minimizing problems. Duplicating packagesYou're always welcome to duplicate packages in your tap. However, if software is licensed with an open-source license, there's little recourse for removing packages from homebrew-core. The arguments above, IMO, favor trying to contribute as much as you can upstream to core for better testing and leveraging existing infrastructure and expertise. I definitely don't want to re-litigate the option remove discussion, but wanted to share my $0.02 here, while reporting an issue I encountered. |
@zbeekman as far as I understand, the beginning of all this was that a .app could only be installed as a cask, and a cask couldn't have tons of dependencies like osgeo-qgis has. Is our understanding of homebrew-core's policies correct? |
@zbeekman thanks a lot for your contribution to the discussion, we really appreciate!! However, as @grischard has said, QGIS is a a little bit special —as almost anything in GIS— so it's a little bit more complicated. We really have in mind to try to make as reliant in Core as possible, mainly for the reasons you stated, but things take time and we at this moment decided to head in this direction because we thought was going to be quicker. |
Hi all, sorry for my slow response, I've been underwater.
Yes, this is correct. However, the whole point of an app bundle to bundle the required dynamic libraries and other assets within the app bundle. CMake has fairly good and extensive support for doing this. Apple has the
Sure, I understand sometimes time pressures require you to implement something as a temporary work around. I would just like to point out that while your implementation does an OK job of not shadowing core formulae, there are a number of problems, like #1198. Opening and parsing every single formula at once is not a good idea, and will cause breakage for many users when they hit the upper limit on max open files. In addition, it's super slow, so just processing the Formula takes a long time, nevermind waiting for a long list of from-source installs. So my (completely unsolicited) advice is:
You're welcome to take it or leave it. But, I'm a Homebrew maintainer and if I'm running into problems trying to install your software (see #1198) then users most certainly are. See, also, for example, https://twitter.com/manlius84/status/1139490041791733765. It looks like the default homebrew-core gdal was not useful for the user, but in general from source builds, and builds with options trigger their dependencies to be built from source, and lead to severe system breakage and misconfiguration for some users. And then they often go blaming homebrew. At any rate, I'm not trying to argue here. I just wanted to point out that there may be ways to improve user experience and your experience maintaining osgeo if you're able to upstream stuff, eliminate those "what if", or "just because it's nice" options, and in general work on reducing complexity if not conforming with typical homebrew-core practices for formulae. You're welcome to completely ignore my advice, of course, I won't take it personally. Thanks for your hard work maintaining osgeo, and for taking the time to read my suggestions. |
@zbeekman @grischard @luispuerto The issue goes through experience: use and building of QGIS. As it is currently it solves most of the problems and you should only have a few things in consideration. I agree to have a smaller version for those who require it. We could start with this. |
I'm very happy with the constructive way this discussion is going. Thank you all! There are some core casks that do have dependencies - for example mactex or ibm-cloud-cli - but nowhere near as complex as this here. I did try to look at the differences between the formulas to see how much work @zbeekman's step 4 would potentially be, but it looks like most are quite significant rewrites. @fjperini did you write down somewhere why you forked a particular formula? |
http://blog.qgis.org/2019/07/29/introducing-new-qgis-macos-packages/ is pretty big, no? |
@grischard The last brew upgrade broke again my qgis installation. Since a few months, I encountered a lot of problems with these formula, despite all the efforts of @fjperini. So, I'm happy ! I save about 10 Go of free space using this package instead of the osgeo formulae ! And these official packages should be follow up for the update. |
Here are some ideas we should keep in mind about the renaming of the formulae and if we should bring dependencies into the tap. This issue is highly related to #769.
Any opinion is highly welcomed. @fjperini and specially @miguelangelperg that seems that it's suffering from "name issues".
More formulae → more to maintain → more work → more difficulty to keep everything in shape.
gdal
,pdal
,postgis
... We have some of those formulae cloned in this tap with a different name so it doesn't shadowed the core formulae. What we should do?depends_on:
in any core or other tap formulae unless otherwise is specify is going to use core formulae. Probably they are going to be linked too first.keg only
so it doesn't interfere with other formulae that could use the core version, but this is something we need to decide.osgeo-<formula_name>
.<formula-name>@<version-number>
Thoughts?
The text was updated successfully, but these errors were encountered: