What does "You have requested package `foo', but the package provides `foo'." mean?

its a bug in the class, looks like a recent change in the github log, can't test here, no tex, but the package name constructed by

\expandafter moderncv\romannumeral

which doesn't do the right thing \expandafter does nothing there, you can ignore the warning until it's fixed.

Lines 315 to 333 of moderncv.cls should be changed into

% loads a header variant
% usage: \moderncvhead[<optional head option>]{<header variant number>}
\newcommand*{\moderncvhead}[2][]{%
  \begingroup\edef\x{\endgroup
    \noexpand\RequirePackage[#1]{moderncvhead\ifcase#2\or i\or ii\or iii\or iv\or v\fi}%
  }\x 
}

% loads a body variant
% usage: \moderncvbody[<optional body option>]{<body variant number>}
\newcommand*{\moderncvbody}[2][]{%
  \begingroup\edef\x{\endgroup
    \noexpand\RequirePackage[#1]{moderncvbody\ifcase#2\or i\or ii\or iii\or iv\or v\fi}%
  }\x 
}

% loads a footer variant
% usage: \moderncvfoot{<footer variant number>}
\newcommand*{\moderncvfoot}[1]{%
  \begingroup\edef\x{\endgroup
    \noexpand\RequirePackage{moderncvfoot\ifcase#1\or i\or ii\or iii\or iv\or v\fi}%
  }\x
}

but it's not possible to add this code in a document, because the macros are already used by the class itself.


This bug has been fixed in the GitHub repo, but not yet (as of 2019-04-03) on CTAN: https://www.ctan.org/pkg/moderncv version:2.0.0 date:2015-07-28