Nix contractor; repackage Ubuntu or RHEL repo

Hi all!

I am need of a Nix contractor to make a Nix package from an Ubuntu or RHEL repo. I work in engineering, and use the following software quite a bit in my work.

https://github.com/OPM/opm-simulators
https://github.com/OPM/ResInsight

I have a RHEL box at work, but use Apple products for my mobile devices (Macbook Air M1, iPhone). What I would like to do is package these two pieces of software so I can hop on any Macintosh or Linux box, install Nix, install these packages, and get to work.

I don’t know how long this would take, or what the budget would me. But, I know this is the place to get these things answered!

Hope to hear from the community!

Evan

2 Likes

Hello! I’ve done some work, but unfortunately cannot get opm-grid (which is a dependency of opm-simulators) to build.
It errors with this:

building
build flags: -j12 -l12 SHELL=/nix/store/wadmyilr414n7bimxysbny876i2vlm5r-bash-5.1-p8/bin/bash
[ 11%] Building CXX object CMakeFiles/opmgrid.dir/opm/grid/cpgrid/Intersection.cpp.o
[ 11%] Building CXX object CMakeFiles/opmgrid.dir/opm/grid/cpgrid/DataHandleWrappers.cpp.o
[ 11%] Building CXX object CMakeFiles/opmgrid.dir/opm/grid/cpgrid/CpGridData.cpp.o
[ 11%] Building CXX object CMakeFiles/opmgrid.dir/opm/grid/cpgrid/CpGrid.cpp.o
[ 19%] Building CXX object CMakeFiles/opmgrid.dir/opm/grid/cpgrid/PartitionTypeIndicator.cpp.o
[ 19%] Building CXX object CMakeFiles/opmgrid.dir/opm/grid/cpgrid/processEclipseFormat.cpp.o
[ 19%] Building CXX object CMakeFiles/opmgrid.dir/opm/grid/cpgrid/GridHelpers.cpp.o
[ 22%] Building CXX object CMakeFiles/opmgrid.dir/opm/grid/cpgrid/readSintefLegacyFormat.cpp.o
[ 22%] Building CXX object CMakeFiles/opmgrid.dir/opm/grid/cpgrid/writeSintefLegacyFormat.cpp.o
[ 25%] Building CXX object CMakeFiles/opmgrid.dir/opm/grid/common/GeometryHelpers.cpp.o
[ 27%] Building CXX object CMakeFiles/opmgrid.dir/opm/grid/common/WellConnections.cpp.o
[ 30%] Building CXX object CMakeFiles/opmgrid.dir/opm/grid/common/GridPartitioning.cpp.o
[ 33%] Building CXX object CMakeFiles/opmgrid.dir/opm/grid/common/ZoltanGraphFunctions.cpp.o
[ 36%] Building CXX object CMakeFiles/opmgrid.dir/opm/grid/common/ZoltanPartition.cpp.o
[ 38%] Building CXX object CMakeFiles/opmgrid.dir/opm/grid/GridHelpers.cpp.o
[ 41%] Building CXX object CMakeFiles/opmgrid.dir/opm/grid/GridManager.cpp.o
/build/source/opm/grid/cpgrid/processEclipseFormat.cpp: In member function 'void Dune::cpgrid::CpGridData::processEclipseFormat(const grdecl&, Opm::EclipseState*, Dune::NNCMaps&, bool, bool, bool)':
/build/source/opm/grid/cpgrid/processEclipseFormat.cpp:288:25: error: 'const class Opm::AquiferConfig' has no member named 'mutableNumericalAquifers'; did you mean 'hasNumericalAquifer'?
  288 |                 aquifer.mutableNumericalAquifers().postProcessConnections(ecl_grid, new_actnum);
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~
      |                         hasNumericalAquifer
/build/source/opm/grid/cpgrid/processEclipseFormat.cpp:289:71: error: 'const class Opm::NumericalAquifers' has no member named 'aquiferConnectionNNCs'; did you mean 'addAquiferConnections'?
  289 |                 const auto& aquifer_nnc = aquifer.numericalAquifers().aquiferConnectionNNCs(ecl_grid, fp);
      |                                                                       ^~~~~~~~~~~~~~~~~~~~~
      |                                                                       addAquiferConnections
