• Re: Advice for package needing stuff installed in /srv (node-shiny-serv

    From Jonas Smedegaard@21:1/5 to All on Wed Apr 27 18:50:01 2022
    Quoting Nilesh Patra (2022-04-27 18:10:29)
    But, the welcome page config (https://github.com/rstudio/shiny-server/tree/master/samples) need to
    be stored in /srv/shiny-server for this welcome display to happen.

    The path indicates that it is sample code - so I would suggest to simply install it as such.


    - Jonas

    --
    * Jonas Smedegaard - idealist & Internet-arkitekt
    * Tlf.: +45 40843136 Website: http://dr.jones.dk/

    [x] quote me freely [ ] ask before reusing [ ] keep private --==============ƒ53533570541526679=MIME-Version: 1.0
    Content-Transfer-Encoding: 7bit
    Content-Description: signature
    Content-Type: application/pgp-signature; name="signature.asc"; charset="us-ascii"

    -----BEGIN PGP SIGNATURE-----

    iQIzBAABCgAdFiEEn+Ppw2aRpp/1PMaELHwxRsGgASEFAmJpcooACgkQLHwxRsGg ASHv/A//bP8ZB6OHFUDQ2hhCQJeMipTqCWtL4roSOSPjDYjKWya3+m0wJ+4gW3yK yW1pnYt16y+qWwuMTNoP0pAXGMuPs/dXr4+UbgNdLgbVqukJ12do1UbmL0rIr27p h2df9LYcuNbwSrjMFTvUT4LJ31da8BifqzpEJ6DMjfYEspAQygjXGBnIqs3Jsqe4 d+BkhlZPEpmhneI0w0M8OrKPJmtpI232RWnlLR8CB9iJMFt0tgV1DZnakHXqlG4s aLIZNnl07C6D2tqUZ1M40Li2qhGSDqE8koj0DNMxfff5qlk3chHGHLjvWbwFaJt7 X4LtpebkH5ohnjgFDyRvTlWr66Dl9ubFAcIi3eRgFyxliwiMdzH8D6UUCMJ9Jorw pUUiDvYfOISv1TX/rQ6U8kM1lRL8o5dDT8AtaSmJI59lnGQ7DaZetZHGgifIr08B P5Z+W13Xl6mCCTLHpEhqbjfNW3V/CZuAHiUrb2gOkfPnen3JWQ7mCalJvmUhasu/ N3zRoGU05+n0p33JN
  • From Nilesh Patra@21:1/5 to Wookey on Wed Apr 27 19:20:01 2022
    On Wed, Apr 27, 2022 at 06:10:37PM +0100, Wookey wrote:
    On 2022-04-27 21:40 +0530, Nilesh Patra wrote:
    Hi All,

    But, the welcome page config (https://github.com/rstudio/shiny-server/tree/master/samples)
    need to be stored in /srv/shiny-server for this welcome display to happen.

    (Note that I do not want to patch code to change the default behaviour here.)

    Why not? This is what distro packages do - make sure things are installed in sensible places.

    And patching a path is nice and simple (although you might also have to patch some docs to match).

    No, sorry - that'd be a bit too much delta here, meaning shiny-server would be able to serve from two loc (I do not want that)
    As a distribution I do not want to be doing
    things completely orthogonal from the way upstream does things.
    Not to mention that derivatives would inherit directly.

    Atleast this level of effort does not seem justified for just a welcome page.

    I'm not sure what the right path is. The default webserver path in debian
    has been /var/www/html/ for decades so I'd use that, but you might
    have reasons to make it /var/www/shiny-server instead if you want shiny-server to be co-installable with other web-servers, and serve different stuff?

    Yeah that makes sense but again, same reason as I gave above. Maybe we (me and people in CC)
    could ask upstream if they are willing to support something like this at their end as well.

    Regards,
    Nilesh

    -----BEGIN PGP SIGNATURE-----

    iQIzBAABCgAdFiEEPpmlJvXcwMu/HO6mALrnSzQzafEFAmJpeqEACgkQALrnSzQz afEPmA/8DnzHY1Uyeps3/fSiYjm9Edm1lqzPQ8JH+7gVEp63vb+FwSfQIQOTOowr uzGybVtJF4LjssZP9UJsOMj9Z718CuQjV0zrMi6dsJmT40SzPb+ddJfdu2gyrMYT eQwcNCk3OXUPTK6uTVzB2fEGvOre6o+SASY4oTvrk1fqGepZloETjYFHHokPK0b4 juADmftGzvkGimdIE/MwjMfQJHOqRRBY6IxVnMyLPCy1Kff+wi4SoF6q0vTpd7IS U3ezHd9H6nIXYWa8mF4hWHAVs/qxXRweGey5gjzh8H4RZdyRN/LEEYdyxZ4iZ2Fh pk0Yp2ugT++MpDJTLO4/vhqAtDBl3U0RUomPiNwYvJevlgL7l9innxR5t24J6jWQ I7HwxArGtNuKxbEd17isCgHdm1yY1zOLc/KkaPX6PdjhxPFzm/FjF3IUypYlQ3Jm K68D1SH5A0Cvl4uJyH9xz7jRjZwVajvyG3PJgdBZRe8/p8L3hsygMwJDEI6CoZSd ZOBUVnhfS6YRb9we4HdlVSQfetiqK6SId+EQJeg6j9+BS1CN6Il32CprFFXgxnyv +CdSIRKlNTnFlVlrCBZZemwrVIvOPAUSArFv8jglt441MbYqi4BpknAqbLKl5vjp wfa7Df+cWB82D3Lstz8xuCq6821vy5DC5g5euMrfVYX0TtJSjrk=
    =eqUO
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Nilesh Patra@21:1/5 to Jonas Smedegaard on Wed Apr 27 20:00:01 2022
    On Wed, Apr 27, 2022 at 07:42:29PM +0200, Jonas Smedegaard wrote:
    Following FHS 3.0 is required by Debian Policy, and it says that "no
    program should rely on a specific subdirectory structure of /srv
    existing or data necessarily being stored in /srv".
    So if I understand the situation correctly, leaving the package to
    depend on filesystem path /srv/shiny-server is a violation of Debian
    Policy and needs to be fixed,

    This was the whole point of my email, and it is the reason I started
    this email thread in the first place.

    I would have gone with installing it in /srv w/o seeking advice if it were
    not a violation.

    either by avoiding that code (installing
    it only as example files) or patching, or convincing upstream to change default path.

    Yes, this was discussed in just the previous conversation (w/ me and wookey)
    I am looking for more opinions.

    Essentially if someone has a techincal way/solution to bypass this; or if someone on the list
    has had experience of working on a package that had similar reqs as shiny-server, it'd be nice to
    know what they did for their package.

    Best, Nilesh

    -----BEGIN PGP SIGNATURE-----

    iQIzBAABCgAdFiEEPpmlJvXcwMu/HO6mALrnSzQzafEFAmJphBYACgkQALrnSzQz afEf3Q//c9crGOxQ2HnLXgyW7txoVI7wedPwhm35NhtS5e+F8jztZJ4vyx6cYcqm viF8o7lBggfqnMzYGQEDJwPNqtQLaut54wDrwa8lRs1W5fUloxZx664W0JcbKJ69 bK9tIYvkxqci3QN13raGBHJxAUGgOAo7Q9KtyNVpiND65uERphiqKUNnT6gyZpwF wmDhkz5ooEugsjGW9rm4eSyxuSSYRCywLwRcuECGLG+L7gmfLKhJRndEnXo0+1nb iA6qVGGts01ukQZb2vLKrb3MbFO/glpoO7Qhf4V9ruPar2N+UOzuKPLvraluSaO6 Da5r/L2BZX7M24xXH9uo2B+Jq7ohoRWSyKmWBk9P1i5KDMiKD0hw8HaaNRRiORa/ 3BxsPj+/BoSWmMDM8DK17Q9AkRKYJSMEnYYQ2s/DyrfJXglcwubI4HX5F5t0TNG4 HW+ZcQ5VimIdEiS5JCD0uBafcVC0QZrqXuNVt0t5SpGAuBpON9ncWAPjcj6KfsUv 1F3wETMB6wGj4oO5IrRRs7b0dOFaluz8yjRxlk+7dYNXIt6S9q71iubA6CZY2uz1 n+HByzHZnU7AMy6w3VVFL+EyQVm9Mn7+pcUqSNzMGkSk1iXalBjei1eWFU07v5vq 08iYKEjBKNrIURY1y4RR0sFrsuRqqqqJpLo7PEO5C5KlQHrgVN4=
    =fR5B
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Jonas Smedegaard@21:1/5 to All on Wed Apr 27 19:50:01 2022
    Quoting Nilesh Patra (2022-04-27 19:17:21)
    On Wed, Apr 27, 2022 at 06:10:37PM +0100, Wookey wrote:
    On 2022-04-27 21:40 +0530, Nilesh Patra wrote:
    But, the welcome page config (https://github.com/rstudio/shiny-server/tree/master/samples) need
    to be stored in /srv/shiny-server for this welcome display to
    happen.

    (Note that I do not want to patch code to change the default
    behaviour here.)

    Why not? This is what distro packages do - make sure things are
    installed in sensible places.

    And patching a path is nice and simple (although you might also have
    to patch some docs to match).

    No, sorry - that'd be a bit too much delta here, meaning shiny-server
    would be able to serve from two loc (I do not want that) As a
    distribution I do not want to be doing things completely orthogonal
    from the way upstream does things.

    Following FHS 3.0 is required by Debian Policy, and it says that "no
    program should rely on a specific subdirectory structure of /srv
    existing or data necessarily being stored in /srv".

    So if I understand the situation correctly, leaving the package to
    depend on filesystem path /srv/shiny-server is a violation of Debian
    Policy and needs to be fixed, either by avoiding that code (installing
    it only as example files) or patching, or convincing upstream to change default path.

    - Jonas

    https://www.debian.org/doc/packaging-manuals/fhs/fhs-3.0.html#srvDataForServicesProvidedBySystem

    https://www.debian.org/doc/debian-policy/ch-opersys.html#file-system-structure

    --
    * Jonas Smedegaard - idealist & Internet-arkitekt
    * Tlf.: +45 40843136 Website: http://dr.jones.dk/

    [x] quote me freely [ ] ask before reusing [ ] keep private --==============F19040660659012023=MIME-Version: 1.0
    Content-Transfer-Encoding: 7bit
    Content-Description: signature
    Content-Type: application/pgp-signature; name="signature.asc"; charset="us-ascii"

    -----BEGIN PGP SIGNATURE-----

    iQIzBAABCgAdFiEEn+Ppw2aRpp/1PMaELHwxRsGgASEFAmJpgIEACgkQLHwxRsGg ASHf1xAArQWrKtr/ekIWqSNf8D30bEIrVrKwGujTmlsG4dlp/Pztj18T3yDgCuiu ltrf1XOUGeoe8M9bpfxcxfRLO6JZ0HBnfILoYoIbHoS2tpursoYReOuLaHy/B0YL uuAXqp5P5J9wErI9+LJEXr7pXJQwKbOKfUqtQvhS+uoxVRh+u9v4Q6n5SzOz9dk9 9zHBJIGSKg0u/Wq2h6LdIFAWZi7ziG2J2hnbrofxX/aOycQX++TeGPxYMZvNxmGh ag1qNtutFL0AL5ct2v+/JR/TtIedhtDSlb29+tCIhn0+ZIdG5PqVCfpOYKbYyMS/ 7rVEVUgV9BDfOBhN9GFrRuWiToVsMrHDGKO3i8dLcUmMOKGsrSACU7bP39N8sZQS oXdUrpWEbUyq/QDuEHPYvST6a5fH7B912yE/ARnvhB5RxKyr+DQ+4pq+W1lS4SSO YWRXj7XgbVw9aJuTHVMxsSYJRyHUZ9AcIfaTRkUr3a0wTJhHe5gYAHHbWZNz2OBH 1lqJMNl44TxttdDOC
  • From Richard Laager@21:1/5 to All on Wed Apr 27 20:20:01 2022
    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------aFSaMdzzUmZuuQkcPkKjaZZT
    Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64

    T24gNC8yNy8yMiAxMjo1NywgTmlsZXNoIFBhdHJhIHdyb3RlOg0KPiBJIGFtIGxvb2tpbmcg Zm9yIG1vcmUgb3BpbmlvbnMuDQoNClBhdGNoIGV2ZXJ5IGluc3RhbmNlIG9mIC9zcnYvc2hp bnktc2VydmVyIHRvIC92YXIvbGliL3NoaW55LXNlcnZlci4gVGhlIA0KYWRtaW4gY2FuIGN1 c3RvbWl6ZSBmcm9tIHRoZXJlLg0KDQotLSANClJpY2hhcmQNCg==

    --------------aFSaMdzzUmZuuQkcPkKjaZZT--

    -----BEGIN PGP SIGNATURE-----

    wsF5BAABCAAjFiEE1Ot9lOeOTujs4H+U+HlhmcBFhs4FAmJpiCgFAwAAAAAACgkQ+HlhmcBFhs4Q NhAAte/UPWV4JZ1/y9qpkpTZ+WG0kgHcPGymHSMXUlWRmVC9YK6sTS3DelqzMDBVsS/pYkQ+jB09 sLasjCR0/iuc3109acOeVfC90kFtjp/lAiU6VV/IjsVmrN4gQveyGeFiLdJHsWr4GzpCJVBLzMhk /y0gZMXYnbC+XJiH6WJkKhFshg/0s1ojINTeBgxov4YHerhq5HmYXUQDCedBz5Zb9KyIq6HmSsrx A2FQKVFgh8EoOnbF1ZO5muDHGFqvfnofurnpGJzk/3j2JvCy7DtaTPO8SrGT3ji67dYtgfFjPHXg KNdgxg4X36WZoIQ0uvE0oEt7myt4IjfRRvSmEVnOUAfB//d7h2woa+BszZrFzAtwgCPTvbu+3GZg R/kxoaSv5K3lwh4gsApF2d/K68p5NWVML3+CqO9dXxxzJxY3KwKz9Yc5FI8maHAgvcSt3mdRHtcC 5aNOlF7X4KyRs6a6Ka3yDD2Nlp7AvkyC67lbINr1jGioAqebCXhUjyG86EL9CzELImUV/e1QpKjZ KsW8Jb7kRhrDxQQj7O5DYtmF06yTTHxuD3LzifxmzSsnwT7D0Kh7i4tkx4DJGAV49N3Xyvi7GH6x 7NPAc3bmaJvjnvuO4K0dWwgB3rDCWhbOJ+Qzv/c/zpR9Rsx86QFdCy49+nKqbgocu+Tixlv6IL5V Bnw=
    =z+7h
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Ryan Kavanagh@21:1/5 to Nilesh Patra on Wed Apr 27 20:30:02 2022
    On Wed, Apr 27, 2022 at 11:27:43PM +0530, Nilesh Patra wrote:
    Essentially if someone has a techincal way/solution to bypass this; or
    if someone on the list has had experience of working on a package that
    had similar reqs as shiny-server, it'd be nice to know what they did
    for their package.

    gophernicus had a similar issue. By default, it wanted to serve files
    out of /var/gopher, but FHS §5.1 states

    Applications must generally not add directories to the top level of
    /var. Such directories should only be added if they have some
    system-wide implication, and in consultation with the FHS mailing
    list.

    Instead, gophernicus in Debian serves from /srv/gopher by default to
    comply with FHS §3.17.1. The gophernicus package does not create this directory. Instead, I just documented the issue in README.Debian [0],
    and included the default gophermap as an examples file.

    If there's a better solution, I'd be happy to hear it.

    Best,
    Ryan

    [0] https://salsa.debian.org/debian/gophernicus/-/blob/debian/sid/debian/README.Debian

    --
    |)|/ Ryan Kavanagh | 4E46 9519 ED67 7734 268F
    |\|\ https://rak.ac | BD95 8F7B F8FC 4A11 C97A

    -----BEGIN PGP SIGNATURE-----

    iQIzBAABCgAdFiEEP7FHOW9as2zJ9q6CWXuniu1D+jAFAmJpiWwACgkQWXuniu1D +jDeLw//Uouhcpkf1pRtxVN1gHqxq3nRiycPvHwfiamy/qKKNrHGf4vEgpmBOn8w bBXSRroU0iL8rTtL39onSxZxq7RHa6cboF+h6n95bPHq9lZF9HH90MT+AE5AYXnP npNY95INc5bHwJKhnczCDX4GrjoOfy59VHdTX3IVU98gNuwIYeFj1LdEHzyipM38 gZPQPJ1BRbnpqIS7keYpB8RQNi55BIUm6YlS2jot4iGdgEx/DMLeR7y7DmUNLhG3 PEA6pu7BxmMOJun7Puu3dcOS1Y5Am5sIuXJS9uw74Jda8B8JxTfbNhHYJy7nci87 okrZHvaDbL+AXe87IAIDeHRTnEFahdUvPMUk5QsyWx9L8MvLbFo0g07lOLFvILVN PM+36GVcd6M1jSFlouA+DTw2IjAeGHKdJyZdGEWPZxjJmYlXgSGpYTUfGvADx+Kv yGlmqJlTf4O8r3w6sUNdRPmvmyk/zfJGktzFwcNx8z2EBkQXyInWakE0jhDXLCRj QuiuJHtc0OUCAW5J19jf/8Er823/ppFo8RHcs9NJhmY4DDBzcpNhRYTv9nfvEcmb 2JTXg7A/BLXjPiXtyFkSp0/E54/pFQJgaVeB9cW5h/7jk5EMg4qEJY5YKsVGCgNB l1kVwc77SV+xYjzHIYdsPmrZxpd89f63AP+vH5A58CoRqKNoysQ=
    =sSCc
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Russ Allbery@21:1/5 to Richard Laager on Wed Apr 27 20:30:01 2022
    Richard Laager <rlaager@wiktel.com> writes:
    On 4/27/22 12:57, Nilesh Patra wrote:

    I am looking for more opinions.

    Patch every instance of /srv/shiny-server to /var/lib/shiny-server. The
    admin can customize from there.

    A possibly even better option would be for it to take the web root as a command-line or configuration argument. It's weird for that sort of configuration parameter, which administrators are going to want to
    customize, to be hard-coded into the package (and for me it raises
    questions about its general code quality).

    --
    Russ Allbery (rra@debian.org) <https://www.eyrie.org/~eagle/>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Russ Allbery@21:1/5 to Ryan Kavanagh on Wed Apr 27 20:50:01 2022
    Ryan Kavanagh <rak@debian.org> writes:

    From FHS §5.8.1,

    This hierarchy holds state information pertaining to an application
    or the system. State information is data that programs modify while
    they run, and that pertains to one specific host. Users must never
    need to modify files in /var/lib to configure a package's operation,
    and the specific file hierarchy used to store the data must not be
    exposed to regular users.

    So, I think this suggestion of storing shiny-server (presumably
    modifyable) configurations and served data in /var/lib/shiny-server
    would violate policy.

    I would expect a workflow similar to that of the Apache packages. The
    default home page is a static file shipped with the package in /var, but
    one of the first things that any administrator does after installing the package is point it at a different docroot that suits their local file
    system layout.

    That avoids all of these problems, since there is no need to modify the
    static home page in order to make the package work. (Although the administrator can choose to do so if they want. I sometimes use /var to
    hold various configuration things on my systems. The actions of the local administrator are outside the scope of the FHS, which only constrains distributions. This is why we use /var rather than /usr, so that administrators can choose to just use /var if they feel like it without
    running into problems with, for example, a read-only /usr.)

    This issue comes up occasionally with different packages and we've never
    come up with a great solution beyond making it configurable at install
    (either via explicit documentation or via a debconf prompt). It's a bit
    of a gap in the FHS, in my opinion, but I'm not sure it's worth developing local policy to close the gap by, for instance, introducing a new
    top-level directory for default docroots for various services (I know of
    web, gopher, and tftp with this issue).

    We do try to hold the line on not installing files in /srv and not
    requiring any specific layout of /srv because the FHS is pretty explicit
    that the choice of directory layout in /srv is entirely up to the local administrator and distributions should not be messing with it.

    --
    Russ Allbery (rra@debian.org) <https://www.eyrie.org/~eagle/>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Ryan Kavanagh@21:1/5 to Richard Laager on Wed Apr 27 20:40:01 2022
    On Wed, Apr 27, 2022 at 01:15:04PM -0500, Richard Laager wrote:
    Patch every instance of /srv/shiny-server to /var/lib/shiny-server.
    The admin can customize from there.

    From FHS §5.8.1,

    This hierarchy holds state information pertaining to an application
    or the system. State information is data that programs modify while
    they run, and that pertains to one specific host. Users must never
    need to modify files in /var/lib to configure a package's operation,
    and the specific file hierarchy used to store the data must not be
    exposed to regular users.

    So, I think this suggestion of storing shiny-server (presumably
    modifyable) configurations and served data in /var/lib/shiny-server
    would violate policy.

    --
    |)|/ Ryan Kavanagh | 4E46 9519 ED67 7734 268F
    |\|\ https://rak.ac | BD95 8F7B F8FC 4A11 C97A

    -----BEGIN PGP SIGNATURE-----

    iQIzBAABCgAdFiEEP7FHOW9as2zJ9q6CWXuniu1D+jAFAmJpiuQACgkQWXuniu1D +jBcZQ/+IcW+Y1xyBHb8hBJjuZ+y/blgLeCpxD2edeTQl2IYc9/MPWPCDqt2Aaci x55xfY4cMvaRlQr368OujJYXj/GkEEyWbUug40HNxGoxsVt/LE9CsW9Q1ZeEPFjj G3fPF5EYjueBx6Eg0Bszxh8huBPN+qaENh+56Uc87A6Zx3TRagd/4m9Km7BKb10I 1MvCwsCctYwukfGVkMNRVkdFJCK2xVZoehiRPJiMfiGL7bgN8L+zJea4xKH47Sbu ZDTuWsw5QRS+t8BAEBB7AJZ6hGL+ElpJI5TApPf3wf9hjd2FP9acw7DonPpqwRK2 fML/EbaBz9KHMgW2OqMywvBmx2dswX76P2fVFdP2fWezwC+/gB3nMCcW2FhaNYdM IijliZAcaMVoFc/RiP/RmJk46MGocAu3U2OyXNbCndkjcW4qqcwnrc1FLztSKVpB uk4aPFXLML/rFVVZo0rZxStukOXaeyhINjYByc2FlYg1CI/TZ5BQJs6fF2ms9Nqa mXVsIu4MryWcyw/tayS4F0sX+uZ2Ll2Zk9US+WcPu9dmt99l+6LYCxFMZAsK90xG 4C8XbvcfthmLMVJuz/zXmAgnV5GcGZOehKQ3vgQO+c2xZNVirMiq8p612Yb/SwA3 e7gnH+awpjq3XWpHxvbg281CqJwpI41HhRT3+hm+jHLg32ZD+8c=
    =cJ62
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Philip Rinn@21:1/5 to All on Wed Apr 27 22:20:01 2022
    Copy: nilesh@debian.org (Nilesh Patra)

    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------0889epJKw1U8y7Iza7peDLFr
    Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64

    SGkgTmlsZXNoLA0KDQpPbiAyMDIyLTA0LTI3IDIxOjQwICswNTMwLCBOaWxlc2ggUGF0cmEg d3JvdGU6DQo+IEJ1dCwgdGhlIHdlbGNvbWUgcGFnZSBjb25maWcgKGh0dHBzOi8vZ2l0aHVi LmNvbS9yc3R1ZGlvL3NoaW55LXNlcnZlci90cmVlL21hc3Rlci9zYW1wbGVzKQ0KPiBuZWVk IHRvIGJlIHN0b3JlZCBpbiAvc3J2L3NoaW55LXNlcnZlciBmb3IgdGhpcyB3ZWxjb21lIGRp c3BsYXkgdG8gaGFwcGVuLg0KDQpXaHksIHlvdSBjYW4gYWRqdXN0IHRoZSBwYXRoIHZpYSBh IGNvbmZpZyB2YXJpYWJsZSwgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9yc3R1ZGlvL3NoaW55 LXNlcnZlci9ibG9iL21hc3Rlci9jb25maWcvZGVmYXVsdC5jb25maWcjTDEyLg0KDQpIb3cg YWJvdXQganVzdCBjaGFuZ2luZyB0aGF0IGRlZmF1bHQgY29uZmlnIGFuZCBwb2ludCBpdCB0 byAvdXNyL3NoYXJlL3NoaW55LXNlcnZlci9zYW1wbGVzIG9yIHdoZXJldmVyIHlvdSBpbnN0 YWxsIHRoZSBzYW1wbGUgZmlsZXMgdG9vPw0KT3IgZG8gSSBtaXNzIHNvbWV0aGluZyBoZXJl Pw0KDQpCZXN0DQpQaGlsaXANCg==

    --------------0889epJKw1U8y7Iza7peDLFr--

    -----BEGIN PGP SIGNATURE-----

    wsF5BAABCAAjFiEEK9jU45eVX3dG2zuJrWkWlnOTmCsFAmJpo2YFAwAAAAAACgkQrWkWlnOTmCt7 IBAAhDTXFdxA+AxbTk27XmjgfRNCZDzhgV12lbWIrEWm3J0srVPKBr9Xc3/cYdy5n73Vg59Xrawj H48HTT1ycuful9relP0vvQKFBmFjqEnZxQRdJSWI6nRq5vi/j8cQSsvClumP4edtTrKaQbh6LgSs RFBHvzhcklSGHrPWal613z1e18bZdLpOOzC5efXnKuYwaPlJVCg1UVNuZWdUAkg+vs/Iim2ikJYh eXPaNzDNTddrk+4iaFy5GwNA9X+jqkL3sSC+X2AY8mHumA2XVOYNl+wfEK5C1MsTx/+hv2u5FXXk adMk37+NSvV/5gJ9PuOrCd1/eLrRBz12caHYj1biqX1ESkGVNUV5CzlXsKeipvIv7i9Wbluuz3HO qZaciSOTP4Se4G5Y0YKt2chNJycUkrQqd0Z3wNAuKZ4TwSrAoYT/6BwsXkwyypzxa0MVtnwF4hVw 0lbyAMIBlk2DdRhvrkH7mL+5/tRlPcCzKwU7NxOqq91yY+KtYL2dXTX4Ub7ZXm3UlZAo+s4+C72P HHE4ikP90pR7dNUU+6cmv3TYosxtRyrPLN10vdD5joD4l7qil464H5t8sgGfJH3+LQHi93fYZ7ZK t5LAohZ1IZjPU1Yfb1i7CdLj9P3HW6IQvXLDSsIDgt5hi7q+lR1UoQlruLEDZjJA/IeLnSNPQQ8f WKU=
    =c6DO
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Eric Brown@21:1/5 to nilesh@debian.org on Wed Apr 27 22:40:01 2022
    Thank you all for your advice. I have been helping out to get this
    packaged. I agree with Nilesh but am chiming in, but I apologize if I
    am just repeated what is already clear.

    /srv/shiny-server is upstream's default location for files to serve.
    It starts out with the sample files but the user replaces those with
    their own. The sample files start there and provide the user proof
    that the server is working and an explanation on how to replace the
    files.

    The server directory is easily changed by modifying the config file to
    whatever is desired. So it is not essential to host here, just the
    default. Everything would still work if it were another directory
    specified in config.

    The issue is that the documentation, samples and all of the upstream
    online documentation, e.g. https://support.rstudio.com/hc/en-us/articles/219002337-Shiny-Server-Quick-Start-Host-a-directory-of-applications
    (or on third party sites like Stack Overflow), refer to
    /srv/shiny-server as the default location for hosting. I doubt
    upstream would want to change all of that without a strong reason.

    From a user's perspective it would be much clearer if Debian could do
    the same, in my opinion, so all of this existing and distributed
    documentation and support still applies to new users of the Debian
    version. Is there a technical solution to enable this, e.g. post
    installation, that satisfies Debian's requirements?

    Many thanks,
    Eric

    On Wed, Apr 27, 2022 at 1:57 PM Nilesh Patra <nilesh@debian.org> wrote:

    On Wed, Apr 27, 2022 at 07:42:29PM +0200, Jonas Smedegaard wrote:
    Following FHS 3.0 is required by Debian Policy, and it says that "no program should rely on a specific subdirectory structure of /srv
    existing or data necessarily being stored in /srv".
    So if I understand the situation correctly, leaving the package to
    depend on filesystem path /srv/shiny-server is a violation of Debian
    Policy and needs to be fixed,

    This was the whole point of my email, and it is the reason I started
    this email thread in the first place.

    I would have gone with installing it in /srv w/o seeking advice if it were not a violation.

    either by avoiding that code (installing
    it only as example files) or patching, or convincing upstream to change default path.

    Yes, this was discussed in just the previous conversation (w/ me and wookey) I am looking for more opinions.

    Essentially if someone has a techincal way/solution to bypass this; or if someone on the list
    has had experience of working on a package that had similar reqs as shiny-server, it'd be nice to
    know what they did for their package.

    Best, Nilesh



    --
    Eric Brown MD MSc FRCPC
    For encryption, OpenPGP public key available on request.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Russ Allbery@21:1/5 to Eric Brown on Wed Apr 27 23:00:01 2022
    Eric Brown <eb@ericebrown.com> writes:

    The issue is that the documentation, samples and all of the upstream
    online documentation, e.g. https://support.rstudio.com/hc/en-us/articles/219002337-Shiny-Server-Quick-Start-Host-a-directory-of-applications
    (or on third party sites like Stack Overflow), refer to
    /srv/shiny-server as the default location for hosting. I doubt
    upstream would want to change all of that without a strong reason.

    From a user's perspective it would be much clearer if Debian could do
    the same, in my opinion, so all of this existing and distributed documentation and support still applies to new users of the Debian
    version. Is there a technical solution to enable this, e.g. post installation, that satisfies Debian's requirements?

    Not really. This is the same issue that we've had before with other
    things. Given current Policy, you have to choose between pointing at a
    file installed with the package or defaulting to the upstream /srv
    location without there being a file there.

    It's not a great situation, and there was a long discussion a while back
    about how to address the same issue with tftp services that I think didn't arrive at a clear conclusion.

    --
    Russ Allbery (rra@debian.org) <https://www.eyrie.org/~eagle/>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Eric Brown@21:1/5 to All on Thu Apr 28 02:30:01 2022
    Thank you for the explanation, and thanks for the history and pointer
    towards tftp. Looks like you remembered correctly (https://lists.debian.org/debian-devel/2020/02/msg00197.html). I
    installed tftpd-ahp. Interestingly, after all that discussion, it still
    does create a directory /srv/tftp which is its default served directory,
    like the upstream shiny-server behaviour.
    Best,
    Eric

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Andreas Tille@21:1/5 to All on Thu Apr 28 09:00:01 2022
    Am Wed, Apr 27, 2022 at 11:39:45AM -0700 schrieb Russ Allbery:

    We do try to hold the line on not installing files in /srv and not
    requiring any specific layout of /srv because the FHS is pretty explicit
    that the choice of directory layout in /srv is entirely up to the local administrator and distributions should not be messing with it.

    I wonder whether we can simply use /var (not sure what might be best out
    of /var/www/shiny-server or /var/lib/shiny-server or ???) for the "real" installation and use a symlink to /srv/shiny-server (which can be even
    set via debconf or in prominent documentation). This puts the files in
    the right place per FHS but does not lead to big surprises at user side.

    Kind regards

    Andreas.

    --
    http://fam-tille.de

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Paul Wise@21:1/5 to Nilesh Patra on Thu Apr 28 12:30:01 2022
    On Wed, 2022-04-27 at 21:40 +0530, Nilesh Patra wrote:

    The default/expected behaviour just after package install is that as
    soon as the user starts it and visits (talking about local setup here) localhost:<port-it-binds-to> they should be seeing a welcome page.

    Since the package manager cannot know at what HTTP domain and path the
    sysadmin desires a web app to be accessible from, personally I would
    suggest to ask the sysadmin for the relevant parameters via debconf and
    then run the vhost setup script for the web app using those parameters.

    The files you mention would be stored in /usr and the generated web
    server and app be configured to use them from there.

    I think the wwwconfig-common package was meant to facilitate that sort
    of approach, but it only supports PostgreSQL/MySQL, PHP and Apache.

    --
    bye,
    pabs

    https://wiki.debian.org/PaulWise

    -----BEGIN PGP SIGNATURE-----

    iQIzBAABCgAdFiEEYQsotVz8/kXqG1Y7MRa6Xp/6aaMFAmJqbEIACgkQMRa6Xp/6 aaMffg/+IDxc/6GvsOcPBEUsF01PMtlsd3VUi9EjSLHVZa8evlf+X2w/zDKj9VZh /XqeXf0P7bdOjjqz8jwbqNCu9ktRhXYKnRcAplg3uCJVa3sZKG2KhacCjCmMXMPa hUChU6ucapDV0yQrdzcjyjrG9UDi/1i1ScyGg8SAuuSlkmvJsfWccm9iwhKFajsb 60GFywzqvOHvBQDte4DKWLdScxMl2pJNrh/y/OF2La9iNPYnfuBHgep92FnV91d1 8mJm9Q+byoHaRozbuNiRnlRsBjxe7UxW9kD1mw586+c4Ur2W6IxfBQz5OyUQnQ96 vnlmSHQ2Q0lRe4YJDKnKHCS1HuqQZCMqUikgqHEm1udyzW7Jynjvr4ewBwGu//66 glSIgfbbM3VGf0RxpjzM0mByv8/vW5DwW/2tEmiFdrBKLJkIrng6pJWglzaI076B MSnHFTB/ZOGxNTtZe/8YfJztv2EF3xnFHsz9yq8ej/6hd+1wUDKXZx8Zcc0CKebr 5RHhM0R7jM24neEvBfOdNn71Gl5Vd5Xb9PqnRALBYOOgFn83hj/tB4V4q54I+wbH kocEamDqFv3C2XKx8QhQmwkjxy1L4u9ztXnzYPZuU0PYQ0EWZoID0FiyQx5rvzYk 1wzejP9bEIJaDThv1CsbUc5DvO7JUS4evc1lJU9C8kzvKlDTDUw=
    =ne8Z
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Marvin Renich@21:1/5 to All on Thu Apr 28 15:00:02 2022
    * Eric Brown <eb@ericebrown.com> [220427 20:24]:
    Thank you for the explanation, and thanks for the history and pointer
    towards tftp. Looks like you remembered correctly (https://lists.debian.org/debian-devel/2020/02/msg00197.html). I installed tftpd-ahp. Interestingly, after all that discussion, it still does create a directory /srv/tftp which is its default served directory, like the upstream shiny-server behaviour.
    Best,
    Eric

    If tftpd-hpa does, it is violating Debian Policy. However, there is a significant difference between an FTP server and a web server: the FTP server's data directory is dynamic, and can be modified by clients on
    other hosts. /var/lib/package is not a good choice for this directory.

    I agree with the others in this thread that you _must not_ step on the sysadmin's toes by creating directories or files in /srv without
    explicit permission.

    I see two possible approaches. The first is to use /srv/shiny-server as
    the configuration default, and not place anything there (not even
    creating the directory). You can use README.Debian or (although
    possibly a mild abuse) NEWS.Debian to guide the sysadmin on how to fix
    things.

    The other, which I strongly prefer and follows what other web servers in
    Debian have done, is to use /var/lib/shiny-server as the default, and
    modify the default web page to give instructions, explaining that for
    the package to use /srv/shiny-server as the default without the user's
    explicit permission is a violation of both the FHS and Debian Policy.
    You can provide a script in /usr/share/doc/shiny-server/examples/ that
    will "correct" the default if the user wishes.

    The fact is that for shiny-server to be useful, the user must customize
    the website anyway. One extra step that is explained in the default web
    page to get it to match the upstream defaults is not onerous.

    What would be policy compliant, would be to have a debconf question (as
    others have suggested), whose default behavior is to use
    /var/lib/shiny-server, but if the user explicitly changes it to /srv/shiny-server, then it is fine to go ahead and create and populate
    the directory. Asking a debconf question, but defaulting to
    /srv/shiny-server would be the same as not asking the question, and is
    thus a policy violation.

    Also, note that /var/shiny-server is not FHS or Debian Policy compliant,
    but /var/lib/shiny-server is (I vaguely remember someone mentioning /var/shiny-server earlier in this thread, so I thought I would point
    this out).

    ...Marvin

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)