Ctags: Package for Windows

Created on 6 Nov 2015  ·  13Comments  ·  Source: universal-ctags/ctags

For Universal Ctags to be truly universal, we should distribute Windows builds too. We can use Appveyor to do the automated nightly/tag builds. I _think_ it supports tags as a build trigger. If so, then we can have it build ctags, package it up in an installer, and upload the installer to the Github Release.

Alternatively, if there's something like Homebrew for Windows, it might be better to do that. Cygwin, maybe? There's some docs on that here: https://cygwin.com/faq.html#faq.programming.packages

I cannot do this one, as I don't have a Windows box to work on.

Packaging Windows

Most helpful comment

Another avenue for distributing packages is chocolatey

All 13 comments

I don't think an installer is needed. The ctags is a tool for developers so a simple .zip with the exe, some basic readme-like documentation where to find all the proper docs and a license file could be enough.

Maybe appveyor can provide such a file, never tried that. ctags (cross)build just fine from Linux, so travis could work as well.
And obviously I can provide such a zip as well, especially for releases. If we want nightly builds, we do need one of those services to help us with that.

Cygwin is a different story. Cygwin has it's own packaging system. I could ask the current maintainer off the ctags package to switch to universal, or suggest to take over the package myself (I am the maintainer of the Cygwin "shutdown" package). For a new package to get accepted it helps a lot if any of the major Linux distributions provide universal-ctags packages.

Ah, great, I didn't know we had cross-compilation set up. We should create Windows builds on Travis when there's a new tag - automation is :+1:

I'd really love to get Universal Ctags into cygwin, so if you're willing to take that on, that would be awesome. We've already got some momentum behind having packages for Linux distros - they're just waiting on us to make a tag. So far, the ones that I know of are Debian, Gentoo, and Arch. I still need to track down people that will package an RPM and get it into the RHEL/Fedora/OpenSuse repos, but I'll make sure to firm that up before our 1.0.0 release. My goal is to have Universal Ctags packaged and immediately installable by pretty much anyone that wants it on release day, so we need to make sure to have Linux, Mac, and Windows packaging squared away before that date.

I'll continue working on that going forward.

@ffes and @k-takata, I'm thinking about introducing a code generator(ctagst) written in bash to our build process.
See #614. ctagst converts something.ctags to something.c.

Is it acceptable?
If this introduces a big trouble, I will commit both something.ctags and generated something.c to our git repository when I make a change on something.ctags.

@cweagans, About Fedora I will work on or I will contact the package Fedora/RHEL maintainer of exuberant ctags. A source tar ball is needed anyway.

@masatake I can handle that so that your time is freed up to work on issues that require knowledge of C :)

O.K. Thank you.

@ffes and @k-takata, I'm thinking about introducing a code generator(ctagst) written in bash to our build process.

I think using bash on Windows is not so easy especially when using MSVC. (Python or Perl is rather easy.)

@k-takata, thank you.

Will there be a 64 bit single binary download eventually? That would be really useful for me.

Now our automated Windows builds on AppVeyor provide single binaries with support of iconv, JSON, XML and YAML.
MSYS2 also provides mingw-w64-{i686,x86_64}-universal-ctags-git packages. (It doesn't provide msys/universal-ctags-git package though.)
Cygwin doesn't seem to provide universal ctags yet.

Another avenue for distributing packages is chocolatey

Any progress on the cygwin path?

  • pkg-config
  • libiconv
  • libiconv-devel

needed to be installed for me under cygwin before I could install it with autotools. Maybe some info about probable deps that needs to be installed could be added?

@fommil: Looks like daily builds get released here: https://github.com/universal-ctags/ctags-win32/releases

Was this page helpful?
0 / 5 - 0 ratings