Genivia / ugrep

NEW ugrep 7.0: a more powerful, ultra fast, user-friendly, compatible grep. Includes a TUI, Google-like Boolean search with AND/OR/NOT, fuzzy search, hexdumps, searches (nested) archives (zip, 7z, tar, pax, cpio), compressed files (gz, Z, bz2, lzma, xz, lz4, zstd, brotli), pdfs, docs, and more
https://ugrep.com
BSD 3-Clause "New" or "Revised" License
2.65k stars 111 forks source link

conda or Linux executable #253

Closed darked89 closed 1 year ago

darked89 commented 1 year ago

Hello,

I am on a fairly restricted computing cluster env: no sudo, no docker, no singularity. It is RH 7.4. We can use conda. While I have managed to build ugrep in these settings a year ago or so, would it be possible to have at some point either ugrep packaged in conda or as Linux executable linked to musl?

Many thanks for developing such a great tool.

DK

genivia-inc commented 1 year ago

Have you tried https://docs.conda.io/projects/conda-build/en/latest/user-guide/tutorials/build-pkgs.html

Building ugrep is straightforward with a C++11 compiler. Basically, you only need to specify -O2 (and the usual compiler warnings flags, perhaps.) Also option -msse2 -DHAVE_SSE2 may be specified when SSE2 is available or -msse2 -DHAVE_AVX2 when AVX2 is available. These are optional. Only SSE2 is widely supported (AVX2 may not run on some simpler machines) and SSE2 does make ugrep run faster.

There are a couple of optional libraries that ugrep is linked with, such as PCRE2 and zlib, that can be specified as requirements, in case you need these capabilities. Linking with POSIX threads should not be needed explicitly with C++11, but if it does, then use -lpthread to link.

I don't know if this helps? I'm a bit concerned that if we start creating specific packages for specific systems and platforms, then we might get bogged down into supporting others as well by request and maintaining them all in the long term.

genivia-inc commented 1 year ago

Can we close this?

darked89 commented 1 year ago

Sure. Conda etc. is something nice to have not an absolute requirement.