F-Spot Considered Harmful

There is a good possibility that every photo you’ve imported to F-Spot has had its EXIF date tags altered without your permission and without F-Spot informing you that it has done so.

UPDATE: See the note from one of the F-Spot developers in the comments below.

I’d like to publicize an issue that the F-Spot developers have been slow to address:

<rant>

There is a good possibility that every photo you’ve imported to F-Spot has had its EXIF date tags altered without your permission and without F-Spot informing you that it has done so.

From bug reports going back over two years it is clear that F-Spot has a serious date problem.

What is the assigned severity of these bugs? Normal.

What is the status of these bugs? UNCONFIRMED.

How’s this for confirmation:

Mangled EXIF data as viewed by Gthumb
Mangled EXIF data as viewed by Gthumb

The above is a screenshot of the EXIF date information (as viewed by Gthumb) of a photo I imported to F-Spot version 0.6.1.3 for testing purposes. Prior to import, all three of the fields (DateTime, DateTimeOriginal, and DateTimeDigitized) had the same timestamp: 2009:10:26 13:37:11. This timestamp corresponds to when I took the picture: 13:37 on October 26th.

As can be seen, F-Spot has decided that the users are idiots and to update the fields with the values it thinks are best without telling anyone. It decided to set the DateTime field to the time when the photo was imported into F-Spot (as if that date is so important it needs to be saved for posterity). For DateTimeOriginal F-Spot decided that the appropriate time is the UTC time when the picture was taken (conveniently deciding that since my computer is currently in U.S Eastern Daylight Time, I must have been in the same timezone when I took the picture and that my camera was set to the correct time for my timezone at the time I took the picture). The EXIF date fields do not have timezone information in them so setting it to UTC is meaningless because there’s no way to tell from looking at the data that that is what you’ve set it to! The DateTimeDigitized field is the only one F-Spot left alone which gives us the strange paradox of the picture being digitized 4 hours before it was originally taken! <sarcasm>Yeah, that makes sense.</sarcasm>

This problem is so bad some users have resorted to writing perl scripts to try and fix things after the fact or launching the program in different ways to prevent the problem from happening. I am going to take the nuclear option and simply remove F-Spot from all of my computers.

An open letter to the F-Spot devs:

To whom it may concern,

Data corruption is ALWAYS a critical problem but you list bugs 340903 and 454082 as “UNCONFIRMED” with a severity and priority of “Normal”.

UNCONFIRMED? Normal? Who are you kidding? Data corruption is always critical and these bugs are years old and have been confirmed in your own bugzilla by dozens of users.

Regardless of whatever reason you had for introducing this stupid date-changing “feature”, you never change EXIF data unless the user expressly tells you to. That’s basic common courtesy.

You’ve known about this issue for over three years. You need to grow up, acquire a clue, and fix F-Spot’s terrible and destructive behavior. Yesterday.

Until then I will distrust F-Spot and anyone who says it is anywhere close to being a good, decent, or even “ok” photo manager. You and others keep telling me that F-Spot is awesome, that F-Spot is great, that it is the best Linux photo manager. I no longer believe you. From now on F-Spot is not getting anywhere near my photos. I’ve written about you before but I take all the good things I said then back. I was younger, more impressionable, and foolish. But those are just excuses. The fact is I was wrong. Yes, you appear to have some nice features, but your core has some rotten bits and I don’t eat rotten apples (even if only bits of them are rotten), I throw them away.

Goodbye,

Daniel Bartholomew

</rant>

