Usually the slurm.spec file provided doesn't change that much between versions. What we do here is that we maintain a git repository of our slurm.spec that we use with our modifications. Then each time Slurm is released we compare ours against what is provided, and simply modify the provided one with our changes.
Unless you make specific tweaks to the slurm.spec, you should be able to just use it out of the box no problem. As always read the changelog to see if there are any major changes between the versions in case a feature you were using was deprecated. This can happen during major version upgrades.
At least from my experience if you follow the directions on the Slurm documentation regarding upgrades, you should be fine. The only real hitch is that by default the RPM's do restart the slurmdbd and slurmctld services, which you don't want when upgrading. You should either neuter this or have those both stopped during the upgrade. After the upgrade you should run slurmdbd and slurmctld in commandline mode for the initial run. Once it is done and running normally you can kill these and restart the relevant services.
-Paul Edmon-
It won't figure it out automatically no. You will need to ensure that the spec is installing to the same locale as your vendor installed it if they didn't put it in the default location (/opt isn't the default).
-Paul Edmon-