savonet / liquidsoap

Liquidsoap is a statically typed scripting general-purpose language with dedicated operators and backend for all thing media, streaming, file generation, automation, HTTP backend and more.
http://liquidsoap.info
GNU General Public License v2.0
1.4k stars 128 forks source link

`video.add_text`(with long text) restarts cycle before the end of the text #2679

Open kessenza opened 1 year ago

kessenza commented 1 year ago

@smimram I am sorry to open this issue again. This fix b5b95cf doesn't solve the same issue reported here #2620 as described in the comment here https://github.com/savonet/liquidsoap/commit/b5b95cf2223f13ab61c878730e9ffc2c1111d7db#commitcomment-86059446

smimram commented 1 year ago

Let's continue the discussion here. I don't think that your theory about the dimensions of the text is true (that it returns the dimensions of the video frame). For instance, you can test this with

# A 1k char text
text = string.make(char_code=97, 1000)
# Generate image
t = video.text.native(text)
# Add dimensions
t = video.dimensions(video.crop(t))
# Print width after one second (on startup the text is not yet rendered and the width is reported as 0)
thread.run(delay=1.,{print("width: #{t.width()}")})
# Display the text
output.graphics(t)

This prints 14396 here, which is clearly above the frame dimensions. Do you get a similar result on your side? (It's not entirely impossible that some bug was corrected wrt video handling since last release...)

You should also be able to test by adding something like print("width: #{t.width()}") in the standard library.

If you have a minimal reproduction case along the above lines, I'd be glad to help!

kessenza commented 1 year ago

Well as you know I am not so strong in liquid. So I did a lot of tests before writing. So well yes in all my test print("width: #{t.width()}") this showed 1280 and not the length of the text. I'll put here a PoC and logs later. Thanks for the moment

kessenza commented 1 year ago

Here you are @smimram This is my code and I am attaching ls log. As you can see it always say short text width: 1280 long text width: 1280 Hope it helps Thanks test_ls.log

#!/root/.opam/ocaml/bin/liquidsoap -v
settings.init.allow_root.set(true)
settings.log.file.path.set("/usr/local/iptv/log/test_ls.log")
settings.log.stdout.set(true)
settings.harbor.verbose.set(true)
settings.log.level.set(5)

s = single("/usr/local/iptv/assets/countdown.mp4")
t_short=video.text("my short text")
t_long=video.text("my very very very long text to show it always return video frame sizes and not my the inner text real sizes (as it should do and it would be better if it were)")
t_short = video.dimensions(video.crop(t_short))
t_long = video.dimensions(video.crop(t_long))

log.info("short text width: #{t_short.width()} long text width: #{t_long.width()} ") #print before adding to source (I noticed somethimes some values change a bit)

r = ref(0)
fps = video.frame.rate()
def x()
  r := !r - 100 / fps
  log.info("short text width: #{t_short.width()} long text width: #{t_long.width()} ") #print after source was added and rendered
  !r
end

t_short = video.translate(x=x, y=100, t_short)
t_long = video.translate(x=x, y=500, t_long)

s= add([s,t_short,t_long])

enc= %ffmpeg(format="flv",
 %audio(codec="aac", samplerate=44100, q=5),
%video(codec="libx264",
width=1280, height=720,profile="baseline",tune="zerolatency",
                     b="2500k", g=150, preset="veryfast"))

output.url(fallible=true,url="rtmp://localhost/LiveApp/test",enc,s)
smimram commented 1 year ago

It looks like a bug which has been fixed (I have been updating much video handling lately). I get here

2022/10/10 17:53:19 [lang:4] short text width: 122 long text width: 122 
2022/10/10 17:53:19 [lang:4] short text width: 1403 long text width: 1403 

By any chance, could you try the latest git? (or wait for the next release :()

kessenza commented 1 year ago

I thought to be already on the latest git. Am I not? My opam is pinned to liquidsoap.2.1.2 http https://github.com/savonet/liquidsoap/archive/refs/tags/rolling-release-v2.1.x.zip and log reports this version

2022/10/11 16:59:18 >>> LOG START
2022/10/11 16:59:17 [main:3] Liquidsoap 2.1.3+dev
2022/10/11 16:59:17 [main:3] Using: bytes=[distributed with OCaml 4.02 or above] pcre=7.5.0 sedlex=3.0 menhirLib=20220210 curl=0.9.2 uri=4.2.0 dtools=0.4.4 duppy=0.9.2 cry=0.6.7 mm=0.8.1 mad=0.5.2 dynlink=[distributed with Ocaml] lame=0.3.6 gstreamer=0.3.1 fdkaac=0.3.2 ffmpeg=1.1.6 camomile=1.0.2 tsdl=v0.9.9 tsdl-ttf=0.3.2 tsdl-image=0.3.2 camlimages=4.2.6 camlimages.freetype=5.0.4 gd=1.0a5

I did now opam update and then opam upgrade but the issue still exists.

What should I do to pin liquidsoap to the latest git, different from what already I did? Thanks

smimram commented 1 year ago

Nope, here I have:

$ ./liquidsoap --version
Liquidsoap 2.2.0+git@180d26619           
Copyright (c) 2003-2022 Savonet team
Liquidsoap is open-source software, released under GNU General Public License.
See <http://liquidsoap.info> for more information.

You should do opam pin add . on a checkout of the git in main branch.

kessenza commented 1 year ago

I did

git clone https://github.com/savonet/liquidsoap.git
cd liquidsoap
opam pin add liquidsoap .

But I have

[liquidsoap.2.2.0] synchronised from git+file:///usr/local/liquidsoap#main
liquidsoap is now pinned to git+file:///usr/local/liquidsoap#main (version 2.2.0)

Sorry, no solution found: there seems to be a problem with your request.

[NOTE] Pinning command successful, but your installed packages may be out of sync.

And no Liquidsoap package is installed. Even if I do

opam install liquidsoap
[WARNING] Running as root is not recommended

<><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><>
[liquidsoap.2.2.0] no changes from git+file:///usr/local/liquidsoap#main

Sorry, no solution found: there seems to be a problem with your request.

No solution found, exiting
toots commented 1 year ago

The command should be:

opam pin add .

Notice that the liquidsoap part is gone, this is because there are more than one package to pin now.

kessenza commented 1 year ago

This works better but still problem (sorry to bug you again).

opam pin add .
[WARNING] Running as root is not recommended
This will pin the following packages: liquidsoap, liquidsoap-mode, liquidsoap-libs, liquidsoap-lang. Continue? [Y/n] y
[NOTE] Package liquidsoap is currently pinned to https://github.com/savonet/liquidsoap/archive/refs/tags/rolling-release-v2.1.x.zip (version
       2.1.3).
[liquidsoap.2.1.3] synchronised from git+file:///usr/local/liquidsoap#main
liquidsoap is now pinned to git+file:///usr/local/liquidsoap#main (version 2.2.0)
Package liquidsoap-mode does not exist, create as a NEW package? [Y/n] y
[liquidsoap-mode.~dev] synchronised from git+file:///usr/local/liquidsoap#main
liquidsoap-mode is now pinned to git+file:///usr/local/liquidsoap#main (version 2.2.0)
Package liquidsoap-libs does not exist, create as a NEW package? [Y/n] y
[liquidsoap-libs.~dev] synchronised from git+file:///usr/local/liquidsoap#main
liquidsoap-libs is now pinned to git+file:///usr/local/liquidsoap#main (version 2.2.0)
Package liquidsoap-lang does not exist, create as a NEW package? [Y/n] y
[liquidsoap-lang.~dev] synchronised from git+file:///usr/local/liquidsoap#main
liquidsoap-lang is now pinned to git+file:///usr/local/liquidsoap#main (version 2.2.0)
Sorry, no solution found: there seems to be a problem with your request.

[NOTE] Pinning command successful, but your installed packages may be out of sync.

I have still "Sorry, no solution found: there seems to be a problem with your request." And /root/.opam/ocaml/bin/liquidsoap --version is still previous version If I try

opam install liquidsoap
[WARNING] Running as root is not recommended

<><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><>
[liquidsoap.2.2.0] no changes from git+file:///usr/local/liquidsoap#main

Sorry, no solution found: there seems to be a problem with your request.

No solution found, exiting

And

opam install .
[WARNING] Running as root is not recommended
[liquidsoap.2.2.0] no changes from git+file:///usr/local/liquidsoap#main
[liquidsoap-lang.2.2.0] no changes from git+file:///usr/local/liquidsoap#main
[liquidsoap-libs.2.2.0] no changes from git+file:///usr/local/liquidsoap#main
[liquidsoap-mode.2.2.0] no changes from git+file:///usr/local/liquidsoap#main
Sorry, no solution found: there seems to be a problem with your request.

No solution found, exiting

Opam upgrade not possibile

opam upgrade
[WARNING] Running as root is not recommended
[WARNING] Upgrade is not possible because of conflicts or packages that are no longer available:

You may run "opam upgrade --fixup" to let opam fix the current state.

If --fixup used this is result

opam upgrade --fixup
[WARNING] Running as root is not recommended
The following actions will be performed:
  ⊘ remove liquidsoap 2.1.3
Do you want to continue? [Y/n] n

opam show liquidsoap gives me

opam show liquidsoap
[WARNING] Running as root is not recommended

<><> liquidsoap: information on all versions ><><><><><><><><><><><><><><><><><>
name                   liquidsoap
all-installed-versions 2.0.2-1 [4.10.0]  2.1.3 [ocaml]
all-versions           1.2.0  1.2.1  1.3.0  1.3.1  1.3.2  1.3.3  1.3.3-1  1.3.4  1.3.5  1.3.6  1.3.7  1.4.0  1.4.1  1.4.1-1  1.4.1-2  1.4.2
                       1.4.3  1.4.4  2.0.0~rc1  2.0.0  2.0.1  2.0.2  2.0.2-1  2.0.3  2.0.3-1  2.0.4  2.0.4-1  2.0.4-2  2.0.5  2.0.6  2.0.7
                       2.1.0  2.1.0-1  2.1.1  2.1.2  2.2.0

<><> Version-specific details <><><><><><><><><><><><><><><><><><><><><><><><><>
version      2.2.0
pin          git+file:///usr/local/liquidsoap#main
source-hash  dfacfa72
url.src:     "git+file:///usr/local/liquidsoap#main"
homepage:    "https://github.com/savonet/liquidsoap"
bug-reports: "https://github.com/savonet/liquidsoap/issues"
dev-repo:    "git+https://github.com/savonet/liquidsoap.git"
authors:     "The Savonet Team <savonet-users@lists.sourceforge.net>"
maintainer:  "The Savonet Team <savonet-users@lists.sourceforge.net>"
license:     "GPL-2.0-or-later"
depends:     "dune" {>= "3.2"}
kessenza commented 1 year ago

When you have time, it would be nice to have further info to know how to setup liquidsoap locally based on main git checkout. My tries failed as stated above Thanks

smimram commented 1 year ago

What is the output of opam pin list? I'd say that you have to also pin mm and ffmpeg to the latest versions.

kessenza commented 1 year ago
opam pin list
liquidsoap.2.2.0       (not in sync)  git  git+file:///usr/local/liquidsoap#main (installed:2.1.3)
liquidsoap-lang.2.2.0  (uninstalled)  git  git+file:///usr/local/liquidsoap#main
liquidsoap-libs.2.2.0  (uninstalled)  git  git+file:///usr/local/liquidsoap#main
liquidsoap-mode.2.2.0  (uninstalled)  git  git+file:///usr/local/liquidsoap#main

and opam list show these packages

opam list

angstrom              0.15.0      Parser combinators built for speed and memory-efficiency
base                  v0.15.1     Full standard library replacement for OCaml
base-bigarray         base
base-bytes            base        Bytes library distributed with the OCaml compiler
base-threads          base
base-unix             base
bigarray-compat       1.1.0       Compatibility library to use Stdlib.Bigarray when possible
bigstringaf           0.9.0       Bigstring intrinsics and fast blits based on memcpy/memmove
camlimages            5.0.4-1     Image processing library
camlp-streams         5.0.1       The Stream and Genlex libraries for use with Camlp4 and Camlp5
camomile              1.0.2       A Unicode library
conf-autoconf         0.1         Virtual package relying on autoconf installation
conf-automake         1           Virtual package relying on GNU automake
conf-ffmpeg           1           Virtual package relying on FFmpeg
conf-gd               1           Virtual package relying on a libgd system installation
conf-gstreamer        1           Virtual package relying on libgstreamer
conf-lame             1           Virtual package relying on lame
conf-libcurl          2           Virtual package relying on a libcurl system installation
conf-libffi           2.0.0       Virtual package relying on libffi system installation
conf-libpcre          1           Virtual package relying on a libpcre system installation
conf-mad              1           Virtual package relying on mad
conf-pkg-config       2           Check if pkg-config is installed and create an opam switch local pkgconfig folder
conf-sdl2             1           Virtual package relying on a SDL2 system installation
conf-sdl2-image       1           Virtual package relying on a sdl2-image system installation
conf-sdl2-ttf         1           Virtual package relying on a sdl2-ttf system installation
conf-taglib           1           Virtual package relying on taglib
conf-which            1           Virtual package relying on which
cppo                  1.6.9       Code preprocessor like cpp for OCaml
cry                   0.6.7       OCaml client for the various icecast & shoutcast source protocols
csexp                 1.5.1       Parsing and printing of S-expressions in Canonical form
ctypes                0.20.1      Combinators for binding to C libraries without writing any C
ctypes-foreign        0.18.0      Virtual package for enabling the ctypes.foreign subpackage
dtools                0.4.4       Library providing various helper functions to make daemons
dune                  3.4.1       Fast, portable, and opinionated build system
dune-configurator     3.4.1       Helper library for gathering system configuration
duppy                 0.9.2       Library providing monadic threads
fdkaac                0.3.2       Fraunhofer FDK AAC Codec Library
ffmpeg                1.1.6       Bindings for the ffmpeg libraries
ffmpeg-av             1.1.6       Bindings for the ffmpeg libraries -- top-level helpers
ffmpeg-avcodec        1.1.6       Bindings for the ffmpeg avcodec library
ffmpeg-avdevice       1.1.6       Bindings for the ffmpeg avdevice library
ffmpeg-avfilter       1.1.6       Bindings for the ffmpeg avfilter library
ffmpeg-avutil         1.1.6       Bindings for the ffmpeg avutil libraries
ffmpeg-swresample     1.1.6       Bindings for the ffmpeg swresample library
ffmpeg-swscale        1.1.6       Bindings for the ffmpeg swscale library
gd                    1.0a5       OCaml interface to the GD graphics library.
gen                   1.0         Iterators for OCaml, both restartable and consumable
gstreamer             0.3.1       Bindings for the GStreamer library which provides functions for playning and manipulating multimedia streams
integers              0.7.0       Various signed and unsigned integer types for OCaml
lame                  0.3.6       MP3 encoding library
liquidsoap            2.1.3       pinned to version 2.2.0 at git+file:///usr/local/liquidsoap#main
mad                   0.5.2       Mad decoding library
menhir                20220210    An LR(1) parser generator
menhirLib             20220210    Runtime support library for parsers generated by Menhir
menhirSdk             20220210    Compile-time library for auxiliary tools related to Menhir
mm                    0.8.1       The mm library contains high-level to create and manipulate multimedia streams (audio, video, MIDI)
oasis                 0.4.11      Tooling for building OCaml libraries and applications
ocaml                 4.14.0      The OCaml compiler (virtual package)
ocaml-base-compiler   4.14.0      Official release 4.14.0
ocaml-compiler-libs   v0.12.4     OCaml compiler libraries repackaged
ocaml-config          2           OCaml Switch Configuration
ocaml-options-vanilla 1           Ensure that OCaml is compiled with no special options enabled
ocaml-syntax-shims    1.0.0       Backport new syntax to older OCaml versions
ocamlbuild            0.14.2      OCamlbuild is a build system with builtin rules to easily build most OCaml projects
ocamlfind             1.9.5       A library manager for OCaml
ocamlify              0.0.1       Include files in OCaml code
ocamlmod              0.0.9       Generate OCaml modules from source files
ocurl                 0.9.2       Bindings to libcurl
pcre                  7.5.0       Bindings to the Perl Compatibility Regular Expressions library
ppx_derivers          1.2.1       Shared [@@deriving] plugin registry
ppxlib                0.28.0      Standard library for ppx rewriters
result                1.5         Compatibility Result module
sedlex                3.0         An OCaml lexer generator for Unicode
seq                   base        Compatibility package for OCaml's standard iterator type starting from 4.07.
sexplib0              v0.15.1     Library containing the definition of S-expressions and some base converters
stdio                 v0.15.0     Standard IO library for OCaml
stdlib-shims          0.3.0       Backport some of the new stdlib features to older compiler
stringext             1.6.0       Extra string functions for OCaml
topkg                 1.0.5       The transitory OCaml software packager
tsdl                  0.9.9       Thin bindings to SDL for OCaml
tsdl-image            0.3.2       SDL2_Image bindings to go with Tsdl
tsdl-ttf              0.3.2       SDL2_Ttf bindings to go with Tsdl
uchar                 0.0.2       Compatibility library for OCaml's Uchar module
uri                   4.2.0       An RFC3986 URI/URL parsing library

I'd say that you have to also pin mm and ffmpeg to the latest versions --> how can I do it?

smimram commented 1 year ago

You should clone

and opam pin add . in the resulting repositories

kessenza commented 1 year ago

nope :(

root@iptv:/usr/local# git clone https://github.com/savonet/ocaml-mm
Cloning into 'ocaml-mm'...
remote: Enumerating objects: 7112, done.
remote: Counting objects: 100% (1203/1203), done.
remote: Compressing objects: 100% (516/516), done.
remote: Total 7112 (delta 655), reused 942 (delta 433), pack-reused 5909
Receiving objects: 100% (7112/7112), 1.11 MiB | 5.53 MiB/s, done.
Resolving deltas: 100% (4456/4456), done.
root@iptv:/usr/local# ls
antmedia  bin  etc  games  iptv  lib  liquidsoap  man  nginx  ocaml-mm  sbin  share  src
root@iptv:/usr/local# git clone https://github.com/savonet/ocaml-ffmpeg
Cloning into 'ocaml-ffmpeg'...
remote: Enumerating objects: 6252, done.
remote: Counting objects: 100% (2141/2141), done.
remote: Compressing objects: 100% (581/581), done.
remote: Total 6252 (delta 1270), reused 2057 (delta 1197), pack-reused 4111
Receiving objects: 100% (6252/6252), 1.47 MiB | 7.26 MiB/s, done.
Resolving deltas: 100% (4505/4505), done.
root@iptv:/usr/local# cd ocaml-mm/
root@iptv:/usr/local/ocaml-mm# opam pin add .
[WARNING] Running as root is not recommended
[mm.0.8.1] synchronised from git+file:///usr/local/ocaml-mm#main
mm is now pinned to git+file:///usr/local/ocaml-mm#main (version 0.8.2)
The following actions will be performed:
  ⊘ remove  liquidsoap 2.1.3           [conflicts with mm]
  ↗ upgrade mm         0.8.1 to 0.8.2*
===== ↗ 1   ⊘ 1 =====
Do you want to continue? [Y/n] y

<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
[liquidsoap.2.1.3] downloaded from https://github.com/savonet/liquidsoap/archive/refs/tags/rolling-release-v2.1.x.zip

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
⊘ removed   liquidsoap.2.1.3
⊘ removed   mm.0.8.1
∗ installed mm.0.8.2
Done.
# Run eval $(opam env) to update the current shell environment
root@iptv:/usr/local/ocaml-mm# cd ..
root@iptv:/usr/local# cd ocaml-ffmpeg/
root@iptv:/usr/local/ocaml-ffmpeg# opam pin add .
[WARNING] Running as root is not recommended
This will pin the following packages: ffmpeg, ffmpeg-swscale, ffmpeg-swresample, ffmpeg-avutil, ffmpeg-avfilter, ffmpeg-avdevice,
ffmpeg-avcodec, ffmpeg-av. Continue? [Y/n] y
[ffmpeg.1.1.6] synchronised from git+file:///usr/local/ocaml-ffmpeg#main
ffmpeg is now pinned to git+file:///usr/local/ocaml-ffmpeg#main (version 1.1.6)
[ffmpeg-swscale.1.1.6] synchronised from git+file:///usr/local/ocaml-ffmpeg#main
ffmpeg-swscale is now pinned to git+file:///usr/local/ocaml-ffmpeg#main (version 1.1.6)
[ffmpeg-swresample.1.1.6] synchronised from git+file:///usr/local/ocaml-ffmpeg#main
ffmpeg-swresample is now pinned to git+file:///usr/local/ocaml-ffmpeg#main (version 1.1.6)
[ffmpeg-avutil.1.1.6] synchronised from git+file:///usr/local/ocaml-ffmpeg#main
ffmpeg-avutil is now pinned to git+file:///usr/local/ocaml-ffmpeg#main (version 1.1.6)
[ffmpeg-avfilter.1.1.6] synchronised from git+file:///usr/local/ocaml-ffmpeg#main
ffmpeg-avfilter is now pinned to git+file:///usr/local/ocaml-ffmpeg#main (version 1.1.6)
[ffmpeg-avdevice.1.1.6] synchronised from git+file:///usr/local/ocaml-ffmpeg#main
ffmpeg-avdevice is now pinned to git+file:///usr/local/ocaml-ffmpeg#main (version 1.1.6)
[ffmpeg-avcodec.1.1.6] synchronised from git+file:///usr/local/ocaml-ffmpeg#main
ffmpeg-avcodec is now pinned to git+file:///usr/local/ocaml-ffmpeg#main (version 1.1.6)
[ffmpeg-av.1.1.6] synchronised from git+file:///usr/local/ocaml-ffmpeg#main
ffmpeg-av is now pinned to git+file:///usr/local/ocaml-ffmpeg#main (version 1.1.6)
The following actions will be performed:
  ↻ recompile ffmpeg-avutil     1.1.6*
  ↻ recompile ffmpeg-swscale    1.1.6*
  ↻ recompile ffmpeg-avfilter   1.1.6*
  ↻ recompile ffmpeg-avcodec    1.1.6*
  ↻ recompile ffmpeg-swresample 1.1.6*
  ↻ recompile ffmpeg-av         1.1.6*
  ↻ recompile ffmpeg-avdevice   1.1.6*
  ↻ recompile ffmpeg            1.1.6*
===== ↻ 8 =====
Do you want to continue? [Y/n] y

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
⊘ removed   ffmpeg.1.1.6
⊘ removed   ffmpeg-avdevice.1.1.6
⊘ removed   ffmpeg-av.1.1.6
⊘ removed   ffmpeg-avfilter.1.1.6
⊘ removed   ffmpeg-swresample.1.1.6
⊘ removed   ffmpeg-avcodec.1.1.6
⊘ removed   ffmpeg-swscale.1.1.6
⊘ removed   ffmpeg-avutil.1.1.6
∗ installed ffmpeg-avutil.1.1.6
∗ installed ffmpeg-avfilter.1.1.6
∗ installed ffmpeg-swscale.1.1.6
∗ installed ffmpeg-avcodec.1.1.6
∗ installed ffmpeg-av.1.1.6
∗ installed ffmpeg-swresample.1.1.6
∗ installed ffmpeg-avdevice.1.1.6
∗ installed ffmpeg.1.1.6
Done.
# Run eval $(opam env) to update the current shell environment
root@iptv:/usr/local/ocaml-ffmpeg# cd ..
root@iptv:/usr/local# cd liquidsoap/
root@iptv:/usr/local/liquidsoap# opam pin add .
[WARNING] Running as root is not recommended
This will pin the following packages: liquidsoap, liquidsoap-mode, liquidsoap-libs, liquidsoap-lang. Continue? [Y/n] y
[NOTE] Package liquidsoap is already pinned to git+file:///usr/local/liquidsoap#main (version 2.2.0).
[liquidsoap.2.2.0] no changes from git+file:///usr/local/liquidsoap#main
liquidsoap is now pinned to git+file:///usr/local/liquidsoap#main (version 2.2.0)
[NOTE] Package liquidsoap-mode is already pinned to git+file:///usr/local/liquidsoap#main (version 2.2.0).
[liquidsoap-mode.2.2.0] no changes from git+file:///usr/local/liquidsoap#main
liquidsoap-mode is now pinned to git+file:///usr/local/liquidsoap#main (version 2.2.0)
[NOTE] Package liquidsoap-libs is already pinned to git+file:///usr/local/liquidsoap#main (version 2.2.0).
[liquidsoap-libs.2.2.0] no changes from git+file:///usr/local/liquidsoap#main
liquidsoap-libs is now pinned to git+file:///usr/local/liquidsoap#main (version 2.2.0)
[NOTE] Package liquidsoap-lang is already pinned to git+file:///usr/local/liquidsoap#main (version 2.2.0).
[liquidsoap-lang.2.2.0] no changes from git+file:///usr/local/liquidsoap#main
liquidsoap-lang is now pinned to git+file:///usr/local/liquidsoap#main (version 2.2.0)
Sorry, no solution found: there seems to be a problem with your request.

[NOTE] Pinning command successful, but your installed packages may be out of sync.
root@iptv:/usr/local/liquidsoap# cd ..
root@iptv:/usr/local# /root/.opam/ocaml/bin/liquidsoap --version
-bash: /root/.opam/ocaml/bin/liquidsoap: No such file or directory
root@iptv:/usr/local# liquidsoap
No output defined, nothing to do.
root@iptv:/usr/local# eval $(opam env) 
[WARNING] Running as root is not recommended
root@iptv:/usr/local# liquidsoap
No output defined, nothing to do.
root@iptv:/usr/local# opam install liquidsoap
[WARNING] Running as root is not recommended

<><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><>
[liquidsoap.2.2.0] no changes from git+file:///usr/local/liquidsoap#main

Sorry, no solution found: there seems to be a problem with your request.

No solution found, exiting
root@iptv:/usr/local# /root/.opam/ocaml/bin/liquidsoap --version
-bash: /root/.opam/ocaml/bin/liquidsoap: No such file or directory
smimram commented 1 year ago

By any chance, does opam update improve the situation?

smimram commented 1 year ago

Also what is your current version of ocaml (you can run opam switch to know it)?

kessenza commented 1 year ago
opam switch
[WARNING] Running as root is not recommended
#  switch   compiler                    description
   4.10.0   ocaml-base-compiler.4.10.0  4.10.0
   default  ocaml-system.4.08.1         default
→  ocaml    ocaml-base-compiler.4.14.0  ocaml

opam update -> nothing opam upgrade --> error --> --with-fixup --> nothing opam install liquidsoap (after update and upgrade and/or fixup) --> nothing

sorry. If you have any other ideas I can try otherwise I can wait for next package official release. In the meantime I worked around my script to avoid to use text. width.

So not so urgent if you are busy

smimram commented 1 year ago

Ok that's it! You need to install a more recent version of liquidsoap:

opam switch create 4.14.0
kessenza commented 1 year ago

Not sure as you can see my current switch was already based on 4.14.0 → ocaml ocaml-base-compiler.4.14.0 ocaml

Anyway I tried to opam switch create 4.14.0 and the pin again to mm and ffmpeg and liquidsoap

ffmpeg.1.1.6                            git  git+file:///usr/local/ocaml-ffmpeg#main
ffmpeg-av.1.1.6                         git  git+file:///usr/local/ocaml-ffmpeg#main
ffmpeg-avcodec.1.1.6                    git  git+file:///usr/local/ocaml-ffmpeg#main
ffmpeg-avdevice.1.1.6                   git  git+file:///usr/local/ocaml-ffmpeg#main
ffmpeg-avfilter.1.1.6                   git  git+file:///usr/local/ocaml-ffmpeg#main
ffmpeg-avutil.1.1.6                     git  git+file:///usr/local/ocaml-ffmpeg#main
ffmpeg-swresample.1.1.6                 git  git+file:///usr/local/ocaml-ffmpeg#main
ffmpeg-swscale.1.1.6                    git  git+file:///usr/local/ocaml-ffmpeg#main
liquidsoap.2.2.0         (uninstalled)  git  git+file:///usr/local/liquidsoap#main
liquidsoap-lang.2.2.0    (uninstalled)  git  git+file:///usr/local/liquidsoap#main
liquidsoap-libs.2.2.0    (uninstalled)  git  git+file:///usr/local/liquidsoap#main
liquidsoap-mode.2.2.0    (uninstalled)  git  git+file:///usr/local/liquidsoap#main
mm.0.8.2                                git  git+file:///usr/local/ocaml-mm#main

but no way I always got "Sorry, no solution found: there seems to be a problem with your request." and update/upgrade actions do not solve either