[haiku-bugs] Re: [Haiku] #10435: Problems updating type information for app binaries if a corresponding package exists

  • From: "anevilyak" <trac@xxxxxxxxxxxx>
  • Date: Sun, 19 Jan 2014 14:13:15 -0000

#10435: Problems updating type information for app binaries if a corresponding
package exists
---------------------------------+----------------------------
   Reporter:  anevilyak          |      Owner:  bonefish
       Type:  bug                |     Status:  new
   Priority:  normal             |  Milestone:  R1
  Component:  Servers/registrar  |    Version:  R1/Development
 Resolution:                     |   Keywords:
 Blocked By:                     |   Blocking:
Has a Patch:  0                  |   Platform:  All
---------------------------------+----------------------------

Comment (by anevilyak):

 Replying to [comment:1 bonefish]:
 > Mmh, there seem to be a few questions/problems. First of all, if not
 invoked with "-a" or "-A", should `mimeset` touch the MIME DB at all? It
 doesn't seem right. Not sure what BeOS, though.
 >

 Regarding BeOS, I'm uncertain there as well, but I would say that I
 wouldn't have expected mimeset to do so without passing one of the options
 that explicitly mentions the database.


 > That being said, the behavior of `DatabaseLocation::DeleteAttribute()`
 is incorrect. It just uses `_OpenType()`, but it actually needs a writable
 type. `OpenOrCreateType()` would be more appropriate, but not quite, since
 actually we don't want to create a type when it doesn't exist yet.
 Renaming the method to (or adding a new) `OpenWritableType()` with an
 additional "bool create" parameter would be the best solution.

 Understood, I can look into that.

 > Finally there's the general question what is supposed to happen when an
 application is installed/available multiple times, as there can only be
 one MIME DB entry for the signature. Having `mimeset` only manipulate the
 MIME DB when "-a" or "-A" is specified makes a lot of sense in that light.

 +1. On a related note regarding MimeInfoUpdater::Do(), a question about
 the conditional block [http://cgit.haiku-
 os.org/haiku/tree/src/kits/storage/mime/MimeInfoUpdater.cpp#n132 here:] Do
 you know if it's intentional that all those potential failures are
 suppressed? Currently, if anyone of those fails, none of the encapsulated
 update operations will wind up actually taking place, but the caller will
 have no way of detecting it.

--
Ticket URL: <http://dev.haiku-os.org/ticket/10435#comment:2>
Haiku <http://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: