Dne 25. 03. 20 v 17:33 Aleksandra Fedorova napsal(a):
> On Wed, Mar 25, 2020 at 3:10 PM Miro Hrončok <mhron...@redhat.com> wrote:
>> On 25. 03. 20 14:06, Aleksandra Fedorova wrote:
>>>>> By contributing to Fedora Rawhide sources and consuming them as ELN
>>>>> repositories for testing purposes.
>>>> The change proposal literally says "There is no user-facing part in this 
>>>> change.
>>>> No ELN artifacts are going to be shipped to the end-user."
>>>>
>>>> As a contributor, how do I consume the content if I cannot consume the 
>>>> content?
>>>> As I understand it, the "end-user" and "user-facing" terms must have 
>>>> different
>>>> meanings in this context, right? What is this meaning?
>>> Looks like terminology issue. For me user is a person who uses
>>> released Fedora, like Fedora 31 Workstation, on their laptop, or
>>> Fedora 32 IoT edition on their Raspberry Pi, or a minimalistic Fedora
>>> for Fedora server.
>>> Basically anyone who needs Fedora to solve their own problems, which
>>> are not related to development of the distribution.
>>>
>>> Fedora Rawhide is not a user-facing branch in Fedora, because it's
>>> purpose is to develop Fedora, not something else.
>>> Same with ELN. It is not a Fedora Server edition, there is no reason
>>> to ever use it on a server. It is a rebuild of Fedora Rawhide, and
>>> it's purpose is the development of Fedora, and help others to
>>> contribute to that development.
>>>
>>> So it is facing contributors, not users.
>>>
>>> Different types of contributors though.
>> I consider rawhide users our users and I assume many other do consider them 
>> our
>> users as well. I consider upstream projects who run their CI on Fedora our
>> users. You are not incorrect that this is a terminology issue, however I 
>> think
>> this is a different mindset issue. Please do consider rawhide users and 
>> upstream
>> projects our users when designing things.
> You are misinterpreting what I said. And it is a terminology issue.
>
> You somehow assume that if we call people users - we care about them,
> and if we call them contributors, they are _just_ contributors, so we
> don't.
> This is not what I have said, and please don't put such a mindset on me.
>
> The difference between users and contributors is not how you treat
> them, but a level of knowledge about Fedora internals which is
> expected from them.
> Using rawhide on your workstation is possible, but you need to learn
> first what rawhide is and you need to make an educated choice to use
> it.
> Same with ELN.
>
> It does not have impact on Fedora Workstation user experience. My
> grandma, who is Fedora user since Fedora 8, will not see this change
> on her laptop and she doesn't need to be informed about it.
>
>> For example, there is a point to run an ELN on a server - e.g. to run a 
>> buildbot
>> worker on it for some CI tests.
> I think this is not the server Neil meant.
> My point was to highlight that ELN is not a "stable edition" like
> Fedora Server. ELN is Rawhide, its quality is no better than Rawhide
> quality, its stability is Rawhide stability, its target audience is
> Rawhide audience.
>
>>>> I'd rather discuss this here and only come to FPC for approval of new 
>>>> guidelines
>>>> when ready. The FPC members who are likely to discuss this are already
>>>> discussing this here. Why spitting the discussion into two places?
>>> Sorry, my understanding of why we need RelEng and FPC tickets was
>>> completely the opposite. Mailing list discussion about the Change is
>>> generic, and gets side-tracked to one side or the other and digging
>>> through it to get the pieces which are relevant to FPC topic is
>>> harder. While ticket has a fixed topic, discussion associated to it
>>> and the outcome of that discussion. I don't see how you can prevent
>>> people from discussing the topic in the ticket and move it to the
>>> mailing list.
>>>
>>> If you see FPC ticket as a "request to vote" only, why do we need it
>>> then? Can't we just invite FPC representative to vote on a FESCo
>>> ticket?
>> We could, but there are existing workflows based on the committees using 
>> their
>> own ticketing tracker to do the voting.
> Ok.
>
>>>> This is all nice only as long as you prefer conditionals over branching. 
>>>> For a
>>>> Fedora maintainer who doesn't, this is just "unnecessary cruft" in the 
>>>> spec file.
>>> It is not really about personal preferences. These are two different
>>> approaches with different purposes, different results and different
>>> requirements.
>>> There are consequences on choosing one other the other.
>> Yes. That's what I've been saying since the beginning. Choosing %ifs over
>> branches has consequences. Choosing branches over %ifs has consequences. Not
>> being able to choose has consequences.
>>
>>> Branching means forking Fedora Rawhide into something else. Which
>>> eventually will lead to new downstream tree which will ignore the rest
>>> of Fedora and just use the fork instead. It can be done, but I think
>>> it will damage Fedora as a project.
>> Not if we do automation that constantly keeps them in sync. Is that hard? 
>> Most
>> likely. But it doesn't put additional burden to the community maintainers.
> It removes community maintainer from the conversation about what
> downstream is doing. While we want to give community member a voice in
> that conversation.
> It also cuts community maintainer from the help of downstream, as
> downstream will be developing a fork.


