LINUX.ORG.RU

Если в вашем дистрибутиве нет ghc, то забудьте про дефолтное получение манов свежего youtube-dl

 , , , ,


0

2

Сабж. Авторы youtube-dl теперь используют pandoc для получения этих самых манов. И если pandoc отсутствует в системе, то дефолтная сборка засыпется на

chmod a+x youtube-dl
/bin/sh: pandoc: команда не найдена
/bin/sh: line 0: [: =: ожидается использование унарного оператора
/usr/bin/env python devscripts/prepare_manpage.py youtube-dl.1.temp.md
pandoc -s -f markdown -t man youtube-dl.1.temp.md -o youtube-dl.1
make: pandoc: Команда не найдена
Makefile:91: ошибка выполнения рецепта для цели «youtube-dl.1»
pandoc же написан на Haskell'е и требует кучу соответствующих библиотек. Так что, без ghc здесь никак. Либо прописывать вместо pandoc нечто альтернативное, либо пытаться обходиться без манов вообще.

UPD. Хех. Выясняется, что авторы youtube-dl выкладывают две разных версии тарболов. Если скачать тарбол с https://rg3.github.io/youtube-dl/download.html , то он спокойно опакетится и без pandoc. А вот если скачать тарбол с https://github.com/rg3/youtube-dl/releases , то тут уже понадобится pandoc. Или костыли.

(Кстати, сегодня вышла версия 2018.12.09).

★★★★★

требует кучу соответствующих библиотек.

например?

Package: pandoc
Version: 2.2.1-3+b1
Section: text
Depends: libatomic1 (>= 4.8)
 libc6 (>= 2.27)
 libffi6 (>= 3.0.4)
 libgmp10, liblua5.1-0, libpcre3, libyaml-0-2, zlib1g (>= 1:1.1.4)
 pandoc-data (>= 2.2.1-3)
 pandoc-data (<< 2.2.1-3.~)

bass ★★★★★ ()
Ответ на: комментарий от bass

Часть spec'а из Федоры:

BuildRequires:  ghc-Cabal-devel
BuildRequires:  ghc-rpm-macros
# Begin cabal-rpm deps:
BuildRequires:  chrpath
BuildRequires:  ghc-Glob-devel
BuildRequires:  ghc-HTTP-devel
BuildRequires:  ghc-JuicyPixels-devel
BuildRequires:  ghc-SHA-devel
BuildRequires:  ghc-aeson-devel
BuildRequires:  ghc-aeson-pretty-devel
BuildRequires:  ghc-base64-bytestring-devel
BuildRequires:  ghc-binary-devel
BuildRequires:  ghc-blaze-html-devel
BuildRequires:  ghc-blaze-markup-devel
BuildRequires:  ghc-bytestring-devel
BuildRequires:  ghc-case-insensitive-devel
BuildRequires:  ghc-cmark-gfm-devel
BuildRequires:  ghc-containers-devel
BuildRequires:  ghc-data-default-devel
BuildRequires:  ghc-deepseq-devel
BuildRequires:  ghc-directory-devel
BuildRequires:  ghc-doctemplates-devel
BuildRequires:  ghc-exceptions-devel
BuildRequires:  ghc-filepath-devel
BuildRequires:  ghc-haddock-library-devel
BuildRequires:  ghc-hslua-devel
BuildRequires:  ghc-hslua-module-text-devel
BuildRequires:  ghc-http-client-devel
BuildRequires:  ghc-http-client-tls-devel
BuildRequires:  ghc-http-types-devel
BuildRequires:  ghc-mtl-devel
BuildRequires:  ghc-network-devel
BuildRequires:  ghc-network-uri-devel
BuildRequires:  ghc-pandoc-types-devel
BuildRequires:  ghc-parsec-devel
BuildRequires:  ghc-process-devel
BuildRequires:  ghc-random-devel
BuildRequires:  ghc-safe-devel
BuildRequires:  ghc-scientific-devel
BuildRequires:  ghc-skylighting-devel
BuildRequires:  ghc-split-devel
BuildRequires:  ghc-syb-devel
BuildRequires:  ghc-tagsoup-devel
BuildRequires:  ghc-temporary-devel
BuildRequires:  ghc-texmath-devel
BuildRequires:  ghc-text-devel
BuildRequires:  ghc-time-devel
BuildRequires:  ghc-unix-devel
BuildRequires:  ghc-unordered-containers-devel
BuildRequires:  ghc-vector-devel
BuildRequires:  ghc-xml-devel
BuildRequires:  ghc-yaml-devel
BuildRequires:  ghc-zip-archive-devel
BuildRequires:  ghc-zlib-devel
%if %{with tests}
BuildRequires:  ghc-Diff-devel
BuildRequires:  ghc-QuickCheck-devel
BuildRequires:  ghc-executable-path-devel
BuildRequires:  ghc-tasty-devel
BuildRequires:  ghc-tasty-golden-devel
BuildRequires:  ghc-tasty-hunit-devel
BuildRequires:  ghc-tasty-quickcheck-devel
%endif
# End cabal-rpm deps

saahriktu ★★★★★ ()
Последнее исправление: saahriktu (всего исправлений: 1)

Вот кстати да, pandoc это единственная утилита на Haskell'е, которой я пользуюсь. Очень удобно ей генерировать HTML и PDF из Markdown.

Странный выбор языка для реализации подобного конвертора, ну да ладно. Главное что функции свои он выполняет довольно неплохо.

EXL ★★★★★ ()
Ответ на: комментарий от EXL

Странный выбор языка для реализации подобного конвертора, ну да ладно.

Вообще то хаскелевкий парсинг считается best of class. Так что ничего странного тут нет.

AndreyKl ★★★★★ ()
Ответ на: комментарий от saahriktu

Вау!

$ pacman -Si pandoc
Repository      : community
Name            : pandoc
Version         : 2.4-3
Description     : Conversion between markup formats
Architecture    : x86_64
URL             : http://pandoc.org
Licenses        : GPL
Groups          : None
Provides        : None
Depends On      : ghc-libs  haskell-http  haskell-juicypixels  haskell-sha  haskell-aeson
                  haskell-aeson-pretty  haskell-base-compat  haskell-base64-bytestring
                  haskell-blaze-html  haskell-blaze-markup  haskell-case-insensitive
                  haskell-cmark-gfm  haskell-data-default  haskell-doctemplates
                  haskell-exceptions  haskell-glob  haskell-haddock-library
                  haskell-skylighting  haskell-hslua  haskell-hslua-module-text
                  haskell-http-client  haskell-syb  haskell-hsyaml  haskell-http-client-tls
                  haskell-http-types  haskell-safe  haskell-split  haskell-texmath
                  haskell-network  haskell-pandoc-types  haskell-random  haskell-tagsoup
                  haskell-temporary  haskell-network-uri  haskell-unicode-transforms
                  haskell-unordered-containers  haskell-zip-archive  haskell-vector
                  haskell-xml  haskell-zlib
Optional Deps   : pandoc-citeproc: for citation rendering with pandoc-citeproc filter
                  pandoc-crossref: for numbering figures, equations, tables and
                  cross-references to them with pandoc-crossref filter
                  texlive-core: for pdf output
Conflicts With  : haskell-pandoc
Replaces        : haskell-pandoc
Download Size   : 4.88 MiB
Installed Size  : 40.44 MiB
Packager        : Felix Yan <felixonmars@archlinux.org>
Build Date      : Thu 15 Nov 2018 01:41:29 AM MSK
Validated By    : MD5 Sum  SHA-256 Sum  Signature
ados ★★★★★ ()

Я и не вспоминал. Не знаю, есть ли у меня в дистрибутиве ghc и что это такое, что такое маны свежего youtube-dl и зачем их получать да ещё дефолтно. Значит, нинужно. Зачем писали то о чём-то нинужном.

Partisan ★★ ()
Ответ на: комментарий от bass

В некоторых дистрибутивах Haskell-либы разбиты на мелкие-мелкие пакеты, коих сотни. В Debian видимо собрали Pandoc в один огромный бинарь, не зависящий от Haskell вообще.

EXL ★★★★★ ()
Последнее исправление: EXL (всего исправлений: 1)
% pkg info youtube_dl-2018.12.03
youtube_dl-2018.12.03
Name           : youtube_dl
Version        : 2018.12.03
Installed on   : Tue Dec  4 18:22:47 2018 MSK
Origin         : www/youtube_dl
Architecture   : FreeBSD:12:*
Prefix         : /usr/local
Categories     : www
Licenses       : UNLICENSE
Maintainer     : araujo@FreeBSD.org
WWW            : https://yt-dl.org/
Comment        : Program for downloading videos from YouTube.com
Options        :
	BASH           : off
	FFMPEG         : on
	FISH           : off
	RTMPDUMP       : off
	ZSH            : off
Annotations    :
Flat size      : 1.66MiB
Description    :
youtube-dl is a small command-line program for downloading videos
from YouTube.com, metacafe.com, google video, photobucket videos,
yahoo videos, dailymotion and others

WWW: https://yt-dl.org/

Где?

% pkg info -x pandoc
pkg: No package(s) matching pandoc
% man youtube-dl
YOUTUBE-DL(1)                                                    YOUTUBE-DL(1)



NAME
       youtube-dl - download videos from youtube.com or other video platforms

SYNOPSIS
       youtube-dl [OPTIONS] URL [URL...]

DESCRIPTION
       youtube-dl is a command-line program to download videos from
       YouTube.com and a few more sites.  It requires the Python interpreter,
       version 2.6, 2.7, or 3.2+, and it is not platform specific.  It should
       work on your Unix box, on Windows or on macOS.  It is released to the
       public domain, which means you can modify it, redistribute it or use it
       however you like.

OPTIONS
       -h, --help
              Print this help text and exit

       --version
              Print program version and exit
...
iZEN ★★★★★ ()
Последнее исправление: iZEN (всего исправлений: 1)

Ух ты, а у youtube-dl есть маны? То, что они теперь тащат хацкер - ну и ладно. Те, кому эти маны нужны, потерпят что 30 Мб на HDD ещё занято. Непонятно только зачем так сделали. Раньше, я так понимаю, нормально было?

Помню как я для эмулятора Android в браузере Google Chrome устанавливал распаковщик APK-файлов. Сам распаковщик занимает 40 Кб, а в зависимостях у него node.js. Аж целый node.js! Который ещё хрен скомпилируешь в старом дистре. Чем-то напомнило...

ZenitharChampion ★★★★★ ()

Ну вот, накостылял вырезание создания и установки манов:

sed -i 's/pandoc/#pandoc/g' Makefile
sed -i 's/install -m 644 youtube-dl.1/#&/' Makefile
sed -i 's/^MARKDOWN/#&/' Makefile
Соответственно, больше не опакечиваются
# %doc README.txt
...
# %{_mandir}/man1/%{name}.1.*

saahriktu ★★★★★ ()
Ответ на: комментарий от ZenitharChampion

Ух ты, а у youtube-dl есть маны? То, что они теперь тащат хацкер - ну и ладно. Те, кому эти маны нужны, потерпят что 30 Мб на HDD ещё занято.

Насколько я помню, хацкель тащит где-то 3 Гб барахла, так что не потерпят.

bread ()
Ответ на: комментарий от saahriktu

Нет, это всё нужно в любом дистрибутиве чтобы опакетить pandoc.

pandoc нинужен. Впрочем, посмотрел, опакечен ли он в Ubuntu:

sudo apt install pandoc
[sudo] password for partisan: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  liblua5.1-0 libluajit-5.1-2 libluajit-5.1-common pandoc-data
Suggested packages:
  texlive-latex-recommended texlive-xetex texlive-luatex pandoc-citeproc texlive-latex-extra context wkhtmltopdf
The following NEW packages will be installed:
  liblua5.1-0 libluajit-5.1-2 libluajit-5.1-common pandoc pandoc-data
0 upgraded, 5 newly installed, 0 to remove and 1 not upgraded.
Need to get 7 103 kB of archives.
After this operation, 53,7 MB of additional disk space will be used.
Do you want to continue? [Y/n] n
Abort.

Есть он, хоть и нинужен.

Partisan ★★ ()

Кстати, проверил, устанваливается ли youtube-dl из хранилища Ubuntu. Установилась версия 2018.03.14 и man к ней. Дополнительно потребовалось 115 МБ.

Не проверял, последняя ли это версия youtube-dl, потому что нинужен. Установил только для проверки, что устанавливается.

Так что обсуждаемой проблемы нет.

Partisan ★★ ()
Ответ на: комментарий от ZenitharChampion

Ух ты, а у youtube-dl есть маны? То, что они теперь тащат хацкер - ну и ладно. Те, кому эти маны нужны, потерпят что 30 Мб на HDD ещё занято. Непонятно только зачем так сделали. Раньше, я так понимаю, нормально было?

Это зависимость времени сборки, забей на наркомана.

t184256 ★★★★★ ()
Ответ на: комментарий от Partisan

Обсуждаемая проблема появилась в версии 2018.12.03. Т.е. в версии от этого понедельника. И да, это проблема сборки в репозитории.

saahriktu ★★★★★ ()
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от t184256

Смысл есть. Не все юзают дистрибутивы в которых есть ghc. И для их репозиториев новый youtube-dl собирать как-то надо. Тема именно про сборку для этих репозиториев, и это видно по первому сообщению. Я там не про установку уже готовых пакетов пишу. А именно про ошибки при опакечивании.

saahriktu ★★★★★ ()
Последнее исправление: saahriktu (всего исправлений: 2)
Ответ на: комментарий от bread
===>>> textproc/hs-pandoc >> (138)

===>>> The following actions will be taken if you choose to proceed:
	Install textproc/hs-pandoc
	Install archivers/hs-zip-archive
	Install archivers/hs-zlib
	Install lang/ghc
	Install devel/hs-mtl
	Install devel/hs-old-time
	Install devel/hs-old-locale
	Install security/hs-digest
	Install converters/hs-aeson
	Install devel/hs-base-compat
	Install devel/hs-dlist
	Install devel/hs-hashable
	Install devel/hs-scientific
	Install devel/hs-vector
	Install devel/hs-primitive
	Install math/hs-integer-logarithms
	Install devel/hs-tagged
	Install devel/hs-transformers-compat
	Install devel/hs-th-abstraction
	Install devel/hs-time-locale-compat
	Install devel/hs-unordered-containers
	Install devel/hs-uuid-types
	Install devel/hs-random
	Install textproc/hs-attoparsec
	Install converters/hs-aeson-pretty
	Install devel/hs-cmdargs
	Install devel/hs-alex
	Install devel/hs-QuickCheck
	Install devel/hs-extensible-exceptions
	Install devel/hs-tf-random
	Install devel/hs-base64-bytestring
	Install devel/hs-data-default
	Install devel/hs-data-default-class
	Install devel/hs-data-default-instances-base
	Install devel/hs-data-default-instances-containers
	Install devel/hs-data-default-instances-dlist
	Install devel/hs-data-default-instances-old-locale
	Install devel/hs-deepseq-generics
	Install devel/hs-filemanip
	Install devel/hs-unix-compat
	Install devel/hs-Glob
	Install devel/hs-haddock-library
	Install devel/hs-happy
	Install devel/hs-hslua
	Install devel/hs-exceptions
	Install devel/hs-hslua-module-text
	Install devel/hs-syb
	Install devel/hs-temporary
	Install graphics/hs-JuicyPixels
	Install net/hs-network
	Install net/hs-network-uri
	Install security/hs-SHA
	Install textproc/hs-blaze-html
	Install devel/hs-blaze-builder
	Install textproc/hs-blaze-markup
	Install textproc/hs-cmark
	Install textproc/hs-cmark-gfm
	Install textproc/hs-doctemplates
	Install textproc/hs-pandoc-types
	Install textproc/hs-skylighting
	Install devel/hs-ansi-terminal
	Install devel/hs-colour
	Install devel/hs-safe
	Install devel/hs-utf8-string
	Install textproc/hs-case-insensitive
	Install textproc/hs-hxt
	Install devel/hs-HUnit
	Install devel/hs-call-stack
	Install textproc/hs-hxt-charproperties
	Install textproc/hs-hxt-regex-xmlschema
	Install textproc/hs-hxt-unicode
	Install textproc/hs-pretty-show
	Install devel/hs-haskell-lexer
	Install textproc/hs-regex-pcre
	Install textproc/hs-regex-base
	Install textproc/hs-regex-pcre-builtin
	Install textproc/hs-skylighting-core
	Install textproc/hs-tagsoup
	Install textproc/hs-texmath
	Install devel/hs-split
	Install textproc/hs-xml
	Install textproc/hs-yaml
	Install devel/hs-conduit
	Install devel/hs-lifted-base
	Install devel/hs-monad-control
	Install devel/hs-transformers-base
	Install devel/hs-mmorph
	Install devel/hs-mono-traversable
	Install devel/hs-dlist-instances
	Install math/hs-semigroups
	Install devel/hs-vector-algorithms
	Install math/hs-mwc-random
	Install math/hs-math-functions
	Install devel/hs-vector-th-unbox
	Install devel/hs-vector-instances
	Install devel/hs-keys
	Install devel/hs-free
	Install devel/hs-bifunctors
	Install devel/hs-base-orphans
	Install math/hs-comonad
	Install math/hs-contravariant
	Install devel/hs-StateVar
	Install devel/hs-void
	Install math/hs-distributive
	Install devel/hs-prelude-extras
	Install devel/hs-profunctors
	Install math/hs-semigroupoids
	Install math/hs-pointed
	Install math/hs-kan-extensions
	Install math/hs-adjunctions
	Install devel/hs-resourcet
	Install devel/hs-unliftio-core
	Install devel/hs-enclosed-exceptions
	Install devel/hs-async
	Install www/hs-HTTP
	Install www/hs-http-client
	Install devel/hs-memory
	Install devel/hs-basement
	Install devel/hs-foundation
	Install devel/hs-streaming-commons
	Install mail/hs-mime-types
	Install www/hs-cookie
	Install www/hs-http-types
	Install www/hs-http-client-tls
	Install net/hs-connection
	Install devel/hs-byteable
	Install net/hs-socks
	Install devel/hs-cereal
	Install security/hs-tls
	Install devel/hs-asn1-encoding
	Install devel/hs-asn1-types
	Install devel/hs-hourglass
	Install security/hs-cryptonite
	Install security/hs-x509
	Install devel/hs-asn1-parse
	Install security/hs-pem
	Install security/hs-x509-store
	Install security/hs-x509-validation
	Install security/hs-x509-system

===>>> Proceed? y/n [y]
iZEN ★★★★★ ()