kitematic icon indicating copy to clipboard operation
kitematic copied to clipboard

How to build from source

Open LinArcX opened this issue 7 years ago • 3 comments

Expected behavior

Hi. and thank you for this great artifact. I want to install kinematic on arch Linux. There is two pkgbuilds in aur, but both have some broken dependencies.(nodejs-grunt-cli) Can you give me a recipe to how build kitematic from source Thank you so much.

LinArcX avatar Aug 30 '18 12:08 LinArcX

I think this project is dead

nocodes86 avatar Aug 31 '18 17:08 nocodes86

@LinArcX, I had right today the same problem as yours, and I have finally managed to solve it (somehow) in the way I will outline below. Just note that this is not entirely the way it should work. However, so far I have tested it, I experienced no problems.

Prerequisites:

  • Docker
  • Nodejs 9.x.y (that is one of these)
  • Npm (the one bundled with Arch is fine)
  • Grunt (the package is now called: grunt-cli)
  • Git
  • All you may want if you want to make a PKGBUILD out of it

Preparation:

  • Unpack somewhere the Nodejs 9 release (you can safely delete it after the build process; let's call it $NODEDIR)
  • git clone --recursive https://github.com/docker/kitematic.git somewhere else (let's call it $KITEDIR)
  • Edit $KITEDIR/Gruntfile such that line (as of now) 224 which currently looks like
command: 'cd build && npm install --production'

then looks like

command: 'cd build && npm install --production --force'
  • Perform, in the shell you will use for the build process:
export LD_LIBRARY_PATH="$NODEDIR/lib/:$LD_LIBRARY_PATH"
export PATH="$NODEDIR/bin/:$PATH"

Build process:

  • cd $KITEDIR && npm install # may throw some errors
  • cd $KITEDIR && npm run release # will throw some errors for sure

Distribution:

  • The directory $KITEDIR/dist/Kitematic-linux-x64 is what should be put in $PKGDIR when distribution the package, and Kitematic is the executable.

CAVEATS: This procedure worked for me just out of luck, because of the fact that the errors arising from the build process and partially suppressed by the --force switch did not interfere with the real build process but were only (as fas as I can tell and test) side effects of the fact that:

  • this project officially targets Windows, Mac and Ubuntu (that it *.deb distribution files)
  • there are some tslint deprecations in the project

I cannot tell if this project is dead, will die shortly or is in pre-death maintainance mode (at least for Linux-based OSs), but these steps are provided under the conditions of the just make it run, no matter what philosophy. I hope you can find them useful.

Good luck with the build! :wink:

emaballarin avatar Aug 31 '18 23:08 emaballarin

npm install
npm run release:debian:x64
# and look up in ./dist

SailHe avatar Jul 01 '20 00:07 SailHe