Unverified Commit dd9009ff authored by dish's avatar dish Committed by GitHub
Browse files

Ardour: remove gtk2 from version 8, drop version 7 (#448608)

parents 30ca6c36 c2ba173e
Loading
Loading
Loading
Loading
+0 −237
Original line number Diff line number Diff line
{
  lib,
  stdenv,
  fetchgit,
  fetchzip,
  fetchpatch,
  fetchpatch2,
  alsa-lib,
  aubio,
  boost186,
  cairomm,
  cppunit,
  curl,
  dbus,
  doxygen,
  ffmpeg,
  fftw,
  fftwSinglePrec,
  flac,
  glibc,
  glibmm,
  graphviz,
  gtkmm2,
  harvid,
  itstool,
  libarchive,
  libjack2,
  liblo,
  libogg,
  libpulseaudio,
  librdf_rasqal,
  libsamplerate,
  libsigcxx,
  libsndfile,
  libusb1,
  libuv,
  libwebsockets,
  libxml2,
  libxslt,
  lilv,
  lrdf,
  lv2,
  makeWrapper,
  pango,
  perl,
  pkg-config,
  python3,
  readline,
  rubberband,
  serd,
  sord,
  soundtouch,
  sratom,
  suil,
  taglib_1,
  vamp-plugin-sdk,
  wafHook,
  xjadeo,
  videoSupport ? true,
}:
stdenv.mkDerivation rec {
  pname = "ardour";
  version = "7.5";

  # We can't use `fetchFromGitea` here, as attempting to fetch release archives from git.ardour.org
  # result in an empty archive. See https://tracker.ardour.org/view.php?id=7328 for more info.
  src = fetchgit {
    url = "git://git.ardour.org/ardour/ardour.git";
    rev = version;
    hash = "sha256-cmYt6fGYuuVs6YhAXaO9AG6TrYLDVUaE1/iC67rt76I=";
  };

  bundledContent = fetchzip {
    url = "https://web.archive.org/web/20221026200824/http://stuff.ardour.org/loops/ArdourBundledMedia.zip";
    hash = "sha256-IbPQWFeyMuvCoghFl1ZwZNNcSvLNsH84rGArXnw+t7A=";
    # archive does not contain a single folder at the root
    stripRoot = false;
  };

  patches = [
    # AS=as in the environment causes build failure https://tracker.ardour.org/view.php?id=8096
    ./as-flags.patch
    ./default-plugin-search-paths.patch

    # Fix build with libxml2 2.12.
    (fetchpatch {
      url = "https://github.com/Ardour/ardour/commit/e995daa37529715214c6c4a2587e4134aaaba02f.patch";
      hash = "sha256-EpXOIIObOwwcNgNma0E3nvaBad3930sagDjBpa+78WI=";
    })

    # Work around itstools bug #9648
    (fetchpatch2 {
      url = "https://github.com/Ardour/ardour/commit/338cd09a4aa1b36b8095dfc14ab534395f9a4a92.patch?full_index=1";
      hash = "sha256-AvV4aLdkfrxPkE4NX2ETSagq4GjEC+sHCEqdcYvL+CY=";
    })

    # Fix build with boost >= 1.85
    (fetchpatch {
      url = "https://github.com/Ardour/ardour/commit/f94bde59d740d65e67c5cd13af4d7ea51453aeaa.patch";
      hash = "sha256-dGRjkdF3REkANytDR17wIh8J2+AcLFmV4tKZied/OZg=";
    })
  ];

  # Ardour's wscript requires git revision and date to be available.
  # Since they are not, let's generate the file manually.
  postPatch = ''
    printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = "${version}"; const char* date = ""; }\n' > libs/ardour/revision.cc
    sed 's|/usr/include/libintl.h|${glibc.dev}/include/libintl.h|' -i wscript
    patchShebangs ./tools/
    substituteInPlace libs/ardour/video_tools_paths.cc \
      --replace-fail 'ffmpeg_exe = X_("")' "ffmpeg_exe = X_(\"${lib.getExe ffmpeg}\");" \
      --replace-fail 'ffprobe_exe = X_("");' "ffprobe_exe = X_(\"${lib.getExe' ffmpeg "ffprobe"}\");"
  '';

  nativeBuildInputs = [
    doxygen
    graphviz # for dot
    itstool
    makeWrapper
    perl
    pkg-config
    python3
    wafHook
  ];

  buildInputs = [
    alsa-lib
    aubio
    boost186
    cairomm
    cppunit
    curl
    dbus
    ffmpeg
    fftw
    fftwSinglePrec
    flac
    glibmm
    gtkmm2
    itstool
    libarchive
    libjack2
    liblo
    libogg
    libpulseaudio
    librdf_rasqal
    libsamplerate
    libsigcxx
    libsndfile
    libusb1
    libuv
    libwebsockets
    libxml2
    libxslt
    lilv
    lrdf
    lv2
    pango
    perl
    python3
    readline
    rubberband
    serd
    sord
    soundtouch
    sratom
    suil
    taglib_1
    vamp-plugin-sdk
  ]
  ++ lib.optionals videoSupport [
    harvid
    xjadeo
  ];

  wafConfigureFlags = [
    "--cxx11"
    "--docs"
    "--freedesktop"
    "--no-phone-home"
    "--optimize"
    "--ptformat"
    "--run-tests"
    "--test"
  ];
  # removed because it fixes https://tracker.ardour.org/view.php?id=8161 and https://tracker.ardour.org/view.php?id=8437
  # "--use-external-libs"

  postInstall = ''
    # wscript does not install these for some reason
    install -vDm 644 "build/gtk2_ardour/ardour.xml" \
      -t "$out/share/mime/packages"
    install -vDm 644 "build/gtk2_ardour/ardour${lib.versions.major version}.desktop" \
      -t "$out/share/applications"
    for size in 16 22 32 48 256 512; do
      install -vDm 644 "gtk2_ardour/resources/Ardour-icon_''${size}px.png" \
        "$out/share/icons/hicolor/''${size}x''${size}/apps/ardour${lib.versions.major version}.png"
    done
    install -vDm 644 "ardour.1"* -t "$out/share/man/man1"

    # install additional bundled beats, chords and progressions
    cp -rp "${bundledContent}"/* "$out/share/ardour${lib.versions.major version}/media"
  ''
  + lib.optionalString videoSupport ''
    # `harvid` and `xjadeo` must be accessible in `PATH` for video to work.
    wrapProgram "$out/bin/ardour${lib.versions.major version}" \
      --prefix PATH : "${
        lib.makeBinPath [
          harvid
          xjadeo
        ]
      }"
  '';

  LINKFLAGS = "-lpthread";

  meta = with lib; {
    description = "Multi-track hard disk recording software";
    longDescription = ''
      Ardour is a digital audio workstation (DAW), You can use it to
      record, edit and mix multi-track audio and midi. Produce your
      own CDs. Mix video soundtracks. Experiment with new ideas about
      music and sound.

      Please consider supporting the ardour project financially:
      https://community.ardour.org/donate
    '';
    homepage = "https://ardour.org/";
    license = licenses.gpl2Plus;
    mainProgram = "ardour7";
    platforms = platforms.linux;
    maintainers = with maintainers; [
      magnetophon
      mitchmindtree
    ];
  };
}
+5 −2
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@
  glibc,
  glibmm,
  graphviz,
  gtkmm2,
  harvid,
  hidapi,
  itstool,
@@ -44,6 +43,7 @@
  lv2,
  makeWrapper,
  pango,
  pangomm,
  perl,
  pkg-config,
  python3,
@@ -59,6 +59,7 @@
  vamp-plugin-sdk,
  wafHook,
  xjadeo,
  xorg,
  optimize ? true, # disable to print Lua DSP script output to stdout
  videoSupport ? true,
}:
@@ -128,7 +129,6 @@ stdenv.mkDerivation (
      flac
      fluidsynth
      glibmm
      gtkmm2
      hidapi
      itstool
      kissfft
@@ -151,6 +151,7 @@ stdenv.mkDerivation (
      lrdf
      lv2
      pango
      pangomm
      perl
      python3
      qm-dsp
@@ -163,6 +164,8 @@ stdenv.mkDerivation (
      suil
      taglib
      vamp-plugin-sdk
      xorg.libXinerama
      xorg.libXrandr
    ]
    ++ lib.optionals videoSupport [
      harvid
+1 −0
Original line number Diff line number Diff line
@@ -471,6 +471,7 @@ mapAliases {
  arcanist = throw "arcanist was removed as phabricator is not supported and does not accept fixes"; # Added 2024-06-07
  archipelago-minecraft = throw "archipelago-minecraft has been removed, as upstream no longer ships minecraft as a default APWorld."; # Added 2025-07-15
  archivebox = throw "archivebox has been removed, since the packaged version was stuck on django 3."; # Added 2025-08-01
  ardour_7 = throw "ardour_7 has been removed because it relies on gtk2, please use ardour instead."; # Aded 2025-10-04
  argo = argo-workflows; # Added 2025-02-01
  aria = aria2; # Added 2024-03-26
  artim-dark = aritim-dark; # Added 2025-07-27
+0 −1
Original line number Diff line number Diff line
@@ -10815,7 +10815,6 @@ with pkgs;
  apngasm_2 = callPackage ../applications/graphics/apngasm/2.nix { };

  ardour = callPackage ../applications/audio/ardour { };
  ardour_7 = callPackage ../applications/audio/ardour/7.nix { };

  arelle = with python3Packages; toPythonApplication arelle;