Right now it isn't super easy for a packager to install all needed files in to sane default paths like /usr/lib and /usr/bin and so on inside a Linux package. An installation file would make it much easier for packaging.
I would recommend having a dedicated target for installing using for example make install. Right now it feels like there is no good docs on what folders and files that need to be installed.
Then there are other questions about packaging such as:
I think it should on /opt/v
Some thoughts:
The aim of this issue is clearly to have a system-wide installation of V providing an .deb/.rpm or whatever pkg-man is used on a particular distro - in this case the regular user will not be able to update it via v up but only as a sudo'er or root (in this case vup tool needs to detect this and print apropiate msg)
V-modules however, must be installed/removed per current user as they reside in hes respective /home/ directory
update: I've entirely forgotten to answer your questions
Then there are other questions about packaging
If you pre-package, you would usualy follow the Bootstrap procedure using the source-file, the result will be an v executable for this particular platform or take a prepared one from GitGub Release-Assets (e.g.: https://github.com/vlang/v/releases/download/0.1.21/v_linux.zip)
@gslicer Agree
I do agree with you @gslicer regarding what the aim of the issue, but v up should ideally be possible to turn off. Updating should be handled by the package manager.
Modules could probably be downloaded in to the home directory and handled by something similar to the go path that golang uses.
I am still wondering if a package is supposed to build it using the makefile that builds using vc or if it鈥檚 supposed to build v.v using the v compiler instead of the used c compiler.
@Jacalz the provided makefile is facilitating the "bootsrap" process I've mentioned before, it should be fine to use it
Alright. Just feels weird to build the v compiler using something else than v itself when it鈥檚 possible. I see why a first bootstrap of it could be useful before we have a v compiler, but after that we have a working v compiler, compiling it from the v.v file should be possible. Let鈥檚 hear what opinion @medvednikov has in all this.
Hi @Jacalz
but after that we have a working v compiler, compiling it from the v.v file should be possible.
Exactly this is done by the bootsrap:
steps
a) sync with GitHub repository (master branch)
b) compile v.c using c-compiler
c) compile v.v using v-compiler (the output of the c-compiler)
So technically when bootsprap is done, you will have a v-compiler compiled from v source code.
@Jacalz V is changing very rapidly. V up runs make, because very often the old version of V cannot build new V code. So it has to be bootstrapped again.
make install will work after the 0.2 release later this month.
Thank you @medvednikov. That seems to clear up most of my questions and issues.
Do you want to keep the issue open until you have added the make install targets?
Most helpful comment
@Jacalz V is changing very rapidly. V up runs
make, because very often the old version of V cannot build new V code. So it has to be bootstrapped again.