<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>54889</bug_id>
          
          <creation_ts>2025-06-23 13:39:49 +0300</creation_ts>
          <short_desc>freeswitch: fs_tts: Некорректно определяет наличие аргумента текста для произношения</short_desc>
          <delta_ts>2026-08-16 12:46:46 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>freeswitch-daemon</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugzilla.altlinux.org/show_bug.cgi?id=47335</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Artem Varaksa">varaksaaa</reporter>
          <assigned_to name="Anton Farygin">rider</assigned_to>
          <cc>at</cc>
    
    <cc>cas</cc>
    
    <cc>crux</cc>
    
    <cc>ender</cc>
    
    <cc>lav</cc>
    
    <cc>ldv</cc>
    
    <cc>mike</cc>
    
    <cc>qa_viy</cc>
    
    <cc>rider</cc>
    
    <cc>shaba</cc>
    
    <cc>viy</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>267633</commentid>
    <comment_count>0</comment_count>
    <who name="Artem Varaksa">varaksaaa</who>
    <bug_when>2025-06-23 13:39:49 +0300</bug_when>
    <thetext>Шаги
====

1. # apt-get install -y freeswitch-daemon
2. # fs_tts
3. # echo &quot;1&quot; | fs_tts file.wav 2
4. # echo &quot;1&quot; | fs_tts file.wav 2 extra-arg-so-it-works

Фактический результат
=====================

&gt; # fs_tts
&gt; Usage: fs_tts [options] output [text]
&gt;
&gt; The output must end in the format, e.g., myfile.wav myfile.mp3
&gt; 		 -c path		 Path to the FS configurations.
&gt; 		 -k path		 Path to the FS log directory
&gt; 		 -l module[,module]	 Load additional modules (comma-separated)
&gt; 		 -m path		 Path to the modules.
&gt; 		 -r rate		 sampling rate
&gt; 		 -v			 verbose
&gt; 		 -e			 TTS engine
&gt; 		 -V			 TTS voice

&gt; # echo &quot;1&quot; | fs_tts file.wav 2
&gt; Couldn&apos;t open tts://flite|kal|1

&gt; # echo &quot;1&quot; | fs_tts file.wav 2 extra-arg-so-it-works
&gt; Couldn&apos;t open tts://flite|kal|2


Ожидаемый результат
===================

* Вне зависимости от наличия лишних аргументов всегда выбирается либо stdin, либо аргумент текста.
* Лишние аргументы должны вызывать ошибку.


Воспроизводимость
=================

Воспроизводится на виртуальных машинах:

[sisyphus] ALT Server 11.0 x86_64
freeswitch-daemon-1.10.12-alt4.x86_64

[p11] ALT Server 11.0 x86_64
freeswitch-daemon-1.10.12-alt2.x86_64</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292693</commentid>
    <comment_count>1</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2026-08-16 12:46:46 +0300</bug_when>
    <thetext>freeswitch-1:1.11.2-alt1 -&gt; sisyphus:

Thu Aug 13 2026 Anton Farygin &lt;rider@altlinux&gt; 1:1.11.2-alt1
- 1.11.1 -&gt; 1.11.2
- fs_encode: treat only the part after the last dot as the file
  extension (Closes: 56577)
- fs_encode: only use the output extension as a codec when it names a
  real codec; formats encoded by the file module (wav, flac, ogg, ...)
  now work as output, wav -&gt; wav included (Closes: 47345, 47348)
- fs_encode: do not encode twice when the output extension is claimed by
  mod_sndfile (gsm, ...): the file was gsm-compressed by the codec and
  then again by libsndfile, producing short noise-only files
  (Closes: 47344)
- fs_tts: fixed argument handling: the text argument was ignored unless
  an extra argument followed it, and -i FILE was unreachable so the tool
  hung on stdin instead of reading the file; extra arguments are
  rejected now (Closes: 54889)
- switch_xml: do not abort on assert in switch_xml_open_cfg() when the
  main configuration could not be loaded; fixes fs_tts/fs_encode/
  tone2wav crash under a regular user (Closes: 47334)
- fs_tts: load mod_dptools (tts:// provider) instead of mod_ssml removed
  upstream, and load the module of the selected TTS engine (mod_flite by
  default), so text-to-speech actually works (Closes: 47335)
- mod_imagick: bound the lazy loading thread by the real page count;
  fixes endless re-reading of GIF frames with lazy=1 ending in an OOM
  kill (Closes: 47382)
- mod_xml_rpc: build against the bundled xmlrpc-c as upstream intends
  instead of mixing bundled private headers with the system library;
  fixes the HTTP server failing to start and every /api, /webapi,
  /portal request answered with 404, which broke freeswitch-webui
  (Closes: 47399, 54894)
- added a native systemd unit ordered after network-online.target;
  the unit generated from the SysV script started freeswitch before the
  network was up, so after a reboot sofia bound to the wrong address and
  clients could not connect (Closes: 47333)
- freeswitch-vlc: require vlc-mini: without the VLC core plugins
  libvlc_new() returns NULL and mod_vlc fails with &quot;cannot initialise
  VLC handle&quot; on every call (Closes: 47403)
- freeswitch-lang-he: package mod_say_he.so; the subpackage shipped the
  Hebrew prompts without the module that speaks them
- packaged gentls_cert, the TLS certificate helper for sofia and verto
- dropped mod_say_hu, mod_say_it and mod_say_nl from the build: they
  were built and thrown away, upstream ships no lang data for them
- do not install the switch_eavesdrop unit test into the bin dir, the
  unnamespaced /usr/include/test headers, and the Flash-era htdocs
  leftovers
- run the network-free part of tests/unit at build time (switch_utils,
  switch_hash, switch_event, switch_xml, switch_console); the binaries
  were already being built and thrown away</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>