Skip to content
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

bintools-wrapper: fix inverted link32 check #107253

Merged
merged 1 commit into from
Dec 20, 2020

Conversation

Emantor
Copy link
Member

@Emantor Emantor commented Dec 20, 2020

Motivation for this change

The new skip for the dynamic linker includes a change in behaviour,
previously the $link32 variable was checked using an arithmetic
expression via (( )). This returns zero if the output of the arithmetic
expression if nonzero, i.e. link32=1 would return zero and the if
condition would be executed.
The code refactored this to use "$link32" = "0" which is incorrect in
this case, since we want this if conditional to run if $link32 is 1.

Small shell excerpt for clarity:

$ export link32=1
$ export cookie=1
$ if [[ "$cookie" = "1" ]] && (( "$link32" )); then echo "do some stuff"; fi;
do some stuff
$ if [[ "$cookie" = "1" && "$link32" = "0" ]]; then echo "do some stuff"; fi;
$
Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

@FRidh
Copy link
Member

FRidh commented Dec 20, 2020

Please refer in your commit message to the commits that change the behaviour.

@Emantor
Copy link
Member Author

Emantor commented Dec 20, 2020

Please refer in your commit message to the commits that change the behaviour.

Pushed a commit which includes a reference to the commit that introduced the change.

Copy link
Member

@Atemu Atemu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This returns zero if the output of the arithmetic expression if nonzero

Oof.

Might be worth documenting that funny little quirk in a comment; I don't think anyone who hasn't personally been bitten by this would expect that to happen.

I can confirm that wineWowPackages build again with this patch applied!

