Working with the Arduino on a changing Fedora environment is a bit of a challenge. For every release or update, there's something new and exciting which breaks the Arudino IDE, programmer, or serial connection. Here's what I've collected for Fedora 17 and previous versions.
The basic setup for the programmer is to let the rxtx module have access to the lock file system. This is one way of achieving that: (note the new location of the lock files)
sudo usermod -a -G uucp,dialout,lock $USER
sudo chgrp uucp /run/lock
sudo chmod 775 /run/lock
Next, the gpsd daemon might still be in the way. One or more of the commands below should take care of it:
sudo systemctl stop gpsd
sudo systemctl disable gpsd
sudo killall gpsd
sudo yum erase gpsd
More recently, the ModemManager (for 3G and other modems) might interfere with the serial connection. However, NetworkManager depends on the the former, so it cannot just be removed. The hack below should take care of it though (lest you want to hack around with udev exception rules).
sudo chmod 0000 /usr/sbin/modem-manager
sudo killall modem-manager
Finally, an incompatibility been a system / GCC library and some older versions of the Arduino IDE seems to have been introduced. It manifests itself at compile-time, with the errors "error: expected identifier or '(' before 'double'" and "error: expected ')' before '>=' token". Although most likely just a temporary issue until next upgrade, it can be fixed by commenting out the following line in hardware/arduino/cores/arduino/wiring.h
// #define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5))
And that's it. Now you're all set to program the Arduino on Fedora 17.