nixpkgs/pkgs/applications/audio/kid3/default.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

135 lines
3.2 KiB
Nix
Raw Normal View History

2024-04-01 16:17:07 +01:00
{ chromaprint
2021-04-08 23:49:47 +01:00
, cmake
, docbook_xml_dtd_45
, docbook_xsl
2023-08-06 11:34:05 +01:00
, fetchurl
2021-04-27 01:06:14 +01:00
, ffmpeg
2021-04-08 23:49:47 +01:00
, flac
, id3lib
2024-04-01 16:17:07 +01:00
, kdePackages
2023-08-06 11:34:05 +01:00
, lib
2021-04-08 23:49:47 +01:00
, libogg
, libvorbis
, libxslt
, mp4v2
, pkg-config
, python3
, qtbase
2024-04-01 16:17:07 +01:00
, qtdeclarative
2021-04-08 23:49:47 +01:00
, qtmultimedia
, qttools
, readline
2023-08-06 11:34:05 +01:00
, stdenv
2021-04-08 23:49:47 +01:00
, taglib
, wrapQtAppsHook
2021-04-08 23:49:47 +01:00
, zlib
2024-04-01 16:17:07 +01:00
, withCLI ? true
, withKDE ? true
, withQt ? false
}:
2024-04-01 16:17:07 +01:00
let
inherit (lib) optionals;
apps = lib.concatStringsSep ";" (
optionals withCLI [ "CLI" ]
++ optionals withKDE [ "KDE" ]
++ optionals withQt [ "Qt" ]
);
mainProgram =
if withQt then "kid3-qt"
else if withKDE then "kid3"
else "kid3-cli";
in
2023-08-06 11:34:05 +01:00
stdenv.mkDerivation (finalAttrs: {
pname = "kid3";
2024-02-24 15:07:58 +00:00
version = "3.9.5";
src = fetchurl {
url = "mirror://kde/stable/kid3/${finalAttrs.version}/kid3-${finalAttrs.version}.tar.xz";
2024-02-24 15:07:58 +00:00
hash = "sha256-pCT+3eNcF247RDNEIqrUOEhBh3LaAgdR0A0IdOXOgUU=";
};
2021-04-08 23:49:47 +01:00
nativeBuildInputs = [
cmake
2021-04-27 01:06:14 +01:00
docbook_xml_dtd_45
docbook_xsl
2021-04-08 23:49:47 +01:00
pkg-config
2021-04-27 01:06:14 +01:00
python3
2024-04-01 16:17:07 +01:00
qttools
2021-04-08 23:49:47 +01:00
wrapQtAppsHook
];
2023-08-06 11:34:05 +01:00
2021-04-08 23:49:47 +01:00
buildInputs = [
chromaprint
2021-04-27 01:06:14 +01:00
ffmpeg
2021-04-08 23:49:47 +01:00
flac
id3lib
libogg
libvorbis
libxslt
mp4v2
qtbase
2024-04-01 16:17:07 +01:00
qtdeclarative
2021-04-08 23:49:47 +01:00
qtmultimedia
readline
taglib
zlib
2024-04-01 16:17:07 +01:00
] ++ lib.optionals withKDE (with kdePackages; [
kconfig
kconfigwidgets
kcoreaddons
kio
kxmlgui
phonon
]);
2024-04-01 16:17:07 +01:00
cmakeFlags = [ (lib.cmakeFeature "WITH_APPS" apps) ];
2024-04-01 16:17:07 +01:00
env = {
DOCBOOKDIR = "${docbook_xsl}/xml/xsl/docbook/";
LANG = "C.UTF-8";
NIX_LDFLAGS = "-lm -lpthread";
};
2023-08-06 11:34:05 +01:00
meta = {
description = "A simple and powerful audio tag editor";
2024-04-01 16:17:07 +01:00
inherit mainProgram;
2023-08-06 11:34:05 +01:00
homepage = "https://kid3.kde.org/";
license = lib.licenses.lgpl2Plus;
longDescription = ''
2020-10-10 05:57:56 +01:00
If you want to easily tag multiple MP3, Ogg/Vorbis, FLAC, MPC, MP4/AAC,
MP2, Opus, Speex, TrueAudio, WavPack, WMA, WAV and AIFF files (e.g. full
albums) without typing the same information again and again and have
control over both ID3v1 and ID3v2 tags, then Kid3 is the program you are
looking for.
With Kid3 you can:
- Edit ID3v1.1 tags;
- Edit all ID3v2.3 and ID3v2.4 frames;
- Convert between ID3v1.1, ID3v2.3 and ID3v2.4 tags
2020-10-10 05:57:56 +01:00
- Edit tags in MP3, Ogg/Vorbis, FLAC, MPC, MP4/AAC, MP2, Opus, Speex,
TrueAudio, WavPack, WMA, WAV, AIFF files and tracker modules (MOD, S3M,
IT, XM);
- Edit tags of multiple files, e.g. the artist, album, year and genre of
all files of an album typically have the same values and can be set
together;
- Generate tags from filenames;
- Generate tags from the contents of tag fields;
- Generate filenames from tags;
- Rename and create directories from tags;
- Generate playlist files;
- Automatically convert upper and lower case and replace strings;
2020-10-10 05:57:56 +01:00
- Import from gnudb.org, TrackType.org, MusicBrainz, Discogs, Amazon and
other sources of album data;
- Export tags as CSV, HTML, playlists, Kover XML and in other formats;
- Edit synchronized lyrics and event timing codes, import and export
LRC files.
'';
2024-04-01 16:17:07 +01:00
maintainers = with lib.maintainers; [ AndersonTorres ];
2023-08-06 11:34:05 +01:00
platforms = lib.platforms.linux;
};
2023-08-06 11:34:05 +01:00
})