Hello,

with Rickard's help I created a very simple Nix expression for
Lighttpd. The changes can be found in my Git repository [1]. I've had
some trouble with fetching upstream/master and merging it. But I think
everything is in order now except some bogus commit messages.

I'd appreciate comments on the Nix expression and wanted to ask if
this could be merged into upstream. Should I file a pull request as
soon as this patch is agreed upon?

I don't quite know how to progress further from here. Lighttpd's
configuration appears to be really complex due to conditionals [2] and
as far as I can tell it wouldn't make sense to model this as
configuration options.

However, would you like to see (limited) virtual host support in the
Nix expression? Some first ideas are in the lighttpd branch [3].

Regards,
Alexander Foremny

[1] https://github.com/aforemny/nixos/tree/lighttpd-simple
[2] http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:Configuration
[3] https://github.com/aforemny/nixos/tree/lighttpd

2012/6/2 Alexander Foremny <[email protected]>:
> Great! This is working for me, too. Thank you very much.
>
> 2012/5/31 Rickard Nilsson <[email protected]>:
>> Hi Alexander,
>>
>> I have no troubles running av minimal lighttpd on NixOS. I can start and
>> stop it with upstart. My configuration looks like this:
>>
>> let
>>
>>   root = "/srv/www";
>>   httpPort = 3000;
>>
>>   httpConf = writeText "webserver.conf" ''
>>     server.document-root = "${root}"
>>     server.port = ${httpPort}
>>   '';
>>
>> in {
>>
>>   jobs.webserver = {
>>     path = [ lighttpd ];
>>     exec = "lighttpd -D -f ${httpConf}";
>>   };
>>
>> }
>>
>>
>> Regards,
>>   Rickard Nilsson
>>
>>
>> Den 2012-05-27 16:03:50 skrev Alexander Foremny
>> <[email protected]>:
>>
>>> Hello,
>>>
>>> I am still trying to get a minimal Nix expression for Lighttpd to
>>> work. However, I cannot get the upstart job to behave well. The Nix
>>> expression for the service so far is available on GitHub [1].
>>>
>>> I also uploaded the generated upstart job file [2].
>>>
>>> What's strange is that starting / stopping the upstart job seems to
>>> hang forever. For instance
>>>
>>>> # initctl status lighttpd
>>>> lighttpd stop/waiting
>>>> # initctl start lighttpd
>>>> [ here it hangs forever ]
>>>
>>> In another terminal I can see that Lighttpd in fact is successfully
>>> started by upstart.
>>>
>>>> # initctl status lighttpd
>>>> lighttpd start/spawned, process 4803
>>>
>>> ps reports that the PID inferred by upstart is correct. I then Ctrl-C
>>> out of the hanging initctl start lighttpd. However, trying to initctl
>>> stop the lighttpd job it hangs again without any output. A strace
>>> gives the following last lines.
>>>
>>>> # strace initctl stop lighttpd
>>>> recvmsg(3, 0xbffe2b9c, MSG_CMSG_CLOEXEC) = -1 EAGAIN (Resource
>>>> temporarily unavailable)
>>>> clock_gettime(CLOCK_MONOTONIC, {1782, 252572560}) = 0
>>>> poll([{fd=3, events=POLLIN}], 1, -1
>>>
>>> However, this time the Lighttpd server process is not being terminated
>>> by upstart! I tried increasing upstart's log verbosity without gaining
>>> any additional insight.
>>>
>>> Does anyone of you have an idea of what's going on? Any help would
>>> greatly be appreciated.
>>>
>>> Regards,
>>> Alexander Foremny
>>>
>>> [1]
>>> https://github.com/aforemny/nixos/blob/master/modules/services/web-servers/lighttpd/default.nix
>>> [2] https://gist.github.com/2814308
>>>
>>> 2012/5/24 Nicolas Pierron <[email protected]>:
>>>> Hi,
>>>>
>>>> On Tue, May 22, 2012 at 3:13 PM, Alexander Foremny
>>>> <[email protected]> wrote:
>>>>> I am trying to write a service module for lighttpd. I came up with a
>>>>> minimal example [1] which is giving me the following error upon
>>>>> rebuilding my system.
>>>>
>>>> Nice.  I would be happy to see that.
>>>>
>>>>> How can I make my option services.lighttpd known to NixOS?
>>>>
>>>> Every NixOS file, even your configuration.nix is a module, this means
>>>> that you don't have to build against a custom version of NixOS unless
>>>> you want to modify some of its files.  If you just want to *add* a new
>>>> module, I will recommend you to use the "require" or "imports"
>>>> attribute in your configuration.nix.
>>>>
>>>> So your /etc/nixos/configuration.nix should look like:
>>>>
>>>> {
>>>>  require = [
>>>>    lighttpd/default.nix
>>>>  ];
>>>>
>>>> …
>>>>
>>>> }
>>>>
>>>> The syntax of module is documented in the wiki[1] for more detail.
>>>>
>>>> [1] http://nixos.org/wiki/NixOS:Modules
>>>>
>>>> --
>>>> Nicolas Pierron
>>>> http://www.linkedin.com/in/nicolasbpierron - http://nbp.name/
>>> _______________________________________________
>>> nix-dev mailing list
>>> [email protected]
>>> http://lists.science.uu.nl/mailman/listinfo/nix-dev
>> _______________________________________________
>> nix-dev mailing list
>> [email protected]
>> http://lists.science.uu.nl/mailman/listinfo/nix-dev
_______________________________________________
nix-dev mailing list
[email protected]
http://lists.science.uu.nl/mailman/listinfo/nix-dev

Reply via email to