rav1e icon indicating copy to clipboard operation
rav1e copied to clipboard

Add rav1e to package managers

Open EwoutH opened this issue 5 years ago • 35 comments

Not directly related to the codebase, but it would be very useful to have rav1e available in the most used package managers. These for example:

EwoutH avatar Jan 26 '19 11:01 EwoutH

@lu-zero Homebrew requires at least one tagged version. Is there a release that can be tagged as 0.0.1? Or maybe we can do weekly releases untill we tag things as stable, like rav1e-2019.01.28.

EwoutH avatar Jan 28 '19 11:01 EwoutH

I'm fine with the weekly tag approach, but I'd like to have everybody ack it.

lu-zero avatar Jan 28 '19 12:01 lu-zero

(once we have a tag we could also produce crav1e builds/packages)

lu-zero avatar Jan 28 '19 12:01 lu-zero

Here a prerelease so we can see what is missing packaging-wise.

lu-zero avatar Jan 29 '19 17:01 lu-zero

I created https://bugs.debian.org/920842 asking for a Debian package. Tagged releases will make it more likely. :)

petterreinholdtsen avatar Jan 30 '19 19:01 petterreinholdtsen

cc @infinity0 Rust Debian packager and @cuviper Rust Fedora packager

est31 avatar Jan 31 '19 01:01 est31

Are you interested only in select few repositories or any? For example: Packaging status

jbeich avatar Jan 31 '19 16:01 jbeich

@jbeich The more the merrier :).

For CI the Ubuntu LTS versions (14.04, 16.04 and 18.04) and Debian Stable are the most important.

For general use Manjaro, Mint, MX Linux, elementary and Fedora would also be nice.

EwoutH avatar Jan 31 '19 16:01 EwoutH

cc @ignatenkobrain for Fedora too.

cuviper avatar Jan 31 '19 17:01 cuviper

There are few crates we don't have packaged yet. But otherwise it should be doable.

I'll look at it after FOSDEM

ignatenkobrain avatar Jan 31 '19 17:01 ignatenkobrain

Cool. Many of us are at FOSDEM too :)

tdaede avatar Feb 01 '19 08:02 tdaede

Maybe at least publish pre-built executables for various linuxes to Github releases?

vi avatar Feb 02 '19 03:02 vi

Maybe at least publish pre-built executables for various linuxes to Github releases?

Having one for the latest Ubuntu LTS would be nice as it's pretty common

cromefire avatar Feb 02 '19 10:02 cromefire

It it can be just a fully static musl build, like this:

https://vi-server.org/pub/rav1e_af9d4ab

SHA256 (rav1e_af9d4ab) = 73c6f959ee38324608648a3e09b9cf6e04b02a2c359ddea84e20dc22f1e464fd

vi avatar Feb 02 '19 10:02 vi

https://vi-server.org/pub/rav1e_af9d4ab

Works fine even on FreeBSD via linuxulator. Tested in a clean jail without any Linux userland bits installed.

jbeich avatar Feb 02 '19 15:02 jbeich

@jbeich does the packaging status badge get updated automatically?

Maybe at least publish pre-built executables for various linuxes to Github releases?

@vi Will probably integrate it into Travis somewhere next week. Should be ready for the 20190212 release.

EwoutH avatar Feb 03 '19 19:02 EwoutH

@EwoutH, yes, Repology badges are dynamic. Not sure how frequent repository scans are: probably, every few hours. Try checking out badges for other packages e.g., cbindgen, ripgrep.

jbeich avatar Feb 03 '19 20:02 jbeich

Btw, is it possible to build rav1e from the git repo on Debian without downloading extra code from the Internet? Software builds downloading random code from the Internet rub me the wrong way in addition to failing the 'desert island' test for free software, from <URL: https://people.debian.org/~bap/dfsg-faq.html >:

The Desert Island test.

Imagine a castaway on a desert island with a solar-powered computer. This would make it impossible to fulfill any requirement to make changes publicly available or to send patches to some particular place. This holds even if such requirements are only upon request, as the castaway might be able to receive messages but be unable to send them. To be free, software must be modifiable by this unfortunate castaway, who must also be able to legally share modifications with friends on the island.