The new skip for the dynamic linker introduced in
ccfd26e ("bintools-wrapper: skip dynamic linker for static
binaries") includes a change in behaviour, previously the $link32
variable was checked using an arithmetic expression via (( )). This
returns zero if the output of the arithmetic expression is nonzero, i.e.
link32=1 would return zero and the if condition would be executed.
The code refactored this to use "$link32" = "0" which is incorrect in
this case, since we want this if conditional to run if $link32 is 1.

Small shell excerpt for clarity:

$ export link32=1
$ export cookie=1
$ if [[ "$cookie" = "1" ]] && (( "$link32" )); then echo "do some stuff"; fi;
do some stuff
$ if [[ "$cookie" = "1" && "$link32" = "0" ]]; then echo "do some stuff"; fi;
$

Change it to check for $link32 = "1", as the previous code did.
@Emantor
Copy link
Member Author

Emantor commented Dec 20, 2020

This returns zero if the output of the arithmetic expression if nonzero

Oof.

Might be worth documenting that funny little quirk in a comment; I don't think anyone who hasn't personally been bitten by this would expect that to happen.

Since this quirk was removed in the previous commit, I think there is no additional documentation requirement. I think the way it's scripted now is good.

@Ericson2314 Ericson2314 merged commit 241c391 into NixOS:staging-next Dec 20, 2020
vcunat added a commit that referenced this pull request Dec 21, 2020
This reverts commit 241c391, reversing
changes made to ab8c2b2.

These toolchain changes are too problematic, so reverting for now; see
#107086 (comment)
github-actions bot added a commit to andir/nixos.cloud that referenced this pull request Dec 25, 2020
## Changelog for nixpkgs:
Commits: [NixOS/nixpkgs@e9158eca...57a787c9](NixOS/nixpkgs@e9158ec...57a787c)

* [`3c233e26`](NixOS/nixpkgs@3c233e2) soapyaudio: init at 0.1.1
* [`08319d05`](NixOS/nixpkgs@08319d0) sdrangel: add soapysdr dependency
* [`640d9251`](NixOS/nixpkgs@640d925) buildDunePackage: use dune install instead of opaline
* [`e55f7727`](NixOS/nixpkgs@e55f772) python3Packages.hstspreload: add pythonImportsCheck
* [`17f8726e`](NixOS/nixpkgs@17f8726) flasm: init at 1.64
* [`37abd75b`](NixOS/nixpkgs@37abd75) libreoffice-fresh: 7.0.3.1 -> 7.0.4.2
* [`0446b8af`](NixOS/nixpkgs@0446b8a) ethminer: fix broken package by switching to clang
* [`15dcf134`](NixOS/nixpkgs@15dcf13) nixos/manual: fix typo in virtualbox installation guide
* [`0179b5f1`](NixOS/nixpkgs@0179b5f) steam-fhsenv: normalize ldPath
* [`473ec944`](NixOS/nixpkgs@473ec94) steamPackages.steam: 1.0.0.61 -> 1.0.0.68
* [`ab91cd99`](NixOS/nixpkgs@ab91cd9) steam: fix desktop link
* [`373cb5d4`](NixOS/nixpkgs@373cb5d) steam: fix readonly boostrap.tar.xz
* [`39fad297`](NixOS/nixpkgs@39fad29) nixos: fix "nixos-rebuild build-vm-with-bootloader" for EFI systems
* [`04cbb60e`](NixOS/nixpkgs@04cbb60) ocamlPackages.opam-state: use dune 2
* [`69e614e7`](NixOS/nixpkgs@69e614e) ocamlPackages.opam-repository: use dune 2
* [`926a1b20`](NixOS/nixpkgs@926a1b2) ocamlPackages.opam-format: use dune 2
* [`6c839492`](NixOS/nixpkgs@6c83949) waypoint: init at 0.1.5
* [`d1d2526f`](NixOS/nixpkgs@d1d2526) samba: 4.12.6 -> 4.13.0
* [`8e88dfc1`](NixOS/nixpkgs@8e88dfc) samba: 4.13.0 -> 4.13.3
* [`a9ddc4fc`](NixOS/nixpkgs@a9ddc4f) samba: fix macOS build
* [`560dc49b`](NixOS/nixpkgs@560dc49) maintainers: add fab
* [`6be8a0ec`](NixOS/nixpkgs@6be8a0e) maintainers: add stunkymonkey
* [`6f64a415`](NixOS/nixpkgs@6f64a41) samba: mark as broken on darwin
* [`e8488ab5`](NixOS/nixpkgs@e8488ab) notion: 4.0.1 -> 4.0.2
* [`0c0a1a9a`](NixOS/nixpkgs@0c0a1a9) kitty: 0.19.2 -> 0.19.3
* [`4078999d`](NixOS/nixpkgs@4078999) lein: 2.9.1 -> 2.9.5
* [`b9140da9`](NixOS/nixpkgs@b9140da) pythonPackages.discordpy: remove overly restrictive version constraints
* [`fd018e99`](NixOS/nixpkgs@fd018e9) uwsgi: set UWSGICONFIG_PHPPATH to the php.dev store
* [`22e88043`](NixOS/nixpkgs@22e8804) uwsgi: the php plugin needs to link with session.so
* [`c32ef219`](NixOS/nixpkgs@c32ef21) nixos/tests/uwsgi: test PHP plugin
* [`b055fd11`](NixOS/nixpkgs@b055fd1) python3Packages.transformers: 4.0.1 -> 4.1.1
* [`5e5139ea`](NixOS/nixpkgs@5e5139e) python3Packages.ircstates: 0.11.6 -> 0.11.7
* [`e189177c`](NixOS/nixpkgs@e189177) uwsgi: add passthru.tests.uwsgi to derivation
* [`6625d1d1`](NixOS/nixpkgs@6625d1d) python3Packages.botocore: 1.19.39 -> 1.19.40
* [`ff6ef5bc`](NixOS/nixpkgs@ff6ef5b) python3Packages.boto3: 1.16.39 -> 1.16.40
* [`b4c59d6a`](NixOS/nixpkgs@b4c59d6) awscli: 1.18.199 -> 1.18.200
* [`9dc0ab94`](NixOS/nixpkgs@9dc0ab9) linux: 5.10.1 -> 5.10.2
* [`6b4ee3bf`](NixOS/nixpkgs@6b4ee3b) linux: 5.4.84 -> 5.4.85
* [`4859bf28`](NixOS/nixpkgs@4859bf2) linux: 5.9.15 -> 5.9.16
* [`c0e091e6`](NixOS/nixpkgs@c0e091e) linux-rt_5_10: 5.10.1-rt19 -> 5.10.1-rt20
* [`e49c1a00`](NixOS/nixpkgs@e49c1a0) mathematica: 12.1.1 -> 12.2.0 (NixOS/nixpkgs#107309)
* [`9521efa6`](NixOS/nixpkgs@9521efa) cling: fix libc include path for non-glibc
* [`b7045dac`](NixOS/nixpkgs@b7045da) libcryptui: enableParallelBuilding
* [`4bded925`](NixOS/nixpkgs@4bded92) nixos/thermald: Allow switching package
* [`7e63c972`](NixOS/nixpkgs@7e63c97) folly: 2019.11.11.00 -> 2020.09.28.00, fix build (NixOS/nixpkgs#99133)
* [`a63c1a93`](NixOS/nixpkgs@a63c1a9) kafka: remove old versions
* [`95c123d1`](NixOS/nixpkgs@95c123d) libsmartcols: init at v2.36.1
* [`31e7bbc9`](NixOS/nixpkgs@31e7bbc) prometheus-lnd-exporter: unstable-2020-01-09 -> unstable-2020-12-04
* [`bbd59a22`](NixOS/nixpkgs@bbd59a2) python3Packages.pytest-trio: 0.6.0 -> 0.7.0
* [`65fd0312`](NixOS/nixpkgs@65fd031) nixos: add prometheus_nginxlog_exporter module + test
* [`bd841250`](NixOS/nixpkgs@bd84125) nomad_1_0: init at 1.0.1
* [`b2a1f176`](NixOS/nixpkgs@b2a1f17) docopts: add to all-packages
* [`bf444739`](NixOS/nixpkgs@bf44473) Revert "Merge NixOS/nixpkgs#107253: bintools-wrapper: fix inverted link32 check"
* [`363175cd`](NixOS/nixpkgs@363175c) Revert "bintools-wrapper: skip dynamic linker for static binaries"
* [`ac03cfa3`](NixOS/nixpkgs@ac03cfa) Revert "Merge NixOS/nixpkgs#94582: clang, cc-wrapper: Move `--gcc-toolchain` logic..."
* [`58347020`](NixOS/nixpkgs@5834702) Revert "Merge NixOS/nixpkgs#97536: uwsgi: fix compiling and linking"
* [`91d6b7d0`](NixOS/nixpkgs@91d6b7d) nvidia-x11.vulkan_beta: 455.46.02 -> 455.46.04
* [`58c52f0b`](NixOS/nixpkgs@58c52f0) wireshark: 3.4.0 -> 3.4.2
* [`7bc70734`](NixOS/nixpkgs@7bc7073) bash: 5.0 -> 5.1
* [`e19995e4`](NixOS/nixpkgs@e19995e) codimd: 1.6.0 -> 1.7.0, rename to hedgedoc
* [`1c556217`](NixOS/nixpkgs@1c55621) nixos/codimd: rename to hedgedoc
* [`97e863ad`](NixOS/nixpkgs@97e863a) nixos/doc: add note about codimd -> hedgedoc to release notes
* [`16a33fb0`](NixOS/nixpkgs@16a33fb) sdrangel: set SOAPYSDR_DIR in build
* [`da247171`](NixOS/nixpkgs@da24717) mutagen: install agents bundle (NixOS/nixpkgs#107297)
* [`af5b6f9f`](NixOS/nixpkgs@af5b6f9) nerdctl: 0.3.0 -> 0.4.0
* [`1ebf7ecb`](NixOS/nixpkgs@1ebf7ec) youtube-dl: 2020.12.14 -> 2020.12.22
* [`a59c33f3`](NixOS/nixpkgs@a59c33f) manaplus: init at 1.9.3.23
* [`e18b62a5`](NixOS/nixpkgs@e18b62a) maintainer-list: add lrworth
* [`160ba18d`](NixOS/nixpkgs@160ba18) unused: init at 0.2.1
* [`9d92c9d0`](NixOS/nixpkgs@9d92c9d) iso-image: add 'serial console' boot entry
* [`f3939a9b`](NixOS/nixpkgs@f3939a9) python37Packages.pulp: 2.3.1 -> 2.4
* [`bbceaa8c`](NixOS/nixpkgs@bbceaa8) element-web: 1.7.15 -> 1.7.16
* [`b9dabe73`](NixOS/nixpkgs@b9dabe7) element-desktop: 1.7.15 -> 1.7.16
* [`d36f0023`](NixOS/nixpkgs@d36f002) packer: 1.6.5 -> 1.6.6
* [`4d0c6c64`](NixOS/nixpkgs@4d0c6c6) nvimpager: init at 0.9 (NixOS/nixpkgs#107057)
* [`9f52d1f2`](NixOS/nixpkgs@9f52d1f) Revert "nixos/wireless: fix failure with no interfaces"
* [`68b265d8`](NixOS/nixpkgs@68b265d) lexicon: 3.4.3 -> 3.5.2
* [`80b09974`](NixOS/nixpkgs@80b0997) nixos/udev: harmonize extraRules example
* [`30a21ff2`](NixOS/nixpkgs@30a21ff) iosevka-bin: 4.0.3 -> 4.1.1
* [`9a9ad8c7`](NixOS/nixpkgs@9a9ad8c) esptool: 2.7 -> 3.0, fix NixOS/nixpkgs#82965
* [`20a3b851`](NixOS/nixpkgs@20a3b85) python3Packages.daphne: 2.5.0 -> 3.0.1
* [`bf5af025`](NixOS/nixpkgs@bf5af02) monero: 0.17.1.6 -> 0.17.1.7
* [`b45e4ddb`](NixOS/nixpkgs@b45e4dd) monero-gui: 0.17.1.6 -> 0.17.1.7
* [`05fe6112`](NixOS/nixpkgs@05fe611) Fix small typo in a comment of emacs-packages
* [`b36e05ef`](NixOS/nixpkgs@b36e05e) htop: 3.0.3 -> 3.0.4
* [`74971a10`](NixOS/nixpkgs@74971a1) gitlab-runner: 13.6.0 -> 13.7.0 (NixOS/nixpkgs#107378)
* [`86ff1e45`](NixOS/nixpkgs@86ff1e4) ungoogled-chromium: Support enableWideVine=true
* [`6dd858dc`](NixOS/nixpkgs@6dd858d) uwsgi: set UWSGICONFIG_PHPPATH to the php.dev store
* [`87bed6c8`](NixOS/nixpkgs@87bed6c) uwsgi: the php plugin needs to link with session.so
* [`06749ba3`](NixOS/nixpkgs@06749ba) nixos/tests/uwsgi: test PHP plugin
* [`41af371d`](NixOS/nixpkgs@41af371) uwsgi: add passthru.tests.uwsgi to derivation
* [`5d3baeb1`](NixOS/nixpkgs@5d3baeb) polybar: 3.5.0 -> 3.5.2
* [`044cd65e`](NixOS/nixpkgs@044cd65) gitui: 0.10.1 -> 0.11.0
* [`c6f65b1d`](NixOS/nixpkgs@c6f65b1) ulauncher: 5.8.1 -> 5.9.0
* [`123f953c`](NixOS/nixpkgs@123f953) grocy: 2.7.1 -> 3.0.0
* [`b3aed95a`](NixOS/nixpkgs@b3aed95) chroma: 0.8.1 -> 0.8.2
* [`7bc0da6a`](NixOS/nixpkgs@7bc0da6) dasel: 1.10.0 -> 1.11.0
* [`a926df73`](NixOS/nixpkgs@a926df7) python37Packages.toposort: 1.5 -> 1.6
* [`d156f38d`](NixOS/nixpkgs@d156f38) python37Packages.pyvips: 2.1.13 -> 2.1.14
* [`b29490c8`](NixOS/nixpkgs@b29490c) python37Packages.sqlite-utils: 3.0 -> 3.1
* [`458fc5d9`](NixOS/nixpkgs@458fc5d) python37Packages.hvac: 0.10.5 -> 0.10.6
* [`cf3c6d3e`](NixOS/nixpkgs@cf3c6d3) python37Packages.tlslite-ng: 0.7.5 -> 0.7.6
* [`157edfdf`](NixOS/nixpkgs@157edfd) python37Packages.requests-hawk: 1.0.1 -> 1.1.0
* [`0cefcc62`](NixOS/nixpkgs@0cefcc6) pythonPackages.progressbar2: fix build
* [`f0bce04b`](NixOS/nixpkgs@f0bce04) sudo: 1.9.4p1 -> 1.9.4p2
* [`9a6de998`](NixOS/nixpkgs@9a6de99) nodejs-15_x: 15.4.0 -> 15.5.0
* [`d130a659`](NixOS/nixpkgs@d130a65) MediaElch: init at 2.8.2
* [`6fc561f9`](NixOS/nixpkgs@6fc561f) python3Packages.botocore: 1.19.40 -> 1.19.41
* [`d943d0a2`](NixOS/nixpkgs@d943d0a) python3Packages.boto3: 1.16.40 -> 1.16.41
* [`8e3726f3`](NixOS/nixpkgs@8e3726f) awscli: 1.18.200 -> 1.18.201
* [`96396f35`](NixOS/nixpkgs@96396f3) linux-rt_5_4: 5.4.82-rt45 -> 5.4.84-rt47
* [`371b8673`](NixOS/nixpkgs@371b867) linux/hardened/patches/5.4: 5.4.84.a -> 5.4.85.a
* [`bf0589a3`](NixOS/nixpkgs@bf0589a) linux/hardened/patches/5.9: 5.9.15.a -> 5.9.16.a
* [`0f8e7ab7`](NixOS/nixpkgs@0f8e7ab) mapproxy: 1.12.0 -> 1.13.0 (NixOS/nixpkgs#107203)
* [`fd4e4bd8`](NixOS/nixpkgs@fd4e4bd) waffle: Use meson instead of cmake
* [`807c0b0d`](NixOS/nixpkgs@807c0b0) waffle: Add support for non-linux platforms
* [`dd5ffa7b`](NixOS/nixpkgs@dd5ffa7) libdnf: init at 0.55.2
* [`638eefae`](NixOS/nixpkgs@638eefa) microdnf: init at 3.6.0
* [`702161d4`](NixOS/nixpkgs@702161d) winetricks: 20200412 -> 20201206
* [`e7bfbe36`](NixOS/nixpkgs@e7bfbe3) umockdev: disable tests
* [`02040cb5`](NixOS/nixpkgs@02040cb) python37Packages.chalice: 1.21.6 -> 1.21.7
* [`e57c6c25`](NixOS/nixpkgs@e57c6c2) python37Packages.netcdf4: 1.5.5 -> 1.5.5.1
* [`357f132b`](NixOS/nixpkgs@357f132) doc: convert Steam to CommonMark
* [`2ae527c5`](NixOS/nixpkgs@2ae527c) qtractor: 0.9.18 -> 0.9.19
* [`55504ab4`](NixOS/nixpkgs@55504ab) python37Packages.breathe: 4.24.1 -> 4.25.1
* [`56139b3d`](NixOS/nixpkgs@56139b3) gitAndTools.delta: 0.4.4 -> 0.4.5
* [`019eb959`](NixOS/nixpkgs@019eb95) tdesktop: 2.4.7 -> 2.5.0
* [`2688e2d3`](NixOS/nixpkgs@2688e2d) tdesktop: 2.5.0 -> 2.5.1
* [`87e7d8b3`](NixOS/nixpkgs@87e7d8b) bind: 9.16.8 -> 9.16.10
* [`5ec44bb2`](NixOS/nixpkgs@5ec44bb) qolibri: migrate to Qt5.15
* [`0d025be7`](NixOS/nixpkgs@0d025be) kstars: migrate to Qt5.15
* [`d63dc152`](NixOS/nixpkgs@d63dc15) kstars: use mkDerivation instead of wrapQtAppsHook
* [`8db56b45`](NixOS/nixpkgs@8db56b4) kstars: add optional dependencies
* [`b8da36eb`](NixOS/nixpkgs@b8da36e) python3Packages.botocore: 1.19.41 -> 1.19.42
* [`8db43ec6`](NixOS/nixpkgs@8db43ec) python3Packages.boto3: 1.16.41 -> 1.16.42
* [`d1418293`](NixOS/nixpkgs@d141829) awscli: 1.18.201 -> 1.18.202
* [`05bf935b`](NixOS/nixpkgs@05bf935) ripgrep: Add test
* [`bdbb37ad`](NixOS/nixpkgs@bdbb37a) python37Packages.django-storages: 1.10.1 -> 1.11
* [`72386991`](NixOS/nixpkgs@7238699) python37Packages.JPype1: 1.1.2 -> 1.2.0
* [`2d6c7dd0`](NixOS/nixpkgs@2d6c7dd) python37Packages.azure-mgmt-synapse: 0.5.0 -> 0.6.0
* [`85994040`](NixOS/nixpkgs@8599404) python37Packages.clickhouse-driver: 0.1.5 -> 0.2.0
* [`0597dcb0`](NixOS/nixpkgs@0597dcb) python37Packages.bumps: 0.7.18 -> 0.8.0
* [`1539732c`](NixOS/nixpkgs@1539732) shadow: Add test
* [`49ca6941`](NixOS/nixpkgs@49ca694) release-combined: Add shadow test
* [`825d4705`](NixOS/nixpkgs@825d470) pythonPackages.tqdm: 4.54.0 -> 4.54.1
* [`56beaeb3`](NixOS/nixpkgs@56beaeb) python37Packages.seaborn: 0.11.0 -> 0.11.1
* [`57a787c9`](NixOS/nixpkgs@57a787c) Revert Merge NixOS/nixpkgs#107275: nixos: fix "nixos-rebuild ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants