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

[Request] ytmdl #1595

Closed
3 of 4 tasks
ZingyTomato opened this issue Jul 24, 2022 · 21 comments
Closed
3 of 4 tasks

[Request] ytmdl #1595

ZingyTomato opened this issue Jul 24, 2022 · 21 comments
Labels
priority:low This package affects just a few users. request:new-pkg New package requested.

Comments

@ZingyTomato
Copy link

Link to the package(s) in the AUR

https://aur.archlinux.org/packages/ytmdl

Utility this package has for you

Download songs from YouTube with metadata from sources like Itunes, Gaana, Deezer etc.

Do you consider the package(s) to be useful for every Chaotic-AUR user?

No, but for a great amount.

Do you consider the package to be useful for feature testing/preview?

  • Yes

Have you tested if the package builds in a clean chroot?

  • Yes

Does the package's license allow redistributing it?

YES!

Have you searched the issues to ensure this request is unique?

  • YES!

Have you read the README to ensure this package is not banned?

  • YES!

More information

No response

@ZingyTomato ZingyTomato added the request:new-pkg New package requested. label Jul 24, 2022
@Technetium1 Technetium1 added the priority:low This package affects just a few users. label Jul 24, 2022
@Technetium1
Copy link
Member

Technetium1 commented Jul 24, 2022

# Issue 1595
downloader-cli # (dep ytmdl)
python-itunespy # (dep ytmdl)
python-ffmpeg # (dep ytmdl)
python-xdg # (dep ytmdl)
python-pydes # (dep ytmdl)
python-ytmusicapi # (dep ytmdl)
python-spotipy # (dep ytmdl)
youtube-search-python # (dep ytmdl)
python-simber # (dep ytmdl)
ytmdl
Adds ytmdl, downloader-cli, python-itunespy, python-ffmpeg, python-xdg, python-pydes, python-ytmusicapi, python-spotipy, youtube-search-python, python-simber

@ZingyTomato
Copy link
Author

ZingyTomato commented Jul 24, 2022

This? https://aur.archlinux.org/packages/ytmdl#comment-868155

It's quite a lot of deps 😅

@Technetium1
Copy link
Member

python-ffmpeg package has a broken test. That's currently the only holdup on building this package. Not sure if it's okay to skip the tests just because of that being broken. Upstream issue: kkroening/ffmpeg-python#636

@ZingyTomato
Copy link
Author

Yep just encountered the same issue.

@Technetium1 Technetium1 added the waiting:upstream-fix Waiting for fix in AUR or in the project iself. label Jul 27, 2022
@Technetium1
Copy link
Member

I just posted about a possible patch for the issue here: kkroening/ffmpeg-python#636 (comment)

@ZingyTomato
Copy link
Author

Hope they fix it 😂

@xiota
Copy link
Contributor

xiota commented Dec 11, 2022

Using pytest -vvl, it looks like ffmpeg 5.x replaces the trimmed frames with the first frame instead of removing them entirely.

@ZingyTomato
Copy link
Author

ZingyTomato commented Dec 12, 2022

Will the saga finally be over... after like 5 months 😂

@Technetium1
Copy link
Member

@ZingyTomato should finally be fixed when xiota's pr is merged: kkroening/ffmpeg-python#726

@xiota
Copy link
Contributor

xiota commented Jan 22, 2023

I created another PR that uses a different method to fix the test. kkroening/ffmpeg-python#737

Still no sign of maintainer activity in that repository though.

Why not just skip the checks?

@xiota
Copy link
Contributor

xiota commented Feb 12, 2023

The python-ffmpeg package has been updated to skip the broken test.

Also, the upstream project name is actually "ffmpeg-python", while there is another project named "python-ffmpeg" (github). I don't know whether they are drop-in replacements for each other, but while the former appears to have been abandoned, the latter is actively developed.

@Technetium1
Copy link
Member

Issues with python-simber, will link an upstream issue when I make one.
python-simber.log

@deepjyoti30
Copy link

The simber issue should be fixed with the 0.2.6 release. Let me know if any other blockers come up that I can possibly solve!

Also thanks for the effort to add ytmdl. Really appreciate it!

@Technetium1
Copy link
Member

@deepjyoti30 finally got a new problem to solve!
from ytmdl.log:

==> Starting build()...
/usr/lib/python3.10/site-packages/setuptools/__init__.py:85: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated. Requirements should be satisfied by a PEP 517 installer. If you are using pip, you can try `pip install --use-pep517`.
dist.fetch_build_eggs(dist.setup_requires)
/usr/bin/python: No module named pip
Traceback (most recent call last):
File "/usr/lib/python3.10/site-packages/setuptools/installer.py", line 97, in _fetch_build_egg_no_warn
subprocess.check_call(cmd)
File "/usr/lib/python3.10/subprocess.py", line 369, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/usr/bin/python', '-m', 'pip', '--disable-pip-version-check', 'wheel', '--no-deps', '-w', '/tmp/tmpb2pf1zqe', '--quiet', 'simber==0.2.5']' returned non-zero exit status 1.

python-pip is missing in makedepends, also looks like it still searches for Simber 0.2.5.

@xiota
Copy link
Contributor

xiota commented Feb 22, 2023

After removing the simber version string and changing the build command to python -m build --no-isolation, I get the following error:

* Getting build dependencies for sdist...
Traceback (most recent call last):
  File "/usr/lib/python3.10/site-packages/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
    main()
  File "/usr/lib/python3.10/site-packages/pyproject_hooks/_in_process/_in_process.py", line 335, in main
    json_out['return_val'] = hook(**hook_input['kwargs'])
  File "/usr/lib/python3.10/site-packages/pyproject_hooks/_in_process/_in_process.py", line 287, in get_requires_for_build_sdist
    return hook(config_settings)
  File "/usr/lib/python3.10/site-packages/setuptools/build_meta.py", line 341, in get_requires_for_build_sdist
    return self._get_build_requires(config_settings, requirements=[])
  File "/usr/lib/python3.10/site-packages/setuptools/build_meta.py", line 320, in _get_build_requires
    self.run_setup()
  File "/usr/lib/python3.10/site-packages/setuptools/build_meta.py", line 484, in run_setup
    super(_BuildMetaLegacyBackend,
  File "/usr/lib/python3.10/site-packages/setuptools/build_meta.py", line 335, in run_setup
    exec(code, locals())
  File "<string>", line 14, in <module>
NameError: name 'yt' is not defined

ERROR Backend subprocess exited when trying to invoke get_requires_for_build_sdist

I was able to successfully build once with python -m build (without --no-isolation flag). But I think that's just redownloading all the dependencies when building the venv. Also, subsequent attempts to build have failed because of various errors. (Unfortunately, I didn't save the logs. But I recall some messages about missing ytmdl.bash and ytmdl.zsh, even though they're present, as far as I can tell.)

@deepjyoti30
Copy link

@xiota @Technetium1 The ytmdl release is now published and contains simber 0.2.6 or higher as a required dependency. You can try it now and let me know if something else shows up.

@xiota
Copy link
Contributor

xiota commented Mar 1, 2023

Builds with warnings:

==> Starting build()...
/usr/lib/python3.10/site-packages/setuptools/__init__.py:85: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated. Requirements should be satisfied by a PEP 517 installer. If you are using pip, you can try `pip install --use-pep517`.
  dist.fetch_build_eggs(dist.setup_requires)
Warning: 'classifiers' should be a list, got type 'tuple'
/usr/lib/python3.10/site-packages/setuptools/dist.py:547: UserWarning: Normalizing '2023.02.28' to '2023.2.28'
  warnings.warn(tmpl.format(**locals()))
   ...
==> Starting package()...
/usr/lib/python3.10/site-packages/setuptools/__init__.py:85: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated. Requirements should be satisfied by a PEP 517 installer. If you are using pip, you can try `pip install --use-pep517`.
  dist.fetch_build_eggs(dist.setup_requires)
Warning: 'classifiers' should be a list, got type 'tuple'
/usr/lib/python3.10/site-packages/setuptools/dist.py:547: UserWarning: Normalizing '2023.02.28' to '2023.2.28'
  warnings.warn(tmpl.format(**locals()))
running install
/usr/lib/python3.10/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
   ...

namcap reports the following:

ytmdl W: File (share/) exists in a non-standard directory.
ytmdl W: File (share/bash-completion/) exists in a non-standard directory.
ytmdl W: File (share/bash-completion/completions/) exists in a non-standard directory.
ytmdl W: File (share/bash-completion/completions/ytmdl.bash) exists in a non-standard directory.
ytmdl E: Missing custom license directory (usr/share/licenses/ytmdl)
ytmdl W: Referenced library 'inaSpeechSegmenter' is an uninstalled dependency
ytmdl W: Dependency python included but already satisfied
ytmdl W: Dependency ffmpeg included but already satisfied
ytmdl W: Dependency python-colorama included but already satisfied
ytmdl W: Dependency python-requests included but already satisfied
ytmdl W: Dependency python-lxml included but already satisfied
ytmdl W: Dependency python-urllib3 included but already satisfied

Can the /share folder and extra dependencies be removed?

@Technetium1
Copy link
Member

@deepjyoti30 It builds now, with the warnings above 👀

@Technetium1
Copy link
Member

Feel free to use the hourly log to solve your warnings on future builds 😃

@deepjyoti30
Copy link

@xiota

Can the /share folder be removed

/share directory just contains the bash files and is a necessary file for packages in order to include the sh completion files.

extra dependencies be removed?

Those are not extra dependencies. python, ffmpeg etc are direct dependencies and inaSpeechSegmenter is an optional dependency for the ytmdl package. The ytmdl package has an option to include some extra functionality and this package will be required then. This is a common way of shipping python packages that might have certain dependencies not useful for all users.

@xiota
Copy link
Contributor

xiota commented Mar 2, 2023

It's common practice for packages that depend on python-* to not include python in the depends. This is described at ArchWiki PKGBUILD:

In some cases this is not necessary and may or may not be listed, for example glibc cannot be uninstalled as every system needs some C library, or python for a package that already depends on another python- module, as the second module must per definition depend on python and cannot ever stop pulling it in as a dependency.

/share is entirely unused. In the PKGBUILD, ${pkgdir}/share can be removed and bash completion will still work because package() copies the files to the standard location /usr/share/bash-completion/completions/ytmdl.

Also requesting you remove the version strings from "python>=3.6" and "yt-dlp>=2022.03.08.1". The version strings block usage of the -git packages.

$ sudo pacman -S yt-dlp-git
resolving dependencies...
looking for conflicting packages...
:: yt-dlp-git and yt-dlp are in conflict. Remove yt-dlp? [y/N] y
error: failed to prepare transaction (could not satisfy dependencies)
:: removing yt-dlp breaks dependency 'yt-dlp>=2022.03.08.1' required by ytmdl

@Technetium1 Technetium1 removed the waiting:upstream-fix Waiting for fix in AUR or in the project iself. label Mar 3, 2023
xiota added a commit that referenced this issue Jan 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
priority:low This package affects just a few users. request:new-pkg New package requested.
Development

No branches or pull requests

4 participants