Add gdk-pixbuf as a libpurple dependency and move helpers from pidgin to purple

Review Request #1224 — Created Jan. 14, 2022 and updated

grim
pidgin/pidgin
default
pidgin

Adding gdk-pixbuf as a dependency to libpurple is kind of questionable, but it's dependencies are really just libpng, libjpeg, and libtiff. In other words, nothing UI specific. Which means we can remove a bunch of API with this change which is awesome.

This is the first step in replacing PurpleImage with GdkPixbuf. Which will also eventually include PurpleBuddyIcon and remove the need for PurpleBuddyIconSpec as protocol plugins will just be able to scale and format images themselves.

  • Move pidgingdkpixbuf.[ch] to purplegdkpixbuf.[ch]
  • Renamed all function from purplegdkpixbuf.[ch] to be in the purple_gdk_pixbuf namespace
  • Removed all unused function from purplegdkpixbuf.[ch]

Ran and verified that an animated buddy icon was still displayed properly in the infopane and the buddy list.

Summary
Add gdk-pixbuf as a libpurple dependency and move helpers from pidgin to purple
ivanhoe
  1. Ship It!
    1. built it and checked for new build warnings (there were none)

  2. 
      
grim
  1. 
      
  2. I know in the past, bitlbee users weren't happy that we were downloading profile pictures (buddy icons) as well as custom emjoi. We could add an option to PurpleUiInfo that says it can use images, and then everything could check that to avoid that scenario. If doing that along, we'd already recoup of all of the disk space (see below) that adding GdkPixbuf adds.

    Some more break down of how it'd affect bitlbee installs on debian using purple2 as the test case.

    Sizes are in 1k blocks, so 157680 is ~154mb

    base:                       157680
    bitlbee:                    216452
    bitlbee+gdkpixbuf:          222388
    bitlbee-purple *:           363860
    bitlbee-purple+gdkpixbuf *: 369796
    
    * --no-install-recommends
    
  3. 
      
grim
Review request changed

Description:

   

Adding gdk-pixbuf as a dependency to libpurple is kind of questionable, but it's dependencies are really just libpng, libjpeg, and libtiff. In other words, nothing UI specific. Which means we can remove a bunch of API with this change which is awesome.

   
~  

This is the first step in replacing PurpleImage with GdkPixbuf. Which will also eventually include PurpleBuddyIcon and remove the need for PurpleBuddyIconSpec as protocol plugins will just be able to scale and format images themselves.

  ~

This is the first step in replacing PurpleImage with GdkPixbuf. Which will also eventually include PurpleBuddyIcon and remove the need for PurpleBuddyIconSpec as protocol plugins will just be able to scale and format images themselves.

   
   
  • Move pidgingdkpixbuf.[ch] to purplegdkpixbuf.[ch]
   
  • Renamed all function from purplegdkpixbuf.[ch] to be in the purple_gdk_pixbuf namespace
   
  • Removed all unused function from purplegdkpixbuf.[ch]
rekkanoryo
  1. Ship It!
  2. I haven't reviewed this in super fine detail, but I don't see anything that jumps out at me and I support the idea of making libpurple able to handle the gdkpixbuff stuff directly.

  3. 
      
Loading...