From 9fc86390b8d2c3227960d7642e4f4877bb481ae1 Mon Sep 17 00:00:00 2001 From: Toast Date: Tue, 16 Jan 2024 22:28:54 +0100 Subject: [PATCH] Flake: add https://github.com/NixOS/nixpkgs/pull/281207 to nixpkgs unstable --- flake.nix | 5 +- nixpkgs-patches/pr281207.patch | 117 +++++++++++++++++++++++++++++++++ 2 files changed, 121 insertions(+), 1 deletion(-) create mode 100644 nixpkgs-patches/pr281207.patch diff --git a/flake.nix b/flake.nix index 308289c..427a665 100755 --- a/flake.nix +++ b/flake.nix @@ -72,7 +72,10 @@ nixpkgs-unstable-patched = nixpkgs.legacyPackages.x86_64-linux.applyPatches { name = "patched-nixpkgs-unstable"; src = nixpkgs-unstable-raw; - patches = [ ./nixpkgs-patches/pr280779.patch ]; + patches = [ + ./nixpkgs-patches/pr280779.patch + ./nixpkgs-patches/pr281207.patch + ]; }; # https://discourse.nixos.org/t/proper-way-of-applying-patch-to-system-managed-via-flake/21073/26 nixpkgs-unstable = (import "${nixpkgs-unstable-patched}/flake.nix").outputs { self = inputs.self; }; diff --git a/nixpkgs-patches/pr281207.patch b/nixpkgs-patches/pr281207.patch new file mode 100644 index 0000000..c9bea43 --- /dev/null +++ b/nixpkgs-patches/pr281207.patch @@ -0,0 +1,117 @@ +From 1f3bcdf27686e9d2c43a53cf3ba7cd0ee7978ff5 Mon Sep 17 00:00:00 2001 +From: TomaSajt <62384384+TomaSajt@users.noreply.github.com> +Date: Tue, 16 Jan 2024 00:58:48 +0100 +Subject: [PATCH] mysql-workbench: fix build, small refactor + +--- + .../misc/mysql-workbench/default.nix | 28 ++++++++++++------- + .../misc/mysql-workbench/fix-xml2.patch | 25 +++++++++++++++++ + 2 files changed, 43 insertions(+), 10 deletions(-) + create mode 100644 pkgs/applications/misc/mysql-workbench/fix-xml2.patch + +diff --git a/pkgs/applications/misc/mysql-workbench/default.nix b/pkgs/applications/misc/mysql-workbench/default.nix +index ff9fb7c6b2cbe2..6b5933b3ebd0fd 100644 +--- a/pkgs/applications/misc/mysql-workbench/default.nix ++++ b/pkgs/applications/misc/mysql-workbench/default.nix +@@ -1,4 +1,5 @@ +-{ lib, stdenv ++{ lib ++, stdenv + , fetchurl + , substituteAll + , cmake +@@ -44,13 +45,14 @@ + + let + inherit (python3.pkgs) paramiko pycairo pyodbc; +-in stdenv.mkDerivation rec { ++in ++stdenv.mkDerivation (finalAttrs: { + pname = "mysql-workbench"; + version = "8.0.34"; + + src = fetchurl { +- url = "https://cdn.mysql.com//Downloads/MySQLGUITools/mysql-workbench-community-${version}-src.tar.gz"; +- sha256 = "sha256-ub/D6HRtXOvX+lai71t1UjMmMzBsz5ljCrJCuf9aq7U="; ++ url = "https://cdn.mysql.com/Downloads/MySQLGUITools/mysql-workbench-community-${finalAttrs.version}-src.tar.gz"; ++ hash = "sha256-ub/D6HRtXOvX+lai71t1UjMmMzBsz5ljCrJCuf9aq7U="; + }; + + patches = [ +@@ -75,6 +77,9 @@ in stdenv.mkDerivation rec { + src = ./fix-swig-build.patch; + cairoDev = "${cairo.dev}"; + }) ++ ++ # a newer libxml2 version has changed some interfaces ++ ./fix-xml2.patch + ]; + + # 1. have it look for 4.12.0 instead of 4.11.1 +@@ -138,6 +143,10 @@ in stdenv.mkDerivation rec { + patchShebangs tools/get_wb_version.sh + ''; + ++ # GCC 13: error: 'int64_t' in namespace 'std' does not name a type ++ # when updating the version make sure this is still needed ++ env.CXXFLAGS = "-include cstdint"; ++ + env.NIX_CFLAGS_COMPILE = toString ([ + # error: 'OGRErr OGRSpatialReference::importFromWkt(char**)' is deprecated + "-Wno-error=deprecated-declarations" +@@ -183,7 +192,7 @@ in stdenv.mkDerivation rec { + done + ''; + +- meta = with lib; { ++ meta = { + description = "Visual MySQL database modeling, administration and querying tool"; + longDescription = '' + MySQL Workbench is a modeling tool that allows you to design +@@ -191,11 +200,10 @@ in stdenv.mkDerivation rec { + and query development modules where you can manage MySQL server instances + and execute SQL queries. + ''; +- + homepage = "http://wb.mysql.com/"; +- license = licenses.gpl2; +- maintainers = [ ]; +- platforms = platforms.linux; ++ license = lib.licenses.gpl2Only; + mainProgram = "mysql-workbench"; ++ maintainers = with lib.maintainers; [ tomasajt ]; ++ platforms = lib.platforms.linux; + }; +-} ++}) +diff --git a/pkgs/applications/misc/mysql-workbench/fix-xml2.patch b/pkgs/applications/misc/mysql-workbench/fix-xml2.patch +new file mode 100644 +index 00000000000000..857c3f9add4cae +--- /dev/null ++++ b/pkgs/applications/misc/mysql-workbench/fix-xml2.patch +@@ -0,0 +1,25 @@ ++diff --git a/library/grt/src/grt.h b/library/grt/src/grt.h ++index 47bfd63..59e664b 100644 ++--- a/library/grt/src/grt.h +++++ b/library/grt/src/grt.h ++@@ -35,6 +35,7 @@ ++ #include ++ #include ++ #include +++#include ++ #include "base/threading.h" ++ #include ++ #include ++diff --git a/library/grt/src/unserializer.cpp b/library/grt/src/unserializer.cpp ++index 6dda76d..a6f6a3c 100644 ++--- a/library/grt/src/unserializer.cpp +++++ b/library/grt/src/unserializer.cpp ++@@ -401,7 +401,7 @@ ValueRef internal::Unserializer::unserialize_xmldata(const char *data, size_t si ++ xmlDocPtr doc = xmlReadMemory(data, (int)size, NULL, NULL, XML_PARSE_NOENT); ++ ++ if (!doc) { ++- xmlErrorPtr error = xmlGetLastError(); +++ const xmlError* error = xmlGetLastError(); ++ ++ if (error) ++ throw std::runtime_error(base::strfmt("Could not parse XML data. Line %d, %s", error->line, error->message));