I don't understand why the focus on the worst case scenario.


>
>>>>> Yes, there is a risk that it won't work. And we have a very clean
>>>>> contingency plan for it: we shutdown the whole thing.
>>>>> It will be unfortunate, but it is an option.
>>>> What is to stop us saying "stop acting like we can stop doing this now and 
>>>> start
>>>> over at this point" when we realize this is hurting the Fedora community, 
>>>> but we
>>>> need to ship next RHEL? (Sspeaking from experience. Things like this were 
>>>> said.)
>>> I don't understand your question. Nothing ever stops anyone from
>>> saying anything. But it is FESCo and Fedora Council who have the
>>> decision power.
>> Correct. I just want to avoid us repeating the same mistakes over and over
>> again. I am afraid this change has a potential to alienate community
>> contributors and I would like us to consider the problem before we start 
>> doing
>> it and before RHEL is depending on it and before everybody will just repeat 
>> "we
>> cannot change this, because we have this in RHEL already".
>>
>> So can we please not rush this and try to figure things ad hoc, but dedicate
>> some more time to planning things? Especially I'd appreciate if the "how do 
>> we
>> make this work without %if spaghetti everywhere" aspect is considered.
> We can not fully implement it in the planning phase. It is not a
> generic question with generic answer. It needs to be decided on a
> package level. And decision maybe different for each package and for
> each case.
>
> We can come up with guidelines, for example:
>
> 1) Try to find a way to resolve the issue without any conditionals first.
>
> There should be a reason why package X needs a dependency Y in Fedora
> and there should be a reason why it is a required dependency and not a
> recommended one. So why in that case downstream wants it differently?
> The first approach is just to talk through it. I can assume cases
> where downstream adds a dependency, as well as Fedora package removing
> them.
>
> Note that bloated dependency trees is a common problem for all binary
> distributions, it is not an "EL-thing" and we can work on that
> together.
>
> Nicolas has pointed out to another reason why we would get
> EL-conditionals: the outdated rpm stack in RHEL. But we don't have
> this problem with ELN, as we are building Rawhide, and rpm stack is
> going to be the Rawhide rpm stack as well.
>
> 2) Minimize and isolate the conditional, and track the reason.
>
> As ELN SIG we need to have a place where we collect known reasons for
> such conditionals. The overall goal is to reduce this set, not to grow
> indefinitely. As Stephen said we expect it to be about couple of
> hundred packages. We will be able to track each one of them. (We have
> rpminspect to run package diffs for us).
>
> 3) In complex cases - bring it to community and FESCo.
>
> We don't know what those complex cases might be, one of the goals is
> to find them. So we keep it as an option to bring individual case to a
> wider audience. To ask for help and to decide on it.
>

It seems there are missing real life examples of what we sometimes do in
RHEL, so please see attached patch. This patch is coming from RHEL
version of the espeak-ng. Now somebody tell me what it does for what
purpose and which scenario from the above three should be applied here.


Vít

>From 992303ae8e6675529de0baed27826ac684b17611 Mon Sep 17 00:00:00 2001
From: Ondřej Lysoněk <olyso...@redhat.com>
Date: Jul 13 2018 08:52:16 +0000
Subject: Drop dependency on rubygem-ronn


Resolves: rhbz#1588339

---

