Uploaded image for project: 'Data Management'
  1. Data Management
  2. DM-1403

meas_modelfit requires gfortran to build

    Details

    • Type: Story
    • Status: Done
    • Resolution: Done
    • Fix Version/s: None
    • Component/s: meas_modelfit
    • Labels:
      None
    • Team:
      Data Release Production

      Description

      meas_modelfit provides a unit test written in fortran and and the build fails on MacOS if gfortran is not available. I don't believe gfortran is a permitted dependency. Certainly it does not show up on <https://confluence.lsstcorp.org/display/LSWUG/Prerequisites> for MacOS.

      On the other hand, it does show up as a dependency for all the unix variants, which is odd.

      If gfortran is permitted, then this ticket should probably be against that web page. If it snot permitted, please fix the package so that the package can be built without gfortran. Several options come to mind, including:

      • Convert that code to C code
      • Skip the test if gfortran is not available
      • If possible, pre-compute the output from the fortran test, instead of building and running it as part of the build

        Attachments

          Issue Links

            Activity

            Hide
            rhl Robert Lupton added a comment -

            Sounds as if there's still an scons mystery here that we shouldn't forget. But probably not as part of this ticket.

            Show
            rhl Robert Lupton added a comment - Sounds as if there's still an scons mystery here that we shouldn't forget. But probably not as part of this ticket.
            Hide
            ktl Kian-Tat Lim added a comment -

            No mystery; sconsUtils.scripts does an os.walk(".") and runs any SConscript it finds unless it's underneath a directory with an SConstruct in it (or a "."-prefixed directory).

            Show
            ktl Kian-Tat Lim added a comment - No mystery; sconsUtils.scripts does an os.walk(".") and runs any SConscript it finds unless it's underneath a directory with an SConstruct in it (or a "."-prefixed directory).
            Hide
            rowen Russell Owen added a comment -

            What worries me is why this did not show up when I built with "scons" at the command line (using the packages in my lsstsw stack)? That worked just fine.

            It only showed up when I used lsstsw's rebuild command to rebuild the same package. That caused the build to fail because I don't have gfortran installed anymore.

            Also, since this SConscript file is found automatically, it seems odd that it got a special entry in the parent folder's SConscript file. But I left that with a revised name, to make it easier to temporarily enable the build of this fortran file.

            Show
            rowen Russell Owen added a comment - What worries me is why this did not show up when I built with "scons" at the command line (using the packages in my lsstsw stack)? That worked just fine. It only showed up when I used lsstsw's rebuild command to rebuild the same package. That caused the build to fail because I don't have gfortran installed anymore. Also, since this SConscript file is found automatically, it seems odd that it got a special entry in the parent folder's SConscript file. But I left that with a revised name, to make it easier to temporarily enable the build of this fortran file.
            Hide
            jbosch Jim Bosch added a comment -

            What worries me is why this did not show up when I built with "scons" at the command line (using the packages in my lsstsw stack)? That worked just fine.
            It only showed up when I used lsstsw's rebuild command to rebuild the same package. That caused the build to fail because I don't have gfortran installed anymore.

            I think this just boils down to the differences between "scons" and "scons install'. The latter tends to try to build everything so it can install everything, while the former defaults to (I think) just the "lib python doc examples tests" targets.

            Show
            jbosch Jim Bosch added a comment - What worries me is why this did not show up when I built with "scons" at the command line (using the packages in my lsstsw stack)? That worked just fine. It only showed up when I used lsstsw's rebuild command to rebuild the same package. That caused the build to fail because I don't have gfortran installed anymore. I think this just boils down to the differences between "scons" and "scons install'. The latter tends to try to build everything so it can install everything, while the former defaults to (I think) just the "lib python doc examples tests" targets.
            Hide
            jbosch Jim Bosch added a comment -

            I'm in between planes, so I may not be able to fix this today. The bug is
            in the build; the file that needs Fortran should not be built unless
            specifically requested (it's a reference implementation that my tests
            compare to, but its outputs are already in git so we don't need to
            build/run it regularly). Paul just fixed this on the HSC side. I think
            all he had to do was rename the subdirectory SConscript file to SConstruct.

            Jim

            Show
            jbosch Jim Bosch added a comment - I'm in between planes, so I may not be able to fix this today. The bug is in the build; the file that needs Fortran should not be built unless specifically requested (it's a reference implementation that my tests compare to, but its outputs are already in git so we don't need to build/run it regularly). Paul just fixed this on the HSC side. I think all he had to do was rename the subdirectory SConscript file to SConstruct. Jim

              People

              • Assignee:
                jbosch Jim Bosch
                Reporter:
                rowen Russell Owen
                Watchers:
                Jim Bosch, Kian-Tat Lim, Robert Lupton, Russell Owen
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Summary Panel