# Installing fpm-0.10.1

**URL:** <https://fortran-lang.discourse.group/t/installing-fpm-0-10-1/8268>\
**Category:** fpm\
**Created:** [June 27, 2024, 2:30pm UTC](https://fortran-lang.discourse.group/t/installing-fpm-0-10-1/8268 "2024-06-27T14:30:11Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![ormo](https://avatars.discourse-cdn.com/v4/letter/o/d6d6ee/32.png) [@ormo](https://fortran-lang.discourse.group/u/ormo)\
**Post date:** [June 27, 2024, 2:30pm UTC](https://fortran-lang.discourse.group/t/installing-fpm-0-10-1/8268/1 "2024-06-27T14:30:11Z")

</div>

Installing previous fpm-versions raised no problems. Installing 0.10.1 does not succeed, using Linux-Fedora-40, which provides gcc-gfortran-14.1.1. This is what happens:

ormo@rolls5:~/fpm-0.10.1$ ./install.sh  
% Total % Received % Xferd Average Speed Time Time Time Current  
Dload Upload Total Spent Left Speed  
100 27309 100 27309 0 0 103k 0 --:–:-- --:–:-- --:–:-- 103k  
% Total % Received % Xferd Average Speed Time Time Time Current  
Dload Upload Total Spent Left Speed  
0 0 0 0 0 0 0 0 --:–:-- --:–:-- --:–:-- 0  
100 1513k 100 1513k 0 0 1633k 0 --:–:-- --:–:-- --:–:-- 21.9M

fpm.F90:28554:101:  
28554 | call set\_string(table, “descriptor”, descriptor\_name(self%descriptor), error, ‘git\_target\_t’)  
Error: There is no specific subroutine for the generic ‘set\_string’.

fpm.F90:30325:93:  
30325 | call set\_string(table,“os-type”,os\_type\_name(self%os\_type), error, ‘profile\_config\_t’)  
Error: There is no specific subroutine for the generic ‘set\_string’.

fpm.F90:31376:9:  
31376 | use fpm\_git, only: git\_target\_t, git\_target\_tag, git\_target\_branch, &  
Fatal Error: Cannot open module file ‘fpm\_git.mod’ for reading: No such file or directory  
compilation terminated.  
ormo@rolls5:~/fpm-0.10.1$

It seems that subroutine set\_string(table, … ) can not be found?  
Using grep, I cannot find the subroutine either.  
What do I do wrong?  
Thank you in advance for advice.  
d.vanormondt&ziggo.nl

---

<div class="post-metadata">

**Author:** ![FedericoPerini](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/federicoperini/32/1750_2.png) [@FedericoPerini](https://fortran-lang.discourse.group/u/FedericoPerini)\
**Post date:** [June 27, 2024, 2:50pm UTC](https://fortran-lang.discourse.group/t/installing-fpm-0-10-1/8268/2 "2024-06-27T14:50:41Z")

</div>

gfortran-14 has introduced some breaking changes, and we’ve deployed [a fix to the install script](https://github.com/fortran-lang/fpm/pull/1057) just a couple days ago.  
If you try with the most up-to-date version on trunk, it should work as it contains [the necessary fixes](https://github.com/fortran-lang/fpm/pull/1013):

```auto
git clone https://github.com/fortran-lang/fpm.git
cd fpm 
sh ./install.sh

```

---

<div class="post-metadata">

**Author:** ![ormo](https://avatars.discourse-cdn.com/v4/letter/o/d6d6ee/32.png) [@ormo](https://fortran-lang.discourse.group/u/ormo)\
**Post date:** [June 27, 2024, 6:15pm UTC](https://fortran-lang.discourse.group/t/installing-fpm-0-10-1/8268/3 "2024-06-27T18:15:15Z")

</div>

Thank you [FedericoPerini] for your prompt response! I shall implement asap and then report.  
Dirk van Ormondt.

---

<div class="post-metadata">

**Author:** ![ormo](https://avatars.discourse-cdn.com/v4/letter/o/d6d6ee/32.png) [@ormo](https://fortran-lang.discourse.group/u/ormo)\
**Post date:** [June 27, 2024, 7:13pm UTC](https://fortran-lang.discourse.group/t/installing-fpm-0-10-1/8268/4 "2024-06-27T19:13:39Z")

</div>

Thank you again for spending your precious time!  
Compilation with the new install.sh now reaches 65% and then stops at the call of same missing subroutine, set\_string, in git.f90, line 357:

ormo@rolls5:~/fpm-0.10.1$ ./install.sh  
etc …  
[65%] git.f90 done.

./src/fpm/git.f90:357:101:  
357 | call set\_string(table, “descriptor”, descriptor\_name(self%descriptor), error, ‘git\_target\_t’)  
Error: **There is no specific subroutine for the generic ‘set\_string’.**  
 Compilation failed for object " src\_fpm\_git.f90.o "  
stopping due to failed compilation  
STOP 1  
ormo@rolls5:~/fpm-0.10.1$

If necessary. I send the full compiler report.

Dirk van Ormondt.

---

<div class="post-metadata">

**Author:** ![FedericoPerini](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/federicoperini/32/1750_2.png) [@FedericoPerini](https://fortran-lang.discourse.group/u/FedericoPerini)\
**Post date:** [June 27, 2024, 7:40pm UTC](https://fortran-lang.discourse.group/t/installing-fpm-0-10-1/8268/5 "2024-06-27T19:40:10Z")

</div>

Dear Dirk:

please ensure that also your `fpm` version is up-to-date to what is in the main branch.  
In other words, not only the install script, but also the fpm source code.  
Otherwise, you will pass the bootstrapping phase, but not the build phase.

We will hopefully release a new version soon,

Federico

---

<div class="post-metadata">

**Author:** ![gnikit](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/gnikit/32/1213_2.png) [@gnikit](https://fortran-lang.discourse.group/u/gnikit)\
**Post date:** [June 27, 2024, 8:52pm UTC](https://fortran-lang.discourse.group/t/installing-fpm-0-10-1/8268/6 "2024-06-27T20:52:49Z")

</div>

If all else fails, an easy way to install fpm on Linux/MacOS that come with Python installed, is installing it via pip see [fpm package](https://pypi.org/project/fpm/).

```auto
pip install --user fpm

```

would place the binary under `~/.local/bin`. Up to you if you want to add that location to your `$PATH`.

---

<div class="post-metadata">

**Author:** ![FedericoPerini](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/federicoperini/32/1750_2.png) [@FedericoPerini](https://fortran-lang.discourse.group/u/FedericoPerini)\
**Post date:** [June 28, 2024, 5:49am UTC](https://fortran-lang.discourse.group/t/installing-fpm-0-10-1/8268/7 "2024-06-28T05:49:12Z")

</div>

@gnikit no pip expert here: does pip pre-package binaries, or is fpm built on the fly? In the latter case (homebrew), this issue will pop up again because gfortran 14 introduced these changes so 0.10.1 does not compile with it anymore (it does with gfortran 13).

That’s why I think it could be a good idea to finalize a round of new features and maybe release 0.10.2 soon.

---

<div class="post-metadata">

**Author:** ![ormo](https://avatars.discourse-cdn.com/v4/letter/o/d6d6ee/32.png) [@ormo](https://fortran-lang.discourse.group/u/ormo)\
**Post date:** [June 28, 2024, 9:46am UTC](https://fortran-lang.discourse.group/t/installing-fpm-0-10-1/8268/8 "2024-06-28T09:46:05Z")

</div>

Many thanks to you and to @gnikit for prompt helping. Although no python-user, I did :

ormo@rolls5:~/fpm-0.10 (2).1$ pip install --user fpm  
Collecting fpm  
Downloading fpm-0.10.1-py3-none-manylinux2014\_x86\_64.manylinux\_2\_17\_x86\_64.whl.metadata (7.9 kB)  
Downloading fpm-0.10.1-py3-none-manylinux2014\_x86\_64.manylinux\_2\_17\_x86\_64.whl (1.8 MB)  
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 10.8 MB/s eta 0:00:00  
Installing collected packages: fpm  
Successfully installed fpm-0.10.1  
ormo@rolls5:~/fpm-0.10 (2).1$

This yielded a file ~/.local/bin/fpm containing :  
#!/usr/bin/python3

# -_- coding: utf-8 -_-

import re  
import sys  
from fpm import main  
if **name** == ‘ **main** ’:  
sys.argv[0] = re.sub(r’(-script.pyw|.exe)?$', ‘’, sys.argv[0])  
sys.exit(main())

which does not work (for me, that is).

I think that waiting for fpm-0.10.2 is best, fpm-0.10.0 still doing fine on my PC.  
Many thanks again for spending your time.  
Dirk van Ormondt.

---

<div class="post-metadata">

**Author:** ![gnikit](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/gnikit/32/1213_2.png) [@gnikit](https://fortran-lang.discourse.group/u/gnikit)\
**Post date:** [June 28, 2024, 9:56am UTC](https://fortran-lang.discourse.group/t/installing-fpm-0-10-1/8268/9 "2024-06-28T09:56:08Z")

</div>

> [@ormo](#):
>
> which does not work (for me, that is).

What do you mean by this?  
What is the output of `~/.local/bin/fpm --version`?

---

<div class="post-metadata">

**Author:** ![gnikit](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/gnikit/32/1213_2.png) [@gnikit](https://fortran-lang.discourse.group/u/gnikit)\
**Post date:** [June 28, 2024, 10:02am UTC](https://fortran-lang.discourse.group/t/installing-fpm-0-10-1/8268/10 "2024-06-28T10:02:18Z")

</div>

If there is a matching wheel for your OS, architecture, Python version, it will install the pre-compiled binaries (with all its dependencies, supposedly). If no match is found it will build from source, since we provide wheels for all major OSs, architectures and we are Python version agnostic, almost all installations should be occurring from the wheels.

Doing another patch release sounds good, ping me when you think it’s a good time.

---

<div class="post-metadata">

**Author:** ![ormo](https://avatars.discourse-cdn.com/v4/letter/o/d6d6ee/32.png) [@ormo](https://fortran-lang.discourse.group/u/ormo)\
**Post date:** [June 28, 2024, 10:36am UTC](https://fortran-lang.discourse.group/t/installing-fpm-0-10-1/8268/11 "2024-06-28T10:36:09Z")

</div>

Sorry for for my failed hasty trial which gave readers a wrong impression about your advice.

New trial :  
First the version :  
ormo@rolls5:~/fpm-0.10 (2).1$ ~/.local/bin/fpm --version  
Version: 0.10.1, alpha  
Program: fpm(1)  
Description: A Fortran package manager and build system  
Home Page: [GitHub - fortran-lang/fpm: Fortran Package Manager (fpm)](https://github.com/fortran-lang/fpm)  
License: MIT  
OS Type: Linux  
ormo@rolls5:~/fpm-0.10 (2).1$

Next, application to neural-fortran-0.15.1:  
ormo@rolls5:~/fpm-0.10 (2).1$ cd ‘/home/ormo/neural-fortran-0.15.1’  
ormo@rolls5:~/neural-fortran-0.15.1$ ~/.local/bin/fpm build  
simple.f90 done.  
simple done.  
[100%] Project compiled successfully.  
ormo@rolls5:~/neural-fortran-0.15.1$

This looks OK. My earlier attempt was too hasty. Sorry for my mistake. And thank you again.

---

<div class="post-metadata">

**Author:** ![gnikit](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/gnikit/32/1213_2.png) [@gnikit](https://fortran-lang.discourse.group/u/gnikit)\
**Post date:** [June 28, 2024, 10:51am UTC](https://fortran-lang.discourse.group/t/installing-fpm-0-10-1/8268/12 "2024-06-28T10:51:59Z")

</div>

Great, happy that you could get it to work.

I was slightly worried there for a minute, because I thought we might have messed up the packaging of `fpm` into PyPi (which is very possible). Thanks for confirming that everything works.

---

<div class="post-metadata">

**Author:** ![ormo](https://avatars.discourse-cdn.com/v4/letter/o/d6d6ee/32.png) [@ormo](https://fortran-lang.discourse.group/u/ormo)\
**Post date:** [June 28, 2024, 12:41pm UTC](https://fortran-lang.discourse.group/t/installing-fpm-0-10-1/8268/13 "2024-06-28T12:41:13Z")

</div>

Yes, fpm-0.10.1 works on my PC thanks to your help.  
Yet, I keep worrying about the seemingly elusiveness of subroutine set\_string that is in the way of installing with install.sh. :

> [@ormo](#):
>
> call set\_string(table, “descriptor”, descriptor\_name(self%descriptor), error, ‘git\_target\_t’)  
> Error: **There is no specific subroutine for the generic ‘set\_string’.**

I shall keep you and Federico Perini informed if something tangible comes out.

Dirk van ormondt.

---

<div class="post-metadata">

**Author:** ![FedericoPerini](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/federicoperini/32/1750_2.png) [@FedericoPerini](https://fortran-lang.discourse.group/u/FedericoPerini)\
**Post date:** [June 28, 2024, 1:20pm UTC](https://fortran-lang.discourse.group/t/installing-fpm-0-10-1/8268/14 "2024-06-28T13:20:48Z")

</div>

Thank you again Dirk for your tests:

The issue on `set_string` has been fixed at [fpm#1013](https://github.com/fortran-lang/fpm/pull/1013).  
It requires a `character(:), allocatable` input and `descriptor_name` returns exactly that.  
However, that is apparently non-standard behavior that was tolerated until gfortran\<=13.

So if you’re trying to build fpm 0.10.1 from source using gfortran-14, it will not work: you need the most up to date code.

---

<div class="post-metadata">

**Author:** ![ormo](https://avatars.discourse-cdn.com/v4/letter/o/d6d6ee/32.png) [@ormo](https://fortran-lang.discourse.group/u/ormo)\
**Post date:** [June 28, 2024, 7:32pm UTC](https://fortran-lang.discourse.group/t/installing-fpm-0-10-1/8268/15 "2024-06-28T19:32:56Z")

</div>

Finally, it dawned on me how to handle the lines:

```auto
git clone https://github.com/fortran-lang/fpm.git
cd fpm 
sh ./install.sh

```

you gave in your 1st answer. Sorry.

Implementation ends with :  
…  
[98%] fpm  
[100%] fpm done.  
[100%] Project compiled successfully.

# Update: build/gfortran\_C5DFB4325BCFA5D6/app/fpm → /home/ormo/.local/bin

ormo@rolls5:~/fpm-0.10.1/fpm$

Thank you for your patience.

Dirk.

---

<div class="post-metadata">

**Author:** ![blueforceconsulting](https://avatars.discourse-cdn.com/v4/letter/b/4af34b/32.png) [@blueforceconsulting](https://fortran-lang.discourse.group/u/blueforceconsulting)\
**Post date:** [December 26, 2024, 2:40am UTC](https://fortran-lang.discourse.group/t/installing-fpm-0-10-1/8268/16 "2024-12-26T02:40:00Z")

</div>

Hello. Is there a fix in the works for the ‘set\_string’ error in the latest fpm?

The reason I ask is that I am having trouble installing 0.8.0

I don’t know enough to set git and or macports to run the install from the terminal.

Thanks.

Jeff

---

<div class="post-metadata">

**Author:** ![blueforceconsulting](https://avatars.discourse-cdn.com/v4/letter/b/4af34b/32.png) [@blueforceconsulting](https://fortran-lang.discourse.group/u/blueforceconsulting)\
**Post date:** [December 27, 2024, 1:35am UTC](https://fortran-lang.discourse.group/t/installing-fpm-0-10-1/8268/17 "2024-12-27T01:35:27Z")

</div>

FWIW, I did finally get fpm 0.8.0 loaded in Macports, but when I tried to install it failed: (Sequoia 15.2, Xcode 16.2)

:error:build Failed to build gcc12: command execution failed  
:debug:build Error code: CHILDSTATUS 66614 2  
:debug:build Backtrace: command execution failed  
:debug:build while executing  
:debug:build “system {_}$notty {_}$callback {\*}$nice $fullcmdstring”  
:debug:build invoked from within  
:debug:build “command\_exec -callback portprogress::target\_progress\_callback build”  
:debug:build (procedure “portbuild::build\_main” line 10)  
:debug:build invoked from within  
:debug:build “$procedure $targetname”  
:error:build See /opt/local/var/macports/logs/\_opt\_local\_var\_macports\_sources\_rsync.macports.org\_macports\_release\_tarballs\_ports\_lang\_gcc12/gcc12/main.log for details.

---

<div class="post-metadata">

**Author:** ![FedericoPerini](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/federicoperini/32/1750_2.png) [@FedericoPerini](https://fortran-lang.discourse.group/u/FedericoPerini)\
**Post date:** [December 27, 2024, 11:54am UTC](https://fortran-lang.discourse.group/t/installing-fpm-0-10-1/8268/18 "2024-12-27T11:54:30Z")

</div>

Welcome to the forum @blueforceconsulting! gfortran-14 introduced a breaking change so it won’t be possible to build 0.8.0 with it. Until we have a new release, the method suggested above works:

> [@ormo](#):
>
> ```auto
> git clone https://github.com/fortran-lang/fpm.git
> cd fpm 
> sh ./install.sh
> 
> ```

---

<div class="post-metadata">

**Author:** ![blueforceconsulting](https://avatars.discourse-cdn.com/v4/letter/b/4af34b/32.png) [@blueforceconsulting](https://fortran-lang.discourse.group/u/blueforceconsulting)\
**Post date:** [December 27, 2024, 3:03pm UTC](https://fortran-lang.discourse.group/t/installing-fpm-0-10-1/8268/19 "2024-12-27T15:03:34Z")

</div>

@FedericoPerini, I was able to install fpm successfully using your guidance above (Sequoia 15.2, Xcode 16.2, gcc14)

However, when I try to install fortran-csv-module using MacPorts I get the same ‘set\_string’ error. Here are some snippets from the Main.log file:

First to show fpm version:

version:1  
:debug:main Starting logging for fpm @0.10.1\_0+gfortran  
:debug:sysinfo macOS 15.2 (darwin/24.2.0) arch arm  
:debug:sysinfo MacPorts 2.10.5  
:debug:sysinfo Xcode none, CLT 16.2.0.0.1.1733547573  
:debug:sysinfo SDK 15  
:debug:sysinfo MACOSX\_DEPLOYMENT\_TARGET: 15.0  
:debug:main Attempting ln -sf /opt/local/var/macports/build/\_opt\_local\_var\_macports\_sources\_rsync.macports.org\_macports\_release\_tarballs\_ports\_devel\_fpm/fpm/work /opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/devel/fpm/work

Next, error:

:info:build  
35 1513k 35 540k 0 0 1122k 0 0:00:01 --:–:-- 0:00:01 1122k  
100 1513k 100 1513k 0 0 2093k 0 --:–:-- --:–:-- --:–:-- 4038k  
:info:build fpm.F90:28554:101:  
:info:build 28554 | call set\_string(table, “descriptor”, descriptor\_name(self%descriptor), error, ‘git\_target\_t’)  
:info:build | 1  
:info:build Error: There is no specific subroutine for the generic ‘set\_string’ at (1)  
:info:build fpm.F90:30325:93:  
:info:build 30325 | call set\_string(table,“os-type”,os\_type\_name(self%os\_type), error, ‘profile\_config\_t’)  
:info:build | 1  
:info:build Error: There is no specific subroutine for the generic ‘set\_string’ at (1)  
:info:build fpm.F90:31376:9:  
:info:build 31376 | use fpm\_git, only: git\_target\_t, git\_target\_tag, git\_target\_branch, &  
:info:build | 1  
:info:build Fatal Error: Cannot open module file ‘fpm\_git.mod’ for reading at (1): No such file or directory  
:info:build compilation terminated.

Do I need to drop back to Xcode 15,2 perhaps?

Thanks

---

<div class="post-metadata">

**Author:** ![blueforceconsulting](https://avatars.discourse-cdn.com/v4/letter/b/4af34b/32.png) [@blueforceconsulting](https://fortran-lang.discourse.group/u/blueforceconsulting)\
**Post date:** [December 27, 2024, 4:53pm UTC](https://fortran-lang.discourse.group/t/installing-fpm-0-10-1/8268/20 "2024-12-27T16:53:50Z")

</div>

> [@ormo](#):
>
> `git clone https://github.com/fortran-lang/fpm.git`

Ok. Another update. So I tried this:

1. Reinstalled fpm as per above. Confirmed successful install.
2. Cloned fortran-csv using git.
3. Used the fpm I installed in step 1 to install fortran-csv.

However, for whatever reason I had to make an instance of fpm inside the fortran-csv folder and the do ./fpm build. I confirmed that the fortran-csv includes are my gfortran build.

So my only remaining question, and it might be because I’m really a newbie with coding at this level, is why couldn’t i just invoke fpm from terminal while I was inside the fortran-csv folder? Why did I need to make an instance of it inside the folder and then invoke with ./fpm?

Thanks

[Next page](https://fortran-lang.discourse.group/t/installing-fpm-0-10-1/8268.md?page=2)
