[pacman-dev] Problem with alpm_pkg_changelog_open

Dan McGee dpmcgee at gmail.com
Fri Apr 1 15:15:32 EDT 2011


On Fri, Apr 1, 2011 at 2:10 PM, kachelaqa <kachelaqa at gmail.com> wrote:
> On 01/04/11 20:00, Dan McGee wrote:
>>
>> On Fri, Apr 1, 2011 at 1:56 PM, kachelaqa<kachelaqa at gmail.com>  wrote:
>>>
>>> On 01/04/11 19:44, Dan McGee wrote:
>>>>
>>>> It is definitely a bug in the sense that it segfaults- we provide no
>>>> changelog_* functions in the sync (or default) pkg_operations
>>>> callback.
>>>
>>> pardon my ignorance, but what is _package_changelog_open in be_package.c
>>> for?
>>
>> pacman -Qpc<package file>
>>
>> Not sync *database packages*, but *package files*.
>>
>> be_local: /var/lib/pacman/local
>> be_sync: /var/lib/pacman/sync/*.db
>> be_package: package files
>
> ah, yes of course - thanks
>
>>>> Where have you actually seen changelogs in sync databases?
>>>
>>> well, it's difficult for me to check for specific changelogs at the
>>> moment.
>>> are you saying that they are not stored in sync databases at all? even if
>>> there is one in the local database (e.g. scite)?
>>
>> Nope.
>>
>> $ bsdtar tf /var/lib/pacman/sync/community.db | grep scite
>> scite-2.24-1/
>> scite-2.24-1/desc
>> scite-2.24-1/depends
>
> okay, so changelogs are only ever stored in the local database. so all i
> have to do is check whether a package is installed before attempting to
> retrieve a changelog.

Well you will be looking at very different pmpkg_t objects as well-
one loaded from a sync database vs. one loaded from a local database.

Either way, I'll fix it so it doesn't segfault and just returns NULL
when calling changelog_open on a sync database package.

-Dan


More information about the pacman-dev mailing list