From fe952a42a7898574a1a2f5ac4b386c6bdd713b2e Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 11 May 2015 14:41:41 +0200 Subject: [PATCH 001/165] systemd: Update to 219 --- nixos/modules/system/boot/systemd.nix | 1 + pkgs/os-specific/linux/systemd/default.nix | 21 +- pkgs/os-specific/linux/systemd/fixes.patch | 1569 +++++++++----------- 3 files changed, 717 insertions(+), 874 deletions(-) diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix index 1fde720bba0d..fdaf4dabc392 100644 --- a/nixos/modules/system/boot/systemd.nix +++ b/nixos/modules/system/boot/systemd.nix @@ -69,6 +69,7 @@ let "systemd-journal-flush.service" "systemd-journal-gatewayd.socket" "systemd-journal-gatewayd.service" + "systemd-journald-audit.socket" "systemd-journald-dev-log.socket" "syslog.socket" diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix index f18cc6fa6130..ab8545b438e2 100644 --- a/pkgs/os-specific/linux/systemd/default.nix +++ b/pkgs/os-specific/linux/systemd/default.nix @@ -10,26 +10,28 @@ assert stdenv.isLinux; assert pythonSupport -> pythonPackages != null; stdenv.mkDerivation rec { - version = "217"; + version = "219"; name = "systemd-${version}"; src = fetchurl { url = "http://www.freedesktop.org/software/systemd/${name}.tar.xz"; - sha256 = "163l1y4p2a564d4ynfq3k3xf53j2v5s81blb6cvpn1y7rpxyccd0"; + sha256 = "1ngj0d2wg6r58m4zycd2w0zkmkz71abbv0dl1h6h8z73ahs12msw"; }; patches = [ # These are all changes between upstream and - # https://github.com/edolstra/systemd/tree/nixos-v217. + # https://github.com/edolstra/systemd/tree/nixos-v219. ./fixes.patch ]; buildInputs = - [ pkgconfig intltool gperf libcap kmod xz pam acl + [ pkgconfig intltool gperf kmod xz pam acl /* cryptsetup */ libuuid m4 glib libxslt libgcrypt - libmicrohttpd linuxHeaders + libmicrohttpd linuxHeaders kexectools ] ++ stdenv.lib.optionals pythonSupport [pythonPackages.python pythonPackages.lxml]; + propagatedBuildInputs = [ libcap ]; + configureFlags = [ "--localstatedir=/var" "--sysconfdir=/etc" @@ -56,6 +58,10 @@ stdenv.mkDerivation rec { "--disable-localed" "--enable-resolved" "--disable-split-usr" + "--disable-libcurl" + "--disable-libidn" + "--disable-quotacheck" + "--disable-ldconfig" "--with-sysvinit-path=" "--with-sysvrcnd-path=" @@ -66,7 +72,7 @@ stdenv.mkDerivation rec { '' # FIXME: patch this in systemd properly (and send upstream). # FIXME: use sulogin from util-linux once updated. - for i in src/remount-fs/remount-fs.c src/core/mount.c src/core/swap.c src/fsck/fsck.c units/emergency.service.in units/rescue.service.m4.in src/journal/cat.c src/core/shutdown.c src/nspawn/nspawn.c; do + for i in src/remount-fs/remount-fs.c src/core/mount.c src/core/swap.c src/fsck/fsck.c units/emergency.service.in units/rescue.service.in src/journal/cat.c src/core/shutdown.c src/nspawn/nspawn.c; do test -e $i substituteInPlace $i \ --replace /usr/bin/getent ${stdenv.glibc}/bin/getent \ @@ -76,8 +82,7 @@ stdenv.mkDerivation rec { --replace /sbin/swapoff ${utillinux}/sbin/swapoff \ --replace /bin/echo ${coreutils}/bin/echo \ --replace /bin/cat ${coreutils}/bin/cat \ - --replace /sbin/sulogin ${utillinux}/sbin/sulogin \ - --replace /sbin/kexec ${kexectools}/sbin/kexec + --replace /sbin/sulogin ${utillinux}/sbin/sulogin done substituteInPlace src/journal/catalog.c \ diff --git a/pkgs/os-specific/linux/systemd/fixes.patch b/pkgs/os-specific/linux/systemd/fixes.patch index c1c768dbacb9..1492051d3912 100644 --- a/pkgs/os-specific/linux/systemd/fixes.patch +++ b/pkgs/os-specific/linux/systemd/fixes.patch @@ -1,5 +1,65 @@ +diff --git a/hwdb/60-keyboard.hwdb b/hwdb/60-keyboard.hwdb +index 1b7d871..9f99ca8 100644 +--- a/hwdb/60-keyboard.hwdb ++++ b/hwdb/60-keyboard.hwdb +@@ -259,7 +259,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS*:pvr* + # Dell XPS12 9Q33 + keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS12-9Q33*:pvr* + KEYBOARD_KEY_88=wlan +- KEYBOARD_KEY_65=switchvideomode # Screen Rotate ++ KEYBOARD_KEY_65=direction # Screen Rotate + + # Dell Latitude microphone mute + keyboard:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude* +@@ -586,7 +586,6 @@ keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pnS10-*:pvr* + KEYBOARD_KEY_f3=f21 + + # Thinkpad X200_Tablet +-keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pnThinkPad*X2*Tablet*:pvr* + keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrThinkPad*X2*Tablet* + KEYBOARD_KEY_5d=menu + KEYBOARD_KEY_63=fn +@@ -596,7 +595,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrThinkPad*X2*Tablet* + KEYBOARD_KEY_6c=direction # rotate screen + + # ThinkPad X6 Tablet +-keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pnThinkPad*X6*:pvr* ++keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrThinkPad*X6*Tablet* + KEYBOARD_KEY_6c=direction # rotate + KEYBOARD_KEY_68=leftmeta # toolbox + KEYBOARD_KEY_6b=esc # escape +@@ -1010,6 +1009,12 @@ keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*7[34]0U3E*:pvr* + KEYBOARD_KEY_b3=!prog3 # Fn+F11 fan/cooling mode changer + KEYBOARD_KEY_d5=!wlan # Fn+F12 wlan/airplane switch + ++# ATIV Book 6 / 8 ++evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*[68][78]0Z*:pvr* ++ KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings ++ KEYBOARD_KEY_96=!kbdillumup # Fn+F10 keyboard backlight up ++ KEYBOARD_KEY_97=!kbdillumdown # Fn+F9 keyboard backlight down ++ + # SQ1US + keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pnSQ1US:pvr* + KEYBOARD_KEY_d4=menu +diff --git a/rules/42-usb-hid-pm.rules b/rules/42-usb-hid-pm.rules +index 4c300da..3721219 100644 +--- a/rules/42-usb-hid-pm.rules ++++ b/rules/42-usb-hid-pm.rules +@@ -28,9 +28,9 @@ ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="14dd", ATTR{idProduct}=="0002" + + # USB HID devices that are internal to the machine should also be safe to autosuspend + +-ACTION=="add", SUBSYSTEM=="usb", SUBSYSTEMS=="usb", ATTRS{removable}=="removable", GOTO="usb_hid_pm_end" +-ACTION=="add", SUBSYSTEM=="usb", SUBSYSTEMS=="usb", ATTRS{removable}=="unknown", GOTO="usb_hid_pm_end" ++ACTION=="add", SUBSYSTEM=="usb", SUBSYSTEMS=="usb", ATTR{../removable}=="removable", GOTO="usb_hid_pm_end" ++ACTION=="add", SUBSYSTEM=="usb", SUBSYSTEMS=="usb", ATTR{../removable}=="unknown", GOTO="usb_hid_pm_end" + +-ACTION=="add", SUBSYSTEM=="usb", ATTR{bInterfaceClass}=="03", ATTRS{removable}=="fixed", TEST=="../power/control", ATTR{../power/control}="auto" ++ACTION=="add", SUBSYSTEM=="usb", ATTR{bInterfaceClass}=="03", ATTR{../removable}=="fixed", TEST=="../power/control", ATTR{../power/control}="auto" + + LABEL="usb_hid_pm_end" diff --git a/rules/99-systemd.rules.in b/rules/99-systemd.rules.in -index e30d9a8..a3d399b 100644 +index b66d727..bb14135 100644 --- a/rules/99-systemd.rules.in +++ b/rules/99-systemd.rules.in @@ -14,10 +14,6 @@ KERNEL=="vport*", TAG+="systemd" @@ -13,147 +73,81 @@ index e30d9a8..a3d399b 100644 # Ignore raid devices that are not yet assembled and started SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", TEST!="md/array_state", ENV{SYSTEMD_READY}="0" SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", ATTR{md/array_state}=="|clear|inactive", ENV{SYSTEMD_READY}="0" -diff --git a/src/core/job.c b/src/core/job.c -index eaa4bb1..db44fee 100644 ---- a/src/core/job.c -+++ b/src/core/job.c -@@ -352,6 +352,9 @@ bool job_type_is_redundant(JobType a, UnitActiveState b) { - return - b == UNIT_ACTIVATING; +diff --git a/src/cgtop/cgtop.c b/src/cgtop/cgtop.c +index 3c7ad40..f951c37 100644 +--- a/src/cgtop/cgtop.c ++++ b/src/cgtop/cgtop.c +@@ -447,7 +447,7 @@ static int display(Hashmap *a) { + Group *g; + Group **array; + signed path_columns; +- unsigned rows, n = 0, j, maxtcpu = 0, maxtpath = 0; ++ unsigned rows, n = 0, j, maxtcpu = 0, maxtpath = 3; /* 3 for ellipsize() to work properly */ + char buffer[MAX3(21, FORMAT_BYTES_MAX, FORMAT_TIMESPAN_MAX)]; -+ case JOB_NOP: -+ return true; -+ - default: - assert_not_reached("Invalid job type"); + assert(a); +diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c +index 90bf563..c614f77 100644 +--- a/src/core/load-fragment.c ++++ b/src/core/load-fragment.c +@@ -1213,17 +1213,15 @@ int config_parse_exec_mount_flags(const char *unit, + flags = MS_SHARED; + else if (streq(t, "slave")) + flags = MS_SLAVE; +- else if (streq(word, "private")) ++ else if (streq(t, "private")) + flags = MS_PRIVATE; + else { +- log_syntax(unit, LOG_ERR, filename, line, EINVAL, +- "Failed to parse mount flag %s, ignoring: %s", t, rvalue); ++ log_syntax(unit, LOG_ERR, filename, line, EINVAL, "Failed to parse mount flag %s, ignoring: %s", t, rvalue); + return 0; + } } -diff --git a/src/core/job.h b/src/core/job.h -index 1e7c61b..ee8e54a 100644 ---- a/src/core/job.h -+++ b/src/core/job.h -@@ -49,9 +49,11 @@ enum JobType { - _JOB_TYPE_MAX_MERGING, - - /* JOB_NOP can enter into a transaction, but as it won't pull in -- * any dependencies, it won't have to merge with anything. -- * job_install() avoids the problem of merging JOB_NOP too (it's -- * special-cased, only merges with other JOB_NOPs). */ -+ * any dependencies and it uses the special 'nop_job' slot in Unit, -+ * it won't have to merge with anything (except possibly into another -+ * JOB_NOP, previously installed). JOB_NOP is special-cased in -+ * job_type_is_*() functions so that the transaction can be -+ * activated. */ - JOB_NOP = _JOB_TYPE_MAX_MERGING, /* do nothing */ - - _JOB_TYPE_MAX_IN_TRANSACTION, -@@ -190,11 +192,15 @@ _pure_ static inline bool job_type_is_mergeable(JobType a, JobType b) { - } - - _pure_ static inline bool job_type_is_conflicting(JobType a, JobType b) { -- return !job_type_is_mergeable(a, b); -+ return a != JOB_NOP && b != JOB_NOP && !job_type_is_mergeable(a, b); - } - - _pure_ static inline bool job_type_is_superset(JobType a, JobType b) { - /* Checks whether operation a is a "superset" of b in its actions */ -+ if (b == JOB_NOP) -+ return true; -+ if (a == JOB_NOP) -+ return false; - return a == job_type_lookup_merge(a, b); - } + if (!isempty(state)) +- log_syntax(unit, LOG_ERR, filename, line, EINVAL, +- "Trailing garbage, ignoring."); ++ log_syntax(unit, LOG_ERR, filename, line, EINVAL, "Trailing garbage, ignoring."); + c->mount_flags = flags; + return 0; diff --git a/src/core/manager.c b/src/core/manager.c -index d427d88..256d6f7 100644 +index 4775219..bc9b7ec 100644 --- a/src/core/manager.c +++ b/src/core/manager.c -@@ -662,9 +662,11 @@ static int manager_setup_notify(Manager *m) { - return -errno; +@@ -961,7 +961,7 @@ int manager_enumerate(Manager *m) { + int q; + + if (unit_vtable[c]->supported && !unit_vtable[c]->supported(m)) { +- log_info("Unit type .%s is not supported on this system.", unit_type_to_string(c)); ++ log_debug("Unit type .%s is not supported on this system.", unit_type_to_string(c)); + continue; } -- if (m->running_as == SYSTEMD_SYSTEM) -+ if (m->running_as == SYSTEMD_SYSTEM) { - m->notify_socket = strdup("/run/systemd/notify"); -- else { -+ if (!m->notify_socket) -+ return log_oom(); -+ } else { - const char *e; +diff --git a/src/core/mount.c b/src/core/mount.c +index f3977e6..52aa30a 100644 +--- a/src/core/mount.c ++++ b/src/core/mount.c +@@ -357,7 +357,9 @@ static bool should_umount(Mount *m) { + MountParameters *p; - e = getenv("XDG_RUNTIME_DIR"); -@@ -674,9 +676,11 @@ static int manager_setup_notify(Manager *m) { - } - - m->notify_socket = strappend(e, "/systemd/notify"); -+ if (!m->notify_socket) -+ return log_oom(); -+ -+ mkdir_parents_label(m->notify_socket, 0755); - } -- if (!m->notify_socket) -- return log_oom(); - - strncpy(sa.un.sun_path, m->notify_socket, sizeof(sa.un.sun_path)-1); - r = bind(fd, &sa.sa, offsetof(struct sockaddr_un, sun_path) + strlen(sa.un.sun_path)); -diff --git a/src/core/shutdown.c b/src/core/shutdown.c -index 20cf526..03cfddc 100644 ---- a/src/core/shutdown.c -+++ b/src/core/shutdown.c -@@ -75,7 +75,9 @@ static int parse_argv(int argc, char *argv[]) { - assert(argc >= 1); - assert(argv); - -- while ((c = getopt_long(argc, argv, "", options, NULL)) >= 0) -+ /* "-" prevents getopt from permuting argv[] and moving the verb away -+ * from argv[1]. Our interface to initrd promises it'll be there. */ -+ while ((c = getopt_long(argc, argv, "-", options, NULL)) >= 0) - switch (c) { - - case ARG_LOG_LEVEL: -@@ -113,6 +115,13 @@ static int parse_argv(int argc, char *argv[]) { - - break; - -+ case '\001': -+ if (!arg_verb) -+ arg_verb = optarg; -+ else -+ log_error("Excess arguments, ignoring"); -+ break; -+ - case '?': - return -EINVAL; - -@@ -120,15 +129,11 @@ static int parse_argv(int argc, char *argv[]) { - assert_not_reached("Unhandled option code."); - } - -- if (optind >= argc) { -+ if (!arg_verb) { - log_error("Verb argument missing."); - return -EINVAL; - } - -- arg_verb = argv[optind]; -- -- if (optind + 1 < argc) -- log_error("Excess arguments, ignoring"); - return 0; - } - -diff --git a/src/core/snapshot.c b/src/core/snapshot.c -index 5eed615..c2678cb 100644 ---- a/src/core/snapshot.c -+++ b/src/core/snapshot.c -@@ -208,7 +208,7 @@ int snapshot_create(Manager *m, const char *name, bool cleanup, sd_bus_error *e, - return sd_bus_error_setf(e, SD_BUS_ERROR_INVALID_ARGS, "Unit name %s lacks snapshot suffix.", name); - - if (manager_get_unit(m, name)) -- sd_bus_error_setf(e, BUS_ERROR_UNIT_EXISTS, "Snapshot %s exists already.", name); -+ return sd_bus_error_setf(e, BUS_ERROR_UNIT_EXISTS, "Snapshot %s exists already.", name); - - } else { + if (path_equal(m->where, "/") || +- path_equal(m->where, "/usr")) ++ path_equal(m->where, "/usr") || ++ path_equal(m->where, "/nix") || ++ path_equal(m->where, "/nix/store")) + return false; + p = get_mount_parameters(m); +@@ -385,6 +387,8 @@ static int mount_add_default_dependencies(Mount *m) { + * virtual, and hence not worth the effort. */ + if (path_equal(m->where, "/") || + path_equal(m->where, "/usr") || ++ path_equal(m->where, "/nix") || ++ path_equal(m->where, "/nix/store") || + path_startswith(m->where, "/proc") || + path_startswith(m->where, "/sys") || + path_startswith(m->where, "/dev")) diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in index d5b86bf..9c66e7b 100644 --- a/src/core/systemd.pc.in @@ -169,35 +163,11 @@ index d5b86bf..9c66e7b 100644 systemdsystemgeneratordir=@systemgeneratordir@ systemdusergeneratordir=@usergeneratordir@ systemdsleepdir=@systemsleepdir@ -diff --git a/src/core/timer.c b/src/core/timer.c -index a3713e2..5c4e9f9 100644 ---- a/src/core/timer.c -+++ b/src/core/timer.c -@@ -521,6 +521,7 @@ fail: - - static int timer_start(Unit *u) { - Timer *t = TIMER(u); -+ TimerValue *v; - - assert(t); - assert(t->state == TIMER_DEAD || t->state == TIMER_FAILED); -@@ -530,6 +531,11 @@ static int timer_start(Unit *u) { - - t->last_trigger = DUAL_TIMESTAMP_NULL; - -+ /* Reenable all timers that depend on unit activation time */ -+ LIST_FOREACH(value, v, t->values) -+ if (v->base == TIMER_ACTIVE) -+ v->disabled = false; -+ - if (t->stamp_path) { - struct stat st; - diff --git a/src/core/umount.c b/src/core/umount.c -index cffa453..4d1a9ff 100644 +index dd7df19..5bc0b12 100644 --- a/src/core/umount.c +++ b/src/core/umount.c -@@ -385,6 +385,8 @@ static int mount_points_list_umount(MountPoint **head, bool *changed, bool log_e +@@ -391,6 +391,8 @@ static int mount_points_list_umount(MountPoint **head, bool *changed, bool log_e * anyway, since we are running from it. They have * already been remounted ro. */ if (path_equal(m->path, "/") @@ -206,522 +176,425 @@ index cffa453..4d1a9ff 100644 #ifndef HAVE_SPLIT_USR || path_equal(m->path, "/usr") #endif -diff --git a/src/delta/delta.c b/src/delta/delta.c -index 25c4a0b..e1f2d6d 100644 ---- a/src/delta/delta.c -+++ b/src/delta/delta.c -@@ -487,7 +487,7 @@ static int parse_flags(const char *flag_str, int flags) { - const char *word, *state; - size_t l; +diff --git a/src/core/unit.c b/src/core/unit.c +index ee8e607..2d87702 100644 +--- a/src/core/unit.c ++++ b/src/core/unit.c +@@ -1648,12 +1648,15 @@ static void unit_check_binds_to(Unit *u) { + continue; -- FOREACH_WORD(word, l, flag_str, state) { -+ FOREACH_WORD_SEPARATOR(word, l, flag_str, ",", state) { - if (strneq("masked", word, l)) - flags |= SHOW_MASKED; - else if (strneq ("equivalent", word, l)) + stop = true; ++ break; + } + + if (!stop) + return; + +- log_unit_info(u->id, "Unit %s is bound to inactive unit. Stopping, too.", u->id); ++ assert(other); ++ if (u->type != UNIT_MOUNT || detect_container(NULL) <= 0) ++ log_unit_info(u->id, "Unit %s is bound to inactive unit %s. Stopping, too.", u->id, other->id); + + /* A unit we need to run is gone. Sniff. Let's stop this. */ + manager_add_job(u->manager, JOB_STOP, u, JOB_FAIL, true, NULL, NULL); diff --git a/src/fsck/fsck.c b/src/fsck/fsck.c -index 70a5918..1926e52 100644 +index 78ceeb6..9400496 100644 --- a/src/fsck/fsck.c +++ b/src/fsck/fsck.c -@@ -315,8 +315,7 @@ int main(int argc, char *argv[]) { +@@ -318,8 +318,7 @@ int main(int argc, char *argv[]) { return EXIT_FAILURE; } - cmdline[i++] = "/sbin/fsck"; - cmdline[i++] = arg_repair; -+ cmdline[i++] = "/run/current-system/sw/bin/fsck"; ++ cmdline[i++] = "/run/current-system/sw/sbin/fsck"; cmdline[i++] = "-T"; /* -diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c -index e257c12..1e04553 100644 ---- a/src/fstab-generator/fstab-generator.c -+++ b/src/fstab-generator/fstab-generator.c -@@ -485,7 +485,7 @@ static int add_usr_mount(void) { - return log_oom(); +diff --git a/src/journal-remote/journal-remote-parse.c b/src/journal-remote/journal-remote-parse.c +index d9dea8d..afded7e 100644 +--- a/src/journal-remote/journal-remote-parse.c ++++ b/src/journal-remote/journal-remote-parse.c +@@ -344,22 +344,25 @@ int process_data(RemoteSource *source) { + LLLLLLLL0011223344...\n + */ + sep = memchr(line, '=', n); +- if (sep) ++ if (sep) { + /* chomp newline */ + n--; +- else ++ ++ r = iovw_put(&source->iovw, line, n); ++ if (r < 0) ++ return r; ++ } else { + /* replace \n with = */ + line[n-1] = '='; +- log_trace("Received: %.*s", (int) n, line); + +- r = iovw_put(&source->iovw, line, n); +- if (r < 0) { +- log_error("Failed to put line in iovect"); +- return r; ++ source->field_len = n; ++ source->state = STATE_DATA_START; ++ ++ /* we cannot put the field in iovec until we have all data */ + } + +- if (!sep) +- source->state = STATE_DATA_START; ++ log_trace("Received: %.*s (%s)", (int) n, line, sep ? "text" : "binary"); ++ + return 0; /* continue */ } -- if (!arg_usr_what || !arg_usr_options) -+ if (!arg_usr_what) - return 0; +@@ -382,6 +385,7 @@ int process_data(RemoteSource *source) { - what = fstab_node_to_udev_node(arg_usr_what); -@@ -494,7 +494,13 @@ static int add_usr_mount(void) { - return -1; - } + case STATE_DATA: { + void *data; ++ char *field; -- opts = arg_usr_options; -+ if (!arg_usr_options) -+ opts = arg_root_rw > 0 ? "rw" : "ro"; -+ else if (!mount_test_option(arg_usr_options, "ro") && -+ !mount_test_option(arg_usr_options, "rw")) -+ opts = strappenda(arg_usr_options, ",", arg_root_rw > 0 ? "rw" : "ro"); -+ else -+ opts = arg_usr_options; + assert(source->data_size > 0); - log_debug("Found entry what=%s where=/sysroot/usr type=%s", what, strna(arg_usr_fstype)); - return add_mount(what, -diff --git a/src/hostname/hostnamectl.c b/src/hostname/hostnamectl.c -index e487369..ff4e9c9 100644 ---- a/src/hostname/hostnamectl.c -+++ b/src/hostname/hostnamectl.c -@@ -536,5 +536,5 @@ int main(int argc, char *argv[]) { - r = hostnamectl_main(bus, argc, argv); +@@ -396,11 +400,12 @@ int process_data(RemoteSource *source) { - finish: -- return r < 0 ? EXIT_FAILURE : r; -+ return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; + assert(data); + +- r = iovw_put(&source->iovw, data, source->data_size); +- if (r < 0) { +- log_error("failed to put binary buffer in iovect"); ++ field = (char*) data - sizeof(uint64_t) - source->field_len; ++ memmove(field + sizeof(uint64_t), field, source->field_len); ++ ++ r = iovw_put(&source->iovw, field + sizeof(uint64_t), source->field_len + source->data_size); ++ if (r < 0) + return r; +- } + + source->state = STATE_DATA_FINISH; + +diff --git a/src/journal-remote/journal-remote-parse.h b/src/journal-remote/journal-remote-parse.h +index 8499f4e..22db550 100644 +--- a/src/journal-remote/journal-remote-parse.h ++++ b/src/journal-remote/journal-remote-parse.h +@@ -42,7 +42,9 @@ typedef struct RemoteSource { + size_t offset; /* offset to the beginning of live data in the buffer */ + size_t scanned; /* number of bytes since the beginning of data without a newline */ + size_t filled; /* total number of bytes in the buffer */ +- size_t data_size; /* size of the binary data chunk being processed */ ++ ++ size_t field_len; /* used for binary fields: the field name length */ ++ size_t data_size; /* and the size of the binary data chunk being processed */ + + struct iovec_wrapper iovw; + +diff --git a/src/journal-remote/microhttpd-util.c b/src/journal-remote/microhttpd-util.c +index 34d9337..a95fff1 100644 +--- a/src/journal-remote/microhttpd-util.c ++++ b/src/journal-remote/microhttpd-util.c +@@ -179,6 +179,7 @@ static int verify_cert_authorized(gnutls_session_t session) { + return log_error_errno(r, "gnutls_certificate_verification_status_print failed: %m"); + + log_info("Certificate status: %s", out.data); ++ gnutls_free(out.data); + + return status == 0 ? 0 : -EPERM; } +@@ -238,10 +239,14 @@ static int get_auth_dn(gnutls_x509_crt_t client_cert, char **buf) { + return 0; + } + ++static inline void gnutls_x509_crt_deinitp(gnutls_x509_crt_t *p) { ++ gnutls_x509_crt_deinit(*p); ++} ++ + int check_permissions(struct MHD_Connection *connection, int *code, char **hostname) { + const union MHD_ConnectionInfo *ci; + gnutls_session_t session; +- gnutls_x509_crt_t client_cert; ++ _cleanup_(gnutls_x509_crt_deinitp) gnutls_x509_crt_t client_cert = NULL; + _cleanup_free_ char *buf = NULL; + int r; + diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c -index 8a2c0fc..9de3ddd 100644 +index 2845e05..9c9838f 100644 --- a/src/journal/journal-file.c +++ b/src/journal/journal-file.c -@@ -1657,7 +1657,7 @@ static int generic_array_bisect( - } - } +@@ -2611,8 +2611,8 @@ int journal_file_open( + * shouldn't be too bad, given that we do our own + * checksumming). */ + r = chattr_fd(f->fd, true, FS_NOCOW_FL); +- if (r < 0) +- log_warning_errno(errno, "Failed to set file attributes: %m"); ++ if (r < 0 && r != -ENOTTY) ++ log_warning_errno(r, "Failed to set file attributes: %m"); -- if (k > n) { -+ if (k >= n) { - if (direction == DIRECTION_UP) { - i = n; - subtract_one = true; -diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c -index f50faf4..03579fd 100644 ---- a/src/journal/journalctl.c -+++ b/src/journal/journalctl.c -@@ -682,7 +682,7 @@ static int parse_argv(int argc, char *argv[]) { - assert_not_reached("Unhandled option"); - } - -- if (arg_follow && !arg_no_tail && arg_lines == ARG_LINES_DEFAULT) -+ if (arg_follow && !arg_no_tail && !arg_since && arg_lines == ARG_LINES_DEFAULT) - arg_lines = 10; - - if (!!arg_directory + !!arg_file + !!arg_machine > 1) { -diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c -index 12735c4..08b143b 100644 ---- a/src/journal/journald-server.c -+++ b/src/journal/journald-server.c -@@ -1655,6 +1655,7 @@ void server_done(Server *s) { - free(s->buffer); - free(s->tty_path); - free(s->cgroup_root); -+ free(s->hostname_field); - - if (s->mmap) - mmap_cache_unref(s->mmap); -diff --git a/src/libsystemd-network/network-internal.c b/src/libsystemd-network/network-internal.c -index 372f3ed..d56ee51 100644 ---- a/src/libsystemd-network/network-internal.c -+++ b/src/libsystemd-network/network-internal.c -@@ -392,10 +392,12 @@ void serialize_dhcp_routes(FILE *f, const char *key, struct sd_dhcp_route *route - - fprintf(f, "%s=", key); - -- for (i = 0; i < size; i++) -- fprintf(f, "%s/%" PRIu8 ",%s%s", inet_ntoa(routes[i].dst_addr), -- routes[i].dst_prefixlen, inet_ntoa(routes[i].gw_addr), -+ for (i = 0; i < size; i++) { -+ fprintf(f, "%s/%" PRIu8, inet_ntoa(routes[i].dst_addr), -+ routes[i].dst_prefixlen); -+ fprintf(f, ",%s%s", inet_ntoa(routes[i].gw_addr), - (i < (size - 1)) ? " ": ""); -+ } - - fputs("\n", f); - } -diff --git a/src/libsystemd-network/sd-dhcp-client.c b/src/libsystemd-network/sd-dhcp-client.c -index 0eba4c3..9986b52 100644 ---- a/src/libsystemd-network/sd-dhcp-client.c -+++ b/src/libsystemd-network/sd-dhcp-client.c -@@ -68,7 +68,6 @@ struct sd_dhcp_client { - uint32_t mtu; - uint32_t xid; - usec_t start_time; -- uint16_t secs; - unsigned int attempt; - usec_t request_sent; - sd_event_source *timeout_t1; -@@ -321,10 +320,12 @@ static int client_message_init(sd_dhcp_client *client, DHCPPacket **ret, - _cleanup_free_ DHCPPacket *packet; - size_t optlen, optoffset, size; - be16_t max_size; -+ usec_t time_now; -+ uint16_t secs; - int r; - - assert(client); -- assert(client->secs); -+ assert(client->start_time); - assert(ret); - assert(_optlen); - assert(_optoffset); -@@ -344,7 +345,15 @@ static int client_message_init(sd_dhcp_client *client, DHCPPacket **ret, - - /* Although 'secs' field is a SHOULD in RFC 2131, certain DHCP servers - refuse to issue an DHCP lease if 'secs' is set to zero */ -- packet->dhcp.secs = htobe16(client->secs); -+ r = sd_event_now(client->event, clock_boottime_or_monotonic(), &time_now); -+ if (r < 0) -+ return r; -+ assert(time_now >= client->start_time); -+ -+ /* seconds between sending first and last DISCOVER -+ * must always be strictly positive to deal with broken servers */ -+ secs = ((time_now - client->start_time) / USEC_PER_SEC) ? : 1; -+ packet->dhcp.secs = htobe16(secs); - - /* RFC2132 section 4.1 - A client that cannot receive unicast IP datagrams until its protocol -@@ -441,24 +450,12 @@ static int dhcp_client_send_raw(sd_dhcp_client *client, DHCPPacket *packet, - static int client_send_discover(sd_dhcp_client *client) { - _cleanup_free_ DHCPPacket *discover = NULL; - size_t optoffset, optlen; -- usec_t time_now; - int r; - - assert(client); - assert(client->state == DHCP_STATE_INIT || - client->state == DHCP_STATE_SELECTING); - -- /* See RFC2131 section 4.4.1 */ -- -- r = sd_event_now(client->event, clock_boottime_or_monotonic(), &time_now); -- if (r < 0) -- return r; -- assert(time_now >= client->start_time); -- -- /* seconds between sending first and last DISCOVER -- * must always be strictly positive to deal with broken servers */ -- client->secs = ((time_now - client->start_time) / USEC_PER_SEC) ? : 1; -- - r = client_message_init(client, &discover, DHCP_DISCOVER, - &optlen, &optoffset); - if (r < 0) -@@ -875,10 +872,8 @@ static int client_start(sd_dhcp_client *client) { + /* Let's attach the creation time to the journal file, + * so that the vacuuming code knows the age of this +@@ -2653,10 +2653,8 @@ int journal_file_open( } - client->fd = r; -- if (client->state == DHCP_STATE_INIT) { -+ if (client->state == DHCP_STATE_INIT || client->state == DHCP_STATE_INIT_REBOOT) - client->start_time = now(clock_boottime_or_monotonic()); -- client->secs = 0; + r = mmap_cache_get(f->mmap, f->fd, f->prot, CONTEXT_HEADER, true, 0, PAGE_ALIGN(sizeof(Header)), &f->last_stat, &h); +- if (r < 0) { +- r = -errno; ++ if (r < 0) + goto fail; - } - return client_initialize_events(client, client_receive_message_raw); - } -@@ -1269,6 +1264,9 @@ static int client_handle_message(sd_dhcp_client *client, DHCPMessage *message, - if (r >= 0) { - client->timeout_resend = - sd_event_source_unref(client->timeout_resend); -+ client->receive_message = -+ sd_event_source_unref(client->receive_message); -+ client->fd = asynchronous_close(client->fd); + f->header = h; - if (IN_SET(client->state, DHCP_STATE_REQUESTING, - DHCP_STATE_REBOOTING)) -diff --git a/src/libsystemd-network/sd-dhcp-lease.c b/src/libsystemd-network/sd-dhcp-lease.c -index 4fb01c0..b7c9a07 100644 ---- a/src/libsystemd-network/sd-dhcp-lease.c -+++ b/src/libsystemd-network/sd-dhcp-lease.c -@@ -50,7 +50,7 @@ int sd_dhcp_lease_get_address(sd_dhcp_lease *lease, struct in_addr *addr) { +diff --git a/src/libsystemd/sd-bus/bus-message.c b/src/libsystemd/sd-bus/bus-message.c +index 2959303..c8402a2 100644 +--- a/src/libsystemd/sd-bus/bus-message.c ++++ b/src/libsystemd/sd-bus/bus-message.c +@@ -441,7 +441,7 @@ int bus_message_from_header( + size_t extra, + sd_bus_message **ret) { - int sd_dhcp_lease_get_lifetime(sd_dhcp_lease *lease, uint32_t *lifetime) { - assert_return(lease, -EINVAL); -- assert_return(lease, -EINVAL); -+ assert_return(lifetime, -EINVAL); +- sd_bus_message *m; ++ _cleanup_free_ sd_bus_message *m = NULL; + struct bus_header *h; + size_t a, label_sz; - *lifetime = lease->lifetime; +@@ -460,15 +460,13 @@ int bus_message_from_header( + return -EBADMSG; -diff --git a/src/libsystemd-network/sd-dhcp6-client.c b/src/libsystemd-network/sd-dhcp6-client.c -index fa4f9b5..dbec1a2 100644 ---- a/src/libsystemd-network/sd-dhcp6-client.c -+++ b/src/libsystemd-network/sd-dhcp6-client.c -@@ -200,19 +200,19 @@ int sd_dhcp6_client_set_duid(sd_dhcp6_client *client, uint16_t type, uint8_t *du + h = header; +- if (h->version != 1 && +- h->version != 2) ++ if (!IN_SET(h->version, 1, 2)) + return -EBADMSG; - switch (type) { - case DHCP6_DUID_LLT: -- if (duid_len <= sizeof(client->duid.llt)) -+ if (duid_len <= sizeof(client->duid.llt) - 2) - return -EINVAL; - break; - case DHCP6_DUID_EN: -- if (duid_len != sizeof(client->duid.en)) -+ if (duid_len != sizeof(client->duid.en) - 2) - return -EINVAL; - break; - case DHCP6_DUID_LL: -- if (duid_len <= sizeof(client->duid.ll)) -+ if (duid_len <= sizeof(client->duid.ll) - 2) - return -EINVAL; - break; - case DHCP6_DUID_UUID: -- if (duid_len != sizeof(client->duid.uuid)) -+ if (duid_len != sizeof(client->duid.uuid) - 2) - return -EINVAL; - break; - default: -@@ -222,7 +222,7 @@ int sd_dhcp6_client_set_duid(sd_dhcp6_client *client, uint16_t type, uint8_t *du + if (h->type == _SD_BUS_MESSAGE_TYPE_INVALID) + return -EBADMSG; - client->duid.raw.type = htobe16(type); - memcpy(&client->duid.raw.data, duid, duid_len); -- client->duid_len = duid_len; -+ client->duid_len = duid_len + 2; /* +2 for sizeof(type) */ +- if (h->endian != BUS_LITTLE_ENDIAN && +- h->endian != BUS_BIG_ENDIAN) ++ if (!IN_SET(h->endian, BUS_LITTLE_ENDIAN, BUS_BIG_ENDIAN)) + return -EBADMSG; + + /* Note that we are happy with unknown flags in the flags header! */ +@@ -557,6 +555,7 @@ int bus_message_from_header( + + m->bus = sd_bus_ref(bus); + *ret = m; ++ m = NULL; return 0; } -diff --git a/src/libsystemd/sd-bus/bus-match.c b/src/libsystemd/sd-bus/bus-match.c -index 18afe0f..5658c61 100644 ---- a/src/libsystemd/sd-bus/bus-match.c -+++ b/src/libsystemd/sd-bus/bus-match.c -@@ -537,7 +537,7 @@ static int bus_match_find_compare_value( - else if (BUS_MATCH_CAN_HASH(t)) - n = hashmap_get(c->compare.children, value_str); - else { -- for (n = c->child; !value_node_same(n, t, value_u8, value_str); n = n->next) -+ for (n = c->child; n && !value_node_same(n, t, value_u8, value_str); n = n->next) - ; - } - -diff --git a/src/libsystemd/sd-bus/bus-objects.c b/src/libsystemd/sd-bus/bus-objects.c -index 0ab1119..6c3230a 100644 ---- a/src/libsystemd/sd-bus/bus-objects.c -+++ b/src/libsystemd/sd-bus/bus-objects.c -@@ -617,6 +617,9 @@ static int property_get_set_callbacks_run( - return r; - - } else { -+ const char *signature = NULL; -+ char type = 0; +diff --git a/src/libudev/libudev-monitor.c b/src/libudev/libudev-monitor.c +index 3f1fee7..d0486e3 100644 +--- a/src/libudev/libudev-monitor.c ++++ b/src/libudev/libudev-monitor.c +@@ -749,12 +749,20 @@ int udev_monitor_send_device(struct udev_monitor *udev_monitor, + * If we send to a multicast group, we will get + * ECONNREFUSED, which is expected. + */ +- if (destination != NULL) ++ if (destination) + smsg.msg_name = &destination->snl; + else + smsg.msg_name = &udev_monitor->snl_destination; + smsg.msg_namelen = sizeof(struct sockaddr_nl); + count = sendmsg(udev_monitor->sock, &smsg, 0); ++ if (count < 0) { ++ if (!destination && errno == ECONNREFUSED) { ++ log_debug("passed unknown number of bytes to netlink monitor %p", udev_monitor); ++ return 0; ++ } else ++ return -errno; ++ } + - if (c->vtable->type != _SD_BUS_VTABLE_WRITABLE_PROPERTY) - return sd_bus_reply_method_errorf(m, SD_BUS_ERROR_PROPERTY_READ_ONLY, "Property '%s' is not writable.", c->member); - -@@ -628,6 +631,13 @@ static int property_get_set_callbacks_run( - - c->last_iteration = bus->iteration_counter; - -+ r = sd_bus_message_peek_type(m, &type, &signature); -+ if (r < 0) -+ return r; -+ -+ if (type != 'v' || !streq(strempty(signature), strempty(c->vtable->x.property.signature))) -+ return sd_bus_reply_method_errorf(m, SD_BUS_ERROR_INVALID_ARGS, "Incorrect parameters for property '%s', expected '%s', got '%s'.", c->member, strempty(c->vtable->x.property.signature), strempty(signature)); -+ - r = sd_bus_message_enter_container(m, 'v', c->vtable->x.property.signature); - if (r < 0) - return r; -diff --git a/src/libsystemd/sd-rtnl/rtnl-message.c b/src/libsystemd/sd-rtnl/rtnl-message.c -index b501a52..740133a 100644 ---- a/src/libsystemd/sd-rtnl/rtnl-message.c -+++ b/src/libsystemd/sd-rtnl/rtnl-message.c -@@ -36,6 +36,8 @@ - #define GET_CONTAINER(m, i) ((i) < (m)->n_containers ? (struct rtattr*)((uint8_t*)(m)->hdr + (m)->container_offsets[i]) : NULL) - #define PUSH_CONTAINER(m, new) (m)->container_offsets[(m)->n_containers ++] = (uint8_t*)(new) - (uint8_t*)(m)->hdr; - -+#define RTA_TYPE(rta) ((rta)->rta_type & NLA_TYPE_MASK) -+ - static int message_new_empty(sd_rtnl *rtnl, sd_rtnl_message **ret) { - sd_rtnl_message *m; - -@@ -566,8 +568,8 @@ int sd_rtnl_message_append_string(sd_rtnl_message *m, unsigned short type, const - size = (size_t)r; - - if (size) { -- length = strnlen(data, size); -- if (length >= size) -+ length = strnlen(data, size+1); -+ if (length > size) - return -EINVAL; - } else - length = strlen(data); -@@ -1066,7 +1068,7 @@ int rtnl_message_parse(sd_rtnl_message *m, - *rta_tb_size = max + 1; - - for (; RTA_OK(rta, rt_len); rta = RTA_NEXT(rta, rt_len)) { -- type = rta->rta_type; -+ type = RTA_TYPE(rta); - - /* if the kernel is newer than the headers we used - when building, we ignore out-of-range attributes -@@ -1222,7 +1224,7 @@ int socket_read_message(sd_rtnl *rtnl) { - } - } - -- for (new_msg = rtnl->rbuffer; NLMSG_OK(new_msg, len); new_msg = NLMSG_NEXT(new_msg, len)) { -+ for (new_msg = rtnl->rbuffer; NLMSG_OK(new_msg, len) && !done; new_msg = NLMSG_NEXT(new_msg, len)) { - _cleanup_rtnl_message_unref_ sd_rtnl_message *m = NULL; - const NLType *nl_type; - -@@ -1237,7 +1239,8 @@ int socket_read_message(sd_rtnl *rtnl) { - if (new_msg->nlmsg_type == NLMSG_DONE) { - /* finished reading multi-part message */ - done = true; -- break; -+ -+ continue; - } - - /* check that we support this message type */ -diff --git a/src/libudev/libudev-device.c b/src/libudev/libudev-device.c -index 2699374..e2afcb8 100644 ---- a/src/libudev/libudev-device.c -+++ b/src/libudev/libudev-device.c -@@ -730,8 +730,13 @@ _public_ struct udev_device *udev_device_new_from_syspath(struct udev *udev, con - return NULL; - } else { - /* everything else just needs to be a directory */ -- if (stat(path, &statbuf) != 0 || !S_ISDIR(statbuf.st_mode)) -+ if (stat(path, &statbuf) != 0) - return NULL; -+ -+ if (!S_ISDIR(statbuf.st_mode)) { -+ errno = EISDIR; -+ return NULL; -+ } - } - - udev_device = udev_device_new(udev); + log_debug("passed %zi bytes to netlink monitor %p", count, udev_monitor); + return count; + } diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c -index b6d9bc6..759794f 100644 +index fb67251..5c15398 100644 --- a/src/nspawn/nspawn.c +++ b/src/nspawn/nspawn.c -@@ -758,7 +758,7 @@ static int mount_binds(const char *dest, char **l, bool ro) { - * and char devices. */ - if (S_ISDIR(source_st.st_mode)) { - r = mkdir_label(where, 0755); -- if (r < 0) { -+ if (r < 0 && errno != EEXIST) { - log_error("Failed to create mount point %s: %s", where, strerror(-r)); +@@ -827,10 +827,7 @@ static int mount_all(const char *dest) { + int r = 0; - return r; -@@ -818,7 +818,7 @@ static int mount_tmpfs(const char *dest) { - return log_oom(); + for (k = 0; k < ELEMENTSOF(mount_table); k++) { +- _cleanup_free_ char *where = NULL; +-#ifdef HAVE_SELINUX +- _cleanup_free_ char *options = NULL; +-#endif ++ _cleanup_free_ char *where = NULL, *options = NULL; + const char *o; + int t; - r = mkdir_label(where, 0755); -- if (r < 0) { -+ if (r < 0 && errno != EEXIST) { - log_error("creating mount point for tmpfs %s failed: %s", where, strerror(-r)); +@@ -3627,7 +3624,7 @@ int main(int argc, char *argv[]) { + } - return r; -@@ -3073,6 +3073,7 @@ int main(int argc, char *argv[]) { + if (arg_ephemeral) { +- char *np; ++ _cleanup_free_ char *np = NULL; + + /* If the specified path is a mount point we + * generate the new snapshot immediately +@@ -3657,13 +3654,13 @@ int main(int argc, char *argv[]) { + + r = btrfs_subvol_snapshot(arg_directory, np, arg_read_only, true); + if (r < 0) { +- free(np); + log_error_errno(r, "Failed to create snapshot %s from %s: %m", np, arg_directory); + goto finish; + } + + free(arg_directory); + arg_directory = np; ++ np = NULL; + + remove_subvol = true; + +@@ -3700,6 +3697,7 @@ int main(int argc, char *argv[]) { goto finish; } } else { +#if 0 const char *p; - p = strappenda(arg_directory, -@@ -3082,6 +3083,7 @@ int main(int argc, char *argv[]) { + p = strjoina(arg_directory, +@@ -3709,6 +3707,7 @@ int main(int argc, char *argv[]) { + r = -EINVAL; goto finish; - } +#endif } + } else { - char template[] = "/tmp/nspawn-root-XXXXXX"; -diff --git a/src/resolve/resolved-dns-packet.c b/src/resolve/resolved-dns-packet.c -index 7375f77..ec8efcc 100644 ---- a/src/resolve/resolved-dns-packet.c -+++ b/src/resolve/resolved-dns-packet.c -@@ -866,7 +866,7 @@ fail: +diff --git a/src/shared/acl-util.c b/src/shared/acl-util.c +index a4ff1ab..cbe09d7 100644 +--- a/src/shared/acl-util.c ++++ b/src/shared/acl-util.c +@@ -282,6 +282,77 @@ int parse_acl(char *text, acl_t *acl_access, acl_t *acl_default, bool want_mask) + return 0; + } - int dns_packet_read_name(DnsPacket *p, char **_ret, - bool allow_compression, size_t *start) { -- size_t saved_rindex, after_rindex = 0; -+ size_t saved_rindex, after_rindex = 0, jump_barrier; - _cleanup_free_ char *ret = NULL; - size_t n = 0, allocated = 0; - bool first = true; -@@ -876,6 +876,7 @@ int dns_packet_read_name(DnsPacket *p, char **_ret, - assert(_ret); - - saved_rindex = p->rindex; -+ jump_barrier = p->rindex; - - for (;;) { - uint8_t c, d; -@@ -922,7 +923,7 @@ int dns_packet_read_name(DnsPacket *p, char **_ret, - goto fail; - - ptr = (uint16_t) (c & ~0xc0) << 8 | (uint16_t) d; -- if (ptr < DNS_PACKET_HEADER_SIZE || ptr >= saved_rindex) { -+ if (ptr < DNS_PACKET_HEADER_SIZE || ptr >= jump_barrier) { - r = -EBADMSG; - goto fail; - } -@@ -930,9 +931,13 @@ int dns_packet_read_name(DnsPacket *p, char **_ret, - if (after_rindex == 0) - after_rindex = p->rindex; - -+ /* Jumps are limited to a "prior occurence" (RFC-1035 4.1.4) */ -+ jump_barrier = ptr; - p->rindex = ptr; -- } else -+ } else { -+ r = -EBADMSG; - goto fail; ++static int acl_entry_equal(acl_entry_t a, acl_entry_t b) { ++ acl_tag_t tag_a, tag_b; ++ ++ if (acl_get_tag_type(a, &tag_a) < 0) ++ return -errno; ++ ++ if (acl_get_tag_type(b, &tag_b) < 0) ++ return -errno; ++ ++ if (tag_a != tag_b) ++ return false; ++ ++ switch (tag_a) { ++ case ACL_USER_OBJ: ++ case ACL_GROUP_OBJ: ++ case ACL_MASK: ++ case ACL_OTHER: ++ /* can have only one of those */ ++ return true; ++ case ACL_USER: { ++ _cleanup_(acl_free_uid_tpp) uid_t *uid_a, *uid_b; ++ ++ uid_a = acl_get_qualifier(a); ++ if (!uid_a) ++ return -errno; ++ ++ uid_b = acl_get_qualifier(b); ++ if (!uid_b) ++ return -errno; ++ ++ return *uid_a == *uid_b; ++ } ++ case ACL_GROUP: { ++ _cleanup_(acl_free_gid_tpp) gid_t *gid_a, *gid_b; ++ ++ gid_a = acl_get_qualifier(a); ++ if (!gid_a) ++ return -errno; ++ ++ gid_b = acl_get_qualifier(b); ++ if (!gid_b) ++ return -errno; ++ ++ return *gid_a == *gid_b; ++ } ++ default: ++ assert_not_reached("Unknown acl tag type"); ++ } ++} ++ ++static int find_acl_entry(acl_t acl, acl_entry_t entry, acl_entry_t *out) { ++ acl_entry_t i; ++ int r; ++ ++ for (r = acl_get_entry(acl, ACL_FIRST_ENTRY, &i); ++ r > 0; ++ r = acl_get_entry(acl, ACL_NEXT_ENTRY, &i)) { ++ ++ r = acl_entry_equal(i, entry); ++ if (r < 0) ++ return r; ++ if (r > 0) { ++ *out = i; ++ return 1; + } - } ++ } ++ if (r < 0) ++ return -errno; ++ return 0; ++} ++ + int acls_for_file(const char *path, acl_type_t type, acl_t new, acl_t *acl) { + _cleanup_(acl_freep) acl_t old; + acl_entry_t i; +@@ -297,8 +368,12 @@ int acls_for_file(const char *path, acl_type_t type, acl_t new, acl_t *acl) { - if (!GREEDY_REALLOC(ret, allocated, n + 1)) { -diff --git a/src/resolve/resolved.c b/src/resolve/resolved.c -index 7d258c9..6dd4cad 100644 ---- a/src/resolve/resolved.c -+++ b/src/resolve/resolved.c -@@ -108,7 +108,7 @@ int main(int argc, char *argv[]) { + acl_entry_t j; - finish: - sd_notify(false, -- "STOPPIN=1\n" -+ "STOPPING=1\n" - "STATUS=Shutting down..."); +- if (acl_create_entry(&old, &j) < 0) +- return -errno; ++ r = find_acl_entry(old, i, &j); ++ if (r < 0) ++ return r; ++ if (r == 0) ++ if (acl_create_entry(&old, &j) < 0) ++ return -errno; - return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; -diff --git a/src/run/run.c b/src/run/run.c -index e3b6293..dcefb5c 100644 ---- a/src/run/run.c -+++ b/src/run/run.c -@@ -573,9 +573,12 @@ int main(int argc, char* argv[]) { - if (r <= 0) - goto finish; + if (acl_copy_entry(j, i) < 0) + return -errno; +diff --git a/src/shared/acl-util.h b/src/shared/acl-util.h +index 90e88ff..fdb9006 100644 +--- a/src/shared/acl-util.h ++++ b/src/shared/acl-util.h +@@ -41,5 +41,9 @@ int acls_for_file(const char *path, acl_type_t type, acl_t new, acl_t *acl); + DEFINE_TRIVIAL_CLEANUP_FUNC(acl_t, acl_free); + #define acl_free_charp acl_free + DEFINE_TRIVIAL_CLEANUP_FUNC(char*, acl_free_charp); ++#define acl_free_uid_tp acl_free ++DEFINE_TRIVIAL_CLEANUP_FUNC(uid_t*, acl_free_uid_tp); ++#define acl_free_gid_tp acl_free ++DEFINE_TRIVIAL_CLEANUP_FUNC(gid_t*, acl_free_gid_tp); -- r = find_binary(argv[optind], &command); -+ r = find_binary(argv[optind], arg_transport == BUS_TRANSPORT_LOCAL, &command); - if (r < 0) { -- log_error("Failed to find executable %s: %s", argv[optind], strerror(-r)); -+ log_error("Failed to find executable %s%s: %s", -+ argv[optind], -+ arg_transport == BUS_TRANSPORT_LOCAL ? "" : " on local system", -+ strerror(-r)); - goto finish; - } - argv[optind] = command; -diff --git a/src/shared/install.c b/src/shared/install.c -index 035b44c..cab93e8 100644 ---- a/src/shared/install.c -+++ b/src/shared/install.c -@@ -1620,12 +1620,10 @@ int unit_file_enable( - STRV_FOREACH(i, files) { - UnitFileState state; + #endif +diff --git a/src/shared/barrier.c b/src/shared/barrier.c +index f65363a..b7dca75 100644 +--- a/src/shared/barrier.c ++++ b/src/shared/barrier.c +@@ -178,7 +178,7 @@ void barrier_set_role(Barrier *b, unsigned int role) { + assert(b); + assert(role == BARRIER_PARENT || role == BARRIER_CHILD); + /* make sure this is only called once */ +- assert(b->pipe[1] >= 0 && b->pipe[1] >= 0); ++ assert(b->pipe[0] >= 0 && b->pipe[1] >= 0); -+ /* We only want to know if this unit is masked, so we ignore -+ * errors from unit_file_get_state, deferring other checks. -+ * This allows templated units to be enabled on the fly. */ - state = unit_file_get_state(scope, root_dir, *i); -- if (state < 0) { -- log_error("Failed to get unit file state for %s: %s", *i, strerror(-state)); -- return state; -- } -- - if (state == UNIT_FILE_MASKED || state == UNIT_FILE_MASKED_RUNTIME) { - log_error("Failed to enable unit: Unit %s is masked", *i); - return -ENOTSUP; + if (role == BARRIER_PARENT) + b->pipe[1] = safe_close(b->pipe[1]); diff --git a/src/shared/path-lookup.c b/src/shared/path-lookup.c -index 8f75a8e..c800e01 100644 +index 291a2f4..468fb07 100644 --- a/src/shared/path-lookup.c +++ b/src/shared/path-lookup.c -@@ -86,17 +86,14 @@ static char** user_dirs( +@@ -113,17 +113,14 @@ static char** user_dirs( const char * const config_unit_paths[] = { USER_CONFIG_UNIT_PATH, "/etc/systemd/user", @@ -740,7 +613,7 @@ index 8f75a8e..c800e01 100644 NULL }; -@@ -260,13 +257,11 @@ int lookup_paths_init( +@@ -290,13 +287,11 @@ int lookup_paths_init( STRV_IFNOTNULL(generator_early), USER_CONFIG_UNIT_PATH, "/etc/systemd/user", @@ -756,7 +629,7 @@ index 8f75a8e..c800e01 100644 STRV_IFNOTNULL(generator_late), NULL); } else -@@ -276,14 +271,11 @@ int lookup_paths_init( +@@ -306,14 +301,11 @@ int lookup_paths_init( STRV_IFNOTNULL(generator_early), SYSTEM_CONFIG_UNIT_PATH, "/etc/systemd/system", @@ -774,179 +647,248 @@ index 8f75a8e..c800e01 100644 NULL); diff --git a/src/shared/path-util.c b/src/shared/path-util.c -index 67566bc..be03695 100644 +index b9db7f1..5b7fed5 100644 --- a/src/shared/path-util.c +++ b/src/shared/path-util.c -@@ -563,11 +563,11 @@ int path_is_os_tree(const char *path) { - return r >= 0; - } +@@ -456,9 +456,9 @@ int path_is_mount_point(const char *t, bool allow_symlink) { --int find_binary(const char *name, char **filename) { -+int find_binary(const char *name, bool local, char **filename) { - assert(name); + union file_handle_union h = FILE_HANDLE_INIT; + int mount_id = -1, mount_id_parent = -1; +- _cleanup_free_ char *parent = NULL; + struct stat a, b; + int r; ++ _cleanup_close_ int fd = -1; + bool nosupp = false; - if (is_path(name)) { -- if (access(name, X_OK) < 0) -+ if (local && access(name, X_OK) < 0) + /* We are not actually interested in the file handles, but +@@ -468,7 +468,15 @@ int path_is_mount_point(const char *t, bool allow_symlink) { + if (path_equal(t, "/")) + return 1; + +- r = name_to_handle_at(AT_FDCWD, t, &h.handle, &mount_id, allow_symlink ? AT_SYMLINK_FOLLOW : 0); ++ fd = openat(AT_FDCWD, t, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC|(allow_symlink ? 0 : O_PATH)); ++ if (fd < 0) { ++ if (errno == ENOENT) ++ return 0; ++ ++ return -errno; ++ } ++ ++ r = name_to_handle_at(fd, "", &h.handle, &mount_id, AT_EMPTY_PATH); + if (r < 0) { + if (errno == ENOSYS) + /* This kernel does not support name_to_handle_at() +@@ -485,12 +493,9 @@ int path_is_mount_point(const char *t, bool allow_symlink) { return -errno; + } - if (filename) { -@@ -657,7 +657,7 @@ int fsck_exists(const char *fstype) { +- r = path_get_parent(t, &parent); +- if (r < 0) +- return r; - checker = strappenda("fsck.", fstype); - -- r = find_binary(checker, &p); -+ r = find_binary(checker, true, &p); + h.handle.handle_bytes = MAX_HANDLE_SZ; +- r = name_to_handle_at(AT_FDCWD, parent, &h.handle, &mount_id_parent, AT_SYMLINK_FOLLOW); ++ r = name_to_handle_at(fd, "..", &h.handle, &mount_id_parent, 0); if (r < 0) - return r; + if (errno == EOPNOTSUPP) + if (nosupp) +@@ -509,10 +514,7 @@ int path_is_mount_point(const char *t, bool allow_symlink) { + return mount_id != mount_id_parent; + + fallback: +- if (allow_symlink) +- r = stat(t, &a); +- else +- r = lstat(t, &a); ++ r = fstatat(fd, "", &a, AT_EMPTY_PATH); + + if (r < 0) { + if (errno == ENOENT) +@@ -521,14 +523,8 @@ fallback: + return -errno; + } + +- free(parent); +- parent = NULL; +- +- r = path_get_parent(t, &parent); +- if (r < 0) +- return r; + +- r = stat(parent, &b); ++ r = fstatat(fd, "..", &b, 0); + if (r < 0) + return -errno; diff --git a/src/shared/path-util.h b/src/shared/path-util.h -index 8d171a5..bd0d324 100644 +index bd0d324..be74c46 100644 --- a/src/shared/path-util.h +++ b/src/shared/path-util.h -@@ -55,7 +55,7 @@ int path_is_mount_point(const char *path, bool allow_symlink); - int path_is_read_only_fs(const char *path); - int path_is_os_tree(const char *path); +@@ -26,7 +26,7 @@ + #include "macro.h" + #include "time-util.h" --int find_binary(const char *name, char **filename); -+int find_binary(const char *name, bool local, char **filename); +-#define DEFAULT_PATH_NORMAL "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin" ++#define DEFAULT_PATH_NORMAL "/no-such-path" + #define DEFAULT_PATH_SPLIT_USR DEFAULT_PATH_NORMAL ":/sbin:/bin" - bool paths_check_timestamp(const char* const* paths, usec_t *paths_ts_usec, bool update); + #ifdef HAVE_SPLIT_USR +diff --git a/src/shared/selinux-util.c b/src/shared/selinux-util.c +index a2233e0..a46ddf8 100644 +--- a/src/shared/selinux-util.c ++++ b/src/shared/selinux-util.c +@@ -117,6 +117,7 @@ void mac_selinux_finish(void) { + return; -diff --git a/src/shared/virt.c b/src/shared/virt.c -index f9c4e67..f10baab 100644 ---- a/src/shared/virt.c -+++ b/src/shared/virt.c -@@ -293,8 +293,26 @@ int detect_container(const char **id) { + selabel_close(label_hnd); ++ label_hnd = NULL; + #endif + } - r = read_one_line_file("/run/systemd/container", &m); - if (r == -ENOENT) { -- r = 0; -- goto finish; -+ -+ /* Fallback for cases where PID 1 was not -+ * systemd (for example, cases where -+ * init=/bin/sh is used. */ -+ -+ r = getenv_for_pid(1, "container", &m); -+ if (r <= 0) { -+ -+ /* If that didn't work, give up, -+ * assume no container manager. -+ * -+ * Note: This means we still cannot -+ * detect containers if init=/bin/sh -+ * is passed but privileges dropped, -+ * as /proc/1/environ is only readable -+ * with privileges. */ -+ -+ r = 0; -+ goto finish; -+ } - } - if (r < 0) - return r; diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c -index 28eaa6a..3866308 100644 +index 21cb898..51d79b8 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c -@@ -2651,7 +2651,7 @@ static int start_unit_one( - - log_debug("Adding %s to the set", p); - r = set_consume(s, p); -- if (r < 0) -+ if (r < 0 && r != -EEXIST) +@@ -2881,6 +2881,9 @@ static int check_inhibitors(sd_bus *bus, enum action a) { + if (!sv) return log_oom(); - } -@@ -6917,8 +6917,13 @@ done: - - static int halt_now(enum action a) { - --/* Make sure C-A-D is handled by the kernel from this -- * point on... */ -+ /* The kernel will automaticall flush ATA disks and suchlike -+ * on reboot(), but the file systems need to be synce'd -+ * explicitly in advance. */ -+ sync(); ++ if ((pid_t) pid < 0) ++ return log_error_errno(ERANGE, "Bad PID %"PRIu32": %m", pid); + -+ /* Make sure C-A-D is handled by the kernel from this point -+ * on... */ - reboot(RB_ENABLE_CAD); + if (!strv_contains(sv, + a == ACTION_HALT || + a == ACTION_POWEROFF || +@@ -2892,7 +2895,7 @@ static int check_inhibitors(sd_bus *bus, enum action a) { + user = uid_to_name(uid); - switch (a) { -diff --git a/src/test/test-path-util.c b/src/test/test-path-util.c -index 63d64b2..57264de 100644 ---- a/src/test/test-path-util.c -+++ b/src/test/test-path-util.c -@@ -85,29 +85,30 @@ static void test_path(void) { + log_warning("Operation inhibited by \"%s\" (PID "PID_FMT" \"%s\", user %s), reason is \"%s\".", +- who, pid, strna(comm), strna(user), why); ++ who, (pid_t) pid, strna(comm), strna(user), why); + + c++; } +diff --git a/src/sysv-generator/sysv-generator.c b/src/sysv-generator/sysv-generator.c +index 6e39b44..71c5cba 100644 +--- a/src/sysv-generator/sysv-generator.c ++++ b/src/sysv-generator/sysv-generator.c +@@ -166,7 +166,7 @@ static int generate_unit_file(SysvStub *s) { + /* We might already have a symlink with the same name from a Provides:, + * or from backup files like /etc/init.d/foo.bak. Real scripts always win, + * so remove an existing link */ +- if (is_symlink(unit)) { ++ if (is_symlink(unit) > 0) { + log_warning("Overwriting existing symlink %s with real service", unit); + (void) unlink(unit); + } +diff --git a/src/timedate/timedatectl.c b/src/timedate/timedatectl.c +index 4d89886..1cf46bb 100644 +--- a/src/timedate/timedatectl.c ++++ b/src/timedate/timedatectl.c +@@ -109,14 +109,21 @@ static void print_status_info(const StatusInfo *i) { + + /* Enforce the values of /etc/localtime */ + if (getenv("TZ")) { +- fprintf(stderr, "Warning: Ignoring the TZ variable. Reading the system's time zone setting only.\n\n"); ++ fprintf(stderr, "Warning: Ignoring the TZ variable.\n\n"); + unsetenv("TZ"); + } + ++ r = setenv("TZ", i->timezone, false); ++ if (r < 0) { ++ log_error_errno(errno, "Failed to set TZ environment variable: %m"); ++ exit(EXIT_FAILURE); ++ } ++ tzset(); ++ + if (i->time != 0) { + sec = (time_t) (i->time / USEC_PER_SEC); + have_time = true; +- } else if (arg_transport == BUS_TRANSPORT_LOCAL) { ++ } else if (IN_SET(arg_transport, BUS_TRANSPORT_REMOTE, BUS_TRANSPORT_MACHINE)) { + sec = time(NULL); + have_time = true; + } else +diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c +index c948d4d..7c5772c 100644 +--- a/src/tmpfiles/tmpfiles.c ++++ b/src/tmpfiles/tmpfiles.c +@@ -689,7 +689,7 @@ static int get_acls_from_arg(Item *item) { + * afterwards, so the mask can be added now if necessary. */ + r = parse_acl(item->argument, &item->acl_access, &item->acl_default, !item->force); + if (r < 0) +- log_warning_errno(errno, "Failed to parse ACL \"%s\": %m. Ignoring", ++ log_warning_errno(r, "Failed to parse ACL \"%s\": %m. Ignoring", + item->argument); + #else + log_warning_errno(ENOSYS, "ACLs are not supported. Ignoring"); +@@ -1205,8 +1205,6 @@ static int create_item(Item *i) { + break; + } + +- log_debug("%s created successfully.", i->path); +- + return 0; } --static void test_find_binary(const char *self) { -+static void test_find_binary(const char *self, bool local) { - char *p; +diff --git a/src/udev/udevadm-settle.c b/src/udev/udevadm-settle.c +index fff5de7..e60c462 100644 +--- a/src/udev/udevadm-settle.c ++++ b/src/udev/udevadm-settle.c +@@ -56,6 +56,7 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) { + { "quiet", no_argument, NULL, 'q' }, /* removed */ + {} + }; ++ usec_t deadline; + const char *exists = NULL; + unsigned int timeout = 120; + struct pollfd pfd[1] = { {.fd = -1}, }; +@@ -105,6 +106,8 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) { + return EXIT_FAILURE; + } -- assert_se(find_binary("/bin/sh", &p) == 0); -+ assert_se(find_binary("/bin/sh", local, &p) == 0); - puts(p); - assert_se(streq(p, "/bin/sh")); - free(p); ++ deadline = now(CLOCK_MONOTONIC) + timeout * USEC_PER_SEC; ++ + /* guarantee that the udev daemon isn't pre-processing */ + if (getuid() == 0) { + struct udev_ctrl *uctrl; +@@ -146,6 +149,9 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) { + break; + } -- assert_se(find_binary(self, &p) == 0); -+ assert_se(find_binary(self, local, &p) == 0); - puts(p); - assert_se(endswith(p, "/test-path-util")); - assert_se(path_is_absolute(p)); - free(p); ++ if (timeout > 0 && now(CLOCK_MONOTONIC) >= deadline) ++ break; ++ + /* wake up when queue is empty */ + if (poll(pfd, 1, MSEC_PER_SEC) > 0 && pfd[0].revents & POLLIN) + udev_queue_flush(queue); +diff --git a/src/vconsole/90-vconsole.rules.in b/src/vconsole/90-vconsole.rules.in +index 0620096..35b9ad5 100644 +--- a/src/vconsole/90-vconsole.rules.in ++++ b/src/vconsole/90-vconsole.rules.in +@@ -5,7 +5,6 @@ + # the Free Software Foundation; either version 2.1 of the License, or + # (at your option) any later version. -- assert_se(find_binary("sh", &p) == 0); -+ assert_se(find_binary("sh", local, &p) == 0); - puts(p); - assert_se(endswith(p, "/sh")); - assert_se(path_is_absolute(p)); - free(p); - -- assert_se(find_binary("xxxx-xxxx", &p) == -ENOENT); -+ assert_se(find_binary("xxxx-xxxx", local, &p) == -ENOENT); - -- assert_se(find_binary("/some/dir/xxxx-xxxx", &p) == -ENOENT); -+ assert_se(find_binary("/some/dir/xxxx-xxxx", local, &p) == -+ (local ? -ENOENT : 0)); - } - - static void test_prefixes(void) { -@@ -244,7 +245,8 @@ static void test_strv_resolve(void) { - - int main(int argc, char **argv) { - test_path(); -- test_find_binary(argv[0]); -+ test_find_binary(argv[0], true); -+ test_find_binary(argv[0], false); - test_prefixes(); - test_path_join(); - test_fsck_exists(); -diff --git a/src/udev/udevd.c b/src/udev/udevd.c -index 2e6c713..193702c 100644 ---- a/src/udev/udevd.c -+++ b/src/udev/udevd.c -@@ -994,9 +994,9 @@ static void kernel_cmdline_options(struct udev *udev) { - if (r < 0) - log_warning("Invalid udev.exec-delay ignored: %s", opt + 16); - } else if (startswith(opt, "udev.event-timeout=")) { -- r = safe_atou64(opt + 16, &arg_event_timeout_usec); -+ r = safe_atou64(opt + 19, &arg_event_timeout_usec); - if (r < 0) { -- log_warning("Invalid udev.event-timeout ignored: %s", opt + 16); -+ log_warning("Invalid udev.event-timeout ignored: %s", opt + 19); - break; - } - arg_event_timeout_usec *= USEC_PER_SEC; +-# Kernel resets vconsole state when changing console drivers so run +-# systemd-vconsole-setup when fbcon loads +- +-ACTION=="add", SUBSYSTEM=="graphics", KERNEL=="fbcon", RUN+="@rootlibexecdir@/systemd-vconsole-setup" ++# Each vtcon keeps its own state of fonts. ++# ++ACTION=="add", SUBSYSTEM=="vtconsole", KERNEL=="vtcon*", RUN+="@rootlibexecdir@/systemd-vconsole-setup" diff --git a/units/console-getty.service.m4.in b/units/console-getty.service.m4.in -index 8ac51a4..cae9fb5 100644 +index 8ac51a4..972b86a 100644 --- a/units/console-getty.service.m4.in +++ b/units/console-getty.service.m4.in -@@ -15,7 +15,6 @@ After=rc-local.service +@@ -9,13 +9,13 @@ + Description=Console Getty + Documentation=man:agetty(8) + After=systemd-user-sessions.service plymouth-quit-wait.service ++ConditionPathExists=/dev/console + m4_ifdef(`HAVE_SYSV_COMPAT', + After=rc-local.service + )m4_dnl Before=getty.target [Service] @@ -955,14 +897,11 @@ index 8ac51a4..cae9fb5 100644 Restart=always RestartSec=0 diff --git a/units/container-getty@.service.m4.in b/units/container-getty@.service.m4.in -index 4f7794b..6dfc2e9 100644 +index e126f3a..925af72 100644 --- a/units/container-getty@.service.m4.in +++ b/units/container-getty@.service.m4.in -@@ -14,9 +14,9 @@ After=rc-local.service - )m4_dnl - Before=getty.target - IgnoreOnIsolate=yes -+ConditionPathExists=/dev/pts/%I +@@ -17,7 +17,6 @@ IgnoreOnIsolate=yes + ConditionPathExists=/dev/pts/%I [Service] -ExecStart=-/sbin/agetty --noclear --keep-baud pts/%I 115200,38400,9600 $TERM @@ -970,7 +909,7 @@ index 4f7794b..6dfc2e9 100644 Restart=always RestartSec=0 diff --git a/units/emergency.service.in b/units/emergency.service.in -index 18973e7..3a99660 100644 +index 2695d7b..a8b7a2e 100644 --- a/units/emergency.service.in +++ b/units/emergency.service.in @@ -16,7 +16,6 @@ Before=shutdown.target @@ -979,7 +918,7 @@ index 18973e7..3a99660 100644 WorkingDirectory=/root -ExecStartPre=-/bin/plymouth quit ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" or ^D to\\ntry again to boot into default mode.' - ExecStart=-/bin/sh -c "/sbin/sulogin; @SYSTEMCTL@ --fail --no-block default" + ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --fail --no-block default" Type=idle diff --git a/units/getty@.service.m4 b/units/getty@.service.m4 index 46164ab..f194a31 100644 @@ -1012,30 +951,8 @@ index 0934a87..7e30c9e 100644 [Service] Type=oneshot -diff --git a/units/local-fs.target b/units/local-fs.target -index d2e5429..d26984b 100644 ---- a/units/local-fs.target -+++ b/units/local-fs.target -@@ -13,3 +13,5 @@ Conflicts=shutdown.target - After=local-fs-pre.target - OnFailure=emergency.target - OnFailureJobMode=replace-irreversibly -+ -+X-StopOnReconfiguration=yes -diff --git a/units/remote-fs.target b/units/remote-fs.target -index 43ffa5c..156a681 100644 ---- a/units/remote-fs.target -+++ b/units/remote-fs.target -@@ -12,5 +12,7 @@ After=remote-fs-pre.target - DefaultDependencies=no - Conflicts=shutdown.target - -+X-StopOnReconfiguration=yes -+ - [Install] - WantedBy=multi-user.target diff --git a/units/rescue.service.in b/units/rescue.service.in -index fc93f1e..3c87cf8 100644 +index de73fee..25617ba 100644 --- a/units/rescue.service.in +++ b/units/rescue.service.in @@ -16,7 +16,6 @@ Before=shutdown.target @@ -1044,7 +961,7 @@ index fc93f1e..3c87cf8 100644 WorkingDirectory=/root -ExecStartPre=-/bin/plymouth quit ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" or ^D to\\nboot into default mode.' - ExecStart=-/bin/sh -c "/sbin/sulogin; @SYSTEMCTL@ --fail --no-block default" + ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --fail --no-block default" Type=idle diff --git a/units/serial-getty@.service.m4 b/units/serial-getty@.service.m4 index 4522d0d..96daa5c 100644 @@ -1069,70 +986,6 @@ index ec33503..4ac47b9 100644 -Wants=local-fs.target swap.target -After=local-fs.target swap.target emergency.service emergency.target +After=emergency.service emergency.target -diff --git a/units/systemd-backlight@.service.in b/units/systemd-backlight@.service.in -index ecf3de4..7e83446 100644 ---- a/units/systemd-backlight@.service.in -+++ b/units/systemd-backlight@.service.in -@@ -19,3 +19,4 @@ Type=oneshot - RemainAfterExit=yes - ExecStart=@rootlibexecdir@/systemd-backlight load %i - ExecStop=@rootlibexecdir@/systemd-backlight save %i -+X-RestartIfChanged=false -diff --git a/units/systemd-journal-flush.service.in b/units/systemd-journal-flush.service.in -index 699670b..ba22c6d 100644 ---- a/units/systemd-journal-flush.service.in -+++ b/units/systemd-journal-flush.service.in -@@ -10,8 +10,10 @@ Description=Trigger Flushing of Journal to Persistent Storage - Documentation=man:systemd-journald.service(8) man:journald.conf(5) - DefaultDependencies=no - Requires=systemd-journald.service --After=systemd-journald.service local-fs.target remote-fs.target -+After=systemd-journald.service -+After=systemd-remount-fs.service - Before=systemd-user-sessions.service systemd-tmpfiles-setup.service -+RequiresMountsFor=/var/log/journal - - [Service] - ExecStart=@rootbindir@/journalctl --flush -diff --git a/units/systemd-journald.service.in b/units/systemd-journald.service.in -index 4de38fa..2f23c13 100644 ---- a/units/systemd-journald.service.in -+++ b/units/systemd-journald.service.in -@@ -14,6 +14,7 @@ After=systemd-journald.socket systemd-journald-dev-log.socket syslog.socket - Before=sysinit.target - - [Service] -+Type=notify - Sockets=systemd-journald.socket systemd-journald-dev-log.socket - ExecStart=@rootlibexecdir@/systemd-journald - Restart=always -@@ -26,3 +27,8 @@ WatchdogSec=1min - # Increase the default a bit in order to allow many simultaneous - # services being run since we keep one fd open per service. - LimitNOFILE=16384 -+ -+# Don't restart journald, since that causes services connected to -+# journald to stop logging (see -+# https://bugs.freedesktop.org/show_bug.cgi?id=56043). -+X-RestartIfChanged=no -diff --git a/units/systemd-random-seed.service.in b/units/systemd-random-seed.service.in -index b55844b..3ef9fc6 100644 ---- a/units/systemd-random-seed.service.in -+++ b/units/systemd-random-seed.service.in -@@ -19,3 +19,4 @@ Type=oneshot - RemainAfterExit=yes - ExecStart=@rootlibexecdir@/systemd-random-seed load - ExecStop=@rootlibexecdir@/systemd-random-seed save -+X-RestartIfChanged=false -diff --git a/units/systemd-rfkill@.service.in b/units/systemd-rfkill@.service.in -index 0e9851b..9f8fa0d 100644 ---- a/units/systemd-rfkill@.service.in -+++ b/units/systemd-rfkill@.service.in -@@ -19,3 +19,4 @@ Type=oneshot - RemainAfterExit=yes - ExecStart=@rootlibexecdir@/systemd-rfkill load %I - ExecStop=@rootlibexecdir@/systemd-rfkill save %I -+X-RestartIfChanged=false diff --git a/units/systemd-tmpfiles-setup.service.in b/units/systemd-tmpfiles-setup.service.in index e895cda..194146f 100644 --- a/units/systemd-tmpfiles-setup.service.in @@ -1147,7 +1000,7 @@ index e895cda..194146f 100644 [Service] diff --git a/units/systemd-update-utmp.service.in b/units/systemd-update-utmp.service.in -index 163eccd..7357c12 100644 +index 163eccd..31476c3 100644 --- a/units/systemd-update-utmp.service.in +++ b/units/systemd-update-utmp.service.in @@ -11,7 +11,7 @@ Documentation=man:systemd-update-utmp.service(8) man:utmp(5) @@ -1159,19 +1012,3 @@ index 163eccd..7357c12 100644 Before=sysinit.target shutdown.target [Service] -@@ -19,3 +19,4 @@ Type=oneshot - RemainAfterExit=yes - ExecStart=@rootlibexecdir@/systemd-update-utmp reboot - ExecStop=@rootlibexecdir@/systemd-update-utmp shutdown -+X-RestartIfChanged=false -diff --git a/units/systemd-user-sessions.service.in b/units/systemd-user-sessions.service.in -index 0869e73..b6ed958 100644 ---- a/units/systemd-user-sessions.service.in -+++ b/units/systemd-user-sessions.service.in -@@ -15,3 +15,6 @@ Type=oneshot - RemainAfterExit=yes - ExecStart=@rootlibexecdir@/systemd-user-sessions start - ExecStop=@rootlibexecdir@/systemd-user-sessions stop -+ -+# Restart kills all active sessions. -+X-RestartIfChanged=no From c52a98380673093037a3116025d0aa92cd46a214 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 11 May 2015 15:48:45 +0200 Subject: [PATCH 002/165] Use ConditionVirtualization to disable some services in containers --- nixos/modules/system/boot/systemd.nix | 4 ++++ nixos/modules/virtualisation/container-config.nix | 4 ---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix index fdaf4dabc392..d1e97e0b87f0 100644 --- a/nixos/modules/system/boot/systemd.nix +++ b/nixos/modules/system/boot/systemd.nix @@ -750,6 +750,10 @@ in systemd.targets.local-fs.unitConfig.X-StopOnReconfiguration = true; systemd.targets.remote-fs.unitConfig.X-StopOnReconfiguration = true; + # Don't bother with certain units in containers. + systemd.services.systemd-remount-fs.unitConfig.ConditionVirtualization = "!container"; + systemd.services.systemd-random-seed.unitConfig.ConditionVirtualization = "!container"; + }; } diff --git a/nixos/modules/virtualisation/container-config.nix b/nixos/modules/virtualisation/container-config.nix index 67047541102c..c210c8d5f25e 100644 --- a/nixos/modules/virtualisation/container-config.nix +++ b/nixos/modules/virtualisation/container-config.nix @@ -19,10 +19,6 @@ with lib; # Shut up warnings about not having a boot loader. system.build.installBootLoader = "${pkgs.coreutils}/bin/true"; - systemd.services.systemd-remount-fs.enable = false; - - systemd.services.systemd-random-seed.enable = false; - }; } From f19b58fb6a5cc55af6d8d8ca7979f8e64255d2d0 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 11 May 2015 15:54:16 +0200 Subject: [PATCH 003/165] Create systemd-{network,resolve} user/group unconditionally This shuts up this error from dbus: May 11 13:52:16 machine dbus-daemon[259]: Unknown username "systemd-network" in message bus configuration file May 11 13:52:16 machine dbus-daemon[259]: Unknown username "systemd-resolve" in message bus configuration file which happens because the D-Bus config for networkd/resolved is enabled unconditionally, and we don't have an easy way to turn it off. --- nixos/modules/system/boot/networkd.nix | 3 --- nixos/modules/system/boot/resolved.nix | 3 --- nixos/modules/system/boot/systemd.nix | 5 +++++ 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/nixos/modules/system/boot/networkd.nix b/nixos/modules/system/boot/networkd.nix index b183c0f32366..34eea9af83b1 100644 --- a/nixos/modules/system/boot/networkd.nix +++ b/nixos/modules/system/boot/networkd.nix @@ -641,9 +641,6 @@ in environment.etc."systemd/network".source = generateUnits "network" cfg.units [] []; - users.extraUsers.systemd-network.uid = config.ids.uids.systemd-network; - users.extraGroups.systemd-network.gid = config.ids.gids.systemd-network; - systemd.services.systemd-networkd = { wantedBy = [ "multi-user.target" ]; before = [ "network-interfaces.target" ]; diff --git a/nixos/modules/system/boot/resolved.nix b/nixos/modules/system/boot/resolved.nix index ecd547322d3c..5a98b9b6d480 100644 --- a/nixos/modules/system/boot/resolved.nix +++ b/nixos/modules/system/boot/resolved.nix @@ -30,9 +30,6 @@ with lib; DNS=${concatStringsSep " " config.networking.nameservers} ''; - users.extraUsers.systemd-resolve.uid = config.ids.uids.systemd-resolve; - users.extraGroups.systemd-resolve.gid = config.ids.gids.systemd-resolve; - }; } diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix index d1e97e0b87f0..2a32c963e970 100644 --- a/nixos/modules/system/boot/systemd.nix +++ b/nixos/modules/system/boot/systemd.nix @@ -649,6 +649,11 @@ in ${pkgs.acl}/bin/setfacl -nm g:wheel:rx,d:g:wheel:rx,g:adm:rx,d:g:adm:rx /var/log/journal || true ''; + users.extraUsers.systemd-network.uid = config.ids.uids.systemd-network; + users.extraGroups.systemd-network.gid = config.ids.gids.systemd-network; + users.extraUsers.systemd-resolve.uid = config.ids.uids.systemd-resolve; + users.extraGroups.systemd-resolve.gid = config.ids.gids.systemd-resolve; + # Target for ‘charon send-keys’ to hook into. users.extraGroups.keys.gid = config.ids.gids.keys; From c8ef5989452e191a1d345cd006f54305cb989af6 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 11 May 2015 15:59:11 +0200 Subject: [PATCH 004/165] stage-1: Don't mount /dev/shm if it's already mounted --- nixos/modules/system/boot/stage-2-init.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/nixos/modules/system/boot/stage-2-init.sh b/nixos/modules/system/boot/stage-2-init.sh index 173453a17f71..330e2f97c5bf 100644 --- a/nixos/modules/system/boot/stage-2-init.sh +++ b/nixos/modules/system/boot/stage-2-init.sh @@ -85,8 +85,10 @@ done # More special file systems, initialise required directories. -mkdir -m 0755 /dev/shm -mount -t tmpfs -o "rw,nosuid,nodev,size=@devShmSize@" tmpfs /dev/shm +if ! mountpoint -q /dev/shm; then + mkdir -m 0755 /dev/shm + mount -t tmpfs -o "rw,nosuid,nodev,size=@devShmSize@" tmpfs /dev/shm +fi mkdir -m 0755 -p /dev/pts [ -e /proc/bus/usb ] && mount -t usbfs usbfs /proc/bus/usb # UML doesn't have USB by default mkdir -m 01777 -p /tmp From b978df019a2b1281f7a70445eaa71b45049f4cfd Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 11 May 2015 16:22:49 +0200 Subject: [PATCH 005/165] stage-2: Don't run hwclock in containers --- nixos/modules/system/boot/stage-2-init.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nixos/modules/system/boot/stage-2-init.sh b/nixos/modules/system/boot/stage-2-init.sh index 330e2f97c5bf..a73070ab332f 100644 --- a/nixos/modules/system/boot/stage-2-init.sh +++ b/nixos/modules/system/boot/stage-2-init.sh @@ -164,7 +164,9 @@ $systemConfig/activate # Restore the system time from the hardware clock. We do this after # running the activation script to be sure that /etc/localtime points # at the current time zone. -hwclock --hctosys +if [ -e /dev/rtc ]; then + hwclock --hctosys +fi # Record the boot configuration. From 76055df52de56f92aad34c774e24d606722252fb Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 11 May 2015 17:25:51 +0200 Subject: [PATCH 006/165] Allow systemd-journald to be restarted With systemd 219, this is fine because systemd will cause the new journald to re-use the file descriptors of the old one. So existing connections to the journal are unaffected. --- nixos/modules/system/boot/systemd.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix index 2a32c963e970..27ad1bdec329 100644 --- a/nixos/modules/system/boot/systemd.nix +++ b/nixos/modules/system/boot/systemd.nix @@ -747,7 +747,6 @@ in systemd.services."systemd-rfkill@".restartIfChanged = false; systemd.services."user@".restartIfChanged = false; systemd.services.systemd-journal-flush.restartIfChanged = false; - systemd.services.systemd-journald.restartIfChanged = false; # FIXME: shouldn't be necessary with systemd 219 systemd.services.systemd-random-seed.restartIfChanged = false; systemd.services.systemd-remount-fs.restartIfChanged = false; systemd.services.systemd-update-utmp.restartIfChanged = false; From 388dac478d21b743946362294043b83da4852721 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 11 May 2015 17:32:53 +0200 Subject: [PATCH 007/165] stage-1: Shut up warnings about swap devices that don't exist yet --- nixos/modules/system/boot/stage-1-init.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nixos/modules/system/boot/stage-1-init.sh b/nixos/modules/system/boot/stage-1-init.sh index 5af644279e5f..a6df6216ddb4 100644 --- a/nixos/modules/system/boot/stage-1-init.sh +++ b/nixos/modules/system/boot/stage-1-init.sh @@ -182,9 +182,9 @@ if test -e /sys/power/resume -a -e /sys/power/disk; then for sd in @resumeDevices@; do # Try to detect resume device. According to Ubuntu bug: # https://bugs.launchpad.net/ubuntu/+source/pm-utils/+bug/923326/comments/1 - # When there are multiple swap devices, we can't know where will hibernate - # image reside. We can check all of them for swsuspend blkid. - resumeInfo="$(udevadm info -q property "$sd" )" + # when there are multiple swap devices, we can't know where the hibernate + # image will reside. We can check all of them for swsuspend blkid. + resumeInfo="$(test -e "$d" && udevadm info -q property "$sd")" if [ "$(echo "$resumeInfo" | sed -n 's/^ID_FS_TYPE=//p')" = "swsuspend" ]; then resumeDev="$sd" break From bfedb4940c8eb9037e9d5f9b6e0341635c53e666 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 13 May 2015 16:05:34 +0200 Subject: [PATCH 008/165] transmission: Fix build http://hydra.nixos.org/build/22182663 --- pkgs/applications/networking/p2p/transmission/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/p2p/transmission/default.nix b/pkgs/applications/networking/p2p/transmission/default.nix index bf659816c4f3..3077843cbf44 100644 --- a/pkgs/applications/networking/p2p/transmission/default.nix +++ b/pkgs/applications/networking/p2p/transmission/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, pkgconfig, intltool, file, makeWrapper -, openssl, curl, libevent, inotifyTools, systemd +, openssl, curl, libevent, inotifyTools, systemd, zlib , enableGTK3 ? false, gtk3 }: @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { sha256 = "1sxr1magqb5s26yvr5yhs1f7bmir8gl09niafg64lhgfnhv1kz59"; }; - buildInputs = [ pkgconfig intltool file openssl curl libevent inotifyTools ] + buildInputs = [ pkgconfig intltool file openssl curl libevent inotifyTools zlib ] ++ optionals enableGTK3 [ gtk3 makeWrapper ] ++ optional stdenv.isLinux systemd; From ab91aaaeb85b78623bfdb91d87f5d94d378c1e74 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 13 May 2015 16:37:03 +0200 Subject: [PATCH 009/165] Remove ancient version of udev --- pkgs/os-specific/linux/udev/145.nix | 53 ----------------------------- pkgs/top-level/all-packages.nix | 1 - 2 files changed, 54 deletions(-) delete mode 100644 pkgs/os-specific/linux/udev/145.nix diff --git a/pkgs/os-specific/linux/udev/145.nix b/pkgs/os-specific/linux/udev/145.nix deleted file mode 100644 index fd1cb8a2d8dc..000000000000 --- a/pkgs/os-specific/linux/udev/145.nix +++ /dev/null @@ -1,53 +0,0 @@ -{ stdenv, fetchurl, gperf, pkgconfig, glib, acl, libusb, usbutils, pciutils }: - -assert stdenv ? glibc; - -stdenv.mkDerivation rec { - name = "udev-145"; - - src = fetchurl { - url = "mirror://kernel/linux/utils/kernel/hotplug/${name}.tar.bz2"; - sha256 = "1zmibp6n7d582fqx8vmg9vb2a1435hghfpz36056bc25ccwf7yiv"; - }; - - buildInputs = [gperf pkgconfig glib acl libusb usbutils]; - - configureFlags = "--with-pci-ids-path=${pciutils}/share/pci.ids"; - - preConfigure = - '' - substituteInPlace extras/keymap/Makefile.in \ - --replace /usr/include ${stdenv.glibc}/include - ''; - - postInstall = - '' - # Install some rules that really should be installed by default. - for i in 40-alsa.rules 40-infiniband.rules 40-isdn.rules 40-pilot-links.rules 64-device-mapper.rules 64-md-raid.rules; do - cp rules/packages/$i $out/libexec/rules.d/ - done - - # The path to rule_generator.functions in write_cd_rules and - # write_net_rules is broken. Also, don't store the mutable - # persistant rules in /etc/udev/rules.d but in - # /var/lib/udev/rules.d. - for i in $out/libexec/write_cd_rules $out/libexec/write_net_rules; do - substituteInPlace $i \ - --replace /lib/udev $out/libexec \ - --replace /etc/udev/rules.d /var/lib/udev/rules.d - done - - # Don't set PATH to /bin:/sbin; won't work in NixOS. - substituteInPlace $out/libexec/rule_generator.functions \ - --replace 'PATH=' '#PATH=' - - # Don't hardcore the FIRMWARE_DIRS variable; obtain it from the - # environment of the caller. - sed '3,4d' -i $out/libexec/firmware.sh - ''; - - meta = { - homepage = http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html; - description = "Udev manages the /dev filesystem"; - }; -} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 95eabc5a3c4b..4564d463c20c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9808,7 +9808,6 @@ let cross = assert crossSystem != null; crossSystem; }); - udev145 = callPackage ../os-specific/linux/udev/145.nix { }; udev = pkgs.systemd; eudev = callPackage ../os-specific/linux/eudev {}; From 11ce1cab97ccbe38ed6f276f3fbd2dd7851d05e2 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 13 May 2015 17:11:36 +0200 Subject: [PATCH 010/165] systemd: Don't propagate libcap Instead delete the *.la files. The propagation of libcap was apparently only necessary because there was a gratuitous -lcap in the *.la files. http://hydra.nixos.org/build/22182620 --- pkgs/os-specific/linux/systemd/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix index ab8545b438e2..4b793c29c550 100644 --- a/pkgs/os-specific/linux/systemd/default.nix +++ b/pkgs/os-specific/linux/systemd/default.nix @@ -25,13 +25,11 @@ stdenv.mkDerivation rec { ]; buildInputs = - [ pkgconfig intltool gperf kmod xz pam acl + [ pkgconfig intltool gperf libcap kmod xz pam acl /* cryptsetup */ libuuid m4 glib libxslt libgcrypt libmicrohttpd linuxHeaders kexectools ] ++ stdenv.lib.optionals pythonSupport [pythonPackages.python pythonPackages.lxml]; - propagatedBuildInputs = [ libcap ]; - configureFlags = [ "--localstatedir=/var" "--sysconfdir=/etc" @@ -150,6 +148,8 @@ stdenv.mkDerivation rec { done rm -rf $out/etc/rpm + + rm $out/lib/*.la ''; # */ enableParallelBuilding = true; From c8501a421806c6526a12b2f6537ab38754e9d4ff Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 13 May 2015 18:19:34 +0200 Subject: [PATCH 011/165] Set up /etc/machine-id before starting systemd Otherwise, systemd will try to populate /etc, which we don't want. --- nixos/modules/system/boot/systemd.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix index 27ad1bdec329..afb5a9b78d8a 100644 --- a/nixos/modules/system/boot/systemd.nix +++ b/nixos/modules/system/boot/systemd.nix @@ -647,6 +647,10 @@ in # groups, in addition to those in the systemd-journal group. # Users can always read their own journals. ${pkgs.acl}/bin/setfacl -nm g:wheel:rx,d:g:wheel:rx,g:adm:rx,d:g:adm:rx /var/log/journal || true + + if ! [ -e /etc/machine-id ]; then + ${systemd}/bin/systemd-machine-id-setup + fi ''; users.extraUsers.systemd-network.uid = config.ids.uids.systemd-network; From e6c014e59a8a06c8a37dc6a36427c1c5ac622462 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 22 May 2015 15:29:02 +0200 Subject: [PATCH 012/165] linuxHeaders: Update 3.14 -> 3.18 --- .../os-specific/linux/kernel-headers/{3.14.nix => 3.18.nix} | 4 ++-- pkgs/top-level/all-packages.nix | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) rename pkgs/os-specific/linux/kernel-headers/{3.14.nix => 3.18.nix} (95%) diff --git a/pkgs/os-specific/linux/kernel-headers/3.14.nix b/pkgs/os-specific/linux/kernel-headers/3.18.nix similarity index 95% rename from pkgs/os-specific/linux/kernel-headers/3.14.nix rename to pkgs/os-specific/linux/kernel-headers/3.18.nix index d9d0ce7e3b3d..0cc38a0548ca 100644 --- a/pkgs/os-specific/linux/kernel-headers/3.14.nix +++ b/pkgs/os-specific/linux/kernel-headers/3.18.nix @@ -4,7 +4,7 @@ assert cross == null -> stdenv.isLinux; let - version = "3.14.1"; + version = "3.18.14"; kernelHeadersBaseConfig = if cross == null @@ -18,7 +18,7 @@ stdenv.mkDerivation { src = fetchurl { url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz"; - sha256 = "1njm8gvlj7cq0m1051yxszl4f63383a7sv1na13hkqkv36kipgqx"; + sha256 = "1xh0vvn1l2g1kkg54f0mg0inbpsiqs24ybgsakksmcpcadjgqk1i"; }; targetConfig = if cross != null then cross.config else null; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4564d463c20c..ad8e004f42b0 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -805,7 +805,7 @@ let dtrx = callPackage ../tools/compression/dtrx { }; duperemove = callPackage ../tools/filesystems/duperemove { - linuxHeaders = linuxHeaders_3_14; + linuxHeaders = linuxHeaders_3_18; }; edac-utils = callPackage ../os-specific/linux/edac-utils { }; @@ -9242,7 +9242,7 @@ let linuxHeaders_3_12 = callPackage ../os-specific/linux/kernel-headers/3.12.nix { }; - linuxHeaders_3_14 = callPackage ../os-specific/linux/kernel-headers/3.14.nix { }; + linuxHeaders_3_18 = callPackage ../os-specific/linux/kernel-headers/3.18.nix { }; # We can choose: linuxHeadersCrossChooser = ver : if ver == "2.4" then linuxHeaders24Cross @@ -9751,7 +9751,7 @@ let sysstat = callPackage ../os-specific/linux/sysstat { }; systemd = callPackage ../os-specific/linux/systemd { - linuxHeaders = linuxHeaders_3_14; + linuxHeaders = linuxHeaders_3_18; }; systemtap = callPackage ../development/tools/profiling/systemtap { From 588b92a7d26f20146a29306a583c41b3c46bcaf8 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 22 May 2015 15:34:08 +0200 Subject: [PATCH 013/165] systemd: Update to 220 --- nixos/modules/system/boot/systemd.nix | 2 - pkgs/os-specific/linux/systemd/default.nix | 16 +- pkgs/os-specific/linux/systemd/fixes.patch | 783 ++------------------- 3 files changed, 47 insertions(+), 754 deletions(-) diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix index afb5a9b78d8a..052267e7ad5e 100644 --- a/nixos/modules/system/boot/systemd.nix +++ b/nixos/modules/system/boot/systemd.nix @@ -110,8 +110,6 @@ let "systemd-hibernate.service" "systemd-suspend.service" "systemd-hybrid-sleep.service" - "systemd-shutdownd.socket" - "systemd-shutdownd.service" # Reboot stuff. "reboot.target" diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix index 4b793c29c550..da3f65e3623f 100644 --- a/pkgs/os-specific/linux/systemd/default.nix +++ b/pkgs/os-specific/linux/systemd/default.nix @@ -10,24 +10,24 @@ assert stdenv.isLinux; assert pythonSupport -> pythonPackages != null; stdenv.mkDerivation rec { - version = "219"; + version = "220"; name = "systemd-${version}"; src = fetchurl { url = "http://www.freedesktop.org/software/systemd/${name}.tar.xz"; - sha256 = "1ngj0d2wg6r58m4zycd2w0zkmkz71abbv0dl1h6h8z73ahs12msw"; + sha256 = "0ck38kmhscbd7w0n1rbvw7drc9zpj5a77h02fljyf7i28265hn9n"; }; patches = [ # These are all changes between upstream and - # https://github.com/edolstra/systemd/tree/nixos-v219. + # https://github.com/edolstra/systemd/tree/nixos-v220. ./fixes.patch ]; buildInputs = - [ pkgconfig intltool gperf libcap kmod xz pam acl + [ linuxHeaders pkgconfig intltool gperf libcap kmod xz pam acl /* cryptsetup */ libuuid m4 glib libxslt libgcrypt - libmicrohttpd linuxHeaders kexectools + libmicrohttpd kexectools ] ++ stdenv.lib.optionals pythonSupport [pythonPackages.python pythonPackages.lxml]; configureFlags = @@ -85,11 +85,9 @@ stdenv.mkDerivation rec { substituteInPlace src/journal/catalog.c \ --replace /usr/lib/systemd/catalog/ $out/lib/systemd/catalog/ - ''; - # This is needed because systemd uses the gold linker, which doesn't - # yet have the wrapper script to add rpath flags automatically. - NIX_LDFLAGS = "-rpath ${pam}/lib -rpath ${libcap}/lib -rpath ${acl}/lib -rpath ${stdenv.cc.cc}/lib"; + rm src/journal/audit_type-to-name.h src/udev/keyboard-keys-from-name.gperf + ''; PYTHON_BINARY = "${coreutils}/bin/env python"; # don't want a build time dependency on Python diff --git a/pkgs/os-specific/linux/systemd/fixes.patch b/pkgs/os-specific/linux/systemd/fixes.patch index 1492051d3912..b05e0bae8de5 100644 --- a/pkgs/os-specific/linux/systemd/fixes.patch +++ b/pkgs/os-specific/linux/systemd/fixes.patch @@ -1,134 +1,23 @@ -diff --git a/hwdb/60-keyboard.hwdb b/hwdb/60-keyboard.hwdb -index 1b7d871..9f99ca8 100644 ---- a/hwdb/60-keyboard.hwdb -+++ b/hwdb/60-keyboard.hwdb -@@ -259,7 +259,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS*:pvr* - # Dell XPS12 9Q33 - keyboard:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS12-9Q33*:pvr* - KEYBOARD_KEY_88=wlan -- KEYBOARD_KEY_65=switchvideomode # Screen Rotate -+ KEYBOARD_KEY_65=direction # Screen Rotate - - # Dell Latitude microphone mute - keyboard:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude* -@@ -586,7 +586,6 @@ keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pnS10-*:pvr* - KEYBOARD_KEY_f3=f21 - - # Thinkpad X200_Tablet --keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pnThinkPad*X2*Tablet*:pvr* - keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrThinkPad*X2*Tablet* - KEYBOARD_KEY_5d=menu - KEYBOARD_KEY_63=fn -@@ -596,7 +595,7 @@ keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrThinkPad*X2*Tablet* - KEYBOARD_KEY_6c=direction # rotate screen - - # ThinkPad X6 Tablet --keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pnThinkPad*X6*:pvr* -+keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrThinkPad*X6*Tablet* - KEYBOARD_KEY_6c=direction # rotate - KEYBOARD_KEY_68=leftmeta # toolbox - KEYBOARD_KEY_6b=esc # escape -@@ -1010,6 +1009,12 @@ keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*7[34]0U3E*:pvr* - KEYBOARD_KEY_b3=!prog3 # Fn+F11 fan/cooling mode changer - KEYBOARD_KEY_d5=!wlan # Fn+F12 wlan/airplane switch - -+# ATIV Book 6 / 8 -+evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*[68][78]0Z*:pvr* -+ KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings -+ KEYBOARD_KEY_96=!kbdillumup # Fn+F10 keyboard backlight up -+ KEYBOARD_KEY_97=!kbdillumdown # Fn+F9 keyboard backlight down -+ - # SQ1US - keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pnSQ1US:pvr* - KEYBOARD_KEY_d4=menu -diff --git a/rules/42-usb-hid-pm.rules b/rules/42-usb-hid-pm.rules -index 4c300da..3721219 100644 ---- a/rules/42-usb-hid-pm.rules -+++ b/rules/42-usb-hid-pm.rules -@@ -28,9 +28,9 @@ ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="14dd", ATTR{idProduct}=="0002" - - # USB HID devices that are internal to the machine should also be safe to autosuspend - --ACTION=="add", SUBSYSTEM=="usb", SUBSYSTEMS=="usb", ATTRS{removable}=="removable", GOTO="usb_hid_pm_end" --ACTION=="add", SUBSYSTEM=="usb", SUBSYSTEMS=="usb", ATTRS{removable}=="unknown", GOTO="usb_hid_pm_end" -+ACTION=="add", SUBSYSTEM=="usb", SUBSYSTEMS=="usb", ATTR{../removable}=="removable", GOTO="usb_hid_pm_end" -+ACTION=="add", SUBSYSTEM=="usb", SUBSYSTEMS=="usb", ATTR{../removable}=="unknown", GOTO="usb_hid_pm_end" - --ACTION=="add", SUBSYSTEM=="usb", ATTR{bInterfaceClass}=="03", ATTRS{removable}=="fixed", TEST=="../power/control", ATTR{../power/control}="auto" -+ACTION=="add", SUBSYSTEM=="usb", ATTR{bInterfaceClass}=="03", ATTR{../removable}=="fixed", TEST=="../power/control", ATTR{../power/control}="auto" - - LABEL="usb_hid_pm_end" diff --git a/rules/99-systemd.rules.in b/rules/99-systemd.rules.in -index b66d727..bb14135 100644 +index 10b90b8..db63c11 100644 --- a/rules/99-systemd.rules.in +++ b/rules/99-systemd.rules.in -@@ -14,10 +14,6 @@ KERNEL=="vport*", TAG+="systemd" - SUBSYSTEM=="block", KERNEL!="ram*", TAG+="systemd" - SUBSYSTEM=="block", KERNEL!="ram*", ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="1", ENV{SYSTEMD_READY}="0" +@@ -13,10 +13,6 @@ KERNEL=="vport*", TAG+="systemd" + SUBSYSTEM=="block", TAG+="systemd" + SUBSYSTEM=="block", ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="1", ENV{SYSTEMD_READY}="0" -# Ignore encrypted devices with no identified superblock on it, since -# we are probably still calling mke2fs or mkswap on it. --SUBSYSTEM=="block", KERNEL!="ram*", ENV{DM_UUID}=="CRYPT-*", ENV{ID_PART_TABLE_TYPE}=="", ENV{ID_FS_USAGE}=="", ENV{SYSTEMD_READY}="0" +-SUBSYSTEM=="block", ENV{DM_UUID}=="CRYPT-*", ENV{ID_PART_TABLE_TYPE}=="", ENV{ID_FS_USAGE}=="", ENV{SYSTEMD_READY}="0" - # Ignore raid devices that are not yet assembled and started SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", TEST!="md/array_state", ENV{SYSTEMD_READY}="0" SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", ATTR{md/array_state}=="|clear|inactive", ENV{SYSTEMD_READY}="0" -diff --git a/src/cgtop/cgtop.c b/src/cgtop/cgtop.c -index 3c7ad40..f951c37 100644 ---- a/src/cgtop/cgtop.c -+++ b/src/cgtop/cgtop.c -@@ -447,7 +447,7 @@ static int display(Hashmap *a) { - Group *g; - Group **array; - signed path_columns; -- unsigned rows, n = 0, j, maxtcpu = 0, maxtpath = 0; -+ unsigned rows, n = 0, j, maxtcpu = 0, maxtpath = 3; /* 3 for ellipsize() to work properly */ - char buffer[MAX3(21, FORMAT_BYTES_MAX, FORMAT_TIMESPAN_MAX)]; - - assert(a); -diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c -index 90bf563..c614f77 100644 ---- a/src/core/load-fragment.c -+++ b/src/core/load-fragment.c -@@ -1213,17 +1213,15 @@ int config_parse_exec_mount_flags(const char *unit, - flags = MS_SHARED; - else if (streq(t, "slave")) - flags = MS_SLAVE; -- else if (streq(word, "private")) -+ else if (streq(t, "private")) - flags = MS_PRIVATE; - else { -- log_syntax(unit, LOG_ERR, filename, line, EINVAL, -- "Failed to parse mount flag %s, ignoring: %s", t, rvalue); -+ log_syntax(unit, LOG_ERR, filename, line, EINVAL, "Failed to parse mount flag %s, ignoring: %s", t, rvalue); - return 0; - } - } - if (!isempty(state)) -- log_syntax(unit, LOG_ERR, filename, line, EINVAL, -- "Trailing garbage, ignoring."); -+ log_syntax(unit, LOG_ERR, filename, line, EINVAL, "Trailing garbage, ignoring."); - - c->mount_flags = flags; - return 0; -diff --git a/src/core/manager.c b/src/core/manager.c -index 4775219..bc9b7ec 100644 ---- a/src/core/manager.c -+++ b/src/core/manager.c -@@ -961,7 +961,7 @@ int manager_enumerate(Manager *m) { - int q; - - if (unit_vtable[c]->supported && !unit_vtable[c]->supported(m)) { -- log_info("Unit type .%s is not supported on this system.", unit_type_to_string(c)); -+ log_debug("Unit type .%s is not supported on this system.", unit_type_to_string(c)); - continue; - } - diff --git a/src/core/mount.c b/src/core/mount.c -index f3977e6..52aa30a 100644 +index ba1dcf1..b700ce7 100644 --- a/src/core/mount.c +++ b/src/core/mount.c -@@ -357,7 +357,9 @@ static bool should_umount(Mount *m) { +@@ -367,7 +367,9 @@ static bool should_umount(Mount *m) { MountParameters *p; if (path_equal(m->where, "/") || @@ -139,7 +28,7 @@ index f3977e6..52aa30a 100644 return false; p = get_mount_parameters(m); -@@ -385,6 +387,8 @@ static int mount_add_default_dependencies(Mount *m) { +@@ -395,6 +397,8 @@ static int mount_add_default_dependencies(Mount *m) { * virtual, and hence not worth the effort. */ if (path_equal(m->where, "/") || path_equal(m->where, "/usr") || @@ -149,10 +38,10 @@ index f3977e6..52aa30a 100644 path_startswith(m->where, "/sys") || path_startswith(m->where, "/dev")) diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in -index d5b86bf..9c66e7b 100644 +index ac52b30..d2e28f4 100644 --- a/src/core/systemd.pc.in +++ b/src/core/systemd.pc.in -@@ -14,8 +14,8 @@ systemduserunitdir=@userunitdir@ +@@ -13,8 +13,8 @@ systemduserunitdir=@userunitdir@ systemduserpresetdir=@userpresetdir@ systemdsystemconfdir=@pkgsysconfdir@/system systemduserconfdir=@pkgsysconfdir@/user @@ -164,10 +53,10 @@ index d5b86bf..9c66e7b 100644 systemdusergeneratordir=@usergeneratordir@ systemdsleepdir=@systemsleepdir@ diff --git a/src/core/umount.c b/src/core/umount.c -index dd7df19..5bc0b12 100644 +index bee267a..dc88e17 100644 --- a/src/core/umount.c +++ b/src/core/umount.c -@@ -391,6 +391,8 @@ static int mount_points_list_umount(MountPoint **head, bool *changed, bool log_e +@@ -392,6 +392,8 @@ static int mount_points_list_umount(MountPoint **head, bool *changed, bool log_e * anyway, since we are running from it. They have * already been remounted ro. */ if (path_equal(m->path, "/") @@ -177,280 +66,37 @@ index dd7df19..5bc0b12 100644 || path_equal(m->path, "/usr") #endif diff --git a/src/core/unit.c b/src/core/unit.c -index ee8e607..2d87702 100644 +index e380276..a875df7 100644 --- a/src/core/unit.c +++ b/src/core/unit.c -@@ -1648,12 +1648,15 @@ static void unit_check_binds_to(Unit *u) { - continue; - - stop = true; -+ break; +@@ -1676,7 +1676,8 @@ static void unit_check_binds_to(Unit *u) { } - if (!stop) - return; - -- log_unit_info(u->id, "Unit %s is bound to inactive unit. Stopping, too.", u->id); -+ assert(other); + assert(other); +- log_unit_info(u, "Unit is bound to inactive unit %s. Stopping, too.", other->id); + if (u->type != UNIT_MOUNT || detect_container(NULL) <= 0) -+ log_unit_info(u->id, "Unit %s is bound to inactive unit %s. Stopping, too.", u->id, other->id); ++ log_unit_info(u, "Unit is bound to inactive unit %s. Stopping, too.", other->id); /* A unit we need to run is gone. Sniff. Let's stop this. */ - manager_add_job(u->manager, JOB_STOP, u, JOB_FAIL, true, NULL, NULL); + r = manager_add_job(u->manager, JOB_STOP, u, JOB_FAIL, true, NULL, NULL); diff --git a/src/fsck/fsck.c b/src/fsck/fsck.c -index 78ceeb6..9400496 100644 +index 9bbe9ff..d8a2889 100644 --- a/src/fsck/fsck.c +++ b/src/fsck/fsck.c -@@ -318,8 +318,7 @@ int main(int argc, char *argv[]) { - return EXIT_FAILURE; - } +@@ -412,7 +412,7 @@ int main(int argc, char *argv[]) { + } else + dash_c[0] = 0; -- cmdline[i++] = "/sbin/fsck"; -- cmdline[i++] = arg_repair; -+ cmdline[i++] = "/run/current-system/sw/sbin/fsck"; - cmdline[i++] = "-T"; +- cmdline[i++] = "/sbin/fsck"; ++ cmdline[i++] = "/run/current-system/sw/sbin/fsck"; + cmdline[i++] = arg_repair; + cmdline[i++] = "-T"; - /* -diff --git a/src/journal-remote/journal-remote-parse.c b/src/journal-remote/journal-remote-parse.c -index d9dea8d..afded7e 100644 ---- a/src/journal-remote/journal-remote-parse.c -+++ b/src/journal-remote/journal-remote-parse.c -@@ -344,22 +344,25 @@ int process_data(RemoteSource *source) { - LLLLLLLL0011223344...\n - */ - sep = memchr(line, '=', n); -- if (sep) -+ if (sep) { - /* chomp newline */ - n--; -- else -+ -+ r = iovw_put(&source->iovw, line, n); -+ if (r < 0) -+ return r; -+ } else { - /* replace \n with = */ - line[n-1] = '='; -- log_trace("Received: %.*s", (int) n, line); - -- r = iovw_put(&source->iovw, line, n); -- if (r < 0) { -- log_error("Failed to put line in iovect"); -- return r; -+ source->field_len = n; -+ source->state = STATE_DATA_START; -+ -+ /* we cannot put the field in iovec until we have all data */ - } - -- if (!sep) -- source->state = STATE_DATA_START; -+ log_trace("Received: %.*s (%s)", (int) n, line, sep ? "text" : "binary"); -+ - return 0; /* continue */ - } - -@@ -382,6 +385,7 @@ int process_data(RemoteSource *source) { - - case STATE_DATA: { - void *data; -+ char *field; - - assert(source->data_size > 0); - -@@ -396,11 +400,12 @@ int process_data(RemoteSource *source) { - - assert(data); - -- r = iovw_put(&source->iovw, data, source->data_size); -- if (r < 0) { -- log_error("failed to put binary buffer in iovect"); -+ field = (char*) data - sizeof(uint64_t) - source->field_len; -+ memmove(field + sizeof(uint64_t), field, source->field_len); -+ -+ r = iovw_put(&source->iovw, field + sizeof(uint64_t), source->field_len + source->data_size); -+ if (r < 0) - return r; -- } - - source->state = STATE_DATA_FINISH; - -diff --git a/src/journal-remote/journal-remote-parse.h b/src/journal-remote/journal-remote-parse.h -index 8499f4e..22db550 100644 ---- a/src/journal-remote/journal-remote-parse.h -+++ b/src/journal-remote/journal-remote-parse.h -@@ -42,7 +42,9 @@ typedef struct RemoteSource { - size_t offset; /* offset to the beginning of live data in the buffer */ - size_t scanned; /* number of bytes since the beginning of data without a newline */ - size_t filled; /* total number of bytes in the buffer */ -- size_t data_size; /* size of the binary data chunk being processed */ -+ -+ size_t field_len; /* used for binary fields: the field name length */ -+ size_t data_size; /* and the size of the binary data chunk being processed */ - - struct iovec_wrapper iovw; - -diff --git a/src/journal-remote/microhttpd-util.c b/src/journal-remote/microhttpd-util.c -index 34d9337..a95fff1 100644 ---- a/src/journal-remote/microhttpd-util.c -+++ b/src/journal-remote/microhttpd-util.c -@@ -179,6 +179,7 @@ static int verify_cert_authorized(gnutls_session_t session) { - return log_error_errno(r, "gnutls_certificate_verification_status_print failed: %m"); - - log_info("Certificate status: %s", out.data); -+ gnutls_free(out.data); - - return status == 0 ? 0 : -EPERM; - } -@@ -238,10 +239,14 @@ static int get_auth_dn(gnutls_x509_crt_t client_cert, char **buf) { - return 0; - } - -+static inline void gnutls_x509_crt_deinitp(gnutls_x509_crt_t *p) { -+ gnutls_x509_crt_deinit(*p); -+} -+ - int check_permissions(struct MHD_Connection *connection, int *code, char **hostname) { - const union MHD_ConnectionInfo *ci; - gnutls_session_t session; -- gnutls_x509_crt_t client_cert; -+ _cleanup_(gnutls_x509_crt_deinitp) gnutls_x509_crt_t client_cert = NULL; - _cleanup_free_ char *buf = NULL; - int r; - -diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c -index 2845e05..9c9838f 100644 ---- a/src/journal/journal-file.c -+++ b/src/journal/journal-file.c -@@ -2611,8 +2611,8 @@ int journal_file_open( - * shouldn't be too bad, given that we do our own - * checksumming). */ - r = chattr_fd(f->fd, true, FS_NOCOW_FL); -- if (r < 0) -- log_warning_errno(errno, "Failed to set file attributes: %m"); -+ if (r < 0 && r != -ENOTTY) -+ log_warning_errno(r, "Failed to set file attributes: %m"); - - /* Let's attach the creation time to the journal file, - * so that the vacuuming code knows the age of this -@@ -2653,10 +2653,8 @@ int journal_file_open( - } - - r = mmap_cache_get(f->mmap, f->fd, f->prot, CONTEXT_HEADER, true, 0, PAGE_ALIGN(sizeof(Header)), &f->last_stat, &h); -- if (r < 0) { -- r = -errno; -+ if (r < 0) - goto fail; -- } - - f->header = h; - -diff --git a/src/libsystemd/sd-bus/bus-message.c b/src/libsystemd/sd-bus/bus-message.c -index 2959303..c8402a2 100644 ---- a/src/libsystemd/sd-bus/bus-message.c -+++ b/src/libsystemd/sd-bus/bus-message.c -@@ -441,7 +441,7 @@ int bus_message_from_header( - size_t extra, - sd_bus_message **ret) { - -- sd_bus_message *m; -+ _cleanup_free_ sd_bus_message *m = NULL; - struct bus_header *h; - size_t a, label_sz; - -@@ -460,15 +460,13 @@ int bus_message_from_header( - return -EBADMSG; - - h = header; -- if (h->version != 1 && -- h->version != 2) -+ if (!IN_SET(h->version, 1, 2)) - return -EBADMSG; - - if (h->type == _SD_BUS_MESSAGE_TYPE_INVALID) - return -EBADMSG; - -- if (h->endian != BUS_LITTLE_ENDIAN && -- h->endian != BUS_BIG_ENDIAN) -+ if (!IN_SET(h->endian, BUS_LITTLE_ENDIAN, BUS_BIG_ENDIAN)) - return -EBADMSG; - - /* Note that we are happy with unknown flags in the flags header! */ -@@ -557,6 +555,7 @@ int bus_message_from_header( - - m->bus = sd_bus_ref(bus); - *ret = m; -+ m = NULL; - - return 0; - } -diff --git a/src/libudev/libudev-monitor.c b/src/libudev/libudev-monitor.c -index 3f1fee7..d0486e3 100644 ---- a/src/libudev/libudev-monitor.c -+++ b/src/libudev/libudev-monitor.c -@@ -749,12 +749,20 @@ int udev_monitor_send_device(struct udev_monitor *udev_monitor, - * If we send to a multicast group, we will get - * ECONNREFUSED, which is expected. - */ -- if (destination != NULL) -+ if (destination) - smsg.msg_name = &destination->snl; - else - smsg.msg_name = &udev_monitor->snl_destination; - smsg.msg_namelen = sizeof(struct sockaddr_nl); - count = sendmsg(udev_monitor->sock, &smsg, 0); -+ if (count < 0) { -+ if (!destination && errno == ECONNREFUSED) { -+ log_debug("passed unknown number of bytes to netlink monitor %p", udev_monitor); -+ return 0; -+ } else -+ return -errno; -+ } -+ - log_debug("passed %zi bytes to netlink monitor %p", count, udev_monitor); - return count; - } diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c -index fb67251..5c15398 100644 +index 5009363..72c6887 100644 --- a/src/nspawn/nspawn.c +++ b/src/nspawn/nspawn.c -@@ -827,10 +827,7 @@ static int mount_all(const char *dest) { - int r = 0; - - for (k = 0; k < ELEMENTSOF(mount_table); k++) { -- _cleanup_free_ char *where = NULL; --#ifdef HAVE_SELINUX -- _cleanup_free_ char *options = NULL; --#endif -+ _cleanup_free_ char *where = NULL, *options = NULL; - const char *o; - int t; - -@@ -3627,7 +3624,7 @@ int main(int argc, char *argv[]) { - } - - if (arg_ephemeral) { -- char *np; -+ _cleanup_free_ char *np = NULL; - - /* If the specified path is a mount point we - * generate the new snapshot immediately -@@ -3657,13 +3654,13 @@ int main(int argc, char *argv[]) { - - r = btrfs_subvol_snapshot(arg_directory, np, arg_read_only, true); - if (r < 0) { -- free(np); - log_error_errno(r, "Failed to create snapshot %s from %s: %m", np, arg_directory); - goto finish; - } - - free(arg_directory); - arg_directory = np; -+ np = NULL; - - remove_subvol = true; - -@@ -3700,6 +3697,7 @@ int main(int argc, char *argv[]) { +@@ -4589,6 +4589,7 @@ int main(int argc, char *argv[]) { goto finish; } } else { @@ -458,7 +104,7 @@ index fb67251..5c15398 100644 const char *p; p = strjoina(arg_directory, -@@ -3709,6 +3707,7 @@ int main(int argc, char *argv[]) { +@@ -4598,6 +4599,7 @@ int main(int argc, char *argv[]) { r = -EINVAL; goto finish; } @@ -466,135 +112,11 @@ index fb67251..5c15398 100644 } } else { -diff --git a/src/shared/acl-util.c b/src/shared/acl-util.c -index a4ff1ab..cbe09d7 100644 ---- a/src/shared/acl-util.c -+++ b/src/shared/acl-util.c -@@ -282,6 +282,77 @@ int parse_acl(char *text, acl_t *acl_access, acl_t *acl_default, bool want_mask) - return 0; - } - -+static int acl_entry_equal(acl_entry_t a, acl_entry_t b) { -+ acl_tag_t tag_a, tag_b; -+ -+ if (acl_get_tag_type(a, &tag_a) < 0) -+ return -errno; -+ -+ if (acl_get_tag_type(b, &tag_b) < 0) -+ return -errno; -+ -+ if (tag_a != tag_b) -+ return false; -+ -+ switch (tag_a) { -+ case ACL_USER_OBJ: -+ case ACL_GROUP_OBJ: -+ case ACL_MASK: -+ case ACL_OTHER: -+ /* can have only one of those */ -+ return true; -+ case ACL_USER: { -+ _cleanup_(acl_free_uid_tpp) uid_t *uid_a, *uid_b; -+ -+ uid_a = acl_get_qualifier(a); -+ if (!uid_a) -+ return -errno; -+ -+ uid_b = acl_get_qualifier(b); -+ if (!uid_b) -+ return -errno; -+ -+ return *uid_a == *uid_b; -+ } -+ case ACL_GROUP: { -+ _cleanup_(acl_free_gid_tpp) gid_t *gid_a, *gid_b; -+ -+ gid_a = acl_get_qualifier(a); -+ if (!gid_a) -+ return -errno; -+ -+ gid_b = acl_get_qualifier(b); -+ if (!gid_b) -+ return -errno; -+ -+ return *gid_a == *gid_b; -+ } -+ default: -+ assert_not_reached("Unknown acl tag type"); -+ } -+} -+ -+static int find_acl_entry(acl_t acl, acl_entry_t entry, acl_entry_t *out) { -+ acl_entry_t i; -+ int r; -+ -+ for (r = acl_get_entry(acl, ACL_FIRST_ENTRY, &i); -+ r > 0; -+ r = acl_get_entry(acl, ACL_NEXT_ENTRY, &i)) { -+ -+ r = acl_entry_equal(i, entry); -+ if (r < 0) -+ return r; -+ if (r > 0) { -+ *out = i; -+ return 1; -+ } -+ } -+ if (r < 0) -+ return -errno; -+ return 0; -+} -+ - int acls_for_file(const char *path, acl_type_t type, acl_t new, acl_t *acl) { - _cleanup_(acl_freep) acl_t old; - acl_entry_t i; -@@ -297,8 +368,12 @@ int acls_for_file(const char *path, acl_type_t type, acl_t new, acl_t *acl) { - - acl_entry_t j; - -- if (acl_create_entry(&old, &j) < 0) -- return -errno; -+ r = find_acl_entry(old, i, &j); -+ if (r < 0) -+ return r; -+ if (r == 0) -+ if (acl_create_entry(&old, &j) < 0) -+ return -errno; - - if (acl_copy_entry(j, i) < 0) - return -errno; -diff --git a/src/shared/acl-util.h b/src/shared/acl-util.h -index 90e88ff..fdb9006 100644 ---- a/src/shared/acl-util.h -+++ b/src/shared/acl-util.h -@@ -41,5 +41,9 @@ int acls_for_file(const char *path, acl_type_t type, acl_t new, acl_t *acl); - DEFINE_TRIVIAL_CLEANUP_FUNC(acl_t, acl_free); - #define acl_free_charp acl_free - DEFINE_TRIVIAL_CLEANUP_FUNC(char*, acl_free_charp); -+#define acl_free_uid_tp acl_free -+DEFINE_TRIVIAL_CLEANUP_FUNC(uid_t*, acl_free_uid_tp); -+#define acl_free_gid_tp acl_free -+DEFINE_TRIVIAL_CLEANUP_FUNC(gid_t*, acl_free_gid_tp); - - #endif -diff --git a/src/shared/barrier.c b/src/shared/barrier.c -index f65363a..b7dca75 100644 ---- a/src/shared/barrier.c -+++ b/src/shared/barrier.c -@@ -178,7 +178,7 @@ void barrier_set_role(Barrier *b, unsigned int role) { - assert(b); - assert(role == BARRIER_PARENT || role == BARRIER_CHILD); - /* make sure this is only called once */ -- assert(b->pipe[1] >= 0 && b->pipe[1] >= 0); -+ assert(b->pipe[0] >= 0 && b->pipe[1] >= 0); - - if (role == BARRIER_PARENT) - b->pipe[1] = safe_close(b->pipe[1]); diff --git a/src/shared/path-lookup.c b/src/shared/path-lookup.c -index 291a2f4..468fb07 100644 +index f6a1271..9bec8e9 100644 --- a/src/shared/path-lookup.c +++ b/src/shared/path-lookup.c -@@ -113,17 +113,14 @@ static char** user_dirs( +@@ -111,17 +111,14 @@ static char** user_dirs( const char * const config_unit_paths[] = { USER_CONFIG_UNIT_PATH, "/etc/systemd/user", @@ -613,7 +135,7 @@ index 291a2f4..468fb07 100644 NULL }; -@@ -290,13 +287,11 @@ int lookup_paths_init( +@@ -288,13 +285,11 @@ int lookup_paths_init( STRV_IFNOTNULL(generator_early), USER_CONFIG_UNIT_PATH, "/etc/systemd/user", @@ -629,7 +151,7 @@ index 291a2f4..468fb07 100644 STRV_IFNOTNULL(generator_late), NULL); } else -@@ -306,14 +301,11 @@ int lookup_paths_init( +@@ -304,14 +299,11 @@ int lookup_paths_init( STRV_IFNOTNULL(generator_early), SYSTEM_CONFIG_UNIT_PATH, "/etc/systemd/system", @@ -646,82 +168,8 @@ index 291a2f4..468fb07 100644 STRV_IFNOTNULL(generator_late), NULL); -diff --git a/src/shared/path-util.c b/src/shared/path-util.c -index b9db7f1..5b7fed5 100644 ---- a/src/shared/path-util.c -+++ b/src/shared/path-util.c -@@ -456,9 +456,9 @@ int path_is_mount_point(const char *t, bool allow_symlink) { - - union file_handle_union h = FILE_HANDLE_INIT; - int mount_id = -1, mount_id_parent = -1; -- _cleanup_free_ char *parent = NULL; - struct stat a, b; - int r; -+ _cleanup_close_ int fd = -1; - bool nosupp = false; - - /* We are not actually interested in the file handles, but -@@ -468,7 +468,15 @@ int path_is_mount_point(const char *t, bool allow_symlink) { - if (path_equal(t, "/")) - return 1; - -- r = name_to_handle_at(AT_FDCWD, t, &h.handle, &mount_id, allow_symlink ? AT_SYMLINK_FOLLOW : 0); -+ fd = openat(AT_FDCWD, t, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC|(allow_symlink ? 0 : O_PATH)); -+ if (fd < 0) { -+ if (errno == ENOENT) -+ return 0; -+ -+ return -errno; -+ } -+ -+ r = name_to_handle_at(fd, "", &h.handle, &mount_id, AT_EMPTY_PATH); - if (r < 0) { - if (errno == ENOSYS) - /* This kernel does not support name_to_handle_at() -@@ -485,12 +493,9 @@ int path_is_mount_point(const char *t, bool allow_symlink) { - return -errno; - } - -- r = path_get_parent(t, &parent); -- if (r < 0) -- return r; - - h.handle.handle_bytes = MAX_HANDLE_SZ; -- r = name_to_handle_at(AT_FDCWD, parent, &h.handle, &mount_id_parent, AT_SYMLINK_FOLLOW); -+ r = name_to_handle_at(fd, "..", &h.handle, &mount_id_parent, 0); - if (r < 0) - if (errno == EOPNOTSUPP) - if (nosupp) -@@ -509,10 +514,7 @@ int path_is_mount_point(const char *t, bool allow_symlink) { - return mount_id != mount_id_parent; - - fallback: -- if (allow_symlink) -- r = stat(t, &a); -- else -- r = lstat(t, &a); -+ r = fstatat(fd, "", &a, AT_EMPTY_PATH); - - if (r < 0) { - if (errno == ENOENT) -@@ -521,14 +523,8 @@ fallback: - return -errno; - } - -- free(parent); -- parent = NULL; -- -- r = path_get_parent(t, &parent); -- if (r < 0) -- return r; - -- r = stat(parent, &b); -+ r = fstatat(fd, "..", &b, 0); - if (r < 0) - return -errno; - diff --git a/src/shared/path-util.h b/src/shared/path-util.h -index bd0d324..be74c46 100644 +index 4f45cfd..e015606 100644 --- a/src/shared/path-util.h +++ b/src/shared/path-util.h @@ -26,7 +26,7 @@ @@ -733,162 +181,11 @@ index bd0d324..be74c46 100644 #define DEFAULT_PATH_SPLIT_USR DEFAULT_PATH_NORMAL ":/sbin:/bin" #ifdef HAVE_SPLIT_USR -diff --git a/src/shared/selinux-util.c b/src/shared/selinux-util.c -index a2233e0..a46ddf8 100644 ---- a/src/shared/selinux-util.c -+++ b/src/shared/selinux-util.c -@@ -117,6 +117,7 @@ void mac_selinux_finish(void) { - return; - - selabel_close(label_hnd); -+ label_hnd = NULL; - #endif - } - -diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c -index 21cb898..51d79b8 100644 ---- a/src/systemctl/systemctl.c -+++ b/src/systemctl/systemctl.c -@@ -2881,6 +2881,9 @@ static int check_inhibitors(sd_bus *bus, enum action a) { - if (!sv) - return log_oom(); - -+ if ((pid_t) pid < 0) -+ return log_error_errno(ERANGE, "Bad PID %"PRIu32": %m", pid); -+ - if (!strv_contains(sv, - a == ACTION_HALT || - a == ACTION_POWEROFF || -@@ -2892,7 +2895,7 @@ static int check_inhibitors(sd_bus *bus, enum action a) { - user = uid_to_name(uid); - - log_warning("Operation inhibited by \"%s\" (PID "PID_FMT" \"%s\", user %s), reason is \"%s\".", -- who, pid, strna(comm), strna(user), why); -+ who, (pid_t) pid, strna(comm), strna(user), why); - - c++; - } -diff --git a/src/sysv-generator/sysv-generator.c b/src/sysv-generator/sysv-generator.c -index 6e39b44..71c5cba 100644 ---- a/src/sysv-generator/sysv-generator.c -+++ b/src/sysv-generator/sysv-generator.c -@@ -166,7 +166,7 @@ static int generate_unit_file(SysvStub *s) { - /* We might already have a symlink with the same name from a Provides:, - * or from backup files like /etc/init.d/foo.bak. Real scripts always win, - * so remove an existing link */ -- if (is_symlink(unit)) { -+ if (is_symlink(unit) > 0) { - log_warning("Overwriting existing symlink %s with real service", unit); - (void) unlink(unit); - } -diff --git a/src/timedate/timedatectl.c b/src/timedate/timedatectl.c -index 4d89886..1cf46bb 100644 ---- a/src/timedate/timedatectl.c -+++ b/src/timedate/timedatectl.c -@@ -109,14 +109,21 @@ static void print_status_info(const StatusInfo *i) { - - /* Enforce the values of /etc/localtime */ - if (getenv("TZ")) { -- fprintf(stderr, "Warning: Ignoring the TZ variable. Reading the system's time zone setting only.\n\n"); -+ fprintf(stderr, "Warning: Ignoring the TZ variable.\n\n"); - unsetenv("TZ"); - } - -+ r = setenv("TZ", i->timezone, false); -+ if (r < 0) { -+ log_error_errno(errno, "Failed to set TZ environment variable: %m"); -+ exit(EXIT_FAILURE); -+ } -+ tzset(); -+ - if (i->time != 0) { - sec = (time_t) (i->time / USEC_PER_SEC); - have_time = true; -- } else if (arg_transport == BUS_TRANSPORT_LOCAL) { -+ } else if (IN_SET(arg_transport, BUS_TRANSPORT_REMOTE, BUS_TRANSPORT_MACHINE)) { - sec = time(NULL); - have_time = true; - } else -diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c -index c948d4d..7c5772c 100644 ---- a/src/tmpfiles/tmpfiles.c -+++ b/src/tmpfiles/tmpfiles.c -@@ -689,7 +689,7 @@ static int get_acls_from_arg(Item *item) { - * afterwards, so the mask can be added now if necessary. */ - r = parse_acl(item->argument, &item->acl_access, &item->acl_default, !item->force); - if (r < 0) -- log_warning_errno(errno, "Failed to parse ACL \"%s\": %m. Ignoring", -+ log_warning_errno(r, "Failed to parse ACL \"%s\": %m. Ignoring", - item->argument); - #else - log_warning_errno(ENOSYS, "ACLs are not supported. Ignoring"); -@@ -1205,8 +1205,6 @@ static int create_item(Item *i) { - break; - } - -- log_debug("%s created successfully.", i->path); -- - return 0; - } - -diff --git a/src/udev/udevadm-settle.c b/src/udev/udevadm-settle.c -index fff5de7..e60c462 100644 ---- a/src/udev/udevadm-settle.c -+++ b/src/udev/udevadm-settle.c -@@ -56,6 +56,7 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) { - { "quiet", no_argument, NULL, 'q' }, /* removed */ - {} - }; -+ usec_t deadline; - const char *exists = NULL; - unsigned int timeout = 120; - struct pollfd pfd[1] = { {.fd = -1}, }; -@@ -105,6 +106,8 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) { - return EXIT_FAILURE; - } - -+ deadline = now(CLOCK_MONOTONIC) + timeout * USEC_PER_SEC; -+ - /* guarantee that the udev daemon isn't pre-processing */ - if (getuid() == 0) { - struct udev_ctrl *uctrl; -@@ -146,6 +149,9 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) { - break; - } - -+ if (timeout > 0 && now(CLOCK_MONOTONIC) >= deadline) -+ break; -+ - /* wake up when queue is empty */ - if (poll(pfd, 1, MSEC_PER_SEC) > 0 && pfd[0].revents & POLLIN) - udev_queue_flush(queue); -diff --git a/src/vconsole/90-vconsole.rules.in b/src/vconsole/90-vconsole.rules.in -index 0620096..35b9ad5 100644 ---- a/src/vconsole/90-vconsole.rules.in -+++ b/src/vconsole/90-vconsole.rules.in -@@ -5,7 +5,6 @@ - # the Free Software Foundation; either version 2.1 of the License, or - # (at your option) any later version. - --# Kernel resets vconsole state when changing console drivers so run --# systemd-vconsole-setup when fbcon loads -- --ACTION=="add", SUBSYSTEM=="graphics", KERNEL=="fbcon", RUN+="@rootlibexecdir@/systemd-vconsole-setup" -+# Each vtcon keeps its own state of fonts. -+# -+ACTION=="add", SUBSYSTEM=="vtconsole", KERNEL=="vtcon*", RUN+="@rootlibexecdir@/systemd-vconsole-setup" diff --git a/units/console-getty.service.m4.in b/units/console-getty.service.m4.in -index 8ac51a4..972b86a 100644 +index 413d940..972b86a 100644 --- a/units/console-getty.service.m4.in +++ b/units/console-getty.service.m4.in -@@ -9,13 +9,13 @@ - Description=Console Getty - Documentation=man:agetty(8) - After=systemd-user-sessions.service plymouth-quit-wait.service -+ConditionPathExists=/dev/console - m4_ifdef(`HAVE_SYSV_COMPAT', - After=rc-local.service - )m4_dnl +@@ -16,7 +16,6 @@ After=rc-local.service Before=getty.target [Service] @@ -909,7 +206,7 @@ index e126f3a..925af72 100644 Restart=always RestartSec=0 diff --git a/units/emergency.service.in b/units/emergency.service.in -index 2695d7b..a8b7a2e 100644 +index 52b9b1c..a3efec2 100644 --- a/units/emergency.service.in +++ b/units/emergency.service.in @@ -16,7 +16,6 @@ Before=shutdown.target @@ -918,7 +215,7 @@ index 2695d7b..a8b7a2e 100644 WorkingDirectory=/root -ExecStartPre=-/bin/plymouth quit ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" or ^D to\\ntry again to boot into default mode.' - ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --fail --no-block default" + ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --job-mode=fail --no-block default" Type=idle diff --git a/units/getty@.service.m4 b/units/getty@.service.m4 index 46164ab..f194a31 100644 @@ -952,7 +249,7 @@ index 0934a87..7e30c9e 100644 [Service] Type=oneshot diff --git a/units/rescue.service.in b/units/rescue.service.in -index de73fee..25617ba 100644 +index 432e4f3..66bdf87 100644 --- a/units/rescue.service.in +++ b/units/rescue.service.in @@ -16,7 +16,6 @@ Before=shutdown.target @@ -961,7 +258,7 @@ index de73fee..25617ba 100644 WorkingDirectory=/root -ExecStartPre=-/bin/plymouth quit ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" or ^D to\\nboot into default mode.' - ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --fail --no-block default" + ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --job-mode=fail --no-block default" Type=idle diff --git a/units/serial-getty@.service.m4 b/units/serial-getty@.service.m4 index 4522d0d..96daa5c 100644 From 67721119f0bbef13ae0f02be71ca05e1b028ba38 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 22 May 2015 15:36:05 +0200 Subject: [PATCH 014/165] Remove obsolete comment --- pkgs/os-specific/linux/systemd/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix index da3f65e3623f..174ff7a25ed3 100644 --- a/pkgs/os-specific/linux/systemd/default.nix +++ b/pkgs/os-specific/linux/systemd/default.nix @@ -69,7 +69,6 @@ stdenv.mkDerivation rec { preConfigure = '' # FIXME: patch this in systemd properly (and send upstream). - # FIXME: use sulogin from util-linux once updated. for i in src/remount-fs/remount-fs.c src/core/mount.c src/core/swap.c src/fsck/fsck.c units/emergency.service.in units/rescue.service.in src/journal/cat.c src/core/shutdown.c src/nspawn/nspawn.c; do test -e $i substituteInPlace $i \ From 1e686d8892003095a52575c402a6e919c7ae254e Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 22 May 2015 15:42:30 +0200 Subject: [PATCH 015/165] util-linux: Update to 2.26.2 --- pkgs/os-specific/linux/util-linux/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/util-linux/default.nix b/pkgs/os-specific/linux/util-linux/default.nix index 13749d7eaa15..6f306de05691 100644 --- a/pkgs/os-specific/linux/util-linux/default.nix +++ b/pkgs/os-specific/linux/util-linux/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, zlib, ncurses ? null, perl ? null, pam }: stdenv.mkDerivation rec { - name = "util-linux-2.26.1"; + name = "util-linux-2.26.2"; src = fetchurl { url = "mirror://kernel/linux/utils/util-linux/v2.26/${name}.tar.xz"; - sha256 = "0vmvk5khfwf71xbsnplvmk9ikwnlbhysc96mnkgwpqk2faairp12"; + sha256 = "0rlnzmiqdannzf81fbh41541lrck63v9zhskm6h4i2jj8ahvsa8f"; }; patches = [ ./rtcwake-search-PATH-for-shutdown.patch From 8ab3f88f5c4d73ea4b9eec643c0230dedf9f5c53 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 22 May 2015 15:49:27 +0200 Subject: [PATCH 016/165] libseccomp: Update to 2.2.1 --- .../libraries/libseccomp/default.nix | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/pkgs/development/libraries/libseccomp/default.nix b/pkgs/development/libraries/libseccomp/default.nix index 00655b51afc7..fd5689380c1d 100644 --- a/pkgs/development/libraries/libseccomp/default.nix +++ b/pkgs/development/libraries/libseccomp/default.nix @@ -1,17 +1,16 @@ -{ stdenv, fetchFromGitHub, autoreconfHook, getopt }: +{ stdenv, fetchurl, getopt }: + +let version = "2.2.1"; in stdenv.mkDerivation rec { - name = "libseccomp-${version}"; - version = "2.2.0"; + name = "libseccomp-${version}"; - src = fetchFromGitHub { - owner = "seccomp"; - repo = "libseccomp"; - rev = "v${version}"; - sha256 = "0vfd6hx92cp1jaqxxaj30r92bfm6fmamxi2yqxrl82mqism1lk84"; + src = fetchurl { + url = "https://github.com/seccomp/libseccomp/releases/download/v${version}/libseccomp-${version}.tar.gz"; + sha256 = "0h57a4l5v1aqyqrkj5gfnar8n2nxs2gzrpscym568v3qajgpi88b"; }; - buildInputs = [ autoreconfHook getopt ]; + buildInputs = [ getopt ]; patchPhase = '' patchShebangs . From f106125f77ba2b3588f95ef58667763042f808c9 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 22 May 2015 15:55:55 +0200 Subject: [PATCH 017/165] systemd: Enable support for seccomp syscall filtering --- pkgs/os-specific/linux/systemd/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix index 174ff7a25ed3..5a81a9cb33dd 100644 --- a/pkgs/os-specific/linux/systemd/default.nix +++ b/pkgs/os-specific/linux/systemd/default.nix @@ -1,7 +1,7 @@ { stdenv, fetchurl, pkgconfig, intltool, gperf, libcap, dbus, kmod , xz, pam, acl, cryptsetup, libuuid, m4, utillinux , glib, kbd, libxslt, coreutils, libgcrypt -, kexectools, libmicrohttpd, linuxHeaders +, kexectools, libmicrohttpd, linuxHeaders, libseccomp , pythonPackages ? null, pythonSupport ? false }: @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { buildInputs = [ linuxHeaders pkgconfig intltool gperf libcap kmod xz pam acl /* cryptsetup */ libuuid m4 glib libxslt libgcrypt - libmicrohttpd kexectools + libmicrohttpd kexectools libseccomp ] ++ stdenv.lib.optionals pythonSupport [pythonPackages.python pythonPackages.lxml]; configureFlags = From 2c156472b3b8f030e2c7a03cb9cafb8bae0f117c Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 22 May 2015 16:39:42 +0200 Subject: [PATCH 018/165] systemd: Don't install kernel-install --- pkgs/os-specific/linux/systemd/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix index 5a81a9cb33dd..ae7596078891 100644 --- a/pkgs/os-specific/linux/systemd/default.nix +++ b/pkgs/os-specific/linux/systemd/default.nix @@ -147,6 +147,9 @@ stdenv.mkDerivation rec { rm -rf $out/etc/rpm rm $out/lib/*.la + + # "kernel-install" shouldn't be used on NixOS. + find $out -name "*kernel-install*" -exec rm {} \; ''; # */ enableParallelBuilding = true; From f678a1ae4ddf57c69fe0dedce356928a8c41e487 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 2 Jun 2015 00:49:42 +0200 Subject: [PATCH 019/165] systemd: Apply some upstream bug fixes --- pkgs/os-specific/linux/systemd/default.nix | 5 +- pkgs/os-specific/linux/systemd/fixes.patch | 481 ++++++++++++++++++++- 2 files changed, 482 insertions(+), 4 deletions(-) diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix index ae7596078891..214e6e8e39b4 100644 --- a/pkgs/os-specific/linux/systemd/default.nix +++ b/pkgs/os-specific/linux/systemd/default.nix @@ -69,7 +69,7 @@ stdenv.mkDerivation rec { preConfigure = '' # FIXME: patch this in systemd properly (and send upstream). - for i in src/remount-fs/remount-fs.c src/core/mount.c src/core/swap.c src/fsck/fsck.c units/emergency.service.in units/rescue.service.in src/journal/cat.c src/core/shutdown.c src/nspawn/nspawn.c; do + for i in src/remount-fs/remount-fs.c src/core/mount.c src/core/swap.c src/fsck/fsck.c units/emergency.service.in units/rescue.service.in src/journal/cat.c src/core/shutdown.c src/nspawn/nspawn.c src/shared/generator.c; do test -e $i substituteInPlace $i \ --replace /usr/bin/getent ${stdenv.glibc}/bin/getent \ @@ -79,7 +79,8 @@ stdenv.mkDerivation rec { --replace /sbin/swapoff ${utillinux}/sbin/swapoff \ --replace /bin/echo ${coreutils}/bin/echo \ --replace /bin/cat ${coreutils}/bin/cat \ - --replace /sbin/sulogin ${utillinux}/sbin/sulogin + --replace /sbin/sulogin ${utillinux}/sbin/sulogin \ + --replace /usr/lib/systemd/systemd-fsck $out/lib/systemd/systemd-fsck done substituteInPlace src/journal/catalog.c \ diff --git a/pkgs/os-specific/linux/systemd/fixes.patch b/pkgs/os-specific/linux/systemd/fixes.patch index b05e0bae8de5..ab687ba4ca34 100644 --- a/pkgs/os-specific/linux/systemd/fixes.patch +++ b/pkgs/os-specific/linux/systemd/fixes.patch @@ -1,3 +1,16 @@ +diff --git a/rules/60-persistent-storage.rules b/rules/60-persistent-storage.rules +index 3f803ce..2aa15f3 100644 +--- a/rules/60-persistent-storage.rules ++++ b/rules/60-persistent-storage.rules +@@ -6,7 +6,7 @@ + ACTION=="remove", GOTO="persistent_storage_end" + + SUBSYSTEM!="block", GOTO="persistent_storage_end" +-KERNEL!="loop*|mmcblk*[0-9]|msblk*[0-9]|mspblk*[0-9]|nvme*|sd*|sr*|vd*", GOTO="persistent_storage_end" ++KERNEL!="loop*|mmcblk*[0-9]|msblk*[0-9]|mspblk*[0-9]|nvme*|sd*|sr*|vd*|bcache*", GOTO="persistent_storage_end" + + # ignore partitions that span the entire disk + TEST=="whole_disk", GOTO="persistent_storage_end" diff --git a/rules/99-systemd.rules.in b/rules/99-systemd.rules.in index 10b90b8..db63c11 100644 --- a/rules/99-systemd.rules.in @@ -92,10 +105,124 @@ index 9bbe9ff..d8a2889 100644 cmdline[i++] = arg_repair; cmdline[i++] = "-T"; +diff --git a/src/libsystemd/sd-device/device-enumerator.c b/src/libsystemd/sd-device/device-enumerator.c +index ce4862d..3692d46 100644 +--- a/src/libsystemd/sd-device/device-enumerator.c ++++ b/src/libsystemd/sd-device/device-enumerator.c +@@ -367,11 +367,11 @@ static bool match_sysattr(sd_device_enumerator *enumerator, sd_device *device) { + assert(enumerator); + assert(device); + +- HASHMAP_FOREACH_KEY(sysattr, value, enumerator->nomatch_sysattr, i) ++ HASHMAP_FOREACH_KEY(value, sysattr, enumerator->nomatch_sysattr, i) + if (match_sysattr_value(device, sysattr, value)) + return false; + +- HASHMAP_FOREACH_KEY(sysattr, value, enumerator->match_sysattr, i) ++ HASHMAP_FOREACH_KEY(value, sysattr, enumerator->match_sysattr, i) + if (!match_sysattr_value(device, sysattr, value)) + return false; + +@@ -389,7 +389,7 @@ static bool match_property(sd_device_enumerator *enumerator, sd_device *device) + if (hashmap_isempty(enumerator->match_property)) + return true; + +- HASHMAP_FOREACH_KEY(property, value, enumerator->match_property, i) { ++ HASHMAP_FOREACH_KEY(value, property, enumerator->match_property, i) { + const char *property_dev, *value_dev; + + FOREACH_DEVICE_PROPERTY(device, property_dev, value_dev) { +diff --git a/src/libsystemd/sd-device/device-private.c b/src/libsystemd/sd-device/device-private.c +index 3cadedb..deb8efd 100644 +--- a/src/libsystemd/sd-device/device-private.c ++++ b/src/libsystemd/sd-device/device-private.c +@@ -636,10 +636,9 @@ int device_new_from_nulstr(sd_device **ret, uint8_t *nulstr, size_t len) { + + static int device_update_properties_bufs(sd_device *device) { + const char *val, *prop; +- char **buf_strv = NULL; + uint8_t *buf_nulstr = NULL; +- size_t allocated_nulstr = 0, allocated_strv = 0; +- size_t nulstr_len = 0, strv_size = 0; ++ size_t allocated_nulstr = 0; ++ size_t nulstr_len = 0, num = 0, i; + + assert(device); + +@@ -655,20 +654,24 @@ static int device_update_properties_bufs(sd_device *device) { + if (!buf_nulstr) + return -ENOMEM; + +- buf_strv = GREEDY_REALLOC0(buf_strv, allocated_strv, strv_size + 2); +- if (!buf_strv) +- return -ENOMEM; +- +- buf_strv[++ strv_size] = (char *)&buf_nulstr[nulstr_len]; + strscpyl((char *)buf_nulstr + nulstr_len, len + 1, prop, "=", val, NULL); + nulstr_len += len + 1; ++ ++num; + } + + free(device->properties_nulstr); +- free(device->properties_strv); + device->properties_nulstr = buf_nulstr; + device->properties_nulstr_len = nulstr_len; +- device->properties_strv = buf_strv; ++ ++ /* build strv from buf_nulstr */ ++ free(device->properties_strv); ++ device->properties_strv = new0(char *, num + 1); ++ i = 0; ++ NULSTR_FOREACH(val, (char*) buf_nulstr) { ++ device->properties_strv[i] = (char *) val; ++ assert(i < num); ++ i++; ++ } + + device->properties_buf_outdated = false; + +diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c +index 1f5cf86..3555bcc 100644 +--- a/src/login/logind-dbus.c ++++ b/src/login/logind-dbus.c +@@ -1964,6 +1964,11 @@ static int method_cancel_scheduled_shutdown(sd_bus_message *message, void *userd + m->scheduled_shutdown_type = NULL; + m->scheduled_shutdown_timeout = 0; + ++ if (m->unlink_nologin) { ++ unlink("/run/nologin"); ++ m->unlink_nologin = false; ++ } ++ + if (cancelled) { + _cleanup_bus_creds_unref_ sd_bus_creds *creds = NULL; + const char *tty = NULL; +diff --git a/src/network/networkctl.c b/src/network/networkctl.c +index 69b4ab4..3454394 100644 +--- a/src/network/networkctl.c ++++ b/src/network/networkctl.c +@@ -62,7 +62,7 @@ static int link_get_type_string(int iftype, sd_device *d, char **ret) { + assert(ret); + + if (iftype == ARPHRD_ETHER && d) { +- const char *devtype, *id = NULL; ++ const char *devtype = NULL, *id = NULL; + /* WLANs have iftype ARPHRD_ETHER, but we want + * to show a more useful type string for + * them */ diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c -index 5009363..72c6887 100644 +index 5009363..62a8dba 100644 --- a/src/nspawn/nspawn.c +++ b/src/nspawn/nspawn.c +@@ -2627,7 +2627,7 @@ static int setup_veth(pid_t pid, char iface_name[IFNAMSIZ], int *ifi) { + + r = sd_rtnl_call(rtnl, m, 0, NULL); + if (r < 0) +- return log_error_errno(r, "Failed to add new veth interfaces: %m"); ++ return log_error_errno(r, "Failed to add new veth interfaces (host0, %s): %m", iface_name); + + i = (int) if_nametoindex(iface_name); + if (i <= 0) @@ -4589,6 +4589,7 @@ int main(int argc, char *argv[]) { goto finish; } @@ -168,8 +295,108 @@ index f6a1271..9bec8e9 100644 STRV_IFNOTNULL(generator_late), NULL); +diff --git a/src/shared/path-util.c b/src/shared/path-util.c +index 7090989..8be479c 100644 +--- a/src/shared/path-util.c ++++ b/src/shared/path-util.c +@@ -509,7 +509,7 @@ static int fd_fdinfo_mnt_id(int fd, const char *filename, int flags, int *mnt_id + return safe_atoi(p, mnt_id); + } + +-int fd_is_mount_point(int fd) { ++int fd_is_mount_point(int fd, const char *filename, int flags) { + union file_handle_union h = FILE_HANDLE_INIT, h_parent = FILE_HANDLE_INIT; + int mount_id = -1, mount_id_parent = -1; + bool nosupp = false, check_st_dev = true; +@@ -517,6 +517,7 @@ int fd_is_mount_point(int fd) { + int r; + + assert(fd >= 0); ++ assert(filename); + + /* First we will try the name_to_handle_at() syscall, which + * tells us the mount id and an opaque file "handle". It is +@@ -541,7 +542,7 @@ int fd_is_mount_point(int fd) { + * subvolumes have different st_dev, even though they aren't + * real mounts of their own. */ + +- r = name_to_handle_at(fd, "", &h.handle, &mount_id, AT_EMPTY_PATH); ++ r = name_to_handle_at(fd, filename, &h.handle, &mount_id, flags); + if (r < 0) { + if (errno == ENOSYS) + /* This kernel does not support name_to_handle_at() +@@ -558,7 +559,7 @@ int fd_is_mount_point(int fd) { + return -errno; + } + +- r = name_to_handle_at(fd, "..", &h_parent.handle, &mount_id_parent, 0); ++ r = name_to_handle_at(fd, "", &h_parent.handle, &mount_id_parent, AT_EMPTY_PATH); + if (r < 0) { + if (errno == EOPNOTSUPP) { + if (nosupp) +@@ -593,13 +594,13 @@ int fd_is_mount_point(int fd) { + return mount_id != mount_id_parent; + + fallback_fdinfo: +- r = fd_fdinfo_mnt_id(fd, "", AT_EMPTY_PATH, &mount_id); ++ r = fd_fdinfo_mnt_id(fd, filename, flags, &mount_id); + if (r == -EOPNOTSUPP) + goto fallback_fstat; + if (r < 0) + return r; + +- r = fd_fdinfo_mnt_id(fd, "..", 0, &mount_id_parent); ++ r = fd_fdinfo_mnt_id(fd, "", AT_EMPTY_PATH, &mount_id_parent); + if (r < 0) + return r; + +@@ -615,10 +616,16 @@ fallback_fdinfo: + check_st_dev = false; + + fallback_fstat: +- if (fstatat(fd, "", &a, AT_EMPTY_PATH) < 0) ++ /* yay for fstatat() taking a different set of flags than the other ++ * _at() above */ ++ if (flags & AT_SYMLINK_FOLLOW) ++ flags &= ~AT_SYMLINK_FOLLOW; ++ else ++ flags |= AT_SYMLINK_NOFOLLOW; ++ if (fstatat(fd, filename, &a, flags) < 0) + return -errno; + +- if (fstatat(fd, "..", &b, 0) < 0) ++ if (fstatat(fd, "", &b, AT_EMPTY_PATH) < 0) + return -errno; + + /* A directory with same device and inode as its parent? Must +@@ -632,17 +639,23 @@ fallback_fstat: + + int path_is_mount_point(const char *t, bool allow_symlink) { + _cleanup_close_ int fd = -1; ++ _cleanup_free_ char *parent = NULL; ++ int r; + + assert(t); + + if (path_equal(t, "/")) + return 1; + +- fd = openat(AT_FDCWD, t, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC|(allow_symlink ? 0 : O_PATH)); ++ r = path_get_parent(t, &parent); ++ if (r < 0) ++ return r; ++ ++ fd = openat(AT_FDCWD, parent, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC|O_PATH); + if (fd < 0) + return -errno; + +- return fd_is_mount_point(fd); ++ return fd_is_mount_point(fd, basename(t), (allow_symlink ? AT_SYMLINK_FOLLOW : 0)); + } + + int path_is_read_only_fs(const char *path) { diff --git a/src/shared/path-util.h b/src/shared/path-util.h -index 4f45cfd..e015606 100644 +index 4f45cfd..a8a0662 100644 --- a/src/shared/path-util.h +++ b/src/shared/path-util.h @@ -26,7 +26,7 @@ @@ -181,6 +408,256 @@ index 4f45cfd..e015606 100644 #define DEFAULT_PATH_SPLIT_USR DEFAULT_PATH_NORMAL ":/sbin:/bin" #ifdef HAVE_SPLIT_USR +@@ -53,7 +53,7 @@ char** path_strv_make_absolute_cwd(char **l); + char** path_strv_resolve(char **l, const char *prefix); + char** path_strv_resolve_uniq(char **l, const char *prefix); + +-int fd_is_mount_point(int fd); ++int fd_is_mount_point(int fd, const char *filename, int flags); + int path_is_mount_point(const char *path, bool allow_symlink); + int path_is_read_only_fs(const char *path); + int path_is_os_tree(const char *path); +diff --git a/src/shared/rm-rf.c b/src/shared/rm-rf.c +index a89e8af..bafd483 100644 +--- a/src/shared/rm-rf.c ++++ b/src/shared/rm-rf.c +@@ -103,7 +103,7 @@ int rm_rf_children(int fd, RemoveFlags flags, struct stat *root_dev) { + } + + /* Stop at mount points */ +- r = fd_is_mount_point(subdir_fd); ++ r = fd_is_mount_point(fd, de->d_name, 0); + if (r < 0) { + if (ret == 0 && r != -ENOENT) + ret = r; +diff --git a/src/test/test-path-util.c b/src/test/test-path-util.c +index 09f0f2f..80782ff 100644 +--- a/src/test/test-path-util.c ++++ b/src/test/test-path-util.c +@@ -21,6 +21,7 @@ + + #include + #include ++#include + + #include "path-util.h" + #include "util.h" +@@ -88,21 +89,9 @@ static void test_path(void) { + test_parent("/aa///file...", "/aa///"); + test_parent("file.../", NULL); + +- assert_se(path_is_mount_point("/", true) > 0); +- assert_se(path_is_mount_point("/", false) > 0); +- + fd = open("/", O_RDONLY|O_CLOEXEC|O_DIRECTORY|O_NOCTTY); + assert_se(fd >= 0); +- assert_se(fd_is_mount_point(fd) > 0); +- +- assert_se(path_is_mount_point("/proc", true) > 0); +- assert_se(path_is_mount_point("/proc", false) > 0); +- +- assert_se(path_is_mount_point("/proc/1", true) == 0); +- assert_se(path_is_mount_point("/proc/1", false) == 0); +- +- assert_se(path_is_mount_point("/sys", true) > 0); +- assert_se(path_is_mount_point("/sys", false) > 0); ++ assert_se(fd_is_mount_point(fd, "/", 0) > 0); + + { + char p1[] = "aaa/bbb////ccc"; +@@ -322,6 +311,66 @@ static void test_prefix_root(void) { + test_prefix_root_one("/foo///", "//bar", "/foo/bar"); + } + ++static void test_path_is_mount_point(void) { ++ int fd, rt, rf, rlt, rlf; ++ char tmp_dir[] = "/tmp/test-path-is-mount-point-XXXXXX"; ++ _cleanup_free_ char *file1 = NULL, *file2 = NULL, *link1 = NULL, *link2 = NULL; ++ ++ assert_se(path_is_mount_point("/", true) > 0); ++ assert_se(path_is_mount_point("/", false) > 0); ++ ++ assert_se(path_is_mount_point("/proc", true) > 0); ++ assert_se(path_is_mount_point("/proc", false) > 0); ++ ++ assert_se(path_is_mount_point("/proc/1", true) == 0); ++ assert_se(path_is_mount_point("/proc/1", false) == 0); ++ ++ assert_se(path_is_mount_point("/sys", true) > 0); ++ assert_se(path_is_mount_point("/sys", false) > 0); ++ ++ /* file mountpoints */ ++ assert_se(mkdtemp(tmp_dir) != NULL); ++ file1 = path_join(NULL, tmp_dir, "file1"); ++ assert_se(file1); ++ file2 = path_join(NULL, tmp_dir, "file2"); ++ assert_se(file2); ++ fd = open(file1, O_WRONLY|O_CREAT|O_EXCL|O_CLOEXEC, 0664); ++ assert_se(fd > 0); ++ close(fd); ++ fd = open(file2, O_WRONLY|O_CREAT|O_EXCL|O_CLOEXEC, 0664); ++ assert_se(fd > 0); ++ close(fd); ++ link1 = path_join(NULL, tmp_dir, "link1"); ++ assert_se(link1); ++ assert_se(symlink("file1", link1) == 0); ++ link2 = path_join(NULL, tmp_dir, "link2"); ++ assert_se(link1); ++ assert_se(symlink("file2", link2) == 0); ++ ++ assert_se(path_is_mount_point(file1, true) == 0); ++ assert_se(path_is_mount_point(file1, false) == 0); ++ assert_se(path_is_mount_point(link1, true) == 0); ++ assert_se(path_is_mount_point(link1, false) == 0); ++ ++ /* this test will only work as root */ ++ if (mount(file1, file2, NULL, MS_BIND, NULL) >= 0) { ++ rf = path_is_mount_point(file2, false); ++ rt = path_is_mount_point(file2, true); ++ rlf = path_is_mount_point(link2, false); ++ rlt = path_is_mount_point(link2, true); ++ ++ assert_se(umount(file2) == 0); ++ ++ assert_se(rf == 1); ++ assert_se(rt == 1); ++ assert_se(rlf == 0); ++ assert_se(rlt == 1); ++ } else ++ printf("Skipping bind mount file test: %m\n"); ++ ++ assert_se(rm_rf(tmp_dir, REMOVE_ROOT|REMOVE_PHYSICAL) == 0); ++} ++ + int main(int argc, char **argv) { + test_path(); + test_find_binary(argv[0], true); +@@ -333,6 +382,7 @@ int main(int argc, char **argv) { + test_strv_resolve(); + test_path_startswith(); + test_prefix_root(); ++ test_path_is_mount_point(); + + return 0; + } +diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c +index 78aef20..4489205 100644 +--- a/src/udev/udev-builtin-net_id.c ++++ b/src/udev/udev-builtin-net_id.c +@@ -91,6 +91,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -166,15 +167,15 @@ static int dev_pci_onboard(struct udev_device *dev, struct netnames *names) { + + /* read the 256 bytes PCI configuration space to check the multi-function bit */ + static bool is_pci_multifunction(struct udev_device *dev) { +- _cleanup_fclose_ FILE *f = NULL; ++ _cleanup_close_ int fd = -1; + const char *filename; + uint8_t config[64]; + + filename = strjoina(udev_device_get_syspath(dev), "/config"); +- f = fopen(filename, "re"); +- if (!f) ++ fd = open(filename, O_RDONLY | O_CLOEXEC); ++ if (fd < 0) + return false; +- if (fread(&config, sizeof(config), 1, f) != 1) ++ if (read(fd, &config, sizeof(config)) != sizeof(config)) + return false; + + /* bit 0-6 header type, bit 7 multi/single function device */ +diff --git a/src/udev/udevd.c b/src/udev/udevd.c +index afd4640..b5dadbc 100644 +--- a/src/udev/udevd.c ++++ b/src/udev/udevd.c +@@ -564,7 +564,10 @@ static int event_queue_insert(Manager *manager, struct udev_device *dev) { + assert(manager); + assert(dev); + +- /* only the main process can add events to the queue */ ++ /* only one process can add events to the queue */ ++ if (manager->pid == 0) ++ manager->pid = getpid(); ++ + assert(manager->pid == getpid()); + + event = new0(struct event, 1); +@@ -1286,13 +1289,6 @@ static int parse_argv(int argc, char *argv[]) { + + static int manager_new(Manager **ret) { + _cleanup_(manager_freep) Manager *manager = NULL; +- struct epoll_event ep_ctrl = { .events = EPOLLIN }; +- struct epoll_event ep_inotify = { .events = EPOLLIN }; +- struct epoll_event ep_signal = { .events = EPOLLIN }; +- struct epoll_event ep_netlink = { .events = EPOLLIN }; +- struct epoll_event ep_worker = { .events = EPOLLIN }; +- sigset_t mask; +- int r, one = 1; + + assert(ret); + +@@ -1300,8 +1296,6 @@ static int manager_new(Manager **ret) { + if (!manager) + return log_oom(); + +- manager->pid = getpid(); +- + manager->fd_ep = -1; + manager->fd_ctrl = -1; + manager->fd_uevent = -1; +@@ -1323,6 +1317,23 @@ static int manager_new(Manager **ret) { + udev_list_node_init(&manager->events); + udev_list_init(manager->udev, &manager->properties, true); + ++ *ret = manager; ++ manager = NULL; ++ ++ return 0; ++} ++ ++static int manager_listen(Manager *manager) { ++ struct epoll_event ep_ctrl = { .events = EPOLLIN }; ++ struct epoll_event ep_inotify = { .events = EPOLLIN }; ++ struct epoll_event ep_signal = { .events = EPOLLIN }; ++ struct epoll_event ep_netlink = { .events = EPOLLIN }; ++ struct epoll_event ep_worker = { .events = EPOLLIN }; ++ sigset_t mask; ++ int r, one = 1; ++ ++ assert(manager); ++ + r = systemd_fds(&manager->fd_ctrl, &manager->fd_uevent); + if (r >= 0) { + /* get control and netlink socket from systemd */ +@@ -1404,10 +1415,7 @@ static int manager_new(Manager **ret) { + epoll_ctl(manager->fd_ep, EPOLL_CTL_ADD, manager->fd_worker, &ep_worker) < 0) + return log_error_errno(errno, "fail to add fds to epoll: %m"); + +- *ret = manager; +- manager = NULL; +- +- return 1; ++ return 0; + } + + int main(int argc, char *argv[]) { +@@ -1518,6 +1526,10 @@ int main(int argc, char *argv[]) { + } else + sd_notify(1, "READY=1"); + ++ r = manager_listen(manager); ++ if (r < 0) ++ return log_error_errno(r, "failed to set up fds and listen for events: %m"); ++ + for (;;) { + static usec_t last_usec; + struct epoll_event ev[8]; diff --git a/units/console-getty.service.m4.in b/units/console-getty.service.m4.in index 413d940..972b86a 100644 --- a/units/console-getty.service.m4.in From bf6c7b703169ad6ac281665ec713af44fe52517b Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 2 Jun 2015 00:52:05 +0200 Subject: [PATCH 020/165] Use the Linux 3.18 headers --- .../os-specific/linux/kernel-headers/3.12.nix | 71 ------------------- pkgs/top-level/all-packages.nix | 6 +- 2 files changed, 2 insertions(+), 75 deletions(-) delete mode 100644 pkgs/os-specific/linux/kernel-headers/3.12.nix diff --git a/pkgs/os-specific/linux/kernel-headers/3.12.nix b/pkgs/os-specific/linux/kernel-headers/3.12.nix deleted file mode 100644 index 2fd34c68edc6..000000000000 --- a/pkgs/os-specific/linux/kernel-headers/3.12.nix +++ /dev/null @@ -1,71 +0,0 @@ -{ stdenv, fetchurl, perl, cross ? null }: - -assert cross == null -> stdenv.isLinux; - -let - - version = "3.12.32"; - - kernelHeadersBaseConfig = - if cross == null - then stdenv.platform.kernelHeadersBaseConfig - else cross.platform.kernelHeadersBaseConfig; - -in - -stdenv.mkDerivation { - name = "linux-headers-${version}"; - - src = fetchurl { - url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz"; - sha256 = "1hzws2bf267hfk81ywqcxspkyi1lg56x63izdc0pv1338xcfas53"; - }; - - targetConfig = if cross != null then cross.config else null; - - platform = - if cross != null then cross.platform.kernelArch else - if stdenv.system == "i686-linux" then "i386" else - if stdenv.system == "x86_64-linux" then "x86_64" else - if stdenv.system == "powerpc-linux" then "powerpc" else - if stdenv.isArm then "arm" else - if stdenv.platform ? kernelArch then stdenv.platform.kernelArch else - abort "don't know what the kernel include directory is called for this platform"; - - buildInputs = [perl]; - - extraIncludeDirs = - if cross != null then - (if cross.arch == "powerpc" then ["ppc"] else []) - else if stdenv.system == "powerpc-linux" then ["ppc"] else []; - - buildPhase = '' - if test -n "$targetConfig"; then - export ARCH=$platform - fi - make ${kernelHeadersBaseConfig} SHELL=bash - make mrproper headers_check SHELL=bash - ''; - - installPhase = '' - make INSTALL_HDR_PATH=$out headers_install - - # Some builds (e.g. KVM) want a kernel.release. - mkdir -p $out/include/config - echo "${version}-default" > $out/include/config/kernel.release - ''; - - # !!! hacky - fixupPhase = '' - ln -s asm $out/include/asm-$platform - if test "$platform" = "i386" -o "$platform" = "x86_64"; then - ln -s asm $out/include/asm-x86 - fi - ''; - - meta = with stdenv.lib; { - description = "Header files and scripts for Linux kernel"; - license = licenses.gpl2; - platforms = platforms.linux; - }; -} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0bbb43e2e915..32466b8fb5a6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9298,20 +9298,18 @@ let # -- Linux kernel expressions ------------------------------------------------ - linuxHeaders = linuxHeaders_3_12; + linuxHeaders = linuxHeaders_3_18; linuxHeaders24Cross = forceNativeDrv (import ../os-specific/linux/kernel-headers/2.4.nix { inherit stdenv fetchurl perl; cross = assert crossSystem != null; crossSystem; }); - linuxHeaders26Cross = forceNativeDrv (import ../os-specific/linux/kernel-headers/3.12.nix { + linuxHeaders26Cross = forceNativeDrv (import ../os-specific/linux/kernel-headers/3.18.nix { inherit stdenv fetchurl perl; cross = assert crossSystem != null; crossSystem; }); - linuxHeaders_3_12 = callPackage ../os-specific/linux/kernel-headers/3.12.nix { }; - linuxHeaders_3_18 = callPackage ../os-specific/linux/kernel-headers/3.18.nix { }; # We can choose: From 58ef0eea0c2d79fbe41f0cb09d93aaec8251fe61 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 2 Jun 2015 00:56:38 +0200 Subject: [PATCH 021/165] Remove unused file --- .../linux/kernel-headers/2.6.32.nix | 62 ------------------- 1 file changed, 62 deletions(-) delete mode 100644 pkgs/os-specific/linux/kernel-headers/2.6.32.nix diff --git a/pkgs/os-specific/linux/kernel-headers/2.6.32.nix b/pkgs/os-specific/linux/kernel-headers/2.6.32.nix deleted file mode 100644 index 100dd0c611b3..000000000000 --- a/pkgs/os-specific/linux/kernel-headers/2.6.32.nix +++ /dev/null @@ -1,62 +0,0 @@ -{stdenv, fetchurl, perl, cross ? null}: - -assert cross == null -> stdenv.isLinux; - -let - version = "2.6.32.16"; - kernelHeadersBaseConfig = if cross == null then - stdenv.platform.kernelHeadersBaseConfig - else - cross.platform.kernelHeadersBaseConfig; -in - -stdenv.mkDerivation { - name = "linux-headers-${version}"; - - src = fetchurl { - url = "mirror://kernel/linux/kernel/v2.6/linux-${version}.tar.bz2"; - sha256 = "1ndvqvfaxachsklzzr5db1bzvfhnzz8diddrm1zlv7171fzmn13j"; - }; - - targetConfig = if cross != null then cross.config else null; - - platform = - if cross != null then cross.platform.kernelArch else - if stdenv.system == "i686-linux" then "i386" else - if stdenv.system == "x86_64-linux" then "x86_64" else - if stdenv.system == "powerpc-linux" then "powerpc" else - if stdenv.isArm then "arm" else - if stdenv.platform ? kernelArch then stdenv.platform.kernelArch else - abort "don't know what the kernel include directory is called for this platform"; - - buildInputs = [perl]; - - extraIncludeDirs = - if cross != null then - (if cross.arch == "powerpc" then ["ppc"] else []) - else if stdenv.system == "powerpc-linux" then ["ppc"] else []; - - buildPhase = '' - if test -n "$targetConfig"; then - export ARCH=$platform - fi - make ${kernelHeadersBaseConfig} - make mrproper headers_check - ''; - - installPhase = '' - make INSTALL_HDR_PATH=$out headers_install - - # Some builds (e.g. KVM) want a kernel.release. - mkdir -p $out/include/config - echo "${version}-default" > $out/include/config/kernel.release - ''; - - # !!! hacky - fixupPhase = '' - ln -s asm $out/include/asm-$platform - if test "$platform" = "i386" -o "$platform" = "x86_64"; then - ln -s asm $out/include/asm-x86 - fi - ''; -} From ee10e165dcc23f7b1855072f5a1f208dcdeead93 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 2 Jun 2015 01:01:16 +0200 Subject: [PATCH 022/165] Remove Linux 3.2 and 3.4 These are not supported by systemd so no reason to keep them around. --- pkgs/os-specific/linux/kernel/linux-3.2.nix | 27 --------------------- pkgs/os-specific/linux/kernel/linux-3.4.nix | 27 --------------------- pkgs/top-level/all-packages.nix | 16 ------------ 3 files changed, 70 deletions(-) delete mode 100644 pkgs/os-specific/linux/kernel/linux-3.2.nix delete mode 100644 pkgs/os-specific/linux/kernel/linux-3.4.nix diff --git a/pkgs/os-specific/linux/kernel/linux-3.2.nix b/pkgs/os-specific/linux/kernel/linux-3.2.nix deleted file mode 100644 index 2fc240f6196d..000000000000 --- a/pkgs/os-specific/linux/kernel/linux-3.2.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ stdenv, fetchurl, ... } @ args: - -import ./generic.nix (args // rec { - version = "3.2.69"; - extraMeta.branch = "3.2"; - - src = fetchurl { - url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz"; - sha256 = "0fs7aj3vn51dlx7yfgkx05qpki2msh6j2irwajd9bw0l26cbycd3"; - }; - - # We don't provide these patches if grsecurity is enabled, because - # the grsec 3.2 -stable patchset already includes them. - kernelPatches = args.kernelPatches ++ ( - stdenv.lib.optionals (!(args.features.grsecurity or false)) - [ { name = "0001-AppArmor-compatibility-patch-for-v5-network-controll"; - patch = ./apparmor-patches/3.2/0001-AppArmor-compatibility-patch-for-v5-network-controll.patch; - } - { name = "0002-AppArmor-compatibility-patch-for-v5-interface"; - patch = ./apparmor-patches/3.2/0002-AppArmor-compatibility-patch-for-v5-interface.patch; - } - { name = "0003-AppArmor-Allow-dfa-backward-compatibility-with-broke"; - patch = ./apparmor-patches/3.2/0003-AppArmor-Allow-dfa-backward-compatibility-with-broke.patch; - }]); - - features.iwlwifi = true; -} // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-3.4.nix b/pkgs/os-specific/linux/kernel/linux-3.4.nix deleted file mode 100644 index eaf5bfad6d8f..000000000000 --- a/pkgs/os-specific/linux/kernel/linux-3.4.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ stdenv, fetchurl, ... } @ args: - -import ./generic.nix (args // rec { - version = "3.4.107"; - extraMeta.branch = "3.4"; - - src = fetchurl { - url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz"; - sha256 = "1y3mxisdcnz3kj416bpnnn9cn3wqqjqvcjadhylc1wypqkpcvphq"; - }; - - kernelPatches = args.kernelPatches ++ - [ { name = "0001-UBUNTU-SAUCE-AppArmor-Add-profile-introspection-file"; - patch = ./apparmor-patches/3.4/0001-UBUNTU-SAUCE-AppArmor-Add-profile-introspection-file.patch; - } - { name = "0002-UBUNTU-SAUCE-AppArmor-basic-networking-rules"; - patch = ./apparmor-patches/3.4/0002-UBUNTU-SAUCE-AppArmor-basic-networking-rules.patch; - } - { name = "0003-UBUNTU-SAUCE-apparmor-Add-the-ability-to-mediate-mou"; - patch = ./apparmor-patches/3.4/0003-UBUNTU-SAUCE-apparmor-Add-the-ability-to-mediate-mou.patch; - }]; - - features.iwlwifi = true; - features.efiBootStub = true; - features.needsCifsUtils = true; - features.netfilterRPFilter = true; -}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 32466b8fb5a6..abc2398152fc 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9322,20 +9322,6 @@ let kernelPatches = callPackage ../os-specific/linux/kernel/patches.nix { }; - linux_3_2 = makeOverridable (import ../os-specific/linux/kernel/linux-3.2.nix) { - inherit fetchurl stdenv perl buildLinux; - kernelPatches = [ kernelPatches.bridge_stp_helper ]; - }; - - linux_3_4 = makeOverridable (import ../os-specific/linux/kernel/linux-3.4.nix) { - inherit fetchurl stdenv perl buildLinux; - kernelPatches = [ kernelPatches.bridge_stp_helper ] - ++ lib.optionals ((platform.kernelArch or null) == "mips") - [ kernelPatches.mips_fpureg_emu - kernelPatches.mips_fpu_sigill - ]; - }; - linux_rpi = makeOverridable (import ../os-specific/linux/kernel/linux-rpi.nix) { inherit fetchurl stdenv perl buildLinux; kernelPatches = [ kernelPatches.bridge_stp_helper ]; @@ -9571,8 +9557,6 @@ let linux_latest = linuxPackages_latest.kernel; # Build the kernel modules for the some of the kernels. - linuxPackages_3_2 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_2 linuxPackages_3_2); - linuxPackages_3_4 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_4 linuxPackages_3_4); linuxPackages_rpi = linuxPackagesFor pkgs.linux_rpi linuxPackages_rpi; linuxPackages_3_10 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_10 linuxPackages_3_10); linuxPackages_3_10_tuxonice = linuxPackagesFor pkgs.linux_3_10_tuxonice linuxPackages_3_10_tuxonice; From cdbb5483b7ef1dcdb628e802aab25362c01ea41c Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 2 Jun 2015 01:03:34 +0200 Subject: [PATCH 023/165] Remove Linux 3.19 It's already EOL so we shouldn't keep it around in our new stable branch. --- pkgs/top-level/all-packages.nix | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index abc2398152fc..0a62d1fa17c7 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9367,16 +9367,6 @@ let ]; }; - linux_3_19 = makeOverridable (import ../os-specific/linux/kernel/linux-3.19.nix) { - inherit fetchurl stdenv perl buildLinux; - kernelPatches = [ kernelPatches.bridge_stp_helper ] - ++ lib.optionals ((platform.kernelArch or null) == "mips") - [ kernelPatches.mips_fpureg_emu - kernelPatches.mips_fpu_sigill - kernelPatches.mips_ext3_n32 - ]; - }; - linux_4_0 = makeOverridable (import ../os-specific/linux/kernel/linux-4.0.nix) { inherit fetchurl stdenv perl buildLinux; kernelPatches = [ kernelPatches.bridge_stp_helper ] @@ -9563,7 +9553,6 @@ let linuxPackages_3_12 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_12 linuxPackages_3_12); linuxPackages_3_14 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_14 linuxPackages_3_14); linuxPackages_3_18 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_18 linuxPackages_3_18); - linuxPackages_3_19 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_19 linuxPackages_3_19); linuxPackages_4_0 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_4_0 linuxPackages_4_0); linuxPackages_testing = recurseIntoAttrs (linuxPackagesFor pkgs.linux_testing linuxPackages_testing); linuxPackages_custom = {version, src, configfile}: From a278a9224a3c1c5db399d53c86b36a25133b5cda Mon Sep 17 00:00:00 2001 From: Tuomas Tynkkynen Date: Sun, 31 May 2015 19:55:33 +0300 Subject: [PATCH 024/165] systemd: Use upstream tmpfiles.d rules This fixes a failing assert in systemd-timesyncd (issue #5913) as it expects the directory /run/systemd/netif/links/ to exist, and nothing in NixOS currently creates it. Also we get a net reduction in our code as rules for /run/utmp and /var/log/journal are also provided by the same upstream file. --- .../modules/system/activation/activation-script.nix | 4 ---- nixos/modules/system/boot/systemd.nix | 12 +----------- 2 files changed, 1 insertion(+), 15 deletions(-) diff --git a/nixos/modules/system/activation/activation-script.nix b/nixos/modules/system/activation/activation-script.nix index 2e5a70b3aa54..02b3e25a313d 100644 --- a/nixos/modules/system/activation/activation-script.nix +++ b/nixos/modules/system/activation/activation-script.nix @@ -114,10 +114,6 @@ in '' # Various log/runtime directories. - touch /run/utmp # must exist - chgrp ${toString config.ids.gids.utmp} /run/utmp - chmod 664 /run/utmp - mkdir -m 0755 -p /run/nix/current-load # for distributed builds mkdir -m 0700 -p /run/nix/remote-stores diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix index 052267e7ad5e..99fd2544e708 100644 --- a/nixos/modules/system/boot/systemd.nix +++ b/nixos/modules/system/boot/systemd.nix @@ -638,13 +638,6 @@ in system.activationScripts.systemd = stringAfter [ "groups" ] '' mkdir -m 0755 -p /var/lib/udev - mkdir -p /var/log/journal - chmod 0755 /var/log/journal - - # Make all journals readable to users in the wheel and adm - # groups, in addition to those in the systemd-journal group. - # Users can always read their own journals. - ${pkgs.acl}/bin/setfacl -nm g:wheel:rx,d:g:wheel:rx,g:adm:rx,d:g:adm:rx /var/log/journal || true if ! [ -e /etc/machine-id ]; then ${systemd}/bin/systemd-machine-id-setup @@ -730,6 +723,7 @@ in startSession = true; }; + environment.etc."tmpfiles.d/systemd.conf".source = "${systemd}/example/tmpfiles.d/systemd.conf"; environment.etc."tmpfiles.d/x11.conf".source = "${systemd}/example/tmpfiles.d/x11.conf"; environment.etc."tmpfiles.d/nixos.conf".text = @@ -737,10 +731,6 @@ in # This file is created automatically and should not be modified. # Please change the option ‘systemd.tmpfiles.rules’ instead. - z /var/log/journal 2755 root systemd-journal - - - z /var/log/journal/%m 2755 root systemd-journal - - - z /var/log/journal/%m/* 0640 root systemd-journal - - - ${concatStringsSep "\n" cfg.tmpfiles.rules} ''; From e4b9624ca89617005cb082e2a8301695759e1b19 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 15 Jun 2015 14:18:27 +0200 Subject: [PATCH 025/165] Disable system_tarball_pc and fix eval It refers to a kernel version that no longer exists. --- nixos/release.nix | 2 ++ pkgs/top-level/release-cross.nix | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/nixos/release.nix b/nixos/release.nix index dfc28173f1a3..ca8aa341b4a7 100644 --- a/nixos/release.nix +++ b/nixos/release.nix @@ -206,10 +206,12 @@ in rec { # boot that system from uboot (like for the sheevaplug). # The pc variant helps preparing the expression for the system tarball # in a machine faster than the sheevpalug + /* system_tarball_pc = forAllSystems (system: makeSystemTarball { module = ./modules/installer/cd-dvd/system-tarball-pc.nix; inherit system; }); + */ # Provide container tarball for lxc, libvirt-lxc, docker-lxc, ... containerTarball = forAllSystems (system: makeSystemTarball { diff --git a/pkgs/top-level/release-cross.nix b/pkgs/top-level/release-cross.nix index cef3d2dffbdb..ced90c0489ca 100644 --- a/pkgs/top-level/release-cross.nix +++ b/pkgs/top-level/release-cross.nix @@ -16,7 +16,6 @@ let #xorgserver.crossDrv = nativePlatforms; }; nixUnstable.crossDrv = nativePlatforms; - linuxPackages_3_4.kernel.crossDrv = linux; }; /* Basic list of packages to be natively built, From 01dc343c2c613c263a2180d1850847f33653f94f Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 1 Jul 2015 11:19:03 +0200 Subject: [PATCH 026/165] systemd-timesyncd: Use NTP servers from our own ntp.org pool --- pkgs/os-specific/linux/systemd/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix index 214e6e8e39b4..d6de79624902 100644 --- a/pkgs/os-specific/linux/systemd/default.nix +++ b/pkgs/os-specific/linux/systemd/default.nix @@ -87,6 +87,8 @@ stdenv.mkDerivation rec { --replace /usr/lib/systemd/catalog/ $out/lib/systemd/catalog/ rm src/journal/audit_type-to-name.h src/udev/keyboard-keys-from-name.gperf + + configureFlagsArray+=("--with-ntp-servers=0.nixos.pool.ntp.org 1.nixos.pool.ntp.org 2.nixos.pool.ntp.org 3.nixos.pool.ntp.org") ''; PYTHON_BINARY = "${coreutils}/bin/env python"; # don't want a build time dependency on Python From 026c31dd9d6570fc6d7475c0102745cbfb0d6972 Mon Sep 17 00:00:00 2001 From: Spencer Janssen Date: Thu, 30 Jul 2015 16:29:38 -0500 Subject: [PATCH 027/165] stage-1: fix typo that breaks resume $d should be $sd, this causes resume from hibernate to fail if resumeDevice is not explicitly set in config. Introduced in commit: 'stage-1: Shut up warnings about swap devices that don't exist yet' (cherry picked from commit 2a31397f536b3bf57e4ee76b812fd83ab31de971) --- nixos/modules/system/boot/stage-1-init.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/system/boot/stage-1-init.sh b/nixos/modules/system/boot/stage-1-init.sh index 26cf7f06c9ed..480bbfa2b07b 100644 --- a/nixos/modules/system/boot/stage-1-init.sh +++ b/nixos/modules/system/boot/stage-1-init.sh @@ -184,7 +184,7 @@ if test -e /sys/power/resume -a -e /sys/power/disk; then # https://bugs.launchpad.net/ubuntu/+source/pm-utils/+bug/923326/comments/1 # when there are multiple swap devices, we can't know where the hibernate # image will reside. We can check all of them for swsuspend blkid. - resumeInfo="$(test -e "$d" && udevadm info -q property "$sd")" + resumeInfo="$(test -e "$sd" && udevadm info -q property "$sd")" if [ "$(echo "$resumeInfo" | sed -n 's/^ID_FS_TYPE=//p')" = "swsuspend" ]; then resumeDev="$sd" break From ecbe04b4c627e1eac866799faf248ec3e1207621 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 8 Sep 2015 00:01:39 +0200 Subject: [PATCH 028/165] systemd: Update to 225 --- pkgs/os-specific/linux/systemd/default.nix | 23 +- pkgs/os-specific/linux/systemd/fixes.patch | 533 ++------------------- 2 files changed, 46 insertions(+), 510 deletions(-) diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix index 7152d34e504a..2222d8e65d00 100644 --- a/pkgs/os-specific/linux/systemd/default.nix +++ b/pkgs/os-specific/linux/systemd/default.nix @@ -2,6 +2,7 @@ , xz, pam, acl, cryptsetup, libuuid, m4, utillinux , glib, kbd, libxslt, coreutils, libgcrypt , kexectools, libmicrohttpd, linuxHeaders, libseccomp +, autoreconfHook, gettext, docbook_xsl, docbook_xml_dtd_42, docbook_xml_dtd_45 , pythonPackages ? null, pythonSupport ? false }: @@ -10,17 +11,17 @@ assert stdenv.isLinux; assert pythonSupport -> pythonPackages != null; stdenv.mkDerivation rec { - version = "220"; + version = "225"; name = "systemd-${version}"; src = fetchurl { - url = "http://www.freedesktop.org/software/systemd/${name}.tar.xz"; - sha256 = "0ck38kmhscbd7w0n1rbvw7drc9zpj5a77h02fljyf7i28265hn9n"; + url = "https://github.com/systemd/systemd/archive/v${version}.tar.gz"; + sha256 = "00cpdw52lcypiyyqxsbhfdb69yf638a8xfa95xgk3sc86sxpdxdj"; }; patches = [ # These are all changes between upstream and - # https://github.com/NixOS/systemd/tree/nixos-v220. + # https://github.com/NixOS/systemd/tree/nixos-${version}. ./fixes.patch ]; @@ -28,6 +29,10 @@ stdenv.mkDerivation rec { [ linuxHeaders pkgconfig intltool gperf libcap kmod xz pam acl /* cryptsetup */ libuuid m4 glib libxslt libgcrypt libmicrohttpd kexectools libseccomp + /* FIXME: we may be able to prevent the following dependencies + by generating an autoconf'd tarball, but that's probably not + worth it. */ + autoreconfHook gettext docbook_xsl docbook_xml_dtd_42 docbook_xml_dtd_45 ] ++ stdenv.lib.optionals pythonSupport [pythonPackages.python pythonPackages.lxml]; configureFlags = @@ -37,11 +42,9 @@ stdenv.mkDerivation rec { "--with-kbd-loadkeys=${kbd}/bin/loadkeys" "--with-kbd-setfont=${kbd}/bin/setfont" "--with-rootprefix=$(out)" - "--with-dbusinterfacedir=$(out)/share/dbus-1/interfaces" "--with-dbuspolicydir=$(out)/etc/dbus-1/system.d" "--with-dbussystemservicedir=$(out)/share/dbus-1/system-services" "--with-dbussessionservicedir=$(out)/share/dbus-1/services" - "--with-firmware-path=/root/test-firmware:/run/current-system/firmware" "--with-tty-gid=3" # tty in NixOS has gid 3 "--enable-compat-libs" # get rid of this eventually "--disable-tests" @@ -51,7 +54,6 @@ stdenv.mkDerivation rec { "--disable-sysusers" "--disable-timedated" "--enable-timesyncd" - "--disable-readahead" "--disable-firstboot" "--disable-localed" "--enable-resolved" @@ -60,6 +62,7 @@ stdenv.mkDerivation rec { "--disable-libidn" "--disable-quotacheck" "--disable-ldconfig" + "--disable-smack" "--with-sysvinit-path=" "--with-sysvrcnd-path=" @@ -68,6 +71,8 @@ stdenv.mkDerivation rec { preConfigure = '' + ./autogen.sh + # FIXME: patch this in systemd properly (and send upstream). for i in src/remount-fs/remount-fs.c src/core/mount.c src/core/swap.c src/fsck/fsck.c units/emergency.service.in units/rescue.service.in src/journal/cat.c src/core/shutdown.c src/nspawn/nspawn.c src/shared/generator.c; do test -e $i @@ -86,8 +91,6 @@ stdenv.mkDerivation rec { substituteInPlace src/journal/catalog.c \ --replace /usr/lib/systemd/catalog/ $out/lib/systemd/catalog/ - rm src/journal/audit_type-to-name.h src/udev/keyboard-keys-from-name.gperf - configureFlagsArray+=("--with-ntp-servers=0.nixos.pool.ntp.org 1.nixos.pool.ntp.org 2.nixos.pool.ntp.org 3.nixos.pool.ntp.org") ''; @@ -151,6 +154,8 @@ stdenv.mkDerivation rec { rm $out/lib/*.la + rm -rf $out/share/doc + # "kernel-install" shouldn't be used on NixOS. find $out -name "*kernel-install*" -exec rm {} \; ''; # */ diff --git a/pkgs/os-specific/linux/systemd/fixes.patch b/pkgs/os-specific/linux/systemd/fixes.patch index ab687ba4ca34..3f8d3077d8f0 100644 --- a/pkgs/os-specific/linux/systemd/fixes.patch +++ b/pkgs/os-specific/linux/systemd/fixes.patch @@ -1,16 +1,3 @@ -diff --git a/rules/60-persistent-storage.rules b/rules/60-persistent-storage.rules -index 3f803ce..2aa15f3 100644 ---- a/rules/60-persistent-storage.rules -+++ b/rules/60-persistent-storage.rules -@@ -6,7 +6,7 @@ - ACTION=="remove", GOTO="persistent_storage_end" - - SUBSYSTEM!="block", GOTO="persistent_storage_end" --KERNEL!="loop*|mmcblk*[0-9]|msblk*[0-9]|mspblk*[0-9]|nvme*|sd*|sr*|vd*", GOTO="persistent_storage_end" -+KERNEL!="loop*|mmcblk*[0-9]|msblk*[0-9]|mspblk*[0-9]|nvme*|sd*|sr*|vd*|bcache*", GOTO="persistent_storage_end" - - # ignore partitions that span the entire disk - TEST=="whole_disk", GOTO="persistent_storage_end" diff --git a/rules/99-systemd.rules.in b/rules/99-systemd.rules.in index 10b90b8..db63c11 100644 --- a/rules/99-systemd.rules.in @@ -26,8 +13,21 @@ index 10b90b8..db63c11 100644 # Ignore raid devices that are not yet assembled and started SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", TEST!="md/array_state", ENV{SYSTEMD_READY}="0" SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", ATTR{md/array_state}=="|clear|inactive", ENV{SYSTEMD_READY}="0" +diff --git a/src/basic/path-util.h b/src/basic/path-util.h +index 1eac89c..38a134c 100644 +--- a/src/basic/path-util.h ++++ b/src/basic/path-util.h +@@ -26,7 +26,7 @@ + #include "macro.h" + #include "time-util.h" + +-#define DEFAULT_PATH_NORMAL "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin" ++#define DEFAULT_PATH_NORMAL "/no-such-path" + #define DEFAULT_PATH_SPLIT_USR DEFAULT_PATH_NORMAL ":/sbin:/bin" + + #ifdef HAVE_SPLIT_USR diff --git a/src/core/mount.c b/src/core/mount.c -index ba1dcf1..b700ce7 100644 +index c0d1cdf..0711748 100644 --- a/src/core/mount.c +++ b/src/core/mount.c @@ -367,7 +367,9 @@ static bool should_umount(Mount *m) { @@ -66,7 +66,7 @@ index ac52b30..d2e28f4 100644 systemdusergeneratordir=@usergeneratordir@ systemdsleepdir=@systemsleepdir@ diff --git a/src/core/umount.c b/src/core/umount.c -index bee267a..dc88e17 100644 +index d59b5d0..30b66e3 100644 --- a/src/core/umount.c +++ b/src/core/umount.c @@ -392,6 +392,8 @@ static int mount_points_list_umount(MountPoint **head, bool *changed, bool log_e @@ -79,10 +79,18 @@ index bee267a..dc88e17 100644 || path_equal(m->path, "/usr") #endif diff --git a/src/core/unit.c b/src/core/unit.c -index e380276..a875df7 100644 +index 43a5ca1..5d5ac2a 100644 --- a/src/core/unit.c +++ b/src/core/unit.c -@@ -1676,7 +1676,8 @@ static void unit_check_binds_to(Unit *u) { +@@ -49,6 +49,7 @@ + #include "formats-util.h" + #include "process-util.h" + #include "bus-util.h" ++#include "virt.h" + + const UnitVTable * const unit_vtable[_UNIT_TYPE_MAX] = { + [UNIT_SERVICE] = &service_vtable, +@@ -1646,7 +1647,8 @@ static void unit_check_binds_to(Unit *u) { } assert(other); @@ -93,10 +101,10 @@ index e380276..a875df7 100644 /* A unit we need to run is gone. Sniff. Let's stop this. */ r = manager_add_job(u->manager, JOB_STOP, u, JOB_FAIL, true, NULL, NULL); diff --git a/src/fsck/fsck.c b/src/fsck/fsck.c -index 9bbe9ff..d8a2889 100644 +index bd3051f..3ae8099 100644 --- a/src/fsck/fsck.c +++ b/src/fsck/fsck.c -@@ -412,7 +412,7 @@ int main(int argc, char *argv[]) { +@@ -413,7 +413,7 @@ int main(int argc, char *argv[]) { } else dash_c[0] = 0; @@ -105,125 +113,11 @@ index 9bbe9ff..d8a2889 100644 cmdline[i++] = arg_repair; cmdline[i++] = "-T"; -diff --git a/src/libsystemd/sd-device/device-enumerator.c b/src/libsystemd/sd-device/device-enumerator.c -index ce4862d..3692d46 100644 ---- a/src/libsystemd/sd-device/device-enumerator.c -+++ b/src/libsystemd/sd-device/device-enumerator.c -@@ -367,11 +367,11 @@ static bool match_sysattr(sd_device_enumerator *enumerator, sd_device *device) { - assert(enumerator); - assert(device); - -- HASHMAP_FOREACH_KEY(sysattr, value, enumerator->nomatch_sysattr, i) -+ HASHMAP_FOREACH_KEY(value, sysattr, enumerator->nomatch_sysattr, i) - if (match_sysattr_value(device, sysattr, value)) - return false; - -- HASHMAP_FOREACH_KEY(sysattr, value, enumerator->match_sysattr, i) -+ HASHMAP_FOREACH_KEY(value, sysattr, enumerator->match_sysattr, i) - if (!match_sysattr_value(device, sysattr, value)) - return false; - -@@ -389,7 +389,7 @@ static bool match_property(sd_device_enumerator *enumerator, sd_device *device) - if (hashmap_isempty(enumerator->match_property)) - return true; - -- HASHMAP_FOREACH_KEY(property, value, enumerator->match_property, i) { -+ HASHMAP_FOREACH_KEY(value, property, enumerator->match_property, i) { - const char *property_dev, *value_dev; - - FOREACH_DEVICE_PROPERTY(device, property_dev, value_dev) { -diff --git a/src/libsystemd/sd-device/device-private.c b/src/libsystemd/sd-device/device-private.c -index 3cadedb..deb8efd 100644 ---- a/src/libsystemd/sd-device/device-private.c -+++ b/src/libsystemd/sd-device/device-private.c -@@ -636,10 +636,9 @@ int device_new_from_nulstr(sd_device **ret, uint8_t *nulstr, size_t len) { - - static int device_update_properties_bufs(sd_device *device) { - const char *val, *prop; -- char **buf_strv = NULL; - uint8_t *buf_nulstr = NULL; -- size_t allocated_nulstr = 0, allocated_strv = 0; -- size_t nulstr_len = 0, strv_size = 0; -+ size_t allocated_nulstr = 0; -+ size_t nulstr_len = 0, num = 0, i; - - assert(device); - -@@ -655,20 +654,24 @@ static int device_update_properties_bufs(sd_device *device) { - if (!buf_nulstr) - return -ENOMEM; - -- buf_strv = GREEDY_REALLOC0(buf_strv, allocated_strv, strv_size + 2); -- if (!buf_strv) -- return -ENOMEM; -- -- buf_strv[++ strv_size] = (char *)&buf_nulstr[nulstr_len]; - strscpyl((char *)buf_nulstr + nulstr_len, len + 1, prop, "=", val, NULL); - nulstr_len += len + 1; -+ ++num; - } - - free(device->properties_nulstr); -- free(device->properties_strv); - device->properties_nulstr = buf_nulstr; - device->properties_nulstr_len = nulstr_len; -- device->properties_strv = buf_strv; -+ -+ /* build strv from buf_nulstr */ -+ free(device->properties_strv); -+ device->properties_strv = new0(char *, num + 1); -+ i = 0; -+ NULSTR_FOREACH(val, (char*) buf_nulstr) { -+ device->properties_strv[i] = (char *) val; -+ assert(i < num); -+ i++; -+ } - - device->properties_buf_outdated = false; - -diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c -index 1f5cf86..3555bcc 100644 ---- a/src/login/logind-dbus.c -+++ b/src/login/logind-dbus.c -@@ -1964,6 +1964,11 @@ static int method_cancel_scheduled_shutdown(sd_bus_message *message, void *userd - m->scheduled_shutdown_type = NULL; - m->scheduled_shutdown_timeout = 0; - -+ if (m->unlink_nologin) { -+ unlink("/run/nologin"); -+ m->unlink_nologin = false; -+ } -+ - if (cancelled) { - _cleanup_bus_creds_unref_ sd_bus_creds *creds = NULL; - const char *tty = NULL; -diff --git a/src/network/networkctl.c b/src/network/networkctl.c -index 69b4ab4..3454394 100644 ---- a/src/network/networkctl.c -+++ b/src/network/networkctl.c -@@ -62,7 +62,7 @@ static int link_get_type_string(int iftype, sd_device *d, char **ret) { - assert(ret); - - if (iftype == ARPHRD_ETHER && d) { -- const char *devtype, *id = NULL; -+ const char *devtype = NULL, *id = NULL; - /* WLANs have iftype ARPHRD_ETHER, but we want - * to show a more useful type string for - * them */ diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c -index 5009363..62a8dba 100644 +index 837947e..2884c6e 100644 --- a/src/nspawn/nspawn.c +++ b/src/nspawn/nspawn.c -@@ -2627,7 +2627,7 @@ static int setup_veth(pid_t pid, char iface_name[IFNAMSIZ], int *ifi) { - - r = sd_rtnl_call(rtnl, m, 0, NULL); - if (r < 0) -- return log_error_errno(r, "Failed to add new veth interfaces: %m"); -+ return log_error_errno(r, "Failed to add new veth interfaces (host0, %s): %m", iface_name); - - i = (int) if_nametoindex(iface_name); - if (i <= 0) -@@ -4589,6 +4589,7 @@ int main(int argc, char *argv[]) { +@@ -4655,6 +4655,7 @@ int main(int argc, char *argv[]) { goto finish; } } else { @@ -231,7 +125,7 @@ index 5009363..62a8dba 100644 const char *p; p = strjoina(arg_directory, -@@ -4598,6 +4599,7 @@ int main(int argc, char *argv[]) { +@@ -4664,6 +4665,7 @@ int main(int argc, char *argv[]) { r = -EINVAL; goto finish; } @@ -295,369 +189,6 @@ index f6a1271..9bec8e9 100644 STRV_IFNOTNULL(generator_late), NULL); -diff --git a/src/shared/path-util.c b/src/shared/path-util.c -index 7090989..8be479c 100644 ---- a/src/shared/path-util.c -+++ b/src/shared/path-util.c -@@ -509,7 +509,7 @@ static int fd_fdinfo_mnt_id(int fd, const char *filename, int flags, int *mnt_id - return safe_atoi(p, mnt_id); - } - --int fd_is_mount_point(int fd) { -+int fd_is_mount_point(int fd, const char *filename, int flags) { - union file_handle_union h = FILE_HANDLE_INIT, h_parent = FILE_HANDLE_INIT; - int mount_id = -1, mount_id_parent = -1; - bool nosupp = false, check_st_dev = true; -@@ -517,6 +517,7 @@ int fd_is_mount_point(int fd) { - int r; - - assert(fd >= 0); -+ assert(filename); - - /* First we will try the name_to_handle_at() syscall, which - * tells us the mount id and an opaque file "handle". It is -@@ -541,7 +542,7 @@ int fd_is_mount_point(int fd) { - * subvolumes have different st_dev, even though they aren't - * real mounts of their own. */ - -- r = name_to_handle_at(fd, "", &h.handle, &mount_id, AT_EMPTY_PATH); -+ r = name_to_handle_at(fd, filename, &h.handle, &mount_id, flags); - if (r < 0) { - if (errno == ENOSYS) - /* This kernel does not support name_to_handle_at() -@@ -558,7 +559,7 @@ int fd_is_mount_point(int fd) { - return -errno; - } - -- r = name_to_handle_at(fd, "..", &h_parent.handle, &mount_id_parent, 0); -+ r = name_to_handle_at(fd, "", &h_parent.handle, &mount_id_parent, AT_EMPTY_PATH); - if (r < 0) { - if (errno == EOPNOTSUPP) { - if (nosupp) -@@ -593,13 +594,13 @@ int fd_is_mount_point(int fd) { - return mount_id != mount_id_parent; - - fallback_fdinfo: -- r = fd_fdinfo_mnt_id(fd, "", AT_EMPTY_PATH, &mount_id); -+ r = fd_fdinfo_mnt_id(fd, filename, flags, &mount_id); - if (r == -EOPNOTSUPP) - goto fallback_fstat; - if (r < 0) - return r; - -- r = fd_fdinfo_mnt_id(fd, "..", 0, &mount_id_parent); -+ r = fd_fdinfo_mnt_id(fd, "", AT_EMPTY_PATH, &mount_id_parent); - if (r < 0) - return r; - -@@ -615,10 +616,16 @@ fallback_fdinfo: - check_st_dev = false; - - fallback_fstat: -- if (fstatat(fd, "", &a, AT_EMPTY_PATH) < 0) -+ /* yay for fstatat() taking a different set of flags than the other -+ * _at() above */ -+ if (flags & AT_SYMLINK_FOLLOW) -+ flags &= ~AT_SYMLINK_FOLLOW; -+ else -+ flags |= AT_SYMLINK_NOFOLLOW; -+ if (fstatat(fd, filename, &a, flags) < 0) - return -errno; - -- if (fstatat(fd, "..", &b, 0) < 0) -+ if (fstatat(fd, "", &b, AT_EMPTY_PATH) < 0) - return -errno; - - /* A directory with same device and inode as its parent? Must -@@ -632,17 +639,23 @@ fallback_fstat: - - int path_is_mount_point(const char *t, bool allow_symlink) { - _cleanup_close_ int fd = -1; -+ _cleanup_free_ char *parent = NULL; -+ int r; - - assert(t); - - if (path_equal(t, "/")) - return 1; - -- fd = openat(AT_FDCWD, t, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC|(allow_symlink ? 0 : O_PATH)); -+ r = path_get_parent(t, &parent); -+ if (r < 0) -+ return r; -+ -+ fd = openat(AT_FDCWD, parent, O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC|O_PATH); - if (fd < 0) - return -errno; - -- return fd_is_mount_point(fd); -+ return fd_is_mount_point(fd, basename(t), (allow_symlink ? AT_SYMLINK_FOLLOW : 0)); - } - - int path_is_read_only_fs(const char *path) { -diff --git a/src/shared/path-util.h b/src/shared/path-util.h -index 4f45cfd..a8a0662 100644 ---- a/src/shared/path-util.h -+++ b/src/shared/path-util.h -@@ -26,7 +26,7 @@ - #include "macro.h" - #include "time-util.h" - --#define DEFAULT_PATH_NORMAL "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin" -+#define DEFAULT_PATH_NORMAL "/no-such-path" - #define DEFAULT_PATH_SPLIT_USR DEFAULT_PATH_NORMAL ":/sbin:/bin" - - #ifdef HAVE_SPLIT_USR -@@ -53,7 +53,7 @@ char** path_strv_make_absolute_cwd(char **l); - char** path_strv_resolve(char **l, const char *prefix); - char** path_strv_resolve_uniq(char **l, const char *prefix); - --int fd_is_mount_point(int fd); -+int fd_is_mount_point(int fd, const char *filename, int flags); - int path_is_mount_point(const char *path, bool allow_symlink); - int path_is_read_only_fs(const char *path); - int path_is_os_tree(const char *path); -diff --git a/src/shared/rm-rf.c b/src/shared/rm-rf.c -index a89e8af..bafd483 100644 ---- a/src/shared/rm-rf.c -+++ b/src/shared/rm-rf.c -@@ -103,7 +103,7 @@ int rm_rf_children(int fd, RemoveFlags flags, struct stat *root_dev) { - } - - /* Stop at mount points */ -- r = fd_is_mount_point(subdir_fd); -+ r = fd_is_mount_point(fd, de->d_name, 0); - if (r < 0) { - if (ret == 0 && r != -ENOENT) - ret = r; -diff --git a/src/test/test-path-util.c b/src/test/test-path-util.c -index 09f0f2f..80782ff 100644 ---- a/src/test/test-path-util.c -+++ b/src/test/test-path-util.c -@@ -21,6 +21,7 @@ - - #include - #include -+#include - - #include "path-util.h" - #include "util.h" -@@ -88,21 +89,9 @@ static void test_path(void) { - test_parent("/aa///file...", "/aa///"); - test_parent("file.../", NULL); - -- assert_se(path_is_mount_point("/", true) > 0); -- assert_se(path_is_mount_point("/", false) > 0); -- - fd = open("/", O_RDONLY|O_CLOEXEC|O_DIRECTORY|O_NOCTTY); - assert_se(fd >= 0); -- assert_se(fd_is_mount_point(fd) > 0); -- -- assert_se(path_is_mount_point("/proc", true) > 0); -- assert_se(path_is_mount_point("/proc", false) > 0); -- -- assert_se(path_is_mount_point("/proc/1", true) == 0); -- assert_se(path_is_mount_point("/proc/1", false) == 0); -- -- assert_se(path_is_mount_point("/sys", true) > 0); -- assert_se(path_is_mount_point("/sys", false) > 0); -+ assert_se(fd_is_mount_point(fd, "/", 0) > 0); - - { - char p1[] = "aaa/bbb////ccc"; -@@ -322,6 +311,66 @@ static void test_prefix_root(void) { - test_prefix_root_one("/foo///", "//bar", "/foo/bar"); - } - -+static void test_path_is_mount_point(void) { -+ int fd, rt, rf, rlt, rlf; -+ char tmp_dir[] = "/tmp/test-path-is-mount-point-XXXXXX"; -+ _cleanup_free_ char *file1 = NULL, *file2 = NULL, *link1 = NULL, *link2 = NULL; -+ -+ assert_se(path_is_mount_point("/", true) > 0); -+ assert_se(path_is_mount_point("/", false) > 0); -+ -+ assert_se(path_is_mount_point("/proc", true) > 0); -+ assert_se(path_is_mount_point("/proc", false) > 0); -+ -+ assert_se(path_is_mount_point("/proc/1", true) == 0); -+ assert_se(path_is_mount_point("/proc/1", false) == 0); -+ -+ assert_se(path_is_mount_point("/sys", true) > 0); -+ assert_se(path_is_mount_point("/sys", false) > 0); -+ -+ /* file mountpoints */ -+ assert_se(mkdtemp(tmp_dir) != NULL); -+ file1 = path_join(NULL, tmp_dir, "file1"); -+ assert_se(file1); -+ file2 = path_join(NULL, tmp_dir, "file2"); -+ assert_se(file2); -+ fd = open(file1, O_WRONLY|O_CREAT|O_EXCL|O_CLOEXEC, 0664); -+ assert_se(fd > 0); -+ close(fd); -+ fd = open(file2, O_WRONLY|O_CREAT|O_EXCL|O_CLOEXEC, 0664); -+ assert_se(fd > 0); -+ close(fd); -+ link1 = path_join(NULL, tmp_dir, "link1"); -+ assert_se(link1); -+ assert_se(symlink("file1", link1) == 0); -+ link2 = path_join(NULL, tmp_dir, "link2"); -+ assert_se(link1); -+ assert_se(symlink("file2", link2) == 0); -+ -+ assert_se(path_is_mount_point(file1, true) == 0); -+ assert_se(path_is_mount_point(file1, false) == 0); -+ assert_se(path_is_mount_point(link1, true) == 0); -+ assert_se(path_is_mount_point(link1, false) == 0); -+ -+ /* this test will only work as root */ -+ if (mount(file1, file2, NULL, MS_BIND, NULL) >= 0) { -+ rf = path_is_mount_point(file2, false); -+ rt = path_is_mount_point(file2, true); -+ rlf = path_is_mount_point(link2, false); -+ rlt = path_is_mount_point(link2, true); -+ -+ assert_se(umount(file2) == 0); -+ -+ assert_se(rf == 1); -+ assert_se(rt == 1); -+ assert_se(rlf == 0); -+ assert_se(rlt == 1); -+ } else -+ printf("Skipping bind mount file test: %m\n"); -+ -+ assert_se(rm_rf(tmp_dir, REMOVE_ROOT|REMOVE_PHYSICAL) == 0); -+} -+ - int main(int argc, char **argv) { - test_path(); - test_find_binary(argv[0], true); -@@ -333,6 +382,7 @@ int main(int argc, char **argv) { - test_strv_resolve(); - test_path_startswith(); - test_prefix_root(); -+ test_path_is_mount_point(); - - return 0; - } -diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c -index 78aef20..4489205 100644 ---- a/src/udev/udev-builtin-net_id.c -+++ b/src/udev/udev-builtin-net_id.c -@@ -91,6 +91,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -166,15 +167,15 @@ static int dev_pci_onboard(struct udev_device *dev, struct netnames *names) { - - /* read the 256 bytes PCI configuration space to check the multi-function bit */ - static bool is_pci_multifunction(struct udev_device *dev) { -- _cleanup_fclose_ FILE *f = NULL; -+ _cleanup_close_ int fd = -1; - const char *filename; - uint8_t config[64]; - - filename = strjoina(udev_device_get_syspath(dev), "/config"); -- f = fopen(filename, "re"); -- if (!f) -+ fd = open(filename, O_RDONLY | O_CLOEXEC); -+ if (fd < 0) - return false; -- if (fread(&config, sizeof(config), 1, f) != 1) -+ if (read(fd, &config, sizeof(config)) != sizeof(config)) - return false; - - /* bit 0-6 header type, bit 7 multi/single function device */ -diff --git a/src/udev/udevd.c b/src/udev/udevd.c -index afd4640..b5dadbc 100644 ---- a/src/udev/udevd.c -+++ b/src/udev/udevd.c -@@ -564,7 +564,10 @@ static int event_queue_insert(Manager *manager, struct udev_device *dev) { - assert(manager); - assert(dev); - -- /* only the main process can add events to the queue */ -+ /* only one process can add events to the queue */ -+ if (manager->pid == 0) -+ manager->pid = getpid(); -+ - assert(manager->pid == getpid()); - - event = new0(struct event, 1); -@@ -1286,13 +1289,6 @@ static int parse_argv(int argc, char *argv[]) { - - static int manager_new(Manager **ret) { - _cleanup_(manager_freep) Manager *manager = NULL; -- struct epoll_event ep_ctrl = { .events = EPOLLIN }; -- struct epoll_event ep_inotify = { .events = EPOLLIN }; -- struct epoll_event ep_signal = { .events = EPOLLIN }; -- struct epoll_event ep_netlink = { .events = EPOLLIN }; -- struct epoll_event ep_worker = { .events = EPOLLIN }; -- sigset_t mask; -- int r, one = 1; - - assert(ret); - -@@ -1300,8 +1296,6 @@ static int manager_new(Manager **ret) { - if (!manager) - return log_oom(); - -- manager->pid = getpid(); -- - manager->fd_ep = -1; - manager->fd_ctrl = -1; - manager->fd_uevent = -1; -@@ -1323,6 +1317,23 @@ static int manager_new(Manager **ret) { - udev_list_node_init(&manager->events); - udev_list_init(manager->udev, &manager->properties, true); - -+ *ret = manager; -+ manager = NULL; -+ -+ return 0; -+} -+ -+static int manager_listen(Manager *manager) { -+ struct epoll_event ep_ctrl = { .events = EPOLLIN }; -+ struct epoll_event ep_inotify = { .events = EPOLLIN }; -+ struct epoll_event ep_signal = { .events = EPOLLIN }; -+ struct epoll_event ep_netlink = { .events = EPOLLIN }; -+ struct epoll_event ep_worker = { .events = EPOLLIN }; -+ sigset_t mask; -+ int r, one = 1; -+ -+ assert(manager); -+ - r = systemd_fds(&manager->fd_ctrl, &manager->fd_uevent); - if (r >= 0) { - /* get control and netlink socket from systemd */ -@@ -1404,10 +1415,7 @@ static int manager_new(Manager **ret) { - epoll_ctl(manager->fd_ep, EPOLL_CTL_ADD, manager->fd_worker, &ep_worker) < 0) - return log_error_errno(errno, "fail to add fds to epoll: %m"); - -- *ret = manager; -- manager = NULL; -- -- return 1; -+ return 0; - } - - int main(int argc, char *argv[]) { -@@ -1518,6 +1526,10 @@ int main(int argc, char *argv[]) { - } else - sd_notify(1, "READY=1"); - -+ r = manager_listen(manager); -+ if (r < 0) -+ return log_error_errno(r, "failed to set up fds and listen for events: %m"); -+ - for (;;) { - static usec_t last_usec; - struct epoll_event ev[8]; diff --git a/units/console-getty.service.m4.in b/units/console-getty.service.m4.in index 413d940..972b86a 100644 --- a/units/console-getty.service.m4.in @@ -683,14 +214,14 @@ index e126f3a..925af72 100644 Restart=always RestartSec=0 diff --git a/units/emergency.service.in b/units/emergency.service.in -index 52b9b1c..a3efec2 100644 +index 8dc3cbd..a3efec2 100644 --- a/units/emergency.service.in +++ b/units/emergency.service.in @@ -16,7 +16,6 @@ Before=shutdown.target [Service] Environment=HOME=/root WorkingDirectory=/root --ExecStartPre=-/bin/plymouth quit +-ExecStartPre=-/bin/plymouth --wait quit ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" or ^D to\\ntry again to boot into default mode.' ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --job-mode=fail --no-block default" Type=idle From 3cc04956f3076892fae011ce26dfb21bff5856bc Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 8 Sep 2015 10:48:42 +0200 Subject: [PATCH 029/165] libseccomp: Fix hash --- pkgs/development/libraries/libseccomp/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/libseccomp/default.nix b/pkgs/development/libraries/libseccomp/default.nix index 757093f2b556..444b68a23ee6 100644 --- a/pkgs/development/libraries/libseccomp/default.nix +++ b/pkgs/development/libraries/libseccomp/default.nix @@ -7,7 +7,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "https://github.com/seccomp/libseccomp/releases/download/v${version}/libseccomp-${version}.tar.gz"; - sha256 = "1vgc9xgdx6mc4fj21axlv2ym9ndnz06ylq3ps3f8210n3xksdq7y"; + sha256 = "d9b400b703cab7bb04b84b9b6e52076a630b673819d7541757bcc16467b6d49e"; }; buildInputs = [ getopt ]; From 3609007b7c09227c0e5808c652ffafd0e14e037d Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 8 Sep 2015 13:07:23 +0200 Subject: [PATCH 030/165] systemd: Use our systemd repo directly Since upstream no longer provides an autoconfed tarball, we may as well use our own repo and drop the patch. --- pkgs/os-specific/linux/systemd/default.nix | 16 +- pkgs/os-specific/linux/systemd/fixes.patch | 319 --------------------- 2 files changed, 6 insertions(+), 329 deletions(-) delete mode 100644 pkgs/os-specific/linux/systemd/fixes.patch diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix index 2222d8e65d00..cc6eb989aa13 100644 --- a/pkgs/os-specific/linux/systemd/default.nix +++ b/pkgs/os-specific/linux/systemd/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, intltool, gperf, libcap, dbus, kmod +{ stdenv, fetchFromGitHub, pkgconfig, intltool, gperf, libcap, dbus, kmod , xz, pam, acl, cryptsetup, libuuid, m4, utillinux , glib, kbd, libxslt, coreutils, libgcrypt , kexectools, libmicrohttpd, linuxHeaders, libseccomp @@ -14,17 +14,13 @@ stdenv.mkDerivation rec { version = "225"; name = "systemd-${version}"; - src = fetchurl { - url = "https://github.com/systemd/systemd/archive/v${version}.tar.gz"; - sha256 = "00cpdw52lcypiyyqxsbhfdb69yf638a8xfa95xgk3sc86sxpdxdj"; + src = fetchFromGitHub { + owner = "NixOS"; + repo = "systemd"; + rev = "72184f47631ede4cb0df44e7c96d5183ac0ea5b4"; + sha256 = "1j8rkf7x27gvaqw2jqizf62lb1850kwpb763qm11799jbf5m9l95"; }; - patches = - [ # These are all changes between upstream and - # https://github.com/NixOS/systemd/tree/nixos-${version}. - ./fixes.patch - ]; - buildInputs = [ linuxHeaders pkgconfig intltool gperf libcap kmod xz pam acl /* cryptsetup */ libuuid m4 glib libxslt libgcrypt diff --git a/pkgs/os-specific/linux/systemd/fixes.patch b/pkgs/os-specific/linux/systemd/fixes.patch deleted file mode 100644 index 3f8d3077d8f0..000000000000 --- a/pkgs/os-specific/linux/systemd/fixes.patch +++ /dev/null @@ -1,319 +0,0 @@ -diff --git a/rules/99-systemd.rules.in b/rules/99-systemd.rules.in -index 10b90b8..db63c11 100644 ---- a/rules/99-systemd.rules.in -+++ b/rules/99-systemd.rules.in -@@ -13,10 +13,6 @@ KERNEL=="vport*", TAG+="systemd" - SUBSYSTEM=="block", TAG+="systemd" - SUBSYSTEM=="block", ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="1", ENV{SYSTEMD_READY}="0" - --# Ignore encrypted devices with no identified superblock on it, since --# we are probably still calling mke2fs or mkswap on it. --SUBSYSTEM=="block", ENV{DM_UUID}=="CRYPT-*", ENV{ID_PART_TABLE_TYPE}=="", ENV{ID_FS_USAGE}=="", ENV{SYSTEMD_READY}="0" -- - # Ignore raid devices that are not yet assembled and started - SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", TEST!="md/array_state", ENV{SYSTEMD_READY}="0" - SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", KERNEL=="md*", ATTR{md/array_state}=="|clear|inactive", ENV{SYSTEMD_READY}="0" -diff --git a/src/basic/path-util.h b/src/basic/path-util.h -index 1eac89c..38a134c 100644 ---- a/src/basic/path-util.h -+++ b/src/basic/path-util.h -@@ -26,7 +26,7 @@ - #include "macro.h" - #include "time-util.h" - --#define DEFAULT_PATH_NORMAL "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin" -+#define DEFAULT_PATH_NORMAL "/no-such-path" - #define DEFAULT_PATH_SPLIT_USR DEFAULT_PATH_NORMAL ":/sbin:/bin" - - #ifdef HAVE_SPLIT_USR -diff --git a/src/core/mount.c b/src/core/mount.c -index c0d1cdf..0711748 100644 ---- a/src/core/mount.c -+++ b/src/core/mount.c -@@ -367,7 +367,9 @@ static bool should_umount(Mount *m) { - MountParameters *p; - - if (path_equal(m->where, "/") || -- path_equal(m->where, "/usr")) -+ path_equal(m->where, "/usr") || -+ path_equal(m->where, "/nix") || -+ path_equal(m->where, "/nix/store")) - return false; - - p = get_mount_parameters(m); -@@ -395,6 +397,8 @@ static int mount_add_default_dependencies(Mount *m) { - * virtual, and hence not worth the effort. */ - if (path_equal(m->where, "/") || - path_equal(m->where, "/usr") || -+ path_equal(m->where, "/nix") || -+ path_equal(m->where, "/nix/store") || - path_startswith(m->where, "/proc") || - path_startswith(m->where, "/sys") || - path_startswith(m->where, "/dev")) -diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in -index ac52b30..d2e28f4 100644 ---- a/src/core/systemd.pc.in -+++ b/src/core/systemd.pc.in -@@ -13,8 +13,8 @@ systemduserunitdir=@userunitdir@ - systemduserpresetdir=@userpresetdir@ - systemdsystemconfdir=@pkgsysconfdir@/system - systemduserconfdir=@pkgsysconfdir@/user --systemdsystemunitpath=${systemdsystemconfdir}:/etc/systemd/system:/run/systemd/system:/usr/local/lib/systemd/system:${systemdsystemunitdir}:/usr/lib/systemd/system:/lib/systemd/system --systemduserunitpath=${systemduserconfdir}:/etc/systemd/user:/run/systemd/user:/usr/local/lib/systemd/user:/usr/local/share/systemd/user:${systemduserunitdir}:/usr/lib/systemd/user:/usr/share/systemd/user -+systemdsystemunitpath=${systemdsystemconfdir}:/etc/systemd/system:/etc/systemd-mutable/system:/nix/var/nix/profiles/default/lib/systemd/user:/run/systemd/system:${systemdsystemunitdir} -+systemduserunitpath=${systemduserconfdir}:/etc/systemd/user:/etc/systemd-mutable/user:/nix/var/nix/profiles/default/lib/systemd/system:/run/systemd/user:${systemduserunitdir} - systemdsystemgeneratordir=@systemgeneratordir@ - systemdusergeneratordir=@usergeneratordir@ - systemdsleepdir=@systemsleepdir@ -diff --git a/src/core/umount.c b/src/core/umount.c -index d59b5d0..30b66e3 100644 ---- a/src/core/umount.c -+++ b/src/core/umount.c -@@ -392,6 +392,8 @@ static int mount_points_list_umount(MountPoint **head, bool *changed, bool log_e - * anyway, since we are running from it. They have - * already been remounted ro. */ - if (path_equal(m->path, "/") -+ || path_equal(m->path, "/nix") -+ || path_equal(m->path, "/nix/store") - #ifndef HAVE_SPLIT_USR - || path_equal(m->path, "/usr") - #endif -diff --git a/src/core/unit.c b/src/core/unit.c -index 43a5ca1..5d5ac2a 100644 ---- a/src/core/unit.c -+++ b/src/core/unit.c -@@ -49,6 +49,7 @@ - #include "formats-util.h" - #include "process-util.h" - #include "bus-util.h" -+#include "virt.h" - - const UnitVTable * const unit_vtable[_UNIT_TYPE_MAX] = { - [UNIT_SERVICE] = &service_vtable, -@@ -1646,7 +1647,8 @@ static void unit_check_binds_to(Unit *u) { - } - - assert(other); -- log_unit_info(u, "Unit is bound to inactive unit %s. Stopping, too.", other->id); -+ if (u->type != UNIT_MOUNT || detect_container(NULL) <= 0) -+ log_unit_info(u, "Unit is bound to inactive unit %s. Stopping, too.", other->id); - - /* A unit we need to run is gone. Sniff. Let's stop this. */ - r = manager_add_job(u->manager, JOB_STOP, u, JOB_FAIL, true, NULL, NULL); -diff --git a/src/fsck/fsck.c b/src/fsck/fsck.c -index bd3051f..3ae8099 100644 ---- a/src/fsck/fsck.c -+++ b/src/fsck/fsck.c -@@ -413,7 +413,7 @@ int main(int argc, char *argv[]) { - } else - dash_c[0] = 0; - -- cmdline[i++] = "/sbin/fsck"; -+ cmdline[i++] = "/run/current-system/sw/sbin/fsck"; - cmdline[i++] = arg_repair; - cmdline[i++] = "-T"; - -diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c -index 837947e..2884c6e 100644 ---- a/src/nspawn/nspawn.c -+++ b/src/nspawn/nspawn.c -@@ -4655,6 +4655,7 @@ int main(int argc, char *argv[]) { - goto finish; - } - } else { -+#if 0 - const char *p; - - p = strjoina(arg_directory, -@@ -4664,6 +4665,7 @@ int main(int argc, char *argv[]) { - r = -EINVAL; - goto finish; - } -+#endif - } - - } else { -diff --git a/src/shared/path-lookup.c b/src/shared/path-lookup.c -index f6a1271..9bec8e9 100644 ---- a/src/shared/path-lookup.c -+++ b/src/shared/path-lookup.c -@@ -111,17 +111,14 @@ static char** user_dirs( - const char * const config_unit_paths[] = { - USER_CONFIG_UNIT_PATH, - "/etc/systemd/user", -+ "/etc/systemd-mutable/user", - NULL - }; - - const char * const runtime_unit_path = "/run/systemd/user"; - - const char * const data_unit_paths[] = { -- "/usr/local/lib/systemd/user", -- "/usr/local/share/systemd/user", - USER_DATA_UNIT_PATH, -- "/usr/lib/systemd/user", -- "/usr/share/systemd/user", - NULL - }; - -@@ -288,13 +285,11 @@ int lookup_paths_init( - STRV_IFNOTNULL(generator_early), - USER_CONFIG_UNIT_PATH, - "/etc/systemd/user", -+ "/etc/systemd-mutable/user", -+ "/nix/var/nix/profiles/default/lib/systemd/user", - "/run/systemd/user", - STRV_IFNOTNULL(generator), -- "/usr/local/lib/systemd/user", -- "/usr/local/share/systemd/user", - USER_DATA_UNIT_PATH, -- "/usr/lib/systemd/user", -- "/usr/share/systemd/user", - STRV_IFNOTNULL(generator_late), - NULL); - } else -@@ -304,14 +299,11 @@ int lookup_paths_init( - STRV_IFNOTNULL(generator_early), - SYSTEM_CONFIG_UNIT_PATH, - "/etc/systemd/system", -+ "/etc/systemd-mutable/system", -+ "/nix/var/nix/profiles/default/lib/systemd/system", - "/run/systemd/system", - STRV_IFNOTNULL(generator), -- "/usr/local/lib/systemd/system", - SYSTEM_DATA_UNIT_PATH, -- "/usr/lib/systemd/system", --#ifdef HAVE_SPLIT_USR -- "/lib/systemd/system", --#endif - STRV_IFNOTNULL(generator_late), - NULL); - -diff --git a/units/console-getty.service.m4.in b/units/console-getty.service.m4.in -index 413d940..972b86a 100644 ---- a/units/console-getty.service.m4.in -+++ b/units/console-getty.service.m4.in -@@ -16,7 +16,6 @@ After=rc-local.service - Before=getty.target - - [Service] --ExecStart=-/sbin/agetty --noclear --keep-baud console 115200,38400,9600 $TERM - Type=idle - Restart=always - RestartSec=0 -diff --git a/units/container-getty@.service.m4.in b/units/container-getty@.service.m4.in -index e126f3a..925af72 100644 ---- a/units/container-getty@.service.m4.in -+++ b/units/container-getty@.service.m4.in -@@ -17,7 +17,6 @@ IgnoreOnIsolate=yes - ConditionPathExists=/dev/pts/%I - - [Service] --ExecStart=-/sbin/agetty --noclear --keep-baud pts/%I 115200,38400,9600 $TERM - Type=idle - Restart=always - RestartSec=0 -diff --git a/units/emergency.service.in b/units/emergency.service.in -index 8dc3cbd..a3efec2 100644 ---- a/units/emergency.service.in -+++ b/units/emergency.service.in -@@ -16,7 +16,6 @@ Before=shutdown.target - [Service] - Environment=HOME=/root - WorkingDirectory=/root --ExecStartPre=-/bin/plymouth --wait quit - ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" or ^D to\\ntry again to boot into default mode.' - ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --job-mode=fail --no-block default" - Type=idle -diff --git a/units/getty@.service.m4 b/units/getty@.service.m4 -index 46164ab..f194a31 100644 ---- a/units/getty@.service.m4 -+++ b/units/getty@.service.m4 -@@ -23,11 +23,12 @@ IgnoreOnIsolate=yes - # On systems without virtual consoles, don't start any getty. Note - # that serial gettys are covered by serial-getty@.service, not this - # unit. --ConditionPathExists=/dev/tty0 -+ConditionPathExists=|/dev/tty0 -+ConditionVirtualization=|lxc -+ConditionVirtualization=|lxc-libvirt - - [Service] - # the VT is cleared by TTYVTDisallocate --ExecStart=-/sbin/agetty --noclear %I $TERM - Type=idle - Restart=always - RestartSec=0 -diff --git a/units/kmod-static-nodes.service.in b/units/kmod-static-nodes.service.in -index 0934a87..7e30c9e 100644 ---- a/units/kmod-static-nodes.service.in -+++ b/units/kmod-static-nodes.service.in -@@ -10,7 +10,6 @@ Description=Create list of required static device nodes for the current kernel - DefaultDependencies=no - Before=sysinit.target systemd-tmpfiles-setup-dev.service - ConditionCapability=CAP_SYS_MODULE --ConditionPathExists=/lib/modules/%v/modules.devname - - [Service] - Type=oneshot -diff --git a/units/rescue.service.in b/units/rescue.service.in -index 432e4f3..66bdf87 100644 ---- a/units/rescue.service.in -+++ b/units/rescue.service.in -@@ -16,7 +16,6 @@ Before=shutdown.target - [Service] - Environment=HOME=/root - WorkingDirectory=/root --ExecStartPre=-/bin/plymouth quit - ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" or ^D to\\nboot into default mode.' - ExecStart=-/bin/sh -c "@SULOGIN@; @SYSTEMCTL@ --job-mode=fail --no-block default" - Type=idle -diff --git a/units/serial-getty@.service.m4 b/units/serial-getty@.service.m4 -index 4522d0d..96daa5c 100644 ---- a/units/serial-getty@.service.m4 -+++ b/units/serial-getty@.service.m4 -@@ -22,7 +22,6 @@ Before=getty.target - IgnoreOnIsolate=yes - - [Service] --ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 %I $TERM - Type=idle - Restart=always - UtmpIdentifier=%I -diff --git a/units/sysinit.target b/units/sysinit.target -index ec33503..4ac47b9 100644 ---- a/units/sysinit.target -+++ b/units/sysinit.target -@@ -9,5 +9,4 @@ - Description=System Initialization - Documentation=man:systemd.special(7) - Conflicts=emergency.service emergency.target --Wants=local-fs.target swap.target --After=local-fs.target swap.target emergency.service emergency.target -+After=emergency.service emergency.target -diff --git a/units/systemd-tmpfiles-setup.service.in b/units/systemd-tmpfiles-setup.service.in -index e895cda..194146f 100644 ---- a/units/systemd-tmpfiles-setup.service.in -+++ b/units/systemd-tmpfiles-setup.service.in -@@ -11,7 +11,7 @@ Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8) - DefaultDependencies=no - Conflicts=shutdown.target - After=local-fs.target systemd-sysusers.service --Before=sysinit.target shutdown.target -+Before=shutdown.target - RefuseManualStop=yes - - [Service] -diff --git a/units/systemd-update-utmp.service.in b/units/systemd-update-utmp.service.in -index 163eccd..31476c3 100644 ---- a/units/systemd-update-utmp.service.in -+++ b/units/systemd-update-utmp.service.in -@@ -11,7 +11,7 @@ Documentation=man:systemd-update-utmp.service(8) man:utmp(5) - DefaultDependencies=no - RequiresMountsFor=/var/log/wtmp - Conflicts=shutdown.target --After=systemd-remount-fs.service systemd-tmpfiles-setup.service auditd.service -+After=systemd-remount-fs.service auditd.service - Before=sysinit.target shutdown.target - - [Service] From d242e59fc49f437ccd57763c8bef520740f914ff Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 8 Sep 2015 14:07:05 +0200 Subject: [PATCH 031/165] systemd: Apply sbin patch --- pkgs/os-specific/linux/systemd/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix index cc6eb989aa13..b9e86b469c15 100644 --- a/pkgs/os-specific/linux/systemd/default.nix +++ b/pkgs/os-specific/linux/systemd/default.nix @@ -17,8 +17,8 @@ stdenv.mkDerivation rec { src = fetchFromGitHub { owner = "NixOS"; repo = "systemd"; - rev = "72184f47631ede4cb0df44e7c96d5183ac0ea5b4"; - sha256 = "1j8rkf7x27gvaqw2jqizf62lb1850kwpb763qm11799jbf5m9l95"; + rev = "457c6608e65a9db9611b94a648800be9092b65b1"; + sha256 = "0z4z8afvqb57hycdp1lkyychis1c1iphrr9zn67521hn9gg1myj0"; }; buildInputs = From 3bada19e24a2d7a2b697d8c67b64f014275b3318 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 8 Sep 2015 14:50:50 +0200 Subject: [PATCH 032/165] Add libgudev This has been split from systemd. --- .../libraries/libgudev/default.nix | 21 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 23 insertions(+) create mode 100644 pkgs/development/libraries/libgudev/default.nix diff --git a/pkgs/development/libraries/libgudev/default.nix b/pkgs/development/libraries/libgudev/default.nix new file mode 100644 index 000000000000..e751c6ee6c04 --- /dev/null +++ b/pkgs/development/libraries/libgudev/default.nix @@ -0,0 +1,21 @@ +{ lib, stdenv, fetchurl, pkgconfig, udev, glib }: + +let version = "230"; in + +stdenv.mkDerivation rec { + name = "libgudev-${version}"; + + src = fetchurl { + url = "https://download.gnome.org/sources/libgudev/${version}/${name}.tar.xz"; + sha256 = "a2e77faced0c66d7498403adefcc0707105e03db71a2b2abd620025b86347c18"; + }; + + buildInputs = [ pkgconfig udev glib ]; + + meta = { + homepage = https://wiki.gnome.org/Projects/libgudev; + maintainers = [ lib.maintainers.eelco ]; + platforms = lib.platforms.linux; + license = lib.licenses.lgpl2Plus; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a8fb4762af87..9f27d2f8884b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7076,6 +7076,8 @@ let libgsystem = callPackage ../development/libraries/libgsystem { }; + libgudev = callPackage ../development/libraries/libgudev { }; + libguestfs = callPackage ../development/libraries/libguestfs { inherit (perlPackages) libintlperl GetoptLong SysVirt; }; From 5dde1a97525ddeb02dcaac178146906441b877bb Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 8 Sep 2015 14:51:14 +0200 Subject: [PATCH 033/165] udisks2: Add libgudev dependency http://hydra.nixos.org/build/25640910 --- pkgs/os-specific/linux/udisks/2-default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/udisks/2-default.nix b/pkgs/os-specific/linux/udisks/2-default.nix index 76d6caa767c6..fdc3e6874b4f 100644 --- a/pkgs/os-specific/linux/udisks/2-default.nix +++ b/pkgs/os-specific/linux/udisks/2-default.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl, pkgconfig, intltool , expat, acl, systemd, glib, libatasmart, polkit -, libxslt, docbook_xsl, utillinux, mdadm +, libxslt, docbook_xsl, utillinux, mdadm, libgudev }: stdenv.mkDerivation rec { @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { propagatedBuildInputs = [ expat acl systemd glib libatasmart polkit ]; # in closure anyway - buildInputs = [ libxslt docbook_xsl ]; + buildInputs = [ libxslt docbook_xsl libgudev ]; configureFlags = [ "--localstatedir=/var" From 023c12bc9ad9f78b4b6e395aa9740bfd4c10dfc0 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 8 Sep 2015 14:53:14 +0200 Subject: [PATCH 034/165] udisks2: Propagated inputs considered harmful --- pkgs/os-specific/linux/udisks/2-default.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkgs/os-specific/linux/udisks/2-default.nix b/pkgs/os-specific/linux/udisks/2-default.nix index fdc3e6874b4f..060d9ad1dd32 100644 --- a/pkgs/os-specific/linux/udisks/2-default.nix +++ b/pkgs/os-specific/linux/udisks/2-default.nix @@ -26,9 +26,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkgconfig intltool ]; - propagatedBuildInputs = [ expat acl systemd glib libatasmart polkit ]; # in closure anyway - - buildInputs = [ libxslt docbook_xsl libgudev ]; + buildInputs = [ libxslt docbook_xsl libgudev expat acl systemd glib libatasmart polkit ]; configureFlags = [ "--localstatedir=/var" From a6de3feb97e7d7ffe3519d4d6c0b60b86d6d6692 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 8 Sep 2015 18:17:24 +0200 Subject: [PATCH 035/165] systemd: Update to 226 --- pkgs/os-specific/linux/systemd/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix index b9e86b469c15..4024555a0904 100644 --- a/pkgs/os-specific/linux/systemd/default.nix +++ b/pkgs/os-specific/linux/systemd/default.nix @@ -11,14 +11,14 @@ assert stdenv.isLinux; assert pythonSupport -> pythonPackages != null; stdenv.mkDerivation rec { - version = "225"; + version = "226"; name = "systemd-${version}"; src = fetchFromGitHub { owner = "NixOS"; repo = "systemd"; - rev = "457c6608e65a9db9611b94a648800be9092b65b1"; - sha256 = "0z4z8afvqb57hycdp1lkyychis1c1iphrr9zn67521hn9gg1myj0"; + rev = "16d61e9657b643cc25ff0538688eb870ce2dd4a5"; + sha256 = "07sc1x43j60d5jnps0d7bfka10fihnpgkdrfrh9iskgmc9qangjb"; }; buildInputs = From 2a8e86bb05909febeabb66af80d53385c9b391ec Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 8 Sep 2015 20:19:37 +0200 Subject: [PATCH 036/165] upower: Use libgudev --- pkgs/os-specific/linux/upower/0.99.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/upower/0.99.nix b/pkgs/os-specific/linux/upower/0.99.nix index 58133db90237..495d94aa518c 100644 --- a/pkgs/os-specific/linux/upower/0.99.nix +++ b/pkgs/os-specific/linux/upower/0.99.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, pkgconfig, glib, dbus, dbus_glib, dbus_tools -, intltool, libxslt, docbook_xsl, udev, libusb1, pmutils +, intltool, libxslt, docbook_xsl, udev, libusb1, pmutils, libgudev , useSystemd ? true, systemd, gobjectIntrospection }: @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { }; buildInputs = - [ dbus_glib intltool libxslt docbook_xsl udev libusb1 gobjectIntrospection ] + [ dbus_glib intltool libxslt docbook_xsl udev libgudev libusb1 gobjectIntrospection ] ++ stdenv.lib.optional useSystemd systemd; nativeBuildInputs = [ pkgconfig ]; From 7af1e0ae9268d382da9339776c24819cac0862a5 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 8 Sep 2015 20:21:18 +0200 Subject: [PATCH 037/165] libmbim: Use libgudev --- pkgs/development/libraries/libmbim/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/libmbim/default.nix b/pkgs/development/libraries/libmbim/default.nix index d58f031f3762..f910741c446e 100644 --- a/pkgs/development/libraries/libmbim/default.nix +++ b/pkgs/development/libraries/libmbim/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, glib, python, udev }: +{ stdenv, fetchurl, pkgconfig, glib, python, udev, libgudev }: stdenv.mkDerivation rec { name = "libmbim-1.12.2"; @@ -12,11 +12,11 @@ stdenv.mkDerivation rec { patchShebangs . ''; - buildInputs = [ pkgconfig glib udev python ]; + buildInputs = [ pkgconfig glib udev libgudev python ]; meta = with stdenv.lib; { homepage = http://www.freedesktop.org/software/libmbim/; - description = "talking to WWAN modems and devices which speak the Mobile Interface Broadband Model (MBIM) protocol"; + description = "Library for talking to WWAN modems and devices which speak the Mobile Interface Broadband Model (MBIM) protocol"; platforms = platforms.linux; license = licenses.gpl2; maintainers = with maintainers; [ wkennington ]; From d627db79b8a6e74ca2aa14f1d5e82feacf585a97 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 8 Sep 2015 20:22:27 +0200 Subject: [PATCH 038/165] libwacom: Use libgudev --- pkgs/development/libraries/libwacom/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/libwacom/default.nix b/pkgs/development/libraries/libwacom/default.nix index f6244cba5cb1..7a8430138354 100644 --- a/pkgs/development/libraries/libwacom/default.nix +++ b/pkgs/development/libraries/libwacom/default.nix @@ -1,4 +1,4 @@ -{ fetchurl, stdenv, glib, pkgconfig, udev }: +{ fetchurl, stdenv, glib, pkgconfig, udev, libgudev }: stdenv.mkDerivation rec { name = "libwacom-0.7.1"; @@ -8,7 +8,7 @@ stdenv.mkDerivation rec { sha256 = "1agdaa1bv5mp4l32qgsw63swnnv0p279jiy9madgw4y3d8d12dwm"; }; - buildInputs = [ glib pkgconfig udev ]; + buildInputs = [ glib pkgconfig udev libgudev ]; meta = with stdenv.lib; { platforms = platforms.linux; From 4b422b9dea1bb44538a132a7792a28dc11a55649 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 11 Sep 2015 12:22:27 +0200 Subject: [PATCH 039/165] More libgudev dependencies --- pkgs/development/libraries/gvfs/default.nix | 8 ++++---- pkgs/tools/networking/modemmanager/default.nix | 4 ++-- pkgs/tools/networking/network-manager/default.nix | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pkgs/development/libraries/gvfs/default.nix b/pkgs/development/libraries/gvfs/default.nix index dcdef696ffdf..d2a958faed8b 100644 --- a/pkgs/development/libraries/gvfs/default.nix +++ b/pkgs/development/libraries/gvfs/default.nix @@ -1,25 +1,25 @@ { stdenv, fetchurl, pkgconfig, intltool, libtool -, glib, dbus, udev, udisks2, libgcrypt +, glib, dbus, udev, libgudev, udisks2, libgcrypt , libgphoto2, avahi, libarchive, fuse, libcdio , libxml2, libxslt, docbook_xsl, samba, libmtp , gnomeSupport ? false, gnome,libgnome_keyring, gconf, makeWrapper }: let ver_maj = "1.22"; - version = "${ver_maj}.2"; + version = "${ver_maj}.4"; in stdenv.mkDerivation rec { name = "gvfs-${version}"; src = fetchurl { url = "mirror://gnome/sources/gvfs/${ver_maj}/${name}.tar.xz"; - sha256 = "8d08c4927b6c20d990498c23280017e7033b31a386f09b4c3ce5bedd20316250"; + sha256 = "57e33faad35aba72be3822099856aca847f391626cf3ec734b42e64ba31f6484"; }; nativeBuildInputs = [ pkgconfig intltool libtool ]; buildInputs = - [ makeWrapper glib dbus.libs udev udisks2 libgcrypt + [ makeWrapper glib dbus.libs udev libgudev udisks2 libgcrypt libgphoto2 avahi libarchive fuse libcdio libxml2 libxslt docbook_xsl samba libmtp # ToDo: a ligther version of libsoup to have FTP/HTTP support? diff --git a/pkgs/tools/networking/modemmanager/default.nix b/pkgs/tools/networking/modemmanager/default.nix index b044b5268734..77c71f38331c 100644 --- a/pkgs/tools/networking/modemmanager/default.nix +++ b/pkgs/tools/networking/modemmanager/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, udev, polkit, dbus_glib, ppp, intltool, pkgconfig, libmbim, libqmi }: +{ stdenv, fetchurl, udev, libgudev, polkit, dbus_glib, ppp, intltool, pkgconfig, libmbim, libqmi }: stdenv.mkDerivation rec { name = "ModemManager-${version}"; @@ -11,7 +11,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ intltool pkgconfig ]; - buildInputs = [ udev polkit dbus_glib ppp libmbim libqmi ]; + buildInputs = [ udev libgudev polkit dbus_glib ppp libmbim libqmi ]; configureFlags = [ "--with-polkit" diff --git a/pkgs/tools/networking/network-manager/default.nix b/pkgs/tools/networking/network-manager/default.nix index cc914d6616c9..30aff794baa0 100644 --- a/pkgs/tools/networking/network-manager/default.nix +++ b/pkgs/tools/networking/network-manager/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, intltool, wirelesstools, pkgconfig, dbus_glib, xz -, udev, libnl, libuuid, polkit, gnutls, ppp, dhcp, dhcpcd, iptables +, udev, libgudev, libnl, libuuid, polkit, gnutls, ppp, dhcp, dhcpcd, iptables , libgcrypt, dnsmasq, avahi, bind, perl, bluez5, substituteAll, readline , gobjectIntrospection, modemmanager, openresolv, libndp, newt, libsoup }: @@ -44,7 +44,7 @@ stdenv.mkDerivation rec { "--with-libsoup=yes" ]; - buildInputs = [ wirelesstools udev libnl libuuid polkit ppp libndp + buildInputs = [ wirelesstools udev libgudev libnl libuuid polkit ppp libndp xz bluez5 gobjectIntrospection modemmanager readline newt libsoup ]; propagatedBuildInputs = [ dbus_glib gnutls libgcrypt ]; From cc4e33e17cba0fbdf0d2a75a3703cc2fa902159d Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 15 Sep 2015 12:14:21 +0200 Subject: [PATCH 040/165] More libgudev dependencies --- pkgs/desktops/xfce/core/thunar-volman.nix | 4 ++-- pkgs/tools/networking/network-manager-applet/default.nix | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/desktops/xfce/core/thunar-volman.nix b/pkgs/desktops/xfce/core/thunar-volman.nix index b53ee4c45c55..a3b8a619f174 100644 --- a/pkgs/desktops/xfce/core/thunar-volman.nix +++ b/pkgs/desktops/xfce/core/thunar-volman.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, pkgconfig, intltool, exo, gtk, libxfce4util, libxfce4ui -, xfconf, udev, libnotify }: +, xfconf, udev, libgudev, libnotify }: stdenv.mkDerivation rec { p_name = "thunar-volman"; @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { buildInputs = - [ pkgconfig intltool exo gtk udev libxfce4ui libxfce4util + [ pkgconfig intltool exo gtk udev libgudev libxfce4ui libxfce4util xfconf libnotify ]; preFixup = "rm $out/share/icons/hicolor/icon-theme.cache"; diff --git a/pkgs/tools/networking/network-manager-applet/default.nix b/pkgs/tools/networking/network-manager-applet/default.nix index 51eda2f25fd0..f3e64c866569 100644 --- a/pkgs/tools/networking/network-manager-applet/default.nix +++ b/pkgs/tools/networking/network-manager-applet/default.nix @@ -1,7 +1,7 @@ { stdenv, fetchurl, intltool, pkgconfig, libglade, networkmanager, gnome3 , libnotify, libsecret, dbus_glib, polkit, isocodes , mobile_broadband_provider_info, glib_networking, gsettings_desktop_schemas -, makeWrapper, udev, hicolor_icon_theme }: +, makeWrapper, udev, libgudev, hicolor_icon_theme }: let pn = "network-manager-applet"; @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { buildInputs = [ gnome3.gtk libglade networkmanager libnotify libsecret dbus_glib gsettings_desktop_schemas - polkit isocodes makeWrapper udev gnome3.gconf gnome3.libgnome_keyring + polkit isocodes makeWrapper udev libgudev gnome3.gconf gnome3.libgnome_keyring ]; nativeBuildInputs = [ intltool pkgconfig ]; From 6085213bc5389fcdb64bc2649db0e7b81e914751 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Tue, 7 Jul 2015 09:20:40 -0700 Subject: [PATCH 041/165] Revert "Revert "perl: Make 5.22 the default"" This reverts commit b7ffacffef2fdf6be1b6e044a1da52efb9d89740. --- pkgs/top-level/all-packages.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1e806bb1bd14..93aab5eed531 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4953,8 +4953,7 @@ let fetchurl = fetchurlBoot; }; - # Make perl522 the default once gnulib is updated to support it. - perl = perl520; + perl = perl522; php = php56; From a31bcbfae059a704afc6010c0c4dcffa6350112c Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Tue, 7 Jul 2015 09:21:00 -0700 Subject: [PATCH 042/165] Revert "Revert "gmp: Use version 6 as the default"" This reverts commit 7d299447ae584bd064ef175fa889607cb387d0c9. --- pkgs/top-level/all-packages.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 93aab5eed531..0124db33895b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6315,7 +6315,8 @@ let gmp4 = callPackage ../development/libraries/gmp/4.3.2.nix { }; # required by older GHC versions gmp5 = callPackage ../development/libraries/gmp/5.1.x.nix { }; - gmp = gmp5; + gmp6 = callPackage ../development/libraries/gmp/6.x.nix { }; + gmp = gmp6; gmpxx = appendToName "with-cxx" (gmp.override { cxx = true; }); #GMP ex-satellite, so better keep it near gmp From f4a42ae509216463e774843ffabc75399532a717 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Thu, 11 Jun 2015 18:01:50 -0700 Subject: [PATCH 043/165] gcc: Make 5.x the default --- pkgs/stdenv/linux/default.nix | 9 ++------- pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix index 12fc3fed5a5a..2436181aa7ad 100644 --- a/pkgs/stdenv/linux/default.nix +++ b/pkgs/stdenv/linux/default.nix @@ -210,14 +210,9 @@ rec { gmp = pkgs.gmp.override { stdenv = pkgs.makeStaticLibraries pkgs.stdenv; }; mpfr = pkgs.mpfr.override { stdenv = pkgs.makeStaticLibraries pkgs.stdenv; }; libmpc = pkgs.libmpc.override { stdenv = pkgs.makeStaticLibraries pkgs.stdenv; }; - isl_0_11 = pkgs.isl_0_11.override { stdenv = pkgs.makeStaticLibraries pkgs.stdenv; }; - cloog_0_18_0 = pkgs.cloog_0_18_0.override { - stdenv = pkgs.makeStaticLibraries pkgs.stdenv; - isl = isl_0_11; - }; + isl_0_14 = pkgs.isl_0_14.override { stdenv = pkgs.makeStaticLibraries pkgs.stdenv; }; gccPlain = pkgs.gcc.cc.override { - isl = isl_0_11; - cloog = cloog_0_18_0; + isl = isl_0_14; }; }; extraBuildInputs = [ stage2.pkgs.patchelf stage2.pkgs.paxctl ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0124db33895b..5a96d5c455c5 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3701,7 +3701,7 @@ let gambit = callPackage ../development/compilers/gambit { }; - gcc = gcc49; + gcc = gcc5; gcc_multi = if system == "x86_64-linux" then lowPrio ( From 3000e55b06243c3699e55c90bfc6ecfe409a5aae Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Fri, 17 Jul 2015 22:38:45 -0700 Subject: [PATCH 044/165] syslinux: Use gcc 4.8 until a proper fix for 5 is made --- pkgs/os-specific/linux/syslinux/default.nix | 3 +-- .../os-specific/linux/syslinux/gcc5-fix.patch | 26 ------------------- pkgs/top-level/all-packages.nix | 8 +++++- 3 files changed, 8 insertions(+), 29 deletions(-) delete mode 100644 pkgs/os-specific/linux/syslinux/gcc5-fix.patch diff --git a/pkgs/os-specific/linux/syslinux/default.nix b/pkgs/os-specific/linux/syslinux/default.nix index 3c01516b0815..93e5d591a9d9 100644 --- a/pkgs/os-specific/linux/syslinux/default.nix +++ b/pkgs/os-specific/linux/syslinux/default.nix @@ -8,8 +8,7 @@ stdenv.mkDerivation rec { sha256 = "03l5iifwlg1wyb4yh98i0b7pd4j55a1c9y74q1frs47a5dnrilr6"; }; - # gcc5-fix should be in 6.04+, so remove if it fails to apply. - patches = [ ./perl-deps.patch ./gcc5-fix.patch ]; + patches = [ ./perl-deps.patch ]; buildInputs = [ nasm perl libuuid ]; diff --git a/pkgs/os-specific/linux/syslinux/gcc5-fix.patch b/pkgs/os-specific/linux/syslinux/gcc5-fix.patch deleted file mode 100644 index dc44b1880583..000000000000 --- a/pkgs/os-specific/linux/syslinux/gcc5-fix.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/com32/include/menu.h b/com32/include/menu.h -index bc0182f..b0251e4 100644 ---- a/com32/include/menu.h -+++ b/com32/include/menu.h -@@ -195,7 +195,7 @@ void local_cursor_enable(bool); - - static inline int my_isspace(char c) - { -- return (unsigned char)c <= ' '; -+ return (unsigned char)c <= ' ' || (unsigned char)c == '\x7f'; - } - - int my_isxdigit(char c); -diff --git a/com32/menu/readconfig.c b/com32/menu/readconfig.c -index b7814be..a433fad 100644 ---- a/com32/menu/readconfig.c -+++ b/com32/menu/readconfig.c -@@ -299,7 +299,7 @@ static char *copy_sysappend_string(char *dst, const char *src) - char c; - - while ((c = *src++)) { -- if (c <= ' ' && c == '\x7f') { -+ if (my_isspace(c)) { - if (!was_space) - *dst++ = '_'; - was_space = true; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5a96d5c455c5..e924feaf78e9 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10048,7 +10048,13 @@ let sysklogd = callPackage ../os-specific/linux/sysklogd { }; - syslinux = callPackage ../os-specific/linux/syslinux { }; + syslinux = callPackage ../os-specific/linux/syslinux { + # Using GCC5 with 6.03 creates a broken isolinux.bin + # Make sure to test booting the livecd on a bios system + # if changing this override. + # nixos.tests.bootBiosCdrom is useful for this. + stdenv = overrideCC stdenv gcc48; + }; sysstat = callPackage ../os-specific/linux/sysstat { }; From eae9889b8225a9acce42b4aa0b254ff9dca0a85c Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Tue, 4 Aug 2015 15:38:29 -0700 Subject: [PATCH 045/165] openssl: Major bump 1.0.1 -> 1.0.2 --- .../development/libraries/openssl/1.0.2.x.nix | 84 ------------------- .../development/libraries/openssl/default.nix | 4 +- pkgs/development/web/iojs/default.nix | 4 +- pkgs/top-level/all-packages.nix | 8 -- 4 files changed, 4 insertions(+), 96 deletions(-) delete mode 100644 pkgs/development/libraries/openssl/1.0.2.x.nix diff --git a/pkgs/development/libraries/openssl/1.0.2.x.nix b/pkgs/development/libraries/openssl/1.0.2.x.nix deleted file mode 100644 index 28254cb390d4..000000000000 --- a/pkgs/development/libraries/openssl/1.0.2.x.nix +++ /dev/null @@ -1,84 +0,0 @@ -{ stdenv, fetchurl, perl -, withCryptodev ? false, cryptodevHeaders }: - -with stdenv.lib; -let - opensslCrossSystem = attrByPath [ "openssl" "system" ] - (throw "openssl needs its platform name cross building" null) - stdenv.cross; -in -stdenv.mkDerivation rec { - name = "openssl-1.0.2d"; - - src = fetchurl { - urls = [ - "http://www.openssl.org/source/${name}.tar.gz" - "http://openssl.linux-mirror.org/source/${name}.tar.gz" - ]; - sha1 = "d01d17b44663e8ffa6a33a5a30053779d9593c3d"; - }; - - patches = optional stdenv.isCygwin ./1.0.1-cygwin64.patch; - - nativeBuildInputs = [ perl ]; - buildInputs = stdenv.lib.optional withCryptodev cryptodevHeaders; - - # On x86_64-darwin, "./config" misdetects the system as - # "darwin-i386-cc". So specify the system type explicitly. - configureScript = - if stdenv.system == "x86_64-darwin" then "./Configure darwin64-x86_64-cc" - else if stdenv.system == "x86_64-solaris" then "./Configure solaris64-x86_64-gcc" - else "./config"; - - configureFlags = [ - "shared" - "--libdir=lib" - "--openssldir=etc/ssl" - ] ++ stdenv.lib.optionals withCryptodev [ - "-DHAVE_CRYPTODEV" - "-DUSE_CRYPTODEV_DIGESTS" - ]; - - makeFlags = [ - "MANDIR=$(out)/share/man" - ]; - - # Parallel building is broken in OpenSSL. - enableParallelBuilding = false; - - postInstall = '' - # If we're building dynamic libraries, then don't install static - # libraries. - if [ -n "$(echo $out/lib/*.so $out/lib/*.dylib $out/lib/*.dll)" ]; then - rm "$out/lib/"*.a - fi - - # remove dependency on Perl at runtime - rm -r $out/etc/ssl/misc $out/bin/c_rehash - ''; - - postFixup = '' - # Check to make sure we don't depend on perl - if grep -r '${perl}' $out; then - echo "Found an erroneous dependency on perl ^^^" >&2 - exit 1 - fi - ''; - - crossAttrs = { - preConfigure='' - # It's configure does not like --build or --host - export configureFlags="${concatStringsSep " " (configureFlags ++ [ opensslCrossSystem ])}" - ''; - - configureScript = "./Configure"; - }; - - meta = { - homepage = http://www.openssl.org/; - description = "A cryptographic library that implements the SSL and TLS protocols"; - platforms = stdenv.lib.platforms.all; - maintainers = [ stdenv.lib.maintainers.simons ]; - priority = 10; # resolves collision with ‘man-pages’ - }; -} diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix index ca3e7999f9be..31bd7fb2d673 100644 --- a/pkgs/development/libraries/openssl/default.nix +++ b/pkgs/development/libraries/openssl/default.nix @@ -8,14 +8,14 @@ let stdenv.cross; in stdenv.mkDerivation rec { - name = "openssl-1.0.1p"; + name = "openssl-1.0.2d"; src = fetchurl { urls = [ "http://www.openssl.org/source/${name}.tar.gz" "http://openssl.linux-mirror.org/source/${name}.tar.gz" ]; - sha1 = "9d1977cc89242cd11471269ece2ed4650947c046"; + sha256 = "671c36487785628a703374c652ad2cebea45fa920ae5681515df25d9f2c9a8c8"; }; outputs = [ "out" "man" ]; diff --git a/pkgs/development/web/iojs/default.nix b/pkgs/development/web/iojs/default.nix index 6a0c8ca512e8..a44a6d6c6c4a 100644 --- a/pkgs/development/web/iojs/default.nix +++ b/pkgs/development/web/iojs/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, python, utillinux, openssl_1_0_2, http-parser, zlib, libuv }: +{ stdenv, fetchurl, python, utillinux, openssl, http-parser, zlib, libuv }: let version = "3.1.0"; @@ -21,7 +21,7 @@ in stdenv.mkDerivation { # causes configure to fail, so don't add --disable-static. dontDisableStatic = true; - buildInputs = [ python openssl_1_0_2 http-parser zlib libuv ] ++ (optional stdenv.isLinux utillinux); + buildInputs = [ python openssl http-parser zlib libuv ] ++ (optional stdenv.isLinux utillinux); setupHook = ../nodejs/setup-hook.sh; passthru.interpreterName = "iojs"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e924feaf78e9..da0a18c9ed7d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7706,14 +7706,6 @@ let }; }; - openssl_1_0_2 = callPackage ../development/libraries/openssl/1.0.2.x.nix { - fetchurl = fetchurlBoot; - cryptodevHeaders = linuxPackages.cryptodev.override { - fetchurl = fetchurlBoot; - onlyHeaders = true; - }; - }; - openwsman = callPackage ../development/libraries/openwsman {}; ortp = callPackage ../development/libraries/ortp { }; From 3f1d497fbe331f731a3cb10632b7ebb99d489bf4 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Thu, 20 Aug 2015 12:54:38 -0700 Subject: [PATCH 046/165] ncurses: 5.9 -> 6.0 --- .../development/libraries/ncurses/default.nix | 24 ++++------ .../development/libraries/ncurses/gcc-5.patch | 46 ------------------- 2 files changed, 10 insertions(+), 60 deletions(-) delete mode 100644 pkgs/development/libraries/ncurses/gcc-5.patch diff --git a/pkgs/development/libraries/ncurses/default.nix b/pkgs/development/libraries/ncurses/default.nix index c505d89a6d8f..046c7347f863 100644 --- a/pkgs/development/libraries/ncurses/default.nix +++ b/pkgs/development/libraries/ncurses/default.nix @@ -1,38 +1,39 @@ -{ lib, stdenv, fetchurl +{ lib, stdenv, fetchurl, pkgconfig, libtool , mouseSupport ? false , unicode ? true , gpm - -# Extra Options -, abiVersion ? "5" }: stdenv.mkDerivation rec { - name = "ncurses-5.9"; + name = "ncurses-6.0"; src = fetchurl { url = "mirror://gnu/ncurses/${name}.tar.gz"; - sha256 = "0fsn7xis81za62afan0vvm38bvgzg5wfmv1m86flqcj0nj7jjilh"; + sha256 = "0q3jck7lna77z5r42f13c4xglc7azd19pxfrjrpgp2yf615w4lgm"; }; - # gcc-5.patch should be removed after 5.9 - patches = [ ./clang.patch ./gcc-5.patch ]; + patches = [ ./clang.patch ]; configureFlags = [ "--with-shared" + "--with-cxx-shared" + "--with-libtool" "--without-debug" + "--enable-overwrite" # Needed for proper header installation "--enable-pc-files" "--enable-symlinks" ] ++ lib.optional unicode "--enable-widec"; + nativeBuildInputs = [ pkgconfig libtool ]; buildInputs = lib.optional (mouseSupport && stdenv.isLinux) gpm; preConfigure = '' configureFlagsArray+=("--includedir=$out/include") export PKG_CONFIG_LIBDIR="$out/lib/pkgconfig" mkdir -p "$PKG_CONFIG_LIBDIR" + configureFlagsArray+=("--with-pkg-config-libdir=$PKG_CONFIG_LIBDIR") '' + lib.optionalString stdenv.isCygwin '' sed -i -e 's,LIB_SUFFIX="t,LIB_SUFFIX=",' configure ''; @@ -69,7 +70,6 @@ stdenv.mkDerivation rec { for dylibtype in so dll dylib; do if [ -e "$out/lib/lib''${lib}$suffix.$dylibtype" ]; then ln -svf lib''${lib}$suffix.$dylibtype $out/lib/lib$lib$newsuffix.$dylibtype - ln -svf lib''${lib}$suffix.$dylibtype.${abiVersion} $out/lib/lib$lib$newsuffix.$dylibtype.${abiVersion} fi done for statictype in a dll.a la; do @@ -82,10 +82,6 @@ stdenv.mkDerivation rec { done ''; - preFixup = '' - rm $out/lib/*.a - ''; - meta = { description = "Free software emulation of curses in SVR4 and more"; @@ -112,6 +108,6 @@ stdenv.mkDerivation rec { passthru = { ldflags = "-lncurses"; - inherit unicode abiVersion; + inherit unicode; }; } diff --git a/pkgs/development/libraries/ncurses/gcc-5.patch b/pkgs/development/libraries/ncurses/gcc-5.patch deleted file mode 100644 index 2448229b88e1..000000000000 --- a/pkgs/development/libraries/ncurses/gcc-5.patch +++ /dev/null @@ -1,46 +0,0 @@ -https://bugs.gentoo.org/545114 - -extracted from the upstream change (which had many unrelated commits in one) - -From 97bb4678dc03e753290b39bbff30ba2825df9517 Mon Sep 17 00:00:00 2001 -From: "Thomas E. Dickey" -Date: Sun, 7 Dec 2014 03:10:09 +0000 -Subject: [PATCH] ncurses 5.9 - patch 20141206 - -+ modify MKlib_gen.sh to work around change in development version of - gcc introduced here: - https://gcc.gnu.org/ml/gcc-patches/2014-06/msg02185.html - https://gcc.gnu.org/ml/gcc-patches/2014-07/msg00236.html - (reports by Marcus Shawcroft, Maohui Lei). - -diff --git a/ncurses/base/MKlib_gen.sh b/ncurses/base/MKlib_gen.sh -index d8cc3c9..b91398c 100755 ---- a/ncurses/base/MKlib_gen.sh -+++ b/ncurses/base/MKlib_gen.sh -@@ -474,11 +474,22 @@ sed -n -f $ED1 \ - -e 's/gen_$//' \ - -e 's/ / /g' >>$TMP - -+cat >$ED1 < $ED2 -+cat $ED2 >$TMP -+ - $preprocessor $TMP 2>/dev/null \ --| sed \ -- -e 's/ / /g' \ -- -e 's/^ //' \ -- -e 's/_Bool/NCURSES_BOOL/g' \ -+| sed -f $ED1 \ - | $AWK -f $AW2 \ - | sed -f $ED3 \ - | sed \ From 88b814575016ae9685851aa0d78f613e7d15d700 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Thu, 20 Aug 2015 10:36:06 -0700 Subject: [PATCH 047/165] openssh: 6.9p1 -> 7.1p1 This intentionally leaves out support for using existing dsa keys as they are insecure and should not be enabled by default. If you need this support, please make the changes in your ssh_config and sshd_config. --- pkgs/tools/networking/openssh/default.nix | 6 +- .../openssh/openssh-6.9p1-security-7.0.patch | 65 ------------------- 2 files changed, 3 insertions(+), 68 deletions(-) delete mode 100644 pkgs/tools/networking/openssh/openssh-6.9p1-security-7.0.patch diff --git a/pkgs/tools/networking/openssh/default.nix b/pkgs/tools/networking/openssh/default.nix index 2004e453a0d9..50d53bdff2cd 100644 --- a/pkgs/tools/networking/openssh/default.nix +++ b/pkgs/tools/networking/openssh/default.nix @@ -17,11 +17,11 @@ let in with stdenv.lib; stdenv.mkDerivation rec { - name = "openssh-6.9p1"; + name = "openssh-7.1p1"; src = fetchurl { url = "mirror://openbsd/OpenSSH/portable/${name}.tar.gz"; - sha256 = "1zkci5nbpb4frmzj2vr3kv9j47x2h72kvybcpr0d8mzk73sls1vf"; + sha256 = "0a44mnr8bvw41zg83xh4sb55d8nds29j95gxvxk5qg863lnns2pw"; }; prePatch = optionalString hpnSupport @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { export NIX_LDFLAGS="$NIX_LDFLAGS -lgcc_s" ''; - patches = [ ./locale_archive.patch ./openssh-6.9p1-security-7.0.patch]; + patches = [ ./locale_archive.patch ]; buildInputs = [ zlib openssl libedit pkgconfig pam ] ++ optional withKerberos [ kerberos ]; diff --git a/pkgs/tools/networking/openssh/openssh-6.9p1-security-7.0.patch b/pkgs/tools/networking/openssh/openssh-6.9p1-security-7.0.patch deleted file mode 100644 index 02e9eb3a9739..000000000000 --- a/pkgs/tools/networking/openssh/openssh-6.9p1-security-7.0.patch +++ /dev/null @@ -1,65 +0,0 @@ -http://pkgs.fedoraproject.org/cgit/openssh.git/commit/openssh-6.9p1-security-7.0.patch?h=f22&id=4776fad91e7e1f626f33e8c240d0ccecd663554d - -diff --git a/sshpty.c b/sshpty.c -index 7bb7641..15da8c6 100644 ---- a/sshpty.c -+++ b/sshpty.c -@@ -1,4 +1,4 @@ --/* $OpenBSD: sshpty.c,v 1.29 2014/09/03 18:55:07 djm Exp $ */ -+/* $OpenBSD: sshpty.c,v 1.30 2015/07/30 23:09:15 djm Exp $ */ - /* - * Author: Tatu Ylonen - * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland -@@ -197,7 +197,7 @@ pty_setowner(struct passwd *pw, const char *tty) - /* Determine the group to make the owner of the tty. */ - grp = getgrnam("tty"); - gid = (grp != NULL) ? grp->gr_gid : pw->pw_gid; -- mode = (grp != NULL) ? 0622 : 0600; -+ mode = (grp != NULL) ? 0620 : 0600; - - /* - * Change owner and mode of the tty as required. -diff --git a/monitor.c b/monitor.c -index b410965..f1b873d 100644 ---- a/monitor.c -+++ b/monitor.c -@@ -1084,9 +1084,7 @@ extern KbdintDevice sshpam_device; - int - mm_answer_pam_init_ctx(int sock, Buffer *m) - { -- - debug3("%s", __func__); -- authctxt->user = buffer_get_string(m, NULL); - sshpam_ctxt = (sshpam_device.init_ctx)(authctxt); - sshpam_authok = NULL; - buffer_clear(m); -@@ -1166,14 +1166,16 @@ mm_answer_pam_respond(int sock, Buffer *m) - int - mm_answer_pam_free_ctx(int sock, Buffer *m) - { -+ int r = sshpam_authok != NULL && sshpam_authok == sshpam_ctxt; - - debug3("%s", __func__); - (sshpam_device.free_ctx)(sshpam_ctxt); -+ sshpam_ctxt = sshpam_authok = NULL; - buffer_clear(m); - mm_request_send(sock, MONITOR_ANS_PAM_FREE_CTX, m); - auth_method = "keyboard-interactive"; - auth_submethod = "pam"; -- return (sshpam_authok == sshpam_ctxt); -+ return r; - } - #endif - -diff --git a/monitor_wrap.c b/monitor_wrap.c -index e6217b3..eac421b 100644 ---- a/monitor_wrap.c -+++ b/monitor_wrap.c -@@ -614,7 +614,6 @@ mm_sshpam_init_ctx(Authctxt *authctxt) - - debug3("%s", __func__); - buffer_init(&m); -- buffer_put_cstring(&m, authctxt->user); - mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_PAM_INIT_CTX, &m); - debug3("%s: waiting for MONITOR_ANS_PAM_INIT_CTX", __func__); - mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_PAM_INIT_CTX, &m); From 3acffb730aeb1bcab009dcc6ba57707462a3abaa Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Fri, 4 Sep 2015 12:06:23 -0700 Subject: [PATCH 048/165] accelio: Don't build with non-stdenv gcc5 --- pkgs/top-level/all-packages.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index da0a18c9ed7d..6d734b21bfed 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5813,7 +5813,7 @@ let aalib = callPackage ../development/libraries/aalib { }; - accelio = callPackage ../development/libraries/accelio { stdenv = overrideCC stdenv gcc5; }; + accelio = callPackage ../development/libraries/accelio { }; accounts-qt = callPackage ../development/libraries/accounts-qt { }; From e70593389fb3593408be57a4956190cfbe84f63e Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Thu, 17 Sep 2015 17:44:59 +0200 Subject: [PATCH 049/165] Another libgudev dependency --- pkgs/tools/misc/colord/default.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/tools/misc/colord/default.nix b/pkgs/tools/misc/colord/default.nix index 267ed4db67ca..40c9ddf8c946 100644 --- a/pkgs/tools/misc/colord/default.nix +++ b/pkgs/tools/misc/colord/default.nix @@ -1,6 +1,7 @@ { stdenv, fetchzip, fetchgit, bashCompletion , glib, polkit, pkgconfig, intltool, gusb, libusb1, lcms2, sqlite, systemd, dbus -, automake, autoconf, libtool, gtk_doc, which, gobjectIntrospection, argyllcms }: +, automake, autoconf, libtool, gtk_doc, which, gobjectIntrospection, argyllcms +, libgudev }: stdenv.mkDerivation rec { name = "colord-1.2.12"; @@ -19,7 +20,7 @@ stdenv.mkDerivation rec { ]; buildInputs = [ glib polkit pkgconfig intltool gusb libusb1 lcms2 sqlite systemd dbus gobjectIntrospection - bashCompletion argyllcms automake autoconf ]; + bashCompletion argyllcms automake autoconf libgudev ]; postInstall = '' rm -fr $out/var/lib/colord @@ -28,7 +29,7 @@ stdenv.mkDerivation rec { ''; meta = { - description = "system service that makes it easy to manage, install and generate color profiles to accurately color manage input and output devices"; + description = "System service to manage, install and generate color profiles to accurately color manage input and output devices"; homepage = http://www.freedesktop.org/software/colord/intro.html; license = stdenv.lib.licenses.lgpl2Plus; maintainers = [stdenv.lib.maintainers.marcweber]; From e7631452e95d1ed239c88ede8af3709eb05849bf Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 22 Sep 2015 12:46:58 +0200 Subject: [PATCH 050/165] texinfo: Disable tests These appear to fail randomly: http://hydra.nixos.org/build/26194907/nixlog/325/raw --- pkgs/development/tools/misc/texinfo/6.0.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/tools/misc/texinfo/6.0.nix b/pkgs/development/tools/misc/texinfo/6.0.nix index ffeae17eb57d..5099676f32ba 100644 --- a/pkgs/development/tools/misc/texinfo/6.0.nix +++ b/pkgs/development/tools/misc/texinfo/6.0.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { installTargets="install install-tex"; ''; - doCheck = !stdenv.isDarwin; + doCheck = !stdenv.isDarwin && !interactive; meta = { homepage = "http://www.gnu.org/software/texinfo/"; From a921167e37c19082f7cee1d20bd258fb7bc9d97e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Tue, 22 Sep 2015 18:44:16 +0200 Subject: [PATCH 051/165] pixman: bugfix update 0.32.6 -> 0.32.8, refactor It's claimed to be important on i686. http://cgit.freedesktop.org/pixman/commit/?id=8b49d4b6b460d0c92 --- pkgs/development/libraries/pixman/default.nix | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/pkgs/development/libraries/pixman/default.nix b/pkgs/development/libraries/pixman/default.nix index ce027a0a2690..30cceb59c00a 100644 --- a/pkgs/development/libraries/pixman/default.nix +++ b/pkgs/development/libraries/pixman/default.nix @@ -1,26 +1,28 @@ -{ fetchurl, stdenv, pkgconfig, perl, libpng, glib /*just passthru*/ }: +{ fetchurl, stdenv, pkgconfig, libpng, glib /*just passthru*/ }: stdenv.mkDerivation rec { - name = "pixman-0.32.6"; + name = "pixman-0.32.8"; src = fetchurl { - url = "http://cairographics.org/releases/${name}.tar.gz"; - sha256 = "0129g4zdrw5hif5783li7rzcr4vpbc2cfia91azxmsk0h0xx3zix"; + url = "mirror://xorg/individual/lib/${name}.tar.bz2"; + sha1 = "5c57045622265b877c9bf02d531973eadf942140"; }; - nativeBuildInputs = [ pkgconfig perl ]; - - buildInputs = [ libpng ]; # NOT in closure anyway - - postInstall = glib.flattenInclude; - patches = stdenv.lib.optional stdenv.isDarwin ./fix-clang36.patch; - configureFlags = if stdenv.isArm then ["--disable-arm-iwmmxt"] else null; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = stdenv.lib.optional doCheck libpng; - meta = { + configureFlags = stdenv.lib.optional stdenv.isArm "--disable-arm-iwmmxt"; + + doCheck = true; + + postInstall = glib.flattenInclude; + + meta = with stdenv.lib; { homepage = http://pixman.org; description = "A low-level library for pixel manipulation"; - license = stdenv.lib.licenses.mit; + license = licenses.mit; + platforms = platforms.all; }; } From 283dd9fe49e754dd3c1562e3e1233d3616710bac Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Tue, 22 Sep 2015 14:29:36 -0700 Subject: [PATCH 052/165] wayland: 1.8.1 -> 1.9.0 --- pkgs/development/libraries/wayland/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/wayland/default.nix b/pkgs/development/libraries/wayland/default.nix index 9736d6514047..0510fde811c6 100644 --- a/pkgs/development/libraries/wayland/default.nix +++ b/pkgs/development/libraries/wayland/default.nix @@ -8,11 +8,11 @@ assert expat != null; stdenv.mkDerivation rec { name = "wayland-${version}"; - version = "1.8.1"; + version = "1.9.0"; src = fetchurl { url = "http://wayland.freedesktop.org/releases/${name}.tar.xz"; - sha256 = "1j3gfzn8i0xhk3j34mwb2srrscjxfyi279jhyq80mz943j6r6z7i"; + sha256 = "1yhy62vkbq8j8c9zaa6yzvn75cd99kfa8n2zfdwl80x019r711ww"; }; configureFlags = "--with-scanner --disable-documentation"; From bd0120202ec76fecc193cfeb4e5432725d1d16c2 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Tue, 22 Sep 2015 14:29:47 -0700 Subject: [PATCH 053/165] file: 5.24 -> 5.25 --- pkgs/tools/misc/file/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/misc/file/default.nix b/pkgs/tools/misc/file/default.nix index 7d991a415568..749bf59fde96 100644 --- a/pkgs/tools/misc/file/default.nix +++ b/pkgs/tools/misc/file/default.nix @@ -1,7 +1,7 @@ { stdenv, fetchurl, zlib }: stdenv.mkDerivation rec { - name = "file-5.24"; + name = "file-5.25"; buildInputs = [ zlib ]; @@ -10,7 +10,7 @@ stdenv.mkDerivation rec { "ftp://ftp.astron.com/pub/file/${name}.tar.gz" "http://distfiles.macports.org/file/${name}.tar.gz" ]; - sha256 = "1kjhqwmi1sjw8jcf6li725c59wm00zajrdfwgkwqxs295vgb6b40"; + sha256 = "1jhfi5mivdnqvry5la5q919l503ahwdwbf3hjhiv97znccakhd9p"; }; meta = { From fdf2c3d1306deddcdf44516ffad52366f22e28f3 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Tue, 22 Sep 2015 14:30:05 -0700 Subject: [PATCH 054/165] weston: 1.8.0 -> 1.9.0 --- pkgs/applications/window-managers/weston/default.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/applications/window-managers/weston/default.nix b/pkgs/applications/window-managers/weston/default.nix index d270d3a2b1d6..114b665225f8 100644 --- a/pkgs/applications/window-managers/weston/default.nix +++ b/pkgs/applications/window-managers/weston/default.nix @@ -7,17 +7,17 @@ stdenv.mkDerivation rec { name = "weston-${version}"; - version = "1.8.0"; + version = "1.9.0"; src = fetchurl { url = "http://wayland.freedesktop.org/releases/${name}.tar.xz"; - sha256 = "04nkbbdglh0pqznxkdqvak3pc53jmz24d0658bn5r0cf6agycqw9"; + sha256 = "1ks8mja6glzy2dkayi535hd6w5c5h021bqk7vzgv182g33rh66ww"; }; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - pkgconfig wayland mesa libxkbcommon cairo libxcb libXcursor x11 udev libdrm - mtdev libjpeg pam dbus.libs libinput pango libunwind freerdp vaapi libva - libwebp + wayland mesa libxkbcommon cairo libxcb libXcursor x11 udev libdrm mtdev + libjpeg pam dbus.libs libinput pango libunwind freerdp vaapi libva libwebp ]; configureFlags = [ From 724e243159e4e0059699eb21f6761a760b9a2f49 Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Mon, 21 Sep 2015 15:48:22 -0700 Subject: [PATCH 055/165] pop --- .../development/haskell-modules/configuration-common.nix | 9 +++++++++ pkgs/stdenv/default.nix | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 9f7a18fa2dac..1324b8b979bb 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -57,6 +57,15 @@ self: super: { # Link the proper version. zeromq4-haskell = super.zeromq4-haskell.override { zeromq = pkgs.zeromq4; }; + WordNet = pkgs.stdenv.lib.overrideDerivation super.WordNet (drv: { + src = ~/.dev/Haskell/WordNet-1.1.0; + postPatch = (drv.postPatch or "") + '' + substituteInPlace NLP/WordNet/Consts.hs \ + --replace /usr/local/WordNet-2.0 ${pkgs.wordnet} \ + --replace 'defined (MAC)' 0 + ''; + }); + # This package needs a little help compiling properly on Darwin. Furthermore, # Stackage compiles git-annex without the Assistant, supposedly because not # all required dependencies are part of Stackage. To comply with Stackage, we diff --git a/pkgs/stdenv/default.nix b/pkgs/stdenv/default.nix index 71bdc3e8f829..da93229ce94c 100644 --- a/pkgs/stdenv/default.nix +++ b/pkgs/stdenv/default.nix @@ -54,7 +54,7 @@ rec { if system == "armv7l-linux" then stdenvLinux else if system == "mips64el-linux" then stdenvLinux else if system == "powerpc-linux" then /* stdenvLinux */ stdenvNative else - if system == "x86_64-darwin" then stdenvDarwin else + if system == "x86_64-darwin" then stdenvDarwinPure else if system == "x86_64-solaris" then stdenvNix else if system == "i686-cygwin" then stdenvNative else if system == "x86_64-cygwin" then stdenvNative else From 76a65398292d925e64a784ff1ebc441804dea9a8 Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Tue, 22 Sep 2015 16:26:48 -0700 Subject: [PATCH 056/165] work on making xquartz buildable in a pure environment --- pkgs/servers/x11/quartz-wm/default.nix | 8 +++++++- pkgs/servers/x11/xorg/overrides.nix | 6 +++++- pkgs/servers/x11/xquartz/default.nix | 3 +-- pkgs/top-level/all-packages.nix | 9 +++++++-- 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/pkgs/servers/x11/quartz-wm/default.nix b/pkgs/servers/x11/quartz-wm/default.nix index 8f5885a48565..ff125067305a 100644 --- a/pkgs/servers/x11/quartz-wm/default.nix +++ b/pkgs/servers/x11/quartz-wm/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchurl, xorg, pixman, pkgconfig }: +{ stdenv, lib, fetchurl, xorg, pixman, pkgconfig, Foundation, libobjc, Xplugin, CF }: let version = "1.3.1"; in stdenv.mkDerivation { @@ -19,7 +19,13 @@ in stdenv.mkDerivation { xorg.libXext pixman pkgconfig + CF + Foundation + libobjc + Xplugin ]; + NIX_LDFLAGS = stdenv.lib.optional stdenv.isDarwin + "/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation"; meta = with lib; { license = licenses.apsl20; platforms = platforms.darwin; diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix index a7e5b43689a0..f5d5bf679ec6 100644 --- a/pkgs/servers/x11/xorg/overrides.nix +++ b/pkgs/servers/x11/xorg/overrides.nix @@ -324,7 +324,11 @@ in ''; passthru.version = version; # needed by virtualbox guest additions } else { - buildInputs = commonBuildInputs ++ [ args.bootstrap_cmds args.automake args.autoconf ]; + buildInputs = commonBuildInputs ++ [ + args.bootstrap_cmds args.automake args.autoconf + args.CF args.apple_sdk.libs.Xplugin args.apple_sdk.frameworks.Foundation + args.libobjc args.apple_sdk.frameworks.Cocoa + ]; propagatedBuildInputs = commonPropagatedBuildInputs ++ [ libAppleWM applewmproto ]; diff --git a/pkgs/servers/x11/xquartz/default.nix b/pkgs/servers/x11/xquartz/default.nix index 3e9e7cb779ee..8b5b3155a172 100644 --- a/pkgs/servers/x11/xquartz/default.nix +++ b/pkgs/servers/x11/xquartz/default.nix @@ -109,8 +109,7 @@ in stdenv.mkDerivation { cp ${installer} $out/bin/xquartz-install - rm -r $out/LaunchAgents - rm -r $out/LaunchDaemons + rm -rf $out/LaunchAgents $out/LaunchDaemons fontsConfPath=$out/etc/X11/fonts.conf cp ${fontsConf} $fontsConfPath diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8f683d48b3e8..3099a146a809 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9246,14 +9246,19 @@ let zookeeper_mt = callPackage ../development/libraries/zookeeper_mt { }; xquartz = callPackage ../servers/x11/xquartz { }; - quartz-wm = callPackage ../servers/x11/quartz-wm { stdenv = clangStdenv; }; + quartz-wm = callPackage ../servers/x11/quartz-wm { + stdenv = clangStdenv; + inherit (darwin.apple_sdk.frameworks) Foundation; + inherit (darwin.apple_sdk.libs) Xplugin; + inherit (darwin) libobjc CF; + }; xorg = recurseIntoAttrs (lib.callPackagesWith pkgs ../servers/x11/xorg/default.nix { inherit clangStdenv fetchurl fetchgit fetchpatch stdenv pkgconfig intltool freetype fontconfig libxslt expat libpng zlib perl mesa_drivers spice_protocol dbus libuuid openssl gperf m4 libevdev tradcpp libinput mcpp makeWrapper autoreconfHook autoconf automake libtool xmlto asciidoc flex bison python mtdev pixman; - inherit (darwin) apple_sdk; + inherit (darwin) apple_sdk libobjc CF; bootstrap_cmds = if stdenv.isDarwin then darwin.bootstrap_cmds else null; mesa = mesa_noglu; udev = if stdenv.isLinux then udev else null; From 6af1afa8e395188dd7130db3db18889ceb69f4f5 Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Tue, 22 Sep 2015 16:27:11 -0700 Subject: [PATCH 057/165] provide realLibtool to some packages needing it --- pkgs/top-level/all-packages.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3099a146a809..417011e156ff 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4853,7 +4853,9 @@ let guile_1_8 = callPackage ../development/interpreters/guile/1.8.nix { }; - guile_2_0 = callPackage ../development/interpreters/guile { }; + guile_2_0 = callPackage ../development/interpreters/guile { + libtool = realLibtool; + }; guile = guile_2_0; @@ -6051,7 +6053,9 @@ let db6 = db60; db60 = callPackage ../development/libraries/db/db-6.0.nix { }; - dbus = callPackage ../development/libraries/dbus { }; + dbus = callPackage ../development/libraries/dbus { + libtool = realLibtool; + }; dbus_cplusplus = callPackage ../development/libraries/dbus-cplusplus { }; dbus_glib = callPackage ../development/libraries/dbus-glib { }; dbus_java = callPackage ../development/libraries/java/dbus-java { }; From f1eef5c69be0bf105d5da72b6f6830de037773dd Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Tue, 22 Sep 2015 16:27:44 -0700 Subject: [PATCH 058/165] add missing closing tags in rl-unstable.xml --- .../doc/manual/release-notes/rl-unstable.xml | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/nixos/doc/manual/release-notes/rl-unstable.xml b/nixos/doc/manual/release-notes/rl-unstable.xml index 6d9f9412b625..c5e341d2e3f1 100644 --- a/nixos/doc/manual/release-notes/rl-unstable.xml +++ b/nixos/doc/manual/release-notes/rl-unstable.xml @@ -22,18 +22,19 @@ the developers upstream. Use wimenu from the wmii-hg package. - - Gitit! Is no longer automatically added to the module list in - NixOS and as such there will not be any manual entries for it. You will need to - add an import statement to your nixos configuration in order to use it. As - an example adding: - ]; - } - ]]> - - Will include the gitit service configuration options. + Gitit! Is no longer automatically added to the module list in + NixOS and as such there will not be any manual entries for it. You will need to + add an import statement to your nixos configuration in order to use it. As + an example adding: + ]; + } + ]]> + + Will include the gitit service configuration options. + + From 23f75e9bb05454d0af44fc823a19c57eafd967e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Wed, 23 Sep 2015 12:15:05 +0200 Subject: [PATCH 059/165] gdk-pixbuf: maintenance update 2.31.7 -> 2.32.0 --- pkgs/development/libraries/gdk-pixbuf/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/gdk-pixbuf/default.nix b/pkgs/development/libraries/gdk-pixbuf/default.nix index 754fddd101a2..0971df78e667 100644 --- a/pkgs/development/libraries/gdk-pixbuf/default.nix +++ b/pkgs/development/libraries/gdk-pixbuf/default.nix @@ -2,15 +2,15 @@ , jasper, libintlOrEmpty, gobjectIntrospection, doCheck ? false }: let - ver_maj = "2.31"; - ver_min = "7"; + ver_maj = "2.32"; + ver_min = "0"; in stdenv.mkDerivation rec { name = "gdk-pixbuf-${ver_maj}.${ver_min}"; src = fetchurl { url = "mirror://gnome/sources/gdk-pixbuf/${ver_maj}/${name}.tar.xz"; - sha256 = "046n9wz16kh3rpzxaiiwphf5bihxgj4g14cjn65wwmw82q4y0dj7"; + sha256 = "0rqvj5gcs2zfyyg9llm289b0xkj4mrhzxfjpjja0wx1m6vn5axjk"; }; setupHook = ./setup-hook.sh; From 9de8f95d4bb8f0fb2bed0461a77d414857e610b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Wed, 23 Sep 2015 12:20:33 +0200 Subject: [PATCH 060/165] libjpeg(-turbo): maintenance update 1.4.1 -> 1.4.2 --- pkgs/development/libraries/libjpeg-turbo/default.nix | 4 ++-- pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/libjpeg-turbo/default.nix b/pkgs/development/libraries/libjpeg-turbo/default.nix index 158b8825db49..3660a652e79d 100644 --- a/pkgs/development/libraries/libjpeg-turbo/default.nix +++ b/pkgs/development/libraries/libjpeg-turbo/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, nasm }: stdenv.mkDerivation rec { - name = "libjpeg-turbo-1.4.1"; + name = "libjpeg-turbo-1.4.2"; src = fetchurl { url = "mirror://sourceforge/libjpeg-turbo/${name}.tar.gz"; - sha256 = "027vz97064bjmwj7gdw2p47y1437w08j54frpgzmnql5rvabmxab"; + sha256 = "0gi349hp1x7mb98s4mf66sb2xay2kjjxj9ihrriw0yiy0k9va6sj"; }; buildInputs = [ nasm ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 417011e156ff..72e95ee9d975 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7081,7 +7081,7 @@ let libjpeg_original = callPackage ../development/libraries/libjpeg { }; libjpeg_turbo = callPackage ../development/libraries/libjpeg-turbo { }; - libjpeg = if (stdenv.isLinux) then libjpeg_turbo else libjpeg_original; # some problems, both on FreeBSD and Darwin + libjpeg = if stdenv.isLinux then libjpeg_turbo else libjpeg_original; # some problems, both on FreeBSD and Darwin libjpeg62 = callPackage ../development/libraries/libjpeg/62.nix { libtool = libtool_1_5; From cd7c494bb29d171b4d05d81484ca6d63375bfd4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Wed, 23 Sep 2015 12:23:45 +0200 Subject: [PATCH 061/165] pango: feature update 1.36.8 -> 1.38.0 Tested rebuilding the most important pango users, without any problems. --- pkgs/development/libraries/pango/default.nix | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pkgs/development/libraries/pango/default.nix b/pkgs/development/libraries/pango/default.nix index 87187667a922..6944b55a7213 100644 --- a/pkgs/development/libraries/pango/default.nix +++ b/pkgs/development/libraries/pango/default.nix @@ -3,26 +3,26 @@ }: let - ver_maj = "1.36"; - ver_min = "8"; + ver_maj = "1.38"; + ver_min = "0"; in stdenv.mkDerivation rec { name = "pango-${ver_maj}.${ver_min}"; src = fetchurl { url = "mirror://gnome/sources/pango/${ver_maj}/${name}.tar.xz"; - sha256 = "01rdzjh68w8l5zn0648yibyarj8p6g7yfn59nw5awaz1i8dvbnqq"; + sha256 = "0v12gi7f01iq3z852pclpnmkbcksbvpcmiazmklkx1dd9fbpakhx"; }; buildInputs = with stdenv.lib; [ gobjectIntrospection ] - ++ optionals stdenv.isDarwin [ fontconfig ]; + ++ optional stdenv.isDarwin fontconfig; nativeBuildInputs = [ pkgconfig ]; propagatedBuildInputs = [ x11 glib cairo libpng fontconfig freetype harfbuzz ] ++ libintlOrEmpty; enableParallelBuilding = true; - doCheck = false; # test-layout fails on 1.36.8 + doCheck = false; # test-layout fails on 1.38.0 # jww (2014-05-05): The tests currently fail on Darwin: # # ERROR:testiter.c:139:iter_char_test: assertion failed: (extents.width == x1 - x0) @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { postInstall = "rm -rf $out/share/gtk-doc"; - meta = { + meta = with stdenv.lib; { description = "A library for laying out and rendering of text, with an emphasis on internationalization"; longDescription = '' @@ -43,9 +43,9 @@ stdenv.mkDerivation rec { ''; homepage = http://www.pango.org/; - license = stdenv.lib.licenses.lgpl2Plus; + license = licenses.lgpl2Plus; - maintainers = with stdenv.lib.maintainers; [ raskin urkud ]; - hydraPlatforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin; + maintainers = with maintainers; [ raskin urkud ]; + platforms = with platforms; linux ++ darwin; }; } From ff9a70266b7f778eba504ae68928e7fd92bd0705 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Wed, 23 Sep 2015 12:33:46 +0200 Subject: [PATCH 062/165] at-spi2-*: small updates 2.16.0 -> 2.18.0 --- pkgs/development/libraries/at-spi2-atk/default.nix | 4 ++-- pkgs/development/libraries/at-spi2-core/default.nix | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/development/libraries/at-spi2-atk/default.nix b/pkgs/development/libraries/at-spi2-atk/default.nix index 940fc2bb6cc6..84c0b5f56aa1 100644 --- a/pkgs/development/libraries/at-spi2-atk/default.nix +++ b/pkgs/development/libraries/at-spi2-atk/default.nix @@ -2,14 +2,14 @@ , intltool, dbus_glib, at_spi2_core, libSM }: stdenv.mkDerivation rec { - versionMajor = "2.16"; + versionMajor = "2.18"; versionMinor = "0"; moduleName = "at-spi2-atk"; name = "${moduleName}-${versionMajor}.${versionMinor}"; src = fetchurl { url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz"; - sha256 = "1y9gfz1iz3wpja7s000f0bmyyvc6im5fcdl6bxwbz0v3qdgc9vvq"; + sha256 = "0xgkrnx04vaklbkzc7bzym9s0qhj8aiz4knqlxgx3vxnacsb6vaa"; }; buildInputs = [ python pkgconfig popt atk libX11 libICE xlibs.libXtst libXi diff --git a/pkgs/development/libraries/at-spi2-core/default.nix b/pkgs/development/libraries/at-spi2-core/default.nix index 0fc28185501a..b49d1ddb8040 100644 --- a/pkgs/development/libraries/at-spi2-core/default.nix +++ b/pkgs/development/libraries/at-spi2-core/default.nix @@ -2,14 +2,14 @@ , libX11, xextproto, libSM, libICE, libXtst, libXi, gobjectIntrospection }: stdenv.mkDerivation rec { - versionMajor = "2.16"; + versionMajor = "2.18"; versionMinor = "0"; moduleName = "at-spi2-core"; name = "${moduleName}-${versionMajor}.${versionMinor}"; src = fetchurl { url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz"; - sha256 = "1l3l39mw23zyjlcqidvkyqlr4gwbhplzw2hcv3qvn6p8ikxpf2qw"; + sha256 = "0xna0gnlqvzy6209klirywcm7ianazshg6pkk828g07bnrywgvhs"; }; outputs = [ "out" "doc" ]; From 3c8b92f4b35618e7c1db33e6878eb9526127406d Mon Sep 17 00:00:00 2001 From: Drew Hess Date: Fri, 11 Sep 2015 19:23:52 -0700 Subject: [PATCH 063/165] Workaround for getcwd configure test on 10.11. See https://openradar.appspot.com/22671534 for a description of the problem. --- pkgs/stdenv/darwin/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/stdenv/darwin/default.nix b/pkgs/stdenv/darwin/default.nix index 9ad2c8504d1a..c56349845329 100644 --- a/pkgs/stdenv/darwin/default.nix +++ b/pkgs/stdenv/darwin/default.nix @@ -58,6 +58,8 @@ rec { export NIX_CFLAGS_COMPILE+=" --sysroot=/var/empty -idirafter $SDKROOT/usr/include -F$SDKROOT/System/Library/Frameworks -Wno-multichar -Wno-deprecated-declarations" export NIX_LDFLAGS_AFTER+=" -L$SDKROOT/usr/lib" export CMAKE_OSX_ARCHITECTURES=x86_64 + # Workaround for https://openradar.appspot.com/22671534 on 10.11. + export gl_cv_func_getcwd_abort_bug=no ''; # A stdenv that wraps the Apple command-line tools and our other trivial symlinked bootstrap tools From cdf13a0a0608a13fb9e1df41d7e3ee372e8533b8 Mon Sep 17 00:00:00 2001 From: Andy Georges Date: Tue, 15 Sep 2015 01:52:44 +0200 Subject: [PATCH 064/165] elasticsearch: 1.5.2 -> 1.7.2 --- pkgs/servers/search/elasticsearch/default.nix | 4 ++-- pkgs/servers/search/elasticsearch/es-home.patch | 13 +++++++------ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/pkgs/servers/search/elasticsearch/default.nix b/pkgs/servers/search/elasticsearch/default.nix index 859f1501bb3c..16f010302902 100644 --- a/pkgs/servers/search/elasticsearch/default.nix +++ b/pkgs/servers/search/elasticsearch/default.nix @@ -3,11 +3,11 @@ with stdenv.lib; stdenv.mkDerivation rec { - name = "elasticsearch-1.5.2"; + name = "elasticsearch-1.7.2"; src = fetchurl { url = "https://download.elastic.co/elasticsearch/elasticsearch/${name}.tar.gz"; - sha256 = "054s0k0y0g1x6wzbd6gmvrp5n89fqwqssbyhay0gmhvs6sbpibpg"; + sha256 = "1lix4asvx1lbc227gzsrws3xqbcbqaal7v10w60kch0c4xg970bg"; }; patches = [ ./es-home.patch ]; diff --git a/pkgs/servers/search/elasticsearch/es-home.patch b/pkgs/servers/search/elasticsearch/es-home.patch index 2f7a7fe79198..2f2018fd69fa 100644 --- a/pkgs/servers/search/elasticsearch/es-home.patch +++ b/pkgs/servers/search/elasticsearch/es-home.patch @@ -28,9 +28,10 @@ diff -rupN a/bin/plugin b/bin/plugin # make ELASTICSEARCH_HOME absolute ES_HOME=`cd "$ES_HOME"; pwd` -@@ -45,4 +48,4 @@ while [ $# -gt 0 ]; do - shift - done - --exec "$JAVA" $JAVA_OPTS $ES_JAVA_OPTS -Xmx64m -Xms16m -Delasticsearch -Des.path.home="$ES_HOME" $properties -cp "$ES_HOME/lib/*" org.elasticsearch.plugins.PluginManager $args -+exec "$JAVA" $JAVA_OPTS $ES_JAVA_OPTS -Xmx64m -Xms16m -Delasticsearch -Des.path.home="$ES_HOME" $properties -cp "$ES_CLASSPATH/lib/*" org.elasticsearch.plugins.PluginManager $args +@@ -105,4 +105,4 @@ + + export HOSTNAME=`hostname -s` + +-eval "$JAVA" $JAVA_OPTS $ES_JAVA_OPTS -Xmx64m -Xms16m -Delasticsearch -Des.path.home=\""$ES_HOME"\" $properties -cp \""$ES_HOME/lib/*"\" org.elasticsearch.plugins.PluginManager $args +\ No newline at end of file ++eval "$JAVA" $JAVA_OPTS $ES_JAVA_OPTS -Xmx64m -Xms16m -Delasticsearch -Des.path.home="$ES_HOME" $properties -cp "$ES_CLASSPATH/lib/*" org.elasticsearch.plugins.PluginManager $args From e7605dd08b460bc824b1f568c62b20a50d3fa18b Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Wed, 23 Sep 2015 16:13:29 -0700 Subject: [PATCH 065/165] add nodejs-4.1.0 --- pkgs/development/libraries/libuv/default.nix | 1 + .../web/nodejs/no-xcode-4.1.0.patch | 95 +++++++++++++++++++ pkgs/development/web/nodejs/v4_1_0.nix | 53 +++++++++++ pkgs/top-level/all-packages.nix | 7 +- 4 files changed, 155 insertions(+), 1 deletion(-) create mode 100644 pkgs/development/web/nodejs/no-xcode-4.1.0.patch create mode 100644 pkgs/development/web/nodejs/v4_1_0.nix diff --git a/pkgs/development/libraries/libuv/default.nix b/pkgs/development/libraries/libuv/default.nix index 8052f0bc731d..2a35264799b9 100644 --- a/pkgs/development/libraries/libuv/default.nix +++ b/pkgs/development/libraries/libuv/default.nix @@ -109,4 +109,5 @@ in mapAttrs (v: h: mkWithAutotools stable (toVersion v) h) { v1_2_0 = "1nbp8qpgw64gl9nrjzxw0ndv1m64cfms0cy5a2883vw6877kizmx"; v1_6_1 = "10w9pjbmqcv03v04rnjd8mdh886j7v4y0svdsdklz69zskgdvvqg"; + v1_7_5 = "18x6cy2xn31am97vn6jli7kmb2fbp4c8kmv7jm97vggh0x55flsc"; } diff --git a/pkgs/development/web/nodejs/no-xcode-4.1.0.patch b/pkgs/development/web/nodejs/no-xcode-4.1.0.patch new file mode 100644 index 000000000000..137158b01b71 --- /dev/null +++ b/pkgs/development/web/nodejs/no-xcode-4.1.0.patch @@ -0,0 +1,95 @@ +diff --git a/configure b/configure +index d199975..66d903b 100755 +--- a/configure ++++ b/configure +@@ -734,7 +734,7 @@ def configure_library(lib, output): + # libpath needs to be provided ahead libraries + if pkg_libpath: + output['libraries'] += ( +- filter(None, map(str.strip, pkg_cflags.split('-L')))) ++ pkg_libpath.split()) + + default_libs = getattr(options, shared_lib + '_libname') + default_libs = map('-l{0}'.format, default_libs.split(',')) +diff --git a/tools/gyp/pylib/gyp/xcode_emulation.py b/tools/gyp/pylib/gyp/xcode_emulation.py +index c002b11..fefb765 100644 +--- a/tools/gyp/pylib/gyp/xcode_emulation.py ++++ b/tools/gyp/pylib/gyp/xcode_emulation.py +@@ -446,10 +446,17 @@ class XcodeSettings(object): + + def _XcodeSdkPath(self, sdk_root): + if sdk_root not in XcodeSettings._sdk_path_cache: +- sdk_path = self._GetSdkVersionInfoItem(sdk_root, 'Path') +- XcodeSettings._sdk_path_cache[sdk_root] = sdk_path +- if sdk_root: +- XcodeSettings._sdk_root_cache[sdk_path] = sdk_root ++ try: ++ sdk_path = self._GetSdkVersionInfoItem(sdk_root, 'Path') ++ XcodeSettings._sdk_path_cache[sdk_root] = sdk_path ++ if sdk_root: ++ XcodeSettings._sdk_root_cache[sdk_path] = sdk_root ++ except: ++ # if this fails it's because xcodebuild failed, which means ++ # the user is probably on a CLT-only system, where there ++ # is no valid SDK root ++ XcodeSettings._sdk_path_cache[sdk_root] = None ++ + return XcodeSettings._sdk_path_cache[sdk_root] + + def _AppendPlatformVersionMinFlags(self, lst): +@@ -572,10 +579,12 @@ class XcodeSettings(object): + framework_root = sdk_root + else: + framework_root = '' +- config = self.spec['configurations'][self.configname] +- framework_dirs = config.get('mac_framework_dirs', []) +- for directory in framework_dirs: +- cflags.append('-F' + directory.replace('$(SDKROOT)', framework_root)) ++ ++ if 'SDKROOT' in self._Settings(): ++ config = self.spec['configurations'][self.configname] ++ framework_dirs = config.get('mac_framework_dirs', []) ++ for directory in framework_dirs: ++ cflags.append('-F' + directory.replace('$(SDKROOT)', framework_root)) + + self.configname = None + return cflags +@@ -826,10 +835,12 @@ class XcodeSettings(object): + sdk_root = self._SdkPath() + if not sdk_root: + sdk_root = '' +- config = self.spec['configurations'][self.configname] +- framework_dirs = config.get('mac_framework_dirs', []) +- for directory in framework_dirs: +- ldflags.append('-F' + directory.replace('$(SDKROOT)', sdk_root)) ++ ++ if 'SDKROOT' in self._Settings(): ++ config = self.spec['configurations'][self.configname] ++ framework_dirs = config.get('mac_framework_dirs', []) ++ for directory in framework_dirs: ++ ldflags.append('-F' + directory.replace('$(SDKROOT)', sdk_root)) + + is_extension = self._IsIosAppExtension() or self._IsIosWatchKitExtension() + if sdk_root and is_extension: +@@ -1032,7 +1043,11 @@ class XcodeSettings(object): + sdk_root = self._SdkPath(config_name) + if not sdk_root: + sdk_root = '' +- return l.replace('$(SDKROOT)', sdk_root) ++ ++ if self._SdkPath(): ++ return l.replace('$(SDKROOT)', sdk_root) ++ else: ++ return l + + def AdjustLibraries(self, libraries, config_name=None): + """Transforms entries like 'Cocoa.framework' in libraries into entries like +@@ -1248,7 +1263,7 @@ def XcodeVersion(): + if version: + version = re.match(r'(\d\.\d\.?\d*)', version).groups()[0] + else: +- raise GypError("No Xcode or CLT version detected!") ++ version = "7.0.0" + # The CLT has no build information, so we return an empty string. + version_list = [version, ''] + version = version_list[0] diff --git a/pkgs/development/web/nodejs/v4_1_0.nix b/pkgs/development/web/nodejs/v4_1_0.nix new file mode 100644 index 000000000000..de8fa5f6bd3e --- /dev/null +++ b/pkgs/development/web/nodejs/v4_1_0.nix @@ -0,0 +1,53 @@ +{ stdenv, fetchurl, openssl, python, zlib, libuv, v8, utillinux, http-parser +, pkgconfig, runCommand, which, libtool +}: + +let + version = "4.1.0"; + + deps = { + inherit openssl zlib libuv; + + # disabled system v8 because v8 3.14 no longer receives security fixes + # we fall back to nodejs' internal v8 copy which receives backports for now + # inherit v8 + } // (stdenv.lib.optionalAttrs (!stdenv.isDarwin) { + inherit http-parser; + }); + + inherit (stdenv.lib) concatMap optional optionals maintainers licenses platforms; +in stdenv.mkDerivation { + name = "nodejs-${version}"; + + src = fetchurl { + url = "http://nodejs.org/dist/v${version}/node-v${version}.tar.gz"; + sha256 = "025lqmhvl7xpx1ip97jwkz21a97sw9zb4zi3y7fgfag59vv0ac25"; + }; + + configureFlags = map (name: "--shared-${name}") (builtins.attrNames deps) ++ [ "--without-dtrace" ]; + + dontDisableStatic = true; + + prePatch = '' + patchShebangs . + ''; + + patches = stdenv.lib.optional stdenv.isDarwin ./no-xcode-4.1.0.patch; + + buildInputs = [ python which ] ++ (builtins.attrValues deps) + ++ optional stdenv.isLinux utillinux + ++ optionals stdenv.isDarwin [ openssl libtool ]; + setupHook = ./setup-hook.sh; + + enableParallelBuilding = true; + + passthru.interpreterName = "nodejs"; + + meta = { + description = "Event-driven I/O framework for the V8 JavaScript engine"; + homepage = http://nodejs.org; + license = licenses.mit; + maintainers = [ maintainers.goibhniu maintainers.havvy ]; + platforms = platforms.linux ++ platforms.darwin; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a5f1f09c355f..bccccc12baeb 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2006,6 +2006,11 @@ let ninka = callPackage ../development/tools/misc/ninka { }; + nodejs-4_1 = callPackage ../development/web/nodejs/v4_1_0.nix { + libuv = libuvVersions.v1_7_5; + openssl = openssl_1_0_2; + }; + nodejs-0_12 = callPackage ../development/web/nodejs { libuv = libuvVersions.v1_6_1; }; @@ -2019,8 +2024,8 @@ let else nodejs-0_12; + nodePackages_4_1 = recurseIntoAttrs (callPackage ./node-packages.nix { self = nodePackages_4_1; nodejs = nodejs-4_1; }); nodePackages_0_12 = callPackage ./node-packages.nix { self = nodePackages_0_12; nodejs = nodejs-0_12; }; - nodePackages_0_10 = callPackage ./node-packages.nix { self = nodePackages_0_10; nodejs = nodejs-0_10; }; nodePackages = if stdenv.system == "armv5tel-linux" then From 09d336ea5ec198663011eac93b30649fcc5f294c Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Wed, 23 Sep 2015 20:49:03 -0700 Subject: [PATCH 066/165] libarchive: Support lzo --- pkgs/development/libraries/libarchive/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/libarchive/default.nix b/pkgs/development/libraries/libarchive/default.nix index 1ec253dccd63..837db32ea4bc 100644 --- a/pkgs/development/libraries/libarchive/default.nix +++ b/pkgs/development/libraries/libarchive/default.nix @@ -1,4 +1,4 @@ -{ fetchurl, stdenv, acl, openssl, libxml2, attr, zlib, bzip2, e2fsprogs, xz +{ fetchurl, stdenv, acl, openssl, libxml2, attr, zlib, bzip2, e2fsprogs, xz, lzo , sharutils }: stdenv.mkDerivation rec { @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { # ^ it's CVE-2015-2304 specific to libarchive ]; - buildInputs = [ sharutils libxml2 zlib bzip2 openssl xz ] ++ + buildInputs = [ sharutils libxml2 zlib bzip2 openssl xz lzo ] ++ stdenv.lib.optionals stdenv.isLinux [ e2fsprogs attr acl ]; preBuild = if stdenv.isCygwin then '' From 2dc9cb1120cc172055601182e76ee4759cd22fe9 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Wed, 23 Sep 2015 20:49:17 -0700 Subject: [PATCH 067/165] libcap-ng: 0.7.3 -> 0.7.7 Also support swig + python bindings --- pkgs/os-specific/linux/libcap-ng/default.nix | 34 +++++++++++++++----- pkgs/top-level/all-packages.nix | 6 +++- 2 files changed, 31 insertions(+), 9 deletions(-) diff --git a/pkgs/os-specific/linux/libcap-ng/default.nix b/pkgs/os-specific/linux/libcap-ng/default.nix index 3670f06e5439..ea54f1a39fd1 100644 --- a/pkgs/os-specific/linux/libcap-ng/default.nix +++ b/pkgs/os-specific/linux/libcap-ng/default.nix @@ -1,22 +1,40 @@ -{ stdenv, fetchurl, python }: +{ stdenv, fetchurl, swig ? null, python2 ? null, python3 ? null }: -assert stdenv.isLinux; +assert python2 != null || python3 != null -> swig != null; stdenv.mkDerivation rec { name = "libcap-ng-${version}"; - version = "0.7.3"; + # When updating make sure to test that the version with + # all of the python bindings still works + version = "0.7.7"; src = fetchurl { url = "${meta.homepage}/${name}.tar.gz"; - sha256 = "1cavlcrpqi4imkmagjhw65br8rv2fsbhf68mm3lczr51sg44392w"; + sha256 = "0syhyrixk7fqvwis3k7iddn75g0qxysc1q5fifvzccxk7774jmb1"; }; - buildInputs = [ python ]; # ToDo? optional swig for python bindings + nativeBuildInputs = [ swig ]; + buildInputs = [ python2 python3 ]; - meta = { + postPatch = '' + function get_header() { + echo -e "#include <$1>" | gcc -M -xc - | tr ' ' '\n' | grep "$1" | head -n 1 + } + + # Fix some hardcoding of header paths + sed -i "s,/usr/include/linux/capability.h,$(get_header linux/capability.h),g" bindings/python{,3}/Makefile.in + ''; + + configureFlags = [ + (if python2 != null then "--with-python" else "--without-python") + (if python3 != null then "--with-python3" else "--without-python3") + ]; + + meta = let inherit (stdenv.lib) platforms licenses maintainers; in { description = "Library for working with POSIX capabilities"; homepage = http://people.redhat.com/sgrubb/libcap-ng/; - platforms = stdenv.lib.platforms.linux; - license = stdenv.lib.licenses.lgpl21; + platforms = platforms.linux; + license = licenses.lgpl21; + maintainers = with maintainers; [ wkennington ]; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index bccccc12baeb..bb9392f90531 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9921,7 +9921,11 @@ let libcap_manpages = callPackage ../os-specific/linux/libcap/man.nix { }; - libcap_ng = callPackage ../os-specific/linux/libcap-ng { }; + libcap_ng = callPackage ../os-specific/linux/libcap-ng { + swig = null; # Currently not using the python2/3 bindings + python2 = null; # Currently not using the python2 bindings + python3 = null; # Currently not using the python3 bindings + }; libnscd = callPackage ../os-specific/linux/libnscd { }; From 9e15068099a5b522660cbee3944a4022a436364a Mon Sep 17 00:00:00 2001 From: Robbin C Date: Mon, 21 Sep 2015 11:56:10 +0800 Subject: [PATCH 068/165] ctpp2: init at 2.8.3. This adds ctpp2, a high performance templating engine. --- pkgs/development/libraries/ctpp2/default.nix | 24 ++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 26 insertions(+) create mode 100644 pkgs/development/libraries/ctpp2/default.nix diff --git a/pkgs/development/libraries/ctpp2/default.nix b/pkgs/development/libraries/ctpp2/default.nix new file mode 100644 index 000000000000..ab5cd2beff30 --- /dev/null +++ b/pkgs/development/libraries/ctpp2/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchurl, cmake, gcc48 }: + +stdenv.mkDerivation rec { + name = "ctpp2"; + version = "2.8.3"; + + src = fetchurl { + url = "http://ctpp.havoc.ru/download/ctpp2-${version}.tar.gz"; + sha256 = "1z22zfw9lb86z4hcan9hlvji49c9b7vznh7gjm95gnvsh43zsgx8"; + }; + + buildInputs = [ cmake gcc48 ]; + + patchPhase = '' + # include to fix undefined getcwd + sed -ie 's//\n#include /' src/CTPP2FileSourceLoader.cpp + ''; + + meta = { + description = "A high performance templating engine"; + homepage = http://ctpp.havoc.ru; + maintiainers = with stdenv.lib.maintainers; [ robbinch ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8041eaf758fd..6ca93f2c4f9c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6030,6 +6030,8 @@ let ctl = callPackage ../development/libraries/ctl { }; + ctpp2 = callPackage ../development/libraries/ctpp2 { }; + cpp-netlib = callPackage ../development/libraries/cpp-netlib { }; cppunit = callPackage ../development/libraries/cppunit { }; From be5d0141c535074d08474527e57c2c702d155514 Mon Sep 17 00:00:00 2001 From: Brian McKenna Date: Sun, 20 Sep 2015 23:07:46 +1000 Subject: [PATCH 069/165] google-musicmanager: beta_1.0.182.3607-r0 -> beta_1.0.221.5230-r0 The previous version was 404 Also fixes i686 typo --- pkgs/applications/audio/google-musicmanager/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/audio/google-musicmanager/default.nix b/pkgs/applications/audio/google-musicmanager/default.nix index 2edc1c00ce67..7c69a25eb042 100644 --- a/pkgs/applications/audio/google-musicmanager/default.nix +++ b/pkgs/applications/audio/google-musicmanager/default.nix @@ -1,12 +1,12 @@ { stdenv, fetchurl, readline, patchelf, ncurses, qt48, libidn, expat, flac , libvorbis }: -assert stdenv.system == "x86_64-linux" || stdenv.system == "1686-linux"; +assert stdenv.system == "x86_64-linux" || stdenv.system == "i686-linux"; let archUrl = name: arch: "http://dl.google.com/linux/musicmanager/deb/pool/main/g/google-musicmanager-beta/${name}_${arch}.deb"; in stdenv.mkDerivation rec { - version = "beta_1.0.182.3607-r0"; # friendly to nix-env version sorting algo + version = "beta_1.0.221.5230-r0"; # friendly to nix-env version sorting algo product = "google-musicmanager"; name = "${product}-${version}"; @@ -18,11 +18,11 @@ stdenv.mkDerivation rec { src = if stdenv.system == "x86_64-linux" then fetchurl { url = archUrl name "amd64"; - sha256 = "141x986haxg3r72ggh8prz0qg298jkad1ys8sdvsac92p4adcqx4"; + sha256 = "1h0ssbz6y9xi2szalgb5wcxi8m1ylg4qf2za6zgvi908hpan7q37"; } else fetchurl { url = archUrl name "i386"; - sha256 = "076iaa7pxhj8b1hlg5ah9jfm4qgzgjc9ivvg2l18wp045gnycv1l"; + sha256 = "0q8cnzx7s25bpqlbp40d43mwd6m8kvhvdifkqlgc9phpydnqpd1i"; }; unpackPhase = '' From d06a172c1c3f820929344ff37cd37ac4c5eab737 Mon Sep 17 00:00:00 2001 From: Gabriel Ebner Date: Mon, 21 Sep 2015 09:38:38 +0200 Subject: [PATCH 070/165] metis-prover: init at 2.3 --- .../science/logic/metis-prover/default.nix | 29 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 31 insertions(+) create mode 100644 pkgs/applications/science/logic/metis-prover/default.nix diff --git a/pkgs/applications/science/logic/metis-prover/default.nix b/pkgs/applications/science/logic/metis-prover/default.nix new file mode 100644 index 000000000000..0aa3d6e51c37 --- /dev/null +++ b/pkgs/applications/science/logic/metis-prover/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchurl, perl, mlton }: + +stdenv.mkDerivation rec { + name = "metis-prover-${version}"; + version = "2.3"; + + src = fetchurl { + url = "http://www.gilith.com/software/metis/metis.tar.gz"; + sha256 = "07wqhic66i5ip2j194x6pswwrxyxrimpc4vg0haa5aqv9pfpmxad"; + }; + + nativeBuildInputs = [ perl ]; + buildInputs = [ mlton ]; + + patchPhase = "patchShebangs scripts/mlpp"; + + buildPhase = "make mlton"; + + installPhase = '' + install -Dm0755 bin/mlton/metis $out/bin/metis + ''; + + meta = with stdenv.lib; { + description = "Automatic theorem prover for first-order logic with equality"; + homepage = http://www.gilith.com/research/metis/; + license = licenses.mit; + maintainers = with maintainers; [ gebner ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6ca93f2c4f9c..4891ec8d4ba2 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -14349,6 +14349,8 @@ let ocaml_mysql ocamlnet ulex08 camlzip ocaml_pcre; }); + metis-prover = callPackage ../applications/science/logic/metis-prover { }; + minisat = callPackage ../applications/science/logic/minisat {}; opensmt = callPackage ../applications/science/logic/opensmt { }; From 697d61ceabc9813d2ae5ac553dcb4aabf12903d9 Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Wed, 23 Sep 2015 11:46:02 +0200 Subject: [PATCH 071/165] maint script gnome.sh: update all packages --- maintainers/scripts/gnome.sh | 236 ++++++++++++++++++++++------------- 1 file changed, 146 insertions(+), 90 deletions(-) diff --git a/maintainers/scripts/gnome.sh b/maintainers/scripts/gnome.sh index cd2c57774036..9398331d0d68 100755 --- a/maintainers/scripts/gnome.sh +++ b/maintainers/scripts/gnome.sh @@ -4,28 +4,24 @@ set -o pipefail GNOME_FTP="ftp.gnome.org/pub/GNOME/sources" +# projects that don't follow the GNOME major versioning, or that we don't want to +# programmatically update +NO_GNOME_MAJOR="gtkhtml gdm" + usage() { - echo "Usage: $0 show|update project [major.minor]" >&2 + echo "Usage: $0 gnome_dir || [major.minor]" >&2 + echo "gnome_dir is for example pkgs/desktops/gnome-3/3.18" >&2 exit 0 } -if [ "$#" -lt 1 ]; then +if [ "$#" -lt 2 ]; then usage fi +GNOME_TOP="$1" +shift + action="$1" -project="$2" -majorVersion="$3" - -if [ "$action" != "show" ] && [ "$action" != "update" ]; then - echo "Unknown action $action" >&2 - usage -fi - -if [ -z "$project" ]; then - echo "No project specified, exiting" - exit 1 -fi # curl -l ftp://... doesn't work from my office in HSE, and I don't want to have # any conversations with sysadmin. Somehow lftp works. @@ -39,79 +35,93 @@ else } fi -if [ -z "$majorVersion" ]; then - echo "Looking for available versions..." >&2 - available_baseversions=( `ls_ftp ftp://${GNOME_FTP}/${project} | grep '[0-9]\.[0-9]' | sort -t. -k1,1n -k 2,2n` ) - if [ "$?" -ne "0" ]; then - echo "Project $project not found" >&2 - exit 1 +find_project() { + exec find "$GNOME_TOP" -mindepth 2 -maxdepth 2 -type d $@ +} + +show_project() { + local project="$1" + local majorVersion="$2" + local version="" + + if [ -z "$majorVersion" ]; then + echo "Looking for available versions..." >&2 + local available_baseversions=( `ls_ftp ftp://${GNOME_FTP}/${project} | grep '[0-9]\.[0-9]' | sort -t. -k1,1n -k 2,2n` ) + if [ "$?" -ne "0" ]; then + echo "Project $project not found" >&2 + return 1 + fi + + echo -e "The following versions are available:\n ${available_baseversions[@]}" >&2 + echo -en "Choose one of them: " >&2 + read majorVersion fi - echo -e "The following versions are available:\n ${available_baseversions[@]}" >&2 - echo -en "Choose one of them: " >&2 - read majorVersion -fi - -if echo "$majorVersion" | grep -q "[0-9]\+\.[0-9]\+\.[0-9]\+"; then - # not a major version - version="$majorVersion" - majorVersion=$(echo "$majorVersion" | cut -d '.' -f 1,2) -fi - -FTPDIR="${GNOME_FTP}/${project}/${majorVersion}" - -#version=`curl -l ${FTPDIR}/ 2>/dev/null | grep LATEST-IS | sed -e s/LATEST-IS-//` -# gnome's LATEST-IS is broken. Do not trust it. - -if [ -z "$version" ]; then - files=$(ls_ftp "${FTPDIR}") - declare -A versions - - for f in $files; do - case $f in - (LATEST-IS-*|*.news|*.changes|*.sha256sum|*.diff*): - ;; - ($project-*.*.9*.tar.*): - tmp=${f#$project-} - tmp=${tmp%.tar*} - echo "Ignored unstable version ${tmp}" >&2 - ;; - ($project-*.tar.*): - tmp=${f#$project-} - tmp=${tmp%.tar*} - versions[${tmp}]=1 - ;; - (*): - echo "UNKNOWN FILE $f" - ;; - esac - done - echo "Found versions ${!versions[@]}" >&2 - version=`echo ${!versions[@]} | sed -e 's/ /\n/g' | sort -t. -k1,1n -k 2,2n -k 3,3n | tail -n1` - echo "Latest version is: ${version}" >&2 -fi - -name=${project}-${version} -echo "Fetching .sha256 file" >&2 -sha256out=$(curl -s -f http://${FTPDIR}/${name}.sha256sum) - -if [ "$?" -ne "0" ]; then - echo "Version not found" >&2 - exit 1 -fi - -extensions=( "xz" "bz2" "gz" ) -echo "Choosing archive extension (known are ${extensions[@]})..." >&2 -for ext in ${extensions[@]}; do - if echo -e "$sha256out" | grep -q "\\.tar\\.${ext}$"; then - ext_pref=$ext - sha256=$(echo -e "$sha256out" | grep "\\.tar\\.${ext}$" | cut -f1 -d\ ) - break + if echo "$majorVersion" | grep -q "[0-9]\+\.[0-9]\+\.[0-9]\+"; then + # not a major version + version="$majorVersion" + majorVersion=$(echo "$majorVersion" | cut -d '.' -f 1,2) fi -done -echo "Chosen ${ext_pref}, hash is ${sha256}" >&2 + + local FTPDIR="${GNOME_FTP}/${project}/${majorVersion}" + + #version=`curl -l ${FTPDIR}/ 2>/dev/null | grep LATEST-IS | sed -e s/LATEST-IS-//` + # gnome's LATEST-IS is broken. Do not trust it. + + if [ -z "$version" ]; then + local files=$(ls_ftp "${FTPDIR}") + declare -A versions + + for f in $files; do + case $f in + (LATEST-IS-*|*.news|*.changes|*.sha256sum|*.diff*): + ;; + ($project-*.*.9*.tar.*): + tmp=${f#$project-} + tmp=${tmp%.tar*} + echo "Ignored unstable version ${tmp}" >&2 + ;; + ($project-*.tar.*): + tmp=${f#$project-} + tmp=${tmp%.tar*} + versions[${tmp}]=1 + ;; + (*): + echo "UNKNOWN FILE $f" >&2 + ;; + esac + done + echo "Found versions ${!versions[@]}" >&2 + version=`echo ${!versions[@]} | sed -e 's/ /\n/g' | sort -t. -k1,1n -k 2,2n -k 3,3n | tail -n1` + if [ -z "$version" ]; then + echo "No version available for major $majorVersion" >&2 + return 1 + fi -src="# Autogenerated by maintainers/scripts/gnome.sh update + echo "Latest version is: ${version}" >&2 + fi + + local name=${project}-${version} + echo "Fetching .sha256 file" >&2 + local sha256out=$(curl -s -f http://${FTPDIR}/${name}.sha256sum) + + if [ "$?" -ne "0" ]; then + echo "Version not found" >&2 + return 1 + fi + + extensions=( "xz" "bz2" "gz" ) + echo "Choosing archive extension (known are ${extensions[@]})..." >&2 + for ext in ${extensions[@]}; do + if echo -e "$sha256out" | grep -q "\\.tar\\.${ext}$"; then + ext_pref=$ext + sha256=$(echo -e "$sha256out" | grep "\\.tar\\.${ext}$" | cut -f1 -d\ ) + break + fi + done + echo "Chosen ${ext_pref}, hash is ${sha256}" >&2 + + echo "# Autogenerated by maintainers/scripts/gnome.sh update fetchurl: { name = \"${project}-${version}\"; @@ -122,17 +132,63 @@ fetchurl: { }; }" -if [ "$action" == "update" ]; then + return 0 +} + +update_project() { + local project="$1" + local majorVersion="$2" + # find project in nixpkgs tree - GNOME_TOP=$(readlink -e $(dirname "${BASH_SOURCE[0]}")"/../../pkgs/desktops/gnome-3/") - projectPath=$(find "$GNOME_TOP" -name "$project" -print) + projectPath=$(find_project -name "$project" -print) if [ -z "$projectPath" ]; then echo "Project $project not found under $GNOME_TOP" exit 1 fi - echo "Updating $projectPath/src.nix" - echo -e "$src" > "$projectPath/src.nix" + src=$(show_project "$project" "$majorVersion") + + if [ "$?" -eq "0" ]; then + echo "Updating $projectPath/src.nix" >&2 + echo -e "$src" > "$projectPath/src.nix" + fi + + return 0 +} + +if [ "$action" == "update-all" ]; then + majorVersion="$2" + if [ -z "$majorVersion" ]; then + echo "No major version specified" >&2 + usage + fi + + # find projects + projects=$(find_project -exec basename '{}' \;) + for project in $projects; do + if echo "$NO_GNOME_MAJOR"|grep -q $project; then + echo "Skipping $project" + else + echo "= Updating $project to $majorVersion" >&2 + update_project $project $majorVersion + echo >&2 + fi + done else - echo -e "\n$src" -fi \ No newline at end of file + project="$2" + majorVersion="$3" + + if [ -z "$project" ]; then + echo "No project specified, exiting" >&2 + usage + fi + + if [ "$action" == "show" ]; then + show_project $project $majorVersion + elif [ "$action" == "update" ]; then + update_project $project $majorVersion + else + echo "Unknown action $action" >&2 + usage + fi +fi From b1f4a7ef3212919466dd97b087f6351c677a53ae Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Fri, 25 Sep 2015 10:28:51 +0200 Subject: [PATCH 072/165] webkitgtk: 2.8.5 -> 2.10.0 --- pkgs/development/libraries/webkitgtk/default.nix | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/development/libraries/webkitgtk/default.nix b/pkgs/development/libraries/webkitgtk/default.nix index 0e67f5d3d1ad..d60fbca61414 100644 --- a/pkgs/development/libraries/webkitgtk/default.nix +++ b/pkgs/development/libraries/webkitgtk/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, perl, python, ruby, bison, gperf, cmake -, pkgconfig, gettext, gobjectIntrospection +, pkgconfig, gettext, gobjectIntrospection, libnotify , gtk2, gtk3, wayland, libwebp, enchant , libxml2, libsoup, libsecret, libxslt, harfbuzz, libpthreadstubs , enableGeoLocation ? true, geoclue2, sqlite @@ -11,7 +11,7 @@ assert enableGeoLocation -> geoclue2 != null; with stdenv.lib; stdenv.mkDerivation rec { name = "webkitgtk-${version}"; - version = "2.8.5"; + version = "2.10.0"; meta = { description = "Web content rendering engine, GTK+ port"; @@ -25,12 +25,12 @@ stdenv.mkDerivation rec { src = fetchurl { url = "http://webkitgtk.org/releases/${name}.tar.xz"; - sha256 = "082dw0d8jxvsapx30ypmy5h2srzfzi42c3zr9pbkzx1m959hq7rx"; + sha256 = "0vb8ca6dd9hxb5ycp54bdyykp10blbq5b6qkbak4yf9mxwi5ccj2"; }; patches = [ ./finding-harfbuzz-icu.patch ]; - cmakeFlags = [ "-DPORT=GTK" ]; + cmakeFlags = [ "-DPORT=GTK" "-DUSE_LIBHYPHEN=0" ]; # XXX: WebKit2 missing include path for gst-plugins-base. # Filled: https://bugs.webkit.org/show_bug.cgi?id=148894 @@ -42,7 +42,7 @@ stdenv.mkDerivation rec { ]; buildInputs = [ - gtk2 wayland libwebp enchant + gtk2 wayland libwebp enchant libnotify libxml2 libsecret libxslt harfbuzz libpthreadstubs gst-plugins-base ] ++ optional enableGeoLocation geoclue2; @@ -51,5 +51,5 @@ stdenv.mkDerivation rec { libsoup gtk3 ]; - enableParallelBuilding = true; # build problems on Hydra + enableParallelBuilding = true; } From 6bb4df642ec3e4f59124a49636d457dab7c33490 Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Fri, 25 Sep 2015 10:29:21 +0200 Subject: [PATCH 073/165] glib: 2.44.1 -> 2.46.0 --- pkgs/development/libraries/glib/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix index fb9c361c5306..137fe943637d 100644 --- a/pkgs/development/libraries/glib/default.nix +++ b/pkgs/development/libraries/glib/default.nix @@ -39,8 +39,8 @@ let ln -sr -t "$out/include/" "$out"/lib/*/include/* 2>/dev/null || true ''; - ver_maj = "2.44"; - ver_min = "1"; + ver_maj = "2.46"; + ver_min = "0"; in stdenv.mkDerivation rec { @@ -48,7 +48,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "mirror://gnome/sources/glib/${ver_maj}/${name}.tar.xz"; - sha256 = "01yabrfp64i11mrks3p1gcks99lw0zm7f5vhkc53sl4amyndw4c8"; + sha256 = "b1cee83469ae7d80f17c267c37f090414e93960bd62d2b254a5a96fbc5baacb4"; }; patches = optional stdenv.isDarwin ./darwin-compilation.patch ++ optional doCheck ./skip-timer-test.patch; From 63ccbf55b2de793246e19502166f24c407e90ddc Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Fri, 25 Sep 2015 10:30:14 +0200 Subject: [PATCH 074/165] atk: 2.16.0 -> 2.18.0 --- pkgs/development/libraries/atk/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/atk/default.nix b/pkgs/development/libraries/atk/default.nix index d5e442c738cc..dcb90aa16cd1 100644 --- a/pkgs/development/libraries/atk/default.nix +++ b/pkgs/development/libraries/atk/default.nix @@ -1,7 +1,7 @@ { stdenv, fetchurl, pkgconfig, perl, glib, libintlOrEmpty, gobjectIntrospection }: let - ver_maj = "2.16"; + ver_maj = "2.18"; ver_min = "0"; in stdenv.mkDerivation rec { @@ -9,7 +9,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "mirror://gnome/sources/atk/${ver_maj}/${name}.tar.xz"; - sha256 = "0qp5i91kfk6rhrlam3s8ha0cz88lkyp89vsyn4pb5856c1h9hpq9"; + sha256 = "ce6c48d77bf951083029d5a396dd552d836fff3c1715d3a7022e917e46d0c92b"; }; buildInputs = libintlOrEmpty; From 6858ca17db98846f1e541ac28ee9d5ec98d8c789 Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Fri, 25 Sep 2015 10:31:16 +0200 Subject: [PATCH 075/165] gobject-introspection: 1.44.0 -> 1.46.0 --- .../libraries/gobject-introspection/default.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/gobject-introspection/default.nix b/pkgs/development/libraries/gobject-introspection/default.nix index 50fddd9da9fd..f429e1dc6c36 100644 --- a/pkgs/development/libraries/gobject-introspection/default.nix +++ b/pkgs/development/libraries/gobject-introspection/default.nix @@ -5,7 +5,7 @@ # In that case its about 6MB which could be separated let - ver_maj = "1.44"; + ver_maj = "1.46"; ver_min = "0"; in stdenv.mkDerivation rec { @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "mirror://gnome/sources/gobject-introspection/${ver_maj}/${name}.tar.xz"; - sha256 = "1b972qg2yb51sdavfvb6kc19akwc15c1bwnbg81vadxamql2q33g"; + sha256 = "6658bd3c2b8813eb3e2511ee153238d09ace9d309e4574af27443d87423e4233"; }; buildInputs = [ flex bison pkgconfig python ] @@ -25,6 +25,10 @@ stdenv.mkDerivation rec { # other dependencies). configureFlags = [ "--disable-tests" ]; + preConfigure = '' + sed 's|/usr/bin/env ||' -i tools/g-ir-tool-template.in + ''; + postInstall = "rm -rf $out/share/gtk-doc"; setupHook = ./setup-hook.sh; From 8b3e6b5f62f0a6419e782187943d11fdc417409b Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Fri, 25 Sep 2015 10:31:59 +0200 Subject: [PATCH 076/165] at-spi2-core: 2.16.0 -> 2.18.0 --- pkgs/development/libraries/at-spi2-core/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/at-spi2-core/default.nix b/pkgs/development/libraries/at-spi2-core/default.nix index 0fc28185501a..7cf29aaca86b 100644 --- a/pkgs/development/libraries/at-spi2-core/default.nix +++ b/pkgs/development/libraries/at-spi2-core/default.nix @@ -2,14 +2,14 @@ , libX11, xextproto, libSM, libICE, libXtst, libXi, gobjectIntrospection }: stdenv.mkDerivation rec { - versionMajor = "2.16"; + versionMajor = "2.18"; versionMinor = "0"; moduleName = "at-spi2-core"; name = "${moduleName}-${versionMajor}.${versionMinor}"; src = fetchurl { url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz"; - sha256 = "1l3l39mw23zyjlcqidvkyqlr4gwbhplzw2hcv3qvn6p8ikxpf2qw"; + sha256 = "1aeec77db6eb8087049af39a07f55756c55319f739d2998030fe6f4ced03ca76"; }; outputs = [ "out" "doc" ]; From 0688a56a49a548960e948a1ce54b80a7ea9c6fef Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Fri, 25 Sep 2015 10:32:15 +0200 Subject: [PATCH 077/165] at-spi2-atk: 2.16.0 -> 2.18.0 --- pkgs/development/libraries/at-spi2-atk/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/at-spi2-atk/default.nix b/pkgs/development/libraries/at-spi2-atk/default.nix index 940fc2bb6cc6..4a018f0b4052 100644 --- a/pkgs/development/libraries/at-spi2-atk/default.nix +++ b/pkgs/development/libraries/at-spi2-atk/default.nix @@ -2,14 +2,14 @@ , intltool, dbus_glib, at_spi2_core, libSM }: stdenv.mkDerivation rec { - versionMajor = "2.16"; + versionMajor = "2.18"; versionMinor = "0"; moduleName = "at-spi2-atk"; name = "${moduleName}-${versionMajor}.${versionMinor}"; src = fetchurl { url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz"; - sha256 = "1y9gfz1iz3wpja7s000f0bmyyvc6im5fcdl6bxwbz0v3qdgc9vvq"; + sha256 = "4a6db33453b6efd15fa7d84ef2a3421262a053f57f1df6e7a2536d02bacdf375"; }; buildInputs = [ python pkgconfig popt atk libX11 libICE xlibs.libXtst libXi From 4c9b91b2a27964ce34c466ead0bad5d4b7b91ed9 Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Fri, 25 Sep 2015 10:32:37 +0200 Subject: [PATCH 078/165] gdk-pixbuf: 2.31.6 -> 2.32.0 --- pkgs/development/libraries/gdk-pixbuf/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/gdk-pixbuf/default.nix b/pkgs/development/libraries/gdk-pixbuf/default.nix index 5f5a04969542..82fe45d25e4e 100644 --- a/pkgs/development/libraries/gdk-pixbuf/default.nix +++ b/pkgs/development/libraries/gdk-pixbuf/default.nix @@ -2,15 +2,15 @@ , jasper, libintlOrEmpty, gobjectIntrospection }: let - ver_maj = "2.31"; - ver_min = "6"; + ver_maj = "2.32"; + ver_min = "0"; in stdenv.mkDerivation rec { name = "gdk-pixbuf-${ver_maj}.${ver_min}"; src = fetchurl { url = "mirror://gnome/sources/gdk-pixbuf/${ver_maj}/${name}.tar.xz"; - sha256 = "062x2gqd7p6yxhxlib1ha4l3gk9ihcj080hrwwv9vmlmybb064hi"; + sha256 = "537655ec3635740e949457bafe61ae44ce0e5642a2529a9ef7ee0bcd5e911b67"; }; setupHook = ./setup-hook.sh; From 0a40884e3c589dfdeb42521076892b0d2f6180eb Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Fri, 25 Sep 2015 10:32:50 +0200 Subject: [PATCH 079/165] pango: 1.36.8 -> 1.38.0 --- pkgs/development/libraries/pango/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/pango/default.nix b/pkgs/development/libraries/pango/default.nix index 87187667a922..12b38fd6db7b 100644 --- a/pkgs/development/libraries/pango/default.nix +++ b/pkgs/development/libraries/pango/default.nix @@ -3,15 +3,15 @@ }: let - ver_maj = "1.36"; - ver_min = "8"; + ver_maj = "1.38"; + ver_min = "0"; in stdenv.mkDerivation rec { name = "pango-${ver_maj}.${ver_min}"; src = fetchurl { url = "mirror://gnome/sources/pango/${ver_maj}/${name}.tar.xz"; - sha256 = "01rdzjh68w8l5zn0648yibyarj8p6g7yfn59nw5awaz1i8dvbnqq"; + sha256 = "1d4e75974bad853ee9ac5fc5caee5e7ab235abbd945d51d01f3806e04e7c226c"; }; buildInputs = with stdenv.lib; [ gobjectIntrospection ] From 48ac26f51250c97fda720520d96505afa9dc53c8 Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Fri, 25 Sep 2015 10:33:07 +0200 Subject: [PATCH 080/165] gtk+: 3.16.6 -> 3.18.0 --- pkgs/development/libraries/gtk+/3.x.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/gtk+/3.x.nix b/pkgs/development/libraries/gtk+/3.x.nix index 5fb70ac05ea9..9bf95d015dd7 100644 --- a/pkgs/development/libraries/gtk+/3.x.nix +++ b/pkgs/development/libraries/gtk+/3.x.nix @@ -9,8 +9,8 @@ assert xineramaSupport -> xlibs.libXinerama != null; assert cupsSupport -> cups != null; let - ver_maj = "3.16"; - ver_min = "6"; + ver_maj = "3.18"; + ver_min = "0"; version = "${ver_maj}.${ver_min}"; in stdenv.mkDerivation rec { @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "mirror://gnome/sources/gtk+/${ver_maj}/gtk+-${version}.tar.xz"; - sha256 = "1gpzlnfrifc17yfk0zki6b2vmsfpf5cmrbh232s6iaan11np44jd"; + sha256 = "7fb8ae257403317d3852bad28d064d35f67e978b1fed8b71d5997e87204271b9"; }; nativeBuildInputs = [ pkgconfig gettext gobjectIntrospection perl ]; From bb16eb8f9da042abd773a3696a05ad1981b12d62 Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Fri, 25 Sep 2015 10:34:03 +0200 Subject: [PATCH 081/165] cogl: init 1.22.0 --- pkgs/development/libraries/cogl/1.22.nix | 56 ++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 58 insertions(+) create mode 100644 pkgs/development/libraries/cogl/1.22.nix diff --git a/pkgs/development/libraries/cogl/1.22.nix b/pkgs/development/libraries/cogl/1.22.nix new file mode 100644 index 000000000000..ce4fda5bd468 --- /dev/null +++ b/pkgs/development/libraries/cogl/1.22.nix @@ -0,0 +1,56 @@ +{ stdenv, fetchurl, pkgconfig, mesa_noglu, glib, gdk_pixbuf, xorg, libintlOrEmpty +, pangoSupport ? true, pango, cairo, gobjectIntrospection +, gstreamerSupport ? true, gst_all_1 }: + +let + ver_maj = "1.22"; + ver_min = "0"; +in +stdenv.mkDerivation rec { + name = "cogl-${ver_maj}.${ver_min}"; + + src = fetchurl { + url = "mirror://gnome/sources/cogl/${ver_maj}/${name}.tar.xz"; + sha256 = "689dfb5d14fc1106e9d2ded0f7930dcf7265d0bc84fa846b4f03941633eeaa91"; + }; + + nativeBuildInputs = [ pkgconfig ]; + + configureFlags = [ + "--enable-introspection" + "--enable-kms-egl-platform" + ] ++ stdenv.lib.optional gstreamerSupport "--enable-cogl-gst" + ++ stdenv.lib.optionals (!stdenv.isDarwin) [ "--enable-gles1" "--enable-gles2" ]; + + propagatedBuildInputs = with xorg; [ + glib gdk_pixbuf gobjectIntrospection + mesa_noglu libXrandr libXfixes libXcomposite libXdamage + ] + ++ libintlOrEmpty + ++ stdenv.lib.optionals gstreamerSupport [ gst_all_1.gstreamer + gst_all_1.gst-plugins-base ]; + + buildInputs = stdenv.lib.optionals pangoSupport [ pango cairo ]; + + COGL_PANGO_DEP_CFLAGS + = stdenv.lib.optionalString (stdenv.isDarwin && pangoSupport) + "-I${pango}/include/pango-1.0 -I${cairo}/include/cairo"; + + NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl"; + + #doCheck = true; # all tests fail (no idea why) + + meta = with stdenv.lib; { + description = "A small open source library for using 3D graphics hardware for rendering"; + maintainers = with maintainers; [ lovek323 ]; + + longDescription = '' + Cogl is a small open source library for using 3D graphics hardware for + rendering. The API departs from the flat state machine style of OpenGL + and is designed to make it easy to write orthogonal components that can + render without stepping on each other's toes. + ''; + + platforms = stdenv.lib.platforms.mesaPlatforms; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4891ec8d4ba2..1eb556515b7a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6018,6 +6018,8 @@ let cogl_1_20 = callPackage ../development/libraries/cogl/1.20.nix { }; + cogl_1_22 = callPackage ../development/libraries/cogl/1.22.nix { }; + coin3d = callPackage ../development/libraries/coin3d { }; CoinMP = callPackage ../development/libraries/CoinMP { }; From 41fc49ed7e94d9a0aef044a6ea34c142e376d3f7 Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Fri, 25 Sep 2015 10:34:25 +0200 Subject: [PATCH 082/165] clutter: init 1.24.0 --- pkgs/development/libraries/clutter/1.24.nix | 52 +++++++++++++++++++++ pkgs/top-level/all-packages.nix | 4 ++ 2 files changed, 56 insertions(+) create mode 100644 pkgs/development/libraries/clutter/1.24.nix diff --git a/pkgs/development/libraries/clutter/1.24.nix b/pkgs/development/libraries/clutter/1.24.nix new file mode 100644 index 000000000000..b9d45b6c62bb --- /dev/null +++ b/pkgs/development/libraries/clutter/1.24.nix @@ -0,0 +1,52 @@ +{ stdenv, fetchurl, glib, pkgconfig, mesa, libX11, libXext, libXfixes +, libXdamage, libXcomposite, libXi, cogl, pango, atk, json_glib, +gobjectIntrospection +}: + +let + ver_maj = "1.24"; + ver_min = "0"; +in +stdenv.mkDerivation rec { + name = "clutter-${ver_maj}.${ver_min}"; + + src = fetchurl { + url = "mirror://gnome/sources/clutter/${ver_maj}/${name}.tar.xz"; + sha256 = "85c87d5745b97af7633776419a47421aae7cea66c1b870f88cc5e06a4c5626e6"; + }; + + nativeBuildInputs = [ pkgconfig ]; + propagatedBuildInputs = + [ libX11 mesa libXext libXfixes libXdamage libXcomposite libXi cogl pango + atk json_glib gobjectIntrospection + ]; + + configureFlags = [ "--enable-introspection" ]; # needed by muffin AFAIK + + #doCheck = true; # no tests possible without a display + + meta = { + description = "Clutter, a library for creating fast, dynamic graphical user interfaces"; + + longDescription = + '' Clutter is free software library for creating fast, compelling, + portable, and dynamic graphical user interfaces. It is a core part + of MeeGo, and is supported by the open source community. Its + development is sponsored by Intel. + + Clutter uses OpenGL for rendering (and optionally OpenGL|ES for use + on mobile and embedded platforms), but wraps an easy to use, + efficient, flexible API around GL's complexity. + + Clutter enforces no particular user interface style, but provides a + rich, generic foundation for higher-level toolkits tailored to + specific needs. + ''; + + license = stdenv.lib.licenses.lgpl2Plus; + homepage = http://www.clutter-project.org/; + + maintainers = with stdenv.lib.maintainers; [ urkud lethalman ]; + platforms = stdenv.lib.platforms.mesaPlatforms; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1eb556515b7a..56fadb5ce10f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6000,6 +6000,10 @@ let cogl = cogl_1_20; }; + clutter_1_24 = callPackage ../development/libraries/clutter/1.24.nix { + cogl = cogl_1_22; + }; + clutter-gst = callPackage ../development/libraries/clutter-gst { }; clutter-gst_3_0 = callPackage ../development/libraries/clutter-gst/3.0.nix { From 26aea8b1aa798fa4cae5cf45953f8e3f3b7dbea9 Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Fri, 25 Sep 2015 10:36:01 +0200 Subject: [PATCH 083/165] gnome3: init 3.18 --- nixos/tests/gnome3_18.nix | 36 ++ .../gnome-3/3.18/apps/accerciser/default.nix | 28 ++ .../gnome-3/3.18/apps/bijiben/default.nix | 36 ++ .../gnome-3/3.18/apps/bijiben/src.nix | 10 + .../gnome-3/3.18/apps/cheese/default.nix | 25 ++ .../desktops/gnome-3/3.18/apps/cheese/src.nix | 10 + .../gnome-3/3.18/apps/evolution/default.nix | 49 +++ .../gnome-3/3.18/apps/evolution/src.nix | 10 + .../gnome-3/3.18/apps/file-roller/default.nix | 25 ++ .../gnome-3/3.18/apps/file-roller/src.nix | 10 + .../gnome-3/3.18/apps/gedit/default.nix | 33 ++ pkgs/desktops/gnome-3/3.18/apps/gedit/src.nix | 10 + .../gnome-3/3.18/apps/glade/default.nix | 30 ++ pkgs/desktops/gnome-3/3.18/apps/glade/src.nix | 10 + .../gnome-3/3.18/apps/gnome-boxes/default.nix | 42 ++ .../gnome-3/3.18/apps/gnome-boxes/src.nix | 10 + .../3.18/apps/gnome-calendar/default.nix | 22 + .../gnome-3/3.18/apps/gnome-calendar/src.nix | 10 + .../3.18/apps/gnome-characters/default.nix | 19 + .../3.18/apps/gnome-characters/src.nix | 10 + .../3.18/apps/gnome-clocks/default.nix | 27 ++ .../gnome-3/3.18/apps/gnome-clocks/src.nix | 10 + .../3.18/apps/gnome-documents/default.nix | 39 ++ .../gnome-3/3.18/apps/gnome-documents/src.nix | 10 + .../gnome-getting-started-docs/default.nix | 15 + .../apps/gnome-getting-started-docs/src.nix | 10 + .../gnome-3/3.18/apps/gnome-logs/default.nix | 21 + .../gnome-3/3.18/apps/gnome-logs/src.nix | 10 + .../gnome-3/3.18/apps/gnome-maps/default.nix | 25 ++ .../gnome-3/3.18/apps/gnome-maps/soup.patch | 10 + .../gnome-3/3.18/apps/gnome-maps/src.nix | 10 + .../gnome-3/3.18/apps/gnome-music/default.nix | 30 ++ .../gnome-3/3.18/apps/gnome-music/src.nix | 10 + .../3.18/apps/gnome-nettool/default.nix | 26 ++ .../3.18/apps/gnome-photos/default.nix | 31 ++ .../gnome-3/3.18/apps/gnome-photos/src.nix | 10 + .../3.18/apps/gnome-weather/default.nix | 19 + .../gnome-3/3.18/apps/gnome-weather/src.nix | 10 + .../3.18/apps/nautilus-sendto/default.nix | 22 + .../gnome-3/3.18/apps/polari/default.nix | 22 + .../desktops/gnome-3/3.18/apps/polari/src.nix | 10 + .../gnome-3/3.18/apps/seahorse/default.nix | 35 ++ .../gnome-3/3.18/apps/seahorse/src.nix | 10 + .../gnome-3/3.18/apps/vinagre/default.nix | 21 + .../gnome-3/3.18/apps/vinagre/src.nix | 10 + .../3.18/core/adwaita-icon-theme/default.nix | 21 + .../3.18/core/adwaita-icon-theme/src.nix | 10 + .../gnome-3/3.18/core/baobab/default.nix | 32 ++ .../desktops/gnome-3/3.18/core/baobab/src.nix | 10 + .../gnome-3/3.18/core/caribou/default.nix | 31 ++ .../3.18/core/dconf-editor/default.nix | 19 + .../gnome-3/3.18/core/dconf-editor/src.nix | 10 + .../gnome-3/3.18/core/dconf/default.nix | 23 + .../gnome-3/3.18/core/empathy/default.nix | 57 +++ .../gnome-3/3.18/core/eog/default.nix | 25 ++ pkgs/desktops/gnome-3/3.18/core/eog/src.nix | 10 + .../gnome-3/3.18/core/epiphany/default.nix | 42 ++ .../3.18/core/epiphany/libxml_depend.patch | 10 + .../gnome-3/3.18/core/epiphany/src.nix | 10 + .../gnome-3/3.18/core/evince/default.nix | 64 +++ .../desktops/gnome-3/3.18/core/evince/src.nix | 10 + .../core/evolution-data-server/default.nix | 30 ++ .../3.18/core/evolution-data-server/src.nix | 10 + .../gnome-3/3.18/core/folks/default.nix | 43 ++ .../gnome-3/3.18/core/gconf/default.nix | 32 ++ .../gnome-3/3.18/core/gcr/default.nix | 28 ++ pkgs/desktops/gnome-3/3.18/core/gcr/src.nix | 10 + .../3.18/core/gdm/3.16-wip/default.nix | 41 ++ .../3.16-wip/disable_x_access_control.patch | 15 + .../3.18/core/gdm/3.16-wip/sessions_dir.patch | 17 + .../3.18/core/gdm/3.16-wip/xserver_path.patch | 83 ++++ .../gnome-3/3.18/core/gdm/default.nix | 41 ++ .../core/gdm/disable_x_access_control.patch | 13 + .../3.18/core/gdm/no-dbus-launch.patch | 20 + .../gnome-3/3.18/core/gdm/sessions_dir.patch | 17 + pkgs/desktops/gnome-3/3.18/core/gdm/src.nix | 10 + .../gnome-3/3.18/core/gdm/xserver_path.patch | 15 + .../3.18/core/geocode-glib/default.nix | 14 + .../gnome-3/3.18/core/geocode-glib/src.nix | 10 + .../gnome-3/3.18/core/gjs/default.nix | 28 ++ .../3.18/core/gnome-backgrounds/default.nix | 12 + .../3.18/core/gnome-backgrounds/src.nix | 10 + .../3.18/core/gnome-bluetooth/default.nix | 23 + .../gnome-3/3.18/core/gnome-bluetooth/src.nix | 10 + .../3.18/core/gnome-calculator/default.nix | 30 ++ .../3.18/core/gnome-calculator/src.nix | 10 + .../3.18/core/gnome-common/default.nix | 17 + .../gnome-3/3.18/core/gnome-common/src.nix | 10 + .../3.18/core/gnome-contacts/default.nix | 47 +++ .../3.18/core/gnome-contacts/gio_unix.patch | 10 + .../gnome-3/3.18/core/gnome-contacts/src.nix | 10 + .../core/gnome-control-center/default.nix | 59 +++ .../3.18/core/gnome-control-center/src.nix | 10 + .../vpn_plugins_path.patch | 19 + .../3.18/core/gnome-desktop/default.nix | 24 ++ .../gnome-3/3.18/core/gnome-desktop/src.nix | 10 + .../3.18/core/gnome-dictionary/default.nix | 32 ++ .../3.18/core/gnome-dictionary/src.nix | 10 + .../3.18/core/gnome-disk-utility/default.nix | 35 ++ .../3.18/core/gnome-disk-utility/src.nix | 10 + .../3.18/core/gnome-font-viewer/default.nix | 31 ++ .../3.18/core/gnome-font-viewer/src.nix | 10 + .../3.18/core/gnome-keyring/default.nix | 34 ++ .../gnome-3/3.18/core/gnome-keyring/src.nix | 10 + .../gnome-3/3.18/core/gnome-menus/default.nix | 22 + .../core/gnome-online-accounts/default.nix | 33 ++ .../3.18/core/gnome-online-accounts/src.nix | 10 + .../3.18/core/gnome-online-miners/default.nix | 37 ++ .../3.18/core/gnome-screenshot/default.nix | 31 ++ .../3.18/core/gnome-screenshot/src.nix | 10 + .../3.18/core/gnome-session/default.nix | 25 ++ .../gnome-3/3.18/core/gnome-session/src.nix | 10 + .../core/gnome-settings-daemon/default.nix | 31 ++ .../3.18/core/gnome-settings-daemon/src.nix | 10 + .../core/gnome-shell-extensions/default.nix | 19 + .../3.18/core/gnome-shell-extensions/src.nix | 10 + .../gnome-3/3.18/core/gnome-shell/default.nix | 57 +++ .../gnome-3/3.18/core/gnome-shell/src.nix | 10 + .../3.18/core/gnome-system-log/default.nix | 36 ++ .../core/gnome-system-monitor/default.nix | 32 ++ .../3.18/core/gnome-system-monitor/src.nix | 10 + .../3.18/core/gnome-terminal/default.nix | 28 ++ .../gnome-3/3.18/core/gnome-terminal/src.nix | 10 + .../core/gnome-themes-standard/default.nix | 14 + .../3.18/core/gnome-themes-standard/src.nix | 10 + .../3.18/core/gnome-user-docs/default.nix | 15 + .../gnome-3/3.18/core/gnome-user-docs/src.nix | 10 + .../3.18/core/gnome-user-share/default.nix | 45 ++ .../3.18/core/gnome-user-share/src.nix | 10 + .../3.18/core/grilo-plugins/default.nix | 27 ++ .../gnome-3/3.18/core/grilo/default.nix | 33 ++ .../gnome-3/3.18/core/grilo/setup-hook.sh | 7 + .../gsettings-desktop-schemas/default.nix | 22 + .../core/gsettings-desktop-schemas/src.nix | 10 + .../gnome-3/3.18/core/gsound/default.nix | 22 + .../3.18/core/gtksourceview/default.nix | 22 + .../core/gtksourceview/nix_share_path.patch | 11 + .../gnome-3/3.18/core/gtksourceview/src.nix | 10 + .../gnome-3/3.18/core/gucharmap/default.nix | 33 ++ .../gnome-3/3.18/core/gucharmap/src.nix | 10 + .../gnome-3/3.18/core/libcroco/default.nix | 20 + .../gnome-3/3.18/core/libgdata/default.nix | 33 ++ .../gnome-3/3.18/core/libgee/default.nix | 26 ++ .../core/libgee/fix_introspection_paths.patch | 13 + .../3.18/core/libgnome-keyring/default.nix | 26 ++ .../gnome-3/3.18/core/libgnomekbd/default.nix | 24 ++ .../gnome-3/3.18/core/libgweather/default.nix | 17 + .../gnome-3/3.18/core/libgweather/src.nix | 10 + .../gnome-3/3.18/core/libgxps/default.nix | 20 + .../gnome-3/3.18/core/libpeas/default.nix | 20 + .../gnome-3/3.18/core/libpeas/src.nix | 10 + .../gnome-3/3.18/core/libzapojit/default.nix | 16 + .../gnome-3/3.18/core/mutter/default.nix | 31 ++ .../gnome-3/3.18/core/mutter/math.patch | 10 + .../desktops/gnome-3/3.18/core/mutter/src.nix | 10 + .../gnome-3/3.18/core/mutter/x86.patch | 20 + .../gnome-3/3.18/core/nautilus/default.nix | 25 ++ .../3.18/core/nautilus/extension_dir.patch | 24 ++ .../gnome-3/3.18/core/nautilus/src.nix | 10 + .../gnome-3/3.18/core/rest/default.nix | 19 + .../gnome-3/3.18/core/sushi/default.nix | 33 ++ pkgs/desktops/gnome-3/3.18/core/sushi/src.nix | 10 + .../3.18/core/totem-pl-parser/default.nix | 20 + .../gnome-3/3.18/core/totem/default.nix | 42 ++ pkgs/desktops/gnome-3/3.18/core/totem/src.nix | 10 + .../gnome-3/3.18/core/tracker/default.nix | 55 +++ .../gnome-3/3.18/core/vino/default.nix | 25 ++ pkgs/desktops/gnome-3/3.18/core/vino/src.nix | 10 + pkgs/desktops/gnome-3/3.18/core/vte/2.90.nix | 40 ++ .../gnome-3/3.18/core/vte/default.nix | 39 ++ .../core/vte/expose_select_text.0.40.0.patch | 226 ++++++++++ pkgs/desktops/gnome-3/3.18/core/vte/src.nix | 10 + .../gnome-3/3.18/core/yelp-tools/default.nix | 17 + .../gnome-3/3.18/core/yelp-tools/src.nix | 10 + .../gnome-3/3.18/core/yelp-xsl/default.nix | 18 + .../gnome-3/3.18/core/yelp-xsl/src.nix | 10 + .../gnome-3/3.18/core/yelp/default.nix | 26 ++ pkgs/desktops/gnome-3/3.18/core/yelp/src.nix | 10 + .../gnome-3/3.18/core/zenity/default.nix | 19 + .../desktops/gnome-3/3.18/core/zenity/src.nix | 10 + pkgs/desktops/gnome-3/3.18/default.nix | 394 ++++++++++++++++++ .../gnome-3/3.18/desktop/rarian/default.nix | 16 + .../gnome-3/3.18/devtools/anjuta/default.nix | 24 ++ .../gnome-3/3.18/devtools/anjuta/src.nix | 10 + .../gnome-3/3.18/devtools/devhelp/default.nix | 18 + .../gnome-3/3.18/devtools/devhelp/src.nix | 10 + .../gnome-3/3.18/devtools/gdl/default.nix | 15 + .../gnome-3/3.18/devtools/gdl/src.nix | 10 + .../devtools/gnome-devel-docs/default.nix | 15 + .../3.18/devtools/gnome-devel-docs/src.nix | 10 + .../gnome-3/3.18/games/aisleriot/default.nix | 20 + .../gnome-3/3.18/games/aisleriot/src.nix | 10 + .../3.18/games/five-or-more/default.nix | 19 + .../gnome-3/3.18/games/five-or-more/src.nix | 10 + .../3.18/games/four-in-a-row/default.nix | 19 + .../gnome-3/3.18/games/four-in-a-row/src.nix | 10 + .../3.18/games/gnome-chess/default.nix | 19 + .../gnome-3/3.18/games/gnome-chess/src.nix | 10 + .../3.18/games/gnome-klotski/default.nix | 19 + .../gnome-3/3.18/games/gnome-klotski/src.nix | 10 + .../3.18/games/gnome-mahjongg/default.nix | 19 + .../gnome-3/3.18/games/gnome-mahjongg/src.nix | 10 + .../3.18/games/gnome-mines/default.nix | 19 + .../gnome-3/3.18/games/gnome-mines/src.nix | 10 + .../3.18/games/gnome-nibbles/default.nix | 20 + .../gnome-3/3.18/games/gnome-nibbles/src.nix | 10 + .../3.18/games/gnome-robots/default.nix | 19 + .../gnome-3/3.18/games/gnome-robots/src.nix | 10 + .../3.18/games/gnome-sudoku/default.nix | 17 + .../gnome-3/3.18/games/gnome-sudoku/src.nix | 10 + .../3.18/games/gnome-taquin/default.nix | 19 + .../gnome-3/3.18/games/gnome-taquin/src.nix | 10 + .../3.18/games/gnome-tetravex/default.nix | 18 + .../gnome-3/3.18/games/gnome-tetravex/src.nix | 10 + .../gnome-3/3.18/games/hitori/default.nix | 24 ++ .../gnome-3/3.18/games/iagno/default.nix | 19 + .../desktops/gnome-3/3.18/games/iagno/src.nix | 10 + .../gnome-3/3.18/games/lightsoff/default.nix | 19 + .../gnome-3/3.18/games/lightsoff/src.nix | 10 + .../3.18/games/quadrapassel/default.nix | 21 + .../gnome-3/3.18/games/quadrapassel/src.nix | 10 + .../gnome-3/3.18/games/swell-foop/default.nix | 19 + .../gnome-3/3.18/games/swell-foop/src.nix | 10 + .../gnome-3/3.18/games/tali/default.nix | 19 + pkgs/desktops/gnome-3/3.18/games/tali/src.nix | 10 + ...d-with-evolution-data-server-3.13.90.patch | 39 ++ .../gnome-3/3.18/misc/california/default.nix | 39 ++ .../gnome-3/3.18/misc/geary/default.nix | 52 +++ .../3.18/misc/geary/disable_valadoc.patch | 24 ++ .../gnome-3/3.18/misc/gexiv2/default.nix | 28 ++ .../gnome-3/3.18/misc/gfbgraph/default.nix | 23 + .../gnome-3/3.18/misc/gitg/default.nix | 39 ++ pkgs/desktops/gnome-3/3.18/misc/gitg/src.nix | 10 + ...themes-and-icons-in-system-data-dirs.patch | 123 ++++++ ...-multiple-entries-for-a-single-theme.patch | 103 +++++ ...reate-config-dir-if-it-doesn-t-exist.patch | 29 ++ .../3.18/misc/gnome-tweak-tool/default.nix | 44 ++ .../gnome-tweak-tool/find_gsettings.patch | 22 + .../3.18/misc/gnome-tweak-tool/src.nix | 10 + .../3.18/misc/gnome-video-effects/default.nix | 20 + .../gnome-3/3.18/misc/gpaste/default.nix | 44 ++ .../gnome-3/3.18/misc/gtkhtml/default.nix | 16 + .../gnome-3/3.18/misc/gtkhtml/src.nix | 10 + .../gnome-3/3.18/misc/libgda/default.nix | 30 ++ .../3.18/misc/libgit2-glib/default.nix | 21 + .../gnome-3/3.18/misc/libmediaart/default.nix | 22 + .../gnome-3/3.18/misc/pomodoro/default.nix | 50 +++ pkgs/top-level/all-packages.nix | 2 + 248 files changed, 5838 insertions(+) create mode 100644 nixos/tests/gnome3_18.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/accerciser/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/bijiben/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/bijiben/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/cheese/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/cheese/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/evolution/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/evolution/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/file-roller/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/file-roller/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gedit/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gedit/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/glade/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/glade/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-boxes/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-boxes/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-calendar/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-calendar/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-characters/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-characters/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-clocks/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-clocks/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-documents/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-documents/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-getting-started-docs/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-getting-started-docs/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-logs/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-logs/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-maps/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-maps/soup.patch create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-maps/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-music/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-music/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-nettool/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-photos/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-photos/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-weather/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/gnome-weather/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/nautilus-sendto/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/polari/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/polari/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/seahorse/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/seahorse/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/vinagre/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/apps/vinagre/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/adwaita-icon-theme/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/adwaita-icon-theme/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/baobab/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/baobab/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/caribou/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/dconf-editor/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/dconf-editor/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/dconf/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/empathy/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/eog/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/eog/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/epiphany/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/epiphany/libxml_depend.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/epiphany/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/evince/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/evince/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/evolution-data-server/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/evolution-data-server/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/folks/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gconf/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gcr/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gcr/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/disable_x_access_control.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/sessions_dir.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/xserver_path.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/gdm/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gdm/disable_x_access_control.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/gdm/no-dbus-launch.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/gdm/sessions_dir.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/gdm/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gdm/xserver_path.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/geocode-glib/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/geocode-glib/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gjs/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-backgrounds/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-backgrounds/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-bluetooth/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-bluetooth/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-calculator/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-calculator/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-common/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-common/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-contacts/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-contacts/gio_unix.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-contacts/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-control-center/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-control-center/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-control-center/vpn_plugins_path.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-desktop/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-desktop/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-dictionary/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-dictionary/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-disk-utility/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-disk-utility/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-font-viewer/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-font-viewer/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-keyring/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-keyring/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-menus/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-online-accounts/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-online-accounts/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-online-miners/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-screenshot/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-screenshot/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-session/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-session/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-settings-daemon/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-settings-daemon/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-shell-extensions/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-shell-extensions/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-shell/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-shell/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-system-log/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-system-monitor/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-system-monitor/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-terminal/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-terminal/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-themes-standard/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-themes-standard/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-user-docs/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-user-docs/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-user-share/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gnome-user-share/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/grilo-plugins/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/grilo/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/grilo/setup-hook.sh create mode 100644 pkgs/desktops/gnome-3/3.18/core/gsettings-desktop-schemas/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gsettings-desktop-schemas/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gsound/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gtksourceview/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gtksourceview/nix_share_path.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/gtksourceview/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gucharmap/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/gucharmap/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/libcroco/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/libgdata/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/libgee/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/libgee/fix_introspection_paths.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/libgnome-keyring/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/libgnomekbd/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/libgweather/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/libgweather/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/libgxps/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/libpeas/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/libpeas/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/libzapojit/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/mutter/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/mutter/math.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/mutter/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/mutter/x86.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/nautilus/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/nautilus/extension_dir.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/nautilus/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/rest/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/sushi/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/sushi/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/totem-pl-parser/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/totem/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/totem/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/tracker/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/vino/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/vino/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/vte/2.90.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/vte/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/vte/expose_select_text.0.40.0.patch create mode 100644 pkgs/desktops/gnome-3/3.18/core/vte/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/yelp-tools/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/yelp-tools/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/yelp-xsl/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/yelp-xsl/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/yelp/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/yelp/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/zenity/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/core/zenity/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/desktop/rarian/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/devtools/anjuta/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/devtools/anjuta/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/devtools/devhelp/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/devtools/devhelp/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/devtools/gdl/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/devtools/gdl/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/devtools/gnome-devel-docs/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/devtools/gnome-devel-docs/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/aisleriot/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/aisleriot/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/five-or-more/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/five-or-more/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/four-in-a-row/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/four-in-a-row/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-chess/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-chess/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-klotski/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-klotski/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-mahjongg/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-mahjongg/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-mines/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-mines/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-nibbles/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-nibbles/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-robots/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-robots/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-sudoku/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-sudoku/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-taquin/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-taquin/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-tetravex/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/gnome-tetravex/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/hitori/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/iagno/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/iagno/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/lightsoff/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/lightsoff/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/quadrapassel/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/quadrapassel/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/swell-foop/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/swell-foop/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/tali/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/games/tali/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/california/0002-Build-with-evolution-data-server-3.13.90.patch create mode 100644 pkgs/desktops/gnome-3/3.18/misc/california/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/geary/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/geary/disable_valadoc.patch create mode 100644 pkgs/desktops/gnome-3/3.18/misc/gexiv2/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/gfbgraph/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/gitg/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/gitg/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0001-Search-for-themes-and-icons-in-system-data-dirs.patch create mode 100644 pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0002-Don-t-show-multiple-entries-for-a-single-theme.patch create mode 100644 pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0003-Create-config-dir-if-it-doesn-t-exist.patch create mode 100644 pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/find_gsettings.patch create mode 100644 pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/gnome-video-effects/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/gpaste/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/gtkhtml/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/gtkhtml/src.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/libgda/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/libgit2-glib/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/libmediaart/default.nix create mode 100644 pkgs/desktops/gnome-3/3.18/misc/pomodoro/default.nix diff --git a/nixos/tests/gnome3_18.nix b/nixos/tests/gnome3_18.nix new file mode 100644 index 000000000000..971fd48b1868 --- /dev/null +++ b/nixos/tests/gnome3_18.nix @@ -0,0 +1,36 @@ +import ./make-test.nix ({ pkgs, ...} : { + name = "gnome3"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ iElectric eelco chaoflow lethalman ]; + }; + + machine = + { config, pkgs, ... }: + + { imports = [ ./common/user-account.nix ]; + + services.xserver.enable = true; + + services.xserver.displayManager.auto.enable = true; + services.xserver.displayManager.auto.user = "alice"; + services.xserver.desktopManager.gnome3.enable = true; + + environment.gnome3.packageSet = pkgs.gnome3_18; + + virtualisation.memorySize = 512; + }; + + testScript = + '' + $machine->waitForX; + $machine->sleep(15); + + # Check that logging in has given the user ownership of devices. + $machine->succeed("getfacl /dev/snd/timer | grep -q alice"); + + $machine->succeed("su - alice -c 'DISPLAY=:0.0 gnome-terminal &'"); + $machine->waitForWindow(qr/Terminal/); + $machine->sleep(20); + $machine->screenshot("screen"); + ''; +}) diff --git a/pkgs/desktops/gnome-3/3.18/apps/accerciser/default.nix b/pkgs/desktops/gnome-3/3.18/apps/accerciser/default.nix new file mode 100644 index 000000000000..a2813e0581b3 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/accerciser/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, itstool, libxml2, python3, python3Packages, pyatspi, at_spi2_core +, dbus, intltool, libwnck3 }: + +stdenv.mkDerivation rec { + name = "accerciser-3.14.0"; + + src = fetchurl { + url = "mirror://gnome/sources/accerciser/3.14/${name}.tar.xz"; + sha256 = "0x05gpajpcs01g7m34g6fxz8122cf9kx3k0lchwl34jy8xfr39gm"; + }; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook itstool libxml2 python3 pyatspi + python3Packages.pygobject3 python3Packages.ipython + at_spi2_core dbus intltool libwnck3 gnome3.defaultIconTheme + ]; + + wrapPrefixVariables = [ "PYTHONPATH" ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Accerciser; + description = "Interactive Python accessibility explorer"; + maintainers = gnome3.maintainers; + license = licenses.bsd3; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/bijiben/default.nix b/pkgs/desktops/gnome-3/3.18/apps/bijiben/default.nix new file mode 100644 index 000000000000..00895f9a2bb2 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/bijiben/default.nix @@ -0,0 +1,36 @@ +{ stdenv, intltool, fetchurl, pkgconfig, glib +, evolution_data_server, evolution, sqlite +, makeWrapper, itstool, desktop_file_utils +, clutter_gtk, libuuid, webkitgtk, zeitgeist +, gnome3, librsvg, gdk_pixbuf, libxml2 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + buildInputs = [ pkgconfig glib intltool itstool libxml2 + clutter_gtk libuuid webkitgtk gnome3.tracker + gnome3.gnome_online_accounts zeitgeist desktop_file_utils + gnome3.gsettings_desktop_schemas makeWrapper + gdk_pixbuf gnome3.defaultIconTheme librsvg + evolution_data_server evolution sqlite ]; + + enableParallelBuilding = true; + + preFixup = '' + wrapProgram "$out/bin/bijiben" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Bijiben; + description = "Note editor designed to remain simple to use"; + maintainers = gnome3.maintainers; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/bijiben/src.nix b/pkgs/desktops/gnome-3/3.18/apps/bijiben/src.nix new file mode 100644 index 000000000000..9eb11c0e3791 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/bijiben/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "bijiben-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/bijiben/3.18/bijiben-3.18.0.tar.xz; + sha256 = "3e933eae3776ae50a639f0866b5c11279961b5ebdaa83a621509dfe31c218fea"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/cheese/default.nix b/pkgs/desktops/gnome-3/3.18/apps/cheese/default.nix new file mode 100644 index 000000000000..ed5bbf6ca228 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/cheese/default.nix @@ -0,0 +1,25 @@ +{ stdenv, intltool, fetchurl, wrapGAppsHook, gnome-video-effects, libcanberra_gtk3 +, pkgconfig, gtk3, glib, clutter_gtk, clutter-gst_2, udev, gst_all_1, itstool +, adwaita-icon-theme, librsvg, gdk_pixbuf, gnome3, gnome_desktop, libxml2 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ pkgconfig gtk3 glib intltool wrapGAppsHook gnome-video-effects itstool + gdk_pixbuf adwaita-icon-theme librsvg udev gst_all_1.gstreamer libxml2 + gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good gnome_desktop + gst_all_1.gst-plugins-bad clutter_gtk clutter-gst_2 + libcanberra_gtk3 ]; + + enableParallelBuilding = true; + + NIX_CFLAGS_COMPILE = "-I${glib}/include/gio-unix-2.0"; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Cheese; + description = "Take photos and videos with your webcam, with fun graphical effects"; + maintainers = gnome3.maintainers; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/cheese/src.nix b/pkgs/desktops/gnome-3/3.18/apps/cheese/src.nix new file mode 100644 index 000000000000..7e47c2c49505 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/cheese/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "cheese-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/cheese/3.18/cheese-3.18.0.tar.xz; + sha256 = "65ba4a60be51b9fc5537e5c1cdb6605b3098145982fae75a08ace94b965aeb0b"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/evolution/default.nix b/pkgs/desktops/gnome-3/3.18/apps/evolution/default.nix new file mode 100644 index 000000000000..a9bb87d4dddf --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/evolution/default.nix @@ -0,0 +1,49 @@ +{ stdenv, intltool, fetchurl, libxml2, webkitgtk, highlight +, pkgconfig, gtk3, glib, libnotify, gtkspell3 +, makeWrapper, itstool, shared_mime_info, libical, db, gcr, sqlite +, gnome3, librsvg, gdk_pixbuf, libsecret, nss, nspr, icu, libtool +, libcanberra_gtk3, bogofilter, gst_all_1, procps, p11_kit }: + +let + majVer = gnome3.version; +in stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + propagatedBuildInputs = [ gnome3.gtkhtml ]; + + buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2 libtool + gdk_pixbuf gnome3.defaultIconTheme librsvg db icu + gnome3.evolution_data_server libsecret libical gcr + webkitgtk shared_mime_info gnome3.gnome_desktop gtkspell3 + libcanberra_gtk3 bogofilter gnome3.libgdata sqlite + gst_all_1.gstreamer gst_all_1.gst-plugins-base p11_kit + nss nspr libnotify procps highlight gnome3.libgweather + gnome3.gsettings_desktop_schemas makeWrapper ]; + + configureFlags = [ "--disable-spamassassin" "--disable-pst-import" "--disable-autoar" + "--disable-libcryptui" ]; + + NIX_CFLAGS_COMPILE = "-I${nspr}/include/nspr -I${nss}/include/nss -I${glib}/include/gio-unix-2.0"; + + enableParallelBuilding = true; + + preFixup = '' + for f in $out/bin/* $out/libexec/*; do + wrapProgram "$f" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + done + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Evolution; + description = "Personal information management application that provides integrated mail, calendaring and address book functionality"; + maintainers = gnome3.maintainers; + license = licenses.lgpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/evolution/src.nix b/pkgs/desktops/gnome-3/3.18/apps/evolution/src.nix new file mode 100644 index 000000000000..46af1c8b8bb3 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/evolution/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "evolution-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/evolution/3.18/evolution-3.18.0.tar.xz; + sha256 = "a3efe42a861200c0463476e0a02e566fde74a0d4a699d8cc6514c031d5cad410"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/file-roller/default.nix b/pkgs/desktops/gnome-3/3.18/apps/file-roller/default.nix new file mode 100644 index 000000000000..4e35676f3cba --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/file-roller/default.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchurl, glib, pkgconfig, gnome3, intltool, itstool, libxml2, libarchive +, attr, bzip2, acl, makeWrapper, librsvg, gdk_pixbuf }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + # TODO: support nautilus + # it tries to create {nautilus}/lib/nautilus/extensions-3.0/libnautilus-fileroller.so + + buildInputs = [ glib pkgconfig gnome3.gtk intltool itstool libxml2 libarchive + gnome3.defaultIconTheme attr bzip2 acl gdk_pixbuf librsvg + makeWrapper ]; + + preFixup = '' + wrapProgram "$out/bin/file-roller" \ + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH:$out/share" + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/FileRoller; + description = "Archive manager for the GNOME desktop environment"; + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/file-roller/src.nix b/pkgs/desktops/gnome-3/3.18/apps/file-roller/src.nix new file mode 100644 index 000000000000..3e166f996e91 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/file-roller/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "file-roller-3.16.4"; + + src = fetchurl { + url = mirror://gnome/sources/file-roller/3.16/file-roller-3.16.4.tar.xz; + sha256 = "5455980b2c9c7eb063d2d65560ae7ab2e7f01b208ea3947e151680231c7a4185"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gedit/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gedit/default.nix new file mode 100644 index 000000000000..6cff4bdee482 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gedit/default.nix @@ -0,0 +1,33 @@ +{ stdenv, intltool, fetchurl, enchant, isocodes +, pkgconfig, gtk3, glib +, bash, makeWrapper, itstool, libsoup, libxml2 +, gnome3, librsvg, gdk_pixbuf, file }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + buildInputs = [ pkgconfig gtk3 glib intltool itstool enchant isocodes + gdk_pixbuf gnome3.defaultIconTheme librsvg libsoup + gnome3.libpeas gnome3.gtksourceview libxml2 + gnome3.gsettings_desktop_schemas makeWrapper file ]; + + enableParallelBuilding = true; + + preFixup = '' + wrapProgram "$out/bin/gedit" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ + --prefix LD_LIBRARY_PATH : "${gnome3.libpeas}/lib:${gnome3.gtksourceview}/lib" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Gedit; + description = "Official text editor of the GNOME desktop environment"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gedit/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gedit/src.nix new file mode 100644 index 000000000000..ff427fdfb905 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gedit/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gedit-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gedit/3.18/gedit-3.18.0.tar.xz; + sha256 = "9abd4f1478385f8b6c983298206f4ab1a25c682b9c87fb00d759b7db5b949533"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/glade/default.nix b/pkgs/desktops/gnome-3/3.18/apps/glade/default.nix new file mode 100644 index 000000000000..a0f8d9669556 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/glade/default.nix @@ -0,0 +1,30 @@ +{ stdenv, intltool, fetchurl, python +, pkgconfig, gtk3, glib +, makeWrapper, itstool, libxml2, docbook_xsl +, gnome3, librsvg, gdk_pixbuf, libxslt }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2 python + gnome3.gsettings_desktop_schemas makeWrapper docbook_xsl + gdk_pixbuf gnome3.defaultIconTheme librsvg libxslt ]; + + enableParallelBuilding = true; + + preFixup = '' + wrapProgram "$out/bin/glade" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Glade; + description = "User interface designer for GTK+ applications"; + maintainers = gnome3.maintainers; + license = licenses.lgpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/glade/src.nix b/pkgs/desktops/gnome-3/3.18/apps/glade/src.nix new file mode 100644 index 000000000000..aaa913babea4 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/glade/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "glade-3.18.3"; + + src = fetchurl { + url = mirror://gnome/sources/glade/3.18/glade-3.18.3.tar.xz; + sha256 = "ecdbce46e7fbfecd463be840b94fbf54d83723b3ebe075414cfd225ddab66452"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-boxes/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-boxes/default.nix new file mode 100644 index 000000000000..90955bd3ccf9 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-boxes/default.nix @@ -0,0 +1,42 @@ +{ stdenv, fetchurl, makeWrapper, pkgconfig, intltool, itstool, libvirt-glib +, glib, gobjectIntrospection, libxml2, gtk3, gtkvnc, libvirt, spice_gtk +, spice_protocol, libuuid, libsoup, libosinfo, systemd, tracker, vala +, libcap_ng, libcap, yajl, gmp, gdbm, cyrus_sasl, gnome3, librsvg +, desktop_file_utils, mtools, cdrkit, libcdio +, libusb, libarchive, acl +}: + +# TODO: ovirt (optional) + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + enableParallelBuilding = true; + + doCheck = true; + + buildInputs = [ + makeWrapper pkgconfig intltool itstool libvirt-glib glib + gobjectIntrospection libxml2 gtk3 gtkvnc libvirt spice_gtk spice_protocol + libuuid libsoup libosinfo systemd tracker vala libcap_ng libcap yajl gmp + gdbm cyrus_sasl gnome3.defaultIconTheme libusb libarchive + librsvg desktop_file_utils acl + ]; + + preFixup = '' + for prog in "$out/bin/"*; do + wrapProgram "$prog" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \ + --prefix PATH : "${mtools}/bin:${cdrkit}/bin:${libcdio}/bin" + done + ''; + + meta = with stdenv.lib; { + description = "Simple GNOME 3 application to access remote or virtual systems"; + homepage = https://wiki.gnome.org/action/show/Apps/Boxes; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = with maintainers; [ bjornfor ]; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-boxes/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-boxes/src.nix new file mode 100644 index 000000000000..06543540e76a --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-boxes/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-boxes-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-boxes/3.18/gnome-boxes-3.18.0.tar.xz; + sha256 = "ed2b442fc676bdfa47d6b6326836238c2c98af9725a91eb023784a3e692ae749"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-calendar/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-calendar/default.nix new file mode 100644 index 000000000000..cbd5a84bdb55 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-calendar/default.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, intltool, evolution_data_server, sqlite, libxml2, libsoup +, glib, gnome_online_accounts }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0"; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook intltool evolution_data_server + sqlite libxml2 libsoup glib gnome3.defaultIconTheme gnome_online_accounts + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Calendar; + description = "Simple and beautiful calendar application for GNOME"; + maintainers = gnome3.maintainers; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-calendar/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-calendar/src.nix new file mode 100644 index 000000000000..6b941b592e5c --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-calendar/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-calendar-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-calendar/3.18/gnome-calendar-3.18.0.tar.xz; + sha256 = "f7d50fe8d5d3dcc574f0034dba6a64cbb9b3f842faab5978c9d02b38548f355b"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-characters/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-characters/default.nix new file mode 100644 index 000000000000..4571a5d50e8b --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-characters/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, intltool, gjs, gdk_pixbuf, librsvg }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook intltool gjs gdk_pixbuf + librsvg gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Design/Apps/CharacterMap; + description = "Simple utility application to find and insert unusual characters"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-characters/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-characters/src.nix new file mode 100644 index 000000000000..a957aa91d755 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-characters/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-characters-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-characters/3.18/gnome-characters-3.18.0.tar.xz; + sha256 = "e068b2275a08639565a88b096d378a4ac2abf90301ff43056bb5157dff54ce08"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-clocks/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-clocks/default.nix new file mode 100644 index 000000000000..e39614e765d6 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-clocks/default.nix @@ -0,0 +1,27 @@ +{ stdenv, intltool, fetchurl, libgweather, libnotify +, pkgconfig, gtk3, glib, gsound +, makeWrapper, itstool, libcanberra_gtk3, libtool +, gnome3, librsvg, gdk_pixbuf, geoclue2, wrapGAppsHook }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + buildInputs = [ pkgconfig gtk3 glib intltool itstool libcanberra_gtk3 + gnome3.gsettings_desktop_schemas makeWrapper + gdk_pixbuf gnome3.defaultIconTheme librsvg + gnome3.gnome_desktop gnome3.geocode_glib geoclue2 + libgweather libnotify libtool gsound + wrapGAppsHook ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Clocks; + description = "Clock application designed for GNOME 3"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-clocks/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-clocks/src.nix new file mode 100644 index 000000000000..9f0be0ede985 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-clocks/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-clocks-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-clocks/3.18/gnome-clocks-3.18.0.tar.xz; + sha256 = "ca0818ec89e3539201da6b5388365e3d66df815198beccc90e2be44c7822baa0"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-documents/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-documents/default.nix new file mode 100644 index 000000000000..7f1f70114b7b --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-documents/default.nix @@ -0,0 +1,39 @@ +{ stdenv, intltool, fetchurl, evince, gjs +, pkgconfig, gtk3, glib +, makeWrapper, itstool, libxslt, webkitgtk +, gnome3, librsvg, gdk_pixbuf, libsoup, docbook_xsl +, gobjectIntrospection, json_glib, inkscape, poppler_utils +, gmp, desktop_file_utils, wrapGAppsHook }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + configureFlags = [ "--enable-getting-started" ]; + + buildInputs = [ pkgconfig gtk3 glib intltool itstool libxslt + docbook_xsl desktop_file_utils inkscape poppler_utils + gnome3.gsettings_desktop_schemas makeWrapper gmp + gdk_pixbuf gnome3.defaultIconTheme librsvg evince + libsoup webkitgtk gjs gobjectIntrospection gnome3.rest + gnome3.tracker gnome3.libgdata gnome3.gnome_online_accounts + gnome3.gnome_desktop gnome3.libzapojit json_glib + wrapGAppsHook ]; + + enableParallelBuilding = true; + + preFixup = '' + substituteInPlace $out/bin/gnome-documents --replace gapplication "${glib}/bin/gapplication" + + gappsWrapperArgs+=(--run 'if [ -z "$XDG_CACHE_DIR" ]; then XDG_CACHE_DIR=$HOME/.cache; fi; if [ -w "$XDG_CACHE_DIR/.." ]; then mkdir -p "$XDG_CACHE_DIR/gnome-documents"; fi') + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Documents; + description = "Document manager application designed to work with GNOME 3"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-documents/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-documents/src.nix new file mode 100644 index 000000000000..5906bade1eff --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-documents/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-documents-3.18.0.1"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-documents/3.18/gnome-documents-3.18.0.1.tar.xz; + sha256 = "0b19593e949276de71cb7292bb77520eb3cd915ac8c71d27a8d05f79b9e86816"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-getting-started-docs/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-getting-started-docs/default.nix new file mode 100644 index 000000000000..0c75ebd7c783 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-getting-started-docs/default.nix @@ -0,0 +1,15 @@ +{ stdenv, fetchurl, gnome3, intltool, itstool, libxml2 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ intltool itstool libxml2 ]; + + meta = with stdenv.lib; { + homepage = https://live.gnome.org/DocumentationProject; + description = "Help a new user get started in GNOME"; + maintainers = gnome3.maintainers; + license = licenses.cc-by-sa-30; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-getting-started-docs/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-getting-started-docs/src.nix new file mode 100644 index 000000000000..a4ed1d6b909a --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-getting-started-docs/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-getting-started-docs-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-getting-started-docs/3.18/gnome-getting-started-docs-3.18.0.tar.xz; + sha256 = "5ef0373c5a864fefdecb17bffdfc2cca00fb2abf93756b1df9062e12208925d6"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-logs/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-logs/default.nix new file mode 100644 index 000000000000..d4135fdb1bae --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-logs/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, intltool, itstool, libxml2, systemd }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + configureFlags = [ "--disable-tests" ]; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook intltool itstool libxml2 + systemd gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Logs; + description = "A log viewer for the systemd journal"; + maintainers = gnome3.maintainers; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-logs/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-logs/src.nix new file mode 100644 index 000000000000..b077f8cee4d4 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-logs/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-logs-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-logs/3.18/gnome-logs-3.18.0.tar.xz; + sha256 = "7602b55d47b5d889be7547869a0a48f03f6b22a1c872b86ed70049695d06d699"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-maps/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-maps/default.nix new file mode 100644 index 000000000000..b9aac0539ae5 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-maps/default.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchurl, intltool, pkgconfig, gnome3, gtk3 +, gobjectIntrospection, gdk_pixbuf, librsvg, autoreconfHook +, geoclue2, wrapGAppsHook, folks, libchamplain, gfbgraph, file, libsoup }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + buildInputs = [ pkgconfig intltool gobjectIntrospection wrapGAppsHook + gtk3 geoclue2 gnome3.gjs gnome3.libgee folks gfbgraph + gnome3.geocode_glib libchamplain file libsoup + gdk_pixbuf librsvg autoreconfHook + gnome3.gnome_online_accounts gnome3.defaultIconTheme ]; + + patches = [ ./soup.patch ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Maps; + description = "A map application for GNOME 3"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-maps/soup.patch b/pkgs/desktops/gnome-3/3.18/apps/gnome-maps/soup.patch new file mode 100644 index 000000000000..e7e86ba76c75 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-maps/soup.patch @@ -0,0 +1,10 @@ +--- gnome-maps-3.18.0/configure.ac.orig 2015-09-24 18:38:31.912498368 +0200 ++++ gnome-maps-3.18.0/configure.ac 2015-09-24 18:38:40.783320413 +0200 +@@ -50,6 +50,7 @@ + folks >= $FOLKS_MIN_VERSION + geocode-glib-1.0 >= $GEOCODE_MIN_VERSION + champlain-0.12 >= $CHAMPLAIN_MIN_VERSION ++ libsoup-2.4 + ]) + AC_SUBST(GNOME_MAPS_LIB_CFLAGS) + AC_SUBST(GNOME_MAPS_LIB_LIBS) diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-maps/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-maps/src.nix new file mode 100644 index 000000000000..9d33216480df --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-maps/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-maps-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-maps/3.18/gnome-maps-3.18.0.tar.xz; + sha256 = "242f70346a1527ba0d9a664bd863b02e2227f9f0f0f577b9b0c00dc3075eb85e"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-music/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-music/default.nix new file mode 100644 index 000000000000..bb89ef842026 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-music/default.nix @@ -0,0 +1,30 @@ +{ stdenv, intltool, fetchurl, gdk_pixbuf, tracker +, python3, libxml2, python3Packages, libnotify, wrapGAppsHook +, pkgconfig, gtk3, glib, cairo +, makeWrapper, itstool, gnome3, librsvg, gst_all_1 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + buildInputs = [ pkgconfig gtk3 glib intltool itstool gnome3.libmediaart + gdk_pixbuf gnome3.defaultIconTheme librsvg python3 + gnome3.grilo gnome3.grilo-plugins libxml2 python3Packages.pygobject3 libnotify + python3Packages.pycairo python3Packages.dbus gnome3.totem-pl-parser + gst_all_1.gstreamer gst_all_1.gst-plugins-base wrapGAppsHook + gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad + gnome3.gsettings_desktop_schemas makeWrapper tracker ]; + + wrapPrefixVariables = [ "PYTHONPATH" ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Music; + description = "Music player and management application for the GNOME desktop environment"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-music/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-music/src.nix new file mode 100644 index 000000000000..de2cf6054868 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-music/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-music-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-music/3.18/gnome-music-3.18.0.tar.xz; + sha256 = "e2e4b99a57c7b5c83ce3deccd38880cbafb875b423ab276204af523bc648d69c"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-nettool/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-nettool/default.nix new file mode 100644 index 000000000000..4c152777f2cb --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-nettool/default.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, libgtop, intltool, itstool, libxml2, nmap, inetutils }: + +stdenv.mkDerivation rec { + name = "gnome-nettool-3.8.1"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-nettool/3.8/${name}.tar.xz"; + sha256 = "1c9cvzvyqgfwa5zzyvp7118pkclji62fkbb33g4y9sp5kw6m397h"; + }; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook libgtop intltool itstool libxml2 + gnome3.defaultIconTheme + ]; + + propagatedUserEnvPkgs = [ nmap inetutils ]; + + meta = with stdenv.lib; { + homepage = http://projects.gnome.org/gnome-network; + description = "A collection of networking tools"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-photos/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-photos/default.nix new file mode 100644 index 000000000000..eaace044af0d --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-photos/default.nix @@ -0,0 +1,31 @@ +{ stdenv, intltool, fetchurl, exempi, libxml2 +, pkgconfig, gtk3, glib +, makeWrapper, itstool, gegl, babl, lcms2 +, desktop_file_utils, gmp, libmediaart, wrapGAppsHook +, gnome3, librsvg, gdk_pixbuf, libexif }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + # doCheck = true; + + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0"; + + buildInputs = [ pkgconfig gtk3 glib intltool itstool gegl babl gnome3.libgdata + gnome3.gsettings_desktop_schemas makeWrapper gmp libmediaart + gdk_pixbuf gnome3.defaultIconTheme librsvg exempi + gnome3.gfbgraph gnome3.grilo-plugins gnome3.grilo + gnome3.gnome_online_accounts gnome3.gnome_desktop + lcms2 libexif gnome3.tracker libxml2 desktop_file_utils + wrapGAppsHook ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Photos; + description = "Photos is an application to access, organize and share your photos with GNOME 3"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-photos/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-photos/src.nix new file mode 100644 index 000000000000..1af6b71cdb90 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-photos/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-photos-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-photos/3.18/gnome-photos-3.18.0.tar.xz; + sha256 = "5ca74b33de33da125059918e2d7c665ff78ac1adfbc04c98b3378e705cc73a54"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-weather/default.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-weather/default.nix new file mode 100644 index 000000000000..f4d2c8ad0c19 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-weather/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook, gjs +, libgweather, intltool, itstool }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook gjs intltool itstool + libgweather gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Weather; + description = "Access current weather conditions and forecasts"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/gnome-weather/src.nix b/pkgs/desktops/gnome-3/3.18/apps/gnome-weather/src.nix new file mode 100644 index 000000000000..b1dc538815de --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/gnome-weather/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-weather-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-weather/3.18/gnome-weather-3.18.0.tar.xz; + sha256 = "fa0c098bef351af7457abf0ef6bd0afb62d727f041a15107e02693c9c7bd48aa"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/nautilus-sendto/default.nix b/pkgs/desktops/gnome-3/3.18/apps/nautilus-sendto/default.nix new file mode 100644 index 000000000000..093900dcb7ab --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/nautilus-sendto/default.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl, glib, pkgconfig, gnome3, intltool +, gobjectIntrospection, makeWrapper }: + +stdenv.mkDerivation rec { + name = "nautilus-sendto-${version}"; + + version = "3.8.1"; + + src = fetchurl { + url = "mirror://gnome/sources/nautilus-sendto/3.8/${name}.tar.xz"; + sha256 = "03fa46bff271acdbdedab6243b2a84e5ed3daa19c81b69d087b3e852c8fe5dab"; + }; + + buildInputs = [ glib pkgconfig gobjectIntrospection intltool makeWrapper ]; + + meta = with stdenv.lib; { + description = "Integrates Evolution and Pidgin into the Nautilus file manager"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/polari/default.nix b/pkgs/desktops/gnome-3/3.18/apps/polari/default.nix new file mode 100644 index 000000000000..8efaa4e4aac8 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/polari/default.nix @@ -0,0 +1,22 @@ +{ stdenv, intltool, fetchurl, gdk_pixbuf, adwaita-icon-theme +, telepathy_glib, gjs, itstool, telepathy_idle +, pkgconfig, gtk3, glib, librsvg, gnome3, wrapGAppsHook }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + propagatedUserEnvPkgs = [ telepathy_idle ]; + + buildInputs = [ pkgconfig gtk3 glib intltool itstool adwaita-icon-theme wrapGAppsHook + telepathy_glib gjs gdk_pixbuf librsvg ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Polari; + description = "IRC chat client designed to integrate with the GNOME desktop"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/polari/src.nix b/pkgs/desktops/gnome-3/3.18/apps/polari/src.nix new file mode 100644 index 000000000000..9d7497b61c7f --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/polari/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "polari-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/polari/3.18/polari-3.18.0.tar.xz; + sha256 = "7b98c820a1e9a25a0f3a927e8d4ba8400296041f783301a764e37840c7ef6018"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/seahorse/default.nix b/pkgs/desktops/gnome-3/3.18/apps/seahorse/default.nix new file mode 100644 index 000000000000..3b78babadd9a --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/seahorse/default.nix @@ -0,0 +1,35 @@ +{ stdenv, intltool, fetchurl, vala +, pkgconfig, gtk3, glib +, makeWrapper, itstool, gnupg, libsoup +, gnome3, librsvg, gdk_pixbuf, gpgme +, libsecret, avahi, p11_kit, openssh }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0"; + + buildInputs = [ pkgconfig gtk3 glib intltool itstool gnome3.gcr + gnome3.gsettings_desktop_schemas makeWrapper gnupg + gdk_pixbuf gnome3.defaultIconTheme librsvg gpgme + libsecret avahi libsoup p11_kit vala gnome3.gcr + openssh ]; + + preFixup = '' + wrapProgram "$out/bin/seahorse" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Seahorse; + description = "Application for managing encryption keys and passwords in the GnomeKeyring"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/seahorse/src.nix b/pkgs/desktops/gnome-3/3.18/apps/seahorse/src.nix new file mode 100644 index 000000000000..1d790c81e4f9 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/seahorse/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "seahorse-3.16.0"; + + src = fetchurl { + url = mirror://gnome/sources/seahorse/3.16/seahorse-3.16.0.tar.xz; + sha256 = "770a5f03b8745054ef04cef9923dd713b1fbf309169150bc8dd32d7e5f7ee131"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/vinagre/default.nix b/pkgs/desktops/gnome-3/3.18/apps/vinagre/default.nix new file mode 100644 index 000000000000..8b8b6248642c --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/vinagre/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, pkgconfig, gtk3, gnome3, vte, libxml2, gtkvnc, intltool +, libsecret, itstool, makeWrapper, librsvg }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ pkgconfig gtk3 vte libxml2 gtkvnc intltool libsecret + itstool makeWrapper gnome3.defaultIconTheme librsvg ]; + + preFixup = '' + wrapProgram "$out/bin/vinagre" \ + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH:$out/share" + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Vinagre; + description = "Remote desktop viewer for GNOME"; + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/apps/vinagre/src.nix b/pkgs/desktops/gnome-3/3.18/apps/vinagre/src.nix new file mode 100644 index 000000000000..94b6d8a83e14 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/apps/vinagre/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "vinagre-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/vinagre/3.18/vinagre-3.18.0.tar.xz; + sha256 = "77214384c03df985551a5094ea16fd3f42b74c708123128b29baff6458b2fef9"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/adwaita-icon-theme/default.nix b/pkgs/desktops/gnome-3/3.18/core/adwaita-icon-theme/default.nix new file mode 100644 index 000000000000..3c3a05dc3af8 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/adwaita-icon-theme/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, pkgconfig, intltool, gnome3 +, iconnamingutils, gtk, gdk_pixbuf, librsvg, hicolor_icon_theme }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + # For convenience, we can specify adwaita-icon-theme only in packages + propagatedBuildInputs = [ hicolor_icon_theme ]; + + buildInputs = [ gdk_pixbuf librsvg ]; + + nativeBuildInputs = [ pkgconfig intltool iconnamingutils gtk ]; + + # remove a tree of dirs with no files within + postInstall = '' rm -rf "$out/locale" ''; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/adwaita-icon-theme/src.nix b/pkgs/desktops/gnome-3/3.18/core/adwaita-icon-theme/src.nix new file mode 100644 index 000000000000..59fc291eb4ef --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/adwaita-icon-theme/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "adwaita-icon-theme-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/adwaita-icon-theme/3.18/adwaita-icon-theme-3.18.0.tar.xz; + sha256 = "5e9ce726001fdd8ee93c394fdc3cdb9e1603bbed5b7c62df453ccf521ec50e58"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/baobab/default.nix b/pkgs/desktops/gnome-3/3.18/core/baobab/default.nix new file mode 100644 index 000000000000..2ff85662bbbb --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/baobab/default.nix @@ -0,0 +1,32 @@ +{ stdenv, intltool, fetchurl, vala, libgtop +, pkgconfig, gtk3, glib +, bash, makeWrapper, itstool, libxml2 +, gnome3, librsvg, gdk_pixbuf, file }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0"; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + buildInputs = [ vala pkgconfig gtk3 glib libgtop intltool itstool libxml2 + gnome3.gsettings_desktop_schemas makeWrapper file + gdk_pixbuf gnome3.defaultIconTheme librsvg ]; + + preFixup = '' + wrapProgram "$out/bin/baobab" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Baobab; + description = "Graphical application to analyse disk usage in any Gnome environment"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/baobab/src.nix b/pkgs/desktops/gnome-3/3.18/core/baobab/src.nix new file mode 100644 index 000000000000..5032262f278d --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/baobab/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "baobab-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/baobab/3.18/baobab-3.18.0.tar.xz; + sha256 = "75924c53dd0e94d97c2f0ec30270fa3ffc59adfab7e21aac3ed9c6c088760b5a"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/caribou/default.nix b/pkgs/desktops/gnome-3/3.18/core/caribou/default.nix new file mode 100644 index 000000000000..c2cb6a661abe --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/caribou/default.nix @@ -0,0 +1,31 @@ +{ fetchurl, stdenv, pkgconfig, gnome3, clutter, dbus, pythonPackages, libxml2, autoconf +, libxklavier, libXtst, gtk2, intltool, libxslt, at_spi2_core, automake114x }: + +let + majorVersion = "0.4"; +in +stdenv.mkDerivation rec { + name = "caribou-${majorVersion}.18.1"; + + src = fetchurl { + url = "mirror://gnome/sources/caribou/${majorVersion}/${name}.tar.xz"; + sha256 = "0l1ikx56ddgayvny3s2xv8hs3p23xsclw4zljs3cczv4b89dzymf"; + }; + + buildInputs = with gnome3; + [ glib pkgconfig gtk clutter at_spi2_core dbus pythonPackages.python automake114x + pythonPackages.pygobject3 libxml2 libXtst gtk2 intltool libxslt autoconf ]; + + propagatedBuildInputs = [ gnome3.libgee libxklavier ]; + + preBuild = '' + patchShebangs . + substituteInPlace libcaribou/Makefile.am --replace "--shared-library=libcaribou.so.0" "--shared-library=$out/lib/libcaribou.so.0" + ''; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; + +} diff --git a/pkgs/desktops/gnome-3/3.18/core/dconf-editor/default.nix b/pkgs/desktops/gnome-3/3.18/core/dconf-editor/default.nix new file mode 100644 index 000000000000..5b2b055fe668 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/dconf-editor/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, vala, libxslt, pkgconfig, glib, dbus_glib, gnome3 +, libxml2, intltool, docbook_xsl_ns, docbook_xsl, makeWrapper }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ vala libxslt pkgconfig glib dbus_glib gnome3.gtk libxml2 gnome3.defaultIconTheme + intltool docbook_xsl docbook_xsl_ns makeWrapper gnome3.dconf ]; + + preFixup = '' + wrapProgram "$out/bin/dconf-editor" \ + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/dconf-editor/src.nix b/pkgs/desktops/gnome-3/3.18/core/dconf-editor/src.nix new file mode 100644 index 000000000000..eb15838bb48f --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/dconf-editor/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "dconf-editor-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/dconf-editor/3.18/dconf-editor-3.18.0.tar.xz; + sha256 = "6579b8b216b068acae7d8301b5e2d57054c85a3f147c92355ffa46a62c052534"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/dconf/default.nix b/pkgs/desktops/gnome-3/3.18/core/dconf/default.nix new file mode 100644 index 000000000000..990e2007a23f --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/dconf/default.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchurl, vala, libxslt, pkgconfig, glib, dbus_glib, gnome3 +, libxml2, intltool, docbook_xsl_ns, docbook_xsl, makeWrapper }: + +let + majorVersion = "0.24"; +in +stdenv.mkDerivation rec { + name = "dconf-${version}"; + version = "${majorVersion}.0"; + + src = fetchurl { + url = "mirror://gnome/sources/dconf/${majorVersion}/${name}.tar.xz"; + sha256 = "4373e0ced1f4d7d68d518038796c073696280e22957babb29feb0267c630fec2"; + }; + + buildInputs = [ vala libxslt pkgconfig glib dbus_glib gnome3.gtk libxml2 + intltool docbook_xsl docbook_xsl_ns makeWrapper ]; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/empathy/default.nix b/pkgs/desktops/gnome-3/3.18/core/empathy/default.nix new file mode 100644 index 000000000000..4c42c6c026d3 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/empathy/default.nix @@ -0,0 +1,57 @@ +{ stdenv, intltool, fetchurl, webkitgtk, pkgconfig, gtk3, glib +, file, librsvg, gnome3, gdk_pixbuf +, dbus_glib, dbus_libs, telepathy_glib, telepathy_farstream +, clutter_gtk, clutter-gst, gst_all_1, cogl, gnome_online_accounts +, gcr, libsecret, folks, libpulseaudio, telepathy_mission_control +, telepathy_logger, libnotify, clutter, libsoup, gnutls +, evolution_data_server +, libcanberra_gtk3, p11_kit, farstream, libtool, shared_mime_info +, bash, makeWrapper, itstool, libxml2, libxslt, icu, libgee }: + +# TODO: enable more features + +let + majorVersion = "3.12"; +in +stdenv.mkDerivation rec { + name = "empathy-${majorVersion}.8"; + + src = fetchurl { + url = "mirror://gnome/sources/empathy/${majorVersion}/${name}.tar.xz"; + sha256 = "10z6ksia6yx7vg0wsdbk4w6vjgfg3cg3n04jf9bj2vr7kr5zvs7w"; + }; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard + gnome_online_accounts shared_mime_info ]; + propagatedBuildInputs = [ folks telepathy_logger evolution_data_server + telepathy_mission_control ]; + buildInputs = [ pkgconfig gtk3 glib webkitgtk intltool itstool + libxml2 libxslt icu file makeWrapper + telepathy_glib clutter_gtk clutter-gst cogl + gst_all_1.gstreamer gst_all_1.gst-plugins-base + gcr libsecret libpulseaudio gnome3.yelp_xsl gdk_pixbuf + libnotify clutter libsoup gnutls libgee p11_kit + libcanberra_gtk3 telepathy_farstream farstream + gnome3.defaultIconTheme gnome3.gsettings_desktop_schemas + file libtool librsvg ]; + + NIX_CFLAGS_COMPILE = [ "-I${dbus_glib}/include/dbus-1.0" + "-I${dbus_libs}/include/dbus-1.0" + "-I${dbus_libs}/lib/dbus-1.0/include" ]; + + preFixup = '' + for f in $out/bin/* $out/libexec/*; do + wrapProgram $f \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gnome3.gnome_themes_standard}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" + done + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Empathy; + description = "Messaging program which supports text, voice, video chat, and file transfers over many different protocols"; + maintainers = gnome3.maintainers; + # TODO: license = [ licenses.gpl2 licenses.lgpl2 ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/eog/default.nix b/pkgs/desktops/gnome-3/3.18/core/eog/default.nix new file mode 100644 index 000000000000..fff901142dcc --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/eog/default.nix @@ -0,0 +1,25 @@ +{ fetchurl, stdenv, intltool, pkgconfig, itstool, libxml2, libjpeg, gnome3 +, shared_mime_info, makeWrapper, librsvg, libexif }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = with gnome3; + [ intltool pkgconfig itstool libxml2 libjpeg gtk glib libpeas makeWrapper librsvg + gsettings_desktop_schemas shared_mime_info adwaita-icon-theme gnome_desktop libexif ]; + + preFixup = '' + wrapProgram "$out/bin/eog" \ + --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${shared_mime_info}/share:${gnome3.adwaita-icon-theme}/share:${gnome3.gtk}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" + + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/EyeOfGnome; + platforms = platforms.linux; + description = "GNOME image viewer"; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/eog/src.nix b/pkgs/desktops/gnome-3/3.18/core/eog/src.nix new file mode 100644 index 000000000000..154a02d7b439 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/eog/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "eog-3.16.3"; + + src = fetchurl { + url = mirror://gnome/sources/eog/3.16/eog-3.16.3.tar.xz; + sha256 = "ee6d101f8e73aacc8d48256f06a780c6d0d5f3975990f375f58cd0e70816b766"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/epiphany/default.nix b/pkgs/desktops/gnome-3/3.18/core/epiphany/default.nix new file mode 100644 index 000000000000..5a98770b6632 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/epiphany/default.nix @@ -0,0 +1,42 @@ +{ stdenv, intltool, fetchurl, pkgconfig, gtk3, glib, nspr, icu +, bash, makeWrapper, gnome3, libwnck3, libxml2, libxslt, libtool +, webkitgtk, libsoup, libsecret, gnome_desktop, libnotify, p11_kit +, sqlite, gcr, avahi, nss, isocodes, itstool, file, which +, gdk_pixbuf, librsvg, gnome_common }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + # Tests need an X display + configureFlags = [ "--disable-static --disable-tests" ]; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + nativeBuildInputs = [ pkgconfig file ]; + + buildInputs = [ gtk3 glib intltool libwnck3 libxml2 libxslt pkgconfig file + webkitgtk libsoup libsecret gnome_desktop libnotify libtool + sqlite isocodes nss itstool p11_kit nspr icu gnome3.yelp_tools + gdk_pixbuf gnome3.defaultIconTheme librsvg which gnome_common + gcr avahi gnome3.gsettings_desktop_schemas makeWrapper ]; + + NIX_CFLAGS_COMPILE = "-I${nspr}/include/nspr -I${nss}/include/nss -I${glib}/include/gio-unix-2.0"; + + enableParallelBuilding = true; + + preFixup = '' + for f in $out/bin/* $out/libexec/*; do + wrapProgram "$f" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + done + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Epiphany; + description = "WebKit based web browser for GNOME"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/epiphany/libxml_depend.patch b/pkgs/desktops/gnome-3/3.18/core/epiphany/libxml_depend.patch new file mode 100644 index 000000000000..89e3694a02d9 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/epiphany/libxml_depend.patch @@ -0,0 +1,10 @@ +--- configure.ac.orig 2015-04-08 18:53:52.284580835 +0200 ++++ configure.ac 2015-04-08 18:55:55.697225280 +0200 +@@ -113,6 +113,7 @@ + PKG_CHECK_MODULES(WEB_EXTENSION, [ + webkit2gtk-web-extension-4.0 >= $WEBKIT_GTK_REQUIRED + libsecret-1 >= $LIBSECRET_REQUIRED ++ libxml-2.0 >= $LIBXML_REQUIRED + ]) + AC_SUBST(WEB_EXTENSION_CFLAGS) + AC_SUBST(WEB_EXTENSION_LIBS) diff --git a/pkgs/desktops/gnome-3/3.18/core/epiphany/src.nix b/pkgs/desktops/gnome-3/3.18/core/epiphany/src.nix new file mode 100644 index 000000000000..2ecf2c98d19a --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/epiphany/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "epiphany-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/epiphany/3.18/epiphany-3.18.0.tar.xz; + sha256 = "d5ba67a8cd85c80b81e076862bcab3fc376ba51b0a1536ca7430608d1f50491d"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/evince/default.nix b/pkgs/desktops/gnome-3/3.18/core/evince/default.nix new file mode 100644 index 000000000000..154182eef887 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/evince/default.nix @@ -0,0 +1,64 @@ +{ fetchurl, stdenv, pkgconfig, intltool, perl, perlXMLParser, libxml2 +, glib, gtk3, pango, atk, gdk_pixbuf, shared_mime_info, itstool, gnome3 +, poppler, ghostscriptX, djvulibre, libspectre, libsecret , makeWrapper +, librsvg, recentListSize ? null # 5 is not enough, allow passing a different number +, gobjectIntrospection +}: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + pkgconfig intltool perl perlXMLParser libxml2 + glib gtk3 pango atk gdk_pixbuf gobjectIntrospection + itstool gnome3.adwaita-icon-theme + gnome3.libgnome_keyring gnome3.gsettings_desktop_schemas + poppler ghostscriptX djvulibre libspectre + makeWrapper libsecret librsvg gnome3.adwaita-icon-theme + ]; + + configureFlags = [ + "--disable-nautilus" # Do not use nautilus + "--enable-introspection" + ]; + + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0"; + + preConfigure = with stdenv.lib; + optionalString doCheck '' + for file in test/*.py; do + echo "patching $file" + sed '1s,/usr,${python},' -i "$file" + done + '' + optionalString (recentListSize != null) '' + sed -i 's/\(gtk_recent_chooser_set_limit .*\)5)/\1${builtins.toString recentListSize})/' shell/ev-open-recent-action.c + sed -i 's/\(if (++n_items == \)5\(.*\)/\1${builtins.toString recentListSize}\2/' shell/ev-window.c + ''; + + preFixup = '' + # Tell Glib/GIO about the MIME info directory, which is used + # by `g_file_info_get_content_type ()'. + wrapProgram "$out/bin/evince" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3}/share:${shared_mime_info}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" + + ''; + + doCheck = false; # would need pythonPackages.dogTail, which is missing + + meta = with stdenv.lib; { + homepage = http://www.gnome.org/projects/evince/; + description = "GNOME's document viewer"; + + longDescription = '' + Evince is a document viewer for multiple document formats. It + currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal + of Evince is to replace the multiple document viewers that exist + on the GNOME Desktop with a single simple application. + ''; + + license = stdenv.lib.licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = [ maintainers.vcunat ]; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/evince/src.nix b/pkgs/desktops/gnome-3/3.18/core/evince/src.nix new file mode 100644 index 000000000000..392aeefb4e96 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/evince/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "evince-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/evince/3.18/evince-3.18.0.tar.xz; + sha256 = "96e8351f6a6fc5823bb8f51178cde1182bd66481af6fb09bf58a18b673cafa70"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/evolution-data-server/default.nix b/pkgs/desktops/gnome-3/3.18/core/evolution-data-server/default.nix new file mode 100644 index 000000000000..fb3c8bdceab7 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/evolution-data-server/default.nix @@ -0,0 +1,30 @@ +{ fetchurl, stdenv, pkgconfig, gnome3, python +, intltool, libsoup, libxml2, libsecret, icu, sqlite +, p11_kit, db, nspr, nss, libical, gperf, makeWrapper, valaSupport ? true, vala }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = with gnome3; + [ pkgconfig glib python intltool libsoup libxml2 gtk gnome_online_accounts + gcr p11_kit libgweather libgdata gperf makeWrapper icu sqlite gsettings_desktop_schemas ] + ++ stdenv.lib.optional valaSupport vala; + + propagatedBuildInputs = [ libsecret nss nspr libical db ]; + + # uoa irrelevant for now + configureFlags = [ "--disable-uoa" ] + ++ stdenv.lib.optional valaSupport "--enable-vala-bindings"; + + preFixup = '' + for f in "$out/libexec/"*; do + wrapProgram "$f" --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" + done + ''; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; + +} diff --git a/pkgs/desktops/gnome-3/3.18/core/evolution-data-server/src.nix b/pkgs/desktops/gnome-3/3.18/core/evolution-data-server/src.nix new file mode 100644 index 000000000000..876b2236ef5b --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/evolution-data-server/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "evolution-data-server-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/evolution-data-server/3.18/evolution-data-server-3.18.0.tar.xz; + sha256 = "ca4273b888912cadc474c1c2aebd2f02639381a9ddfa516a46cf9abd3dbc11f7"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/folks/default.nix b/pkgs/desktops/gnome-3/3.18/core/folks/default.nix new file mode 100644 index 000000000000..6e200bdb3188 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/folks/default.nix @@ -0,0 +1,43 @@ +{ fetchurl, stdenv, pkgconfig, glib, gnome3, nspr, intltool +, vala, sqlite, libxml2, dbus_glib, libsoup, nss, dbus_libs +, telepathy_glib, evolution_data_server, libsecret, db }: + +# TODO: enable more folks backends + +let + majorVersion = "0.11"; +in +stdenv.mkDerivation rec { + name = "folks-${majorVersion}.0"; + + src = fetchurl { + url = "mirror://gnome/sources/folks/${majorVersion}/${name}.tar.xz"; + sha256 = "0q9hny6a38zn0gamv0ji0pn3jw6bpn2i0fr6vbzkhm9h9ws0cqvz"; + }; + + propagatedBuildInputs = [ glib gnome3.libgee sqlite ]; + # dbus_daemon needed for tests + buildInputs = [ dbus_glib telepathy_glib evolution_data_server dbus_libs + vala libsecret libxml2 libsoup nspr nss intltool db ]; + nativeBuildInputs = [ pkgconfig ]; + + configureFlags = "--disable-fatal-warnings"; + + NIX_CFLAGS_COMPILE = ["-I${nspr}/include/nspr" "-I${nss}/include/nss" + "-I${dbus_glib}/include/dbus-1.0" "-I${dbus_libs}/include/dbus-1.0"]; + + enableParallelBuilding = true; + + postBuild = "rm -rf $out/share/gtk-doc"; + + meta = { + description = "Folks"; + + homepage = https://wiki.gnome.org/Projects/Folks; + + license = stdenv.lib.licenses.lgpl2Plus; + + maintainers = gnome3.maintainers; + platforms = stdenv.lib.platforms.gnu; # arbitrary choice + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gconf/default.nix b/pkgs/desktops/gnome-3/3.18/core/gconf/default.nix new file mode 100644 index 000000000000..a4cb3e8c1464 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gconf/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchurl, pkgconfig, dbus_glib, gnome3 ? null, glib, libxml2 +, intltool, polkit, orbit, withGtk ? false }: + +assert withGtk -> (gnome3 != null); + +stdenv.mkDerivation rec { + + versionMajor = "3.2"; + versionMinor = "6"; + moduleName = "GConf"; + + origName = "${moduleName}-${versionMajor}.${versionMinor}"; + + name = "gconf-${versionMajor}.${versionMinor}"; + + src = fetchurl { + url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${origName}.tar.xz"; + sha256 = "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr"; + }; + + buildInputs = [ libxml2 polkit orbit ] ++ stdenv.lib.optional withGtk gnome3.gtk; + propagatedBuildInputs = [ glib dbus_glib ]; + nativeBuildInputs = [ pkgconfig intltool ]; + + # ToDo: ldap reported as not found but afterwards reported as supported + + meta = with stdenv.lib; { + homepage = http://projects.gnome.org/gconf/; + description = "A system for storing application preferences"; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gcr/default.nix b/pkgs/desktops/gnome-3/3.18/core/gcr/default.nix new file mode 100644 index 000000000000..e0e8d1e73382 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gcr/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchurl, pkgconfig, intltool, gnupg, p11_kit, glib +, libgcrypt, libtasn1, dbus_glib, gtk, pango, gdk_pixbuf, atk +, gobjectIntrospection, makeWrapper, libxslt, vala, gnome3 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + pkgconfig intltool gnupg glib gobjectIntrospection libxslt + libgcrypt libtasn1 dbus_glib gtk pango gdk_pixbuf atk makeWrapper vala + ]; + + propagatedBuildInputs = [ p11_kit ]; + + #doCheck = true; + + #enableParallelBuilding = true; issues on hydra + + preFixup = '' + wrapProgram "$out/bin/gcr-viewer" \ + --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gcr/src.nix b/pkgs/desktops/gnome-3/3.18/core/gcr/src.nix new file mode 100644 index 000000000000..e2b4ad195ffe --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gcr/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gcr-3.16.0"; + + src = fetchurl { + url = mirror://gnome/sources/gcr/3.16/gcr-3.16.0.tar.xz; + sha256 = "ecfe8df41cc88158364bb15addc670b11e539fe844742983629ba2323888d075"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/default.nix b/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/default.nix new file mode 100644 index 000000000000..51b67afb01fd --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/default.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchurl, pkgconfig, glib, itstool, libxml2, xorg, dbus +, intltool, accountsservice, libX11, gnome3, systemd, gnome_session +, gtk, libcanberra_gtk3, pam, libtool, gobjectIntrospection }: + +stdenv.mkDerivation rec { + name = "gdm-${gnome3.version}.2"; + + src = fetchurl { + url = "mirror://gnome/sources/gdm/${gnome3.version}/${name}.tar.xz"; + sha256 = "0mhv3q8z208qvhz00zrxlqn7w9gi5vy6w8dpjh5s2ka28l3yhbn3"; + }; + + preConfigure = '' + substituteInPlace ./configure --replace "/usr/bin/X" "${xorg.xorgserver}/bin/X" + substituteInPlace daemon/gdm-simple-slave.c --replace 'BINDIR "/gnome-session' '"${gnome_session}/bin/gnome-session' + substituteInPlace daemon/gdm-launch-environment.c --replace 'BINDIR "/dbus-launch' '"${dbus.tools}/bin/dbus-launch' + substituteInPlace data/gdm.conf-custom.in --replace '#WaylandEnable=false' 'WaylandEnable=false' + sed 's/#Enable=true/Enable=true/' -i data/gdm.conf-custom.in + ''; + + configureFlags = [ "--localstatedir=/var" "--with-systemd=yes" "--without-plymouth" + "--with-systemdsystemunitdir=$(out)/etc/systemd/system" + "--with-initial-vt=10" ]; + + buildInputs = [ pkgconfig glib itstool libxml2 intltool + accountsservice gnome3.dconf systemd + gobjectIntrospection libX11 gtk + libcanberra_gtk3 pam libtool ]; + + #enableParallelBuilding = true; # problems compiling + + # Disable Access Control because our X does not support FamilyServerInterpreted yet + patches = [ ./xserver_path.patch ./sessions_dir.patch ./disable_x_access_control.patch ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Projects/GDM; + description = "A program that manages graphical display servers and handles graphical user logins"; + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/disable_x_access_control.patch b/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/disable_x_access_control.patch new file mode 100644 index 000000000000..7691a9e86f0f --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/disable_x_access_control.patch @@ -0,0 +1,15 @@ +--- gdm-3.16.0/daemon/gdm-display.c.orig 2015-04-08 13:53:14.370274369 +0200 ++++ gdm-3.16.0/daemon/gdm-display.c 2015-04-08 13:53:36.287520435 +0200 +@@ -1706,9 +1706,10 @@ + + gdm_error_trap_push (); + +- for (i = 0; i < G_N_ELEMENTS (host_entries); i++) { ++ /*for (i = 0; i < G_N_ELEMENTS (host_entries); i++) { + XAddHost (self->priv->x11_display, &host_entries[i]); +- } ++ }*/ ++ XDisableAccessControl(self->priv->x11_display); + + XSync (self->priv->x11_display, False); + if (gdm_error_trap_pop ()) { diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/sessions_dir.patch b/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/sessions_dir.patch new file mode 100644 index 000000000000..b8fbad4d731d --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/sessions_dir.patch @@ -0,0 +1,17 @@ +diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c +index f759d2d..d154716 100644 +--- a/daemon/gdm-session.c ++++ b/daemon/gdm-session.c +@@ -373,9 +373,12 @@ get_system_session_dirs (void) + #ifdef ENABLE_WAYLAND_SUPPORT + DATADIR "/wayland-sessions/", + #endif ++ NULL, + NULL + }; + ++ search_dirs[4] = getenv("GDM_SESSIONS_DIR") != NULL ? getenv("GDM_SESSIONS_DIR") : NULL; ++ + return search_dirs; + } + diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/xserver_path.patch b/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/xserver_path.patch new file mode 100644 index 000000000000..b451d129391a --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gdm/3.16-wip/xserver_path.patch @@ -0,0 +1,83 @@ +--- a/daemon/gdm-server.c 2014-07-30 23:00:17.786841724 +0200 ++++ b/daemon/gdm-server.c 2014-07-30 23:02:10.491239180 +0200 +@@ -322,7 +322,11 @@ + fallback: + #endif + +- server->priv->command = g_strdup_printf (X_SERVER X_SERVER_ARG_FORMAT, verbosity, debug_options); ++ if (g_getenv("GDM_X_SERVER") != NULL) { ++ server->priv->command = g_strdup (g_getenv("GDM_X_SERVER")); ++ } else { ++ server->priv->command = g_strdup_printf (X_SERVER X_SERVER_ARG_FORMAT, verbosity, debug_options); ++ } + } + + static gboolean +--- gdm-3.16.0/daemon/gdm-x-session.c.orig 2015-04-15 18:44:16.875743928 +0200 ++++ gdm-3.16.0/daemon/gdm-x-session.c 2015-04-16 13:34:02.335708638 +0200 +@@ -207,6 +207,8 @@ + char *display_fd_string = NULL; + char *vt_string = NULL; + char *display_number; ++ int nixos_argc = 0; ++ char **nixos_argv = NULL; + gsize display_number_size; + + auth_file = prepare_auth_file (); +@@ -236,7 +238,15 @@ + + display_fd_string = g_strdup_printf ("%d", DISPLAY_FILENO); + +- g_ptr_array_add (arguments, X_SERVER); ++ if (g_getenv("GDM_X_SERVER") != NULL) { ++ int i = 0; ++ g_shell_parse_argv(g_getenv("GDM_X_SERVER"), &nixos_argc, &nixos_argv, NULL); ++ for (i = 0; i < nixos_argc; i++) { ++ g_ptr_array_add (arguments, nixos_argv[i]); ++ } ++ } else { ++ g_ptr_array_add (arguments, X_SERVER); ++ } + + if (vt_string != NULL) { + g_ptr_array_add (arguments, vt_string); +@@ -259,12 +269,12 @@ + g_ptr_array_add (arguments, "-noreset"); + g_ptr_array_add (arguments, "-keeptty"); + +- g_ptr_array_add (arguments, "-verbose"); ++ /*g_ptr_array_add (arguments, "-verbose"); + if (state->debug_enabled) { + g_ptr_array_add (arguments, "7"); + } else { + g_ptr_array_add (arguments, "3"); +- } ++ }*/ + + if (state->debug_enabled) { + g_ptr_array_add (arguments, "-core"); +@@ -275,6 +285,9 @@ + (const char * const *) arguments->pdata, + &error); + g_free (display_fd_string); ++ if (nixos_argv) { ++ g_strfreev (nixos_argv); ++ } + g_clear_object (&launcher); + g_ptr_array_free (arguments, TRUE); + +--- gdm-3.16.0/daemon/gdm-session.c.orig 2015-04-16 14:19:01.392802683 +0200 ++++ gdm-3.16.0/daemon/gdm-session.c 2015-04-16 14:20:36.012296764 +0200 +@@ -2359,6 +2359,12 @@ + gchar *desktop_names; + const char *locale; + ++ if (g_getenv ("GDM_X_SERVER") != NULL) { ++ gdm_session_set_environment_variable (self, ++ "GDM_X_SERVER", ++ g_getenv ("GDM_X_SERVER")); ++ } ++ + gdm_session_set_environment_variable (self, + "GDMSESSION", + get_session_name (self)); diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/default.nix b/pkgs/desktops/gnome-3/3.18/core/gdm/default.nix new file mode 100644 index 000000000000..1db969651317 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gdm/default.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchurl, pkgconfig, glib, itstool, libxml2, xorg, dbus +, intltool, accountsservice, libX11, gnome3, systemd, gnome_session +, gtk, libcanberra_gtk3, pam, libtool, gobjectIntrospection }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + # Only needed to make it build + preConfigure = '' + substituteInPlace ./configure --replace "/usr/bin/X" "${xorg.xorgserver}/bin/X" + ''; + + configureFlags = [ "--sysconfdir=/etc" + "--localstatedir=/var" + "--with-systemd=yes" + "--with-systemdsystemunitdir=$(out)/etc/systemd/system" ]; + + buildInputs = [ pkgconfig glib itstool libxml2 intltool + accountsservice gnome3.dconf systemd + gobjectIntrospection libX11 gtk + libcanberra_gtk3 pam libtool ]; + + #enableParallelBuilding = true; # problems compiling + + preBuild = '' + substituteInPlace daemon/gdm-simple-slave.c --replace 'BINDIR "/gnome-session' '"${gnome_session}/bin/gnome-session' + ''; + + # Disable Access Control because our X does not support FamilyServerInterpreted yet + patches = [ ./xserver_path.patch ./sessions_dir.patch + ./disable_x_access_control.patch ./no-dbus-launch.patch ]; + + installFlags = [ "sysconfdir=$(out)/etc" "dbusconfdir=$(out)/etc/dbus-1/system.d" ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Projects/GDM; + description = "A program that manages graphical display servers and handles graphical user logins"; + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/disable_x_access_control.patch b/pkgs/desktops/gnome-3/3.18/core/gdm/disable_x_access_control.patch new file mode 100644 index 000000000000..e100e013b786 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gdm/disable_x_access_control.patch @@ -0,0 +1,13 @@ +--- gdm-3.14.2/daemon/gdm-slave.c.orig 2015-04-16 15:05:27.844353079 +0200 ++++ gdm-3.14.2/daemon/gdm-slave.c 2015-04-16 15:05:40.240417915 +0200 +@@ -369,8 +369,9 @@ + gdm_error_trap_push (); + + for (i = 0; i < G_N_ELEMENTS (host_entries); i++) { +- XAddHost (slave->priv->server_display, &host_entries[i]); ++ //XAddHost (slave->priv->server_display, &host_entries[i]); + } ++ XDisableAccessControl(slave->priv->server_display); + + XSync (slave->priv->server_display, False); + if (gdm_error_trap_pop ()) { diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/no-dbus-launch.patch b/pkgs/desktops/gnome-3/3.18/core/gdm/no-dbus-launch.patch new file mode 100644 index 000000000000..c87554078c7c --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gdm/no-dbus-launch.patch @@ -0,0 +1,20 @@ +--- a/daemon/gdm-launch-environment.c 2015-06-22 15:11:07.277474398 +0000 ++++ b/daemon/gdm-launch-environment.c 2015-06-22 15:12:31.301157665 +0000 +@@ -48,8 +48,6 @@ + #include "gdm-session-enum-types.h" + #include "gdm-launch-environment.h" + +-#define DBUS_LAUNCH_COMMAND BINDIR "/dbus-launch --exit-with-session" +- + extern char **environ; + + #define GDM_LAUNCH_ENVIRONMENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_LAUNCH_ENVIRONMENT, GdmLaunchEnvironmentPrivate)) +@@ -512,7 +510,7 @@ + gdm_session_select_program (launch_environment->priv->session, launch_environment->priv->command); + } else { + /* wrap it in dbus-launch */ +- char *command = g_strdup_printf ("%s %s", DBUS_LAUNCH_COMMAND, launch_environment->priv->command); ++ char *command = g_strdup (launch_environment->priv->command); + + gdm_session_select_program (launch_environment->priv->session, command); + g_free (command); diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/sessions_dir.patch b/pkgs/desktops/gnome-3/3.18/core/gdm/sessions_dir.patch new file mode 100644 index 000000000000..b8fbad4d731d --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gdm/sessions_dir.patch @@ -0,0 +1,17 @@ +diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c +index f759d2d..d154716 100644 +--- a/daemon/gdm-session.c ++++ b/daemon/gdm-session.c +@@ -373,9 +373,12 @@ get_system_session_dirs (void) + #ifdef ENABLE_WAYLAND_SUPPORT + DATADIR "/wayland-sessions/", + #endif ++ NULL, + NULL + }; + ++ search_dirs[4] = getenv("GDM_SESSIONS_DIR") != NULL ? getenv("GDM_SESSIONS_DIR") : NULL; ++ + return search_dirs; + } + diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/src.nix b/pkgs/desktops/gnome-3/3.18/core/gdm/src.nix new file mode 100644 index 000000000000..acd46534e14f --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gdm/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gdm-3.14.2"; + + src = fetchurl { + url = mirror://gnome/sources/gdm/3.14/gdm-3.14.2.tar.xz; + sha256 = "e20eb61496161ad95b1058dbf8aea9b7b004df4d0ea6b0fab4401397d9db5930"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gdm/xserver_path.patch b/pkgs/desktops/gnome-3/3.18/core/gdm/xserver_path.patch new file mode 100644 index 000000000000..412daee9f270 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gdm/xserver_path.patch @@ -0,0 +1,15 @@ +--- a/daemon/gdm-server.c 2014-07-30 23:00:17.786841724 +0200 ++++ b/daemon/gdm-server.c 2014-07-30 23:02:10.491239180 +0200 +@@ -322,7 +322,11 @@ + fallback: + #endif + +- server->priv->command = g_strdup_printf (X_SERVER X_SERVER_ARG_FORMAT, verbosity, debug_options); ++ if (g_getenv("GDM_X_SERVER") != NULL) { ++ server->priv->command = g_strdup (g_getenv("GDM_X_SERVER")); ++ } else { ++ server->priv->command = g_strdup_printf (X_SERVER X_SERVER_ARG_FORMAT, verbosity, debug_options); ++ } + } + + static gboolean diff --git a/pkgs/desktops/gnome-3/3.18/core/geocode-glib/default.nix b/pkgs/desktops/gnome-3/3.18/core/geocode-glib/default.nix new file mode 100644 index 000000000000..4d75bdc49963 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/geocode-glib/default.nix @@ -0,0 +1,14 @@ +{ fetchurl, stdenv, pkgconfig, gnome3, intltool, libsoup, json_glib }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = with gnome3; + [ intltool pkgconfig glib libsoup json_glib ]; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; + +} diff --git a/pkgs/desktops/gnome-3/3.18/core/geocode-glib/src.nix b/pkgs/desktops/gnome-3/3.18/core/geocode-glib/src.nix new file mode 100644 index 000000000000..faaadf5bb91f --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/geocode-glib/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "geocode-glib-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/geocode-glib/3.18/geocode-glib-3.18.0.tar.xz; + sha256 = "8fb7f0d569e3e6696aaa1fdf275cb3094527ec5e9fa36fd88dd633dfec63495d"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gjs/default.nix b/pkgs/desktops/gnome-3/3.18/core/gjs/default.nix new file mode 100644 index 000000000000..792e34c7b148 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gjs/default.nix @@ -0,0 +1,28 @@ +{ fetchurl, stdenv, pkgconfig, gnome3, gtk3, gobjectIntrospection +, spidermonkey_24, pango, readline, glib, libxml2 }: + +let + majorVersion = "1.43"; +in +stdenv.mkDerivation rec { + name = "gjs-${majorVersion}.3"; + + src = fetchurl { + url = "mirror://gnome/sources/gjs/${majorVersion}/${name}.tar.xz"; + sha256 = "0khwm8l6m6x71rwf3q92d6scbhmrpiw7kqmj34nn588fb7a4vdc2"; + }; + + buildInputs = [ libxml2 gobjectIntrospection pkgconfig gtk3 glib pango readline ]; + + propagatedBuildInputs = [ spidermonkey_24 ]; + + postInstall = '' + sed 's|-lreadline|-L${readline}/lib -lreadline|g' -i $out/lib/libgjs.la + ''; + + meta = with stdenv.lib; { + maintainers = gnome3.maintainers; + platforms = platforms.linux; + }; + +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-backgrounds/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-backgrounds/default.nix new file mode 100644 index 000000000000..32d6d6e7535a --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-backgrounds/default.nix @@ -0,0 +1,12 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, intltool }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + nativeBuildInputs = [ pkgconfig intltool ]; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-backgrounds/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-backgrounds/src.nix new file mode 100644 index 000000000000..b191826a2d01 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-backgrounds/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-backgrounds-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-backgrounds/3.18/gnome-backgrounds-3.18.0.tar.xz; + sha256 = "aa560f0e5f12a308dd36aaac2fff32916abd61d42f47b4bc42c8c7011bf2a7b9"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-bluetooth/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-bluetooth/default.nix new file mode 100644 index 000000000000..7fae0b5c67f4 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-bluetooth/default.nix @@ -0,0 +1,23 @@ +{ stdenv, fetchurl, gnome3, pkgconfig, gtk3, intltool, glib +, udev, itstool, libxml2, makeWrapper, libnotify, libcanberra_gtk3 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ pkgconfig intltool glib gtk3 udev libxml2 gnome3.defaultIconTheme + makeWrapper gnome3.gsettings_desktop_schemas itstool + libnotify libcanberra_gtk3 ]; + + preFixup = '' + wrapProgram "$out/bin/bluetooth-sendto" \ + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = https://help.gnome.org/users/gnome-bluetooth/stable/index.html.en; + description = "Application that let you manage Bluetooth in the GNOME destkop"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-bluetooth/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-bluetooth/src.nix new file mode 100644 index 000000000000..eb5f61499765 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-bluetooth/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-bluetooth-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-bluetooth/3.18/gnome-bluetooth-3.18.0.tar.xz; + sha256 = "f5c0d43226c4ec6a545dddb86181adadbc2b5cf720b640026003b9660fba0b8f"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-calculator/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-calculator/default.nix new file mode 100644 index 000000000000..7ca66863d867 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-calculator/default.nix @@ -0,0 +1,30 @@ +{ stdenv, intltool, fetchurl, pkgconfig, libxml2 +, bash, gtk3, glib, makeWrapper +, itstool, gnome3, librsvg, gdk_pixbuf, mpfr, gmp }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0"; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + buildInputs = [ bash pkgconfig gtk3 glib intltool itstool + libxml2 gnome3.gtksourceview mpfr gmp + gdk_pixbuf gnome3.defaultIconTheme librsvg + gnome3.gsettings_desktop_schemas makeWrapper ]; + + preFixup = '' + wrapProgram "$out/bin/gnome-calculator" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/action/show/Apps/Calculator; + description = "Application that solves mathematical equations and is suitable as a default application in a Desktop environment"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-calculator/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-calculator/src.nix new file mode 100644 index 000000000000..42fc4667087d --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-calculator/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-calculator-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-calculator/3.18/gnome-calculator-3.18.0.tar.xz; + sha256 = "54dc40de68b118c06b443f9d8a56397425434a45dddbb2daba7b720b77b35672"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-common/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-common/default.nix new file mode 100644 index 000000000000..f9261e183ef1 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-common/default.nix @@ -0,0 +1,17 @@ +{ stdenv, fetchurl, which, gnome3, autoconf, automake }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + patches = [(fetchurl { + name = "gnome-common-patch"; + url = "https://bug697543.bugzilla-attachments.gnome.org/attachment.cgi?id=240935"; + sha256 = "17abp7czfzirjm7qsn2czd03hdv9kbyhk3lkjxg2xsf5fky7z7jl"; + })]; + + propagatedBuildInputs = [ which autoconf automake ]; # autogen.sh which is using gnome_common tends to require which + + meta = with stdenv.lib; { + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-common/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-common/src.nix new file mode 100644 index 000000000000..8ffe7e20e1a9 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-common/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-common-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-common/3.18/gnome-common-3.18.0.tar.xz; + sha256 = "22569e370ae755e04527b76328befc4c73b62bfd4a572499fde116b8318af8cf"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-contacts/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-contacts/default.nix new file mode 100644 index 000000000000..6ec3c7871bb9 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-contacts/default.nix @@ -0,0 +1,47 @@ +{ stdenv, intltool, fetchurl, evolution_data_server, db +, pkgconfig, gtk3, glib, libsecret +, libchamplain, clutter_gtk, geocode_glib +, bash, makeWrapper, itstool, folks, libnotify, libxml2 +, gnome3, librsvg, gdk_pixbuf, file, telepathy_glib, nspr, nss +, libsoup, vala, dbus_glib, automake115x, autoconf }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard evolution_data_server ]; + + # force build from vala + preBuild = '' + touch src/*.vala + ''; + + buildInputs = [ pkgconfig gtk3 glib intltool itstool evolution_data_server + gnome3.gsettings_desktop_schemas makeWrapper file libnotify + folks gnome3.gnome_desktop telepathy_glib libsecret dbus_glib + libxml2 libsoup gnome3.gnome_online_accounts nspr nss + gdk_pixbuf gnome3.defaultIconTheme librsvg + libchamplain clutter_gtk geocode_glib + vala automake115x autoconf db ]; + + preFixup = '' + for f in "$out/bin/gnome-contacts" "$out/libexec/gnome-contacts-search-provider"; do + wrapProgram $f \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + done + ''; + + patches = [ ./gio_unix.patch ]; + + patchFlags = "-p0"; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Contacts; + description = "Contacts is GNOME's integrated address book"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-contacts/gio_unix.patch b/pkgs/desktops/gnome-3/3.18/core/gnome-contacts/gio_unix.patch new file mode 100644 index 000000000000..f1b3d3c94ac2 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-contacts/gio_unix.patch @@ -0,0 +1,10 @@ +--- configure.ac.orig 2015-04-09 18:45:50.581232289 +0200 ++++ configure.ac 2015-04-09 18:45:59.744280137 +0200 +@@ -54,6 +54,7 @@ + champlain-0.12 + clutter-gtk-1.0 + geocode-glib-1.0 >= 3.15.3 ++ gio-unix-2.0 + " + PKG_CHECK_MODULES(CONTACTS, [$pkg_modules]) + diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-contacts/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-contacts/src.nix new file mode 100644 index 000000000000..94fcfb85fdfe --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-contacts/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-contacts-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-contacts/3.18/gnome-contacts-3.18.0.tar.xz; + sha256 = "c81ad739a1f554e4c89979564565e32ceaf1d2cc6c93a6a75d929d7d1fe8e287"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-control-center/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-control-center/default.nix new file mode 100644 index 000000000000..e7ed0c6bade8 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-control-center/default.nix @@ -0,0 +1,59 @@ +{ fetchurl, stdenv, pkgconfig, gnome3, ibus, intltool, upower, makeWrapper +, libcanberra, libcanberra_gtk3, accountsservice, libpwquality, libpulseaudio +, gdk_pixbuf, librsvg, libxkbfile, libnotify +, libxml2, polkit, libxslt, libgtop, libsoup, colord, colord-gtk +, cracklib, python, libkrb5, networkmanagerapplet, networkmanager +, libwacom, samba, shared_mime_info, tzdata, icu, libtool, udev +, docbook_xsl, docbook_xsl_ns, modemmanager, clutter, clutter_gtk +, fontconfig, sound-theme-freedesktop }: + +# http://ftp.gnome.org/pub/GNOME/teams/releng/3.10.2/gnome-suites-core-3.10.2.modules +# TODO: bluetooth, wacom, printers + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + propagatedUserEnvPkgs = + [ gnome3.gnome_themes_standard gnome3.libgnomekbd ]; + + # https://bugzilla.gnome.org/show_bug.cgi?id=752596 + enableParallelBuilding = false; + + buildInputs = with gnome3; + [ pkgconfig intltool ibus gtk glib upower libcanberra gsettings_desktop_schemas + libxml2 gnome_desktop gnome_settings_daemon polkit libxslt libgtop gnome-menus + gnome_online_accounts libsoup colord libpulseaudio fontconfig colord-gtk libpwquality + accountsservice libkrb5 networkmanagerapplet libwacom samba libnotify libxkbfile + shared_mime_info icu libtool docbook_xsl docbook_xsl_ns gnome3.grilo + gdk_pixbuf gnome3.defaultIconTheme librsvg clutter clutter_gtk + gnome3.vino udev libcanberra_gtk3 + networkmanager modemmanager makeWrapper gnome3.gnome-bluetooth ]; + + preBuild = '' + substituteInPlace tz.h --replace "/usr/share/zoneinfo/zone.tab" "${tzdata}/share/zoneinfo/zone.tab" + substituteInPlace panels/datetime/tz.h --replace "/usr/share/zoneinfo/zone.tab" "${tzdata}/share/zoneinfo/zone.tab" + + # hack to make test-endianess happy + mkdir -p $out/share/locale + substituteInPlace panels/datetime/test-endianess.c --replace "/usr/share/locale/" "$out/share/locale/" + ''; + + patches = [ ./vpn_plugins_path.patch ]; + + preFixup = with gnome3; '' + wrapProgram $out/bin/gnome-control-center \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:${sound-theme-freedesktop}/share:$out/share:$out/share/gnome-control-center:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + for i in $out/share/applications/*; do + substituteInPlace $i --replace "gnome-control-center" "$out/bin/gnome-control-center" + done + ''; + + meta = with stdenv.lib; { + description = "Utilities to configure the GNOME desktop"; + license = licenses.gpl2Plus; + maintainers = gnome3.maintainers; + platforms = platforms.linux; + }; + +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-control-center/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-control-center/src.nix new file mode 100644 index 000000000000..f87859fe51ff --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-control-center/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-control-center-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-control-center/3.18/gnome-control-center-3.18.0.tar.xz; + sha256 = "42648eda11fc1df0f717d7d3b385cb7c519fdd084ed4e3fad2e55fd11712fb52"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-control-center/vpn_plugins_path.patch b/pkgs/desktops/gnome-3/3.18/core/gnome-control-center/vpn_plugins_path.patch new file mode 100644 index 000000000000..e25105a303f4 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-control-center/vpn_plugins_path.patch @@ -0,0 +1,19 @@ +diff --git a/panels/network/connection-editor/vpn-helpers.c b/panels/network/connection-editor/vpn-helpers.c +index 7dc23c2..fcb1384 100644 +--- a/panels/network/connection-editor/vpn-helpers.c ++++ b/panels/network/connection-editor/vpn-helpers.c +@@ -95,14 +95,6 @@ vpn_get_plugins (GError **error) + if (!so_path) + goto next; + +- /* Remove any path and extension components, then reconstruct path +- * to the SO in LIBDIR +- */ +- so_name = g_path_get_basename (so_path); +- g_free (so_path); +- so_path = g_build_filename (NM_VPN_MODULE_DIR, so_name, NULL); +- g_free (so_name); +- + module = g_module_open (so_path, G_MODULE_BIND_LAZY | G_MODULE_BIND_LOCAL); + if (!module) { + g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, "Cannot load the VPN plugin which provides the " diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-desktop/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-desktop/default.nix new file mode 100644 index 000000000000..bf0ccd0224ee --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-desktop/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchurl, pkgconfig, python, libxml2Python, libxslt, which, libX11, gnome3, gtk3, glib +, intltool, gnome_doc_utils, libxkbfile, xkeyboard_config, isocodes, itstool, wayland +, gobjectIntrospection }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + # this should probably be setuphook for glib + NIX_CFLAGS_COMPILE = "-I${glib}/include/gio-unix-2.0"; + + enableParallelBuilding = true; + + buildInputs = [ pkgconfig python libxml2Python libxslt which libX11 + xkeyboard_config isocodes itstool wayland + gtk3 glib intltool gnome_doc_utils libxkbfile + gobjectIntrospection ]; + + propagatedBuildInputs = [ gnome3.gsettings_desktop_schemas ]; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-desktop/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-desktop/src.nix new file mode 100644 index 000000000000..84fbb8ebdff4 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-desktop/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-desktop-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-desktop/3.18/gnome-desktop-3.18.0.tar.xz; + sha256 = "44c806b16ea7d38bdc0e6343f2cb6be97afd7f64490f30c0cb5c3373e89a9d44"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-dictionary/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-dictionary/default.nix new file mode 100644 index 000000000000..1d1f9d18c566 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-dictionary/default.nix @@ -0,0 +1,32 @@ +{ stdenv, intltool, fetchurl +, pkgconfig, gtk3, glib +, bash, makeWrapper, itstool, libxml2 +, gnome3, librsvg, gdk_pixbuf, file }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0"; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + propagatedBuildInputs = [ gdk_pixbuf gnome3.defaultIconTheme librsvg ]; + + buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2 file + gnome3.gsettings_desktop_schemas makeWrapper ]; + + preFixup = '' + wrapProgram "$out/bin/gnome-dictionary" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Dictionary; + description = "Dictionary is the GNOME application to look up definitions"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-dictionary/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-dictionary/src.nix new file mode 100644 index 000000000000..9e3660f207b3 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-dictionary/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-dictionary-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-dictionary/3.18/gnome-dictionary-3.18.0.tar.xz; + sha256 = "5338962124f6d784920ed4968d98734a7589513b36e4f4a6ff00d1ed5afb4ead"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-disk-utility/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-disk-utility/default.nix new file mode 100644 index 000000000000..3f9f653bdba1 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-disk-utility/default.nix @@ -0,0 +1,35 @@ +{ stdenv, intltool, fetchurl, pkgconfig, udisks2, libsecret, libdvdread +, bash, gtk3, glib, makeWrapper, cracklib, libnotify +, itstool, gnome3, librsvg, gdk_pixbuf, libxml2, python +, libcanberra_gtk3, libxslt, libtool, docbook_xsl, libpwquality }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0"; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + buildInputs = [ bash pkgconfig gtk3 glib intltool itstool + libxslt libtool libsecret libpwquality cracklib + libnotify libdvdread libcanberra_gtk3 docbook_xsl + gdk_pixbuf gnome3.defaultIconTheme + librsvg udisks2 gnome3.gnome_settings_daemon + gnome3.gsettings_desktop_schemas makeWrapper libxml2 ]; + + preFixup = '' + wrapProgram "$out/bin/gnome-disks" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = http://en.wikipedia.org/wiki/GNOME_Disks; + description = "A udisks graphical front-end"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-disk-utility/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-disk-utility/src.nix new file mode 100644 index 000000000000..29589586625e --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-disk-utility/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-disk-utility-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-disk-utility/3.18/gnome-disk-utility-3.18.0.tar.xz; + sha256 = "e7363107e40fb1e7fb9f65e37194c0e8da3928f9ec35a4b27a5c439c64e51686"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-font-viewer/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-font-viewer/default.nix new file mode 100644 index 000000000000..54767dbc4c59 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-font-viewer/default.nix @@ -0,0 +1,31 @@ +{ stdenv, intltool, fetchurl +, pkgconfig, gtk3, glib +, bash, makeWrapper, itstool +, gnome3, librsvg, gdk_pixbuf }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0"; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + buildInputs = [ pkgconfig gtk3 glib intltool itstool gnome3.gnome_desktop + gdk_pixbuf gnome3.defaultIconTheme librsvg + gnome3.gsettings_desktop_schemas makeWrapper ]; + + preFixup = '' + wrapProgram "$out/bin/gnome-font-viewer" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + description = "Program that can preview fonts and create thumbnails for fonts"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-font-viewer/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-font-viewer/src.nix new file mode 100644 index 000000000000..256890e8079c --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-font-viewer/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-font-viewer-3.16.2"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-font-viewer/3.16/gnome-font-viewer-3.16.2.tar.xz; + sha256 = "f5367417d926d1dbe175aceb8eb4d2733d723a237428f130edd4b4023c0dc1cf"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-keyring/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-keyring/default.nix new file mode 100644 index 000000000000..8e755383dd62 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-keyring/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchurl, pkgconfig, dbus, libgcrypt, libtasn1, pam, python, glib, libxslt +, intltool, pango, gcr, gdk_pixbuf, atk, p11_kit, makeWrapper +, docbook_xsl_ns, docbook_xsl, gnome3 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = with gnome3; [ + dbus libgcrypt pam python gtk3 gconf libgnome_keyring + pango gcr gdk_pixbuf atk p11_kit makeWrapper + ]; + + propagatedBuildInputs = [ glib libtasn1 libxslt ]; + + nativeBuildInputs = [ pkgconfig intltool docbook_xsl_ns docbook_xsl ]; + + configureFlags = [ + "--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt" # NixOS hardcoded path + "--with-pkcs11-config=$$out/etc/pkcs11/" # installation directories + "--with-pkcs11-modules=$$out/lib/pkcs11/" + ]; + + preFixup = '' + wrapProgram "$out/bin/gnome-keyring" \ + --prefix XDG_DATA_DIRS : "${glib}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" + wrapProgram "$out/bin/gnome-keyring-daemon" \ + --prefix XDG_DATA_DIRS : "${glib}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-keyring/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-keyring/src.nix new file mode 100644 index 000000000000..ccd1488fd30d --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-keyring/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-keyring-3.16.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-keyring/3.16/gnome-keyring-3.16.0.tar.xz; + sha256 = "15a3bb8c53855a4ff0dbbdfbe4ec3df206c32048f50bdc76a51f8e3e14ece1f5"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-menus/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-menus/default.nix new file mode 100644 index 000000000000..90209634fbf1 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-menus/default.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl, intltool, pkgconfig, glib, gobjectIntrospection }: + +stdenv.mkDerivation rec { + name = "gnome-menus-${version}"; + version = "3.10.1"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-menus/3.10/${name}.tar.xz"; + sha256 = "0wcacs1vk3pld8wvrwq7fdrm11i56nrajkrp6j1da6jc4yx0m5a6"; + }; + + makeFlags = "INTROSPECTION_GIRDIR=$(out)/share/gir-1.0/ INTROSPECTION_TYPELIBDIR=$(out)/lib/girepository-1.0"; + + buildInputs = [ intltool pkgconfig glib gobjectIntrospection ]; + + meta = { + homepage = "http://www.gnome.org"; + description = "Gnome menu specification"; + + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-online-accounts/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-online-accounts/default.nix new file mode 100644 index 000000000000..d810fbb862b7 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-online-accounts/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchurl, pkgconfig, glib, libxslt, gtk, makeWrapper +, webkitgtk, json_glib, rest, libsecret, dbus_glib, gnome_common +, telepathy_glib, intltool, dbus_libs, icu, autoreconfHook +, libsoup, docbook_xsl_ns, docbook_xsl, gnome3 +}: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + NIX_CFLAGS_COMPILE = "-I${dbus_glib}/include/dbus-1.0 -I${dbus_libs}/include/dbus-1.0"; + + enableParallelBuilding = true; + + preAutoreconf = '' + sed '/disable-settings/d' -i configure.ac + sed "/if HAVE_INTROSPECTION/a INTROSPECTION_COMPILER_ARGS = --shared-library=$out/lib/libgoa-1.0.so" -i src/goa/Makefile.am + ''; + + buildInputs = [ pkgconfig glib libxslt gtk webkitgtk json_glib rest gnome_common makeWrapper + libsecret dbus_glib telepathy_glib intltool icu libsoup autoreconfHook + docbook_xsl_ns docbook_xsl gnome3.defaultIconTheme ]; + + preFixup = '' + for f in "$out/libexec/"*; do + wrapProgram "$f" --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" + done + ''; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-online-accounts/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-online-accounts/src.nix new file mode 100644 index 000000000000..3038209042e2 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-online-accounts/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-online-accounts-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-online-accounts/3.18/gnome-online-accounts-3.18.0.tar.xz; + sha256 = "fc2dac96551746576759bd14f9b322bae1dd0aeedc0e755065ddf5eaaefacd34"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-online-miners/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-online-miners/default.nix new file mode 100644 index 000000000000..4c879b750980 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-online-miners/default.nix @@ -0,0 +1,37 @@ +{ stdenv, fetchurl, pkgconfig, glib, gnome3, libxml2 +, libsoup, json_glib, gmp, openssl, makeWrapper }: + +let + majVer = "3.14"; +in stdenv.mkDerivation rec { + name = "gnome-online-miners-${majVer}.2"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-online-miners/${majVer}/${name}.tar.xz"; + sha256 = "0bbak8srcrvnw18s4ls5mqaamx9nqdi93lij6yjs0a3q320k22xl"; + }; + + doCheck = true; + + buildInputs = [ pkgconfig glib gnome3.libgdata libxml2 libsoup gmp openssl + gnome3.grilo gnome3.libzapojit gnome3.grilo-plugins + gnome3.gnome_online_accounts makeWrapper gnome3.libmediaart + gnome3.tracker gnome3.gfbgraph json_glib gnome3.rest ]; + + enableParallelBuilding = true; + + preFixup = '' + for f in $out/libexec/*; do + wrapProgram "$f" \ + --prefix GRL_PLUGIN_PATH : "${gnome3.grilo-plugins}/lib/grilo-0.2" + done + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Projects/GnomeOnlineMiners; + description = "A set of crawlers that go through your online content and index them locally in Tracker"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-screenshot/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-screenshot/default.nix new file mode 100644 index 000000000000..763fc990bdab --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-screenshot/default.nix @@ -0,0 +1,31 @@ +{ stdenv, intltool, fetchurl, pkgconfig, libcanberra_gtk3 +, bash, gtk3, glib, makeWrapper +, itstool, gnome3, librsvg, gdk_pixbuf }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0"; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + propagatedBuildInputs = [ gdk_pixbuf gnome3.defaultIconTheme librsvg ]; + + buildInputs = [ bash pkgconfig gtk3 glib intltool itstool libcanberra_gtk3 + gnome3.gsettings_desktop_schemas makeWrapper ]; + + preFixup = '' + wrapProgram "$out/bin/gnome-screenshot" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = http://en.wikipedia.org/wiki/GNOME_Screenshot; + description = "Utility used in the GNOME desktop environment for taking screenshots"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-screenshot/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-screenshot/src.nix new file mode 100644 index 000000000000..af6007fa2338 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-screenshot/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-screenshot-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-screenshot/3.18/gnome-screenshot-3.18.0.tar.xz; + sha256 = "eba64dbf4acf0ab8222fec549d0a4f2dd7dbd51c255e7978dedf1f5c06a98841"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-session/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-session/default.nix new file mode 100644 index 000000000000..dedad0729d1b --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-session/default.nix @@ -0,0 +1,25 @@ +{ fetchurl, stdenv, pkgconfig, gnome3, glib, dbus_glib, json_glib, upower +, libxslt, intltool, makeWrapper, systemd, xorg }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + configureFlags = "--enable-systemd"; + + buildInputs = with gnome3; + [ pkgconfig glib gnome_desktop gtk dbus_glib json_glib libxslt + gnome3.gnome_settings_daemon xorg.xtrans gnome3.defaultIconTheme + gsettings_desktop_schemas upower intltool gconf makeWrapper systemd ]; + + preFixup = '' + wrapProgram "$out/bin/gnome-session" \ + --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ + --suffix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; + +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-session/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-session/src.nix new file mode 100644 index 000000000000..211cc140a881 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-session/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-session-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-session/3.18/gnome-session-3.18.0.tar.xz; + sha256 = "ba23d0e41e90f238103835603eded0f30a7cc56506b68168899377785aec706f"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-settings-daemon/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-settings-daemon/default.nix new file mode 100644 index 000000000000..18a6bdf43bf1 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-settings-daemon/default.nix @@ -0,0 +1,31 @@ +{ fetchurl, stdenv, pkgconfig, gnome3, intltool, glib, libnotify, lcms2, libXtst +, libxkbfile, libpulseaudio, libcanberra_gtk3, upower, colord, libgweather, polkit +, geoclue2, librsvg, xf86_input_wacom, udev, libwacom, libxslt, libtool, networkmanager +, docbook_xsl, docbook_xsl_ns, makeWrapper, ibus, xkeyboard_config }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + # fatal error: gio/gunixfdlist.h: No such file or directory + NIX_CFLAGS_COMPILE = "-I${glib}/include/gio-unix-2.0"; + + buildInputs = with gnome3; + [ intltool pkgconfig ibus gtk glib gsettings_desktop_schemas networkmanager + libnotify gnome_desktop lcms2 libXtst libxkbfile libpulseaudio + libcanberra_gtk3 upower colord libgweather xkeyboard_config + polkit geocode_glib geoclue2 librsvg xf86_input_wacom udev libwacom libxslt + libtool docbook_xsl docbook_xsl_ns makeWrapper gnome_themes_standard ]; + + preFixup = '' + wrapProgram "$out/libexec/gnome-settings-daemon-localeexec" \ + --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ + --prefix PATH : "${glib}/bin" \ + --prefix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; + +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-settings-daemon/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-settings-daemon/src.nix new file mode 100644 index 000000000000..d7b459ae0eaf --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-settings-daemon/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-settings-daemon-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-settings-daemon/3.18/gnome-settings-daemon-3.18.0.tar.xz; + sha256 = "8d3ef9c18538831ed89122fee0bdaca68b0e482a18b3c4388c4e672aba1b3cd5"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-shell-extensions/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-shell-extensions/default.nix new file mode 100644 index 000000000000..e9eae87f14e3 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-shell-extensions/default.nix @@ -0,0 +1,19 @@ +{ stdenv, intltool, fetchurl, libgtop, pkgconfig, gtk3, glib +, bash, makeWrapper, itstool, gnome3, file }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + buildInputs = [ pkgconfig gtk3 glib libgtop intltool itstool + makeWrapper file ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Projects/GnomeShell/Extensions; + description = "Modify and extend GNOME Shell functionality and behavior"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-shell-extensions/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-shell-extensions/src.nix new file mode 100644 index 000000000000..ed51bc4b2009 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-shell-extensions/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-shell-extensions-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-shell-extensions/3.18/gnome-shell-extensions-3.18.0.tar.xz; + sha256 = "a5fb88004b021e4a16f4fa5eb3d7d6f0903db1288023c18c0f9825152fa0f5f7"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-shell/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-shell/default.nix new file mode 100644 index 000000000000..899efc5443bb --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-shell/default.nix @@ -0,0 +1,57 @@ +{ fetchurl, stdenv, pkgconfig, gnome3, json_glib, libcroco, intltool, libsecret +, python3, libsoup, polkit, clutter, networkmanager, docbook_xsl, docbook_xsl_ns, at_spi2_core +, libstartup_notification, telepathy_glib, telepathy_logger, libXtst, p11_kit, unzip +, sqlite, libgweather, libcanberra_gtk3 +, libpulseaudio, libical, libtool, nss, gobjectIntrospection, gstreamer, makeWrapper +, accountsservice, gdk_pixbuf, gdm, upower, ibus, networkmanagerapplet, librsvg }: + +# http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/gnome-shell-3.10.2.1.ebuild?revision=1.3&view=markup + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + # Needed to find /etc/NetworkManager/VPN + configureFlags = [ "--sysconfdir=/etc" ]; + + buildInputs = with gnome3; + [ gsettings_desktop_schemas gnome_keyring gnome-menus glib gcr json_glib accountsservice + libcroco intltool libsecret pkgconfig python3 libsoup polkit libcanberra gdk_pixbuf librsvg + clutter networkmanager libstartup_notification telepathy_glib docbook_xsl docbook_xsl_ns + libXtst p11_kit networkmanagerapplet gjs mutter libpulseaudio caribou evolution_data_server + libical libtool nss gobjectIntrospection gtk gstreamer makeWrapper gdm + libcanberra_gtk3 gnome_control_center + defaultIconTheme sqlite gnome3.gnome-bluetooth + libgweather # not declared at build time, but typelib is needed at runtime + gnome3.gnome-clocks # schemas needed + at_spi2_core upower ibus gnome_session gnome_desktop telepathy_logger gnome3.gnome_settings_daemon ]; + + installFlags = [ "keysdir=$(out)/share/gnome-control-center/keybindings" ]; + + preBuild = '' + patchShebangs src/data-to-c.pl + substituteInPlace data/Makefile --replace " install-keysDATA" "" + ''; + + preFixup = with gnome3; '' + wrapProgram "$out/bin/gnome-shell" \ + --prefix PATH : "${unzip}/bin" \ + --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --suffix XDG_DATA_DIRS : "${gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + + wrapProgram "$out/libexec/gnome-shell-calendar-server" \ + --prefix XDG_DATA_DIRS : "${evolution_data_server}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + + echo "${unzip}/bin" > $out/${passthru.mozillaPlugin}/extra-bin-path + ''; + + passthru = { + mozillaPlugin = "/lib/mozilla/plugins"; + }; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; + +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-shell/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-shell/src.nix new file mode 100644 index 000000000000..340a2e672523 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-shell/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-shell-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-shell/3.18/gnome-shell-3.18.0.tar.xz; + sha256 = "1f0f276c45c0979c72700121cb0f711aea343c4393eb3d5ddd6b311d8dc83c99"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-system-log/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-system-log/default.nix new file mode 100644 index 000000000000..716f92a072d4 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-system-log/default.nix @@ -0,0 +1,36 @@ +{ stdenv, intltool, fetchurl, pkgconfig +, bash, gtk3, glib, makeWrapper +, itstool, gnome3, librsvg, gdk_pixbuf, libxml2 }: + +stdenv.mkDerivation rec { + name = "gnome-system-log-3.9.90"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-system-log/3.9/${name}.tar.xz"; + sha256 = "9eeb51982d347aa7b33703031e2c1d8084201374665425cd62199649b29a5411"; + }; + + doCheck = true; + + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0"; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + propagatedBuildInputs = [ gdk_pixbuf gnome3.defaultIconTheme librsvg ]; + + buildInputs = [ bash pkgconfig gtk3 glib intltool itstool + gnome3.gsettings_desktop_schemas makeWrapper libxml2 ]; + + preFixup = '' + wrapProgram "$out/bin/gnome-system-log" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = https://help.gnome.org/users/gnome-system-log/3.9/; + description = "Graphical, menu-driven viewer that you can use to view and monitor your system logs"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-system-monitor/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-system-monitor/default.nix new file mode 100644 index 000000000000..bdbdefecf229 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-system-monitor/default.nix @@ -0,0 +1,32 @@ +{ stdenv, intltool, fetchurl, pkgconfig, gtkmm3, libxml2 +, bash, gtk3, glib, makeWrapper +, itstool, gnome3, librsvg, gdk_pixbuf, libgtop }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + buildInputs = [ bash pkgconfig gtk3 glib intltool itstool libxml2 + gtkmm3 libgtop makeWrapper + gdk_pixbuf gnome3.defaultIconTheme librsvg + gnome3.gsettings_desktop_schemas ]; + + preFixup = '' + wrapProgram "$out/bin/gnome-system-monitor" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = https://help.gnome.org/users/gnome-system-monitor/3.12/; + description = "System Monitor shows you what programs are running and how much processor time, memory, and disk space are being used"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-system-monitor/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-system-monitor/src.nix new file mode 100644 index 000000000000..a4c87752e784 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-system-monitor/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-system-monitor-3.18.0.1"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-system-monitor/3.18/gnome-system-monitor-3.18.0.1.tar.xz; + sha256 = "71ff8db2fa3eb53d8f54ffd612c6679b231a9d69c13adb91cf63421425953b10"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-terminal/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-terminal/default.nix new file mode 100644 index 000000000000..3bbb25ca5c19 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-terminal/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchurl, pkgconfig, cairo, libxml2, gnome3, pango +, gnome_doc_utils, intltool, libX11, which, libuuid, vala +, desktop_file_utils, itstool, makeWrapper, appdata-tools }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ gnome3.gtk gnome3.gsettings_desktop_schemas gnome3.vte appdata-tools + gnome3.dconf itstool makeWrapper gnome3.nautilus vala ]; + + nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which libuuid libxml2 desktop_file_utils ]; + + # FIXME: enable for gnome3 + configureFlags = [ "--disable-search-provider" "--disable-migration" ]; + + preFixup = '' + for f in "$out/libexec/gnome-terminal-server"; do + wrapProgram "$f" \ + --prefix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" \ + --prefix GIO_EXTRA_MODULES : "${gnome3.dconf}/lib/gio/modules" + done + ''; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-terminal/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-terminal/src.nix new file mode 100644 index 000000000000..dff213cc3891 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-terminal/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-terminal-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-terminal/3.18/gnome-terminal-3.18.0.tar.xz; + sha256 = "776642502b57b7a6b5f099291b660c0b4a4ff2b3024d15a2f5b33c4286c9dce6"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-themes-standard/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-themes-standard/default.nix new file mode 100644 index 000000000000..a33252a934c3 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-themes-standard/default.nix @@ -0,0 +1,14 @@ +{ stdenv, fetchurl, intltool, gtk3, gnome3, librsvg, pkgconfig, pango, atk, gtk2 +, gdk_pixbuf }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ intltool gtk3 librsvg pkgconfig pango atk gtk2 gdk_pixbuf + gnome3.defaultIconTheme ]; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-themes-standard/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-themes-standard/src.nix new file mode 100644 index 000000000000..c352242537a8 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-themes-standard/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-themes-standard-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-themes-standard/3.18/gnome-themes-standard-3.18.0.tar.xz; + sha256 = "e646eb04c225282b7df7fff65741adaad4cf9ed2c12616b7310e7edd27d2bacb"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-user-docs/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-user-docs/default.nix new file mode 100644 index 000000000000..4f02673e036f --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-user-docs/default.nix @@ -0,0 +1,15 @@ +{ stdenv, fetchurl, pkgconfig, file, gnome3, itstool, libxml2, intltool }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ pkgconfig gnome3.yelp itstool libxml2 intltool ]; + + meta = with stdenv.lib; { + homepage = "https://help.gnome.org/users/gnome-help/${gnome3.version}"; + description = "User and system administration help for the GNOME desktop"; + maintainers = gnome3.maintainers; + license = licenses.cc-by-30; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-user-docs/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-user-docs/src.nix new file mode 100644 index 000000000000..0187516061b1 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-user-docs/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-user-docs-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-user-docs/3.18/gnome-user-docs-3.18.0.tar.xz; + sha256 = "c515d2c8b051ffb05ec497e4231d1ceecec824dc4fca45425d21295bb592e952"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-user-share/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-user-share/default.nix new file mode 100644 index 000000000000..49ad40912c66 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-user-share/default.nix @@ -0,0 +1,45 @@ +{ stdenv, intltool, fetchurl, apacheHttpd_2_2, nautilus +, pkgconfig, gtk3, glib, libxml2, gnused +, bash, makeWrapper, itstool, libnotify, libtool, mod_dnssd +, gnome3, librsvg, gdk_pixbuf, file, libcanberra_gtk3 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0"; + + preConfigure = '' + sed -e 's,^LoadModule dnssd_module.\+,LoadModule dnssd_module ${mod_dnssd}/modules/mod_dnssd.so,' -i data/dav_user_2.2.conf + ''; + + configureFlags = [ "--with-httpd=${apacheHttpd_2_2}/bin/httpd" + "--with-modules-path=${apacheHttpd_2_2}/modules" + "--disable-bluetooth" + "--with-nautilusdir=$(out)/lib/nautilus/extensions-3.0" ]; + + buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2 libtool + makeWrapper file gdk_pixbuf gnome3.defaultIconTheme librsvg + nautilus libnotify libcanberra_gtk3 ]; + + postInstall = '' + mkdir -p $out/share/gsettings-schemas/$name + mv $out/share/glib-2.0 $out/share/gsettings-schemas/$name + ${glib}/bin/glib-compile-schemas $out/share/gsettings-schemas/$name/glib-2.0/schemas + ''; + + preFixup = '' + wrapProgram "$out/libexec/gnome-user-share-webdav" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = https://help.gnome.org/users/gnome-user-share/3.8; + description = "Service that exports the contents of the Public folder in your home directory on the local network"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-user-share/src.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-user-share/src.nix new file mode 100644 index 000000000000..e0a283d896dc --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-user-share/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-user-share-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-user-share/3.18/gnome-user-share-3.18.0.tar.xz; + sha256 = "feb3bed59193eafea31f563ed7eab5f066aa5f86d4a89f067b162653d168d3fc"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/grilo-plugins/default.nix b/pkgs/desktops/gnome-3/3.18/core/grilo-plugins/default.nix new file mode 100644 index 000000000000..a236238c257f --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/grilo-plugins/default.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchurl, pkgconfig, file, intltool, glib, sqlite +, gnome3, libxml2, gupnp, gssdp, lua5, liboauth, gupnp_av +, gmime, json_glib, avahi, tracker, itstool }: + +stdenv.mkDerivation rec { + name = "grilo-plugins-0.2.13"; + + src = fetchurl { + url = "mirror://gnome/sources/grilo-plugins/0.2/${name}.tar.xz"; + sha256 = "008jwm5ydl0k25p3d2fkcail40fj9y3qknihxb5fg941p8qlhm55"; + }; + + installFlags = [ "GRL_PLUGINS_DIR=$(out)/lib/grilo-0.2" ]; + + buildInputs = [ pkgconfig gnome3.grilo libxml2 gupnp gssdp gnome3.libgdata + lua5 liboauth gupnp_av sqlite gnome3.gnome_online_accounts + gnome3.totem-pl-parser gnome3.rest gmime json_glib + avahi gnome3.libmediaart tracker intltool itstool ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/action/show/Projects/Grilo; + description = "A collection of plugins for the Grilo framework"; + maintainers = gnome3.maintainers; + license = licenses.lgpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/grilo/default.nix b/pkgs/desktops/gnome-3/3.18/core/grilo/default.nix new file mode 100644 index 000000000000..16dfb638a249 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/grilo/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchurl, pkgconfig, file, intltool, glib +, libxml2, gnome3, gobjectIntrospection, libsoup }: + +stdenv.mkDerivation rec { + name = "grilo-0.2.12"; + + src = fetchurl { + url = "mirror://gnome/sources/grilo/0.2/${name}.tar.xz"; + sha256 = "11bvc7rsrjjwz8hp67p3fn8zmywrpawrcbi3vgw8b0dwa0sndd2m"; + }; + + setupHook = ./setup-hook.sh; + + configureFlags = [ "--enable-grl-pls" "--enable-grl-net" ]; + + preConfigure = '' + for f in src/Makefile.in libs/pls/Makefile.in libs/net/Makefile.in; do + substituteInPlace $f --replace @INTROSPECTION_GIRDIR@ "$out/share/gir-1.0/" + substituteInPlace $f --replace @INTROSPECTION_TYPELIBDIR@ "$out/lib/girepository-1.0" + done + ''; + + buildInputs = [ pkgconfig file intltool glib libxml2 libsoup + gnome3.totem-pl-parser gobjectIntrospection ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/action/show/Projects/Grilo; + description = "Framework that provides access to various sources of multimedia content, using a pluggable system"; + maintainers = gnome3.maintainers; + license = licenses.lgpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/grilo/setup-hook.sh b/pkgs/desktops/gnome-3/3.18/core/grilo/setup-hook.sh new file mode 100644 index 000000000000..bc93dddec386 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/grilo/setup-hook.sh @@ -0,0 +1,7 @@ +make_grilo_find_plugins() { + if [ -d "$1"/lib/grilo-0.2 ]; then + addToSearchPath GRL_PLUGIN_PATH "$1/lib/grilo-0.2" + fi +} + +envHooks+=(make_grilo_find_plugins) diff --git a/pkgs/desktops/gnome-3/3.18/core/gsettings-desktop-schemas/default.nix b/pkgs/desktops/gnome-3/3.18/core/gsettings-desktop-schemas/default.nix new file mode 100644 index 000000000000..5123cadbdafd --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gsettings-desktop-schemas/default.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl, pkgconfig, intltool, glib, gobjectIntrospection + # just for passthru +, gnome3, gtk3, gsettings_desktop_schemas }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + postPatch = '' + for file in "background" "screensaver"; do + substituteInPlace "schemas/org.gnome.desktop.$file.gschema.xml.in" \ + --replace "@datadir@" "${gnome3.gnome-backgrounds}/share/" + done + ''; + + buildInputs = [ glib gobjectIntrospection ]; + + nativeBuildInputs = [ pkgconfig intltool ]; + + meta = with stdenv.lib; { + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gsettings-desktop-schemas/src.nix b/pkgs/desktops/gnome-3/3.18/core/gsettings-desktop-schemas/src.nix new file mode 100644 index 000000000000..047f014d2af0 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gsettings-desktop-schemas/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gsettings-desktop-schemas-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gsettings-desktop-schemas/3.18/gsettings-desktop-schemas-3.18.0.tar.xz; + sha256 = "ba27337226a96d83f385c0ad192fdfe561c7e7882c61bb326c571be24e41eceb"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gsound/default.nix b/pkgs/desktops/gnome-3/3.18/core/gsound/default.nix new file mode 100644 index 000000000000..5f255743313e --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gsound/default.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl, pkgconfig, glib, libcanberra, gobjectIntrospection, libtool, gnome3 }: + +let + majVer = "1.0"; +in stdenv.mkDerivation rec { + name = "gsound-${majVer}.1"; + + src = fetchurl { + url = "mirror://gnome/sources/gsound/${majVer}/${name}.tar.xz"; + sha256 = "ea0dd94429c0645f2f98824274ef04543fe459dd83a5449a68910acc3ba67f29"; + }; + + buildInputs = [ pkgconfig glib libcanberra gobjectIntrospection libtool ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Projects/GSound; + description = "Small library for playing system sounds"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gtksourceview/default.nix b/pkgs/desktops/gnome-3/3.18/core/gtksourceview/default.nix new file mode 100644 index 000000000000..ea95e39e5b2a --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gtksourceview/default.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl, pkgconfig, atk, cairo, glib, gtk3, pango +, libxml2Python, perl, intltool, gettext, gnome3 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + propagatedBuildInputs = [ gtk3 ]; + + buildInputs = [ pkgconfig atk cairo glib pango + libxml2Python perl intltool gettext ]; + + preBuild = '' + substituteInPlace gtksourceview/gtksourceview-utils.c --replace "@NIX_SHARE_PATH@" "$out/share" + ''; + + patches = [ ./nix_share_path.patch ]; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gtksourceview/nix_share_path.patch b/pkgs/desktops/gnome-3/3.18/core/gtksourceview/nix_share_path.patch new file mode 100644 index 000000000000..c87350167c25 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gtksourceview/nix_share_path.patch @@ -0,0 +1,11 @@ +--- a/gtksourceview/gtksourceview-utils.c 2014-07-13 16:13:57.418687726 +0200 ++++ b/gtksourceview/gtksourceview-utils.c 2014-07-13 16:14:20.550847767 +0200 +@@ -68,6 +68,8 @@ + basename, + NULL)); + ++ g_ptr_array_add (dirs, g_build_filename ("@NIX_SHARE_PATH@", SOURCEVIEW_DIR, basename, NULL)); ++ + g_ptr_array_add (dirs, NULL); + + return (gchar**) g_ptr_array_free (dirs, FALSE); diff --git a/pkgs/desktops/gnome-3/3.18/core/gtksourceview/src.nix b/pkgs/desktops/gnome-3/3.18/core/gtksourceview/src.nix new file mode 100644 index 000000000000..5bbd2c424740 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gtksourceview/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gtksourceview-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gtksourceview/3.18/gtksourceview-3.18.0.tar.xz; + sha256 = "54b111264e6985e26a878dec88ff94fd0a9ae0dc4cfcdf08f4a6b5f655d4b693"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gucharmap/default.nix b/pkgs/desktops/gnome-3/3.18/core/gucharmap/default.nix new file mode 100644 index 000000000000..a43d3c570ce9 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gucharmap/default.nix @@ -0,0 +1,33 @@ +{ stdenv, intltool, fetchurl, pkgconfig, gtk3 +, glib, desktop_file_utils, bash, appdata-tools +, makeWrapper, gnome3, file, itstool, libxml2 }: + +# TODO: icons and theme still does not work +# use packaged gnome3.adwaita-icon-theme + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + preConfigure = "substituteInPlace ./configure --replace /usr/bin/file ${file}/bin/file"; + + buildInputs = [ pkgconfig gtk3 intltool itstool glib appdata-tools + gnome3.yelp_tools libxml2 file desktop_file_utils + gnome3.gsettings_desktop_schemas makeWrapper ]; + + preFixup = '' + wrapProgram "$out/bin/gucharmap" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Gucharmap; + description = "GNOME Character Map, based on the Unicode Character Database"; + maintainers = gnome3.maintainers; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/gucharmap/src.nix b/pkgs/desktops/gnome-3/3.18/core/gucharmap/src.nix new file mode 100644 index 000000000000..01eca1e367b1 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/gucharmap/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gucharmap-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gucharmap/3.18/gucharmap-3.18.0.tar.xz; + sha256 = "121d2652f59a26c9426c96e7c6ca73295c45b675dd4ef0ccdb1b50bc0b4f3830"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/libcroco/default.nix b/pkgs/desktops/gnome-3/3.18/core/libcroco/default.nix new file mode 100644 index 000000000000..e8ddf7096e62 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/libcroco/default.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchurl, pkgconfig, libxml2, glib }: + +stdenv.mkDerivation rec { + name = "libcroco-0.6.8"; + + src = fetchurl { + url = "mirror://gnome/sources/libcroco/0.6/${name}.tar.xz"; + sha256 = "0w453f3nnkbkrly7spx5lx5pf6mwynzmd5qhszprq8amij2invpa"; + }; + + outputs = [ "out" "doc" ]; + + configureFlags = stdenv.lib.optional stdenv.isDarwin "--disable-Bsymbolic"; + + buildInputs = [ pkgconfig libxml2 glib ]; + + meta = with stdenv.lib; { + platforms = platforms.unix; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/libgdata/default.nix b/pkgs/desktops/gnome-3/3.18/core/libgdata/default.nix new file mode 100644 index 000000000000..bedbbee2dfe5 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/libgdata/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchurl, pkgconfig, intltool, libxml2, glib, json_glib +, gobjectIntrospection, liboauth, gnome3, p11_kit, openssl }: + +let + majorVersion = "0.16"; +in +stdenv.mkDerivation rec { + name = "libgdata-${majorVersion}.1"; + + src = fetchurl { + url = "mirror://gnome/sources/libgdata/${majorVersion}/${name}.tar.xz"; + sha256 = "8740e071ecb2ae0d2a4b9f180d2ae5fdf9dc4c41e7ff9dc7e057f62442800827"; + }; + + # TODO: need libuhttpmock + configureFlags = "--disable-tests"; + + NIX_CFLAGS_COMPILE = "-I${gnome3.libsoup}/include/libsoup-gnome-2.4/ -I${gnome3.gcr}/include/gcr-3 -I${gnome3.gcr}/include/gck-1"; + + buildInputs = with gnome3; + [ pkgconfig libsoup intltool libxml2 glib gobjectIntrospection + liboauth gcr gnome_online_accounts p11_kit openssl ]; + + propagatedBuildInputs = [ json_glib ]; + + meta = with stdenv.lib; { + description = "GData API library"; + maintainers = with maintainers; [ raskin lethalman ]; + platforms = platforms.linux; + license = licenses.lgpl21Plus; + }; + +} diff --git a/pkgs/desktops/gnome-3/3.18/core/libgee/default.nix b/pkgs/desktops/gnome-3/3.18/core/libgee/default.nix new file mode 100644 index 000000000000..4ff132950319 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/libgee/default.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchurl, autoconf, vala, pkgconfig, glib, gobjectIntrospection, gnome3 }: +let + ver_maj = "0.16"; + ver_min = "1"; +in +stdenv.mkDerivation rec { + name = "libgee-${ver_maj}.${ver_min}"; + + src = fetchurl { + url = "mirror://gnome/sources/libgee/${ver_maj}/${name}.tar.xz"; + sha256 = "d95f8ea8e78f843c71b1958fa2fb445e4a325e4821ec23d0d5108d8170e564a5"; + }; + + doCheck = true; + + patches = [ ./fix_introspection_paths.patch ]; + + buildInputs = [ autoconf vala pkgconfig glib gobjectIntrospection ]; + + meta = with stdenv.lib; { + description = "Utility library providing GObject-based interfaces and classes for commonly used data structures"; + license = licenses.lgpl21Plus; + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/libgee/fix_introspection_paths.patch b/pkgs/desktops/gnome-3/3.18/core/libgee/fix_introspection_paths.patch new file mode 100644 index 000000000000..67003f451645 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/libgee/fix_introspection_paths.patch @@ -0,0 +1,13 @@ +--- fix_introspection_paths.patch/configure 2014-01-07 17:43:53.521339338 +0000 ++++ fix_introspection_paths.patch/configure-fix 2014-01-07 17:45:11.068635069 +0000 +@@ -12085,8 +12085,8 @@ + INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` + INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` + INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` +- INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` +- INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" ++ INTROSPECTION_GIRDIR="${datadir}/gir-1.0" ++ INTROSPECTION_TYPELIBDIR="${libdir}/girepository-1.0" + INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0` + INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0` + INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection diff --git a/pkgs/desktops/gnome-3/3.18/core/libgnome-keyring/default.nix b/pkgs/desktops/gnome-3/3.18/core/libgnome-keyring/default.nix new file mode 100644 index 000000000000..c6c9323c010a --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/libgnome-keyring/default.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchurl, glib, dbus_libs, libgcrypt, pkgconfig, intltool, gobjectIntrospection }: + +stdenv.mkDerivation rec { + name = "libgnome-keyring-3.12.0"; + + src = fetchurl { + url = "mirror://gnome/sources/libgnome-keyring/3.12/${name}.tar.xz"; + sha256 = "c4c178fbb05f72acc484d22ddb0568f7532c409b0a13e06513ff54b91e947783"; + }; + + propagatedBuildInputs = [ glib gobjectIntrospection dbus_libs libgcrypt ]; + nativeBuildInputs = [ pkgconfig intltool ]; + + meta = { + description = "Framework for managing passwords and other secrets"; + homepage = http://live.gnome.org/GnomeKeyring; + license = with stdenv.lib.licenses; [ gpl2Plus lgpl2Plus ]; + inherit (glib.meta) platforms maintainers; + + longDescription = '' + gnome-keyring is a program that keeps password and other secrets for + users. The library libgnome-keyring is used by applications to integrate + with the gnome-keyring system. + ''; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/libgnomekbd/default.nix b/pkgs/desktops/gnome-3/3.18/core/libgnomekbd/default.nix new file mode 100644 index 000000000000..4939a4ff7281 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/libgnomekbd/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchurl, pkgconfig, file, intltool, glib, gtk3, libxklavier, makeWrapper, gnome3 }: + +stdenv.mkDerivation rec { + name = "libgnomekbd-3.6.0"; + + src = fetchurl { + url = "mirror://gnome/sources/libgnomekbd/3.6/${name}.tar.xz"; + sha256 = "c41ea5b0f64da470925ba09f9f1b46b26b82d4e433e594b2c71eab3da8856a09"; + }; + + buildInputs = [ pkgconfig file intltool glib gtk3 libxklavier makeWrapper ]; + + preFixup = '' + wrapProgram $out/bin/gkbd-keyboard-display \ + --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + description = "Keyboard management library"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/libgweather/default.nix b/pkgs/desktops/gnome-3/3.18/core/libgweather/default.nix new file mode 100644 index 000000000000..79ede15df8f0 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/libgweather/default.nix @@ -0,0 +1,17 @@ +{ stdenv, fetchurl, pkgconfig, libxml2, gtk, intltool, libsoup, gconf +, pango, gdk_pixbuf, atk, tzdata, gnome3 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + makeFlags = "INTROSPECTION_GIRDIR=$(out)/share/gir-1.0/ INTROSPECTION_TYPELIBDIR=$(out)/lib/girepository-1.0"; + + configureFlags = [ "--with-zoneinfo-dir=${tzdata}/share/zoneinfo" ]; + propagatedBuildInputs = [ libxml2 gtk libsoup gconf pango gdk_pixbuf atk gnome3.geocode_glib ]; + nativeBuildInputs = [ pkgconfig intltool ]; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/libgweather/src.nix b/pkgs/desktops/gnome-3/3.18/core/libgweather/src.nix new file mode 100644 index 000000000000..da56dc3361ae --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/libgweather/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "libgweather-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/libgweather/3.18/libgweather-3.18.0.tar.xz; + sha256 = "8f4fda67f48c776f2bf955d384de4cc842aacb8d9b2ad87b42d83d0dc5a1cb1f"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/libgxps/default.nix b/pkgs/desktops/gnome-3/3.18/core/libgxps/default.nix new file mode 100644 index 000000000000..72d307f4f1a7 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/libgxps/default.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchurl, pkgconfig, glib, cairo, libarchive, freetype, libjpeg, libtiff +, openssl, bzip2, acl, attr +}: + +stdenv.mkDerivation rec { + name = "libgxps-0.2.2"; + + src = fetchurl { + url = "http://ftp.acc.umu.se/pub/GNOME/core/3.10/3.10.2/sources/${name}.tar.xz"; + sha256 = "1gi0b0x0354jyqc48vspk2hg2q1403cf2p9ibj847nzhkdrh9l9r"; + }; + + buildInputs = [ pkgconfig glib cairo libarchive freetype libjpeg libtiff acl openssl bzip2 attr]; + + configureFlags = "--without-liblcms2"; + + meta = with stdenv.lib; { + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/libpeas/default.nix b/pkgs/desktops/gnome-3/3.18/core/libpeas/default.nix new file mode 100644 index 000000000000..8d40d977a80b --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/libpeas/default.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchurl, pkgconfig, intltool, gnome3 +, glib, gtk3, gobjectIntrospection, python, pygobject3 +}: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + intltool pkgconfig glib gtk3 gobjectIntrospection python pygobject3 + gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + description = "A GObject-based plugins engine"; + homepage = "http://ftp.acc.umu.se/pub/GNOME/sources/libpeas/"; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/libpeas/src.nix b/pkgs/desktops/gnome-3/3.18/core/libpeas/src.nix new file mode 100644 index 000000000000..8a24097bbd67 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/libpeas/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "libpeas-1.16.0"; + + src = fetchurl { + url = mirror://gnome/sources/libpeas/1.16/libpeas-1.16.0.tar.xz; + sha256 = "b093008ecd65f7d55c80517589509698ff15ad41f664b11a3eb88ff461b1454e"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/libzapojit/default.nix b/pkgs/desktops/gnome-3/3.18/core/libzapojit/default.nix new file mode 100644 index 000000000000..5a8117528b68 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/libzapojit/default.nix @@ -0,0 +1,16 @@ +{ stdenv, fetchurl, pkgconfig, glib, intltool, json_glib, rest, libsoup, gtk, gnome_online_accounts }: + +stdenv.mkDerivation rec { + name = "libzapojit-0.0.3"; + + src = fetchurl { + url = "mirror://gnome/sources/libzapojit/0.0/${name}.tar.xz"; + sha256 = "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x"; + }; + + buildInputs = [ pkgconfig glib intltool json_glib rest libsoup gtk gnome_online_accounts ]; + + meta = with stdenv.lib; { + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/mutter/default.nix b/pkgs/desktops/gnome-3/3.18/core/mutter/default.nix new file mode 100644 index 000000000000..dd08a96cc232 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/mutter/default.nix @@ -0,0 +1,31 @@ +{ fetchurl, stdenv, pkgconfig, gnome3, intltool, gobjectIntrospection, upower, cairo +, pango, cogl, clutter, libstartup_notification, libcanberra, zenity, libcanberra_gtk3 +, libtool, makeWrapper, xkeyboard_config, libxkbfile, libxkbcommon }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + # fatal error: gio/gunixfdlist.h: No such file or directory + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0"; + + configureFlags = "--with-x --disable-static --enable-shape --enable-sm --enable-startup-notification --enable-xsync --enable-verbose-mode --with-libcanberra"; + + buildInputs = with gnome3; + [ pkgconfig intltool glib gobjectIntrospection gtk gsettings_desktop_schemas upower + gnome_desktop cairo pango cogl clutter zenity libstartup_notification libcanberra + gnome3.geocode_glib + libcanberra_gtk3 zenity libtool makeWrapper xkeyboard_config libxkbfile libxkbcommon ]; + + preFixup = '' + wrapProgram "$out/bin/mutter" \ + --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" + ''; + + patches = [ ./x86.patch ./math.patch ]; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; + +} diff --git a/pkgs/desktops/gnome-3/3.18/core/mutter/math.patch b/pkgs/desktops/gnome-3/3.18/core/mutter/math.patch new file mode 100644 index 000000000000..dbdfd93f5e1d --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/mutter/math.patch @@ -0,0 +1,10 @@ +--- mutter-3.18.0/src/backends/meta-cursor-renderer.c.orig 2015-09-23 13:54:31.297523343 +0200 ++++ mutter-3.18.0/src/backends/meta-cursor-renderer.c 2015-09-23 13:54:43.728271766 +0200 +@@ -31,6 +31,7 @@ + + #include + #include ++#include + + #include "meta-stage.h" + diff --git a/pkgs/desktops/gnome-3/3.18/core/mutter/src.nix b/pkgs/desktops/gnome-3/3.18/core/mutter/src.nix new file mode 100644 index 000000000000..2f183d1a919e --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/mutter/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "mutter-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/mutter/3.18/mutter-3.18.0.tar.xz; + sha256 = "9fb287976b9c65f0a2aca09d0e2c4c2748d3d2cfa5f38921dbeafe4cd1d541b1"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/mutter/x86.patch b/pkgs/desktops/gnome-3/3.18/core/mutter/x86.patch new file mode 100644 index 000000000000..bc8829de42f1 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/mutter/x86.patch @@ -0,0 +1,20 @@ +--- mutter-3.16.2/src/core/window.c.orig 2015-05-26 10:52:41.382834963 +0200 ++++ mutter-3.16.2/src/core/window.c 2015-05-26 10:53:03.039948034 +0200 +@@ -3499,7 +3499,7 @@ + + static MetaMonitorInfo * + find_monitor_by_winsys_id (MetaWindow *window, +- guint winsys_id) ++ gint winsys_id) + { + int i; + +@@ -3618,7 +3618,7 @@ + */ + + gboolean did_placement; +- guint old_output_winsys_id; ++ gint old_output_winsys_id; + MetaRectangle unconstrained_rect; + MetaRectangle constrained_rect; + MetaMoveResizeResultFlags result = 0; diff --git a/pkgs/desktops/gnome-3/3.18/core/nautilus/default.nix b/pkgs/desktops/gnome-3/3.18/core/nautilus/default.nix new file mode 100644 index 000000000000..f28e86d7bad0 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/nautilus/default.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchurl, pkgconfig, libxml2, dbus_glib, shared_mime_info, libexif +, gtk, gnome3, libunique, intltool, gobjectIntrospection +, libnotify, makeWrapper, exempi, librsvg, tracker }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ pkgconfig libxml2 dbus_glib shared_mime_info libexif gtk libunique intltool exempi librsvg + gnome3.gnome_desktop gnome3.adwaita-icon-theme + gnome3.gsettings_desktop_schemas libnotify makeWrapper tracker ]; + + preFixup = '' + wrapProgram "$out/bin/nautilus" \ + --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$out/share:$GSETTINGS_SCHEMAS_PATH" + ''; + + patches = [ ./extension_dir.patch ]; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/nautilus/extension_dir.patch b/pkgs/desktops/gnome-3/3.18/core/nautilus/extension_dir.patch new file mode 100644 index 000000000000..317b82579924 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/nautilus/extension_dir.patch @@ -0,0 +1,24 @@ +diff --git a/libnautilus-private/nautilus-module.c b/libnautilus-private/nautilus-module.c +index 6273a76..4adcc8a 100644 +--- a/libnautilus-private/nautilus-module.c ++++ b/libnautilus-private/nautilus-module.c +@@ -242,11 +242,17 @@ void + nautilus_module_setup (void) + { + static gboolean initialized = FALSE; ++ const gchar* extensiondir = NULL; + + if (!initialized) { + initialized = TRUE; +- +- load_module_dir (NAUTILUS_EXTENSIONDIR); ++ ++ extensiondir = g_getenv ("NAUTILUS_EXTENSION_DIR"); ++ if (extensiondir == NULL) { ++ extensiondir = NAUTILUS_EXTENSIONDIR; ++ } ++ ++ load_module_dir (extensiondir); + + eel_debug_call_at_shutdown (free_module_objects); + } diff --git a/pkgs/desktops/gnome-3/3.18/core/nautilus/src.nix b/pkgs/desktops/gnome-3/3.18/core/nautilus/src.nix new file mode 100644 index 000000000000..4e8c692bce44 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/nautilus/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "nautilus-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/nautilus/3.18/nautilus-3.18.0.tar.xz; + sha256 = "6914e5698c5ce865870086e4db9395d56a78eddf8002020458ce05db16a95a33"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/rest/default.nix b/pkgs/desktops/gnome-3/3.18/core/rest/default.nix new file mode 100644 index 000000000000..eada9ab19934 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/rest/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, glib, libsoup, gobjectIntrospection, gnome3 }: + +stdenv.mkDerivation rec { + name = "rest-0.7.92"; + + src = fetchurl { + url = "mirror://gnome/sources/rest/0.7/${name}.tar.xz"; + sha256 = "07548c8785a3e743daf54a82b952ff5f32af94fee68997df4c83b00d52f9c0ec"; + }; + + buildInputs = [ pkgconfig glib libsoup gobjectIntrospection]; + + configureFlags = "--with-ca-certificates=/etc/ssl/certs/ca-certificates.crt"; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/sushi/default.nix b/pkgs/desktops/gnome-3/3.18/core/sushi/default.nix new file mode 100644 index 000000000000..17c37e89decc --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/sushi/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchurl, pkgconfig, file, intltool, gobjectIntrospection, glib +, clutter_gtk, clutter-gst, gnome3, gtksourceview, libmusicbrainz +, webkitgtk, libmusicbrainz5, icu, makeWrapper, gst_all_1 +, gdk_pixbuf, librsvg, gtk3 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + propagatedUserEnvPkgs = [ gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good ]; + + buildInputs = [ pkgconfig file intltool gobjectIntrospection glib gtk3 + clutter_gtk clutter-gst gnome3.gjs gtksourceview gdk_pixbuf + librsvg gnome3.defaultIconTheme libmusicbrainz5 webkitgtk + gnome3.evince icu makeWrapper ]; + + enableParallelBuilding = true; + + preFixup = '' + wrapProgram $out/libexec/sushi-start \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ + --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" \ + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = "http://en.wikipedia.org/wiki/Sushi_(software)"; + description = "A quick previewer for Nautilus"; + maintainers = gnome3.maintainers; + license = licenses.gpl2Plus; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/sushi/src.nix b/pkgs/desktops/gnome-3/3.18/core/sushi/src.nix new file mode 100644 index 000000000000..5c852a0dc47c --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/sushi/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "sushi-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/sushi/3.18/sushi-3.18.0.tar.xz; + sha256 = "7f4df92be950bf23aff28da49ce108766dd21a88efc14a9d0807e10225608e9c"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/totem-pl-parser/default.nix b/pkgs/desktops/gnome-3/3.18/core/totem-pl-parser/default.nix new file mode 100644 index 000000000000..63f36004bcd6 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/totem-pl-parser/default.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchurl, pkgconfig, file, intltool, gmime, libxml2, libsoup, gnome3 }: + +stdenv.mkDerivation rec { + name = "totem-pl-parser-3.10.2"; + + src = fetchurl { + url = "mirror://gnome/sources/totem-pl-parser/3.10/${name}.tar.xz"; + sha256 = "38be09bddc46ddecd2b5ed7c82144ef52aafe879a5ec3d8b192b4b64ba995469"; + }; + + buildInputs = [ pkgconfig file intltool gmime libxml2 libsoup ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Videos; + description = "Simple GObject-based library to parse and save a host of playlist formats"; + maintainers = gnome3.maintainers; + license = licenses.lgpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/totem/default.nix b/pkgs/desktops/gnome-3/3.18/core/totem/default.nix new file mode 100644 index 000000000000..13665c72274e --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/totem/default.nix @@ -0,0 +1,42 @@ +{ stdenv, intltool, fetchurl, gst_all_1 +, clutter_gtk, clutter-gst, pygobject3, shared_mime_info +, pkgconfig, gtk3, glib +, bash, makeWrapper, itstool, libxml2, dbus_glib +, gnome3, librsvg, gdk_pixbuf, file }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + enableParallelBuilding = true; + + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0"; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2 gnome3.grilo + clutter_gtk clutter-gst gnome3.totem-pl-parser gnome3.grilo-plugins + gst_all_1.gstreamer gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad + gnome3.libpeas pygobject3 shared_mime_info dbus_glib + gdk_pixbuf gnome3.defaultIconTheme librsvg gnome3.gnome_desktop + gnome3.gsettings_desktop_schemas makeWrapper file ]; + + preFixup = '' + wrapProgram "$out/bin/totem" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" \ + --prefix GRL_PLUGIN_PATH : "${gnome3.grilo-plugins}/lib/grilo-0.2" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Videos; + description = "Movie player for the GNOME desktop based on GStreamer"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/totem/src.nix b/pkgs/desktops/gnome-3/3.18/core/totem/src.nix new file mode 100644 index 000000000000..92bf2c1f8a65 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/totem/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "totem-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/totem/3.18/totem-3.18.0.tar.xz; + sha256 = "1b6a7e66414df4b2e2427a9c5f1fee5a5f286beb098fdbe0902e37e3663e3e89"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/tracker/default.nix b/pkgs/desktops/gnome-3/3.18/core/tracker/default.nix new file mode 100644 index 000000000000..88e6da2ad2d0 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/tracker/default.nix @@ -0,0 +1,55 @@ +{ stdenv, intltool, fetchurl, libxml2, upower +, pkgconfig, gtk3, glib +, bash, makeWrapper, itstool, vala, sqlite, libxslt +, gnome3, librsvg, gdk_pixbuf, file, libnotify +, evolution_data_server, gst_all_1, poppler +, icu, taglib, libjpeg, libtiff, giflib, libcue +, libvorbis, flac, exempi, networkmanager +, libpng, libexif, libgsf, libuuid, bzip2 }: + +let + majorVersion = "1.4"; +in +stdenv.mkDerivation rec { + name = "tracker-${majorVersion}.0"; + + src = fetchurl { + url = "mirror://gnome/sources/tracker/${majorVersion}/${name}.tar.xz"; + sha256 = "1ssisbix7ib3d6bgx9s675gx6ayy68jq2srhpzv038mkbaskaz68"; + }; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0 -I${poppler}/include/poppler"; + + enableParallelBuilding = true; + + buildInputs = [ vala pkgconfig gtk3 glib intltool itstool libxml2 + bzip2 gnome3.totem-pl-parser libxslt + gnome3.gsettings_desktop_schemas makeWrapper file + gdk_pixbuf gnome3.defaultIconTheme librsvg sqlite + upower libnotify evolution_data_server gnome3.libgee + gst_all_1.gstreamer gst_all_1.gst-plugins-base flac + poppler icu taglib libjpeg libtiff giflib libvorbis + exempi networkmanager libpng libexif libgsf libuuid ]; + + preConfigure = '' + substituteInPlace src/libtracker-sparql/Makefile.in --replace "--shared-library=libtracker-sparql" "--shared-library=$out/lib/libtracker-sparql" + ''; + + preFixup = '' + for f in $out/bin/* $out/libexec/*; do + wrapProgram $f \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + done + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Projects/Tracker; + description = "Desktop-neutral user information store, search tool and indexer"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/vino/default.nix b/pkgs/desktops/gnome-3/3.18/core/vino/default.nix new file mode 100644 index 000000000000..7a015b4a010c --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/vino/default.nix @@ -0,0 +1,25 @@ +{ stdenv, intltool, fetchurl, gtk3, glib, libsoup, pkgconfig, makeWrapper +, gnome3, libnotify, file, telepathy_glib, dbus_glib }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + buildInputs = [ gtk3 intltool glib libsoup pkgconfig libnotify + gnome3.defaultIconTheme dbus_glib telepathy_glib file + makeWrapper ]; + + preFixup = '' + wrapProgram "$out/libexec/vino-server" \ + --prefix XDG_DATA_DIRS : "$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/action/show/Projects/Vino; + description = "GNOME desktop sharing server"; + maintainers = with maintainers; [ lethalman iElectric ]; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/vino/src.nix b/pkgs/desktops/gnome-3/3.18/core/vino/src.nix new file mode 100644 index 000000000000..b2202c48733d --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/vino/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "vino-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/vino/3.18/vino-3.18.0.tar.xz; + sha256 = "52be0b036389713eab224abf27f2ca2a067ba5bd1f6b526592703576005e0919"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/vte/2.90.nix b/pkgs/desktops/gnome-3/3.18/core/vte/2.90.nix new file mode 100644 index 000000000000..5ccca36bcaad --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/vte/2.90.nix @@ -0,0 +1,40 @@ +{ stdenv, fetchurl, intltool, pkgconfig, gnome3, ncurses, gobjectIntrospection }: + +stdenv.mkDerivation rec { + versionMajor = "0.36"; + versionMinor = "3"; + moduleName = "vte"; + + name = "${moduleName}-${versionMajor}.${versionMinor}"; + + src = fetchurl { + url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz"; + sha256 = "54e5b07be3c0f7b158302f54ee79d4de1cb002f4259b6642b79b1e0e314a959c"; + }; + + buildInputs = [ gobjectIntrospection intltool pkgconfig gnome3.glib gnome3.gtk3 ncurses ]; + + configureFlags = [ "--enable-introspection" ]; + + enableParallelBuilding = true; + + postInstall = '' + substituteInPlace $out/lib/libvte2_90.la --replace "-lncurses" "-L${ncurses}/lib -lncurses" + ''; + + meta = with stdenv.lib; { + homepage = http://www.gnome.org/; + description = "A library implementing a terminal emulator widget for GTK+"; + longDescription = '' + VTE is a library (libvte) implementing a terminal emulator widget for + GTK+, and a minimal sample application (vte) using that. Vte is + mainly used in gnome-terminal, but can also be used to embed a + console/terminal in games, editors, IDEs, etc. VTE supports Unicode and + character set conversion, as well as emulating any terminal known to + the system's terminfo database. + ''; + license = licenses.lgpl2; + maintainers = with maintainers; [ astsmtl antono lethalman ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/vte/default.nix b/pkgs/desktops/gnome-3/3.18/core/vte/default.nix new file mode 100644 index 000000000000..b47381cf61b8 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/vte/default.nix @@ -0,0 +1,39 @@ +{ stdenv, fetchurl, intltool, pkgconfig, gnome3, ncurses, gobjectIntrospection, vala, libxml2 +, gnutls, selectTextPatch ? false }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + patches = with stdenv.lib; optional selectTextPatch ./expose_select_text.0.40.0.patch; + + buildInputs = [ gobjectIntrospection intltool pkgconfig gnome3.glib + gnome3.gtk3 ncurses vala libxml2 ]; + + propagatedBuildInputs = [ gnutls ]; + + preConfigure = "patchShebangs ."; + + configureFlags = [ "--enable-introspection" ]; + + enableParallelBuilding = true; + + postInstall = '' + substituteInPlace $out/lib/libvte2_90.la --replace "-lncurses" "-L${ncurses}/lib -lncurses" + ''; + + meta = with stdenv.lib; { + homepage = http://www.gnome.org/; + description = "A library implementing a terminal emulator widget for GTK+"; + longDescription = '' + VTE is a library (libvte) implementing a terminal emulator widget for + GTK+, and a minimal sample application (vte) using that. Vte is + mainly used in gnome-terminal, but can also be used to embed a + console/terminal in games, editors, IDEs, etc. VTE supports Unicode and + character set conversion, as well as emulating any terminal known to + the system's terminfo database. + ''; + license = licenses.lgpl2; + maintainers = with maintainers; [ astsmtl antono lethalman ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/vte/expose_select_text.0.40.0.patch b/pkgs/desktops/gnome-3/3.18/core/vte/expose_select_text.0.40.0.patch new file mode 100644 index 000000000000..c18f1b76b410 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/vte/expose_select_text.0.40.0.patch @@ -0,0 +1,226 @@ +Only in vte-0.40.0.new: .git +diff --unified -aur vte-0.40.0/src/vteaccess.c vte-0.40.0.new/src/vteaccess.c +--- vte-0.40.0/src/vteaccess.c 2015-03-16 06:34:37.000000000 -0400 ++++ vte-0.40.0.new/src/vteaccess.c 2015-04-10 00:08:53.146853382 -0400 +@@ -1444,7 +1444,7 @@ + *start_offset = offset_from_xy (priv, start_x, start_y); + _vte_terminal_get_end_selection (terminal, &end_x, &end_y); + *end_offset = offset_from_xy (priv, end_x, end_y); +- return _vte_terminal_get_selection (terminal); ++ return vte_terminal_get_selection (terminal); + } + + static gboolean +diff --unified -aur vte-0.40.0/src/vte.c vte-0.40.0.new/src/vte.c +--- vte-0.40.0/src/vte.c 2015-03-18 12:38:09.000000000 -0400 ++++ vte-0.40.0.new/src/vte.c 2015-04-10 00:08:53.150186722 -0400 +@@ -123,7 +123,6 @@ + gpointer data, + GArray *attributes, + gboolean include_trailing_spaces); +-static void _vte_terminal_disconnect_pty_read(VteTerminal *terminal); + static void _vte_terminal_disconnect_pty_write(VteTerminal *terminal); + static void vte_terminal_stop_processing (VteTerminal *terminal); + +@@ -3344,9 +3343,10 @@ + _vte_debug_print (VTE_DEBUG_IO, "removed poll of vte_terminal_io_read\n"); + terminal->pvt->pty_input_source = 0; + } +-static void +-_vte_terminal_connect_pty_read(VteTerminal *terminal) ++void ++vte_terminal_connect_pty_read(VteTerminal *terminal) + { ++ g_return_if_fail(VTE_IS_TERMINAL(terminal)); + if (terminal->pvt->pty_channel == NULL) { + return; + } +@@ -3398,9 +3398,10 @@ + } + } + +-static void +-_vte_terminal_disconnect_pty_read(VteTerminal *terminal) ++void ++vte_terminal_disconnect_pty_read(VteTerminal *terminal) + { ++ g_return_if_fail(VTE_IS_TERMINAL(terminal)); + if (terminal->pvt->pty_input_source != 0) { + _vte_debug_print (VTE_DEBUG_IO, "disconnecting poll of vte_terminal_io_read\n"); + g_source_remove(terminal->pvt->pty_input_source); +@@ -6302,6 +6303,28 @@ + } + } + ++/** ++ * vte_terminal_set_cursor_position: ++ * @terminal: a #VteTerminal ++ * @column: the new cursor column ++ * @row: the new cursor row ++ * ++ * Set the location of the cursor. ++ */ ++void ++vte_terminal_set_cursor_position(VteTerminal *terminal, ++ long column, long row) ++{ ++ g_return_if_fail(VTE_IS_TERMINAL(terminal)); ++ ++ _vte_invalidate_cursor_once(terminal, FALSE); ++ terminal->pvt->cursor.col = column; ++ terminal->pvt->cursor.row = row; ++ _vte_invalidate_cursor_once(terminal, FALSE); ++ _vte_check_cursor_blink(terminal); ++ vte_terminal_queue_cursor_moved(terminal); ++} ++ + static GtkClipboard * + vte_terminal_clipboard_get(VteTerminal *terminal, GdkAtom board) + { +@@ -6465,7 +6488,7 @@ + vte_terminal_extend_selection(terminal, x, y, FALSE, TRUE); + + /* Temporarily stop caring about input from the child. */ +- _vte_terminal_disconnect_pty_read(terminal); ++ vte_terminal_disconnect_pty_read(terminal); + } + + static gboolean +@@ -6482,7 +6505,7 @@ + terminal->pvt->selecting = FALSE; + + /* Reconnect to input from the child if we paused it. */ +- _vte_terminal_connect_pty_read(terminal); ++ vte_terminal_connect_pty_read(terminal); + + return TRUE; + } +@@ -6982,6 +7005,50 @@ + vte_terminal_deselect_all (terminal); + } + ++/** ++ * vte_terminal_get_selection_block_mode: ++ * @terminal: a #VteTerminal ++ * ++ * Checks whether or not block selection is enabled. ++ * ++ * Returns: %TRUE if block selection is enabled, %FALSE if not ++ */ ++gboolean ++vte_terminal_get_selection_block_mode(VteTerminal *terminal) { ++ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), FALSE); ++ return terminal->pvt->selection_block_mode; ++} ++ ++/** ++ * vte_terminal_set_selection_block_mode: ++ * @terminal: a #VteTerminal ++ * @block_mode: whether block selection is enabled ++ * ++ * Sets whether or not block selection is enabled. ++ */ ++void ++vte_terminal_set_selection_block_mode(VteTerminal *terminal, gboolean block_mode) { ++ g_return_if_fail(VTE_IS_TERMINAL(terminal)); ++ terminal->pvt->selection_block_mode = block_mode; ++} ++ ++/** ++ * vte_terminal_select_text: ++ * @terminal: a #VteTerminal ++ * @start_col: the starting column for the selection ++ * @start_row: the starting row for the selection ++ * @end_col: the end column for the selection ++ * @end_row: the end row for the selection ++ * ++ * Sets the current selection region. ++ */ ++void ++vte_terminal_select_text(VteTerminal *terminal, ++ long start_col, long start_row, ++ long end_col, long end_row) { ++ _vte_terminal_select_text(terminal, start_col, start_row, end_col, end_row, 0, 0); ++} ++ + /* Autoscroll a bit. */ + static gboolean + vte_terminal_autoscroll(VteTerminal *terminal) +@@ -8631,7 +8698,7 @@ + #endif + kill(terminal->pvt->pty_pid, SIGHUP); + } +- _vte_terminal_disconnect_pty_read(terminal); ++ vte_terminal_disconnect_pty_read(terminal); + _vte_terminal_disconnect_pty_write(terminal); + if (terminal->pvt->pty_channel != NULL) { + g_io_channel_unref (terminal->pvt->pty_channel); +@@ -12188,7 +12255,7 @@ + g_object_freeze_notify(object); + + if (pvt->pty != NULL) { +- _vte_terminal_disconnect_pty_read(terminal); ++ vte_terminal_disconnect_pty_read(terminal); + _vte_terminal_disconnect_pty_write(terminal); + + if (terminal->pvt->pty_channel != NULL) { +@@ -12243,7 +12310,7 @@ + _vte_terminal_setup_utf8 (terminal); + + /* Open channels to listen for input on. */ +- _vte_terminal_connect_pty_read (terminal); ++ vte_terminal_connect_pty_read (terminal); + + g_object_notify(object, "pty"); + +@@ -12276,7 +12343,7 @@ + } + + char * +-_vte_terminal_get_selection(VteTerminal *terminal) ++vte_terminal_get_selection(VteTerminal *terminal) + { + g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL); + +diff --unified -aur vte-0.40.0/src/vteint.h vte-0.40.0.new/src/vteint.h +--- vte-0.40.0/src/vteint.h 2014-05-28 08:22:48.000000000 -0400 ++++ vte-0.40.0.new/src/vteint.h 2015-04-10 00:08:53.153520062 -0400 +@@ -25,7 +25,6 @@ + G_BEGIN_DECLS + + void _vte_terminal_accessible_ref(VteTerminal *terminal); +-char* _vte_terminal_get_selection(VteTerminal *terminal); + void _vte_terminal_get_start_selection(VteTerminal *terminal, long *x, long *y); + void _vte_terminal_get_end_selection(VteTerminal *terminal, long *x, long *y); + void _vte_terminal_select_text(VteTerminal *terminal, long start_x, long start_y, long end_x, long end_y, int start_offset, int end_offset); +diff --unified -aur vte-0.40.0/src/vteterminal.h vte-0.40.0.new/src/vteterminal.h +--- vte-0.40.0/src/vteterminal.h 2015-03-18 12:38:09.000000000 -0400 ++++ vte-0.40.0.new/src/vteterminal.h 2015-04-10 00:08:53.150186722 -0400 +@@ -169,6 +169,18 @@ + + void vte_terminal_select_all(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); + void vte_terminal_unselect_all(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); ++gboolean vte_terminal_get_selection_block_mode(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); ++void vte_terminal_set_selection_block_mode(VteTerminal *terminal, ++ gboolean block_mode) _VTE_GNUC_NONNULL(1); ++void vte_terminal_select_text(VteTerminal *terminal, ++ long start_col, long start_row, ++ long end_col, long end_row) _VTE_GNUC_NONNULL(1); ++char * ++vte_terminal_get_selection(VteTerminal *terminal) _VTE_GNUC_NONNULL(1); ++ ++/* pause and unpause output */ ++void vte_terminal_disconnect_pty_read(VteTerminal *vte); ++void vte_terminal_connect_pty_read(VteTerminal *vte); + + /* By-word selection */ + void vte_terminal_set_word_char_exceptions(VteTerminal *terminal, +@@ -280,6 +292,8 @@ + void vte_terminal_get_cursor_position(VteTerminal *terminal, + glong *column, + glong *row) _VTE_GNUC_NONNULL(1); ++void vte_terminal_set_cursor_position(VteTerminal *terminal, ++ long column, long row) _VTE_GNUC_NONNULL(1); + + /* Add a matching expression, returning the tag the widget assigns to that + * expression. */ diff --git a/pkgs/desktops/gnome-3/3.18/core/vte/src.nix b/pkgs/desktops/gnome-3/3.18/core/vte/src.nix new file mode 100644 index 000000000000..ea6e39182fcc --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/vte/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "vte-0.42.0"; + + src = fetchurl { + url = mirror://gnome/sources/vte/0.42/vte-0.42.0.tar.xz; + sha256 = "2168f79d2043cbbe6d4375d01e54cebda71bb6f5d9dc8ad658b9a1dc1052de04"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/yelp-tools/default.nix b/pkgs/desktops/gnome-3/3.18/core/yelp-tools/default.nix new file mode 100644 index 000000000000..de708d48c5ec --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/yelp-tools/default.nix @@ -0,0 +1,17 @@ +{ stdenv, fetchurl, libxml2, libxslt, itstool, gnome3, pkgconfig }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ libxml2 libxslt itstool gnome3.yelp_xsl pkgconfig ]; + + doCheck = true; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Yelp/Tools; + description = "Small programs that help you create, edit, manage, and publish your Mallard or DocBook documentation"; + maintainers = with maintainers; [ iElectric ]; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/yelp-tools/src.nix b/pkgs/desktops/gnome-3/3.18/core/yelp-tools/src.nix new file mode 100644 index 000000000000..f03c6d1bc311 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/yelp-tools/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "yelp-tools-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/yelp-tools/3.18/yelp-tools-3.18.0.tar.xz; + sha256 = "c6c1d65f802397267cdc47aafd5398c4b60766e0a7ad2190426af6c0d0716932"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/yelp-xsl/default.nix b/pkgs/desktops/gnome-3/3.18/core/yelp-xsl/default.nix new file mode 100644 index 000000000000..0a3976f35a15 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/yelp-xsl/default.nix @@ -0,0 +1,18 @@ +{ stdenv, intltool, fetchurl, pkgconfig, bash +, itstool, libxml2, libxslt, gnome3 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + buildInputs = [ pkgconfig intltool itstool libxml2 libxslt ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Yelp; + description = "Yelp's universal stylesheets for Mallard and DocBook"; + maintainers = gnome3.maintainers; + license = [licenses.gpl2 licenses.lgpl2]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/yelp-xsl/src.nix b/pkgs/desktops/gnome-3/3.18/core/yelp-xsl/src.nix new file mode 100644 index 000000000000..a3343d2dfd1b --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/yelp-xsl/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "yelp-xsl-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/yelp-xsl/3.18/yelp-xsl-3.18.0.tar.xz; + sha256 = "893620857b72b3b43ee3b462281240b7ca4d80292f469552827f0597bf60d2b2"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/yelp/default.nix b/pkgs/desktops/gnome-3/3.18/core/yelp/default.nix new file mode 100644 index 000000000000..13464137bd8b --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/yelp/default.nix @@ -0,0 +1,26 @@ +{ stdenv, intltool, fetchurl, webkitgtk, pkgconfig, gtk3, glib +, file, librsvg, gnome3, gdk_pixbuf, sqlite +, bash, makeWrapper, itstool, libxml2, libxslt, icu, gst_all_1 +, wrapGAppsHook }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + preConfigure = "substituteInPlace ./configure --replace /usr/bin/file ${file}/bin/file"; + + buildInputs = [ pkgconfig gtk3 glib webkitgtk intltool itstool sqlite + libxml2 libxslt icu file makeWrapper gnome3.yelp_xsl + librsvg gdk_pixbuf gnome3.defaultIconTheme + gnome3.gsettings_desktop_schemas wrapGAppsHook + gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Yelp; + description = "The help viewer in Gnome"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/yelp/src.nix b/pkgs/desktops/gnome-3/3.18/core/yelp/src.nix new file mode 100644 index 000000000000..cb25d3d30c67 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/yelp/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "yelp-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/yelp/3.18/yelp-3.18.0.tar.xz; + sha256 = "a8c201e520c87832d017439492e4343e957a90da5c6d85060e8dd3b28ffee72e"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/zenity/default.nix b/pkgs/desktops/gnome-3/3.18/core/zenity/default.nix new file mode 100644 index 000000000000..8f525945a6af --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/zenity/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, cairo, libxml2, libxslt, gnome3, pango +, gnome_doc_utils, intltool, libX11, which, itstool }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + preBuild = '' + mkdir -p $out/include + ''; + + buildInputs = [ gnome3.gtk libxml2 libxslt libX11 itstool ]; + + nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which ]; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/core/zenity/src.nix b/pkgs/desktops/gnome-3/3.18/core/zenity/src.nix new file mode 100644 index 000000000000..87f16156515b --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/core/zenity/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "zenity-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/zenity/3.18/zenity-3.18.0.tar.xz; + sha256 = "0efafea95a830f3bf6eca805ff4a8008df760a6ad3e81181b9473dcf721c3a69"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/default.nix b/pkgs/desktops/gnome-3/3.18/default.nix new file mode 100644 index 000000000000..a3ae8933e64f --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/default.nix @@ -0,0 +1,394 @@ +{ pkgs }: + +let + + pkgsFun = overrides: + let + self = self_ // overrides; + self_ = with self; { + + overridePackages = f: + let newself = pkgsFun (f newself self); + in newself; + + callPackage = pkgs.newScope self; + + version = "3.18"; + maintainers = with pkgs.lib.maintainers; [ lethalman jgeerds ]; + + corePackages = with gnome3; [ + pkgs.desktop_file_utils pkgs.ibus + pkgs.shared_mime_info # for update-mime-database + glib # for gsettings + gtk3 # for gtk-update-icon-cache + glib_networking gvfs dconf gnome-backgrounds gnome_control_center + gnome-menus gnome_settings_daemon gnome_shell + gnome_themes_standard defaultIconTheme gnome-shell-extensions + pkgs.hicolor_icon_theme + ]; + + optionalPackages = with gnome3; [ baobab empathy eog epiphany evince + gucharmap nautilus totem vino yelp gnome-bluetooth + gnome-calculator gnome-contacts gnome-font-viewer gnome-screenshot + gnome-system-log gnome-system-monitor + gnome_terminal gnome-user-docs bijiben evolution file-roller gedit + gnome-clocks gnome-music gnome-tweak-tool gnome-photos + nautilus-sendto dconf-editor vinagre gnome-weather gnome-logs + gnome-maps gnome-characters gnome-calendar accerciser gnome-nettool + gnome-getting-started-docs + ]; + + gamesPackages = with gnome3; [ swell-foop lightsoff iagno + tali quadrapassel gnome-sudoku aisleriot five-or-more + four-in-a-row gnome-chess gnome-klotski gnome-mahjongg + gnome-mines gnome-nibbles gnome-robots gnome-tetravex + hitori gnome-taquin + ]; + + inherit (pkgs) glib gtk2 webkitgtk24x gtk3 gtkmm3 libcanberra; + inherit (pkgs.gnome2) ORBit2; + libsoup = pkgs.libsoup.override { gnomeSupport = true; }; + libchamplain = pkgs.libchamplain.override { libsoup = libsoup; }; + orbit = ORBit2; + gnome3 = self // { recurseForDerivations = false; }; + clutter = pkgs.clutter_1_24; + clutter_gtk = pkgs.clutter_gtk_1_6.override { inherit clutter gtk3; }; + clutter-gst_2 = pkgs.clutter-gst; + clutter-gst = pkgs.clutter-gst_3_0.override { inherit clutter cogl; }; + cogl = pkgs.cogl_1_22; + gtk = gtk3; + gtkmm = gtkmm3; + gtkvnc = pkgs.gtkvnc.override { enableGTK3 = true; }; + vala = pkgs.vala_0_26; + gegl_0_3 = pkgs.gegl_0_3.override { inherit gtk; }; + +# Simplify the nixos module and gnome packages + defaultIconTheme = adwaita-icon-theme; + +#### Core (http://ftp.acc.umu.se/pub/GNOME/core/) + + adwaita-icon-theme = callPackage ./core/adwaita-icon-theme { }; + + baobab = callPackage ./core/baobab { }; + + caribou = callPackage ./core/caribou { }; + + dconf = callPackage ./core/dconf { }; + dconf-editor = callPackage ./core/dconf-editor { }; + + empathy = callPackage ./core/empathy { + webkitgtk = webkitgtk24x; + clutter-gst = pkgs.clutter-gst; + }; + + epiphany = callPackage ./core/epiphany { }; + + evince = callPackage ./core/evince { }; # ToDo: dbus would prevent compilation, enable tests + + evolution_data_server = callPackage ./core/evolution-data-server { }; + + gconf = callPackage ./core/gconf { }; + + geocode_glib = callPackage ./core/geocode-glib { }; + + gcr = callPackage ./core/gcr { }; # ToDo: tests fail + + gdm = callPackage ./core/gdm { }; + + gjs = callPackage ./core/gjs { }; + + glib_networking = pkgs.glib_networking.override { + inherit gsettings_desktop_schemas; + }; + + gnome-backgrounds = callPackage ./core/gnome-backgrounds { }; + + gnome-bluetooth = callPackage ./core/gnome-bluetooth { }; + + gnome-contacts = callPackage ./core/gnome-contacts { }; + + gnome_control_center = callPackage ./core/gnome-control-center { }; + + gnome-calculator = callPackage ./core/gnome-calculator { }; + + gnome_common = callPackage ./core/gnome-common { }; + + gnome_desktop = callPackage ./core/gnome-desktop { }; + + gnome-dictionary = callPackage ./core/gnome-dictionary { }; + + gnome-disk-utility = callPackage ./core/gnome-disk-utility { }; + + gnome-font-viewer = callPackage ./core/gnome-font-viewer { }; + + gnome-menus = callPackage ./core/gnome-menus { }; + + gnome_keyring = callPackage ./core/gnome-keyring { }; + + libgnome_keyring = callPackage ./core/libgnome-keyring { }; + + libgnomekbd = callPackage ./core/libgnomekbd { }; + + folks = callPackage ./core/folks { }; + + gnome_online_accounts = callPackage ./core/gnome-online-accounts { }; + + gnome-online-miners = callPackage ./core/gnome-online-miners { }; + + gnome_session = callPackage ./core/gnome-session { }; + + gnome_shell = callPackage ./core/gnome-shell { }; + + gnome-shell-extensions = callPackage ./core/gnome-shell-extensions { }; + + gnome-screenshot = callPackage ./core/gnome-screenshot { }; + + gnome_settings_daemon = callPackage ./core/gnome-settings-daemon { }; + + gnome-system-log = callPackage ./core/gnome-system-log { }; + + gnome-system-monitor = callPackage ./core/gnome-system-monitor { }; + + gnome_terminal = callPackage ./core/gnome-terminal { }; + + gnome_themes_standard = callPackage ./core/gnome-themes-standard { }; + + gnome-user-docs = callPackage ./core/gnome-user-docs { }; + + gnome-user-share = callPackage ./core/gnome-user-share { }; + + grilo = callPackage ./core/grilo { }; + + grilo-plugins = callPackage ./core/grilo-plugins { }; + + gsettings_desktop_schemas = callPackage ./core/gsettings-desktop-schemas { }; + + gsound = callPackage ./core/gsound { }; + + gtksourceview = callPackage ./core/gtksourceview { }; + + gucharmap = callPackage ./core/gucharmap { }; + + gvfs = pkgs.gvfs.override { gnome = gnome3; gnomeSupport = true; }; + + eog = callPackage ./core/eog { }; + + libcroco = callPackage ./core/libcroco {}; + + libgee = callPackage ./core/libgee { }; + + libgdata = callPackage ./core/libgdata { }; + + libgxps = callPackage ./core/libgxps { }; + + libpeas = callPackage ./core/libpeas {}; + + libgweather = callPackage ./core/libgweather { }; + + libzapojit = callPackage ./core/libzapojit { }; + + mutter = callPackage ./core/mutter { }; + + nautilus = callPackage ./core/nautilus { }; + + networkmanager_openvpn = pkgs.networkmanager_openvpn.override { + inherit gnome3; + }; + + networkmanager_pptp = pkgs.networkmanager_pptp.override { + inherit gnome3; + }; + + networkmanager_vpnc = pkgs.networkmanager_vpnc.override { + inherit gnome3; + }; + + networkmanager_openconnect = pkgs.networkmanager_openconnect.override { + inherit gnome3; + }; + + networkmanager_l2tp = pkgs.networkmanager_l2tp.override { + inherit gnome3; + }; + + networkmanagerapplet = pkgs.networkmanagerapplet.override { + inherit gnome3 gsettings_desktop_schemas glib_networking; + }; + + rest = callPackage ./core/rest { }; + + sushi = callPackage ./core/sushi { + clutter-gst = pkgs.clutter-gst; + }; + + totem = callPackage ./core/totem { }; + + totem-pl-parser = callPackage ./core/totem-pl-parser { }; + + tracker = callPackage ./core/tracker { giflib = pkgs.giflib_5_0; }; + + vte = callPackage ./core/vte { }; + + vte_290 = callPackage ./core/vte/2.90.nix { }; + + vte-select-text = vte.override { selectTextPatch = true; }; + + vino = callPackage ./core/vino { }; + + yelp = callPackage ./core/yelp { }; + + yelp_xsl = callPackage ./core/yelp-xsl { }; + + yelp_tools = callPackage ./core/yelp-tools { }; + + zenity = callPackage ./core/zenity { }; + + +#### Apps (http://ftp.acc.umu.se/pub/GNOME/apps/) + + accerciser = callPackage ./apps/accerciser { }; + + bijiben = callPackage ./apps/bijiben { + webkitgtk = webkitgtk24x; + }; + + cheese = callPackage ./apps/cheese { }; + + evolution = callPackage ./apps/evolution { + webkitgtk = webkitgtk24x; + }; + + file-roller = callPackage ./apps/file-roller { }; + + gedit = callPackage ./apps/gedit { }; + + glade = callPackage ./apps/glade { }; + + gnome-boxes = callPackage ./apps/gnome-boxes { + gtkvnc = pkgs.gtkvnc.override { enableGTK3 = true; }; + spice_gtk = pkgs.spice_gtk.override { enableGTK3 = true; }; + }; + + gnome-calendar = callPackage ./apps/gnome-calendar { }; + + gnome-characters = callPackage ./apps/gnome-characters { }; + + gnome-clocks = callPackage ./apps/gnome-clocks { }; + + gnome-documents = callPackage ./apps/gnome-documents { }; + + gnome-getting-started-docs = callPackage ./apps/gnome-getting-started-docs { }; + + gnome-logs = callPackage ./apps/gnome-logs { }; + + gnome-maps = callPackage ./apps/gnome-maps { }; + + gnome-music = callPackage ./apps/gnome-music { }; + + gnome-nettool = callPackage ./apps/gnome-nettool { }; + + gnome-photos = callPackage ./apps/gnome-photos { + gegl = gegl_0_3; + }; + + gnome-weather = callPackage ./apps/gnome-weather { }; + + nautilus-sendto = callPackage ./apps/nautilus-sendto { }; + + polari = callPackage ./apps/polari { }; + + # scrollkeeper replacement + rarian = callPackage ./desktop/rarian { }; + + seahorse = callPackage ./apps/seahorse { }; + + vinagre = callPackage ./apps/vinagre { }; + +#### Dev http://ftp.gnome.org/pub/GNOME/devtools/ + + anjuta = callPackage ./devtools/anjuta { }; + + devhelp = callPackage ./devtools/devhelp { + webkitgtk = webkitgtk24x; + }; + + gdl = callPackage ./devtools/gdl { }; + + gnome-devel-docs = callPackage ./devtools/gnome-devel-docs { }; + +#### Games + + aisleriot = callPackage ./games/aisleriot { }; + + five-or-more = callPackage ./games/five-or-more { }; + + four-in-a-row = callPackage ./games/four-in-a-row { }; + + gnome-chess = callPackage ./games/gnome-chess { }; + + gnome-klotski = callPackage ./games/gnome-klotski { }; + + gnome-mahjongg = callPackage ./games/gnome-mahjongg { }; + + gnome-mines = callPackage ./games/gnome-mines { }; + + gnome-nibbles = callPackage ./games/gnome-nibbles { }; + + gnome-robots = callPackage ./games/gnome-robots { }; + + gnome-sudoku = callPackage ./games/gnome-sudoku { }; + + gnome-taquin = callPackage ./games/gnome-taquin { }; + + gnome-tetravex = callPackage ./games/gnome-tetravex { }; + + hitori = callPackage ./games/hitori { }; + + iagno = callPackage ./games/iagno { }; + + lightsoff = callPackage ./games/lightsoff { }; + + swell-foop = callPackage ./games/swell-foop { }; + + tali = callPackage ./games/tali { }; + + quadrapassel = callPackage ./games/quadrapassel { }; + +#### Misc -- other packages on http://ftp.gnome.org/pub/GNOME/sources/ + + california = callPackage ./misc/california { }; + + geary = callPackage ./misc/geary { + webkitgtk = webkitgtk24x; + }; + + gfbgraph = callPackage ./misc/gfbgraph { }; + + gitg = callPackage ./misc/gitg { + webkitgtk = webkitgtk24x; + }; + + libgda = callPackage ./misc/libgda { }; + + libgit2-glib = callPackage ./misc/libgit2-glib { + libgit2 = pkgs.libgit2.override { libssh2 = null; }; + }; + + libmediaart = callPackage ./misc/libmediaart { }; + + gexiv2 = callPackage ./misc/gexiv2 { }; + + gnome-tweak-tool = callPackage ./misc/gnome-tweak-tool { }; + + gpaste = callPackage ./misc/gpaste { }; + + gtkhtml = callPackage ./misc/gtkhtml { }; + + pomodoro = callPackage ./misc/pomodoro { }; + + gnome-video-effects = callPackage ./misc/gnome-video-effects { }; + + }; + in self; # pkgsFun + +in pkgsFun {} diff --git a/pkgs/desktops/gnome-3/3.18/desktop/rarian/default.nix b/pkgs/desktops/gnome-3/3.18/desktop/rarian/default.nix new file mode 100644 index 000000000000..a1b38b21869a --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/desktop/rarian/default.nix @@ -0,0 +1,16 @@ +{stdenv, fetchurl, pkgconfig, perl, perlXMLParser, libxml2, libxslt, docbook_xml_dtd_42}: + +stdenv.mkDerivation rec { + name = "rarian-0.8.1"; + src = fetchurl { + url = "mirror://gnome/sources/rarian/0.8/${name}.tar.bz2"; + sha256 = "aafe886d46e467eb3414e91fa9e42955bd4b618c3e19c42c773026b205a84577"; + }; + + buildInputs = [pkgconfig perl perlXMLParser libxml2 libxslt]; + configureFlags = "--with-xml-catalog=${docbook_xml_dtd_42}/xml/dtd/docbook/docbook.cat"; + + meta = with stdenv.lib; { + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/devtools/anjuta/default.nix b/pkgs/desktops/gnome-3/3.18/devtools/anjuta/default.nix new file mode 100644 index 000000000000..ef350e086845 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/devtools/anjuta/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, flex, bison, libxml2, intltool, + itstool, python, makeWrapper }: + +in stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + enableParallelBuilding = true; + + buildInputs = [ pkgconfig flex bison gtk3 libxml2 gnome3.gjs gnome3.gdl + gnome3.libgda gnome3.gtksourceview intltool itstool python makeWrapper ]; + + preFixup = '' + wrapProgram $out/bin/anjuta \ + --prefix XDG_DATA_DIRS : \ + "$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + description = "Software development studio"; + homepage = http://anjuta.org/; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/devtools/anjuta/src.nix b/pkgs/desktops/gnome-3/3.18/devtools/anjuta/src.nix new file mode 100644 index 000000000000..835024c3447f --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/devtools/anjuta/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "anjuta-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/anjuta/3.18/anjuta-3.18.0.tar.xz; + sha256 = "6a3fec0963f04bc62a9dfb951e577a3276d39c3414083ef73163c3fea8e741ba"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/devtools/devhelp/default.nix b/pkgs/desktops/gnome-3/3.18/devtools/devhelp/default.nix new file mode 100644 index 000000000000..1cfae754cfec --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/devtools/devhelp/default.nix @@ -0,0 +1,18 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, webkitgtk, intltool }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook webkitgtk intltool gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + homepage = https://live.gnome.org/devhelp; + description = "API documentation browser for GNOME"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/devtools/devhelp/src.nix b/pkgs/desktops/gnome-3/3.18/devtools/devhelp/src.nix new file mode 100644 index 000000000000..8da63dc2685d --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/devtools/devhelp/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "devhelp-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/devhelp/3.18/devhelp-3.18.0.tar.xz; + sha256 = "2494af16fedc311d7bb50bc47c32a69035f7b95fd7995d9db4fe497926087fb5"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/devtools/gdl/default.nix b/pkgs/desktops/gnome-3/3.18/devtools/gdl/default.nix new file mode 100644 index 000000000000..156d91b3eae7 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/devtools/gdl/default.nix @@ -0,0 +1,15 @@ +{ stdenv, fetchurl, pkgconfig, libxml2, gtk3, gnome3, intltool }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ pkgconfig libxml2 gtk3 intltool ]; + + meta = with stdenv.lib; { + description = "Gnome docking library"; + homepage = https://developer.gnome.org/gdl/; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/devtools/gdl/src.nix b/pkgs/desktops/gnome-3/3.18/devtools/gdl/src.nix new file mode 100644 index 000000000000..3fd391397999 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/devtools/gdl/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gdl-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gdl/3.18/gdl-3.18.0.tar.xz; + sha256 = "1499884e4fce375a963cf2b98b90e6724144f9b1f1ac8b84d765f4c85a2140b2"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/devtools/gnome-devel-docs/default.nix b/pkgs/desktops/gnome-3/3.18/devtools/gnome-devel-docs/default.nix new file mode 100644 index 000000000000..50960f41a312 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/devtools/gnome-devel-docs/default.nix @@ -0,0 +1,15 @@ +{ stdenv, fetchurl, gnome3, intltool, itstool, libxml2 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ intltool itstool libxml2 ]; + + meta = with stdenv.lib; { + homepage = https://github.com/GNOME/gnome-devel-docs; + description = "Developer documentation for GNOME"; + maintainers = gnome3.maintainers; + license = licenses.fdl12; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/devtools/gnome-devel-docs/src.nix b/pkgs/desktops/gnome-3/3.18/devtools/gnome-devel-docs/src.nix new file mode 100644 index 000000000000..50a575945d7e --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/devtools/gnome-devel-docs/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-devel-docs-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-devel-docs/3.18/gnome-devel-docs-3.18.0.tar.xz; + sha256 = "f237fb8593ada0346ccc932ae17647a883cc9f7026f4cad16f084bb7420e0925"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/aisleriot/default.nix b/pkgs/desktops/gnome-3/3.18/games/aisleriot/default.nix new file mode 100644 index 000000000000..e149a0b31264 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/aisleriot/default.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, intltool, itstool, gtk3 +, wrapGAppsHook, gconf, librsvg, libxml2, desktop_file_utils +, guile, libcanberra_gtk3 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + configureFlags = [ "--with-card-theme-formats=svg" ]; + + buildInputs = [ pkgconfig intltool itstool gtk3 wrapGAppsHook gconf + librsvg libxml2 desktop_file_utils guile libcanberra_gtk3 ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Aisleriot; + description = "A collection of patience games written in guile scheme"; + maintainers = gnome3.maintainers; + license = licenses.gpl3Plus; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/aisleriot/src.nix b/pkgs/desktops/gnome-3/3.18/games/aisleriot/src.nix new file mode 100644 index 000000000000..465fccd15b42 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/aisleriot/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "aisleriot-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/aisleriot/3.18/aisleriot-3.18.0.tar.xz; + sha256 = "3421f7dabe482ddae2fd2a053a13a2a9549fe960fec5838ab4fe6d89cff054dd"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/five-or-more/default.nix b/pkgs/desktops/gnome-3/3.18/games/five-or-more/default.nix new file mode 100644 index 000000000000..50a7d2906a77 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/five-or-more/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, librsvg, intltool, itstool, libxml2 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook librsvg intltool itstool libxml2 + gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Five_or_more; + description = "Remove colored balls from the board by forming lines"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/five-or-more/src.nix b/pkgs/desktops/gnome-3/3.18/games/five-or-more/src.nix new file mode 100644 index 000000000000..37d9794dc1b4 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/five-or-more/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "five-or-more-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/five-or-more/3.18/five-or-more-3.18.0.tar.xz; + sha256 = "e1e7cc81b1281382da9a6ab466d97f09561dbaf39031a9b93f0a45221234fe62"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/four-in-a-row/default.nix b/pkgs/desktops/gnome-3/3.18/games/four-in-a-row/default.nix new file mode 100644 index 000000000000..68228750cd87 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/four-in-a-row/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, intltool, itstool, libcanberra_gtk3, librsvg, libxml2 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook intltool itstool libcanberra_gtk3 librsvg + libxml2 gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Four-in-a-row; + description = "Make lines of the same color to win"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/four-in-a-row/src.nix b/pkgs/desktops/gnome-3/3.18/games/four-in-a-row/src.nix new file mode 100644 index 000000000000..dc24a4366e3c --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/four-in-a-row/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "four-in-a-row-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/four-in-a-row/3.18/four-in-a-row-3.18.0.tar.xz; + sha256 = "a65fece60b66122fbf5fddf646ac2acffc58a802cf3e87e5985d5b962d53df48"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-chess/default.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-chess/default.nix new file mode 100644 index 000000000000..a96dae3c12cb --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-chess/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, intltool, itstool, librsvg, libxml2 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook intltool itstool librsvg libxml2 + gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Chess; + description = "Play the classic two-player boardgame of chess"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-chess/src.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-chess/src.nix new file mode 100644 index 000000000000..5cbbb6c9025a --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-chess/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-chess-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-chess/3.18/gnome-chess-3.18.0.tar.xz; + sha256 = "c841198935d807618c3cecbf10ed24643390d504e17961717bac455f4e1b37ad"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-klotski/default.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-klotski/default.nix new file mode 100644 index 000000000000..b13bf8afbfae --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-klotski/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, librsvg, libxml2, intltool, itstool }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook intltool itstool librsvg libxml2 + gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Klotski; + description = "Slide blocks to solve the puzzle"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-klotski/src.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-klotski/src.nix new file mode 100644 index 000000000000..c772988198cf --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-klotski/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-klotski-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-klotski/3.18/gnome-klotski-3.18.0.tar.xz; + sha256 = "75ef9f7b3b09edf660165f62f8797f3850a49d6be4de0c258ee7d828e67820f2"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-mahjongg/default.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-mahjongg/default.nix new file mode 100644 index 000000000000..43db32e88577 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-mahjongg/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, librsvg, intltool, itstool, libxml2 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook librsvg intltool itstool libxml2 + gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Mahjongg; + description = "Disassemble a pile of tiles by removing matching pairs"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-mahjongg/src.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-mahjongg/src.nix new file mode 100644 index 000000000000..214c4a7d6e06 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-mahjongg/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-mahjongg-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-mahjongg/3.18/gnome-mahjongg-3.18.0.tar.xz; + sha256 = "7034428f5ac04bfd90689ee66894a6948a2ff1bfa2d2548f7559d2134b967405"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-mines/default.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-mines/default.nix new file mode 100644 index 000000000000..4d703bb37a79 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-mines/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, librsvg, intltool, itstool, libxml2 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook librsvg intltool itstool libxml2 + gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Mines; + description = "Clear hidden mines from a minefield"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-mines/src.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-mines/src.nix new file mode 100644 index 000000000000..e5099ac95756 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-mines/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-mines-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-mines/3.18/gnome-mines-3.18.0.tar.xz; + sha256 = "8b4c05ef0ab43031661e3cdb1b17ba551efe4e4488fe4462fee9557cd10a64f9"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-nibbles/default.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-nibbles/default.nix new file mode 100644 index 000000000000..85ffeb3c50fd --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-nibbles/default.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, librsvg, libcanberra_gtk3, clutter_gtk, intltool, itstool +, libxml2 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook intltool itstool libxml2 + librsvg libcanberra_gtk3 clutter_gtk gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Nibbles; + description = "Guide a worm around a maze"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-nibbles/src.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-nibbles/src.nix new file mode 100644 index 000000000000..d82422619f86 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-nibbles/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-nibbles-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-nibbles/3.18/gnome-nibbles-3.18.0.tar.xz; + sha256 = "9ffc549d574774905c79b391d3e59f8045f47504d96279d9b26cc602f59ad545"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-robots/default.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-robots/default.nix new file mode 100644 index 000000000000..3c318fa847c5 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-robots/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, librsvg, libcanberra_gtk3, intltool, itstool, libxml2 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook intltool itstool librsvg libcanberra_gtk3 + libxml2 gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Robots; + description = "Avoid the robots and make them crash into each other"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-robots/src.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-robots/src.nix new file mode 100644 index 000000000000..228e2ca81b18 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-robots/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-robots-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-robots/3.18/gnome-robots-3.18.0.tar.xz; + sha256 = "34311cb9de6a970f00fa9743dced2925e98f40f77b4a406e17b589412cb902fc"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-sudoku/default.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-sudoku/default.nix new file mode 100644 index 000000000000..c8ba82c7246d --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-sudoku/default.nix @@ -0,0 +1,17 @@ +{ stdenv, fetchurl, pkgconfig, intltool, gtk3, gnome3, wrapGAppsHook +, json_glib, qqwing, itstool, libxml2 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ pkgconfig intltool wrapGAppsHook gtk3 gnome3.libgee + json_glib qqwing itstool libxml2 ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Sudoku; + description = "Test your logic skills in this number grid puzzle"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-sudoku/src.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-sudoku/src.nix new file mode 100644 index 000000000000..f7dd422bec55 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-sudoku/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-sudoku-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-sudoku/3.18/gnome-sudoku-3.18.0.tar.xz; + sha256 = "e6180b14f7ccb9ec43e187cf358eceaf707edb4d9defff3386ae4ef8e53cce5b"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-taquin/default.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-taquin/default.nix new file mode 100644 index 000000000000..78eaa23e63bd --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-taquin/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, librsvg, libcanberra_gtk3, intltool, itstool, libxml2 }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook librsvg libcanberra_gtk3 + intltool itstool libxml2 gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Taquin; + description = "Move tiles so that they reach their places"; + maintainers = gnome3.maintainers; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-taquin/src.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-taquin/src.nix new file mode 100644 index 000000000000..41cb361edb3c --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-taquin/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-taquin-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-taquin/3.18/gnome-taquin-3.18.0.tar.xz; + sha256 = "3cee6a52003ccec3147020d24c079a0cd01b6855fcd486ef20a60e0f862e8760"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-tetravex/default.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-tetravex/default.nix new file mode 100644 index 000000000000..d6feab93dba1 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-tetravex/default.nix @@ -0,0 +1,18 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, libxml2, intltool, itstool }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook intltool itstool libxml2 gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Tetravex; + description = "Complete the puzzle by matching numbered tiles"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/gnome-tetravex/src.nix b/pkgs/desktops/gnome-3/3.18/games/gnome-tetravex/src.nix new file mode 100644 index 000000000000..d73562835e48 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/gnome-tetravex/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-tetravex-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-tetravex/3.18/gnome-tetravex-3.18.0.tar.xz; + sha256 = "ea00ff5ea9a3b583c4d755cefa2725dd7b3b0781972af1c56377c7eda48cb579"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/hitori/default.nix b/pkgs/desktops/gnome-3/3.18/games/hitori/default.nix new file mode 100644 index 000000000000..bd6be7d43c58 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/hitori/default.nix @@ -0,0 +1,24 @@ +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, wrapGAppsHook +, libxml2, intltool, itstool }: + +stdenv.mkDerivation rec { + name = "hitori-${gnome3.version}.1"; + + src = fetchurl { + url = "mirror://gnome/sources/hitori/${gnome3.version}/${name}.tar.xz"; + sha256 = "07pm3xl05jgb8x151k1j2ap57dmfvk2nkz9dmqnn5iywfigsysd1"; + }; + + buildInputs = [ + pkgconfig gtk3 wrapGAppsHook intltool itstool libxml2 + gnome3.defaultIconTheme + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Hitori; + description = "GTK+ application to generate and let you play games of Hitori"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/iagno/default.nix b/pkgs/desktops/gnome-3/3.18/games/iagno/default.nix new file mode 100644 index 000000000000..1b6f08d1fd65 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/iagno/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, gtk3, gnome3, gdk_pixbuf, librsvg, wrapGAppsHook +, intltool, itstool, libcanberra_gtk3, libxml2, dconf }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ pkgconfig gtk3 gnome3.defaultIconTheme gdk_pixbuf librsvg + dconf libxml2 libcanberra_gtk3 wrapGAppsHook itstool intltool ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Iagno; + description = "Computer version of the game Reversi, more popularly called Othello"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/iagno/src.nix b/pkgs/desktops/gnome-3/3.18/games/iagno/src.nix new file mode 100644 index 000000000000..09b30cf066b2 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/iagno/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "iagno-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/iagno/3.18/iagno-3.18.0.tar.xz; + sha256 = "4a03b474f9b0f0812c8b22b4991aa6dd894dedc05959001fd9e3e09d0d323c56"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/lightsoff/default.nix b/pkgs/desktops/gnome-3/3.18/games/lightsoff/default.nix new file mode 100644 index 000000000000..8ec54b489721 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/lightsoff/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, gtk3, gnome3, gdk_pixbuf, librsvg, wrapGAppsHook +, intltool, itstool, clutter, clutter_gtk, libxml2, dconf }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ pkgconfig gtk3 gnome3.defaultIconTheme gdk_pixbuf librsvg dconf + libxml2 clutter clutter_gtk wrapGAppsHook itstool intltool ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Lightsoff; + description = "Puzzle game, where the objective is to turn off all of the tiles on the board"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/lightsoff/src.nix b/pkgs/desktops/gnome-3/3.18/games/lightsoff/src.nix new file mode 100644 index 000000000000..6645182b3a42 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/lightsoff/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "lightsoff-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/lightsoff/3.18/lightsoff-3.18.0.tar.xz; + sha256 = "cd5126dae4506363d9196ce8ba083a769d9f8c287fb0008db53cecf6cdc55d61"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/quadrapassel/default.nix b/pkgs/desktops/gnome-3/3.18/games/quadrapassel/default.nix new file mode 100644 index 000000000000..f319608764d6 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/quadrapassel/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, pkgconfig, gtk3, gnome3, gdk_pixbuf +, librsvg, libcanberra_gtk3 +, intltool, itstool, libxml2, clutter, clutter_gtk, wrapGAppsHook }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ pkgconfig gtk3 gnome3.defaultIconTheme gdk_pixbuf librsvg + libcanberra_gtk3 itstool intltool clutter + libxml2 clutter_gtk wrapGAppsHook ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Quadrapassel; + description = "Classic falling-block game, Tetris"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/quadrapassel/src.nix b/pkgs/desktops/gnome-3/3.18/games/quadrapassel/src.nix new file mode 100644 index 000000000000..55b70b7ec58a --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/quadrapassel/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "quadrapassel-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/quadrapassel/3.18/quadrapassel-3.18.0.tar.xz; + sha256 = "2cd1d5328ab9e2c7041936e8e7e01157f292aa4428da81175fb1aa15d40ef8e1"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/swell-foop/default.nix b/pkgs/desktops/gnome-3/3.18/games/swell-foop/default.nix new file mode 100644 index 000000000000..3d3e424d0da8 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/swell-foop/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, gtk3, gnome3, gdk_pixbuf, librsvg, dconf +, clutter, clutter_gtk, intltool, itstool, libxml2, wrapGAppsHook }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ pkgconfig gtk3 gnome3.defaultIconTheme gdk_pixbuf librsvg + dconf wrapGAppsHook itstool intltool clutter clutter_gtk libxml2 ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = "https://wiki.gnome.org/Apps/Swell%20Foop"; + description = "Puzzle game, previously known as Same GNOME"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/swell-foop/src.nix b/pkgs/desktops/gnome-3/3.18/games/swell-foop/src.nix new file mode 100644 index 000000000000..ea127d8c8dc6 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/swell-foop/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "swell-foop-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/swell-foop/3.18/swell-foop-3.18.0.tar.xz; + sha256 = "b105a36e04dc33e2fe1c3200ed62efea0a68e2411453cb41269508aa739d2936"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/tali/default.nix b/pkgs/desktops/gnome-3/3.18/games/tali/default.nix new file mode 100644 index 000000000000..c2b1f5857124 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/tali/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, pkgconfig, gtk3, gnome3, gdk_pixbuf +, librsvg, intltool, itstool, libxml2, wrapGAppsHook }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ pkgconfig gtk3 gnome3.defaultIconTheme gdk_pixbuf librsvg + libxml2 itstool intltool wrapGAppsHook ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Tali; + description = "Sort of poker with dice and less money"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/games/tali/src.nix b/pkgs/desktops/gnome-3/3.18/games/tali/src.nix new file mode 100644 index 000000000000..12c8aefcd71c --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/games/tali/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "tali-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/tali/3.18/tali-3.18.0.tar.xz; + sha256 = "fe785ed2c3eeca8706834a967c0011cfee016008b4e55c1f5e0529b348bc9864"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/california/0002-Build-with-evolution-data-server-3.13.90.patch b/pkgs/desktops/gnome-3/3.18/misc/california/0002-Build-with-evolution-data-server-3.13.90.patch new file mode 100644 index 000000000000..c229cc96094f --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/california/0002-Build-with-evolution-data-server-3.13.90.patch @@ -0,0 +1,39 @@ +diff --git a/configure.ac b/configure.ac +index 8a94642..1ca6426 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -27,7 +27,7 @@ AC_SUBST(LDFLAGS) + GLIB_REQUIRED=2.38.0 + GTK_REQUIRED=3.12.2 + GEE_REQUIRED=0.10.5 +-ECAL_REQUIRED=3.8.5 ++ECAL_REQUIRED=3.13.90 + LIBSOUP_REQUIRED=2.44 + GDATA_REQUIRED=0.14.0 + GOA_REQUIRED=3.8.3 +diff --git a/src/backing/eds/backing-eds-calendar-source.vala b/src/backing/eds/backing-eds-calendar-source.vala +index ee6a572..5009b5d 100644 +--- a/src/backing/eds/backing-eds-calendar-source.vala ++++ b/src/backing/eds/backing-eds-calendar-source.vala +@@ -256,7 +256,7 @@ internal class EdsCalendarSource : CalendarSource { + + // Invoked by EdsStore prior to making it available outside of unit + internal async void open_async(Cancellable? cancellable) throws Error { +- client = (E.CalClient) yield E.CalClient.connect(eds_source, E.CalClientSourceType.EVENTS, ++ client = (E.CalClient) yield E.CalClient.connect(eds_source, E.CalClientSourceType.EVENTS, 1, + cancellable); + + client.bind_property("readonly", this, PROP_READONLY, BindingFlags.SYNC_CREATE); +diff --git a/vapi/libecal-1.2.vapi b/vapi/libecal-1.2.vapi +index 6ead3ec..46fd711 100644 +--- a/vapi/libecal-1.2.vapi ++++ b/vapi/libecal-1.2.vapi +@@ -23,7 +23,7 @@ namespace E { + public bool check_save_schedules (); + public static bool check_timezones (iCal.icalcomponent comp, GLib.List comps, GLib.Callback tzlookup, void* ecalclient, GLib.Cancellable cancellable) throws GLib.Error; + [CCode (finish_name = "e_cal_client_connect_finish")] +- public static async unowned E.Client connect (E.Source source, E.CalClientSourceType source_type, GLib.Cancellable cancellable) throws GLib.Error; ++ public static async unowned E.Client connect (E.Source source, E.CalClientSourceType source_type, uint32 wait_for_connected_seconds, GLib.Cancellable cancellable) throws GLib.Error; + public static unowned E.Client connect_sync (E.Source source, E.CalClientSourceType source_type, GLib.Cancellable cancellable) throws GLib.Error; + [CCode (finish_name = "e_cal_client_create_object_finish")] + public async void create_object (iCal.icalcomponent icalcomp, GLib.Cancellable? cancellable, out string out_uid) throws GLib.Error; diff --git a/pkgs/desktops/gnome-3/3.18/misc/california/default.nix b/pkgs/desktops/gnome-3/3.18/misc/california/default.nix new file mode 100644 index 000000000000..4bdeeb23a91e --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/california/default.nix @@ -0,0 +1,39 @@ +{ stdenv, fetchurl, intltool, pkgconfig, gtk3, vala, makeWrapper +, gnome3, glib, libsoup, libgdata, sqlite, itstool, xdg_utils }: + +let + majorVersion = "0.4"; +in +stdenv.mkDerivation rec { + name = "california-${majorVersion}.0"; + + src = fetchurl { + url = "mirror://gnome/sources/california/${majorVersion}/${name}.tar.xz"; + sha256 = "1dky2kllv469k8966ilnf4xrr7z35pq8mdvs7kwziy59cdikapxj"; + }; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + buildInputs = [ makeWrapper intltool pkgconfig vala glib gtk3 gnome3.libgee + libsoup libgdata gnome3.gnome_online_accounts gnome3.evolution_data_server + sqlite itstool xdg_utils gnome3.gsettings_desktop_schemas ]; + + preFixup = '' + wrapProgram "$out/bin/california" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gnome3.defaultIconTheme}/share:${gnome3.gnome_themes_standard}/share:$out/share:$GSETTINGS_SCHEMAS_PATH:${gnome3.gsettings_desktop_schemas}/share" + ''; + + enableParallelBuilding = true; + + # Apply fedoras patch to build with evolution-data-server >3.13 + patches = [ ./0002-Build-with-evolution-data-server-3.13.90.patch ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/California; + description = "Calendar application for GNOME 3"; + maintainers = with maintainers; [ pSub ]; + license = licenses.lgpl21; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/geary/default.nix b/pkgs/desktops/gnome-3/3.18/misc/geary/default.nix new file mode 100644 index 000000000000..11655edded00 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/geary/default.nix @@ -0,0 +1,52 @@ +{ stdenv, fetchurl, intltool, pkgconfig, gtk3, vala +, makeWrapper, gdk_pixbuf, cmake, desktop_file_utils +, libnotify, libcanberra, libsecret, gmime +, libpthreadstubs, sqlite +, gnome3, librsvg, gnome_doc_utils, webkitgtk }: + +let + majorVersion = "0.8"; +in +stdenv.mkDerivation rec { + name = "geary-${majorVersion}.2"; + + src = fetchurl { + url = "mirror://gnome/sources/geary/${majorVersion}/${name}.tar.xz"; + sha256 = "3cfa626168935acf49c9415fad54c7849f17fd833026cfd3c224ba0fb892d641"; + }; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + buildInputs = [ intltool pkgconfig gtk3 makeWrapper cmake desktop_file_utils gnome_doc_utils + vala webkitgtk libnotify libcanberra gnome3.libgee libsecret gmime sqlite + libpthreadstubs gnome3.gsettings_desktop_schemas gnome3.gcr + gdk_pixbuf librsvg gnome3.defaultIconTheme ]; + + preConfigure = '' + substituteInPlace src/CMakeLists.txt --replace '`pkg-config --variable=girdir gobject-introspection-1.0`' '${webkitgtk}/share/gir-1.0' + ''; + + postInstall = '' + mkdir -p $out/share/gsettings-schemas/${name}/ + mv $out/share/glib-2.0 $out/share/gsettings-schemas/${name} + ''; + + preFixup = '' + wrapProgram "$out/bin/geary" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gnome3.gnome_themes_standard}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" + ''; + + enableParallelBuilding = true; + + patches = [ ./disable_valadoc.patch ]; + patchFlags = "-p0"; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/Geary; + description = "Mail client for GNOME 3"; + maintainers = gnome3.maintainers; + license = licenses.lgpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/geary/disable_valadoc.patch b/pkgs/desktops/gnome-3/3.18/misc/geary/disable_valadoc.patch new file mode 100644 index 000000000000..e65c0dea7472 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/geary/disable_valadoc.patch @@ -0,0 +1,24 @@ +--- src/CMakeLists.txt.orig 2014-05-23 14:41:20.809160364 +0200 ++++ src/CMakeLists.txt 2014-05-23 14:41:29.240261581 +0200 +@@ -696,21 +696,6 @@ + ${CMAKE_COMMAND} -E copy geary-mailer ${CMAKE_BINARY_DIR}/ + ) + +-# Valadoc +-################################################# +-foreach(pkg ${ENGINE_PACKAGES}) +- list(APPEND valadoc_pkg_opts "--pkg=${pkg}") +-endforeach(pkg ${ENGINE_PACKAGES}) +- +-include(FindValadoc) +-add_custom_target( +- valadoc +- WORKING_DIRECTORY +- ${CMAKE_SOURCE_DIR}/src +- COMMAND +- ${VALADOC_EXECUTABLE} --force --no-protected -b ${CMAKE_CURRENT_SOURCE_DIR} -o ${CMAKE_SOURCE_DIR}/valadoc --package-name=geary --package-version=${VERSION} ${ENGINE_SRC} ${valadoc_pkg_opts} --vapidir=${CMAKE_SOURCE_DIR}/bindings/vapi +-) +- + ## Make clean: remove copied files + ################################################## + set_property( diff --git a/pkgs/desktops/gnome-3/3.18/misc/gexiv2/default.nix b/pkgs/desktops/gnome-3/3.18/misc/gexiv2/default.nix new file mode 100644 index 000000000000..7cea9cd8d150 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/gexiv2/default.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchurl, pkgconfig, exiv2, glib, libtool, m4, gnome3 }: + +let + majorVersion = "0.10"; +in +stdenv.mkDerivation rec { + name = "gexiv2-${version}"; + version = "${majorVersion}.3"; + + src = fetchurl { + url = "mirror://gnome/sources/gexiv2/${majorVersion}/${name}.tar.xz"; + sha256 = "390cfb966197fa9f3f32200bc578d7c7f3560358c235e6419657206a362d3988"; + }; + + preConfigure = '' + patchShebangs . + ''; + + buildInputs = [ pkgconfig glib libtool m4 ]; + propagatedBuildInputs = [ exiv2 ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Projects/gexiv2; + description = "GObject wrapper around the Exiv2 photo metadata library"; + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/gfbgraph/default.nix b/pkgs/desktops/gnome-3/3.18/misc/gfbgraph/default.nix new file mode 100644 index 000000000000..e85b087fa41f --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/gfbgraph/default.nix @@ -0,0 +1,23 @@ +{ stdenv, intltool, fetchurl, pkgconfig, glib +, gnome3, libsoup, json_glib }: + +stdenv.mkDerivation rec { + name = "gfbgraph-0.2.2"; + + src = fetchurl { + url = "mirror://gnome/sources/gfbgraph/0.2/${name}.tar.xz"; + sha256 = "66c7b1c951863565c179d0b4b5207f27b3b36f80afed9f6a9acfc5fc3ae775d4"; + }; + + buildInputs = [ pkgconfig glib gnome3.gnome_online_accounts ]; + propagatedBuildInputs = [ libsoup json_glib gnome3.rest ]; + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + description = "GLib/GObject wrapper for the Facebook Graph API"; + maintainers = gnome3.maintainers; + license = licenses.lgpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/gitg/default.nix b/pkgs/desktops/gnome-3/3.18/misc/gitg/default.nix new file mode 100644 index 000000000000..c517fca57bf9 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/gitg/default.nix @@ -0,0 +1,39 @@ +{ stdenv, fetchurl, fetchgit, vala, intltool, libgit2, pkgconfig, gtk3, glib +, json_glib, webkitgtk, makeWrapper, libpeas, bash, gobjectIntrospection +, gnome3, gtkspell3, shared_mime_info, libgee, libgit2-glib, librsvg }: + +# TODO: icons and theme still does not work +# use packaged gnome3.adwaita-icon-theme + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + preCheck = '' + substituteInPlace tests/libgitg/test-commit.c --replace "/bin/bash" "${bash}/bin/bash" + ''; + doCheck = true; + + makeFlags = "INTROSPECTION_GIRDIR=$(out)/share/gir-1.0/ INTROSPECTION_TYPELIBDIR=$(out)/lib/girepository-1.0"; + + propagatedUserEnvPkgs = [ shared_mime_info + gnome3.gnome_themes_standard ]; + + buildInputs = [ vala intltool libgit2 pkgconfig gtk3 glib json_glib webkitgtk libgee libpeas + libgit2-glib gtkspell3 gnome3.gsettings_desktop_schemas gnome3.gtksourceview librsvg + gobjectIntrospection makeWrapper gnome3.adwaita-icon-theme ]; + + preFixup = '' + wrapProgram "$out/bin/gitg" \ + --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" + ''; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/action/show/Apps/Gitg; + description = "GNOME GUI client to view git repositories"; + maintainers = with maintainers; [ iElectric ]; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/gitg/src.nix b/pkgs/desktops/gnome-3/3.18/misc/gitg/src.nix new file mode 100644 index 000000000000..ac95070b5f59 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/gitg/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gitg-3.18.0"; + + src = fetchurl { + url = mirror://gnome/sources/gitg/3.18/gitg-3.18.0.tar.xz; + sha256 = "fa4b7b9c492f13f5f1d864af1281ea377ac8c7619c856e05f533b18989edf421"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0001-Search-for-themes-and-icons-in-system-data-dirs.patch b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0001-Search-for-themes-and-icons-in-system-data-dirs.patch new file mode 100644 index 000000000000..d5a6f90e33db --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0001-Search-for-themes-and-icons-in-system-data-dirs.patch @@ -0,0 +1,123 @@ +From 175218579aa2b4f4974ff1cf4fd1ac93082a4714 Mon Sep 17 00:00:00 2001 +From: Jascha Geerds +Date: Sat, 1 Aug 2015 21:01:11 +0200 +Subject: [PATCH 1/1] Search for themes and icons in system data dirs + +--- + gtweak/tweaks/tweak_group_interface.py | 17 ++++------------- + gtweak/tweaks/tweak_group_keymouse.py | 7 ++----- + gtweak/utils.py | 17 +++++++++++++++++ + 3 files changed, 23 insertions(+), 18 deletions(-) + +diff --git a/gtweak/tweaks/tweak_group_interface.py b/gtweak/tweaks/tweak_group_interface.py +index ed2ad5f..a319907 100644 +--- a/gtweak/tweaks/tweak_group_interface.py ++++ b/gtweak/tweaks/tweak_group_interface.py +@@ -26,7 +26,7 @@ from gi.repository import Gtk + from gi.repository import GLib + + import gtweak +-from gtweak.utils import walk_directories, make_combo_list_with_default, extract_zip_file ++from gtweak.utils import walk_directories, make_combo_list_with_default, extract_zip_file, get_resource_dirs + from gtweak.tweakmodel import Tweak, TWEAK_GROUP_APPEARANCE + from gtweak.gshellwrapper import GnomeShellFactory + from gtweak.gsettings import GSettingsSetting +@@ -46,10 +46,7 @@ class GtkThemeSwitcher(GSettingsComboTweak): + + def _get_valid_themes(self): + """ Only shows themes that have variations for gtk+-3 and gtk+-2 """ +- dirs = ( os.path.join(gtweak.DATA_DIR, "themes"), +- os.path.join(GLib.get_user_data_dir(), "themes"), +- os.path.join(os.path.expanduser("~"), ".themes")) +- valid = walk_directories(dirs, lambda d: ++ valid = walk_directories(get_resource_dirs('themes'), lambda d: + os.path.exists(os.path.join(d, "gtk-2.0")) and \ + os.path.exists(os.path.join(d, "gtk-3.0"))) + return valid +@@ -64,10 +61,7 @@ class IconThemeSwitcher(GSettingsComboTweak): + **options) + + def _get_valid_icon_themes(self): +- dirs = ( os.path.join(gtweak.DATA_DIR, "icons"), +- os.path.join(GLib.get_user_data_dir(), "icons"), +- os.path.join(os.path.expanduser("~"), ".icons")) +- valid = walk_directories(dirs, lambda d: ++ valid = walk_directories(get_resource_dirs("icons"), lambda d: + os.path.isdir(d) and \ + os.path.exists(os.path.join(d, "index.theme"))) + return valid +@@ -82,10 +76,7 @@ class CursorThemeSwitcher(GSettingsComboTweak): + **options) + + def _get_valid_cursor_themes(self): +- dirs = ( os.path.join(gtweak.DATA_DIR, "icons"), +- os.path.join(GLib.get_user_data_dir(), "icons"), +- os.path.join(os.path.expanduser("~"), ".icons")) +- valid = walk_directories(dirs, lambda d: ++ valid = walk_directories(get_resource_dirs("icons"), lambda d: + os.path.isdir(d) and \ + os.path.exists(os.path.join(d, "cursors"))) + return valid +diff --git a/gtweak/tweaks/tweak_group_keymouse.py b/gtweak/tweaks/tweak_group_keymouse.py +index b56a4f4..3486098 100644 +--- a/gtweak/tweaks/tweak_group_keymouse.py ++++ b/gtweak/tweaks/tweak_group_keymouse.py +@@ -20,7 +20,7 @@ import os.path + from gi.repository import GLib + + import gtweak +-from gtweak.utils import XSettingsOverrides, walk_directories, make_combo_list_with_default ++from gtweak.utils import XSettingsOverrides, walk_directories, make_combo_list_with_default, get_resource_dirs + from gtweak.widgets import ListBoxTweakGroup, GSettingsComboTweak, GSettingsSwitchTweak, GetterSetterSwitchTweak, Title + + class PrimaryPasteTweak(GetterSetterSwitchTweak): +@@ -47,10 +47,7 @@ class KeyThemeSwitcher(GSettingsComboTweak): + **options) + + def _get_valid_key_themes(self): +- dirs = ( os.path.join(gtweak.DATA_DIR, "themes"), +- os.path.join(GLib.get_user_data_dir(), "themes"), +- os.path.join(os.path.expanduser("~"), ".themes")) +- valid = walk_directories(dirs, lambda d: ++ valid = walk_directories(get_resource_dirs("themes"), lambda d: + os.path.isfile(os.path.join(d, "gtk-3.0", "gtk-keys.css")) and \ + os.path.isfile(os.path.join(d, "gtk-2.0-key", "gtkrc"))) + return valid +diff --git a/gtweak/utils.py b/gtweak/utils.py +index 3d20425..0fcb51d 100644 +--- a/gtweak/utils.py ++++ b/gtweak/utils.py +@@ -21,6 +21,7 @@ import tempfile + import shutil + import subprocess + import glob ++import itertools + + import gtweak + from gtweak.gsettings import GSettingsSetting +@@ -114,6 +115,22 @@ def execute_subprocess(cmd_then_args, block=True): + stdout, stderr = p.communicate() + return stdout, stderr, p.returncode + ++def get_resource_dirs(resource): ++ """Returns a list of all known resource dirs for a given resource. ++ ++ :param str resource: ++ Name of the resource (e.g. "themes") ++ :return: ++ A list of resource dirs ++ """ ++ dirs = [os.path.join(dir, resource) ++ for dir in itertools.chain(GLib.get_system_data_dirs(), ++ (gtweak.DATA_DIR, ++ GLib.get_user_data_dir()))] ++ dirs += [os.path.join(os.path.expanduser("~"), ".{}".format(resource))] ++ ++ return [dir for dir in dirs if os.path.isdir(dir)] ++ + @singleton + class AutostartManager: + +-- +2.4.5 + diff --git a/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0002-Don-t-show-multiple-entries-for-a-single-theme.patch b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0002-Don-t-show-multiple-entries-for-a-single-theme.patch new file mode 100644 index 000000000000..61ae27349795 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0002-Don-t-show-multiple-entries-for-a-single-theme.patch @@ -0,0 +1,103 @@ +From edd3203c7b7d5ba596df9f148c443cdfc8a58d88 Mon Sep 17 00:00:00 2001 +From: Jascha Geerds +Date: Sat, 1 Aug 2015 21:26:57 +0200 +Subject: [PATCH 1/1] Don't show multiple entries for a single theme + +--- + gtweak/tweaks/tweak_group_interface.py | 8 ++++---- + gtweak/tweaks/tweak_group_keymouse.py | 4 ++-- + gtweak/utils.py | 16 ++++++++++++++++ + 3 files changed, 22 insertions(+), 6 deletions(-) + +diff --git a/gtweak/tweaks/tweak_group_interface.py b/gtweak/tweaks/tweak_group_interface.py +index a319907..82c0286 100644 +--- a/gtweak/tweaks/tweak_group_interface.py ++++ b/gtweak/tweaks/tweak_group_interface.py +@@ -26,7 +26,7 @@ from gi.repository import Gtk + from gi.repository import GLib + + import gtweak +-from gtweak.utils import walk_directories, make_combo_list_with_default, extract_zip_file, get_resource_dirs ++from gtweak.utils import walk_directories, make_combo_list_with_default, extract_zip_file, get_resource_dirs, get_unique_resources + from gtweak.tweakmodel import Tweak, TWEAK_GROUP_APPEARANCE + from gtweak.gshellwrapper import GnomeShellFactory + from gtweak.gsettings import GSettingsSetting +@@ -49,7 +49,7 @@ class GtkThemeSwitcher(GSettingsComboTweak): + valid = walk_directories(get_resource_dirs('themes'), lambda d: + os.path.exists(os.path.join(d, "gtk-2.0")) and \ + os.path.exists(os.path.join(d, "gtk-3.0"))) +- return valid ++ return get_unique_resources(valid) + + class IconThemeSwitcher(GSettingsComboTweak): + def __init__(self, **options): +@@ -64,7 +64,7 @@ class IconThemeSwitcher(GSettingsComboTweak): + valid = walk_directories(get_resource_dirs("icons"), lambda d: + os.path.isdir(d) and \ + os.path.exists(os.path.join(d, "index.theme"))) +- return valid ++ return get_unique_resources(valid) + + class CursorThemeSwitcher(GSettingsComboTweak): + def __init__(self, **options): +@@ -79,7 +79,7 @@ class CursorThemeSwitcher(GSettingsComboTweak): + valid = walk_directories(get_resource_dirs("icons"), lambda d: + os.path.isdir(d) and \ + os.path.exists(os.path.join(d, "cursors"))) +- return valid ++ return get_unique_resources(valid) + + class ShellThemeTweak(Gtk.Box, Tweak): + +diff --git a/gtweak/tweaks/tweak_group_keymouse.py b/gtweak/tweaks/tweak_group_keymouse.py +index 3486098..9f53425 100644 +--- a/gtweak/tweaks/tweak_group_keymouse.py ++++ b/gtweak/tweaks/tweak_group_keymouse.py +@@ -20,7 +20,7 @@ import os.path + from gi.repository import GLib + + import gtweak +-from gtweak.utils import XSettingsOverrides, walk_directories, make_combo_list_with_default, get_resource_dirs ++from gtweak.utils import XSettingsOverrides, walk_directories, make_combo_list_with_default, get_resource_dirs, get_unique_resources + from gtweak.widgets import ListBoxTweakGroup, GSettingsComboTweak, GSettingsSwitchTweak, GetterSetterSwitchTweak, Title + + class PrimaryPasteTweak(GetterSetterSwitchTweak): +@@ -50,7 +50,7 @@ class KeyThemeSwitcher(GSettingsComboTweak): + valid = walk_directories(get_resource_dirs("themes"), lambda d: + os.path.isfile(os.path.join(d, "gtk-3.0", "gtk-keys.css")) and \ + os.path.isfile(os.path.join(d, "gtk-2.0-key", "gtkrc"))) +- return valid ++ return get_unique_resources(valid) + + TWEAK_GROUPS = [ + ListBoxTweakGroup(_("Keyboard and Mouse"), +diff --git a/gtweak/utils.py b/gtweak/utils.py +index 0fcb51d..ce8e12e 100644 +--- a/gtweak/utils.py ++++ b/gtweak/utils.py +@@ -131,6 +131,22 @@ def get_resource_dirs(resource): + + return [dir for dir in dirs if os.path.isdir(dir)] + ++def get_unique_resources(dirs): ++ """Filter out duplicated resources. ++ ++ :param list dirs: ++ List of resource dirs (e.g. /usr/share/themes/Adwaita) ++ :return: ++ List of dirs without duplicated resources ++ """ ++ unique_dirs = {} ++ for dir in dirs: ++ basename = os.path.basename(dir) ++ if basename not in unique_dirs: ++ unique_dirs[basename] = dir ++ ++ return unique_dirs ++ + @singleton + class AutostartManager: + +-- +2.4.5 + diff --git a/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0003-Create-config-dir-if-it-doesn-t-exist.patch b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0003-Create-config-dir-if-it-doesn-t-exist.patch new file mode 100644 index 000000000000..840ebb82ec75 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/0003-Create-config-dir-if-it-doesn-t-exist.patch @@ -0,0 +1,29 @@ +From dea8fc3c37c43f4fbbcc658ee995a95b93452b3c Mon Sep 17 00:00:00 2001 +From: Jascha Geerds +Date: Sun, 2 Aug 2015 12:01:20 +0200 +Subject: [PATCH 1/1] Create config dir if it doesn't exist + +Otherwise gnome-tweak-tool can't enable the dark theme and fails +without a clear error message. +--- + gtweak/gtksettings.py | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/gtweak/gtksettings.py b/gtweak/gtksettings.py +index bcec9f1..f39991b 100644 +--- a/gtweak/gtksettings.py ++++ b/gtweak/gtksettings.py +@@ -35,6 +35,10 @@ class GtkSettingsManager: + def _get_keyfile(self): + keyfile = None + try: ++ config_dir = os.path.dirname(self._path) ++ if not os.path.isdir(config_dir): ++ os.makedirs(config_dir) ++ + keyfile = GLib.KeyFile() + keyfile.load_from_file(self._path, 0) + except MemoryError: +-- +2.4.5 + diff --git a/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/default.nix b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/default.nix new file mode 100644 index 000000000000..986d4058af92 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/default.nix @@ -0,0 +1,44 @@ +{ stdenv, intltool, fetchurl, python, pygobject3, atk +, pkgconfig, gtk3, glib, libsoup +, bash, makeWrapper, itstool, libxml2, python3Packages +, gnome3, librsvg, gdk_pixbuf, file, libnotify }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + doCheck = true; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + makeFlags = [ "DESTDIR=/" ]; + + buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2 + gnome3.gsettings_desktop_schemas makeWrapper file + gdk_pixbuf gnome3.defaultIconTheme librsvg + python pygobject3 libnotify gnome3.gnome_shell + libsoup gnome3.gnome_settings_daemon gnome3.nautilus + gnome3.gnome_desktop ]; + + preFixup = '' + wrapProgram "$out/bin/gnome-tweak-tool" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --suffix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \ + --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ + --prefix PYTHONPATH : "$PYTHONPATH:$(toPythonPath $out)" + ''; + + patches = [ + ./find_gsettings.patch + ./0001-Search-for-themes-and-icons-in-system-data-dirs.patch + ./0002-Don-t-show-multiple-entries-for-a-single-theme.patch + ./0003-Create-config-dir-if-it-doesn-t-exist.patch + ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/action/show/Apps/GnomeTweakTool; + description = "A tool to customize advanced GNOME 3 options"; + maintainers = gnome3.maintainers; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/find_gsettings.patch b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/find_gsettings.patch new file mode 100644 index 000000000000..3e68c04cb3ab --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/find_gsettings.patch @@ -0,0 +1,22 @@ +diff --git a/gtweak/gsettings.py b/gtweak/gsettings.py +index a00fe19..dce74b2 100644 +--- a/gtweak/gsettings.py ++++ b/gtweak/gsettings.py +@@ -33,10 +33,15 @@ class GSettingsMissingError(Exception): + + class _GSettingsSchema: + def __init__(self, schema_name, schema_dir=None, schema_filename=None, **options): +- if not schema_dir: +- schema_dir = gtweak.GSETTINGS_SCHEMA_DIR + if not schema_filename: + schema_filename = schema_name + ".gschema.xml" ++ if not schema_dir: ++ schema_dir = gtweak.GSETTINGS_SCHEMA_DIR ++ for xdg_dir in GLib.get_system_data_dirs(): ++ dir = os.path.join(xdg_dir, "glib-2.0", "schemas") ++ if os.path.exists(os.path.join(dir, schema_filename)): ++ schema_dir = dir ++ break + + schema_path = os.path.join(schema_dir, schema_filename) + if not os.path.exists(schema_path): diff --git a/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/src.nix b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/src.nix new file mode 100644 index 000000000000..abb957394e7b --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/gnome-tweak-tool/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gnome-tweak-tool-3.16.2"; + + src = fetchurl { + url = mirror://gnome/sources/gnome-tweak-tool/3.16/gnome-tweak-tool-3.16.2.tar.xz; + sha256 = "b1e403725c3489be07e1d754f044d1128eddb38204a344bbe0baa523d531bd64"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/gnome-video-effects/default.nix b/pkgs/desktops/gnome-3/3.18/misc/gnome-video-effects/default.nix new file mode 100644 index 000000000000..c0bd2fed3f2d --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/gnome-video-effects/default.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchurl, pkgconfig, intltool, gnome3 }: + +stdenv.mkDerivation rec { + name = "gnome-video-effects-${version}"; + version = "0.4.1"; + + src = fetchurl { + url = "mirror://gnome/sources/gnome-video-effects/0.4/${name}.tar.xz"; + sha256 = "0jl4iny2dqpcgi3sgxzpgnbw0752i8ay3rscp2cgdjlp79ql5gil"; + }; + + buildInputs = [ pkgconfig intltool ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Projects/GnomeVideoEffects; + platforms = platforms.linux; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/gpaste/default.nix b/pkgs/desktops/gnome-3/3.18/misc/gpaste/default.nix new file mode 100644 index 000000000000..dee9caf444c5 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/gpaste/default.nix @@ -0,0 +1,44 @@ +{ stdenv, fetchurl, intltool, autoreconfHook, pkgconfig, vala, glib +, pango, gtk3, gnome3, dbus, clutter, appstream-glib, makeWrapper }: + +stdenv.mkDerivation rec { + version = "${gnome3.version}.3"; + name = "gpaste-${version}"; + + src = fetchurl { + url = "https://github.com/Keruspe/GPaste/archive/v${version}.tar.gz"; + sha256 = "1czc707y2ksb8lgq1la0qkj3wpi202hjfiyshsndhw0pqn3qjj4a"; + }; + + buildInputs = [ intltool autoreconfHook pkgconfig vala glib + gtk3 gnome3.gnome_control_center dbus.libs + clutter pango appstream-glib makeWrapper ]; + + preConfigure = "intltoolize -f"; + + configureFlags = [ "--with-controlcenterdir=$(out)/gnome-control-center/keybindings" + "--with-dbusservicesdir=$(out)/share/dbus-1/services" ]; + + enableParallelBuilding = true; + + preFixup = + let + libPath = stdenv.lib.makeLibraryPath + [ glib gtk3 clutter pango ]; + in + '' + for i in $out/libexec/gpaste/*; do + wrapProgram $i \ + --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \ + --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" + done + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/Keruspe/GPaste; + description = "Clipboard management system with GNOME3 integration"; + license = licenses.gpl3; + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/gtkhtml/default.nix b/pkgs/desktops/gnome-3/3.18/misc/gtkhtml/default.nix new file mode 100644 index 000000000000..89703b61932b --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/gtkhtml/default.nix @@ -0,0 +1,16 @@ +{ stdenv, fetchurl, pkgconfig, gtk3, intltool +, gnome3, enchant, isocodes }: + +stdenv.mkDerivation rec { + inherit (import ./src.nix fetchurl) name src; + + buildInputs = [ pkgconfig gtk3 intltool gnome3.adwaita-icon-theme + gnome3.gsettings_desktop_schemas ]; + + propagatedBuildInputs = [ enchant isocodes ]; + + meta = with stdenv.lib; { + platforms = platforms.linux; + maintainers = gnome3.maintainers; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/gtkhtml/src.nix b/pkgs/desktops/gnome-3/3.18/misc/gtkhtml/src.nix new file mode 100644 index 000000000000..21876ec9c399 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/gtkhtml/src.nix @@ -0,0 +1,10 @@ +# Autogenerated by maintainers/scripts/gnome.sh update + +fetchurl: { + name = "gtkhtml-4.10.0"; + + src = fetchurl { + url = mirror://gnome/sources/gtkhtml/4.10/gtkhtml-4.10.0.tar.xz; + sha256 = "ca3b6424fb2c7ac5d9cb8fdafb69318fa2e825c9cf6ed17d1e38d9b29e5606c3"; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/libgda/default.nix b/pkgs/desktops/gnome-3/3.18/misc/libgda/default.nix new file mode 100644 index 000000000000..1fcb411d120d --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/libgda/default.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchurl, pkgconfig, intltool, itstool, libxml2, gtk3, openssl }: + +let + major = "5.2"; + minor = "2"; + +in stdenv.mkDerivation rec { + version = "${major}.${minor}"; + name = "libgda-${version}"; + + src = fetchurl { + url = "mirror://gnome/sources/libgda/${major}/${name}.tar.xz"; + sha256 = "c9b8b1c32f1011e47b73c5dcf36649aaef2f1edaa5f5d75be20d9caadc2bc3e4"; + }; + + configureFlags = [ + "--enable-gi-system-install=no" + ]; + + enableParallelBuilding = true; + + buildInputs = [ pkgconfig intltool itstool libxml2 gtk3 openssl ]; + + meta = with stdenv.lib; { + description = "Database access library"; + homepage = http://www.gnome-db.org/; + license = [ licenses.lgpl2 licenses.gpl2 ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/libgit2-glib/default.nix b/pkgs/desktops/gnome-3/3.18/misc/libgit2-glib/default.nix new file mode 100644 index 000000000000..dbdd2cc7fd13 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/libgit2-glib/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl, gnome3, libtool, pkgconfig, vala +, gtk_doc, gobjectIntrospection, libgit2, glib }: + +let + majorVersion = "0.0"; +in +stdenv.mkDerivation rec { + name = "libgit2-glib-${majorVersion}.24"; + + src = fetchurl { + url = "mirror://gnome/sources/libgit2-glib/0.0/${name}.tar.xz"; + sha256 = "8a0a6f65d86f2c8cb9bcb20c5e0ea6fd02271399292a71fc7e6852f13adbbdb8"; + }; + + buildInputs = [ gnome3.gnome_common libtool pkgconfig vala + gtk_doc gobjectIntrospection libgit2 glib ]; + + meta = with stdenv.lib; { + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/libmediaart/default.nix b/pkgs/desktops/gnome-3/3.18/misc/libmediaart/default.nix new file mode 100644 index 000000000000..b86480125730 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/libmediaart/default.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl, pkgconfig, glib, gdk_pixbuf, gobjectIntrospection, gnome3 }: + +let + majorVersion = "1.9"; +in +stdenv.mkDerivation rec { + name = "libmediaart-${majorVersion}.0"; + + src = fetchurl { + url = "mirror://gnome/sources/libmediaart/${majorVersion}/${name}.tar.xz"; + sha256 = "0vshvm3sfwqs365glamvkmgnzjnmxd15j47xn0ak3p6l57dqlrll"; + }; + + buildInputs = [ pkgconfig glib gdk_pixbuf gobjectIntrospection ]; + + meta = with stdenv.lib; { + description = "Library tasked with managing, extracting and handling media art caches"; + maintainers = gnome3.maintainers; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/desktops/gnome-3/3.18/misc/pomodoro/default.nix b/pkgs/desktops/gnome-3/3.18/misc/pomodoro/default.nix new file mode 100644 index 000000000000..0440af440fec --- /dev/null +++ b/pkgs/desktops/gnome-3/3.18/misc/pomodoro/default.nix @@ -0,0 +1,50 @@ +{ stdenv, fetchFromGitHub, which, automake113x, intltool, pkgconfig, libtool, makeWrapper, + dbus_glib, libcanberra, gst_all_1, vala, gnome3, gtk3, gst_plugins_base, + glib, gobjectIntrospection, telepathy_glib +}: + +stdenv.mkDerivation rec { + rev = "624945d"; + name = "gnome-shell-pomodoro-${gnome3.version}-${rev}"; + + src = fetchFromGitHub { + owner = "codito"; + repo = "gnome-pomodoro"; + rev = "${rev}"; + sha256 = "0vjy95zvd309n8g13fa80qhqlv7k6wswhrjw7gddxrnmr662xdqq"; + }; + + configureScript = ''./autogen.sh''; + + buildInputs = [ + which automake113x intltool glib gobjectIntrospection pkgconfig libtool + makeWrapper dbus_glib libcanberra vala gst_all_1.gstreamer + gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good + gnome3.gsettings_desktop_schemas gnome3.gnome_desktop + gnome3.gnome_common gnome3.gnome_shell gtk3 telepathy_glib + gnome3.defaultIconTheme + ]; + + preBuild = '' + sed -i 's|\$(INTROSPECTION_GIRDIR)|${gnome3.gnome_desktop}/share/gir-1.0|' \ + vapi/Makefile + ''; + + preFixup = '' + wrapProgram $out/bin/gnome-pomodoro \ + --prefix XDG_DATA_DIRS : \ + "$out/share:$GSETTINGS_SCHEMAS_PATH:$XDG_DATA_DIRS" + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/codito/gnome-shell-pomodoro; + description = "A time management utility for GNOME based on the pomodoro technique"; + longDescription = '' + This GNOME utility helps to manage time according to Pomodoro Technique. + It intends to improve productivity and focus by taking short breaks. + ''; + maintainers = with maintainers; [ DamienCassou jgeerds ]; + license = licenses.gpl3; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 56fadb5ce10f..e276c3268593 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13855,6 +13855,8 @@ let gnome3_16 = recurseIntoAttrs (callPackage ../desktops/gnome-3/3.16 { }); + gnome3_18 = recurseIntoAttrs (callPackage ../desktops/gnome-3/3.18 { }); + gnome3 = gnome3_16; gnome = recurseIntoAttrs gnome2; From e43d3b711400c43b6366e896a5186bc90287f256 Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Fri, 25 Sep 2015 02:33:21 -0700 Subject: [PATCH 084/165] fix faulty include in libpsl --- pkgs/development/libraries/libpsl/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/development/libraries/libpsl/default.nix b/pkgs/development/libraries/libpsl/default.nix index 58de331c0c51..7d4d4503c540 100644 --- a/pkgs/development/libraries/libpsl/default.nix +++ b/pkgs/development/libraries/libpsl/default.nix @@ -28,6 +28,10 @@ in stdenv.mkDerivation { buildInputs = [ icu libxslt ]; nativeBuildInputs = [ autoreconfHook docbook_xsl gtk_doc pkgconfig ]; + postPatch = '' + substituteInPlace src/psl.c --replace bits/stat.h sys/stat.h + ''; + preAutoreconf = '' mkdir m4 gtkdocize From 72aa4582851271e027453d5caf932b6acebc4414 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 25 Sep 2015 11:38:26 +0200 Subject: [PATCH 085/165] Revert "pcre: Fix patch method" This reverts commit fb30776a77122b687fd5f758672311dbcbd81cc2. --- pkgs/development/libraries/pcre/default.nix | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/pkgs/development/libraries/pcre/default.nix b/pkgs/development/libraries/pcre/default.nix index f32af2a0e1e4..5a55db53348e 100644 --- a/pkgs/development/libraries/pcre/default.nix +++ b/pkgs/development/libraries/pcre/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, autoreconfHook, unicodeSupport ? true, cplusplusSupport ? true +{ stdenv, fetchurl, unicodeSupport ? true, cplusplusSupport ? true , windows ? null }: @@ -12,12 +12,8 @@ stdenv.mkDerivation rec { sha256 = "17bqykp604p7376wj3q2nmjdhrb6v1ny8q08zdwi7qvc02l9wrsi"; }; - nativeBuildInputs = [ autoreconfHook ]; - # A bundle of fixes which should be removed for 8.38 - patchPhase = '' - patch -p0 -i ${./fixes.patch} - ''; + patches = [ ./fixes.patch ]; outputs = [ "out" "doc" "man" ]; From 298ec05e74f1e375e3929a1442e3473b384ad77b Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 25 Sep 2015 11:38:34 +0200 Subject: [PATCH 086/165] Revert "pcre: Updates to fix a number of vulnerabilities" This reverts commit 453b986d2f1061dd04f7a2f198c4e5276ddc8d8f. Such large patches should not be included in the repo. --- pkgs/development/libraries/pcre/default.nix | 3 - pkgs/development/libraries/pcre/fixes.patch | 3538 ------------------- 2 files changed, 3541 deletions(-) delete mode 100644 pkgs/development/libraries/pcre/fixes.patch diff --git a/pkgs/development/libraries/pcre/default.nix b/pkgs/development/libraries/pcre/default.nix index 5a55db53348e..a34f3e5e1328 100644 --- a/pkgs/development/libraries/pcre/default.nix +++ b/pkgs/development/libraries/pcre/default.nix @@ -12,9 +12,6 @@ stdenv.mkDerivation rec { sha256 = "17bqykp604p7376wj3q2nmjdhrb6v1ny8q08zdwi7qvc02l9wrsi"; }; - # A bundle of fixes which should be removed for 8.38 - patches = [ ./fixes.patch ]; - outputs = [ "out" "doc" "man" ]; configureFlags = '' diff --git a/pkgs/development/libraries/pcre/fixes.patch b/pkgs/development/libraries/pcre/fixes.patch deleted file mode 100644 index 3b39128d7e49..000000000000 --- a/pkgs/development/libraries/pcre/fixes.patch +++ /dev/null @@ -1,3538 +0,0 @@ -Index: pcre_jit_compile.c -=================================================================== ---- pcre_jit_compile.c (revision 1554) -+++ pcre_jit_compile.c (working copy) -@@ -1064,6 +1064,7 @@ - pcre_uchar *end = NULL; - int private_data_ptr = *private_data_start; - int space, size, bracketlen; -+BOOL repeat_check = TRUE; - - while (cc < ccend) - { -@@ -1071,9 +1072,10 @@ - size = 0; - bracketlen = 0; - if (private_data_ptr > SLJIT_MAX_LOCAL_SIZE) -- return; -+ break; - -- if (*cc == OP_ONCE || *cc == OP_ONCE_NC || *cc == OP_BRA || *cc == OP_CBRA || *cc == OP_COND) -+ if (repeat_check && (*cc == OP_ONCE || *cc == OP_ONCE_NC || *cc == OP_BRA || *cc == OP_CBRA || *cc == OP_COND)) -+ { - if (detect_repeat(common, cc)) - { - /* These brackets are converted to repeats, so no global -@@ -1081,6 +1083,8 @@ - if (cc >= end) - end = bracketend(cc); - } -+ } -+ repeat_check = TRUE; - - switch(*cc) - { -@@ -1136,6 +1140,13 @@ - bracketlen = 1 + LINK_SIZE + IMM2_SIZE; - break; - -+ case OP_BRAZERO: -+ case OP_BRAMINZERO: -+ case OP_BRAPOSZERO: -+ repeat_check = FALSE; -+ size = 1; -+ break; -+ - CASE_ITERATOR_PRIVATE_DATA_1 - space = 1; - size = -2; -@@ -1162,12 +1173,17 @@ - size = 1; - break; - -- CASE_ITERATOR_TYPE_PRIVATE_DATA_2B -+ case OP_TYPEUPTO: - if (cc[1 + IMM2_SIZE] != OP_ANYNL && cc[1 + IMM2_SIZE] != OP_EXTUNI) - space = 2; - size = 1 + IMM2_SIZE; - break; - -+ case OP_TYPEMINUPTO: -+ space = 2; -+ size = 1 + IMM2_SIZE; -+ break; -+ - case OP_CLASS: - case OP_NCLASS: - size += 1 + 32 / sizeof(pcre_uchar); -@@ -1316,6 +1332,13 @@ - cc += 1 + LINK_SIZE + IMM2_SIZE; - break; - -+ case OP_THEN: -+ stack_restore = TRUE; -+ if (common->control_head_ptr != 0) -+ *needs_control_head = TRUE; -+ cc ++; -+ break; -+ - default: - stack_restore = TRUE; - /* Fall through. */ -@@ -2220,6 +2243,7 @@ - SLJIT_ASSERT_STOP(); - break; - } -+ SLJIT_ASSERT(current > (sljit_sw*)current[-1]); - current = (sljit_sw*)current[-1]; - } - return -1; -@@ -3209,7 +3233,7 @@ - bytes[0] = len; - } - --static int scan_prefix(compiler_common *common, pcre_uchar *cc, pcre_uint32 *chars, pcre_uint8 *bytes, int max_chars) -+static int scan_prefix(compiler_common *common, pcre_uchar *cc, pcre_uint32 *chars, pcre_uint8 *bytes, int max_chars, pcre_uint32 *rec_count) - { - /* Recursive function, which scans prefix literals. */ - BOOL last, any, caseless; -@@ -3227,9 +3251,14 @@ - repeat = 1; - while (TRUE) - { -+ if (*rec_count == 0) -+ return 0; -+ (*rec_count)--; -+ - last = TRUE; - any = FALSE; - caseless = FALSE; -+ - switch (*cc) - { - case OP_CHARI: -@@ -3291,7 +3320,7 @@ - #ifdef SUPPORT_UTF - if (common->utf && HAS_EXTRALEN(*cc)) len += GET_EXTRALEN(*cc); - #endif -- max_chars = scan_prefix(common, cc + len, chars, bytes, max_chars); -+ max_chars = scan_prefix(common, cc + len, chars, bytes, max_chars, rec_count); - if (max_chars == 0) - return consumed; - last = FALSE; -@@ -3314,7 +3343,7 @@ - alternative = cc + GET(cc, 1); - while (*alternative == OP_ALT) - { -- max_chars = scan_prefix(common, alternative + 1 + LINK_SIZE, chars, bytes, max_chars); -+ max_chars = scan_prefix(common, alternative + 1 + LINK_SIZE, chars, bytes, max_chars, rec_count); - if (max_chars == 0) - return consumed; - alternative += GET(alternative, 1); -@@ -3556,6 +3585,7 @@ - int range_right = -1, range_len = 3 - 1; - sljit_ub *update_table = NULL; - BOOL in_range; -+pcre_uint32 rec_count; - - for (i = 0; i < MAX_N_CHARS; i++) - { -@@ -3564,7 +3594,8 @@ - bytes[i * MAX_N_BYTES] = 0; - } - --max = scan_prefix(common, common->start, chars, bytes, MAX_N_CHARS); -+rec_count = 10000; -+max = scan_prefix(common, common->start, chars, bytes, MAX_N_CHARS, &rec_count); - - if (max <= 1) - return FALSE; -@@ -4311,8 +4342,10 @@ - case 4: - if ((ranges[1] - ranges[0]) == (ranges[3] - ranges[2]) - && (ranges[0] | (ranges[2] - ranges[0])) == ranges[2] -+ && (ranges[1] & (ranges[2] - ranges[0])) == 0 - && is_powerof2(ranges[2] - ranges[0])) - { -+ SLJIT_ASSERT((ranges[0] & (ranges[2] - ranges[0])) == 0 && (ranges[2] & ranges[3] & (ranges[2] - ranges[0])) != 0); - OP2(SLJIT_OR, TMP1, 0, TMP1, 0, SLJIT_IMM, ranges[2] - ranges[0]); - if (ranges[2] + 1 != ranges[3]) - { -@@ -4900,9 +4933,10 @@ - if (!check_class_ranges(common, (const pcre_uint8 *)cc, FALSE, TRUE, list)) - { - #ifdef COMPILE_PCRE8 -- SLJIT_ASSERT(common->utf); -+ jump = NULL; -+ if (common->utf) - #endif -- jump = CMP(SLJIT_GREATER, TMP1, 0, SLJIT_IMM, 255); -+ jump = CMP(SLJIT_GREATER, TMP1, 0, SLJIT_IMM, 255); - - OP2(SLJIT_AND, TMP2, 0, TMP1, 0, SLJIT_IMM, 0x7); - OP2(SLJIT_LSHR, TMP1, 0, TMP1, 0, SLJIT_IMM, 3); -@@ -4911,7 +4945,10 @@ - OP2(SLJIT_AND | SLJIT_SET_E, SLJIT_UNUSED, 0, TMP1, 0, TMP2, 0); - add_jump(compiler, list, JUMP(SLJIT_NOT_ZERO)); - -- JUMPHERE(jump); -+#ifdef COMPILE_PCRE8 -+ if (common->utf) -+#endif -+ JUMPHERE(jump); - } - - OP1(SLJIT_MOV, TMP1, 0, TMP3, 0); -@@ -7665,6 +7702,10 @@ - OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), STR_PTR, 0); - } - -+ /* Even if the match is empty, we need to reset the control head. */ -+ if (needs_control_head) -+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr, SLJIT_MEM1(STACK_TOP), STACK(stack)); -+ - if (opcode == OP_SBRAPOS || opcode == OP_SCBRAPOS) - add_jump(compiler, &emptymatch, CMP(SLJIT_EQUAL, TMP1, 0, STR_PTR, 0)); - -@@ -7692,6 +7733,10 @@ - OP1(SLJIT_MOV, SLJIT_MEM1(TMP2), (framesize + 1) * sizeof(sljit_sw), STR_PTR, 0); - } - -+ /* Even if the match is empty, we need to reset the control head. */ -+ if (needs_control_head) -+ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr, SLJIT_MEM1(STACK_TOP), STACK(stack)); -+ - if (opcode == OP_SBRAPOS || opcode == OP_SCBRAPOS) - add_jump(compiler, &emptymatch, CMP(SLJIT_EQUAL, TMP1, 0, STR_PTR, 0)); - -@@ -7704,9 +7749,6 @@ - } - } - -- if (needs_control_head) -- OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), common->control_head_ptr, SLJIT_MEM1(STACK_TOP), STACK(stack)); -- - JUMPTO(SLJIT_JUMP, loop); - flush_stubs(common); - -@@ -8441,8 +8483,7 @@ - OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(1), STR_PTR, 0); - } - BACKTRACK_AS(braminzero_backtrack)->matchingpath = LABEL(); -- if (cc[1] > OP_ASSERTBACK_NOT) -- count_match(common); -+ count_match(common); - break; - - case OP_ONCE: -@@ -9624,7 +9665,7 @@ - DEFINE_COMPILER; - pcre_uchar *cc = common->start + common->currententry->start; - pcre_uchar *ccbegin = cc + 1 + LINK_SIZE + (*cc == OP_BRA ? 0 : IMM2_SIZE); --pcre_uchar *ccend = bracketend(cc); -+pcre_uchar *ccend = bracketend(cc) - (1 + LINK_SIZE); - BOOL needs_control_head; - int framesize = get_framesize(common, cc, NULL, TRUE, &needs_control_head); - int private_data_size = get_private_data_copy_length(common, ccbegin, ccend, needs_control_head); -@@ -9648,6 +9689,7 @@ - - sljit_emit_fast_enter(compiler, TMP2, 0); - allocate_stack(common, private_data_size + framesize + alternativesize); -+count_match(common); - OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(private_data_size + framesize + alternativesize - 1), TMP2, 0); - copy_private_data(common, ccbegin, ccend, TRUE, private_data_size + framesize + alternativesize, framesize + alternativesize, needs_control_head); - if (needs_control_head) -@@ -9992,6 +10034,7 @@ - OP1(SLJIT_MOV_UI, TMP1, 0, SLJIT_MEM1(TMP1), SLJIT_OFFSETOF(jit_arguments, limit_match)); - OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_MEM1(TMP2), SLJIT_OFFSETOF(struct sljit_stack, base)); - OP1(SLJIT_MOV, STACK_LIMIT, 0, SLJIT_MEM1(TMP2), SLJIT_OFFSETOF(struct sljit_stack, limit)); -+OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, SLJIT_IMM, 1); - OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LIMIT_MATCH, TMP1, 0); - - if (mode == JIT_PARTIAL_SOFT_COMPILE) -Index: RunGrepTest -=================================================================== ---- RunGrepTest (revision 1554) -+++ RunGrepTest (working copy) -@@ -512,6 +512,14 @@ - (cd $srcdir; $valgrind $pcregrep --line-offsets '(?<=\Ka)' $builddir/testtemp1grep) >>testtrygrep 2>&1 - echo "RC=$?" >>testtrygrep - -+echo "---------------------------- Test 108 ------------------------------" >>testtrygrep -+(cd $srcdir; $valgrind $pcregrep -lq PATTERN ./testdata/grepinput ./testdata/grepinputx) >>testtrygrep -+echo "RC=$?" >>testtrygrep -+ -+echo "---------------------------- Test 109 -----------------------------" >>testtrygrep -+(cd $srcdir; $valgrind $pcregrep -cq lazy ./testdata/grepinput*) >>testtrygrep -+echo "RC=$?" >>testtrygrep -+ - # Now compare the results. - - $cf $srcdir/testdata/grepoutput testtrygrep -Index: pcre_compile.c -=================================================================== ---- pcre_compile.c (revision 1554) -+++ pcre_compile.c (working copy) -@@ -174,7 +174,7 @@ - -ESC_Z, CHAR_LEFT_SQUARE_BRACKET, - CHAR_BACKSLASH, CHAR_RIGHT_SQUARE_BRACKET, - CHAR_CIRCUMFLEX_ACCENT, CHAR_UNDERSCORE, -- CHAR_GRAVE_ACCENT, 7, -+ CHAR_GRAVE_ACCENT, ESC_a, - -ESC_b, 0, - -ESC_d, ESC_e, - ESC_f, 0, -@@ -202,9 +202,9 @@ - /* 68 */ 0, 0, '|', ',', '%', '_', '>', '?', - /* 70 */ 0, 0, 0, 0, 0, 0, 0, 0, - /* 78 */ 0, '`', ':', '#', '@', '\'', '=', '"', --/* 80 */ 0, 7, -ESC_b, 0, -ESC_d, ESC_e, ESC_f, 0, -+/* 80 */ 0, ESC_a, -ESC_b, 0, -ESC_d, ESC_e, ESC_f, 0, - /* 88 */-ESC_h, 0, 0, '{', 0, 0, 0, 0, --/* 90 */ 0, 0, -ESC_k, 'l', 0, ESC_n, 0, -ESC_p, -+/* 90 */ 0, 0, -ESC_k, 0, 0, ESC_n, 0, -ESC_p, - /* 98 */ 0, ESC_r, 0, '}', 0, 0, 0, 0, - /* A0 */ 0, '~', -ESC_s, ESC_tee, 0,-ESC_v, -ESC_w, 0, - /* A8 */ 0,-ESC_z, 0, 0, 0, '[', 0, 0, -@@ -219,6 +219,12 @@ - /* F0 */ 0, 0, 0, 0, 0, 0, 0, 0, - /* F8 */ 0, 0, 0, 0, 0, 0, 0, 0 - }; -+ -+/* We also need a table of characters that may follow \c in an EBCDIC -+environment for characters 0-31. */ -+ -+static unsigned char ebcdic_escape_c[] = "@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_"; -+ - #endif - - -@@ -458,7 +464,7 @@ - "range out of order in character class\0" - "nothing to repeat\0" - /* 10 */ -- "operand of unlimited repeat could match the empty string\0" /** DEAD **/ -+ "internal error: invalid forward reference offset\0" - "internal error: unexpected repeat\0" - "unrecognized character after (? or (?-\0" - "POSIX named classes are supported only within a class\0" -@@ -527,7 +533,11 @@ - "different names for subpatterns of the same number are not allowed\0" - "(*MARK) must have an argument\0" - "this version of PCRE is not compiled with Unicode property support\0" -+#ifndef EBCDIC - "\\c must be followed by an ASCII character\0" -+#else -+ "\\c must be followed by a letter or one of [\\]^_?\0" -+#endif - "\\k is not followed by a braced, angle-bracketed, or quoted name\0" - /* 70 */ - "internal error: unknown opcode in find_fixedlength()\0" -@@ -1425,7 +1435,16 @@ - c ^= 0x40; - #else /* EBCDIC coding */ - if (c >= CHAR_a && c <= CHAR_z) c += 64; -- c ^= 0xC0; -+ if (c == CHAR_QUESTION_MARK) -+ c = ('\\' == 188 && '`' == 74)? 0x5f : 0xff; -+ else -+ { -+ for (i = 0; i < 32; i++) -+ { -+ if (c == ebcdic_escape_c[i]) break; -+ } -+ if (i < 32) c = i; else *errorcodeptr = ERR68; -+ } - #endif - break; - -@@ -1799,7 +1818,7 @@ - case OP_ASSERTBACK: - case OP_ASSERTBACK_NOT: - do cc += GET(cc, 1); while (*cc == OP_ALT); -- cc += PRIV(OP_lengths)[*cc]; -+ cc += 1 + LINK_SIZE; - break; - - /* Skip over things that don't match chars */ -@@ -2487,7 +2506,7 @@ - if (c == OP_BRA || c == OP_BRAPOS || - c == OP_CBRA || c == OP_CBRAPOS || - c == OP_ONCE || c == OP_ONCE_NC || -- c == OP_COND) -+ c == OP_COND || c == OP_SCOND) - { - BOOL empty_branch; - if (GET(code, 1) == 0) return TRUE; /* Hit unclosed bracket */ -@@ -3886,11 +3905,11 @@ - The problem in trying to be exactly like Perl is in the handling of escapes. We - have to be sure that [abc[:x\]pqr] is *not* treated as containing a POSIX - class, but [abc[:x\]pqr:]] is (so that an error can be generated). The code --below handles the special case of \], but does not try to do any other escape --processing. This makes it different from Perl for cases such as [:l\ower:] --where Perl recognizes it as the POSIX class "lower" but PCRE does not recognize --"l\ower". This is a lesser evil than not diagnosing bad classes when Perl does, --I think. -+below handles the special cases \\ and \], but does not try to do any other -+escape processing. This makes it different from Perl for cases such as -+[:l\ower:] where Perl recognizes it as the POSIX class "lower" but PCRE does -+not recognize "l\ower". This is a lesser evil than not diagnosing bad classes -+when Perl does, I think. - - A user pointed out that PCRE was rejecting [:a[:digit:]] whereas Perl was not. - It seems that the appearance of a nested POSIX class supersedes an apparent -@@ -3917,21 +3936,16 @@ - terminator = *(++ptr); /* compiler warns about "non-constant" initializer. */ - for (++ptr; *ptr != CHAR_NULL; ptr++) - { -- if (*ptr == CHAR_BACKSLASH && ptr[1] == CHAR_RIGHT_SQUARE_BRACKET) -+ if (*ptr == CHAR_BACKSLASH && -+ (ptr[1] == CHAR_RIGHT_SQUARE_BRACKET || -+ ptr[1] == CHAR_BACKSLASH)) - ptr++; -- else if (*ptr == CHAR_RIGHT_SQUARE_BRACKET) return FALSE; -- else -+ else if ((*ptr == CHAR_LEFT_SQUARE_BRACKET && ptr[1] == terminator) || -+ *ptr == CHAR_RIGHT_SQUARE_BRACKET) return FALSE; -+ else if (*ptr == terminator && ptr[1] == CHAR_RIGHT_SQUARE_BRACKET) - { -- if (*ptr == terminator && ptr[1] == CHAR_RIGHT_SQUARE_BRACKET) -- { -- *endptr = ptr; -- return TRUE; -- } -- if (*ptr == CHAR_LEFT_SQUARE_BRACKET && -- (ptr[1] == CHAR_COLON || ptr[1] == CHAR_DOT || -- ptr[1] == CHAR_EQUALS_SIGN) && -- check_posix_syntax(ptr, endptr)) -- return FALSE; -+ *endptr = ptr; -+ return TRUE; - } - } - return FALSE; -@@ -3985,11 +3999,12 @@ - is called, the partially compiled regex must be temporarily terminated with - OP_END. - --This function has been extended with the possibility of forward references for --recursions and subroutine calls. It must also check the list of such references --for the group we are dealing with. If it finds that one of the recursions in --the current group is on this list, it adjusts the offset in the list, not the --value in the reference (which is a group number). -+This function has been extended to cope with forward references for recursions -+and subroutine calls. It must check the list of such references for the -+group we are dealing with. If it finds that one of the recursions in the -+current group is on this list, it does not adjust the value in the reference -+(which is a group number). After the group has been scanned, all the offsets in -+the forward reference list for the group are adjusted. - - Arguments: - group points to the start of the group -@@ -4005,29 +4020,21 @@ - adjust_recurse(pcre_uchar *group, int adjust, BOOL utf, compile_data *cd, - size_t save_hwm_offset) - { -+int offset; -+pcre_uchar *hc; - pcre_uchar *ptr = group; - - while ((ptr = (pcre_uchar *)find_recurse(ptr, utf)) != NULL) - { -- int offset; -- pcre_uchar *hc; -- -- /* See if this recursion is on the forward reference list. If so, adjust the -- reference. */ -- - for (hc = (pcre_uchar *)cd->start_workspace + save_hwm_offset; hc < cd->hwm; - hc += LINK_SIZE) - { - offset = (int)GET(hc, 0); -- if (cd->start_code + offset == ptr + 1) -- { -- PUT(hc, 0, offset + adjust); -- break; -- } -+ if (cd->start_code + offset == ptr + 1) break; - } - -- /* Otherwise, adjust the recursion offset if it's after the start of this -- group. */ -+ /* If we have not found this recursion on the forward reference list, adjust -+ the recursion's offset if it's after the start of this group. */ - - if (hc >= cd->hwm) - { -@@ -4037,6 +4044,15 @@ - - ptr += 1 + LINK_SIZE; - } -+ -+/* Now adjust all forward reference offsets for the group. */ -+ -+for (hc = (pcre_uchar *)cd->start_workspace + save_hwm_offset; hc < cd->hwm; -+ hc += LINK_SIZE) -+ { -+ offset = (int)GET(hc, 0); -+ PUT(hc, 0, offset + adjust); -+ } - } - - -@@ -4465,7 +4481,7 @@ - const pcre_uchar *nestptr = NULL; - pcre_uchar *previous = NULL; - pcre_uchar *previous_callout = NULL; --size_t save_hwm_offset = 0; -+size_t item_hwm_offset = 0; - pcre_uint8 classbits[32]; - - /* We can fish out the UTF-8 setting once and for all into a BOOL, but we -@@ -4623,8 +4639,7 @@ - /* In the real compile phase, just check the workspace used by the forward - reference list. */ - -- else if (cd->hwm > cd->start_workspace + cd->workspace_size - -- WORK_SIZE_SAFETY_MARGIN) -+ else if (cd->hwm > cd->start_workspace + cd->workspace_size) - { - *errorcodeptr = ERR52; - goto FAILED; -@@ -4767,6 +4782,7 @@ - zeroreqchar = reqchar; - zeroreqcharflags = reqcharflags; - previous = code; -+ item_hwm_offset = cd->hwm - cd->start_workspace; - *code++ = ((options & PCRE_DOTALL) != 0)? OP_ALLANY: OP_ANY; - break; - -@@ -4818,6 +4834,7 @@ - /* Handle a real character class. */ - - previous = code; -+ item_hwm_offset = cd->hwm - cd->start_workspace; - - /* PCRE supports POSIX class stuff inside a class. Perl gives an error if - they are encountered at the top level, so we'll do that too. */ -@@ -5195,9 +5212,9 @@ - cd, PRIV(vspace_list)); - continue; - --#ifdef SUPPORT_UCP - case ESC_p: - case ESC_P: -+#ifdef SUPPORT_UCP - { - BOOL negated; - unsigned int ptype = 0, pdata = 0; -@@ -5211,6 +5228,9 @@ - class_has_8bitchar--; /* Undo! */ - continue; - } -+#else -+ *errorcodeptr = ERR45; -+ goto FAILED; - #endif - /* Unrecognized escapes are faulted if PCRE is running in its - strict mode. By default, for compatibility with Perl, they are -@@ -5930,7 +5950,7 @@ - { - register int i; - int len = (int)(code - previous); -- size_t base_hwm_offset = save_hwm_offset; -+ size_t base_hwm_offset = item_hwm_offset; - pcre_uchar *bralink = NULL; - pcre_uchar *brazeroptr = NULL; - -@@ -5985,7 +6005,7 @@ - if (repeat_max <= 1) /* Covers 0, 1, and unlimited */ - { - *code = OP_END; -- adjust_recurse(previous, 1, utf, cd, save_hwm_offset); -+ adjust_recurse(previous, 1, utf, cd, item_hwm_offset); - memmove(previous + 1, previous, IN_UCHARS(len)); - code++; - if (repeat_max == 0) -@@ -6009,7 +6029,7 @@ - { - int offset; - *code = OP_END; -- adjust_recurse(previous, 2 + LINK_SIZE, utf, cd, save_hwm_offset); -+ adjust_recurse(previous, 2 + LINK_SIZE, utf, cd, item_hwm_offset); - memmove(previous + 2 + LINK_SIZE, previous, IN_UCHARS(len)); - code += 2 + LINK_SIZE; - *previous++ = OP_BRAZERO + repeat_type; -@@ -6254,6 +6274,12 @@ - while (*scode == OP_ALT); - } - -+ /* A conditional group with only one branch has an implicit empty -+ alternative branch. */ -+ -+ if (*bracode == OP_COND && bracode[GET(bracode,1)] != OP_ALT) -+ *bracode = OP_SCOND; -+ - /* Handle possessive quantifiers. */ - - if (possessive_quantifier) -@@ -6267,11 +6293,11 @@ - { - int nlen = (int)(code - bracode); - *code = OP_END; -- adjust_recurse(bracode, 1 + LINK_SIZE, utf, cd, save_hwm_offset); -+ adjust_recurse(bracode, 1 + LINK_SIZE, utf, cd, item_hwm_offset); - memmove(bracode + 1 + LINK_SIZE, bracode, IN_UCHARS(nlen)); - code += 1 + LINK_SIZE; - nlen += 1 + LINK_SIZE; -- *bracode = OP_BRAPOS; -+ *bracode = (*bracode == OP_COND)? OP_BRAPOS : OP_SBRAPOS; - *code++ = OP_KETRPOS; - PUTINC(code, 0, nlen); - PUT(bracode, 1, nlen); -@@ -6401,7 +6427,7 @@ - else - { - *code = OP_END; -- adjust_recurse(tempcode, 1 + LINK_SIZE, utf, cd, save_hwm_offset); -+ adjust_recurse(tempcode, 1 + LINK_SIZE, utf, cd, item_hwm_offset); - memmove(tempcode + 1 + LINK_SIZE, tempcode, IN_UCHARS(len)); - code += 1 + LINK_SIZE; - len += 1 + LINK_SIZE; -@@ -6450,7 +6476,7 @@ - - default: - *code = OP_END; -- adjust_recurse(tempcode, 1 + LINK_SIZE, utf, cd, save_hwm_offset); -+ adjust_recurse(tempcode, 1 + LINK_SIZE, utf, cd, item_hwm_offset); - memmove(tempcode + 1 + LINK_SIZE, tempcode, IN_UCHARS(len)); - code += 1 + LINK_SIZE; - len += 1 + LINK_SIZE; -@@ -6623,7 +6649,7 @@ - newoptions = options; - skipbytes = 0; - bravalue = OP_CBRA; -- save_hwm_offset = cd->hwm - cd->start_workspace; -+ item_hwm_offset = cd->hwm - cd->start_workspace; - reset_bracount = FALSE; - - /* Deal with the extended parentheses; all are introduced by '?', and the -@@ -6641,6 +6667,7 @@ - /* ------------------------------------------------------------ */ - case CHAR_VERTICAL_LINE: /* Reset capture count for each branch */ - reset_bracount = TRUE; -+ cd->dupgroups = TRUE; /* Record (?| encountered */ - /* Fall through */ - - /* ------------------------------------------------------------ */ -@@ -6741,6 +6768,12 @@ - { - while (IS_DIGIT(*ptr)) - { -+ if (recno > INT_MAX / 10 - 1) /* Integer overflow */ -+ { -+ while (IS_DIGIT(*ptr)) ptr++; -+ *errorcodeptr = ERR61; -+ goto FAILED; -+ } - recno = recno * 10 + (int)(*ptr - CHAR_0); - ptr++; - } -@@ -6769,7 +6802,7 @@ - ptr++; - } - namelen = (int)(ptr - name); -- if (lengthptr != NULL) *lengthptr += IMM2_SIZE; -+ if (lengthptr != NULL) skipbytes += IMM2_SIZE; - } - - /* Check the terminator */ -@@ -6875,6 +6908,11 @@ - *errorcodeptr = ERR15; - goto FAILED; - } -+ if (recno > INT_MAX / 10 - 1) /* Integer overflow */ -+ { -+ *errorcodeptr = ERR61; -+ goto FAILED; -+ } - recno = recno * 10 + name[i] - CHAR_0; - } - if (recno == 0) recno = RREF_ANY; -@@ -7151,7 +7189,8 @@ - if (lengthptr != NULL) - { - named_group *ng; -- -+ recno = 0; -+ - if (namelen == 0) - { - *errorcodeptr = ERR62; -@@ -7168,20 +7207,6 @@ - goto FAILED; - } - -- /* The name table does not exist in the first pass; instead we must -- scan the list of names encountered so far in order to get the -- number. If the name is not found, set the value to 0 for a forward -- reference. */ -- -- ng = cd->named_groups; -- for (i = 0; i < cd->names_found; i++, ng++) -- { -- if (namelen == ng->length && -- STRNCMP_UC_UC(name, ng->name, namelen) == 0) -- break; -- } -- recno = (i < cd->names_found)? ng->number : 0; -- - /* Count named back references. */ - - if (!is_recurse) cd->namedrefcount++; -@@ -7191,6 +7216,56 @@ - 16-bit data item. */ - - *lengthptr += IMM2_SIZE; -+ -+ /* If this is a forward reference and we are within a (?|...) group, -+ the reference may end up as the number of a group which we are -+ currently inside, that is, it could be a recursive reference. In the -+ real compile this will be picked up and the reference wrapped with -+ OP_ONCE to make it atomic, so we must space in case this occurs. */ -+ -+ /* In fact, this can happen for a non-forward reference because -+ another group with the same number might be created later. This -+ issue is fixed "properly" in PCRE2. As PCRE1 is now in maintenance -+ only mode, we finesse the bug by allowing more memory always. */ -+ -+ *lengthptr += 2 + 2*LINK_SIZE; -+ -+ /* It is even worse than that. The current reference may be to an -+ existing named group with a different number (so apparently not -+ recursive) but which later on is also attached to a group with the -+ current number. This can only happen if $(| has been previous -+ encountered. In that case, we allow yet more memory, just in case. -+ (Again, this is fixed "properly" in PCRE2. */ -+ -+ if (cd->dupgroups) *lengthptr += 4 + 4*LINK_SIZE; -+ -+ /* Otherwise, check for recursion here. The name table does not exist -+ in the first pass; instead we must scan the list of names encountered -+ so far in order to get the number. If the name is not found, leave -+ the value of recno as 0 for a forward reference. */ -+ -+ else -+ { -+ ng = cd->named_groups; -+ for (i = 0; i < cd->names_found; i++, ng++) -+ { -+ if (namelen == ng->length && -+ STRNCMP_UC_UC(name, ng->name, namelen) == 0) -+ { -+ open_capitem *oc; -+ recno = ng->number; -+ if (is_recurse) break; -+ for (oc = cd->open_caps; oc != NULL; oc = oc->next) -+ { -+ if (oc->number == recno) -+ { -+ oc->flag = TRUE; -+ break; -+ } -+ } -+ } -+ } -+ } - } - - /* In the real compile, search the name table. We check the name -@@ -7237,8 +7312,6 @@ - for (i++; i < cd->names_found; i++) - { - if (STRCMP_UC_UC(slot + IMM2_SIZE, cslot + IMM2_SIZE) != 0) break; -- -- - count++; - cslot += cd->name_entry_size; - } -@@ -7247,6 +7320,7 @@ - { - if (firstcharflags == REQ_UNSET) firstcharflags = REQ_NONE; - previous = code; -+ item_hwm_offset = cd->hwm - cd->start_workspace; - *code++ = ((options & PCRE_CASELESS) != 0)? OP_DNREFI : OP_DNREF; - PUT2INC(code, 0, index); - PUT2INC(code, 0, count); -@@ -7284,9 +7358,14 @@ - - - /* ------------------------------------------------------------ */ -- case CHAR_R: /* Recursion */ -- ptr++; /* Same as (?0) */ -- /* Fall through */ -+ case CHAR_R: /* Recursion, same as (?0) */ -+ recno = 0; -+ if (*(++ptr) != CHAR_RIGHT_PARENTHESIS) -+ { -+ *errorcodeptr = ERR29; -+ goto FAILED; -+ } -+ goto HANDLE_RECURSION; - - - /* ------------------------------------------------------------ */ -@@ -7323,7 +7402,15 @@ - - recno = 0; - while(IS_DIGIT(*ptr)) -+ { -+ if (recno > INT_MAX / 10 - 1) /* Integer overflow */ -+ { -+ while (IS_DIGIT(*ptr)) ptr++; -+ *errorcodeptr = ERR61; -+ goto FAILED; -+ } - recno = recno * 10 + *ptr++ - CHAR_0; -+ } - - if (*ptr != (pcre_uchar)terminator) - { -@@ -7360,6 +7447,7 @@ - HANDLE_RECURSION: - - previous = code; -+ item_hwm_offset = cd->hwm - cd->start_workspace; - called = cd->start_code; - - /* When we are actually compiling, find the bracket that is being -@@ -7561,7 +7649,11 @@ - previous = NULL; - cd->iscondassert = FALSE; - } -- else previous = code; -+ else -+ { -+ previous = code; -+ item_hwm_offset = cd->hwm - cd->start_workspace; -+ } - - *code = bravalue; - tempcode = code; -@@ -7809,7 +7901,7 @@ - const pcre_uchar *p; - pcre_uint32 cf; - -- save_hwm_offset = cd->hwm - cd->start_workspace; /* Normally this is set when '(' is read */ -+ item_hwm_offset = cd->hwm - cd->start_workspace; /* Normally this is set when '(' is read */ - terminator = (*(++ptr) == CHAR_LESS_THAN_SIGN)? - CHAR_GREATER_THAN_SIGN : CHAR_APOSTROPHE; - -@@ -7838,7 +7930,7 @@ - if (*p != (pcre_uchar)terminator) - { - *errorcodeptr = ERR57; -- break; -+ goto FAILED; - } - ptr++; - goto HANDLE_NUMERICAL_RECURSION; -@@ -7853,7 +7945,7 @@ - ptr[1] != CHAR_APOSTROPHE && ptr[1] != CHAR_LEFT_CURLY_BRACKET)) - { - *errorcodeptr = ERR69; -- break; -+ goto FAILED; - } - is_recurse = FALSE; - terminator = (*(++ptr) == CHAR_LESS_THAN_SIGN)? -@@ -7877,6 +7969,7 @@ - HANDLE_REFERENCE: - if (firstcharflags == REQ_UNSET) firstcharflags = REQ_NONE; - previous = code; -+ item_hwm_offset = cd->hwm - cd->start_workspace; - *code++ = ((options & PCRE_CASELESS) != 0)? OP_REFI : OP_REF; - PUT2INC(code, 0, recno); - cd->backref_map |= (recno < 32)? (1 << recno) : 1; -@@ -7906,6 +7999,7 @@ - if (!get_ucp(&ptr, &negated, &ptype, &pdata, errorcodeptr)) - goto FAILED; - previous = code; -+ item_hwm_offset = cd->hwm - cd->start_workspace; - *code++ = ((escape == ESC_p) != negated)? OP_PROP : OP_NOTPROP; - *code++ = ptype; - *code++ = pdata; -@@ -7946,6 +8040,7 @@ - - { - previous = (escape > ESC_b && escape < ESC_Z)? code : NULL; -+ item_hwm_offset = cd->hwm - cd->start_workspace; - *code++ = (!utf && escape == ESC_C)? OP_ALLANY : escape; - } - } -@@ -7989,6 +8084,7 @@ - - ONE_CHAR: - previous = code; -+ item_hwm_offset = cd->hwm - cd->start_workspace; - - /* For caseless UTF-8 mode when UCP support is available, check whether - this character has more than one other case. If so, generate a special -@@ -9164,6 +9260,7 @@ - cd->name_entry_size = 0; - cd->name_table = NULL; - cd->dupnames = FALSE; -+cd->dupgroups = FALSE; - cd->namedrefcount = 0; - cd->start_code = cworkspace; - cd->hwm = cworkspace; -@@ -9198,7 +9295,7 @@ - - DPRINTF(("end pre-compile: length=%d workspace=%d\n", length, - (int)(cd->hwm - cworkspace))); -- -+ - if (length > MAX_PATTERN_SIZE) - { - errorcode = ERR20; -@@ -9336,6 +9433,16 @@ - int offset, recno; - cd->hwm -= LINK_SIZE; - offset = GET(cd->hwm, 0); -+ -+ /* Check that the hwm handling hasn't gone wrong. This whole area is -+ rewritten in PCRE2 because there are some obscure cases. */ -+ -+ if (offset == 0 || codestart[offset-1] != OP_RECURSE) -+ { -+ errorcode = ERR10; -+ break; -+ } -+ - recno = GET(codestart, offset); - if (recno != prev_recno) - { -@@ -9366,7 +9473,7 @@ - "const" attribute if the cast (pcre_uchar *)codestart is used directly in the - function call. */ - --if ((options & PCRE_NO_AUTO_POSSESS) == 0) -+if (errorcode == 0 && (options & PCRE_NO_AUTO_POSSESS) == 0) - { - pcre_uchar *temp = (pcre_uchar *)codestart; - auto_possessify(temp, utf, cd); -@@ -9380,7 +9487,7 @@ - exceptional ones forgo this. We scan the pattern to check that they are fixed - length, and set their lengths. */ - --if (cd->check_lookbehind) -+if (errorcode == 0 && cd->check_lookbehind) - { - pcre_uchar *cc = (pcre_uchar *)codestart; - -@@ -9593,4 +9700,3 @@ - } - - /* End of pcre_compile.c */ -- -Index: ChangeLog -=================================================================== ---- ChangeLog (revision 1554) -+++ ChangeLog (working copy) -@@ -1,6 +1,162 @@ - ChangeLog for PCRE - ------------------ - -+Note that the PCRE 8.xx series (PCRE1) is now in a bugfix-only state. All -+development is happening in the PCRE2 10.xx series. -+ -+Version 8.38 xx-xxx-xxxx -+------------------------ -+ -+1. If a group that contained a recursive back reference also contained a -+ forward reference subroutine call followed by a non-forward-reference -+ subroutine call, for example /.((?2)(?R)\1)()/, pcre2_compile() failed to -+ compile correct code, leading to undefined behaviour or an internally -+ detected error. This bug was discovered by the LLVM fuzzer. -+ -+2. Quantification of certain items (e.g. atomic back references) could cause -+ incorrect code to be compiled when recursive forward references were -+ involved. For example, in this pattern: /(?1)()((((((\1++))\x85)+)|))/. -+ This bug was discovered by the LLVM fuzzer. -+ -+3. A repeated conditional group whose condition was a reference by name caused -+ a buffer overflow if there was more than one group with the given name. -+ This bug was discovered by the LLVM fuzzer. -+ -+4. A recursive back reference by name within a group that had the same name as -+ another group caused a buffer overflow. For example: -+ /(?J)(?'d'(?'d'\g{d}))/. This bug was discovered by the LLVM fuzzer. -+ -+5. A forward reference by name to a group whose number is the same as the -+ current group, for example in this pattern: /(?|(\k'Pm')|(?'Pm'))/, caused -+ a buffer overflow at compile time. This bug was discovered by the LLVM -+ fuzzer. -+ -+6. A lookbehind assertion within a set of mutually recursive subpatterns could -+ provoke a buffer overflow. This bug was discovered by the LLVM fuzzer. -+ -+7. Another buffer overflow bug involved duplicate named groups with a -+ reference between their definition, with a group that reset capture -+ numbers, for example: /(?J:(?|(?'R')(\k'R')|((?'R'))))/. This has been -+ fixed by always allowing for more memory, even if not needed. (A proper fix -+ is implemented in PCRE2, but it involves more refactoring.) -+ -+8. There was no check for integer overflow in subroutine calls such as (?123). -+ -+9. The table entry for \l in EBCDIC environments was incorrect, leading to its -+ being treated as a literal 'l' instead of causing an error. -+ -+10. There was a buffer overflow if pcre_exec() was called with an ovector of -+ size 1. This bug was found by american fuzzy lop. -+ -+11. If a non-capturing group containing a conditional group that could match -+ an empty string was repeated, it was not identified as matching an empty -+ string itself. For example: /^(?:(?(1)x|)+)+$()/. -+ -+12. In an EBCDIC environment, pcretest was mishandling the escape sequences -+ \a and \e in test subject lines. -+ -+13. In an EBCDIC environment, \a in a pattern was converted to the ASCII -+ instead of the EBCDIC value. -+ -+14. The handling of \c in an EBCDIC environment has been revised so that it is -+ now compatible with the specification in Perl's perlebcdic page. -+ -+15. The EBCDIC character 0x41 is a non-breaking space, equivalent to 0xa0 in -+ ASCII/Unicode. This has now been added to the list of characters that are -+ recognized as white space in EBCDIC. -+ -+16. When PCRE was compiled without UCP support, the use of \p and \P gave an -+ error (correctly) when used outside a class, but did not give an error -+ within a class. -+ -+17. \h within a class was incorrectly compiled in EBCDIC environments. -+ -+18. A pattern with an unmatched closing parenthesis that contained a backward -+ assertion which itself contained a forward reference caused buffer -+ overflow. And example pattern is: /(?=di(?<=(?1))|(?=(.))))/. -+ -+19. JIT should return with error when the compiled pattern requires more stack -+ space than the maximum. -+ -+20. A possessively repeated conditional group that could match an empty string, -+ for example, /(?(R))*+/, was incorrectly compiled. -+ -+21. Fix infinite recursion in the JIT compiler when certain patterns such as -+ /(?:|a|){100}x/ are analysed. -+ -+22. Some patterns with character classes involving [: and \\ were incorrectly -+ compiled and could cause reading from uninitialized memory or an incorrect -+ error diagnosis. -+ -+23. Pathological patterns containing many nested occurrences of [: caused -+ pcre_compile() to run for a very long time. -+ -+24. A conditional group with only one branch has an implicit empty alternative -+ branch and must therefore be treated as potentially matching an empty -+ string. -+ -+25. If (?R was followed by - or + incorrect behaviour happened instead of a -+ diagnostic. -+ -+26. Arrange to give up on finding the minimum matching length for overly -+ complex patterns. -+ -+27. Similar to (4) above: in a pattern with duplicated named groups and an -+ occurrence of (?| it is possible for an apparently non-recursive back -+ reference to become recursive if a later named group with the relevant -+ number is encountered. This could lead to a buffer overflow. Wen Guanxing -+ from Venustech ADLAB discovered this bug. -+ -+28. If pcregrep was given the -q option with -c or -l, or when handling a -+ binary file, it incorrectly wrote output to stdout. -+ -+29. The JIT compiler did not restore the control verb head in case of *THEN -+ control verbs. This issue was found by Karl Skomski with a custom LLVM -+ fuzzer. -+ -+30. Error messages for syntax errors following \g and \k were giving inaccurate -+ offsets in the pattern. -+ -+31. Added a check for integer overflow in conditions (?() and -+ (?(R). This omission was discovered by Karl Skomski with the LLVM -+ fuzzer. -+ -+32. Handling recursive references such as (?2) when the reference is to a group -+ later in the pattern uses code that is very hacked about and error-prone. -+ It has been re-written for PCRE2. Here in PCRE1, a check has been added to -+ give an internal error if it is obvious that compiling has gone wrong. -+ -+33. The JIT compiler should not check repeats after a {0,1} repeat byte code. -+ This issue was found by Karl Skomski with a custom LLVM fuzzer. -+ -+34. The JIT compiler should restore the control chain for empty possessive -+ repeats. This issue was found by Karl Skomski with a custom LLVM fuzzer. -+ -+35. Match limit check added to JIT recursion. This issue was found by Karl -+ Skomski with a custom LLVM fuzzer. -+ -+36. Yet another case similar to 27 above has been circumvented by an -+ unconditional allocation of extra memory. This issue is fixed "properly" in -+ PCRE2 by refactoring the way references are handled. Wen Guanxing -+ from Venustech ADLAB discovered this bug. -+ -+37. Fix two assertion fails in JIT. These issues were found by Karl Skomski -+ with a custom LLVM fuzzer. -+ -+38. Fixed a corner case of range optimization in JIT. -+ -+39. An incorrect error "overran compiling workspace" was given if there were -+ exactly enough group forward references such that the last one extended -+ into the workspace safety margin. The next one would have expanded the -+ workspace. The test for overflow was not including the safety margin. -+ -+40. A match limit issue is fixed in JIT which was found by Karl Skomski -+ with a custom LLVM fuzzer. -+ -+41. Remove the use of /dev/null in testdata/testinput2, because it doesn't -+ work under Windows. (Why has it taken so long for anyone to notice?) -+ -+ - Version 8.37 28-April-2015 - -------------------------- - -Index: pcretest.c -=================================================================== ---- pcretest.c (revision 1554) -+++ pcretest.c (working copy) -@@ -4621,9 +4621,9 @@ - - else switch ((c = *p++)) - { -- case 'a': c = 7; break; -+ case 'a': c = CHAR_BEL; break; - case 'b': c = '\b'; break; -- case 'e': c = 27; break; -+ case 'e': c = CHAR_ESC; break; - case 'f': c = '\f'; break; - case 'n': c = '\n'; break; - case 'r': c = '\r'; break; -Index: sljit/sljitLir.c -=================================================================== ---- sljit/sljitLir.c (revision 1554) -+++ sljit/sljitLir.c (working copy) -@@ -845,8 +845,8 @@ - } - - static SLJIT_CONST char* op0_names[] = { -- (char*)"breakpoint", (char*)"nop", -- (char*)"lumul", (char*)"lsmul", (char*)"ludiv", (char*)"lsdiv", -+ (char*)"breakpoint", (char*)"nop", (char*)"lumul", (char*)"lsmul", -+ (char*)"udivmod", (char*)"sdivmod", (char*)"udivi", (char*)"sdivi" - }; - - static SLJIT_CONST char* op1_names[] = { -@@ -1036,7 +1036,7 @@ - { - #if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) - CHECK_ARGUMENT((op >= SLJIT_BREAKPOINT && op <= SLJIT_LSMUL) -- || ((op & ~SLJIT_INT_OP) >= SLJIT_LUDIV && (op & ~SLJIT_INT_OP) <= SLJIT_LSDIV)); -+ || ((op & ~SLJIT_INT_OP) >= SLJIT_UDIVMOD && (op & ~SLJIT_INT_OP) <= SLJIT_SDIVI)); - CHECK_ARGUMENT(op < SLJIT_LUMUL || compiler->scratches >= 2); - #endif - #if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) -@@ -1447,6 +1447,8 @@ - - static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_get_local_base(struct sljit_compiler *compiler, sljit_si dst, sljit_sw dstw, sljit_sw offset) - { -+ SLJIT_UNUSED_ARG(offset); -+ - #if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) - FUNCTION_CHECK_DST(dst, dstw); - #endif -@@ -1462,6 +1464,8 @@ - - static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_const(struct sljit_compiler *compiler, sljit_si dst, sljit_sw dstw, sljit_sw init_value) - { -+ SLJIT_UNUSED_ARG(init_value); -+ - #if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) - FUNCTION_CHECK_DST(dst, dstw); - #endif -Index: sljit/sljitNativeSPARC_common.c -=================================================================== ---- sljit/sljitNativeSPARC_common.c (revision 1554) -+++ sljit/sljitNativeSPARC_common.c (working copy) -@@ -777,20 +777,25 @@ - #else - #error "Implementation required" - #endif -- case SLJIT_LUDIV: -- case SLJIT_LSDIV: -+ case SLJIT_UDIVMOD: -+ case SLJIT_SDIVMOD: -+ case SLJIT_UDIVI: -+ case SLJIT_SDIVI: -+ SLJIT_COMPILE_ASSERT((SLJIT_UDIVMOD & 0x2) == 0 && SLJIT_UDIVI - 0x2 == SLJIT_UDIVMOD, bad_div_opcode_assignments); - #if (defined SLJIT_CONFIG_SPARC_32 && SLJIT_CONFIG_SPARC_32) -- if (op == SLJIT_LUDIV) -+ if ((op | 0x2) == SLJIT_UDIVI) - FAIL_IF(push_inst(compiler, WRY | S1(0), MOVABLE_INS)); - else { - FAIL_IF(push_inst(compiler, SRA | D(TMP_REG1) | S1(SLJIT_R0) | IMM(31), DR(TMP_REG1))); - FAIL_IF(push_inst(compiler, WRY | S1(TMP_REG1), MOVABLE_INS)); - } -- FAIL_IF(push_inst(compiler, OR | D(TMP_REG2) | S1(0) | S2(SLJIT_R0), DR(TMP_REG2))); -- FAIL_IF(push_inst(compiler, (op == SLJIT_LUDIV ? UDIV : SDIV) | D(SLJIT_R0) | S1(SLJIT_R0) | S2(SLJIT_R1), DR(SLJIT_R0))); -+ if (op <= SLJIT_SDIVMOD) -+ FAIL_IF(push_inst(compiler, OR | D(TMP_REG2) | S1(0) | S2(SLJIT_R0), DR(TMP_REG2))); -+ FAIL_IF(push_inst(compiler, ((op | 0x2) == SLJIT_UDIVI ? UDIV : SDIV) | D(SLJIT_R0) | S1(SLJIT_R0) | S2(SLJIT_R1), DR(SLJIT_R0))); -+ if (op >= SLJIT_UDIVI) -+ return SLJIT_SUCCESS; - FAIL_IF(push_inst(compiler, SMUL | D(SLJIT_R1) | S1(SLJIT_R0) | S2(SLJIT_R1), DR(SLJIT_R1))); -- FAIL_IF(push_inst(compiler, SUB | D(SLJIT_R1) | S1(TMP_REG2) | S2(SLJIT_R1), DR(SLJIT_R1))); -- return SLJIT_SUCCESS; -+ return push_inst(compiler, SUB | D(SLJIT_R1) | S1(TMP_REG2) | S2(SLJIT_R1), DR(SLJIT_R1)); - #else - #error "Implementation required" - #endif -Index: sljit/sljitNativeMIPS_common.c -=================================================================== ---- sljit/sljitNativeMIPS_common.c (revision 1554) -+++ sljit/sljitNativeMIPS_common.c (working copy) -@@ -1053,8 +1053,11 @@ - #endif - FAIL_IF(push_inst(compiler, MFLO | D(SLJIT_R0), DR(SLJIT_R0))); - return push_inst(compiler, MFHI | D(SLJIT_R1), DR(SLJIT_R1)); -- case SLJIT_LUDIV: -- case SLJIT_LSDIV: -+ case SLJIT_UDIVMOD: -+ case SLJIT_SDIVMOD: -+ case SLJIT_UDIVI: -+ case SLJIT_SDIVI: -+ SLJIT_COMPILE_ASSERT((SLJIT_UDIVMOD & 0x2) == 0 && SLJIT_UDIVI - 0x2 == SLJIT_UDIVMOD, bad_div_opcode_assignments); - #if !(defined SLJIT_MIPS_R1 && SLJIT_MIPS_R1) - FAIL_IF(push_inst(compiler, NOP, UNMOVABLE_INS)); - FAIL_IF(push_inst(compiler, NOP, UNMOVABLE_INS)); -@@ -1062,15 +1065,15 @@ - - #if (defined SLJIT_CONFIG_MIPS_64 && SLJIT_CONFIG_MIPS_64) - if (int_op) -- FAIL_IF(push_inst(compiler, (op == SLJIT_LUDIV ? DIVU : DIV) | S(SLJIT_R0) | T(SLJIT_R1), MOVABLE_INS)); -+ FAIL_IF(push_inst(compiler, ((op | 0x2) == SLJIT_UDIVI ? DIVU : DIV) | S(SLJIT_R0) | T(SLJIT_R1), MOVABLE_INS)); - else -- FAIL_IF(push_inst(compiler, (op == SLJIT_LUDIV ? DDIVU : DDIV) | S(SLJIT_R0) | T(SLJIT_R1), MOVABLE_INS)); -+ FAIL_IF(push_inst(compiler, ((op | 0x2) == SLJIT_UDIVI ? DDIVU : DDIV) | S(SLJIT_R0) | T(SLJIT_R1), MOVABLE_INS)); - #else -- FAIL_IF(push_inst(compiler, (op == SLJIT_LUDIV ? DIVU : DIV) | S(SLJIT_R0) | T(SLJIT_R1), MOVABLE_INS)); -+ FAIL_IF(push_inst(compiler, ((op | 0x2) == SLJIT_UDIVI ? DIVU : DIV) | S(SLJIT_R0) | T(SLJIT_R1), MOVABLE_INS)); - #endif - - FAIL_IF(push_inst(compiler, MFLO | D(SLJIT_R0), DR(SLJIT_R0))); -- return push_inst(compiler, MFHI | D(SLJIT_R1), DR(SLJIT_R1)); -+ return (op >= SLJIT_UDIVI) ? SLJIT_SUCCESS : push_inst(compiler, MFHI | D(SLJIT_R1), DR(SLJIT_R1)); - } - - return SLJIT_SUCCESS; -Index: sljit/sljitNativeARM_32.c -=================================================================== ---- sljit/sljitNativeARM_32.c (revision 1554) -+++ sljit/sljitNativeARM_32.c (working copy) -@@ -1833,18 +1833,33 @@ - | (reg_map[SLJIT_R0] << 8) - | reg_map[TMP_REG1]); - #endif -- case SLJIT_LUDIV: -- case SLJIT_LSDIV: -- if (compiler->scratches >= 3) -+ case SLJIT_UDIVMOD: -+ case SLJIT_SDIVMOD: -+ case SLJIT_UDIVI: -+ case SLJIT_SDIVI: -+ SLJIT_COMPILE_ASSERT((SLJIT_UDIVMOD & 0x2) == 0 && SLJIT_UDIVI - 0x2 == SLJIT_UDIVMOD, bad_div_opcode_assignments); -+ SLJIT_COMPILE_ASSERT(reg_map[2] == 1 && reg_map[3] == 2, bad_register_mapping); -+ -+ if ((op >= SLJIT_UDIVI) && (compiler->scratches >= 3)) { - FAIL_IF(push_inst(compiler, 0xe52d2008 /* str r2, [sp, #-8]! */)); -+ FAIL_IF(push_inst(compiler, 0xe58d1004 /* str r1, [sp, #4] */)); -+ } -+ else if ((op >= SLJIT_UDIVI) || (compiler->scratches >= 3)) -+ FAIL_IF(push_inst(compiler, 0xe52d0008 | (op >= SLJIT_UDIVI ? 0x1000 : 0x2000) /* str r1/r2, [sp, #-8]! */)); -+ - #if defined(__GNUC__) - FAIL_IF(sljit_emit_ijump(compiler, SLJIT_FAST_CALL, SLJIT_IMM, -- (op == SLJIT_LUDIV ? SLJIT_FUNC_OFFSET(__aeabi_uidivmod) : SLJIT_FUNC_OFFSET(__aeabi_idivmod)))); -+ ((op | 0x2) == SLJIT_UDIVI ? SLJIT_FUNC_OFFSET(__aeabi_uidivmod) : SLJIT_FUNC_OFFSET(__aeabi_idivmod)))); - #else - #error "Software divmod functions are needed" - #endif -- if (compiler->scratches >= 3) -- return push_inst(compiler, 0xe49d2008 /* ldr r2, [sp], #8 */); -+ -+ if ((op >= SLJIT_UDIVI) && (compiler->scratches >= 3)) { -+ FAIL_IF(push_inst(compiler, 0xe59d1004 /* ldr r1, [sp, #4] */)); -+ FAIL_IF(push_inst(compiler, 0xe49d2008 /* ldr r2, [sp], #8 */)); -+ } -+ else if ((op >= SLJIT_UDIVI) || (compiler->scratches >= 3)) -+ return push_inst(compiler, 0xe49d0008 | (op >= SLJIT_UDIVI ? 0x1000 : 0x2000) /* ldr r1/r2, [sp], #8 */); - return SLJIT_SUCCESS; - } - -Index: sljit/sljitLir.h -=================================================================== ---- sljit/sljitLir.h (revision 1554) -+++ sljit/sljitLir.h (working copy) -@@ -687,7 +687,7 @@ - #define SLJIT_OP0_BASE 0 - - /* Flags: - (never set any flags) -- Note: breakpoint instruction is not supported by all architectures (namely ppc) -+ Note: breakpoint instruction is not supported by all architectures (e.g. ppc) - It falls back to SLJIT_NOP in those cases. */ - #define SLJIT_BREAKPOINT (SLJIT_OP0_BASE + 0) - /* Flags: - (never set any flags) -@@ -696,24 +696,42 @@ - #define SLJIT_NOP (SLJIT_OP0_BASE + 1) - /* Flags: - (may destroy flags) - Unsigned multiplication of SLJIT_R0 and SLJIT_R1. -- Result goes to SLJIT_R1:SLJIT_R0 (high:low) word */ -+ Result is placed into SLJIT_R1:SLJIT_R0 (high:low) word */ - #define SLJIT_LUMUL (SLJIT_OP0_BASE + 2) - /* Flags: - (may destroy flags) - Signed multiplication of SLJIT_R0 and SLJIT_R1. -- Result goes to SLJIT_R1:SLJIT_R0 (high:low) word */ -+ Result is placed into SLJIT_R1:SLJIT_R0 (high:low) word */ - #define SLJIT_LSMUL (SLJIT_OP0_BASE + 3) - /* Flags: I - (may destroy flags) - Unsigned divide of the value in SLJIT_R0 by the value in SLJIT_R1. -- The result is placed in SLJIT_R0 and the remainder goes to SLJIT_R1. -- Note: if SLJIT_R1 contains 0, the behaviour is undefined. */ --#define SLJIT_LUDIV (SLJIT_OP0_BASE + 4) --#define SLJIT_ILUDIV (SLJIT_LUDIV | SLJIT_INT_OP) -+ The result is placed into SLJIT_R0 and the remainder into SLJIT_R1. -+ Note: if SLJIT_R1 is 0, the behaviour is undefined. */ -+#define SLJIT_UDIVMOD (SLJIT_OP0_BASE + 4) -+#define SLJIT_IUDIVMOD (SLJIT_UDIVMOD | SLJIT_INT_OP) - /* Flags: I - (may destroy flags) - Signed divide of the value in SLJIT_R0 by the value in SLJIT_R1. -- The result is placed in SLJIT_R0 and the remainder goes to SLJIT_R1. -- Note: if SLJIT_R1 contains 0, the behaviour is undefined. */ --#define SLJIT_LSDIV (SLJIT_OP0_BASE + 5) --#define SLJIT_ILSDIV (SLJIT_LSDIV | SLJIT_INT_OP) -+ The result is placed into SLJIT_R0 and the remainder into SLJIT_R1. -+ Note: if SLJIT_R1 is 0, the behaviour is undefined. -+ Note: if SLJIT_R1 is -1 and SLJIT_R0 is integer min (0x800..00), -+ the behaviour is undefined. */ -+#define SLJIT_SDIVMOD (SLJIT_OP0_BASE + 5) -+#define SLJIT_ISDIVMOD (SLJIT_SDIVMOD | SLJIT_INT_OP) -+/* Flags: I - (may destroy flags) -+ Unsigned divide of the value in SLJIT_R0 by the value in SLJIT_R1. -+ The result is placed into SLJIT_R0. SLJIT_R1 preserves its value. -+ Note: if SLJIT_R1 is 0, the behaviour is undefined. -+ Note: SLJIT_SDIV is single precision divide. */ -+#define SLJIT_UDIVI (SLJIT_OP0_BASE + 6) -+#define SLJIT_IUDIVI (SLJIT_UDIVI | SLJIT_INT_OP) -+/* Flags: I - (may destroy flags) -+ Signed divide of the value in SLJIT_R0 by the value in SLJIT_R1. -+ The result is placed into SLJIT_R0. SLJIT_R1 preserves its value. -+ Note: if SLJIT_R1 is 0, the behaviour is undefined. -+ Note: if SLJIT_R1 is -1 and SLJIT_R0 is integer min (0x800..00), -+ the behaviour is undefined. -+ Note: SLJIT_SDIV is single precision divide. */ -+#define SLJIT_SDIVI (SLJIT_OP0_BASE + 7) -+#define SLJIT_ISDIVI (SLJIT_SDIVI | SLJIT_INT_OP) - - SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op0(struct sljit_compiler *compiler, sljit_si op); - -@@ -851,34 +869,6 @@ - sljit_si src1, sljit_sw src1w, - sljit_si src2, sljit_sw src2w); - --/* The following function is a helper function for sljit_emit_op_custom. -- It returns with the real machine register index ( >=0 ) of any SLJIT_R, -- SLJIT_S and SLJIT_SP registers. -- -- Note: it returns with -1 for virtual registers (only on x86-32). */ -- --SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_register_index(sljit_si reg); -- --/* The following function is a helper function for sljit_emit_op_custom. -- It returns with the real machine register index of any SLJIT_FLOAT register. -- -- Note: the index is always an even number on ARM (except ARM-64), MIPS, and SPARC. */ -- --SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_float_register_index(sljit_si reg); -- --/* Any instruction can be inserted into the instruction stream by -- sljit_emit_op_custom. It has a similar purpose as inline assembly. -- The size parameter must match to the instruction size of the target -- architecture: -- -- x86: 0 < size <= 15. The instruction argument can be byte aligned. -- Thumb2: if size == 2, the instruction argument must be 2 byte aligned. -- if size == 4, the instruction argument must be 4 byte aligned. -- Otherwise: size must be 4 and instruction argument must be 4 byte aligned. */ -- --SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_custom(struct sljit_compiler *compiler, -- void *instruction, sljit_si size); -- - /* Returns with non-zero if fpu is available. */ - - SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_is_fpu_available(void); -@@ -1196,4 +1186,64 @@ - - #endif /* !(defined SLJIT_INDIRECT_CALL && SLJIT_INDIRECT_CALL) */ - -+/* --------------------------------------------------------------------- */ -+/* CPU specific functions */ -+/* --------------------------------------------------------------------- */ -+ -+/* The following function is a helper function for sljit_emit_op_custom. -+ It returns with the real machine register index ( >=0 ) of any SLJIT_R, -+ SLJIT_S and SLJIT_SP registers. -+ -+ Note: it returns with -1 for virtual registers (only on x86-32). */ -+ -+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_register_index(sljit_si reg); -+ -+/* The following function is a helper function for sljit_emit_op_custom. -+ It returns with the real machine register index of any SLJIT_FLOAT register. -+ -+ Note: the index is always an even number on ARM (except ARM-64), MIPS, and SPARC. */ -+ -+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_float_register_index(sljit_si reg); -+ -+/* Any instruction can be inserted into the instruction stream by -+ sljit_emit_op_custom. It has a similar purpose as inline assembly. -+ The size parameter must match to the instruction size of the target -+ architecture: -+ -+ x86: 0 < size <= 15. The instruction argument can be byte aligned. -+ Thumb2: if size == 2, the instruction argument must be 2 byte aligned. -+ if size == 4, the instruction argument must be 4 byte aligned. -+ Otherwise: size must be 4 and instruction argument must be 4 byte aligned. */ -+ -+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_custom(struct sljit_compiler *compiler, -+ void *instruction, sljit_si size); -+ -+#if (defined SLJIT_CONFIG_X86 && SLJIT_CONFIG_X86) -+ -+/* Returns with non-zero if sse2 is available. */ -+ -+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_x86_is_sse2_available(void); -+ -+/* Returns with non-zero if cmov instruction is available. */ -+ -+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_x86_is_cmov_available(void); -+ -+/* Emit a conditional mov instruction on x86 CPUs. This instruction -+ moves src to destination, if the condition is satisfied. Unlike -+ other arithmetic instructions, destination must be a register. -+ Before such instructions are emitted, cmov support should be -+ checked by sljit_x86_is_cmov_available function. -+ type must be between SLJIT_EQUAL and SLJIT_S_ORDERED -+ dst_reg must be a valid register and it can be combined -+ with SLJIT_INT_OP to perform 32 bit arithmetic -+ Flags: I - (never set any flags) -+ */ -+ -+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_x86_emit_cmov(struct sljit_compiler *compiler, -+ sljit_si type, -+ sljit_si dst_reg, -+ sljit_si src, sljit_sw srcw); -+ -+#endif -+ - #endif /* _SLJIT_LIR_H_ */ -Index: sljit/sljitNativeARM_64.c -=================================================================== ---- sljit/sljitNativeARM_64.c (revision 1554) -+++ sljit/sljitNativeARM_64.c (working copy) -@@ -1087,7 +1087,8 @@ - saved_regs_size += sizeof(sljit_sw); - } - local_size -= saved_regs_size + SLJIT_LOCALS_OFFSET; -- FAIL_IF(push_inst(compiler, SUBI | RD(TMP_SP) | RN(TMP_SP) | (saved_regs_size << 10))); -+ if (saved_regs_size > 0) -+ FAIL_IF(push_inst(compiler, SUBI | RD(TMP_SP) | RN(TMP_SP) | (saved_regs_size << 10))); - } - - tmp = saveds < SLJIT_NUMBER_OF_SAVED_REGISTERS ? (SLJIT_S0 + 1 - saveds) : SLJIT_FIRST_SAVED_REG; -@@ -1094,7 +1095,12 @@ - prev = -1; - for (i = SLJIT_S0; i >= tmp; i--) { - if (prev == -1) { -- prev = i; -+ if (!(offs & (1 << 15))) { -+ prev = i; -+ continue; -+ } -+ FAIL_IF(push_inst(compiler, STRI | RT(i) | RN(TMP_SP) | (offs >> 5))); -+ offs += 1 << 15; - continue; - } - FAIL_IF(push_inst(compiler, STP | RT(prev) | RT2(i) | RN(TMP_SP) | offs)); -@@ -1104,7 +1110,12 @@ - - for (i = scratches; i >= SLJIT_FIRST_SAVED_REG; i--) { - if (prev == -1) { -- prev = i; -+ if (!(offs & (1 << 15))) { -+ prev = i; -+ continue; -+ } -+ FAIL_IF(push_inst(compiler, STRI | RT(i) | RN(TMP_SP) | (offs >> 5))); -+ offs += 1 << 15; - continue; - } - FAIL_IF(push_inst(compiler, STP | RT(prev) | RT2(i) | RN(TMP_SP) | offs)); -@@ -1112,8 +1123,7 @@ - prev = -1; - } - -- if (prev != -1) -- FAIL_IF(push_inst(compiler, STRI | RT(prev) | RN(TMP_SP) | (offs >> 5))); -+ SLJIT_ASSERT(prev == -1); - - if (compiler->local_size > (63 * sizeof(sljit_sw))) { - /* The local_size is already adjusted by the saved registers. */ -@@ -1188,7 +1198,12 @@ - prev = -1; - for (i = SLJIT_S0; i >= tmp; i--) { - if (prev == -1) { -- prev = i; -+ if (!(offs & (1 << 15))) { -+ prev = i; -+ continue; -+ } -+ FAIL_IF(push_inst(compiler, LDRI | RT(i) | RN(TMP_SP) | (offs >> 5))); -+ offs += 1 << 15; - continue; - } - FAIL_IF(push_inst(compiler, LDP | RT(prev) | RT2(i) | RN(TMP_SP) | offs)); -@@ -1198,7 +1213,12 @@ - - for (i = compiler->scratches; i >= SLJIT_FIRST_SAVED_REG; i--) { - if (prev == -1) { -- prev = i; -+ if (!(offs & (1 << 15))) { -+ prev = i; -+ continue; -+ } -+ FAIL_IF(push_inst(compiler, LDRI | RT(i) | RN(TMP_SP) | (offs >> 5))); -+ offs += 1 << 15; - continue; - } - FAIL_IF(push_inst(compiler, LDP | RT(prev) | RT2(i) | RN(TMP_SP) | offs)); -@@ -1206,13 +1226,12 @@ - prev = -1; - } - -- if (prev != -1) -- FAIL_IF(push_inst(compiler, LDRI | RT(prev) | RN(TMP_SP) | (offs >> 5))); -+ SLJIT_ASSERT(prev == -1); - - if (compiler->local_size <= (63 * sizeof(sljit_sw))) { - FAIL_IF(push_inst(compiler, LDP_PST | 29 | RT2(TMP_LR) - | RN(TMP_SP) | (((local_size >> 3) & 0x7f) << 15))); -- } else { -+ } else if (saved_regs_size > 0) { - FAIL_IF(push_inst(compiler, ADDI | RD(TMP_SP) | RN(TMP_SP) | (saved_regs_size << 10))); - } - -@@ -1242,12 +1261,15 @@ - FAIL_IF(push_inst(compiler, ORR | RD(TMP_REG1) | RN(TMP_ZERO) | RM(SLJIT_R0))); - FAIL_IF(push_inst(compiler, MADD | RD(SLJIT_R0) | RN(SLJIT_R0) | RM(SLJIT_R1) | RT2(TMP_ZERO))); - return push_inst(compiler, (op == SLJIT_LUMUL ? UMULH : SMULH) | RD(SLJIT_R1) | RN(TMP_REG1) | RM(SLJIT_R1)); -- case SLJIT_LUDIV: -- case SLJIT_LSDIV: -+ case SLJIT_UDIVMOD: -+ case SLJIT_SDIVMOD: - FAIL_IF(push_inst(compiler, (ORR ^ inv_bits) | RD(TMP_REG1) | RN(TMP_ZERO) | RM(SLJIT_R0))); -- FAIL_IF(push_inst(compiler, ((op == SLJIT_LUDIV ? UDIV : SDIV) ^ inv_bits) | RD(SLJIT_R0) | RN(SLJIT_R0) | RM(SLJIT_R1))); -+ FAIL_IF(push_inst(compiler, ((op == SLJIT_UDIVMOD ? UDIV : SDIV) ^ inv_bits) | RD(SLJIT_R0) | RN(SLJIT_R0) | RM(SLJIT_R1))); - FAIL_IF(push_inst(compiler, (MADD ^ inv_bits) | RD(SLJIT_R1) | RN(SLJIT_R0) | RM(SLJIT_R1) | RT2(TMP_ZERO))); - return push_inst(compiler, (SUB ^ inv_bits) | RD(SLJIT_R1) | RN(TMP_REG1) | RM(SLJIT_R1)); -+ case SLJIT_UDIVI: -+ case SLJIT_SDIVI: -+ return push_inst(compiler, ((op == SLJIT_UDIVI ? UDIV : SDIV) ^ inv_bits) | RD(SLJIT_R0) | RN(SLJIT_R0) | RM(SLJIT_R1)); - } - - return SLJIT_SUCCESS; -Index: sljit/sljitNativeARM_T2_32.c -=================================================================== ---- sljit/sljitNativeARM_T2_32.c (revision 1554) -+++ sljit/sljitNativeARM_T2_32.c (working copy) -@@ -1239,6 +1239,9 @@ - - SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op0(struct sljit_compiler *compiler, sljit_si op) - { -+ sljit_sw saved_reg_list[3]; -+ sljit_sw saved_reg_count; -+ - CHECK_ERROR(); - CHECK(check_sljit_emit_op0(compiler, op)); - -@@ -1255,24 +1258,53 @@ - | (reg_map[SLJIT_R0] << 12) - | (reg_map[SLJIT_R0] << 16) - | reg_map[SLJIT_R1]); -- case SLJIT_LUDIV: -- case SLJIT_LSDIV: -- if (compiler->scratches >= 4) { -- FAIL_IF(push_inst32(compiler, 0xf84d2d04 /* str r2, [sp, #-4]! */)); -- FAIL_IF(push_inst32(compiler, 0xf84dcd04 /* str ip, [sp, #-4]! */)); -- } else if (compiler->scratches >= 3) -- FAIL_IF(push_inst32(compiler, 0xf84d2d08 /* str r2, [sp, #-8]! */)); -+ case SLJIT_UDIVMOD: -+ case SLJIT_SDIVMOD: -+ case SLJIT_UDIVI: -+ case SLJIT_SDIVI: -+ SLJIT_COMPILE_ASSERT((SLJIT_UDIVMOD & 0x2) == 0 && SLJIT_UDIVI - 0x2 == SLJIT_UDIVMOD, bad_div_opcode_assignments); -+ SLJIT_COMPILE_ASSERT(reg_map[2] == 1 && reg_map[3] == 2 && reg_map[4] == 12, bad_register_mapping); -+ -+ saved_reg_count = 0; -+ if (compiler->scratches >= 4) -+ saved_reg_list[saved_reg_count++] = 12; -+ if (compiler->scratches >= 3) -+ saved_reg_list[saved_reg_count++] = 2; -+ if (op >= SLJIT_UDIVI) -+ saved_reg_list[saved_reg_count++] = 1; -+ -+ if (saved_reg_count > 0) { -+ FAIL_IF(push_inst32(compiler, 0xf84d0d00 | (saved_reg_count >= 3 ? 16 : 8) -+ | (saved_reg_list[0] << 12) /* str rX, [sp, #-8/-16]! */)); -+ if (saved_reg_count >= 2) { -+ SLJIT_ASSERT(saved_reg_list[1] < 8); -+ FAIL_IF(push_inst16(compiler, 0x9001 | (saved_reg_list[1] << 8) /* str rX, [sp, #4] */)); -+ } -+ if (saved_reg_count >= 3) { -+ SLJIT_ASSERT(saved_reg_list[2] < 8); -+ FAIL_IF(push_inst16(compiler, 0x9002 | (saved_reg_list[2] << 8) /* str rX, [sp, #8] */)); -+ } -+ } -+ - #if defined(__GNUC__) - FAIL_IF(sljit_emit_ijump(compiler, SLJIT_FAST_CALL, SLJIT_IMM, -- (op == SLJIT_LUDIV ? SLJIT_FUNC_OFFSET(__aeabi_uidivmod) : SLJIT_FUNC_OFFSET(__aeabi_idivmod)))); -+ ((op | 0x2) == SLJIT_UDIVI ? SLJIT_FUNC_OFFSET(__aeabi_uidivmod) : SLJIT_FUNC_OFFSET(__aeabi_idivmod)))); - #else - #error "Software divmod functions are needed" - #endif -- if (compiler->scratches >= 4) { -- FAIL_IF(push_inst32(compiler, 0xf85dcb04 /* ldr ip, [sp], #4 */)); -- return push_inst32(compiler, 0xf85d2b04 /* ldr r2, [sp], #4 */); -- } else if (compiler->scratches >= 3) -- return push_inst32(compiler, 0xf85d2b08 /* ldr r2, [sp], #8 */); -+ -+ if (saved_reg_count > 0) { -+ if (saved_reg_count >= 3) { -+ SLJIT_ASSERT(saved_reg_list[2] < 8); -+ FAIL_IF(push_inst16(compiler, 0x9802 | (saved_reg_list[2] << 8) /* ldr rX, [sp, #8] */)); -+ } -+ if (saved_reg_count >= 2) { -+ SLJIT_ASSERT(saved_reg_list[1] < 8); -+ FAIL_IF(push_inst16(compiler, 0x9801 | (saved_reg_list[1] << 8) /* ldr rX, [sp, #4] */)); -+ } -+ return push_inst32(compiler, 0xf85d0b00 | (saved_reg_count >= 3 ? 16 : 8) -+ | (saved_reg_list[0] << 12) /* ldr rX, [sp], #8/16 */); -+ } - return SLJIT_SUCCESS; - } - -Index: sljit/sljitNativePPC_common.c -=================================================================== ---- sljit/sljitNativePPC_common.c (revision 1554) -+++ sljit/sljitNativePPC_common.c (working copy) -@@ -1267,22 +1267,23 @@ - FAIL_IF(push_inst(compiler, MULLW | D(SLJIT_R0) | A(TMP_REG1) | B(SLJIT_R1))); - return push_inst(compiler, (op == SLJIT_LUMUL ? MULHWU : MULHW) | D(SLJIT_R1) | A(TMP_REG1) | B(SLJIT_R1)); - #endif -- case SLJIT_LUDIV: -- case SLJIT_LSDIV: -+ case SLJIT_UDIVMOD: -+ case SLJIT_SDIVMOD: - FAIL_IF(push_inst(compiler, OR | S(SLJIT_R0) | A(TMP_REG1) | B(SLJIT_R0))); - #if (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64) -- if (int_op) { -- FAIL_IF(push_inst(compiler, (op == SLJIT_LUDIV ? DIVWU : DIVW) | D(SLJIT_R0) | A(TMP_REG1) | B(SLJIT_R1))); -- FAIL_IF(push_inst(compiler, MULLW | D(SLJIT_R1) | A(SLJIT_R0) | B(SLJIT_R1))); -- } else { -- FAIL_IF(push_inst(compiler, (op == SLJIT_LUDIV ? DIVDU : DIVD) | D(SLJIT_R0) | A(TMP_REG1) | B(SLJIT_R1))); -- FAIL_IF(push_inst(compiler, MULLD | D(SLJIT_R1) | A(SLJIT_R0) | B(SLJIT_R1))); -- } -- return push_inst(compiler, SUBF | D(SLJIT_R1) | A(SLJIT_R1) | B(TMP_REG1)); -+ FAIL_IF(push_inst(compiler, (int_op ? (op == SLJIT_UDIVMOD ? DIVWU : DIVW) : (op == SLJIT_UDIVMOD ? DIVDU : DIVD)) | D(SLJIT_R0) | A(SLJIT_R0) | B(SLJIT_R1))); -+ FAIL_IF(push_inst(compiler, (int_op ? MULLW : MULLD) | D(SLJIT_R1) | A(SLJIT_R0) | B(SLJIT_R1))); - #else -- FAIL_IF(push_inst(compiler, (op == SLJIT_LUDIV ? DIVWU : DIVW) | D(SLJIT_R0) | A(TMP_REG1) | B(SLJIT_R1))); -+ FAIL_IF(push_inst(compiler, (op == SLJIT_UDIVMOD ? DIVWU : DIVW) | D(SLJIT_R0) | A(SLJIT_R0) | B(SLJIT_R1))); - FAIL_IF(push_inst(compiler, MULLW | D(SLJIT_R1) | A(SLJIT_R0) | B(SLJIT_R1))); -+#endif - return push_inst(compiler, SUBF | D(SLJIT_R1) | A(SLJIT_R1) | B(TMP_REG1)); -+ case SLJIT_UDIVI: -+ case SLJIT_SDIVI: -+#if (defined SLJIT_CONFIG_PPC_64 && SLJIT_CONFIG_PPC_64) -+ return push_inst(compiler, (int_op ? (op == SLJIT_UDIVI ? DIVWU : DIVW) : (op == SLJIT_UDIVI ? DIVDU : DIVD)) | D(SLJIT_R0) | A(SLJIT_R0) | B(SLJIT_R1)); -+#else -+ return push_inst(compiler, (op == SLJIT_UDIVI ? DIVWU : DIVW) | D(SLJIT_R0) | A(SLJIT_R0) | B(SLJIT_R1)); - #endif - } - -Index: sljit/sljitNativeX86_common.c -=================================================================== ---- sljit/sljitNativeX86_common.c (revision 1554) -+++ sljit/sljitNativeX86_common.c (working copy) -@@ -273,7 +273,9 @@ - #endif - static sljit_si cpu_has_cmov = -1; - --#if defined(_MSC_VER) && _MSC_VER >= 1400 -+#ifdef _WIN32_WCE -+#include -+#elif defined(_MSC_VER) && _MSC_VER >= 1400 - #include - #endif - -@@ -742,8 +744,10 @@ - break; - case SLJIT_LUMUL: - case SLJIT_LSMUL: -- case SLJIT_LUDIV: -- case SLJIT_LSDIV: -+ case SLJIT_UDIVMOD: -+ case SLJIT_SDIVMOD: -+ case SLJIT_UDIVI: -+ case SLJIT_SDIVI: - compiler->flags_saved = 0; - #if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) - #ifdef _WIN64 -@@ -761,9 +765,10 @@ - #endif - compiler->mode32 = op & SLJIT_INT_OP; - #endif -+ SLJIT_COMPILE_ASSERT((SLJIT_UDIVMOD & 0x2) == 0 && SLJIT_UDIVI - 0x2 == SLJIT_UDIVMOD, bad_div_opcode_assignments); - - op = GET_OPCODE(op); -- if (op == SLJIT_LUDIV) { -+ if ((op | 0x2) == SLJIT_UDIVI) { - #if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) || defined(_WIN64) - EMIT_MOV(compiler, TMP_REG1, 0, SLJIT_R1, 0); - inst = emit_x86_instruction(compiler, 1, SLJIT_R1, 0, SLJIT_R1, 0); -@@ -774,7 +779,7 @@ - *inst = XOR_r_rm; - } - -- if (op == SLJIT_LSDIV) { -+ if ((op | 0x2) == SLJIT_SDIVI) { - #if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) || defined(_WIN64) - EMIT_MOV(compiler, TMP_REG1, 0, SLJIT_R1, 0); - #endif -@@ -805,10 +810,10 @@ - FAIL_IF(!inst); - INC_SIZE(2); - *inst++ = GROUP_F7; -- *inst = MOD_REG | ((op >= SLJIT_LUDIV) ? reg_map[TMP_REG1] : reg_map[SLJIT_R1]); -+ *inst = MOD_REG | ((op >= SLJIT_UDIVMOD) ? reg_map[TMP_REG1] : reg_map[SLJIT_R1]); - #else - #ifdef _WIN64 -- size = (!compiler->mode32 || op >= SLJIT_LUDIV) ? 3 : 2; -+ size = (!compiler->mode32 || op >= SLJIT_UDIVMOD) ? 3 : 2; - #else - size = (!compiler->mode32) ? 3 : 2; - #endif -@@ -817,11 +822,11 @@ - INC_SIZE(size); - #ifdef _WIN64 - if (!compiler->mode32) -- *inst++ = REX_W | ((op >= SLJIT_LUDIV) ? REX_B : 0); -- else if (op >= SLJIT_LUDIV) -+ *inst++ = REX_W | ((op >= SLJIT_UDIVMOD) ? REX_B : 0); -+ else if (op >= SLJIT_UDIVMOD) - *inst++ = REX_B; - *inst++ = GROUP_F7; -- *inst = MOD_REG | ((op >= SLJIT_LUDIV) ? reg_lmap[TMP_REG1] : reg_lmap[SLJIT_R1]); -+ *inst = MOD_REG | ((op >= SLJIT_UDIVMOD) ? reg_lmap[TMP_REG1] : reg_lmap[SLJIT_R1]); - #else - if (!compiler->mode32) - *inst++ = REX_W; -@@ -836,15 +841,21 @@ - case SLJIT_LSMUL: - *inst |= IMUL; - break; -- case SLJIT_LUDIV: -+ case SLJIT_UDIVMOD: -+ case SLJIT_UDIVI: - *inst |= DIV; - break; -- case SLJIT_LSDIV: -+ case SLJIT_SDIVMOD: -+ case SLJIT_SDIVI: - *inst |= IDIV; - break; - } - #if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) && !defined(_WIN64) -- EMIT_MOV(compiler, SLJIT_R1, 0, TMP_REG1, 0); -+ if (op <= SLJIT_SDIVMOD) -+ EMIT_MOV(compiler, SLJIT_R1, 0, TMP_REG1, 0); -+#else -+ if (op >= SLJIT_UDIVI) -+ EMIT_MOV(compiler, SLJIT_R1, 0, TMP_REG1, 0); - #endif - break; - } -@@ -1905,60 +1916,62 @@ - return SLJIT_SUCCESS; - } - -- if (FAST_IS_REG(src1)) { -+ if (!(src1 & SLJIT_IMM)) { - if (src2 & SLJIT_IMM) { - #if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) - if (IS_HALFWORD(src2w) || compiler->mode32) { -- inst = emit_x86_instruction(compiler, 1, SLJIT_IMM, src2w, src1, 0); -+ inst = emit_x86_instruction(compiler, 1, SLJIT_IMM, src2w, src1, src1w); - FAIL_IF(!inst); - *inst = GROUP_F7; - } - else { - FAIL_IF(emit_load_imm64(compiler, TMP_REG2, src2w)); -- inst = emit_x86_instruction(compiler, 1, TMP_REG2, 0, src1, 0); -+ inst = emit_x86_instruction(compiler, 1, TMP_REG2, 0, src1, src1w); - FAIL_IF(!inst); - *inst = TEST_rm_r; - } - #else -- inst = emit_x86_instruction(compiler, 1, SLJIT_IMM, src2w, src1, 0); -+ inst = emit_x86_instruction(compiler, 1, SLJIT_IMM, src2w, src1, src1w); - FAIL_IF(!inst); - *inst = GROUP_F7; - #endif -+ return SLJIT_SUCCESS; - } -- else { -+ else if (FAST_IS_REG(src1)) { - inst = emit_x86_instruction(compiler, 1, src1, 0, src2, src2w); - FAIL_IF(!inst); - *inst = TEST_rm_r; -+ return SLJIT_SUCCESS; - } -- return SLJIT_SUCCESS; - } - -- if (FAST_IS_REG(src2)) { -+ if (!(src2 & SLJIT_IMM)) { - if (src1 & SLJIT_IMM) { - #if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) - if (IS_HALFWORD(src1w) || compiler->mode32) { -- inst = emit_x86_instruction(compiler, 1, SLJIT_IMM, src1w, src2, 0); -+ inst = emit_x86_instruction(compiler, 1, SLJIT_IMM, src1w, src2, src2w); - FAIL_IF(!inst); - *inst = GROUP_F7; - } - else { - FAIL_IF(emit_load_imm64(compiler, TMP_REG2, src1w)); -- inst = emit_x86_instruction(compiler, 1, TMP_REG2, 0, src2, 0); -+ inst = emit_x86_instruction(compiler, 1, TMP_REG2, 0, src2, src2w); - FAIL_IF(!inst); - *inst = TEST_rm_r; - } - #else -- inst = emit_x86_instruction(compiler, 1, src1, src1w, src2, 0); -+ inst = emit_x86_instruction(compiler, 1, src1, src1w, src2, src2w); - FAIL_IF(!inst); - *inst = GROUP_F7; - #endif -+ return SLJIT_SUCCESS; - } -- else { -+ else if (FAST_IS_REG(src2)) { - inst = emit_x86_instruction(compiler, 1, src2, 0, src1, src1w); - FAIL_IF(!inst); - *inst = TEST_rm_r; -+ return SLJIT_SUCCESS; - } -- return SLJIT_SUCCESS; - } - - EMIT_MOV(compiler, TMP_REG1, 0, src1, src1w); -@@ -2923,3 +2936,69 @@ - { - *(sljit_sw*)addr = new_constant; - } -+ -+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_x86_is_sse2_available(void) -+{ -+#if (defined SLJIT_DETECT_SSE2 && SLJIT_DETECT_SSE2) -+ if (cpu_has_sse2 == -1) -+ get_cpu_features(); -+ return cpu_has_sse2; -+#else -+ return 1; -+#endif -+} -+ -+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_x86_is_cmov_available(void) -+{ -+ if (cpu_has_cmov == -1) -+ get_cpu_features(); -+ return cpu_has_cmov; -+} -+ -+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_x86_emit_cmov(struct sljit_compiler *compiler, -+ sljit_si type, -+ sljit_si dst_reg, -+ sljit_si src, sljit_sw srcw) -+{ -+ sljit_ub* inst; -+ -+ CHECK_ERROR(); -+#if (defined SLJIT_ARGUMENT_CHECKS && SLJIT_ARGUMENT_CHECKS) -+ CHECK_ARGUMENT(sljit_x86_is_cmov_available()); -+ CHECK_ARGUMENT(!(type & ~(0xff | SLJIT_INT_OP))); -+ CHECK_ARGUMENT((type & 0xff) >= SLJIT_EQUAL && (type & 0xff) <= SLJIT_D_ORDERED); -+ CHECK_ARGUMENT(FUNCTION_CHECK_IS_REG(dst_reg & ~SLJIT_INT_OP)); -+ FUNCTION_CHECK_SRC(src, srcw); -+#endif -+#if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) -+ if (SLJIT_UNLIKELY(!!compiler->verbose)) { -+ fprintf(compiler->verbose, " x86_cmov%s %s%s, ", -+ !(dst_reg & SLJIT_INT_OP) ? "" : ".i", -+ JUMP_PREFIX(type), jump_names[type & 0xff]); -+ sljit_verbose_reg(compiler, dst_reg & ~SLJIT_INT_OP); -+ fprintf(compiler->verbose, ", "); -+ sljit_verbose_param(compiler, src, srcw); -+ fprintf(compiler->verbose, "\n"); -+ } -+#endif -+ -+ ADJUST_LOCAL_OFFSET(src, srcw); -+ CHECK_EXTRA_REGS(src, srcw, (void)0); -+ -+#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) -+ compiler->mode32 = dst_reg & SLJIT_INT_OP; -+#endif -+ dst_reg &= ~SLJIT_INT_OP; -+ -+ if (SLJIT_UNLIKELY(src & SLJIT_IMM)) { -+ EMIT_MOV(compiler, TMP_REG1, 0, SLJIT_IMM, srcw); -+ src = TMP_REG1; -+ srcw = 0; -+ } -+ -+ inst = emit_x86_instruction(compiler, 2, dst_reg, 0, src, srcw); -+ FAIL_IF(!inst); -+ *inst++ = GROUP_0F; -+ *inst = get_jump_code(type & 0xff) - 0x40; -+ return SLJIT_SUCCESS; -+} -Index: sljit/sljitConfigInternal.h -=================================================================== ---- sljit/sljitConfigInternal.h (revision 1554) -+++ sljit/sljitConfigInternal.h (working copy) -@@ -468,8 +468,13 @@ - - #ifndef SLJIT_CALL - --#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) -+#if (defined SLJIT_USE_CDECL_CALLING_CONVENTION && SLJIT_USE_CDECL_CALLING_CONVENTION) - -+/* Force cdecl. */ -+#define SLJIT_CALL -+ -+#elif (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32) -+ - #if defined(__GNUC__) && !defined(__APPLE__) - - #define SLJIT_CALL __attribute__ ((fastcall)) -@@ -608,6 +613,12 @@ - #define SLJIT_LOCALS_OFFSET_BASE ((23 + 1) * sizeof(sljit_sw)) - #endif - -+#elif (defined SLJIT_CONFIG_TILEGX && SLJIT_CONFIG_TILEGX) -+ -+#define SLJIT_NUMBER_OF_REGISTERS 10 -+#define SLJIT_NUMBER_OF_SAVED_REGISTERS 5 -+#define SLJIT_LOCALS_OFFSET_BASE 0 -+ - #elif (defined SLJIT_CONFIG_UNSUPPORTED && SLJIT_CONFIG_UNSUPPORTED) - - #define SLJIT_NUMBER_OF_REGISTERS 0 -Index: sljit/sljitConfig.h -=================================================================== ---- sljit/sljitConfig.h (revision 1554) -+++ sljit/sljitConfig.h (working copy) -@@ -96,6 +96,15 @@ - #define SLJIT_EXECUTABLE_ALLOCATOR 1 - #endif - -+/* Force cdecl calling convention even if a better calling -+ convention (e.g. fastcall) is supported by the C compiler. -+ If this option is enabled, C functions without -+ SLJIT_CALL can also be called from JIT code. */ -+#ifndef SLJIT_USE_CDECL_CALLING_CONVENTION -+/* Disabled by default */ -+#define SLJIT_USE_CDECL_CALLING_CONVENTION 0 -+#endif -+ - /* Return with error when an invalid argument is passed. */ - #ifndef SLJIT_ARGUMENT_CHECKS - /* Disabled by default */ -Index: sljit/sljitNativeTILEGX_64.c -=================================================================== ---- sljit/sljitNativeTILEGX_64.c (revision 1554) -+++ sljit/sljitNativeTILEGX_64.c (working copy) -@@ -35,21 +35,21 @@ - #define SIMM_16BIT_MIN (-0x8000) - #define SIMM_17BIT_MAX (0xffff) - #define SIMM_17BIT_MIN (-0x10000) --#define SIMM_32BIT_MIN (-0x80000000) - #define SIMM_32BIT_MAX (0x7fffffff) --#define SIMM_48BIT_MIN (0x800000000000L) -+#define SIMM_32BIT_MIN (-0x7fffffff - 1) - #define SIMM_48BIT_MAX (0x7fffffff0000L) -+#define SIMM_48BIT_MIN (-0x800000000000L) - #define IMM16(imm) ((imm) & 0xffff) - - #define UIMM_16BIT_MAX (0xffff) - --#define TMP_REG1 (SLJIT_NO_REGISTERS + 1) --#define TMP_REG2 (SLJIT_NO_REGISTERS + 2) --#define TMP_REG3 (SLJIT_NO_REGISTERS + 3) --#define ADDR_TMP (SLJIT_NO_REGISTERS + 4) -+#define TMP_REG1 (SLJIT_NUMBER_OF_REGISTERS + 2) -+#define TMP_REG2 (SLJIT_NUMBER_OF_REGISTERS + 3) -+#define TMP_REG3 (SLJIT_NUMBER_OF_REGISTERS + 4) -+#define ADDR_TMP (SLJIT_NUMBER_OF_REGISTERS + 5) - #define PIC_ADDR_REG TMP_REG2 - --static SLJIT_CONST sljit_ub reg_map[SLJIT_NO_REGISTERS + 5] = { -+static SLJIT_CONST sljit_ub reg_map[SLJIT_NUMBER_OF_REGISTERS + 6] = { - 63, 0, 1, 2, 3, 4, 30, 31, 32, 33, 34, 54, 5, 16, 6, 7 - }; - -@@ -58,11 +58,6 @@ - #define TMP_REG2_mapped 16 - #define TMP_REG3_mapped 6 - #define ADDR_TMP_mapped 7 --#define SLJIT_SAVED_REG1_mapped 30 --#define SLJIT_SAVED_REG2_mapped 31 --#define SLJIT_SAVED_REG3_mapped 32 --#define SLJIT_SAVED_EREG1_mapped 33 --#define SLJIT_SAVED_EREG2_mapped 34 - - /* Flags are keept in volatile registers. */ - #define EQUAL_FLAG 8 -@@ -399,6 +394,9 @@ - #define SUB(dst, srca, srcb) \ - push_3_buffer(compiler, TILEGX_OPC_SUB, dst, srca, srcb, __LINE__) - -+#define MUL(dst, srca, srcb) \ -+ push_3_buffer(compiler, TILEGX_OPC_MULX, dst, srca, srcb, __LINE__) -+ - #define NOR(dst, srca, srcb) \ - push_3_buffer(compiler, TILEGX_OPC_NOR, dst, srca, srcb, __LINE__) - -@@ -547,8 +545,8 @@ - - const struct Format* match = NULL; - const struct Format *b = NULL; -- unsigned int i = 0; -- for (i; i < sizeof formats / sizeof formats[0]; i++) { -+ unsigned int i; -+ for (i = 0; i < sizeof formats / sizeof formats[0]; i++) { - b = &formats[i]; - if ((b->pipe_mask & compatible_pipes) == b->pipe_mask) { - match = b; -@@ -625,7 +623,6 @@ - - static sljit_si update_buffer(struct sljit_compiler *compiler) - { -- int count; - int i; - int orig_index = inst_buf_index; - struct jit_instr inst0 = inst_buf[0]; -@@ -738,8 +735,10 @@ - - static sljit_si flush_buffer(struct sljit_compiler *compiler) - { -- while (inst_buf_index != 0) -- update_buffer(compiler); -+ while (inst_buf_index != 0) { -+ FAIL_IF(update_buffer(compiler)); -+ } -+ return SLJIT_SUCCESS; - } - - static sljit_si push_4_buffer(struct sljit_compiler *compiler, tilegx_mnemonic opc, int op0, int op1, int op2, int op3, int line) -@@ -787,6 +786,7 @@ - case TILEGX_OPC_ADD: - case TILEGX_OPC_AND: - case TILEGX_OPC_SUB: -+ case TILEGX_OPC_MULX: - case TILEGX_OPC_OR: - case TILEGX_OPC_XOR: - case TILEGX_OPC_NOR: -@@ -905,7 +905,6 @@ - sljit_sw diff; - sljit_uw target_addr; - sljit_ins *inst; -- sljit_ins saved_inst; - - if (jump->flags & SLJIT_REWRITABLE_JUMP) - return code_ptr; -@@ -1009,7 +1008,7 @@ - struct sljit_const *const_; - - CHECK_ERROR_PTR(); -- check_sljit_generate_code(compiler); -+ CHECK_PTR(check_sljit_generate_code(compiler)); - reverse_buf(compiler); - - code = (sljit_ins *)SLJIT_MALLOC_EXEC(compiler->size * sizeof(sljit_ins)); -@@ -1178,13 +1177,13 @@ - sljit_si fscratches, sljit_si fsaveds, sljit_si local_size) - { - sljit_ins base; -- sljit_ins bundle = 0; -- -+ sljit_si i, tmp; -+ - CHECK_ERROR(); -- check_sljit_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size); -+ CHECK(check_sljit_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size)); - set_emit_enter(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size); - -- local_size += (saveds + 1) * sizeof(sljit_sw); -+ local_size += GET_SAVED_REGISTERS_SIZE(scratches, saveds, 1); - local_size = (local_size + 7) & ~7; - compiler->local_size = local_size; - -@@ -1200,46 +1199,41 @@ - local_size = 0; - } - -+ /* Save the return address. */ - FAIL_IF(ADDLI(ADDR_TMP_mapped, base, local_size - 8)); - FAIL_IF(ST_ADD(ADDR_TMP_mapped, RA, -8)); - -- if (saveds >= 1) -- FAIL_IF(ST_ADD(ADDR_TMP_mapped, SLJIT_SAVED_REG1_mapped, -8)); -+ /* Save the S registers. */ -+ tmp = saveds < SLJIT_NUMBER_OF_SAVED_REGISTERS ? (SLJIT_S0 + 1 - saveds) : SLJIT_FIRST_SAVED_REG; -+ for (i = SLJIT_S0; i >= tmp; i--) { -+ FAIL_IF(ST_ADD(ADDR_TMP_mapped, reg_map[i], -8)); -+ } - -- if (saveds >= 2) -- FAIL_IF(ST_ADD(ADDR_TMP_mapped, SLJIT_SAVED_REG2_mapped, -8)); -+ /* Save the R registers that need to be reserved. */ -+ for (i = scratches; i >= SLJIT_FIRST_SAVED_REG; i--) { -+ FAIL_IF(ST_ADD(ADDR_TMP_mapped, reg_map[i], -8)); -+ } - -- if (saveds >= 3) -- FAIL_IF(ST_ADD(ADDR_TMP_mapped, SLJIT_SAVED_REG3_mapped, -8)); -+ /* Move the arguments to S registers. */ -+ for (i = 0; i < args; i++) { -+ FAIL_IF(ADD(reg_map[SLJIT_S0 - i], i, ZERO)); -+ } - -- if (saveds >= 4) -- FAIL_IF(ST_ADD(ADDR_TMP_mapped, SLJIT_SAVED_EREG1_mapped, -8)); -- -- if (saveds >= 5) -- FAIL_IF(ST_ADD(ADDR_TMP_mapped, SLJIT_SAVED_EREG2_mapped, -8)); -- -- if (args >= 1) -- FAIL_IF(ADD(SLJIT_SAVED_REG1_mapped, 0, ZERO)); -- -- if (args >= 2) -- FAIL_IF(ADD(SLJIT_SAVED_REG2_mapped, 1, ZERO)); -- -- if (args >= 3) -- FAIL_IF(ADD(SLJIT_SAVED_REG3_mapped, 2, ZERO)); -- - return SLJIT_SUCCESS; - } - --SLJIT_API_FUNC_ATTRIBUTE void sljit_set_context(struct sljit_compiler *compiler, -+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_set_context(struct sljit_compiler *compiler, - sljit_si options, sljit_si args, sljit_si scratches, sljit_si saveds, - sljit_si fscratches, sljit_si fsaveds, sljit_si local_size) - { -- CHECK_ERROR_VOID(); -- check_sljit_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size); -+ CHECK_ERROR(); -+ CHECK(check_sljit_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size)); - set_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size); - -- local_size += (saveds + 1) * sizeof(sljit_sw); -+ local_size += GET_SAVED_REGISTERS_SIZE(scratches, saveds, 1); - compiler->local_size = (local_size + 7) & ~7; -+ -+ return SLJIT_SUCCESS; - } - - SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_return(struct sljit_compiler *compiler, sljit_si op, sljit_si src, sljit_sw srcw) -@@ -1246,10 +1240,11 @@ - { - sljit_si local_size; - sljit_ins base; -- int addr_initialized = 0; -+ sljit_si i, tmp; -+ sljit_si saveds; - - CHECK_ERROR(); -- check_sljit_emit_return(compiler, op, src, srcw); -+ CHECK(check_sljit_emit_return(compiler, op, src, srcw)); - - FAIL_IF(emit_mov_before_return(compiler, op, src, srcw)); - -@@ -1263,52 +1258,22 @@ - local_size = 0; - } - -+ /* Restore the return address. */ - FAIL_IF(ADDLI(ADDR_TMP_mapped, base, local_size - 8)); -- FAIL_IF(LD(RA, ADDR_TMP_mapped)); -+ FAIL_IF(LD_ADD(RA, ADDR_TMP_mapped, -8)); - -- if (compiler->saveds >= 5) { -- FAIL_IF(ADDLI(ADDR_TMP_mapped, base, local_size - 48)); -- addr_initialized = 1; -- -- FAIL_IF(LD_ADD(SLJIT_SAVED_EREG2_mapped, ADDR_TMP_mapped, 8)); -+ /* Restore the S registers. */ -+ saveds = compiler->saveds; -+ tmp = saveds < SLJIT_NUMBER_OF_SAVED_REGISTERS ? (SLJIT_S0 + 1 - saveds) : SLJIT_FIRST_SAVED_REG; -+ for (i = SLJIT_S0; i >= tmp; i--) { -+ FAIL_IF(LD_ADD(reg_map[i], ADDR_TMP_mapped, -8)); - } - -- if (compiler->saveds >= 4) { -- if (addr_initialized == 0) { -- FAIL_IF(ADDLI(ADDR_TMP_mapped, base, local_size - 40)); -- addr_initialized = 1; -- } -- -- FAIL_IF(LD_ADD(SLJIT_SAVED_EREG1_mapped, ADDR_TMP_mapped, 8)); -+ /* Restore the R registers that need to be reserved. */ -+ for (i = compiler->scratches; i >= SLJIT_FIRST_SAVED_REG; i--) { -+ FAIL_IF(LD_ADD(reg_map[i], ADDR_TMP_mapped, -8)); - } - -- if (compiler->saveds >= 3) { -- if (addr_initialized == 0) { -- FAIL_IF(ADDLI(ADDR_TMP_mapped, base, local_size - 32)); -- addr_initialized = 1; -- } -- -- FAIL_IF(LD_ADD(SLJIT_SAVED_REG3_mapped, ADDR_TMP_mapped, 8)); -- } -- -- if (compiler->saveds >= 2) { -- if (addr_initialized == 0) { -- FAIL_IF(ADDLI(ADDR_TMP_mapped, base, local_size - 24)); -- addr_initialized = 1; -- } -- -- FAIL_IF(LD_ADD(SLJIT_SAVED_REG2_mapped, ADDR_TMP_mapped, 8)); -- } -- -- if (compiler->saveds >= 1) { -- if (addr_initialized == 0) { -- FAIL_IF(ADDLI(ADDR_TMP_mapped, base, local_size - 16)); -- /* addr_initialized = 1; no need to initialize as it's the last one. */ -- } -- -- FAIL_IF(LD_ADD(SLJIT_SAVED_REG1_mapped, ADDR_TMP_mapped, 8)); -- } -- - if (compiler->local_size <= SIMM_16BIT_MAX) - FAIL_IF(ADDLI(SLJIT_LOCALS_REG_mapped, SLJIT_LOCALS_REG_mapped, compiler->local_size)); - else -@@ -1585,7 +1550,7 @@ - SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_enter(struct sljit_compiler *compiler, sljit_si dst, sljit_sw dstw) - { - CHECK_ERROR(); -- check_sljit_emit_fast_enter(compiler, dst, dstw); -+ CHECK(check_sljit_emit_fast_enter(compiler, dst, dstw)); - ADJUST_LOCAL_OFFSET(dst, dstw); - - /* For UNUSED dst. Uncommon, but possible. */ -@@ -1602,7 +1567,7 @@ - SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_fast_return(struct sljit_compiler *compiler, sljit_si src, sljit_sw srcw) - { - CHECK_ERROR(); -- check_sljit_emit_fast_return(compiler, src, srcw); -+ CHECK(check_sljit_emit_fast_return(compiler, src, srcw)); - ADJUST_LOCAL_OFFSET(src, srcw); - - if (FAST_IS_REG(src)) -@@ -1636,9 +1601,11 @@ - if (op == SLJIT_MOV_SI) - return BFEXTS(reg_map[dst], reg_map[src2], 0, 31); - -- return BFEXTU(reg_map[dst], reg_map[src2], 0, 31); -- } else if (dst != src2) -- SLJIT_ASSERT_STOP(); -+ return BFEXTU(reg_map[dst], reg_map[src2], 0, 31); -+ } else if (dst != src2) { -+ SLJIT_ASSERT(src2 == 0); -+ return ADD(reg_map[dst], reg_map[src2], ZERO); -+ } - - return SLJIT_SUCCESS; - -@@ -1650,8 +1617,10 @@ - return BFEXTS(reg_map[dst], reg_map[src2], 0, 7); - - return BFEXTU(reg_map[dst], reg_map[src2], 0, 7); -- } else if (dst != src2) -- SLJIT_ASSERT_STOP(); -+ } else if (dst != src2) { -+ SLJIT_ASSERT(src2 == 0); -+ return ADD(reg_map[dst], reg_map[src2], ZERO); -+ } - - return SLJIT_SUCCESS; - -@@ -1663,8 +1632,10 @@ - return BFEXTS(reg_map[dst], reg_map[src2], 0, 15); - - return BFEXTU(reg_map[dst], reg_map[src2], 0, 15); -- } else if (dst != src2) -- SLJIT_ASSERT_STOP(); -+ } else if (dst != src2) { -+ SLJIT_ASSERT(src2 == 0); -+ return ADD(reg_map[dst], reg_map[src2], ZERO); -+ } - - return SLJIT_SUCCESS; - -@@ -1811,7 +1782,6 @@ - else { - /* Rare ocasion. */ - FAIL_IF(ADD(TMP_EREG2, reg_map[src1], ZERO)); -- - overflow_ra = TMP_EREG2; - } - } -@@ -1903,6 +1873,17 @@ - - return SLJIT_SUCCESS; - -+ case SLJIT_MUL: -+ if (flags & SRC2_IMM) { -+ FAIL_IF(load_immediate(compiler, TMP_REG2_mapped, src2)); -+ src2 = TMP_REG2; -+ flags &= ~SRC2_IMM; -+ } -+ -+ FAIL_IF(MUL(reg_map[dst], reg_map[src1], reg_map[src2])); -+ -+ return SLJIT_SUCCESS; -+ - #define EMIT_LOGICAL(op_imm, op_norm) \ - if (flags & SRC2_IMM) { \ - FAIL_IF(load_immediate(compiler, ADDR_TMP_mapped, src2)); \ -@@ -1950,8 +1931,8 @@ - } else { \ - if (op & SLJIT_SET_E) \ - FAIL_IF(push_3_buffer( \ -- compiler, op_imm, reg_map[dst], reg_map[src1], \ -- src2 & 0x3F, __LINE__)); \ -+ compiler, op_norm, EQUAL_FLAG, reg_map[src1], \ -+ reg_map[src2], __LINE__)); \ - if (CHECK_FLAGS(SLJIT_SET_E)) \ - FAIL_IF(push_3_buffer( \ - compiler, op_norm, reg_map[dst], reg_map[src1], \ -@@ -2105,9 +2086,10 @@ - { - sljit_si sugg_dst_ar, dst_ar; - sljit_si flags = GET_ALL_FLAGS(op); -+ sljit_si mem_type = (op & SLJIT_INT_OP) ? (INT_DATA | SIGNED_DATA) : WORD_DATA; - - CHECK_ERROR(); -- check_sljit_emit_op_flags(compiler, op, dst, dstw, src, srcw, type); -+ CHECK(check_sljit_emit_op_flags(compiler, op, dst, dstw, src, srcw, type)); - ADJUST_LOCAL_OFFSET(dst, dstw); - - if (dst == SLJIT_UNUSED) -@@ -2114,6 +2096,8 @@ - return SLJIT_SUCCESS; - - op = GET_OPCODE(op); -+ if (op == SLJIT_MOV_SI || op == SLJIT_MOV_UI) -+ mem_type = INT_DATA | SIGNED_DATA; - sugg_dst_ar = reg_map[(op < SLJIT_ADD && FAST_IS_REG(dst)) ? dst : TMP_REG2]; - - compiler->cache_arg = 0; -@@ -2120,51 +2104,43 @@ - compiler->cache_argw = 0; - if (op >= SLJIT_ADD && (src & SLJIT_MEM)) { - ADJUST_LOCAL_OFFSET(src, srcw); -- FAIL_IF(emit_op_mem2(compiler, WORD_DATA | LOAD_DATA, TMP_REG1_mapped, src, srcw, dst, dstw)); -+ FAIL_IF(emit_op_mem2(compiler, mem_type | LOAD_DATA, TMP_REG1_mapped, src, srcw, dst, dstw)); - src = TMP_REG1; - srcw = 0; - } - -- switch (type) { -- case SLJIT_C_EQUAL: -- case SLJIT_C_NOT_EQUAL: -+ switch (type & 0xff) { -+ case SLJIT_EQUAL: -+ case SLJIT_NOT_EQUAL: - FAIL_IF(CMPLTUI(sugg_dst_ar, EQUAL_FLAG, 1)); - dst_ar = sugg_dst_ar; - break; -- case SLJIT_C_LESS: -- case SLJIT_C_GREATER_EQUAL: -- case SLJIT_C_FLOAT_LESS: -- case SLJIT_C_FLOAT_GREATER_EQUAL: -+ case SLJIT_LESS: -+ case SLJIT_GREATER_EQUAL: - dst_ar = ULESS_FLAG; - break; -- case SLJIT_C_GREATER: -- case SLJIT_C_LESS_EQUAL: -- case SLJIT_C_FLOAT_GREATER: -- case SLJIT_C_FLOAT_LESS_EQUAL: -+ case SLJIT_GREATER: -+ case SLJIT_LESS_EQUAL: - dst_ar = UGREATER_FLAG; - break; -- case SLJIT_C_SIG_LESS: -- case SLJIT_C_SIG_GREATER_EQUAL: -+ case SLJIT_SIG_LESS: -+ case SLJIT_SIG_GREATER_EQUAL: - dst_ar = LESS_FLAG; - break; -- case SLJIT_C_SIG_GREATER: -- case SLJIT_C_SIG_LESS_EQUAL: -+ case SLJIT_SIG_GREATER: -+ case SLJIT_SIG_LESS_EQUAL: - dst_ar = GREATER_FLAG; - break; -- case SLJIT_C_OVERFLOW: -- case SLJIT_C_NOT_OVERFLOW: -+ case SLJIT_OVERFLOW: -+ case SLJIT_NOT_OVERFLOW: - dst_ar = OVERFLOW_FLAG; - break; -- case SLJIT_C_MUL_OVERFLOW: -- case SLJIT_C_MUL_NOT_OVERFLOW: -+ case SLJIT_MUL_OVERFLOW: -+ case SLJIT_MUL_NOT_OVERFLOW: - FAIL_IF(CMPLTUI(sugg_dst_ar, OVERFLOW_FLAG, 1)); - dst_ar = sugg_dst_ar; - type ^= 0x1; /* Flip type bit for the XORI below. */ - break; -- case SLJIT_C_FLOAT_EQUAL: -- case SLJIT_C_FLOAT_NOT_EQUAL: -- dst_ar = EQUAL_FLAG; -- break; - - default: - SLJIT_ASSERT_STOP(); -@@ -2180,11 +2156,11 @@ - if (op >= SLJIT_ADD) { - if (TMP_REG2_mapped != dst_ar) - FAIL_IF(ADD(TMP_REG2_mapped, dst_ar, ZERO)); -- return emit_op(compiler, op | flags, CUMULATIVE_OP | LOGICAL_OP | IMM_OP | ALT_KEEP_CACHE, dst, dstw, src, srcw, TMP_REG2, 0); -+ return emit_op(compiler, op | flags, mem_type | CUMULATIVE_OP | LOGICAL_OP | IMM_OP | ALT_KEEP_CACHE, dst, dstw, src, srcw, TMP_REG2, 0); - } - - if (dst & SLJIT_MEM) -- return emit_op_mem(compiler, WORD_DATA, dst_ar, dst, dstw); -+ return emit_op_mem(compiler, mem_type, dst_ar, dst, dstw); - - if (sugg_dst_ar != dst_ar) - return ADD(sugg_dst_ar, dst_ar, ZERO); -@@ -2194,7 +2170,7 @@ - - SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op0(struct sljit_compiler *compiler, sljit_si op) { - CHECK_ERROR(); -- check_sljit_emit_op0(compiler, op); -+ CHECK(check_sljit_emit_op0(compiler, op)); - - op = GET_OPCODE(op); - switch (op) { -@@ -2204,10 +2180,10 @@ - case SLJIT_BREAKPOINT: - return PI(BPT); - -- case SLJIT_UMUL: -- case SLJIT_SMUL: -- case SLJIT_UDIV: -- case SLJIT_SDIV: -+ case SLJIT_LUMUL: -+ case SLJIT_LSMUL: -+ case SLJIT_UDIVI: -+ case SLJIT_SDIVI: - SLJIT_ASSERT_STOP(); - } - -@@ -2217,7 +2193,7 @@ - SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op1(struct sljit_compiler *compiler, sljit_si op, sljit_si dst, sljit_sw dstw, sljit_si src, sljit_sw srcw) - { - CHECK_ERROR(); -- check_sljit_emit_op1(compiler, op, dst, dstw, src, srcw); -+ CHECK(check_sljit_emit_op1(compiler, op, dst, dstw, src, srcw)); - ADJUST_LOCAL_OFFSET(dst, dstw); - ADJUST_LOCAL_OFFSET(src, srcw); - -@@ -2273,7 +2249,7 @@ - return emit_op(compiler, SLJIT_SUB | GET_ALL_FLAGS(op), IMM_OP, dst, dstw, SLJIT_IMM, 0, src, srcw); - - case SLJIT_CLZ: -- return emit_op(compiler, op, 0, dst, dstw, TMP_REG1, 0, src, srcw); -+ return emit_op(compiler, op, (op & SLJIT_INT_OP) ? INT_DATA : WORD_DATA, dst, dstw, TMP_REG1, 0, src, srcw); - } - - return SLJIT_SUCCESS; -@@ -2282,7 +2258,7 @@ - SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op2(struct sljit_compiler *compiler, sljit_si op, sljit_si dst, sljit_sw dstw, sljit_si src1, sljit_sw src1w, sljit_si src2, sljit_sw src2w) - { - CHECK_ERROR(); -- check_sljit_emit_op2(compiler, op, dst, dstw, src1, src1w, src2, src2w); -+ CHECK(check_sljit_emit_op2(compiler, op, dst, dstw, src1, src1w, src2, src2w)); - ADJUST_LOCAL_OFFSET(dst, dstw); - ADJUST_LOCAL_OFFSET(src1, src1w); - ADJUST_LOCAL_OFFSET(src2, src2w); -@@ -2325,7 +2301,7 @@ - flush_buffer(compiler); - - CHECK_ERROR_PTR(); -- check_sljit_emit_label(compiler); -+ CHECK_PTR(check_sljit_emit_label(compiler)); - - if (compiler->last_label && compiler->last_label->size == compiler->size) - return compiler->last_label; -@@ -2344,7 +2320,7 @@ - flush_buffer(compiler); - - CHECK_ERROR(); -- check_sljit_emit_ijump(compiler, type, src, srcw); -+ CHECK(check_sljit_emit_ijump(compiler, type, src, srcw)); - ADJUST_LOCAL_OFFSET(src, srcw); - - if (FAST_IS_REG(src)) { -@@ -2404,8 +2380,10 @@ - - return SLJIT_SUCCESS; - -- } else if (src & SLJIT_MEM) -+ } else if (src & SLJIT_MEM) { - FAIL_IF(emit_op(compiler, SLJIT_MOV, WORD_DATA, TMP_REG2, 0, TMP_REG1, 0, src, srcw)); -+ flush_buffer(compiler); -+ } - - FAIL_IF(JR_SOLO(reg_map[src_r])); - -@@ -2432,7 +2410,7 @@ - flush_buffer(compiler); - - CHECK_ERROR_PTR(); -- check_sljit_emit_jump(compiler, type); -+ CHECK_PTR(check_sljit_emit_jump(compiler, type)); - - jump = (struct sljit_jump *)ensure_abuf(compiler, sizeof(struct sljit_jump)); - PTR_FAIL_IF(!jump); -@@ -2440,48 +2418,42 @@ - type &= 0xff; - - switch (type) { -- case SLJIT_C_EQUAL: -- case SLJIT_C_FLOAT_NOT_EQUAL: -+ case SLJIT_EQUAL: - BR_NZ(EQUAL_FLAG); - break; -- case SLJIT_C_NOT_EQUAL: -- case SLJIT_C_FLOAT_EQUAL: -+ case SLJIT_NOT_EQUAL: - BR_Z(EQUAL_FLAG); - break; -- case SLJIT_C_LESS: -- case SLJIT_C_FLOAT_LESS: -+ case SLJIT_LESS: - BR_Z(ULESS_FLAG); - break; -- case SLJIT_C_GREATER_EQUAL: -- case SLJIT_C_FLOAT_GREATER_EQUAL: -+ case SLJIT_GREATER_EQUAL: - BR_NZ(ULESS_FLAG); - break; -- case SLJIT_C_GREATER: -- case SLJIT_C_FLOAT_GREATER: -+ case SLJIT_GREATER: - BR_Z(UGREATER_FLAG); - break; -- case SLJIT_C_LESS_EQUAL: -- case SLJIT_C_FLOAT_LESS_EQUAL: -+ case SLJIT_LESS_EQUAL: - BR_NZ(UGREATER_FLAG); - break; -- case SLJIT_C_SIG_LESS: -+ case SLJIT_SIG_LESS: - BR_Z(LESS_FLAG); - break; -- case SLJIT_C_SIG_GREATER_EQUAL: -+ case SLJIT_SIG_GREATER_EQUAL: - BR_NZ(LESS_FLAG); - break; -- case SLJIT_C_SIG_GREATER: -+ case SLJIT_SIG_GREATER: - BR_Z(GREATER_FLAG); - break; -- case SLJIT_C_SIG_LESS_EQUAL: -+ case SLJIT_SIG_LESS_EQUAL: - BR_NZ(GREATER_FLAG); - break; -- case SLJIT_C_OVERFLOW: -- case SLJIT_C_MUL_OVERFLOW: -+ case SLJIT_OVERFLOW: -+ case SLJIT_MUL_OVERFLOW: - BR_Z(OVERFLOW_FLAG); - break; -- case SLJIT_C_NOT_OVERFLOW: -- case SLJIT_C_MUL_NOT_OVERFLOW: -+ case SLJIT_NOT_OVERFLOW: -+ case SLJIT_MUL_NOT_OVERFLOW: - BR_NZ(OVERFLOW_FLAG); - break; - default: -@@ -2536,7 +2508,7 @@ - flush_buffer(compiler); - - CHECK_ERROR_PTR(); -- check_sljit_emit_const(compiler, dst, dstw, init_value); -+ CHECK_PTR(check_sljit_emit_const(compiler, dst, dstw, init_value)); - ADJUST_LOCAL_OFFSET(dst, dstw); - - const_ = (struct sljit_const *)ensure_abuf(compiler, sizeof(struct sljit_const)); -@@ -2572,3 +2544,18 @@ - inst[3] = (inst[3] & ~(0xFFFFL << 43)) | ((new_constant & 0xFFFFL) << 43); - SLJIT_CACHE_FLUSH(inst, inst + 4); - } -+ -+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_get_register_index(sljit_si reg) -+{ -+ CHECK_REG_INDEX(check_sljit_get_register_index(reg)); -+ return reg_map[reg]; -+} -+ -+SLJIT_API_FUNC_ATTRIBUTE sljit_si sljit_emit_op_custom(struct sljit_compiler *compiler, -+ void *instruction, sljit_si size) -+{ -+ CHECK_ERROR(); -+ CHECK(check_sljit_emit_op_custom(compiler, instruction, size)); -+ return SLJIT_ERR_UNSUPPORTED; -+} -+ -Index: pcregrep.c -=================================================================== ---- pcregrep.c (revision 1554) -+++ pcregrep.c (working copy) -@@ -1692,9 +1692,13 @@ - - if (filenames == FN_NOMATCH_ONLY) return 1; - -+ /* If all we want is a yes/no answer, stop now. */ -+ -+ if (quiet) return 0; -+ - /* Just count if just counting is wanted. */ - -- if (count_only) count++; -+ else if (count_only) count++; - - /* When handling a binary file and binary-files==binary, the "binary" - variable will be set true (it's false in all other cases). In this -@@ -1715,10 +1719,6 @@ - return 0; - } - -- /* Likewise, if all we want is a yes/no answer. */ -- -- else if (quiet) return 0; -- - /* The --only-matching option prints just the substring that matched, - and/or one or more captured portions of it, as long as these strings are - not empty. The --file-offsets and --line-offsets options output offsets for -@@ -2089,7 +2089,7 @@ - - /* Print the match count if wanted */ - --if (count_only) -+if (count_only && !quiet) - { - if (count > 0 || !omit_zero_count) - { -Index: pcre_study.c -=================================================================== ---- pcre_study.c (revision 1554) -+++ pcre_study.c (working copy) -@@ -71,6 +71,7 @@ - startcode pointer to start of the whole pattern's code - options the compiling options - recurses chain of recurse_check to catch mutual recursion -+ countptr pointer to call count (to catch over complexity) - - Returns: the minimum length - -1 if \C in UTF-8 mode or (*ACCEPT) was encountered -@@ -80,7 +81,8 @@ - - static int - find_minlength(const REAL_PCRE *re, const pcre_uchar *code, -- const pcre_uchar *startcode, int options, recurse_check *recurses) -+ const pcre_uchar *startcode, int options, recurse_check *recurses, -+ int *countptr) - { - int length = -1; - /* PCRE_UTF16 has the same value as PCRE_UTF8. */ -@@ -90,6 +92,8 @@ - register int branchlength = 0; - register pcre_uchar *cc = (pcre_uchar *)code + 1 + LINK_SIZE; - -+if ((*countptr)++ > 1000) return -1; /* too complex */ -+ - if (*code == OP_CBRA || *code == OP_SCBRA || - *code == OP_CBRAPOS || *code == OP_SCBRAPOS) cc += IMM2_SIZE; - -@@ -131,7 +135,7 @@ - case OP_SBRAPOS: - case OP_ONCE: - case OP_ONCE_NC: -- d = find_minlength(re, cc, startcode, options, recurses); -+ d = find_minlength(re, cc, startcode, options, recurses, countptr); - if (d < 0) return d; - branchlength += d; - do cc += GET(cc, 1); while (*cc == OP_ALT); -@@ -415,7 +419,8 @@ - int dd; - this_recurse.prev = recurses; - this_recurse.group = cs; -- dd = find_minlength(re, cs, startcode, options, &this_recurse); -+ dd = find_minlength(re, cs, startcode, options, &this_recurse, -+ countptr); - if (dd < d) d = dd; - } - } -@@ -451,7 +456,8 @@ - { - this_recurse.prev = recurses; - this_recurse.group = cs; -- d = find_minlength(re, cs, startcode, options, &this_recurse); -+ d = find_minlength(re, cs, startcode, options, &this_recurse, -+ countptr); - } - } - } -@@ -514,7 +520,7 @@ - this_recurse.prev = recurses; - this_recurse.group = cs; - branchlength += find_minlength(re, cs, startcode, options, -- &this_recurse); -+ &this_recurse, countptr); - } - } - cc += 1 + LINK_SIZE; -@@ -1453,6 +1459,7 @@ - #endif - { - int min; -+int count = 0; - BOOL bits_set = FALSE; - pcre_uint8 start_bits[32]; - PUBL(extra) *extra = NULL; -@@ -1539,7 +1546,7 @@ - - /* Find the minimum length of subject string. */ - --switch(min = find_minlength(re, code, code, re->options, NULL)) -+switch(min = find_minlength(re, code, code, re->options, NULL, &count)) - { - case -2: *errorptr = "internal error: missing capturing bracket"; return NULL; - case -3: *errorptr = "internal error: opcode not recognized"; return NULL; -Index: pcre_internal.h -=================================================================== ---- pcre_internal.h (revision 1554) -+++ pcre_internal.h (working copy) -@@ -984,7 +984,7 @@ - #ifndef EBCDIC - - #define HSPACE_LIST \ -- CHAR_HT, CHAR_SPACE, 0xa0, \ -+ CHAR_HT, CHAR_SPACE, CHAR_NBSP, \ - 0x1680, 0x180e, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, \ - 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x202f, 0x205f, 0x3000, \ - NOTACHAR -@@ -1010,7 +1010,7 @@ - #define HSPACE_BYTE_CASES \ - case CHAR_HT: \ - case CHAR_SPACE: \ -- case 0xa0 /* NBSP */ -+ case CHAR_NBSP - - #define HSPACE_CASES \ - HSPACE_BYTE_CASES: \ -@@ -1037,11 +1037,12 @@ - /* ------ EBCDIC environments ------ */ - - #else --#define HSPACE_LIST CHAR_HT, CHAR_SPACE -+#define HSPACE_LIST CHAR_HT, CHAR_SPACE, CHAR_NBSP, NOTACHAR - - #define HSPACE_BYTE_CASES \ - case CHAR_HT: \ -- case CHAR_SPACE -+ case CHAR_SPACE: \ -+ case CHAR_NBSP - - #define HSPACE_CASES HSPACE_BYTE_CASES - -@@ -1215,6 +1216,7 @@ - - #define CHAR_ESC '\047' - #define CHAR_DEL '\007' -+#define CHAR_NBSP '\x41' - #define STR_ESC "\047" - #define STR_DEL "\007" - -@@ -1229,6 +1231,7 @@ - #define CHAR_NEL ((unsigned char)'\x85') - #define CHAR_ESC '\033' - #define CHAR_DEL '\177' -+#define CHAR_NBSP ((unsigned char)'\xa0') - - #define STR_LF "\n" - #define STR_NL STR_LF -@@ -1606,6 +1609,7 @@ - #define CHAR_VERTICAL_LINE '\174' - #define CHAR_RIGHT_CURLY_BRACKET '\175' - #define CHAR_TILDE '\176' -+#define CHAR_NBSP ((unsigned char)'\xa0') - - #define STR_HT "\011" - #define STR_VT "\013" -@@ -1762,6 +1766,10 @@ - - /* Escape items that are just an encoding of a particular data value. */ - -+#ifndef ESC_a -+#define ESC_a CHAR_BEL -+#endif -+ - #ifndef ESC_e - #define ESC_e CHAR_ESC - #endif -@@ -2446,6 +2454,7 @@ - BOOL had_pruneorskip; /* (*PRUNE) or (*SKIP) encountered */ - BOOL check_lookbehind; /* Lookbehinds need later checking */ - BOOL dupnames; /* Duplicate names exist */ -+ BOOL dupgroups; /* Duplicate groups exist: (?| found */ - BOOL iscondassert; /* Next assert is a condition */ - int nltype; /* Newline type */ - int nllen; /* Newline string length */ -Index: pcre_exec.c -=================================================================== ---- pcre_exec.c (revision 1554) -+++ pcre_exec.c (working copy) -@@ -6685,7 +6685,8 @@ - register int *iend = iptr - re->top_bracket; - if (iend < md->offset_vector + 2) iend = md->offset_vector + 2; - while (--iptr >= iend) *iptr = -1; -- md->offset_vector[0] = md->offset_vector[1] = -1; -+ if (offsetcount > 0) md->offset_vector[0] = -1; -+ if (offsetcount > 1) md->offset_vector[1] = -1; - } - - /* Set up the first character to match, if available. The first_char value is -Index: pcre_jit_test.c -=================================================================== ---- pcre_jit_test.c (revision 1554) -+++ pcre_jit_test.c (working copy) -@@ -182,6 +182,7 @@ - { CMUAP, 0, "\xf0\x90\x90\x80{2}", "\xf0\x90\x90\x80#\xf0\x90\x90\xa8\xf0\x90\x90\x80" }, - { CMUAP, 0, "\xf0\x90\x90\xa8{2}", "\xf0\x90\x90\x80#\xf0\x90\x90\xa8\xf0\x90\x90\x80" }, - { CMUAP, 0, "\xe1\xbd\xb8\xe1\xbf\xb8", "\xe1\xbf\xb8\xe1\xbd\xb8" }, -+ { MA, 0, "[3-57-9]", "5" }, - - /* Assertions. */ - { MUA, 0, "\\b[^A]", "A_B#" }, -Index: configure.ac -=================================================================== ---- configure.ac (revision 1554) -+++ configure.ac (working copy) -@@ -9,9 +9,9 @@ - dnl be defined as -RC2, for example. For real releases, it should be empty. - - m4_define(pcre_major, [8]) --m4_define(pcre_minor, [37]) --m4_define(pcre_prerelease, []) --m4_define(pcre_date, [2015-04-28]) -+m4_define(pcre_minor, [38]) -+m4_define(pcre_prerelease, [-RC1]) -+m4_define(pcre_date, [2015-05-03]) - - # NOTE: The CMakeLists.txt file searches for the above variables in the first - # 50 lines of this file. Please update that if the variables above are moved. -Index: doc/pcrepattern.3 -=================================================================== ---- doc/pcrepattern.3 (revision 1554) -+++ doc/pcrepattern.3 (working copy) -@@ -1,4 +1,4 @@ --.TH PCREPATTERN 3 "08 January 2014" "PCRE 8.35" -+.TH PCREPATTERN 3 "14 June 2015" "PCRE 8.38" - .SH NAME - PCRE - Perl-compatible regular expressions - .SH "PCRE REGULAR EXPRESSION DETAILS" -@@ -308,7 +308,8 @@ - in patterns in a visible manner. There is no restriction on the appearance of - non-printing characters, apart from the binary zero that terminates a pattern, - but when a pattern is being prepared by text editing, it is often easier to use --one of the following escape sequences than the binary character it represents: -+one of the following escape sequences than the binary character it represents. -+In an ASCII or Unicode environment, these escapes are as follows: - .sp - \ea alarm, that is, the BEL character (hex 07) - \ecx "control-x", where x is any ASCII character -@@ -330,19 +331,31 @@ - but \ec{ becomes hex 3B ({ is 7B), and \ec; becomes hex 7B (; is 3B). If the - data item (byte or 16-bit value) following \ec has a value greater than 127, a - compile-time error occurs. This locks out non-ASCII characters in all modes. -+.P -+When PCRE is compiled in EBCDIC mode, \ea, \ee, \ef, \en, \er, and \et -+generate the appropriate EBCDIC code values. The \ec escape is processed -+as specified for Perl in the \fBperlebcdic\fP document. The only characters -+that are allowed after \ec are A-Z, a-z, or one of @, [, \e, ], ^, _, or ?. Any -+other character provokes a compile-time error. The sequence \e@ encodes -+character code 0; the letters (in either case) encode characters 1-26 (hex 01 -+to hex 1A); [, \e, ], ^, and _ encode characters 27-31 (hex 1B to hex 1F), and -+\e? becomes either 255 (hex FF) or 95 (hex 5F). - .P --The \ec facility was designed for use with ASCII characters, but with the --extension to Unicode it is even less useful than it once was. It is, however, --recognized when PCRE is compiled in EBCDIC mode, where data items are always --bytes. In this mode, all values are valid after \ec. If the next character is a --lower case letter, it is converted to upper case. Then the 0xc0 bits of the --byte are inverted. Thus \ecA becomes hex 01, as in ASCII (A is C1), but because --the EBCDIC letters are disjoint, \ecZ becomes hex 29 (Z is E9), and other --characters also generate different values. -+Thus, apart from \e?, these escapes generate the same character code values as -+they do in an ASCII environment, though the meanings of the values mostly -+differ. For example, \eG always generates code value 7, which is BEL in ASCII -+but DEL in EBCDIC. - .P -+The sequence \e? generates DEL (127, hex 7F) in an ASCII environment, but -+because 127 is not a control character in EBCDIC, Perl makes it generate the -+APC character. Unfortunately, there are several variants of EBCDIC. In most of -+them the APC character has the value 255 (hex FF), but in the one Perl calls -+POSIX-BC its value is 95 (hex 5F). If certain other characters have POSIX-BC -+values, PCRE makes \e? generate 95; otherwise it generates 255. -+.P - After \e0 up to two further octal digits are read. If there are fewer than two --digits, just those that are present are used. Thus the sequence \e0\ex\e07 --specifies two binary zeros followed by a BEL character (code value 7). Make -+digits, just those that are present are used. Thus the sequence \e0\ex\e015 -+specifies two binary zeros followed by a CR character (code value 13). Make - sure you supply two digits after the initial zero if the pattern character that - follows is itself an octal digit. - .P -@@ -3283,6 +3296,6 @@ - .rs - .sp - .nf --Last updated: 08 January 2014 --Copyright (c) 1997-2014 University of Cambridge. -+Last updated: 14 June 2015 -+Copyright (c) 1997-2015 University of Cambridge. - .fi -Index: testdata/testoutput11-32 -=================================================================== ---- testdata/testoutput11-32 (revision 1554) -+++ testdata/testoutput11-32 (working copy) -@@ -231,7 +231,7 @@ - ------------------------------------------------------------------ - - /(?Pa)...(?P=a)bbb(?P>a)d/BM --Memory allocation (code space): 125 -+Memory allocation (code space): 157 - ------------------------------------------------------------------ - 0 24 Bra - 2 5 CBra 1 -@@ -748,4 +748,21 @@ - 22 End - ------------------------------------------------------------------ - -+/.((?2)(?R)\1)()/B -+------------------------------------------------------------------ -+ 0 23 Bra -+ 2 Any -+ 3 13 Once -+ 5 9 CBra 1 -+ 8 18 Recurse -+ 10 0 Recurse -+ 12 \1 -+ 14 9 Ket -+ 16 13 Ket -+ 18 3 CBra 2 -+ 21 3 Ket -+ 23 23 Ket -+ 25 End -+------------------------------------------------------------------ -+ - /-- End of testinput11 --/ -Index: testdata/testinputEBC -=================================================================== ---- testdata/testinputEBC (revision 1554) -+++ testdata/testinputEBC (working copy) -@@ -29,13 +29,16 @@ - - /^A\ˆ/ - A B -+ A\x41B - - /-- Test \H --/ - - /^A\È/ - AB -+ A\x42B - ** Fail - A B -+ A\x41B - - /-- Test \R --/ - -Index: testdata/testoutput1 -=================================================================== ---- testdata/testoutput1 (revision 1554) -+++ testdata/testoutput1 (working copy) -@@ -9429,4 +9429,9 @@ - 0: aaaaaaaaa - 1: a - -+"(?|(\k'Pm')|(?'Pm'))" -+ abcd -+ 0: -+ 1: -+ - /-- End of testinput1 --/ -Index: testdata/testoutput2 -=================================================================== ---- testdata/testoutput2 (revision 1554) -+++ testdata/testoutput2 (working copy) -@@ -5614,9 +5614,9 @@ - 123456\P - No match - --//KF>/dev/null --Compiled pattern written to /dev/null --Study data written to /dev/null -+//KF>testsavedregex -+Compiled pattern written to testsavedregex -+Study data written to testsavedregex - - /abc/IS>testsavedregex - Capturing subpattern count = 0 -@@ -9135,10 +9135,10 @@ - Failed: subpattern name expected at offset 3 - - /\k/ --Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2 -+Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 1 - - /\kabc/ --Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5 -+Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 1 - - /(?P=)/ - Failed: subpattern name expected at offset 4 -@@ -9186,7 +9186,7 @@ - Failed: unknown POSIX class name at offset 3 - - /(^(a|b\g<-1'c))/ --Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15 -+Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8 - - /^(?+1)(?x|y){0}z/ - xzxx -@@ -14098,10 +14098,10 @@ - Failed: group name must start with a non-digit at offset 4 - - /\g'3gh'/ --Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 7 -+Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 2 - - /\g<5fg>/ --Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 7 -+Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 2 - - /(?(<4gh>)abc)/ - Failed: group name must start with a non-digit at offset 4 -@@ -14423,4 +14423,146 @@ - - /((?2){73}(?2))((?1))/ - -+/.((?2)(?R)\1)()/BZ -+------------------------------------------------------------------ -+ Bra -+ Any -+ Once -+ CBra 1 -+ Recurse -+ Recurse -+ \1 -+ Ket -+ Ket -+ CBra 2 -+ Ket -+ Ket -+ End -+------------------------------------------------------------------ -+ -+/(?1)()((((((\1++))\x85)+)|))/ -+ -+/(\9*+(?2);\3++()2|)++{/ -+Failed: reference to non-existent subpattern at offset 22 -+ -+/\V\x85\9*+((?2)\3++()2)*:2/ -+Failed: reference to non-existent subpattern at offset 26 -+ -+/(((?(R)){0,2}) (?''((?'R')((?'R')))))/J -+ -+/(((?(X)){0,2}) (?''((?'X')((?'X')))))/J -+ -+/(((?(R)){0,2}) (?''((?'X')((?'R')))))/ -+ -+"(?J)(?'d'(?'d'\g{d}))" -+ -+".*?\h.+.\.+\R*?\xd(?i)(?=!(?=b`b`b`\`b\xa9b!)`\a`bbbbbbbbbbbbb`bbbbbbbbbbbb*R\x85bbbbbbb\C?{((?2)(?))(( -+\H){8(?<=(?1){29}\xa8bbbb\x16\xd\xc6^($(?1)/ -+ - /-- End of testinput2 --/ -Index: testdata/testoutput11-16 -=================================================================== ---- testdata/testoutput11-16 (revision 1554) -+++ testdata/testoutput11-16 (working copy) -@@ -231,7 +231,7 @@ - ------------------------------------------------------------------ - - /(?Pa)...(?P=a)bbb(?P>a)d/BM --Memory allocation (code space): 61 -+Memory allocation (code space): 77 - ------------------------------------------------------------------ - 0 24 Bra - 2 5 CBra 1 -@@ -748,4 +748,21 @@ - 22 End - ------------------------------------------------------------------ - -+/.((?2)(?R)\1)()/B -+------------------------------------------------------------------ -+ 0 23 Bra -+ 2 Any -+ 3 13 Once -+ 5 9 CBra 1 -+ 8 18 Recurse -+ 10 0 Recurse -+ 12 \1 -+ 14 9 Ket -+ 16 13 Ket -+ 18 3 CBra 2 -+ 21 3 Ket -+ 23 23 Ket -+ 25 End -+------------------------------------------------------------------ -+ - /-- End of testinput11 --/ -Index: testdata/testoutput6 -=================================================================== ---- testdata/testoutput6 (revision 1554) -+++ testdata/testoutput6 (working copy) -@@ -2469,4 +2469,8 @@ - Ó…\x0aT - No match - -+/[\pS#moq]/ -+ = -+ 0: = -+ - /-- End of testinput6 --/ -Index: testdata/testinput11 -=================================================================== ---- testdata/testinput11 (revision 1554) -+++ testdata/testinput11 (working copy) -@@ -136,4 +136,6 @@ - - /((?+1)(\1))/B - -+/.((?2)(?R)\1)()/B -+ - /-- End of testinput11 --/ -Index: testdata/testinput12 -=================================================================== ---- testdata/testinput12 (revision 1554) -+++ testdata/testinput12 (working copy) -@@ -8,6 +8,8 @@ - - /(?(?C1)(?=a)a)/S!+I - -+/b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*b*/S+I -+ - /abc/S+I>testsavedregex - - testsavedregex - Capturing subpattern count = 0 - No options -@@ -184,4 +193,12 @@ - - /(a(?:a|b|c|d|e)b){8,16}/S++ - -+/(?:|a|){100}x/S++ -+ -+/(x(?1)){4}/S++ -+ -+/(.|.)*?bx/ -+ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabax -+Error -8 (match limit exceeded) -+ - /-- End of testinput12 --/ -Index: testdata/testoutput11-8 -=================================================================== ---- testdata/testoutput11-8 (revision 1554) -+++ testdata/testoutput11-8 (working copy) -@@ -231,7 +231,7 @@ - ------------------------------------------------------------------ - - /(?Pa)...(?P=a)bbb(?P>a)d/BM --Memory allocation (code space): 38 -+Memory allocation (code space): 50 - ------------------------------------------------------------------ - 0 30 Bra - 3 7 CBra 1 -@@ -748,4 +748,21 @@ - 34 End - ------------------------------------------------------------------ - -+/.((?2)(?R)\1)()/B -+------------------------------------------------------------------ -+ 0 35 Bra -+ 3 Any -+ 4 20 Once -+ 7 14 CBra 1 -+ 12 27 Recurse -+ 15 0 Recurse -+ 18 \1 -+ 21 14 Ket -+ 24 20 Ket -+ 27 5 CBra 2 -+ 32 5 Ket -+ 35 35 Ket -+ 38 End -+------------------------------------------------------------------ -+ - /-- End of testinput11 --/ -Index: testdata/testoutputEBC -=================================================================== ---- testdata/testoutputEBC (revision 1554) -+++ testdata/testoutputEBC (working copy) -@@ -41,6 +41,8 @@ - /^A\ˆ/ - A B - 0: A\x20 -+ A\x41B -+ 0: AA - - /-- Test \H --/ - -@@ -47,10 +49,14 @@ - /^A\È/ - AB - 0: AB -+ A\x42B -+ 0: AB - ** Fail - No match - A B - No match -+ A\x41B -+No match - - /-- Test \R --/ - -Index: testdata/grepoutput -=================================================================== ---- testdata/grepoutput (revision 1554) -+++ testdata/grepoutput (working copy) -@@ -751,3 +751,7 @@ - 2:3,1 - 2:4,1 - RC=0 -+---------------------------- Test 108 ------------------------------ -+RC=0 -+---------------------------- Test 109 ----------------------------- -+RC=0 -Index: testdata/testinput1 -=================================================================== ---- testdata/testinput1 (revision 1554) -+++ testdata/testinput1 (working copy) -@@ -5730,4 +5730,7 @@ - "(?1)(?#?'){8}(a)" - baaaaaaaaac - -+"(?|(\k'Pm')|(?'Pm'))" -+ abcd -+ - /-- End of testinput1 --/ -Index: testdata/testinput2 -=================================================================== ---- testdata/testinput2 (revision 1554) -+++ testdata/testinput2 (working copy) -@@ -1380,7 +1380,7 @@ - 1X - 123456\P - --//KF>/dev/null -+//KF>testsavedregex - - /abc/IS>testsavedregex - 1)/ -+ - /-- End of testinput2 --/ -Index: testdata/testinput6 -=================================================================== ---- testdata/testinput6 (revision 1554) -+++ testdata/testinput6 (working copy) -@@ -1502,4 +1502,7 @@ - /\C\X*QT/8 - Ó…\x0aT - -+/[\pS#moq]/ -+ = -+ - /-- End of testinput6 --/ -Index: NON-AUTOTOOLS-BUILD -=================================================================== ---- NON-AUTOTOOLS-BUILD (revision 1554) -+++ NON-AUTOTOOLS-BUILD (working copy) -@@ -764,9 +764,9 @@ - - http://www.zaconsultants.net - --There is also a mirror here: -+You may download PCRE from WWW.CBTTAPE.ORG, file 882.  Everything, source and -+executable, is in EBCDIC and native z/OS file formats and this is the -+recommended download site. - -- http://www.vsoft-software.com/downloads.html -- - ========================== --Last Updated: 10 February 2015 -+Last Updated: 25 June 2015 From 2896861c7e55da24b8f15c42af0f2b5fc3b0bdb0 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 25 Sep 2015 11:53:19 +0200 Subject: [PATCH 087/165] pcre: Smaller patch for CVE-2015-3210, CVE-2015-5073 --- .../libraries/pcre/cve-2015-3210.patch | 87 +++++++++++++++++++ .../libraries/pcre/cve-2015-5073.patch | 68 +++++++++++++++ pkgs/development/libraries/pcre/default.nix | 5 ++ 3 files changed, 160 insertions(+) create mode 100644 pkgs/development/libraries/pcre/cve-2015-3210.patch create mode 100644 pkgs/development/libraries/pcre/cve-2015-5073.patch diff --git a/pkgs/development/libraries/pcre/cve-2015-3210.patch b/pkgs/development/libraries/pcre/cve-2015-3210.patch new file mode 100644 index 000000000000..c97849fb70c7 --- /dev/null +++ b/pkgs/development/libraries/pcre/cve-2015-3210.patch @@ -0,0 +1,87 @@ +From 68ff1beb43bb3d4d8838f3285c97023d1e50513a Mon Sep 17 00:00:00 2001 +From: ph10 +Date: Fri, 15 May 2015 17:17:03 +0000 +Subject: [PATCH] Fix buffer overflow for named recursive back reference when + the name is duplicated. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream commit ported to pcre-8.37: + +commit 4b79af6b4cbeb5326ae5e4d83f3e935e00286c19 +Author: ph10 +Date: Fri May 15 17:17:03 2015 +0000 + + Fix buffer overflow for named recursive back reference when the name is + duplicated. + + git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1558 2f5784b3-3f2a-0410-8824-cb99058d5e15 + +This fixes CVE-2015-3210. + +Signed-off-by: Petr PísaÅ™ +--- + pcre_compile.c | 16 ++++++++++++++-- + testdata/testinput2 | 2 ++ + testdata/testoutput2 | 2 ++ + 3 files changed, 18 insertions(+), 2 deletions(-) + +diff --git a/pcre_compile.c b/pcre_compile.c +index 0efad26..6f06912 100644 +--- a/pcre_compile.c ++++ b/pcre_compile.c +@@ -7173,14 +7173,26 @@ for (;; ptr++) + number. If the name is not found, set the value to 0 for a forward + reference. */ + ++ recno = 0; + ng = cd->named_groups; + for (i = 0; i < cd->names_found; i++, ng++) + { + if (namelen == ng->length && + STRNCMP_UC_UC(name, ng->name, namelen) == 0) +- break; ++ { ++ open_capitem *oc; ++ recno = ng->number; ++ if (is_recurse) break; ++ for (oc = cd->open_caps; oc != NULL; oc = oc->next) ++ { ++ if (oc->number == recno) ++ { ++ oc->flag = TRUE; ++ break; ++ } ++ } ++ } + } +- recno = (i < cd->names_found)? ng->number : 0; + + /* Count named back references. */ + +diff --git a/testdata/testinput2 b/testdata/testinput2 +index 58fe53b..83bb471 100644 +--- a/testdata/testinput2 ++++ b/testdata/testinput2 +@@ -4152,4 +4152,6 @@ backtracking verbs. --/ + + /((?2){73}(?2))((?1))/ + ++"(?J)(?'d'(?'d'\g{d}))" ++ + /-- End of testinput2 --/ +diff --git a/testdata/testoutput2 b/testdata/testoutput2 +index b718df0..7dff52a 100644 +--- a/testdata/testoutput2 ++++ b/testdata/testoutput2 +@@ -14423,4 +14423,6 @@ Failed: lookbehind assertion is not fixed length at offset 17 + + /((?2){73}(?2))((?1))/ + ++"(?J)(?'d'(?'d'\g{d}))" ++ + /-- End of testinput2 --/ +-- +2.4.3 + diff --git a/pkgs/development/libraries/pcre/cve-2015-5073.patch b/pkgs/development/libraries/pcre/cve-2015-5073.patch new file mode 100644 index 000000000000..16fd45c87b1d --- /dev/null +++ b/pkgs/development/libraries/pcre/cve-2015-5073.patch @@ -0,0 +1,68 @@ +From 354e1f8e921dcb9cf2f3a5eac93cd826d01a7d8a Mon Sep 17 00:00:00 2001 +From: ph10 +Date: Tue, 23 Jun 2015 16:34:53 +0000 +Subject: [PATCH] Fix buffer overflow for forward reference within backward + assertion with excess closing parenthesis. Bugzilla 1651. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This is upstream commit ported to 8.37: + +commit 764692f9aea9eab50fdba6cb537441d8b34c6c37 +Author: ph10 +Date: Tue Jun 23 16:34:53 2015 +0000 + + Fix buffer overflow for forward reference within backward assertion with excess + closing parenthesis. Bugzilla 1651. + + git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1571 2f5784b3-3f2a-0410-8824-cb99058d5e15 + +It fixes CVE-2015-5073. + +Signed-off-by: Petr PísaÅ™ +--- + pcre_compile.c | 2 +- + testdata/testinput2 | 2 ++ + testdata/testoutput2 | 3 +++ + 3 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/pcre_compile.c b/pcre_compile.c +index 6f06912..b66b1f6 100644 +--- a/pcre_compile.c ++++ b/pcre_compile.c +@@ -9392,7 +9392,7 @@ OP_RECURSE that are not fixed length get a diagnosic with a useful offset. The + exceptional ones forgo this. We scan the pattern to check that they are fixed + length, and set their lengths. */ + +-if (cd->check_lookbehind) ++if (errorcode == 0 && cd->check_lookbehind) + { + pcre_uchar *cc = (pcre_uchar *)codestart; + +diff --git a/testdata/testinput2 b/testdata/testinput2 +index 83bb471..5cc9ce6 100644 +--- a/testdata/testinput2 ++++ b/testdata/testinput2 +@@ -4154,4 +4154,6 @@ backtracking verbs. --/ + + "(?J)(?'d'(?'d'\g{d}))" + ++/(?=di(?<=(?1))|(?=(.))))/ ++ + /-- End of testinput2 --/ +diff --git a/testdata/testoutput2 b/testdata/testoutput2 +index 7dff52a..4decb8d 100644 +--- a/testdata/testoutput2 ++++ b/testdata/testoutput2 +@@ -14425,4 +14425,7 @@ Failed: lookbehind assertion is not fixed length at offset 17 + + "(?J)(?'d'(?'d'\g{d}))" + ++/(?=di(?<=(?1))|(?=(.))))/ ++Failed: unmatched parentheses at offset 23 ++ + /-- End of testinput2 --/ +-- +2.4.3 + diff --git a/pkgs/development/libraries/pcre/default.nix b/pkgs/development/libraries/pcre/default.nix index a34f3e5e1328..3370e910565e 100644 --- a/pkgs/development/libraries/pcre/default.nix +++ b/pkgs/development/libraries/pcre/default.nix @@ -12,6 +12,11 @@ stdenv.mkDerivation rec { sha256 = "17bqykp604p7376wj3q2nmjdhrb6v1ny8q08zdwi7qvc02l9wrsi"; }; + patches = + [ ./cve-2015-3210.patch + ./cve-2015-5073.patch + ]; + outputs = [ "out" "doc" "man" ]; configureFlags = '' From 702fde3a91f450d4963189250bf2df113b42efa7 Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Fri, 25 Sep 2015 14:06:23 +0200 Subject: [PATCH 088/165] libarchive: fix .la file for lzo2 --- pkgs/development/libraries/libarchive/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/libarchive/default.nix b/pkgs/development/libraries/libarchive/default.nix index 837db32ea4bc..ff33043dbaea 100644 --- a/pkgs/development/libraries/libarchive/default.nix +++ b/pkgs/development/libraries/libarchive/default.nix @@ -26,7 +26,9 @@ stdenv.mkDerivation rec { '' else null; preFixup = '' - sed 's|-lcrypto|-L${openssl}/lib -lcrypto|' -i $out/lib/libarchive.la + sed -i $out/lib/libarchive.la \ + -e 's|-lcrypto|-L${openssl}/lib -lcrypto|' \ + -e 's|-llzo2|-L${lzo}/lib -llzo2|' ''; meta = { From 7d1cb980bfdb88f889ac59bb9080389052d12558 Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Fri, 25 Sep 2015 14:06:23 +0200 Subject: [PATCH 089/165] libarchive: fix .la file for lzo2 --- pkgs/development/libraries/libarchive/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/libarchive/default.nix b/pkgs/development/libraries/libarchive/default.nix index 837db32ea4bc..ff33043dbaea 100644 --- a/pkgs/development/libraries/libarchive/default.nix +++ b/pkgs/development/libraries/libarchive/default.nix @@ -26,7 +26,9 @@ stdenv.mkDerivation rec { '' else null; preFixup = '' - sed 's|-lcrypto|-L${openssl}/lib -lcrypto|' -i $out/lib/libarchive.la + sed -i $out/lib/libarchive.la \ + -e 's|-lcrypto|-L${openssl}/lib -lcrypto|' \ + -e 's|-llzo2|-L${lzo}/lib -llzo2|' ''; meta = { From dcf933e258dc5d27d4fa9002ebc1bb054009a1a2 Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Fri, 11 Sep 2015 23:46:45 -0700 Subject: [PATCH 090/165] move rubies into a single file --- .../development/interpreters/ruby/default.nix | 239 ++++++++++++++++++ .../interpreters/ruby/patchsets.nix | 126 +++++++++ .../interpreters/ruby/ruby-1.8.7.nix | 104 -------- .../interpreters/ruby/ruby-1.9.3.nix | 124 --------- .../interpreters/ruby/ruby-2.0.0.nix | 103 -------- .../interpreters/ruby/ruby-2.1.0.nix | 120 --------- .../interpreters/ruby/ruby-2.1.1.nix | 118 --------- .../interpreters/ruby/ruby-2.1.2.nix | 117 --------- .../interpreters/ruby/ruby-2.1.3.nix | 121 --------- .../interpreters/ruby/ruby-2.1.6.nix | 124 --------- .../interpreters/ruby/ruby-2.2.0.nix | 113 --------- .../interpreters/ruby/ruby-2.2.2.nix | 112 -------- pkgs/top-level/all-packages.nix | 25 +- 13 files changed, 372 insertions(+), 1174 deletions(-) create mode 100644 pkgs/development/interpreters/ruby/default.nix create mode 100644 pkgs/development/interpreters/ruby/patchsets.nix delete mode 100644 pkgs/development/interpreters/ruby/ruby-1.8.7.nix delete mode 100644 pkgs/development/interpreters/ruby/ruby-1.9.3.nix delete mode 100644 pkgs/development/interpreters/ruby/ruby-2.0.0.nix delete mode 100644 pkgs/development/interpreters/ruby/ruby-2.1.0.nix delete mode 100644 pkgs/development/interpreters/ruby/ruby-2.1.1.nix delete mode 100644 pkgs/development/interpreters/ruby/ruby-2.1.2.nix delete mode 100644 pkgs/development/interpreters/ruby/ruby-2.1.3.nix delete mode 100644 pkgs/development/interpreters/ruby/ruby-2.1.6.nix delete mode 100644 pkgs/development/interpreters/ruby/ruby-2.2.0.nix delete mode 100644 pkgs/development/interpreters/ruby/ruby-2.2.2.nix diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix new file mode 100644 index 000000000000..d69a1394a606 --- /dev/null +++ b/pkgs/development/interpreters/ruby/default.nix @@ -0,0 +1,239 @@ +{ stdenv, lib, fetchurl, fetchFromSavannah, fetchFromGitHub +, zlib, zlibSupport ? true +, openssl, opensslSupport ? true +, gdbm, gdbmSupport ? true +, ncurses, readline, cursesSupport ? true +, groff, docSupport ? false +, libyaml, yamlSupport ? true +, libffi, fiddleSupport ? true +, autoreconfHook, bison +, darwin ? null +}: + +let + op = stdenv.lib.optional; + ops = stdenv.lib.optionals; + opString = stdenv.lib.optionalString; + patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; }; + config = import ./config.nix { inherit fetchFromSavannah; }; + generic = { majorVersion, minorVersion, teenyVersion, patchLevel, sha256 } @ args: + let + versionNoPatch = "${majorVersion}.${minorVersion}.${teenyVersion}"; + isRuby21 = majorVersion == "2" && minorVersion == "1"; + baseruby = self false; + self = useRailsExpress: stdenv.mkDerivation rec { + version = "${versionNoPatch}-p${patchLevel}"; + + name = "ruby-${version}"; + + src = let + versionName = if patchLevel != "0" && stdenv.lib.versionOlder versionNoPatch "2.1" + then version + else versionNoPatch; + tag = "v" + stdenv.lib.replaceChars ["." "p" "-"] ["_" "_" ""] versionName; + in if useRailsExpress then fetchFromGitHub { + owner = "ruby"; + repo = "ruby"; + rev = tag; + sha256 = args.sha256.git; + } else fetchurl { + url = "http://cache.ruby-lang.org/pub/ruby/${majorVersion}.${minorVersion}/ruby-${versionName}.tar.gz"; + sha256 = args.sha256.src; + }; + + # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds. + NROFF = "${groff}/bin/nroff"; + + buildInputs = ops useRailsExpress [ autoreconfHook bison ] + ++ (op fiddleSupport libffi) + ++ (ops cursesSupport [ ncurses readline ]) + ++ (op docSupport groff) + ++ (op zlibSupport zlib) + ++ (op opensslSupport openssl) + ++ (op gdbmSupport gdbm) + ++ (op yamlSupport libyaml) + # Looks like ruby fails to build on darwin without readline even if curses + # support is not enabled, so add readline to the build inputs if curses + # support is disabled (if it's enabled, we already have it) and we're + # running on darwin + ++ (op (!cursesSupport && stdenv.isDarwin) readline) + ++ (ops stdenv.isDarwin (with darwin; [ libiconv libobjc libunwind ])); + + enableParallelBuilding = true; + + patches = let patchsets = import ./patchsets.nix { + inherit patchSet useRailsExpress ops patchLevel; + }; in patchsets."${versionNoPatch}"; + + postUnpack = opString isRuby21 '' + rm "$sourceRoot/enc/unicode/name2ctype.h" + ''; + + postPatch = if isRuby21 then '' + rm tool/config_files.rb + cp ${config}/config.guess tool/ + cp ${config}/config.sub tool/ + '' else opString useRailsExpress '' + sed -i configure.in -e '/config.guess/d' + cp ${config}/config.guess tool/ + cp ${config}/config.sub tool/ + ''; + + configureFlags = ["--enable-shared"] + ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby" + ++ ops stdenv.isDarwin [ + # on darwin, we have /usr/include/tk.h -- so the configure script detects + # that tk is installed + "--with-out-ext=tk" + # on yosemite, "generating encdb.h" will hang for a very long time without this flag + "--with-setjmp-type=setjmp" + ]; + + installFlags = stdenv.lib.optionalString docSupport "install-doc"; + # Bundler tries to create this directory + postInstall = '' + # Bundler tries to create this directory + mkdir -pv $out/${passthru.gemPath} + mkdir -p $out/nix-support + cat > $out/nix-support/setup-hook < $out/nix-support/setup-hook < $out/nix-support/setup-hook < $out/nix-support/setup-hook <= 2.1.0 tries to download config.{guess,sub} - postPatch = '' - rm tool/config_files.rb - cp ${config}/config.guess tool/ - cp ${config}/config.sub tool/ - ''; - - configureFlags = ["--enable-shared" ] - ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby" - # on darwin, we have /usr/include/tk.h -- so the configure script detects - # that tk is installed - ++ ( if stdenv.isDarwin then [ "--with-out-ext=tk " ] else [ ]); - - installFlags = stdenv.lib.optionalString docSupport "install-doc"; - # Bundler tries to create this directory - postInstall = '' - # Bundler tries to create this directory - mkdir -pv $out/${passthru.gemPath} - mkdir -p $out/nix-support - cat > $out/nix-support/setup-hook <= 2.1.0 tries to download config.{guess,sub} - postPatch = '' - rm tool/config_files.rb - cp ${config}/config.guess tool/ - cp ${config}/config.sub tool/ - ''; - - configureFlags = ["--enable-shared" ] - ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby" - # on darwin, we have /usr/include/tk.h -- so the configure script detects - # that tk is installed - ++ ( if stdenv.isDarwin then [ "--with-out-ext=tk " ] else [ ]); - - installFlags = stdenv.lib.optionalString docSupport "install-doc"; - # Bundler tries to create this directory - postInstall = '' - # Bundler tries to create this directory - mkdir -pv $out/${passthru.gemPath} - mkdir -p $out/nix-support - cat > $out/nix-support/setup-hook <= 2.1.0 tries to download config.{guess,sub} - postPatch = '' - rm tool/config_files.rb - cp ${config}/config.guess tool/ - cp ${config}/config.sub tool/ - ''; - - configureFlags = ["--enable-shared" ] - ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby" - # on darwin, we have /usr/include/tk.h -- so the configure script detects - # that tk is installed - ++ ( if stdenv.isDarwin then [ "--with-out-ext=tk " ] else [ ]); - - installFlags = stdenv.lib.optionalString docSupport "install-doc"; - # Bundler tries to create this directory - postInstall = '' - # Bundler tries to create this directory - mkdir -pv $out/${passthru.gemPath} - mkdir -p $out/nix-support - cat > $out/nix-support/setup-hook <= 2.1.0 tries to download config.{guess,sub} - postPatch = '' - rm tool/config_files.rb - cp ${config}/config.guess tool/ - cp ${config}/config.sub tool/ - ''; - - configureFlags = ["--enable-shared" ] - ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby" - # on darwin, we have /usr/include/tk.h -- so the configure script detects - # that tk is installed - ++ ( if stdenv.isDarwin then [ "--with-out-ext=tk " ] else [ ]); - - installFlags = stdenv.lib.optionalString docSupport "install-doc"; - # Bundler tries to create this directory - postInstall = '' - # Bundler tries to create this directory - mkdir -pv $out/${passthru.gemPath} - mkdir -p $out/nix-support - cat > $out/nix-support/setup-hook <= 2.1.0 tries to download config.{guess,sub} - postPatch = '' - rm tool/config_files.rb - cp ${config}/config.guess tool/ - cp ${config}/config.sub tool/ - ''; - - configureFlags = ["--enable-shared" ] - ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby" - # on darwin, we have /usr/include/tk.h -- so the configure script detects - # that tk is installed - ++ ( if stdenv.isDarwin then [ "--with-out-ext=tk " ] else [ ]); - - installFlags = stdenv.lib.optionalString docSupport "install-doc"; - # Bundler tries to create this directory - postInstall = '' - # Bundler tries to create this directory - mkdir -pv $out/${passthru.gemPath} - mkdir -p $out/nix-support - cat > $out/nix-support/setup-hook < $out/nix-support/setup-hook < $out/nix-support/setup-hook < Date: Sat, 12 Sep 2015 11:58:02 -0700 Subject: [PATCH 091/165] put all rubies in scope --- .../development/interpreters/ruby/default.nix | 16 +-- .../interpreters/ruby/ruby-1.8.7.nix | 104 ++++++++++++++++++ pkgs/top-level/all-packages.nix | 15 +-- 3 files changed, 121 insertions(+), 14 deletions(-) create mode 100644 pkgs/development/interpreters/ruby/ruby-1.8.7.nix diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix index d69a1394a606..fa16352162ce 100644 --- a/pkgs/development/interpreters/ruby/default.nix +++ b/pkgs/development/interpreters/ruby/default.nix @@ -6,7 +6,7 @@ , groff, docSupport ? false , libyaml, yamlSupport ? true , libffi, fiddleSupport ? true -, autoreconfHook, bison +, autoreconfHook, bison, autoconf , darwin ? null }: @@ -20,6 +20,7 @@ let let versionNoPatch = "${majorVersion}.${minorVersion}.${teenyVersion}"; isRuby21 = majorVersion == "2" && minorVersion == "1"; + isRuby18 = majorVersion == "1" && minorVersion == "8"; baseruby = self false; self = useRailsExpress: stdenv.mkDerivation rec { version = "${versionNoPatch}-p${patchLevel}"; @@ -57,19 +58,20 @@ let # support is disabled (if it's enabled, we already have it) and we're # running on darwin ++ (op (!cursesSupport && stdenv.isDarwin) readline) - ++ (ops stdenv.isDarwin (with darwin; [ libiconv libobjc libunwind ])); + ++ (ops stdenv.isDarwin (with darwin; [ libiconv libobjc libunwind ])) + ++ op isRuby18 autoconf; enableParallelBuilding = true; - patches = let patchsets = import ./patchsets.nix { + patches = (import ./patchsets.nix { inherit patchSet useRailsExpress ops patchLevel; - }; in patchsets."${versionNoPatch}"; + })."${versionNoPatch}"; postUnpack = opString isRuby21 '' rm "$sourceRoot/enc/unicode/name2ctype.h" ''; - postPatch = if isRuby21 then '' + postPatch = opString (!isRuby18) (if isRuby21 then '' rm tool/config_files.rb cp ${config}/config.guess tool/ cp ${config}/config.sub tool/ @@ -77,9 +79,9 @@ let sed -i configure.in -e '/config.guess/d' cp ${config}/config.guess tool/ cp ${config}/config.sub tool/ - ''; + ''); - configureFlags = ["--enable-shared"] + configureFlags = ["--enable-shared" "--enable-pthread"] ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby" ++ ops stdenv.isDarwin [ # on darwin, we have /usr/include/tk.h -- so the configure script detects diff --git a/pkgs/development/interpreters/ruby/ruby-1.8.7.nix b/pkgs/development/interpreters/ruby/ruby-1.8.7.nix new file mode 100644 index 000000000000..0ae1d1261eed --- /dev/null +++ b/pkgs/development/interpreters/ruby/ruby-1.8.7.nix @@ -0,0 +1,104 @@ +{ stdenv, lib, fetchurl, fetchFromGitHub +, zlib, zlibSupport ? true +, openssl, opensslSupport ? true +, gdbm, gdbmSupport ? true +, ncurses, readline, cursesSupport ? true +, groff, docSupport ? false +, ruby_1_8_7, autoreconfHook, bison, useRailsExpress ? true +}: + +let + op = stdenv.lib.optional; + ops = stdenv.lib.optionals; + patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; }; + baseruby = ruby_1_8_7.override { useRailsExpress = false; }; +in + +stdenv.mkDerivation rec { + version = with passthru; "${majorVersion}.${minorVersion}.${teenyVersion}-p${patchLevel}"; + + name = "ruby-${version}"; + + src = if useRailsExpress then fetchFromGitHub { + owner = "ruby"; + repo = "ruby"; + rev = "v1_8_7_${passthru.patchLevel}"; + sha256 = "1xddhxr0j26hpxfixvhqdscwk2ri846w2129fcfwfjzvy19igswx"; + } else fetchurl { + url = "http://cache.ruby-lang.org/pub/ruby/1.8/${name}.tar.bz2"; + sha256 = "1qq7khilwkayrhwmzlxk83scrmiqfi7lgsn4c63znyvz2c1lgqxl"; + }; + + # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds. + NROFF = "${groff}/bin/nroff"; + + buildInputs = ops useRailsExpress [ autoreconfHook bison ] + ++ (ops cursesSupport [ ncurses readline ] ) + ++ (op docSupport groff ) + ++ (op zlibSupport zlib) + ++ (op opensslSupport openssl) + ++ (op gdbmSupport gdbm); + + patches = ops useRailsExpress [ + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/01-ignore-generated-files.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/02-fix-tests-for-osx.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/03-sigvtalrm-fix.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/04-railsbench-gc-patch.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/05-display-full-stack-trace.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/06-better-source-file-tracing.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/07-heap-dump-support.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/08-fork-support-for-gc-logging.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/09-track-malloc-size.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/10-track-object-allocation.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/11-expose-heap-slots.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/12-fix-heap-size-growth-logic.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/13-heap-slot-size.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/14-add-trace-stats-enabled-methods.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/15-track-live-dataset-size.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/16-add-object-size-information-to-heap-dump.patch" + "${patchSet}/patches/ruby/1.8.7/p374/railsexpress/17-caller-for-all-threads.patch" + ]; + + configureFlags = [ "--enable-shared" "--enable-pthread" ] + # Without this fails due to not finding X11/Xlib.h + # Not sure why this isn't required on Linux + ++ ops stdenv.isDarwin [ "--without-tcl" "--without-tk" ] + ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby"; + + installFlags = stdenv.lib.optionalString docSupport "install-doc"; + + postInstall = '' + # Bundler tries to create this directory + mkdir -pv $out/${passthru.gemPath} + mkdir -p $out/nix-support + cat > $out/nix-support/setup-hook < Date: Sat, 12 Sep 2015 22:29:26 -0700 Subject: [PATCH 092/165] re-indent; make rubies overridable --- .../development/interpreters/ruby/default.nix | 65 ++++++++++--------- 1 file changed, 36 insertions(+), 29 deletions(-) diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix index fa16352162ce..e4065a2bfe0e 100644 --- a/pkgs/development/interpreters/ruby/default.nix +++ b/pkgs/development/interpreters/ruby/default.nix @@ -1,14 +1,7 @@ { stdenv, lib, fetchurl, fetchFromSavannah, fetchFromGitHub -, zlib, zlibSupport ? true -, openssl, opensslSupport ? true -, gdbm, gdbmSupport ? true -, ncurses, readline, cursesSupport ? true -, groff, docSupport ? false -, libyaml, yamlSupport ? true -, libffi, fiddleSupport ? true -, autoreconfHook, bison, autoconf -, darwin ? null -}: +, zlib, openssl, gdbm, ncurses, readline, groff, libyaml, libffi, autoreconfHook, bison +, autoconf, darwin ? null +} @ args: let op = stdenv.lib.optional; @@ -16,30 +9,43 @@ let opString = stdenv.lib.optionalString; patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; }; config = import ./config.nix { inherit fetchFromSavannah; }; - generic = { majorVersion, minorVersion, teenyVersion, patchLevel, sha256 } @ args: - let - versionNoPatch = "${majorVersion}.${minorVersion}.${teenyVersion}"; - isRuby21 = majorVersion == "2" && minorVersion == "1"; - isRuby18 = majorVersion == "1" && minorVersion == "8"; - baseruby = self false; - self = useRailsExpress: stdenv.mkDerivation rec { - version = "${versionNoPatch}-p${patchLevel}"; + +generic = { majorVersion, minorVersion, teenyVersion, patchLevel, sha256 }: let + versionNoPatch = "${majorVersion}.${minorVersion}.${teenyVersion}"; + version = "${versionNoPatch}-p${patchLevel}"; + fullVersionName = if patchLevel != "0" && stdenv.lib.versionOlder versionNoPatch "2.1" + then version + else versionNoPatch; + tag = "v" + stdenv.lib.replaceChars ["." "p" "-"] ["_" "_" ""] fullVersionName; + isRuby21 = majorVersion == "2" && minorVersion == "1"; + isRuby18 = majorVersion == "1" && minorVersion == "8"; + baseruby = self.override { useRailsExpress = false; }; + self = lib.makeOverridable ( + { stdenv, lib, fetchurl, fetchFromSavannah, fetchFromGitHub + , useRailsExpress ? true + , zlib, zlibSupport ? true + , openssl, opensslSupport ? true + , gdbm, gdbmSupport ? true + , ncurses, readline, cursesSupport ? true + , groff, docSupport ? false + , libyaml, yamlSupport ? true + , libffi, fiddleSupport ? true + , autoreconfHook, bison, autoconf + , darwin ? null + }: + stdenv.mkDerivation rec { + inherit version; name = "ruby-${version}"; - src = let - versionName = if patchLevel != "0" && stdenv.lib.versionOlder versionNoPatch "2.1" - then version - else versionNoPatch; - tag = "v" + stdenv.lib.replaceChars ["." "p" "-"] ["_" "_" ""] versionName; - in if useRailsExpress then fetchFromGitHub { + src = if useRailsExpress then fetchFromGitHub { owner = "ruby"; repo = "ruby"; rev = tag; - sha256 = args.sha256.git; + sha256 = sha256.git; } else fetchurl { - url = "http://cache.ruby-lang.org/pub/ruby/${majorVersion}.${minorVersion}/ruby-${versionName}.tar.gz"; - sha256 = args.sha256.src; + url = "http://cache.ruby-lang.org/pub/ruby/${majorVersion}.${minorVersion}/ruby-${fullVersionName}.tar.gz"; + sha256 = sha256.src; }; # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds. @@ -104,7 +110,7 @@ let envHooks+=(addGemPath) EOF - '' + lib.optionalString useRailsExpress '' + '' + opString useRailsExpress '' rbConfig=$(find $out/lib/ruby -name rbconfig.rb) # Prevent the baseruby from being included in the closure. @@ -126,7 +132,8 @@ let libPath = "lib/${versionNoPatch}"; gemPath = "lib/${rubyEngine}/gems/${versionNoPatch}"; }; - }; in self true; + } + ) args; in self; in { ruby_1_8_7 = generic { From 68e802c46b0af8e648ffbcda853a8134ce765e23 Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Sat, 26 Sep 2015 06:23:25 -0700 Subject: [PATCH 093/165] PR comments --- .../development/interpreters/ruby/default.nix | 218 +++++++++--------- pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 110 insertions(+), 110 deletions(-) diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix index e4065a2bfe0e..89e0016f98de 100644 --- a/pkgs/development/interpreters/ruby/default.nix +++ b/pkgs/development/interpreters/ruby/default.nix @@ -10,130 +10,130 @@ let patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; }; config = import ./config.nix { inherit fetchFromSavannah; }; -generic = { majorVersion, minorVersion, teenyVersion, patchLevel, sha256 }: let - versionNoPatch = "${majorVersion}.${minorVersion}.${teenyVersion}"; - version = "${versionNoPatch}-p${patchLevel}"; - fullVersionName = if patchLevel != "0" && stdenv.lib.versionOlder versionNoPatch "2.1" - then version - else versionNoPatch; - tag = "v" + stdenv.lib.replaceChars ["." "p" "-"] ["_" "_" ""] fullVersionName; - isRuby21 = majorVersion == "2" && minorVersion == "1"; - isRuby18 = majorVersion == "1" && minorVersion == "8"; - baseruby = self.override { useRailsExpress = false; }; - self = lib.makeOverridable ( - { stdenv, lib, fetchurl, fetchFromSavannah, fetchFromGitHub - , useRailsExpress ? true - , zlib, zlibSupport ? true - , openssl, opensslSupport ? true - , gdbm, gdbmSupport ? true - , ncurses, readline, cursesSupport ? true - , groff, docSupport ? false - , libyaml, yamlSupport ? true - , libffi, fiddleSupport ? true - , autoreconfHook, bison, autoconf - , darwin ? null - }: - stdenv.mkDerivation rec { - inherit version; + generic = { majorVersion, minorVersion, teenyVersion, patchLevel, sha256 }: let + versionNoPatch = "${majorVersion}.${minorVersion}.${teenyVersion}"; + version = "${versionNoPatch}-p${patchLevel}"; + fullVersionName = if patchLevel != "0" && stdenv.lib.versionOlder versionNoPatch "2.1" + then version + else versionNoPatch; + tag = "v" + stdenv.lib.replaceChars ["." "p" "-"] ["_" "_" ""] fullVersionName; + isRuby21 = majorVersion == "2" && minorVersion == "1"; + isRuby18 = majorVersion == "1" && minorVersion == "8"; + baseruby = self.override { useRailsExpress = false; }; + self = lib.makeOverridable ( + { stdenv, lib, fetchurl, fetchFromSavannah, fetchFromGitHub + , useRailsExpress ? true + , zlib, zlibSupport ? true + , openssl, opensslSupport ? true + , gdbm, gdbmSupport ? true + , ncurses, readline, cursesSupport ? true + , groff, docSupport ? false + , libyaml, yamlSupport ? true + , libffi, fiddleSupport ? true + , autoreconfHook, bison, autoconf + , darwin ? null + }: + stdenv.mkDerivation rec { + inherit version; - name = "ruby-${version}"; + name = "ruby-${version}"; - src = if useRailsExpress then fetchFromGitHub { - owner = "ruby"; - repo = "ruby"; - rev = tag; - sha256 = sha256.git; - } else fetchurl { - url = "http://cache.ruby-lang.org/pub/ruby/${majorVersion}.${minorVersion}/ruby-${fullVersionName}.tar.gz"; - sha256 = sha256.src; - }; + src = if useRailsExpress then fetchFromGitHub { + owner = "ruby"; + repo = "ruby"; + rev = tag; + sha256 = sha256.git; + } else fetchurl { + url = "http://cache.ruby-lang.org/pub/ruby/${majorVersion}.${minorVersion}/ruby-${fullVersionName}.tar.gz"; + sha256 = sha256.src; + }; - # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds. - NROFF = "${groff}/bin/nroff"; + # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds. + NROFF = "${groff}/bin/nroff"; - buildInputs = ops useRailsExpress [ autoreconfHook bison ] - ++ (op fiddleSupport libffi) - ++ (ops cursesSupport [ ncurses readline ]) - ++ (op docSupport groff) - ++ (op zlibSupport zlib) - ++ (op opensslSupport openssl) - ++ (op gdbmSupport gdbm) - ++ (op yamlSupport libyaml) - # Looks like ruby fails to build on darwin without readline even if curses - # support is not enabled, so add readline to the build inputs if curses - # support is disabled (if it's enabled, we already have it) and we're - # running on darwin - ++ (op (!cursesSupport && stdenv.isDarwin) readline) - ++ (ops stdenv.isDarwin (with darwin; [ libiconv libobjc libunwind ])) - ++ op isRuby18 autoconf; + buildInputs = ops useRailsExpress [ autoreconfHook bison ] + ++ (op fiddleSupport libffi) + ++ (ops cursesSupport [ ncurses readline ]) + ++ (op docSupport groff) + ++ (op zlibSupport zlib) + ++ (op opensslSupport openssl) + ++ (op gdbmSupport gdbm) + ++ (op yamlSupport libyaml) + # Looks like ruby fails to build on darwin without readline even if curses + # support is not enabled, so add readline to the build inputs if curses + # support is disabled (if it's enabled, we already have it) and we're + # running on darwin + ++ (op (!cursesSupport && stdenv.isDarwin) readline) + ++ (ops stdenv.isDarwin (with darwin; [ libiconv libobjc libunwind ])) + ++ op isRuby18 autoconf; - enableParallelBuilding = true; + enableParallelBuilding = true; - patches = (import ./patchsets.nix { - inherit patchSet useRailsExpress ops patchLevel; - })."${versionNoPatch}"; + patches = (import ./patchsets.nix { + inherit patchSet useRailsExpress ops patchLevel; + })."${versionNoPatch}"; - postUnpack = opString isRuby21 '' - rm "$sourceRoot/enc/unicode/name2ctype.h" - ''; + postUnpack = opString isRuby21 '' + rm "$sourceRoot/enc/unicode/name2ctype.h" + ''; - postPatch = opString (!isRuby18) (if isRuby21 then '' - rm tool/config_files.rb - cp ${config}/config.guess tool/ - cp ${config}/config.sub tool/ - '' else opString useRailsExpress '' - sed -i configure.in -e '/config.guess/d' - cp ${config}/config.guess tool/ - cp ${config}/config.sub tool/ - ''); + postPatch = opString (!isRuby18) (if isRuby21 then '' + rm tool/config_files.rb + cp ${config}/config.guess tool/ + cp ${config}/config.sub tool/ + '' else opString useRailsExpress '' + sed -i configure.in -e '/config.guess/d' + cp ${config}/config.guess tool/ + cp ${config}/config.sub tool/ + ''); - configureFlags = ["--enable-shared" "--enable-pthread"] - ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby" - ++ ops stdenv.isDarwin [ - # on darwin, we have /usr/include/tk.h -- so the configure script detects - # that tk is installed - "--with-out-ext=tk" - # on yosemite, "generating encdb.h" will hang for a very long time without this flag - "--with-setjmp-type=setjmp" - ]; + configureFlags = ["--enable-shared" "--enable-pthread"] + ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby" + ++ ops stdenv.isDarwin [ + # on darwin, we have /usr/include/tk.h -- so the configure script detects + # that tk is installed + "--with-out-ext=tk" + # on yosemite, "generating encdb.h" will hang for a very long time without this flag + "--with-setjmp-type=setjmp" + ]; - installFlags = stdenv.lib.optionalString docSupport "install-doc"; - # Bundler tries to create this directory - postInstall = '' + installFlags = stdenv.lib.optionalString docSupport "install-doc"; # Bundler tries to create this directory - mkdir -pv $out/${passthru.gemPath} - mkdir -p $out/nix-support - cat > $out/nix-support/setup-hook < $out/nix-support/setup-hook < Date: Sat, 26 Sep 2015 06:27:25 -0700 Subject: [PATCH 094/165] revert rubies callPackages change --- pkgs/top-level/all-packages.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3b781fc768a1..58185dee3cf2 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5088,7 +5088,7 @@ let bundlerEnv = callPackage ../development/interpreters/ruby/bundler-env { }; ruby_1_8_7 = callPackage ../development/interpreters/ruby/ruby-1.8.7.nix { }; - inherit (callPackages ../development/interpreters/ruby {}) + inherit (callPackage ../development/interpreters/ruby {}) # TODO: uncomment when ruby_1_8_7 doesn't need autoconf # ruby_1_8_7 ruby_1_9_3 From 01f130e577a1eaf6528b42f131c9dfb550548708 Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Sat, 26 Sep 2015 23:12:59 -0700 Subject: [PATCH 095/165] update bundler-head SHA256 --- pkgs/development/interpreters/ruby/bundler-head.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/interpreters/ruby/bundler-head.nix b/pkgs/development/interpreters/ruby/bundler-head.nix index a81f2f771bcb..e31f63dccf06 100644 --- a/pkgs/development/interpreters/ruby/bundler-head.nix +++ b/pkgs/development/interpreters/ruby/bundler-head.nix @@ -5,7 +5,7 @@ buildRubyGem { src = fetchgit { url = "https://github.com/bundler/bundler.git"; rev = "a2343c9eabf5403d8ffcbca4dea33d18a60fc157"; - sha256 = "1p7kzhmicfljy9n7nq3qh6lvrsckiq76ddypf6s55gfh1l98z4k9"; + sha256 = "06qsai4ac3i2xlr7nbc4anh4cy6jd9jjf3rpj254g9gwshqv0qgr"; leaveDotGit = true; }; dontPatchShebangs = true; From 406c366432c12e48596726340ce7494f62fade1e Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Mon, 28 Sep 2015 09:16:05 -0700 Subject: [PATCH 096/165] revert realLibtool --- pkgs/development/libraries/libuv/default.nix | 4 ++-- pkgs/top-level/all-packages.nix | 16 +++++----------- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/pkgs/development/libraries/libuv/default.nix b/pkgs/development/libraries/libuv/default.nix index 2a35264799b9..248553dc5eb1 100644 --- a/pkgs/development/libraries/libuv/default.nix +++ b/pkgs/development/libraries/libuv/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchFromGitHub, autoconf, automake, realLibtool, pkgconfig +{ stdenv, lib, fetchFromGitHub, autoconf, automake, libtool, pkgconfig , ApplicationServices, CoreServices }: @@ -61,7 +61,7 @@ let mkWithAutotools = stability: version: sha256: stdenv.mkDerivation { name = mkName stability version; src = mkSrc version sha256; - buildInputs = [ automake autoconf realLibtool pkgconfig ] + buildInputs = [ automake autoconf libtool pkgconfig ] ++ stdenv.lib.optionals stdenv.isDarwin [ ApplicationServices CoreServices ]; preConfigure = '' LIBTOOLIZE=libtoolize ./autogen.sh diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 58185dee3cf2..adebc405f76f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -258,7 +258,7 @@ let autonix = import ../build-support/autonix { inherit pkgs; }; autoreconfHook = makeSetupHook - { substitutions = { inherit autoconf automake gettext; libtool = realLibtool; }; } + { substitutions = { inherit autoconf automake gettext libtool; }; } ../build-support/setup-hooks/autoreconf.sh; buildEnv = callPackage ../build-support/buildenv {}; @@ -4857,9 +4857,7 @@ let guile_1_8 = callPackage ../development/interpreters/guile/1.8.nix { }; - guile_2_0 = callPackage ../development/interpreters/guile { - libtool = realLibtool; - }; + guile_2_0 = callPackage ../development/interpreters/guile { }; guile = guile_2_0; @@ -5572,11 +5570,8 @@ let lemon = callPackage ../development/tools/parsing/lemon { }; - libtool = if stdenv.isDarwin - then darwin.cctools - else realLibtool; - realLibtool = libtool_2; + libtool = libtool_2; libtool_1_5 = callPackage ../development/tools/misc/libtool { }; @@ -6057,9 +6052,7 @@ let db6 = db60; db60 = callPackage ../development/libraries/db/db-6.0.nix { }; - dbus = callPackage ../development/libraries/dbus { - libtool = realLibtool; - }; + dbus = callPackage ../development/libraries/dbus { }; dbus_cplusplus = callPackage ../development/libraries/dbus-cplusplus { }; dbus_glib = callPackage ../development/libraries/dbus-glib { }; dbus_java = callPackage ../development/libraries/java/dbus-java { }; @@ -11044,6 +11037,7 @@ let }); emacs24Macport_24_5 = lowPrio (callPackage ../applications/editors/emacs-24/macport-24.5.nix { stdenv = pkgs.clangStdenv; + inherit (darwin.apple_sdk.frameworks) Carbon; }); emacs24Macport = self.emacs24Macport_24_5; From 638f24cc93e8bb1f088d27ab02fdbcf1593ffa6c Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Mon, 28 Sep 2015 09:36:15 -0700 Subject: [PATCH 097/165] excise accidental change included with 14bd5c0 --- pkgs/top-level/all-packages.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index adebc405f76f..7f296d756aa3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11037,7 +11037,6 @@ let }); emacs24Macport_24_5 = lowPrio (callPackage ../applications/editors/emacs-24/macport-24.5.nix { stdenv = pkgs.clangStdenv; - inherit (darwin.apple_sdk.frameworks) Carbon; }); emacs24Macport = self.emacs24Macport_24_5; From 6367e48225302ef5932011ec6831f08fa9d67afa Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Mon, 28 Sep 2015 09:41:02 -0700 Subject: [PATCH 098/165] Revert "pop" This reverts commit 724e243159e4e0059699eb21f6761a760b9a2f49. This (clearly) should never have been committed, and is probably due to a failed stash pop on my part. --- .../development/haskell-modules/configuration-common.nix | 9 --------- pkgs/stdenv/default.nix | 2 +- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 1324b8b979bb..9f7a18fa2dac 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -57,15 +57,6 @@ self: super: { # Link the proper version. zeromq4-haskell = super.zeromq4-haskell.override { zeromq = pkgs.zeromq4; }; - WordNet = pkgs.stdenv.lib.overrideDerivation super.WordNet (drv: { - src = ~/.dev/Haskell/WordNet-1.1.0; - postPatch = (drv.postPatch or "") + '' - substituteInPlace NLP/WordNet/Consts.hs \ - --replace /usr/local/WordNet-2.0 ${pkgs.wordnet} \ - --replace 'defined (MAC)' 0 - ''; - }); - # This package needs a little help compiling properly on Darwin. Furthermore, # Stackage compiles git-annex without the Assistant, supposedly because not # all required dependencies are part of Stackage. To comply with Stackage, we diff --git a/pkgs/stdenv/default.nix b/pkgs/stdenv/default.nix index da93229ce94c..71bdc3e8f829 100644 --- a/pkgs/stdenv/default.nix +++ b/pkgs/stdenv/default.nix @@ -54,7 +54,7 @@ rec { if system == "armv7l-linux" then stdenvLinux else if system == "mips64el-linux" then stdenvLinux else if system == "powerpc-linux" then /* stdenvLinux */ stdenvNative else - if system == "x86_64-darwin" then stdenvDarwinPure else + if system == "x86_64-darwin" then stdenvDarwin else if system == "x86_64-solaris" then stdenvNix else if system == "i686-cygwin" then stdenvNative else if system == "x86_64-cygwin" then stdenvNative else From 41ef382b9bd0ffcc2685d019151ed9f466f5c999 Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Mon, 28 Sep 2015 10:47:34 -0700 Subject: [PATCH 099/165] bring darwin libtool back into scope for node --- pkgs/top-level/all-packages.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7f296d756aa3..818dfee3392e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2012,10 +2012,12 @@ let }; nodejs-0_12 = callPackage ../development/web/nodejs { + libtool = darwin.cctools; libuv = libuvVersions.v1_6_1; }; nodejs-0_10 = callPackage ../development/web/nodejs/v0_10.nix { + libtool = darwin.cctools; inherit (darwin.apple_sdk.frameworks) CoreServices ApplicationServices Carbon Foundation; }; From 4f9ef9bbfb90a4a510a5fdcb4425004a137379e3 Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Mon, 28 Sep 2015 14:45:45 -0700 Subject: [PATCH 100/165] give xquartz impure deps to make it build --- pkgs/servers/x11/quartz-wm/default.nix | 7 ++----- pkgs/servers/x11/xorg/overrides.nix | 5 +++-- pkgs/servers/x11/xquartz/default.nix | 7 ------- pkgs/top-level/all-packages.nix | 3 --- 4 files changed, 5 insertions(+), 17 deletions(-) diff --git a/pkgs/servers/x11/quartz-wm/default.nix b/pkgs/servers/x11/quartz-wm/default.nix index ff125067305a..de30fc2a5840 100644 --- a/pkgs/servers/x11/quartz-wm/default.nix +++ b/pkgs/servers/x11/quartz-wm/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchurl, xorg, pixman, pkgconfig, Foundation, libobjc, Xplugin, CF }: +{ stdenv, lib, fetchurl, xorg, pixman, pkgconfig }: let version = "1.3.1"; in stdenv.mkDerivation { @@ -19,11 +19,8 @@ in stdenv.mkDerivation { xorg.libXext pixman pkgconfig - CF - Foundation - libobjc - Xplugin ]; + NIX_CFLAGS_COMPILE = "-F/System/Library/Frameworks -I/usr/include"; NIX_LDFLAGS = stdenv.lib.optional stdenv.isDarwin "/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation"; meta = with lib; { diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix index f5d5bf679ec6..a3b786c014ed 100644 --- a/pkgs/servers/x11/xorg/overrides.nix +++ b/pkgs/servers/x11/xorg/overrides.nix @@ -326,8 +326,6 @@ in } else { buildInputs = commonBuildInputs ++ [ args.bootstrap_cmds args.automake args.autoconf - args.CF args.apple_sdk.libs.Xplugin args.apple_sdk.frameworks.Foundation - args.libobjc args.apple_sdk.frameworks.Cocoa ]; propagatedBuildInputs = commonPropagatedBuildInputs ++ [ libAppleWM applewmproto @@ -355,6 +353,9 @@ in "--with-bundle-id-prefix=org.nixos.xquartz" "--with-sha1=CommonCrypto" ]; + __impureHostDeps = ["/System/Library" "/usr"]; + NIX_CFLAGS_COMPILE = "-F/System/Library/Frameworks -I/usr/include"; + NIX_CFLAGS_LINK = "-L/usr/lib"; preConfigure = '' ensureDir $out/Applications export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -Wno-error" diff --git a/pkgs/servers/x11/xquartz/default.nix b/pkgs/servers/x11/xquartz/default.nix index 8b5b3155a172..178e7a59d831 100644 --- a/pkgs/servers/x11/xquartz/default.nix +++ b/pkgs/servers/x11/xquartz/default.nix @@ -146,13 +146,6 @@ in stdenv.mkDerivation { --replace "@STARTX@" "$defaultStartX" \ --replace "@FONTCONFIG_FILE@" "$fontsConfPath" - rm $out/lib/X11/xinit/privileged_startx.d/* - cp ${./privileged} $out/lib/X11/xinit/privileged_startx.d/privileged - substituteInPlace $out/lib/X11/xinit/privileged_startx.d/privileged \ - --replace "@PATH@" "$out/bin:${env}" \ - --replace "@FONTCONFIG_FILE@" "$fontsConfPath" \ - --replace "@FONT_CACHE@" "$out/bin/font_cache" - cp ${./font_cache} $out/bin/font_cache substituteInPlace $out/bin/font_cache \ --replace "@PATH@" "$out/bin:${env}" \ diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 818dfee3392e..cb84a14d26e6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9252,9 +9252,6 @@ let xquartz = callPackage ../servers/x11/xquartz { }; quartz-wm = callPackage ../servers/x11/quartz-wm { stdenv = clangStdenv; - inherit (darwin.apple_sdk.frameworks) Foundation; - inherit (darwin.apple_sdk.libs) Xplugin; - inherit (darwin) libobjc CF; }; xorg = recurseIntoAttrs (lib.callPackagesWith pkgs ../servers/x11/xorg/default.nix { From 06eab94f1603620944dfcc6c64b5af8c194db75f Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Mon, 28 Sep 2015 17:09:50 -0700 Subject: [PATCH 101/165] patch sbcl-bootstrap for purity --- pkgs/development/compilers/sbcl/bootstrap.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/compilers/sbcl/bootstrap.nix b/pkgs/development/compilers/sbcl/bootstrap.nix index 015d7dd95da8..40c98072e6e7 100644 --- a/pkgs/development/compilers/sbcl/bootstrap.nix +++ b/pkgs/development/compilers/sbcl/bootstrap.nix @@ -17,6 +17,7 @@ stdenv.mkDerivation rec { installPhase = '' mkdir -p $out/bin cp -p src/runtime/sbcl $out/bin + install_name_tool -change /usr/lib/libgcc_s.1.dylib ${stdenv.libc}/lib/libgcc_s.10.5.dylib $out/bin/sbcl mkdir -p $out/share/sbcl cp -p output/sbcl.core $out/share/sbcl ''; From f4a7173e83999700d0e714a397464fa20648ee3c Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Mon, 28 Sep 2015 17:23:25 -0700 Subject: [PATCH 102/165] add darwin libtool to nodejs 4.1.0 --- pkgs/development/web/nodejs/v0_10.nix | 2 ++ pkgs/top-level/all-packages.nix | 1 + 2 files changed, 3 insertions(+) diff --git a/pkgs/development/web/nodejs/v0_10.nix b/pkgs/development/web/nodejs/v0_10.nix index eaa3c6386cb5..bf19ba646fd7 100644 --- a/pkgs/development/web/nodejs/v0_10.nix +++ b/pkgs/development/web/nodejs/v0_10.nix @@ -54,6 +54,8 @@ in stdenv.mkDerivation { propagatedBuildInputs = optionals stdenv.isDarwin [ Carbon ]; setupHook = ./setup-hook.sh; + enableParallelBuilding = true; + passthru.interpreterName = "nodejs-0.10"; meta = { diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index cb84a14d26e6..6eaf8fdf589d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2007,6 +2007,7 @@ let ninka = callPackage ../development/tools/misc/ninka { }; nodejs-4_1 = callPackage ../development/web/nodejs/v4_1_0.nix { + libtool = darwin.cctools; libuv = libuvVersions.v1_7_5; openssl = openssl_1_0_2; }; From 0b1fd74a8d2211ca8227a4b1a45c6855901f4801 Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Mon, 28 Sep 2015 17:33:33 -0700 Subject: [PATCH 103/165] fix syntax error --- pkgs/desktops/gnome-3/3.18/devtools/anjuta/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/desktops/gnome-3/3.18/devtools/anjuta/default.nix b/pkgs/desktops/gnome-3/3.18/devtools/anjuta/default.nix index ef350e086845..af74df4ad13b 100644 --- a/pkgs/desktops/gnome-3/3.18/devtools/anjuta/default.nix +++ b/pkgs/desktops/gnome-3/3.18/devtools/anjuta/default.nix @@ -1,7 +1,7 @@ { stdenv, fetchurl, pkgconfig, gnome3, gtk3, flex, bison, libxml2, intltool, itstool, python, makeWrapper }: -in stdenv.mkDerivation rec { +stdenv.mkDerivation rec { inherit (import ./src.nix fetchurl) name src; enableParallelBuilding = true; From 48a791d27062c71ced0921920d95fdd991b35107 Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Mon, 28 Sep 2015 18:32:41 -0700 Subject: [PATCH 104/165] darwin purity: doxygen --- pkgs/development/tools/documentation/doxygen/default.nix | 9 +++++++-- pkgs/top-level/all-packages.nix | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/documentation/doxygen/default.nix b/pkgs/development/tools/documentation/doxygen/default.nix index 50f2037b271c..78669dfdce7a 100644 --- a/pkgs/development/tools/documentation/doxygen/default.nix +++ b/pkgs/development/tools/documentation/doxygen/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, perl, python, flex, bison, qt4 }: +{ stdenv, fetchurl, perl, python, flex, bison, qt4, CoreServices, libiconv }: let name = "doxygen-1.8.6"; @@ -11,11 +11,16 @@ stdenv.mkDerivation { sha256 = "0pskjlkbj76m9ka7zi66yj8ffjcv821izv3qxqyyphf0y0jqcwba"; }; + prePatch = '' + substituteInPlace configure --replace /usr/bin/install $(type -P install) + ''; + patches = [ ./tmake.patch ]; buildInputs = [ perl python flex bison ] - ++ stdenv.lib.optional (qt4 != null) qt4; + ++ stdenv.lib.optional (qt4 != null) qt4 + ++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices libiconv ]; prefixKey = "--prefix "; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6eaf8fdf589d..a98ef4a4d5de 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5457,6 +5457,7 @@ let doxygen = callPackage ../development/tools/documentation/doxygen { qt4 = null; + inherit (darwin.apple_sdk.frameworks) CoreServices; }; doxygen_gui = lowPrio (doxygen.override { inherit qt4; }); From 5c7ba8c971605423d46045c364b42864a04909e2 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Tue, 29 Sep 2015 16:12:06 -0700 Subject: [PATCH 105/165] pkgconfig: 0.28 -> 0.29 --- pkgs/development/tools/misc/pkgconfig/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/misc/pkgconfig/default.nix b/pkgs/development/tools/misc/pkgconfig/default.nix index f1471d51e1fa..6eea0a6d5d6b 100644 --- a/pkgs/development/tools/misc/pkgconfig/default.nix +++ b/pkgs/development/tools/misc/pkgconfig/default.nix @@ -1,13 +1,13 @@ {stdenv, fetchurl, automake, libiconv, vanilla ? false}: stdenv.mkDerivation (rec { - name = "pkg-config-0.28"; + name = "pkg-config-0.29"; setupHook = ./setup-hook.sh; src = fetchurl { url = "http://pkgconfig.freedesktop.org/releases/${name}.tar.gz"; - sha256 = "0igqq5m204w71m11y0nipbdf5apx87hwfll6axs12hn4dqfb6vkb"; + sha256 = "0sq09a39wj4cxf8l2jvkq067g08ywfma4v6nhprnf351s82pfl68"; }; buildInputs = stdenv.lib.optional (stdenv.isCygwin || stdenv.isDarwin) libiconv; From de05a7b2ef1bb634d5e4e11c31ee9adc9a38197b Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Tue, 29 Sep 2015 17:56:32 -0700 Subject: [PATCH 106/165] add mpw --- pkgs/tools/security/mpw/default.nix | 42 +++++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 44 insertions(+) create mode 100644 pkgs/tools/security/mpw/default.nix diff --git a/pkgs/tools/security/mpw/default.nix b/pkgs/tools/security/mpw/default.nix new file mode 100644 index 000000000000..15937a6792e6 --- /dev/null +++ b/pkgs/tools/security/mpw/default.nix @@ -0,0 +1,42 @@ +{ stdenv, fetchurl, autoconf, automake, openssl, libxml2 }: + +let + scrypt_src = fetchurl { + url = "http://masterpasswordapp.com/libscrypt-b12b554.tar.gz"; + sha256 = "02vz4i66v1acd15xjgki4ilmmp28m6a5603gi4hf8id3d3ndl9n7"; + }; + +in stdenv.mkDerivation { + name = "mpw-2.1-cli4"; + + srcs = [ + (fetchurl { + url = "https://ssl.masterpasswordapp.com/mpw-2.1-cli4-0-gf6b2287.tar.gz"; + sha256 = "141bzb3nj18rbnbpdvsri8cdwwwxz4d6akyhfa834542xf96b9vf"; + }) + scrypt_src + ]; + + sourceRoot = "."; + + postUnpack = '' + cp -R libscrypt-b12b554/* lib/scrypt + ''; + + prePatch = '' + patchShebangs . + ''; + + NIX_CFLAGS_COMPILE = "-I${libxml2}/include/libxml2"; + + buildInputs = [ autoconf automake openssl libxml2 ]; + + buildPhase = '' + targets="mpw mpw-tests" ./build + ''; + + installPhase = '' + mkdir -p $out/bin + mv mpw $out/bin/mpw + ''; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d5ea85d635dd..243c36a563c6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2247,6 +2247,8 @@ let mpage = callPackage ../tools/text/mpage { }; + mpw = callPackage ../tools/security/mpw { }; + mr = callPackage ../applications/version-management/mr { }; mrtg = callPackage ../tools/misc/mrtg { }; From a424afdedd3bf0c769a56a49a92b366bf461a75a Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Wed, 30 Sep 2015 00:33:46 -0700 Subject: [PATCH 107/165] darwin purity: polyml --- pkgs/development/compilers/polyml/default.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pkgs/development/compilers/polyml/default.nix b/pkgs/development/compilers/polyml/default.nix index 76bb811dd66d..276065ad3503 100644 --- a/pkgs/development/compilers/polyml/default.nix +++ b/pkgs/development/compilers/polyml/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl}: +{stdenv, fetchurl, autoreconfHook}: let version = "5.5.2"; @@ -7,6 +7,12 @@ in stdenv.mkDerivation { name = "polyml-${version}"; + prePatch = stdenv.lib.optionalString stdenv.isDarwin '' + substituteInPlace configure.ac --replace stdc++ c++ + ''; + + buildInputs = stdenv.lib.optional stdenv.isDarwin autoreconfHook; + src = fetchurl { url = "mirror://sourceforge/polyml/polyml.${version}.tar.gz"; sha256 = "10m680qdad6bd50bav9xjsgmsxw8yxg55vr7grbg0gvykzl2pzbk"; From 12d49bbe66667b6bc711ae89a14b9d232557ea28 Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Wed, 30 Sep 2015 00:33:54 -0700 Subject: [PATCH 108/165] darwin purity: httrack --- pkgs/tools/backup/httrack/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/backup/httrack/default.nix b/pkgs/tools/backup/httrack/default.nix index 573c4b58d60d..8860fbc5dbcd 100644 --- a/pkgs/tools/backup/httrack/default.nix +++ b/pkgs/tools/backup/httrack/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, zlib, openssl }: +{ stdenv, fetchurl, zlib, openssl, libiconv }: stdenv.mkDerivation rec { version = "3.48.21"; @@ -9,7 +9,7 @@ stdenv.mkDerivation rec { sha256 = "10p4gf8y9h7mxkqlbs3hqgvmvbgvcbax8jp1whbw4yidwahn06w7"; }; - buildInputs = [ zlib openssl ]; + buildInputs = [ zlib openssl ] ++ stdenv.lib.optional stdenv.isDarwin libiconv; meta = { homepage = "http://www.httrack.com"; From 333ed12c70ecee0baabc6b5636b86b0035e6e999 Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Wed, 30 Sep 2015 00:34:02 -0700 Subject: [PATCH 109/165] darwin purity: aria2 --- pkgs/tools/networking/aria2/default.nix | 4 +++- pkgs/top-level/all-packages.nix | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/networking/aria2/default.nix b/pkgs/tools/networking/aria2/default.nix index 69b9dc406386..07671ffe81f1 100644 --- a/pkgs/tools/networking/aria2/default.nix +++ b/pkgs/tools/networking/aria2/default.nix @@ -1,5 +1,6 @@ { stdenv, fetchurl, pkgconfig, autoreconfHook , openssl, c-ares, libxml2, sqlite, zlib, libssh2 +, Security }: stdenv.mkDerivation rec { @@ -12,7 +13,8 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ openssl c-ares libxml2 sqlite zlib libssh2 ]; + buildInputs = [ openssl c-ares libxml2 sqlite zlib libssh2 ] ++ + stdenv.lib.optional stdenv.isDarwin Security; configureFlags = [ "--with-ca-bundle=/etc/ssl/certs/ca-certificates.crt" ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 243c36a563c6..2c292a5b8c8a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -628,7 +628,9 @@ let inherit (androidenv) androidsdk_4_4 androidndk; - aria2 = callPackage ../tools/networking/aria2 { }; + aria2 = callPackage ../tools/networking/aria2 { + inherit (darwin.apple_sdk.frameworks) Security; + }; aria = aria2; at = callPackage ../tools/system/at { }; From d14bb302a7de75ec91e48e1efb4ed5c123c96e3b Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Wed, 30 Sep 2015 10:23:44 -0700 Subject: [PATCH 110/165] syntax error --- pkgs/top-level/all-packages.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2c292a5b8c8a..0a64892f5df0 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2036,7 +2036,7 @@ let nodePackages_4_1 = recurseIntoAttrs (callPackage ./node-packages.nix { self = nodePackages_4_1; nodejs = nodejs-4_1; }); - nodePackages_0_10 = recurcallPackage ./node-packages.nix { self = nodePackages_0_10; nodejs = nodejs-0_10; }; + nodePackages_0_10 = callPackage ./node-packages.nix { self = nodePackages_0_10; nodejs = nodejs-0_10; }; nodePackages = if stdenv.system == "armv5tel-linux" then nodePackages_0_10 From cfba54975e4193389657c0e67747b1c0632e71dd Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Wed, 30 Sep 2015 16:17:02 -0700 Subject: [PATCH 111/165] mesa: 10.6.8 -> 11.0.2 --- pkgs/development/libraries/mesa/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix index 90db53ae7ebd..52268b9c3432 100644 --- a/pkgs/development/libraries/mesa/default.nix +++ b/pkgs/development/libraries/mesa/default.nix @@ -22,7 +22,7 @@ else */ let - version = "10.6.8"; + version = "11.0.2"; # this is the default search path for DRI drivers driverLink = "/run/opengl-driver" + stdenv.lib.optionalString stdenv.isi686 "-32"; in @@ -36,7 +36,7 @@ stdenv.mkDerivation { "https://launchpad.net/mesa/trunk/${version}/+download/mesa-${version}.tar.xz" "ftp://ftp.freedesktop.org/pub/mesa/${version}/mesa-${version}.tar.xz" ]; - sha256 = "e36ee5ceeadb3966fb5ce5b4cf18322dbb76a4f075558ae49c3bba94f57d58fd"; + sha256 = "fce11fb27eb87adf1e620a76455d635c6136dfa49ae58c53b34ef8d0c7b7eae4"; }; prePatch = "patchShebangs ."; From 3e96b763d2458537e994a23478f5ce4257930f31 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Wed, 30 Sep 2015 16:17:19 -0700 Subject: [PATCH 112/165] llvm: Switch to 3.7 by default --- pkgs/top-level/all-packages.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 24bd66c1c1ee..20770b428db0 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4149,7 +4149,7 @@ let llvm_34 = llvmPackages_34.llvm; llvm_33 = callPackage ../development/compilers/llvm/3.3/llvm.nix { }; - llvmPackages = recurseIntoAttrs llvmPackages_36; + llvmPackages = recurseIntoAttrs llvmPackages_37; llvmPackagesSelf = llvmPackages_34.override { stdenv = libcxxStdenv; @@ -7558,7 +7558,6 @@ let # makes it slower, but during runtime we link against just mesa_drivers # through /run/opengl-driver*, which is overriden according to config.grsecurity grsecEnabled = true; - llvmPackages = llvmPackages_36; }); mesa_glu = mesaDarwinOr (callPackage ../development/libraries/mesa-glu { }); mesa_drivers = mesaDarwinOr ( From 96e1b7eaf9eaaa3592906a97e0c3cc4a4552769c Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Thu, 1 Oct 2015 14:17:24 +0200 Subject: [PATCH 113/165] gnome-settins-daemon: Use libgudev --- .../gnome-3/3.16/core/gnome-settings-daemon/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/gnome-3/3.16/core/gnome-settings-daemon/default.nix b/pkgs/desktops/gnome-3/3.16/core/gnome-settings-daemon/default.nix index 2477bb7bc1ff..c80d1101ac9f 100644 --- a/pkgs/desktops/gnome-3/3.16/core/gnome-settings-daemon/default.nix +++ b/pkgs/desktops/gnome-3/3.16/core/gnome-settings-daemon/default.nix @@ -1,6 +1,6 @@ { fetchurl, stdenv, pkgconfig, gnome3, intltool, glib, libnotify, lcms2, libXtst , libxkbfile, libpulseaudio, libcanberra_gtk3, upower, colord, libgweather, polkit -, geoclue2, librsvg, xf86_input_wacom, udev, libwacom, libxslt, libtool, networkmanager +, geoclue2, librsvg, xf86_input_wacom, udev, libgudev, libwacom, libxslt, libtool, networkmanager , docbook_xsl, docbook_xsl_ns, makeWrapper, ibus, xkeyboard_config }: stdenv.mkDerivation rec { @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { [ intltool pkgconfig ibus gtk glib gsettings_desktop_schemas networkmanager libnotify gnome_desktop lcms2 libXtst libxkbfile libpulseaudio libcanberra_gtk3 upower colord libgweather xkeyboard_config - polkit geocode_glib geoclue2 librsvg xf86_input_wacom udev libwacom libxslt + polkit geocode_glib geoclue2 librsvg xf86_input_wacom udev libgudev libwacom libxslt libtool docbook_xsl docbook_xsl_ns makeWrapper gnome_themes_standard ]; preFixup = '' From 4d3198ca3102eafe7fc5c4ef0354e602a0dc9a77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Thu, 1 Oct 2015 21:37:19 +0200 Subject: [PATCH 114/165] libaccounts-glib: fixup build after glib update --- pkgs/development/libraries/libaccounts-glib/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/development/libraries/libaccounts-glib/default.nix b/pkgs/development/libraries/libaccounts-glib/default.nix index aa029ede9530..2e2bdb11d501 100644 --- a/pkgs/development/libraries/libaccounts-glib/default.nix +++ b/pkgs/development/libraries/libaccounts-glib/default.nix @@ -22,4 +22,6 @@ stdenv.mkDerivation rec { configurePhase = '' HAVE_GCOV_FALSE="#" ./configure $configureFlags --prefix=$out ''; + + NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations"; # since glib-2.46 } From 18b3295970cc5f80ece61d8e0da3b690613c3c8a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 1 Oct 2015 18:58:32 +0200 Subject: [PATCH 115/165] tzdata: 2015f -> 2015g --- pkgs/data/misc/tzdata/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/data/misc/tzdata/default.nix b/pkgs/data/misc/tzdata/default.nix index 8789316ccdc4..045a9eef00a6 100644 --- a/pkgs/data/misc/tzdata/default.nix +++ b/pkgs/data/misc/tzdata/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl }: -let version = "2015f"; in +let version = "2015g"; in stdenv.mkDerivation rec { name = "tzdata-${version}"; @@ -8,11 +8,11 @@ stdenv.mkDerivation rec { srcs = [ (fetchurl { url = "http://www.iana.org/time-zones/repository/releases/tzdata${version}.tar.gz"; - sha256 = "07ak8ai5skgjpj6lg74pawxg0bz998k7s2ah7jqyqhp086sq37wm"; + sha256 = "0qb1awqrn3215zd2jikpqnmkzrxwfjf0d3dw2xmnk4c40yzws8xr"; }) (fetchurl { url = "http://www.iana.org/time-zones/repository/releases/tzcode${version}.tar.gz"; - sha256 = "1bl4vqw6yp9199clm9aai566bmslp42g5xglj3vl24dn5fjf158c"; + sha256 = "1i3y1kzjiz2j62c7vd4wf85983sqk9x9lg3473njvbdz4kph5r0q"; }) ]; From d1047f7c12bb8097007fc644ea4bebcecbb1b934 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 1 Oct 2015 19:55:28 +0200 Subject: [PATCH 116/165] shared-mime-info: 1.3 -> 1.5 --- pkgs/data/misc/shared-mime-info/default.nix | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pkgs/data/misc/shared-mime-info/default.nix b/pkgs/data/misc/shared-mime-info/default.nix index 57f5b24a6f87..46be9a6060bb 100644 --- a/pkgs/data/misc/shared-mime-info/default.nix +++ b/pkgs/data/misc/shared-mime-info/default.nix @@ -1,20 +1,23 @@ {stdenv, fetchurl, pkgconfig, gettext, perl, perlXMLParser, intltool , libxml2, glib}: +let version = "1.5"; in stdenv.mkDerivation rec { - name = "shared-mime-info-1.3"; + name = "shared-mime-info-${version}"; src = fetchurl { url = "http://freedesktop.org/~hadess/${name}.tar.xz"; - sha256 = "0fijrc8j2kw6bvdx7fmlfafbcwxvinhr8l44b46b3v59gj69rm2g"; + sha256 = "1021x95xbkfc5ipx3gi2rdc0y6x2pv36yyzxc5pg6nr6xd02hhfn"; }; - buildInputs = [ + nativeBuildInputs = [ pkgconfig gettext intltool perl perlXMLParser libxml2 glib ]; meta = { + inherit version; description = "A database of common MIME types"; homepage = http://freedesktop.org/wiki/Software/shared-mime-info; + license = stdenv.lib.licenses.gpl2Plus; }; } From 33f1ebb8f2bb9ee16494d7a84a3ea17ecbefef02 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Fri, 2 Oct 2015 16:08:42 -0700 Subject: [PATCH 117/165] glew: 1.11.0 -> 1.13.0 --- pkgs/development/libraries/glew/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/glew/default.nix b/pkgs/development/libraries/glew/default.nix index cbdc28311877..6595d97b01af 100644 --- a/pkgs/development/libraries/glew/default.nix +++ b/pkgs/development/libraries/glew/default.nix @@ -3,11 +3,11 @@ with stdenv.lib; stdenv.mkDerivation rec { - name = "glew-1.11.0"; + name = "glew-1.13.0"; src = fetchurl { url = "mirror://sourceforge/glew/${name}.tgz"; - sha256 = "1mhkllxz49l1x680dmzrv2i82qjrq017sykah3xc90f2d8qcxfv9"; + sha256 = "1iwb2a6wfhkzv6fa7zx2gz1lkwa0iwnd9ka1im5vdc44xm4dq9da"; }; nativeBuildInputs = [ xlibsWrapper libXmu libXi ]; From b233ecdca68e08940024da6e4e55e6ef2a20863f Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Fri, 2 Oct 2015 16:08:52 -0700 Subject: [PATCH 118/165] poppler: 0.34.0 -> 0.36.0 Tested building cups-filters and rendering a pdf --- pkgs/development/libraries/poppler/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/poppler/default.nix b/pkgs/development/libraries/poppler/default.nix index b15142dc6738..92777f001695 100644 --- a/pkgs/development/libraries/poppler/default.nix +++ b/pkgs/development/libraries/poppler/default.nix @@ -5,8 +5,8 @@ }: let # beware: updates often break cups_filters build - version = "0.34.0"; # even major numbers are stable - sha256 = "1c2wa4pfzqmvzq1jpp3ps5nmzz745gcg8dnpwqpfdccy5ydbm90v"; + version = "0.36.0"; # even major numbers are stable + sha256 = "13i440kv873wgmw50rs4d1v05cj0r7bqnghd70hp9vy44dxhdk4k"; in stdenv.mkDerivation rec { name = "poppler-${suffix}-${version}"; From 976b1dd423ac73eb29a20de84f1a5b79da4dd5bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Sat, 3 Oct 2015 19:29:05 +0200 Subject: [PATCH 119/165] all-packages: fix openssl_* reference --- pkgs/top-level/all-packages.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index fc17b1322889..77968420c9de 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2022,7 +2022,6 @@ let nodejs-4_1 = callPackage ../development/web/nodejs { libtool = darwin.cctools; - openssl = openssl_1_0_2; }; nodejs-0_10 = callPackage ../development/web/nodejs/v0_10.nix { From 57f2baa9d6446e282d997f38c2003a765d6e7b04 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Sun, 4 Oct 2015 01:21:01 -0700 Subject: [PATCH 120/165] v8: Use gcc48 instead of gcc5 due to segfaults only seen on gcc5 --- pkgs/top-level/all-packages.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 77968420c9de..2623ffa6ac5e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8339,6 +8339,8 @@ let v8_3_16_14 = callPackage ../development/libraries/v8/3.16.14.nix { inherit (pythonPackages) gyp; + # The build succeeds using gcc5 but it fails to build pkgs.consul-ui + stdenv = overrideCC stdenv gcc48; }; v8_3_24_10 = callPackage ../development/libraries/v8/3.24.10.nix { From 4e8da0747c88375c221bf1b0f060183a863c6851 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Sun, 4 Oct 2015 12:32:25 +0200 Subject: [PATCH 121/165] boost-1.55: fix build with gcc-5 by upstream patch Our higher versions have fix integrated upstream. --- pkgs/development/libraries/boost/1.55.nix | 2 +- pkgs/development/libraries/boost/gcc-5.patch | 64 ++++++++++++++++++++ 2 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 pkgs/development/libraries/boost/gcc-5.patch diff --git a/pkgs/development/libraries/boost/1.55.nix b/pkgs/development/libraries/boost/1.55.nix index a10cd8ce2202..0a38f35af753 100644 --- a/pkgs/development/libraries/boost/1.55.nix +++ b/pkgs/development/libraries/boost/1.55.nix @@ -3,7 +3,7 @@ callPackage ./generic.nix (args // rec { version = "1.55.0"; - patches = [ ./clang-math.patch ./clang-math-2.patch ]; + patches = [ ./clang-math.patch ./clang-math-2.patch ./gcc-5.patch ]; src = fetchurl { url = "mirror://sourceforge/boost/boost_1_55_0.tar.bz2"; diff --git a/pkgs/development/libraries/boost/gcc-5.patch b/pkgs/development/libraries/boost/gcc-5.patch new file mode 100644 index 000000000000..2b2713590ca7 --- /dev/null +++ b/pkgs/development/libraries/boost/gcc-5.patch @@ -0,0 +1,64 @@ +https://svn.boost.org/trac/boost/ticket/10125 + + boost/thread/pthread/once.hpp | 6 +++--- + boost/thread/pthread/once_atomic.hpp | 2 +- + boost/thread/win32/once.hpp | 2 +- + 3 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/boost/thread/pthread/once.hpp b/boost/thread/pthread/once.hpp +index ccfb051..0bef038 100644 +--- a/boost/thread/pthread/once.hpp ++++ b/boost/thread/pthread/once.hpp +@@ -42,7 +42,7 @@ namespace boost + } + + #ifdef BOOST_THREAD_PROVIDES_ONCE_CXX11 +-#ifndef BOOST_NO_CXX11_VARIADIC_TEMPLATES ++#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + inline void call_once(once_flag& flag, BOOST_THREAD_RV_REF(Function) f, BOOST_THREAD_RV_REF(ArgTypes)... args); + #else +@@ -65,7 +65,7 @@ namespace boost + private: + volatile thread_detail::uintmax_atomic_t epoch; + +-#ifndef BOOST_NO_CXX11_VARIADIC_TEMPLATES ++#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + template + friend void call_once(once_flag& flag, BOOST_THREAD_RV_REF(Function) f, BOOST_THREAD_RV_REF(ArgTypes)... args); + #else +@@ -118,7 +118,7 @@ namespace boost + // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2444.html + + +-#ifndef BOOST_NO_CXX11_VARIADIC_TEMPLATES ++#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + + + template +diff --git a/boost/thread/pthread/once_atomic.hpp b/boost/thread/pthread/once_atomic.hpp +index 9e2f876..923f07b 100644 +--- a/boost/thread/pthread/once_atomic.hpp ++++ b/boost/thread/pthread/once_atomic.hpp +@@ -115,7 +115,7 @@ namespace boost + #endif + + +-#ifndef BOOST_NO_CXX11_VARIADIC_TEMPLATES ++#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + + template + inline void call_once(once_flag& flag, BOOST_THREAD_RV_REF(Function) f, BOOST_THREAD_RV_REF(ArgTypes)... args) +diff --git a/boost/thread/win32/once.hpp b/boost/thread/win32/once.hpp +index cafcfd4..9b37b31 100644 +--- a/boost/thread/win32/once.hpp ++++ b/boost/thread/win32/once.hpp +@@ -227,7 +227,7 @@ namespace boost + } + } + +-#ifndef BOOST_NO_CXX11_VARIADIC_TEMPLATES ++#if !defined BOOST_NO_CXX11_VARIADIC_TEMPLATES && !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) + //#if defined(BOOST_THREAD_RVALUE_REFERENCES_DONT_MATCH_FUNTION_PTR) + inline void call_once(once_flag& flag, void (*f)()) + { From 0a32eab91e7a547325958da2581933a98095d50c Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Mon, 5 Oct 2015 08:46:49 -0700 Subject: [PATCH 122/165] fix LLVM packages to work in darwin stdenv --- .../compilers/llvm/3.7/libc++/default.nix | 9 ---- .../compilers/llvm/3.7/libc++abi.nix | 2 +- pkgs/development/compilers/llvm/3.7/llvm.nix | 6 ++- .../interpreters/perl/5.22/default.nix | 7 +++- .../interpreters/perl/5.22/no-libutil.patch | 16 +++---- pkgs/development/libraries/gmp/6.x.nix | 2 + pkgs/development/libraries/gmp/l0m4_tmp.patch | 27 ++++++++++++ .../development/libraries/ncurses/clang.patch | 42 ------------------- .../development/libraries/ncurses/default.nix | 2 - .../libraries/openssl/darwin-arch.patch | 13 +++--- pkgs/stdenv/pure-darwin/default.nix | 8 ++-- pkgs/tools/misc/cloc/default.nix | 8 +++- 12 files changed, 68 insertions(+), 74 deletions(-) create mode 100644 pkgs/development/libraries/gmp/l0m4_tmp.patch delete mode 100644 pkgs/development/libraries/ncurses/clang.patch diff --git a/pkgs/development/compilers/llvm/3.7/libc++/default.nix b/pkgs/development/compilers/llvm/3.7/libc++/default.nix index cd985d89098d..db1475cfc14f 100644 --- a/pkgs/development/compilers/llvm/3.7/libc++/default.nix +++ b/pkgs/development/compilers/llvm/3.7/libc++/default.nix @@ -12,15 +12,6 @@ stdenv.mkDerivation rec { preConfigure = '' # Get headers from the cxxabi source so we can see private headers not installed by the cxxabi package cmakeFlagsArray=($cmakeFlagsArray -DLIBCXX_CXX_ABI_INCLUDE_PATHS="$NIX_BUILD_TOP/libcxxabi-${version}.src/include") - '' + - stdenv.lib.optionalString stdenv.isDarwin '' - # instead of allowing libc++ to link with /usr/lib/libc++abi.dylib, - # force it to link with our copy - substituteInPlace lib/CMakeLists.txt \ - --replace 'OSX_RE_EXPORT_LINE "/usr/lib/libc++abi.dylib' \ - 'OSX_RE_EXPORT_LINE "${libcxxabi}/lib/libc++abi.dylib' \ - --replace '"''${CMAKE_OSX_SYSROOT}/usr/lib/libc++abi.dylib"' \ - '"${libcxxabi}/lib/libc++abi.dylib"' ''; patches = [ ./darwin.patch ]; diff --git a/pkgs/development/compilers/llvm/3.7/libc++abi.nix b/pkgs/development/compilers/llvm/3.7/libc++abi.nix index a1b300ffa04f..97f182a9af81 100644 --- a/pkgs/development/compilers/llvm/3.7/libc++abi.nix +++ b/pkgs/development/compilers/llvm/3.7/libc++abi.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation { done make install install -d 755 $out/include - install -m 644 ../include/cxxabi.h $out/include + install -m 644 ../include/*.h $out/include '' else '' install -d -m 755 $out/include $out/lib diff --git a/pkgs/development/compilers/llvm/3.7/llvm.nix b/pkgs/development/compilers/llvm/3.7/llvm.nix index 4ff61b278783..9784a64e7c3e 100644 --- a/pkgs/development/compilers/llvm/3.7/llvm.nix +++ b/pkgs/development/compilers/llvm/3.7/llvm.nix @@ -11,6 +11,7 @@ , ncurses , version , zlib +, libcxxabi , compiler-rt_src }: @@ -27,7 +28,8 @@ in stdenv.mkDerivation rec { mv compiler-rt-* $sourceRoot/projects/compiler-rt ''; - buildInputs = [ perl groff cmake libxml2 python libffi ] /* ++ stdenv.lib.optional stdenv.isLinux valgrind */; + buildInputs = [ perl groff cmake libxml2 python libffi ] + ++ stdenv.lib.optional stdenv.isDarwin libcxxabi; propagatedBuildInputs = [ ncurses zlib ]; @@ -47,7 +49,7 @@ in stdenv.mkDerivation rec { "-DBUILD_SHARED_LIBS=ON" "-DLLVM_BINUTILS_INCDIR=${binutils}/include" ] ++ stdenv.lib.optionals ( isDarwin) [ - "-DCMAKE_CXX_FLAGS=-stdlib=libc++" + "-DLLVM_ENABLE_LIBCXX=ON" "-DCAN_TARGET_i386=false" ]; diff --git a/pkgs/development/interpreters/perl/5.22/default.nix b/pkgs/development/interpreters/perl/5.22/default.nix index e0be8610fb7b..4b0f4364ea22 100644 --- a/pkgs/development/interpreters/perl/5.22/default.nix +++ b/pkgs/development/interpreters/perl/5.22/default.nix @@ -59,9 +59,14 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; + postPatch = '' + pwd="$(type -P pwd)" + substituteInPlace dist/PathTools/Cwd.pm \ + --replace "pwd_cmd = 'pwd'" "pwd_cmd = '$pwd'" + ''; + preConfigure = '' - configureFlags="$configureFlags -Dprefix=$out -Dman1dir=$out/share/man/man1 -Dman3dir=$out/share/man/man3" ${optionalString stdenv.isArm '' diff --git a/pkgs/development/interpreters/perl/5.22/no-libutil.patch b/pkgs/development/interpreters/perl/5.22/no-libutil.patch index 68d44612bfe6..d6356a524370 100644 --- a/pkgs/development/interpreters/perl/5.22/no-libutil.patch +++ b/pkgs/development/interpreters/perl/5.22/no-libutil.patch @@ -1,12 +1,14 @@ -diff -ru -x '*~' perl-5.14.2-orig/Configure perl-5.14.2/Configure ---- perl-5.14.2-orig/Configure 2011-09-26 11:44:34.000000000 +0200 -+++ perl-5.14.2/Configure 2012-02-16 17:24:50.779839039 +0100 -@@ -1368,7 +1368,7 @@ +diff --git a/Configure b/Configure +index 0a405d3..1871298 100755 +--- a/Configure ++++ b/Configure +@@ -1455,7 +1455,7 @@ libswanted_uselargefiles='' : List of libraries we want. : If anyone needs extra -lxxx, put those in a hint file. - libswanted="socket bind inet nsl nm ndbm gdbm dbm db malloc dl ld sun" --libswanted="$libswanted m crypt sec util c cposix posix ucb bsd BSD" -+libswanted="$libswanted m crypt sec c cposix posix ucb bsd BSD" + libswanted="cl pthread socket bind inet nsl nm ndbm gdbm dbm db malloc dl ld" +-libswanted="$libswanted sun m crypt sec util c cposix posix ucb bsd BSD" ++libswanted="$libswanted sun m crypt sec c cposix posix ucb bsd BSD" : We probably want to search /usr/shlib before most other libraries. : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist. glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'` + diff --git a/pkgs/development/libraries/gmp/6.x.nix b/pkgs/development/libraries/gmp/6.x.nix index 171611e12498..083bfec9b05a 100644 --- a/pkgs/development/libraries/gmp/6.x.nix +++ b/pkgs/development/libraries/gmp/6.x.nix @@ -33,6 +33,8 @@ stdenv.mkDerivation rec { configureFlagsArray+=("--build=$(./configfsf.guess)") ''; + patches = [ ./l0m4_tmp.patch ]; + doCheck = true; dontDisableStatic = withStatic; diff --git a/pkgs/development/libraries/gmp/l0m4_tmp.patch b/pkgs/development/libraries/gmp/l0m4_tmp.patch new file mode 100644 index 000000000000..4431106cba62 --- /dev/null +++ b/pkgs/development/libraries/gmp/l0m4_tmp.patch @@ -0,0 +1,27 @@ +# HG changeset patch +# User Torbjorn Granlund +# Date 1396470504 -7200 +# Node ID 1fab0adc5ff7d9ecddcbda96f407da58347bb49c +# Parent db645603dcdb41afcf78b19b551ecd5a01c3841c +Workaround for Darwin assembler quirk. + +diff -r db645603dcdb -r 1fab0adc5ff7 mpn/x86_64/k8/redc_1.asm +--- a/mpn/x86_64/k8/redc_1.asm Mon Mar 31 23:04:32 2014 +0200 ++++ b/mpn/x86_64/k8/redc_1.asm Wed Apr 02 22:28:24 2014 +0200 +@@ -114,7 +114,7 @@ + + JUMPTABSECT + ALIGN(8) +-L(tab): JMPENT( L(0m4), L(tab)) ++L(tab): JMPENT( L(0), L(tab)) + JMPENT( L(1), L(tab)) + JMPENT( L(2), L(tab)) + JMPENT( L(3), L(tab)) +@@ -397,6 +397,7 @@ + + + ALIGN(16) ++L(0): + L(0m4): + L(lo0): mov (mp,nneg,8), %rax + mov nneg, i diff --git a/pkgs/development/libraries/ncurses/clang.patch b/pkgs/development/libraries/ncurses/clang.patch deleted file mode 100644 index ce33049bf405..000000000000 --- a/pkgs/development/libraries/ncurses/clang.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff -ruNp ncurses-5.8.orig/c++/cursesf.h ncurses-5.8/c++/cursesf.h ---- ncurses-5.8.orig/c++/cursesf.h 2005-08-13 21:08:24.000000000 +0300 -+++ ncurses-5.8/c++/cursesf.h 2011-04-03 18:29:29.000000000 +0300 -@@ -681,7 +681,7 @@ public: - const T* p_UserData = STATIC_CAST(T*)(0), - bool with_frame=FALSE, - bool autoDelete_Fields=FALSE) -- : NCursesForm (Fields, with_frame, autoDelete_Fields) { -+ : NCursesForm (&Fields, with_frame, autoDelete_Fields) { - if (form) - set_user (const_cast(p_UserData)); - }; -@@ -694,7 +694,7 @@ public: - const T* p_UserData = STATIC_CAST(T*)(0), - bool with_frame=FALSE, - bool autoDelete_Fields=FALSE) -- : NCursesForm (Fields, nlines, ncols, begin_y, begin_x, -+ : NCursesForm (&Fields, nlines, ncols, begin_y, begin_x, - with_frame, autoDelete_Fields) { - if (form) - set_user (const_cast(p_UserData)); -diff -ruNp ncurses-5.8.orig/c++/cursesm.h ncurses-5.8/c++/cursesm.h ---- ncurses-5.8.orig/c++/cursesm.h 2005-08-13 21:10:36.000000000 +0300 -+++ ncurses-5.8/c++/cursesm.h 2011-04-03 18:31:42.000000000 +0300 -@@ -639,7 +639,7 @@ public: - const T* p_UserData = STATIC_CAST(T*)(0), - bool with_frame=FALSE, - bool autoDelete_Items=FALSE) -- : NCursesMenu (Items, with_frame, autoDelete_Items) { -+ : NCursesMenu (&Items, with_frame, autoDelete_Items) { - if (menu) - set_user (const_cast(p_UserData)); - }; -@@ -651,7 +651,7 @@ public: - int begin_x = 0, - const T* p_UserData = STATIC_CAST(T*)(0), - bool with_frame=FALSE) -- : NCursesMenu (Items, nlines, ncols, begin_y, begin_x, with_frame) { -+ : NCursesMenu (&Items, nlines, ncols, begin_y, begin_x, with_frame) { - if (menu) - set_user (const_cast(p_UserData)); - }; diff --git a/pkgs/development/libraries/ncurses/default.nix b/pkgs/development/libraries/ncurses/default.nix index 046c7347f863..a76bba24c62f 100644 --- a/pkgs/development/libraries/ncurses/default.nix +++ b/pkgs/development/libraries/ncurses/default.nix @@ -14,8 +14,6 @@ stdenv.mkDerivation rec { sha256 = "0q3jck7lna77z5r42f13c4xglc7azd19pxfrjrpgp2yf615w4lgm"; }; - patches = [ ./clang.patch ]; - configureFlags = [ "--with-shared" "--with-cxx-shared" diff --git a/pkgs/development/libraries/openssl/darwin-arch.patch b/pkgs/development/libraries/openssl/darwin-arch.patch index 63db3efc0846..238dd7d08d88 100644 --- a/pkgs/development/libraries/openssl/darwin-arch.patch +++ b/pkgs/development/libraries/openssl/darwin-arch.patch @@ -1,12 +1,13 @@ -diff -ru -x '*~' openssl-1.0.1c-orig/Configure openssl-1.0.1c/Configure ---- openssl-1.0.1c-orig/Configure 2012-03-14 23:20:40.000000000 +0100 -+++ openssl-1.0.1c/Configure 2012-12-18 17:29:30.268090633 +0100 -@@ -579,7 +579,7 @@ +diff --git a/Configure b/Configure +index d99eed7..341dbd0 100755 +--- a/Configure ++++ b/Configure +@@ -638,7 +638,7 @@ my %table=( "darwin64-ppc-cc","cc:-arch ppc64 -O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc64_asm}:osx64:dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", "darwin-i386-cc","cc:-arch i386 -O3 -fomit-frame-pointer -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_INT RC4_CHUNK DES_UNROLL BF_PTR:".eval{my $asm=$x86_asm;$asm=~s/cast\-586\.o//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", "debug-darwin-i386-cc","cc:-arch i386 -g3 -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_INT RC4_CHUNK DES_UNROLL BF_PTR:${x86_asm}:macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", --"darwin64-x86_64-cc","cc:-arch x86_64 -O3 -DL_ENDIAN -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$x86_64_asm;$asm=~s/rc4\-[^:]+//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", +-"darwin64-x86_64-cc","cc:-arch x86_64 -O3 -DL_ENDIAN -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$x86_64_asm;$asm=~s/rc4\-[^:]+//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", +"darwin64-x86_64-cc","cc:-O3 -DL_ENDIAN -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$x86_64_asm;$asm=~s/rc4\-[^:]+//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", + "debug-darwin64-x86_64-cc","cc:-arch x86_64 -ggdb -g2 -O0 -DL_ENDIAN -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$x86_64_asm;$asm=~s/rc4\-[^:]+//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", "debug-darwin-ppc-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DB_ENDIAN -g -Wall -O::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc32_asm}:osx32:dlfcn:darwin-shared:-fPIC:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", # iPhoneOS/iOS - "iphoneos-cross","llvm-gcc:-O3 -isysroot \$(CROSS_TOP)/SDKs/\$(CROSS_SDK) -fomit-frame-pointer -fno-common::-D_REENTRANT:iOS:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", diff --git a/pkgs/stdenv/pure-darwin/default.nix b/pkgs/stdenv/pure-darwin/default.nix index 51780b6f774b..a50a63fbda66 100644 --- a/pkgs/stdenv/pure-darwin/default.nix +++ b/pkgs/stdenv/pure-darwin/default.nix @@ -220,11 +220,13 @@ in rec { persistent3 = orig: with stage3.pkgs; { inherit gnumake gzip gnused bzip2 gawk ed xz patch bash - libcxxabi libcxx ncurses libffi zlib llvm gmp pcre gnugrep + libcxxabi libcxx ncurses libffi zlib gmp pcre gnugrep coreutils findutils diffutils patchutils; - llvmPackages = orig.llvmPackages // { - inherit (llvmPackages) llvm clang-unwrapped; + llvmPackages = let llvmOverride = llvmPackages.llvm.override { inherit libcxxabi; }; + in orig.llvmPackages // { + llvm = llvmOverride; + clang-unwrapped = llvmPackages.clang-unwrapped.override { llvm = llvmOverride; }; }; darwin = orig.darwin // { diff --git a/pkgs/tools/misc/cloc/default.nix b/pkgs/tools/misc/cloc/default.nix index bb278dbe1b19..0b5796d4ac38 100644 --- a/pkgs/tools/misc/cloc/default.nix +++ b/pkgs/tools/misc/cloc/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, perl, AlgorithmDiff, RegexpCommon }: +{ stdenv, fetchurl, fetchpatch, perl, AlgorithmDiff, RegexpCommon }: stdenv.mkDerivation rec { @@ -11,6 +11,12 @@ stdenv.mkDerivation rec { sha256 = "1w3mz69h2i7pscvi9q7yp7wimds8g38c5ph78cj5pvjl5wa035rh"; }; + patches = [ (fetchpatch { + name = "perl-5.22.patch"; + url = "https://bugs.archlinux.org/task/45494?getfile=13174"; + sha256 = "1xxwqjy2q2fdza7kfp9ld0yzljkdsrgm8a9pwnmx5q4adigcjjsz"; + }) ]; + buildInputs = [ perl AlgorithmDiff RegexpCommon ]; makeFlags = [ "prefix=" "DESTDIR=$(out)" "INSTALL=install" ]; From fe195af94462a6769f2e2c38c1d5739337c20d57 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 6 Oct 2015 12:54:51 +0200 Subject: [PATCH 123/165] eaglemode: Don't build on Hydra The build can loop forever generating an infinite amount of log data, filling up Hydra's disk: gcc -Llib -L/nix/store/0xb56zcqii361ksknjwh9m853zb886yq-glib-2.46.0/lib -L/nix/store/48hidn50ynp4kk4lsfzjvkbg30yhfgaq-gdk-pixbuf-2.32.0/lib -L/nix/store/dfxv36h389wvkblv3qjgfs2zyklgdlp4-cairo-1.14.2/lib -L/nix/store/wy5f8alalh681jbq3hjh93rcc87d6nch-freetype-2.5.4/lib -L/nix/store/b6kaw1i6fadgssn38xv4rkfsa7q70rfa-fontconfig-2.11.1/lib -L/nix/store/9n1ynjgcmxlhz75l1mnd07zb0pkgvpzi-gtk+-2.24.28/lib -L/nix/store/782agz0g2hn4n02a23vsaly2sr1kwxhd-pango-1.38.0/lib -L/nix/store/ljalzp7gjv76bqbxm6ia3vmw3vhfambr-atk-2.18.0/lib -L/nix/store/pkssk6q14y17q9jji5q5gk70sf3hz6hs-poppler-glib-0.34.0/lib obj/emPdfServerProc.o -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangoft2-1.0 -lpango-1.0 -lfontconfig -lfreetype -lpoppler-glib -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lcairo -lm -o lib/emPdf/emPdfServerProc /nix/store/kxf1p7l7lgm6j5mjzkiwcwzc98s9f1az-binutils-2.23.1/bin/ld: cannot find -lcairo collect2: error: ld returned 1 exit status --- Building emPdf failed, but that project is not so essential. So if you don't know how to solve the problem, then you could continue the overall building now, and live without the features the project provides. Continue? [y(es)/n(o)/a(lways)]: Use of uninitialized value $ln in pattern match (m//) at make.pl line 626. Use of uninitialized value $ln in pattern match (m//) at make.pl line 629. Use of uninitialized value $ln in pattern match (m//) at make.pl line 632. Use of uninitialized value $ln in pattern match (m//) at make.pl line 636. Say yes, no or always: Use of uninitialized value $ln in pattern match (m//) at make.pl line 626. Use of uninitialized value $ln in pattern match (m//) at make.pl line 629. Use of uninitialized value $ln in pattern match (m//) at make.pl line 632. Use of uninitialized value $ln in pattern match (m//) at make.pl line 636. ... @viric http://hydra.nixos.org/build/26505594 --- pkgs/applications/misc/eaglemode/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/applications/misc/eaglemode/default.nix b/pkgs/applications/misc/eaglemode/default.nix index 4324a33d2380..d81061f32072 100644 --- a/pkgs/applications/misc/eaglemode/default.nix +++ b/pkgs/applications/misc/eaglemode/default.nix @@ -37,5 +37,6 @@ stdenv.mkDerivation rec { license = licenses.gpl3; maintainers = with maintainers; [ viric ]; platforms = with platforms; linux; + hydraPlatforms = []; }; } From 741bf840dad05cd1728481045466811ae8ae8281 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 6 Oct 2015 15:24:20 +0200 Subject: [PATCH 124/165] Revert "Merge pull request #9543 from NixOS/staging.post-15.06" This reverts commit f61176c5396ed513f3d399f73f38ab78a066667f, reversing changes made to a27ca029ee2b39e04d7d2a516a7228f4b62067fb. Conflicts: pkgs/development/libraries/ncurses/default.nix --- doc/haskell-users-guide.md | 21 ----- lib/maintainers.nix | 2 - nixos/modules/services/mail/opensmtpd.nix | 20 +---- .../services/networking/networkmanager.nix | 5 +- nixos/modules/tasks/network-interfaces.nix | 2 +- pkgs/applications/audio/audacity/default.nix | 8 +- pkgs/applications/audio/jackmix/default.nix | 35 -------- .../graphics/gimp/plugins/default.nix | 2 +- pkgs/applications/graphics/hugin/default.nix | 4 +- .../networking/ids/daq/default.nix | 6 +- .../networking/ids/snort/default.nix | 12 +-- .../networking/iptraf-ng/default.nix | 44 ---------- .../git-and-tools/git-hub/default.nix | 30 +++---- .../version-management/subversion/default.nix | 16 +--- pkgs/applications/video/smplayer/default.nix | 8 +- .../build-support/build-fhs-chrootenv/env.nix | 7 -- pkgs/data/fonts/symbola/default.nix | 9 +- .../ruby/bundler-env/default-gem-config.nix | 7 +- pkgs/development/libraries/glpk/default.nix | 4 +- .../development/libraries/libdnet/default.nix | 4 +- .../libraries/libunwind/native.nix | 17 ++++ .../development/libraries/ncurses/default.nix | 24 ++++-- .../development/libraries/ncurses/gcc-5.patch | 46 ++++++++++ pkgs/development/libraries/neon/default.nix | 5 +- .../development/libraries/openssl/1.0.2.x.nix | 84 +++++++++++++++++++ .../development/libraries/openssl/default.nix | 4 +- pkgs/development/web/iojs/default.nix | 36 -------- .../development/web/nodejs/default-arch.patch | 24 ------ pkgs/development/web/nodejs/default.nix | 7 +- pkgs/development/web/nodejs/no-xcode.patch | 21 +++++ pkgs/development/web/nodejs/pkg-libpath.patch | 13 --- pkgs/development/web/nodejs/v0_10.nix | 2 +- pkgs/misc/jackaudio/jack1.nix | 3 +- pkgs/misc/urbit/default.nix | 42 ---------- pkgs/os-specific/linux/kernel/linux-3.14.nix | 4 +- .../os-specific/linux/miraclecast/default.nix | 26 ------ pkgs/os-specific/linux/nvidiabl/default.nix | 2 - .../linux/nvidiabl/linux4compat.patch | 22 ----- pkgs/os-specific/linux/syslinux/default.nix | 3 +- .../os-specific/linux/syslinux/gcc5-fix.patch | 26 ++++++ pkgs/os-specific/linux/systemd/default.nix | 3 +- pkgs/servers/mail/opensmtpd/default.nix | 7 +- pkgs/servers/mail/opensmtpd/extras.nix | 79 ----------------- pkgs/servers/mail/opensmtpd/proc_path.diff | 76 ----------------- pkgs/stdenv/linux/default.nix | 9 +- pkgs/tools/filesystems/duff/default.nix | 19 +++-- .../tools/graphics/enblend-enfuse/default.nix | 10 +-- pkgs/tools/misc/heatseeker/default.nix | 28 ------- pkgs/tools/networking/openssh/default.nix | 6 +- .../openssh/openssh-6.9p1-security-7.0.patch | 65 ++++++++++++++ pkgs/top-level/all-packages.nix | 48 ++++------- pkgs/top-level/go-packages.nix | 20 ----- pkgs/top-level/perl-packages.nix | 10 +-- 53 files changed, 385 insertions(+), 652 deletions(-) delete mode 100644 pkgs/applications/audio/jackmix/default.nix delete mode 100644 pkgs/applications/networking/iptraf-ng/default.nix create mode 100644 pkgs/development/libraries/libunwind/native.nix create mode 100644 pkgs/development/libraries/ncurses/gcc-5.patch create mode 100644 pkgs/development/libraries/openssl/1.0.2.x.nix delete mode 100644 pkgs/development/web/iojs/default.nix delete mode 100644 pkgs/development/web/nodejs/default-arch.patch delete mode 100644 pkgs/development/web/nodejs/pkg-libpath.patch delete mode 100644 pkgs/misc/urbit/default.nix delete mode 100644 pkgs/os-specific/linux/miraclecast/default.nix delete mode 100644 pkgs/os-specific/linux/nvidiabl/linux4compat.patch create mode 100644 pkgs/os-specific/linux/syslinux/gcc5-fix.patch delete mode 100644 pkgs/servers/mail/opensmtpd/extras.nix delete mode 100644 pkgs/servers/mail/opensmtpd/proc_path.diff delete mode 100644 pkgs/tools/misc/heatseeker/default.nix create mode 100644 pkgs/tools/networking/openssh/openssh-6.9p1-security-7.0.patch diff --git a/doc/haskell-users-guide.md b/doc/haskell-users-guide.md index 446f08eb697c..b06a81e5b36a 100644 --- a/doc/haskell-users-guide.md +++ b/doc/haskell-users-guide.md @@ -666,27 +666,6 @@ to find out the store path of the system's zlib library. Now, you can The same thing applies to `cabal configure`, of course, if you're building with `cabal-install` instead of Stack. -## Creating statically linked binaries - -There are two levels of static linking. The first option is to configure the -build with the Cabal flag `--disable-executable-dynamic`. In Nix expressions, -this can be achieved by setting the attribute: - - enableSharedExecutables = false; - -That gives you a binary with statically linked Haskell libraries and -dynamically linked system libraries. - -To link both Haskell libraries and system libraries statically, the additional -flags `--ghc-option=-optl=-static --ghc-option=-optl=-pthread` need to be used. -In Nix, this is accomplished with: - - configureFlags = [ "--ghc-option=-optl=-static" "--ghc-option=-optl=-pthread" ]; - -It's important to realize, however, that most system libraries in Nix are built -as shared libraries only, i.e. there is just no static library available that -Cabal could link! - # Other resources diff --git a/lib/maintainers.nix b/lib/maintainers.nix index 071a4d45ba23..121fca951642 100644 --- a/lib/maintainers.nix +++ b/lib/maintainers.nix @@ -144,7 +144,6 @@ jwilberding = "Jordan Wilberding "; jzellner = "Jeff Zellner "; kamilchm = "Kamil Chmielewski "; - kampfschlaefer = "Arnold Krille "; khumba = "Bryan Gardiner "; kkallio = "Karn Kallio "; koral = "Koral "; @@ -180,7 +179,6 @@ meditans = "Carlo Nucera "; meisternu = "Matt Miemiec "; michelk = "Michel Kuhlmann "; - michaelpj = "Michael Peyton Jones "; mirdhyn = "Merlin Gaillard "; mschristiansen = "Mikkel Christiansen "; modulistic = "Pablo Costa "; diff --git a/nixos/modules/services/mail/opensmtpd.nix b/nixos/modules/services/mail/opensmtpd.nix index a1cfd84365a2..a3e50b422920 100644 --- a/nixos/modules/services/mail/opensmtpd.nix +++ b/nixos/modules/services/mail/opensmtpd.nix @@ -46,17 +46,6 @@ in { is left empty, the OpenSMTPD server will not start. ''; }; - - procPackages = mkOption { - type = types.listOf types.path; - default = []; - description = '' - Packages to search for filters, tables, queues, and schedulers. - - Add OpenSMTPD-extras here if you want to use the filters, etc. from - that package. - ''; - }; }; }; @@ -83,19 +72,12 @@ in { }; }; - systemd.services.opensmtpd = let - procEnv = pkgs.buildEnv { - name = "opensmtpd-procs"; - paths = [ opensmtpd ] ++ cfg.procPackages; - pathsToLink = [ "/libexec/opensmtpd" ]; - }; - in { + systemd.services.opensmtpd = { wantedBy = [ "multi-user.target" ]; wants = [ "network.target" ]; after = [ "network.target" ]; preStart = "mkdir -p /var/spool"; serviceConfig.ExecStart = "${opensmtpd}/sbin/smtpd -d -f ${conf} ${args}"; - environment.OPENSMTPD_PROC_PATH = "${procEnv}/libexec/opensmtpd"; }; environment.systemPackages = [ (pkgs.runCommand "opensmtpd-sendmail" {} '' diff --git a/nixos/modules/services/networking/networkmanager.nix b/nixos/modules/services/networking/networkmanager.nix index 8370eca21e52..adbc6099c95a 100644 --- a/nixos/modules/services/networking/networkmanager.nix +++ b/nixos/modules/services/networking/networkmanager.nix @@ -71,10 +71,11 @@ let ${coreutils}/bin/rm -f $tmp $tmp.ns ''; + # pre-up and pre-down hooks were added in NM 0.9.10, but we still use 0.9.0 dispatcherTypesSubdirMap = { "basic" = ""; - "pre-up" = "pre-up.d/"; - "pre-down" = "pre-down.d/"; + /*"pre-up" = "pre-up.d/"; + "pre-down" = "pre-down.d/";*/ }; in { diff --git a/nixos/modules/tasks/network-interfaces.nix b/nixos/modules/tasks/network-interfaces.nix index 03e647b1b1e7..9ffede48bf52 100644 --- a/nixos/modules/tasks/network-interfaces.nix +++ b/nixos/modules/tasks/network-interfaces.nix @@ -59,7 +59,7 @@ let # place the interface which is named after the device at the beginning. wlanListDeviceFirst = device: interfaces: if hasAttr device interfaces - then mapAttrsToList (n: v: v//{_iName=n;}) (filterAttrs (n: _: n==device) interfaces) ++ mapAttrsToList (n: v: v//{_iName=n;}) (filterAttrs (n: _: n!=device) interfaces) + then [{"${device}"=interfaces.device; _iName=device;}] ++ mapAttrsToList (n: v: v//{_iName=n;}) (filterAttrs (n: _: n!=device) interfaces) else mapAttrsToList (n: v: v // {_iName = n;}) interfaces; # udev script that configures a physical wlan device and adds virtual interfaces diff --git a/pkgs/applications/audio/audacity/default.nix b/pkgs/applications/audio/audacity/default.nix index 67ec6b5a419e..6f25693f734e 100644 --- a/pkgs/applications/audio/audacity/default.nix +++ b/pkgs/applications/audio/audacity/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl, wxGTK, pkgconfig, gettext, gtk, glib, zlib, perl, intltool, libogg, libvorbis, libmad, alsaLib, libsndfile, soxr, flac, lame, - expat, libid3tag, ffmpeg, soundtouch /*, portaudio - given up fighting their portaudio.patch */ + expat, libid3tag, ffmpeg /*, portaudio - given up fighting their portaudio.patch */ }: stdenv.mkDerivation rec { @@ -19,13 +19,11 @@ stdenv.mkDerivation rec { rm -r lib-src-rm/ ''; - configureFlags = "--with-libsamplerate"; - buildInputs = [ pkgconfig gettext wxGTK gtk expat alsaLib libsndfile soxr libid3tag - ffmpeg libmad lame libvorbis flac soundtouch - ]; #ToDo: detach sbsms + ffmpeg libmad lame libvorbis flac + ]; #ToDo: soundtouch, detach sbsms dontDisableStatic = true; doCheck = true; diff --git a/pkgs/applications/audio/jackmix/default.nix b/pkgs/applications/audio/jackmix/default.nix deleted file mode 100644 index 8176a3404702..000000000000 --- a/pkgs/applications/audio/jackmix/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ stdenv, fetchurl, pkgs, jack ? pkgs.libjack2 }: - -stdenv.mkDerivation rec { - name = "jackmix-0.5.2"; - src = fetchurl { - url = https://github.com/kampfschlaefer/jackmix/archive/v0.5.2.tar.gz; - sha256 = "18f5v7g66mgarhs476frvayhch7fy4nyjf2xivixc061ipn0m82j"; - }; - - buildInputs = [ - pkgs.pkgconfig - pkgs.scons - pkgs.kde4.qt4 - pkgs.lash - jack - ]; - - buildPhase = '' - scons - ''; - installPhase = '' - mkdir -p $out/bin - cp jackmix/jackmix $out/bin - ''; - - meta = { - description = "Matrix-Mixer for the Jack-Audio-connection-Kit"; - homepage = http://www.arnoldarts.de/jackmix/; - license = stdenv.lib.licenses.gpl2; - maintainers = [ stdenv.lib.maintainers.kampfschlaefer ]; - platforms = stdenv.lib.platforms.linux; - }; -} - - diff --git a/pkgs/applications/graphics/gimp/plugins/default.nix b/pkgs/applications/graphics/gimp/plugins/default.nix index 702911fee744..ea638de7925d 100644 --- a/pkgs/applications/graphics/gimp/plugins/default.nix +++ b/pkgs/applications/graphics/gimp/plugins/default.nix @@ -245,7 +245,7 @@ rec { /* =============== simple script files ==================== */ - # also have a look at enblend-enfuse in all-packages.nix + # also have a look at enblendenfuse in all-packages.nix exposureBlend = scriptDerivation { name = "exposure-blend"; src = fetchurl { diff --git a/pkgs/applications/graphics/hugin/default.nix b/pkgs/applications/graphics/hugin/default.nix index b11ed1a99df7..88912cbda55d 100644 --- a/pkgs/applications/graphics/hugin/default.nix +++ b/pkgs/applications/graphics/hugin/default.nix @@ -1,7 +1,7 @@ { stdenv, cmake, fetchurl, gnumake, pkgconfig , boost, gettext, tclap, wxGTK , freeglut, glew, libXi, libXmu, mesa -, autopanosiftc, enblend-enfuse, exiv2, ilmbase, lensfun, libpng, libtiff +, autopanosiftc, enblendenfuse, exiv2, ilmbase, lensfun, libpng, libtiff , openexr, panotools, perlPackages }: @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { # commandline tools needed by the hugin batch processor # you may have to tell hugin (in the preferences) where these binaries reside - propagatedUserEnvPackages = [ autopanosiftc enblend-enfuse gnumake + propagatedUserEnvPackages = [ autopanosiftc enblendenfuse gnumake perlPackages.ImageExifTool ]; diff --git a/pkgs/applications/networking/ids/daq/default.nix b/pkgs/applications/networking/ids/daq/default.nix index 9339bfef6e03..c4a82966238a 100644 --- a/pkgs/applications/networking/ids/daq/default.nix +++ b/pkgs/applications/networking/ids/daq/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl, flex, bison, libpcap, libdnet, libnfnetlink, libnetfilter_queue}: +{stdenv, fetchurl, flex, bison, libpcap}: stdenv.mkDerivation rec { name = "daq-2.0.5"; @@ -9,9 +9,7 @@ stdenv.mkDerivation rec { sha256 = "0vdwb0r9kdlgj4g0i0swafbc7qik0zmks17mhqji8cl7hpdva13p"; }; - buildInputs = [ flex bison libpcap libdnet libnfnetlink libnetfilter_queue]; - - configureFlags = "--enable-nfq-module=yes --with-dnet-includes=${libdnet}/includes --with-dnet-libraries=${libdnet}/lib"; + buildInputs = [ flex bison libpcap ]; meta = { description = "Data AcQuisition library (DAQ), for packet I/O"; diff --git a/pkgs/applications/networking/ids/snort/default.nix b/pkgs/applications/networking/ids/snort/default.nix index 62c784a7fb79..ea7e09626994 100644 --- a/pkgs/applications/networking/ids/snort/default.nix +++ b/pkgs/applications/networking/ids/snort/default.nix @@ -1,4 +1,4 @@ -{stdenv, makeWrapper, fetchurl, libpcap, pcre, libdnet, daq, zlib, flex, bison}: +{stdenv, fetchurl, libpcap, pcre, libdnet, daq, zlib, flex, bison}: stdenv.mkDerivation rec { version = "2.9.7.2"; @@ -10,15 +10,7 @@ stdenv.mkDerivation rec { sha256 = "1gmlrh9ygpd5h6nnrr4090wk5n2yq2yrvwi7q6xbm6lxj4rcamyv"; }; - buildInputs = [ makeWrapper libpcap pcre libdnet daq zlib flex bison ]; - - enableParallelBuilding = true; - - configureFlags = "--disable-static-daq --enable-control-socket --with-daq-includes=${daq}/includes --with-daq-libraries=${daq}/lib --dynamic-preprocessor-lib-dir $out/lib/snort_dynamicpreprocessor/ --dynamic-engine-lib-dir $out/lib/snort_dynamicengine"; - - postInstall = '' - wrapProgram $out/bin/snort --add-flags "--daq-dir ${daq}/lib/daq" - ''; + buildInputs = [ libpcap pcre libdnet daq zlib flex bison ]; meta = { description = "Network intrusion prevention and detection system (IDS/IPS)"; diff --git a/pkgs/applications/networking/iptraf-ng/default.nix b/pkgs/applications/networking/iptraf-ng/default.nix deleted file mode 100644 index 368d78a36f90..000000000000 --- a/pkgs/applications/networking/iptraf-ng/default.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ stdenv, fetchurl, ncurses }: - -stdenv.mkDerivation rec { - version = "1.1.4"; - name = "iptraf-ng-${version}"; - - src = fetchurl { - url = "https://fedorahosted.org/releases/i/p/iptraf-ng/${name}.tar.gz"; - sha256 = "02gb8z9h2s6s1ybyikywz7jgb1mafdx88hijfasv3khcgkq0q53r"; - }; - - buildInputs = [ ncurses ]; - - configurePhase = '' - ./configure --prefix=$out/usr --sysconfdir=$out/etc \ - --localstatedir=$out/var --sbindir=$out/bin - ''; - - meta = { - description = "A console-based network monitoring utility (fork of iptraf)"; - longDescription = '' - IPTraf-ng is a console-based network monitoring utility. IPTraf-ng - gathers data like TCP connection packet and byte counts, interface - statistics and activity indicators, TCP/UDP traffic breakdowns, and LAN - station packet and byte counts. IPTraf-ng features include an IP traffic - monitor which shows TCP flag information, packet and byte counts, ICMP - details, OSPF packet types, and oversized IP packet warnings; interface - statistics showing IP, TCP, UDP, ICMP, non-IP and other IP packet counts, - IP checksum errors, interface activity and packet size counts; a TCP and - UDP service monitor showing counts of incoming and outgoing packets for - common TCP and UDP application ports, a LAN statistics module that - discovers active hosts and displays statistics about their activity; TCP, - UDP and other protocol display filters so you can view just the traffic - you want; logging; support for Ethernet, FDDI, ISDN, SLIP, PPP, and - loopback interfaces; and utilization of the built-in raw socket interface - of the Linux kernel, so it can be used on a wide variety of supported - network cards. - ''; - homepage = https://fedorahosted.org/iptraf-ng/; - license = stdenv.lib.licenses.gpl2; - platforms = stdenv.lib.platforms.linux; - maintainers = [ stdenv.lib.maintainers.devhell ]; - }; -} diff --git a/pkgs/applications/version-management/git-and-tools/git-hub/default.nix b/pkgs/applications/version-management/git-and-tools/git-hub/default.nix index e657215f2cd5..e47d2569b109 100644 --- a/pkgs/applications/version-management/git-and-tools/git-hub/default.nix +++ b/pkgs/applications/version-management/git-and-tools/git-hub/default.nix @@ -1,7 +1,7 @@ { stdenv, fetchFromGitHub, docutils, python }: let version = "0.9.0"; in -stdenv.mkDerivation rec { +stdenv.mkDerivation { name = "git-hub-${version}"; src = fetchFromGitHub { @@ -11,6 +11,20 @@ stdenv.mkDerivation rec { owner = "sociomantic"; }; + meta = with stdenv.lib; { + inherit version; + description = "Git command line interface to GitHub"; + longDescription = '' + A simple command line interface to GitHub, enabling most useful GitHub + tasks (like creating and listing pull request or issues) to be accessed + directly through the Git command line. + ''; + homepage = https://github.com/sociomantic/git-hub; + license = licenses.gpl3Plus; + platforms = with platforms; linux; + maintainers = with maintainers; [ nckx ]; + }; + buildInputs = [ python ]; nativeBuildInputs = [ docutils ]; @@ -27,18 +41,4 @@ stdenv.mkDerivation rec { # Remove inert ftdetect vim plugin and a README that's a man page subset: rm -r $out/share/{doc,vim} ''; - - meta = with stdenv.lib; { - inherit version; - inherit (src.meta) homepage; - description = "Git command line interface to GitHub"; - longDescription = '' - A simple command line interface to GitHub, enabling most useful GitHub - tasks (like creating and listing pull request or issues) to be accessed - directly through the Git command line. - ''; - license = licenses.gpl3Plus; - platforms = platforms.linux; - maintainers = with maintainers; [ nckx ]; - }; } diff --git a/pkgs/applications/version-management/subversion/default.nix b/pkgs/applications/version-management/subversion/default.nix index f563bebd9db8..db29360c9ecb 100644 --- a/pkgs/applications/version-management/subversion/default.nix +++ b/pkgs/applications/version-management/subversion/default.nix @@ -8,7 +8,6 @@ , stdenv, fetchurl, apr, aprutil, zlib, sqlite , apacheHttpd ? null, expat, swig ? null, jdk ? null, python ? null, perl ? null , sasl ? null, serf ? null -, branch ? "1.9" }: assert bdbSupport -> aprutil.bdbSupport; @@ -16,26 +15,15 @@ assert httpServer -> apacheHttpd != null; assert pythonBindings -> swig != null && python != null; assert javahlBindings -> jdk != null && perl != null; -let - config = { - "1.9".ver_min = "2"; - "1.9".sha1 = "fb9db3b7ddf48ae37aa8785872301b59bfcc7017"; - - "1.8".ver_min = "14"; - "1.8".sha1 = "0698efc58373e7657f6dd3ce13cab7b002ffb497"; - }; -in -assert builtins.hasAttr branch config; - stdenv.mkDerivation (rec { - version = "${branch}." + config.${branch}.ver_min; + version = "1.9.2"; name = "subversion-${version}"; src = fetchurl { url = "mirror://apache/subversion/${name}.tar.bz2"; - inherit (config.${branch}) sha1; + sha1 = "fb9db3b7ddf48ae37aa8785872301b59bfcc7017"; }; buildInputs = [ zlib apr aprutil sqlite ] diff --git a/pkgs/applications/video/smplayer/default.nix b/pkgs/applications/video/smplayer/default.nix index d56ef9649679..22935064c4b4 100644 --- a/pkgs/applications/video/smplayer/default.nix +++ b/pkgs/applications/video/smplayer/default.nix @@ -1,16 +1,16 @@ -{ stdenv, fetchurl, qt5 }: +{ stdenv, fetchurl, qt4 }: stdenv.mkDerivation rec { - name = "smplayer-15.9.0"; + name = "smplayer-14.9.0.6690"; src = fetchurl { url = "mirror://sourceforge/smplayer/${name}.tar.bz2"; - sha256 = "1yx6kikaj9v5aj8aavvrcklx283wl6wrnpl905hjc7v03kgp1ac5"; + sha256 = "0nmw69kg8rqvl9icyx1r1v1pyxg6560363l0kyqyja18j79a3j2y"; }; patches = [ ./basegui.cpp.patch ]; - buildInputs = [ qt5.script ]; + buildInputs = [ qt4 ]; preConfigure = '' makeFlags="PREFIX=$out" diff --git a/pkgs/build-support/build-fhs-chrootenv/env.nix b/pkgs/build-support/build-fhs-chrootenv/env.nix index a2ac8288e8ec..b659655f74b9 100644 --- a/pkgs/build-support/build-fhs-chrootenv/env.nix +++ b/pkgs/build-support/build-fhs-chrootenv/env.nix @@ -182,12 +182,6 @@ let setupLibDirs = if isTargetBuild then setupLibDirs_target else setupLibDirs_multi; - setupIncludeDir = '' - if [ -x "${staticUsrProfileTarget}/include" ] - then - ln -s "${staticUsrProfileTarget}/include" - fi - ''; # the target profile is the actual profile that will be used for the chroot setupTargetProfile = '' @@ -198,7 +192,6 @@ let cd usr ${linkProfile staticUsrProfileTarget} ${setupLibDirs} - ${setupIncludeDir} cd .. rm -rf usr/etc usr/var ''; diff --git a/pkgs/data/fonts/symbola/default.nix b/pkgs/data/fonts/symbola/default.nix index 253fd9cd3e98..5b2113dc57e8 100644 --- a/pkgs/data/fonts/symbola/default.nix +++ b/pkgs/data/fonts/symbola/default.nix @@ -5,7 +5,11 @@ stdenv.mkDerivation rec { src = fetchurl { url = "http://users.teilar.gr/~g1951d/Symbola.zip"; - sha256 = "1lfs2j816332ysvpb5ibj2gwpmyqyispqdl7skkshf2gra18hmhd"; + sha256 = "07bczpl3vqdpg2gakfddhzzgpb6v2wpasv7rwqxkyg9yd9lmbr0s"; + }; + docs_pdf = fetchurl { + url = "http://users.teilar.gr/~g1951d/Symbola.pdf"; + sha256 = "1zmq1ijl0k5hrc6vpa2xp9n1x2zrrd7ng3jwc9yf0qsi3pmkpk0p"; }; buildInputs = [ unzip ]; @@ -20,7 +24,8 @@ stdenv.mkDerivation rec { mkdir -p "$out/doc/${name}" cp -v Symbola.docx "$out/doc/${name}/" - cp -v Symbola.pdf "$out/doc/${name}/" + cp -v Symbola.htm "$out/doc/${name}/" + cp -v "$docs_pdf" "$out/doc/${name}/${docs_pdf.name}" ''; meta = { diff --git a/pkgs/development/interpreters/ruby/bundler-env/default-gem-config.nix b/pkgs/development/interpreters/ruby/bundler-env/default-gem-config.nix index 3ae74057a54f..b4e04f6ec904 100644 --- a/pkgs/development/interpreters/ruby/bundler-env/default-gem-config.nix +++ b/pkgs/development/interpreters/ruby/bundler-env/default-gem-config.nix @@ -20,7 +20,7 @@ { lib, fetchurl, writeScript, ruby, libxml2, libxslt, python, stdenv, which , libiconv, postgresql, v8_3_16_14, clang, sqlite, zlib, imagemagick , pkgconfig , ncurses, xapian, gpgme, utillinux, fetchpatch, tzdata, icu, libffi -, cmake, libssh2, openssl, mysql, darwin +, cmake, libssh2, openssl, mysql }: let @@ -70,7 +70,6 @@ in "--with-exslt-lib=${libxslt}/lib" "--with-exslt-include=${libxslt}/include" ] ++ lib.optional stdenv.isDarwin "--with-iconv-dir=${libiconv}"; - buildInputs = lib.optional stdenv.isDarwin darwin.libobjc; }; pg = attrs: { @@ -120,10 +119,6 @@ in ''; }; - unf_ext = attrs: { - buildInputs = lib.optional stdenv.isDarwin darwin.libobjc; - }; - xapian-ruby = attrs: { # use the system xapian buildInputs = [ xapian pkgconfig zlib ]; diff --git a/pkgs/development/libraries/glpk/default.nix b/pkgs/development/libraries/glpk/default.nix index d4ff7d9603f6..2b1a5b571ef0 100644 --- a/pkgs/development/libraries/glpk/default.nix +++ b/pkgs/development/libraries/glpk/default.nix @@ -1,11 +1,11 @@ { fetchurl, stdenv }: stdenv.mkDerivation rec { - name = "glpk-4.56"; + name = "glpk-4.52.1"; src = fetchurl { url = "mirror://gnu/glpk/${name}.tar.gz"; - sha256 = "0syzix6qvpn0fzp08c84c8snansf1cam5vd0dk2w91mz2c85d18h"; + sha256 = "0nz9ngmx23c8gbjr8l8ygnfaanxj2mwbl8awpg630bgrkxdnhc9j"; }; doCheck = true; diff --git a/pkgs/development/libraries/libdnet/default.nix b/pkgs/development/libraries/libdnet/default.nix index 8911539d7b02..2bdeffb204d8 100644 --- a/pkgs/development/libraries/libdnet/default.nix +++ b/pkgs/development/libraries/libdnet/default.nix @@ -10,9 +10,9 @@ stdenv.mkDerivation { sha1 = "71302be302e84fc19b559e811951b5d600d976f8"; }; - buildInputs = [ automake autoconf libtool ]; + configureFlags = [ "--enable-shared" ]; # shared libs required by hyenae - CFLAGS="-fPIC"; + buildInputs = [ automake autoconf libtool ]; # .so endings are missing (quick and dirty fix) postInstall = '' diff --git a/pkgs/development/libraries/libunwind/native.nix b/pkgs/development/libraries/libunwind/native.nix new file mode 100644 index 000000000000..6ce485ecaec0 --- /dev/null +++ b/pkgs/development/libraries/libunwind/native.nix @@ -0,0 +1,17 @@ +{ stdenv }: + +assert stdenv.isDarwin; + +stdenv.mkDerivation { + name = "libunwind-native"; + + unpackPhase = ":"; + dontBuild = true; + + installPhase = '' + mkdir -p $out/lib + cat /usr/lib/system/libunwind.dylib > $out/lib/libunwind.dylib + ''; + + meta.platforms = stdenv.lib.platforms.darwin; +} diff --git a/pkgs/development/libraries/ncurses/default.nix b/pkgs/development/libraries/ncurses/default.nix index a76bba24c62f..517410051581 100644 --- a/pkgs/development/libraries/ncurses/default.nix +++ b/pkgs/development/libraries/ncurses/default.nix @@ -1,37 +1,38 @@ -{ lib, stdenv, fetchurl, pkgconfig, libtool +{ lib, stdenv, fetchurl , mouseSupport ? false , unicode ? true , gpm + +# Extra Options +, abiVersion ? "5" }: stdenv.mkDerivation rec { - name = "ncurses-6.0"; + name = "ncurses-5.9"; src = fetchurl { url = "mirror://gnu/ncurses/${name}.tar.gz"; - sha256 = "0q3jck7lna77z5r42f13c4xglc7azd19pxfrjrpgp2yf615w4lgm"; + sha256 = "0fsn7xis81za62afan0vvm38bvgzg5wfmv1m86flqcj0nj7jjilh"; }; + # gcc-5.patch should be removed after 5.9 + patches = [ ./gcc-5.patch ]; + configureFlags = [ "--with-shared" - "--with-cxx-shared" - "--with-libtool" "--without-debug" - "--enable-overwrite" # Needed for proper header installation "--enable-pc-files" "--enable-symlinks" ] ++ lib.optional unicode "--enable-widec"; - nativeBuildInputs = [ pkgconfig libtool ]; buildInputs = lib.optional (mouseSupport && stdenv.isLinux) gpm; preConfigure = '' configureFlagsArray+=("--includedir=$out/include") export PKG_CONFIG_LIBDIR="$out/lib/pkgconfig" mkdir -p "$PKG_CONFIG_LIBDIR" - configureFlagsArray+=("--with-pkg-config-libdir=$PKG_CONFIG_LIBDIR") '' + lib.optionalString stdenv.isCygwin '' sed -i -e 's,LIB_SUFFIX="t,LIB_SUFFIX=",' configure ''; @@ -68,6 +69,7 @@ stdenv.mkDerivation rec { for dylibtype in so dll dylib; do if [ -e "$out/lib/lib''${lib}$suffix.$dylibtype" ]; then ln -svf lib''${lib}$suffix.$dylibtype $out/lib/lib$lib$newsuffix.$dylibtype + ln -svf lib''${lib}$suffix.$dylibtype.${abiVersion} $out/lib/lib$lib$newsuffix.$dylibtype.${abiVersion} fi done for statictype in a dll.a la; do @@ -80,6 +82,10 @@ stdenv.mkDerivation rec { done ''; + preFixup = '' + rm $out/lib/*.a + ''; + meta = { description = "Free software emulation of curses in SVR4 and more"; @@ -106,6 +112,6 @@ stdenv.mkDerivation rec { passthru = { ldflags = "-lncurses"; - inherit unicode; + inherit unicode abiVersion; }; } diff --git a/pkgs/development/libraries/ncurses/gcc-5.patch b/pkgs/development/libraries/ncurses/gcc-5.patch new file mode 100644 index 000000000000..2448229b88e1 --- /dev/null +++ b/pkgs/development/libraries/ncurses/gcc-5.patch @@ -0,0 +1,46 @@ +https://bugs.gentoo.org/545114 + +extracted from the upstream change (which had many unrelated commits in one) + +From 97bb4678dc03e753290b39bbff30ba2825df9517 Mon Sep 17 00:00:00 2001 +From: "Thomas E. Dickey" +Date: Sun, 7 Dec 2014 03:10:09 +0000 +Subject: [PATCH] ncurses 5.9 - patch 20141206 + ++ modify MKlib_gen.sh to work around change in development version of + gcc introduced here: + https://gcc.gnu.org/ml/gcc-patches/2014-06/msg02185.html + https://gcc.gnu.org/ml/gcc-patches/2014-07/msg00236.html + (reports by Marcus Shawcroft, Maohui Lei). + +diff --git a/ncurses/base/MKlib_gen.sh b/ncurses/base/MKlib_gen.sh +index d8cc3c9..b91398c 100755 +--- a/ncurses/base/MKlib_gen.sh ++++ b/ncurses/base/MKlib_gen.sh +@@ -474,11 +474,22 @@ sed -n -f $ED1 \ + -e 's/gen_$//' \ + -e 's/ / /g' >>$TMP + ++cat >$ED1 < $ED2 ++cat $ED2 >$TMP ++ + $preprocessor $TMP 2>/dev/null \ +-| sed \ +- -e 's/ / /g' \ +- -e 's/^ //' \ +- -e 's/_Bool/NCURSES_BOOL/g' \ ++| sed -f $ED1 \ + | $AWK -f $AW2 \ + | sed -f $ED3 \ + | sed \ diff --git a/pkgs/development/libraries/neon/default.nix b/pkgs/development/libraries/neon/default.nix index 0ca64c9bb076..ffc409d271e0 100644 --- a/pkgs/development/libraries/neon/default.nix +++ b/pkgs/development/libraries/neon/default.nix @@ -14,12 +14,11 @@ let in stdenv.mkDerivation rec { - version = "0.30.1"; - name = "neon-${version}"; + name = "neon-0.29.6"; src = fetchurl { url = "http://www.webdav.org/neon/${name}.tar.gz"; - sha256 = "1pawhk02x728xn396a1kcivy9gqm94srmgad6ymr9l0qvk02dih0"; + sha256 = "0hzbjqdx1z8zw0vmbknf159wjsxbcq8ii0wgwkqhxj3dimr0nr4w"; }; patches = optionals stdenv.isDarwin [ ./0.29.6-darwin-fix-configure.patch ]; diff --git a/pkgs/development/libraries/openssl/1.0.2.x.nix b/pkgs/development/libraries/openssl/1.0.2.x.nix new file mode 100644 index 000000000000..28254cb390d4 --- /dev/null +++ b/pkgs/development/libraries/openssl/1.0.2.x.nix @@ -0,0 +1,84 @@ +{ stdenv, fetchurl, perl +, withCryptodev ? false, cryptodevHeaders }: + +with stdenv.lib; +let + opensslCrossSystem = attrByPath [ "openssl" "system" ] + (throw "openssl needs its platform name cross building" null) + stdenv.cross; +in +stdenv.mkDerivation rec { + name = "openssl-1.0.2d"; + + src = fetchurl { + urls = [ + "http://www.openssl.org/source/${name}.tar.gz" + "http://openssl.linux-mirror.org/source/${name}.tar.gz" + ]; + sha1 = "d01d17b44663e8ffa6a33a5a30053779d9593c3d"; + }; + + patches = optional stdenv.isCygwin ./1.0.1-cygwin64.patch; + + nativeBuildInputs = [ perl ]; + buildInputs = stdenv.lib.optional withCryptodev cryptodevHeaders; + + # On x86_64-darwin, "./config" misdetects the system as + # "darwin-i386-cc". So specify the system type explicitly. + configureScript = + if stdenv.system == "x86_64-darwin" then "./Configure darwin64-x86_64-cc" + else if stdenv.system == "x86_64-solaris" then "./Configure solaris64-x86_64-gcc" + else "./config"; + + configureFlags = [ + "shared" + "--libdir=lib" + "--openssldir=etc/ssl" + ] ++ stdenv.lib.optionals withCryptodev [ + "-DHAVE_CRYPTODEV" + "-DUSE_CRYPTODEV_DIGESTS" + ]; + + makeFlags = [ + "MANDIR=$(out)/share/man" + ]; + + # Parallel building is broken in OpenSSL. + enableParallelBuilding = false; + + postInstall = '' + # If we're building dynamic libraries, then don't install static + # libraries. + if [ -n "$(echo $out/lib/*.so $out/lib/*.dylib $out/lib/*.dll)" ]; then + rm "$out/lib/"*.a + fi + + # remove dependency on Perl at runtime + rm -r $out/etc/ssl/misc $out/bin/c_rehash + ''; + + postFixup = '' + # Check to make sure we don't depend on perl + if grep -r '${perl}' $out; then + echo "Found an erroneous dependency on perl ^^^" >&2 + exit 1 + fi + ''; + + crossAttrs = { + preConfigure='' + # It's configure does not like --build or --host + export configureFlags="${concatStringsSep " " (configureFlags ++ [ opensslCrossSystem ])}" + ''; + + configureScript = "./Configure"; + }; + + meta = { + homepage = http://www.openssl.org/; + description = "A cryptographic library that implements the SSL and TLS protocols"; + platforms = stdenv.lib.platforms.all; + maintainers = [ stdenv.lib.maintainers.simons ]; + priority = 10; # resolves collision with ‘man-pages’ + }; +} diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix index 31bd7fb2d673..ca3e7999f9be 100644 --- a/pkgs/development/libraries/openssl/default.nix +++ b/pkgs/development/libraries/openssl/default.nix @@ -8,14 +8,14 @@ let stdenv.cross; in stdenv.mkDerivation rec { - name = "openssl-1.0.2d"; + name = "openssl-1.0.1p"; src = fetchurl { urls = [ "http://www.openssl.org/source/${name}.tar.gz" "http://openssl.linux-mirror.org/source/${name}.tar.gz" ]; - sha256 = "671c36487785628a703374c652ad2cebea45fa920ae5681515df25d9f2c9a8c8"; + sha1 = "9d1977cc89242cd11471269ece2ed4650947c046"; }; outputs = [ "out" "man" ]; diff --git a/pkgs/development/web/iojs/default.nix b/pkgs/development/web/iojs/default.nix deleted file mode 100644 index a44a6d6c6c4a..000000000000 --- a/pkgs/development/web/iojs/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ stdenv, fetchurl, python, utillinux, openssl, http-parser, zlib, libuv }: - -let - version = "3.1.0"; - inherit (stdenv.lib) optional maintainers licenses platforms; -in stdenv.mkDerivation { - name = "iojs-${version}"; - - src = fetchurl { - url = "https://iojs.org/dist/v${version}/iojs-v${version}.tar.gz"; - sha256 = "15qh5pscg3588hyf4yfhma34gjkg87v5i4xzxj804g6m52m6y727"; - }; - - prePatch = '' - sed -e 's|^#!/usr/bin/env python$|#!${python}/bin/python|g' -i configure - ''; - - configureFlags = [ "--shared-openssl" "--shared-http-parser" "--shared-zlib" "--shared-libuv" ]; - - # iojs has --enable-static but no --disable-static. Automatically adding --disable-static - # causes configure to fail, so don't add --disable-static. - dontDisableStatic = true; - - buildInputs = [ python openssl http-parser zlib libuv ] ++ (optional stdenv.isLinux utillinux); - setupHook = ../nodejs/setup-hook.sh; - - passthru.interpreterName = "iojs"; - - meta = { - description = "A friendly fork of Node.js with an open governance model"; - homepage = https://iojs.org/; - license = licenses.mit; - platforms = platforms.linux; - maintainers = [ maintainers.havvy ]; - }; -} diff --git a/pkgs/development/web/nodejs/default-arch.patch b/pkgs/development/web/nodejs/default-arch.patch deleted file mode 100644 index 3c7eb1014dee..000000000000 --- a/pkgs/development/web/nodejs/default-arch.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -Naur a/tools/gyp/pylib/gyp/xcode_emulation.py b/tools/gyp/pylib/gyp/xcode_emulation.py ---- a/tools/gyp/pylib/gyp/xcode_emulation.py 2014-01-23 06:05:51.000000000 +0100 -+++ b/tools/gyp/pylib/gyp/xcode_emulation.py 2014-02-04 17:49:48.000000000 +0100 -@@ -1018,12 +1033,16 @@ - # Since the value returned by this function is only used when ARCHS is not - # set, then on iOS we return "i386", as the default xcode project generator - # does not set ARCHS if it is not set in the .gyp file. -- if self.isIOS: -+ -+ try: -+ if self.isIOS: -+ return 'i386' -+ version, build = self._XcodeVersion() -+ if version >= '0500': -+ return 'x86_64' - return 'i386' -- version, build = self._XcodeVersion() -- if version >= '0500': -+ except: - return 'x86_64' -- return 'i386' - - class MacPrefixHeader(object): - """A class that helps with emulating Xcode's GCC_PREFIX_HEADER feature. diff --git a/pkgs/development/web/nodejs/default.nix b/pkgs/development/web/nodejs/default.nix index 0f7f56dd5b37..440ed7aca924 100644 --- a/pkgs/development/web/nodejs/default.nix +++ b/pkgs/development/web/nodejs/default.nix @@ -38,13 +38,12 @@ in stdenv.mkDerivation { dontDisableStatic = true; prePatch = '' patchShebangs . - sed -i 's/raise.*No Xcode or CLT version detected.*/version = "7.0.0"/' tools/gyp/pylib/gyp/xcode_emulation.py ''; - patches = stdenv.lib.optionals stdenv.isDarwin [ ./no-xcode.patch ./pkg-libpath.patch ]; + patches = stdenv.lib.optional stdenv.isDarwin ./no-xcode.patch; - buildInputs = [ python which zlib libuv openssl python ] - ++ optionals stdenv.isLinux [ utillinux http-parser ] + buildInputs = [ python which http-parser zlib libuv openssl python ] + ++ (optional stdenv.isLinux utillinux) ++ optionals stdenv.isDarwin [ pkgconfig openssl libtool ]; setupHook = ./setup-hook.sh; diff --git a/pkgs/development/web/nodejs/no-xcode.patch b/pkgs/development/web/nodejs/no-xcode.patch index 244a55e9aebb..e88168b68a77 100644 --- a/pkgs/development/web/nodejs/no-xcode.patch +++ b/pkgs/development/web/nodejs/no-xcode.patch @@ -70,3 +70,24 @@ diff -Naur a/tools/gyp/pylib/gyp/xcode_emulation.py b/tools/gyp/pylib/gyp/xcode_ def AdjustLibraries(self, libraries, config_name=None): """Transforms entries like 'Cocoa.framework' in libraries into entries like +@@ -1018,12 +1033,16 @@ + # Since the value returned by this function is only used when ARCHS is not + # set, then on iOS we return "i386", as the default xcode project generator + # does not set ARCHS if it is not set in the .gyp file. +- if self.isIOS: ++ ++ try: ++ if self.isIOS: ++ return 'i386' ++ version, build = self._XcodeVersion() ++ if version >= '0500': ++ return 'x86_64' + return 'i386' +- version, build = self._XcodeVersion() +- if version >= '0500': ++ except: + return 'x86_64' +- return 'i386' + + class MacPrefixHeader(object): + """A class that helps with emulating Xcode's GCC_PREFIX_HEADER feature. diff --git a/pkgs/development/web/nodejs/pkg-libpath.patch b/pkgs/development/web/nodejs/pkg-libpath.patch deleted file mode 100644 index 8ad94c0e3e2f..000000000000 --- a/pkgs/development/web/nodejs/pkg-libpath.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/configure b/configure -index d199975..66d903b 100755 ---- a/configure -+++ b/configure -@@ -734,7 +734,7 @@ def configure_library(lib, output): - # libpath needs to be provided ahead libraries - if pkg_libpath: - output['libraries'] += ( -- filter(None, map(str.strip, pkg_cflags.split('-L')))) -+ pkg_libpath.split()) - - default_libs = getattr(options, shared_lib + '_libname') - default_libs = map('-l{0}'.format, default_libs.split(',')) diff --git a/pkgs/development/web/nodejs/v0_10.nix b/pkgs/development/web/nodejs/v0_10.nix index 47de2e72d403..bf19ba646fd7 100644 --- a/pkgs/development/web/nodejs/v0_10.nix +++ b/pkgs/development/web/nodejs/v0_10.nix @@ -42,7 +42,7 @@ in stdenv.mkDerivation { patchShebangs . ''; - patches = stdenv.lib.optionals stdenv.isDarwin [ ./default-arch.patch ./no-xcode.patch ]; + patches = stdenv.lib.optional stdenv.isDarwin ./no-xcode.patch; postPatch = stdenv.lib.optionalString stdenv.isDarwin '' (cd tools/gyp; patch -Np1 -i ${../../python-modules/gyp/no-darwin-cflags.patch}) diff --git a/pkgs/misc/jackaudio/jack1.nix b/pkgs/misc/jackaudio/jack1.nix index 4250efcb6a29..1c5c78548f5b 100644 --- a/pkgs/misc/jackaudio/jack1.nix +++ b/pkgs/misc/jackaudio/jack1.nix @@ -27,8 +27,7 @@ stdenv.mkDerivation rec { ''; nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ optAlsaLib optDb optLibffado optCelt ]; - propagatedBuildInputs = [ optLibuuid ]; + buildInputs = [ optAlsaLib optDb optLibuuid optLibffado optCelt ]; meta = with stdenv.lib; { description = "JACK audio connection kit"; diff --git a/pkgs/misc/urbit/default.nix b/pkgs/misc/urbit/default.nix deleted file mode 100644 index e4049f07897a..000000000000 --- a/pkgs/misc/urbit/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ stdenv, fetchgit, gcc, gmp, libsigsegv, openssl, automake, autoconf, ragel, - cmake, re2c, libtool, ncurses, perl, zlib, python }: - -stdenv.mkDerivation rec { - - name = "urbit-${version}"; - version = "2015.09.26"; - - src = fetchgit { - url = "https://github.com/urbit/urbit.git"; - rev = "c9592664c797b2dd74f26886528656f8a7058640"; - sha256 = "0sgrxnmpqh54mgar81wlb6gff8c0pc24p53xwxr448g5shvnzjx9"; - }; - - buildInputs = with stdenv.lib; [ - gcc gmp libsigsegv openssl automake autoconf ragel cmake re2c libtool - ncurses perl zlib python - ]; - - configurePhase = '' - : - ''; - - buildPhase = '' - sed -i 's/-lcurses/-lncurses/' Makefile - mkdir -p $out - cp -r . $out/ - cd $out - make - ''; - - installPhase = '' - : - ''; - - meta = with stdenv.lib; { - description = "an operating function"; - homepage = http://urbit.org/preview/~2015.9.25/materials; - license = licenses.mit; - maintainers = with maintainers; [ mudri ]; - }; -} diff --git a/pkgs/os-specific/linux/kernel/linux-3.14.nix b/pkgs/os-specific/linux/kernel/linux-3.14.nix index 4a18072d7534..5ea214c9eb35 100644 --- a/pkgs/os-specific/linux/kernel/linux-3.14.nix +++ b/pkgs/os-specific/linux/kernel/linux-3.14.nix @@ -1,13 +1,13 @@ { stdenv, fetchurl, perl, buildLinux, ... } @ args: import ./generic.nix (args // rec { - version = "3.14.54"; + version = "3.14.53"; # Remember to update grsecurity! extraMeta.branch = "3.14"; src = fetchurl { url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz"; - sha256 = "0jjl7xx2mkkhy3yg3mza2h7ysz48qcn0z475jldfw4fh87ajlfig"; + sha256 = "0zqaqa7gs895p521c82jggak9zlmiwmkfarh2ykvh423sxjbvs5i"; }; features.iwlwifi = true; diff --git a/pkgs/os-specific/linux/miraclecast/default.nix b/pkgs/os-specific/linux/miraclecast/default.nix deleted file mode 100644 index 3d5a76144af5..000000000000 --- a/pkgs/os-specific/linux/miraclecast/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, udev, systemd, glib, readline }: - -with stdenv.lib; -stdenv.mkDerivation rec { - name = "miraclecast-0.0-git-20151002"; - - src = fetchFromGitHub { - owner = "albfan"; - repo = "miraclecast"; - rev = "30b8c2d22391423f76ba582aaaa1e0936869103a"; - sha256 = "0i076n76kq64fayc7v06gr1853pk5r6ms86m57vd1xsjd0r9wyxd"; - }; - - # INFO: It is important to list 'systemd' first as for now miraclecast - # links against a customized systemd. Otherwise, a systemd package from - # a propagatedBuildInput could take precedence. - buildInputs = [ systemd autoreconfHook pkgconfig udev glib readline ]; - - meta = { - homepage = https://github.com/albfan/miraclecast; - description = "Connect external monitors via Wi-Fi"; - license = licenses.lgpl21Plus; - maintainers = with maintainers; [ tstrobel ]; - platforms = platforms.linux; - }; -} diff --git a/pkgs/os-specific/linux/nvidiabl/default.nix b/pkgs/os-specific/linux/nvidiabl/default.nix index a6797608664f..a5a43926e045 100644 --- a/pkgs/os-specific/linux/nvidiabl/default.nix +++ b/pkgs/os-specific/linux/nvidiabl/default.nix @@ -8,8 +8,6 @@ stdenv.mkDerivation { sha256 = "1c7ar39wc8jpqh67sw03lwnyp0m9l6dad469ybqrgcywdiwxspwj"; }; - patches = [ ./linux4compat.patch ]; - preConfigure = '' sed -i 's|/sbin/depmod|#/sbin/depmod|' Makefile ''; diff --git a/pkgs/os-specific/linux/nvidiabl/linux4compat.patch b/pkgs/os-specific/linux/nvidiabl/linux4compat.patch deleted file mode 100644 index ad8236a2b630..000000000000 --- a/pkgs/os-specific/linux/nvidiabl/linux4compat.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 2bf6f08b2492cc04a2c39fdcb22a2d0c18963d1c Mon Sep 17 00:00:00 2001 -From: sonic414 -Date: Tue, 28 Apr 2015 19:30:15 +0530 -Subject: [PATCH] strnicmp to strncasecmp in Linux 4.0.0 - ---- - nvidiabl-module.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/nvidiabl-module.c b/nvidiabl-module.c -index b789ea4..b306579 100644 ---- a/nvidiabl-module.c -+++ b/nvidiabl-module.c -@@ -214,7 +214,7 @@ static int __init nvidiabl_init(void) - #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39) - - for (iii = 0 ; iii < sizeof(backlight_type_ids) ; iii++) { -- if (strnicmp(bl_type, backlight_type_ids[iii].id, sizeof(bl_type)) == 0) { -+ if (strncasecmp(bl_type, backlight_type_ids[iii].id, sizeof(bl_type)) == 0) { - props.type = backlight_type_ids[iii].type; - printk(KERN_INFO "nvidiabl: backlight type is %s\n", backlight_type_ids[iii].id); - } diff --git a/pkgs/os-specific/linux/syslinux/default.nix b/pkgs/os-specific/linux/syslinux/default.nix index 93e5d591a9d9..3c01516b0815 100644 --- a/pkgs/os-specific/linux/syslinux/default.nix +++ b/pkgs/os-specific/linux/syslinux/default.nix @@ -8,7 +8,8 @@ stdenv.mkDerivation rec { sha256 = "03l5iifwlg1wyb4yh98i0b7pd4j55a1c9y74q1frs47a5dnrilr6"; }; - patches = [ ./perl-deps.patch ]; + # gcc5-fix should be in 6.04+, so remove if it fails to apply. + patches = [ ./perl-deps.patch ./gcc5-fix.patch ]; buildInputs = [ nasm perl libuuid ]; diff --git a/pkgs/os-specific/linux/syslinux/gcc5-fix.patch b/pkgs/os-specific/linux/syslinux/gcc5-fix.patch new file mode 100644 index 000000000000..dc44b1880583 --- /dev/null +++ b/pkgs/os-specific/linux/syslinux/gcc5-fix.patch @@ -0,0 +1,26 @@ +diff --git a/com32/include/menu.h b/com32/include/menu.h +index bc0182f..b0251e4 100644 +--- a/com32/include/menu.h ++++ b/com32/include/menu.h +@@ -195,7 +195,7 @@ void local_cursor_enable(bool); + + static inline int my_isspace(char c) + { +- return (unsigned char)c <= ' '; ++ return (unsigned char)c <= ' ' || (unsigned char)c == '\x7f'; + } + + int my_isxdigit(char c); +diff --git a/com32/menu/readconfig.c b/com32/menu/readconfig.c +index b7814be..a433fad 100644 +--- a/com32/menu/readconfig.c ++++ b/com32/menu/readconfig.c +@@ -299,7 +299,7 @@ static char *copy_sysappend_string(char *dst, const char *src) + char c; + + while ((c = *src++)) { +- if (c <= ' ' && c == '\x7f') { ++ if (my_isspace(c)) { + if (!was_space) + *dst++ = '_'; + was_space = true; diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix index b7f70ec3b117..4c9e0475b94e 100644 --- a/pkgs/os-specific/linux/systemd/default.nix +++ b/pkgs/os-specific/linux/systemd/default.nix @@ -3,7 +3,6 @@ , glib, kbd, libxslt, coreutils, libgcrypt , kexectools, libmicrohttpd, linuxHeaders , pythonPackages ? null, pythonSupport ? false -, enableKDbus ? false }: assert stdenv.isLinux; @@ -61,7 +60,7 @@ stdenv.mkDerivation rec { "--with-sysvinit-path=" "--with-sysvrcnd-path=" "--with-rc-local-script-path-stop=/etc/halt.local" - ] ++ stdenv.lib.optional enableKDbus "--enable-kdbus"; + ]; preConfigure = '' diff --git a/pkgs/servers/mail/opensmtpd/default.nix b/pkgs/servers/mail/opensmtpd/default.nix index 2fd3f0421b97..a95a5d81ce95 100644 --- a/pkgs/servers/mail/opensmtpd/default.nix +++ b/pkgs/servers/mail/opensmtpd/default.nix @@ -4,18 +4,16 @@ stdenv.mkDerivation rec { name = "opensmtpd-${version}"; - version = "5.7.1p1"; + version = "5.4.5p1"; nativeBuildInputs = [ autoconf automake libtool bison ]; buildInputs = [ libasr libevent zlib openssl db pam ]; src = fetchurl { url = "http://www.opensmtpd.org/archives/${name}.tar.gz"; - sha256 = "67e9dd9682ca8c181e84e66c76245a4a8f6205834f915a2c021cdfeb22049e3a"; + sha256 = "15sicrpqsgg72igdckkwpmbgrapcjbfjsdrvm0zl8z13kgp6r4ks"; }; - patches = [ ./proc_path.diff ]; - configureFlags = [ "--sysconfdir=/etc" "--localstatedir=/var" @@ -26,7 +24,6 @@ stdenv.mkDerivation rec { "--with-privsep-user=smtpd" "--with-queue-user=smtpq" "--with-ca-file=/etc/ssl/certs/ca-certificates.crt" - "--with-libevent-dir=${libevent}" ]; installFlags = [ diff --git a/pkgs/servers/mail/opensmtpd/extras.nix b/pkgs/servers/mail/opensmtpd/extras.nix deleted file mode 100644 index 0123d19bf3fa..000000000000 --- a/pkgs/servers/mail/opensmtpd/extras.nix +++ /dev/null @@ -1,79 +0,0 @@ -{ stdenv, fetchurl, openssl, libevent, libasr, - python2, pkgconfig, lua5, perl, mariadb, postgresql, sqlite, hiredis }: -stdenv.mkDerivation rec { - name = "opensmtpd-extras-${version}"; - version = "5.7.1"; - - src = fetchurl { - url = "https://www.opensmtpd.org/archives/${name}.tar.gz"; - sha256 = "1kld4hxgz792s0cb2gl7m2n618ikzqkj88w5dhaxdrxg4x2c4vdm"; - }; - - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ openssl libevent - libasr python2 lua5 perl mariadb postgresql sqlite hiredis ]; - - configureFlags = [ - "--sysconfdir=/etc" - "--localstatedir=/var" - "--with-privsep-user=smtpd" - "--with-libevent-dir=${libevent}" - - "--with-filter-clamav" - "--with-filter-dkim-signer" - "--with-filter-dnsbl" - "--with-filter-monkey" - "--with-filter-pause" - "--with-filter-regex" - "--with-filter-spamassassin" - "--with-filter-stub" - "--with-filter-trace" - "--with-filter-void" - "--with-queue-null" - "--with-queue-ram" - "--with-queue-stub" - "--with-table-ldap" - "--with-table-socketmap" - "--with-table-passwd" - "--with-table-stub" - "--with-scheduler-ram" - "--with-scheduler-stub" - - ] ++ stdenv.lib.optional (python2 != null) [ - "--with-python=${python2}" - "--with-filter-python" - "--with-queue-python" - "--with-table-python" - "--with-scheduler-python" - - ] ++ stdenv.lib.optional (lua5 != null) [ - "--with-lua=${pkgconfig}" - "--with-filter-lua" - - ] ++ stdenv.lib.optional (perl != null) [ - "--with-perl=${perl}" - "--with-filter-perl" - - ] ++ stdenv.lib.optional (mariadb != null) [ - "--with-table-mysql" - - ] ++ stdenv.lib.optional (postgresql != null) [ - "--with-table-postgres" - - ] ++ stdenv.lib.optional (sqlite != null) [ - "--with-table-sqlite" - - ] ++ stdenv.lib.optional (hiredis != null) [ - "--with-table-redis" - ]; - - NIX_CFLAGS_COMPILE = stdenv.lib.optional (hiredis != null) [ "-I${hiredis}/include/hiredis" ]; - - meta = with stdenv.lib; { - homepage = https://www.opensmtpd.org/; - description = "Extra plugins for the OpenSMTPD mail server"; - license = licenses.isc; - platforms = platforms.unix; - maintainers = with maintainers; [ gebner ]; - }; -} diff --git a/pkgs/servers/mail/opensmtpd/proc_path.diff b/pkgs/servers/mail/opensmtpd/proc_path.diff deleted file mode 100644 index 0e8eac0bb83b..000000000000 --- a/pkgs/servers/mail/opensmtpd/proc_path.diff +++ /dev/null @@ -1,76 +0,0 @@ -diff -Naur opensmtpd-5.7.1p1/smtpd/parse.y opensmtpd-5.7.1p1.patched/smtpd/parse.y ---- opensmtpd-5.7.1p1/smtpd/parse.y 2015-06-30 10:13:34.000000000 +0200 -+++ opensmtpd-5.7.1p1.patched/smtpd/parse.y 2015-09-26 08:41:17.012472516 +0200 -@@ -2519,13 +2519,19 @@ - { - struct filter_conf *f; - char *path; -+ const char *proc_path; - - if (dict_get(&conf->sc_filters, name)) { - yyerror("filter \"%s\" already defined", name); - return (NULL); - } - -- if (asprintf(&path, "%s/filter-%s", PATH_LIBEXEC, prog) == -1) { -+ proc_path = getenv("OPENSMTPD_PROC_PATH"); -+ if (proc_path == NULL) { -+ proc_path = PATH_LIBEXEC; -+ } -+ -+ if (asprintf(&path, "%s/filter-%s", proc_path, prog) == -1) { - yyerror("filter \"%s\" asprintf failed", name); - return (0); - } -diff -Naur opensmtpd-5.7.1p1/smtpd/smtpd.c opensmtpd-5.7.1p1.patched/smtpd/smtpd.c ---- opensmtpd-5.7.1p1/smtpd/smtpd.c 2015-06-30 10:13:34.000000000 +0200 -+++ opensmtpd-5.7.1p1.patched/smtpd/smtpd.c 2015-09-26 08:41:16.998472557 +0200 -@@ -854,6 +854,7 @@ - char path[PATH_MAX]; - char name[PATH_MAX]; - char *arg; -+ char *proc_path; - - if (strlcpy(name, conf, sizeof(name)) >= sizeof(name)) { - log_warnx("warn: %s-proc: conf too long", key); -@@ -864,7 +865,12 @@ - if (arg) - *arg++ = '\0'; - -- if (snprintf(path, sizeof(path), PATH_LIBEXEC "/%s-%s", key, name) >= -+ proc_path = getenv("OPENSMTPD_PROC_PATH"); -+ if (proc_path == NULL) { -+ proc_path = PATH_LIBEXEC; -+ } -+ -+ if (snprintf(path, sizeof(path), "%s/%s-%s", proc_path, key, name) >= - (ssize_t)sizeof(path)) { - log_warn("warn: %s-proc: exec path too long", key); - return (-1); -diff -Naur opensmtpd-5.7.1p1/smtpd/table.c opensmtpd-5.7.1p1.patched/smtpd/table.c ---- opensmtpd-5.7.1p1/smtpd/table.c 2015-06-30 10:13:34.000000000 +0200 -+++ opensmtpd-5.7.1p1.patched/smtpd/table.c 2015-09-26 08:41:17.005472536 +0200 -@@ -201,6 +201,7 @@ - struct table_backend *tb; - char buf[LINE_MAX]; - char path[LINE_MAX]; -+ const char *proc_path; - size_t n; - struct stat sb; - -@@ -215,8 +216,14 @@ - if (name && table_find(name, NULL)) - fatalx("table_create: table \"%s\" already defined", name); - -+ proc_path = getenv("OPENSMTPD_PROC_PATH"); -+ if (proc_path == NULL) { -+ proc_path = PATH_LIBEXEC; -+ } -+ - if ((tb = table_backend_lookup(backend)) == NULL) { -- if ((size_t)snprintf(path, sizeof(path), PATH_LIBEXEC "/table-%s", -+ if ((size_t)snprintf(path, sizeof(path), "%s/table-%s", -+ proc_path, - backend) >= sizeof(path)) { - fatalx("table_create: path too long \"" - PATH_LIBEXEC "/table-%s\"", backend); diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix index 2436181aa7ad..12fc3fed5a5a 100644 --- a/pkgs/stdenv/linux/default.nix +++ b/pkgs/stdenv/linux/default.nix @@ -210,9 +210,14 @@ rec { gmp = pkgs.gmp.override { stdenv = pkgs.makeStaticLibraries pkgs.stdenv; }; mpfr = pkgs.mpfr.override { stdenv = pkgs.makeStaticLibraries pkgs.stdenv; }; libmpc = pkgs.libmpc.override { stdenv = pkgs.makeStaticLibraries pkgs.stdenv; }; - isl_0_14 = pkgs.isl_0_14.override { stdenv = pkgs.makeStaticLibraries pkgs.stdenv; }; + isl_0_11 = pkgs.isl_0_11.override { stdenv = pkgs.makeStaticLibraries pkgs.stdenv; }; + cloog_0_18_0 = pkgs.cloog_0_18_0.override { + stdenv = pkgs.makeStaticLibraries pkgs.stdenv; + isl = isl_0_11; + }; gccPlain = pkgs.gcc.cc.override { - isl = isl_0_14; + isl = isl_0_11; + cloog = cloog_0_18_0; }; }; extraBuildInputs = [ stage2.pkgs.patchelf stage2.pkgs.paxctl ]; diff --git a/pkgs/tools/filesystems/duff/default.nix b/pkgs/tools/filesystems/duff/default.nix index 1c4d068c4c13..310153341669 100644 --- a/pkgs/tools/filesystems/duff/default.nix +++ b/pkgs/tools/filesystems/duff/default.nix @@ -1,14 +1,12 @@ { stdenv, fetchFromGitHub, autoreconfHook, gettext }: -# The last release (0.5.2) is more than 2 years old and lacks features like -D, -# limiting its usefulness. Upstream appears comatose if not dead. -let version = "2014-07-03"; in +let version = "0.5.2"; in stdenv.mkDerivation { name = "duff-${version}"; src = fetchFromGitHub { - sha256 = "1k2dx38pjzc5d624vw1cs5ipj9fprsm5vqv55agksc29m63lswnx"; - rev = "f26d4837768b062a3f98fa075c791d9c8a0bb75c"; + sha256 = "0yfm910wjj6z0f0cg68x59ykf4ql5m49apzy8sra00f8kv4lpn53"; + rev = version; repo = "duff"; owner = "elmindreda"; }; @@ -16,6 +14,10 @@ stdenv.mkDerivation { nativeBuildInputs = [ autoreconfHook gettext ]; preAutoreconf = '' + # duff is currently badly packaged, requiring us to do extra work here that + # should be done upstream. If that is ever fixed, this entire phase can be + # removed along with all buildInputs. + # gettexttize rightly refuses to run non-interactively: cp ${gettext}/bin/gettextize . substituteInPlace gettextize \ @@ -28,15 +30,14 @@ stdenv.mkDerivation { enableParallelBuilding = true; meta = with stdenv.lib; { - inherit version; description = "Quickly find duplicate files"; + homepage = http://duff.dreda.org/; + license = licenses.zlib; longDescription = '' Duff is a Unix command-line utility for quickly finding duplicates in a given set of files. ''; - homepage = http://duff.dreda.org/; - license = licenses.zlib; - platforms = platforms.all; maintainers = with maintainers; [ nckx ]; + platforms = with platforms; all; }; } diff --git a/pkgs/tools/graphics/enblend-enfuse/default.nix b/pkgs/tools/graphics/enblend-enfuse/default.nix index c967b73001c7..6b65d3df0d3f 100644 --- a/pkgs/tools/graphics/enblend-enfuse/default.nix +++ b/pkgs/tools/graphics/enblend-enfuse/default.nix @@ -1,24 +1,22 @@ { stdenv, fetchurl , boost, freeglut, glew, gsl, lcms2, libpng, libtiff, libxmi, mesa, vigra -, help2man, pkgconfig, perl }: +, pkgconfig, perl }: -let version = "4.1.4"; in stdenv.mkDerivation rec { - name = "enblend-enfuse-${version}"; + name = "enblend-enfuse-4.1.3"; src = fetchurl { url = "mirror://sourceforge/enblend/${name}.tar.gz"; - sha256 = "0208x01i129hqylmy6jh3krwdac47mx6fi8xccjm9h35c18c7xl5"; + sha256 = "1b7r1nnwaind0344ckwggy0ghl0ipbk9jzylsxcjfl05rnasw00w"; }; buildInputs = [ boost freeglut glew gsl lcms2 libpng libtiff libxmi mesa vigra ]; - nativeBuildInputs = [ help2man perl pkgconfig ]; + nativeBuildInputs = [ perl pkgconfig ]; enableParallelBuilding = true; meta = { - inherit version; homepage = http://enblend.sourceforge.net/; description = "Blends away the seams in a panoramic image mosaic using a multiresolution spline"; license = stdenv.lib.licenses.gpl2; diff --git a/pkgs/tools/misc/heatseeker/default.nix b/pkgs/tools/misc/heatseeker/default.nix deleted file mode 100644 index 0d85554c347d..000000000000 --- a/pkgs/tools/misc/heatseeker/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ stdenv, fetchFromGitHub, rustPlatform }: - -with rustPlatform; - -buildRustPackage rec { - name = "heatseeker-${version}"; - version = "1.3.0"; - - depsSha256 = "03jap7myf85xgx9270sws8x57nl04a1wx8szrk9qx24s9vnnjcnh"; - - src = fetchFromGitHub { - owner = "rschmitt"; - repo = "heatseeker"; - rev = "v${version}"; - sha256 = "1xdvwgmh9lwv82hv1qg82bjv2iplnvva6lzbg7dyhbszhv7rhkbl"; - }; - - # some tests require a tty, this variable turns them off for Travis CI, - # which we can also make use of - TRAVIS= "true"; - - meta = with stdenv.lib; { - description = "A general-purpose fuzzy selector"; - homepage = https://github.com/rschmitt/heatseeker; - license = stdenv.lib.licenses.mit; - maintainers = [ maintainers.michaelpj ]; - }; -} diff --git a/pkgs/tools/networking/openssh/default.nix b/pkgs/tools/networking/openssh/default.nix index 50d53bdff2cd..2004e453a0d9 100644 --- a/pkgs/tools/networking/openssh/default.nix +++ b/pkgs/tools/networking/openssh/default.nix @@ -17,11 +17,11 @@ let in with stdenv.lib; stdenv.mkDerivation rec { - name = "openssh-7.1p1"; + name = "openssh-6.9p1"; src = fetchurl { url = "mirror://openbsd/OpenSSH/portable/${name}.tar.gz"; - sha256 = "0a44mnr8bvw41zg83xh4sb55d8nds29j95gxvxk5qg863lnns2pw"; + sha256 = "1zkci5nbpb4frmzj2vr3kv9j47x2h72kvybcpr0d8mzk73sls1vf"; }; prePatch = optionalString hpnSupport @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { export NIX_LDFLAGS="$NIX_LDFLAGS -lgcc_s" ''; - patches = [ ./locale_archive.patch ]; + patches = [ ./locale_archive.patch ./openssh-6.9p1-security-7.0.patch]; buildInputs = [ zlib openssl libedit pkgconfig pam ] ++ optional withKerberos [ kerberos ]; diff --git a/pkgs/tools/networking/openssh/openssh-6.9p1-security-7.0.patch b/pkgs/tools/networking/openssh/openssh-6.9p1-security-7.0.patch new file mode 100644 index 000000000000..02e9eb3a9739 --- /dev/null +++ b/pkgs/tools/networking/openssh/openssh-6.9p1-security-7.0.patch @@ -0,0 +1,65 @@ +http://pkgs.fedoraproject.org/cgit/openssh.git/commit/openssh-6.9p1-security-7.0.patch?h=f22&id=4776fad91e7e1f626f33e8c240d0ccecd663554d + +diff --git a/sshpty.c b/sshpty.c +index 7bb7641..15da8c6 100644 +--- a/sshpty.c ++++ b/sshpty.c +@@ -1,4 +1,4 @@ +-/* $OpenBSD: sshpty.c,v 1.29 2014/09/03 18:55:07 djm Exp $ */ ++/* $OpenBSD: sshpty.c,v 1.30 2015/07/30 23:09:15 djm Exp $ */ + /* + * Author: Tatu Ylonen + * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland +@@ -197,7 +197,7 @@ pty_setowner(struct passwd *pw, const char *tty) + /* Determine the group to make the owner of the tty. */ + grp = getgrnam("tty"); + gid = (grp != NULL) ? grp->gr_gid : pw->pw_gid; +- mode = (grp != NULL) ? 0622 : 0600; ++ mode = (grp != NULL) ? 0620 : 0600; + + /* + * Change owner and mode of the tty as required. +diff --git a/monitor.c b/monitor.c +index b410965..f1b873d 100644 +--- a/monitor.c ++++ b/monitor.c +@@ -1084,9 +1084,7 @@ extern KbdintDevice sshpam_device; + int + mm_answer_pam_init_ctx(int sock, Buffer *m) + { +- + debug3("%s", __func__); +- authctxt->user = buffer_get_string(m, NULL); + sshpam_ctxt = (sshpam_device.init_ctx)(authctxt); + sshpam_authok = NULL; + buffer_clear(m); +@@ -1166,14 +1166,16 @@ mm_answer_pam_respond(int sock, Buffer *m) + int + mm_answer_pam_free_ctx(int sock, Buffer *m) + { ++ int r = sshpam_authok != NULL && sshpam_authok == sshpam_ctxt; + + debug3("%s", __func__); + (sshpam_device.free_ctx)(sshpam_ctxt); ++ sshpam_ctxt = sshpam_authok = NULL; + buffer_clear(m); + mm_request_send(sock, MONITOR_ANS_PAM_FREE_CTX, m); + auth_method = "keyboard-interactive"; + auth_submethod = "pam"; +- return (sshpam_authok == sshpam_ctxt); ++ return r; + } + #endif + +diff --git a/monitor_wrap.c b/monitor_wrap.c +index e6217b3..eac421b 100644 +--- a/monitor_wrap.c ++++ b/monitor_wrap.c +@@ -614,7 +614,6 @@ mm_sshpam_init_ctx(Authctxt *authctxt) + + debug3("%s", __func__); + buffer_init(&m); +- buffer_put_cstring(&m, authctxt->user); + mm_request_send(pmonitor->m_recvfd, MONITOR_REQ_PAM_INIT_CTX, &m); + debug3("%s: waiting for MONITOR_ANS_PAM_INIT_CTX", __func__); + mm_request_receive_expect(pmonitor->m_recvfd, MONITOR_ANS_PAM_INIT_CTX, &m); diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2623ffa6ac5e..c7008bd86c0a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -853,8 +853,6 @@ let gmic = callPackage ../tools/graphics/gmic { }; - heatseeker = callPackage ../tools/misc/heatseeker { }; - mathics = pythonPackages.mathics; mcrl = callPackage ../tools/misc/mcrl { }; @@ -1370,7 +1368,7 @@ let emv = callPackage ../tools/misc/emv { }; - enblend-enfuse = callPackage ../tools/graphics/enblend-enfuse { }; + enblendenfuse = callPackage ../tools/graphics/enblend-enfuse { }; encfs = callPackage ../tools/filesystems/encfs { }; @@ -3734,7 +3732,7 @@ let gambit = callPackage ../development/compilers/gambit { }; - gcc = gcc5; + gcc = gcc49; gcc_multi = if system == "x86_64-linux" then lowPrio ( @@ -4986,7 +4984,8 @@ let fetchurl = fetchurlBoot; }; - perl = perl522; + # Make perl522 the default once gnulib is updated to support it. + perl = perl520; php = php56; @@ -5842,7 +5841,7 @@ let aalib = callPackage ../development/libraries/aalib { }; - accelio = callPackage ../development/libraries/accelio { }; + accelio = callPackage ../development/libraries/accelio { stdenv = overrideCC stdenv gcc5; }; accountsservice = callPackage ../development/libraries/accountsservice { }; @@ -6350,8 +6349,7 @@ let gmp4 = callPackage ../development/libraries/gmp/4.3.2.nix { }; # required by older GHC versions gmp5 = callPackage ../development/libraries/gmp/5.1.x.nix { }; - gmp6 = callPackage ../development/libraries/gmp/6.x.nix { }; - gmp = gmp6; + gmp = gmp5; gmpxx = appendToName "with-cxx" (gmp.override { cxx = true; }); #GMP ex-satellite, so better keep it near gmp @@ -7405,9 +7403,11 @@ let libusbmuxd = callPackage ../development/libraries/libusbmuxd { }; libunwind = if stdenv.isDarwin - then darwin.libunwind + then libunwindNative else callPackage ../development/libraries/libunwind { }; + libunwindNative = callPackage ../development/libraries/libunwind/native.nix {}; + libuvVersions = recurseIntoAttrs (callPackage ../development/libraries/libuv { automake = automake113x; # fails with 14 inherit (darwin.apple_sdk.frameworks) ApplicationServices CoreServices; @@ -7781,6 +7781,14 @@ let }; }; + openssl_1_0_2 = callPackage ../development/libraries/openssl/1.0.2.x.nix { + fetchurl = fetchurlBoot; + cryptodevHeaders = linuxPackages.cryptodev.override { + fetchurl = fetchurlBoot; + onlyHeaders = true; + }; + }; + openwsman = callPackage ../development/libraries/openwsman {}; ortp = callPackage ../development/libraries/ortp { }; @@ -9068,7 +9076,6 @@ let openresty = callPackage ../servers/http/openresty { }; opensmtpd = callPackage ../servers/mail/opensmtpd { }; - opensmtpd-extras = callPackage ../servers/mail/opensmtpd/extras.nix { }; openxpki = callPackage ../servers/openxpki { }; @@ -10014,10 +10021,6 @@ let mingetty = callPackage ../os-specific/linux/mingetty { }; - miraclecast = callPackage ../os-specific/linux/miraclecast { - systemd = systemd.override { enableKDbus = true; }; - }; - module_init_tools = callPackage ../os-specific/linux/module-init-tools { }; aggregateModules = modules: @@ -10173,13 +10176,7 @@ let sysklogd = callPackage ../os-specific/linux/sysklogd { }; - syslinux = callPackage ../os-specific/linux/syslinux { - # Using GCC5 with 6.03 creates a broken isolinux.bin - # Make sure to test booting the livecd on a bios system - # if changing this override. - # nixos.tests.bootBiosCdrom is useful for this. - stdenv = overrideCC stdenv gcc48; - }; + syslinux = callPackage ../os-specific/linux/syslinux { }; sysstat = callPackage ../os-specific/linux/sysstat { }; @@ -11793,8 +11790,6 @@ let iptraf = callPackage ../applications/networking/iptraf { }; - iptraf-ng = callPackage ../applications/networking/iptraf-ng { }; - irssi = callPackage ../applications/networking/irc/irssi { }; irssi_fish = callPackage ../applications/networking/irc/irssi/fish { }; @@ -11815,9 +11810,6 @@ let jackmeter = callPackage ../applications/audio/jackmeter { }; - jackmix = callPackage ../applications/audio/jackmix { }; - jackmix_jack1 = jackmix.override { jack = jack1; }; - jalv = callPackage ../applications/audio/jalv { }; jedit = callPackage ../applications/editors/jedit { }; @@ -13946,7 +13938,6 @@ let libcanberra = libcanberra_kde; boost = boost155; kdelibs = kdeApps_15_08.kdelibs; - subversionClient = subversionClient.override { branch = "1.8"; }; } ../desktops/kde-4.14; @@ -14974,8 +14965,6 @@ let tvheadend = callPackage ../servers/tvheadend { }; - urbit = callPackage ../misc/urbit { }; - utf8proc = callPackage ../development/libraries/utf8proc { }; vault = goPackages.vault.bin // { outputs = [ "bin" ]; }; @@ -15135,7 +15124,6 @@ aliases = with self; rec { clangAnalyzer = clang-analyzer; # added 2015-02-20 cool-old-term = cool-retro-term; # added 2015-01-31 cv = progress; # added 2015-09-06 - enblendenfuse = enblend-enfuse; # 2015-09-30 exfat-utils = exfat; # 2015-09-11 firefoxWrapper = firefox-wrapper; fuse_exfat = exfat; # 2015-09-11 diff --git a/pkgs/top-level/go-packages.nix b/pkgs/top-level/go-packages.nix index ec9ac07fe9ae..2bf0a96a5aa1 100644 --- a/pkgs/top-level/go-packages.nix +++ b/pkgs/top-level/go-packages.nix @@ -679,26 +679,6 @@ let subPackages = [ "./" ]; # don't try to build test fixtures }; - git-lfs = buildFromGitHub { - rev = "v1.0.0"; - owner = "github"; - repo = "git-lfs"; - sha256 = "1zlg3rm5yxak6d88brffv1wpj0iq4qgzn6sgg8xn0pbnzxjd1284"; - - # Tests fail with 'lfstest-gitserver.go:46: main redeclared in this block' - excludedPackages = [ "test" ]; - - preBuild = '' - pushd go/src/github.com/github/git-lfs - go generate ./commands - popd - ''; - - postInstall = '' - rm -v $bin/bin/{man,script} - ''; - }; - glide = buildFromGitHub { rev = "0.5.0"; owner = "Masterminds"; diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index 1057be798df0..ead04c0f088d 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -715,15 +715,15 @@ let self = _self // overrides; _self = with self; { }; Cairo = buildPerlPackage rec { - name = "Cairo-1.106"; + name = "Cairo-1.105"; src = fetchurl { url = "mirror://cpan/authors/id/X/XA/XAOC/${name}.tar.gz"; - sha256 = "1i25kks408c54k2zxskvg54l5k3qadzm8n72ffga9jy7ic0h6j76"; + sha256 = "0im025wy1346w7b7hi6im08bfn6x4ma0cxmjz6xnk8riizm1s84q"; }; buildInputs = [ ExtUtilsDepends ExtUtilsPkgConfig pkgs.cairo ]; meta = { homepage = http://gtk2-perl.sourceforge.net/; - description = "Perl interface to the cairo 2D vector graphics library"; + description = "Perl interface to the cairo 2d vector graphics library"; maintainers = with maintainers; [ nckx ]; license = stdenv.lib.licenses.lgpl21Plus; }; @@ -4843,10 +4843,10 @@ let self = _self // overrides; _self = with self; { }; Glib = buildPerlPackage rec { - name = "Glib-1.314"; + name = "Glib-1.313"; src = fetchurl { url = "mirror://cpan/authors/id/X/XA/XAOC/${name}.tar.gz"; - sha256 = "13lhyksm7fgj6rgrgs06kr0hinbyhiq3lfr6gd2qal1j2w0rwzml"; + sha256 = "162g342bhzy2ca4xwk63j10q9jycsps0s8l8y8pda70m7zcmr7xj"; }; buildInputs = [ ExtUtilsDepends ExtUtilsPkgConfig pkgs.glib ]; meta = { From 1283e3da5d0bc4657677d40fa3cb117b66489ee5 Mon Sep 17 00:00:00 2001 From: Nikolay Amiantov Date: Wed, 7 Oct 2015 15:11:39 +0300 Subject: [PATCH 125/165] glibc_multi: fix ldd for 64-bit ELFs --- pkgs/development/libraries/glibc/multi.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/glibc/multi.nix b/pkgs/development/libraries/glibc/multi.nix index e0a9fa46b969..b5b4eabe9c74 100644 --- a/pkgs/development/libraries/glibc/multi.nix +++ b/pkgs/development/libraries/glibc/multi.nix @@ -23,7 +23,7 @@ runCommand "${nameVersion.name}-multi-${nameVersion.version}" cp -rs $glibc64/bin $out chmod u+w $out/bin rm $out/bin/ldd - sed -e "s|^RTLDLIST=.*$|RTLDLIST=\"$out/lib/ld-2.19.so $out/lib/32/ld-linux.so.2\"|g" \ + sed -e "s|^RTLDLIST=.*$|RTLDLIST=\"$out/lib/ld-linux-x86-64.so.2 $out/lib/32/ld-linux.so.2\"|g" \ $glibc64/bin/ldd > $out/bin/ldd chmod 555 $out/bin/ldd From 256438659c99af9cfab1739c90a92425453ce44f Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 7 Oct 2015 20:06:40 +0200 Subject: [PATCH 126/165] util-linux: Update to 2.27 This version is required by systemd 227. CVE-2015-5224 --- pkgs/os-specific/linux/util-linux/default.nix | 8 ++++--- .../rtcwake-search-PATH-for-shutdown.patch | 22 +++++++++---------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/pkgs/os-specific/linux/util-linux/default.nix b/pkgs/os-specific/linux/util-linux/default.nix index 7768875ca57f..d310a5d623a6 100644 --- a/pkgs/os-specific/linux/util-linux/default.nix +++ b/pkgs/os-specific/linux/util-linux/default.nix @@ -1,13 +1,15 @@ { stdenv, fetchurl, zlib, ncurses ? null, perl ? null, pam }: stdenv.mkDerivation rec { - name = "util-linux-2.26.2"; + name = "util-linux-2.27"; src = fetchurl { - url = "mirror://kernel/linux/utils/util-linux/v2.26/${name}.tar.xz"; - sha256 = "0rlnzmiqdannzf81fbh41541lrck63v9zhskm6h4i2jj8ahvsa8f"; + url = "mirror://kernel/linux/utils/util-linux/v2.27/${name}.tar.xz"; + sha256 = "1ivdx1bhjbakf77agm9dn3wyxia1wgz9lzxgd61zqxw3xzih9gzw"; }; + outputs = [ "out" "man" ]; + patches = [ ./rtcwake-search-PATH-for-shutdown.patch ]; diff --git a/pkgs/os-specific/linux/util-linux/rtcwake-search-PATH-for-shutdown.patch b/pkgs/os-specific/linux/util-linux/rtcwake-search-PATH-for-shutdown.patch index 92cb07d43834..68970c655f15 100644 --- a/pkgs/os-specific/linux/util-linux/rtcwake-search-PATH-for-shutdown.patch +++ b/pkgs/os-specific/linux/util-linux/rtcwake-search-PATH-for-shutdown.patch @@ -4,10 +4,10 @@ distros anyway). -- nckx -diff -Naur a/include/pathnames.h b/include/pathnames.h ---- a/include/pathnames.h 2014-09-16 14:37:06.138551680 +0200 -+++ b/include/pathnames.h 2015-01-01 20:41:02.510948314 +0100 -@@ -43,7 +43,7 @@ +diff -ru util-linux-2.27-orig/include/pathnames.h util-linux-2.27/include/pathnames.h +--- util-linux-2.27-orig/include/pathnames.h 2015-06-29 13:13:14.669847478 +0200 ++++ util-linux-2.27/include/pathnames.h 2015-10-07 20:09:17.401022602 +0200 +@@ -54,7 +54,7 @@ #define _PATH_INITTAB "/etc/inittab" #define _PATH_RC "/etc/rc" #define _PATH_REBOOT "/sbin/reboot" @@ -16,15 +16,15 @@ diff -Naur a/include/pathnames.h b/include/pathnames.h #define _PATH_SINGLE "/etc/singleboot" #define _PATH_SHUTDOWN_CONF "/etc/shutdown.conf" -diff -Naur a/sys-utils/rtcwake.c b/sys-utils/rtcwake.c ---- a/sys-utils/rtcwake.c 2014-10-24 11:21:20.447389309 +0200 -+++ b/sys-utils/rtcwake.c 2015-01-01 20:57:59.398911209 +0100 -@@ -582,7 +582,7 @@ +diff -ru util-linux-2.27-orig/sys-utils/rtcwake.c util-linux-2.27/sys-utils/rtcwake.c +--- util-linux-2.27-orig/sys-utils/rtcwake.c 2015-08-05 11:32:44.453821232 +0200 ++++ util-linux-2.27/sys-utils/rtcwake.c 2015-10-07 20:09:37.834032536 +0200 +@@ -576,7 +576,7 @@ + arg[i++] = "now"; arg[i] = NULL; - - if (!dryrun) { + if (!ctl.dryrun) { - execv(arg[0], arg); + execvp(arg[0], arg); - warn(_("failed to execute %s"), _PATH_SHUTDOWN); rc = EXIT_FAILURE; + } From 73f0d83858aaedcac16c7f7ce6a04209f3d3acf0 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 7 Oct 2015 21:48:30 +0200 Subject: [PATCH 127/165] systemd: Update to 227 --- nixos/modules/system/boot/systemd.nix | 2 +- pkgs/os-specific/linux/systemd/default.nix | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix index 34eda7247cdd..44871a459c18 100644 --- a/nixos/modules/system/boot/systemd.nix +++ b/nixos/modules/system/boot/systemd.nix @@ -100,7 +100,7 @@ let # Maintaining state across reboots. "systemd-random-seed.service" "systemd-backlight@.service" - "systemd-rfkill@.service" + "systemd-rfkill.service" # Hibernate / suspend. "hibernate.target" diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix index 4024555a0904..b4588e3d17f0 100644 --- a/pkgs/os-specific/linux/systemd/default.nix +++ b/pkgs/os-specific/linux/systemd/default.nix @@ -11,16 +11,18 @@ assert stdenv.isLinux; assert pythonSupport -> pythonPackages != null; stdenv.mkDerivation rec { - version = "226"; + version = "227"; name = "systemd-${version}"; src = fetchFromGitHub { owner = "NixOS"; repo = "systemd"; - rev = "16d61e9657b643cc25ff0538688eb870ce2dd4a5"; - sha256 = "07sc1x43j60d5jnps0d7bfka10fihnpgkdrfrh9iskgmc9qangjb"; + rev = "7d94d27801d20278103d8c146633fe81e06697d6"; + sha256 = "0cvzsrazqgbia3zajb0z4ik8myfil4bdy2c29qs6w93d6yvrjfkj"; }; + outputs = [ "out" "man" "doc" ]; + buildInputs = [ linuxHeaders pkgconfig intltool gperf libcap kmod xz pam acl /* cryptsetup */ libuuid m4 glib libxslt libgcrypt @@ -150,8 +152,6 @@ stdenv.mkDerivation rec { rm $out/lib/*.la - rm -rf $out/share/doc - # "kernel-install" shouldn't be used on NixOS. find $out -name "*kernel-install*" -exec rm {} \; ''; # */ From f4fb1d77538a4d4d75046b9ae7a98b97c6220bc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Thu, 15 Oct 2015 20:52:30 +0200 Subject: [PATCH 128/165] mesa: maintenance update 11.0.2 -> 11.0.3 --- pkgs/development/libraries/mesa/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix index 52268b9c3432..0e2d1af3a31b 100644 --- a/pkgs/development/libraries/mesa/default.nix +++ b/pkgs/development/libraries/mesa/default.nix @@ -22,7 +22,7 @@ else */ let - version = "11.0.2"; + version = "11.0.3"; # this is the default search path for DRI drivers driverLink = "/run/opengl-driver" + stdenv.lib.optionalString stdenv.isi686 "-32"; in @@ -36,7 +36,7 @@ stdenv.mkDerivation { "https://launchpad.net/mesa/trunk/${version}/+download/mesa-${version}.tar.xz" "ftp://ftp.freedesktop.org/pub/mesa/${version}/mesa-${version}.tar.xz" ]; - sha256 = "fce11fb27eb87adf1e620a76455d635c6136dfa49ae58c53b34ef8d0c7b7eae4"; + sha256 = "ab2992eece21adc23c398720ef8c6933cb69ea42e1b2611dc09d031e17e033d6"; }; prePatch = "patchShebangs ."; From fb1e994c0c48054ad1b78149ed07d33c4254f6eb Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Wed, 14 Oct 2015 22:39:30 -0700 Subject: [PATCH 129/165] ffmpeg: 2.7.2 -> 2.8.1 (close #10396) @vcunat removed 2.7 and 2.6. The global version of 2.6 was unused, and 2.7 -> 2.8 switch should be without problems by inspecting http://abi-laboratory.pro/tracker/timeline/ffmpeg/ (only ABI changes and symbol additions) --- pkgs/development/libraries/ffmpeg-full/default.nix | 4 ++-- pkgs/development/libraries/ffmpeg/2.6.nix | 7 ------- pkgs/development/libraries/ffmpeg/2.7.nix | 7 ------- pkgs/development/libraries/ffmpeg/2.8.nix | 7 +++++++ pkgs/top-level/all-packages.nix | 5 ++--- 5 files changed, 11 insertions(+), 19 deletions(-) delete mode 100644 pkgs/development/libraries/ffmpeg/2.6.nix delete mode 100644 pkgs/development/libraries/ffmpeg/2.7.nix create mode 100644 pkgs/development/libraries/ffmpeg/2.8.nix diff --git a/pkgs/development/libraries/ffmpeg-full/default.nix b/pkgs/development/libraries/ffmpeg-full/default.nix index 654741283f95..cecf4714b532 100644 --- a/pkgs/development/libraries/ffmpeg-full/default.nix +++ b/pkgs/development/libraries/ffmpeg-full/default.nix @@ -231,11 +231,11 @@ assert x11grabExtlib -> libX11 != null && libXv != null; stdenv.mkDerivation rec { name = "ffmpeg-full-${version}"; - version = "2.7.2"; + version = "2.8.1"; src = fetchurl { url = "https://www.ffmpeg.org/releases/ffmpeg-${version}.tar.bz2"; - sha256 = "1wlygd0jp34dk4qagi4h9psn4yk8zgyj7zy9lrpm5332mm87bsvw"; + sha256 = "1qk6g2h993i0wgs9d2p3ahdc5bqr03mp74bk6r1zj6pfinr5mvg2"; }; patchPhase = ''patchShebangs .''; diff --git a/pkgs/development/libraries/ffmpeg/2.6.nix b/pkgs/development/libraries/ffmpeg/2.6.nix deleted file mode 100644 index 60fc32e030e0..000000000000 --- a/pkgs/development/libraries/ffmpeg/2.6.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ callPackage, ... } @ args: - -callPackage ./generic.nix (args // rec { - version = "${branch}.3"; - branch = "2.6"; - sha256 = "1yqc3vm1xrwf866q262qd4nr9d6ifp4gg183pjdc4sl9np0rissr"; -}) diff --git a/pkgs/development/libraries/ffmpeg/2.7.nix b/pkgs/development/libraries/ffmpeg/2.7.nix deleted file mode 100644 index 105239c48c9c..000000000000 --- a/pkgs/development/libraries/ffmpeg/2.7.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ callPackage, ... } @ args: - -callPackage ./generic.nix (args // rec { - version = "${branch}.2"; - branch = "2.7"; - sha256 = "1wlygd0jp34dk4qagi4h9psn4yk8zgyj7zy9lrpm5332mm87bsvw"; -}) diff --git a/pkgs/development/libraries/ffmpeg/2.8.nix b/pkgs/development/libraries/ffmpeg/2.8.nix new file mode 100644 index 000000000000..e585ea14997f --- /dev/null +++ b/pkgs/development/libraries/ffmpeg/2.8.nix @@ -0,0 +1,7 @@ +{ callPackage, ... } @ args: + +callPackage ./generic.nix (args // rec { + version = "${branch}.1"; + branch = "2.8"; + sha256 = "1qk6g2h993i0wgs9d2p3ahdc5bqr03mp74bk6r1zj6pfinr5mvg2"; +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 49a8259e7648..9f4dd230163b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6158,12 +6158,11 @@ let ffmpeg_0_10 = callPackage ../development/libraries/ffmpeg/0.10.nix { }; ffmpeg_1_2 = callPackage ../development/libraries/ffmpeg/1.2.nix { }; ffmpeg_2_2 = callPackage ../development/libraries/ffmpeg/2.2.nix { }; - ffmpeg_2_6 = callPackage ../development/libraries/ffmpeg/2.6.nix { }; - ffmpeg_2_7 = callPackage ../development/libraries/ffmpeg/2.7.nix { }; + ffmpeg_2_8 = callPackage ../development/libraries/ffmpeg/2.8.nix { }; # Aliases ffmpeg_0 = ffmpeg_0_10; ffmpeg_1 = ffmpeg_1_2; - ffmpeg_2 = ffmpeg_2_7; + ffmpeg_2 = ffmpeg_2_8; ffmpeg = ffmpeg_2; ffmpeg-full = callPackage ../development/libraries/ffmpeg-full { From c49cae68039d6eeb1f0d2743ac280bc27fe22e40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Thu, 15 Oct 2015 21:30:35 +0200 Subject: [PATCH 130/165] Revert "patch sbcl-bootstrap for purity" This reverts commit 06eab94f1603620944dfcc6c64b5af8c194db75f. It doesn't even evaluate on Linux and the author doesn't react. --- pkgs/development/compilers/sbcl/bootstrap.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/development/compilers/sbcl/bootstrap.nix b/pkgs/development/compilers/sbcl/bootstrap.nix index f9b95b575b5f..43002aa72f57 100644 --- a/pkgs/development/compilers/sbcl/bootstrap.nix +++ b/pkgs/development/compilers/sbcl/bootstrap.nix @@ -40,7 +40,6 @@ stdenv.mkDerivation rec { installPhase = '' mkdir -p $out/bin cp -p src/runtime/sbcl $out/bin - install_name_tool -change /usr/lib/libgcc_s.1.dylib ${stdenv.libc}/lib/libgcc_s.10.5.dylib $out/bin/sbcl mkdir -p $out/share/sbcl cp -p src/runtime/sbcl $out/share/sbcl From 52ea05187a68826ac2c69fdb26d2ed38c05f9884 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Thu, 15 Oct 2015 21:46:13 +0200 Subject: [PATCH 131/165] snort: fix evaluation --- pkgs/applications/networking/ids/snort/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/networking/ids/snort/default.nix b/pkgs/applications/networking/ids/snort/default.nix index e6c45e7335f9..a55b80df2b22 100644 --- a/pkgs/applications/networking/ids/snort/default.nix +++ b/pkgs/applications/networking/ids/snort/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl, libpcap, pcre, libdnet, daq, zlib, flex, bison}: +{stdenv, fetchurl, libpcap, pcre, libdnet, daq, zlib, flex, bison, makeWrapper}: stdenv.mkDerivation rec { version = "2.9.7.2"; From 9b9d790c6cecb48228fa8321ee85156904ddb914 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Fri, 16 Oct 2015 16:45:26 -0700 Subject: [PATCH 132/165] jemalloc: 4.0.2 -> 4.0.3 --- pkgs/development/libraries/jemalloc/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/jemalloc/default.nix b/pkgs/development/libraries/jemalloc/default.nix index 4e13c9b1d937..746ebd2bfcdb 100644 --- a/pkgs/development/libraries/jemalloc/default.nix +++ b/pkgs/development/libraries/jemalloc/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl }: stdenv.mkDerivation rec { - name = "jemalloc-4.0.2"; + name = "jemalloc-4.0.3"; src = fetchurl { url = "http://www.canonware.com/download/jemalloc/${name}.tar.bz2"; - sha256 = "04a6iw9wiwiknd7v3l3i7vpmc5nvv52islnb1hz9idmdk259r2hd"; + sha256 = "1mpnfaniaybv8kh7yjqq2g595l2i08m7adg238k5igzf61n6ixzi"; }; meta = with stdenv.lib; { From 4318aede92abdf041418753cdbbcfc178da88b86 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Sat, 17 Oct 2015 11:54:03 -0700 Subject: [PATCH 133/165] nghttp2: 1.2.1 -> 1.3.4 --- pkgs/development/libraries/nghttp2/default.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/nghttp2/default.nix b/pkgs/development/libraries/nghttp2/default.nix index c4257fe97d28..5cd5f0cb6297 100644 --- a/pkgs/development/libraries/nghttp2/default.nix +++ b/pkgs/development/libraries/nghttp2/default.nix @@ -34,12 +34,12 @@ let in stdenv.mkDerivation rec { name = "${prefix}nghttp2-${version}"; - version = "1.2.1"; + version = "1.3.4"; # Don't use fetchFromGitHub since this needs a bootstrap curl src = fetchurl { url = "http://pub.wak.io/nixos/tarballs/nghttp2-${version}.tar.bz2"; - sha256 = "8027461a231d205394890b2fee34d1c3751e28e7d3f7c1ebc1b557993ea4045e"; + sha256 = "63c1d70e50f0c8514e261be88b66720df095269791aa008d76c09e0c3a4c085f"; }; # Configure script searches for a symbol which does not exist in jemalloc on Darwin @@ -66,6 +66,7 @@ stdenv.mkDerivation rec { (mkWith (optJemalloc != null) "jemalloc" null) (mkWith false "spdylay" null) (mkWith false "cython" null) + (mkWith false "mruby" null) ]; meta = with stdenv.lib; { From 50842f5ec13deb71656cede32c7e47da105cf413 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Sat, 17 Oct 2015 11:54:13 -0700 Subject: [PATCH 134/165] curl: 7.44.0 -> 7.45.0 --- pkgs/tools/networking/curl/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/networking/curl/default.nix b/pkgs/tools/networking/curl/default.nix index f9f638ec8136..14687817835a 100644 --- a/pkgs/tools/networking/curl/default.nix +++ b/pkgs/tools/networking/curl/default.nix @@ -16,11 +16,11 @@ assert scpSupport -> libssh2 != null; assert c-aresSupport -> c-ares != null; stdenv.mkDerivation rec { - name = "curl-7.44.0"; + name = "curl-7.45.0"; src = fetchurl { url = "http://curl.haxx.se/download/${name}.tar.bz2"; - sha256 = "050q6i20lbh7dyyhva2sbp8dbyp6sghlkbpvq2bvcasqwsx4298y"; + sha256 = "1slq5c0v9wa8hajgimhkxhvsrd07jmih8sa3gjsl597qp5k4w5b5"; }; # Zlib and OpenSSL must be propagated because `libcurl.la' contains From 2cfb8d11cfecef71c48308aea993d614b692afbc Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Sat, 17 Oct 2015 13:46:04 -0700 Subject: [PATCH 135/165] mariadb: 10.0.21 -> 10.1.8 Also try enabling parallel building again to see if the issue was fixed. --- pkgs/servers/sql/mariadb/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/servers/sql/mariadb/default.nix b/pkgs/servers/sql/mariadb/default.nix index 90372142704b..2f9c80c171c7 100644 --- a/pkgs/servers/sql/mariadb/default.nix +++ b/pkgs/servers/sql/mariadb/default.nix @@ -5,11 +5,11 @@ with stdenv.lib; stdenv.mkDerivation rec { name = "mariadb-${version}"; - version = "10.0.21"; + version = "10.1.8"; src = fetchurl { url = "https://downloads.mariadb.org/interstitial/mariadb-${version}/source/mariadb-${version}.tar.gz"; - sha256 = "0i9mzbn35f4lj4y1lqzgbavh5xyx18zfn0ks0nqzvppabkhk56jb"; + sha256 = "1yiv0161rkgll1yd9r1cb1wdx55rwynj8i623p6wjvda9536mgvw"; }; buildInputs = [ cmake ncurses openssl zlib pcre libxml2 boost judy bison libevent ] @@ -55,7 +55,7 @@ stdenv.mkDerivation rec { ]; # fails to find lex_token.h sometimes - enableParallelBuilding = false; + enableParallelBuilding = true; outputs = [ "out" "lib" ]; From e58996cba1f40760b8454af212523b4d8e89b52b Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Sat, 17 Oct 2015 14:14:34 -0700 Subject: [PATCH 136/165] mariadb: Add extra dependencies for 10.1 --- pkgs/servers/sql/mariadb/default.nix | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/pkgs/servers/sql/mariadb/default.nix b/pkgs/servers/sql/mariadb/default.nix index 2f9c80c171c7..3e5b9521accb 100644 --- a/pkgs/servers/sql/mariadb/default.nix +++ b/pkgs/servers/sql/mariadb/default.nix @@ -1,5 +1,7 @@ -{ stdenv, fetchurl, cmake, ncurses, zlib, openssl, pcre, boost, judy, bison, libxml2 -, libaio, libevent, groff, jemalloc, perl, fixDarwinDylibNames +{ stdenv, fetchurl, cmake, ncurses, zlib, xz, lzo, lz4, bzip2, snappy +, openssl, pcre, boost, judy, bison, libxml2 +, libaio, libevent, groff, jemalloc, cracklib, systemd, numactl, perl +, fixDarwinDylibNames }: with stdenv.lib; @@ -12,8 +14,10 @@ stdenv.mkDerivation rec { sha256 = "1yiv0161rkgll1yd9r1cb1wdx55rwynj8i623p6wjvda9536mgvw"; }; - buildInputs = [ cmake ncurses openssl zlib pcre libxml2 boost judy bison libevent ] - ++ stdenv.lib.optionals stdenv.isLinux [ jemalloc libaio ] + buildInputs = [ + cmake ncurses openssl zlib xz lzo lz4 bzip2 snappy + pcre libxml2 boost judy bison libevent cracklib + ] ++ stdenv.lib.optionals stdenv.isLinux [ jemalloc libaio systemd numactl ] ++ stdenv.lib.optionals stdenv.isDarwin [ perl fixDarwinDylibNames ]; patches = stdenv.lib.optional stdenv.isDarwin ./my_context_asm.patch; @@ -49,6 +53,8 @@ stdenv.mkDerivation rec { "-DWITH_PARTITION_STORAGE_ENGINE=1" "-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1" "-DWITHOUT_FEDERATED_STORAGE_ENGINE=1" + "-DSECURITY_HARDENED=ON" + "-DWITH_WSREP=ON" ] ++ stdenv.lib.optionals stdenv.isDarwin [ "-DWITHOUT_OQGRAPH_STORAGE_ENGINE=1" "-DWITHOUT_TOKUDB=1" From e8961181ea470b90de11ff5bc89affe03f543146 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Sun, 18 Oct 2015 09:07:20 +0200 Subject: [PATCH 137/165] gdk-pixbuf: security update 2.32.0 -> 2.32.1 CVE-2015-7674, fixes #10441. --- pkgs/development/libraries/gdk-pixbuf/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/gdk-pixbuf/default.nix b/pkgs/development/libraries/gdk-pixbuf/default.nix index 0971df78e667..daa674905330 100644 --- a/pkgs/development/libraries/gdk-pixbuf/default.nix +++ b/pkgs/development/libraries/gdk-pixbuf/default.nix @@ -3,14 +3,14 @@ let ver_maj = "2.32"; - ver_min = "0"; + ver_min = "1"; in stdenv.mkDerivation rec { name = "gdk-pixbuf-${ver_maj}.${ver_min}"; src = fetchurl { url = "mirror://gnome/sources/gdk-pixbuf/${ver_maj}/${name}.tar.xz"; - sha256 = "0rqvj5gcs2zfyyg9llm289b0xkj4mrhzxfjpjja0wx1m6vn5axjk"; + sha256 = "1g7kjxv67jcdasi14n7jan4icrnnppd1m99wrdmpv32k4m7vfcj4"; }; setupHook = ./setup-hook.sh; From 1335293aa72b44d4c95c8d313f7448445ba67b1a Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Sun, 18 Oct 2015 17:21:54 -0700 Subject: [PATCH 138/165] harfbuzz: 1.0.3 -> 1.0.6 --- pkgs/development/libraries/harfbuzz/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/harfbuzz/default.nix b/pkgs/development/libraries/harfbuzz/default.nix index d2f8416b3eab..26c5d2fa8254 100644 --- a/pkgs/development/libraries/harfbuzz/default.nix +++ b/pkgs/development/libraries/harfbuzz/default.nix @@ -8,11 +8,11 @@ # (icu is a ~30 MB dependency, the rest is very small in comparison) stdenv.mkDerivation rec { - name = "harfbuzz-1.0.3"; + name = "harfbuzz-1.0.6"; src = fetchurl { url = "http://www.freedesktop.org/software/harfbuzz/release/${name}.tar.bz2"; - sha256 = "1xrxlrvgyr6mm9qjxmkif2kvcah082y94gf1vqi0f0bdl1g8gp7b"; + sha256 = "09ivk5m4y09ar4zi9r6db7gp234cy05h0ach7w22g9kqvkxsf5pn"; }; outputs = [ "out" "doc" ]; From cf787f028246fbf7c66c4d5482b9966d3f5745ff Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Sun, 18 Oct 2015 17:22:35 -0700 Subject: [PATCH 139/165] sqlite: 3.8.11.1 -> 3.9.1 --- pkgs/development/libraries/sqlite/default.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/sqlite/default.nix b/pkgs/development/libraries/sqlite/default.nix index f043a37033a8..c337de867e07 100644 --- a/pkgs/development/libraries/sqlite/default.nix +++ b/pkgs/development/libraries/sqlite/default.nix @@ -3,11 +3,11 @@ assert interactive -> readline != null && ncurses != null; stdenv.mkDerivation { - name = "sqlite-3.8.11.1"; + name = "sqlite-3.9.1"; src = fetchurl { - url = "http://sqlite.org/2015/sqlite-autoconf-3081101.tar.gz"; - sha1 = "d0e22d7e361b6f50830a3cdeafe35311443f8f9a"; + url = "http://sqlite.org/2015/sqlite-autoconf-3090100.tar.gz"; + sha1 = "6b7d22c24c9695118a2706c8e026fb3c31780a30"; }; buildInputs = lib.optionals interactive [ readline ncurses ]; @@ -17,6 +17,7 @@ stdenv.mkDerivation { NIX_CFLAGS_COMPILE = [ "-DSQLITE_ENABLE_COLUMN_METADATA" "-DSQLITE_ENABLE_DBSTAT_VTAB" + "-DSQLITE_ENABLE_JSON1" "-DSQLITE_ENABLE_FTS3" "-DSQLITE_ENABLE_FTS3_PARENTHESIS" "-DSQLITE_ENABLE_FTS4" From d49140f3e4fbb00de9523b73b30d6dfe13d2f67c Mon Sep 17 00:00:00 2001 From: Nikolay Amiantov Date: Thu, 15 Oct 2015 16:11:33 +0300 Subject: [PATCH 140/165] buildenv: support very long `paths` --- pkgs/build-support/buildenv/builder.pl | 12 +++++++++++- pkgs/build-support/buildenv/default.nix | 14 ++++++++------ 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/pkgs/build-support/buildenv/builder.pl b/pkgs/build-support/buildenv/builder.pl index fd8098caf13c..155af314397b 100755 --- a/pkgs/build-support/buildenv/builder.pl +++ b/pkgs/build-support/buildenv/builder.pl @@ -117,10 +117,20 @@ sub addPkg { } } +# Read packages list. +my $pkgs; + +if (exists $ENV{"pkgsPath"}) { + open FILE, $ENV{"pkgsPath"}; + $pkgs = ; + close FILE; +} else { + $pkgs = $ENV{"pkgs"} +} # Symlink to the packages that have been installed explicitly by the # user. -for my $pkg (@{decode_json $ENV{"pkgs"}}) { +for my $pkg (@{decode_json $pkgs}) { for my $path (@{$pkg->{paths}}) { addPkg($path, $ENV{"ignoreCollisions"} eq "1", $pkg->{priority}) if -e $path; } diff --git a/pkgs/build-support/buildenv/default.nix b/pkgs/build-support/buildenv/default.nix index 8cbf0dc6c8e4..e7ac87c109f3 100644 --- a/pkgs/build-support/buildenv/default.nix +++ b/pkgs/build-support/buildenv/default.nix @@ -34,12 +34,14 @@ }: runCommand name - { inherit manifest ignoreCollisions passthru pathsToLink extraPrefix postBuild buildInputs; - pkgs = builtins.toJSON (map (drv: { - paths = [ drv ]; # FIXME: handle multiple outputs - priority = drv.meta.priority or 5; - }) paths); - preferLocalBuild = true; + rec { inherit manifest ignoreCollisions passthru pathsToLink extraPrefix postBuild buildInputs; + pkgs = builtins.toJSON (map (drv: { + paths = [ drv ]; # FIXME: handle multiple outputs + priority = drv.meta.priority or 5; + }) paths); + preferLocalBuild = true; + # XXX: The size is somewhat arbitrary + passAsFile = if builtins.stringLength pkgs >= 128*1024 then [ "pkgs" ] else null; } '' ${perl}/bin/perl -w ${./builder.pl} From 1d640f029f3c9de3d049f0c0a9b7280592fce5db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Sat, 24 Oct 2015 12:09:45 +0200 Subject: [PATCH 141/165] texlive: avoid huge command lines /cc #9757. --- pkgs/tools/typesetting/tex/texlive-new/combine.nix | 14 +++++++------- pkgs/tools/typesetting/tex/texlive-new/default.nix | 5 +++-- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/pkgs/tools/typesetting/tex/texlive-new/combine.nix b/pkgs/tools/typesetting/tex/texlive-new/combine.nix index 2c9119b934f8..e69c6ec425c3 100644 --- a/pkgs/tools/typesetting/tex/texlive-new/combine.nix +++ b/pkgs/tools/typesetting/tex/texlive-new/combine.nix @@ -82,21 +82,21 @@ in buildEnv { # updmap.cfg seems like not needing changes # now filter hyphenation patterns, in a hacky way ATM - '' + (let script = + writeText "hyphens.sed" ( + lib.concatMapStrings (pkg: "/^\% from ${pkg.pname}/,/^\%/p;\n") pkgList.splitBin.wrong + + "1,/^\% from/p;" ); + in '' ( - local script='${ - lib.concatMapStrings (pkg: "/^\% from ${pkg.pname}/,/^\%/p;\n") - pkgList.splitBin.wrong - } 1,/^\% from/p;' cd ./share/texmf/tex/generic/config/ for fname in language.dat language.def; do [ -e $fname ] || continue; cnfOrig="$(realpath ./$fname)" rm ./$fname - cat "$cnfOrig" | sed -n "$script" > ./$fname + cat "$cnfOrig" | sed -n -f '${script}' > ./$fname done ) - '' + + '') + # function to wrap created executables with required env vars '' diff --git a/pkgs/tools/typesetting/tex/texlive-new/default.nix b/pkgs/tools/typesetting/tex/texlive-new/default.nix index c8b2a414fa31..a084c973b780 100644 --- a/pkgs/tools/typesetting/tex/texlive-new/default.nix +++ b/pkgs/tools/typesetting/tex/texlive-new/default.nix @@ -24,7 +24,7 @@ * in case of any bugs or feature requests, file a github issue and /cc @vcunat */ -{ stdenv, lib, fetchurl, runCommand, buildEnv +{ stdenv, lib, fetchurl, runCommand, writeText, buildEnv , callPackage, ghostscriptX, harfbuzz, poppler_min , makeWrapper, perl, python, ruby , useFixedHashes ? true @@ -48,7 +48,8 @@ let # function for creating a working environment from a set of TL packages combine = import ./combine.nix { - inherit bin combinePkgs buildEnv fastUnique lib makeWrapper perl stdenv python ruby; + inherit bin combinePkgs buildEnv fastUnique lib makeWrapper writeText + perl stdenv python ruby; }; # the set of TeX Live packages, collections, and schemes; using upstream naming From 40455f27c36226bbba666f47356efbd13dc28a03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Tue, 27 Oct 2015 14:34:31 +0100 Subject: [PATCH 142/165] mariadb: build without snappy on 32-bit ... to work around a build problem https://mariadb.atlassian.net/browse/MDEV-9000 I took care not to cause a rebuild on 64-bit. --- pkgs/servers/sql/mariadb/default.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/servers/sql/mariadb/default.nix b/pkgs/servers/sql/mariadb/default.nix index 3e5b9521accb..ebb37aeddc69 100644 --- a/pkgs/servers/sql/mariadb/default.nix +++ b/pkgs/servers/sql/mariadb/default.nix @@ -15,7 +15,9 @@ stdenv.mkDerivation rec { }; buildInputs = [ - cmake ncurses openssl zlib xz lzo lz4 bzip2 snappy + cmake ncurses openssl zlib xz lzo lz4 bzip2 + # temporary due to https://mariadb.atlassian.net/browse/MDEV-9000 + (if stdenv.is64bit then snappy else null) pcre libxml2 boost judy bison libevent cracklib ] ++ stdenv.lib.optionals stdenv.isLinux [ jemalloc libaio systemd numactl ] ++ stdenv.lib.optionals stdenv.isDarwin [ perl fixDarwinDylibNames ]; From 4ba34e7055719f41ccaca655c0c9a7a8ed13d03b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Tue, 27 Oct 2015 18:03:38 +0100 Subject: [PATCH 143/165] openssl: fix darwin patch The things around this file are rather confusing, but judging from master, 1.0.2 branch doesn't need this patch to build on darwin. This just takes back the patch to the state for 1.0.1. --- .../development/libraries/openssl/darwin-arch.patch | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/pkgs/development/libraries/openssl/darwin-arch.patch b/pkgs/development/libraries/openssl/darwin-arch.patch index 238dd7d08d88..63db3efc0846 100644 --- a/pkgs/development/libraries/openssl/darwin-arch.patch +++ b/pkgs/development/libraries/openssl/darwin-arch.patch @@ -1,13 +1,12 @@ -diff --git a/Configure b/Configure -index d99eed7..341dbd0 100755 ---- a/Configure -+++ b/Configure -@@ -638,7 +638,7 @@ my %table=( +diff -ru -x '*~' openssl-1.0.1c-orig/Configure openssl-1.0.1c/Configure +--- openssl-1.0.1c-orig/Configure 2012-03-14 23:20:40.000000000 +0100 ++++ openssl-1.0.1c/Configure 2012-12-18 17:29:30.268090633 +0100 +@@ -579,7 +579,7 @@ "darwin64-ppc-cc","cc:-arch ppc64 -O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc64_asm}:osx64:dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", "darwin-i386-cc","cc:-arch i386 -O3 -fomit-frame-pointer -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_INT RC4_CHUNK DES_UNROLL BF_PTR:".eval{my $asm=$x86_asm;$asm=~s/cast\-586\.o//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", "debug-darwin-i386-cc","cc:-arch i386 -g3 -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_INT RC4_CHUNK DES_UNROLL BF_PTR:${x86_asm}:macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", --"darwin64-x86_64-cc","cc:-arch x86_64 -O3 -DL_ENDIAN -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$x86_64_asm;$asm=~s/rc4\-[^:]+//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", +-"darwin64-x86_64-cc","cc:-arch x86_64 -O3 -DL_ENDIAN -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$x86_64_asm;$asm=~s/rc4\-[^:]+//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", +"darwin64-x86_64-cc","cc:-O3 -DL_ENDIAN -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$x86_64_asm;$asm=~s/rc4\-[^:]+//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", - "debug-darwin64-x86_64-cc","cc:-arch x86_64 -ggdb -g2 -O0 -DL_ENDIAN -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$x86_64_asm;$asm=~s/rc4\-[^:]+//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", "debug-darwin-ppc-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DB_ENDIAN -g -Wall -O::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc32_asm}:osx32:dlfcn:darwin-shared:-fPIC:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", # iPhoneOS/iOS + "iphoneos-cross","llvm-gcc:-O3 -isysroot \$(CROSS_TOP)/SDKs/\$(CROSS_SDK) -fomit-frame-pointer -fno-common::-D_REENTRANT:iOS:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", From 99fe4f97c55185d3f51b759cbd5f8e3ab029eadb Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 30 Oct 2015 13:18:21 +0100 Subject: [PATCH 144/165] xz: Update to 5.2.2 --- pkgs/tools/compression/xz/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/tools/compression/xz/default.nix b/pkgs/tools/compression/xz/default.nix index 6a9d4582dff2..5f5ee28ca063 100644 --- a/pkgs/tools/compression/xz/default.nix +++ b/pkgs/tools/compression/xz/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl }: stdenv.mkDerivation rec { - name = "xz-5.2.1"; + name = "xz-5.2.2"; src = fetchurl { url = "http://tukaani.org/xz/${name}.tar.bz2"; - sha256 = "101a1kih58s1ysqfncqw69qnwx1zlbjxwhnfmp0z5gz0jzs4i4b7"; + sha256 = "1da071wyx921pyx3zkxlnbpp14p6km98pnp66mg1arwi9dxgbxbg"; }; doCheck = true; From c232159feeb49c6b20bcacec291071eecdfecc66 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 30 Oct 2015 15:46:26 +0100 Subject: [PATCH 145/165] gnome-control-center: Use libgudev http://hydra.nixos.org/build/26678553 --- .../gnome-3/3.16/core/gnome-control-center/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/desktops/gnome-3/3.16/core/gnome-control-center/default.nix b/pkgs/desktops/gnome-3/3.16/core/gnome-control-center/default.nix index 1dfc76a2dd54..0ca81f542993 100644 --- a/pkgs/desktops/gnome-3/3.16/core/gnome-control-center/default.nix +++ b/pkgs/desktops/gnome-3/3.16/core/gnome-control-center/default.nix @@ -3,7 +3,7 @@ , gdk_pixbuf, librsvg, libxkbfile, libnotify , libxml2, polkit, libxslt, libgtop, libsoup, colord, colord-gtk , cracklib, python, libkrb5, networkmanagerapplet, networkmanager -, libwacom, samba, shared_mime_info, tzdata, icu, libtool, udev +, libwacom, samba, shared_mime_info, tzdata, icu, libtool, udev, libgudev , docbook_xsl, docbook_xsl_ns, modemmanager, clutter, clutter_gtk , fontconfig, sound-theme-freedesktop }: @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { accountsservice libkrb5 networkmanagerapplet libwacom samba libnotify libxkbfile shared_mime_info icu libtool docbook_xsl docbook_xsl_ns gnome3.grilo gdk_pixbuf gnome3.defaultIconTheme librsvg clutter clutter_gtk - gnome3.vino udev libcanberra_gtk3 + gnome3.vino udev libgudev libcanberra_gtk3 networkmanager modemmanager makeWrapper gnome3.gnome-bluetooth ]; preBuild = '' From a7d573f224707185c44c92b8a35eb6a7ad62c552 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Fri, 30 Oct 2015 16:08:13 -0700 Subject: [PATCH 146/165] kernel: 3.18.22 -> 3.18.23 --- pkgs/os-specific/linux/kernel/linux-3.18.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/linux-3.18.nix b/pkgs/os-specific/linux/kernel/linux-3.18.nix index 6ae9814c55d4..ffa220387b10 100644 --- a/pkgs/os-specific/linux/kernel/linux-3.18.nix +++ b/pkgs/os-specific/linux/kernel/linux-3.18.nix @@ -1,12 +1,12 @@ { stdenv, fetchurl, perl, buildLinux, ... } @ args: import ./generic.nix (args // rec { - version = "3.18.22"; + version = "3.18.23"; extraMeta.branch = "3.18"; src = fetchurl { url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz"; - sha256 = "0b6f0akcsjbybwf3r1b414k539cwnf5phz3hb2zkda9ds13bpp0w"; + sha256 = "1jj3afa9p306j7gv13wsjwy322sdaz6jflhvzp6gwjfylncwyskj"; }; features.iwlwifi = true; From 00c90391417a91a6218ccdb952f2dac2c11d8d05 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Fri, 30 Oct 2015 18:07:41 -0700 Subject: [PATCH 147/165] mesa: 11.0.3 -> 11.0.4 --- pkgs/development/libraries/mesa/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix index 0e2d1af3a31b..b0c26def14a4 100644 --- a/pkgs/development/libraries/mesa/default.nix +++ b/pkgs/development/libraries/mesa/default.nix @@ -22,7 +22,7 @@ else */ let - version = "11.0.3"; + version = "11.0.4"; # this is the default search path for DRI drivers driverLink = "/run/opengl-driver" + stdenv.lib.optionalString stdenv.isi686 "-32"; in @@ -36,7 +36,7 @@ stdenv.mkDerivation { "https://launchpad.net/mesa/trunk/${version}/+download/mesa-${version}.tar.xz" "ftp://ftp.freedesktop.org/pub/mesa/${version}/mesa-${version}.tar.xz" ]; - sha256 = "ab2992eece21adc23c398720ef8c6933cb69ea42e1b2611dc09d031e17e033d6"; + sha256 = "40201bf7fc6fa12a6d9edfe870b41eb4dd6669154e3c42c48a96f70805f5483d"; }; prePatch = "patchShebangs ."; From 1496b0f6a1b7b4800ad37b77688e6cc0ac721b68 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Fri, 30 Oct 2015 18:09:30 -0700 Subject: [PATCH 148/165] Fix buildenv --- pkgs/build-support/buildenv/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/build-support/buildenv/default.nix b/pkgs/build-support/buildenv/default.nix index 5261e9b5a264..5bcc1708e7fd 100644 --- a/pkgs/build-support/buildenv/default.nix +++ b/pkgs/build-support/buildenv/default.nix @@ -38,7 +38,7 @@ }: runCommand name - { inherit manifest ignoreCollisions passthru pathsToLink extraPrefix postBuild buildInputs; + rec { inherit manifest ignoreCollisions passthru pathsToLink extraPrefix postBuild buildInputs; pkgs = builtins.toJSON (map (drv: { paths = [ drv ] From aff3a23d670909f4f7ff9fac0bb273c32f1190eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Domen=20Ko=C5=BEar?= Date: Sun, 1 Nov 2015 09:39:10 +0100 Subject: [PATCH 149/165] unzip: CVE-2015-7696, CVE-2015-7697 --- pkgs/tools/archivers/unzip/CVE-2015-7696.diff | 66 +++++++++++++++++++ pkgs/tools/archivers/unzip/CVE-2015-7697.diff | 36 ++++++++++ pkgs/tools/archivers/unzip/default.nix | 2 + 3 files changed, 104 insertions(+) create mode 100644 pkgs/tools/archivers/unzip/CVE-2015-7696.diff create mode 100644 pkgs/tools/archivers/unzip/CVE-2015-7697.diff diff --git a/pkgs/tools/archivers/unzip/CVE-2015-7696.diff b/pkgs/tools/archivers/unzip/CVE-2015-7696.diff new file mode 100644 index 000000000000..3aad17bddd78 --- /dev/null +++ b/pkgs/tools/archivers/unzip/CVE-2015-7696.diff @@ -0,0 +1,66 @@ +From 68efed87fabddd450c08f3112f62a73f61d493c9 Mon Sep 17 00:00:00 2001 +From: Petr Stodulka +Date: Mon, 14 Sep 2015 18:23:17 +0200 +Subject: [PATCH 1/2] upstream fix for heap overflow + +https://bugzilla.redhat.com/attachment.cgi?id=1073002 +--- + crypt.c | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/crypt.c b/crypt.c +index 784e411..a8975f2 100644 +--- a/crypt.c ++++ b/crypt.c +@@ -465,7 +465,17 @@ int decrypt(__G__ passwrd) + GLOBAL(pInfo->encrypted) = FALSE; + defer_leftover_input(__G); + for (n = 0; n < RAND_HEAD_LEN; n++) { +- b = NEXTBYTE; ++ /* 2012-11-23 SMS. (OUSPG report.) ++ * Quit early if compressed size < HEAD_LEN. The resulting ++ * error message ("unable to get password") could be improved, ++ * but it's better than trying to read nonexistent data, and ++ * then continuing with a negative G.csize. (See ++ * fileio.c:readbyte()). ++ */ ++ if ((b = NEXTBYTE) == (ush)EOF) ++ { ++ return PK_ERR; ++ } + h[n] = (uch)b; + Trace((stdout, " (%02x)", h[n])); + } +-- +2.4.6 + + +From bd8a743ee0a77e65ad07ef4196c4cd366add3f26 Mon Sep 17 00:00:00 2001 +From: Kamil Dudka +Date: Mon, 14 Sep 2015 18:24:56 +0200 +Subject: [PATCH 2/2] fix infinite loop when extracting empty bzip2 data + +--- + extract.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/extract.c b/extract.c +index 7134bfe..29db027 100644 +--- a/extract.c ++++ b/extract.c +@@ -2733,6 +2733,12 @@ __GDEF + int repeated_buf_err; + bz_stream bstrm; + ++ if (G.incnt <= 0 && G.csize <= 0L) { ++ /* avoid an infinite loop */ ++ Trace((stderr, "UZbunzip2() got empty input\n")); ++ return 2; ++ } ++ + #if (defined(DLL) && !defined(NO_SLIDE_REDIR)) + if (G.redirect_slide) + wsize = G.redirect_size, redirSlide = G.redirect_buffer; +-- +2.4.6 + diff --git a/pkgs/tools/archivers/unzip/CVE-2015-7697.diff b/pkgs/tools/archivers/unzip/CVE-2015-7697.diff new file mode 100644 index 000000000000..98ebf53c4782 --- /dev/null +++ b/pkgs/tools/archivers/unzip/CVE-2015-7697.diff @@ -0,0 +1,36 @@ +From bd150334fb4084f5555a6be26b015a0671cb5b74 Mon Sep 17 00:00:00 2001 +From: Kamil Dudka +Date: Tue, 22 Sep 2015 18:52:23 +0200 +Subject: [PATCH] extract: prevent unsigned overflow on invalid input + +Suggested-by: Stefan Cornelius +--- + extract.c | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/extract.c b/extract.c +index 29db027..b9ae667 100644 +--- a/extract.c ++++ b/extract.c +@@ -1257,8 +1257,17 @@ static int extract_or_test_entrylist(__G__ numchunk, + if (G.lrec.compression_method == STORED) { + zusz_t csiz_decrypted = G.lrec.csize; + +- if (G.pInfo->encrypted) ++ if (G.pInfo->encrypted) { ++ if (csiz_decrypted <= 12) { ++ /* handle the error now to prevent unsigned overflow */ ++ Info(slide, 0x401, ((char *)slide, ++ LoadFarStringSmall(ErrUnzipNoFile), ++ LoadFarString(InvalidComprData), ++ LoadFarStringSmall2(Inflate))); ++ return PK_ERR; ++ } + csiz_decrypted -= 12; ++ } + if (G.lrec.ucsize != csiz_decrypted) { + Info(slide, 0x401, ((char *)slide, + LoadFarStringSmall2(WrnStorUCSizCSizDiff), +-- +2.5.2 + diff --git a/pkgs/tools/archivers/unzip/default.nix b/pkgs/tools/archivers/unzip/default.nix index c5e06663dc03..b5d03bc18b27 100644 --- a/pkgs/tools/archivers/unzip/default.nix +++ b/pkgs/tools/archivers/unzip/default.nix @@ -14,6 +14,8 @@ stdenv.mkDerivation { ./CVE-2014-8140.diff ./CVE-2014-8141.diff ./CVE-2014-9636.diff + ./CVE-2015-7696.diff + ./CVE-2015-7697.diff ] ++ stdenv.lib.optional enableNLS (fetchurl { url = "http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/app-arch/unzip/files/unzip-6.0-natspec.patch?revision=1.1"; From b983c6b9b5ffa9c1d5e8c4fffe39abda6c2420df Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Tue, 3 Nov 2015 20:54:22 -0800 Subject: [PATCH 150/165] grep: 2.21 -> 2.22 --- pkgs/tools/text/gnugrep/cve-2015-1345.patch | 60 --------------------- pkgs/tools/text/gnugrep/default.nix | 10 ++-- 2 files changed, 5 insertions(+), 65 deletions(-) delete mode 100644 pkgs/tools/text/gnugrep/cve-2015-1345.patch diff --git a/pkgs/tools/text/gnugrep/cve-2015-1345.patch b/pkgs/tools/text/gnugrep/cve-2015-1345.patch deleted file mode 100644 index 7156f475e7e8..000000000000 --- a/pkgs/tools/text/gnugrep/cve-2015-1345.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 83a95bd8c8561875b948cadd417c653dbe7ef2e2 Mon Sep 17 00:00:00 2001 -From: Yuliy Pisetsky -Date: Thu, 01 Jan 2015 23:36:55 +0000 -Subject: grep -F: fix a heap buffer (read) overrun - -grep's read buffer is often filled to its full size, except when -reading the final buffer of a file. In that case, the number of -bytes read may be far less than the size of the buffer. However, for -certain unusual pattern/text combinations, grep -F would mistakenly -examine bytes in that uninitialized region of memory when searching -for a match. With carefully chosen inputs, one can cause grep -F to -read beyond the end of that buffer altogether. This problem arose via -commit v2.18-90-g73893ff with the introduction of a more efficient -heuristic using what is now the memchr_kwset function. The use of -that function in bmexec_trans could leave TP much larger than EP, -and the subsequent call to bm_delta2_search would mistakenly access -beyond end of the main input read buffer. - -* src/kwset.c (bmexec_trans): When TP reaches or exceeds EP, -do not call bm_delta2_search. -* tests/kwset-abuse: New file. -* tests/Makefile.am (TESTS): Add it. -* THANKS.in: Update. -* NEWS (Bug fixes): Mention it. - -Prior to this patch, this command would trigger a UMR: - - printf %0360db 0 | valgrind src/grep -F $(printf %019dXb 0) - - Use of uninitialised value of size 8 - at 0x4142BE: bmexec_trans (kwset.c:657) - by 0x4143CA: bmexec (kwset.c:678) - by 0x414973: kwsexec (kwset.c:848) - by 0x414DC4: Fexecute (kwsearch.c:128) - by 0x404E2E: grepbuf (grep.c:1238) - by 0x4054BF: grep (grep.c:1417) - by 0x405CEB: grepdesc (grep.c:1645) - by 0x405EC1: grep_command_line_arg (grep.c:1692) - by 0x4077D4: main (grep.c:2570) - -See the accompanying test for how to trigger the heap buffer overrun. - -Thanks to Nima Aghdaii for testing and finding numerous -ways to break early iterations of this patch. - -Nix: @vcunat restricted this to the runtime code only to avoid needing autoreconfiguration. ---- -diff --git a/src/kwset.c b/src/kwset.c -index 4003c8d..376f7c3 100644 ---- a/src/kwset.c -+++ b/src/kwset.c -@@ -643,6 +643,8 @@ bmexec_trans (kwset_t kwset, char const *text, size_t size) - if (! tp) - return -1; - tp++; -+ if (ep <= tp) -+ break; - } - } - } diff --git a/pkgs/tools/text/gnugrep/default.nix b/pkgs/tools/text/gnugrep/default.nix index d03db13ed420..e8352e318b9b 100644 --- a/pkgs/tools/text/gnugrep/default.nix +++ b/pkgs/tools/text/gnugrep/default.nix @@ -1,17 +1,17 @@ -{ stdenv, fetchurl, pcre, libiconv }: +{ stdenv, fetchurl, pcre, libiconv, perl }: -let version = "2.21"; in +let version = "2.22"; in stdenv.mkDerivation { name = "gnugrep-${version}"; src = fetchurl { url = "mirror://gnu/grep/grep-${version}.tar.xz"; - sha256 = "1pp5n15qwxrw1pibwjhhgsibyv5cafhamf8lwzjygs6y00fa2i2j"; + sha256 = "1srn321x7whlhs5ks36zlcrrmj4iahll8fxwsh1vbz3v04px54fa"; }; - patches = [ ./cve-2015-1345.patch ]; - + # Perl is needed for testing + nativeBuildInputs = [ perl ]; buildInputs = [ pcre libiconv ]; # cygwin: FAIL: multibyte-white-space From d34f5b657051e268e41084e9751996d16f7f0a1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Domen=20Ko=C5=BEar?= Date: Wed, 4 Nov 2015 11:40:09 +0100 Subject: [PATCH 151/165] python: skip build at install phase "python setup.py install" will also run "python setup.py build" which we've already done in buildPhase. --- pkgs/development/python-modules/generic/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/python-modules/generic/default.nix b/pkgs/development/python-modules/generic/default.nix index 45073ba2fa6c..55a8c14cd26c 100644 --- a/pkgs/development/python-modules/generic/default.nix +++ b/pkgs/development/python-modules/generic/default.nix @@ -118,6 +118,7 @@ python.stdenv.mkDerivation (builtins.removeAttrs attrs ["disabled"] // { ${python}/bin/${python.executable} setup.py install \ --install-lib=$out/lib/${python.libPrefix}/site-packages \ --old-and-unmanageable \ + --skip-build \ --prefix="$out" ${lib.concatStringsSep " " setupPyInstallFlags} # --install-lib: From 774f74b8757d6c9809825d3c14fbe313db1378cf Mon Sep 17 00:00:00 2001 From: Wout Mertens Date: Tue, 6 Oct 2015 20:31:26 +0200 Subject: [PATCH 152/165] Don't fail if env-vars cannot be written to env-vars is a debugging aid, see https://github.com/NixOS/nix/commit/3e5dbb24337d8416cfe46484eb2692811546a9c1 for a rationale for this change. --- pkgs/build-support/builder-defs/builder-defs.nix | 2 +- pkgs/stdenv/generic/setup.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/build-support/builder-defs/builder-defs.nix b/pkgs/build-support/builder-defs/builder-defs.nix index 551ed9ea57e8..e21b032aacbe 100644 --- a/pkgs/build-support/builder-defs/builder-defs.nix +++ b/pkgs/build-support/builder-defs/builder-defs.nix @@ -336,7 +336,7 @@ let inherit (builtins) head tail trace; in doDump = n: noDepEntry "echo Dump number ${n}; set"; - saveEnv = noDepEntry ''export > $TMP/env-vars''; + saveEnv = noDepEntry ''export > "$TMP/env-vars" || true''; doDumpBuildInputs = noDepEntry ('' echo "${toString realBuildInputs}" diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh index 57875fa6ada2..a01af7db70a3 100644 --- a/pkgs/stdenv/generic/setup.sh +++ b/pkgs/stdenv/generic/setup.sh @@ -450,7 +450,7 @@ substituteAllInPlace() { # the environment used for building. dumpVars() { if [ "$noDumpEnvVars" != 1 ]; then - export > "$NIX_BUILD_TOP/env-vars" + export > "$NIX_BUILD_TOP/env-vars" || true fi } From 0a2c78fb5fecf00a4eb06792a23de576d7e5692e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Jourdois?= Date: Sun, 1 Nov 2015 12:58:31 +0100 Subject: [PATCH 153/165] cairo: maintenance update 1.14.2 -> 1.14.4 (close #10778) --- pkgs/development/libraries/cairo/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/cairo/default.nix b/pkgs/development/libraries/cairo/default.nix index e2d6b25e137d..5add4e451297 100644 --- a/pkgs/development/libraries/cairo/default.nix +++ b/pkgs/development/libraries/cairo/default.nix @@ -11,11 +11,11 @@ assert glSupport -> mesa_noglu != null; with { inherit (stdenv.lib) optional optionals; }; stdenv.mkDerivation rec { - name = "cairo-1.14.2"; + name = "cairo-1.14.4"; src = fetchurl { url = "http://cairographics.org/releases/${name}.tar.xz"; - sha1 = "c8da68aa66ca0855b5d0ff552766d3e8679e1d24"; + sha256 = "05p75r914d809711yg9rapgmmi4hymzbarhd3w0yrfadhiy9rv7n"; }; nativeBuildInputs = [ pkgconfig libiconv ] ++ libintlOrEmpty; From 0e731ecbd76beb143da04ab3b8a60c30de7bc9da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Tue, 27 Oct 2015 09:46:06 +0100 Subject: [PATCH 154/165] gnome-3.18: port missing libgudev dependencies (cherry picked from commit 311ac81337df766e4b3fbdca92833b5df5b4ff8a) --- .../gnome-3/3.18/core/gnome-control-center/default.nix | 4 ++-- .../gnome-3/3.18/core/gnome-settings-daemon/default.nix | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-control-center/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-control-center/default.nix index e7ed0c6bade8..eab991f90a22 100644 --- a/pkgs/desktops/gnome-3/3.18/core/gnome-control-center/default.nix +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-control-center/default.nix @@ -1,6 +1,6 @@ { fetchurl, stdenv, pkgconfig, gnome3, ibus, intltool, upower, makeWrapper , libcanberra, libcanberra_gtk3, accountsservice, libpwquality, libpulseaudio -, gdk_pixbuf, librsvg, libxkbfile, libnotify +, gdk_pixbuf, librsvg, libxkbfile, libnotify, libgudev , libxml2, polkit, libxslt, libgtop, libsoup, colord, colord-gtk , cracklib, python, libkrb5, networkmanagerapplet, networkmanager , libwacom, samba, shared_mime_info, tzdata, icu, libtool, udev @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { accountsservice libkrb5 networkmanagerapplet libwacom samba libnotify libxkbfile shared_mime_info icu libtool docbook_xsl docbook_xsl_ns gnome3.grilo gdk_pixbuf gnome3.defaultIconTheme librsvg clutter clutter_gtk - gnome3.vino udev libcanberra_gtk3 + gnome3.vino udev libcanberra_gtk3 libgudev networkmanager modemmanager makeWrapper gnome3.gnome-bluetooth ]; preBuild = '' diff --git a/pkgs/desktops/gnome-3/3.18/core/gnome-settings-daemon/default.nix b/pkgs/desktops/gnome-3/3.18/core/gnome-settings-daemon/default.nix index 18a6bdf43bf1..99e1f596f184 100644 --- a/pkgs/desktops/gnome-3/3.18/core/gnome-settings-daemon/default.nix +++ b/pkgs/desktops/gnome-3/3.18/core/gnome-settings-daemon/default.nix @@ -1,6 +1,6 @@ { fetchurl, stdenv, pkgconfig, gnome3, intltool, glib, libnotify, lcms2, libXtst , libxkbfile, libpulseaudio, libcanberra_gtk3, upower, colord, libgweather, polkit -, geoclue2, librsvg, xf86_input_wacom, udev, libwacom, libxslt, libtool, networkmanager +, geoclue2, librsvg, xf86_input_wacom, udev, libgudev, libwacom, libxslt, libtool, networkmanager , docbook_xsl, docbook_xsl_ns, makeWrapper, ibus, xkeyboard_config }: stdenv.mkDerivation rec { @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { [ intltool pkgconfig ibus gtk glib gsettings_desktop_schemas networkmanager libnotify gnome_desktop lcms2 libXtst libxkbfile libpulseaudio libcanberra_gtk3 upower colord libgweather xkeyboard_config - polkit geocode_glib geoclue2 librsvg xf86_input_wacom udev libwacom libxslt + polkit geocode_glib geoclue2 librsvg xf86_input_wacom udev libgudev libwacom libxslt libtool docbook_xsl docbook_xsl_ns makeWrapper gnome_themes_standard ]; preFixup = '' From bf41c5c23374f8443d03658e814b09205a7c2a99 Mon Sep 17 00:00:00 2001 From: Pascal Wittmann Date: Wed, 4 Nov 2015 21:05:44 +0100 Subject: [PATCH 155/165] audiofile: fix CVE-2015-7747 (close #10829) Fixes #10678. --- .../libraries/audiofile/CVE-2015-7747.patch | 161 ++++++++++++++++++ .../libraries/audiofile/default.nix | 2 + 2 files changed, 163 insertions(+) create mode 100644 pkgs/development/libraries/audiofile/CVE-2015-7747.patch diff --git a/pkgs/development/libraries/audiofile/CVE-2015-7747.patch b/pkgs/development/libraries/audiofile/CVE-2015-7747.patch new file mode 100644 index 000000000000..a01aaa14dcee --- /dev/null +++ b/pkgs/development/libraries/audiofile/CVE-2015-7747.patch @@ -0,0 +1,161 @@ +Description: fix buffer overflow when changing both sample format and + number of channels +Origin: backport, https://github.com/mpruett/audiofile/pull/25 +Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/audiofile/+bug/1502721 +Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=801102 + +Index: audiofile-0.3.6/libaudiofile/modules/ModuleState.cpp +=================================================================== +--- audiofile-0.3.6.orig/libaudiofile/modules/ModuleState.cpp 2015-10-20 08:00:58.036128202 -0400 ++++ audiofile-0.3.6/libaudiofile/modules/ModuleState.cpp 2015-10-20 08:00:58.036128202 -0400 +@@ -402,7 +402,7 @@ + addModule(new Transform(outfc, in.pcm, out.pcm)); + + if (in.channelCount != out.channelCount) +- addModule(new ApplyChannelMatrix(infc, isReading, ++ addModule(new ApplyChannelMatrix(outfc, isReading, + in.channelCount, out.channelCount, + in.pcm.minClip, in.pcm.maxClip, + track->channelMatrix)); +Index: audiofile-0.3.6/test/Makefile.am +=================================================================== +--- audiofile-0.3.6.orig/test/Makefile.am 2015-10-20 08:00:58.036128202 -0400 ++++ audiofile-0.3.6/test/Makefile.am 2015-10-20 08:00:58.036128202 -0400 +@@ -26,6 +26,7 @@ + VirtualFile \ + floatto24 \ + query2 \ ++ sixteen-stereo-to-eight-mono \ + sixteen-to-eight \ + testchannelmatrix \ + testdouble \ +@@ -139,6 +140,7 @@ + printmarkers_LDADD = $(LIBAUDIOFILE) -lm + + sixteen_to_eight_SOURCES = sixteen-to-eight.c TestUtilities.cpp TestUtilities.h ++sixteen_stereo_to_eight_mono_SOURCES = sixteen-stereo-to-eight-mono.c TestUtilities.cpp TestUtilities.h + + testchannelmatrix_SOURCES = testchannelmatrix.c TestUtilities.cpp TestUtilities.h + +Index: audiofile-0.3.6/test/sixteen-stereo-to-eight-mono.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ audiofile-0.3.6/test/sixteen-stereo-to-eight-mono.c 2015-10-20 08:33:57.512286416 -0400 +@@ -0,0 +1,117 @@ ++/* ++ Audio File Library ++ ++ Copyright 2000, Silicon Graphics, Inc. ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License along ++ with this program; if not, write to the Free Software Foundation, Inc., ++ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++*/ ++ ++/* ++ sixteen-stereo-to-eight-mono.c ++ ++ This program tests the conversion from 2-channel 16-bit integers to ++ 1-channel 8-bit integers. ++*/ ++ ++#ifdef HAVE_CONFIG_H ++#include ++#endif ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++#include "TestUtilities.h" ++ ++int main (int argc, char **argv) ++{ ++ AFfilehandle file; ++ AFfilesetup setup; ++ int16_t frames16[] = {14298, 392, 3923, -683, 958, -1921}; ++ int8_t frames8[] = {28, 6, -2}; ++ int i, frameCount = 3; ++ int8_t byte; ++ AFframecount result; ++ ++ setup = afNewFileSetup(); ++ ++ afInitFileFormat(setup, AF_FILE_WAVE); ++ ++ afInitSampleFormat(setup, AF_DEFAULT_TRACK, AF_SAMPFMT_TWOSCOMP, 16); ++ afInitChannels(setup, AF_DEFAULT_TRACK, 2); ++ ++ char testFileName[PATH_MAX]; ++ if (!createTemporaryFile("sixteen-to-eight", testFileName)) ++ { ++ fprintf(stderr, "Could not create temporary file.\n"); ++ exit(EXIT_FAILURE); ++ } ++ ++ file = afOpenFile(testFileName, "w", setup); ++ if (file == AF_NULL_FILEHANDLE) ++ { ++ fprintf(stderr, "could not open file for writing\n"); ++ exit(EXIT_FAILURE); ++ } ++ ++ afFreeFileSetup(setup); ++ ++ afWriteFrames(file, AF_DEFAULT_TRACK, frames16, frameCount); ++ ++ afCloseFile(file); ++ ++ file = afOpenFile(testFileName, "r", AF_NULL_FILESETUP); ++ if (file == AF_NULL_FILEHANDLE) ++ { ++ fprintf(stderr, "could not open file for reading\n"); ++ exit(EXIT_FAILURE); ++ } ++ ++ afSetVirtualSampleFormat(file, AF_DEFAULT_TRACK, AF_SAMPFMT_TWOSCOMP, 8); ++ afSetVirtualChannels(file, AF_DEFAULT_TRACK, 1); ++ ++ for (i=0; i Date: Thu, 5 Nov 2015 18:25:39 -0800 Subject: [PATCH 156/165] icu: 55.1 -> 56.1 --- pkgs/development/libraries/icu/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/icu/default.nix b/pkgs/development/libraries/icu/default.nix index 909f4e936a94..a2196d26524e 100644 --- a/pkgs/development/libraries/icu/default.nix +++ b/pkgs/development/libraries/icu/default.nix @@ -2,7 +2,7 @@ let pname = "icu4c"; - version = "55.1"; + version = "56.1"; in stdenv.mkDerivation { name = pname + "-" + version; @@ -10,7 +10,7 @@ stdenv.mkDerivation { src = fetchurl { url = "http://download.icu-project.org/files/${pname}/${version}/${pname}-" + (stdenv.lib.replaceChars ["."] ["_"] version) + "-src.tgz"; - sha256 = "0ys5f5spizg45qlaa31j2lhgry0jka2gfha527n4ndfxxz5j4sz1"; + sha256 = "05j86714qaj0lvhvyr2s1xncw6sk0h2dcghb3iiwykbkbh8fjr1s"; }; makeFlags = stdenv.lib.optionalString stdenv.isDarwin From 974dd8012d890ce0a1932caacfb068fe92cf2f33 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Thu, 5 Nov 2015 18:25:49 -0800 Subject: [PATCH 157/165] sqlite: 3.9.1 -> 3.9.2 --- pkgs/development/libraries/sqlite/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/sqlite/default.nix b/pkgs/development/libraries/sqlite/default.nix index c337de867e07..d9fbde9aa09c 100644 --- a/pkgs/development/libraries/sqlite/default.nix +++ b/pkgs/development/libraries/sqlite/default.nix @@ -3,11 +3,11 @@ assert interactive -> readline != null && ncurses != null; stdenv.mkDerivation { - name = "sqlite-3.9.1"; + name = "sqlite-3.9.2"; src = fetchurl { - url = "http://sqlite.org/2015/sqlite-autoconf-3090100.tar.gz"; - sha1 = "6b7d22c24c9695118a2706c8e026fb3c31780a30"; + url = "http://sqlite.org/2015/sqlite-autoconf-3090200.tar.gz"; + sha1 = "dae1ae5297fece9671ae0c434a7ecd0cda09c76a"; }; buildInputs = lib.optionals interactive [ readline ncurses ]; From fa5ad20922cbc2b4ffbbb74edbc22d650d80441d Mon Sep 17 00:00:00 2001 From: Frederik Rietdijk Date: Sat, 29 Aug 2015 13:21:44 +0200 Subject: [PATCH 158/165] python-packages markupsafe: 0.15 -> 0.23 --- pkgs/top-level/python-packages.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 40aec8cf579a..c151c3547d67 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -8744,11 +8744,12 @@ let markupsafe = buildPythonPackage rec { - name = "markupsafe-0.15"; + name = "markupsafe-${version}"; + version = "0.23"; src = pkgs.fetchurl { - url = "http://pypi.python.org/packages/source/M/MarkupSafe/${name}.tar.gz"; - md5 = "4e7c4d965fe5e033fa2d7bb7746bb186"; + url = "http://pypi.python.org/packages/source/M/MarkupSafe/MarkupSafe-${version}.tar.gz"; + sha256 = "a4ec1aff59b95a14b45eb2e23761a0179e98319da5a7eb76b56ea8cdc7b871c3"; }; meta = { From 767f1d5a74404d7c60a62227fa0d0bb57be87e5f Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Sat, 7 Nov 2015 16:32:17 -0800 Subject: [PATCH 159/165] glib: 2.46.0 -> 2.46.2 --- pkgs/development/libraries/glib/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix index 137fe943637d..bafe8949e93c 100644 --- a/pkgs/development/libraries/glib/default.nix +++ b/pkgs/development/libraries/glib/default.nix @@ -40,7 +40,7 @@ let ''; ver_maj = "2.46"; - ver_min = "0"; + ver_min = "2"; in stdenv.mkDerivation rec { @@ -48,7 +48,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "mirror://gnome/sources/glib/${ver_maj}/${name}.tar.xz"; - sha256 = "b1cee83469ae7d80f17c267c37f090414e93960bd62d2b254a5a96fbc5baacb4"; + sha256 = "5031722e37036719c1a09163cc6cf7c326e4c4f1f1e074b433c156862bd733db"; }; patches = optional stdenv.isDarwin ./darwin-compilation.patch ++ optional doCheck ./skip-timer-test.patch; From 64e262dd91049aa3108d07f64d27db57e80088bb Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Sat, 7 Nov 2015 18:51:07 -0800 Subject: [PATCH 160/165] util-linux: 2.27 -> 2.27.1 --- pkgs/os-specific/linux/util-linux/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/util-linux/default.nix b/pkgs/os-specific/linux/util-linux/default.nix index d310a5d623a6..bcd9aa58bccf 100644 --- a/pkgs/os-specific/linux/util-linux/default.nix +++ b/pkgs/os-specific/linux/util-linux/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, zlib, ncurses ? null, perl ? null, pam }: stdenv.mkDerivation rec { - name = "util-linux-2.27"; + name = "util-linux-2.27.1"; src = fetchurl { url = "mirror://kernel/linux/utils/util-linux/v2.27/${name}.tar.xz"; - sha256 = "1ivdx1bhjbakf77agm9dn3wyxia1wgz9lzxgd61zqxw3xzih9gzw"; + sha256 = "1452hz5zx56a3mad8yrg5wb0vy5zi19mpjp6zx1yr6p9xp6qz08a"; }; outputs = [ "out" "man" ]; From 3f074b8a1e4d7c57b48cc3adf0f00c3f403eaefa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Mon, 9 Nov 2015 15:18:13 +0100 Subject: [PATCH 161/165] wrapGAppsHook: avoid running multiple times /cc #10351 and @lethalman. --- pkgs/build-support/setup-hooks/wrap-gapps-hook.sh | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/pkgs/build-support/setup-hooks/wrap-gapps-hook.sh b/pkgs/build-support/setup-hooks/wrap-gapps-hook.sh index 3445c4b9cc1d..82cc7ec330d6 100644 --- a/pkgs/build-support/setup-hooks/wrap-gapps-hook.sh +++ b/pkgs/build-support/setup-hooks/wrap-gapps-hook.sh @@ -9,6 +9,9 @@ find_gio_modules() { envHooks+=(find_gio_modules) wrapGAppsHook() { + [ -z "$dontWrapGApps" ] || return + dontWrapGApps=1 # guard against running multiple times (e.g. due to propagation) + if [ -n "$GDK_PIXBUF_MODULE_FILE" ]; then gappsWrapperArgs+=(--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE") fi @@ -30,12 +33,10 @@ wrapGAppsHook() { gappsWrapperArgs+=(--prefix $v : "$dummy") done - if [ -z "$dontWrapGApps" ]; then - for i in $prefix/bin/* $prefix/libexec/*; do - echo "Wrapping app $i" - wrapProgram "$i" "${gappsWrapperArgs[@]}" - done - fi + for i in $prefix/bin/* $prefix/libexec/*; do + echo "Wrapping app $i" + wrapProgram "$i" "${gappsWrapperArgs[@]}" + done } fixupOutputHooks+=(wrapGAppsHook) From d10b9108f2b6b3c7e02234e6abe85ce29600cc0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Mon, 9 Nov 2015 15:38:26 +0100 Subject: [PATCH 162/165] wrapGAppsHook: fix $gappsWrapperArgs as intended i.e. define it even if $dontWrapGApps is set, and document the intention. --- .../build-support/setup-hooks/wrap-gapps-hook.sh | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/pkgs/build-support/setup-hooks/wrap-gapps-hook.sh b/pkgs/build-support/setup-hooks/wrap-gapps-hook.sh index 82cc7ec330d6..9e0cd22c1198 100644 --- a/pkgs/build-support/setup-hooks/wrap-gapps-hook.sh +++ b/pkgs/build-support/setup-hooks/wrap-gapps-hook.sh @@ -8,9 +8,11 @@ find_gio_modules() { envHooks+=(find_gio_modules) +# Note: $gappsWrapperArgs still gets defined even if $dontWrapGApps is set. wrapGAppsHook() { - [ -z "$dontWrapGApps" ] || return - dontWrapGApps=1 # guard against running multiple times (e.g. due to propagation) + # guard against running multiple times (e.g. due to propagation) + [ -z "$wrapGAppsHookHasRun" ] || return + wrapGAppsHookHasRun=1 if [ -n "$GDK_PIXBUF_MODULE_FILE" ]; then gappsWrapperArgs+=(--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE") @@ -33,10 +35,12 @@ wrapGAppsHook() { gappsWrapperArgs+=(--prefix $v : "$dummy") done - for i in $prefix/bin/* $prefix/libexec/*; do - echo "Wrapping app $i" - wrapProgram "$i" "${gappsWrapperArgs[@]}" - done + if [ -z "$dontWrapGApps" ]; then + for i in $prefix/bin/* $prefix/libexec/*; do + echo "Wrapping app $i" + wrapProgram "$i" "${gappsWrapperArgs[@]}" + done + fi } fixupOutputHooks+=(wrapGAppsHook) From 2441e002e26d60e62306ae03a2c0d42fe156f129 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Mon, 9 Nov 2015 11:10:02 -0800 Subject: [PATCH 163/165] kernel: Remove unsupported 3.10, 3.12, 3.14 Our base kernel headers were bumped to 3.18 so we can no longer reliably support kernels older than 3.18 --- pkgs/build-support/grsecurity/default.nix | 2 +- pkgs/os-specific/linux/kernel/linux-3.10.nix | 17 ----------- pkgs/os-specific/linux/kernel/linux-3.12.nix | 17 ----------- pkgs/os-specific/linux/kernel/linux-3.14.nix | 18 ------------ pkgs/top-level/all-packages.nix | 31 -------------------- 5 files changed, 1 insertion(+), 84 deletions(-) delete mode 100644 pkgs/os-specific/linux/kernel/linux-3.10.nix delete mode 100644 pkgs/os-specific/linux/kernel/linux-3.12.nix delete mode 100644 pkgs/os-specific/linux/kernel/linux-3.14.nix diff --git a/pkgs/build-support/grsecurity/default.nix b/pkgs/build-support/grsecurity/default.nix index 3bf40a2e8d6b..6a964c535b8b 100644 --- a/pkgs/build-support/grsecurity/default.nix +++ b/pkgs/build-support/grsecurity/default.nix @@ -32,7 +32,7 @@ let stable-patch = with pkgs.kernelPatches; grsecurity_stable; grKernel = if cfg.stable - then mkKernel pkgs.linux_3_14 stable-patch + then throw "Grsecurity stable no longer supported due to https://grsecurity.net/announce.php" else mkKernel pkgs.linux_4_2 test-patch; ## -- grsecurity configuration --------------------------------------------- diff --git a/pkgs/os-specific/linux/kernel/linux-3.10.nix b/pkgs/os-specific/linux/kernel/linux-3.10.nix deleted file mode 100644 index a231b551dc06..000000000000 --- a/pkgs/os-specific/linux/kernel/linux-3.10.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ stdenv, fetchurl, perl, buildLinux, ... } @ args: - -import ./generic.nix (args // rec { - version = "3.10.92"; - extraMeta.branch = "3.10"; - - src = fetchurl { - url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz"; - sha256 = "0z0jdix1mfpnnc8cxw7rzpnhxdayckpnrasvxi1qf0dwhcqgk92d"; - }; - - features.iwlwifi = true; - features.efiBootStub = true; - features.needsCifsUtils = true; - features.canDisableNetfilterConntrackHelpers = true; - features.netfilterRPFilter = true; -}) diff --git a/pkgs/os-specific/linux/kernel/linux-3.12.nix b/pkgs/os-specific/linux/kernel/linux-3.12.nix deleted file mode 100644 index 7ed6cd142d15..000000000000 --- a/pkgs/os-specific/linux/kernel/linux-3.12.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ stdenv, fetchurl, perl, buildLinux, ... } @ args: - -import ./generic.nix (args // rec { - version = "3.12.50"; - extraMeta.branch = "3.12"; - - src = fetchurl { - url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz"; - sha256 = "1bn07wsrcbg4qgqd4v2810c3qc0ifbcza0fyj8s54yd78g9qj4lj"; - }; - - features.iwlwifi = true; - features.efiBootStub = true; - features.needsCifsUtils = true; - features.canDisableNetfilterConntrackHelpers = true; - features.netfilterRPFilter = true; -}) diff --git a/pkgs/os-specific/linux/kernel/linux-3.14.nix b/pkgs/os-specific/linux/kernel/linux-3.14.nix deleted file mode 100644 index afb4437459b7..000000000000 --- a/pkgs/os-specific/linux/kernel/linux-3.14.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ stdenv, fetchurl, perl, buildLinux, ... } @ args: - -import ./generic.nix (args // rec { - version = "3.14.56"; - # Remember to update grsecurity! - extraMeta.branch = "3.14"; - - src = fetchurl { - url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz"; - sha256 = "1ggvjrz51nfhj7amn3v2nd0b0x8dnz68k9cldzl729cqp9gsc3hf"; - }; - - features.iwlwifi = true; - features.efiBootStub = true; - features.needsCifsUtils = true; - features.canDisableNetfilterConntrackHelpers = true; - features.netfilterRPFilter = true; -} // (args.argsOverride or {})) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6a5f5f87abd2..47881b7d2ab4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9844,33 +9844,6 @@ let kernelPatches = [ kernelPatches.bridge_stp_helper ]; }; - linux_3_10 = callPackage ../os-specific/linux/kernel/linux-3.10.nix { - kernelPatches = [ kernelPatches.bridge_stp_helper ] - ++ lib.optionals ((platform.kernelArch or null) == "mips") - [ kernelPatches.mips_fpureg_emu - kernelPatches.mips_fpu_sigill - kernelPatches.mips_ext3_n32 - ]; - }; - - linux_3_12 = callPackage ../os-specific/linux/kernel/linux-3.12.nix { - kernelPatches = [ kernelPatches.bridge_stp_helper kernelPatches.crc_regression ] - ++ lib.optionals ((platform.kernelArch or null) == "mips") - [ kernelPatches.mips_fpureg_emu - kernelPatches.mips_fpu_sigill - kernelPatches.mips_ext3_n32 - ]; - }; - - linux_3_14 = callPackage ../os-specific/linux/kernel/linux-3.14.nix { - kernelPatches = [ kernelPatches.bridge_stp_helper ] - ++ lib.optionals ((platform.kernelArch or null) == "mips") - [ kernelPatches.mips_fpureg_emu - kernelPatches.mips_fpu_sigill - kernelPatches.mips_ext3_n32 - ]; - }; - linux_3_18 = callPackage ../os-specific/linux/kernel/linux-3.18.nix { kernelPatches = [ kernelPatches.bridge_stp_helper ] ++ lib.optionals ((platform.kernelArch or null) == "mips") @@ -10072,10 +10045,6 @@ let # Build the kernel modules for the some of the kernels. linuxPackages_rpi = linuxPackagesFor pkgs.linux_rpi linuxPackages_rpi; - linuxPackages_3_10 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_10 linuxPackages_3_10); - linuxPackages_3_10_tuxonice = linuxPackagesFor pkgs.linux_3_10_tuxonice linuxPackages_3_10_tuxonice; - linuxPackages_3_12 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_12 linuxPackages_3_12); - linuxPackages_3_14 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_14 linuxPackages_3_14); linuxPackages_3_18 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_18 linuxPackages_3_18); linuxPackages_4_1 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_4_1 linuxPackages_4_1); linuxPackages_4_2 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_4_2 linuxPackages_4_2); From 63385e971250812a232c5853b28cd46d80836a2c Mon Sep 17 00:00:00 2001 From: taku0 Date: Mon, 26 Oct 2015 21:08:51 +0900 Subject: [PATCH 164/165] ncurses: revived clang patch (close #10622) --- .../development/libraries/ncurses/clang.patch | 42 +++++++++++++++++++ .../development/libraries/ncurses/default.nix | 2 +- 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 pkgs/development/libraries/ncurses/clang.patch diff --git a/pkgs/development/libraries/ncurses/clang.patch b/pkgs/development/libraries/ncurses/clang.patch new file mode 100644 index 000000000000..ce33049bf405 --- /dev/null +++ b/pkgs/development/libraries/ncurses/clang.patch @@ -0,0 +1,42 @@ +diff -ruNp ncurses-5.8.orig/c++/cursesf.h ncurses-5.8/c++/cursesf.h +--- ncurses-5.8.orig/c++/cursesf.h 2005-08-13 21:08:24.000000000 +0300 ++++ ncurses-5.8/c++/cursesf.h 2011-04-03 18:29:29.000000000 +0300 +@@ -681,7 +681,7 @@ public: + const T* p_UserData = STATIC_CAST(T*)(0), + bool with_frame=FALSE, + bool autoDelete_Fields=FALSE) +- : NCursesForm (Fields, with_frame, autoDelete_Fields) { ++ : NCursesForm (&Fields, with_frame, autoDelete_Fields) { + if (form) + set_user (const_cast(p_UserData)); + }; +@@ -694,7 +694,7 @@ public: + const T* p_UserData = STATIC_CAST(T*)(0), + bool with_frame=FALSE, + bool autoDelete_Fields=FALSE) +- : NCursesForm (Fields, nlines, ncols, begin_y, begin_x, ++ : NCursesForm (&Fields, nlines, ncols, begin_y, begin_x, + with_frame, autoDelete_Fields) { + if (form) + set_user (const_cast(p_UserData)); +diff -ruNp ncurses-5.8.orig/c++/cursesm.h ncurses-5.8/c++/cursesm.h +--- ncurses-5.8.orig/c++/cursesm.h 2005-08-13 21:10:36.000000000 +0300 ++++ ncurses-5.8/c++/cursesm.h 2011-04-03 18:31:42.000000000 +0300 +@@ -639,7 +639,7 @@ public: + const T* p_UserData = STATIC_CAST(T*)(0), + bool with_frame=FALSE, + bool autoDelete_Items=FALSE) +- : NCursesMenu (Items, with_frame, autoDelete_Items) { ++ : NCursesMenu (&Items, with_frame, autoDelete_Items) { + if (menu) + set_user (const_cast(p_UserData)); + }; +@@ -651,7 +651,7 @@ public: + int begin_x = 0, + const T* p_UserData = STATIC_CAST(T*)(0), + bool with_frame=FALSE) +- : NCursesMenu (Items, nlines, ncols, begin_y, begin_x, with_frame) { ++ : NCursesMenu (&Items, nlines, ncols, begin_y, begin_x, with_frame) { + if (menu) + set_user (const_cast(p_UserData)); + }; diff --git a/pkgs/development/libraries/ncurses/default.nix b/pkgs/development/libraries/ncurses/default.nix index 517410051581..c505d89a6d8f 100644 --- a/pkgs/development/libraries/ncurses/default.nix +++ b/pkgs/development/libraries/ncurses/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { }; # gcc-5.patch should be removed after 5.9 - patches = [ ./gcc-5.patch ]; + patches = [ ./clang.patch ./gcc-5.patch ]; configureFlags = [ "--with-shared" From cb21b77ff1b9ed006d1180ad7c94b2ee7ed3c096 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Tue, 10 Nov 2015 18:25:47 -0800 Subject: [PATCH 165/165] gtk3: 3.18.0 -> 3.18.3 --- pkgs/development/libraries/gtk+/3.x.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/gtk+/3.x.nix b/pkgs/development/libraries/gtk+/3.x.nix index 9bf95d015dd7..2a7c7b88c385 100644 --- a/pkgs/development/libraries/gtk+/3.x.nix +++ b/pkgs/development/libraries/gtk+/3.x.nix @@ -10,7 +10,7 @@ assert cupsSupport -> cups != null; let ver_maj = "3.18"; - ver_min = "0"; + ver_min = "3"; version = "${ver_maj}.${ver_min}"; in stdenv.mkDerivation rec { @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "mirror://gnome/sources/gtk+/${ver_maj}/gtk+-${version}.tar.xz"; - sha256 = "7fb8ae257403317d3852bad28d064d35f67e978b1fed8b71d5997e87204271b9"; + sha256 = "f3c76791f93f51e260b03676f83007730b9875a0a9bf5cd42442e2f14e593546"; }; nativeBuildInputs = [ pkgconfig gettext gobjectIntrospection perl ];