-
-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add to package repositories #10
Comments
I now have a brew formula and an Archlinux Sadly, the brew formula isn't actually in Homebrew, and it downloads a binary, which is really bad form. I'd like to fix it, but I'm not quite sure how. |
rust does appear to be packaged in Homebrew (http://braumeister.org/formula/rust) - just a heads-up. The current approach uses a 'bottle' and so pulls binaries and should work just fine. It /does/ install cargo. It currently builds from source on the latest macOS Sierra, because the formula hasn't been updated to include a bottle for that yet. |
@tekacs Oh, cool, somehow I missed that! I'll check that out, because I definitely want to get |
I tried to create a formula for it: class Ripgrep < Formula
desc "ripgrep combines the usability of The Silver Searcher with the raw speed of grep"
homepage "https://github.com/BurntSushi/ripgrep"
url "https://github.com/BurntSushi/ripgrep/archive/#{version}.tar.gz"
version "0.1.17"
sha256 "b558b6650bfa9cf0fd0fa58a8617cafc7c819ee25a26d15ca2ce39979dd18a18"
depends_on "rust" => :build
def install
system "cargo", "build"
end
test do
system bin/"rg", "--help"
end
end But couldn't get it to build. The first time I tried, it was stuck on
I'm not familiar with Rust at all, but maybe some of this will help you. |
Ripgrep is such an excellent tool. It would be nice to have it in FreeBSD ports, too. https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/porting-submitting.html Do I understand correctly that, if one install rust: http://www.freshports.org/lang/rust/ then |
It looks like there's some problem installing rust on Sierra, so I won't be able to get the formula working. @BurntSushi can you try adding the formula a posted locally and trying to install? |
It looks like a trusted user just put ripgrep into Arch Linux's |
Yup, many many thanks to @svenstaro! |
Please consider a gentoo ebuild too. |
@BurntSushi could you mention that the Arch package is in |
@passcod: @BurntSushi just merged #92 which fixed that. |
Awesome and thanks again @svenstaro! |
A vote to add to OpenSUSE repos here. |
At least for Ubuntu this repository currently doesn't build with the Rust/Cargo versions in the official repository (rust: 1.7.0, cargo: cargo 0.8.0 (built 2016-03-22)) Message:
|
@nihathrael it works on rust 1.9.0, which will be the one that ubuntu 16.10 ships with in a few weeks. |
@nihathrael Right, |
@priyadarshan yes, that's correct. |
I filed a request for MacPorts here: https://trac.macports.org/ticket/52416 |
Isn't it good form to download bottles (binaries) in Homebrew-land? |
Go check out homebrew core. Aren't most formulas compiled from source? On Sep 28, 2016 3:12 AM, "Sam Brightman" notifications@github.com wrote:
|
Is there any way to get a pre-built binary for Ubuntu? I really want to use Furthermore, I think Linuxbrew is not stable enough so I'm not using it. |
@sublee The README contains links to binaries that I distribute. |
@BurntSushi Oh, why didn't I find the link. I was a fool. Anyway, thank you for letting me know! |
No worries! :-) |
Opened Homebrew/homebrew-core#5268 , but it seems to be hung up on Sierra issues. |
I just submitted this for Fedora and EPEL (to be used in RHEL and CentOS). |
Yeah it sounds like the textwrap maintainer is amenable to getting this straightened out, so I think we should be good here. Is there a timeline I should be aware of here?
My problem with this whole thing generating more work is that the In other words, if it were up to me, I'd probably forget about packaging optional nightly only Rust features. (For ripgrep, that includes both
I see. So let me try to play this back to you... What you want to know is whether, when someone does, [package.metadata.debian]
features = ["pcre2"] Do you need/want any of the other metadata that's in the I'm so sorry that I don't understand Debian's policy better. I'm sure that's part of the cause of what's making this difficult. I really really appreciate your time and patience with me as we figure this out. :-) |
@BurntSushi Regarding SIMD: ideally the Regarding pcre2: I think @infinity0 was suggesting that you could just have a (I'm also hoping one day we can integrate support for things like manpages and completions into cargo so you don't have to do something specific to |
That is my understanding, yes. This is already true for w.r.t. to adding a Debian Cargo feature, that seems reasonable, yeah. @infinity0 Does that sound good? |
4-5 months is the estimated time for the next Debian Stable judging by the previous few releases. But this deadline includes many potential other issues, including future issues not yet discovered, so getting this one out of the away ASAP would be best.
I see, thanks for explaining the background of SIMD in rust. I agree runtime detection is best, and this should hopefully include graceful fallbacks for architectures like ppc64 that have no SIMD at all. OK then for now I'll just ignore these optional simd features.
I just agreed to ignoring the simd-accel feature for now, but in general if absolutely necessary we can enable nightly features for specific crates that require it like the simd crate, simply by setting
That sounds good yes.
No thanks it's OK, it's useful for us to read it as reference, but we have other ways of doing that that fits better with official Debian tooling. |
I would be slightly against having "debian" feature, because then we will end up with "fedora", "mageia", "opensuse" and thousand of others. it is really up to distribution to decide which features to use. said that, IMO the most useful features should be in "default" feature. |
Long-term, is there a plan to enable pcre2 in |
It will always be non-default because of the additional library dependency.
I'd like to keep the default build pure Rust for now.
Having lots of distro specific features wouldn't be good, I agree.
…On Mon, Sep 10, 2018, 02:14 Josh Triplett ***@***.***> wrote:
Long-term, is there a plan to enable pcre2 in default? Or is it likely to
always be non-default due to the additional library dependency?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#10 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAb34jLIz0nuc9GFxEvN-BYQ_tjD4cmCks5uZgMugaJpZM4KDG1y>
.
|
The plan is not to add run-time dispatch. encoding_rs relies heavily on inlining, and I don't want to add complexity to support hardware that's so old as to be desupported by major browsers. Instead of turning off SIMD for all 32-bit x86 users, I hope that Debian decides, like Fedora, that supporting non-SSE2 x86 is no longer worthwhile. The non-NEON case on ARMv7 is a bit less obsolete than the non-SSE2 case on x86. However, ARMv7 support in encoding_rs is primarily for Android where requiring NEON practically excludes only old Tegra devices. The situation for Linux distros isn't ideal.
Do you mean the SIMD support in Rust isn't ready? Surely 64-bit POWER can be trusted to always have SIMD available. Even 32-bit PowerPC had it since G4. (I'm hoping to attempt SIMD-enabling encoding_rs on 32-bit PowerPC once the compiler and standard library support is there.) |
That's unfortunate. That means the only way users of ripgrep will get encoding_rs's SIMD optimizations is by enabling compile time flags. (Which is the case today, but I figured Rust's support for runtime detection of CPU features would cause folks to use it so that >SSE2 optimizations can be enabled automatically on CPUs that support it.) |
@hsivonen Ah, apologies! I retract my previous complaint. |
It sounds like you're reserving the "default" feature to avoid installing extra stuff, how about a standard name like "default+packaged" for distros / package managers that can expect to package everything?
All of this is fine, my point is that this should be clearly documented in the rust-simd crate - so crates depending on rust-simd, such as encoding-rs and all of its dependents like ripgrep, can supply the correct (edit: then some build failures are even invisible, e.g. some of our x86 autobuilders have sse2 and some don't, and then it's up to |
To clarify this point, which I may not have made clear enough in my previous point - I think rust's own SIMD does work on ppc64 but some crates are using your crate |
Right. encoding_rs uses very basic 128-bit SIMD, so the kind of SIMD it needs is always present on x86_64 and aarch64. The flag is there just because SIMD still requires nightly. Once
Sorry about that. I added a note to the README of |
And ripgrep is now also available in Ubuntu https://launchpad.net/ubuntu/+source/rust-ripgrep starting from Cosmic! (18.10) |
btw, i didn't notice before because the file listing on Debian's package site doesn't work, but these packages are missing the zsh completion function (and the other non-bash ones, i guess). Should i file a bug for that? ETA: Filed bug # 908807 |
Yes, please report that on the Debian bug tracking system |
@sylvestre Woohoo! Awesome!!! |
In Alpine Linux: nikoleta:~# apk add ripgrep
ERROR: unsatisfiable constraints:
ripgrep (missing):
required by: world[ripgrep]
nikoleta:~# Not present here: https://pkgs.alpinelinux.org/contents?file=ripgrep&path=&name=&branch=edge&repo=main&arch=x86_64 |
@michalfita this is blocked by alpinelinux/aports#1250 which in turn would need better support for musl libc based systems by rust |
ripgrep is now available for OmniOS in the official extra repository - https://pkg.omniosce.org/r151028/extra/info/0/ooce%2Ftext%2Fripgrep%400.10.0%2C5.11-151028.0%3A20181208T100739Z On OmniOS r151028 or above, it's as simple as |
@citrus-it A PR that adds it to the README would be great! |
I think ripgrep is now in most or all of the major package repositories that I can personally think of, so I'm going to close this. 🎉 PRs are of course welcome as ripgrep gets added to other package repositories. |
Issue BurntSushi#10 already states that "ripgrep is now in most or all of the major package repositories"
@carlwgeorge , the last comment from you is here, discussing a ripgrep tarball with bundled dependencies in order to circumvent the "with rich dependencies" requirement. Did anything ever move forward on that? |
It'd be nice to at least get it into Ubuntu and homebrew. Sadly, I think either one of those will be quite difficult since Rust isn't packaged in either one of them.
The lowest hanging fruit is the Archlinux User Repository (AUR).
Fedora is getting Rust packaged soon, so that may be plausible.
Sadly, we may need to live with binaries distributed here for the time being.
The text was updated successfully, but these errors were encountered: