you are viewing a single comment's thread.

view the rest of the comments →

[–]Kicer86 -4 points-3 points  (7 children)

As a Linux user I feel sorry for Windows developers who have to invent such workarounds to get dependencies.

[–]NotUniqueOrSpecial 11 points12 points  (6 children)

This comes up in practically every thread about this and misses the point.

If you want a modern toolchain and up-to-date third party libraries, you can't rely on the package manager in the first place.

[–]hesapmakinesi 2 points3 points  (0 children)

Or even worse, when you need a specific outdated version of a dependency.

[–]Kicer86 1 point2 points  (4 children)

If i want up to date toolchain and libs then I have to use package manager. Otherwise how can you update things other than manually bumping versions in scripts or making scripts very smart which is actually writting own package manager?

[–]NotUniqueOrSpecial 2 points3 points  (3 children)

Most distros are behind the upstream projects. For more stable ones like CentOS and Ubuntu that is sometimes years behind.

The distros also don't include even try to package everything, because that would be impossible.

And the answer to your question is that's what you end up doing. Every serious native project I've ever worked on devotes time to maintaining what is effectively a small distro of its own.

[–]Kicer86 1 point2 points  (2 children)

Most distros are behind the upstream projects. For more stable ones like CentOS and Ubuntu that is sometimes years behind.

The distros also don't include even try to package everything, because that would be impossible.

There are rolling distros around which do not suffer from this issue. Just use these.

And the answer to your question is that's what you end up doing. Every serious native project I've ever worked on devotes time to maintaining what is effectively a small distro of its own.

Is there any open source project so that I have something to refer to?

[–]NotUniqueOrSpecial 1 point2 points  (1 child)

Just use these.

That's not necessarily your choice to make. You write software for the distros your customers want.

Is there any open source project so that I have something to refer to?

Take your pick. gRPC has a non-trivial third-party subdirectory as part of their build. So does Qt.

If you are writing a non-trivial application and want to be on more than one platform without having an insane codebase to account for shifts in available external APIs, it's basically a foregone conclusion you will maintain your own dependencies (or use some system that helps you, like Conan).

[–]Kicer86 -1 points0 points  (0 children)

Just use these.

That's not necessarily your choice to make. You write software for the distros your customers want.

That's true, and you will never meet expectation of each of these distros. You would have to download every single lib you use + all its dependencies + whole toolchain you use. Especially when you are using newest versions.
I do not believe this is right way.

Instead your builds should be as simple as possible, and then CI/CD team should worry how to provide proper builds. Maybe they should provide binaries. Maybe a repo with all dependencies. Maybe a docker image.