I have studied the answers to @Duarte's question here, and can't get any of the driverless answers to work, either in recent 2.79, or 2.8.
This was after trying my own set-up with a 0-sized point/spot lamp, whose local coordinates are shown.
Using these nodes to shade the lamp..
The Incoming vector should be from the lamp to the lit point which fired the ray. Its X and Y should be the projection of the world onto a sphere around the lamp. To correct the spherical distortion,the vector is divided by [its own Z / some K], to find the X and Y of the incoming ray in the plane Z = K in whatever space we've chosen.
This works in World space. I had hoped that by using the Vector Transform node, we would evaluate 'Incoming' in the lamp's space, so when we rotated the lamp, the projected texture would rotate with the lamp around the world.. but it doesn't work:
when the lamp is rotated, the projected texture sticks to the world.
Have the fixes mentioned in the previous answers been 'unfixed'.. or am I missing something obvious? Can anyone make those answers work, or come up with another way to make a rotatable projector from a lamp, without using drivers, now?