Hi, It turns out ffmpeg needs to be patched, just like pjproject and there could be more packages to patch. I quickly searched for "*.patch" in the contrib folder and that's what I got: ./argon2/pkgconfig.patch ./argon2/argon2-vs2017.patch ./pthreads/pthreads-uwp.patch ./pthreads/pthreads-vs2017.patch ./pthreads/pthreads-windows.patch ./vpx/windows-vpx_config.patch ./gnutls/no-create-time-h.patch ./gnutls/mac-keychain-lookup.patch ./gnutls/gnutls-uwp.patch ./gnutls/read-file-limits.h.patch ./gnutls/gnutls-mscver.patch ./gnutls/gnutls-disable-getentropy-osx.patch ./gnutls/gnutls-3.6.7-win32-vs-support.patch ./gnutls/gnutls-no-egd.patch ./gnutls/gnutls-3.6.7-win32-compat.patch ./gnutls/downgrade-gettext-requirement.patch ./gpg-error/gpgerror-android.patch ./gpg-error/missing-unistd-include.patch ./gpg-error/windres-make.patch ./ffmpeg/remove-mjpeg-log.patch ./ffmpeg/windows-configure-libmfx.patch ./ffmpeg/change-RTCP-ratio.patch ./ffmpeg/rtp_ext_abs_send_time.patch ./ffmpeg/windows-configure-ffnvcodec.patch ./ffmpeg/windows-configure.patch ./gmp/gmp_addaddmul_1msb0.patch ./gmp/clock_gettime.patch ./libressl/getpagesize.patch ./libressl/0001-build-don-t-fetch-git-tag-if-openbsd-directory-exist.patch ./iconv/libiconv-win64.patch ./iconv/bins.patch ./iconv/libiconv-winrt.patch ./iconv/libiconv-android-ios.patch ./iconv/win32.patch ./restinio/cmake.patch ./jack/config-osx.patch ./natpmp/natpmp-win32-ssize_t.patch ./x264/0001-use-internal-log2f.patch ./x264/remove-align.patch ./x264/x264-uwp.patch ./asio/no_tests_examples.patch ./asio/asio-vcxproj.patch ./asio/asio-uwp.patch ./uuid/android.patch ./gcrypt/0001-Fix-assembly-division-check.patch ./gcrypt/fix-amd64-assembly-on-solaris.patch ./yaml-cpp/cmake.patch ./media-sdk/windows-static-lib-build.patch ./gsm/include_ios.patch ./gsm/gsm-cross.patch ./upnp/threadpool.patch ./upnp/win_inet_pton.patch ./upnp/libupnp-ipv6.patch ./upnp/miniserver.patch ./upnp/libupnp-windows.patch ./jsoncpp/jsoncpp-vs2017.patch ./pjproject/sip_config.patch ./pjproject/ice_config.patch ./pjproject/fix_first_packet_turn_tcp.patch ./pjproject/disable_local_resolution.patch ./pjproject/fix_ioqueue_ipv6_sendto.patch ./pjproject/rfc2466.patch ./pjproject/fix_assert_on_connection_attempt.patch ./pjproject/pj_ice_sess.patch ./pjproject/fix_turn_connection_failure.patch ./pjproject/multiple_listeners.patch ./pjproject/rfc6544.patch ./pjproject/ignore_ipv6_on_transport_check.patch ./pjproject/uwp_vs.patch ./pjproject/win_vs2017_props.patch ./pjproject/ipv6.patch ./pjproject/win32_vs_gnutls.patch ./pjproject/add_dtls_transport.patch ./pjproject/android.patch ./pjproject/fix_turn_alloc_failure.patch ./pjproject/fix_turn_fallback.patch ./pjproject/fix_ebusy_turn.patch ./pjproject/win_config.patch ./http_parser/http_parser-vs.patch ./openssl/openssl-uwp.patch ./portaudio/dsound_utf8.patch ./portaudio/pa-dsound.patch ./portaudio/pa-vs2017.patch ./portaudio/pa-dsound-aecns.patch ./portaudio/pa-uwp.patch ./dbus-cpp/dbus-c++-writechar.patch ./dbus-cpp/dbus-c++-gcc4.7.patch ./dbus-cpp/dbus-c++-threading.patch ./secp256k1/secp256k1-vs2017.patch
It would be good If there was a procedure (or a macro?) accepting the name of the dependency and the list of patches, simmilar to this: (lambda* (#:key inputs #:allow-other-keys) (let ((savoir-faire-linux-patches-directory "Savoir-faire Linux patches") (savoir-faire-linux-patches '("fix_turn_alloc_failure" "rfc2466" "ipv6" "multiple_listeners" "pj_ice_sess" "fix_turn_fallback" "fix_ioqueue_ipv6_sendto" "add_dtls_transport" "rfc6544" "ice_config" "sip_config" "fix_first_packet_turn_tcp" "fix_ebusy_turn" "ignore_ipv6_on_transport_check" "fix_turn_connection_failure" "disable_local_resolution"))) (mkdir-p savoir-faire-linux-patches-directory) (invoke "tar" "-xvf" (assoc-ref inputs "savoir-faire-linux-patches") "-C" savoir-faire-linux-patches-directory "--strip-components=5" "ring-project/daemon/contrib/src/pjproject") (for-each (lambda (file) (invoke "patch" "--force" "-p1" "-i" (string-append savoir-faire-linux-patches-directory "/" file ".patch"))) savoir-faire-linux-patches)) #t) The question is - if I defined a procedure named "jami-apply-patches" or whatever, will importing it using #:use-module (gnu packages telephony jami-apply-patches) work, or do I need to explicitly export it? Also how to add such procedure to the "add-after" field without causing an error? Jan Wielkiewicz