Jump to page: 1 2
Thread overview
what i don't like about dub
Nov 23, 2021
Alain De Vos
Nov 23, 2021
bauss
Nov 23, 2021
Tejas
Nov 23, 2021
bauss
Nov 23, 2021
Imperatorn
Nov 23, 2021
Adam D Ruppe
Nov 23, 2021
Imperatorn
Nov 23, 2021
Luís Ferreira
Nov 23, 2021
Imperatorn
Nov 23, 2021
Luís Ferreira
Nov 23, 2021
Luís Ferreira
November 23, 2021

What i don't like about dub is that is does not check which software is installed on the host.
Currentlu tck86 is installed on the host including header files & shared libraries.
But dub says let me just download my own personal version and i will compile it in your home directory
/home/myuser/.dub
There is something inherently wrong in doing so.

Note other package managers of different languages do the same thing.
dub should really check if something should really be downloaded.
Otherwise you end up in a library hell, in Gates words known as dll hell.

November 23, 2021

On Tuesday, 23 November 2021 at 01:19:44 UTC, Alain De Vos wrote:

>

What i don't like about dub is that is does not check which software is installed on the host.
Currentlu tck86 is installed on the host including header files & shared libraries.
But dub says let me just download my own personal version and i will compile it in your home directory
/home/myuser/.dub
There is something inherently wrong in doing so.

Note other package managers of different languages do the same thing.
dub should really check if something should really be downloaded.
Otherwise you end up in a library hell, in Gates words known as dll hell.

Well, it's not always possible to check such things without heavy performance cost. It can take a long time to verify whether something is already installed, as it could be unzipped in some obscure folder deep into many subfolders.

The solution here would probably be the ability to specify certain installations and their paths etc. within your project. It comes at almost no expense on running dub and the only real expense is users having to specify such installations.

November 23, 2021

On Tuesday, 23 November 2021 at 07:06:17 UTC, bauss wrote:

>

On Tuesday, 23 November 2021 at 01:19:44 UTC, Alain De Vos wrote:

>

[...]

Well, it's not always possible to check such things without heavy performance cost. It can take a long time to verify whether something is already installed, as it could be unzipped in some obscure folder deep into many subfolders.

The solution here would probably be the ability to specify certain installations and their paths etc. within your project. It comes at almost no expense on running dub and the only real expense is users having to specify such installations.

Doesn't dub cache stuff that it downloads? If, however, the user is asking it to search the entirety of their storage device(s) to check for some arbitrary folder where the package exists... Yeah that's a very though ask

November 23, 2021

On Tuesday, 23 November 2021 at 10:19:29 UTC, Tejas wrote:

>

On Tuesday, 23 November 2021 at 07:06:17 UTC, bauss wrote:

>

On Tuesday, 23 November 2021 at 01:19:44 UTC, Alain De Vos wrote:

>

[...]

Well, it's not always possible to check such things without heavy performance cost. It can take a long time to verify whether something is already installed, as it could be unzipped in some obscure folder deep into many subfolders.

The solution here would probably be the ability to specify certain installations and their paths etc. within your project. It comes at almost no expense on running dub and the only real expense is users having to specify such installations.

Doesn't dub cache stuff that it downloads? If, however, the user is asking it to search the entirety of their storage device(s) to check for some arbitrary folder where the package exists... Yeah that's a very though ask

Yes, dub caches everything it uses. Honestly I'd never want dub to search my device for files that might exist that it might need.

November 23, 2021

On Tuesday, 23 November 2021 at 01:19:44 UTC, Alain De Vos wrote:

>

What i don't like about dub is that is does not check which software is installed on the host.
Currentlu tck86 is installed on the host including header files & shared libraries.
But dub says let me just download my own personal version and i will compile it in your home directory
/home/myuser/.dub
There is something inherently wrong in doing so.

Note other package managers of different languages do the same thing.
dub should really check if something should really be downloaded.
Otherwise you end up in a library hell, in Gates words known as dll hell.

