• Location for user installed plugin libraries and icons

    From Jon Gough@21:1/5 to All on Thu May 6 01:40:01 2021
    This is a multi-part message in MIME format.
    Hi List,
       I am working on a user driven plugin management process for an
    application which is installed via a 'deb' file. The application is
    installed using 'root' privileges, but the plugins need to be
    installable by the user without root privileges. The plugins will
    consist of libs, icons, etc. that are used to 'run' the plugin and user updateable config files used to 'control' the plugin.

       If the plugin was installed by a 'deb' file it would put libs and
    supplied icons in a system area, i.e. /usr or /usr/local, and the
    updateable config files in a user writeable area, i.e.
    $HOME/.<application>/. What would be a suitable location for the libs,
    icons, etc. for the user installed plugin?

    Many thanks
    Jon


    <html>
    <head>

    <meta http-equiv="content-type" content="text/html; charset=windows-1252">
    </head>
    <body>
    <font face="Bookman Old Style">Hi List,<br>
       I am working on a user driven plugin management process for an
    application which is installed via a 'deb' file. The application
    is installed using 'root' privileges, but the plugins need to be
    installable by the user without root privileges. The plugins will
    consist of libs, icons, etc. that are used to 'run' the plugin and
    user updateable config files used to 'control' the plugin. <br>
    <br>
       If the plugin was installed by a 'deb' file it would put libs
    and supplied icons in a system area, i.e. /usr or /usr/local, and
    the updateable config files in a user writeable area, i.e.
    $HOME/.&lt;application&gt;/. What would be a suitable location for
    the libs, icons, etc. for the user installed plugin? <br>
    <br>
    Many thanks<br>
    Jon<br>
    <br>
    </font>
    </body>
    </html>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Beno=c3=aet_Rouits?=@21:1/5 to All on Thu May 6 02:10:01 2021
    Hi Jon,

    Maybe it would be preferable to use the XDG recommendation ?


    App configuration, and plugins configuration too: XDG_CONFIG_HOME:-$HOME/.config/[MyTLD]/[MyApplication]/

    User installed plugins resources: XDG_DATA_HOME:-$HOME/.local/share/[MyTLD]/[MyApplication]/


    *where MyTLD is a top-level unique 'domain' that avoids name clashing
    between apps.

    More to read here:
    https://www.freedesktop.org/wiki/Specifications/

    HTH,
    Benoît
    Le 06/05/2021 à 01:36, Jon Gough a écrit :
    Hi List,
       I am working on a user driven plugin management process for an application which is installed via a 'deb' file. The application is
    installed using 'root' privileges, but the plugins need to be
    installable by the user without root privileges. The plugins will
    consist of libs, icons, etc. that are used to 'run' the plugin and user updateable config files used to 'control' the plugin.

       If the plugin was installed by a 'deb' file it would put libs and supplied icons in a system area, i.e. /usr or /usr/local, and the
    updateable config files in a user writeable area, i.e.
    $HOME/.<application>/. What would be a suitable location for the libs,
    icons, etc. for the user installed plugin?

    Many thanks
    Jon


    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Jon Gough@21:1/5 to All on Thu May 6 05:20:02 2021
    This is a multi-part message in MIME format.
    Hi,
       Thanks for the info, I thought this may be the case. Using that it
    is easy to install and uninstall plugins from the main program. The
    uninstall can be just the plugin resources or the plugin resources and configuration items as well and we can ask the user what level of
    uninstall they intend.

       One thought though, what happens if the main application, the 'deb',
    is uninstalled? Should the plugin resources be left or uninstalled, what
    about the configurations? Once the main app has been uninstalled there
    is no way for the user to easily uninstall/remove left over stuff. As
    far as I can see most users only know about Downloads, Documents, etc.,
    but nothing about directories that contain '.' as the leading character
    (most desktops hide these directories).

    Thanks
    Jon

    On 6/5/21 10:01 am, Benoît Rouits wrote:
    Hi Jon,

    Maybe it would be preferable to use the XDG recommendation ?


    App configuration, and plugins configuration too: XDG_CONFIG_HOME:-$HOME/.config/[MyTLD]/[MyApplication]/

    User installed plugins resources: XDG_DATA_HOME:-$HOME/.local/share/[MyTLD]/[MyApplication]/


    *where MyTLD is a top-level unique 'domain' that avoids name clashing
    between apps.

    More to read here:
    https://www.freedesktop.org/wiki/Specifications/

    HTH,
     Benoît
    Le 06/05/2021 à 01:36, Jon Gough a écrit :
    Hi List,
        I am working on a user driven plugin management process for an
    application which is installed via a 'deb' file. The application is
    installed using 'root' privileges, but the plugins need to be
    installable by the user without root privileges. The plugins will
    consist of libs, icons, etc. that are used to 'run' the plugin and
    user updateable config files used to 'control' the plugin.

        If the plugin was installed by a 'deb' file it would put libs and
    supplied icons in a system area, i.e. /usr or /usr/local, and the
    updateable config files in a user writeable area, i.e.
    $HOME/.<application>/. What would be a suitable location for the
    libs, icons, etc. for the user installed plugin?

    Many thanks
    Jon




    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html;
    charset=windows-1252">
    </head>
    <body>
    <font face="Bookman Old Style">Hi,<br>
       Thanks for the info, I thought this may be the case. Using that
    it is easy to install and uninstall plugins from the main program.
    The uninstall can be just the plugin resources or the plugin
    resources and configuration items as well and we can ask the user
    what level of uninstall they intend.<br>
    <br>
       One thought though, what happens if the main application, the
    'deb', is uninstalled? Should the plugin resources be left or
    uninstalled, what about the configurations? Once the main app has
    been uninstalled there is no way for the user to easily
    uninstall/remove left over stuff. As far as I can see most users
    only know about Downloads, Documents, etc., but nothing about
    directories that contain '.' as the leading character (most
    desktops hide these directories).<br>
    <br>
    Thanks<br>
    Jon<br>
    </font><br>
    <div class="moz-cite-prefix">On 6/5/21 10:01 am, Benoît Rouits
    wrote:<br>
    </div>
    <blockquote type="cite"
    cite="mid:39445440-67bc-2542-54fc-a0eb3ae7cc26@free.fr">Hi Jon,
    <br>
    <br>
    Maybe it would be preferable to use the XDG recommendation ?
    <br>
    <br>
    <br>
    App configuration, and plugins configuration too:
    <br>
    XDG_CONFIG_HOME:-$HOME/.config/[MyTLD]/[MyApplication]/
    <br>
    <br>
    User installed plugins resources:
    <br>
    XDG_DATA_HOME:-$HOME/.local/share/[MyTLD]/[MyApplication]/
    <br>
    <br>
    <br>
    *where MyTLD is a top-level unique 'domain' that avoids name
    clashing between apps.
    <br>
    <br>
    More to read here:
    <br>
    <a class="moz-txt-link-freetext" href="https://www.freedesktop.org/wiki/Specifications/">https://www.freedesktop.org/wiki/Specifications/</a>
    <br>
    <br>
    HTH,
    <br>
     Benoît
    <br>
    Le 06/05/2021 à 01:36, Jon Gough a écrit :
    <br>
    <blockquote type="cite">Hi List,
    <br>
        I am working on a user driven plugin management process for
    an application which is installed via a 'deb' file. The
    application is installed using 'root' privileges, but the
    plugins need to be installable by the user without root
    privileges. The plugins will consist of libs, icons, etc. that
    are used to 'run' the plugin and user updateable config files
    used to 'control' the plugin.
    <br>
    <br>
        If the plugin was installed by a 'deb' file it would put
    libs and supplied icons in a system area, i.e. /usr or
    /usr/local, and the updateable config files in a user writeable
    area, i.e. $HOME/.&lt;application&gt;/. What would be a suitable
    location for the libs, icons, etc. for the user installed
    plugin?
    <br>
    <br>
    Many thanks
    <br>
    Jon
    <br>
    <br>
    </blockquote>
    <br>
    </blockquote>
    <br>
    </body>
    </html>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Tobias Frost@21:1/5 to Jon Gough on Thu May 6 08:40:01 2021
    On Thu, May 06, 2021 at 01:16:13PM +1000, Jon Gough wrote:a

    (Please refrain from top-posting)

    Hi,
       Thanks for the info, I thought this may be the case. Using that it is
    easy to install and uninstall plugins from the main program. The uninstall can be just the plugin resources or the plugin resources and configuration items as well and we can ask the user what level of uninstall they intend.

       One thought though, what happens if the main application, the 'deb', is uninstalled? Should the plugin resources be left or uninstalled, what about the configurations?

    (I assume you talk about the user-installed plugins/resources)

    Debs must not touch files in $HOME; your only choice is to leave them alone.

    Once the main app has been uninstalled there is no way
    for the user to easily uninstall/remove left over stuff. As far as I can see most users only know about Downloads, Documents, etc., but nothing about directories that contain '.' as the leading character (most desktops hide these directories).

    Well, except if those are of significant size (and then it is probably more than configuration and plugins)*, this shouldn't be a problem at all, is it? Are there other problems you think you could sovle with that execpt extra files?

    The program could document where the resources are saved.
    (I'm wondering why you think that is a problem in the first place; the usage
    of .local .config is so widespread and quite well established. Even a Unix beginner will very likely learn about them early.
    As another data point: Windows has also hidden AppData directory used
    for local app data; whose use case is AFAIK the same as you are describing.)

    A practical aspect:
    You do not delete user data/configuration files without asking them. They might be very sad afterwards. And you cant really ask them when removing or purging the deb,
    especially on a machine used by multiple users.)

    (* If big, it is probably a better option to package the plugins as well, so that
    not every user has to have its own copy of the big resources.)

    --
    tobi

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Jon Gough@21:1/5 to All on Fri May 7 03:00:01 2021
    The user install plugins can vary between very simple with a config file
    and a couple of icons up to complex with large data >1GB and hundreds of
    icons.

    So, if debs must not touch files in $HOME but is allowed to create files
    there (is that not a contradiction?) where else could the 'system' files
    be placed?

    Is there a process that allows the deb to 'clean up' the application
    when the application is uninstalled, in particular any 'install'
    artefacts that have been installed by plugins? Debs will identify
    dependencies that are no longer required when they are uninstalled and
    the system package manger will allow automatic uninstall of unused items
    if the user wants.

    The use of .local and .config is not an issue when installing, but it is
    during the un-install process that the issue arises. My experience of
    users is that they know little of the file system and only really
    recognise 'Documents', 'Downloads' and 'Desktop' as being places where
    things are stored. I know of users who upgrade phones/tablets/PC's
    because they become 'slow' due to left over items filling all available
    disk space. I am hoping to be a little more user friendly than that. The
    whole purpose of the plugin manager is to allow users to extend the capabilities of the application without having to worry about the 'deb'
    install processes.

    Most of the instances of the program will be installed for use on
    'single user' or 'single user account' machines. The cases where a
    machine is 'multi user' will likely be developers or being 'managed' by
    ICT people so that will not be an issue. In normal user cases they will
    use a package manager to uninstall the package and will not go near a
    command prompt.

    Jon

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mechtilde Stehmann@21:1/5 to Debian Mentors List on Fri May 7 08:00:02 2021
    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --omMpFinFMPXW7v8VAJKZJ4IzwiO3ANp4P
    Content-Type: text/plain; charset=windows-1252
    Content-Language: en-US
    Content-Transfer-Encoding: quoted-printable

    Hello Jon,

    do you have a special plugin in mind.

    I packaged several plugins for thunderbird and libreoffice.

    They all are installed as root under /usr/lib and/or /usr/share. Some of
    them has also config files.

    So I offer we can work step-by-step to the packaging process.

    Kind regards

    Mechtilde

    Am 07.05.21 um 02:58 schrieb Jon Gough:
    The user install plugins can vary between very simple with a config file
    and a couple of icons up to complex with large data >1GB and hundreds of icons.

    So, if debs must not touch files in $HOME but is allowed to create files there (is that not a contradiction?) where else could the 'system' files
    be placed?

    Is there a process that allows the deb to 'clean up' the application
    when the application is uninstalled, in particular any 'install'
    artefacts that have been installed by plugins? Debs will identify dependencies that are no longer required when they are uninstalled and
    the system package manger will allow automatic uninstall of unused items
    if the user wants.

    The use of .local and .config is not an issue when installing, but it is during the un-install process that the issue arises. My experience of
    users is that they know little of the file system and only really
    recognise 'Documents', 'Downloads' and 'Desktop' as being places where
    things are stored. I know of users who upgrade phones/tablets/PC's
    because they become 'slow' due to left over items filling all available
    disk space. I am hoping to be a little more user friendly than that. The whole purpose of the plugin manager is to allow users to extend the capabilities of the application without having to worry about the 'deb' install processes.

    Most of the instances of the program will be installed for use on
    'single user' or 'single user account' machines. The cases where a
    machine is 'multi user' will likely be developers or being 'managed' by
    ICT people so that will not be an issue. In normal user cases they will
    use a package manager to uninstall the package and will not go near a
    command prompt.

    Jon


    --
    Mechtilde Stehmann
    ## Debian Developer
    ## PGP encryption welcome
    ## F0E3 7F3D C87A 4998 2899 39E7 F287 7BBA 141A AD7F




    --omMpFinFMPXW7v8VAJKZJ4IzwiO3ANp4P--

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

    iQIzBAEBCgAdFiEE8ON/Pch6SZgomTnn8od7uhQarX8FAmCU1eMACgkQ8od7uhQa rX9Clg/+LCyyIIyPZR4GwVYO1vfy78URYxQLdNAXUA70cSf4NbLMTsSsCVG/x3EG 8BVoowVEeGBK0Y86jCNqMCOG/RXeMplm9Nq5iXYY/1rLtKhHi73F/OlHTIUVR5sM MOwgPWMC5ZemD+jYLhsX0GIDo1l16SVJm1I6bSN1l0Z0ThbGoGIRPOpCa3rvIz6a ynUgtQRSm4I4+F5fO3BiVD8HJZEv13qBa/9GTPuw1JxCKr9agpwa6LS+x2xdu+ra myqnC273dKqlZzMxa/kPJnxNyV8FQoDBrWZJwZfky5GErYCBDfQ1irwWrsCGanJx EeQBGRNWfQ6QTDJl5i9qv1J0coMXiimQdYgQgOeCW7xt/glDvspAOFfUpGVeAj7v w6xrYY2nRCdqx/Linwt1n61RY9jXWs5dZ6EzRVs0g9uf7TAZNNJ4kK1AnRp/jtAz oUJKiLPfn1uIKLIGMUd58DhMq80thJIVoNyMNAnV2zqF+6Tq4Yrm6RiJDolK5S2g VnMS0i+xOjM5jkTOQX09a35R4XbkIlXrw0+wNRI4EAV3my+7u8n8YvI1AxbWy0BF 5C8blQ7vbJf9QqXqqtSypEBN2357eHBAq7WUJBqim/i/6Wun2tufsVj5+Rqv1oYQ tcM1e6Fodt/JHNMb6BucgpTBkrSVaSTZwyOuXcgRk/3j2wCoX60=
    =IjNU
    -----END PGP SIGNATURE-----
  • From Tobias Frost@21:1/5 to Jon Gough on Fri May 7 07:40:01 2021
    On Fri, May 07, 2021 at 10:58:27AM +1000, Jon Gough wrote:
    The user install plugins can vary between very simple with a config file and a couple of icons up to complex with large data >1GB and hundreds of icons.

    So, if debs must not touch files in $HOME but is allowed to create files there (is that not a contradiction?)

    Sorry if my wording was not precise enough:
    Packages are not allowed to do that either. The only way a package
    might modify $HOME if the user owning $HOME started a program in the
    packages. touch in my sentence != touch(1).

    where else could the 'system' files be placed?

    Not sure what you mean about system files.
    My interpretation would be that "system" files come from the .deb. Here,
    Debian policy is the reference, and §9 refers to the FHS with
    execptions. This is probably what you need to read to answer your
    question, if I got you right.

    Or you mean something like what this tries to solve: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html

    (However, a regular user has not means to install something outside of
    $HOME.)

    Is there a process that allows the deb to 'clean up' the application when
    the application is uninstalled, in particular any 'install' artefacts that have been installed by plugins? Debs will identify dependencies that are no longer required when they are uninstalled and the system package manger will allow automatic uninstall of unused items if the user wants.

    I'm not aware that such thing exists. (read:I'm pretty sure it does
    not.) And would it be even possible? Starting already with the question
    how would you ask _ALL_ the affected users at apt remove-time. And what
    is if the user has got a crypted home or the $HOME/.config $HOME/.local
    is on a network share … … … … … … … … …

    The use of .local and .config is not an issue when installing, but it is during the un-install process that the issue arises. My experience of users is that they know little of the file system and only really recognise 'Documents', 'Downloads' and 'Desktop' as being places where things are stored. I know of users who upgrade phones/tablets/PC's because they become 'slow' due to left over items filling all available disk space. I am hoping to be a little more user friendly than that. The whole purpose of the plugin manager is to allow users to extend the capabilities of the application without having to worry about the 'deb' install processes.

    You'll be most friendly to the users if you stick to standards.

    If you do something special, the users will to have to suddenly know
    your speciality. Imagine the mess if every package does it differently.
    Novice users will be screwed, all common $searchengine-able solutions
    won't work anymore. Expert users will be constantly facepalming and
    likely fire up reportbug(1) with constantly swearing "WTF?" to themselves.

    Most of the instances of the program will be installed for use on 'single user' or 'single user account' machines. The cases where a machine is 'multi user' will likely be developers or being 'managed' by ICT people so that
    will not be an issue. In normal user cases they will use a package manager
    to uninstall the package and will not go near a command prompt.

    Nope, that is not how packaging for Debian works.
    Debian being the universal operating system has so many uses cased, not
    only single-user or multi-user. There are also no special for-developer-only-deb-flavours and people might or might not use the
    cli; How would you tell that this is a developer machine? How would you
    tell that the user is using a GUI or not. Your package must not behave differenlty only because it was installed differently…

    --
    tobi

    PS: It makes it harder to response if remove the context. It is suggested [1] to use the interleaved style[2].

    [1] https://wiki.debian.org/DebianMailingLists#Posting_Rules.2C_Guidelines.2C_and_Tips
    [2] https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Kris Deugau@21:1/5 to Jon Gough on Fri May 7 16:50:02 2021
    Jon Gough wrote:
    The user install plugins can vary between very simple with a config file
    and a couple of icons up to complex with large data >1GB and hundreds of icons.

    So, if debs must not touch files in $HOME but is allowed to create files there (is that not a contradiction?) where else could the 'system' files
    be placed?

    The actual .deb *package* (by way of the programs that install/uninstall packages) may not make changes to files under $HOME.

    The program *within* a .deb may (and in many cases is expected to)
    create. alter, and/or delete some selection of files in $HOME.

    If a plugin is to be considered a "system" addition, it must be packaged (either with the main program, or as a separate optional package).
    Otherwise it's not a system file so far as the packaging system is
    concerned.

    Is there a process that allows the deb to 'clean up' the application
    when the application is uninstalled, in particular any 'install'
    artefacts that have been installed by plugins?

    Not really. The Firefox package, for instance, won't clear up the
    leftover cache data, bookmarks, and other configuration from users'
    $HOME when uninstalled - including things like addons the user may have installed direct from the Mozilla addons site.

    -kgd

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From jonsgough@gmail.com@21:1/5 to All on Fri May 7 18:20:01 2021
    The user install plugins can vary between very simple with a config file
    and a couple of icons up to complex with large data >1GB  and hundreds
    of icons. So leaving them lying around on smaller, resource constrained
    systems when the main application is removed does not seem very user
    friendly.

    If debs must not touch files in $HOME but is allowed to create files
    there (is that not a contradiction?) where else could the 'user' files
    be placed?

    Is there a process that allows the deb to 'clean up' the application
    when the application is uninstalled, in particular any 'install'
    artifacts that have been installed by plugins? Debs will identify
    dependencies (other debs) that are no longer required when they are
    uninstalled and the system package manger will allow automatic uninstall
    of unused items if the user wants. Debs will also allow complete delete
    of all data that was installed.

    In the main it is expected that the systems will be 'single user' or
    'single user account', so it is unlikely that there will be multiple
    plugin installs for different users. The idea of the plugin manager is
    to remove the need to have elevated privileges to install plugins so it
    makes the user experience better. The use of .local and .config is not
    the problem it is the clean up at uninstall that is. My experience of
    most users is that they have no understanding of the file system beyond 'Documents', 'Downloads' and 'Desktop', so I am trying to work within
    that constraint. I know users who buy new phones/tablets/PC's because
    they become 'slow' due to obsolete stuff lying around which they were
    not aware of, so I am trying to avoid exacerbating this issue.

    The intention is not to delete config files or user data unless
    explicitly requested to do so. It is just to remove the 'packaged' files
    or files that are non-user modifiable which can easily and automatically re-downloaded if needed.


    Jon

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Jon Gough@21:1/5 to Kris Deugau on Fri May 7 22:50:02 2021
    This is a multi-part message in MIME format.
    On 8/5/21 12:17 am, Kris Deugau wrote:
    Jon Gough wrote:
    The user install plugins can vary between very simple with a config
    file and a couple of icons up to complex with large data >1GB and
    hundreds of icons.

    So, if debs must not touch files in $HOME but is allowed to create
    files there (is that not a contradiction?) where else could the
    'system' files be placed?

    The actual .deb *package* (by way of the programs that
    install/uninstall packages) may not make changes to files under $HOME.

    The program *within* a .deb may (and in many cases is expected to)
    create. alter, and/or delete some selection of files in $HOME.

    If a plugin is to be considered a "system" addition, it must be
    packaged (either with the main program, or as a separate optional
    package). Otherwise it's not a system file so far as the packaging
    system is concerned.

    Is there a process that allows the deb to 'clean up' the application
    when the application is uninstalled, in particular any 'install'
    artefacts that have been installed by plugins?

    Not really.  The Firefox package, for instance, won't clear up the
    leftover cache data, bookmarks, and other configuration from users'
    $HOME when uninstalled - including things like addons the user may
    have installed direct from the Mozilla addons site.

    -kgd

    Hi,
       So, any user installable application extension/plugin which has
    executables and supporting data is left behind on the system when the
    owning application is removed or updated using the system installation
    process? This is accepted behaviour? Shouldn't applications clean up
    after themselves and not leave user systems with junk lying around?

    Jon

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html;
    charset=windows-1252">
    </head>
    <body>
    On 8/5/21 12:17 am, Kris Deugau wrote:<br>
    <blockquote type="cite"
    cite="mid:4e9adafd-4fca-fd5d-9f64-c3b5bd020e4c@vianet.ca">Jon
    Gough wrote:
    <br>
    <blockquote type="cite">The user install plugins can vary between
    very simple with a config file and a couple of icons up to
    complex with large data &gt;1GB and hundreds of icons.
    <br>
    <br>
    So, if debs must not touch files in $HOME but is allowed to
    create files there (is that not a contradiction?) where else
    could the 'system' files be placed?
    <br>
    </blockquote>
    <br>
    The actual .deb *package* (by way of the programs that
    install/uninstall packages) may not make changes to files under
    $HOME.
    <br>
    <br>
    The program *within* a .deb may (and in many cases is expected to)
    create. alter, and/or delete some selection of files in $HOME.
    <br>
    <br>
    If a plugin is to be considered a "system" addition, it must be
    packaged (either with the main program, or as a separate optional
    package). Otherwise it's not a system file so far as the packaging
    system is concerned.
    <br>
    <br>
    <blockquote type="cite">Is there a process that allows the deb to
    'clean up' the application when the application is uninstalled,
    in particular any 'install' artefacts that have been installed
    by plugins?
    <br>
    </blockquote>
    <br>
    Not really.  The Firefox package, for instance, won't clear up the
    leftover cache data, bookmarks, and other configuration from
    users' $HOME when uninstalled - including things like addons the
    user may have installed direct from the Mozilla addons site.
    <br>
    <br>
    -kgd
    <br>
    <br>
    </blockquote>
    <font face="Bookman Old Style">Hi,<br>
       So, any user installable application extension/plugin which has
    executables and supporting data is left behind on the system when
    the owning application is removed or updated using the system
    installation process? This is accepted behaviour? Shouldn't
    applications clean up after themselves and not leave user systems
    with junk lying around?<br>
    <br>
    Jon<br>
    </font>
    </body>
    </html>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Erik Huelsmann@21:1/5 to jonsgough@gmail.com on Fri May 7 23:00:01 2021
    Hi Jon,

    On Fri, May 7, 2021 at 10:47 PM Jon Gough <jonsgough@gmail.com> wrote:

    On 8/5/21 12:17 am, Kris Deugau wrote:

    Jon Gough wrote:

    The user install plugins can vary between very simple with a config file
    and a couple of icons up to complex with large data >1GB and hundreds of icons.

    So, if debs must not touch files in $HOME but is allowed to create files there (is that not a contradiction?) where else could the 'system' files be placed?


    The actual .deb *package* (by way of the programs that install/uninstall packages) may not make changes to files under $HOME.

    The program *within* a .deb may (and in many cases is expected to) create. alter, and/or delete some selection of files in $HOME.

    If a plugin is to be considered a "system" addition, it must be packaged (either with the main program, or as a separate optional package).
    Otherwise it's not a system file so far as the packaging system is
    concerned.

    Is there a process that allows the deb to 'clean up' the application when
    the application is uninstalled, in particular any 'install' artefacts that have been installed by plugins?


    Not really. The Firefox package, for instance, won't clear up the
    leftover cache data, bookmarks, and other configuration from users' $HOME when uninstalled - including things like addons the user may have installed direct from the Mozilla addons site.

    -kgd

    Hi,
    So, any user installable application extension/plugin which has executables and supporting data is left behind on the system when the
    owning application is removed or updated using the system installation process? This is accepted behaviour? Shouldn't applications clean up after themselves and not leave user systems with junk lying around?


    I guess what people in this thread are trying to tell you that you're
    supposed to package plugins as Debian packages if they're too big to be in ~/.local/; the same is true for any plugin you want to be uninstalled when
    the application gets uninstalled. So, if you think that leaving the plugins behind is unacceptable, you have to package it.


    Regards,

    --
    Bye,

    Erik.

    http://efficito.com -- Hosted accounting and ERP.
    Robust and Flexible. No vendor lock-in.

    <div dir="ltr"><div>Hi Jon,<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, May 7, 2021 at 10:47 PM Jon Gough &lt;<a href="mailto:jonsgough@gmail.com">jonsgough@gmail.com</a>&gt; wrote:<br></div><blockquote class="gmail_
    quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">



    <div>
    On 8/5/21 12:17 am, Kris Deugau wrote:<br>
    <blockquote type="cite">Jon
    Gough wrote:
    <br>
    <blockquote type="cite">The user install plugins can vary between
    very simple with a config file and a couple of icons up to
    complex with large data &gt;1GB and hundreds of icons.
    <br>
    <br>
    So, if debs must not touch files in $HOME but is allowed to
    create files there (is that not a contradiction?) where else
    could the &#39;system&#39; files be placed?
    <br>
    </blockquote>
    <br>
    The actual .deb *package* (by way of the programs that
    install/uninstall packages) may not make changes to files under
    $HOME.
    <br>
    <br>
    The program *within* a .deb may (and in many cases is expected to)
    create. alter, and/or delete some selection of files in $HOME.
    <br>
    <br>
    If a plugin is to be considered a &quot;system&quot; addition, it must be
    packaged (either with the main program, or as a separate optional
    package). Otherwise it&#39;s not a system file so far as the packaging
    system is concerned.
    <br>
    <br>
    <blockquote type="cite">Is there a process that allows the deb to
    &#39;clean up&#39; the application when the application is uninstalled,
    in particular any &#39;install&#39; artefacts that have been installed
    by plugins?
    <br>
    </blockquote>
    <br>
    Not really.  The Firefox package, for instance, won&#39;t clear up the
    leftover cache data, bookmarks, and other configuration from
    users&#39; $HOME when uninstalled - including things like addons the
    user may have installed direct from the Mozilla addons site.
    <br>
    <br>
    -kgd
    <br>
    <br>
    </blockquote>
    <font face="Bookman Old Style">Hi,<br>
       So, any user installable application extension/plugin which has
    executables and supporting data is left behind on the system when
    the owning application is removed or updated using the system
    installation process? This is accepted behaviour? Shouldn&#39;t
    applications clean up after themselves and not leave user systems
    with junk lying around?<br>
    <br></font></div></blockquote><div><br></div><div>I guess what people in this thread are trying to tell you that you&#39;re supposed to package plugins as Debian packages if they&#39;re too big to be in ~/.local/; the same is true for any plugin
    you want to be uninstalled when the application gets uninstalled. So, if you think that leaving the plugins behind is unacceptable, you have to package it.<br></div></div><div><br></div><div><br></div><div>Regards,<br></div><div><br></div>-- <br><div dir=
    "ltr" class="gmail_signature"><div dir="ltr">Bye,<div><br></div><div>Erik.</div><div><br></div><div><a href="http://efficito.com/" target="_blank">http://efficito.com</a> -- Hosted accounting and ERP.</div><div>Robust and Flexible. No vendor lock-in.</
    </div></div></div>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From The Wanderer@21:1/5 to Jon Gough on Fri May 7 23:20:02 2021
    This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
    On 2021-05-07 at 16:47, Jon Gough wrote:

    On 8/5/21 12:17 am, Kris Deugau wrote:

    Jon Gough wrote:

    Is there a process that allows the deb to 'clean up' the
    application when the application is uninstalled, in particular
    any 'install' artefacts that have been installed by plugins?

    Not really. The Firefox package, for instance, won't clear up the
    leftover cache data, bookmarks, and other configuration from
    users' $HOME when uninstalled - including things like addons the
    user may have installed direct from the Mozilla addons site.

    Hi, So, any user installable application extension/plugin which has executables and supporting data is left behind on the system when the
    owning application is removed or updated using the system
    installation process? This is accepted behaviour?

    Yes. In fact, it's intended and desired behavior.

    Shouldn't applications clean up after themselves and not leave user
    systems with junk lying around?

    In addition to what others have said:

    Just because the user uninstalled the program now, doesn't mean they
    don't plan to reinstall it (either from the package, or by compilation
    from upstream, or by some other means) later on - or, for that matter,
    install a fork that also knows how to use the same plugins.

    If the user-profile installed data is big enough for cleaning it up to
    be a meaningful gain, isn't it also big enough for redownloading it - to
    say nothing of re-applying any local configuration settings that may
    have been stored in it - to be a painful consideration?


    For example, using the Firefox reference mentioned above, I have
    frequently uninstalled one Firefox version and later installed another - testing whether my local configuration is compatible with an upgraded
    version, then reverting to the older version to continue day-to-day use
    while I work to update the code for the newer version. That local
    configuration includes quite a few Firefox extensions (i.e., plugins in
    another sense), including one which I maintain locally for my own use.

    If uninstalling the Firefox package deleted the user-profile Firefox
    data, that would be much more difficult (because I'd have to back up the user-profile Firefox data before uninstalling one version, and restore
    the backup after installing the other), and the first time I did the
    uninstall I'd have lost my Firefox configuration - which is sizable and extensive, and whose roots date back literally decades. I would have
    been furious beyond belief to have lost that data. (While I did have
    backups I could have reverted to, not everyone will, and even in my case
    they were at that point older than I'd have liked to have to use.)


    There are certainly trade-offs about not permitting packages to touch
    files in $HOME at install or uninstall time; the risk of leaving
    unneeded cruft behind, as you cite, is one of them.

    For my money, however, the risk of data loss from deleting something
    that the user wanted to keep is enough by itself to outweigh the
    possibility of cruft. The problems of not necessarily being *able* to
    access $HOME at package uninstall time (if, for example, some users'
    home directories are on a currently-not-accessible encrypted filesystem
    or a currently-not-mounted network share) just add more justification on
    top of that.

    --
    The Wanderer

    The reasonable man adapts himself to the world; the unreasonable one
    persists in trying to adapt the world to himself. Therefore all
    progress depends on the unreasonable man. -- George Bernard Shaw


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

    iQIzBAEBCgAdFiEEJCOqsZEc2qVC44pUBKk1jTQoMmsFAmCVrbgACgkQBKk1jTQo Mmt+XQ//aB7BERxZW1P+J95mDU0fR5Ic+yDjnDW6n4kOCsTm13txk+YvHdTw1qIM hOsks1HuSXR39zirfKFJelopEOtlfgb6wUNf+PMix1PuXu3Zzoy+J2pKqvXPeP+r T2Gr7O0YVf8dnsjg5IgqjjbQrCdYA7qLDrfEwaxR8lotdLsqgnVElwY1RGhhBAtb 4rq2jP8/ZNlVH6kKr+SUR+bKaR9U4XMU4+6q66Ti3xwnEbCn+cE2SIIL3krluP7+ /gVulrx1OvMxr5xgjhgKW+z6eowPBGotkPznVAYuoMAxpkWVwnNKmnJpaxBE50f4 hnbf82FLxNScuss4a0oh2XfU2Q5p8T5QUBwOWHMbcgCTF891/Mv22Oro1b8VO1+G BWPzfbu+wkhN3ud/j5wswAFJyicyAJld2i1vNKIr8jsxXGMHTcrkFLiveTK8Wury vws+BXVyLwEs2OtPvSrZW6V6BFpz24NpZ+HsJ6Aj6IAzJp+6eHCv0T14awqvTlt5 Z++RsynLzRMSSMnZuqQ6vE+oCWpU4+ZZlOrWUimI9e7dlekO9Nd57JuWgq4YhOuK O0pDhh3+De3KOpWPsIxJpAETHRlx0YJPZKY+R3VztSXR2mbB4HXRPqoOwfHJ0yOZ lxxdmlEl4Zr0cU2lHhgj21+L5OvW
  • From Sven Hartge@21:1/5 to Jon Gough on Sat May 8 15:00:02 2021
    Jon Gough <jonsgough@gmail.com> wrote:

       So, any user installable application extension/plugin which has executables and supporting data is left behind on the system when the
    owning application is removed or updated using the system installation process? This is accepted behaviour?

    Yes, this is accepted behaviour, because the system does not know if the
    user uses the file for anything else. Maybe $HOME is mounted from the
    network and the application using the files is still being used on a
    different system.

    Shouldn't applications clean up after themselves and not leave user
    systems with junk lying around?

    No.

    Grüße,
    S°

    --
    Sigmentation fault. Core dumped.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Jon Gough@21:1/5 to Sven Hartge on Sun May 9 00:00:03 2021
    On 8/5/21 10:51 pm, Sven Hartge wrote:
    Jon Gough <jonsgough@gmail.com> wrote:

       So, any user installable application extension/plugin which has
    executables and supporting data is left behind on the system when the
    owning application is removed or updated using the system installation
    process? This is accepted behaviour?
    Yes, this is accepted behaviour, because the system does not know if the
    user uses the file for anything else. Maybe $HOME is mounted from the
    network and the application using the files is still being used on a different system.

    Shouldn't applications clean up after themselves and not leave user
    systems with junk lying around?
    No.

    Grüße,
    S°

    This suggests that for most plugins the plugin manager should facilitate finding and installing the plugins and should probably have two
    installation methodologies, one for simple plugins with very small
    executable and data (non-user) footprint and one for complex plugins
    with large executables and/or data (non-user). The simple one could be
    based on unzipping a file and placing it in the $HOME directory
    structure, the complex one could be based on 'deb' using system services
    to install the plugin in system areas and only having user data in the
    $HOME directory structure. This would then allow the system to manage
    the removal of the non-user components when/if the main application is
    removed.

    Thanks for your help in clarifying this.

    Jon

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Jon Gough@21:1/5 to Mechtilde on Sun May 9 08:50:01 2021
    On 9/5/21 4:31 pm, Mechtilde wrote:
    Hello Jon,

    which plugin manager are you talking about.

    Each application providing plugins has its own mechanism to handle them.

    So i don't understand what your conclusion is. So I want to know whether
    my packages can be affected or benefit of it.

    Regards

    Mechtilde

    Am 08.05.21 um 23:50 schrieb Jon Gough:

    On 8/5/21 10:51 pm, Sven Hartge wrote:
    Jon Gough <jonsgough@gmail.com> wrote:

        So, any user installable application extension/plugin which has >>>> executables and supporting data is left behind on the system when the
    owning application is removed or updated using the system installation >>>> process? This is accepted behaviour?
    Yes, this is accepted behaviour, because the system does not know if the >>> user uses the file for anything else. Maybe $HOME is mounted from the
    network and the application using the files is still being used on a
    different system.

    Shouldn't applications clean up after themselves and not leave user
    systems with junk lying around?
    No.

    Grüße,
    S°

    This suggests that for most plugins the plugin manager should facilitate
    finding and installing the plugins and should probably have two
    installation methodologies, one for simple plugins with very small
    executable and data (non-user) footprint and one for complex plugins
    with large executables and/or data (non-user). The simple one could be
    based on unzipping a file and placing it in the $HOME directory
    structure, the complex one could be based on 'deb' using system services
    to install the plugin in system areas and only having user data in the
    $HOME directory structure. This would then allow the system to manage
    the removal of the non-user components when/if the main application is
    removed.

    Thanks for your help in clarifying this.

    Jon

    My conclusion is that application plugin mangers should make use of the platform installation process for installing and uninstalling plugins as
    it would appear that 'deb' install packages cannot ever do a proper
    clean up of software they have installed, and by implication, allowed to
    be installed. This would appear to be more to do with the sanctity of
    $HOME, i.e. you can put stuff in there but must never remove stuff, than
    the actual practicality of doing so. This hints that $HOME is not the
    correct location to put executable and binary support data (non-user modifiable) as it is not supportable nor maintainable.

    It should be quite simple to have the 'deb' uninstall process start an 'application process' that knows all packages that have been installed
    and allow them to be uninstall if the user wishes. But this again is not considered acceptable. However, leaving programs and binary non-user
    data on the device is considered acceptable. This is an interesting
    concept for phone and tablet devices which are resource constrained.

    I now know what path I need to follow, i.e. have a plugin manager that
    uses the platform installation process so that the uninstall process
    will work and the packages and objects will be tracked.

    Thanks

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mechtilde@21:1/5 to All on Sun May 9 08:40:01 2021
    This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --oCHe5ebfRJGMjYzEucASnEWQztxO2qHvX
    Content-Type: text/plain; charset=utf-8
    Content-Language: en-US
    Content-Transfer-Encoding: quoted-printable

    Hello Jon,

    which plugin manager are you talking about.

    Each application providing plugins has its own mechanism to handle them.

    So i don't understand what your conclusion is. So I want to know whether
    my packages can be affected or benefit of it.

    Regards

    Mechtilde

    Am 08.05.21 um 23:50 schrieb Jon Gough:


    On 8/5/21 10:51 pm, Sven Hartge wrote:
    Jon Gough <jonsgough@gmail.com> wrote:

        So, any user installable application extension/plugin which has
    executables and supporting data is left behind on the system when the
    owning application is removed or updated using the system installation
    process? This is accepted behaviour?
    Yes, this is accepted behaviour, because the system does not know if the
    user uses the file for anything else. Maybe $HOME is mounted from the
    network and the application using the files is still being used on a
    different system.

    Shouldn't applications clean up after themselves and not leave user
    systems with junk lying around?
    No.

    Grüße,
    S°

    This suggests that for most plugins the plugin manager should facilitate finding and installing the plugins and should probably have two
    installation methodologies, one for simple plugins with very small
    executable and data (non-user) footprint and one for complex plugins
    with large executables and/or data (non-user). The simple one could be
    based on unzipping a file and placing it in the $HOME directory
    structure, the complex one could be based on 'deb' using system services
    to install the plugin in system areas and only having user data in the
    $HOME directory structure. This would then allow the system to manage
    the removal of the non-user components when/if the main application is removed.

    Thanks for your help in clarifying this.

    Jon


    --
    Mechtilde Stehmann
    ## Apache OpenOffice
    ## Freie Office Suite für Linux, MacOSX, Windows und OS/2
    ## Debian Developer
    ## PGP encryption welcome
    ## F0E3 7F3D C87A 4998 2899 39E7 F287 7BBA 141A AD7F


    --oCHe5ebfRJGMjYzEucASnEWQztxO2qHvX--

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

    iQIzBAEBCgAdFiEE8ON/Pch6SZgomTnn8od7uhQarX8FAmCXgbwACgkQ8od7uhQa rX85GxAAodxM+TkdC9+JZXdKdM1zBqeEUpA+7uwj4EA0R42P/vAA5dxGnsxkfgAc XJstaUkQ/0hM98bUtEudbjGwDQa9UlQZENZ2/Vb04ouSMu76w0cuEnD+ifySkRA+ CG998HYCA/sp3u3/6Inc55f6/Bw48fYRoGzLMoKji5J0A1x3L6acE/9Wkh72a8HE namw8I/XEqyVVGeCeJrh9klynqabgZzx8KsbLg9qNrHYtCnUZyGH/0TMQ5pWdO0v usfr4bdAufQxMgAVD/fen3HwtbbskDeUigEpNusmtrDidRfDMP+PViTyMkmyvFOw ONtuvv9jWMlHQa5jtQsipY6QyeFqrLVtxQlsCLEXM5rAKTL6D8xDg8X7U4D1Nx/P 06Bc3t026InGTzNG79rBf8rv5uCsOlU8Ju7CQ1aeoeJ6WI6+5RAzVFzvSgbphM36 NglcZn9vSWZ5ICHgpXsJSsFuLrowkH/4WkSJCAkQIOayHtE43ooNghzmrUcJG+Oa sCqYsOA0COFGaX5oaCj/aRZMD08SVQDqN0dZAIsGHnMzmYu3RCSw4U36IrhoUh9K MfJolXGR5NjwSPmKryabZRFpGpuUU/uOPSeb/1ygMyk4ZzQii3UbB/hhGGUkKICB
    zPJbus6sVv
  • From Martin Atukunda@21:1/5 to tobi@debian.org on Sun May 9 09:10:01 2021
    On Fri, 7 May 2021, 08:35 Tobias Frost, <tobi@debian.org> wrote:

    On Fri, May 07, 2021 at 10:58:27AM +1000, Jon Gough wrote:
    The user install plugins can vary between very simple with a config file
    and
    a couple of icons up to complex with large data >1GB and hundreds of
    icons.

    So, if debs must not touch files in $HOME but is allowed to create files there (is that not a contradiction?)

    Sorry if my wording was not precise enough:
    Packages are not allowed to do that either. The only way a package
    might modify $HOME if the user owning $HOME started a program in the packages. touch in my sentence != touch(1).

    where else could the 'system' files be placed?

    Not sure what you mean about system files.
    My interpretation would be that "system" files come from the .deb. Here, Debian policy is the reference, and §9 refers to the FHS with
    execptions. This is probably what you need to read to answer your
    question, if I got you right.


    The debian policy manual also mentions plug-ins in section 10.2.

    AFAIK packagess should not install or uninstall files into $HOME. But
    nothing prevents the package from installing a program or script that can
    do so when the program is invoked by a real user.

    Or you mean something like what this tries to solve:

    https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html

    (However, a regular user has not means to install something outside of $HOME.)

    Is there a process that allows the deb to 'clean up' the application when the application is uninstalled, in particular any 'install' artefacts
    that
    have been installed by plugins? Debs will identify dependencies that are
    no
    longer required when they are uninstalled and the system package manger
    will
    allow automatic uninstall of unused items if the user wants.

    I'm not aware that such thing exists. (read:I'm pretty sure it does
    not.) And would it be even possible? Starting already with the question
    how would you ask _ALL_ the affected users at apt remove-time. And what
    is if the user has got a crypted home or the $HOME/.config $HOME/.local
    is on a network share … … … … … … … … …

    The use of .local and .config is not an issue when installing, but it is during the un-install process that the issue arises. My experience of
    users
    is that they know little of the file system and only really recognise 'Documents', 'Downloads' and 'Desktop' as being places where things are stored. I know of users who upgrade phones/tablets/PC's because they
    become
    'slow' due to left over items filling all available disk space. I am
    hoping
    to be a little more user friendly than that. The whole purpose of the
    plugin
    manager is to allow users to extend the capabilities of the application without having to worry about the 'deb' install processes.

    You'll be most friendly to the users if you stick to standards.

    If you do something special, the users will to have to suddenly know
    your speciality. Imagine the mess if every package does it differently. Novice users will be screwed, all common $searchengine-able solutions
    won't work anymore. Expert users will be constantly facepalming and
    likely fire up reportbug(1) with constantly swearing "WTF?" to themselves.

    Most of the instances of the program will be installed for use on 'single user' or 'single user account' machines. The cases where a machine is
    'multi
    user' will likely be developers or being 'managed' by ICT people so that will not be an issue. In normal user cases they will use a package
    manager
    to uninstall the package and will not go near a command prompt.

    Nope, that is not how packaging for Debian works.
    Debian being the universal operating system has so many uses cased, not
    only single-user or multi-user. There are also no special for-developer-only-deb-flavours and people might or might not use the
    cli; How would you tell that this is a developer machine? How would you
    tell that the user is using a GUI or not. Your package must not behave differenlty only because it was installed differently…

    --
    tobi

    PS: It makes it harder to response if remove the context. It is suggested
    [1]
    to use the interleaved style[2].

    [1] https://wiki.debian.org/DebianMailingLists#Posting_Rules.2C_Guidelines.2C_and_Tips
    [2] https://en.wikipedia.org/wiki/Posting_style#Interleaved_style




    <div dir="auto"><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, 7 May 2021, 08:35 Tobias Frost, &lt;<a href="mailto:tobi@debian.org">tobi@debian.org</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;
    border-left:1px #ccc solid;padding-left:1ex">On Fri, May 07, 2021 at 10:58:27AM +1000, Jon Gough wrote:<br>
    &gt; The user install plugins can vary between very simple with a config file and<br>
    &gt; a couple of icons up to complex with large data &gt;1GB and hundreds of icons.<br>
    &gt; <br>
    &gt; So, if debs must not touch files in $HOME but is allowed to create files<br>
    &gt; there (is that not a contradiction?)<br>

    Sorry if my wording was not precise enough:<br>
    Packages are not allowed to do that either.  The only way a package<br>
    might modify $HOME if the user owning $HOME started a program in the<br> packages. touch in my sentence != touch(1).<br>

    &gt; where else could the &#39;system&#39; files be placed?<br>

    Not sure what you mean about system files.<br>
    My interpretation would be that &quot;system&quot; files come from the .deb. Here,<br>
    Debian policy is the reference, and §9 refers to the FHS with<br> execptions.  This is probably what you need to read to answer your<br> question, if I got you right.<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">The debian policy manual also mentions plug-ins in section 10.2.</div><div dir="auto"><br></div><div dir="auto">AFAIK packagess should not install or
    uninstall files into $HOME. But nothing prevents the package from installing a program or script that can do so when the program is invoked by a real user.</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_
    quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> Or you mean something like what this tries to solve:<br>
    <a href="https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html" rel="noreferrer noreferrer" target="_blank">https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html</a><br>

    (However, a regular user has not means to install something outside of<br> $HOME.)<br>

    &gt; Is there a process that allows the deb to &#39;clean up&#39; the application when<br>
    &gt; the application is uninstalled, in particular any &#39;install&#39; artefacts that<br>
    &gt; have been installed by plugins? Debs will identify dependencies that are no<br>
    &gt; longer required when they are uninstalled and the system package manger will<br>
    &gt; allow automatic uninstall of unused items if the user wants.<br>

    I&#39;m not aware that such thing exists. (read:I&#39;m pretty sure it does<br> not.) And would it be even possible? Starting already with the question<br>
    how would you ask _ALL_ the affected users at apt remove-time.  And what<br> is if the user has got a crypted home or the $HOME/.config $HOME/.local<br>
    is on a network share … … … … … … … … …<br>

    &gt; The use of .local and .config is not an issue when installing, but it is<br>
    &gt; during the un-install process that the issue arises. My experience of users<br>
    &gt; is that they know little of the file system and only really recognise<br> &gt; &#39;Documents&#39;, &#39;Downloads&#39; and &#39;Desktop&#39; as being places where things are<br>
    &gt; stored. I know of users who upgrade phones/tablets/PC&#39;s because they become<br>
    &gt; &#39;slow&#39; due to left over items filling all available disk space. I am hoping<br>
    &gt; to be a little more user friendly than that. The whole purpose of the plugin<br>
    &gt; manager is to allow users to extend the capabilities of the application<br>
    &gt; without having to worry about the &#39;deb&#39; install processes.<br>

    You&#39;ll be most friendly to the users if you stick to standards.<br>

    If you do something special, the users will to have to suddenly know<br>
    your speciality. Imagine the mess if every package does it differently.<br> Novice users will be screwed, all common $searchengine-able solutions<br> won&#39;t work anymore. Expert users will be constantly facepalming and<br> likely fire up reportbug(1) with constantly swearing &quot;WTF?&quot; to themselves.<br>

    &gt; Most of the instances of the program will be installed for use on &#39;single<br>
    &gt; user&#39; or &#39;single user account&#39; machines. The cases where a machine is &#39;multi<br>
    &gt; user&#39; will likely be developers or being &#39;managed&#39; by ICT people so that<br>
    &gt; will not be an issue. In normal user cases they will use a package manager<br>
    &gt; to uninstall the package and will not go near a command prompt.<br>

    Nope, that is not how packaging for Debian works.<br>
    Debian being the universal operating system has so many uses cased, not<br> only single-user or multi-user. There are also no special<br> for-developer-only-deb-flavours and people might or might not use the<br>
    cli; How would you tell that this is a developer machine? How would you<br> tell that the user is using a GUI or not. Your package must not behave<br> differenlty only because it was installed differently…<br>

    -- <br>
    tobi<br>

    PS: It makes it harder to response if remove the context. It is suggested [1]<br>
    to use the interleaved style[2].<br>

    [1] <a href="https://wiki.debian.org/DebianMailingLists#Posting_Rules.2C_Guidelines.2C_and_Tips" rel="noreferrer noreferrer" target="_blank">https://wiki.debian.org/DebianMailingLists#Posting_Rules.2C_Guidelines.2C_and_Tips</a><br>
    [2] <a href="https://en.wikipedia.org/wiki/Posting_style#Interleaved_style" rel="noreferrer noreferrer" target="_blank">https://en.wikipedia.org/wiki/Posting_style#Interleaved_style</a><br>

    </blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br></blockquote></div></div></div>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Andrey Rahmatullin@21:1/5 to Jon Gough on Sun May 9 09:50:02 2021
    On Sun, May 09, 2021 at 04:41:13PM +1000, Jon Gough wrote:
    My conclusion is that application plugin mangers should make use of the platform installation process for installing and uninstalling plugins as it
    "the platform installation process" sounds like using debs, am I wrong?

    would appear that 'deb' install packages cannot ever do a proper clean up of software they have installed
    This a) sounds worse than it is, b) is not specific to debs and instead
    is true for all or almost all software installation ways out there, except
    for heavily containerized things.

    This hints that $HOME is not the correct location to put executable and binary support data (non-user modifiable)
    This is not true, browsers and things like IDEs do that all the time and
    it works as expected.

    However, leaving programs and binary non-user data on
    the device is considered acceptable. This is an interesting concept for
    phone and tablet devices which are resource constrained.
    Users of space-constrained systems should clean up the files they no
    longer need manually, preferably using tools that show the space
    distribution.

    I now know what path I need to follow, i.e. have a plugin manager that uses the platform installation process so that the uninstall process will work
    and the packages and objects will be tracked.
    If this means calling apt from a plugin manager then it's probably not the
    best idea.

    --
    WBR, wRAR

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

    iQJhBAABCgBLFiEEolIP6gqGcKZh3YxVM2L3AxpJkuEFAmCXkfgtFIAAAAAAFQAP cGthLWFkZHJlc3NAZ251cGcub3Jnd3JhckBkZWJpYW4ub3JnAAoJEDNi9wMaSZLh nJcQAJqpa27wMW3Yw9Do818kCotwEb+mhVo38l0yT6v9RG9Cp9GhYSJas+w+KVjs lKWbO8JMpbG7ggxtq5R7FhEENnv+5vX9+gbZfq1uVWYhuUarynhCKiUNa5wq4fMx uleJEg57ho09eQFs+WLdujXrvw8PVgDlXXIQB9DP9AY95rqwMW8ntRdHZIEYyZDi rU0QCc0k3qzukXFeoBOtafogK63Ol6SNB8RKgFuU2bPvxBl5sPfXHfbA/O4xuT3A kEP4xZxNjxSK8Np3fXbBA53daCwMJmFHO2YDbab9WC4A/NUoU5ZfmkCG1MUcqNZ4 HjXKSSLAQ9M3oSVPuamfiOKT/7dUz/5X2LADPoxav2PtL8ZxeBrSn337O2Q8+EPe XBLY4AVi+uPuDvBziXSMU7HgBV4rgM9HGjNTl3svuUNnX8oHW+smGE+aM9dAju9V g7hoWjuNqyhyNy4dzcEyoVoSafW4Il+zvAX2vuFvb26wZwB2vO8tudW0ToL3UcgX OGaXfTVZRbk67mqnUQBoK/PW+u1puHaHr4iiUvKK/p/I6x53H4N5FZMI3rH3uLoG nSB552hVXgETnw8Gd/IZyOnZZGwtny2gChuAUNc3dKpVk+9h30Z5bMsYxCuDwbOd 6k/xP7jLmq0ZjWRSKCHnarxKoDQ4gnef9eYSUnL9iH5CKZua
    =3Oi5
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Andrey Rahmatullin@21:1/5 to Martin Atukunda on Sun May 9 09:50:01 2021
    On Sun, May 09, 2021 at 10:07:38AM +0300, Martin Atukunda wrote:
    where else could the 'system' files be placed?

    Not sure what you mean about system files.
    My interpretation would be that "system" files come from the .deb. Here, Debian policy is the reference, and §9 refers to the FHS with
    execptions. This is probably what you need to read to answer your question, if I got you right.


    The debian policy manual also mentions plug-ins in section 10.2.
    Only about specifics of linking plugins that are ELF libraries, which is
    not what is being discussed here.


    --
    WBR, wRAR

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

    iQJhBAABCgBLFiEEolIP6gqGcKZh3YxVM2L3AxpJkuEFAmCXknMtFIAAAAAAFQAP cGthLWFkZHJlc3NAZ251cGcub3Jnd3JhckBkZWJpYW4ub3JnAAoJEDNi9wMaSZLh IKIP/AlJCON0S8cDpGyWYh54n1TbCbylQ2kDdbTqA7IxMTrHTm+PaI+W4ZeyG0LG 82oyOfaRsMrvOw/ky1f72kUHfmTJsbMus0TwZ+U5i7dLWcN8v0es7HSEL94nd8vm BaQ7c2n7f/bPpyA+ubH8Tl34tBFYqhyIh2fgj7UNiPTNu0kz9Apr0YigCYB31gsI NUcMYuxhJiECt4QetLq3iFjUEGJBD7No4qKA9BErCKc8SS1VfEGbBpMHyaBFj+bE nY6e4HQnN4YTLu5gdQCC9p+oozDBFieD08I2BcKvLH2D8Lq7eEdS11BVZssz3y5S v0QM57huHEU7xX6rIK7b0HaSaLJQi0aHIkKlPyeLZrDQPLH+YwCsuCC/y6jngzBf TQ/sVsaOKHOb9GUD58EMGXhPYWFsrwWi2G0svxVWFAyK6Re694/HdbNVa8IFEjxR +nTt0Lr2aNmsMegxry9gC4RdNM7ffJM0RuF6uKqHKppfypyYsY2JYkbiK43T0Xvc QSLasmIYZbBxxfEt/RuVMeMSsC9iEe0Mso8fPLDtXzs+CFwItoEH8cGl8OY/KgHH IBu7Y01XbivuSddnNqcR4urMjdvK5ZJncpuN3vFVYHkI0jlmu2EXaRE3rC3IFKUF Jmu7fCtieu47gMcru0gKimBt+PM0DbC/3Qu3ahDSbabRxcbw
    =hDbK
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Tobias Frost@21:1/5 to All on Sun May 9 10:20:01 2021
    Am Sun, May 09, 2021 at 04:41:13PM +1000 schrieb Jon Gough:


    On 9/5/21 4:31 pm, Mechtilde wrote:
    Hello Jon,

    which plugin manager are you talking about.

    Each application providing plugins has its own mechanism to handle them.

    So i don't understand what your conclusion is. So I want to know whether
    my packages can be affected or benefit of it.

    Regards

    Mechtilde

    Am 08.05.21 um 23:50 schrieb Jon Gough:

    On 8/5/21 10:51 pm, Sven Hartge wrote:
    Jon Gough <jonsgough@gmail.com> wrote:

        So, any user installable application extension/plugin which has
    executables and supporting data is left behind on the system when the owning application is removed or updated using the system installation
    process? This is accepted behaviour?
    Yes, this is accepted behaviour, because the system does not know if the
    user uses the file for anything else. Maybe $HOME is mounted from the network and the application using the files is still being used on a different system.

    Shouldn't applications clean up after themselves and not leave user systems with junk lying around?
    No.

    Grüße,
    S°

    This suggests that for most plugins the plugin manager should facilitate finding and installing the plugins and should probably have two installation methodologies, one for simple plugins with very small executable and data (non-user) footprint and one for complex plugins
    with large executables and/or data (non-user). The simple one could be based on unzipping a file and placing it in the $HOME directory structure, the complex one could be based on 'deb' using system services to install the plugin in system areas and only having user data in the $HOME directory structure. This would then allow the system to manage
    the removal of the non-user components when/if the main application is removed.

    Thanks for your help in clarifying this.

    Jon

    My conclusion is that application plugin mangers should make use of the platform installation process for installing and uninstalling plugins as it would appear that 'deb' install packages cannot ever do a proper clean up of software they have installed, and by implication, allowed to be installed.

    Not necesarlly. I would say it needs to be distribution-aware, but not necessarily integrating with "plattform installation process." See below.

    This would appear to be more to do with the sanctity of $HOME, i.e. you can put stuff in there but must never remove stuff,

    As this read ambiguous to me, lets make sure we both are on the same page:
    You are NOT allow to put thing in $HOME _at package installation time_
    Only your program / plugin manager / etc may do so after the user
    associated with $HOME has started it.

    than the actual practicality of doing so.

    (ambigity continued) The package manager would have NO safe method to
    remove files in any $HOME directory. so it is not practicabel for the
    package manager anyways.

    This hints that $HOME is not the correct location to put
    executable and binary support data (non-user modifiable) as it is not supportable nor maintainable.

    It should be quite simple to have the 'deb' uninstall process start an 'application process' that knows all packages that have been installed and allow them to be uninstall if the user wishes. But this again is not considered acceptable. However, leaving programs and binary non-user data on the device is considered acceptable. This is an interesting concept for
    phone and tablet devices which are resource constrained.

    Handling memory constrained devices is not the scope of a packaging manager.
    It will also not handle such things on non-constrained devices.

    There is software that will warn you when free space is getting low, but
    it will also only warn you and maybe start a tool to investigate the situation.

    (Mobile platforms have completly different approaches, completly other concepts, more container-like. This is not at all comperable to Debian.)

    I now know what path I need to follow, i.e. have a plugin manager that uses the platform installation process so that the uninstall process will work
    and the packages and objects will be tracked.

    Not necessarily. You can of course check if there are packaged plugins available,
    and hint the user to install that one, but keep also in mind:
    - The user might have not the required privileges to do so.
    - The user might want to have a different plugin version, not available (yet) or
    even not available in their distribution at all (e.g user on stable)

    so, I guess, you maybe want to hint only that there is a packaged version, but let the user also install from other sources.

    You might want to take a look at how gnome-shell-extensions, firefox addons etc are handled: Their search paths for plugins include the installation directories
    for packaged extensions/plugins/etc, but they also look in $HOME. They won't invoke
    apt install or like. They also do NOT the hinting thing.

    (Generally, maybe a good advice is how similar software in Debian is
    doing such things and get inspired from them… I don't think there is a
    need to reinvent things.)


    (* The hinting might actually be a good idea; at least on one of my
    gnome-shell- extension's upstream gets a lots of bugs of people
    installing from gnome directly, just to find out that the one on gnome
    is too new for Debian. But having the information in the README of
    upstream reduced that bug rate)

    --
    tobi

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From The Wanderer@21:1/5 to Jon Gough on Sat Jun 5 00:10:02 2021
    This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
    On 2021-06-04 at 17:43, Jon Gough wrote:

    On 9/5/21 5:40 pm, Andrey Rahmatullin wrote:

    On Sun, May 09, 2021 at 04:41:13PM +1000, Jon Gough wrote:

    I now know what path I need to follow, i.e. have a plugin manager
    that uses the platform installation process so that the uninstall
    process will work and the packages and objects will be tracked.

    If this means calling apt from a plugin manager then it's probably
    not the best idea.

    Not quite. The plugin manager needs to keep track of what it has
    installed and where, then during the uninstall process it can be
    called, if needed, to perform the cleanup as it would if the main
    program were calling it to uninstall one or more plugins.

    I'm... fairly sure that the uninstall process must not touch the
    contents of user directories, not even indirectly by invoking an
    external program (such as this plugin manager) which would do so on its
    behalf. If I'm wrong, someone may correct me, but I would be surprised
    if it were that easy to bypass this constraint on package design.

    In most instances the main application is installed on devices that
    have only one user, i.e. phone, tablet, etc.. Even when on a multi
    user device, i.e. windows, the device is still only used by one
    account.

    How can you possibly be sure about that?

    (Also, if someone is installing packages on a tablet or smartphone via
    apt, they are very likely sufficiently expert to have some idea of how
    to clean up after the uninstall as needed; if there's a device in those categories which uses apt for native install mechanisms, rather than as
    an aftermarket extra tool, I'm not aware of it.)

    If the uninstall process is run for the main application any other
    account using the machine will have issues if they expect the main application to still be there. So, in this case uninstalling plugins
    during the main uninstall process would not be a major issue. The
    config files/data would not be uninstalled/removed by this process.

    And what if the user is uninstalling, but intends to install again
    later (maybe even right away)? To have to re-download and reinstall the
    plugins could easily be a significant irritation, at the least.
    Personally, I would probably see the plugins as being part of the
    program configuration; certainly I do so with e.g. the Firefox
    extensions I use.

    I genuinely do not see what insisting on uninstalling plugins at the
    same time as the main program, for all user accounts, provides as a
    benefit. The only maybe benefit I've seen suggested is cleaning up to
    free disk space, and that seems to me to be so obviously heavily
    outweighed by the other considerations that it should clearly not be the deciding priority.

    --
    The Wanderer

    The reasonable man adapts himself to the world; the unreasonable one
    persists in trying to adapt the world to himself. Therefore all
    progress depends on the unreasonable man. -- George Bernard Shaw


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

    iQIzBAEBCgAdFiEEJCOqsZEc2qVC44pUBKk1jTQoMmsFAmC6omkACgkQBKk1jTQo MmvItg/8Cy5dBCXaP1m4h/Z+pFVWVcI233IsyNesNMFO5H0zetZYsN06EaUTex+T WTl52sAAuRM+CUEvjLSnTvvK/F88n9zX4vhInkIJbXy1SMMmETveotcT0q7ehjVI gbFClcYicusNaJy0Tt33T1Wi1NNt1aUHDZ3qQC3PV2c5V8PzYe7xvA4Ahesg5VtE NUfIwEc89NCNSk77Tb3tGUtaPXd1suVHdUsnGwNgQ1mXdAhlJ+Uzr3W0E6B/x6iw GJ+fGc/3jK4HKx5n5EEm1VU7/E9x0vsddUWgYi8qTyuX7uSamKwHjYTySRX/HNp0 SzyfZ8QjqsEXE20Fgx1SGSmsSLsJ/pI+XB9Z+VFMyvJ1T7ObMypKBcjoDhxPnifn tT+BUifI6/Kvy3TGapTrIKd9puqXLdGYHljrtnjmS6tH6WpVGl2Lt0KrFrmB/pzK h/Wymxc5J6aHwoumOvym3i+S6OKN9Fnqe7mlQlBQ3x7L+AgnHTGXMNxWF+mGVtNi 6FXzX66jJSsmbCl+ORhY6WVLaZMpYpYBO89ZXEutgjmWnT5l1DBcQJ6NAAKg8vUi sKd0rQ1PY7rHQavkYMrnoiqM9JNxQD0uZdTLgM+WLmYSgwcPnY5MXPhEGpQScVqY QsPOwyqof5jn9e7Az/qo6M6E9iFn
  • From Jon Gough@21:1/5 to Andrey Rahmatullin on Fri Jun 4 23:50:02 2021
    On 9/5/21 5:40 pm, Andrey Rahmatullin wrote:
    On Sun, May 09, 2021 at 04:41:13PM +1000, Jon Gough wrote:
    My conclusion is that application plugin mangers should make use of the
    platform installation process for installing and uninstalling plugins as it
    "the platform installation process" sounds like using debs, am I wrong?
    No, in this case it is a deb.

    would appear that 'deb' install packages cannot ever do a proper clean up of >> software they have installed
    This a) sounds worse than it is, b) is not specific to debs and instead
    is true for all or almost all software installation ways out there, except for heavily containerized things.

    This hints that $HOME is not the correct location to put executable and
    binary support data (non-user modifiable)
    This is not true, browsers and things like IDEs do that all the time and
    it works as expected.

    However, leaving programs and binary non-user data on
    the device is considered acceptable. This is an interesting concept for
    phone and tablet devices which are resource constrained.
    Users of space-constrained systems should clean up the files they no
    longer need manually, preferably using tools that show the space distribution.
    Most users have no concept of how to do this, they just buy another
    device because the old one is 'broken', i.e. is full of stuff they know
    nothing about.

    I now know what path I need to follow, i.e. have a plugin manager that uses >> the platform installation process so that the uninstall process will work
    and the packages and objects will be tracked.
    If this means calling apt from a plugin manager then it's probably not the best idea.
    Not quite. The plugin manager needs to keep track of what it has
    installed and where, then during the uninstall process it can be called,
    if needed, to perform the cleanup as it would if the main program were
    calling it to uninstall one or more plugins. In most instances the main application is installed on devices that have only one user, i.e. phone, tablet, etc.. Even when on a multi user device, i.e. windows, the device
    is still only used by one account. If the uninstall process is run for
    the main application any other account using the machine will have
    issues if they expect the main application to still be there. So, in
    this case uninstalling plugins during the main uninstall process would
    not be a major issue. The config files/data would not be
    uninstalled/removed by this process.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Jon Gough@21:1/5 to Sven Hartge on Sat Jun 5 01:10:02 2021
    On 5/6/21 8:36 am, Sven Hartge wrote:
    The Wanderer <wanderer@fastmail.fm> wrote:

    I genuinely do not see what insisting on uninstalling plugins at the
    same time as the main program, for all user accounts, provides as a
    benefit. The only maybe benefit I've seen suggested is cleaning up to
    free disk space, and that seems to me to be so obviously heavily
    outweighed by the other considerations that it should clearly not be
    the deciding priority.
    Also beware of strange stuff the user may have done to the data in
    $HOME.
    Yup, but these users are in the minority. At uninstall, given the choice
    to delete or not delete non-config data they can decide what to do.
    This, of course, applies to naive  users as well.

    On one of the multi-user systems I admin for my University one user had placed a symlink to /usr/bin as $HOME/bin and another symlink to / as $HOME/root. I have no idea as to *why* but imagine the fun you can have
    if you just naivly delete something following symlinks.

    Grüße,
    Sven.


    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Sven Hartge@21:1/5 to The Wanderer on Sat Jun 5 00:40:01 2021
    The Wanderer <wanderer@fastmail.fm> wrote:

    I genuinely do not see what insisting on uninstalling plugins at the
    same time as the main program, for all user accounts, provides as a
    benefit. The only maybe benefit I've seen suggested is cleaning up to
    free disk space, and that seems to me to be so obviously heavily
    outweighed by the other considerations that it should clearly not be
    the deciding priority.

    Also beware of strange stuff the user may have done to the data in
    $HOME.

    On one of the multi-user systems I admin for my University one user had
    placed a symlink to /usr/bin as $HOME/bin and another symlink to / as $HOME/root. I have no idea as to *why* but imagine the fun you can have
    if you just naivly delete something following symlinks.

    Grüße,
    Sven.

    --
    Sigmentation fault. Core dumped.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Jon Gough@21:1/5 to The Wanderer on Sat Jun 5 01:10:02 2021
    On 5/6/21 7:59 am, The Wanderer wrote:
    On 2021-06-04 at 17:43, Jon Gough wrote:

    On 9/5/21 5:40 pm, Andrey Rahmatullin wrote:

    On Sun, May 09, 2021 at 04:41:13PM +1000, Jon Gough wrote:
    I now know what path I need to follow, i.e. have a plugin manager
    that uses the platform installation process so that the uninstall
    process will work and the packages and objects will be tracked.
    If this means calling apt from a plugin manager then it's probably
    not the best idea.
    Not quite. The plugin manager needs to keep track of what it has
    installed and where, then during the uninstall process it can be
    called, if needed, to perform the cleanup as it would if the main
    program were calling it to uninstall one or more plugins.
    I'm... fairly sure that the uninstall process must not touch the
    contents of user directories, not even indirectly by invoking an
    external program (such as this plugin manager) which would do so on its behalf. If I'm wrong, someone may correct me, but I would be surprised
    if it were that easy to bypass this constraint on package design.

    In most instances the main application is installed on devices that
    have only one user, i.e. phone, tablet, etc.. Even when on a multi
    user device, i.e. windows, the device is still only used by one
    account.
    How can you possibly be sure about that?

    (Also, if someone is installing packages on a tablet or smartphone via
    apt, they are very likely sufficiently expert to have some idea of how
    to clean up after the uninstall as needed; if there's a device in those categories which uses apt for native install mechanisms, rather than as
    an aftermarket extra tool, I'm not aware of it.)
    They use the 'Play Store' app on an android phone so no nothing of apt.
    They probably use 'Software Manager' or 'Synaptic Package Manager' on
    ubuntu, they go nowhere near a command prompt so never see what is
    happening.  I am thinking of the naive user who finds the app installs
    it, adds plugins, then, finds another app that more closely meets their requirement (or just don't use the app anymore) and unistalls it and
    installs a different app. How is this user supposed to know to clean up
    if they have never been asked at the uninstall stage?

    If the uninstall process is run for the main application any other
    account using the machine will have issues if they expect the main
    application to still be there. So, in this case uninstalling plugins
    during the main uninstall process would not be a major issue. The
    config files/data would not be uninstalled/removed by this process.
    And what if the user is uninstalling, but intends to install again
    They get asked if they want to do a complete uninstall of all downloaded plugins, or leave them
    later (maybe even right away)? To have to re-download and reinstall the plugins could easily be a significant irritation, at the least.
    Personally, I would probably see the plugins as being part of the
    program configuration; certainly I do so with e.g. the Firefox
    extensions I use.

    I genuinely do not see what insisting on uninstalling plugins at the
    same time as the main program, for all user accounts, provides as a
    benefit. The only maybe benefit I've seen suggested is cleaning up to
    free disk space, and that seems to me to be so obviously heavily
    outweighed by the other considerations that it should clearly not be the deciding priority.
    It should be a user choice not a developer decision. However, offering
    the capability is a developer decision.
    I am just trying to be aware that most users are not developers or
    deeply involved/interested in the internals of what is going on and
    therefore trying to be helpful and not cause premature 'obsolescence' of
    the devices due them being full of hidden data (.config etc. directories
    and files are hidden from most causal users).


    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Andrey Rahmatullin@21:1/5 to Jon Gough on Sat Jun 5 09:40:01 2021
    On Sat, Jun 05, 2021 at 07:43:54AM +1000, Jon Gough wrote:

    On 9/5/21 5:40 pm, Andrey Rahmatullin wrote:
    On Sun, May 09, 2021 at 04:41:13PM +1000, Jon Gough wrote:
    My conclusion is that application plugin mangers should make use of the platform installation process for installing and uninstalling plugins as it
    "the platform installation process" sounds like using debs, am I wrong?
    No, in this case it is a deb.
    An "application plugin manager" installing debs sounds wrong.

    However, leaving programs and binary non-user data on
    the device is considered acceptable. This is an interesting concept for phone and tablet devices which are resource constrained.
    Users of space-constrained systems should clean up the files they no
    longer need manually, preferably using tools that show the space distribution.
    Most users have no concept of how to do this, they just buy another device because the old one is 'broken', i.e. is full of stuff they know nothing about.
    If previously we were talking about generic things that include Debian
    this seems to be talking about things that *don't* include Debian.

    I now know what path I need to follow, i.e. have a plugin manager that uses
    the platform installation process so that the uninstall process will work and the packages and objects will be tracked.
    If this means calling apt from a plugin manager then it's probably not the best idea.
    Not quite. The plugin manager needs to keep track of what it has installed and where, then during the uninstall process it can be called, if needed, to perform the cleanup as it would if the main program were calling it to uninstall one or more plugins. In most instances the main application is installed on devices that have only one user,
    Yeah, wrong mailing list.

    --
    WBR, wRAR

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

    iQJhBAABCgBLFiEEolIP6gqGcKZh3YxVM2L3AxpJkuEFAmC7KZctFIAAAAAAFQAP cGthLWFkZHJlc3NAZ251cGcub3Jnd3JhckBkZWJpYW4ub3JnAAoJEDNi9wMaSZLh XdUP/1OZMYiIdy05/nVys1BQNBCZIh5ZEsAuq8WC25pdqkUd4ZyLnnLzUP6rao2u Q/grGLivp7o3HMcIX9sRb7yOrS6BgqJ8ZgeiQ42mreeQOV/2/Y42UKXf+LnERC44 jWuCcn/hRPTqOfmd0iob8/Fb0t6q5c89XkK2CVMWuPyauDBbvnIv/mG2yiBMa5E3 AV2zzp0vkbmgQIJScIbb8V9mpN2QahWbW8XSzUz1psZiNrpJS1w7iuqn+ysyw+AS 1xuLdC5MCBEbiGK0PXOCkDsXFmRJc1IvLEYC3LeJkBZwl8TXan83fltBC9l6u9Wb GkYuAsUNpaSc0t6UWoujqS+5H8yQiQdL8J1dDnW7lYPM8hFaTJrfEMEvFhEj0KW2 WcHys4hK5DBbqB8QhC6svWM/CJZx06XDmRZc1oeOpRP618w+E9dl4j/fr38c9Gqv fn9wtL+x4Rg6429WTSg+pS96/2fNyqJBgzVzHBo87nhKFChLeGPQi3xdSPQg7087 5QzsiccwZCmIJLq67lKz5HhqLVRBPFHlHLGM6I5x7vKpDMxHdqfYvgGCVYMoputT YCYrZdeSNhJp1n8LKAftLvazQNcD16kEEvIzh8simVf9Ovk62KdKZrdMPscb2Riv GC4uoteV/yjTnuydITYSKvO/IPyAFb9OxauVVhtSKeTo9BVQ
    =faTe
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Marc Haber@21:1/5 to Jon Gough on Sat Jun 5 11:20:01 2021
    On Sat, Jun 05, 2021 at 09:03:05AM +1000, Jon Gough wrote:
    On 5/6/21 7:59 am, The Wanderer wrote:
    And what if the user is uninstalling, but intends to install again
    They get asked if they want to do a complete uninstall of all downloaded plugins, or leave them

    What happens to the other users of the system, the ones with their home directory not even mounted, or the ones who are not logged in at that
    time?

    Greetings
    Marc

    -- ----------------------------------------------------------------------------- Marc Haber | "I don't trust Computers. They | Mailadresse im Header Leimen, Germany | lose things." Winona Ryder | Fon: *49 6224 1600402 Nordisch by Nature | How to make an American Quilt | Fax: *49 6224 1600421

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Jon Gough@21:1/5 to Andrey Rahmatullin on Mon Jun 7 03:00:02 2021
    This is a multi-part message in MIME format.
    On 5/6/21 5:36 pm, Andrey Rahmatullin wrote:
    On Sat, Jun 05, 2021 at 07:43:54AM +1000, Jon Gough wrote:
    On 9/5/21 5:40 pm, Andrey Rahmatullin wrote:
    On Sun, May 09, 2021 at 04:41:13PM +1000, Jon Gough wrote:
    My conclusion is that application plugin mangers should make use of the >>>> platform installation process for installing and uninstalling plugins as it
    "the platform installation process" sounds like using debs, am I wrong?
    No, in this case it is a deb.
    An "application plugin manager" installing debs sounds wrong.
    The plugin manager does not use deb's, the main application the plugin
    manger is a part of is installed/uninstalled/removed from a deb.

    However, leaving programs and binary non-user data on
    the device is considered acceptable. This is an interesting concept for >>>> phone and tablet devices which are resource constrained.
    Users of space-constrained systems should clean up the files they no
    longer need manually, preferably using tools that show the space
    distribution.
    Most users have no concept of how to do this, they just buy another device >> because the old one is 'broken', i.e. is full of stuff they know nothing
    about.
    If previously we were talking about generic things that include Debian
    this seems to be talking about things that *don't* include Debian.
    The deb install of the main program is used on Raspberry Pi's as well as
    Debian & Ubuntu desktop machines. Pi's are storage constrained, but the
    users are not required to know much, if anything, about 'how it runs',
    it is access through a gui which hides the gory details and this is the
    way that most users use technology. My Ubuntu desktop system ran out of
    disk space because Google Android Studio updated and left behind a
    '.cache' directory with >2.5GB of binary data. I knew how to go about
    finding the issue, many users would not.

    I now know what path I need to follow, i.e. have a plugin manager that uses
    the platform installation process so that the uninstall process will work >>>> and the packages and objects will be tracked.
    If this means calling apt from a plugin manager then it's probably not the >>> best idea.
    Not quite. The plugin manager needs to keep track of what it has installed >> and where, then during the uninstall process it can be called, if needed, to >> perform the cleanup as it would if the main program were calling it to
    uninstall one or more plugins. In most instances the main application is
    installed on devices that have only one user,
    Yeah, wrong mailing list.
    Why? The question is about cleaning up files when a deb package is
    uninstalled and in particular when a 'purge' is used. The man page for
    dpkg has the following:

    *Package selection states
    ....
    purge*  The package is selected to be purged (i.e. we want to remove
    everything from system directories, even configuration files).

    And in the options to dpkg:

    ACTIONS
    ....
    -r, --remove package...|-a|--pending
                  Remove  an  installed package.  This removes
    everything except conffiles and other data cleaned up by the postrm
    script, which may avoid having to reconfigure the package if it is
    reinstalled later (conffiles are configuration files that are listed in
                  the DEBIAN/conffiles control file).  If there is no
    DEBIAN/conffiles control file nor DEBIAN/postrm script, this command
    is equivalent to calling --purge.  If -a or --pending is given
    instead of a package name, then all packages unpacked, but  marked
                  to be removed in file /var/lib/dpkg/status, are removed.

                  Removing of a package consists of the following steps:

                  1. Run prerm script

                  2. Remove the installed files

                  3. Run postrm script

    -P, --purge package...|-a|--pending
                  Purge  an  installed  or  already  removed package.
    This removes everything, including conffiles, and anything else
    cleaned up from postrm.  If -a or --pending is given instead of a
    package name, then all packages unpacked or removed, but marked to be
                  purged in file /var/lib/dpkg/status, are purged.

                  Note: some configuration files might be unknown to
    dpkg because they are created and handled separately through the
    configuration scripts. In that case, dpkg won't remove them by
    itself, but the package's postrm script (which is called by dpkg),  has
                  to take care of their removal during purge. Of
    course, this only applies to files in system directories, not
    configuration files written to individual users' home directories.

                  Purging of a package consists of the following steps:

                  1. Remove the package, if not already removed. See
    --remove for detailed information about how this is done.

                  2. Run postrm script.

    These suggest that a full cleanup could/should(?) be done including all
    user generated files. If $HOME is not allowed to be touched by
    convention I was trying to ascertain where else they could be located
    that does not require root access to create, modify, delete so that the
    cleanup could be done.



    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
    <br>
    <br>
    <div class="moz-cite-prefix">On 5/6/21 5:36 pm, Andrey Rahmatullin
    wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:YLsplyKO+N0GZRl7@belkar.wrar.name">
    <pre class="moz-quote-pre" wrap="">On Sat, Jun 05, 2021 at 07:43:54AM +1000, Jon Gough wrote:
    </pre>
    <blockquote type="cite">
    <pre class="moz-quote-pre" wrap="">
    On 9/5/21 5:40 pm, Andrey Rahmatullin wrote:
    </pre>
    <blockquote type="cite">
    <pre class="moz-quote-pre" wrap="">On Sun, May 09, 2021 at 04:41:13PM +1000, Jon Gough wrote:
    </pre>
    <blockquote type="cite">
    <pre class="moz-quote-pre" wrap="">My conclusion is that application plugin mangers should make use of the
    platform installation process for installing and uninstalling plugins as it </pre>
    </blockquote>
    <pre class="moz-quote-pre" wrap="">"the platform installation process" sounds like using debs, am I wrong?
    </pre>
    </blockquote>
    <pre class="moz-quote-pre" wrap="">No, in this case it is a deb.
    </pre>
    </blockquote>
    <pre class="moz-quote-pre" wrap="">An "application plugin manager" installing debs sounds wrong.</pre>
    </blockquote>
    The plugin manager does not use deb's, the main application the
    plugin manger is a part of is installed/uninstalled/removed from a
    deb.<br>
    <blockquote type="cite" cite="mid:YLsplyKO+N0GZRl7@belkar.wrar.name">
    <pre class="moz-quote-pre" wrap="">

    </pre>
    <blockquote type="cite">
    <blockquote type="cite">
    <blockquote type="cite">
    <pre class="moz-quote-pre" wrap="">However, leaving programs and binary non-user data on
    the device is considered acceptable. This is an interesting concept for
    phone and tablet devices which are resource constrained.
    </pre>
    </blockquote>
    <pre class="moz-quote-pre" wrap="">Users of space-constrained systems should clean up the files they no
    longer need manually, preferably using tools that show the space
    distribution.
    </pre>
    </blockquote>
    <pre class="moz-quote-pre" wrap="">Most users have no concept of how to do this, they just buy another device
    because the old one is 'broken', i.e. is full of stuff they know nothing
    about.
    </pre>
    </blockquote>
    <pre class="moz-quote-pre" wrap="">If previously we were talking about generic things that include Debian
    this seems to be talking about things that *don't* include Debian.</pre>
    </blockquote>
    The deb install of the main program is used on Raspberry Pi's as
    well as Debian &amp; Ubuntu desktop machines. Pi's are storage
    constrained, but the users are not required to know much, if
    anything, about 'how it runs', it is access through a gui which
    hides the gory details and this is the way that most users use
    technology. My Ubuntu desktop system ran out of disk space because
    Google Android Studio updated and left behind a '.cache' directory
    with &gt;2.5GB of binary data. I knew how to go about finding the
    issue, many users would not. <br>
    <blockquote type="cite" cite="mid:YLsplyKO+N0GZRl7@belkar.wrar.name">
    <pre class="moz-quote-pre" wrap="">

    </pre>
    <blockquote type="cite">
    <blockquote type="cite">
    <blockquote type="cite">
    <pre class="moz-quote-pre" wrap="">I now know what path I need to follow, i.e. have a plugin manager that uses
    the platform installation process so that the uninstall process will work
    and the packages and objects will be tracked.
    </pre>
    </blockquote>
    <pre class="moz-quote-pre" wrap="">If this means calling apt from a plugin manager then it's probably not the
    best idea.
    </pre>
    </blockquote>
    <pre class="moz-quote-pre" wrap="">Not quite. The plugin manager needs to keep track of what it has installed
    and where, then during the uninstall process it can be called, if needed, to perform the cleanup as it would if the main program were calling it to uninstall one or more plugins. In most instances the main application is installed on devices that have only one user,
    </pre>
    </blockquote>
    <pre class="moz-quote-pre" wrap="">Yeah, wrong mailing list.
    </pre>
    </blockquote>
    Why? The question is about cleaning up files when a deb package is
    uninstalled and in particular when a 'purge' is used. The man page
    for dpkg has the following:<br>
    <br>
    <blockquote><font size="-2" color="#0000ff"><b>Package selection
    states<br>
    ....<br>
    purge</b>  The package is selected to be purged (i.e. we want
    to remove everything from system directories, even configuration
    files).<br>
    </font></blockquote>
    And in the options to dpkg:<br>
    <blockquote><font size="-2" color="#0000ff">ACTIONS<br>
    ....       <br>
    -r, --remove package...|-a|--pending<br>
                  Remove  an  installed package.  This removes
    everything except conffiles and other data cleaned up by the
    postrm script, which may avoid having to reconfigure the package
    if it is reinstalled later (conffiles are configuration files
    that are listed in<br>
                  the DEBIAN/conffiles control file).  If there is
    no DEBIAN/conffiles control file nor DEBIAN/postrm script, this
    command is equivalent to calling --purge.  If -a or --pending is
    given instead of a package name, then all packages unpacked, 
    but  marked<br>
                  to be removed in file /var/lib/dpkg/status, are
    removed.<br>
    <br>
                  Removing of a package consists of the following
    steps:<br>
    <br>
                  1. Run prerm script<br>
    <br>
                  2. Remove the installed files<br>
    <br>
                  3. Run postrm script<br>
    <br>
    -P, --purge package...|-a|--pending<br>
                  Purge  an  installed  or  already  removed
    package. This removes everything, including conffiles, and
    anything else cleaned up from postrm.  If -a or --pending is
    given instead of a package name, then all packages unpacked or
    removed, but marked to be<br>
                  purged in file /var/lib/dpkg/status, are purged.<br>
    <br>
                  Note: some configuration files might be unknown to
    dpkg because they are created and handled separately through the
    configuration scripts. In that case, dpkg won't remove them by
    itself, but the package's postrm script (which is called by 
    dpkg),  has<br>
                  to take care of their removal during purge. Of
    course, this only applies to files in system directories, not
    configuration files written to individual users' home
    directories.<br>
    <br>
                  Purging of a package consists of the following
    steps:<br>
    <br>
                  1. Remove the package, if not already removed. See
    --remove for detailed information about how this is done.<br>
    <br>
                  2. Run postrm script.<br>
    </font></blockquote>
    These suggest that a full cleanup could/should(?) be done including
    all user generated files. If $HOME is not allowed to be touched by
    convention I was trying to ascertain where else they could be
    located that does not require root access to create, modify, delete
    so that the cleanup could be done.<br>
    <br>
    <blockquote type="cite" cite="mid:YLsplyKO+N0GZRl7@belkar.wrar.name">
    <pre class="moz-quote-pre" wrap="">
    </pre>
    </blockquote>
    <br>
    </body>
    </html>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From jrb3-beckenbach.us@21:1/5 to All on Mon Jun 7 13:50:01 2021
    Hi again, Jon!

    On 6 Jun 2021, at 20:51, Jon Gough <jonsgough@gmail.com> wrote:

    These suggest that a full cleanup could/should(?) be done including all user generated files.

    Not at all, because packages do not install any files to any user-$HOME.
    If the user generated (or triggered the generation of) any files, by definition the package-installer didn't create them,
    and by policy and following "the law of least surprise" the package-uninstaller shouldn't touch them.

    If $HOME is not allowed to be touched by convention I was trying to ascertain where else they could be located that does not require root access to create, modify, delete so that the cleanup could be done.

    Two different approaches I've used for this situation over the decades have worked well for me.
    Not sure if either will be an improvement for you.

    1/ Have the package-installer emplace a pseudo-group, with the plugin-manager set-group to that pseudo-group.
    Then, chgrp anything created for the user into his $HOME to that pseudo-group. The user-invoked script to clean up $HOME
    then just has to look for file-system entries with that group.

    2/ If you're absolutely dead-set on forcing clean-up of per-user files, *whether or not the user wants them cleaned up*,
    then just don't put anything in any $USER-home. Problem solved. Then, take your cue from {mail,news,uucp,cups,ftp,...}
    and keep all per-user files off in /var/spool/plug-package/ and/or a pseudo-user "home directory". On package-uninstall,
    make sure /var/spool/plug-package/ and pseudo-user "home directory" get cleared and removed. (This is where you'd differ
    from {mail,news,uucp,cups,ftp,...} -- they won't clear and remove [or at least didn't the times I looked from ~1990 onward].)

    Trade-off between 1/ and 2/ is "where do the files live" and "how much must the package harden itself from user interference".

    If you're dead-set on using space in each user's $HOME, option 1 it is. Doing that means your package has explicitly given-over
    custody of those files to the user, since they're in the user-controlled space. Your package has to have the user trigger clean-up,
    using commands your package provides documented by your package. Your plugin-manager also has to self-repair any changes
    made by the user in his file-space, since it's the user's file-space not yours and he'll do whatever he darn well pleases there.

    If it's just you want to make use of disk-space available on /home/ go ahead with option 2 and pseudo-user homed on /home/.

    Thanks!

    Joseph
    ——
    Joseph Beckenbach
    +1-678-602-3192 (EST/EDT)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Jon Gough@21:1/5 to All on Tue Jun 8 07:30:02 2021
    On 7/6/21 9:38 pm, jrb3-beckenbach.us wrote:
    Hi again, Jon!

    On 6 Jun 2021, at 20:51, Jon Gough <jonsgough@gmail.com> wrote:
    These suggest that a full cleanup could/should(?) be done including all user generated files.
    Not at all, because packages do not install any files to any user-$HOME.
    If the user generated (or triggered the generation of) any files, by definition the package-installer didn't create them,
    and by policy and following "the law of least surprise" the package-uninstaller shouldn't touch them.

    If $HOME is not allowed to be touched by convention I was trying to ascertain where else they could be located that does not require root access to create, modify, delete so that the cleanup could be done.
    Two different approaches I've used for this situation over the decades have worked well for me.
    Not sure if either will be an improvement for you.

    1/ Have the package-installer emplace a pseudo-group, with the plugin-manager set-group to that pseudo-group.
    Then, chgrp anything created for the user into his $HOME to that pseudo-group. The user-invoked script to clean up $HOME
    then just has to look for file-system entries with that group.

    2/ If you're absolutely dead-set on forcing clean-up of per-user files, *whether or not the user wants them cleaned up*,
    then just don't put anything in any $USER-home. Problem solved. Then, take your cue from {mail,news,uucp,cups,ftp,...}
    and keep all per-user files off in /var/spool/plug-package/ and/or a pseudo-user "home directory". On package-uninstall,
    make sure /var/spool/plug-package/ and pseudo-user "home directory" get cleared and removed. (This is where you'd differ
    from {mail,news,uucp,cups,ftp,...} -- they won't clear and remove [or at least didn't the times I looked from ~1990 onward].)
    That sounds like a solution putting the large binary read-only files in
    the /var/spool/plug-package directory. I presume, to avoid using root
    access all the time, that the directory would have to be rw by everyone
    who may be running the program, via a group, or just world. The worst
    that would happen is it gets deleted by mistake and the data would have
    to be downloaded again.

    Trade-off between 1/ and 2/ is "where do the files live" and "how much must the package harden itself from user interference".

    If you're dead-set on using space in each user's $HOME, option 1 it is. Doing that means your package has explicitly given-over
    custody of those files to the user, since they're in the user-controlled space. Your package has to have the user trigger clean-up,
    I am not set on any particular location and have been put off $HOME by
    the clean up issue.
    using commands your package provides documented by your package. Your plugin-manager also has to self-repair any changes
    made by the user in his file-space, since it's the user's file-space not yours and he'll do whatever he darn well pleases there.

    If it's just you want to make use of disk-space available on /home/ go ahead with option 2 and pseudo-user homed on /home/.

    Thanks!

    Joseph
    ——
    Joseph Beckenbach
    +1-678-602-3192 (EST/EDT)

    Thanks for the suggestion, I will now investigate how to implement this.

    Jon

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