Re: ./configure fails to link test program due to missing dependencies

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 9/25/24 11:33 AM, Paul Smith wrote:
> On Tue, 2024-09-24 at 10:39 -0700, Junio C Hamano wrote:
>> Our dependance of heavy use of GNU-ism in our Makefiles makes an
>> argument that make is the common denominator a fairly weak one, so
>> the single one that eventually we use does not have to be "make",
>> but it has to be something available widely and easy to learn.
> 
> Regardless of what one might imagine :), I am not advocating GNU Make
> as the perfect solution: it certainly has downsides and disadvantages.


:)

I've read your article about why people should use autoconf!

(By the way: I had a bit of a... chuckle, when I read in your previous
email that as the GNU maintainer of Make, you build lots of projects
with Make or CMake, but not with GNU autoconf / automake. I assume that
was just bad wording?)


> But, it also has benefits that should not be ignored: for example, it's
> highly portable and it consists of a single binary that can be copied
> anywhere and run from anywhere with no other prerequisites or need for
> any setup or privileges.  Also it's extremely flexible since it just
> runs shell scripts.  That also makes portability much more "do it
> yourself" than other tools of course.
> 
> Meson is portable, but that's because it's written in Python: that
> means you have to have a Python interpreter already available
> (currently Python 3.7 or better), and the ability to add new modules to
> it.  Admittedly this is not a super-high bar in 2024, but it's a non-
> trivial requirement if you're trying to start from scratch.


FWIW: you don't need the ability to add new modules to python, you can
run meson by acquiring its sources (tarball or git clone, either one
works) and running meson as

$ python3 mesonsources/meson.py ....

No installation required.

You can also make a single-file executable using the "create_zipapp.py"
packer that ships in the meson sources. It uses python's ability to
execute a .zip archive by expecting the root of the zip file to contain

a) the file __main__.py containing the program entrypoint
b) any additional modules that should be available at runtime

You do still need python3, sure.

There are a few different tools available for creating single-file
executables that don't require a python interpreter. What they do is
create a self-extracting executable that includes its own python and
internalized support files. Meson uses https://pyinstaller.org to do
this in order to create the Windows .msi and macOS .dmg installer
bundles without requiring the user to install python. I've used it to
create Linux executable installers of meson too -- but I have no strong
feelings about linux executable installers existing, so I only bother
doing so in order to run tests on the packing process e.g. when I want
to verify that the Windows installers are ok without actually running
Windows.

It's not that hard to build a more or less standalone python that only
depends on "glibc from CentOS 7 or newer" to use as your base. There's
an unofficial project that hosts some precompiled versions at
https://gregoryszorc.com/docs/python-build-standalone/main/index.html

Single-file executables are alive and flourishing. :)

The same could probably be done for other operating systems and not just
"the big 3", but I lack direct personal experience with deploying
software to such systems so I can't really say for sure.


-- 
Eli Schwartz

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux