As of Mathematica 10.3, a solution is returned by DSolve
eqns = {B'[x] == -f[x]*Cos[l]*G[x], G'[x] == +f[x]*Sin[l]*B[x]};
sol = DSolve[eqns, {B, G}, x]
(* {{B ->
Function[{x},
1/2 (-2 E^-Integrate[-I f[K[1]] Sqrt[Cos[l] Sin[l]], {K[1], 1, x},
Assumptions -> True] + E^
Integrate[-I f[K[1]] Sqrt[Cos[l] Sin[l]], {K[1], 1, x},
Assumptions -> True]) C[1] +
1/2 E^(1 +
Integrate[-I f[K[1]] Sqrt[Cos[l] Sin[l]], {K[1], 1, x},
Assumptions -> True]) C[2]],
G -> Function[{x},
1/2 I E^(
1 + Integrate[-I f[K[1]] Sqrt[Cos[l] Sin[l]], {K[1], 1, x},
Assumptions -> True]) C[2] Sec[l] Sqrt[Cos[l] Sin[l]] - (1/(
2 f[x]))C[1] Sec[
l] (-2 I E^-Integrate[-I f[K[1]] Sqrt[Cos[l] Sin[l]], {K[1], 1,
x}, Assumptions -> True] f[x] Sqrt[Cos[l] Sin[l]] -
I E^Integrate[-I f[K[1]] Sqrt[Cos[l] Sin[l]], {K[1], 1, x},
Assumptions -> True] f[x] Sqrt[Cos[l] Sin[l]])]}} *)
Simplify[eqns /. sol]
(* {{True, True}} *)
C[2]
. $\endgroup$DSolve
returns unevaluated instead of returning this solution. Is that a separate, new-in-10.2 bug? $\endgroup$