dspinellis / dgsh

Shell supporting pipelines to and from multiple processes
http://www.spinellis.gr/sw/dgsh/
Other
323 stars 23 forks source link

make install supports DESTDIR now #37

Closed utrack closed 7 years ago

utrack commented 7 years ago

Added support of GNU-style standard $DESTDIR variable (usually unset) for easy packaging by package maintainers.

utrack commented 7 years ago

Tests failed due to 3rd party. Rerun?

mfragkoulis commented 7 years ago

A PREFIX argument is supported at the config step as documented. See below an example of use:

make PREFIX=$HOME config
make
make install

Dgsh comes with bash, coreutils, and other tools. It's too late to configure them at the make install step.

utrack commented 7 years ago

Thanks for the reply! :) Yeah, I know about PREFIX.

DESTDIR serves a different purpose. What if you want to configure with PREFIX=/usr (where binaries will be eventually installed), but make install the binaries' tree to some temp place for now? While you could do make PREFIX=/tmp/dgsh-root install there's no guarantee nothing will break, and the tree itself will be broken unless PREFIX will contain old PREFIX's value in the end (PREFIX=/tmp/dgsh-root/usr).

DESTDIR does not touch anything during configuration phase, affecting only last installation steps.

dspinellis commented 7 years ago

You seem to know more about this than us. What Marios said is that stuff installed in DESTDIR might now work, because of the wrong PREFIX. Is that the expected behavior? Will the help you build a package?

dspinellis commented 7 years ago

I've also return Travis.

utrack commented 7 years ago

Sorry. Yep, it will not work in the $DESTDIR - as intended. However, it'll help to create packages.

The point of the whole ordeal is to get the final filesystem tree ready to be packaged - so packaging tools would grab it from $DESTDIR straight away and create a package, which will install the files where they are intended to be (so dgsh would end in /usr/local/... or else after installation).

This package can be later distributed to end users (after stable version comes out), so they won't need to recompile binaries to install the thing.

I want to try dgsh out but I don't want to leave junk in my filesystem - so I plan to create an Arch AUR package which would help to upgrade and remove dgsh's files easily later on.

dspinellis commented 7 years ago

Agreed. I see you're not touching the installation of bash, comm, grep, etc. Are they already handling the DESTDIR variable correctly? Should we export it before recursively?

utrack commented 7 years ago

Yep, they're handling it OK from the box. We don't need exporting, since Make does this for us already, it seems.