uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead

https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948
this can do it nicely.

Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
Anton Arapov 2021-04-03 12:58:10 +02:00 committed by Alan Daniels
commit 56de2bcd43
30691 changed files with 3076956 additions and 0 deletions

View file

@ -0,0 +1,15 @@
diff -Naur source-old/src/CMakeLists.txt source-new/src/CMakeLists.txt
--- source-old/src/CMakeLists.txt 1969-12-31 21:00:01.000000000 -0300
+++ source-new/src/CMakeLists.txt 2021-10-29 12:03:06.461399341 -0300
@@ -362,10 +360,8 @@
if (EXISTS ${EXTERNAL_SRC_DIR}/git/openal AND STATIC_OPENAL)
amsg("${CL_YEL}Building OpenAL static from external/git mirror${CL_RST}")
ExternalProject_Add(OpenAL
- SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/openal
+ SOURCE_DIR "${EXTERNAL_SRC_DIR}/git/openal"
BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/openal_static
- UPDATE_COMMAND ""
- GIT_REPOSITORY "${EXTERNAL_SRC_DIR}/git/openal"
${EXTERNAL_DEFS}
${CMAKE_EXTERNAL_DEFS}
-DALSOFT_BACKEND_DSOUND=OFF

View file

@ -0,0 +1,17 @@
diff -Naur source-old/src/CMakeLists.txt source-new/src/CMakeLists.txt
--- source-old/src/CMakeLists.txt 1969-12-31 21:00:01.000000000 -0300
+++ source-new/src/CMakeLists.txt 2021-10-29 12:03:06.461399341 -0300
@@ -419,12 +415,7 @@
set(LUA_TAG "luajit51")
if (EXISTS ${EXTERNAL_SRC_DIR}/git/luajit)
ExternalProject_Add(luajit
- SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/luajit
- GIT_REPOSITORY "${EXTERNAL_SRC_DIR}/git/luajit"
- CONFIGURE_COMMAND ""
- GIT_TAG "v2.1.0-beta3"
- UPDATE_COMMAND ""
- INSTALL_COMMAND ""
+ SOURCE_DIR "${EXTERNAL_SRC_DIR}/git/luajit"
BUILD_IN_SOURCE 1
BUILD_COMMAND "${EXTMAKE_CMD}"
DEFAULT_CC=${CMAKE_C_COMPILER}

View file

@ -0,0 +1,15 @@
diff -Naur source-old/src/frameserver/decode/default/CMakeLists.txt source-new/src/frameserver/decode/default/CMakeLists.txt
--- source-old/src/frameserver/decode/default/CMakeLists.txt 1969-12-31 21:00:01.000000000 -0300
+++ source-new/src/frameserver/decode/default/CMakeLists.txt 2021-10-29 12:01:31.989933725 -0300
@@ -62,10 +62,8 @@
if (STATIC_LIBUVC)
pkg_check_modules(LIBUSB_1 REQUIRED libusb-1.0)
ExternalProject_Add(libuvc
- SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/frameserver/decode/libuvc"
+ SOURCE_DIR "${EXTERNAL_SRC_DIR}/git/libuvc"
BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/libuvc_static"
- UPDATE_COMMAND ""
- GIT_REPOSITORY "${EXTERNAL_SRC_DIR}/git/libuvc"
${EXTERNAL_DEFS}
${CMAKE_EXTERNAL_DEFS}
-DBUILD_UVC_STATIC=ON

View file

@ -0,0 +1,25 @@
{ fetchgit, fetchFromGitHub }:
{
letoram-openal-src = fetchFromGitHub {
owner = "letoram";
repo = "openal";
rev = "1c7302c580964fee9ee9e1d89ff56d24f934bdef";
hash = "sha256-InqU59J0zvwJ20a7KU54xTM7d76VoOlFbtj7KbFlnTU=";
};
freetype-src = fetchgit {
url = "git://git.sv.nongnu.org/freetype/freetype2.git";
rev = "94cb3a2eb96b3f17a1a3bd0e6f7da97c0e1d8f57";
sha256 = "sha256-LzjqunX/T8khF2UjPlPYiQOwMGem8MqPYneR2LdZ5Fg=";
};
libuvc-src = fetchFromGitHub {
owner = "libuvc";
repo = "libuvc";
rev = "b2b01ae6a2875d05c99eb256bb15815018d6e837";
sha256 = "sha256-2zCTjyodRARkHM/Q0r4bdEH9LO1Z9xPCnY2xE4KZddA=";
};
luajit-src = fetchgit {
url = "https://luajit.org/git/luajit-2.0.git";
rev = "d3294fa63b344173db68dd612c6d3801631e28d4";
sha256 = "sha256-1iHBXcbYhWN4M8g5oH09S1j1WrjYzI6qcRbHsdfpRkk=";
};
}

View file

@ -0,0 +1,187 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchgit
, SDL2
, cmake
, espeak
, ffmpeg
, file
, freetype
, harfbuzz
, leptonica
, libGL
, libX11
, libXau
, libXcomposite
, libXdmcp
, libXfixes
, libdrm
, libffi
, libusb1
, libuvc
, libvlc
, libvncserver
, libxcb
, libxkbcommon
, lua
, luajit
, makeWrapper
, mesa
, openal
, pkg-config
, sqlite
, tesseract
, valgrind
, wayland
, wayland-protocols
, xcbutil
, xcbutilwm
, xz
, buildManPages ? true, ruby
, useBuiltinLua ? true
, useStaticFreetype ? false
, useStaticLibuvc ? false
, useStaticOpenAL ? true
, useStaticSqlite ? false
}:
stdenv.mkDerivation rec {
pname = "arcan" + lib.optionalString useStaticOpenAL "-static-openal";
version = "0.6.1.1";
src = fetchFromGitHub {
owner = "letoram";
repo = "arcan";
rev = version;
hash = "sha256-+dJaBSKGbHOwzA26/jDyh2UF9YRwGUcysJIeAM4kvfc=";
};
nativeBuildInputs = [
cmake
makeWrapper
pkg-config
] ++ lib.optionals buildManPages [
ruby
];
buildInputs = [
SDL2
espeak
ffmpeg
file
freetype
harfbuzz
leptonica
libGL
libX11
libXau
libXcomposite
libXdmcp
libXfixes
libdrm
libffi
libusb1
libuvc
libvlc
libvncserver
libxcb
libxkbcommon
lua
luajit
mesa
openal
sqlite
tesseract
valgrind
wayland
wayland-protocols
xcbutil
xcbutilwm
xz
];
patches = [
# Nixpkgs-specific: redirect vendoring
./000-openal.patch
./001-luajit.patch
./002-libuvc.patch
];
# Emulate external/git/clone.sh
postUnpack = let
inherit (import ./clone-sources.nix { inherit fetchFromGitHub fetchgit; })
letoram-openal-src freetype-src libuvc-src luajit-src;
in
''
pushd $sourceRoot/external/git/
''
+ (lib.optionalString useStaticOpenAL ''
cp -a ${letoram-openal-src}/ openal
chmod --recursive 744 openal
'')
+ (lib.optionalString useStaticFreetype ''
cp -a ${freetype-src}/ freetype
chmod --recursive 744 freetype
'')
+ (lib.optionalString useStaticLibuvc ''
cp -a ${libuvc-src}/ libuvc
chmod --recursive 744 libuvc
'')
+ (lib.optionalString useBuiltinLua ''
cp -a ${luajit-src}/ luajit
chmod --recursive 744 luajit
'') +
''
popd
'';
postPatch = ''
substituteInPlace ./src/platform/posix/paths.c \
--replace "/usr/bin" "$out/bin" \
--replace "/usr/share" "$out/share"
substituteInPlace ./src/CMakeLists.txt --replace "SETUID" "# SETUID"
'';
# INFO: According to the source code, the manpages need to be generated before
# the configure phase
preConfigure = lib.optionalString buildManPages ''
pushd doc
ruby docgen.rb mangen
popd
'';
cmakeFlags = [
"-DBUILD_PRESET=everything"
# The upstream project recommends tagging the distribution
"-DDISTR_TAG=Nixpkgs"
"-DENGINE_BUILDTAG=${version}"
"-DHYBRID_SDL=on"
"-DBUILTIN_LUA=${if useBuiltinLua then "on" else "off"}"
"-DDISABLE_JIT=${if useBuiltinLua then "on" else "off"}"
"-DSTATIC_FREETYPE=${if useStaticFreetype then "on" else "off"}"
"-DSTATIC_LIBUVC=${if useStaticLibuvc then "on" else "off"}"
"-DSTATIC_OPENAL=${if useStaticOpenAL then "on" else "off"}"
"-DSTATIC_SQLite3=${if useStaticSqlite then "on" else "off"}"
"../src"
];
hardeningDisable = [
"format"
];
meta = with lib; {
homepage = "https://arcan-fe.com/";
description = "Combined Display Server, Multimedia Framework, Game Engine";
longDescription = ''
Arcan is a portable and fast self-sufficient multimedia engine for
advanced visualization and analysis work in a wide range of applications
e.g. game development, real-time streaming video, monitoring and
surveillance, up to and including desktop compositors and window managers.
'';
license = with licenses; [ bsd3 gpl2Plus lgpl2Plus ];
maintainers = with maintainers; [ AndersonTorres ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,43 @@
{ config, lib, pkgs }:
lib.makeScope pkgs.newScope (self: with self; {
# Dependencies
espeak = pkgs.espeak-ng;
ffmpeg = pkgs.ffmpeg-full;
harfbuzz = pkgs.harfbuzzFull;
# Arcan
arcan = callPackage ./arcan { };
arcan-wrapped = callPackage ./wrapper.nix { };
xarcan = callPackage ./xarcan { };
# Appls
durden = callPackage ./durden { };
durden-wrapped = callPackage ./wrapper.nix {
name = "durden-wrapped";
appls = [ durden ];
};
pipeworld = callPackage ./pipeworld { };
pipeworld-wrapped = callPackage ./wrapper.nix {
name = "pipeworld-wrapped";
appls = [ pipeworld ];
};
# Warning: prio is deprecated; however it works and is useful for testing
prio = callPackage ./prio { };
prio-wrapped = callPackage ./wrapper.nix {
name = "prio-wrapped";
appls = [ prio ];
};
# One Expression to SymlinkJoin Them All
all-wrapped = callPackage ./wrapper.nix {
name = "all-wrapped";
appls = [ durden pipeworld ];
};
})

View file

@ -0,0 +1,43 @@
{ lib
, stdenv
, fetchFromGitHub
}:
stdenv.mkDerivation rec {
pname = "durden";
version = "0.6.1+date=2022-05-23";
src = fetchFromGitHub {
owner = "letoram";
repo = pname;
rev = "9284182bd8b3b976387cd6494c5f605633a559fc";
hash = "sha256-K1MjgNyX6qlaHya6Grej0cagORihS35BWECWn2HcRCk=";
};
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p ${placeholder "out"}/share/arcan/appl/
cp -a ./durden ${placeholder "out"}/share/arcan/appl/
runHook postInstall
'';
meta = with lib; {
homepage = "https://durden.arcan-fe.com/";
description = "Reference Desktop Environment for Arcan";
longDescription = ''
Durden is a desktop environment for the Arcan Display Server. It serves
both as a reference showcase on how to take advantage of some of the
features in Arcan, and as a very competent entry to the advanced-user side
of the desktop environment spectrum.
'';
license = licenses.bsd3;
maintainers = with maintainers; [ AndersonTorres ];
platforms = platforms.all;
};
}

View file

@ -0,0 +1,50 @@
{ lib
, stdenv
, fetchFromGitHub
}:
stdenv.mkDerivation rec {
pname = "pipeworld";
version = "0.pre+date=2022-04-03";
src = fetchFromGitHub {
owner = "letoram";
repo = pname;
rev = "f60d0b93fcd5462f47b1c928c109f5b4cbd74eef";
hash = "sha256-PNziP5LaUODZwtAHvg8uYt/EyoD3mB5aWIfp7n5a82E=";
};
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p ${placeholder "out"}/share/arcan/appl/
cp -a ./pipeworld ${placeholder "out"}/share/arcan/appl/
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/letoram/pipeworld";
description = "Dataflow 'spreadsheet' desktop environment";
longDescription = ''
Pipeworld is a zooming dataflow tool and desktop heavily inspired by
userland. It is built using the arcan desktop engine.
It combines the programmable processing of shell scripts and pipes, the
interactive visual addressing/programming model of spread sheets, the
scenegraph- and interactive controls-, IPC- and client processing- of
display servers into one model with zoomable tiling window management.
It can be used as a standalone desktop of its own, or as a normal
application within another desktop as a 'substitute' for your normal
terminal emulator.
'';
license = licenses.bsd3;
maintainers = with maintainers; [ AndersonTorres ];
platforms = platforms.all;
};
}

View file

@ -0,0 +1,37 @@
{ lib
, stdenv
, fetchFromGitHub
}:
stdenv.mkDerivation rec {
pname = "prio";
version = "0.pre+date=2018-09-13";
src = fetchFromGitHub {
owner = "letoram";
repo = pname;
rev = "c3f97491339d15f063d6937d5f89bcfaea774dd1";
hash = "sha256-Idv/duEYmDk/rO+TI8n+FY3VFDtUEh8C292jh12BJuM=";
};
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p ${placeholder "out"}/share/arcan/appl/prio
cp -a ./* ${placeholder "out"}/share/arcan/appl/prio
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/letoram/prio";
description = "Plan9- Rio like Window Manager for Arcan";
license = licenses.bsd3;
maintainers = with maintainers; [ AndersonTorres ];
platforms = platforms.all;
};
}

View file

@ -0,0 +1,29 @@
{ arcan
, makeWrapper
, symlinkJoin
, appls ? [ ]
, name ? "arcan-wrapped"
}:
symlinkJoin rec {
inherit name;
paths = appls ++ [ arcan ];
nativeBuildInputs = [ makeWrapper ];
postBuild = ''
for prog in ${placeholder "out"}/bin/*; do
wrapProgram $prog \
--prefix PATH ":" "${placeholder "out"}/bin" \
--set ARCAN_APPLBASEPATH "${placeholder "out"}/share/arcan/appl/" \
--set ARCAN_BINPATH "${placeholder "out"}/bin/arcan_frameserver" \
--set ARCAN_LIBPATH "${placeholder "out"}/lib/" \
--set ARCAN_RESOURCEPATH "${placeholder "out"}/share/arcan/resources/" \
--set ARCAN_SCRIPTPATH "${placeholder "out"}/share/arcan/scripts/"
done
'';
}
# TODO: set ARCAN_STATEBASEPATH to $HOME/.arcan/resources/savestates/ - possibly
# via a suitable script
# TODO: set ARCAN_FONTPATH to a set of default-but-configurable fontset

View file

@ -0,0 +1,119 @@
{ lib
, stdenv
, fetchFromGitHub
, fetchpatch
, arcan
, audit
, dbus
, libepoxy
, fontutil
, libGL
, libX11
, libXau
, libXdmcp
, libXfont2
, libdrm
, libgcrypt
, libmd
, libselinux
, libtirpc
, libxcb
, libxkbfile
, libxshmfence
, mesa
, meson
, nettle
, ninja
, openssl
, pixman
, pkg-config
, systemd
, xcbutil
, xcbutilwm
, xkbcomp
, xkeyboard_config
, xorgproto
, xtrans
}:
stdenv.mkDerivation rec {
pname = "xarcan";
version = "0.6.0+date=2021-08-26";
src = fetchFromGitHub {
owner = "letoram";
repo = pname;
rev = "e40f0176e495ffdad6e7405c58378df6532eb70d";
hash = "sha256-T+1oL7P5MTDkeSfW6OXc1OgfZ8E6e/4YRonf1eXcfIA=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
];
buildInputs = [
arcan
audit
dbus
libepoxy
fontutil
libGL
libX11
libXau
libXdmcp
libXfont2
libdrm
libgcrypt
libmd
libselinux
libtirpc
libxcb
libxkbfile
libxshmfence
mesa
nettle
openssl
pixman
systemd
xcbutil
xcbutilwm
xkbcomp
xkeyboard_config
xorgproto
xtrans
];
configureFlags = [
"--disable-int10-module"
"--disable-static"
"--disable-xnest"
"--disable-xorg"
"--disable-xvfb"
"--disable-xwayland"
"--enable-glamor"
"--enable-glx"
"--enable-ipv6"
"--enable-kdrive"
"--enable-record"
"--enable-xarcan"
"--enable-xcsecurity"
"--with-xkb-bin-directory=${xkbcomp}/bin"
"--with-xkb-output=/tmp"
"--with-xkb-path=${xkeyboard_config}/share/X11/xkb"
];
meta = with lib; {
homepage = "https://github.com/letoram/letoram";
description = "Patched Xserver that bridges connections to Arcan";
longDescription = ''
xarcan is a patched X server with a KDrive backend that uses the
arcan-shmif to map Xlib/Xcb/X clients to a running arcan instance. It
allows running an X session as a window under Arcan.
'';
license = licenses.mit;
maintainers = with maintainers; [ AndersonTorres ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,336 @@
From 67f62e5a8acd70d30f7067f1f44ac7b15c67011a Mon Sep 17 00:00:00 2001
From: Peter Howkins <flibble@users.sf.net>
Date: Mon, 2 Nov 2020 05:30:08 +0000
Subject: [PATCH] all: remove deprecated sys_errlist[] and replace with ANSI C
strerror()
---
cde/config/imake/imake.c | 13 -------------
cde/lib/tt/bin/dbck/spec.C | 8 --------
cde/lib/tt/lib/tt_options.h | 12 ------------
cde/programs/dtcm/dtcm/dnd.c | 4 ----
cde/programs/dtcm/libDtCmP/util.c | 5 +----
.../dthelp/parser.ccdf/volumegen/Volumegen.c | 1 -
cde/programs/dtimsstart/remote.c | 4 ----
cde/programs/dtimsstart/start.c | 12 +++---------
cde/programs/dtinfo/dtinfo/src/external-api/comm.c | 5 +----
.../dtksh/ksh93/src/lib/libast/string/fmterror.c | 9 +--------
.../dtksh/ksh93/src/lib/libast/string/strerror.c | 8 +-------
cde/programs/dtlogin/dm.h | 7 +------
12 files changed, 8 insertions(+), 80 deletions(-)
diff --git a/cde/config/imake/imake.c b/cde/config/imake/imake.c
index 574af7c7..83834aa7 100644
--- a/cde/config/imake/imake.c
+++ b/config/imake/imake.c
@@ -242,19 +242,6 @@ extern int errno;
#include <stdarg.h>
#include "imakemdep.h"
-/*
- * This define of strerror is copied from (and should be identical to)
- * Xos.h, which we don't want to include here for bootstrapping reasons.
- */
-#if defined(X_NOT_STDC_ENV) || (defined(sun) && !defined(SVR4))
-# ifndef strerror
-extern char *sys_errlist[];
-extern int sys_nerr;
-# define strerror(n) \
- (((n) >= 0 && (n) < sys_nerr) ? sys_errlist[n] : "unknown error")
-# endif
-#endif
-
#define TRUE 1
#define FALSE 0
diff --git a/cde/lib/tt/bin/dbck/spec.C b/cde/lib/tt/bin/dbck/spec.C
index 18bba3fb..eaf2d6b7 100644
--- a/cde/lib/tt/bin/dbck/spec.C
+++ b/lib/tt/bin/dbck/spec.C
@@ -44,14 +44,6 @@
#include "ttdbck.h"
#include "tt_db_server_consts.h"
-#if !defined(OPT_STRERROR)
-// No strerror(), fake it
-char *
-strerror(int e)
-{
- return ((e<sys_nerr) ? sys_errlist[e] : "unknown");
-}
-#endif
Spec::
Spec()
diff --git a/cde/lib/tt/lib/tt_options.h b/cde/lib/tt/lib/tt_options.h
index e23bb9e5..de3a30e2 100644
--- a/cde/lib/tt/lib/tt_options.h
+++ b/lib/tt/lib/tt_options.h
@@ -107,10 +107,6 @@
* OPT_CPP_OPTIONS - string, options to pass to cpp. For example, on
* some platforms -B is used so C++ comments are processed by cpp.
*
- *
- * OPT_STRERROR - set if strerror() is available, otherwise we assume
- * global symbol sys_errlist is defined in errno.h.
- *
* OPT_SVR4_GETMNTENT - set to use new SVR4 flavor of getmntent.
*
* OPT_LOCKF_MNTTAB - set to hold a lockf lock on MNTTAB while doing
@@ -242,7 +238,6 @@
# undef OPT_SYSINFO
# define OPT_CPP_PATH "/usr/ccs/lib/cpp"
# define OPT_CPP_OPTIONS ""
-# define OPT_STRERROR
# undef OPT_SVR4_GETMNTENT
# undef OPT_LOCKF_MNTENT
# define OPT_DEFINE_SIG_PF
@@ -273,7 +268,6 @@
# undef OPT_SYSINFO
# define OPT_CPP_PATH "/usr/lib/cpp"
# define OPT_CPP_OPTIONS "-B"
-# undef OPT_STRERROR
# undef OPT_SVR4_GETMNTENT
# undef OPT_LOCKF_MNTENT
# define OPT_LOCAL_MOUNT_TYPE MNTTYPE_42
@@ -302,7 +296,6 @@
# define OPT_CATGETS
# undef OPT_GETDTABLESIZE
# define OPT_SYSINFO
-# define OPT_STRERROR
# define OPT_CPP_PATH "/usr/ccs/lib/cpp"
# define OPT_CPP_OPTIONS "-B"
# define OPT_SVR4_GETMNTENT
@@ -389,7 +382,6 @@
# define OPT_CPP_PATH "/opt/langtools/lbin/cpp"
# endif
# define OPT_CPP_OPTIONS ""
-# define OPT_STRERROR
# undef OPT_SVR4_GETMNTENT
# undef OPT_LOCKF_MNTENT
# define OPT_LOCAL_MOUNT_TYPE MNTTYPE_HFS
@@ -415,7 +407,6 @@
# undef OPT_SYSINFO
# define OPT_CPP_PATH "/usr/bin/cpp"
# define OPT_CPP_OPTIONS ""
-# define OPT_STRERROR
# undef OPT_SVR4_GETMNTENT
# undef OPT_LOCKF_MNTENT
# define OPT_LOCAL_MOUNT_TYPE "ext2fs"
@@ -446,7 +437,6 @@
# undef OPT_SYSINFO
# define OPT_CPP_PATH "/usr/libexec/cpp"
# define OPT_CPP_OPTIONS ""
-# define OPT_STRERROR
# undef OPT_SVR4_GETMNTENT
# undef OPT_LOCKF_MNTENT
# define OPT_LOCAL_MOUNT_TYPE MNTTYPE_UFS
@@ -479,7 +469,6 @@
# define OPT_CPP_PATH "/usr/libexec/cpp"
# endif
# define OPT_CPP_OPTIONS ""
-# define OPT_STRERROR
# undef OPT_SVR4_GETMNTENT
# undef OPT_LOCKF_MNTENT
# define OPT_LOCAL_MOUNT_TYPE MNTTYPE_UFS
@@ -509,7 +498,6 @@
# undef OPT_SYSINFO
# define OPT_CPP_PATH "/usr/bin/cpp"
# define OPT_CPP_OPTIONS ""
-# define OPT_STRERROR
# undef OPT_SVR4_GETMNTENT
# undef OPT_LOCKF_MNTENT
# define OPT_LOCAL_MOUNT_TYPE MNTTYPE_UFS
diff --git a/cde/programs/dtcm/dtcm/dnd.c b/cde/programs/dtcm/dtcm/dnd.c
index abc58c12..f37f19a6 100644
--- a/cde/programs/dtcm/dtcm/dnd.c
+++ b/programs/dtcm/dtcm/dnd.c
@@ -72,10 +72,6 @@
static Bool lookForButton(Display *, XEvent *, XPointer);
-#if !defined(__linux__) && !defined(CSRG_BASED)
-extern char *sys_errlist[];
-#endif
-
extern int drag_load_proc(char*, Calendar *);
static char dnd_filename[20];
diff --git a/cde/programs/dtcm/libDtCmP/util.c b/cde/programs/dtcm/libDtCmP/util.c
index d33b8ba1..6de4739d 100644
--- a/cde/programs/dtcm/libDtCmP/util.c
+++ b/programs/dtcm/libDtCmP/util.c
@@ -306,10 +306,7 @@ syserr(char *msg, int a1, int a2, int a3)
#if 0
/* print the error, if any */
if (saveerr != 0) {
- if (saveerr < 0 || saveerr > sys_nerr)
- (void) fprintf(stderr, ":Unknown error %d", saveerr);
- else
- (void) fprintf(stderr, ":%s", sys_errlist[saveerr]);
+ (void) fprintf(stderr, ":%s", strerror(saveerr));
}
#endif
diff --git a/cde/programs/dthelp/parser.ccdf/volumegen/Volumegen.c b/cde/programs/dthelp/parser.ccdf/volumegen/Volumegen.c
index d9a42943..08de4809 100644
--- a/cde/programs/dthelp/parser.ccdf/volumegen/Volumegen.c
+++ b/programs/dthelp/parser.ccdf/volumegen/Volumegen.c
@@ -56,7 +56,6 @@
typedef int Boolean;
/* extern int errno; */
-/* extern char *sys_errlist[]; */
/* extern int sys_nerr; */
static void GenTopicList (
diff --git a/cde/programs/dtimsstart/remote.c b/cde/programs/dtimsstart/remote.c
index 68773673..71d32977 100644
--- a/cde/programs/dtimsstart/remote.c
+++ b/programs/dtimsstart/remote.c
@@ -37,10 +37,6 @@
#include <X11/Xproto.h> /* for X_ChangeHosts */
#include <X11/Xatom.h> /* for XA_STRING */
-#if !defined(__linux__) && !defined(CSRG_BASED)
-extern char *sys_errlist[];
-#endif
-
static char *conf_msg_id = STR_CONFDATA;
#define CONF_MSG_ID_LEN strlen(conf_msg_id)
diff --git a/cde/programs/dtimsstart/start.c b/cde/programs/dtimsstart/start.c
index 78fc2a38..1dafa189 100644
--- a/cde/programs/dtimsstart/start.c
+++ b/programs/dtimsstart/start.c
@@ -27,14 +27,10 @@
#include <sys/wait.h>
#include <setjmp.h>
#include <unistd.h>
+#include <errno.h>
#if (defined(__linux__) || defined(CSRG_BASED)) && !defined(_NFILE)
#define _NFILE FOPEN_MAX
-#endif
-
-#if !defined(__linux__) && !defined(CSRG_BASED)
-extern char *sys_errlist[];
-extern int sys_nerr;
#endif
/* local functions */
@@ -599,8 +595,7 @@ static int invoke_ims(UserSelection *sel)
pid = fork();
if (pid == (pid_t) -1) {
- put_xims_log("fork failed [%s]",
- (errno <= sys_nerr) ? sys_errlist[errno] : NULL, 0, 0);
+ put_xims_log("fork failed [%s]", strerror(errno), 0, 0);
#ifdef DEBUG
perror("fork");
#endif
@@ -617,8 +612,7 @@ static int invoke_ims(UserSelection *sel)
#endif
execl(SH_PATH, "sh", "-c", renv->cmdbuf, NULL);
- put_xims_log("%s: exec failed [%s]", SH_PATH,
- (errno <= sys_nerr) ? sys_errlist[errno] : NULL, 0, 0);
+ put_xims_log("%s: exec failed [%s]", SH_PATH, strerror(errno) , 0, 0);
/* perror(SH_PATH); */
sleep(1);
_exit(1);
diff --git a/cde/programs/dtinfo/dtinfo/src/external-api/comm.c b/cde/programs/dtinfo/dtinfo/src/external-api/comm.c
index d61ccb7a..6aa2fc91 100644
--- a/cde/programs/dtinfo/dtinfo/src/external-api/comm.c
+++ b/programs/dtinfo/dtinfo/src/external-api/comm.c
@@ -53,9 +53,6 @@
#include <sys/select.h>
#endif
-extern char *sys_errlist[];
-
-
static OliasEvent *current_event;
static int reply_status;
#define NO_REPLY 0
@@ -332,7 +329,7 @@ wait_for_reply (Widget toplevel)
XtAppWarningMsg (XtWidgetToApplicationContext (toplevel),
"communicationsError", "select",
"Olias API", "Select failed: %s",
- &sys_errlist[errno], &num_params);
+ strerror(errno), &num_params);
continue;
}
continue;
diff --git a/cde/programs/dtksh/ksh93/src/lib/libast/string/fmterror.c b/cde/programs/dtksh/ksh93/src/lib/libast/string/fmterror.c
index 313b67bc..8dd87ab8 100644
--- a/cde/programs/dtksh/ksh93/src/lib/libast/string/fmterror.c
+++ b/programs/dtksh/ksh93/src/lib/libast/string/fmterror.c
@@ -92,14 +92,7 @@
#endif
#include <ast.h>
-extern __MANGLE__ int sys_nerr;
-extern __MANGLE__ char* sys_errlist[];
-
char*
fmterror __PARAM__((int err), (err)) __OTORP__(int err;){
- static char msg[28];
-
- if (err > 0 && err <= sys_nerr) return(sys_errlist[err]);
- sfsprintf(msg, sizeof(msg), "Error %d", err);
- return(msg);
+ return strerror(err);
}
diff --git a/cde/programs/dtksh/ksh93/src/lib/libast/string/strerror.c b/cde/programs/dtksh/ksh93/src/lib/libast/string/strerror.c
index 7686a54d..a6aa7ce8 100644
--- a/cde/programs/dtksh/ksh93/src/lib/libast/string/strerror.c
+++ b/programs/dtksh/ksh93/src/lib/libast/string/strerror.c
@@ -108,18 +108,12 @@ NoN(strerror)
#include <ast.h>
-extern __MANGLE__ int sys_nerr;
-extern __MANGLE__ char* sys_errlist[];
char*
strerror __PARAM__((int err), (err)) __OTORP__(int err;)
#line 25
{
- static char msg[28];
-
- if (err > 0 && err <= sys_nerr) return(sys_errlist[err]);
- sfsprintf(msg, sizeof(msg), "Error %d", err);
- return(msg);
+ return strerror(err);
}
#endif
diff --git a/cde/programs/dtlogin/dm.h b/cde/programs/dtlogin/dm.h
index 3e0f2499..e67edc3c 100644
--- a/cde/programs/dtlogin/dm.h
+++ b/programs/dtlogin/dm.h
@@ -68,8 +68,7 @@
# include <pwd.h> /* for passwd structure */
# include <stdio.h>
# include <stdlib.h> /* for exit(), malloc(), abort() */
-# include <string.h> /* for string functions, bcopy(),
- sys_errlist */
+# include <string.h> /* for string functions, bcopy() */
# include <sys/param.h> /* for NGROUPS */
# include <sys/types.h> /* for fd_set */
# include <netinet/in.h> /* for Internet socket stuff */
@@ -475,10 +474,6 @@ struct verify_info {
*
***************************************************************************/
-#if !defined(__linux__) && !defined(CSRG_BASED)
-extern char *sys_errlist[]; /* system error msgs */
-extern int sys_nerr; /* system error msgs */
-#endif
extern XrmDatabase XresourceDB;
--
2.28.0

View file

@ -0,0 +1,106 @@
From 8db8a2290683acf94f02e855af668a864d6001c2 Mon Sep 17 00:00:00 2001
Subject: [PATCH 1/2] installCDE: don't hardcode path to whoami
---
cde/admin/IntegTools/dbTools/installCDE.src | 11 ++---------
cde/admin/IntegTools/dbTools/mkProd | 9 +--------
2 files changed, 3 insertions(+), 17 deletions(-)
diff --git a/cde/admin/IntegTools/dbTools/installCDE.src b/cde/admin/IntegTools/dbTools/installCDE.src
index a00fefd1..233b4a96 100755
--- a/cde/admin/IntegTools/dbTools/installCDE.src
+++ b/admin/IntegTools/dbTools/installCDE.src
@@ -52,7 +52,7 @@ LOGFILE="installCDE.$$.log"
Log()
{
- /bin/echo "$1" | tee -a $LOGFILE
+ echo "$1" | tee -a $LOGFILE
}
MakeTarball()
@@ -537,14 +537,7 @@ XCOMM
PLATFORM_SCRIPT_DIR=hp
fi
- if [ "$PLATFORM" = "aix" ];
- then
- USER=$(/bin/whoami)
- else
- USER=$(/usr/bin/whoami)
- fi
-
- if [ "$USER" != "root" ];
+ if [ $(whoami) != "root" ];
then
echo ""
echo "You should be root to run this script. Continuing anyway."
diff --git a/cde/admin/IntegTools/dbTools/mkProd b/cde/admin/IntegTools/dbTools/mkProd
index 44591fab..413a77e8 100755
--- a/cde/admin/IntegTools/dbTools/mkProd
+++ b/admin/IntegTools/dbTools/mkProd
@@ -96,13 +96,6 @@ else # Build system = HP
PLATFORM=hp-ux
fi
-if [ $PLATFORM = "aix" ];
-then
- USER=`/bin/whoami`
-else
- USER=`/usr/bin/whoami`
-fi
-
awkit() {
awk '
BEGIN {
@@ -504,7 +497,7 @@ doit()
}
# set permissions for non-links
if [ "${TYPE%link}" = "$TYPE" ]; then
- if [ "$USER" = "root" ]; then
+ if [ $(whoami) = "root" ]; then
chgrp $GROUP $DEST ||
echo "ERROR: \"chgrp $GROUP $DEST\" failed" >&2
chown $OWNER $DEST ||
--
2.25.0
From 9221c55a5f811986eaf0e01301827c294ac2e29b Mon Sep 17 00:00:00 2001
Subject: [PATCH 2/2] tt_type_comp: use CppCmd definition
---
cde/lib/tt/bin/tt_type_comp/Imakefile | 4 +++-
cde/lib/tt/lib/tt_options.h | 5 +++++
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/cde/lib/tt/bin/tt_type_comp/Imakefile b/cde/lib/tt/bin/tt_type_comp/Imakefile
index 92179208..62434929 100644
--- a/cde/lib/tt/bin/tt_type_comp/Imakefile
+++ b/lib/tt/bin/tt_type_comp/Imakefile
@@ -8,7 +8,9 @@ EXTRA_LOAD_FLAGS = ExtraLoadFlags $(UNSHARED_CXXLIB)
#include "../../tooltalk.tmpl"
-DEFINES =
+CPP_PROGRAM = CppCmd
+CPP_DEFINES = -DCPP_PROGRAM="\"$(CPP_PROGRAM)\""
+DEFINES = $(CPP_DEFINES)
INCLUDES = $(TIRPCINC) -I../../lib -I../../slib
DEPLIBS = ../../slib/libstt.a TtClientDepLibs
diff --git a/cde/lib/tt/lib/tt_options.h b/cde/lib/tt/lib/tt_options.h
index 4315daa8..e23bb9e5 100644
--- a/cde/lib/tt/lib/tt_options.h
+++ b/lib/tt/lib/tt_options.h
@@ -529,4 +529,9 @@
#endif
+#ifdef CPP_PROGRAM
+# undef OPT_CPP_PATH
+# define OPT_CPP_PATH CPP_PROGRAM
+#endif
+
#endif /* _TT_OPTIONS_H */
--
2.25.0

View file

@ -0,0 +1,110 @@
{ lib, stdenv, fetchurl
, fetchpatch
, xorgproto, libX11, bison, ksh, perl, gnum4
, libXinerama, libXt, libXext, libtirpc, motif, libXft, xbitmaps
, libjpeg, libXmu, libXdmcp, libXScrnSaver, symlinkJoin, bdftopcf
, ncompress, mkfontdir, tcl, libXaw, gcc, glibcLocales
, autoPatchelfHook, libredirect, makeWrapper, xset, xrdb, fakeroot
, rpcsvc-proto }:
let
x11ProjectRoot = symlinkJoin {
name = "x11ProjectRoot";
paths = [
bdftopcf mkfontdir
xset # fonts
xrdb # session load
];
};
in stdenv.mkDerivation rec {
version = "2.3.2";
pname = "cde";
src = fetchurl {
url = "mirror://sourceforge/cdesktopenv/cde-${version}.tar.gz";
sha256 = "029rljhi5r483x8rzdpl8625z0wx8r7k2m0364nbw66h5pig9lbx";
};
# remove with next release
patches = [
./2.3.2.patch
./0001-all-remove-deprecated-sys_errlist-and-replace-with-A.patch
(fetchpatch {
name = "binutils-2.36.patch";
url = "https://github.com/cdesktopenv/cde/commit/0b7849e210a99a413ddeb52a0eb5aef9a08504a0.patch";
sha256 = "0wlhs617hws3rwln9v74y1nw27n3pp7jkpnxlala7k5y64506ipj";
stripLen = 1;
})
];
buildInputs = [
libX11 libXinerama libXt libXext libtirpc motif libXft xbitmaps
libjpeg libXmu libXdmcp libXScrnSaver tcl libXaw ksh
];
nativeBuildInputs = [
bison ncompress autoPatchelfHook makeWrapper fakeroot
rpcsvc-proto
];
# build fails otherwise
enableParallelBuilding = false;
# Workaround build failure on -fno-common toolchains:
# ld: raima/startup.o:/build/cde-2.3.2/lib/DtSearch/raima/dbtype.h:408: multiple definition of
# `__SK__'; raima/alloc.o:/build/cde-2.3.2/lib/DtSearch/raima/dbtype.h:408: first defined here
NIX_CFLAGS_COMPILE = "-fcommon";
makeFlags = [
"World"
"BOOTSTRAPCFLAGS=-I${xorgproto}/include/X11"
"IMAKECPP=cpp"
"LOCALE_ARCHIVE=${glibcLocales}/lib/locale/locale-archive"
];
preConfigure = ''
# binutils 2.37 fix
fixupList=(
"config/cf/Imake.tmpl"
"config/util/crayar.sh"
"config/util/crayar.sh"
"programs/dtwm/Makefile.tmpl"
)
for toFix in "''${fixupList[@]}"; do
substituteInPlace "$toFix" --replace "clq" "cq"
done
'';
preBuild = ''
while IFS= read -r -d ''$'\0' i; do
substituteInPlace "$i" --replace /usr/dt $out/opt/dt
done < <(find "." -type f -exec grep -Iq /usr/dt {} \; -and -print0)
cat >> config/cf/site.def << EOF
#define MakeFlagsToShellFlags(makeflags,shellcmd) set -e
#define KornShell ${ksh}/bin/ksh
#define PerlCmd ${perl}/bin/perl
#define M4Cmd ${gnum4}/bin/m4
#define X11ProjectRoot ${x11ProjectRoot}
#define CppCmd ${gcc}/bin/cpp
TIRPCINC = -I${libtirpc.dev}/include/tirpc
EOF
patchShebangs .
unset AR
'';
installPhase = ''
fakeroot admin/IntegTools/dbTools/installCDE -s . -DontRunScripts
mkdir -p $out/bin
mv $out/opt/dt/bin/dtmail $out/bin
'';
meta = with lib; {
description = "Common Desktop Environment";
homepage = "https://sourceforge.net/projects/cdesktopenv/";
license = licenses.lgpl2;
maintainers = [ ];
platforms = [ "i686-linux" "x86_64-linux" ];
};
}

View file

@ -0,0 +1,60 @@
{ stdenv
, lib
, fetchFromGitHub
, wrapGAppsHook
, python3
, gsettings-desktop-schemas
, gettext
, gtk3
, glib
, common-licenses
}:
stdenv.mkDerivation rec {
pname = "bulky";
version = "1.9";
src = fetchFromGitHub {
owner = "linuxmint";
repo = "bulky";
rev = version;
hash = "sha256-OCBFhlnEXZROp47KDiy7Y6l4GDVCCP+i1IFYQa7esyg=";
};
nativeBuildInputs = [
wrapGAppsHook
gsettings-desktop-schemas
gettext
];
buildInputs = [
(python3.withPackages (p: with p; [ pygobject3 magic setproctitle ]))
gsettings-desktop-schemas
gtk3
glib
];
postPatch = ''
substituteInPlace usr/lib/bulky/bulky.py \
--replace "/usr/share/locale" "$out/share/locale" \
--replace /usr/share/bulky "$out/share/bulky" \
--replace /usr/share/common-licenses "${common-licenses}/share/common-licenses" \
--replace __DEB_VERSION__ "${version}"
'';
installPhase = ''
runHook preInstall
chmod +x usr/share/applications/*
cp -ra usr $out
ln -sf $out/lib/bulky/bulky.py $out/bin/bulky
runHook postInstall
'';
meta = with lib; {
description = "Bulk rename app";
homepage = "https://github.com/linuxmint/bulky";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.cinnamon.members;
};
}

View file

@ -0,0 +1,167 @@
{ atk
, cacert
, fetchpatch
, dbus
, cinnamon-control-center
, cinnamon-desktop
, cinnamon-menus
, cinnamon-session
, cinnamon-translations
, cjs
, fetchFromGitHub
, gdk-pixbuf
, libgnomekbd
, glib
, gobject-introspection
, gtk3
, intltool
, json-glib
, callPackage
, libsoup
, libstartup_notification
, libXtst
, libXdamage
, muffin
, networkmanager
, pkg-config
, polkit
, lib
, stdenv
, wrapGAppsHook
, libxml2
, gtk-doc
, gnome
, python3
, keybinder3
, cairo
, xapps
, upower
, nemo
, libnotify
, accountsservice
, gnome-online-accounts
, glib-networking
, pciutils
, timezonemap
, libnma
, meson
, ninja
, gst_all_1
}:
stdenv.mkDerivation rec {
pname = "cinnamon-common";
version = "5.2.0";
src = fetchFromGitHub {
owner = "linuxmint";
repo = "cinnamon";
rev = version;
hash = "sha256-B2Du2zis0xWeeyh3kSyz1doWImk9Fuk4qQ8HNZZdqdw=";
};
patches = [
./use-sane-install-dir.patch
./libdir.patch
(fetchpatch {
url = "https://github.com/linuxmint/cinnamon/commit/77ed66050f7df889fcb7a10b702c7b8bcdeaa130.patch";
sha256 = "sha256-OegLxz6Xr/nxVwVOAd2oOY62ohZ3r6uYn1+YED5EBHQ=";
})
];
buildInputs = [
# TODO: review if we really need this all
(python3.withPackages (pp: with pp; [ dbus-python setproctitle pygobject3 pycairo xapp pillow pytz tinycss2 python-pam pexpect distro requests ]))
atk
cacert
cinnamon-control-center
cinnamon-desktop
cinnamon-menus
cjs
dbus
gdk-pixbuf
glib
gtk3
json-glib
libsoup
libstartup_notification
libXtst
libXdamage
muffin
networkmanager
pkg-config
polkit
libxml2
libgnomekbd
gst_all_1.gstreamer
# bindings
cairo
gnome.caribou
keybinder3
upower
xapps
timezonemap
nemo
libnotify
accountsservice
libnma
# gsi bindings
gnome-online-accounts
glib-networking # for goa
];
nativeBuildInputs = [
gobject-introspection
meson
ninja
wrapGAppsHook
intltool
gtk-doc
];
# use locales from cinnamon-translations (not using --localedir because datadir is used)
postInstall = ''
ln -s ${cinnamon-translations}/share/locale $out/share/locale
'';
postPatch = ''
find . -type f -exec sed -i \
-e s,/usr/share/cinnamon,$out/share/cinnamon,g \
-e s,/usr/share/locale,/run/current-system/sw/share/locale,g \
{} +
sed "s|/usr/share/sounds|/run/current-system/sw/share/sounds|g" -i ./files/usr/share/cinnamon/cinnamon-settings/bin/SettingsWidgets.py
sed "s|/usr/bin/upload-system-info|${xapps}/bin/upload-system-info|g" -i ./files/usr/share/cinnamon/cinnamon-settings/modules/cs_info.py
sed "s|upload-system-info|${xapps}/bin/upload-system-info|g" -i ./files/usr/share/cinnamon/cinnamon-settings/modules/cs_info.py
sed "s|/usr/bin/cinnamon-control-center|${cinnamon-control-center}/bin/cinnamon-control-center|g" -i ./files/usr/bin/cinnamon-settings
# this one really IS optional
sed "s|/usr/bin/gnome-control-center|/run/current-system/sw/bin/gnome-control-center|g" -i ./files/usr/bin/cinnamon-settings
sed "s|\"/usr/lib\"|\"${cinnamon-control-center}/lib\"|g" -i ./files/usr/share/cinnamon/cinnamon-settings/bin/capi.py
# another bunch of optional stuff
sed "s|/usr/bin|/run/current-system/sw/bin|g" -i ./files/usr/bin/cinnamon-launcher
sed 's|"lspci"|"${pciutils}/bin/lspci"|g' -i ./files/usr/share/cinnamon/cinnamon-settings/modules/cs_info.py
sed "s| cinnamon-session| ${cinnamon-session}/bin/cinnamon-session|g" -i ./files/usr/bin/cinnamon-session-cinnamon -i ./files/usr/bin/cinnamon-session-cinnamon2d
sed "s|/usr/bin|$out/bin|g" -i ./files/usr/share/xsessions/cinnamon.desktop ./files/usr/share/xsessions/cinnamon2d.desktop
'';
passthru = {
providedSessions = [ "cinnamon" "cinnamon2d" ];
};
meta = with lib; {
homepage = "https://github.com/linuxmint/cinnamon";
description = "The Cinnamon desktop environment";
license = [ licenses.gpl2 ];
platforms = platforms.linux;
maintainers = teams.cinnamon.members;
};
}

View file

@ -0,0 +1,25 @@
From 1c99ff9b042d77d97a0841c78fceb7cfbf41aa8b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= <mkg20001@gmail.com>
Date: Sun, 28 Feb 2021 05:58:09 +0100
Subject: [PATCH] libdir patch
---
meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
index 3c1e9a4f..a77d9b3c 100644
--- a/meson.build
+++ b/meson.build
@@ -14,7 +14,7 @@ includedir = get_option('includedir')
libexecdir = get_option('libexecdir')
desktopdir = join_paths(datadir, 'applications')
schemadir = join_paths(datadir, 'glib-2.0', 'schemas')
-pkglibdir = join_paths(libdir, meson.project_name().to_lower())
+pkglibdir = libdir
servicedir = join_paths(datadir, 'dbus-1', 'services')
pkgdatadir = join_paths(datadir, meson.project_name().to_lower())
po_dir = join_paths(meson.source_root(), 'po')
--
2.30.0

View file

@ -0,0 +1,33 @@
From f7e802959d7a5c217ed574cab30404fc769f174d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= <mkg20001@gmail.com>
Date: Sat, 6 Feb 2021 14:26:26 +0100
Subject: [PATCH] use sane install dir
---
meson.build | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/meson.build b/meson.build
index bd803f20..3c1e9a4f 100644
--- a/meson.build
+++ b/meson.build
@@ -127,8 +127,14 @@ configure_file(
)
install_subdir(
- 'files',
- install_dir: '/',
+ 'files/usr',
+ install_dir: get_option('prefix'),
+ strip_directory: true,
+)
+
+install_subdir(
+ 'files/etc',
+ install_dir: join_paths(get_option('prefix'), 'etc'),
strip_directory: true,
)
--
2.30.0

View file

@ -0,0 +1,120 @@
{ lib
, stdenv
, fetchFromGitHub
, pkg-config
, glib
, gettext
, cinnamon-desktop
, gtk3
, libnotify
, libxml2
, gnome-online-accounts
, cinnamon-settings-daemon
, colord
, polkit
, libxkbfile
, cinnamon-menus
, dbus-glib
, libgnomekbd
, libxklavier
, networkmanager
, libwacom
, gnome
, wrapGAppsHook
, tzdata
, glibc
, libnma
, modemmanager
, xorg
, gdk-pixbuf
, meson
, ninja
, cinnamon-translations
, python3
}:
stdenv.mkDerivation rec {
pname = "cinnamon-control-center";
version = "5.2.0";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
hash = "sha256-j7+2uLcHr7bO7i8OGqkw3ifawZULNyihhJ+h2D5gx/k=";
};
buildInputs = [
gtk3
glib
cinnamon-desktop
libnotify
cinnamon-menus
libxml2
dbus-glib
polkit
libgnomekbd
libxklavier
colord
cinnamon-settings-daemon
libwacom
gnome-online-accounts
tzdata
networkmanager
libnma
modemmanager
xorg.libXxf86misc
xorg.libxkbfile
gdk-pixbuf
];
/* ./panels/datetime/test-timezone.c:4:#define TZ_DIR "/usr/share/zoneinfo/"
./panels/datetime/tz.h:32:# define TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab"
./panels/datetime/tz.h:34:# define TZ_DATA_FILE "/usr/share/lib/zoneinfo/tab/zone_sun.tab" */
postPatch = ''
sed 's|TZ_DIR "/usr/share/zoneinfo/"|TZ_DIR "${tzdata}/share/zoneinfo/"|g' -i ./panels/datetime/test-timezone.c
sed 's|TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab"|TZ_DATA_FILE "${tzdata}/share/zoneinfo/zone.tab"|g' -i ./panels/datetime/tz.h
sed 's|"/usr/share/i18n/locales/"|"${glibc}/share/i18n/locales/"|g' -i panels/datetime/test-endianess.c
patchShebangs meson_install_schemas.py
'';
# it needs to have access to that file, otherwise we can't run tests after build
preBuild = ''
mkdir -p $out/share/cinnamon-control-center/
ln -s $PWD/panels/datetime $out/share/cinnamon-control-center/
'';
mesonFlags = [
# TODO: https://github.com/NixOS/nixpkgs/issues/36468
"-Dc_args=-I${glib.dev}/include/gio-unix-2.0"
# use locales from cinnamon-translations
"--localedir=${cinnamon-translations}/share/locale"
];
preInstall = ''
rm -r $out
'';
# the only test is wacom-calibrator and it seems to need an xserver and prob more services aswell
doCheck = false;
nativeBuildInputs = [
pkg-config
meson
ninja
wrapGAppsHook
gettext
python3
];
meta = with lib; {
homepage = "https://github.com/linuxmint/cinnamon-control-center";
description = "A collection of configuration plugins used in cinnamon-settings";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = teams.cinnamon.members;
};
}

View file

@ -0,0 +1,78 @@
{ fetchFromGitHub
, gdk-pixbuf
, gobject-introspection
, gtk3
, intltool
, meson
, ninja
, pkg-config
, pulseaudio
, python3
, lib
, stdenv
, xkeyboard_config
, xorg
, wrapGAppsHook
, glib
}:
stdenv.mkDerivation rec {
pname = "cinnamon-desktop";
version = "5.2.0";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
hash = "sha256-gOlSmcHjBjnLdDpgC5mZ4M3eUBTG3BuET6Kr/Xby14A=";
};
outputs = [ "out" "dev" ];
propagatedBuildInputs = [
glib
gtk3
pulseaudio
];
buildInputs = [
gdk-pixbuf
xkeyboard_config
xorg.libxkbfile
xorg.libXext
xorg.libXrandr
gobject-introspection
];
nativeBuildInputs = [
meson
ninja
python3
wrapGAppsHook
intltool
pkg-config
];
postPatch = ''
chmod +x install-scripts/meson_install_schemas.py # patchShebangs requires executable file
patchShebangs install-scripts/meson_install_schemas.py
sed "s|/usr/share|/run/current-system/sw/share|g" -i ./schemas/* # NOTE: unless this causes a circular dependency, we could link it to cinnamon-common/share/cinnamon
'';
meta = with lib; {
homepage = "https://github.com/linuxmint/cinnamon-desktop";
description = "Library and data for various Cinnamon modules";
longDescription = ''
The libcinnamon-desktop library provides API shared by several applications
on the desktop, but that cannot live in the platform for various
reasons. There is no API or ABI guarantee, although we are doing our
best to provide stability. Documentation for the API is available with
gtk-doc.
'';
license = [ licenses.gpl2 licenses.lgpl2 ];
platforms = platforms.linux;
maintainers = teams.cinnamon.members;
};
}

View file

@ -0,0 +1,59 @@
{ lib
, runCommand
, nixos-artwork
, glib
, gtk3
, gsettings-desktop-schemas
, extraGSettingsOverrides ? ""
, extraGSettingsOverridePackages ? [ ]
, mint-artwork
, muffin
, nemo
, xapps
, cinnamon-desktop
, cinnamon-session
, cinnamon-settings-daemon
, cinnamon-common
, bulky
}:
let
gsettingsOverridePackages = [
# from
mint-artwork
# on
bulky
muffin
nemo
xapps
cinnamon-desktop
cinnamon-session
cinnamon-settings-daemon
cinnamon-common
gtk3
] ++ extraGSettingsOverridePackages;
in
with lib;
# TODO: Having https://github.com/NixOS/nixpkgs/issues/54150 would supersede this
runCommand "cinnamon-gsettings-overrides" { }
''
schema_dir=$out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas
mkdir -p $schema_dir
${concatMapStrings (pkg: "cp -rf ${glib.getSchemaPath pkg}/*.xml ${glib.getSchemaPath pkg}/*.gschema.override $schema_dir\n") gsettingsOverridePackages}
chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides
cat - > $schema_dir/nixos-defaults.gschema.override <<- EOF
${extraGSettingsOverrides}
EOF
${glib.dev}/bin/glib-compile-schemas $schema_dir
''

View file

@ -0,0 +1,42 @@
{ fetchFromGitHub
, glib
, gobject-introspection
, meson
, ninja
, pkg-config
, lib
, stdenv
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
pname = "cinnamon-menus";
version = "5.2.0";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
hash = "sha256-ioluv/GdWCNGP2jQqsyEbHncCFm8iu69yR8QVKQTJk8=";
};
buildInputs = [
glib
gobject-introspection
];
nativeBuildInputs = [
meson
ninja
wrapGAppsHook
pkg-config
];
meta = with lib; {
homepage = "https://github.com/linuxmint/cinnamon-menus";
description = "A menu system for the Cinnamon project";
license = [ licenses.gpl2 licenses.lgpl2 ];
platforms = platforms.linux;
maintainers = teams.cinnamon.members;
};
}

View file

@ -0,0 +1,101 @@
{ lib
, stdenv
, fetchFromGitHub
, pkg-config
, meson
, ninja
, glib
, dbus
, gettext
, cinnamon-desktop
, cinnamon-common
, intltool
, libxslt
, gtk3
, libgnomekbd
, gnome
, libtool
, wrapGAppsHook
, gobject-introspection
, python3
, pam
, accountsservice
, cairo
, xapps
, xorg
, iso-flags-png-320x420
}:
stdenv.mkDerivation rec {
pname = "cinnamon-screensaver";
version = "5.2.0";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
hash = "sha256-weQ5sw5SY89JFIxamCeLiSLy8xCXGg0Yxj/5Ca5r+6o=";
};
nativeBuildInputs = [
pkg-config
wrapGAppsHook
gettext
intltool
dbus # for meson.build
libxslt
libtool
meson
ninja
];
buildInputs = [
# from meson.build
gobject-introspection
gtk3
glib
xorg.libXext
xorg.libXinerama
xorg.libX11
xorg.libXrandr
(python3.withPackages (pp: with pp; [ pygobject3 setproctitle xapp pycairo ]))
xapps
pam
accountsservice
cairo
cinnamon-desktop
cinnamon-common
libgnomekbd
gnome.caribou
# things
iso-flags-png-320x420
];
mesonFlags = [
# TODO: https://github.com/NixOS/nixpkgs/issues/36468
"-Dc_args=-I${glib.dev}/include/gio-unix-2.0"
];
postPatch = ''
# cscreensaver hardcodes absolute paths everywhere. Nuke from orbit.
find . -type f -exec sed -i \
-e s,/usr/share/locale,/run/current-system/sw/share/locale,g \
-e s,/usr/lib/cinnamon-screensaver,$out/lib,g \
-e s,/usr/share/cinnamon-screensaver,$out/share,g \
-e s,/usr/share/iso-flag-png,${iso-flags-png-320x420}/share/iso-flags-png,g \
{} +
sed "s|/usr/share/locale|/run/current-system/sw/share/locale|g" -i ./src/cinnamon-screensaver-main.py
'';
meta = with lib; {
homepage = "https://github.com/linuxmint/cinnamon-screensaver";
description = "The Cinnamon screen locker and screensaver program";
license = [ licenses.gpl2 licenses.lgpl2 ];
platforms = platforms.linux;
maintainers = teams.cinnamon.members;
};
}

View file

@ -0,0 +1,38 @@
From eb4a1eae754f222b1be902c2f050704fb0511cf7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= <mkg20001@gmail.com>
Date: Sat, 5 Sep 2020 23:19:23 +0200
Subject: [PATCH] Use dbus_glib instead of elogind
---
cinnamon-session/meson.build | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/cinnamon-session/meson.build b/cinnamon-session/meson.build
index d8428dc..1f15115 100644
--- a/cinnamon-session/meson.build
+++ b/cinnamon-session/meson.build
@@ -56,6 +56,7 @@ cinnamon_session_sources = [
gdbus_sources,
]
+dbus_glib = dependency('dbus-glib-1')
executable('cinnamon-session',
cinnamon_session_sources,
dependencies: [
@@ -74,7 +75,7 @@ executable('cinnamon-session',
xext,
xrender,
xtest,
- elogind,
+ dbus_glib,
],
link_with: [
libegg,
@@ -98,4 +99,3 @@ foreach unit: units
dependencies: unit[2]
)
endforeach
-
--
2.28.0

View file

@ -0,0 +1,111 @@
{ fetchFromGitHub
, cinnamon-desktop
, cinnamon-settings-daemon
, cinnamon-translations
, dbus-glib
, docbook_xsl
, docbook_xml_dtd_412
, glib
, gsettings-desktop-schemas
, gtk3
, libcanberra
, libxslt
, makeWrapper
, meson
, ninja
, pkg-config
, python3
, lib
, stdenv
, systemd
, wrapGAppsHook
, xapps
, xmlto
, xorg
, libexecinfo
, pango
}:
stdenv.mkDerivation rec {
pname = "cinnamon-session";
version = "5.2.0";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
hash = "sha256-E5ascwLnpa5NSBAPo9dXRhoraUntzDPHVV32uDU4U8k=";
};
patches = [
./0001-Use-dbus_glib-instead-of-elogind.patch
];
buildInputs = [
# meson.build
gtk3
glib
libcanberra
pango
xorg.libX11
xorg.libXext
xapps
xorg.libXau
xorg.libXcomposite
systemd
xorg.libXtst
xorg.libXrender
xorg.xtrans
# other (not meson.build)
cinnamon-desktop
cinnamon-settings-daemon
dbus-glib
glib
gsettings-desktop-schemas
];
nativeBuildInputs = [
meson
ninja
wrapGAppsHook
libexecinfo
docbook_xsl
docbook_xml_dtd_412
python3
pkg-config
libxslt
xmlto
];
mesonFlags = [
# TODO: https://github.com/NixOS/nixpkgs/issues/36468
"-Dc_args=-I${glib.dev}/include/gio-unix-2.0"
"-Dgconf=false"
# use locales from cinnamon-translations
"--localedir=${cinnamon-translations}/share/locale"
];
postPatch = ''
chmod +x data/meson_install_schemas.py # patchShebangs requires executable file
patchShebangs data/meson_install_schemas.py
'';
preFixup = ''
gappsWrapperArgs+=(
--prefix XDG_DATA_DIRS : "${cinnamon-desktop}/share"
--prefix XDG_CONFIG_DIRS : "${cinnamon-settings-daemon}/etc/xdg"
)
'';
meta = with lib; {
homepage = "https://github.com/linuxmint/cinnamon-session";
description = "The Cinnamon session manager";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = teams.cinnamon.members;
};
}

View file

@ -0,0 +1,49 @@
From 7fa408ebd72c9f1ff7ff4e9d7f4a811465a8a41b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= <mkg20001@gmail.com>
Date: Tue, 21 Jan 2020 03:19:28 +0100
Subject: [PATCH] fix: use an impure path to csd-backlight-helper to fix
policy-reload bug
---
plugins/power/csd-power-manager.c | 4 ++--
.../org.cinnamon.settings-daemon.plugins.power.policy.in | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/plugins/power/csd-power-manager.c b/plugins/power/csd-power-manager.c
index 33f4489..84dd98b 100644
--- a/plugins/power/csd-power-manager.c
+++ b/plugins/power/csd-power-manager.c
@@ -2529,7 +2529,7 @@ backlight_helper_get_value (const gchar *argument, CsdPowerManager* manager,
#endif
/* get the data */
- command = g_strdup_printf (LIBEXECDIR "/csd-backlight-helper --%s %s",
+ command = g_strdup_printf ("/run/current-system/sw/bin/cinnamon-settings-daemon/csd-backlight-helper --%s %s",
argument,
manager->priv->backlight_helper_preference_args);
ret = g_spawn_command_line_sync (command,
@@ -2619,7 +2619,7 @@ backlight_helper_set_value (const gchar *argument,
#endif
/* get the data */
- command = g_strdup_printf ("pkexec " LIBEXECDIR "/csd-backlight-helper --%s %i %s",
+ command = g_strdup_printf ("pkexec " "/run/current-system/sw/bin/cinnamon-settings-daemon/csd-backlight-helper --%s %i %s",
argument, value,
manager->priv->backlight_helper_preference_args);
ret = g_spawn_command_line_sync (command,
diff --git a/plugins/power/org.cinnamon.settings-daemon.plugins.power.policy.in b/plugins/power/org.cinnamon.settings-daemon.plugins.power.policy.in
index 504f017..3569e8c 100644
--- a/plugins/power/org.cinnamon.settings-daemon.plugins.power.policy.in
+++ b/plugins/power/org.cinnamon.settings-daemon.plugins.power.policy.in
@@ -25,7 +25,7 @@
<allow_inactive>no</allow_inactive>
<allow_active>yes</allow_active>
</defaults>
- <annotate key="org.freedesktop.policykit.exec.path">@libexecdir@/csd-backlight-helper</annotate>
+ <annotate key="org.freedesktop.policykit.exec.path">/run/current-system/sw/bin/cinnamon-settings-daemon/csd-backlight-helper</annotate>
</action>
</policyconfig>
--
2.30.0

View file

@ -0,0 +1,127 @@
{ fetchFromGitHub
, cinnamon-desktop
, cinnamon-translations
, colord
, glib
, gsettings-desktop-schemas
, gtk3
, lcms2
, libcanberra-gtk3
, libgnomekbd
, libnotify
, libxklavier
, wrapGAppsHook
, pkg-config
, pulseaudio
, lib
, stdenv
, systemd
, upower
, dconf
, cups
, polkit
, librsvg
, libwacom
, xf86_input_wacom
, xorg
, fontconfig
, tzdata
, nss
, libgudev
, meson
, ninja
, dbus
, dbus-glib
}:
stdenv.mkDerivation rec {
pname = "cinnamon-settings-daemon";
version = "5.2.0";
/* csd-power-manager.c:50:10: fatal error: csd-power-proxy.h: No such file or directory
#include "csd-power-proxy.h"
^~~~~~~~~~~~~~~~~~~
compilation terminated. */
# but this occurs only sometimes, so disabling parallel building
# also see https://github.com/linuxmint/cinnamon-settings-daemon/issues/248
enableParallelBuilding = false;
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
hash = "sha256-6omif4UxMrXWxL+R9lQ8ogxotW+3E9Kp99toH3PJtaU=";
};
patches = [
./csd-backlight-helper-fix.patch
./use-sane-install-dir.patch
];
mesonFlags = [ "-Dc_args=-I${glib.dev}/include/gio-unix-2.0" ];
buildInputs = [
cinnamon-desktop
colord
gtk3
glib
gsettings-desktop-schemas
lcms2
libcanberra-gtk3
libgnomekbd
libnotify
libxklavier
pulseaudio
systemd
upower
dconf
cups
polkit
librsvg
libwacom
xf86_input_wacom
xorg.libXext
xorg.libX11
xorg.libXi
xorg.libXtst
xorg.libXfixes
fontconfig
nss
libgudev
dbus
dbus-glib
];
nativeBuildInputs = [
meson
ninja
wrapGAppsHook
pkg-config
];
outputs = [ "out" "dev" ];
postPatch = ''
sed "s|/usr/share/zoneinfo|${tzdata}/share/zoneinfo|g" -i plugins/datetime/system-timezone.h
'';
# use locales from cinnamon-translations (not using --localedir because datadir is used)
postInstall = ''
ln -s ${cinnamon-translations}/share/locale $out/share/locale
'';
# So the polkit policy can reference /run/current-system/sw/bin/cinnamon-settings-daemon/csd-backlight-helper
postFixup = ''
mkdir -p $out/bin/cinnamon-settings-daemon
ln -s $out/libexec/csd-backlight-helper $out/bin/cinnamon-settings-daemon/csd-backlight-helper
'';
meta = with lib; {
homepage = "https://github.com/linuxmint/cinnamon-settings-daemon";
description = "The settings daemon for the Cinnamon desktop";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = teams.cinnamon.members;
};
}

View file

@ -0,0 +1,27 @@
From be57c01e6595a8e08ecc17de298e30640b532f11 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= <mkg20001@gmail.com>
Date: Sat, 6 Feb 2021 13:55:03 +0100
Subject: [PATCH] use sane install-dir
---
meson.build | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meson.build b/meson.build
index 0e11d50..54f4637 100644
--- a/meson.build
+++ b/meson.build
@@ -156,8 +156,8 @@ subdir('cinnamon-settings-daemon')
subdir('plugins')
install_subdir(
- 'files',
- install_dir: '/',
+ 'files/usr',
+ install_dir: get_option('prefix'),
strip_directory: true,
)
--
2.30.0

View file

@ -0,0 +1,33 @@
{ lib
, stdenv
, fetchFromGitHub
, gettext
}:
stdenv.mkDerivation rec {
pname = "cinnamon-translations";
version = "5.2.0";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
hash = "sha256-t3PydmS2+LU++2NcosgMr9KTXW0Qy1Re9+YcS3KMDi8=";
};
nativeBuildInputs = [
gettext
];
installPhase = ''
mv usr $out # files get installed like so: msgfmt -o usr/share/locale/$lang/LC_MESSAGES/$dir.mo $file
'';
meta = with lib; {
homepage = "https://github.com/linuxmint/cinnamon-translations";
description = "Translations files for the Cinnamon desktop";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = teams.cinnamon.members;
};
}

View file

@ -0,0 +1,98 @@
{ dbus-glib
, fetchFromGitHub
, gobject-introspection
, pkg-config
, lib
, stdenv
, wrapGAppsHook
, python3
, cairo
, gnome
, xapps
, keybinder3
, upower
, callPackage
, glib
, libffi
, gtk3
, readline
, spidermonkey_78
, meson
, sysprof
, dbus
, xvfb-run
, ninja
, makeWrapper
, which
, libxml2
, gtk4
}:
stdenv.mkDerivation rec {
pname = "cjs";
version = "5.2.0";
src = fetchFromGitHub {
owner = "linuxmint";
repo = "cjs";
rev = version;
hash = "sha256-06sTk513qVMdznSHJzzB3XIPTcfjgxTB2o+ALqwPpHM=";
};
outputs = [ "out" "dev" ];
nativeBuildInputs = [
meson
ninja
pkg-config
makeWrapper
which # for locale detection
libxml2 # for xml-stripblanks
];
buildInputs = [
gtk4
gobject-introspection
cairo
readline
spidermonkey_78
dbus # for dbus-run-session
];
checkInputs = [
xvfb-run
];
propagatedBuildInputs = [
glib
# bindings
gnome.caribou
keybinder3
upower
xapps
];
mesonFlags = [
"-Dprofiler=disabled"
];
meta = with lib; {
homepage = "https://github.com/linuxmint/cjs";
description = "JavaScript bindings for Cinnamon";
longDescription = ''
This module contains JavaScript bindings based on gobject-introspection.
'';
license = with licenses; [
gpl2Plus
lgpl2Plus
mit
mpl11
];
platforms = platforms.linux;
maintainers = teams.cinnamon.members;
};
}

View file

@ -0,0 +1,38 @@
{ pkgs, lib }:
lib.makeScope pkgs.newScope (self: with self; {
iso-flags-png-320x420 = pkgs.iso-flags.overrideAttrs (p: p // {
buildPhase = "make png-country-320x240-fancy";
# installPhase = "mkdir -p $out/share && mv build/png-country-4x2-fancy/res-320x240 $out/share/iso-flags-png-320x420";
installPhase = "mkdir -p $out/share && mv build/png-country-4x2-fancy/res-320x240 $out/share/iso-flags-png";
});
iso-flags-svg = pkgs.iso-flags.overrideAttrs (p: p // {
buildPhase = "mkdir -p $out/share";
installPhase = "mv svg $out/share/iso-flags-svg";
});
# blueberry -> pkgs/tools/bluetooth/blueberry/default.nix
bulky = callPackage ./bulky { };
cinnamon-common = callPackage ./cinnamon-common { };
cinnamon-control-center = callPackage ./cinnamon-control-center { };
cinnamon-desktop = callPackage ./cinnamon-desktop { };
cinnamon-gsettings-overrides = callPackage ./cinnamon-gsettings-overrides { };
cinnamon-menus = callPackage ./cinnamon-menus { };
cinnamon-translations = callPackage ./cinnamon-translations { };
cinnamon-screensaver = callPackage ./cinnamon-screensaver { };
cinnamon-session = callPackage ./cinnamon-session { };
cinnamon-settings-daemon = callPackage ./cinnamon-settings-daemon { };
cjs = callPackage ./cjs { };
nemo = callPackage ./nemo { };
mint-artwork = callPackage ./mint-artwork { };
mint-themes = callPackage ./mint-themes { };
mint-x-icons = callPackage ./mint-x-icons { };
mint-y-icons = callPackage ./mint-y-icons { };
muffin = callPackage ./muffin { };
pix = callPackage ./pix { };
xapps = callPackage ./xapps { };
warpinator = callPackage ./warpinator { };
xreader = callPackage ./xreader { };
xviewer = callPackage ./xviewer { };
})

View file

@ -0,0 +1,48 @@
{ stdenv
, lib
, fetchurl
, glib
, nixos-artwork
}:
stdenv.mkDerivation rec {
pname = "mint-artwork";
version = "1.5.4";
src = fetchurl {
url = "http://packages.linuxmint.com/pool/main/m/mint-artwork/mint-artwork_${version}.tar.xz";
hash = "sha256-ZRJK1fzIF36BdUlVhLwdFdfgQvN2ashzjgpCxoOIbK8=";
};
nativeBuildInputs = [
glib
];
installPhase = ''
mkdir $out
# note: we fuck up a bunch of stuff but idc
find . -type f -exec sed -i \
-e s,/usr/share/backgrounds/linuxmint/default_background.jpg,${nixos-artwork.wallpapers.simple-dark-gray}/share/artwork/gnome/nix-wallpaper-simple-dark-gray.png,g \
-e s,/usr/share,$out/share,g \
-e s,DMZ-White,Vanilla-DMZ,g \
-e s,DMZ-Black,Vanilla-DMZ-AA,g \
-e s,linuxmint-logo-5,cinnamon-symbolic,g \
-e s,^theme-name=Mint-X$,theme-name=Mint-X-Dark,g \
{} +
# fixup broken symlink
ln -sf ./sele_ring.jpg usr/share/backgrounds/linuxmint/default_background.jpg
mv etc $out/etc
mv usr/share $out/share
'';
meta = with lib; {
homepage = "https://github.com/linuxmint/mint-artwork";
description = "Artwork for the cinnamon desktop";
license = licenses.gpl3; # from debian/copyright
platforms = platforms.linux;
maintainers = teams.cinnamon.members;
};
}

View file

@ -0,0 +1,43 @@
{ fetchFromGitHub
, lib
, stdenv
, python3
, sassc
, sass
}:
stdenv.mkDerivation rec {
pname = "mint-themes";
version = "1.8.8";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
# they don't exactly do tags, it's just a named commit
rev = "a833fba6917043bf410dee4364c9a36af1ce4c83";
hash = "sha256-8abjjD0XoApvqB8SNlWsqIEp7ozgiERGS0kWglw2DWA=";
};
nativeBuildInputs = [
python3
sassc
sass
];
preBuild = ''
patchShebangs .
'';
installPhase = ''
mkdir -p $out
mv usr/share $out
'';
meta = with lib; {
homepage = "https://github.com/linuxmint/mint-themes";
description = "Mint-X and Mint-Y themes for the cinnamon desktop";
license = licenses.gpl3; # from debian/copyright
platforms = platforms.linux;
maintainers = teams.cinnamon.members;
};
}

View file

@ -0,0 +1,58 @@
{ fetchFromGitHub
, lib
, stdenv
, gnome
, gnome-icon-theme
, hicolor-icon-theme
, gtk3
, humanity-icon-theme
, ubuntu-themes
}:
stdenv.mkDerivation rec {
pname = "mint-x-icons";
version = "1.6.3";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
# they don't exactly do tags, it's just a named commit
rev = "286eb4acdfc3e3c77572dfd0cd70ffd4208d3a35";
hash = "sha256-mZkCEBC1O2mW8rM1kpOWdC5CwIeafyBS95cMY6x1yco=";
};
propagatedBuildInputs = [
gnome.adwaita-icon-theme
gnome-icon-theme
hicolor-icon-theme
humanity-icon-theme
ubuntu-themes # provides ubuntu-mono-dark
];
nativeBuildInputs = [
gtk3
];
dontDropIconThemeCache = true;
installPhase = ''
runHook preInstall
mkdir -p $out
mv usr/share $out
for theme in $out/share/icons/*; do
gtk-update-icon-cache $theme
done
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/linuxmint/mint-x-icons";
description = "Mint/metal theme based on mintified versions of Clearlooks Revamp, Elementary and Faenza";
license = licenses.gpl3Plus; # from debian/copyright
platforms = platforms.linux;
maintainers = teams.cinnamon.members;
};
}

View file

@ -0,0 +1,54 @@
{ fetchFromGitHub
, lib
, stdenv
, gnome
, gnome-icon-theme
, hicolor-icon-theme
, gtk3
}:
stdenv.mkDerivation rec {
pname = "mint-y-icons";
version = "1.5.8";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
# they don't exactly do tags, it's just a named commit
rev = "9489bd161e9503d071227dd36057386a34cfc0a3";
hash = "sha256-53yTCWNSJjCpVvrxLfsiaCPNDEZWxJgGVAmVNMNql2M=";
};
propagatedBuildInputs = [
gnome.adwaita-icon-theme
gnome-icon-theme
hicolor-icon-theme
];
nativeBuildInputs = [
gtk3
];
dontDropIconThemeCache = true;
installPhase = ''
runHook preInstall
mkdir -p $out
mv usr/share $out
for theme in $out/share/icons/*; do
gtk-update-icon-cache $theme
done
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/linuxmint/mint-y-icons";
description = "The Mint-Y icon theme";
license = licenses.gpl3; # from debian/copyright
platforms = platforms.linux;
maintainers = teams.cinnamon.members;
};
}

View file

@ -0,0 +1,101 @@
{ fetchFromGitHub
, cinnamon-desktop
, glib
, file
, gnome
, gnome-doc-utils
, fetchpatch
, gobject-introspection
, gtk3
, intltool
, json-glib
, libinput
, libstartup_notification
, libXtst
, libxkbcommon
, pkg-config
, lib
, stdenv
, udev
, xorg
, wrapGAppsHook
, pango
, cairo
, gtk-doc
, docbook_xsl
, docbook_xml_dtd_43
, docbook_xml_dtd_42
, docbook_xml_dtd_412
, autoconf
, automake
, gettext
, libtool
}:
# it's a frankensteins monster with some cinnamon sparkles added on top of it
stdenv.mkDerivation rec {
pname = "muffin";
version = "5.2.0";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
hash = "sha256-WAp0HbfRtwsPjJX1kPBqUStqLaudQPZ8E+h4jmggmw8=";
};
buildInputs = [
gtk3
glib
pango
cairo
json-glib
cinnamon-desktop
xorg.libXcomposite
xorg.libXcursor
xorg.libXdamage
xorg.libXext
xorg.libXfixes
xorg.libXi
xorg.libxkbfile
xorg.xkeyboardconfig
libxkbcommon
gnome.zenity
libinput
libstartup_notification
libXtst
udev
gobject-introspection
];
nativeBuildInputs = [
autoconf
automake
gettext
libtool
wrapGAppsHook
pkg-config
intltool
gnome-doc-utils
gtk-doc
docbook_xsl
docbook_xml_dtd_43
docbook_xml_dtd_42
docbook_xml_dtd_412
];
preConfigure = ''
NOCONFIGURE=1 ./autogen.sh
'';
meta = with lib; {
homepage = "https://github.com/linuxmint/muffin";
description = "The window management library for the Cinnamon desktop (libmuffin) and its sample WM binary (muffin)";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = teams.cinnamon.members;
};
}

View file

@ -0,0 +1,78 @@
{ fetchFromGitHub
, fetchpatch
, glib
, gobject-introspection
, meson
, ninja
, pkg-config
, lib
, stdenv
, wrapGAppsHook
, libxml2
, gtk3
, libnotify
, gvfs
, cinnamon-desktop
, xapps
, libexif
, exempi
, intltool
, shared-mime-info
, cinnamon-translations
, libgsf
}:
stdenv.mkDerivation rec {
pname = "nemo";
version = "5.2.4";
# TODO: add plugins support (see https://github.com/NixOS/nixpkgs/issues/78327)
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
sha256 = "sha256-v63dFiBKtLCmRnwJ6u814lSv+tfPG+IIJtcWCnOEZjk=";
};
outputs = [ "out" "dev" ];
buildInputs = [
glib
gtk3
libnotify
cinnamon-desktop
libxml2
xapps
libexif
exempi
gvfs
gobject-introspection
libgsf
];
nativeBuildInputs = [
meson
pkg-config
ninja
wrapGAppsHook
intltool
shared-mime-info
];
mesonFlags = [
# TODO: https://github.com/NixOS/nixpkgs/issues/36468
"-Dc_args=-I${glib.dev}/include/gio-unix-2.0"
# use locales from cinnamon-translations
"--localedir=${cinnamon-translations}/share/locale"
];
meta = with lib; {
homepage = "https://github.com/linuxmint/nemo";
description = "File browser for Cinnamon";
license = [ licenses.gpl2 licenses.lgpl2 ];
platforms = platforms.linux;
maintainers = teams.cinnamon.members;
};
}

View file

@ -0,0 +1,75 @@
{ stdenv
, lib
, fetchFromGitHub
, autoreconfHook
, cinnamon-desktop
, file
, gdk-pixbuf
, glib
, gobject-introspection
, gtk-doc
, gtk3
, intltool
, itstool
, libtool
, libxml2
, pkg-config
, shared-mime-info
, wrapGAppsHook
, xapps
, yelp-tools
, libsecret
, webkitgtk
, libwebp
, librsvg
, json-glib
, gnome
, clutter
}:
stdenv.mkDerivation rec {
pname = "pix";
version = "2.8.4";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
sha256 = "sha256-yB8nLGvJZOViD+i4IkKN0yCDl5wRCvEbjzPDs7ZRMNA=";
};
nativeBuildInputs = [
wrapGAppsHook
autoreconfHook
cinnamon-desktop
gdk-pixbuf
gnome.gnome-common
gobject-introspection
gtk-doc
intltool
itstool
libtool
pkg-config
yelp-tools
];
buildInputs = [
glib
gtk3
xapps
libsecret
webkitgtk
libwebp
librsvg
json-glib
clutter
];
meta = with lib; {
description = "A generic image viewer from Linux Mint";
homepage = "https://github.com/linuxmint/pix";
license = licenses.gpl2Only;
platforms = platforms.linux;
maintainers = teams.cinnamon.members;
};
}

View file

@ -0,0 +1,82 @@
{ fetchFromGitHub
, lib
, gobject-introspection
, meson
, ninja
, python3
, gtk3
, gdk-pixbuf
, wrapGAppsHook
, gettext
, polkit
, glib
}:
python3.pkgs.buildPythonApplication rec {
pname = "warpinator";
version = "1.2.5";
format = "other";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
hash = "sha256-pTLM4CrkBLEZS9IdM9IBSGH0WPOj1rlAgvWLOUy6MxY=";
};
nativeBuildInputs = [
meson
ninja
gobject-introspection
wrapGAppsHook
gettext
polkit # for its gettext
];
buildInputs = [
glib
gtk3
gdk-pixbuf
];
propagatedBuildInputs = with python3.pkgs; [
grpcio-tools
protobuf
pygobject3
setproctitle
xapp
zeroconf
grpcio
setuptools
cryptography
pynacl
netifaces
];
mesonFlags = [
"-Dbundle-zeroconf=false"
];
postPatch = ''
chmod +x install-scripts/*
patchShebangs .
find . -type f -exec sed -i \
-e s,/usr/libexec/warpinator,$out/libexec/warpinator,g \
{} +
'';
preFixup = ''
# these get loaded via import from bin, so don't need wrapping
chmod -x+X $out/libexec/warpinator/*.py
'';
meta = with lib; {
homepage = "https://github.com/linuxmint/warpinator";
description = "Share files across the LAN";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = teams.cinnamon.members;
};
}

View file

@ -0,0 +1,100 @@
{ fetchFromGitHub
, glib
, gobject-introspection
, gtk3
, libgnomekbd
, gdk-pixbuf
, cairo
, xorg
, meson
, ninja
, pkg-config
, python3
, lib
, stdenv
, vala
, wrapGAppsHook
, inxi
, mate
, dbus
, libdbusmenu-gtk3
}:
stdenv.mkDerivation rec {
pname = "xapps";
version = "2.2.8";
outputs = [ "out" "dev" ];
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
hash = "sha256-70troRGklu5xGjBIrGvshcOX/UT96hIEFXyo4yj2GT4=";
};
# TODO: https://github.com/NixOS/nixpkgs/issues/36468
NIX_CFLAGS_COMPILE = [
"-I${glib.dev}/include/gio-unix-2.0"
];
nativeBuildInputs = [
meson
ninja
pkg-config
python3
vala
wrapGAppsHook
];
buildInputs = [
gobject-introspection
(python3.withPackages (ps: with ps; [
pygobject3
setproctitle # mate applet
]))
libgnomekbd
gdk-pixbuf
xorg.libxkbfile
python3.pkgs.pygobject3 # for .pc file
mate.mate-panel # for gobject-introspection
dbus
libdbusmenu-gtk3
];
# Requires in xapp.pc
propagatedBuildInputs = [
gtk3
cairo
glib
];
mesonFlags = [
"-Dpy-overrides-dir=${placeholder "out"}/${python3.sitePackages}/gi/overrides"
];
postPatch = ''
chmod +x schemas/meson_install_schemas.py # patchShebangs requires executable file
patchShebangs \
libxapp/g-codegen.py \
meson-scripts/g-codegen.py \
schemas/meson_install_schemas.py
# Patch pastebin & inxi location
sed "s|/usr/bin/pastebin|$out/bin/pastebin|" -i scripts/upload-system-info
sed "s|'inxi'|'${inxi}/bin/inxi'|" -i scripts/upload-system-info
# Patch gtk3 module target dir
substituteInPlace libxapp/meson.build \
--replace "gtk3_dep.get_pkgconfig_variable('libdir')" "'$out'"
'';
meta = with lib; {
homepage = "https://github.com/linuxmint/xapps";
description = "Cross-desktop libraries and common resources";
license = licenses.lgpl3;
platforms = platforms.linux;
maintainers = teams.cinnamon.members;
};
}

View file

@ -0,0 +1,76 @@
{ stdenv
, lib
, fetchFromGitHub
, glib
, gobject-introspection
, intltool
, shared-mime-info
, gtk3
, wrapGAppsHook
, libxml2
, xapps
, meson
, pkg-config
, cairo
, libsecret
, poppler
, libspectre
, libgxps
, webkitgtk
, nodePackages
, ninja
, gsettings-desktop-schemas
, djvulibre
, backends ? [ "pdf" "ps" /* "dvi" "t1lib" */ "djvu" "tiff" "pixbuf" "comics" "xps" "epub" ]
}:
stdenv.mkDerivation rec {
pname = "xreader";
version = "3.3.0";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
sha256 = "sha256-wBrP5SHGPvH/Gz9QY253zQuf8WSjV19oNB5aIqXGLZ8=";
};
nativeBuildInputs = [
shared-mime-info
wrapGAppsHook
meson
ninja
pkg-config
gobject-introspection
intltool
];
mesonFlags = [
"-Dmathjax-directory=${nodePackages.mathjax}"
"-Dc_args=-I${glib.dev}/include/gio-unix-2.0"
] ++ (map (x: "-D${x}=true") backends);
buildInputs = [
glib
gtk3
xapps
cairo
libxml2
libsecret
poppler
libspectre
libgxps
webkitgtk
nodePackages.mathjax
djvulibre
];
meta = with lib; {
description = "A document viewer capable of displaying multiple and single page
document formats like PDF and Postscript";
homepage = "https://github.com/linuxmint/xreader";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = teams.cinnamon.members;
};
}

View file

@ -0,0 +1,71 @@
{ stdenv
, lib
, fetchFromGitHub
, autoreconfHook
, cinnamon-desktop
, file
, gdk-pixbuf
, glib
, gobject-introspection
, gtk-doc
, gtk3
, intltool
, itstool
, lcms2
, libexif
, libjpeg
, libpeas
, libtool
, libxml2
, pkg-config
, shared-mime-info
, wrapGAppsHook
, xapps
, yelp-tools
}:
stdenv.mkDerivation rec {
pname = "xviewer";
version = "3.2.4";
src = fetchFromGitHub {
owner = "linuxmint";
repo = pname;
rev = version;
sha256 = "sha256-OyHSBXtJ/TExl06NLUAaIZq4u0+fI3YGQ37HRZeNP+0=";
};
nativeBuildInputs = [
wrapGAppsHook
autoreconfHook
cinnamon-desktop
gdk-pixbuf
gobject-introspection
gtk-doc
intltool
itstool
libtool
pkg-config
yelp-tools
];
buildInputs = [
glib
gtk3
libexif
libjpeg
libpeas
libxml2
shared-mime-info
xapps
lcms2
];
meta = with lib; {
description = "A generic image viewer from Linux Mint";
homepage = "https://github.com/linuxmint/xviewer";
license = licenses.gpl2Only;
platforms = platforms.linux;
maintainers = with maintainers; [ tu-maurice ] ++ teams.cinnamon.members;
};
}

View file

@ -0,0 +1,16 @@
{ callPackage, pkgs }:
{
#### CORE EFL
efl = callPackage ./efl { };
#### WINDOW MANAGER
enlightenment = callPackage ./enlightenment { };
#### APPLICATIONS
econnman = callPackage ./econnman { };
ecrire = callPackage ./ecrire { };
ephoto = callPackage ./ephoto { };
evisum = callPackage ./evisum { };
rage = callPackage ./rage { };
terminology = callPackage ./terminology { };
}

View file

@ -0,0 +1,29 @@
{ lib, stdenv, fetchurl, pkg-config, efl, python3Packages, dbus, makeWrapper }:
stdenv.mkDerivation rec {
pname = "econnman";
version = "1.1";
src = fetchurl {
url = "http://download.enlightenment.org/rel/apps/econnman/${pname}-${version}.tar.gz";
sha256 = "057pwwavlvrrq26bncqnfrf449zzaim0zq717xv86av4n940gwv0";
};
nativeBuildInputs = [ makeWrapper pkg-config python3Packages.wrapPython ];
buildInputs = [ efl python3Packages.python dbus ];
pythonPath = [ python3Packages.pythonefl python3Packages.dbus-python ];
postInstall = ''
wrapPythonPrograms
'';
meta = with lib; {
description = "A user interface for the connman network connection manager";
homepage = "https://enlightenment.org/";
license = licenses.lgpl3;
platforms = platforms.linux;
maintainers = with lib.maintainers; [ matejc tstrobel ftrvxmtrx ] ++ teams.enlightenment.members;
};
}

View file

@ -0,0 +1,36 @@
{ lib
, stdenv
, fetchurl
, meson
, ninja
, pkg-config
, efl
}:
stdenv.mkDerivation rec {
pname = "ecrire";
version = "0.2.0";
src = fetchurl {
url = "http://download.enlightenment.org/rel/apps/${pname}/${pname}-${version}.tar.xz";
sha256 = "1pszk583rzclfqy3dyjh1m9pz1hnr84vqz8vw9kngcnmj23mjr6r";
};
nativeBuildInputs = [
meson
ninja
pkg-config
];
buildInputs = [
efl
];
meta = with lib; {
description = "EFL simple text editor";
homepage = "https://www.enlightenment.org/";
license = licenses.gpl3Only;
platforms = platforms.linux;
maintainers = teams.enlightenment.members;
};
}

View file

@ -0,0 +1,213 @@
{ lib, stdenv
, fetchurl
, meson
, ninja
, pkg-config
, SDL2
, alsa-lib
, bullet
, check
, curl
, dbus
, doxygen
, expat
, fontconfig
, freetype
, fribidi
, ghostscript
, giflib
, glib
, gst_all_1
, gtk3
, harfbuzz
, hicolor-icon-theme
, ibus
, jbig2dec
, libGL
, libdrm
, libinput
, libjpeg
, libpng
, libpulseaudio
, libraw
, librsvg
, libsndfile
, libspectre
, libtiff
, libwebp
, libxkbcommon
, luajit
, lz4
, mesa
, mint-x-icons
, openjpeg
, openssl
, poppler
, python3Packages
, systemd
, udev
, util-linux
, wayland
, wayland-protocols
, writeText
, xorg
, zlib
}:
stdenv.mkDerivation rec {
pname = "efl";
version = "1.26.2";
src = fetchurl {
url = "http://download.enlightenment.org/rel/libs/${pname}/${pname}-${version}.tar.xz";
sha256 = "071h0pscbd8g341yy5rz9mk1xn8yhryldhl6mmr1y6lafaycyy99";
};
nativeBuildInputs = [
meson
ninja
gtk3
pkg-config
check
];
buildInputs = [
fontconfig
freetype
giflib
glib
gst_all_1.gst-libav
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gst_all_1.gstreamer
ibus
libGL
libpng
libpulseaudio
libsndfile
libtiff
lz4
mesa
openssl
systemd
udev
wayland-protocols
xorg.libX11
xorg.libXcursor
xorg.xorgproto
zlib
# still missing parent icon themes: RAVE-X, Faenza
];
propagatedBuildInputs = [
SDL2
alsa-lib
bullet
curl
dbus
dbus
doxygen
expat
fribidi
ghostscript
harfbuzz
hicolor-icon-theme # for the icon theme
jbig2dec
libdrm
libinput
libjpeg
libraw
librsvg
libspectre
libwebp
libxkbcommon
luajit
mint-x-icons # Mint-X is a parent icon theme of Enlightenment-X
openjpeg
poppler
util-linux
wayland
xorg.libXScrnSaver
xorg.libXcomposite
xorg.libXdamage
xorg.libXext
xorg.libXfixes
xorg.libXi
xorg.libXinerama
xorg.libXrandr
xorg.libXrender
xorg.libXtst
xorg.libxcb
];
dontDropIconThemeCache = true;
mesonFlags = [
"--buildtype=release"
"-D build-tests=false" # disable build tests, which are not working
"-D ecore-imf-loaders-disabler=ibus,scim" # ibus is disabled by default, scim is not availabe in nixpkgs
"-D embedded-lz4=false"
"-D fb=true"
"-D network-backend=connman"
"-D sdl=true"
"-D elua=true"
"-D bindings=lua,cxx"
# for wayland client support
"-D wl=true"
"-D drm=true"
];
patches = [
./efl-elua.patch
];
postPatch = ''
patchShebangs src/lib/elementary/config_embed
# fix destination of systemd unit and dbus service
substituteInPlace systemd-services/meson.build --replace "sys_dep.get_pkgconfig_variable('systemduserunitdir')" "'$out/systemd/user'"
substituteInPlace dbus-services/meson.build --replace "dep.get_pkgconfig_variable('session_bus_services_dir')" "'$out/share/dbus-1/services'"
'';
# bin/edje_cc creates $HOME/.run, which would break build of reverse dependencies.
setupHook = writeText "setupHook.sh" ''
export HOME="$TEMPDIR"
'';
preConfigure = ''
# allow ecore_con to find libcurl.so, which is a runtime dependency (it is dlopened)
export LD_LIBRARY_PATH="${curl.out}/lib''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
source "$setupHook"
'';
postInstall = ''
# fix use of $out variable
substituteInPlace "$out/share/elua/core/util.lua" --replace '$out' "$out"
rm "$out/share/elua/core/util.lua.orig"
# add all module include dirs to the Cflags field in efl.pc
modules=$(for i in "$out/include/"*/; do printf ' -I''${includedir}/'`basename $i`; done)
substituteInPlace "$out/lib/pkgconfig/efl.pc" \
--replace 'Cflags: -I''${includedir}/efl-1' \
'Cflags: -I''${includedir}/eina-1/eina'"$modules"
# build icon cache
gtk-update-icon-cache "$out"/share/icons/Enlightenment-X
'';
postFixup = ''
# Some libraries are linked at runtime by hand in code (they are dlopened)
patchelf --add-needed ${curl.out}/lib/libcurl.so $out/lib/libecore_con.so
patchelf --add-needed ${libpulseaudio}/lib/libpulse.so $out/lib/libecore_audio.so
patchelf --add-needed ${libsndfile.out}/lib/libsndfile.so $out/lib/libecore_audio.so
'';
meta = with lib; {
description = "Enlightenment foundation libraries";
homepage = "https://enlightenment.org/";
license = with licenses; [ bsd2 lgpl2Only licenses.zlib ];
platforms = platforms.linux;
maintainers = with maintainers; [ matejc tstrobel ftrvxmtrx ] ++ teams.enlightenment.members;
};
}

View file

@ -0,0 +1,14 @@
--- ./src/scripts/elua/core/util.lua.old 2015-05-17 11:59:57.307743243 +0200
+++ ./src/scripts/elua/core/util.lua 2015-05-17 12:39:11.906797377 +0200
@@ -159,7 +159,10 @@
local ev = os.getenv("ELUA_" .. libname:upper() .. "_LIBRARY_PATH")
local succ, v = load_lib(libname, ev)
if not succ then
- error(v, 2)
+ succ, v = load_lib(libname, "$out/lib")
+ if not succ then
+ error(v, 2)
+ end
end
lib = v
loaded_libs[libname] = lib

View file

@ -0,0 +1,115 @@
From 2c563889fcad37df4ee4251bf0a63316d8b7b612 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
Date: Thu, 14 May 2020 16:36:34 -0300
Subject: [PATCH] wrapped setuid executables
Installing programs with root ownership and setuid/setgid permissions
in /nix/store is not allowed. They should be wrapped in the
enlightenment service module, and the wrapped ones should be used
instead.
---
meson/meson_inst.sh | 4 ++--
src/bin/e_auth.c | 6 ++----
src/bin/e_fm/e_fm_main_eeze.c | 6 +++---
src/bin/e_start_main.c | 3 +--
src/bin/e_system.c | 2 +-
5 files changed, 9 insertions(+), 12 deletions(-)
diff --git a/meson/meson_inst.sh b/meson/meson_inst.sh
index 321143e40..cd2399306 100755
--- a/meson/meson_inst.sh
+++ b/meson/meson_inst.sh
@@ -1,6 +1,6 @@
#!/bin/sh
for x in "$@" ; do
- chown root "$DESTDIR/$x"
- chmod a=rx,u+xs "$DESTDIR/$x"
+ echo TODO: chown root "$DESTDIR/$x"
+ echo TODO: chmod a=rx,u+xs "$DESTDIR/$x"
done
diff --git a/src/bin/e_auth.c b/src/bin/e_auth.c
index 6d07a0ac3..d519f0649 100644
--- a/src/bin/e_auth.c
+++ b/src/bin/e_auth.c
@@ -38,8 +38,7 @@ e_auth_begin(char *passwd)
pwlen = strlen(passwd);
snprintf(buf, sizeof(buf),
- "%s/enlightenment/utils/enlightenment_ckpasswd pw",
- e_prefix_lib_get());
+ "/run/wrappers/bin/enlightenment_ckpasswd pw");
exe = ecore_exe_pipe_run(buf, ECORE_EXE_PIPE_WRITE, NULL);
if (!exe) goto out;
snprintf(buf, sizeof(buf), "pw %s", passwd);
@@ -75,8 +74,7 @@ e_auth_polkit_begin(char *passwd, const char *cookie, unsigned int uid)
pwlen = strlen(passwd);
snprintf(buf, sizeof(buf),
- "%s/enlightenment/utils/enlightenment_ckpasswd pk",
- e_prefix_lib_get());
+ "/run/wrappers/bin/enlightenment_ckpasswd pk");
exe = ecore_exe_pipe_run(buf, ECORE_EXE_PIPE_WRITE, NULL);
if (!exe) goto out;
snprintf(buf, sizeof(buf), "%s %u %s", cookie, uid, passwd);
diff --git a/src/bin/e_fm/e_fm_main_eeze.c b/src/bin/e_fm/e_fm_main_eeze.c
index 9b10b3117..0f0aa5b53 100644
--- a/src/bin/e_fm/e_fm_main_eeze.c
+++ b/src/bin/e_fm/e_fm_main_eeze.c
@@ -318,7 +318,7 @@ _e_fm_main_eeze_volume_eject(E_Volume *v)
{
char buf[PATH_MAX];
- snprintf(buf, sizeof(buf), "%s/enlightenment/utils/enlightenment_sys", eina_prefix_lib_get(pfx));
+ snprintf(buf, sizeof(buf), "/run/wrappers/bin/enlightenment_sys");
eeze_disk_mount_wrapper_set(v->disk, buf);
}
v->guard = ecore_timer_loop_add(E_FM_EJECT_TIMEOUT, (Ecore_Task_Cb)_e_fm_main_eeze_vol_eject_timeout, v);
@@ -512,7 +512,7 @@ _e_fm_main_eeze_volume_unmount(E_Volume *v)
{
char buf[PATH_MAX];
- snprintf(buf, sizeof(buf), "%s/enlightenment/utils/enlightenment_sys", eina_prefix_lib_get(pfx));
+ snprintf(buf, sizeof(buf), "/run/wrappers/bin/enlightenment_sys");
eeze_disk_mount_wrapper_set(v->disk, buf);
}
v->guard = ecore_timer_loop_add(E_FM_UNMOUNT_TIMEOUT, (Ecore_Task_Cb)_e_fm_main_eeze_vol_unmount_timeout, v);
@@ -548,7 +548,7 @@ _e_fm_main_eeze_volume_mount(E_Volume *v)
{
char buf2[PATH_MAX];
- snprintf(buf2, sizeof(buf2), "%s/enlightenment/utils/enlightenment_sys", eina_prefix_lib_get(pfx));
+ snprintf(buf2, sizeof(buf2), "/run/wrappers/bin/enlightenment_sys");
eeze_disk_mount_wrapper_set(v->disk, buf2);
}
v->guard = ecore_timer_loop_add(E_FM_MOUNT_TIMEOUT, (Ecore_Task_Cb)_e_fm_main_eeze_vol_mount_timeout, v);
diff --git a/src/bin/e_start_main.c b/src/bin/e_start_main.c
index 722063339..ee85aa9f1 100644
--- a/src/bin/e_start_main.c
+++ b/src/bin/e_start_main.c
@@ -596,8 +596,7 @@ main(int argc, char **argv)
eina_prefix_data_get(pfx));
putenv(buf2);
myasprintf(&buf3,
- "E_ALERT_SYSTEM_BIN=%s/enlightenment/utils/enlightenment_system",
- eina_prefix_lib_get(pfx));
+ "E_ALERT_SYSTEM_BIN=/run/wrappers/bin/enlightenment_system");
putenv(buf3);
home = getenv("HOME");
diff --git a/src/bin/e_system.c b/src/bin/e_system.c
index bfd43e7e2..6bf48e31f 100644
--- a/src/bin/e_system.c
+++ b/src/bin/e_system.c
@@ -133,7 +133,7 @@ _system_spawn(void)
else _respawn_count = 0;
if (_respawn_count > 5) return;
snprintf(buf, sizeof(buf),
- "%s/enlightenment/utils/enlightenment_system", e_prefix_lib_get());
+ "/run/wrappers/bin/enlightenment_system");
_system_exe = ecore_exe_pipe_run
(buf, ECORE_EXE_NOT_LEADER | ECORE_EXE_TERM_WITH_PARENT |
ECORE_EXE_PIPE_READ | ECORE_EXE_PIPE_WRITE, NULL);
--
2.34.0

View file

@ -0,0 +1,25 @@
From b7ef2a0d3f31db55a12b2b8c2e1c60ba62b971c8 Mon Sep 17 00:00:00 2001
From: Matt Bagnara <mbagnara@fastmail.com>
Date: Wed, 1 Jul 2020 15:30:40 -0500
Subject: [PATCH] add nixos path
---
src/bin/e_util_suid.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/bin/e_util_suid.h b/src/bin/e_util_suid.h
index b01ff792b..88c2a0f17 100644
--- a/src/bin/e_util_suid.h
+++ b/src/bin/e_util_suid.h
@@ -246,7 +246,7 @@ e_setuid_setup(uid_t *caller_uid, gid_t *caller_gid, char **caller_user, char **
# endif
#endif
// pass 3 - set path and ifs to minimal defaults
- putenv("PATH=/bin:/usr/bin:/sbin:/usr/sbin");
+ putenv("PATH=/bin:/usr/bin:/sbin:/usr/sbin:/run/current-system/sw/bin");
putenv("IFS= \t\n");
return 0;
}
--
2.27.0

View file

@ -0,0 +1,80 @@
{ lib, stdenv
, fetchurl
, meson
, ninja
, pkg-config
, gettext
, alsa-lib
, acpid
, bc
, ddcutil
, efl
, libexif
, pam
, xkeyboard_config
, udisks2
, waylandSupport ? false, wayland-protocols, xwayland
, bluetoothSupport ? true, bluez5
, pulseSupport ? !stdenv.isDarwin, libpulseaudio
}:
stdenv.mkDerivation rec {
pname = "enlightenment";
version = "0.25.3";
src = fetchurl {
url = "http://download.enlightenment.org/rel/apps/${pname}/${pname}-${version}.tar.xz";
sha256 = "1xngwixp0cckfq3jhrdmmk6zj67125amr7g6xwc6l89pnpmlkz9p";
};
nativeBuildInputs = [
gettext
meson
ninja
pkg-config
];
buildInputs = [
alsa-lib
acpid # for systems with ACPI for lid events, AC/Battery plug in/out etc
bc # for the Everything module calculator mode
ddcutil # specifically libddcutil.so.2 for backlight control
efl
libexif
pam
xkeyboard_config
udisks2 # for removable storage mounting/unmounting
]
++ lib.optional bluetoothSupport bluez5 # for bluetooth configuration and control
++ lib.optional pulseSupport libpulseaudio # for proper audio device control and redirection
++ lib.optionals waylandSupport [ wayland-protocols xwayland ]
;
patches = [
# Executables cannot be made setuid in nix store. They should be
# wrapped in the enlightenment service module, and the wrapped
# executables should be used instead.
./0001-wrapped-setuid-executables.patch
./0003-setuid-missing-path.patch
];
postPatch = ''
substituteInPlace src/modules/everything/evry_plug_calc.c \
--replace "ecore_exe_pipe_run(\"bc -l\"" "ecore_exe_pipe_run(\"${bc}/bin/bc -l\""
'';
mesonFlags = [
"-D systemdunitdir=lib/systemd/user"
] ++ lib.optional waylandSupport "-Dwl=true";
passthru.providedSessions = [ "enlightenment" ];
meta = with lib; {
description = "The Compositing Window Manager and Desktop Shell";
homepage = "https://www.enlightenment.org";
license = licenses.bsd2;
platforms = platforms.linux;
maintainers = with maintainers; [ matejc tstrobel ftrvxmtrx ] ++ teams.enlightenment.members;
};
}

