Discussion on repository, packages, etc. (split from Some thoughts thread)

Discussion in 'Pyra OS (Debian GNU/Linux)' started by benoitb, Apr 20, 2015.

  1. groovechicken

    groovechicken Still Fresh

    Joined:
    Mar 7, 2014
    Messages:
    78
    I have wanted "fat binaries" with statically linked libraries for a while now. I know it is not trivial. Even PCBSD gave up on the idea eventually, but it is the only sane way to do this. So what if I have 12 different copies of the same lib in the 12 different bundles that need it. Another 64GB SD card solves that.

    At the same time, I do look forward to being able to apt-get the stuff I want that maybe a lot of other people don't, like KMyMoney, Kate, Dolphin, even the full KDE, and having that stuff as part of the installed in the real way. But, a custom compiled SNES emu with all the needed libraries bundled together with binary so it will always work even if I apt-get upgrade, and that I can download wherever and double-click... sweet!

    This has always been one of the strong points of OSX that I wish more distros would borrow. Maybe we can all band together to show the rest of the Linux world the right way to do it.

    While we are at it, let's solve the "crappy cross-platform filesystem for removable media" problem. I have settled on XFS at last, for fault tolerance and good performance, but it means I won't be mounting my SD card that I use for working files on anything but Linux for the foreseeable future.
     
  2. _wb_

    _wb_ Microbe Staff Member

    Joined:
    Apr 5, 2012
    Messages:
    5,387
    Location:
    Brussels, Belgium
    Isn't a disadvantage of static linking that not just on disk, but also in RAM there are no shared libraries? For single-tasking that does not matter much, but for multi-tasking it does, no?

    (The advantage on the other hand is that if you use only part of a library, static linking is more memory-efficient)
     
  3. bzar

    bzar A Commando

    Joined:
    Sep 22, 2008
    Messages:
    4,446
    Location:
    Finland
    Another issue of static linking is not getting library security updates and bugfixes to all applications at once, but all applications need to be separately updated to use the new stuff.
     
    _wb_ likes this.
  4. Neelix

    Neelix Insecticidal Maniac

    Joined:
    Jan 8, 2011
    Messages:
    3,224
    Location:
    Melbourne, Australia
    Perhaps so,  but I've noticed that sometimes a PND fails to unmount because some of its libraries are still active after the application has been closed,  and since there's usually no obvious sign of that unless you know to look (and what to look for) that can lead to unexpected results, (like loading the old version of a program after it's PND has been updated) so for PND (or DBP) encapsulated applications perhaps that's less of a disadvantage than it seems.

    - Neelix
     
  5. levi

    levi Still fresh, damnit!

    Joined:
    Oct 6, 2008
    Messages:
    11,213
    Location:
    Somewhere off the coast of the EU
    Other apps won't be using libs included in the pnd currently mounted, so that's no reason for it not to unmount.  I'm not sure what stops them often unmounting cleanly (although a recent reboot seems to improve the situation), but I'm pretty sure shared libs are not the culprit by virtue of being sharable at least.

    I've had a couple of thoughts about dependencies.  Of course, continuing with the Pandora way of doing things where if you need a new lib you have to include it in the package will still work, but pnds did increase in size over time because of this.  At least for some libs I've seen that you can have two incompatible versions installed at the same time, but still get security updates and patches for both.  If the pyra packages can encode dependencies on major versions then we might not have a problem, provided minor version updates don't break compatibility..

    It might be a nice goal for all pyra packages to keep updated with the latest and greatest, but I don't think that's ultimately feasible, and maintainers will fall by the wayside from time to time.  Provided we keep compatible libs in /usr/lib or in exceptional cases in the package we should be dandy.
     
  6. bzar

    bzar A Commando

    Joined:
    Sep 22, 2008
    Messages:
    4,446
    Location:
    Finland
    PNDManager PND for one would be quite a bit smaller if it didn't contain Qt :)
     
    _wb_ likes this.
  7. _wb_

    _wb_ Microbe Staff Member

    Joined:
    Apr 5, 2012
    Messages:
    5,387
    Location:
    Brussels, Belgium
    Yes. Also I want to apt-get install dbpmanager, not have it as a .dbp ;)
     
  8. WizardStan

    WizardStan Mega GP Mania

    Joined:
    May 24, 2008
    Messages:
    16,711
    That's a problem with the size of the Pandora's NAND, that it's too small to contain something as standard as Qt libraries, and is actually a prime example of why building in the mechanics to be able to include all libraries (or at least not coming up with a design that prevents or even discourages it) is a good thing.Besides what, it's 8MB, so even if you weren't including necessary libraries, even if what you need is duplicated across a dozen other PNDs and that's actually 100MB that could be saved, it's not actually that big of a deal, and trying to fix the problem may introduce more headaches than it solves.
     
    levi likes this.
  9. _wb_

    _wb_ Microbe Staff Member

    Joined:
    Apr 5, 2012
    Messages:
    5,387
    Location:
    Brussels, Belgium
    If you include standard stuff like gtk or Qt instead of installing it globally, then what bothers me most is not disk space, memory, or bandwidth issues, but not being able to have a global configuration (e.g. a gtk theme).
     
  10. levi

    levi Still fresh, damnit!

    Joined:
    Oct 6, 2008
    Messages:
    11,213
    Location:
    Somewhere off the coast of the EU
    Hmm, shouldn't configurations be in /etc or ~/.config (on the nand) so be globally settable wherever the actual code resides? I guess ~/.config will get mapped to go inside the appdata, but /etc should still work.
     
  11. _jr_

    _jr_ Advanced Member

    Joined:
    May 5, 2013
    Messages:
    1,170
    It happens when a PND uses another PND (e.g. wxpython) by prepending that PNDs lib to LD_LIBRARY_PATH and that lib containing a shared object (e.g. libgcc) that is used by pndrun. Then the lib inside the second PND is in use while the first PND is trying to unmount the second. There are several PNDs on the repo that have this problem (e.g. Anki). Probably it should be made sure that different libgcc doesn't leak to exes not compiled with that version of gcc, but in practice it is enough to reset LD_LIBRARY_PATH before unmounting.
    While using various binary linux ports of games from humble or gog a typical problem is that dri interfaces have changed incompatibly sometime and it doesn't seem to be easily possible to have different versions (but I may just be too stupid). In the end I think linux's 'backwards compatability is secondary' stance makes it a less ideal environment for binary only distribution models than windows, but that isn't neccessarily a bad thing.
     
    Last edited by a moderator: Apr 28, 2015
  12. levi

    levi Still fresh, damnit!

    Joined:
    Oct 6, 2008
    Messages:
    11,213
    Location:
    Somewhere off the coast of the EU
    Yes, that is a problem with raw binary distribution, a la humble bundle games and others.  Binaries+version dependencies ensuring the right backwards-compatible versions of stuff get installed at the same time would fix that problem if done right though, which AIUI is what is being proposed for the Pyra by various people.
     
  13. _wb_

    _wb_ Microbe Staff Member

    Joined:
    Apr 5, 2012
    Messages:
    5,387
    Location:
    Brussels, Belgium
    Yes, but I wasn't talking about configuration files in the narrow sense of the word. I also mean things that would end up somewhere in /usr/share or /usr/lib, things like plug-ins or data files or some kind of extensions or optional stuff, things you may want to customize or tweak or hack in some way or another.
     
    levi likes this.

Share This Page

Loading...