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

Staging next #72712

Merged
merged 62 commits into from Nov 12, 2019
Merged

Staging next #72712

merged 62 commits into from Nov 12, 2019

Conversation

FRidh
Copy link
Member

@FRidh FRidh commented Nov 3, 2019

Motivation for this change
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 nix-review --run "nix-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.
Notify maintainers

cc @

doronbehar and others added 30 commits October 11, 2019 14:15
Semi-automatic update generated by
https://github.com/ryantm/nixpkgs-update tools. This update was made
based on information from
https://repology.org/metapackage/fdk-aac/versions
Changing the default may cause breakage, however, users should have
already switched to `pythonPackages.libxml2` long ago.
Changing the default may cause breakage, however, users should have already switched to `pythonPackages.libxslt` long ago.
firmwareLinuxNonfree: 2019-09-23 -> 2019-10-22
Without those data files HRTF will silently fail to initialize.

It searches /usr and /usr/local by default but we don't have those paths.
It also searches XDG_DATA_DIRS but using that requires configuration by the
user. This patch makes makes it just work.

How to play with it:

- Build `mpv` with `openalSoft` support.

- cat << EOF > ~/.alsoftrc
[general]
hrtf = true
EOF

- Wear stereo headphones.

- Play a file with 6 or more channels with `mpv -ao openal $file`, e.g.
  https://archive.org/download/5.1SurroundSoundTestFilesVariousFormatsAACAC3MP4DTSWAV/5.1%20Surround%20Sound%20AAC%20Test.mp4

- Try `hrtf = false` to hear the difference.
as to not break too much
Unmerged upstream merge requests can change when iterated on!
To get python3 support.  #63174 flipped itstool to python3, but itstool
doesn't support python3 until 2.0.3 (and perhaps does not support it
well until 2.0.5).

Pressing forward instead of rolling back at worldofpeace's suggestion,
who mentions that other distros seem to be able to ship recent versions
of itstool.

Tensions in this space seem two-fold.  One set centers around libxml2
being a low-level C library with sharp edges, manual memory management,
and performance concerns; the python libxml2 wrapper being quite thin
(the most dubious character in this drama); and python's sentiment that
it ought to be quite hard to crash the interpreter casually.  This comes
to a head in https://gitlab.gnome.org/GNOME/libxml2/issues/12 , where a
use-after-free problem in idiomatic-looking python code is declared
working-as-designed.

The other set is around python3 being more UTF-8-aware than libxml2's
python wrapper, such as https://bugzilla.gnome.org/show_bug.cgi?id=789714
and https://src.fedoraproject.org/rpms/libxml2/blob/master/f/libxml2-2.9.8-python3-unicode-errors.patch

itstool is caught in this crossfire merely for being a widely-used
python program that uses XML.
… crash

1. Gnumeric has unbalanced XML tags in its doc translations.
2. itstool's XML error handler tries to print this error with context.
3. libxml2's context snipper treats the data as bytes, not UTF-8.
4. python3Packages.libxml2 casts the context to a UTF-8 Python string.
5. itstool dereferences a null pointer.

This patch intervenes at #4.

In https://bugzilla.gnome.org/show_bug.cgi?id=789714#c4 , upstream
suggests that intervening at #3 would be better -- that each of the four
copies of xmlParserPrintFileContextInternal() have four additional UTF-8
problems, one of which is that the caret indicator ought to count
"unicode characters" not bytes.  But to position a caret correctly, a
character count is not sufficient -- this would need to use icu's BiDi
logic (with fallback to doing something wrong when libxml2 is configured
not to use icu) -- which makes a 'correct' fix a much larger project
than this simple band-aid.
itstool: 2.0.2 -> 2.0.6
That breaks packages that rely on Python like itstool does.

#72342 (comment)
risicle and others added 11 commits November 3, 2019 10:35
addressing CVE-2019-13351

removing now-redundant patch fixing build on macos
Semi-automatic update generated by
https://github.com/ryantm/nixpkgs-update tools. This update was made
based on information from
https://repology.org/metapackage/man-db/versions
Semi-automatic update generated by
https://github.com/ryantm/nixpkgs-update tools. This update was made
based on information from
https://repology.org/metapackage/cmake-cursesui-qt5ui/versions
Semi-automatic update generated by
https://github.com/ryantm/nixpkgs-update tools. This update was made
based on information from
https://repology.org/metapackage/gtest/versions
automake 1.15 uses a bundled version of help2man from 2012 that
does not support the SOURCE_DATE_EPOCH environment variable.

This means that the build date is included in the generated
documentation, breaking reproducibility.

This changes adds the SOURCE_DATE_EPOCH support from the current
help2man to the version bundled in automake 1.15.
gnome-doc-utils is no longer supported and requires Python 2.
@FRidh
Copy link
Member Author

FRidh commented Nov 11, 2019

@FRidh FRidh merged commit 4619637 into master Nov 12, 2019
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.

None yet