In practice it require the complete source to be available from Debian.

-- Happy hacking Petter Reinholdtsen

petterreinholdtsen avatar Feb 03 '19 21:02 petterreinholdtsen

Debian Rust packaging is already done with a cargo wrapper tool that avoids network access, see https://salsa.debian.org/rust-team/debcargo-conf/ - rav1e can submit a PR for itself and any of its dependencies not already in Debian.

infinity0 avatar Feb 03 '19 21:02 infinity0

[Ximin Luo]

Debian Rust packaging is already done with a cargo wrapper tool that avoids network access, see https://salsa.debian.org/rust-team/debcargo-conf/ - rav1e can submit a PR for itself and any of its dependencies not already in Debian.

Aha. Perhaps you can help make build rules for a rav1e Debian package? Or at least update <URL: https://bugs.debian.org/920842 > with details on how to do it? I know nothing about rust myself.

-- Happy hacking Petter Reinholdtsen

petterreinholdtsen avatar Feb 04 '19 12:02 petterreinholdtsen

As a first thing wouldn't it be good to have it on crates.io (the offical rust package repo) so anyone can use cargo install rav1e? All listed package managers are restricted to a specific OS, while cargo is not.

cromefire avatar Feb 08 '19 14:02 cromefire

I'm already taking care of aom and dav1d for Fedora, I'll take care of rav1e as well when there is a point release.

eclipseo avatar Feb 08 '19 15:02 eclipseo

@eclipseo Hi,

As we have a 0.1 release of rav1e, will it be possible for you to take care of rav1e too?

vibhoothi avatar Nov 13 '19 08:11 vibhoothi

The following dependencies need to be packaged before rav1e for Debian:

dpkg-checkbuilddeps: error: Unmet build dependencies:
librust-arbitrary-0.2+default-dev
librust-arg-enum-proc-macro-0.3+default-dev
librust-arrayvec-0.5+default-dev
librust-better-panic-0.2+default-dev
librust-bitstream-io-0.8+default-dev
librust-err-derive-0.2+default-dev (>= 0.2.1-~~)
librust-interpolate-name-0.2+default-dev (>= 0.2.2-~~)
librust-ivf-0.1+default-dev
librust-nasm-rs-0.1+default-dev
librust-noop-proc-macro-0.1+default-dev
librust-paste-0.1+default-dev
librust-pretty-env-logger-0.3+default-dev
librust-scan-fmt-0.2+default-dev (>= 0.2.3-~~)
librust-signal-hook-0.1+default-dev (>= 0.1.9-~~)
librust-simd-helpers-0.1+default-dev
librust-vergen-3+default-dev
librust-y4m-0.4+default-dev

Line-breaks added for readability.

barrbrain avatar Nov 22 '19 06:11 barrbrain

We are waiting on https://github.com/Homebrew/homebrew-core/pull/46975 so that we can include the dev artifacts in the formula. This will enable the bottle to be used for building against the C-ABI. Update: That PR landed, as did https://github.com/Homebrew/homebrew-core/pull/47100 to add the dev artifacts.

barrbrain avatar Nov 22 '19 06:11 barrbrain

I've packaged rav1e for openSUSE which is on the way to openSUSE Tumbleweed.

Fedora is next on my list.

cryptomilk avatar Dec 01 '19 17:12 cryptomilk

Are there any plans to package Debian dependencies? I tried using avifenc in Debian recently, but it has no encoder:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=976349

shmerl avatar Jan 10 '21 18:01 shmerl

[shmerl]

Are there any plans to package Debian dependencies?

I suggest bringing this up with the Debian Multimedia team, <URL: https://wiki.debian.org/DebianMultimedia >.

-- Happy hacking Petter Reinholdtsen

petterreinholdtsen avatar Jan 10 '21 18:01 petterreinholdtsen

I'm currently in the process of packaging rav1e for Debian. The current blockers for me are at least the dependency on vergen version 3 instead of version 6.

sebastinas avatar Aug 20 '22 13:08 sebastinas

We are using a custom one, a patch to update to the latest is welcome though.

lu-zero avatar Aug 20 '22 14:08 lu-zero