Problems with time.h library, is it broken?

I'm having problems with the time library with any example on arduino-1.0.5 and also on arduino-1.5.7. The error I get is always the same for all the variables, such as this output from the TimeSerial example.

variable 'monthNames_P' must be const in order to be put into read-only section by means of '__attribute__((progmem))'

Is it just me experiencing this problem as the library appears to be installed correctly and it's the example that comes with the library? I'm using Ubuntu 14.04 rather than Windows and have tried the Beta version with the same results.

The Arduino 1.5.7 BETA uses a new compiler and it changed the PROGMEM.

old style : prog_char test[] PROGMEM = "Hello"; new style: const char test[] PROGMEM = "Hello";

Are you using the new version by Paul Stoffregen ? Here is some comment, how to fix the library:

I've had issues with the time.h and RTC libraries (and an RTC that died) so I'm going it alone with an UNO's own crystal oscillator for an alarm clock project. The RTC card died because most likely it was resold from a bad batch. I'm going to end up using an electric timer and a relay for a once a day sync source.

When I had the RS3231, I was able to set the time but not the alarm and it then died, so I said "F%@# it" and decided to go it alone. I got it from Amazon for $5 and it (of course) came from the defective products capitol of the world, China. I would try Sparkfun but they don't add the pins leaving you to try soldering them. I can't solder anything that small. Now, if I was a Lilliputian who could TIG weld...

I bought the cheapest DS3231. It was a module for a rechargeable battery. So I removed a diode (for charging) and put in a normal battery. I’m very impressed by the accuracy of the DS3231. That module has the text “ZS-042”.

My DS3231 had the rechargeable battery instead of the normal one. Did one die on you because of the battery and diode? The library problem above no doubt comes from add-on libraries. For example, the wire.h (I2C) library comes with each iteration of the IDE but an add-on library designed for one IDE but the next iteration may not support it. So, with an add-on library, try it on each iteration you install separately. I did get the DS1301 library to work on 1.0.3 so I stuck with it and use an UNO. That is, until the RTC died.

As far as "going it alone" with an UNO and a 24 hour sync pulse, I have it accurate to 200ppm just by messing with delay() and delayMicroseconds() lines and timing it for a day. Now, the next step is to get it to self-calibrate by by checking the seconds count for the day and the sync pulses. If it's the 86400 you're spot on. Note I'm using an electric timer and relay for the syncer. To calibrate your RTC use a GPS module for a daily syncer and have your UNO adjust the aging offset to make it match.