diff --git a/0001-Use-kramdown-in-man-pages.patch b/0001-Use-kramdown-in-man-pages.patch
new file mode 100644
index 0000000..a1cb2fb
--- /dev/null
+++ b/0001-Use-kramdown-in-man-pages.patch
@@ -0,0 +1,795 @@
+From faab1d055d8c033b5975727a4de7431d548b7db2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ond=C5=99ej=20Lyson=C4=9Bk?= <olyso...@redhat.com>
+Date: Tue, 26 Jun 2018 15:07:43 +0200
+Subject: [PATCH] Use kramdown in man pages
+
+---
+ Makefile.am          |  20 +++----
+ README.md            |   4 +-
+ configure.ac         |   8 ---
+ src/espeak-ng.1.md   | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/espeak-ng.1.ronn | 162 --------------------------------------------------
+ src/speak-ng.1.md    | 159 +++++++++++++++++++++++++++++++++++++++++++++++++
+ src/speak-ng.1.ronn  | 158 -------------------------------------------------
+ 7 files changed, 331 insertions(+), 343 deletions(-)
+ create mode 100644 src/espeak-ng.1.md
+ delete mode 100644 src/espeak-ng.1.ronn
+ create mode 100644 src/speak-ng.1.md
+ delete mode 100644 src/speak-ng.1.ronn
+
+diff --git a/Makefile.am b/Makefile.am
+index 0ae0c326..cf1d833e 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -76,14 +76,14 @@ distclean-local:
+ 
+ ##### custom rules:
+ 
+-SUFFIXES=.html .md .ronn
++SUFFIXES=.html .md
+ 
+ .md.html: _layouts/webpage.html
+-	cat $< | sed -e 's/\.md)/.html)/g' -e 's/\.ronn/.html/g' | \
++	cat $< | sed -e 's/\.md)/.html)/g' | \
+ 		kramdown --template _layouts/webpage.html > $@
+ 
+-.ronn.html:
+-	ronn --html $<
++.md.html:
++	kramdown --template _layouts/webpage.html -i kramdown -o html $< > $@
+ 
+ ##### vim:
+ 
+@@ -101,11 +101,11 @@ EXTRA_DIST += $(vim_addons_syntax_DATA)
+ 
+ ##### documentation:
+ 
+-src/espeak-ng.1: src/espeak-ng.1.ronn
+-	ronn --roff $<
++src/espeak-ng.1: src/espeak-ng.1.md
++	kramdown -i kramdown -o man $< > $@
+ 
+-src/speak-ng.1: src/speak-ng.1.ronn
+-	ronn --roff $<
++src/speak-ng.1: src/speak-ng.1.md
++	kramdown -i kramdown -o man $< > $@
+ 
+ docs:	docs/index.html \
+ 	docs/add_language.html \
+@@ -195,9 +195,7 @@ endif
+ 
+ bin_PROGRAMS += src/speak-ng
+ 
+-if HAVE_RONN
+ man1_MANS += src/speak-ng.1
+-endif
+ 
+ src_speak_ng_LDADD   = src/libespeak-ng.la
+ src_speak_ng_LDFLAGS = -static -lm ${PCAUDIOLIB_LIBS}
+@@ -206,9 +204,7 @@ src_speak_ng_SOURCES = src/speak-ng.c
+ 
+ bin_PROGRAMS += src/espeak-ng
+ 
+-if HAVE_RONN
+ man1_MANS += src/espeak-ng.1
+-endif
+ 
+ src_espeak_ng_LDADD   = src/libespeak-ng.la ${PCAUDIOLIB_LIBS}
+ src_espeak_ng_SOURCES = src/espeak-ng.c
+diff --git a/README.md b/README.md
+index dac80c21..935fe977 100644
+--- a/README.md
++++ b/README.md
+@@ -108,7 +108,6 @@ Optionally, you need:
+     to enable audio output;
+ 3.  the [sonic](https://github.com/espeak-ng/sonic) development library to
+     enable sonic audio speed up support;
+-4.  the `ronn` man-page markdown processor to build the man pages.
+ 
+ To build the documentation, you need:
+ 
+@@ -122,7 +121,6 @@ be installed using the following commands:
+ | autotools     | `sudo apt-get install make autoconf automake libtool pkg-config` |
+ | c99 compiler  | `sudo apt-get install gcc`                                       |
+ | sonic         | `sudo apt-get install libsonic-dev`                              |
+-| ronn          | `sudo apt-get install ruby-ronn`                                 |
+ | kramdown      | `sudo apt-get install ruby-kramdown`                             |
+ 
+ ### Building
+@@ -326,7 +324,7 @@ To enable eSpeak, you need to:
+ The [main documentation](docs/index.md) for eSpeak NG provides more information
+ on using and creating voices/languages for eSpeak NG.
+ 
+-The [espeak-ng](src/espeak-ng.1.ronn) and [speak-ng](src/speak-ng.1.ronn)
++The [espeak-ng](src/espeak-ng.1.md) and [speak-ng](src/speak-ng.1.md)
+ command-line documentation provide a reference of the different command-line
+ options available to these commands with example usage.
+ 
+diff --git a/configure.ac b/configure.ac
+index 33960c24..302f88f4 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -223,14 +223,6 @@ AM_CONDITIONAL(OPT_KLATT,  [test x"$have_klatt"  = xyes])
+ AM_CONDITIONAL(OPT_MBROLA, [test x"$have_mbrola" = xyes])
+ AM_CONDITIONAL(OPT_ASYNC,  [test x"$have_async"  = xyes])
+ 
+-dnl ================================================================
+-dnl ronn checks.
+-dnl ================================================================
+-
+-AC_CHECK_PROG(RONN, ronn, ronn, no)
+-
+-AM_CONDITIONAL(HAVE_RONN, [test ! x"$RONN" = xno])
+-
+ dnl ================================================================
+ dnl Extended dictionary checks.
+ dnl ================================================================
+diff --git a/src/espeak-ng.1.md b/src/espeak-ng.1.md
+new file mode 100644
+index 00000000..89fa2c01
+--- /dev/null
++++ b/src/espeak-ng.1.md
+@@ -0,0 +1,163 @@
++# espeak-ng(1) - A multi-lingual software speech synthesizer.
++{: data-date="July 2018"}
++
++## SYNOPSIS
++
++__espeak-ng__ \[*options*\] \[*words*\]
++
++## DESCRIPTION
++
++__espeak-ng__ is a software speech synthesizer for English, and some other
++languages.
++
++## OPTIONS
++
++`-h`, `--help`
++:   Show summary of options.
++
++`--version`
++:   Prints the espeak library version and the location of the espeak voice
++    data.
++
++`-f <text file>`
++:   Text file to speak.
++
++`--stdin`
++:   Read text input from stdin instead of a file.
++
++If neither `-f` nor `--stdin` are provided, `<words>` are spoken, or if no
++words are provided then text is spoken from stdin a line at a time.
++
++`-d <device>`
++:   Use the specified device to speak the audio on. If not specified, the
++    default audio device is used.
++
++`-q`
++:   Quiet, don't produce any speech (may be useful with `-x`).
++
++`-a <integer>`
++:   Amplitude, 0 to 200, default is 100.
++
++`-g <integer>`
++:   Word gap. Pause between words, units of 10ms at the default speed.
++
++`-k <integer>`
++:   Indicate capital letters with: 1=sound, 2=the word \"capitals\", higher
++    values = a pitch increase (try `-k20`).
++
++`-l <integer>`
++:   Line length. If not zero (which is the default), consider lines less than
++    this length as end-of-clause.
++
++`-p <integer>`
++:   Pitch adjustment, 0 to 99, default is 50.
++
++`-s <integer>`
++:   Speed in words per minute, default is 160.
++
++`-v <voice name>`
++:   Use voice file of this name from espeak-ng-data/voices. A variant can be
++    specified using _voice_+_variant_, such as af+m3.
++
++`-w <wave file name>`
++:   Write output to this WAV file, rather than speaking it directly.
++
++`--split=<minutes>`
++:   Used with `-w` to split the audio output into \<minutes\> recorded
++    chunks.
++
++`-b`
++:   Input text encoding, 1=UTF8, 2=8 bit, 4=16 bit.
++
++`-m`
++:   Indicates that the text contains SSML (Speech Synthesis Markup Language)
++    tags or other XML tags. Those SSML tags which are supported are
++    interpreted. Other tags, including HTML, are ignored, except that some HTML
++    tags such as \<hr\> \<h2\> and \<li\> ensure a break in the speech.
++
++`-x`
++:   Write phoneme mnemonics to stdout.
++
++`-X`
++:   Write phonemes mnemonics and translation trace to stdout. If rules files
++    have been built with `--compile=debug`, line numbers will also be displayed.
++
++`-z`
++:   No final sentence pause at the end of the text.
++
++`--stdout`
++:   Write speech output to stdout.
++
++`--compile=voicename`
++:   Compile the pronunciation rules and dictionary in the current directory.
++    =\<voicename\> is optional and specifies which language is compiled.
++
++`--compile-debug=voicename`
++:   Compile the pronunciation rules and dictionary in the current directory as
++    above, but include line numbers, that get shown when `-X` is used.
++
++`--ipa`
++:   Write phonemes to stdout using International Phonetic Alphabet. `--ipa=1`
++    Use ties, `--ipa=2` Use ZWJ, `--ipa=3` Separate with _.
++
++`--tie=<character>`
++:   The character to use to join multi-letter phonemes in `-x` and `--ipa`
++    output.
++
++`--path=<path>`
++:   Specifies the directory containing the espeak-ng-data directory.
++
++`--pho`
++:   Write mbrola phoneme data (.pho) to stdout or to the file in `--phonout`.
++
++`--phonout=<filename>`
++:   Write output from `-x` `-X` commands and mbrola phoneme data to this file.
++
++`--punct="<characters>"`
++:   Speak the names of punctuation characters during speaking. If
++    =\<characters\> is omitted, all punctuation is spoken.
++
++`--sep=<character>`
++:   The character to separate phonemes from the `-x` and `--ipa` output.
++
++`--voices[=<language code>]`
++:   Lists the available voices. If =\<language code\> is present then only
++    those voices which are suitable for that language are listed.
++
++`--voices=<directory>`
++:   Lists the voices in the specified subdirectory.
++
++## EXAMPLES
++
++`espeak-ng "This is a test"`
++:   Speak the sentence \"This is a test\" using the default English voice.
++
++`espeak-ng -f hello.txt`
++:   Speak the contents of hello.txt using the default English voice.
++
++`cat hello.txt | espeak-ng`
++:   Speak the contents of hello.txt using the default English voice.
++
++`espeak-ng -x hello`
++:   Speak the word \"hello\" using the default English voice, and print the
++    phonemes that were spoken.
++
++`espeak-ng -ven-us "[[h@'loU]]"`
++:   Speak the phonemes \"h@'loU\" using the American English voice.
++
++`espeak-ng --voices`
++:   List all voices supported by eSpeak.
++
++`espeak-ng --voices=en`
++:   List all voices that speak English (`en`).
++
++`espeak-ng --voices=mb`
++:   List all voices using the MBROLA voice synthesizer.
++
++## AUTHOR
++
++eSpeak NG is maintained by Reece H. Dunn <mscl...@gmail.com>. It is based on
++eSpeak by Jonathan Duddington <jo...@jsd.clara.co.uk>.
++
++This manual page is based on the eSpeak page written by Luke Yelavich
++<them...@ubuntu.com> for the Ubuntu project.
+diff --git a/src/espeak-ng.1.ronn b/src/espeak-ng.1.ronn
+deleted file mode 100644
+index 4fcd5e87..00000000
+--- a/src/espeak-ng.1.ronn
++++ /dev/null
+@@ -1,162 +0,0 @@
+-# espeak-ng - A multi-lingual software speech synthesizer.
+-
+-## SYNOPSIS
+-
+-__espeak-ng__ [<options>] [<words>]
+-
+-## DESCRIPTION
+-
+-__espeak-ng__ is a software speech synthesizer for English, and some other
+-languages.
+-
+-## OPTIONS
+-
+-  * `-h`, `--help`:
+-    Show summary of options.
+-
+-  * `--version`:
+-    Prints the espeak library version and the location of the espeak voice
+-    data.
+-
+-  * `-f <text file>`:
+-    Text file to speak.
+-
+-  * `--stdin`:
+-    Read text input from stdin instead of a file.
+-
+-If neither -f nor --stdin are provided, &lt;words&gt; are spoken, or if no
+-words are provided then text is spoken from stdin a line at a time.
+-
+-  * `-d <device>`:
+-    Use the specified device to speak the audio on. If not specified, the
+-    default audio device is used.
+-
+-  * `-q`:
+-    Quiet, don't produce any speech (may be useful with -x).
+-
+-  * `-a <integer>`:
+-    Amplitude, 0 to 200, default is 100.
+-
+-  * `-g <integer>`:
+-    Word gap. Pause between words, units of 10ms at the default speed.
+-
+-  * `-k <integer>`:
+-    Indicate capital letters with: 1=sound, 2=the word "capitals", higher
+-    values = a pitch increase (try -k20).
+-
+-  * `-l <integer>`:
+-    Line length. If not zero (which is the default), consider lines less than
+-    this length as end-of-clause.
+-
+-  * `-p <integer>`:
+-    Pitch adjustment, 0 to 99, default is 50.
+-
+-  * `-s <integer>`:
+-    Speed in words per minute, default is 160.
+-
+-  * `-v <voice name>`:
+-    Use voice file of this name from espeak-ng-data/voices. A variant can be
+-    specified using <voice>+<variant>, such as af+m3.
+-
+-  * `-w <wave file name>`:
+-    Write output to this WAV file, rather than speaking it directly.
+-
+-  * `--split=<minutes>`:
+-    Used with `-w` to split the audio output into &lt;minutes&gt; recorded
+-    chunks.
+-
+-  * `-b`:
+-    Input text encoding, 1=UTF8, 2=8 bit, 4=16 bit.
+-
+-  * `-m`:
+-    Indicates that the text contains SSML (Speech Synthesis Markup Language)
+-    tags or other XML tags. Those SSML tags which are supported are
+-    interpreted. Other tags, including HTML, are ignored, except that some HTML
+-    tags such as &lt;hr&gt; &lt;h2&gt; and &lt;li&gt; ensure a break in the
+-    speech.
+-
+-  * `-x`:
+-    Write phoneme mnemonics to stdout.
+-
+-  * `-X`:
+-    Write phonemes mnemonics and translation trace to stdout. If rules files
+-    have been built with --compile=debug, line numbers will also be displayed.
+-
+-  * `-z`:
+-    No final sentence pause at the end of the text.
+-
+-  * `--stdout`:
+-    Write speech output to stdout.
+-
+-  * `--compile=voicename`:
+-    Compile the pronunciation rules and dictionary in the current directory.
+-    =&lt;voicename&lt; is optional and specifies which language is compiled.
+-
+-  * `--compile-debug=voicename`:
+-    Compile the pronunciation rules and dictionary in the current directory as
+-    above, but include line numbers, that get shown when -X is used.
+-
+-  * `--ipa`:
+-    Write phonemes to stdout using International Phonetic Alphabet. --ipa=1 Use
+-    ties, --ipa=2 Use ZWJ, --ipa=3 Separate with _.
+-
+-  * `--tie=<character>`:
+-    The character to use to join multi-letter phonemes in -x and --ipa output.
+-
+-  * `--path=<path>`:
+-    Specifies the directory containing the espeak-ng-data directory.
+-
+-  * `--pho`:
+-    Write mbrola phoneme data (.pho) to stdout or to the file in --phonout.
+-
+-  * `--phonout=<filename>`:
+-    Write output from -x -X commands and mbrola phoneme data to this file.
+-
+-  * `--punct="<characters>"`:
+-    Speak the names of punctuation characters during speaking. If
+-    =&lt;characters&gt; is omitted, all punctuation is spoken.
+-
+-  * `--sep=<character>`:
+-    The character to separate phonemes from the -x and --ipa output.
+-
+-  * `--voices[=<language code>]`:
+-    Lists the available voices. If =&lt;language code&gt; is present then only
+-    those voices which are suitable for that language are listed.
+-
+-  * `--voices=<directory>`:
+-    Lists the voices in the specified subdirectory.
+-
+-## EXAMPLES
+-
+-  * `espeak-ng "This is a test"`:
+-    Speak the sentence "This is a test" using the default English voice.
+-
+-  * `espeak-ng -f hello.txt`:
+-    Speak the contents of hello.txt using the default English voice.
+-
+-  * `cat hello.txt | espeak-ng`:
+-    Speak the contents of hello.txt using the default English voice.
+-
+-  * `espeak-ng -x hello`:
+-    Speak the word "hello" using the default English voice, and print the
+-    phonemes that were spoken.
+-
+-  * `espeak-ng -ven-us "[[h@'loU]]"`:
+-    Speak the phonemes "h@'loU" using the American English voice.
+-
+-  * `espeak-ng --voices`:
+-    List all voices supported by eSpeak.
+-
+-  * `espeak-ng --voices=en`:
+-    List all voices that speak English (`en`).
+-
+-  * `espeak-ng --voices=mb`:
+-    List all voices using the MBROLA voice synthesizer.
+-
+-## AUTHOR
+-
+-eSpeak NG is maintained by Reece H. Dunn <mscl...@gmail.com>. It is based on
+-eSpeak by Jonathan Duddington <jo...@jsd.clara.co.uk>.
+-
+-This manual page is based on the eSpeak page written by Luke Yelavich
+-<them...@ubuntu.com> for the Ubuntu project.
+diff --git a/src/speak-ng.1.md b/src/speak-ng.1.md
+new file mode 100644
+index 00000000..b05b9ad4
+--- /dev/null
++++ b/src/speak-ng.1.md
+@@ -0,0 +1,159 @@
++# speak-ng(1) - A multi-lingual software speech synthesizer.
++{: data-date="July 2018"}
++
++## SYNOPSIS
++
++__speak-ng__ \[*options*\] \[*words*\]
++
++## DESCRIPTION
++
++__speak-ng__ is a software speech synthesizer for English, and some other
++languages.
++
++## OPTIONS
++
++`-h`, `--help`
++:   Show summary of options.
++
++`--version`
++:   Prints the espeak library version and the location of the espeak voice
++    data.
++
++`-f <text file>`
++:   Text file to speak.
++
++`--stdin`
++:   Read text input from stdin instead of a file.
++
++If neither `-f` nor `--stdin` are provided, `<words>` are spoken, or if no
++words are provided then text is spoken from stdin a line at a time.
++
++`-q`
++:   Quiet, don't produce any speech (may be useful with `-x`).
++
++`-a <integer>`
++:   Amplitude, 0 to 200, default is 100.
++
++`-g <integer>`
++:   Word gap. Pause between words, units of 10ms at the default speed.
++
++`-k <integer>`
++:   Indicate capital letters with: 1=sound, 2=the word \"capitals\", higher
++    values = a pitch increase (try `-k20`).
++
++`-l <integer>`
++:   Line length. If not zero (which is the default), consider lines less than
++    this length as end-of-clause.
++
++`-p <integer>`
++:   Pitch adjustment, 0 to 99, default is 50.
++
++`-s <integer>`
++:   Speed in words per minute, default is 160.
++
++`-v <voice name>`
++:   Use voice file of this name from espeak-ng-data/voices. A variant can be
++    specified using _voice_+_variant_, such as af+m3.
++
++`-w <wave file name>`
++:   Write output to this WAV file, rather than speaking it directly.
++
++`--split=<minutes>`
++:   Used with `-w` to split the audio output into \<minutes\> recorded
++    chunks.
++
++`-b`
++:   Input text encoding, 1=UTF8, 2=8 bit, 4=16 bit.
++
++`-m`
++:   Indicates that the text contains SSML (Speech Synthesis Markup Language)
++    tags or other XML tags. Those SSML tags which are supported are
++    interpreted. Other tags, including HTML, are ignored, except that some HTML
++    tags such as \<hr\> \<h2\> and \<li\> ensure a break in the speech.
++
++`-x`
++:   Write phoneme mnemonics to stdout.
++
++`-X`
++:   Write phonemes mnemonics and translation trace to stdout. If rules files
++    have been built with `--compile=debug`, line numbers will also be displayed.
++
++`-z`
++:   No final sentence pause at the end of the text.
++
++`--stdout`
++:   Write speech output to stdout.
++
++`--compile=voicename`
++:   Compile the pronunciation rules and dictionary in the current directory.
++    =\<voicename\> is optional and specifies which language is compiled.
++
++`--compile-debug=voicename`
++:   Compile the pronunciation rules and dictionary in the current directory as
++    above, but include line numbers, that get shown when `-X` is used.
++
++`--ipa`
++:   Write phonemes to stdout using International Phonetic Alphabet. `--ipa=1`
++    Use ties, `--ipa=2` Use ZWJ, `--ipa=3` Separate with _.
++
++`--tie=<character>`
++:   The character to use to join multi-letter phonemes in `-x` and `--ipa`
++    output.
++
++`--path=<path>`
++:   Specifies the directory containing the espeak-ng-data directory.
++
++`--pho`
++:   Write mbrola phoneme data (.pho) to stdout or to the file in `--phonout`.
++
++`--phonout=<filename>`
++:   Write output from `-x` `-X` commands and mbrola phoneme data to this file.
++
++`--punct="<characters>"`
++:   Speak the names of punctuation characters during speaking. If
++    =\<characters\> is omitted, all punctuation is spoken.
++
++`--sep=<character>`
++:   The character to separate phonemes from the `-x` and `--ipa` output.
++
++`--voices[=<language code>]`
++:   Lists the available voices. If =\<language code\> is present then only
++    those voices which are suitable for that language are listed.
++
++`--voices=<directory>`
++:   Lists the voices in the specified subdirectory.
++
++## EXAMPLES
++
++`speak-ng "This is a test"`
++:   Speak the sentence \"This is a test\" using the default English voice.
++
++`speak-ng -f hello.txt`
++:   Speak the contents of hello.txt using the default English voice.
++
++`cat hello.txt | speak-ng`
++:   Speak the contents of hello.txt using the default English voice.
++
++`speak-ng -x hello`
++:   Speak the word \"hello\" using the default English voice, and print the
++    phonemes that were spoken.
++
++`speak-ng -ven-us "[[h@'loU]]"`
++:   Speak the phonemes \"h@'loU\" using the American English voice.
++
++`speak-ng --voices`
++:   List all voices supported by eSpeak.
++
++`speak-ng --voices=en`
++:   List all voices that speak English (`en`).
++
++`speak-ng --voices=mb`
++:   List all voices using the MBROLA voice synthesizer.
++
++## AUTHOR
++
++eSpeak NG is maintained by Reece H. Dunn <mscl...@gmail.com>. It is based on
++eSpeak by Jonathan Duddington <jo...@jsd.clara.co.uk>.
++
++This manual page is based on the eSpeak page written by Luke Yelavich
++<them...@ubuntu.com> for the Ubuntu project.
+diff --git a/src/speak-ng.1.ronn b/src/speak-ng.1.ronn
+deleted file mode 100644
+index 25c607f2..00000000
+--- a/src/speak-ng.1.ronn
++++ /dev/null
+@@ -1,158 +0,0 @@
+-# speak-ng - A multi-lingual software speech synthesizer.
+-
+-## SYNOPSIS
+-
+-__speak-ng__ [<options>] [<&lt;words&gt;>]
+-
+-## DESCRIPTION
+-
+-__speak-ng__ is a software speech synthesizer for English, and some other
+-languages.
+-
+-## OPTIONS
+-
+-  * `-h`, `--help`:
+-    Show summary of options.
+-
+-  * `--version`:
+-    Prints the espeak library version and the location of the espeak voice
+-    data.
+-
+-  * `-f <text file>`:
+-    Text file to speak.
+-
+-  * `--stdin`:
+-    Read text input from stdin instead of a file.
+-
+-If neither -f nor --stdin are provided, &lt;words&gt; are spoken, or if no
+-words are provided then text is spoken from stdin a line at a time.
+-
+-  * `-q`:
+-    Quiet, don't produce any speech (may be useful with -x).
+-
+-  * `-a <integer>`:
+-    Amplitude, 0 to 200, default is 100.
+-
+-  * `-g <integer>`:
+-    Word gap. Pause between words, units of 10ms at the default speed.
+-
+-  * `-k <integer>`:
+-    Indicate capital letters with: 1=sound, 2=the word "capitals", higher
+-    values = a pitch increase (try -k20).
+-
+-  * `-l <integer>`:
+-    Line length. If not zero (which is the default), consider lines less than
+-    this length as end-of-clause.
+-
+-  * `-p <integer>`:
+-    Pitch adjustment, 0 to 99, default is 50.
+-
+-  * `-s <integer>`:
+-    Speed in words per minute, default is 160.
+-
+-  * `-v <voice name>`:
+-    Use voice file of this name from espeak-ng-data/voices. A variant can be
+-    specified using <voice>+<variant>, such as af+m3.
+-
+-  * `-w <wave file name>`:
+-    Write output to this WAV file, rather than speaking it directly.
+-
+-  * `--split=<minutes>`:
+-    Used with `-w` to split the audio output into &lt;minutes&gt; recorded
+-    chunks.
+-
+-  * `-b`:
+-    Input text encoding, 1=UTF8, 2=8 bit, 4=16 bit.
+-
+-  * `-m`:
+-    Indicates that the text contains SSML (Speech Synthesis Markup Language)
+-    tags or other XML tags. Those SSML tags which are supported are
+-    interpreted. Other tags, including HTML, are ignored, except that some HTML
+-    tags such as &lt;hr&gt; &lt;h2&gt; and &lt;li&gt; ensure a break in the
+-    speech.
+-
+-  * `-x`:
+-    Write phoneme mnemonics to stdout.
+-
+-  * `-X`:
+-    Write phonemes mnemonics and translation trace to stdout. If rules files
+-    have been built with --compile=debug, line numbers will also be displayed.
+-
+-  * `-z`:
+-    No final sentence pause at the end of the text.
+-
+-  * `--stdout`:
+-    Write speech output to stdout.
+-
+-  * `--compile=voicename`:
+-    Compile the pronunciation rules and dictionary in the current directory.
+-    =&lt;voicename&lt; is optional and specifies which language is compiled.
+-
+-  * `--compile-debug=voicename`:
+-    Compile the pronunciation rules and dictionary in the current directory as
+-    above, but include line numbers, that get shown when -X is used.
+-
+-  * `--ipa`:
+-    Write phonemes to stdout using International Phonetic Alphabet. --ipa=1 Use
+-    ties, --ipa=2 Use ZWJ, --ipa=3 Separate with _.
+-
+-  * `--tie=<character>`:
+-    The character to use to join multi-letter phonemes in -x and --ipa output.
+-
+-  * `--path=<path>`:
+-    Specifies the directory containing the espeak-ng-data directory.
+-
+-  * `--pho`:
+-    Write mbrola phoneme data (.pho) to stdout or to the file in --phonout.
+-
+-  * `--phonout=<filename>`:
+-    Write output from -x -X commands and mbrola phoneme data to this file.
+-
+-  * `--punct="<characters>"`:
+-    Speak the names of punctuation characters during speaking. If
+-    =&lt;characters&gt; is omitted, all punctuation is spoken.
+-
+-  * `--sep=<character>`:
+-    The character to separate phonemes from the -x and --ipa output.
+-
+-  * `--voices[=<language code>]`:
+-    Lists the available voices. If =&lt;language code&gt; is present then only
+-    those voices which are suitable for that language are listed.
+-
+-  * `--voices=<directory>`:
+-    Lists the voices in the specified subdirectory.
+-
+-## EXAMPLES
+-
+-  * `speak-ng "This is a test"`:
+-    Speak the sentence "This is a test" using the default English voice.
+-
+-  * `speak-ng -f hello.txt`:
+-    Speak the contents of hello.txt using the default English voice.
+-
+-  * `cat hello.txt | speak-ng`:
+-    Speak the contents of hello.txt using the default English voice.
+-
+-  * `speak-ng -x hello`:
+-    Speak the word "hello" using the default English voice, and print the
+-    phonemes that were spoken.
+-
+-  * `speak-ng -ven-us "[[h@'loU]]"`:
+-    Speak the phonemes "h@'loU" using the American English voice.
+-
+-  * `speak-ng --voices`:
+-    List all voices supported by eSpeak.
+-
+-  * `speak-ng --voices=en`:
+-    List all voices that speak English (`en`).
+-
+-  * `speak-ng --voices=mb`:
+-    List all voices using the MBROLA voice synthesizer.
+-
+-## AUTHOR
+-
+-eSpeak NG is maintained by Reece H. Dunn <mscl...@gmail.com>. It is based on
+-eSpeak by Jonathan Duddington <jo...@jsd.clara.co.uk>.
+-
+-This manual page is based on the eSpeak page written by Luke Yelavich
+-<them...@ubuntu.com> for the Ubuntu project.
+-- 
+2.14.4
+
diff --git a/espeak-ng.spec b/espeak-ng.spec
index 3099262..b9f6125 100644
--- a/espeak-ng.spec
+++ b/espeak-ng.spec
@@ -1,6 +1,6 @@
 Name:           espeak-ng
 Version:        1.49.2
-Release:        2%{?dist}
+Release:        3%{?dist}
 Summary:        eSpeak NG Text-to-Speech
 
 License:        GPLv3+
@@ -8,9 +8,20 @@ URL:            https://github.com/espeak-ng/espeak-ng
 Source0:        %{url}/archive/%{version}.tar.gz
 
 BuildRequires:  gcc make autoconf automake libtool pkgconfig
-BuildRequires:  rubygem-ronn rubygem-kramdown
+BuildRequires:  rubygem-kramdown
 BuildRequires:  pcaudiolib-devel
 
+# Downstream-only so far. I tried two different formats for the man pages,
+# but both seem unsuitable for upstream at this point, because they would
+# be problematic on Debian, which seems to be the primary development
+# platform of espeak-ng. The two formats are:
+# 1. kramdown - used in the below patch. The problem is that Debian has
+#    an old version of the kramdown tool, which does not support generating
+#    man pages
+# 2. asciidoc - the asciidoc tool on Debian pulls in ~1GB of dependencies,
+#    which is unacceptable
+Patch0: 0001-Use-kramdown-in-man-pages.patch
+
 %description
 The eSpeak NG (Next Generation) Text-to-Speech program is an open source speech
 synthesizer that supports over 70 languages. It is based on the eSpeak engine
@@ -42,7 +53,7 @@ Requires: %{name} = %{version}-%{release}
 Documentation for eSpeak NG, a software speech synthesizer.
 
 %prep
-%autosetup
+%autosetup -p1
 
 %build
 ./autogen.sh
@@ -100,6 +111,10 @@ ESPEAK_DATA_PATH=`pwd` LD_LIBRARY_PATH=src:${LD_LIBRARY_PATH} src/espeak-ng ...
 %doc docs/*.html
 
 %changelog
+* Fri Jul 13 2018 Ondřej Lysoněk <olyso...@redhat.com> - 1.49.2-3
+- Drop dependency on rubygem-ronn
+- Resolves: rhbz#1588339
+
 * Wed Feb 07 2018 Fedora Release Engineering <rel...@fedoraproject.org> - 1.49.2-2
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
 

_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org

Reply via email to