im.pidgin.Pidgin3.yml

Sat, 09 Aug 2025 18:21:54 -0500

author
Gong Zhile <gongzl@stu.hebust.edu.cn>
date
Sat, 09 Aug 2025 18:21:54 -0500
changeset 43308
6a22b547f0c8
parent 43283
01eb1bbf4186
permissions
-rw-r--r--

Add builtin library dependency for introspection

Without specifying, gir defaults to the system pidgin/purple libraries by default,
which fails the build when new symbols were added and gir failed to link for them.

The failed build log before patch:
```
FAILED: pidgin/Pidgin-3.0.gir
...
/usr/bin/ld: /usr/local/lib/x86_64-linux-gnu/libpidgin3.so: undefined reference to `purple_image_get_filename'
collect2: error: ld returned 1 exit status
linking of temporary binary failed: Command '['ccache', 'cc', '-o', '/home/goodspeed/Development/pidgin/build/tmp-introspectineovzv0/Pidgin-3.0', '/home/goodspeed/Development/pidgin/build/tmp-introspectineovzv0/Pidgin-3.0.o', '-L.', '-Wl,-rpath,.', '-Wl,--no-as-needed', '-L/home/goodspeed/Development/pidgin/build/libpurple', '-Wl,-rpath,/home/goodspeed/Development/pidgin/build/libpurple', '-L/usr/local/lib/x86_64-linux-gnu', '-Wl,-rpath,/usr/local/lib/x86_64-linux-gnu', '-L/home/goodspeed/Development/pidgin/build/pidgin', '-Wl,-rpath,/home/goodspeed/Development/pidgin/build/pidgin', '-L/home/goodspeed/Development/pidgin/build/libpurple', '-Wl,-rpath,/home/goodspeed/Development/pidgin/build/libpurple', '-L/usr/local/lib/x86_64-linux-gnu', '-Wl,-rpath,/usr/local/lib/x86_64-linux-gnu', '-L/usr/local/lib/x86_64-linux-gnu', '-Wl,-rpath,/usr/local/lib/x86_64-linux-gnu', '-lpidgin3', '-lpurple3', '-lglib-2.0', '-lgplugin-gtk4', '-lgplugin', '-lgmodule-2.0', '-lgtk-4', '-lpangocairo-1.0', '-lpango-1.0', '-lharfbuzz', '-lgdk_pixbuf-2.0', '-lcairo-gobject', '-lcairo', '-lvulkan', '-lgraphene-1.0', '-lgio-2.0', '-lgobject-2.0', '-lgtksourceview-5', '-ljson-glib-1.0', '-ladwaita-1', '-lspelling-1', '-lm', '-lbirb', '-lgstreamer-1.0', '-lsoup-3.0', '-lxml2', '-lgstapp-1.0', '-lgstbase-1.0', '-lseagull', '-lsqlite3', '-lgirepository-1.0', '-lgio-2.0', '-lgobject-2.0', '-Wl,--export-dynamic', '-lgmodule-2.0', '-pthread', '-lglib-2.0', '-lglib-2.0']' returned non-zero exit status 1.
ninja: build stopped: subcommand failed.
```

Testing Done:
Succeed building pidgin with an out-of-date pidgin installed on system. Introspection no longer uses the system library and links fine now.

Reviewed at https://reviews.imfreedom.org/r/4098/

id: im.pidgin.Pidgin3
runtime: org.gnome.Platform
runtime-version: '48'
branch: default
sdk: org.gnome.Sdk
command: pidgin3
separate-locales: false
tags:
  - dev
add-extensions:
  im.pidgin.Purple3.Plugin:
    directory: plugins
    version: default
    add-ld-path: lib
    merge-dirs: purple-3
    no-autodownload: true
    autodelete: true
    subdirectories: true
  im.pidgin.Pidgin3.Plugin:
    directory: plugins
    version: default
    add-ld-path: lib
    merge-dirs: pidgin-3
    no-autodownload: true
    autodelete: true
    subdirectories: true
modules:
  - name: mercurial
    buildsystem: simple
    build-commands:
      - make PREFIX=/app install-bin
    sources:
      - type: archive
        url: https://www.mercurial-scm.org/release/mercurial-6.9.tar.gz
        sha256: 629604293df2be8171ec856bf4f8b4faa8e4305af13607dce0f89f74132836d6
  - name: libidn
    buildsystem: autotools
    cleanup:
      - /lib/*.la
    config-opts:
      - "--disable-static"
    sources:
      - type: archive
        url: https://ftp.gnu.org/gnu/libidn/libidn-1.42.tar.gz
        sha256: d6c199dcd806e4fe279360cb4b08349a0d39560ed548ffd1ccadda8cdecb4723
  - name: birb
    buildsystem: meson
    config-opts:
      - "-Ddoc=false"
      - "--wrap-mode=nofallback"
    sources:
      - type: archive
        archive-type: tar-xz
        url: https://sourceforge.net/projects/pidgin/files/birb/0.4.0/birb-0.4.0.tar.xz/download
        sha256: 8fcb67559a6bddb305f59be5c9cb12eb35ec45a0a9a6e4184bb1df33d0028084
  - name: hasl
    buildsystem: meson
    config-opts:
      - "-Ddoc=false"
      - "--wrap-mode=nofallback"
    sources:
      - type: archive
        archive-type: tar-xz
        url: https://sourceforge.net/projects/pidgin/files/hasl/0.4.0/hasl-0.4.0.tar.xz/download
        sha256: e78c244a259f13d43d230e9a8909bf0437a9466bef6757770a54a60c7c720036
  - name: ibis
    buildsystem: meson
    config-opts:
      - "-Ddoc=false"
      - "--wrap-mode=nofallback"
    sources:
      - type: archive
        archive-type: tar-xz
        url: https://sourceforge.net/projects/pidgin/files/ibis/0.14.0/ibis-0.14.0.tar.xz/download
        sha256: f48fa57e9fd2871bc22eb56b12adcaed4d5f2a76c0a41f70b85cc2db44a51395
  - name: xeme
    buildsystem: meson
    config-opts:
      - "-Ddoc=false"
      - "--wrap-mode=nofallback"
    sources:
      - type: archive
        archive-type: tar-gzip
        url: https://keep.imfreedom.org/xeme/xeme/archive/5d0707ab10a2.tar.gz
        sha256: eabb0f88fdc54775e9aab63d277d0d0cf54c456ee09580d45bd516d1117088da
  - name: gplugin
    buildsystem: meson
    config-opts:
      - "-Ddoc=false"
      - "-Dlua=false"
      - "-Dpython3=false"
      - "--wrap-mode=nofallback"
    sources:
      - type: archive
        archive-type: tar-xz
        url: https://sourceforge.net/projects/pidgin/files/gplugin/0.44.2/gplugin-0.44.2.tar.xz/download
        sha256: aea244e1add9628b50ec042c54cf93803f4577f8f142678f09b91fd4c0b20f72
  - name: seagull
    buildsystem: meson
    config-opts:
      - "--wrap-mode=nofallback"
    sources:
      - type: archive
        archive-type: tar-xz
        url: https://sourceforge.net/projects/pidgin/files/seagull/0.5.0/seagull-0.5.0.tar.xz
        sha256: 7979a9cdfa112cc98dd10379d6522decb116a46e426d53ca3ecb0c26bed1bf27
  - name: libspelling
    buildsystem: meson
    config-opts:
      - "--wrap-mode=nofallback"
    sources:
      - type: archive
        archive-type: tar-xz
        url: https://download.gnome.org/sources/libspelling/0.4/libspelling-0.4.6.tar.xz
        sha256: 3248a9b5336ea2f727d2db912d2f0083accc0505ce707679b3d9b8266c0101f5
  - name: pidgin3
    buildsystem: meson
    config-opts:
      - "-Ddoc=false"
      - "--wrap-mode=nofallback"
    sources:
      - type: dir
        path: .
    post-install:
      - install -d /app/plugins
      - install -d /app/plugins/pidgin-3
      - install -d /app/plugins/purple-3
finish-args:
  # X11 + XShm access
  - "--share=ipc"
  - "--socket=fallback-x11"
  # Wayland access
  - "--socket=wayland"
  # GPU acceleration if needed
  - "--device=dri"
  # Needs to talk to the network:
  - "--share=network"
  # Audio
  - "--socket=pulseaudio"
  # Notifications (purple-toast)
  - "--talk-name=org.freedesktop.Notifications"
  # Accessibility
  - "--talk-name=org.a11y.Bus"
  # libsecret plugin
  - "--talk-name=org.freedesktop.secrets"
  # kwallet plugin
  - "--talk-name=org.kde.kwalletd5"
  - "--talk-name=org.kde.kwalletd6"
  # Bonjour
  - "--system-talk-name=org.freedesktop.Avahi"
  # Plugin Paths
  - "--env=PURPLE_PLUGIN_PATH=/app/plugins/purple-3"
  - "--env=PIDGIN_PLUGIN_PATH=/app/plugins/pidgin-3"

mercurial