NixOS / nixpkgs

Nix Packages collection & NixOS
MIT License
17.64k stars 13.79k forks source link

Build failure: peek & peek is deprecated #247656

Open Ch1keen opened 1 year ago

Ch1keen commented 1 year ago

Steps To Reproduce

  1. nix-shell -p peek

Build log

these 2 derivations will be built:
  /nix/store/llpf3ld5d4i0yw2l1d4p82aj2fjjvzfv-gifski-1.11.0.drv
  /nix/store/8wx030avv5scccpscsgg2f7nbjjk4lyh-peek-1.5.1.drv
building '/nix/store/llpf3ld5d4i0yw2l1d4p82aj2fjjvzfv-gifski-1.11.0.drv'...
unpacking sources
unpacking source archive /nix/store/d772f1x2hgcn2jgbjayb2s1pcnibsjh9-source
source root is source
Executing cargoSetupPostUnpackHook
Finished cargoSetupPostUnpackHook
patching sources
Executing cargoSetupPostPatchHook
Validating consistency between /build/source/Cargo.lock and /build/cargo-vendor-dir/Cargo.lock
Finished cargoSetupPostPatchHook
updateAutotoolsGnuConfigScriptsPhase
configuring
building
Executing cargoBuildHook
++ env CC_x86_64-unknown-linux-gnu=/nix/store/bxic6j2whyg3z4h2x3xjyqgp7fl83bnp-gcc-wrapper-12.3.0/bin/cc CXX_x86_64-unknown-linux-gnu=/nix/store/bxic6j2whyg3z4h2x3xjyqgp7fl83bnp-gcc-wrapper-12.3.0/bin/c++ CC_x86_64-unknown-linux-gnu=/nix/store/bxic6j2whyg3z4h2x3xjyqgp7fl83bnp-gcc-wrapper-12.3.0/bin/cc CXX_x86_64-unknown-linux-gnu=/nix/store/bxic6j2whyg3z4h2x3xjyqgp7fl83bnp-gcc-wrapper-12.3.0/bin/c++ cargo build -j 4 --target x86_64-unknown-linux-gnu --frozen --release --features=video
   Compiling libc v0.2.142
   Compiling cfg-if v1.0.0
   Compiling autocfg v1.1.0
   Compiling glob v0.3.1
   Compiling proc-macro2 v1.0.56
   Compiling memchr v2.5.0
   Compiling clang-sys v1.6.1
   Compiling quote v1.0.26
   Compiling once_cell v1.17.1
   Compiling unicode-ident v1.0.8
   Compiling crossbeam-utils v0.8.15
   Compiling cc v1.0.79
   Compiling syn v1.0.109
   Compiling minimal-lexical v0.2.1
   Compiling libloading v0.7.4
   Compiling nom v7.1.3
   Compiling memoffset v0.8.0
   Compiling version_check v0.9.4
   Compiling io-lifetimes v1.0.10
   Compiling bindgen v0.64.0
   Compiling regex-syntax v0.7.1
   Compiling ahash v0.8.3
   Compiling cexpr v0.6.0
   Compiling crossbeam-epoch v0.9.14
   Compiling rustc-hash v1.1.0
   Compiling rustix v0.37.18
   Compiling regex v1.8.1
   Compiling lazycell v1.3.0
   Compiling peeking_take_while v0.1.2
   Compiling bitflags v1.3.2
   Compiling lazy_static v1.4.0
   Compiling shlex v1.1.0
   Compiling num_cpus v1.15.0
   Compiling scopeguard v1.1.0
   Compiling pkg-config v0.3.26
   Compiling linux-raw-sys v0.3.6
   Compiling bytemuck v1.13.1
   Compiling rgb v0.8.36
   Compiling crossbeam-channel v0.5.8
   Compiling utf8parse v0.2.1
   Compiling crc32fast v1.3.2
   Compiling rayon-core v1.11.0
   Compiling anstyle-parse v0.2.0
   Compiling is-terminal v0.4.7
   Compiling hashbrown v0.13.2
   Compiling crossbeam-deque v0.8.3
   Compiling adler v1.0.2
   Compiling anstyle v1.0.0
   Compiling colorchoice v1.0.0
   Compiling anstyle-query v1.0.0
   Compiling fallible_collections v0.4.7
   Compiling anstream v0.3.1
   Compiling miniz_oxide v0.7.1
   Compiling gifsicle v1.93.0
   Compiling num-traits v0.2.15
   Compiling ffmpeg-next v6.0.0
   Compiling clap_lex v0.4.1
   Compiling imgref v1.9.4
   Compiling weezl v0.1.7
   Compiling ffmpeg-sys-next v6.0.1 (https://github.com/kornelski/rust-ffmpeg-sys-1?rev=94d5496d88900bdc0cad66733138134d0ea3cf31#94d5496d)
   Compiling either v1.8.1
   Compiling strsim v0.10.0
   Compiling color_quant v1.1.0
   Compiling gif v0.12.0
   Compiling clap_builder v4.2.5
   Compiling rayon v1.7.0
   Compiling flate2 v1.0.26
   Compiling thread_local v1.1.7
   Compiling arrayvec v0.7.2
   Compiling imagequant v4.2.0
   Compiling lodepng v3.7.2
   Compiling clap v4.2.5
   Compiling gif-dispose v4.0.0
   Compiling loop9 v0.1.3
   Compiling resize v0.7.4
   Compiling pbr v1.1.1
   Compiling natord v1.0.9
   Compiling dunce v1.0.4
   Compiling quick-error v2.0.1
   Compiling wild v2.1.0
   Compiling gifski v1.11.0 (/build/source)
    Finished release [optimized] target(s) in 1m 58s
Executing cargoInstallPostBuildHook
Finished cargoInstallPostBuildHook
Finished cargoBuildHook
buildPhase completed in 1 minutes 59 seconds
running tests
Executing cargoCheckHook
++ cargo test -j 4 --release --features=video --target x86_64-unknown-linux-gnu --frozen -- --test-threads=4
warning: output filename collision.
The lib target `gifski` in package `gifski v1.11.0 (/build/source)` has the same output filename as the lib target `gifski` in package `gifski v1.11.0 (/build/source)`.
Colliding filename is: /build/source/target/x86_64-unknown-linux-gnu/release/deps/libgifski.rlib
The targets should have unique names.
Consider changing their names to be unique or compiling them separately.
This may become a hard error in the future; see <https://github.com/rust-lang/cargo/issues/6313>.
warning: output filename collision.
The lib target `gifski` in package `gifski v1.11.0 (/build/source)` has the same output filename as the lib target `gifski` in package `gifski v1.11.0 (/build/source)`.
Colliding filename is: /build/source/target/x86_64-unknown-linux-gnu/release/deps/libgifski.a
The targets should have unique names.
Consider changing their names to be unique or compiling them separately.
This may become a hard error in the future; see <https://github.com/rust-lang/cargo/issues/6313>.
warning: output filename collision.
The lib target `gifski` in package `gifski v1.11.0 (/build/source)` has the same output filename as the lib target `gifski` in package `gifski v1.11.0 (/build/source)`.
Colliding filename is: /build/source/target/x86_64-unknown-linux-gnu/release/deps/libgifski.so
The targets should have unique names.
Consider changing their names to be unique or compiling them separately.
This may become a hard error in the future; see <https://github.com/rust-lang/cargo/issues/6313>.
warning: output filename collision.
The lib target `gifski` in package `gifski v1.11.0 (/build/source)` has the same output filename as the lib target `gifski` in package `gifski v1.11.0 (/build/source)`.
Colliding filename is: /build/source/target/x86_64-unknown-linux-gnu/release/deps/libgifski.so.dwp
The targets should have unique names.
Consider changing their names to be unique or compiling them separately.
This may become a hard error in the future; see <https://github.com/rust-lang/cargo/issues/6313>.
   Compiling cfg-if v1.0.0
   Compiling libc v0.2.142
   Compiling once_cell v1.17.1
   Compiling ffmpeg-sys-next v6.0.1 (https://github.com/kornelski/rust-ffmpeg-sys-1?rev=94d5496d88900bdc0cad66733138134d0ea3cf31#94d5496d)
   Compiling crossbeam-utils v0.8.15
   Compiling bitflags v1.3.2
   Compiling memoffset v0.8.0
   Compiling linux-raw-sys v0.3.6
   Compiling scopeguard v1.1.0
   Compiling bytemuck v1.13.1
   Compiling rgb v0.8.36
   Compiling io-lifetimes v1.0.10
   Compiling rustix v0.37.18
   Compiling crossbeam-epoch v0.9.14
   Compiling ffmpeg-next v6.0.0
   Compiling crossbeam-channel v0.5.8
   Compiling gifsicle v1.93.0
   Compiling ahash v0.8.3
   Compiling utf8parse v0.2.1
   Compiling anstyle-parse v0.2.0
   Compiling is-terminal v0.4.7
   Compiling hashbrown v0.13.2
   Compiling crossbeam-deque v0.8.3
   Compiling num_cpus v1.15.0
   Compiling colorchoice v1.0.0
   Compiling anstyle-query v1.0.0
   Compiling adler v1.0.2
   Compiling anstyle v1.0.0
   Compiling fallible_collections v0.4.7
   Compiling anstream v0.3.1
   Compiling miniz_oxide v0.7.1
   Compiling rayon-core v1.11.0
   Compiling crc32fast v1.3.2
   Compiling color_quant v1.1.0
   Compiling either v1.8.1
   Compiling weezl v0.1.7
   Compiling imgref v1.9.4
   Compiling strsim v0.10.0
   Compiling clap_lex v0.4.1
   Compiling clap_builder v4.2.5
   Compiling gif v0.12.0
   Compiling rayon v1.7.0
   Compiling flate2 v1.0.26
   Compiling thread_local v1.1.7
   Compiling arrayvec v0.7.2
   Compiling imagequant v4.2.0
   Compiling clap v4.2.5
   Compiling lodepng v3.7.2
   Compiling gif-dispose v4.0.0
   Compiling loop9 v0.1.3
   Compiling resize v0.7.4
   Compiling pbr v1.1.1
   Compiling num-traits v0.2.15
   Compiling dunce v1.0.4
   Compiling wild v2.1.0
   Compiling quick-error v2.0.1
   Compiling natord v1.0.9
   Compiling gifski v1.11.0 (/build/source)
error: the crate `gifski` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `gif` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `weezl` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `color_quant` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `imagequant` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `rgb` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `bytemuck` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `arrayvec` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `num_cpus` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `libc` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `rayon` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `either` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `rayon_core` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `crossbeam_channel` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `cfg_if` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `crossbeam_utils` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `crossbeam_deque` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `crossbeam_epoch` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `scopeguard` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `memoffset` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `thread_local` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `once_cell` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `imgref` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `quick_error` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `pbr` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `loop9` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `gifsicle` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `gif_dispose` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `resize` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `fallible_collections` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `hashbrown` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `ahash` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `lodepng` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `flate2` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `crc32fast` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `miniz_oxide` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: the crate `adler` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`

error: could not compile `gifski` (test "tests") due to 37 previous errors
warning: build failed, waiting for other jobs to finish...
error: builder for '/nix/store/llpf3ld5d4i0yw2l1d4p82aj2fjjvzfv-gifski-1.11.0.drv' failed with exit code 101;
       last 10 log lines:
       > error: the crate `flate2` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`
       >
       > error: the crate `crc32fast` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`
       >
       > error: the crate `miniz_oxide` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`
       >
       > error: the crate `adler` requires panic strategy `abort` which is incompatible with this crate's strategy of `unwind`
       >
       > error: could not compile `gifski` (test "tests") due to 37 previous errors
       > warning: build failed, waiting for other jobs to finish...
       For full logs, run 'nix log /nix/store/llpf3ld5d4i0yw2l1d4p82aj2fjjvzfv-gifski-1.11.0.drv'.
error: 1 dependencies of derivation '/nix/store/8wx030avv5scccpscsgg2f7nbjjk4lyh-peek-1.5.1.drv' failed to build

Additional context

Peek is a simple animated GIF screen recorder with an easy to use interface. It seems only supports Linux.

Recently the peek is deprecated.

I'm new to contribute to the Nix project, so I'm not sure I should fix it or mark it as deprecated. If latter, I'll delete the peek from the nixpkgs source code and add an alias which says this package is deprecated, then will make a new PR.

Already there is the gifski package but it is built from the source when building the peek package.

Notify maintainers

@puffnfresh

Metadata

[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 6.1.42, NixOS, 23.11 (Tapir), 23.11pre509987.66aedfd0102`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.15.1`
 - channels(root): `"nixos"`
 - channels(ch1keen): `"home-manager"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`
tjni commented 1 year ago

Let's try to fix the underlying problem with gifski first: https://github.com/NixOS/nixpkgs/pull/247700.

tjni commented 1 year ago

The fix for gifski has been committed and its progress can be tracked at https://nixpk.gs/pr-tracker.html?pr=247700. When you are able to, please let me know if that fixes the build for you.

Personally, I don't have an opinion on whether to deprecate this or not, so I'll leave that subject alone :)

Ch1keen commented 1 year ago

The command nix-shell -I nixpkgs=. -p peek successfully builds the peek package after I fetch the latest commit!

When the commit is available in nixos-unstable branch and there is no error when I run the same command(nix-shell -p peek) again, I'll close this issue.