39 thoughts on “F-Spot Considered Harmful”

  1. I just removed F-Spot. There are plenty of photo apps available, so no great loss.

  2. Hans Bezemer: I attribute the error solely to the F-Spot developers. There are too many silly conspiracies going around about Mono and C#. I don’t want to add to them.

  3. I use digikam which is much better in my opinion. or you can use picasa if you don’t mind proprietary software.

  4. Daniel: Part of the problem is that there aren’t any full-time developers working on F-Spot (and haven’t been in at least 3 years afaik). Unfortunately that doesn’t help bugs get triaged and/or fixed in timely fashion. If you haven’t already, I would suggest updating the bug with your suggestions on how to fix the problem. From a quick glance at both bug reports you linked to, it seems that it’s impossible to tell what timezone (and therefor what time) the photos were taken because the camera lets people choose UTC or Local Time. I’m sure the devs would appreciate patches if you are a coder yourself.

  5. Well, I will never use f-spot because it is written in C#.

    As for the dates, because the EXIF date fields do not have timezone, setting one of the dates to the UTC time actually is a good thing. That way you could actually figure out what time the picture was taken if you went on a trip to another country.

  6. I will not use F-Spot anymore. I think I have thousand+ private photos with bad exif data now….fu**ers!

  7. Jeffrey Stedfast,

    Unfortunately the only coding I do is a bit of bash shell scripting now and then. C# is probably way beyond my skill set. ๐Ÿ™‚

    What I think they should do is this: nothing. Don’t touch the dates unless I tell them to. F-Spot should not try to be smart. It should not try to figure out what I want. It should wait until I tell it to do something and then do what I told it to do and then stop. (I’ll add this to the bug reports.)

  8. From the title of this blog post I expected something like F-Spot destroying images or re-compressing them or something similarly serious. This, to be honest, is quite a boring bug.

  9. chris,

    If F-Spot was destroying images or some such, the post would have been titled something like: “F-Spot Destroys Images”. I care about the EXIF dates in my images so I consider this a very harmful bug because I now have thousands of images with incorrect dates.

    If you don’t care about the EXIF dates in your images then you’re right to not care about this bug. Of course, no matter which side you fall on (caring about EXIF dates or not), you’re perfectly free to keep using F-Spot. I won’t stop you.

  10. Jody: F-Spot isn’t the default photo tool for GNOME, there’s no default photo tools in GNOME.

    Daniel: Your bug report is “UNCONFIRMED”, and “normal” severity because those are the default values when you file a bug in the GNOME bugzilla. Note that UNCONFIRMED/NEW/ASSIGNED is (very) rarely used in the GNOME bugzilla, and that 99% of bugs will probably go from UNCONFIRMED to RESOLVED without going through the intermediate steps. Changing the priority will only make developers pissed off, just like a “+1”, or “Bump” from people thinking bugzilla is a forum. Talking to the developers in a civil, “I’m not throwing my arms up in the air and crying foul”, manner would have done just as well. Congrats on making LWN.

  11. Find the bug; write a patch; submit the patch; if the development team ignores you, take the patch to the Linux distribution managers and F-Spot’s package managers. It isn’t hard. Don’t whine about it!

  12. @Hugo: Why must you assume that anyone using a program is qualified to modify it? He even posted above in clear terms that he isn’t a C# programmer. Aren’t users allowed to just be users? Aren’t they allowed to complain when a tool does something brain-dead?

    The sooner we all realize that not every friggin’ user of *nix is a dev, the sooner the we can actually build a user base of non-programmers. The sooner we build such a user base, the better the tools become.

  13. I had a problem with F-Spot, politely contacted one of the developers, provided him examples of the problem and had a resolution within a couple of days with a patch incorporated in the next release. You get much better results with politeness and intelligent discourse than whining in blog posts.

    https://bugzilla.gnome.org/show_bug.cgi?id=594016

  14. @Bob Especially when it comes to something which is shared and open, there is a difference between complaining and publicly ranting. The F-spot devs have put a lot of their time into the program and I have benefited a lot from this. I have never offered them anything in return. The least I could do is offer than a small amount of respect when I ask them to behave in the fashion I would prefer it behave rather than the fashion they prefer it behave.

  15. Pingback: F-Spot and photo metadata | Full-Linux.com
  16. Let’s hope the publicity makes them correct that bug. Until then, just use Picasa instead.

  17. Of course it’s a data corruption bug. Just try to add geo-tagging data to the images in question, particularly when not all of them have been imported by f-spot.

    In any case, may one of the people who know exactly where in its C# code the bug is actually fix it.

  18. Dear Daniel,

    I am one of the F-Spot developers. If you follow our development somewhat closely, you’ll notice that we’re all volunteers, none of us get paid to do this. Furthermore, you’ll notice that we have over 700 open bugs and it’s very hard to keep track of them all, as such, we don’t generally engage in structured fixing of them all. This includes not marking bugs as confirmed all the time.

    We know that this is a big bug. And we are going to fix it. As a matter of fact, if you would have talked to us, you would know that Mike Gemรผnde and I are working on a new metadata handling solution to fix this and a ton of other problems (http://gitorious.org/taglib-sharp).

    I think it’s somewhat of a shame that you decided to just rant about it before informing yourself about the issue. We don’t consider users to be idiots and we are aware of the issue. What’s even worse is that I have to find this link as a reference on the notorious trollfest called boycott novell.

    So while your intentions might have been good, not fully informing you about us has lead to the point that it is now being used by religious nutcases in their quest to destroy a part of the free and open source software ecosystems.

    I don’t mind that you don’t think F-Spot is good enough. It’s totally true, we still have a ton of work left to do. And we are, despite our very limited time fixing our “rotten core”. So instead of calling us out and asking us to “grow up”, I urge you to inform yourself about the current state of matters.

    If this were some unimportant pet peeve that nobody else affected, I’d be highly inclined to ignore it, because of your tone. Except that it’s not unimportant, quite the opposite. We want to get it fixed too. Bet you didn’t expect that, didn’t you?

    Yours sincerly,
    Ruben

    1. Ruben,

      Thank you for your note.

      I could give all sorts of excuses for why I went on a rant and posted it for the world to see but I won’t. It’s been about 24 hours since writing this post and I can clearly see that my tone is not the best. While I don’t know you or any of the F-Spot developers personally, I wouldn’t like it if someone said some of the things I said about me so I apologize for the disrespectful things I said.

      I’m also very sorry that this showed up boycott novell. I’m actually a fan of http://boycott-boycottnovell.com since I think boycott novell is, like you say, a “notorious trollfest”. I suppose that is one of the dangers of posting anything critical of an application that uses Mono and C#.

      I am very glad that you are committed to fixing this bug and I hope it gets fixed as soon as possible.

      1. You can expect an announcement of the stuff we’re working on soon. Fixing the actual bug is going to be harder, but will get done. It’s more of an issue with the EXIF specification really, given that they don’t record timezone information.

        We have a new metadata layer coming up and import is being rewritten. Both things combined will allow us to fix one of the things we too hate the most :-).

        Criticism is fine, just be careful when drawing hasty conclusions (and I admit, I too tend to make that mistake at times). No hard feelings!

        1. Any idea on a timeframe for the fixes? I’m not looking for a date, just a general idea if we are talking a few months or a year.

        2. > Itโ€™s more of an issue with the EXIF specification really,
          > given that they donโ€™t record timezone information.

          That’s such utter BS! Even if the date field would say “-3.14” it would still be F-Spot’s fault if it went ahead and modified it without permission. Heck, you don’t even have to import photos into F-spot for it to destroy your files, merely having f-spot doing the import preview thingy screws up the original files. (Actually the first time I tried it (before I configured apt to never ever install f-spot even by mistake) it managed to change the timestamps of a bunch of pictures several times, namely each time I looked at them in the import thingy, so the timestamps ended up way, way off.)

          Also, any date/time without a timezone should obviously be regarded as “local time” (unless indicated otherwise, of course), and thus it’s 100% f-spot’s fault if it assumes it’s in some particular timezone (even if the pictures would be gps-tagged you couldn’t assume the timezoneless timestamps are in the timezone of that particular location), and it’s equally 100% f-spot’s fault if it modifies the original files based on such a moronic assumption.

  19. OMG!!! The dates in my pics meta data don’t match!!! The sky will fall and we’ll all burn in eternal damnation!

    Aren’t there bigger issues to be worried about? So F-spot does one thing that sucks. That’s not proof of a Mono conspiracy. Take the entire Windows OS. It sucks and there’s no Mono conspiracy there. It just shows the developers suck. Personally I don’t use apps like F-spot. I don’t see a need for them. But is this really that important? This is all just a bit too geektastic to get all worked up over.

    1. Bigger issues?

      Well yeah there’s world peace, famine, AIDS, malaria, global recession, and etc… but this blog doesn’t talk about those since I’m not really qualified. If you want a discussion of “real” issues, there are plenty of places on the Internet that will be happy to discuss them with you.

      Computers, Linux, Open Source, and etc… aren’t “big” issues by any competent definition, but they’re important to me and are what I deal with on a regular basis so I talk about them here.

  20. Daniel,

    I somewhat understand your frustration here. I hope the rant helped you to feel relieved. If that’s not enough, I still can write an OpenAnswer to your OpenLetter.

    Stephane, current f-spot maintainer.

    1. Stephane,

      I felt much better after my rant. ๐Ÿ™‚

      You don’t have to write a reply to my letter if you don’t want to since I know that the issue will be fixed and when it is I can actually see myself using F-Spot again (since I don’t really like digiKam or Picasa).

      The surprising thing to me is how popular this post has been. I haven’t had this many comments on my blog ever. Unfortunately the popularity is probably because F-Spot is a Mono application….

  21. Hi Daniel,

    I think that your attitude is wrong. I’m implied in some ways to free/opensource development, and in fact opensource in general is made just to look not perfect. The bugs are shown public, and depending by who is afected and by which measure, it draws various conclusions.

    In fact that was a reason that the project I’m mostly implied and is opensource the bug tracker is not public. Not because are not bugs, but just because people draw wrong conclusions. F-Spot is a free (both as libre and gratis) software. It give to you all oportunities to change to fix or just if you want, just to disable the tag writing. Is like someone will give to you a motocycle for free, and you will say: until you will not fix my chair I will whine in public about it. The way to do it, is to fix the chair (that you are afected) and if is a huge design issue, or you just don’t know what to do it, just give all informations in the bug tracker to be fixed. If your “special bug” will be fixed as much as people speak more aloud, makes things just wrong as you mistreat people’s free time (or, but here is not the case, other’s money paid time).

    You instead may send a small donation to a devel to fix your bug, and voila, all people is happy, and you can say proud to your site, that based on your initiative all just get fixed. Is both constructive and at the end you will have fixed F-Spot and you wil be happy too.

    Instead you make some people to feel really wrong, and I think is not worth the price for someones that really did an admirable software.

    As a reference: http://www.youtube.com/watch?v=ZSFDm3UYkeE

  22. I just removed F-Spot from my new Karmic install after reading this. I won’t be installing it again, even if they fix this behavior.

  23. This isn’t about whining about some things missing.
    It’s about that a program changes stuff that it shouldn’t.
    A programmer actually has to write code that changes that values.
    So yes, it is moronic to write such code.

    But enough said, all the projects that seem to exhibit that behaviour seem to be on Mono/.NET.
    I won’t use F-Spot ever and will always try to show people Mono-free alternatives!

  24. I find the reply of the F-spot developers utterly dissatisfactory. Basically they say “we may have been changing your original data uncalled for in the wrong way in the past, we’ll take care to change your original data uncalled for in the right way in future”.

    No, that does not cut it. The question is not how to best change the EXIF data without asking. Any photo import tool has the duty to _not_ _change_ _a_ _single_ _byte_, not even to something purportedly equivalent _unless_ a _modifying_ operation is being done. And then, only _that_ information which is directly affected by the _requested_ modification should be changed.

    1. As an F-Spot developer, I find all of this very amusing. Have you even used F-Spot? We will *never* write your files, unless you tick the “write metadata in files” box in the preferences.

      Let’s not blow this out of proportion, shall we? If you want to point fingers, blame the people that originally developed the EXIF specification. The fact that they don’t embed a timezone is what’s causing this problem, not only for F-Spot, but for all applications dealing with photos.

      1. But lets not also minimize this issue. There are times when I do want F-Spot to change the date on file and when I do change the date I would like F-Spot to write it to the metadata in the file, so I check the box.

        The issue is this: F-Spot is changing the metadata on its own without me asking it to.

        As far as the EXIF specification is concerned, that’s what we have and it’s what camera manufacturers support, so it’s what users and the F-Spot developers have to deal with. If the F-Spot developers feel the need to store a timezone they have to store it somewhere else.

        To reiterate: F-Spot should never change the metadata in my photos unless I tell it to!

Leave a Reply to Ciprian Mustiata Cancel reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.