News for hackers. Stuff that matters.
Re:Gittup, a Linux distro on top of Git by ComputerGuru on Wednesday December 27, 2017 @12:06PM (#16016081)
I would say that’s definitely a huge benefit to the end users (though not the maintainers, that’s for sure) as “one build system to rule them all” is pretty much the dream, right?

Presuming tup is good, of course. I played with it but I hated the fuse dependency and ended up switching to meson (though I despise the build-time python dependency, see [0]) for cross-platform projects and plain jane gmake or pmake Makefiles for others. I also hand code ninja build files for stuff that’s not too crazy and platform dependent, basically for things that gulp would normally be in control of.

Re:Gittup, a Linux distro on top of Git by DSMan195276 on Wednesday December 27, 2017 @01:43PM (#16016879)
I really wanted to like tup, but I feel like it's just missing to many 'basic' things, along with being a bit annoying to setup and use. The big thing for me is that there is no `tup clean`, and also no way to create phony targets or multiple targets like with `make` - and they're not excluded because of complexity reasons, but because they just don't think it should be the job of the build system [0]. Which, they might be right, but if I can't actually replace my full Makefile's with Tupfiles, but instead have to replace it with Tupfiles + Makefile/shellscripts/installscripts/etc. then Tup is a lot less appealing to me. This is especially an issue since the scripts have no way of accessing the Tup information.

With that said, I was curious how this project got around the 'install' problem, but it seems like they were largely able to just side-step the issue. They build an `initrd` from tup, and the `initrd` Tupfile copies all of the compiled executables into their proper folders before generating the `initrd`. So the projects themselves can't install themselves directly onto a system.

[0] https://groups.google.com/d/msg/tup-users/Kxw1nnXK12o/my4IYt...

Re:Gittup, a Linux distro on top of Git by ComputerGuru on Wednesday December 27, 2017 @01:54PM (#16016973)
I agree with you, it's not there yet. It's the same problem over and over again with all these Make alternatives: close but if only xxx or if only not yyy.

I agree that the installation approach is a total copout, I would have hardlinked all the files from their installation destination to the build artifacts. (presuming state is intended to be thrown away on rebuild.)

Re:Gittup, a Linux distro on top of Git by DSMan195276 on Wednesday December 27, 2017 @02:26PM (#16017227)
I think what bugs me the most is that `tup` has been around for years now (The v0.1 release was in 2009), and it is almost exactly what I want - it keeps a very similar setup to `make`, but much better support for the stuff `make` makes a bit painful to do. If it had support for `tup clean` and for defining phony targets like `install` I would likely be using Tupfiles for all of my projects.
Re:Gittup, a Linux distro on top of Git by jdonaldson on Wednesday December 27, 2017 @05:07PM (#16018456)
It's extremely unlikely that Tup provides a "clean" command. They've expressed a philosophical opposition to it on a few occasions: https://github.com/gittup/tup/issues/120

They're make a really clear distinction between a build system, and a build support system. The "clean" command falls into build support, and the Tup team would argue this is better served with techniques like "git clean -xdf"

The "make clean" command is not perfect. Even if someone writes this make phase correctly, it may break after you sync new makefile changes on a dirty project dir. What do you do in that case?

Re:Gittup, a Linux distro on top of Git by DSMan195276 on Wednesday December 27, 2017 @11:12PM (#16020257)
I understand it's not going to happen - I linked one such conversation in my first comment. I think the reasoning is silly (His definitions might be "right", but he's the only one using those definitions), but I'm not arguing with them about it.

And I agree that `make clean` isn't perfect, I think that is what makes the fact that `tup clean` doesn't exist even more annoying. A lot of people recommend including an auxiliary Makefile or script to do the cleaning, but it can never be as good as if `tup` just did it itself since it is aware of exactly what files it as created during the build process.

Re:Gittup, a Linux distro on top of Git by dilap on Wednesday December 27, 2017 @05:33PM (#16018644)
but tup tracks what it built, so a clean command would come for free and in fact be reliable!
Re:Gittup, a Linux distro on top of Git by justhelpingout on Wednesday December 27, 2017 @11:22PM (#16020291)
In fact it is:

    sqlite3 .tup/db 'select name from node where type=4' | xargs echo rm -f

  [1]: https://github.com/gittup/tup/issues/120#issuecomment-64832104
Re:Gittup, a Linux distro on top of Git by dilap on Wednesday December 27, 2017 @11:33PM (#16020321)
so silly this isn't included because of philosophical objections.

tup is in some ways brilliant, and i give it kudos for actually improving on make in many ways (unlike 99% of the make-replacement-hopefuls), but man oh man do i value and prefer software devs with a more user-focused philosophy.

(an excellent example of that would be homebrew, which arguably wasn't anything special from a pure-tech perspective, but had amazingly good product sense/user focus. imagine combining that attitude & ux skills w/ the technical brilliance of tup...)

Re:Gittup, a Linux distro on top of Git by rkangel on Wednesday December 27, 2017 @04:55PM (#16018371)
For what use case do you need to perform a 'clean'?

Every time I have needed to clean a Makefile based project it has been due to imperfections of the build system, i.e. needing to do a full rebuild. In theory (I've never used tup in anger) you should never need to do that with tup because the dependecy gathering is so robust.

Re:Gittup, a Linux distro on top of Git by dilap on Wednesday December 27, 2017 @06:13PM (#16018925)
maybe you want to time a rebuild, maybe somehow something outside of tup's knowledge changed, maybe you want to tar the directory w/o build artifacts, maybe you simply need to quickly free up some hd space, &c &c