[Slackbuilds-users] slackrepo fails to build youtube-dl due to URL encoding
Jeremy Hansen
jebrhansen+SBo at gmail.com
Fri Jun 23 23:40:48 UTC 2023
On Fri, Jun 23, 2023, 8:22 AM Erich Ritz via SlackBuilds-users <
slackbuilds-users at slackbuilds.org> wrote:
> Hello Dimitris and Andrew and list,
>
> I don't know if this message is more appropriate for the slackrepo
> maintainer or the youtube-dl maintainer.
>
> When trying to build youtube-dl with slackrepo it fails with:
>
> Building network/youtube-dl (update for version
> 2021.12.17+20230618_07af47960) 2023-06-23 14:25:18
> Removing old source files ...
> Downloading source files ...
> Verifying source files ...
> Running youtube-dl.SlackBuild ... ETA
> 14:26:??
> env MAKEFLAGS='-j176 -l89' nice -n 5 bash ./youtube-dl.SlackBuild
> tar:
> /tmp/slackrepo/etr/slackrepo.MOV0A0/slackbuild_youtube-dl/youtube-dl-2021.12.17+20230618_07af47960.tar.xz:
> Cannot open: No such file or directory
> tar: Error is not recoverable: exiting now
> network/youtube-dl: youtube-dl.SlackBuild failed (status 2)
> 14:25:20
> Unmounting chroot ...
> :-( network/youtube-dl FAILED )-:
>
> slackrepo downloads the source file, but it is saved with a "%2B" instead
> of "+" in the filename. This is due to curl not doing URL decoding. Note
> these (partial) excerpts from curl's man page:
>
> -J, --remote-header-name
> There's no attempt to decode %-sequences (yet) in the
> provided file name,
> so this option may provide you with rather unexpected file
> names.
> -O, --remote-name
> There is no URL decoding done on the file name. If it has
> %20 or other
> URL encoded parts of the name, they will end up as-is as
> file name.
>
> But I can see why slackrepo chooses to use curl instead of wget for
> sourceforge (as pointed out by a comment in srcfunctions.sh of slackrepo):
>
> $ wget --content-disposition
> https://downloads.sourceforge.net/project/dslackw/src/youtube-dl-2021.12.17%2B20230618_07af47960.tar.xz
> 2023-06-23
> <https://downloads.sourceforge.net/project/dslackw/src/youtube-dl-2021.12.17%2B20230618_07af47960.tar.xz2023-06-23>
> 10:14:19 (1.09 MB/s) -
> ‘youtube-dl-2021.12.17+20230618_07af47960.tar.xz?viasf=1’ saved
> [1172376/1172376]
>
> sourceforge "helpfully" tacks on "?viasf=1" to the filename.
>
> What's the best way forward? If I remember correctly SBo policy allows
> for (if not encourages) the use of the "--content-disposition" flag for
> wget and similarly the "-J" flag for curl. However, these break the
> filename in this case. Should slackrepo do its own URL decoding when using
> curl? Should slackrepo use wget for sourceforge and rename the files
> (stripping off "?viasf=1")? Should SBo discourage URL encoding in
> filenames?
>
> Erich
Have you tried the download_basename pragma in your hintfile?
download_basename — provide a symlink for source downloads using the URL's
basename, for the benefit of SlackBuilds that don't expect
content-disposition to be respected.
Jeremy
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.slackbuilds.org/pipermail/slackbuilds-users/attachments/20230623/74f5b47f/attachment-0001.htm>
More information about the SlackBuilds-users
mailing list