When you ask for mipmaps in MIN filter, you have to provide each mipmap level with glTexImage2D or use it automatically with one of these methods :
glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_TRUE); // GL 1.4, deprecated in GL3.0 : generate mipmaps each time glTexImage2D changes the base level
glGenerateMipmap(GL_TEXTURE_2D); // for GL3.0+ : when called, generates mipmaps from base level, once
No need to worry, because gluBuild makes the mipmaps by hand on the cpu, and uploads each level with glTexImage2D. Bigger problem though : it will convert NPOT to POT texture silently, so be careful.
First, try with GL_TEXTURE_MIN_FILTER, GL_LINEAR and no gluBuild2DMipmaps, to eliminate any problem with mipmaps. If texture stil has problem, then check you have correct data in *texture : size, values, …