How do you propose dub would do that? Check in path? What if it exists but is not exactly the same version? 🤔

November 23, 2021
On Tuesday, 23 November 2021 at 13:49:36 UTC, Imperatorn wrote:
> How do you propose dub would do that

By asking the system package manager.
November 23, 2021

On 11/22/21 8:19 PM, Alain De Vos wrote:

>

What i don't like about dub is that is does not check which software is installed on the host.
Currentlu tck86 is installed on the host including header files & shared libraries.
But dub says let me just download my own personal version and i will compile it in your home directory
/home/myuser/.dub
There is something inherently wrong in doing so.

Note other package managers of different languages do the same thing.
dub should really check if something should really be downloaded.
Otherwise you end up in a library hell, in Gates words known as dll hell.

If I understand correctly, you have a library that is already installed on your system (is it tcl86? I couldn't find a tck86), and you want to use it's headers and library file? Yet, the dub package you are depending on is downloading its own copy?

  1. Are the installed headers D headers? D can't currently reasonably use C headers. I don't know of D bindings that are installed by OS package managers.
  2. Is the package maybe downloading a binary library to avoid having to ask users to install their own copy? This is something you need to bring up to the package developer, it's not a dub feature. Also, if there are differences between the C bindings of the version you have installed and the version the package is expecting, you are in for some trouble, so that may be a valid reason to include the binary.

Since this is a package issue, and not a dub issue, I'd recommend posting the package you are using, and maybe contact its author.

-Steve

November 23, 2021
On Tue, 2021-11-23 at 01:19 +0000, Alain De Vos via Digitalmars-d-learn wrote:
> What i don't like about dub is that is does not check which
> software is installed on the host.
> Currentlu tck86 is installed on the host including header files &
> shared libraries.
> But dub says let me just download my own personal version and i
> will compile it in your home directory
> /home/myuser/.dub
> There is something inherently wrong in doing so.
> 
> Note other package managers of different languages do the same
> thing.
> dub should really check if something should really be downloaded.
> Otherwise you end up in a library hell, in Gates words known as
> dll hell.

I can totally understand your point on this. I think dub lacks a lot of important features and behave wrongly in a lot of different ways:

1) it should search for dependencies instead of downloading and
compiling them.
2) it should have/use a standard user and system path or pkg-config to
check for dependencies
3) it should use XDG base directory paths to store cache, config and
data files.
4) if the user prefers to download and compile the dependencies, it
should provide a mechanism to isolate the environment
5) it should use a correct mechanism to do incremental compilation
instead of compiling everything in one compiler invocation by default
6) it should be able to install packages correctly with pkg-config or
other similar mechanisms, providing a correct way for the packagers to
manage dependencies externally

I have some strong opinions on this. These are some real problems of dub that I see as a blocker. Doing packaging right is the cornerstone of a growing and healthy ecosystem.

-- 
Sincerely,
Luís Ferreira @ lsferreira.net



November 23, 2021
On Tuesday, 23 November 2021 at 14:01:15 UTC, Adam D Ruppe wrote:
> On Tuesday, 23 November 2021 at 13:49:36 UTC, Imperatorn wrote:
>> How do you propose dub would do that
>
> By asking the system package manager.

Well yeah, but how without doing a lot of work
November 23, 2021
On Tue, 2021-11-23 at 17:36 +0000, Imperatorn via Digitalmars-d-learn wrote:
> On Tuesday, 23 November 2021 at 14:01:15 UTC, Adam D Ruppe wrote:
> > On Tuesday, 23 November 2021 at 13:49:36 UTC, Imperatorn wrote:
> > > How do you propose dub would do that
> > 
> > By asking the system package manager.
> 
> Well yeah, but how without doing a lot of work

If I iterpret system package manager as distribution-specific, relying on system package manager is not the way. There is tools like pkg- config or pkgconf that provides mechanisms to manage dependencies and its required configurations to link/compile the library with the dependent software.

-- 
Sincerely,
Luís Ferreira @ lsferreira.net



« First   ‹ Prev
1 2