/build/source/opm/grid/cpgrid/processEclipseFormat.cpp:291:28: error: 'class Opm::EclipseState' has no member named 'appendInputNNC'; did you mean 'getInputNNC'?
  291 |                 ecl_state->appendInputNNC(aquifer_nnc);
      |                            ^~~~~~~~~~~~~~
      |                            getInputNNC
/build/source/opm/grid/cpgrid/processEclipseFormat.cpp:293:81: error: no matching function for call to 'std::set<std::pair<int, int> >::insert(<brace-enclosed initializer list>)'
  293 |                     nnc[ExplicitNNC].insert({single_nnc.cell1, single_nnc.cell2});
      |                                                                                 ^
In file included from /nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/include/c++/10.3.0/set:61,
                 from /nix/store/hr3cxv72y9cz7i0df7r6addwp17rwad1-dune-istl-2.8.0/include/dune/istl/owneroverlapcopy.hh:11,
                 from /build/source/opm/grid/cpgrid/CpGridData.hpp:56,
                 from /build/source/opm/grid/cpgrid/processEclipseFormat.cpp:41:
/nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/include/c++/10.3.0/bits/stl_set.h:509:7: note: candidate: 'std::pair<typename std::_Rb_tree<_Key, _Key, std::_Identity<_Tp>, _Compare, typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other>::const_iterator, bool> std::set<_Key, _Compare, _Alloc>::insert(const value_type&) [with _Key = std::pair<int, int>; _Compare = std::less<std::pair<int, int> >; _Alloc = std::allocator<std::pair<int, int> >; typename std::_Rb_tree<_Key, _Key, std::_Identity<_Tp>, _Compare, typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other>::const_iterator = std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int> >, std::less<std::pair<int, int> >, std::allocator<std::pair<int, int> > >::const_iterator; std::set<_Key, _Compare, _Alloc>::value_type = std::pair<int, int>]'
  509 |       insert(const value_type& __x)
      |       ^~~~~~
/nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/include/c++/10.3.0/bits/stl_set.h:509:32: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const value_type&' {aka 'const std::pair<int, int>&'}
  509 |       insert(const value_type& __x)
      |              ~~~~~~~~~~~~~~~~~~^~~
/nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/include/c++/10.3.0/bits/stl_set.h:518:7: note: candidate: 'std::pair<typename std::_Rb_tree<_Key, _Key, std::_Identity<_Tp>, _Compare, typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other>::const_iterator, bool> std::set<_Key, _Compare, _Alloc>::insert(std::set<_Key, _Compare, _Alloc>::value_type&&) [with _Key = std::pair<int, int>; _Compare = std::less<std::pair<int, int> >; _Alloc = std::allocator<std::pair<int, int> >; typename std::_Rb_tree<_Key, _Key, std::_Identity<_Tp>, _Compare, typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other>::const_iterator = std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int> >, std::less<std::pair<int, int> >, std::allocator<std::pair<int, int> > >::const_iterator; std::set<_Key, _Compare, _Alloc>::value_type = std::pair<int, int>]'
  518 |       insert(value_type&& __x)
      |       ^~~~~~
/nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/include/c++/10.3.0/bits/stl_set.h:518:27: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::set<std::pair<int, int> >::value_type&&' {aka 'std::pair<int, int>&&'}
  518 |       insert(value_type&& __x)
      |              ~~~~~~~~~~~~~^~~
/nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/include/c++/10.3.0/bits/stl_set.h:546:7: note: candidate: 'std::set<_Key, _Compare, _Alloc>::iterator std::set<_Key, _Compare, _Alloc>::insert(std::set<_Key, _Compare, _Alloc>::const_iterator, const value_type&) [with _Key = std::pair<int, int>; _Compare = std::less<std::pair<int, int> >; _Alloc = std::allocator<std::pair<int, int> >; std::set<_Key, _Compare, _Alloc>::iterator = std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int> >, std::less<std::pair<int, int> >, std::allocator<std::pair<int, int> > >::const_iterator; std::set<_Key, _Compare, _Alloc>::const_iterator = std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int> >, std::less<std::pair<int, int> >, std::allocator<std::pair<int, int> > >::const_iterator; std::set<_Key, _Compare, _Alloc>::value_type = std::pair<int, int>]'
  546 |       insert(const_iterator __position, const value_type& __x)
      |       ^~~~~~
/nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/include/c++/10.3.0/bits/stl_set.h:546:7: note:   candidate expects 2 arguments, 1 provided
/nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/include/c++/10.3.0/bits/stl_set.h:551:7: note: candidate: 'std::set<_Key, _Compare, _Alloc>::iterator std::set<_Key, _Compare, _Alloc>::insert(std::set<_Key, _Compare, _Alloc>::const_iterator, std::set<_Key, _Compare, _Alloc>::value_type&&) [with _Key = std::pair<int, int>; _Compare = std::less<std::pair<int, int> >; _Alloc = std::allocator<std::pair<int, int> >; std::set<_Key, _Compare, _Alloc>::iterator = std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int> >, std::less<std::pair<int, int> >, std::allocator<std::pair<int, int> > >::const_iterator; std::set<_Key, _Compare, _Alloc>::const_iterator = std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int> >, std::less<std::pair<int, int> >, std::allocator<std::pair<int, int> > >::const_iterator; std::set<_Key, _Compare, _Alloc>::value_type = std::pair<int, int>]'
  551 |       insert(const_iterator __position, value_type&& __x)
      |       ^~~~~~
/nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/include/c++/10.3.0/bits/stl_set.h:551:7: note:   candidate expects 2 arguments, 1 provided
/nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/include/c++/10.3.0/bits/stl_set.h:566:2: note: candidate: 'template<class _InputIterator> void std::set<_Key, _Compare, _Alloc>::insert(_InputIterator, _InputIterator) [with _InputIterator = _InputIterator; _Key = std::pair<int, int>; _Compare = std::less<std::pair<int, int> >; _Alloc = std::allocator<std::pair<int, int> >]'
  566 |  insert(_InputIterator __first, _InputIterator __last)
      |  ^~~~~~
/nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/include/c++/10.3.0/bits/stl_set.h:566:2: note:   template argument deduction/substitution failed:
/build/source/opm/grid/cpgrid/processEclipseFormat.cpp:293:81: note:   candidate expects 2 arguments, 1 provided
  293 |                     nnc[ExplicitNNC].insert({single_nnc.cell1, single_nnc.cell2});
      |                                                                                 ^
In file included from /nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/include/c++/10.3.0/set:61,
                 from /nix/store/hr3cxv72y9cz7i0df7r6addwp17rwad1-dune-istl-2.8.0/include/dune/istl/owneroverlapcopy.hh:11,
                 from /build/source/opm/grid/cpgrid/CpGridData.hpp:56,
                 from /build/source/opm/grid/cpgrid/processEclipseFormat.cpp:41:
/nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/include/c++/10.3.0/bits/stl_set.h:578:7: note: candidate: 'void std::set<_Key, _Compare, _Alloc>::insert(std::initializer_list<_Tp>) [with _Key = std::pair<int, int>; _Compare = std::less<std::pair<int, int> >; _Alloc = std::allocator<std::pair<int, int> >]'
  578 |       insert(initializer_list<value_type> __l)
      |       ^~~~~~
/nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/include/c++/10.3.0/bits/stl_set.h:578:43: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::initializer_list<std::pair<int, int> >'
  578 |       insert(initializer_list<value_type> __l)
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/include/c++/10.3.0/bits/stl_set.h:598:7: note: candidate: 'std::set<_Key, _Compare, _Alloc>::insert_return_type std::set<_Key, _Compare, _Alloc>::insert(std::set<_Key, _Compare, _Alloc>::node_type&&) [with _Key = std::pair<int, int>; _Compare = std::less<std::pair<int, int> >; _Alloc = std::allocator<std::pair<int, int> >; std::set<_Key, _Compare, _Alloc>::insert_return_type = std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int> >, std::less<std::pair<int, int> >, std::allocator<std::pair<int, int> > >::insert_return_type; std::set<_Key, _Compare, _Alloc>::node_type = std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int> >, std::less<std::pair<int, int> >, std::allocator<std::pair<int, int> > >::node_type]'
  598 |       insert(node_type&& __nh)
      |       ^~~~~~
/nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/include/c++/10.3.0/bits/stl_set.h:598:26: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::set<std::pair<int, int> >::node_type&&' {aka 'std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int> >, std::less<std::pair<int, int> >, std::allocator<std::pair<int, int> > >::node_type&&'}
  598 |       insert(node_type&& __nh)
      |              ~~~~~~~~~~~~^~~~
/nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/include/c++/10.3.0/bits/stl_set.h:603:7: note: candidate: 'std::set<_Key, _Compare, _Alloc>::iterator std::set<_Key, _Compare, _Alloc>::insert(std::set<_Key, _Compare, _Alloc>::const_iterator, std::set<_Key, _Compare, _Alloc>::node_type&&) [with _Key = std::pair<int, int>; _Compare = std::less<std::pair<int, int> >; _Alloc = std::allocator<std::pair<int, int> >; std::set<_Key, _Compare, _Alloc>::iterator = std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int> >, std::less<std::pair<int, int> >, std::allocator<std::pair<int, int> > >::const_iterator; std::set<_Key, _Compare, _Alloc>::const_iterator = std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int> >, std::less<std::pair<int, int> >, std::allocator<std::pair<int, int> > >::const_iterator; std::set<_Key, _Compare, _Alloc>::node_type = std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int> >, std::less<std::pair<int, int> >, std::allocator<std::pair<int, int> > >::node_type]'
  603 |       insert(const_iterator __hint, node_type&& __nh)
      |       ^~~~~~
/nix/store/a2w3l1m75908yd05a0h40vnrzvxfd0gd-gcc-10.3.0/include/c++/10.3.0/bits/stl_set.h:603:7: note:   candidate expects 2 arguments, 1 provided
[ 44%] Building CXX object CMakeFiles/opmgrid.dir/opm/grid/GridUtilities.cpp.o
[ 47%] Building C object CMakeFiles/opmgrid.dir/opm/grid/cart_grid.c.o
[ 50%] Building C object CMakeFiles/opmgrid.dir/opm/grid/cornerpoint_grid.c.o
[ 52%] Building C object CMakeFiles/opmgrid.dir/opm/grid/cpgpreprocess/facetopology.c.o
[ 55%] Building C object CMakeFiles/opmgrid.dir/opm/grid/cpgpreprocess/geometry.c.o
[ 58%] Building C object CMakeFiles/opmgrid.dir/opm/grid/cpgpreprocess/preprocess.c.o
[ 61%] Building C object CMakeFiles/opmgrid.dir/opm/grid/cpgpreprocess/uniquepoints.c.o
[ 63%] Building C object CMakeFiles/opmgrid.dir/opm/grid/UnstructuredGrid.c.o
[ 63%] Building CXX object CMakeFiles/opmgrid.dir/opm/grid/grid_equal.cpp.o
[ 66%] Building CXX object CMakeFiles/opmgrid.dir/opm/grid/utility/compressedToCartesian.cpp.o
[ 69%] Building CXX object CMakeFiles/opmgrid.dir/opm/grid/utility/cartesianToCompressed.cpp.o
[ 72%] Building CXX object CMakeFiles/opmgrid.dir/opm/grid/utility/StopWatch.cpp.o
[ 75%] Building CXX object CMakeFiles/opmgrid.dir/opm/grid/utility/WachspressCoord.cpp.o
make[2]: *** [CMakeFiles/opmgrid.dir/build.make:160: CMakeFiles/opmgrid.dir/opm/grid/cpgrid/processEclipseFormat.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 77%] Building CXX object CMakeFiles/opmgrid.dir/opm/grid/utility/VelocityInterpolation.cpp.o
make[1]: *** [CMakeFiles/Makefile2:935: CMakeFiles/opmgrid.dir/all] Error 2
make: *** [Makefile:146: all] Error 2

The existing nix expressions can be found here:

I don’t have the required time to look further into those errors, but if someone else may want to they may use my code free of charge.

2 Likes