View file

@ -0,0 +1,36 @@
{ lib
, stdenv
, fetchurl
, meson
, ninja
, pkg-config
, efl
}:
stdenv.mkDerivation rec {
pname = "ephoto";
version = "1.6.0";
src = fetchurl {
url = "http://download.enlightenment.org/rel/apps/${pname}/${pname}-${version}.tar.xz";
sha256 = "1lvhcs4ba8h3z78nyycbww8mj4cscb8k200dcc3cdy8vrvrp7g1n";
};
nativeBuildInputs = [
meson
ninja
pkg-config
];
buildInputs = [
efl
];
meta = with lib; {
description = "Image viewer and editor written using the Enlightenment Foundation Libraries";
homepage = "https://www.smhouston.us/ephoto/";
license = licenses.bsd2;
platforms = platforms.linux;
maintainers = teams.enlightenment.members;
};
}

View file

@ -0,0 +1,36 @@
{ lib
, stdenv
, fetchurl
, meson
, ninja
, pkg-config
, efl
}:
stdenv.mkDerivation rec {
pname = "evisum";
version = "0.6.0";
src = fetchurl {
url = "https://download.enlightenment.org/rel/apps/${pname}/${pname}-${version}.tar.xz";
sha256 = "1ip3rmp0hcn0pk6lv089cayx18p1b2wycgvwpnf7ghbdxg7n4q15";
};
nativeBuildInputs = [
meson
ninja
pkg-config
];
buildInputs = [
efl
];
meta = with lib; {
description = "System and process monitor written with EFL";
homepage = "https://www.enlightenment.org";
license = with licenses; [ isc ];
platforms = platforms.linux;
maintainers = teams.enlightenment.members;
};
}

