• Re: Open Source does mean easily re-compile-able

    From Janis Papanagnou@21:1/5 to Lawrence D'Oliveiro on Sat Dec 28 19:40:46 2024
    On 28.12.2024 03:07, Lawrence D'Oliveiro wrote:
    On Sat, 28 Dec 2024 00:44:10 +0100, Janis Papanagnou wrote:

    On 28.12.2024 00:22, Kalevi Kolttonen wrote:

    Compiling Thunderbird should be very easy indeed when we use Linux
    distro's package management.

    You expect _users_ of tools to use a _development_ environment to fix
    *inherent* shortcomings of a tool?

    On Linux, there is no “development environment” versus “user environment”.
    The same packaging tools work with both source code and built binaries.

    You think it's normal that on a Linux installation where, say, no 'cc'
    (as prominent example of a development tool) is installed the package
    manager would first install ALL the necessary compilers and scripting
    languages just to create a binary (as opposed to just installing the
    binary)? - I'm not sure I understood what you were saying or aiming at especially in context of what I had been saying.

    For the Unix systems I worked with (commercial Unixes, Cygwin, Linux)
    there was no development environment guaranteed to be in the default installation.

    Janis

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Janis Papanagnou on Sat Dec 28 23:00:32 2024
    On Sat, 28 Dec 2024 19:40:46 +0100, Janis Papanagnou wrote:

    You think it's normal that on a Linux installation where, say, no 'cc'
    (as prominent example of a development tool) is installed the package
    manager would first install ALL the necessary compilers and scripting languages just to create a binary (as opposed to just installing the
    binary)?

    The discussion has to do with creating your own version of the binary,
    rather than using the repo-provided version.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Kalevi Kolttonen@21:1/5 to Lawrence D'Oliveiro on Sat Dec 28 23:32:37 2024
    Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
    On Sat, 28 Dec 2024 19:40:46 +0100, Janis Papanagnou wrote:

    You think it's normal that on a Linux installation where, say, no 'cc'
    (as prominent example of a development tool) is installed the package
    manager would first install ALL the necessary compilers and scripting
    languages just to create a binary (as opposed to just installing the
    binary)?

    The discussion has to do with creating your own version of the binary,
    rather than using the repo-provided version.

    Right.

    Anyway, to be honest, I never realized how bloated Thunderbird is.
    The source RPM thunderbird-128.5.2-1.fc41.src.rpm is 690MB and
    the main source directory unpacked is:

    ~/tmp/tb/thunderbird-128.5.2 $ du -sh
    4.2G .

    Building TB with the help of a pre-made spec file on Fedora is
    probably very much easier than doing 'git clone' and trying to
    build it from there. Using 'dnf', it was just one command to
    download all the dependencies. I suppose the size of the
    dependency packages was 260MB in total. It would be a nightmare
    having to download them manually and then building them.

    Packages are just so handy.

    Fedora and Red Hat have already done the hard work so it
    is wise to use their source RPM as a basis for your own
    modifications when you are on Fedora or Red Hat Enterprise
    Linux.

    My single CPU Thunderbird build has now lasted for over two
    and half hours and I have no clue when it will be ready.

    This codebase is absolutely massive! I am beginning to
    lose patience.

    br,
    KK

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Grant Taylor@21:1/5 to Kalevi Kolttonen on Sat Dec 28 19:02:48 2024
    On 12/28/24 17:32, Kalevi Kolttonen wrote:
    This codebase is absolutely massive! I am beginning to lose patience.

    I remember when compiling X11 was a good burn in text for a processor.

    Then it was the Linux kernel.

    Now it's Thunderbird / Firefox, followed by Chromium, followed by Rust.



    --
    Grant. . . .

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Paul@21:1/5 to Kalevi Kolttonen on Sat Dec 28 21:12:38 2024
    On Sat, 12/28/2024 6:32 PM, Kalevi Kolttonen wrote:
    Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
    On Sat, 28 Dec 2024 19:40:46 +0100, Janis Papanagnou wrote:

    You think it's normal that on a Linux installation where, say, no 'cc'
    (as prominent example of a development tool) is installed the package
    manager would first install ALL the necessary compilers and scripting
    languages just to create a binary (as opposed to just installing the
    binary)?

    The discussion has to do with creating your own version of the binary,
    rather than using the repo-provided version.

    Right.

    Anyway, to be honest, I never realized how bloated Thunderbird is.
    The source RPM thunderbird-128.5.2-1.fc41.src.rpm is 690MB and
    the main source directory unpacked is:

    ~/tmp/tb/thunderbird-128.5.2 $ du -sh
    4.2G .

    Building TB with the help of a pre-made spec file on Fedora is
    probably very much easier than doing 'git clone' and trying to
    build it from there. Using 'dnf', it was just one command to
    download all the dependencies. I suppose the size of the
    dependency packages was 260MB in total. It would be a nightmare
    having to download them manually and then building them.

    Packages are just so handy.

    Fedora and Red Hat have already done the hard work so it
    is wise to use their source RPM as a basis for your own
    modifications when you are on Fedora or Red Hat Enterprise
    Linux.

    My single CPU Thunderbird build has now lasted for over two
    and half hours and I have no clue when it will be ready.

    This codebase is absolutely massive! I am beginning to
    lose patience.

    br,
    KK

    This is one of the bigger things that you could attempt to build.

    In the old days, there would have been almost zero chance
    of you finishing the linking phase (XUL linking). Today,
    they've fixed up how linking is done, so you might
    actually finish the build without incident.

    Keep a copy of "top" open, so you can watch the RAM consumption
    during linking.

    Paul

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Muttley@dastardlyhq.com@21:1/5 to All on Sun Dec 29 09:54:52 2024
    On Sat, 28 Dec 2024 23:32:37 -0000 (UTC)
    kalevi@kolttonen.fi (Kalevi Kolttonen) gabbled:
    Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
    On Sat, 28 Dec 2024 19:40:46 +0100, Janis Papanagnou wrote:

    You think it's normal that on a Linux installation where, say, no 'cc'
    (as prominent example of a development tool) is installed the package
    manager would first install ALL the necessary compilers and scripting
    languages just to create a binary (as opposed to just installing the
    binary)?

    The discussion has to do with creating your own version of the binary,
    rather than using the repo-provided version.

    Right.

    Anyway, to be honest, I never realized how bloated Thunderbird is.
    The source RPM thunderbird-128.5.2-1.fc41.src.rpm is 690MB and
    the main source directory unpacked is:

    ~/tmp/tb/thunderbird-128.5.2 $ du -sh
    4.2G .

    Welcome to Lego brick style programming where the main application devs are incompetant halfwits unable to implement even simple things themselves beyond designing (if that applies to Thunderbird) a GUI so have to import 101 libraries
    to do everything for them.

    I've written my own newsreader system and while admittedly its command line only it requires only one 3rd party library which is OpenSSL.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Paul@21:1/5 to Muttley@dastardlyhq.com on Sun Dec 29 07:39:42 2024
    On Sun, 12/29/2024 4:54 AM, Muttley@dastardlyhq.com wrote:
    On Sat, 28 Dec 2024 23:32:37 -0000 (UTC)
    kalevi@kolttonen.fi (Kalevi Kolttonen) gabbled:
    Lawrence D'Oliveiro <ldo@nz.invalid> wrote:
    On Sat, 28 Dec 2024 19:40:46 +0100, Janis Papanagnou wrote:

    You think it's normal that on a Linux installation where, say, no 'cc' >>>> (as prominent example of a development tool) is installed the package
    manager would first install ALL the necessary compilers and scripting
    languages just to create a binary (as opposed to just installing the
    binary)?

    The discussion has to do with creating your own version of the binary,
    rather than using the repo-provided version.

    Right.

    Anyway, to be honest, I never realized how bloated Thunderbird is.
    The source RPM thunderbird-128.5.2-1.fc41.src.rpm is 690MB and
    the main source directory unpacked is:

    ~/tmp/tb/thunderbird-128.5.2 $ du -sh
    4.2G .

    Welcome to Lego brick style programming where the main application devs are incompetant halfwits unable to implement even simple things themselves beyond designing (if that applies to Thunderbird) a GUI so have to import 101 libraries
    to do everything for them.

    I've written my own newsreader system and while admittedly its command line only it requires only one 3rd party library which is OpenSSL.

    You know that Thunderbird uses the source code of Firefox,
    to build XUL.so , which is the rendering engine for the interface.

    Thunderbird is the demo app for XUL. It's not really
    a product, it was partially a creation which was
    intended to show how XUL could provide a web render
    engine for another software package.

    As a result, a relatively small amount of code, implements
    News and Email functions. At least 90% of the vast volume
    of files in the tarball, is a copy of the Firefox source.

    The Thunderbird build tree, even has an option to "just build Firefox".
    This is a means of proving the Firefox portion of the tree was
    not damaged by staff during tree preparation.

    The Thunderbird program, tries to restrict just exactly
    how much of Firefox is used for "browsing". If there is a
    URL in an email message, Thunderbird would prefer to call
    the platform browser (whatever it is) to handle the URL.
    But if the Thunderbird staff want to put up an appeal for
    donations, using a Mozilla-hosted web page, that part uses
    the Firefox code inside Thunderbird, for rendering. This is a
    security consideration, an analysis and action on the attack
    surface available. Notice that Thunderbird does not do
    "Quantum" the way Firefox does, so it doesn't have exactly
    the same security precautions. And that's because the
    browser portion, is not really intended for "general browsing".

    The Thunderbird GUI is a three-pane view. If the render engine
    fails, the pane view turns yellow and there is a reference
    on the screen "to an XML file". It is that XML file, which
    draws the three pane view and populates it with decorations.
    When you see that yellow failure condition, that's your
    chance to verify exactly how the product works. The graphics
    are not drawn with Athena widgets. The graphics are a demo
    of what the XUL shared library can do for you.

    Is the whole thing obscene ? Yes. You won't find too many
    software creations, this distorted. Still, people are using it.
    Most people are not aware what is under the hood. It's
    a herd of elephants :-)

    Paul

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Kenny McCormack@21:1/5 to nospam@needed.invalid on Sun Dec 29 14:32:18 2024
    In article <vkrfue$vl1b$1@dont-email.me>, Paul <nospam@needed.invalid> wrote: ...
    Is the whole thing obscene ? Yes. You won't find too many
    software creations, this distorted. Still, people are using it.
    Most people are not aware what is under the hood. It's
    a herd of elephants :-)

    Just out curiosity, does all of this apply to the Windows version as well?

    I know this thread is mostly about the Linux version, and although I
    actually don't use TB at all, I know someone who uses the Windows version.

    --
    I've learned that people will forget what you said, people will forget
    what you did, but people will never forget how you made them feel.

    - Maya Angelou -

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Janis Papanagnou@21:1/5 to Paul on Sun Dec 29 21:55:04 2024
    On 29.12.2024 13:39, Paul wrote:
    On Sun, 12/29/2024 4:54 AM, Muttley@dastardlyhq.com wrote:
    [...]

    I've written my own newsreader system and while admittedly its command line >> only it requires only one 3rd party library which is OpenSSL.

    That's a fine property. - Too bad one has to write one's own piece
    of software to get a more sensibly defined product.

    [ snip explanations of some TB internals ]

    Very interesting.


    Is the whole thing obscene ? Yes. You won't find too many
    software creations, this distorted. Still, people are using it.
    Most people are not aware what is under the hood. It's
    a herd of elephants :-)

    You get some impression of what's under the hood if you try to fix
    that [supposedly] primitive issue with the Reply-button. But it's
    (software design wise) actually even worse than I'd have imagined.

    Janis

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Janis Papanagnou@21:1/5 to Kenny McCormack on Sun Dec 29 22:03:19 2024
    On 29.12.2024 15:32, Kenny McCormack wrote:
    In article <vkrfue$vl1b$1@dont-email.me>, Paul <nospam@needed.invalid> wrote:
    ...
    Is the whole thing obscene ? Yes. You won't find too many
    software creations, this distorted. Still, people are using it.
    Most people are not aware what is under the hood. It's
    a herd of elephants :-)

    Just out curiosity, does all of this apply to the Windows version as well?

    I know this thread is mostly about the Linux version, and although I
    actually don't use TB at all, I know someone who uses the Windows version.

    I've used the Windows version quite some time ago. I can only say from
    a user's perspective that it was similar to use; maybe the menus were
    organized a bit differently (memories are faint). (Can't say anything
    about the/any "under the hood obscenities" on that platform.)

    Janis

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Janis Papanagnou@21:1/5 to Janis Papanagnou on Sun Dec 29 22:07:03 2024
    On 29.12.2024 21:55, Janis Papanagnou wrote:
    On Sun, 12/29/2024 4:54 AM, Muttley@dastardlyhq.com wrote:
    [...]

    I've written my own newsreader system and while admittedly its command line >>> only it requires only one 3rd party library which is OpenSSL.

    That's a fine property. - Too bad one has to write one's own piece
    of software to get a more sensibly defined product.

    I forgot to ask; wasn't it an option to use any existing text oriented newsreader (nn, rtin, ...)?

    (I recall I liked 'nn' a lot back these days.)

    Janis

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Paul@21:1/5 to Kenny McCormack on Sun Dec 29 19:49:10 2024
    On Sun, 12/29/2024 9:32 AM, Kenny McCormack wrote:
    In article <vkrfue$vl1b$1@dont-email.me>, Paul <nospam@needed.invalid> wrote:
    ...
    Is the whole thing obscene ? Yes. You won't find too many
    software creations, this distorted. Still, people are using it.
    Most people are not aware what is under the hood. It's
    a herd of elephants :-)

    Just out curiosity, does all of this apply to the Windows version as well?

    I know this thread is mostly about the Linux version, and although I
    actually don't use TB at all, I know someone who uses the Windows version.


    It's a FOSS software that compiles on multiple platforms.

    Just as Firefox (which is most of the code inside after all),
    is FOSS software that compiles on multiple platforms.
    There's even a Firefox.dmg for example, for a Mac computer.
    I don't keep track of how many platforms it supports.

    One way to do this, is to, say, use OpenGL for graphics, as
    OpenGL was available in lots of places. But, they don't do
    that, not exactly. On Windows, the Google ANGLE driver is
    used, which converts something like Direct3D, into an emulation
    of OpenGL. And later, Google may have added WebGL or something.
    The Firefox graphics runs at 20% speed on Windows, compared to
    Linux, and it has something to do with the different means
    of getting a working WebGL. There could have been support provided
    by graphics card drivers, a more direct path, but they didn't use that.

    In fact, the Mozilla graphics designer, is more than a bit annoyed
    about just how many graphics standards and APIs that ended up supported.
    Any notion of Keeping It Simple, went out the window long ago.
    I'm impressed it works as well as it does.

    Like the design of the iceburg, the news and email code is
    the 10% that floats above the water line. While the huge mass
    of cross-platform-ready code underneath for Firefox, does the
    rendering.

    If you have ever examined the tarball for a copy of Firefox
    or Thunderbird, you will develop new respect for it. In the
    sense that, somehow, a team of people corralled 400,000 files
    of various types and made something that sorta works out of it.
    How many projects do you know of, that have 400,000 files in the
    tree ? Many of the files are test benches, for detecting
    regressions when minor code changes are made.

    One day, I was sick of line ending problems, so I made a little
    project out of converting (400K files) to something common I could use.
    Before doing this, I did a scan with the Linux "file" command first,
    to get a declaration of the couple text file formats I was expecting.
    When I sorted all the declarations found, there were *100 text file formats*
    in the tree. For one particular file, if you change the line endings
    in any way, it triggers a bug in the compiler, and you don't get
    your build. And that's what I mean by the herd of elephants thing,
    there are extensive amounts of excrement down there, and don't
    step in it. It's real easy to think you can kick the tree around, when
    it doesn't actually accept abuse as a tree.

    One day, I used Visual Studio, and a debug build, to single-step
    Firefox through a Print routine. As IDE windows opened and closed,
    I noticed I had traversed three source files, source files which
    modified some common print settings, but not the exact same set of
    common settings. It seemed there were three routines running
    sequentially, and presumably the last one executing, was the "latest version". The two moribund versions of code, having never been removed.

    And that's how you manage 400,000 files in a tree. Careful
    where you step!

    Paul

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Richard Kettlewell on Fri Dec 27 23:11:32 2024
    On Fri, 27 Dec 2024 14:56:28 +0000, Richard Kettlewell wrote:

    On Debian-derived platforms, that’s what apt-get build-dep is for.

    Even if you want your build to be different from the Debian package, apt-
    get build-dep will still likely get you 90% of the way to installing all
    the needed dependencies.

    I used this as a starting point for my Blender build. Now that is a
    package with some complex dependencies.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Janis Papanagnou on Sat Dec 28 02:07:44 2024
    On Sat, 28 Dec 2024 00:44:10 +0100, Janis Papanagnou wrote:

    On 28.12.2024 00:22, Kalevi Kolttonen wrote:

    Compiling Thunderbird should be very easy indeed when we use Linux
    distro's package management.

    You expect _users_ of tools to use a _development_ environment to fix *inherent* shortcomings of a tool?

    On Linux, there is no “development environment” versus “user environment”.
    The same packaging tools work with both source code and built binaries.

    Platforms like Microsoft and Apple try to build a wall between two
    separate modes of using the system; Linux doesn’t.

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