GithubHelp home page GithubHelp logo

streamlink / streamlink-appimage Goto Github PK

View Code? Open in Web Editor NEW
32.0 10.0 3.0 154 KB

Streamlink Linux AppImage builds

Home Page: https://streamlink.github.io/

License: BSD 2-Clause "Simplified" License

Shell 100.00%
streamlink appimage linux

streamlink-appimage's Issues

TODO: Upgrade from Python 3.11 to 3.12 and switch from `manylinux2014` (`manylinux_2_17`) to `manylinux_2_28`

The upgrade is currently blocked by missing wheels for Streamlink's dependencies, namely lxml:

# cp312 - lxml 4.9.3 (latest)
$ curl -sSL https://pypi.org/pypi/lxml/4.9.3/json | jq -r '.urls[] | select(.python_version == "cp312") | .filename'
lxml-4.9.3-cp312-cp312-macosx_11_0_universal2.whl
lxml-4.9.3-cp312-cp312-manylinux_2_28_aarch64.whl
lxml-4.9.3-cp312-cp312-manylinux_2_28_x86_64.whl
lxml-4.9.3-cp312-cp312-musllinux_1_1_aarch64.whl
lxml-4.9.3-cp312-cp312-musllinux_1_1_x86_64.whl
lxml-4.9.3-cp312-cp312-win_amd64.whl

# cp311 - lxml 4.9.3 (latest)
$ curl -sSL https://pypi.org/pypi/lxml/4.9.3/json | jq -r '.urls[] | select(.python_version == "cp311") | .filename'
lxml-4.9.3-cp311-cp311-macosx_11_0_universal2.whl
lxml-4.9.3-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl
lxml-4.9.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl
lxml-4.9.3-cp311-cp311-manylinux_2_28_aarch64.whl
lxml-4.9.3-cp311-cp311-manylinux_2_28_x86_64.whl
lxml-4.9.3-cp311-cp311-musllinux_1_1_aarch64.whl
lxml-4.9.3-cp311-cp311-musllinux_1_1_x86_64.whl
lxml-4.9.3-cp311-cp311-win32.whl
lxml-4.9.3-cp311-cp311-win_amd64.whl

# cp311 - lxml 4.9.2 (previous release)
$ curl -sSL https://pypi.org/pypi/lxml/4.9.2/json | jq -r '.urls[] | select(.python_version == "cp311") | .filename'
lxml-4.9.2-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl
lxml-4.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl
lxml-4.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl
lxml-4.9.2-cp311-cp311-musllinux_1_1_aarch64.whl
lxml-4.9.2-cp311-cp311-musllinux_1_1_x86_64.whl
lxml-4.9.2-cp311-cp311-win32.whl
lxml-4.9.2-cp311-cp311-win_amd64.whl

The cp312 i686 wheel is missing, and both the x86_64 and aarch64 wheels have been bumped from manylinux_2_17 (manylinux2014 is the old alias for that) to manylinux_2_28. The manylinux bump of aarch64 on 4.9.3 has already been a problem, hence the downgrade to 4.9.2 in recent AppImage releases.

This means that either the AppImages need to be bumped to manylinux_2_28, or the lxml wheels need to be built ourselves, by building libxml2 and libxslt (and their deps), and then lxml. However, there's probably a reason why wheels for older glibc versions were not built (no idea yet, haven't checked). On top of that, support for manylinux2014 aka. manylinux_2_17 will run out soon next year, it doesn't make sense adding workarounds and delaying the upgrade further.

The upgrade towards manylinux_2_28 is therefore inevitable. glibc 2.28 was released in August 2018 and most LTS distros from that era without that glibc version or newer should have already ended support by now, so upgrading shouldn't cause any issues in terms of user compatibility.

I will have a look at upgrading some time soon.

TODO: rewrite build config, build from git instead of sdist, make nightly builds available, and more improvements

The AppImage build config and build scripts should be rewritten so that they match the ones of Streamlink's Windows builds (installers and portable archives). Streamlink's code should be retrieved from git instead of stable sdist releases from PyPI, and nightly builds should be published as build artifacts. Building dependencies from source instead of downloading pre-built wheels should also be explored, so we're not limited by any build- or infrastructure issues of the devs of Streamlink's dependencies (like lxml for example). Optionally, a changelog should be added and the GitHub release should have a message attached (release body).

  • Update build config and scripts
    • Use the same script arguments as Streamlink's Windows build scripts
    • Retrieve Streamlink from git
    • Allow building from different git refs
    • Build dependencies from source
    • Ensure that everything stays reproducible
  • Build and publish nightly builds
  • GH releases body
  • Add changelog

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.