View file

@ -0,0 +1,44 @@
{ lib
, stdenv
, fetchurl
, meson
, ninja
, pkg-config
, efl
, gst_all_1
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
pname = "rage";
version = "0.4.0";
src = fetchurl {
url = "http://download.enlightenment.org/rel/apps/${pname}/${pname}-${version}.tar.xz";
sha256 = "03yal7ajh57x2jhmygc6msf3gzvqkpmzkqzj6dnam5sim8cq9rbw";
};
nativeBuildInputs = [
meson
ninja
pkg-config
wrapGAppsHook
];
buildInputs = [
efl
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gst_all_1.gst-plugins-bad
gst_all_1.gst-libav
];
meta = with lib; {
description = "Video and audio player along the lines of mplayer";
homepage = "https://enlightenment.org/";
license = licenses.bsd2;
platforms = platforms.linux;
maintainers = with maintainers; [ matejc ftrvxmtrx ] ++ teams.enlightenment.members;
};
}

View file

@ -0,0 +1,36 @@
{ lib, stdenv, fetchurl, meson, ninja, pkg-config, python3, efl, nixosTests }:
stdenv.mkDerivation rec {
pname = "terminology";
version = "1.12.1";
src = fetchurl {
url = "https://download.enlightenment.org/rel/apps/${pname}/${pname}-${version}.tar.xz";
sha256 = "1aasddf2343qj798b5s8qwif3lxj4pyjax6fa9sfi6if9icdkkpq";
};
nativeBuildInputs = [
meson
ninja
pkg-config
python3
];
buildInputs = [
efl
];
postPatch = ''
patchShebangs data/colorschemes/*.py
'';
passthru.tests.test = nixosTests.terminal-emulators.terminology;
meta = with lib; {
description = "Powerful terminal emulator based on EFL";
homepage = "https://www.enlightenment.org/about-terminology";
license = licenses.bsd2;
platforms = platforms.linux;
maintainers = with maintainers; [ matejc tstrobel ftrvxmtrx ] ++ teams.enlightenment.members;
};
}

View file

@ -0,0 +1,32 @@
{ lib, stdenv, fetchurl, gnome_python, librsvg, libwnck2, libgtop, pkg-config, python2, gtk2 }:
let
inherit (python2.pkgs) python pygtk;
in stdenv.mkDerivation rec {
ver_maj = "2.32";
ver_min = "0";
version = "${ver_maj}.${ver_min}";
pname = "gnome-python-desktop";
src = fetchurl {
url = "mirror://gnome/sources/gnome-python-desktop/${ver_maj}/gnome-python-desktop-${version}.tar.bz2";
sha256 = "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ gtk2 librsvg libwnck2 libgtop python ];
propagatedBuildInputs = [ gnome_python pygtk ];
# gnome-python-desktop expects that .pth file is already installed by PyGTK
# in the same directory. This is not the case for Nix.
postInstall = ''
echo "gtk-2.0" > $out/${python2.sitePackages}/${pname}-${version}.pth
'';
meta = with lib; {
homepage = "http://www.pygtk.org";
description = "Python bindings for GNOME desktop packages";
license = licenses.lgpl21;
maintainers = [ maintainers.goibhniu ];
};
}

View file

@ -0,0 +1,33 @@
{ lib, stdenv, fetchurl, python2, pkg-config, libgnome, GConf, glib, gtk2, gnome_vfs }:
with lib;
let
inherit (python2.pkgs) python pygobject2 pygtk dbus-python;
in stdenv.mkDerivation rec {
pname = "gnome-python";
version = "2.28.1";
src = fetchurl {
url = "mirror://gnome/sources/gnome-python/${lib.versions.majorMinor version}/gnome-python-${version}.tar.bz2";
sha256 = "759ce9344cbf89cf7f8449d945822a0c9f317a494f56787782a901e4119b96d8";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ python glib gtk2 GConf libgnome gnome_vfs ];
propagatedBuildInputs = [ pygobject2 pygtk dbus-python ];
# gnome-python expects that .pth file is already installed by PyGTK in the
# same directory. This is not the case for Nix.
postInstall = ''
echo "gtk-2.0" > $out/${python2.sitePackages}/gnome-python-${version}.pth
'';
meta = with lib; {
homepage = "http://pygtk.org/";
description = "Python wrapper for GNOME libraries";
platforms = platforms.linux;
license = licenses.lgpl2;
maintainers = with maintainers; [ qknight ];
};
}

View file

@ -0,0 +1,89 @@
{ config, stdenv, pkgs, lib }:
lib.makeScope pkgs.newScope (self: with self; {
#### PLATFORM
libIDL = callPackage ./platform/libIDL {
gettext = if stdenv.isDarwin then pkgs.gettext else null;
};
ORBit2 = callPackage ./platform/ORBit2 { };
libart_lgpl = callPackage ./platform/libart_lgpl { };
libglade = callPackage ./platform/libglade { };
libgnomeprint = callPackage ./platform/libgnomeprint { };
libgnomeprintui = callPackage ./platform/libgnomeprintui { };
libgnomecups = callPackage ./platform/libgnomecups { };
libgtkhtml = callPackage ./platform/libgtkhtml { };
GConf = callPackage ./platform/GConf { };
libgnomecanvas = callPackage ./platform/libgnomecanvas { };
libgnomecanvasmm = callPackage ./platform/libgnomecanvasmm { };
# for git-head builds
gnome-common = callPackage platform/gnome-common { };
gnome_mime_data = callPackage ./platform/gnome-mime-data { };
gnome_python = callPackage ./bindings/gnome-python { };
gnome_python_desktop = callPackage ./bindings/gnome-python-desktop { };
gnome_vfs = callPackage ./platform/gnome-vfs { };
libgnome = callPackage ./platform/libgnome { };
libgnomeui = callPackage ./platform/libgnomeui { };
libbonobo = callPackage ./platform/libbonobo { };
libbonoboui = callPackage ./platform/libbonoboui { };
gtkhtml = callPackage ./platform/gtkhtml { enchant = pkgs.enchant1; };
gtkhtml4 = callPackage ./platform/gtkhtml/4.x.nix { enchant = pkgs.enchant2; };
gtkglext = callPackage ./platform/gtkglext { };
#### DESKTOP
# Removed from recent GNOME releases, but still required
scrollkeeper = callPackage ./desktop/scrollkeeper { };
gtksourceview = callPackage ./desktop/gtksourceview {
autoreconfHook = pkgs.autoreconfHook269;
};
} // lib.optionalAttrs config.allowAliases {
inherit (pkgs)
# GTK Libs
glib glibmm atk atkmm cairo pango pangomm gdk_pixbuf gtkmm2 libcanberra-gtk2
# Included for backwards compatibility
libsoup libwnck2 gtk-doc gnome-doc-utils rarian
gvfs # added 2019-09-03
;
gtk = pkgs.gtk2;
gtkmm = pkgs.gtkmm2;
python_rsvg = self.gnome_python_desktop;
gtkdoc = pkgs.gtk-doc;
startup_notification = pkgs.libstartup_notification;
startupnotification = pkgs.libstartup_notification;
gnomedocutils = pkgs.gnome-doc-utils;
gnome-icon-theme = pkgs.gnome-icon-theme;
gnome_icon_theme = self.gnome-icon-theme;
gnomeicontheme = self.gnome-icon-theme;
gnome_common = gnome-common;
libglademm = throw "libglademm has been removed"; # 2022-01-15
})

View file

@ -0,0 +1,43 @@
{lib, stdenv, fetchpatch, fetchurl, autoreconfHook, pkg-config, atk, cairo, glib
, gnome-common, gtk2, pango
, libxml2Python, perl, intltool, gettext, gtk-mac-integration-gtk2 }:
with lib;
stdenv.mkDerivation rec {
pname = "gtksourceview";
version = "2.10.5";
src = fetchurl {
url = "mirror://gnome/sources/gtksourceview/2.10/${pname}-${version}.tar.bz2";
sha256 = "c585773743b1df8a04b1be7f7d90eecdf22681490d6810be54c81a7ae152191e";
};
patches = optionals stdenv.isDarwin [
(fetchpatch {
name = "change-igemacintegration-to-gtkosxapplication.patch";
url = "https://gitlab.gnome.org/GNOME/gtksourceview/commit/e88357c5f210a8796104505c090fb6a04c213902.patch";
sha256 = "0h5q79q9dqbg46zcyay71xn1pm4aji925gjd5j93v4wqn41wj5m7";
})
(fetchpatch {
name = "update-to-gtk-mac-integration-2.0-api.patch";
url = "https://gitlab.gnome.org/GNOME/gtksourceview/commit/ab46e552e1d0dae73f72adac8d578e40bdadaf95.patch";
sha256 = "0qzrbv4hpa0v8qbmpi2vp575n13lkrvp3cgllwrd2pslw1v9q3aj";
})
];
nativeBuildInputs = [ pkg-config ];
buildInputs = [
atk cairo glib gtk2
pango libxml2Python perl intltool
gettext
] ++ optionals stdenv.isDarwin [
autoreconfHook gnome-common gtk-mac-integration-gtk2
];
preConfigure = optionalString stdenv.isDarwin ''
intltoolize --force
'';
doCheck = false; # requires X11 daemon
}

View file

@ -0,0 +1,10 @@
--- jbsrc/jb.c.orig 2014-01-19 20:06:48.525462981 +0100
+++ jbsrc/jb.c 2014-01-19 20:07:36.087934897 +0100
@@ -425,7 +425,6 @@
*/
jb_compile_options_add_cflags(object->compile_options, "-std=c99");
jb_compile_options_add_cppflags(object->compile_options, "-D_BSD_SOURCE -D_POSIX_C_SOURCE=199309L");
- jb_compile_options_add_libs(object->compile_options, "-lbsd-compat");
}
jb_compile_options_add_string_defines(object->compile_options,

View file

@ -0,0 +1,22 @@
{ lib, stdenv, fetchurl, pkg-config, perlPackages, libxml2, libxslt, docbook_xml_dtd_42, automake, gettext }:
stdenv.mkDerivation rec {
pname = "scrollkeeper";
version = "0.3.14";
src = fetchurl {
url = "mirror://gnome/sources/scrollkeeper/${lib.versions.majorMinor version}/scrollkeeper-${version}.tar.bz2";
sha256 = "08n1xgj1f53zahwm0wpn3jid3rfbhi3iwby0ilaaldnid5qriqgc";
};
# The fuloong2f is not supported by scrollkeeper-0.3.14 config.guess
preConfigure = "
substituteInPlace extract/dtds/Makefile.am --replace /usr/bin/xmlcatalog xmlcatalog
cp ${automake}/share/automake*/config.{sub,guess} .
";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ libxml2 libxslt gettext ]
++ (with perlPackages; [ perl XMLParser ]);
configureFlags = [ "--with-xml-catalog=${docbook_xml_dtd_42}/xml/dtd/docbook/catalog.xml" ];
}

View file

@ -0,0 +1,36 @@
{ lib, stdenv, fetchurl, pkg-config, dbus-glib, glib, ORBit2, libxml2, polkit, python3, intltool }:
stdenv.mkDerivation rec {
pname = "gconf";
version = "3.2.6";
src = fetchurl {
url = "mirror://gnome/sources/GConf/${lib.versions.majorMinor version}/GConf-${version}.tar.xz";
sha256 = "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr";
};
outputs = [ "out" "dev" "man" ];
buildInputs = [ ORBit2 libxml2 python3 ]
# polkit requires pam, which requires shadow.h, which is not available on
# darwin
++ lib.optional (!stdenv.isDarwin) polkit;
propagatedBuildInputs = [ glib dbus-glib ];
nativeBuildInputs = [ pkg-config intltool ];
configureFlags =
# fixes the "libgconfbackend-oldxml.so is not portable" error on darwin
lib.optional stdenv.isDarwin [ "--enable-static" ];
postPatch = ''
2to3 --write --nobackup gsettings/gsettings-schema-convert
'';
meta = with lib; {
homepage = "https://projects.gnome.org/gconf/";
description = "Deprecated system for storing application preferences";
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,51 @@
{ lib, stdenv, fetchurl, pkg-config, glib, libIDL, libintl }:
stdenv.mkDerivation rec {
pname = "ORBit2";
version = "2.14.19";
src = fetchurl {
url = "mirror://gnome/sources/ORBit2/${lib.versions.majorMinor version}/ORBit2-${version}.tar.bz2";
sha256 = "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam";
};
nativeBuildInputs = [ pkg-config libintl ];
propagatedBuildInputs = [ glib libIDL ];
outputs = [ "out" "dev" ];
preBuild = ''
sed 's/-DG_DISABLE_DEPRECATED//' -i linc2/src/Makefile
'';
preFixup = ''
moveToOutput "bin/orbit2-config" "$dev"
'';
# Parallel build fails due to missing internal library dependency:
# libtool --tag=CC --mode=link gcc ... -o orbit-name-server-2 ...
# ld: cannot find libname-server-2.a: No such file or directory
# It happens because orbit-name-server-2 should have libname-server-2.a
# in _DEPENDENCIES but does not. Instead of fixing it and regenerating
# Makefile.in let's just disable parallel build.
enableParallelBuilding = false;
meta = with lib; {
homepage = "https://developer-old.gnome.org/ORBit2/";
description = "A CORBA 2.4-compliant Object Request Broker";
platforms = platforms.unix;
maintainers = with maintainers; [ lovek323 ];
longDescription = ''
ORBit2 is a CORBA 2.4-compliant Object Request Broker (ORB) featuring
mature C, C++ and Python bindings. Bindings (in various degrees of
completeness) are also available for Perl, Lisp, Pascal, Ruby, and TCL;
others are in-progress. It supports POA, DII, DSI, TypeCode, Any, IR and
IIOP. Optional features including INS and threading are available. ORBit2
is engineered for the desktop workstation environment, with a focus on
performance, low resource usage, and security. The core ORB is written in
C, and runs under Linux, UNIX (BSD, Solaris, HP-UX, ...), and Windows.
ORBit2 is developed and released as open source software under GPL/LGPL.
'';
};
}

View file

@ -0,0 +1,19 @@
{ lib, stdenv, fetchurl, which }:
stdenv.mkDerivation rec {
pname = "gnome-common";
version = "2.34.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-common/${lib.versions.majorMinor version}/gnome-common-${version}.tar.bz2";
sha256 = "1pz13mpp09q5s3bikm8ml92s1g0scihsm4iipqv1ql3mp6d4z73s";
};
propagatedBuildInputs = [ which ]; # autogen.sh which is using gnome-common tends to require which
patches = [(fetchurl {
name = "gnome-common-patch";
url = "https://bug697543.bugzilla-attachments.gnome.org/attachment.cgi?id=240935";
sha256 = "17abp7czfzirjm7qsn2czd03hdv9kbyhk3lkjxg2xsf5fky7z7jl";
})];
}

View file

@ -0,0 +1,11 @@
{ lib, stdenv, fetchurl, intltool }:
stdenv.mkDerivation rec {
pname = "gnome-mime-data";
version = "2.18.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-mime-data/${lib.versions.majorMinor version}/gnome-mime-data-${version}.tar.bz2";
sha256 = "1mvg8glb2a40yilmyabmb7fkbzlqd3i3d31kbkabqnq86xdnn69p";
};
nativeBuildInputs = [ intltool ];
}

View file

@ -0,0 +1,38 @@
{ lib, stdenv, fetchurl, fetchpatch, pkg-config, libxml2, bzip2, openssl, dbus-glib
, glib, gamin, cdparanoia, intltool, GConf, gnome_mime_data, avahi, acl }:
stdenv.mkDerivation rec {
pname = "gnome-vfs";
version = "2.24.4";
src = fetchurl {
url = "mirror://gnome/sources/gnome-vfs/${lib.versions.majorMinor version}/gnome-vfs-${version}.tar.bz2";
sha256 = "1ajg8jb8k3snxc7rrgczlh8daxkjidmcv3zr9w809sq4p2sn9pk2";
};
outputs = [ "out" "dev" ];
nativeBuildInputs = [ intltool pkg-config ];
buildInputs =
[ libxml2 bzip2 openssl dbus-glib gamin cdparanoia
gnome_mime_data avahi acl
];
propagatedBuildInputs = [ GConf glib ];
# struct SSL is opaque in openssl-1.1; and the SSL_free() man page
# says that one should not free members of it manually (in both
# the openssl-1.0 and openssl-1.1 man pages).
# https://bugs.gentoo.org/592540
patches = [ (fetchpatch {
name = "gnome-vfs-2.24.4-openssl-1.1.patch";
url = "https://bugs.gentoo.org/attachment.cgi?id=535944";
sha256 = "1q4icapvmwmd5rjah7rr0bqazzk5cg36znmjlpra20n9y27nz040";
extraPrefix = "";
})
];
postPatch = "find . -name Makefile.in | xargs sed 's/-DG_DISABLE_DEPRECATED//g' -i ";
doCheck = false; # needs dbus daemon
}

View file

@ -0,0 +1,69 @@
{ lib, stdenv
, fetchFromGitLab
, pkg-config
, gtk-doc
, autoconf
, automake
, which
, libtool
, gobject-introspection
, glib
, gtk2
, libGLU
, libGL
, pango
, xorg
}:
stdenv.mkDerivation rec {
pname = "gtkglext";
version = "unstable-2019-12-19";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "Archive";
repo = pname;
# build fixes
# https://gitlab.gnome.org/Archive/gtkglext/merge_requests/1
rev = "ad95fbab68398f81d7a5c895276903b0695887e2";
sha256 = "1d1bp4635nla7d07ci40c7w4drkagdqk8wg93hywvdipmjfb4yqb";
};
nativeBuildInputs = [
pkg-config
gtk-doc
autoconf
automake
which
libtool
gobject-introspection
];
buildInputs = [
glib
gtk2
libGLU
libGL
pango
xorg.libX11
xorg.libXmu
];
preConfigure = ''
NOCONFIGURE=1 ./autogen.sh
'';
meta = with lib; {
homepage = "https://projects.gnome.org/gtkglext/";
description = "GtkGLExt, an OpenGL extension to GTK";
longDescription = ''
GtkGLExt is an OpenGL extension to GTK. It provides additional GDK
objects which support OpenGL rendering in GTK and GtkWidget API
add-ons to make GTK widgets OpenGL-capable. In contrast to Janne
Löf's GtkGLArea, GtkGLExt provides a GtkWidget API that enables
OpenGL drawing for standard and custom GTK widgets.
'';
license = licenses.lgpl2Plus;
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,17 @@
diff -Naur gtkhtml-3.32.2-orig/configure gtkhtml-3.32.2/configure
--- gtkhtml-3.32.2-orig/configure 2011-02-05 23:12:31.000000000 -0500
+++ gtkhtml-3.32.2/configure 2011-04-22 13:03:18.228874636 -0400
@@ -5761,12 +5761,7 @@
if test "x${enable_deprecated_flags}" = "xyes"; then
- list="-DG_DISABLE_DEPRECATED
- -DPANGO_DISABLE_DEPRECATED
- -DGDK_DISABLE_DEPRECATED
- -DGDK_PIXBUF_DISABLE_DEPRECATED
- -DGTK_DISABLE_DEPRECATED
- -DGNOME_DISABLE_DEPRECATED"
+ list=""
flags_supported=""
flags_unsupported=""
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for supported compiler flags" >&5

View file

@ -0,0 +1,30 @@
{ stdenv, fetchFromGitLab, pkg-config, gtk3, intltool, autoreconfHook, fetchpatch
, GConf, enchant, isocodes, gnome-icon-theme, gsettings-desktop-schemas }:
stdenv.mkDerivation rec {
version = "4.10.0";
pname = "gtkhtml";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "Archive";
repo = "gtkhtml";
rev = "master";
sha256 = "sha256-jL8YADvhW0o6I/2Uo5FNARMAnSbvtmFp+zWH1yCVvQk=";
};
patches = [
# Enables enchant2 support.
# Upstream is dead, no further releases are coming.
(fetchpatch {
name ="enchant-2.patch";
url = "https://aur.archlinux.org/cgit/aur.git/plain/enchant-2.patch?h=gtkhtml4&id=0218303a63d64c04d6483a6fe9bb55063fcfaa43";
sha256 = "f0OToWGHZwxvqf+0qosfA9FfwJ/IXfjIPP5/WrcvArI=";
extraPrefix = "";
})
];
propagatedBuildInputs = [ gsettings-desktop-schemas gtk3 gnome-icon-theme GConf ];
nativeBuildInputs = [ pkg-config ];
buildInputs = [ intltool enchant isocodes autoreconfHook ];
}

View file

@ -0,0 +1,21 @@
{ lib, stdenv, fetchurl, pkg-config, gtk2, intltool,
GConf, enchant, isocodes, gnome-icon-theme }:
stdenv.mkDerivation rec {
pname = "gtkhtml";
version = "3.32.2";
src = fetchurl {
url = "mirror://gnome/sources/gtkhtml/${lib.versions.majorMinor version}/gtkhtml-${version}.tar.bz2";
sha256 = "17z3jwvpn8waz7bhwrk7a6vs9pad6sqmlxxcqwvxxq89ywy0ail7";
};
#From Debian, fixes build issue described here:
#http://www.mail-archive.com/debian-bugs-rc@lists.debian.org/msg250091.html
patches = [ ./01_remove-disable-deprecated.patch ];
nativeBuildInputs = [ pkg-config ];
buildInputs = [ gtk2 intltool GConf enchant isocodes gnome-icon-theme ];
NIX_LDFLAGS = "-lgthread-2.0";
}

View file

@ -0,0 +1,15 @@
{ lib, stdenv, fetchurl, flex, bison, pkg-config, glib, gettext }:
stdenv.mkDerivation rec {
pname = "libIDL";
version = "0.8.14";
src = fetchurl {
url = "mirror://gnome/sources/libIDL/${lib.versions.majorMinor version}/libIDL-${version}.tar.bz2";
sha256 = "08129my8s9fbrk0vqvnmx6ph4nid744g5vbwphzkaik51664vln5";
};
buildInputs = [ glib gettext ];
nativeBuildInputs = [ flex bison pkg-config ];
}

View file

@ -0,0 +1,10 @@
{ lib, stdenv, fetchurl }:
stdenv.mkDerivation rec {
pname = "libart_lgpl";
version = "2.3.21";
src = fetchurl {
url = "mirror://gnome/sources/libart_lgpl/${lib.versions.majorMinor version}/libart_lgpl-${version}.tar.bz2";
sha256 = "1yknfkyzgz9s616is0l9gp5aray0f2ry4dw533jgzj8gq5s1xhgx";
};
}

View file

@ -0,0 +1,21 @@
{ lib, stdenv, fetchurl, flex, bison, pkg-config, glib, libxml2, popt
, intltool, ORBit2, procps }:
stdenv.mkDerivation rec {
pname = "libbonobo";
version = "2.32.1";
src = fetchurl {
url = "mirror://gnome/sources/libbonobo/${lib.versions.majorMinor version}/libbonobo-${version}.tar.bz2";
sha256 = "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i";
};
outputs = [ "out" "dev" ];
preConfigure = # still using stuff deprecated in new glib versions
"sed 's/-DG_DISABLE_DEPRECATED//g' -i configure activation-server/Makefile.in";
nativeBuildInputs = [ flex bison pkg-config intltool procps ];
buildInputs = [ libxml2 ];
propagatedBuildInputs = [ popt glib ORBit2 ];
}

View file

@ -0,0 +1,18 @@
{ lib, stdenv, fetchurl, bison, pkg-config, popt, libxml2, gtk2, libtool
, intltool, libbonobo, GConf, libgnomecanvas, libgnome, libglade }:
stdenv.mkDerivation rec {
pname = "libbonoboui";
version = "2.24.5";
src = fetchurl {
url = "mirror://gnome/sources/libbonoboui/${lib.versions.majorMinor version}/libbonoboui-${version}.tar.bz2";
sha256 = "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs";
};
outputs = [ "out" "dev" ];
nativeBuildInputs = [ pkg-config intltool ];
buildInputs = [ bison popt gtk2 libxml2 GConf libglade libtool ];
propagatedBuildInputs = [ libbonobo libgnomecanvas libgnome ];
}

View file

@ -0,0 +1,20 @@
{ lib, stdenv, fetchurl, pkg-config, gtk2, libxml2, gettext }:
stdenv.mkDerivation rec {
pname = "libglade";
version = "2.6.4";
src = fetchurl {
url = "mirror://gnome/sources/libglade/${lib.versions.majorMinor version}/libglade-${version}.tar.bz2";
sha256 = "1v2x2s04jry4gpabws92i0wq2ghd47yr5n9nhgnkd7c38xv1wdk4";
};
outputs = [ "out" "dev" ];
nativeBuildInputs = [ pkg-config ];
buildInputs = [ gtk2 gettext ];
NIX_LDFLAGS = "-lgmodule-2.0";
propagatedBuildInputs = [ libxml2 ];
}

View file

@ -0,0 +1,23 @@
{ lib, stdenv, fetchurl, pkg-config, glib, popt, zlib, libcanberra-gtk2
, intltool, libbonobo, GConf, gnome_vfs, libtool, libogg
}:
stdenv.mkDerivation rec {
pname = "libgnome";
version = "2.32.1";
src = fetchurl {
url = "mirror://gnome/sources/libgnome/${lib.versions.majorMinor version}/libgnome-${version}.tar.bz2";
sha256 = "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj";
};
patches = [ ./new-glib.patch ];
/* There's a comment containing an invalid utf-8 sequence, breaking glib-mkenums. */
postPatch = "sed '/returns the true filename/d' -i libgnome/gnome-config.h";
outputs = [ "out" "dev" ];
nativeBuildInputs = [ pkg-config ];
buildInputs = [ popt zlib intltool GConf gnome_vfs libcanberra-gtk2 libtool ];
propagatedBuildInputs = [ glib libbonobo libogg ];
}

View file

@ -0,0 +1,65 @@
Porting libgnome to newer glib:
* remove g_thread_init and g_thread_supported, which are longer needed
https://developer.gnome.org/glib/2.36/glib-Deprecated-Thread-APIs.html#g-thread-init
* replace GStaticRecMutex by GRecMutex
https://developer.gnome.org/glib/2.36/glib-Deprecated-Thread-APIs.html#GStaticRecMutex
diff --git a/libgnome/gnome-i18n.c b/libgnome/gnome-i18n.c
index 531c56c..f13d61e 100644
--- a/libgnome/gnome-i18n.c
+++ b/libgnome/gnome-i18n.c
@@ -55,12 +55,14 @@
const GList *
gnome_i18n_get_language_list (const gchar *ignored)
{
- static GStaticRecMutex lang_list_lock = G_STATIC_REC_MUTEX_INIT;
+ static GRecMutex lang_list_lock;
+ g_rec_mutex_init (&lang_list_lock);
+
static GList *list = NULL;
const char * const* langs;
int i;
- g_static_rec_mutex_lock (&lang_list_lock);
+ g_rec_mutex_lock (&lang_list_lock);
if (list == NULL) {
langs = g_get_language_names ();
@@ -71,7 +73,7 @@ gnome_i18n_get_language_list (const gchar *ignored)
list = g_list_reverse (list);
}
- g_static_rec_mutex_unlock (&lang_list_lock);
+ g_rec_mutex_unlock (&lang_list_lock);
return list;
}
diff --git a/libgnome/gnome-init.c b/libgnome/gnome-init.c
index fe3efd4..c6619af 100644
--- a/libgnome/gnome-init.c
+++ b/libgnome/gnome-init.c
@@ -115,9 +115,6 @@ gnome_bonobo_module_info_get (void)
static void
bonobo_activation_pre_args_parse (GnomeProgram *program, GnomeModuleInfo *mod_info)
{
- if (!g_thread_supported ())
- g_thread_init (NULL);
-
if (!bonobo_activation_is_initialized ())
bonobo_activation_preinit (program, mod_info);
}
diff --git a/libgnome/gnome-program.c b/libgnome/gnome-program.c
index 739765e..cd14999 100644
--- a/libgnome/gnome-program.c
+++ b/libgnome/gnome-program.c
@@ -1878,10 +1878,6 @@ gnome_program_init (const char *app_id, const char *app_version,
GnomeProgram *program;
va_list args;
- /* g_thread_init() has to be the first GLib function called ever */
- if (!g_threads_got_initialized)
- g_thread_init (NULL);
-
g_type_init ();
va_start(args, first_property_name);

View file

@ -0,0 +1,17 @@
{ lib, stdenv, fetchurl, pkg-config, gtk2, intltool, libart_lgpl, libglade }:
stdenv.mkDerivation rec {
pname = "libgnomecanvas";
version = "2.30.3";
src = fetchurl {
url = "mirror://gnome/sources/libgnomecanvas/${lib.versions.majorMinor version}/libgnomecanvas-${version}.tar.bz2";
sha256 = "0h6xvswbqspdifnyh5pm2pqq55yp3kn6yrswq7ay9z49hkh7i6w5";
};
outputs = [ "out" "dev" ];
buildInputs = [ libglade ];
nativeBuildInputs = [ pkg-config intltool ];
propagatedBuildInputs = [ libart_lgpl gtk2 ];
}

View file

@ -0,0 +1,14 @@
{ lib, stdenv, fetchurl, pkg-config, libgnomecanvas, gtkmm2 }:
stdenv.mkDerivation rec {
pname = "libgnomecanvasmm";
version = "2.26.0";
src = fetchurl {
url = "mirror://gnome/sources/libgnomecanvasmm/${lib.versions.majorMinor version}/libgnomecanvasmm-${version}.tar.bz2";
sha256 = "996577f97f459a574919e15ba7fee6af8cda38a87a98289e9a4f54752d83e918";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ libgnomecanvas gtkmm2 ];
}

View file

@ -0,0 +1,285 @@
From ae783efde4fa69578651994505462f02b8639220 Mon Sep 17 00:00:00 2001
From: Alexandre Rostovtsev <tetromino@gentoo.org>
Date: Tue, 7 Aug 2012 06:53:09 -0400
Subject: [PATCH] Use CUPS-1.6 IPP API getter/setter functions
CUPS 1.6 makes various structures private and introduces these ippGet
and ippSet functions for all of the fields in these structures.
http://www.cups.org/str.php?L3928
We define our own accessors when building against CUPS < 1.6.
Based on work by Jiri Popelka <jpopelka@redhat.com> at
https://bugzilla.gnome.org/show_bug.cgi?id=679759
---
libgnomecups/gnome-cups-printer.c | 48 +++++++++++++++++++++++++++++-------
libgnomecups/gnome-cups-queue.c | 43 +++++++++++++++++++++++++++------
libgnomecups/gnome-cups-request.c | 44 ++++++++++++++++++++++++++++-----
3 files changed, 110 insertions(+), 25 deletions(-)
diff --git a/libgnomecups/gnome-cups-printer.c b/libgnomecups/gnome-cups-printer.c
index c924af0..f5e1ef7 100644
--- a/libgnomecups/gnome-cups-printer.c
+++ b/libgnomecups/gnome-cups-printer.c
@@ -37,6 +37,34 @@
#define UPDATE_TIMEOUT 5000
+#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5)
+#define HAVE_CUPS_1_6 1
+#endif
+
+#ifndef HAVE_CUPS_1_6
+#define ippGetCount(attr) attr->num_values
+#define ippGetName(attr) attr->name
+#define ippGetInteger(attr, element) attr->values[element].integer
+#define ippGetString(attr, element, language) attr->values[element].string.text
+
+static ipp_attribute_t *
+ippFirstAttribute(ipp_t *ipp)
+{
+ if (!ipp)
+ return (NULL);
+ return (ipp->current = ipp->attrs);
+}
+
+static ipp_attribute_t *
+ippNextAttribute(ipp_t *ipp)
+{
+ if (!ipp || !ipp->current)
+ return (NULL);
+ return (ipp->current = ipp->current->next);
+}
+#endif
+
+
struct _GnomeCupsPPDFile {
char name[1];
};
@@ -173,9 +201,9 @@ map_reasons (GnomeCupsPrinter *printer,
printer->details->state_reasons = NULL;
/* cf. RFC2911 4.4.12 */
- for (i = 0; i < attr->num_values; i++) {
+ for (i = 0; i < ippGetCount (attr); i++) {
const char *p;
- const char *keyword = attr->values [i].string.text;
+ const char *keyword = ippGetString (attr, i, NULL);
reason = g_new (GnomeCupsPrinterReason, 1);
@@ -224,8 +252,8 @@ gnome_cups_printer_get_info (GnomeCupsPrinter *printer)
return printer->details->info;
}
-#define MAP_INT(v,a) {if (!g_ascii_strcasecmp (attr->name, (a))) { if ((v) != attr->values[0].integer) { changed = TRUE; } (v) = attr->values[0].integer; }}
-#define MAP_STRING(v,a) {if (!g_ascii_strcasecmp (attr->name, (a))) { if (!v || strcmp (v, attr->values[0].string.text)) { g_free (v); changed = TRUE; (v) = g_strdup (attr->values[0].string.text); }}}
+#define MAP_INT(v,a) {if (!g_ascii_strcasecmp (ippGetName (attr), (a))) { if ((v) != ippGetInteger (attr, 0)) { changed = TRUE; } (v) = ippGetInteger (attr, 0); }}
+#define MAP_STRING(v,a) {if (!g_ascii_strcasecmp (ippGetName (attr), (a))) { if (!v || strcmp (v, ippGetString (attr, 0, NULL))) { g_free (v); changed = TRUE; (v) = g_strdup (ippGetString (attr, 0, NULL)); }}}
static void
attributes_update_cb (guint id,
@@ -243,14 +271,14 @@ attributes_update_cb (guint id,
changed = FALSE;
if (!error && response) {
- for (attr = response->attrs; attr != NULL; attr = attr->next) {
- if (!attr->name) {
+ for (attr = ippFirstAttribute (response); attr != NULL; attr = ippNextAttribute (response)) {
+ if (!ippGetName (attr)) {
continue;
}
- if (!g_ascii_strcasecmp (attr->name, "attributes-charset") || !strcmp (attr->name, "attributes-charset")) {
+ if (!g_ascii_strcasecmp (ippGetName (attr), "attributes-charset") || !strcmp (ippGetName (attr), "attributes-charset")) {
continue;
}
- if (!g_ascii_strcasecmp (attr->name, "printer-state-reasons")) {
+ if (!g_ascii_strcasecmp (ippGetName (attr), "printer-state-reasons")) {
map_reasons (printer, attr);
}
MAP_INT (printer->details->state, "printer-state");
@@ -570,7 +598,7 @@ get_default (void)
attr = ippFindAttribute (response, "printer-name", IPP_TAG_NAME);
if (attr) {
- name = g_strdup (attr->values[0].string.text);
+ name = g_strdup (ippGetString (attr, 0, NULL));
} else {
name = NULL;
}
@@ -698,7 +726,7 @@ get_printer_names (void)
attr = ippFindAttribute (response, "printer-name", IPP_TAG_NAME);
while (attr) {
ret = g_list_prepend (ret,
- g_strdup (attr->values[0].string.text));
+ g_strdup (ippGetString (attr, 0, NULL)));
attr = ippFindNextAttribute (response,
"printer-name",
diff --git a/libgnomecups/gnome-cups-queue.c b/libgnomecups/gnome-cups-queue.c
index 9f98ed9..298db42 100644
--- a/libgnomecups/gnome-cups-queue.c
+++ b/libgnomecups/gnome-cups-queue.c
@@ -15,6 +15,33 @@
#define UPDATE_TIMEOUT 3000
+#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5)
+#define HAVE_CUPS_1_6 1
+#endif
+
+#ifndef HAVE_CUPS_1_6
+#define ippGetName(attr) attr->name
+#define ippGetInteger(attr, element) attr->values[element].integer
+#define ippGetString(attr, element, language) attr->values[element].string.text
+
+static ipp_attribute_t *
+ippFirstAttribute(ipp_t *ipp)
+{
+ if (!ipp)
+ return (NULL);
+ return (ipp->current = ipp->attrs);
+}
+
+static ipp_attribute_t *
+ippNextAttribute(ipp_t *ipp)
+{
+ if (!ipp || !ipp->current)
+ return (NULL);
+ return (ipp->current = ipp->current->next);
+}
+#endif
+
+
struct _GnomeCupsQueueDetails {
char *queue_name;
GList *jobs;
@@ -199,8 +226,8 @@ finish_job (GnomeCupsJob *job)
job->size = job->size * 1024;
}
-#define MAP_STR(dest, src) { if (!g_ascii_strcasecmp (attr->name, (src))) { if ((dest) != NULL) g_free (dest); (dest) = g_strdup (attr->values[0].string.text);}}
-#define MAP_INT(dest, src) { if (!g_ascii_strcasecmp (attr->name, (src))) { (dest) = attr->values[0].integer; } }
+#define MAP_STR(dest, src) { if (!g_ascii_strcasecmp (ippGetName (attr), (src))) { if ((dest) != NULL) g_free (dest); (dest) = g_strdup (ippGetString (attr, 0, NULL));}}
+#define MAP_INT(dest, src) { if (!g_ascii_strcasecmp (ippGetName (attr), (src))) { (dest) = ippGetInteger (attr, 0); } }
static void
get_jobs_cb (guint id,
@@ -231,8 +258,8 @@ get_jobs_cb (guint id,
if (response) {
job = g_new0 (GnomeCupsJob, 1);
- for (attr = response->attrs; attr != NULL; attr = attr->next) {
- if (attr->name == NULL) {
+ for (attr = ippFirstAttribute (response); attr != NULL; attr = ippNextAttribute (response)) {
+ if (ippGetName (attr) == NULL) {
if (job->name) {
finish_job (job);
jobs = g_list_prepend (jobs, job);
@@ -244,7 +271,7 @@ get_jobs_cb (guint id,
continue;
}
- if (!g_ascii_strcasecmp (attr->name, "attributes-charset") || !g_ascii_strcasecmp (attr->name, "attributes-charset")) {
+ if (!g_ascii_strcasecmp (ippGetName (attr), "attributes-charset") || !g_ascii_strcasecmp (ippGetName (attr), "attributes-charset")) {
continue;
}
@@ -355,8 +382,8 @@ gnome_cups_queue_get_job_nocache (GnomeCupsQueue *queue,
if (response) {
job = g_new0 (GnomeCupsJob, 1);
- for (attr = response->attrs; attr != NULL; attr = attr->next) {
- if (attr->name == NULL) {
+ for (attr = ippFirstAttribute (response); attr != NULL; attr = ippNextAttribute (response)) {
+ if (ippGetName (attr) == NULL) {
if (job->name) {
finish_job (job);
} else {
@@ -366,7 +393,7 @@ gnome_cups_queue_get_job_nocache (GnomeCupsQueue *queue,
break;
}
- if (!g_ascii_strcasecmp (attr->name, "attributes-charset") || !g_ascii_strcasecmp (attr->name, "attributes-charset")) {
+ if (!g_ascii_strcasecmp (ippGetName (attr), "attributes-charset") || !g_ascii_strcasecmp (ippGetName (attr), "attributes-charset")) {
continue;
}
diff --git a/libgnomecups/gnome-cups-request.c b/libgnomecups/gnome-cups-request.c
index c94f623..13f0948 100644
--- a/libgnomecups/gnome-cups-request.c
+++ b/libgnomecups/gnome-cups-request.c
@@ -19,6 +19,36 @@
#define STOP_UNUSED_THREADS_TIMEOUT 60
#define CLOSE_UNUSED_CONNECTIONS_TIMEOUT 30
+#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5)
+#define HAVE_CUPS_1_6 1
+#endif
+
+#ifndef HAVE_CUPS_1_6
+#define ippGetCount(attr) attr->num_values
+#define ippGetValueTag(attr) attr->value_tag
+#define ippGetName(attr) attr->name
+#define ippGetBoolean(attr, element) attr->values[element].boolean
+#define ippGetInteger(attr, element) attr->values[element].integer
+#define ippGetString(attr, element, language) attr->values[element].string.text
+
+static ipp_attribute_t *
+ippFirstAttribute(ipp_t *ipp)
+{
+ if (!ipp)
+ return (NULL);
+ return (ipp->current = ipp->attrs);
+}
+
+static ipp_attribute_t *
+ippNextAttribute(ipp_t *ipp)
+{
+ if (!ipp || !ipp->current)
+ return (NULL);
+ return (ipp->current = ipp->current->next);
+}
+#endif
+
+
typedef struct
{
GMutex *mutex;
@@ -276,14 +306,14 @@ dump_request (ipp_t const *req)
unsigned i;
ipp_attribute_t *attr;
- for (attr = req->attrs; attr != NULL; attr = attr->next) {
- g_print ("%s", attr->name);
- for (i = 0 ; i < attr->num_values ; i++) {
+ for (attr = ippFirstAttribute (req); attr != NULL; attr = ippNextAttribute (req)) {
+ g_print ("%s", ippGetName (attr));
+ for (i = 0 ; i < ippGetCount (attr) ; i++) {
g_print ("\t[%d] = ", i);
- switch (attr->value_tag & ~IPP_TAG_COPY) {
+ switch (ippGetValueTag (attr) & ~IPP_TAG_COPY) {
case IPP_TAG_INTEGER:
case IPP_TAG_ENUM:
- g_print ("%d\n", attr->values[i].integer);
+ g_print ("%d\n", ippGetInteger (attr, i));
break;
case IPP_TAG_STRING:
@@ -294,11 +324,11 @@ dump_request (ipp_t const *req)
case IPP_TAG_CHARSET:
case IPP_TAG_LANGUAGE:
case IPP_TAG_MIMETYPE:
- g_print ("'%s'\n", attr->values[i].string.text);
+ g_print ("'%s'\n", ippGetString (attr, i, NULL));
break;
case IPP_TAG_BOOLEAN:
- g_print ("%s\n", (int)attr->values[i].boolean ? "true" : "false");
+ g_print ("%s\n", (int)ippGetBoolean (attr, i) ? "true" : "false");
break;
default:
--
1.7.8.6

View file

@ -0,0 +1,20 @@
{ lib, stdenv, fetchurl, pkg-config, gtk2, gettext, libxml2, intltool, libart_lgpl }:
stdenv.mkDerivation rec {
pname = "libgnomecups";
version = "0.2.3";
src = fetchurl {
url = "mirror://gnome/sources/libgnomecups/${lib.versions.majorMinor version}/libgnomecups-${version}.tar.bz2";
sha256 = "0a8xdaxzz2wc0n1fjcav65093gixzyac3948l8cxx1mk884yhc71";
};
hardeningDisable = [ "format" ];
patches = [ ./glib.patch ./cups_1.6.patch ];
nativeBuildInputs = [ pkg-config ];
buildInputs = [ gtk2 gettext intltool libart_lgpl ];
propagatedBuildInputs = [ libxml2 ];
}

View file

@ -0,0 +1,38 @@
From d84eee9450b3b6f6155074915efc61bedcc8d446 Mon Sep 17 00:00:00 2001
From: Dominique Leuenberger <dimstar@opensuse.org>
Date: Sun, 27 Nov 2011 21:36:41 +0100
Subject: [PATCH] Fix: Only glib.h can be included
---
libgnomecups/gnome-cups-i18n.c | 2 +-
libgnomecups/gnome-cups-init.h | 3 +--
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/libgnomecups/gnome-cups-i18n.c b/libgnomecups/gnome-cups-i18n.c
index 8987c5c..127756d 100644
--- a/libgnomecups/gnome-cups-i18n.c
+++ b/libgnomecups/gnome-cups-i18n.c
@@ -1,5 +1,5 @@
#include <config.h>
-#include <glib/gmacros.h>
+#include <glib.h>
#include "gnome-cups-i18n.h"
#ifdef ENABLE_NLS
diff --git a/libgnomecups/gnome-cups-init.h b/libgnomecups/gnome-cups-init.h
index 22b682a..c4600fc 100644
--- a/libgnomecups/gnome-cups-init.h
+++ b/libgnomecups/gnome-cups-init.h
@@ -1,8 +1,7 @@
#ifndef GNOME_CUPS_INIT
#define GNOME_CUPS_INIT
-#include <glib/gtypes.h>
-#include <glib/gmacros.h>
+#include <glib.h>
G_BEGIN_DECLS
--
1.7.7

View file

@ -0,0 +1,21 @@
From 9b82b7e75b83395e7c5692085e1934202cf7f65f Mon Sep 17 00:00:00 2001
From: Jeremy Huddleston <jeremyhu@freedesktop.org>
Date: Wed, 12 Oct 2011 15:08:59 +0000
Subject: Add missing include
https://bugzilla.gnome.org/show_bug.cgi?id=653388
---
diff --git a/libgnomeprint/modules/cups/gnome-print-cups-transport.c b/libgnomeprint/modules/cups/gnome-print-cups-transport.c
index aeb7111..85de91b 100644
--- a/libgnomeprint/modules/cups/gnome-print-cups-transport.c
+++ b/libgnomeprint/modules/cups/gnome-print-cups-transport.c
@@ -34,6 +34,7 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
+#include <stdio.h>
#include <unistd.h>
#include <locale.h>
--
cgit v0.9.0.2

View file

@ -0,0 +1,30 @@
{ lib, stdenv, fetchurl, fetchpatch, pkg-config, gtk2, gettext, libxml2, intltool, libart_lgpl
, libgnomecups, bison, flex }:
stdenv.mkDerivation rec {
pname = "libgnomeprint";
version = "2.18.8";
src = fetchurl {
url = "mirror://gnome/sources/libgnomeprint/${lib.versions.majorMinor version}/libgnomeprint-${version}.tar.bz2";
sha256 = "1034ec8651051f84d2424e7a1da61c530422cc20ce5b2d9e107e1e46778d9691";
};
patches = [
./bug653388.patch
# Fix compatibility with bison 3
(fetchpatch {
url = "https://github.com/pld-linux/libgnomeprint/raw/54c0f9c3675b86c53f6d77a5bc526ce9ef0e38cd/bison3.patch";
sha256 = "1sp04jbv34i1gcwf377hhmwdsmqzig70dd06rjz1isb6zwh4y01l";
})
];
nativeBuildInputs = [ pkg-config ];
buildInputs = [ gtk2 gettext intltool libart_lgpl libgnomecups bison flex ];
propagatedBuildInputs = [ libxml2 ];
meta = with lib; {
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,14 @@
{ lib, stdenv, fetchurl, pkg-config, gtk2, gettext, intltool, libgnomecanvas, libgnomeprint, gnome-icon-theme }:
stdenv.mkDerivation rec {
pname = "libgnomeprintui";
version = "2.18.6";
src = fetchurl {
url = "mirror://gnome/sources/libgnomeprintui/${lib.versions.majorMinor version}/libgnomeprintui-${version}.tar.bz2";
sha256 = "0spl8vinb5n6n1krnfnr61dwaxidg67h8j94z9p59k2xdsvfashm";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ gtk2 gettext intltool libgnomecanvas libgnomeprint gnome-icon-theme];
}

View file

@ -0,0 +1,29 @@
{ lib, stdenv, fetchurl, fetchpatch, pkg-config, libxml2, xorg, glib, pango
, intltool, libgnome, libgnomecanvas, libbonoboui, GConf, libtool
, gnome_vfs, libgnome-keyring, libglade }:
stdenv.mkDerivation rec {
pname = "libgnomeui";
version = "2.24.5";
src = fetchurl {
url = "mirror://gnome/sources/libgnomeui/${lib.versions.majorMinor version}/libgnomeui-${version}.tar.bz2";
sha256 = "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf";
};
outputs = [ "out" "dev" ];
patches = [
(fetchpatch {
name = "0001-gnome-scores.h-Convert-to-UTF-8.patch";
url = "https://gitlab.gnome.org/Archive/libgnomeui/-/commit/30334c28794ef85d8973f4ed0779b5ceed6594f2.diff";
sha256 = "1sn8j8dkam14wfkpw8nga3gk63wniff243mzv3jp0fvv52q8sqhk";
})
];
nativeBuildInputs = [ pkg-config intltool ];
buildInputs =
[ xorg.xlibsWrapper libxml2 GConf pango glib libgnome-keyring libglade libtool ];
propagatedBuildInputs = [ libgnome libbonoboui libgnomecanvas gnome_vfs ];
}

View file

@ -0,0 +1,17 @@
{ lib, stdenv, fetchurl, pkg-config, gtk2, gettext, libxml2 }:
stdenv.mkDerivation rec {
pname = "libgtkhtml";
version = "2.11.1";
src = fetchurl {
url = "mirror://gnome/sources/libgtkhtml/${lib.versions.majorMinor version}/libgtkhtml-${version}.tar.bz2";
sha256 = "0msajafd42545dxzyr5zqka990cjrxw2yz09ajv4zs8m1w6pm9rw";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ gtk2 gettext ];
propagatedBuildInputs = [ libxml2 ];
hardeningDisable = [ "format" ];
}

View file

@ -0,0 +1,74 @@
{ lib
, fetchurl
, pkg-config
, gnome
, gtk3
, wrapGAppsHook
, gobject-introspection
, itstool
, libxml2
, python3
, at-spi2-core
, dbus
, gettext
, libwnck
, adwaita-icon-theme
}:
python3.pkgs.buildPythonApplication rec {
pname = "accerciser";
version = "3.38.0";
format = "other";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0fd9vv2abd2if2qj4nlfy7mpd7rc4sx18zhmxd5ijlnfhkpggbp5";
};
nativeBuildInputs = [
gettext
gobject-introspection # For setup hook
itstool
libxml2
pkg-config
dbus
wrapGAppsHook
];
buildInputs = [
adwaita-icon-theme
at-spi2-core
gtk3
libwnck
];
propagatedBuildInputs = with python3.pkgs; [
ipython
pyatspi
pycairo
pygobject3
setuptools
xlib
];
# Strict deps breaks accerciser
# and https://github.com/NixOS/nixpkgs/issues/56943
strictDeps = false;
passthru = {
updateScript = gnome.updateScript {
packageName = "accerciser";
attrPath = "gnome.accerciser";
versionPolicy = "odd-unstable";
};
};
meta = with lib; {
homepage = "https://wiki.gnome.org/Apps/Accerciser";
description = "Interactive Python accessibility explorer";
maintainers = teams.gnome.members;
license = licenses.bsd3;
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,114 @@
{ lib
, stdenv
, gettext
, fetchurl
, wrapGAppsHook
, gnome-video-effects
, libcanberra-gtk3
, pkg-config
, gtk3
, glib
, clutter-gtk
, clutter-gst
, gst_all_1
, itstool
, vala
, docbook_xml_dtd_43
, docbook-xsl-nons
, appstream-glib
, libxslt
, gtk-doc
, adwaita-icon-theme
, librsvg
, totem
, gdk-pixbuf
, gnome
, gnome-desktop
, libxml2
, meson
, ninja
, dbus
, python3
, pipewire
}:
stdenv.mkDerivation rec {
pname = "cheese";
version = "41.1";
outputs = [ "out" "man" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/cheese/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "UilgyihzD/ZkOQcLBEGMngpLtVVg11v+CLIY2ixn5Uc=";
};
nativeBuildInputs = [
appstream-glib
docbook_xml_dtd_43
docbook-xsl-nons
gettext
gtk-doc
itstool
libxml2
libxslt # for xsltproc
meson
ninja
pkg-config
python3
vala
wrapGAppsHook
glib # for glib-compile-schemas
];
buildInputs = [
adwaita-icon-theme
clutter-gst
clutter-gtk
dbus
gdk-pixbuf
glib
gnome-desktop
gnome-video-effects
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gst_all_1.gstreamer
gtk3
libcanberra-gtk3
librsvg
pipewire # PipeWire provides a gstreamer plugin for using PipeWire for video
];
postPatch = ''
chmod +x meson_post_install.py
patchShebangs meson_post_install.py
'';
preFixup = ''
gappsWrapperArgs+=(
# Effects
--prefix XDG_DATA_DIRS : "${gnome-video-effects}/share"
# vp8enc preset
--prefix GST_PRESET_PATH : "${gst_all_1.gst-plugins-good}/share/gstreamer-1.0/presets"
# Thumbnailers
--prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share"
--prefix XDG_DATA_DIRS : "${totem}/share"
)
'';
passthru = {
updateScript = gnome.updateScript {
packageName = "cheese";
attrPath = "gnome.cheese";
};
};
meta = with lib; {
homepage = "https://wiki.gnome.org/Apps/Cheese";
description = "Take photos and videos with your webcam, with fun graphical effects";
maintainers = teams.gnome.members;
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,93 @@
{ lib
, stdenv
, fetchurl
, desktop-file-utils
, gettext
, glibcLocales
, itstool
, libxml2
, meson
, ninja
, pkg-config
, python3
, wrapGAppsHook
, cpio
, file
, glib
, gnome
, gtk3
, libhandy
, json-glib
, libarchive
, libnotify
, nautilus
, unzip
}:
stdenv.mkDerivation rec {
pname = "file-roller";
version = "3.42.0";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "HEOObVPsEP9PLrWyLXu/KKfCqElXq2SnUcHN88UjAsc=";
};
LANG = "en_US.UTF-8"; # postinstall.py
nativeBuildInputs = [
desktop-file-utils
gettext
glibcLocales
itstool
libxml2
meson
ninja
pkg-config
python3
wrapGAppsHook
];
buildInputs = [
cpio
file
glib
gnome.adwaita-icon-theme
gtk3
libhandy
json-glib
libarchive
libnotify
nautilus
];
PKG_CONFIG_LIBNAUTILUS_EXTENSION_EXTENSIONDIR = "${placeholder "out"}/lib/nautilus/extensions-3.0";
postPatch = ''
chmod +x postinstall.py # patchShebangs requires executable file
patchShebangs postinstall.py
patchShebangs data/set-mime-type-entry.py
'';
preFixup = ''
# Workaround because of https://gitlab.gnome.org/GNOME/file-roller/issues/40
gappsWrapperArgs+=(
--prefix PATH : ${lib.makeBinPath [ unzip ]}
)
'';
passthru = {
updateScript = gnome.updateScript {
packageName = "file-roller";
attrPath = "gnome.file-roller";
};
};
meta = with lib; {
homepage = "https://wiki.gnome.org/Apps/FileRoller";
description = "Archive manager for the GNOME desktop environment";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = teams.gnome.members ++ teams.pantheon.members;
};
}

View file

@ -0,0 +1,13 @@
diff --git a/gedit/meson.build b/gedit/meson.build
index a8683e61a..fc48669f7 100644
--- a/gedit/meson.build
+++ b/gedit/meson.build
@@ -191,7 +191,7 @@ libgedit_shared_lib = shared_library(
c_args: libgedit_c_args,
link_args: libgedit_link_args,
install: true,
- install_dir: get_option('libdir') / 'gedit',
+ install_dir: get_option('prefix') / get_option('libdir') / 'gedit',
)
# GObject Introspection

View file

@ -0,0 +1,91 @@
{ stdenv
, lib
, meson
, fetchurl
, python3
, pkg-config
, gtk3
, gtk-mac-integration
, glib
, adwaita-icon-theme
, libpeas
, libxml2
, gtksourceview4
, gsettings-desktop-schemas
, wrapGAppsHook
, ninja
, libsoup
, gnome
, gspell
, perl
, itstool
, desktop-file-utils
, vala
}:
stdenv.mkDerivation rec {
pname = "gedit";
version = "42.1";
src = fetchurl {
url = "mirror://gnome/sources/gedit/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "fx/UPfURDUw33mVBmT9B8PvD78eQkA6SBTR5ugaZIOk=";
};
patches = [
# We patch gobject-introspection and meson to store absolute paths to libraries in typelibs
# but that requires the install_dir is an absolute path.
./correct-gir-lib-path.patch
];
nativeBuildInputs = [
desktop-file-utils
itstool
libxml2
meson
ninja
perl
pkg-config
python3
vala
wrapGAppsHook
];
buildInputs = [
adwaita-icon-theme
glib
gsettings-desktop-schemas
gspell
gtk3
gtksourceview4
libpeas
libsoup
] ++ lib.optionals stdenv.isDarwin [
gtk-mac-integration
];
postPatch = ''
chmod +x build-aux/meson/post_install.py
chmod +x plugins/externaltools/scripts/gedit-tool-merge.pl
patchShebangs build-aux/meson/post_install.py
patchShebangs plugins/externaltools/scripts/gedit-tool-merge.pl
'';
# Reliably fails to generate gedit-file-browser-enum-types.h in time
enableParallelBuilding = false;
passthru = {
updateScript = gnome.updateScript {
packageName = "gedit";
attrPath = "gnome.gedit";
};
};
meta = with lib; {
homepage = "https://wiki.gnome.org/Apps/Gedit";
description = "Official text editor of the GNOME desktop environment";
maintainers = teams.gnome.members;
license = licenses.gpl2Plus;
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,81 @@
{ stdenv
, lib
, fetchurl
, pkg-config
, gi-docgen
, meson
, ninja
, gnome
, desktop-file-utils
, appstream-glib
, gettext
, itstool
, libxml2
, gtk4
, glib
, atk
, gobject-introspection
, wrapGAppsHook4
}:
stdenv.mkDerivation rec {
pname = "ghex";
version = "42.2";
outputs = [ "out" "dev" "devdoc" ];
src = fetchurl {
url = "mirror://gnome/sources/ghex/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "Rd6Oa4ofMd5amRC+GMB/CaMo2HU434BAOuxa+IF8ljE=";
};
nativeBuildInputs = [
desktop-file-utils
gettext
itstool
meson
ninja
pkg-config
gi-docgen
gobject-introspection
wrapGAppsHook4
];
buildInputs = [
gtk4
atk
glib
];
checkInputs = [
appstream-glib
desktop-file-utils
];
mesonFlags = [
"-Dgtk_doc=true"
] ++ lib.optionals stdenv.isDarwin [
# mremap does not exist on darwin
"-Dmmap-buffer-backend=false"
];
postFixup = ''
# Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
moveToOutput "share/doc" "$devdoc"
'';
passthru = {
updateScript = gnome.updateScript {
packageName = "ghex";
attrPath = "gnome.${pname}";
};
};
meta = with lib; {
homepage = "https://wiki.gnome.org/Apps/Ghex";
description = "Hex editor for GNOME desktop environment";
platforms = platforms.unix;
license = licenses.gpl2Plus;
maintainers = teams.gnome.members;
};
}

View file

@ -0,0 +1,97 @@
{ stdenv
, lib
, meson
, ninja
, gettext
, fetchurl
, fetchpatch
, evince
, gjs
, pkg-config
, gtk3
, glib
, tracker
, tracker-miners
, libxslt
, webkitgtk
, gnome-desktop
, libgepub
, gnome
, gdk-pixbuf
, gsettings-desktop-schemas
, adwaita-icon-theme
, docbook-xsl-nons
, docbook_xml_dtd_42
, desktop-file-utils
, python3
, gobject-introspection
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
pname = "gnome-books";
version = "40.0";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "0c41l8m2di8h39bmk2fnhpwglwp6qhljmwqqbihzp4ay9976zrc5";
};
patches = [
# Fix build with meson 0.61
# https://gitlab.gnome.org/GNOME/gnome-books/-/merge_requests/62
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/gnome-books/-/commit/2663dcdaaaa71f067a4c2d0005eecc0fdf940bf5.patch";
sha256 = "v2mLzrxSWrkJ0N6seR8jNXX14FsneEPuE9ELLVUe6+E=";
})
];
nativeBuildInputs = [
meson
ninja
pkg-config
gettext
libxslt
desktop-file-utils
docbook-xsl-nons
docbook_xml_dtd_42
wrapGAppsHook
python3
];
buildInputs = [
gtk3
glib
gsettings-desktop-schemas
gdk-pixbuf
adwaita-icon-theme
evince
webkitgtk
gjs
gobject-introspection
tracker
tracker-miners
gnome-desktop
libgepub
];
postPatch = ''
chmod +x meson_post_install.py # patchShebangs requires executable file
patchShebangs meson_post_install.py
'';
passthru = {
updateScript = gnome.updateScript {
packageName = "gnome-books";
attrPath = "gnome.gnome-books";
};
};
meta = with lib; {
homepage = "https://wiki.gnome.org/Apps/Books";
description = "An e-book manager application for GNOME";
maintainers = teams.gnome.members;
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,154 @@
{ lib, stdenv
, fetchurl
, meson
, ninja
, wrapGAppsHook
, pkg-config
, gettext
, itstool
, libvirt-glib
, glib
, gobject-introspection
, libxml2
, gtk3
, gtksourceview4
, gtk-vnc
, freerdp
, libvirt
, spice-gtk
, python3
, appstream-glib
, spice-protocol
, libhandy
, libsoup
, libosinfo
, systemd
, tracker
, tracker-miners
, vala
, libcap
, yajl
, gmp
, gdbm
, cyrus_sasl
, gnome
, librsvg
, desktop-file-utils
, mtools
, cdrkit
, libcdio
, libusb1
, libarchive
, acl
, libgudev
, libsecret
, libcap_ng
, numactl
, libapparmor
, json-glib
, webkitgtk
, vte
, glib-networking
, qemu-utils
, qemu
}:
stdenv.mkDerivation rec {
pname = "gnome-boxes";
version = "42.1";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "lvXQEbdQjbVhvw0WbA6p6LEhgFxA5dnzYRkkXBUXIIA=";
};
patches = [
# Fix path to libgovf-0.1.so (and libgtk-frdp-0.1.so when enabling rdp meson option)
# in the gir file. We patch gobject-introspection to hardcode absolute paths but
# our Meson patch will only pass the info when install_dir is absolute as well.
./fix-gir-lib-path.patch
];
doCheck = true;
nativeBuildInputs = [
appstream-glib # for appstream-util
desktop-file-utils
gettext
gobject-introspection
itstool
meson
ninja
pkg-config
python3
vala
wrapGAppsHook
];
# Required for USB redirection PolicyKit rules file
propagatedUserEnvPkgs = [
spice-gtk
];
buildInputs = [
acl
cyrus_sasl
freerdp
gdbm
glib
glib-networking
gmp
gnome.adwaita-icon-theme
gtk-vnc
gtk3
gtksourceview4
json-glib
libapparmor
libarchive
libcap
libcap_ng
libgudev
libhandy
libosinfo
librsvg
libsecret
libsoup
libusb1
libvirt
libvirt-glib
libxml2
numactl
spice-gtk
spice-protocol
systemd
tracker
tracker-miners
vte
webkitgtk
yajl
];
preFixup = ''
gappsWrapperArgs+=(--prefix PATH : "${lib.makeBinPath [ mtools cdrkit libcdio qemu-utils qemu ]}")
'';
postPatch = ''
chmod +x build-aux/post_install.py # patchShebangs requires executable file
patchShebangs build-aux/post_install.py
'';
passthru = {
updateScript = gnome.updateScript {
packageName = pname;
attrPath = "gnome.${pname}";
};
};
meta = with lib; {
description = "Simple GNOME 3 application to access remote or virtual systems";
homepage = "https://wiki.gnome.org/Apps/Boxes";
license = licenses.lgpl2Plus;
platforms = platforms.linux;
maintainers = teams.gnome.members;
};
}

View file

@ -0,0 +1,22 @@
--- a/subprojects/libovf-glib/govf/meson.build
+++ b/subprojects/libovf-glib/govf/meson.build
@@ -39,7 +39,7 @@ govf_lib = shared_library('govf-' + api_version,
govf_sources,
dependencies: govf_deps,
install: true,
- install_dir: libdir
+ install_dir: get_option ('prefix') / libdir
)
govf_dep = declare_dependency(
--- a/subprojects/gtk-frdp/src/meson.build
+++ b/subprojects/gtk-frdp/src/meson.build
@@ -50,7 +50,7 @@ gtk_frdp_lib = shared_library('gtk-frdp-' + api_version,
gtk_frdp_sources,
dependencies: gtk_frdp_deps,
install: true,
- install_dir: libdir
+ install_dir: get_option ('prefix') / libdir
)
gtk_frdp_dep = declare_dependency(

View file

@ -0,0 +1,68 @@
{ stdenv
, lib
, fetchurl
, meson
, ninja
, pkg-config
, wrapGAppsHook4
, libgweather
, geoclue2
, geocode-glib
, gettext
, libxml2
, gnome
, gtk4
, evolution-data-server
, libical
, libsoup
, glib
, gsettings-desktop-schemas
, libadwaita
}:
stdenv.mkDerivation rec {
pname = "gnome-calendar";
version = "42.1";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "0SKBy78a+GxyN1/mrZNG7Q4sLziKHq6FjOzmQGCm66g=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
gettext
libxml2
wrapGAppsHook4
];
buildInputs = [
gtk4
evolution-data-server # waiting for GTK4 port
libical
libsoup
glib
libgweather
geoclue2
geocode-glib
gsettings-desktop-schemas
libadwaita
];
passthru = {
updateScript = gnome.updateScript {
packageName = pname;
attrPath = "gnome.${pname}";
};
};
meta = with lib; {
homepage = "https://wiki.gnome.org/Apps/Calendar";
description = "Simple and beautiful calendar application for GNOME";
maintainers = teams.gnome.members;
license = licenses.gpl3Plus;
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,88 @@
{ lib
, stdenv
, fetchurl
, meson
, ninja
, pkg-config
, gettext
, gnome
, glib
, gtk4
, pango
, wrapGAppsHook4
, python3
, desktop-file-utils
, gobject-introspection
, gjs
, libunistring
, libadwaita
, gsettings-desktop-schemas
, gnome-desktop
}:
stdenv.mkDerivation rec {
pname = "gnome-characters";
version = "42.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-characters/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "XaD/uBb4prRPMDdEyoJ6NAgBGMHJONjXmvF7f+Z5gPg=";
};
nativeBuildInputs = [
gettext
gobject-introspection
meson
ninja
pkg-config
python3
desktop-file-utils
wrapGAppsHook4
];
buildInputs = [
gjs
glib
gnome-desktop # for typelib
gsettings-desktop-schemas
gtk4
libunistring
libadwaita
pango
];
postPatch = ''
chmod +x meson_post_install.py # patchShebangs requires executable file
patchShebangs meson_post_install.py
# https://gitlab.gnome.org/GNOME/gnome-characters/-/merge_requests/70
substituteInPlace meson_post_install.py \
--replace "gtk-update-icon-cache" "gtk4-update-icon-cache"
'';
dontWrapGApps = true;
postFixup = ''
# Fixes https://github.com/NixOS/nixpkgs/issues/31168
file="$out/share/org.gnome.Characters/org.gnome.Characters"
sed -e $"2iimports.package._findEffectiveEntryPointName = () => \'$(basename $file)\' " \
-i $file
wrapGApp "$file"
'';
passthru = {
updateScript = gnome.updateScript {
packageName = pname;
attrPath = "gnome.${pname}";
};
};
meta = with lib; {
homepage = "https://wiki.gnome.org/Apps/Characters";
description = "Simple utility application to find and insert unusual characters";
maintainers = teams.gnome.members;
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,86 @@
{ stdenv
, lib
, fetchurl
, meson
, ninja
, gettext
, pkg-config
, wrapGAppsHook
, itstool
, desktop-file-utils
, vala_0_56
, gobject-introspection
, libxml2
, gtk4
, glib
, gsound
, sound-theme-freedesktop
, gsettings-desktop-schemas
, gnome-desktop
, geocode-glib
, gnome
, gdk-pixbuf
, geoclue2
, libgweather
, libadwaita
}:
stdenv.mkDerivation rec {
pname = "gnome-clocks";
version = "42.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-clocks/${lib.versions.major version}/${pname}-${version}.tar.xz";
sha256 = "DnEY20oDLjzqMhLZjLuCjWt88i/gXgxfyLORxqPdb+A=";
};
nativeBuildInputs = [
vala_0_56
meson
ninja
pkg-config
gettext
itstool
wrapGAppsHook
desktop-file-utils
libxml2
gobject-introspection # for finding vapi files
];
buildInputs = [
gtk4
glib
gsettings-desktop-schemas
gdk-pixbuf
gnome-desktop
geocode-glib
geoclue2
libgweather
gsound
libadwaita
];
preFixup = ''
gappsWrapperArgs+=(
# Fallback sound theme
--prefix XDG_DATA_DIRS : "${sound-theme-freedesktop}/share"
)
'';
doCheck = true;
passthru = {
updateScript = gnome.updateScript {
packageName = "gnome-clocks";
attrPath = "gnome.gnome-clocks";
};
};
meta = with lib; {
homepage = "https://wiki.gnome.org/Apps/Clocks";
description = "Clock application designed for GNOME 3";
maintainers = teams.gnome.members;
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,75 @@
{ lib
, stdenv
, fetchurl
, meson
, ninja
, pkg-config
, vala_0_56
, gettext
, itstool
, python3
, appstream-glib
, desktop-file-utils
, wrapGAppsHook
, glib
, gtk3
, libhandy
, libsecret
, libxml2
, gtk-vnc
, gtk-frdp
, gnome
}:
stdenv.mkDerivation rec {
pname = "gnome-connections";
version = "42.1.2";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
hash = "sha256-2ObnJ0EJHYkt/IQoH2JVUdBWjNSC1I21ik7bivoTd7Y=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
vala_0_56
gettext
itstool
python3
appstream-glib
desktop-file-utils
glib # glib-compile-resources
wrapGAppsHook
];
buildInputs = [
glib
gtk-vnc
gtk3
libhandy
libsecret
libxml2
gtk-frdp
];
postPatch = ''
chmod +x build-aux/meson/postinstall.py
patchShebangs build-aux/meson/postinstall.py
'';
passthru = {
updateScript = gnome.updateScript {
packageName = pname;
};
};
meta = with lib; {
homepage = "https://gitlab.gnome.org/GNOME/connections";
description = "A remote desktop client for the GNOME desktop environment";
maintainers = teams.gnome.members;
license = licenses.gpl3Plus;
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,127 @@
{ lib, stdenv
, meson
, ninja
, gettext
, fetchurl
, fetchpatch
, evince
, gjs
, pkg-config
, gtk3
, glib
, tracker
, tracker-miners
, itstool
, libxslt
, webkitgtk
, libgdata
, gnome-desktop
, libzapojit
, libgepub
, gnome
, gdk-pixbuf
, libsoup
, docbook_xsl
, docbook_xml_dtd_42
, gobject-introspection
, inkscape
, poppler_utils
, desktop-file-utils
, wrapGAppsHook
, python3
, appstream-glib
, gsettings-desktop-schemas
}:
stdenv.mkDerivation rec {
pname = "gnome-documents";
version = "3.34.0";
src = fetchurl {
url = "mirror://gnome/sources/gnome-documents/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "1qph567mapg3s1a26k7b8y57g9bklhj2mh8xm758z9zkms20xafq";
};
patches = [
# Fix inkscape 1.0 usage
(fetchpatch {
url = "https://gitlab.gnome.org/GNOME/gnome-documents/commit/0f55a18c40a61e6ae4ec4652604775f139892350.diff";
sha256 = "1yrisq69dl1dn7639drlbza20a5ic6xg04ksr9iq4sxdx3xj3d8s";
})
];
nativeBuildInputs = [
meson
ninja
pkg-config
gettext
itstool
libxslt
desktop-file-utils
docbook_xsl
docbook_xml_dtd_42
wrapGAppsHook
python3
appstream-glib
# building getting started
inkscape
poppler_utils
];
buildInputs = [
gtk3
glib
gsettings-desktop-schemas
gdk-pixbuf
gnome.adwaita-icon-theme
evince
libsoup
webkitgtk
gjs
gobject-introspection
tracker
tracker-miners
libgdata
gnome-desktop
libzapojit
libgepub
];
doCheck = true;
mesonFlags = [
"-Dgetting_started=true"
];
postPatch = ''
chmod +x meson_post_install.py # patchShebangs requires executable file
patchShebangs meson_post_install.py
'';
preFixup = ''
substituteInPlace $out/bin/gnome-documents --replace gapplication "${glib.bin}/bin/gapplication"
'';
preConfigure =
# To silence inkscape warnings regarding profile directory
''
export INKSCAPE_PROFILE_DIR="$(mktemp -d)"
'';
passthru = {
updateScript = gnome.updateScript {
packageName = pname;
attrPath = "gnome.${pname}";
};
};
meta = with lib; {
broken = true; # Tracker 3 not supported and it cannot start Tracker 2.
homepage = "https://wiki.gnome.org/Apps/Documents";
description = "Document manager application designed to work with GNOME 3";
maintainers = teams.gnome.members;
license = licenses.gpl2;
platforms = platforms.linux;
};
}

Some files were not shown because too many files have changed in this diff Show more