Hi,

Result of my basic tests:

Update with existing /var/www/html/index.cgi works as expected (index.cgi as default page).

Install with existing /var/www/html/index.cgi works as expected (index.cgi as default page).

Install without /var/www/ works as expected (index.html copied, and as default page).

Install with empty /var/www/html/ works as expected (index.html copied, and as default page).


Testing error behaviour:

    rm -rf /var/www

    touch /var/www

    chmod 000 /var/www

    apt install /tmp/mini-httpd_1.30-8_amd64.deb

Fails as expected:

    Setting up mini-httpd (1.30-8) ...
    mkdir: cannot create directory ‘/var/www’: Not a directory
    dpkg: error processing package mini-httpd (--configure):
     installed mini-httpd package post-installation script subprocess returned error exit status 1
    Processing triggers for man-db (2.12.0-3) ...
    Errors were encountered while processing:
     mini-httpd
    E: Sub-process /usr/bin/dpkg returned an error code (1)

postinst checks look sane.


But while testing, I found an odd little detail:

    root@debian-sid:~# service mini-httpd status
     ...
        Process: 2536 ExecStart=/usr/sbin/mini_httpd -C /etc/mini-httpd.conf $DAEMON_OPTS -i /run/mini_httpd.pid (code=exited, status=0/SUCCESS)
     ...
                 └─2538 /usr/sbin/mini_httpd -C /etc/mini-httpd.conf -C /etc/mini-httpd.conf -i /run/mini_httpd.pid
     ...

mini_httpd is invoked with a repeated -C /etc/mini-httpd.conf, or at least that is what systemd reports.

ps confirms:

    root@debian-sid:~# ps auxwwwww | grep m[i]ni_httpd
    nobody      2538  0.0  0.1  10124  2980 ?        Ss   10:20 0:00 /usr/sbin/mini_httpd -C /etc/mini-httpd.conf -C /etc/mini-httpd.conf -i /run/mini_httpd.pid
    root@debian-sid:~#

mini_httpd does not seem to care, so it's just cosmetic.

This happens because /usr/lib/systemd/system/mini-httpd.service invokes mini_httpd like this:

    EnvironmentFile=-/etc/default/mini-httpd
    ExecStart=/usr/sbin/mini_httpd -C /etc/mini-httpd.conf $DAEMON_OPTS -i /run/mini_httpd.pid

And /etc/default/mini-httpd contains:

    DAEMON_OPTS="-C /etc/mini-httpd.conf"


Compare with /etc/init.d/mini-httpd:

    ...
    if [ -f /etc/default/mini-httpd ]
    then
            . /etc/default/mini-httpd
    fi
    ...
    start() {
            echo -n "Starting $DESC: "
            start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
                    --exec $DAEMON -- $DAEMON_OPTS
            echo "$NAME."
    }
    ...

The ExecStart line in the service file should not contain "-C /etc/mini-httpd.conf", as that option is already read from /etc/default/mini-httpd and replaces $DAEMON_OPTS in the ExecStart line.


Best regards

A.Foken


On 02.02.2024 00:03, Alexandru Mihail wrote:
Hi,

Hi,
Can you test this updated package? It's a lot closer to release form. I
cleaned up postinst as yesterday's build was a bit rushed. Thanks for
all the helpful observations !
I don't need any more full logs, just your usual tests that you did
before (fresh install, update, existing index.html, etc) as I've
removed the debug prints anyway.
Thanks for your contribution !

Cheers,
Alexandru Mihail

--
Alexander Foken
mailto:alexan...@foken.de

Reply via email to