JetForce vs. Molly Brown Server: CGI-variable SCRIPT_NAME is not present

Omar Polo op at omarpolo.com
Tue Apr 13 18:07:58 BST 2021


Frank Jüdes <Frank.Juedes at linux4specialists.com> writes:

> Hi Omar,
>
> For GLV-1.12556 i would have to install lua, a language with which i
> am not comfortable at all. Also my Linux Distro doesn't include the
> LibreSSL… yes i know you can always configure, make and  make install,
> but just want to install a gemini-server and not make a phd.

I can sympathise with this.  I haven't really even tried to run
GLV-1.12556 because of the steps needed to run it!  I have only talked
with Sean some time ago, he pointed out some issues with the CGI
implementation in gmid, and so I took a look at how GLV implements them.

> GMID i actually had considered because it is written C meaning it is
> /fast/!  But i wasn't sure about the CGI capabilities, like which
> environment variables are available for CGI programs. If you can help
> me out here i will definitely consider gmid for both the production
> and my development box and gladly provide you with feedback.

gmid at the moment shares the same problem of GLV-1.12556: it has
LibreSSL as dependency (which I don't regret by the way, it has such a
clean API it's almost a joy to use: compare the code in server.c to the
OpenSSL-specific bits in utils.c!)

[ I've started to develop a library to write Gemini clients and server
  that, among other things, has an abstraction over the specific TLS
  library: this helps for testing and should help with portability
  across different systems I hope. ]

The details of the CGI variable available are documented in the manpage,
under the CGI section, but there is also a test page I'm serving at:

	gemini://gemini.omarpolo.com/cgi/env/

I should probably link it in the README.  Note: that demo page it's
lacking TLS_VERSION, TLS_CIPHER and TLS_CIPHER_STRENGTH that I committed
early this morning.

There is also a similar page for GLV-1.12556:

	gemini://gemini.conman.org/cgi

[ actually, my page is inspired from the GLV-1.12556 one, not the other
  way around of course! ]

> As for the name GGI: For writing CGI programs /perl/ has been my
> favorite language since eons - no discussions about
> programming-languages necessary, you cannot master them all and over
> the years you develop your favorites - so in perl there is the
> "gold-standard" package for CGI programs with the name /CGI.pm/
> therefore i could not use the same name for my package. So i named it
> /GGI.pm/ no evil intend, no re-inventing the wheel, sheer necessity
> for a good and short name.

I think I misunderstood your last mail then, apologies.

Anyway, talking about timing, earlier I was re-writing my `man' CGI
script from rc to Perl!  (I'm not familiar at all with the language, but
I'm slowly learning.)  If/when your module will be ready, I would like
to play with it.  I have a couple of CGI scripts written in different
languages, and I'm slowly re-writing the ones in shell/rc to perl.

> On 2021-04-13 11:18, Omar Polo wrote:
>> Frank Jüdes <Frank.Juedes at linux4specialists.com> writes:
>>
>>> Hi Stephane,
>>>
>>> Thank you very much for the update. That leaves me with three options now:
>>>
>>> 1. Try again to install Pythron 3.7+ on my stubborn development machine
>>>     (Oracle Lunix 7…)
>>> 2. Learn go really quickly and fork the Molly Brown server - i will
>>>     call it »the sunken Molly Brown server« in that case
>>> 3. Write my own gemini server from scratch in perl
>>>
>>> It really looks like only Molly Brown and JetForce have a usable
>>> CGI-implementation. We should call it GGI, btw: Gemini Gateway
>>> Interface to distinguish it from CGI.
>> They're definitely not the only one: GLV-1.12556 and gmid (disclaimer:
>> I'm the author) have a complete CGI support.  GLV-1.12556 has even more
>> things, such as SGCI support; and you may want to count vger in that
>> list too, even it's a little limited in this regard.
>>
>> Also, why reinvent the wheel and find another name when the CGI
>> specification, modulo one or two environment variables (REQUEST_METHOD -
>> and is debatable), maps well to Gemini?
>>
>>> Best regards from Charleston (WV),
>>>       Frank/2
>>>
>>>
>>> On 2021-04-13 03:09, Alexis wrote:
>>>> Stephane Bortzmeyer <stephane at sources.org> writes:
>>>>
>>>>> I did not find a public issue tracker for MollyBrown, and the one patch
>>>>> I sent to the author went unanswered.
>>>> i.e. one you don't have to register for? Because otherwise:
>>>>
>>>>    https://tildegit.org/solderpunk/molly-brown/issues
>>>>
>>>> Still, yeah, Solderpunk isn't around much nowadays; i sent a patch
>>>> for the telem BBS in September last year, and i believe it's not yet
>>>> applied ....
>>>>
>>>> (i also submitted a couple of patches for Elpher seven months ago,
>>>> adding link numbering, but Elpher's maintainer doesn't seem to be
>>>> active either.)
>>>>
>>>>
>>>> Alexis.



More information about the Gemini mailing list