- Submit acpid
- Submit btrfs-progs
- Submit generic-logos
- Submit grubby
- Submit installer-shell
- Submit kbuild
- Submit kernel-adaptation-pc
- Submit linux-firmware
- Submit mesa-x86-generic
- Submit mkinitrd
- Submit mtdev
- Submit mtools
- Submit nemo-mobile-configs-x86-generic
- Submit nemo-mobile-configs-x86-vm
- Submit parted
- Submit pattern-x86-generic
- Submit pattern-x86-vm
- Submit patterns-x86-common
- Submit rsync
- Submit syslinux
- Submit virtualbox
- Submit xorg-x11-drv-intel
- Submit xorg-x11-drv-mtev
- Submit xorg-x11-drv-synaptics
Submit package nemo:devel:hw:x86:x86-common / acpid (revision 1) to package nemo:testing:hw:x86:x86-common / acpid
[-] [+] | Added | acpid.changes |
[-] [+] | Added | acpid.spec ^ |
[-] [+] | Added | acpid-2.0.9-makefile.patch ^ |
@@ -0,0 +1,16 @@ +diff -uprN acpid-2.0.9/Makefile acpid-2.0.9-new/Makefile +--- acpid-2.0.9/Makefile 2011-03-12 08:06:19.000000000 -0800 ++++ acpid-2.0.9-new/Makefile 2011-05-25 15:58:12.990292018 -0700 +@@ -31,9 +31,9 @@ MAN8GZ = $(MAN8:.8=.8.gz) + + DOCS = COPYING Changelog README TESTPLAN TODO + +-CFLAGS = -W -Wall -Werror -Wundef -Wshadow -D_GNU_SOURCE $(OPT) \ +- -fno-strict-aliasing -g $(DEFS) +-DEFS = -DVERSION="\"$(VERSION)\"" ++CFLAGS = -W -Wall -Werror -Wundef -Wshadow -O2 -g $(DEFS) $(RPM_OPT_FLAGS) -fPIE ++LDFLAGS = -pie -Wl,-z,relro ++DEFS = -DVERSION="\"$(VERSION)\"" -D_GNU_SOURCE + + all: $(PROGS) + | ||
[-] [+] | Added | acpid ^ |
@@ -0,0 +1 @@ +OPTIONS= | ||
Added | acpid-2.0.14.tar.gz ^ | |
[-] [+] | Added | acpid-start-script ^ |
@@ -0,0 +1,4 @@ +#!/bin/sh + +/usr/sbin/acpid & +/etc/acpi/actions/start.sh | ||
[-] [+] | Added | acpid.ac.conf ^ |
@@ -0,0 +1,5 @@ +# /etc/acpi/events/battery +# Called when AC power changes (plug/unplug) + +event=ac_adapter.* +action=/etc/acpi/actions/battery.sh | ||
[-] [+] | Added | acpid.battery.conf ^ |
@@ -0,0 +1,5 @@ +# /etc/acpi/events/battery +# Called when AC power goes away and we switch to battery + +event=battery.* +action=/etc/acpi/actions/battery.sh | ||
[-] [+] | Added | acpid.battery.sh ^ |
@@ -0,0 +1,39 @@ +#!/bin/sh + +. /etc/sysconfig/acpi +. /usr/share/acpi/power-funcs + +if [ x$1 = xstop ] ; then + # When stop, we go to the AC state regardless of the actual power state. + RUN_SCRIPT_DIR=/etc/acpi/ac.d + + # However, if we have a stored power state, and that power state is already + # AC, then we don't need to do anything, and we exit immediately. + if [ -f "$POWERSTATE" ]; then + OLDSTATE=$(cat $POWERSTATE) + if [ "$OLDSTATE" = "AC" ] ; then + exit 0 + fi + fi +else + # Get the power state (AC/BATTERY) into STATE + getState; + + # Compare the power state with a stored state and exit if the state is the + # same. If not, then store the power state for comparison the next time + # around. + checkStateChanged; + + if [ "$STATE" = "BATTERY" ] ; then + RUN_SCRIPT_DIR=/etc/acpi/battery.d + else + RUN_SCRIPT_DIR=/etc/acpi/ac.d + fi +fi + +for SCRIPT in $RUN_SCRIPT_DIR/*.sh; do + if [ -f $SCRIPT ] ; then + . $SCRIPT + fi +done + | ||
[-] [+] | Added | acpid.lid.conf ^ |
@@ -0,0 +1,5 @@ +# ACPID config to suspend machine if lidbutton is pressed, but only if +# no gnome-power-manager is running + +event=button/lid.* +action=/etc/acpi/actions/lid.sh | ||
[-] [+] | Added | acpid.lid.sh ^ |
@@ -0,0 +1,37 @@ +#!/bin/sh + +PATH=/sbin:/bin:/usr/bin + +grep -q open /proc/acpi/button/lid/*/state +if [ $? == 0 ]; then + exit +fi +if [ "`who -r | awk '{print $2}'`" == "0" ]; then + exit +fi + +# Get the ID of the first active X11 session: +uid_session=$( +ck-list-sessions | \ +awk ' +/^Session[0-9]+:$/ { uid = active = x11 = "" ; next } +{ gsub(/'\''/, "", $3) } +$1 == "unix-user" { uid = $3 } +$1 == "active" { active = $3 } +$1 == "x11-display" { x11 = $3 } +active == "TRUE" && x11 != "" { + print uid + exit +}') + +# Check that there is a power manager, otherwise shut down. +[ "$uid_session" ] && +ps axo uid,cmd | \ +awk ' + $1 == '$uid_session' && + ($2 == "gnome-power-manager" || $2 == "kpowersave" || $2 == "xfce4-power-manager" || $2 ~ /meego-power-icon/ ) \ + { found = 1; exit } + END { exit !found } +' || + echo "mem" > /sys/power/state + | ||
[-] [+] | Added | acpid.power.conf ^ |
@@ -0,0 +1,5 @@ +# ACPID config to power down machine if powerbutton is pressed, but only if +# no gnome-power-manager is running + +event=button/power.* +action=/etc/acpi/actions/power.sh | ||
[-] [+] | Added | acpid.power.sh ^ |
@@ -0,0 +1,13 @@ +#!/bin/sh + +PATH=/sbin:/bin:/usr/bin + +# Check that there is a power manager, otherwise shut down. +ps axo uid,cmd | \ +awk ' + ($2 == "gnome-power-manager" || $2 == "/sbin/mce" || $2 == "kpowersave" || $2 == "xfce4-power-manager" || $2 ~ /meego-power-icon/ ) \ + { found = 1; exit } + END { exit !found } +' || + shutdown -h now + | ||
[-] [+] | Added | acpid.service ^ |
@@ -0,0 +1,10 @@ +[Unit] +Description=ACPI event daemon + +[Service] +Type=forking +EnvironmentFile=/etc/sysconfig/acpid +ExecStart=/usr/sbin/acpid $OPTIONS + +[Install] +WantedBy=multi-user.target | ||
[-] [+] | Added | acpid.start.sh ^ |
@@ -0,0 +1,7 @@ +#!/bin/sh + +for SCRIPT in /etc/acpi/start.d/*.sh; do + if [ -x $SCRIPT ] ; then + . $SCRIPT + fi +done | ||
[-] [+] | Added | acpid.video.conf ^ |
@@ -0,0 +1,6 @@ +# Configuration to turn on DPMS again on video activity, needed for some +# laptops. Disabled by default, uncomment if your laptop display stays blank +# after you close and open the lid. + +#event=video.* +#action=/usr/sbin/vbetool dpms on | ||
[-] [+] | Added | acpid.yaml ^ |
@@ -0,0 +1,34 @@ +Name: acpid +Summary: ACPI Event Daemon +Version: 2.0.14 +Release: 1 +Group: System/Daemons +License: GPLv2+ and BSD +URL: http://tedfelix.com/linux/acpid-netlink.html +Sources: + - http://tedfelix.com/linux/acpid-%{version}.tar.gz + - acpid.video.conf + - acpid.power.conf + - acpid.power.sh + - acpid.lid.conf + - acpid.lid.sh + - acpid.battery.sh + - acpid.battery.conf + - acpid.ac.conf + - acpid-start-script + - acpid.start.sh + - acpid.service + - acpid +Patches: + - acpid-2.0.9-makefile.patch +Description: acpid is a daemon that dispatches ACPI events to user-space programs. + +Configure: none +Builder: make +ExclusiveArch: ia64 x86_64 %{ix86} +SubPackages: + - Name: extra-docs + Summary: sample docs and sample scripts for apcid + Group: Documentation + Description: Extra sample docs and scripts for acpid. + |
Submit package nemo:devel:hw:x86:x86-common / btrfs-progs (revision 1) to package nemo:testing:...86:x86-common / btrfs-progs
[-] [+] | Added | btrfs-progs.changes |
[-] [+] | Added | btrfs-progs.spec ^ |
[-] [+] | Added | btrfs-progs-0.19-gcc46.patch ^ |
@@ -0,0 +1,11 @@ +diff -ruNa btrfs-progs-0.19.orig/Makefile btrfs-progs-0.19/Makefile +--- btrfs-progs-0.19.orig/Makefile 2011-05-26 14:27:08.060129919 +0800 ++++ btrfs-progs-0.19/Makefile 2011-05-27 16:14:57.334907499 +0800 +@@ -1,6 +1,6 @@ + CC=gcc + AM_CFLAGS = -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 +-CFLAGS = -g -Werror -Os ++CFLAGS = -g -Werror -Wno-unused-but-set-variable -Os + objects = ctree.o disk-io.o radix-tree.o extent-tree.o print-tree.o \ + root-tree.o dir-item.o file-item.o inode-item.o \ + inode-map.o crc32c.o rbtree.o extent-cache.o extent_io.o \ | ||
[-] [+] | Added | btrfs-progs-build-convert.patch ^ |
@@ -0,0 +1,24 @@ +diff -u a/Makefile b/Makefile +--- a/Makefile 2011-03-22 16:42:48.088948115 +0800 ++++ b/Makefile 2011-03-22 16:49:57.687948116 +0800 +@@ -18,7 +18,8 @@ + + progs = btrfsctl mkfs.btrfs btrfs-debug-tree btrfs-show btrfs-vol btrfsck \ + btrfs \ +- btrfs-map-logical ++ btrfs-map-logical \ ++ btrfs-convert + + # make C=1 to enable sparse + ifdef C +@@ -77,7 +78,7 @@ + quick-test: $(objects) quick-test.o + gcc $(CFLAGS) -o quick-test $(objects) quick-test.o $(LDFLAGS) $(LIBS) + +-convert: $(objects) convert.o ++btrfs-convert: $(objects) convert.o + gcc $(CFLAGS) -o btrfs-convert $(objects) convert.o -lext2fs -lcom_err $(LDFLAGS) $(LIBS) + + ioctl-test: $(objects) ioctl-test.o +Common subdirectories: a/man and b/man +Only in b: version.h | ||
[-] [+] | Added | btrfs-progs-fix-labels.patch ^ |
@@ -0,0 +1,25 @@ +diff --git a/mkfs.c b/mkfs.c +index d664254..138bcc9 100644 +--- a/mkfs.c ++++ b/mkfs.c +@@ -294,7 +294,6 @@ static u64 parse_profile(char *s) + + static char *parse_label(char *input) + { +- int i; + int len = strlen(input); + + if (len > BTRFS_LABEL_SIZE) { +@@ -302,12 +301,6 @@ static char *parse_label(char *input) + BTRFS_LABEL_SIZE); + exit(1); + } +- for (i = 0; i < len; i++) { +- if (input[i] == '/' || input[i] == '\\') { +- fprintf(stderr, "invalid label %s\n", input); +- exit(1); +- } +- } + return strdup(input); + } + | ||
[-] [+] | Added | btrfs-progs-install-fsck-symlink.patch ^ |
@@ -0,0 +1,10 @@ +diff -Nurb btrfs-progs-0.19-orig/Makefile btrfs-progs-0.19/Makefile +--- btrfs-progs-0.19-orig/Makefile 2009-06-11 09:56:15.000000000 -0700 ++++ btrfs-progs-0.19/Makefile 2009-09-30 13:07:55.212490469 -0700 +@@ -82,5 +82,6 @@ + $(INSTALL) -m755 -d $(DESTDIR)$(bindir) + $(INSTALL) $(progs) $(DESTDIR)$(bindir) + if [ -e btrfs-convert ]; then $(INSTALL) btrfs-convert $(DESTDIR)$(bindir); fi ++ ln -sf btrfsck $(DESTDIR)$(bindir)/fsck.btrfs + + -include .*.d | ||
[-] [+] | Added | btrfs-progs-update-uuid.patch ^ |
@@ -0,0 +1,470 @@ +diff --git a/ctree.c b/ctree.c +index f70e10c..d5f1e99 100644 +--- a/ctree.c ++++ b/ctree.c +@@ -625,13 +625,13 @@ static int check_leaf(struct btrfs_root *root, struct btrfs_path *path, + btrfs_item_key_to_cpu(leaf, &cpukey, i + 1); + btrfs_item_key(leaf, &leaf_key, i); + if (comp_keys(&leaf_key, &cpukey) >= 0) { +- btrfs_print_leaf(root, leaf); ++ btrfs_print_leaf(root, leaf, 0); + printk("slot %d offset bad key\n", i); + BUG_ON(1); + } + if (btrfs_item_offset_nr(leaf, i) != + btrfs_item_end_nr(leaf, i + 1)) { +- btrfs_print_leaf(root, leaf); ++ btrfs_print_leaf(root, leaf, 0); + printk("slot %d offset bad\n", i); + BUG_ON(1); + } +@@ -639,7 +639,7 @@ static int check_leaf(struct btrfs_root *root, struct btrfs_path *path, + if (btrfs_item_offset_nr(leaf, i) + + btrfs_item_size_nr(leaf, i) != + BTRFS_LEAF_DATA_SIZE(root)) { +- btrfs_print_leaf(root, leaf); ++ btrfs_print_leaf(root, leaf, 0); + printk("slot %d first offset bad\n", i); + BUG_ON(1); + } +@@ -647,7 +647,7 @@ static int check_leaf(struct btrfs_root *root, struct btrfs_path *path, + } + if (nritems > 0) { + if (btrfs_item_size_nr(leaf, nritems - 1) > 4096) { +- btrfs_print_leaf(root, leaf); ++ btrfs_print_leaf(root, leaf, 0); + printk("slot %d bad size \n", nritems - 1); + BUG_ON(1); + } +@@ -657,13 +657,13 @@ static int check_leaf(struct btrfs_root *root, struct btrfs_path *path, + btrfs_item_key(leaf, &leaf_key, slot); + btrfs_item_key_to_cpu(leaf, &cpukey, slot - 1); + if (btrfs_comp_keys(&leaf_key, &cpukey) <= 0) { +- btrfs_print_leaf(root, leaf); ++ btrfs_print_leaf(root, leaf, 0); + printk("slot %d offset bad key\n", slot); + BUG_ON(1); + } + if (btrfs_item_offset_nr(leaf, slot - 1) != + btrfs_item_end_nr(leaf, slot)) { +- btrfs_print_leaf(root, leaf); ++ btrfs_print_leaf(root, leaf, 0); + printk("slot %d offset bad\n", slot); + BUG_ON(1); + } +@@ -674,7 +674,7 @@ static int check_leaf(struct btrfs_root *root, struct btrfs_path *path, + BUG_ON(btrfs_comp_keys(&leaf_key, &cpukey) >= 0); + if (btrfs_item_offset_nr(leaf, slot) != + btrfs_item_end_nr(leaf, slot + 1)) { +- btrfs_print_leaf(root, leaf); ++ btrfs_print_leaf(root, leaf, 0); + printk("slot %d offset bad\n", slot); + BUG_ON(1); + } +@@ -2356,7 +2356,7 @@ split: + + ret = 0; + if (btrfs_leaf_free_space(root, leaf) < 0) { +- btrfs_print_leaf(root, leaf); ++ btrfs_print_leaf(root, leaf, 0); + BUG(); + } + kfree(buf); +@@ -2456,7 +2456,7 @@ int btrfs_truncate_item(struct btrfs_trans_handle *trans, + + ret = 0; + if (btrfs_leaf_free_space(root, leaf) < 0) { +- btrfs_print_leaf(root, leaf); ++ btrfs_print_leaf(root, leaf, 0); + BUG(); + } + return ret; +@@ -2484,7 +2484,7 @@ int btrfs_extend_item(struct btrfs_trans_handle *trans, + data_end = leaf_data_end(root, leaf); + + if (btrfs_leaf_free_space(root, leaf) < data_size) { +- btrfs_print_leaf(root, leaf); ++ btrfs_print_leaf(root, leaf, 0); + BUG(); + } + slot = path->slots[0]; +@@ -2492,7 +2492,7 @@ int btrfs_extend_item(struct btrfs_trans_handle *trans, + + BUG_ON(slot < 0); + if (slot >= nritems) { +- btrfs_print_leaf(root, leaf); ++ btrfs_print_leaf(root, leaf, 0); + printk("slot %d too large, nritems %d\n", slot, nritems); + BUG_ON(1); + } +@@ -2521,7 +2521,7 @@ int btrfs_extend_item(struct btrfs_trans_handle *trans, + + ret = 0; + if (btrfs_leaf_free_space(root, leaf) < 0) { +- btrfs_print_leaf(root, leaf); ++ btrfs_print_leaf(root, leaf, 0); + BUG(); + } + return ret; +@@ -2572,7 +2572,7 @@ int btrfs_insert_empty_items(struct btrfs_trans_handle *trans, + data_end = leaf_data_end(root, leaf); + + if (btrfs_leaf_free_space(root, leaf) < total_size) { +- btrfs_print_leaf(root, leaf); ++ btrfs_print_leaf(root, leaf, 0); + printk("not enough freespace need %u have %d\n", + total_size, btrfs_leaf_free_space(root, leaf)); + BUG(); +@@ -2586,7 +2586,7 @@ int btrfs_insert_empty_items(struct btrfs_trans_handle *trans, + unsigned int old_data = btrfs_item_end_nr(leaf, slot); + + if (old_data < data_end) { +- btrfs_print_leaf(root, leaf); ++ btrfs_print_leaf(root, leaf, 0); + printk("slot %d old_data %d data_end %d\n", + slot, old_data, data_end); + BUG_ON(1); +@@ -2634,7 +2634,7 @@ int btrfs_insert_empty_items(struct btrfs_trans_handle *trans, + } + + if (btrfs_leaf_free_space(root, leaf) < 0) { +- btrfs_print_leaf(root, leaf); ++ btrfs_print_leaf(root, leaf, 0); + BUG(); + } + +diff --git a/debug-tree.c b/debug-tree.c +index 0525354..cf18e94 100644 +--- a/debug-tree.c ++++ b/debug-tree.c +@@ -103,6 +103,8 @@ static void print_extents(struct btrfs_root *root, struct extent_buffer *eb) + } + } + ++extern u8 new_fsid[BTRFS_FSID_SIZE]; ++ + int main(int ac, char **av) + { + struct btrfs_root *root; +@@ -119,12 +121,13 @@ int main(int ac, char **av) + int device_only = 0; + u64 block_only = 0; + struct btrfs_root *tree_root_scan; ++ int update_uuid = 0; + + radix_tree_init(); + + while(1) { + int c; +- c = getopt(ac, av, "deb:"); ++ c = getopt(ac, av, "deub:"); + if (c < 0) + break; + switch(c) { +@@ -137,6 +140,9 @@ int main(int ac, char **av) + case 'b': + block_only = atoll(optarg); + break; ++ case 'u': ++ update_uuid = 1; ++ break; + default: + print_usage(); + } +@@ -145,7 +151,10 @@ int main(int ac, char **av) + if (ac != 1) + print_usage(); + +- root = open_ctree(av[optind], 0, 0); ++ if (update_uuid) ++ uuid_generate(new_fsid); ++ ++ root = open_ctree(av[optind], 0, update_uuid); + if (!root) { + fprintf(stderr, "unable to open %s\n", av[optind]); + exit(1); +@@ -169,18 +178,18 @@ int main(int ac, char **av) + fprintf(stderr, "failed to read %llu\n", block_only); + return 0; + } +- btrfs_print_tree(root, leaf, 0); ++ btrfs_print_tree(root, leaf, 0, update_uuid); + return 0; + } + + if (!extent_only) { + printf("root tree\n"); + btrfs_print_tree(root->fs_info->tree_root, +- root->fs_info->tree_root->node, 1); ++ root->fs_info->tree_root->node, 1, update_uuid); | ||
[-] [+] | Added | btrfs-progs-upstream-v0.19-35.patch ^ |
@@ -0,0 +1,4563 @@ +diff -aNur a/Makefile b/Makefile +--- a/Makefile 2009-06-12 00:56:15.000000000 +0800 ++++ b/Makefile 2011-03-22 16:32:44.595948115 +0800 +@@ -4,7 +4,7 @@ + objects = ctree.o disk-io.o radix-tree.o extent-tree.o print-tree.o \ + root-tree.o dir-item.o file-item.o inode-item.o \ + inode-map.o crc32c.o rbtree.o extent-cache.o extent_io.o \ +- volumes.o utils.o ++ volumes.o utils.o btrfs-list.o + + # + CHECKFLAGS=-D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ -Wbitwise \ +@@ -16,7 +16,9 @@ + bindir = $(prefix)/bin + LIBS=-luuid + +-progs = btrfsctl mkfs.btrfs btrfs-debug-tree btrfs-show btrfs-vol btrfsck ++progs = btrfsctl mkfs.btrfs btrfs-debug-tree btrfs-show btrfs-vol btrfsck \ ++ btrfs \ ++ btrfs-map-logical + + # make C=1 to enable sparse + ifdef C +@@ -35,6 +37,10 @@ + version: + bash version.sh + ++btrfs: $(objects) btrfs.o btrfs_cmds.o ++ gcc $(CFLAGS) -o btrfs btrfs.o btrfs_cmds.o \ ++ $(objects) $(LDFLAGS) $(LIBS) ++ + btrfsctl: $(objects) btrfsctl.o + gcc $(CFLAGS) -o btrfsctl btrfsctl.o $(objects) $(LDFLAGS) $(LIBS) + +@@ -53,9 +59,15 @@ + btrfs-debug-tree: $(objects) debug-tree.o + gcc $(CFLAGS) -o btrfs-debug-tree $(objects) debug-tree.o $(LDFLAGS) $(LIBS) + ++btrfs-zero-log: $(objects) btrfs-zero-log.o ++ gcc $(CFLAGS) -o btrfs-zero-log $(objects) btrfs-zero-log.o $(LDFLAGS) $(LIBS) ++ + btrfstune: $(objects) btrfstune.o + gcc $(CFLAGS) -o btrfstune $(objects) btrfstune.o $(LDFLAGS) $(LIBS) + ++btrfs-map-logical: $(objects) btrfs-map-logical.o ++ gcc $(CFLAGS) -o btrfs-map-logical $(objects) btrfs-map-logical.o $(LDFLAGS) $(LIBS) ++ + btrfs-image: $(objects) btrfs-image.o + gcc $(CFLAGS) -o btrfs-image $(objects) btrfs-image.o -lpthread -lz $(LDFLAGS) $(LIBS) + +@@ -66,7 +78,10 @@ + gcc $(CFLAGS) -o quick-test $(objects) quick-test.o $(LDFLAGS) $(LIBS) + + convert: $(objects) convert.o +- gcc $(CFLAGS) -o btrfs-convert $(objects) convert.o -lext2fs $(LDFLAGS) $(LIBS) ++ gcc $(CFLAGS) -o btrfs-convert $(objects) convert.o -lext2fs -lcom_err $(LDFLAGS) $(LIBS) ++ ++ioctl-test: $(objects) ioctl-test.o ++ gcc $(CFLAGS) -o ioctl-test $(objects) ioctl-test.o $(LDFLAGS) $(LIBS) + + manpages: + cd man; make +diff -aNur a/btrfs-defrag.c b/btrfs-defrag.c +--- a/btrfs-defrag.c 1970-01-01 07:00:00.000000000 +0700 ++++ b/btrfs-defrag.c 2011-03-22 16:32:44.598948115 +0800 +@@ -0,0 +1,39 @@ ++/* ++ * Copyright (C) 2010 Oracle. All rights reserved. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public ++ * License v2 as published by the Free Software Foundation. ++ * ++ * 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., 59 Temple Place - Suite 330, ++ * Boston, MA 021110-1307, USA. ++ */ ++ ++#ifndef __CHECKER__ ++#include <sys/ioctl.h> ++#include <sys/mount.h> ++#include "ioctl.h" ++#endif ++#include <stdio.h> ++#include <stdlib.h> ++#include <sys/types.h> ++#include <sys/stat.h> ++#include <fcntl.h> ++#include <ctype.h> ++#include <unistd.h> ++#include <dirent.h> ++#include <libgen.h> ++#include <getopt.h> ++#include "kerncompat.h" ++#include "ctree.h" ++#include "transaction.h" ++#include "utils.h" ++#include "version.h" ++ +diff -aNur a/btrfs-list.c b/btrfs-list.c +--- a/btrfs-list.c 1970-01-01 07:00:00.000000000 +0700 ++++ b/btrfs-list.c 2011-03-22 16:32:44.599948115 +0800 +@@ -0,0 +1,835 @@ ++/* ++ * Copyright (C) 2010 Oracle. All rights reserved. ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public ++ * License v2 as published by the Free Software Foundation. ++ * ++ * 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., 59 Temple Place - Suite 330, ++ * Boston, MA 021110-1307, USA. ++ */ ++ ++#define _GNU_SOURCE ++#ifndef __CHECKER__ ++#include <sys/ioctl.h> ++#include <sys/mount.h> ++#include "ioctl.h" ++#endif ++#include <stdio.h> ++#include <stdlib.h> ++#include <sys/types.h> ++#include <sys/stat.h> ++#include <fcntl.h> ++#include <unistd.h> ++#include <dirent.h> ++#include <libgen.h> ++#include "kerncompat.h" ++#include "ctree.h" ++#include "transaction.h" ++#include "utils.h" ++#include "version.h" ++ ++/* we store all the roots we find in an rbtree so that we can ++ * search for them later. ++ */ ++struct root_lookup { ++ struct rb_root root; ++}; ++ ++/* ++ * one of these for each root we find. ++ */ ++struct root_info { ++ struct rb_node rb_node; ++ ++ /* this root's id */ ++ u64 root_id; ++ ++ /* the id of the root that references this one */ ++ u64 ref_tree; ++ ++ /* the dir id we're in from ref_tree */ ++ u64 dir_id; ++ ++ /* path from the subvol we live in to this root, including the ++ * root's name. This is null until we do the extra lookup ioctl. ++ */ ++ char *path; ++ ++ /* the name of this root in the directory it lives in */ ++ char name[]; ++}; ++ ++static void root_lookup_init(struct root_lookup *tree) ++{ ++ tree->root.rb_node = NULL; ++} ++ ++static int comp_entry(struct root_info *entry, u64 root_id, u64 ref_tree) ++{ ++ if (entry->root_id > root_id) ++ return 1; ++ if (entry->root_id < root_id) ++ return -1; ++ if (entry->ref_tree > ref_tree) ++ return 1; ++ if (entry->ref_tree < ref_tree) ++ return -1; ++ return 0; ++} ++ ++/* ++ * insert a new root into the tree. returns the existing root entry ++ * if one is already there. Both root_id and ref_tree are used | ||
Added | btrfs-progs-0.19.tar.bz2 ^ | |
[-] [+] | Added | btrfs-progs.yaml ^ |
@@ -0,0 +1,25 @@ +Name: btrfs-progs +Summary: Btrfs helper utilities +Description: Btrfs userspace utilities, include btrfs, btrfs-debug-tree and etc. +Version: 0.19 +Release: 1 +Group: System/Base +License: GPLv2 +URL: http://www.kernel.org/pub/linux/kernel/people/mason/btrfs/ +Sources: + - http://www.kernel.org/pub/linux/kernel/people/mason/btrfs/btrfs-progs-%{version}.tar.bz2 +Patches: + - btrfs-progs-upstream-v0.19-35.patch + - btrfs-progs-fix-labels.patch + - btrfs-progs-install-fsck-symlink.patch + - btrfs-progs-build-convert.patch + - btrfs-progs-update-uuid.patch + - btrfs-progs-0.19-gcc46.patch + +PkgConfigBR: + - uuid + - e2p + - ext2fs +PkgBR: + - libacl-devel +Configure: none |
Submit package nemo:devel:h...6:x86-common / generic-logos (revision 1) to package nemo:testing...6:x86-common / generic-logos
[-] [+] | Added | generic-logos.changes |
[-] [+] | Added | generic-logos.spec ^ |
Added | generic-logos-2.1.2.tar.bz2 ^ |
Submit package nemo:devel:hw:x86:x86-common / grubby (revision 1) to package nemo:testing:hw:x86:x86-common / grubby
[-] [+] | Added | grubby.changes |
[-] [+] | Added | grubby.spec ^ |
[-] [+] | Added | change-to-moblin-release.patch ^ |
@@ -0,0 +1,16 @@ +diff --git a/new-kernel-pkg b/new-kernel-pkg +index 6d61446..c20cd48 100755 +--- a/new-kernel-pkg ++++ b/new-kernel-pkg +@@ -150,9 +150,9 @@ install() { + if [ -n "$banner" ]; then + title="$banner ($version)" + elif [ -f /etc/redhat-release ]; then +- title="$(sed 's/ release.*$//' < /etc/redhat-release) ($version)" ++ title="$(sed -e 's/ release.*$//' -e q < /etc/moblin-release) ($version)" + else +- title="Red Hat Linux ($version)" ++ title="Moblin ($version)" + fi + $grubby --add-kernel=$bootPrefix/$kernelName-$version \ + $INITRD --copy-default $makedefault --title "$title" \ | ||
[-] [+] | Added | grubby_add_kboot.patch ^ |
@@ -0,0 +1,19 @@ +Index: grubby-7.0.8/new-kernel-pkg +=================================================================== +--- grubby-7.0.8.orig/new-kernel-pkg ++++ grubby-7.0.8/new-kernel-pkg +@@ -248,6 +248,14 @@ install() { + else + [ -n "$verbose" ] && echo "$syslinuxConfig does not exist, not running grubby" + fi ++ ++ # kboot symlink handling ++ if [ -h /boot/bzImage -a -h /boot/initrd -a -h /boot/cmdline -a \ ++ "`readlink /boot/cmdline`" == "kboot.cmdline" ]; then ++ ln -sf `basename $initrdfile` /boot/initrd ++ ln -sf $kernelName-$version /boot/bzImage ++ ++ fi + } + + rpmposttrans() | ||
[-] [+] | Added | more-support-code-for-syslinux.patch ^ |
@@ -0,0 +1,217 @@ +diff --git a/grubby.c b/grubby.c +index e5f4bee..59ae341 100644 +--- a/grubby.c ++++ b/grubby.c +@@ -35,6 +35,7 @@ + #include <execinfo.h> + #include <signal.h> + #include <blkid/blkid.h> ++#include <linux/kdev_t.h> + + #define DEBUG 0 + +@@ -1155,6 +1156,32 @@ static int numEntries(struct grubConfig *cfg) { + return i; + } + ++static int deviceMountsToHere(char * device, char * mnt) { ++ FILE * fp = NULL; ++ char line[256]; ++ char * str = NULL; ++ int ret = -1; ++ ++ fp = popen("/bin/mount", "r"); ++ if (fp == NULL) { ++ return ret; ++ } ++ ++ while (fgets(line, 255, fp)) { ++ if (strncmp(line, device, strlen(device)) == 0) { ++ str = strstr(line + strlen(device), mnt); ++ if (str != NULL) { ++ if ((*(str-1) == ' ') && (*(str+strlen(mnt)) == ' ')) { ++ ret = 0; ++ break; ++ } ++ } ++ } ++ } ++ pclose(fp); ++ return ret; ++} ++ + int suitableImage(struct singleEntry * entry, const char * bootPrefix, + int skipRemoved, int flags) { + struct singleLine * line; +@@ -1217,6 +1244,11 @@ int suitableImage(struct singleEntry * entry, const char * bootPrefix, + return 0; + + stat("/", &sb2); ++ if (MAJOR(sb2.st_dev) == 0) { // For btrfs, we must do with it specially ++ if (deviceMountsToHere(dev, "/") == 0) { ++ return 1; ++ } ++ } + + if (sb.st_rdev != sb2.st_dev) + return 0; +@@ -1407,7 +1439,7 @@ char * findBootPrefix(void) { + #ifdef __ia64__ + return strdup("/boot/efi/EFI/redhat/"); + #else +- return strdup("/boot"); ++ return strdup("/boot/"); + #endif + } + +diff --git a/new-kernel-pkg b/new-kernel-pkg +index c20cd48..4ddc54b 100755 +--- a/new-kernel-pkg ++++ b/new-kernel-pkg +@@ -26,6 +26,7 @@ + PATH=/sbin:/bin:$PATH + + lilo=/sbin/lilo ++syslinux=/sbin/extlinux + + # some defaults that are sane for most arches + kernelName=vmlinuz +@@ -40,8 +41,11 @@ fi + + cfgGrub="" + cfgLilo="" ++cfgSyslinux="" + runLilo="" ++runSyslinux="" + grubConfig="" ++syslinuxConfig="" + + ARCH=$(uname -m) + +@@ -74,9 +78,12 @@ else + # this leaves i?86 and x86_64 + liloConfig=/etc/lilo.conf + grubConfig=$(readlink -f /etc/grub.conf 2>/dev/null) ++ syslinuxConfig="/boot/extlinux/extlinux.conf" + bootPrefix=/boot + liloFlag=lilo + isx86="yes" ++ syslinuxFlag=extlinux ++ runSyslinux="yes" + fi + + mode="" +@@ -136,8 +143,11 @@ install() { + return + fi + +- # get the root filesystem to use ++ # get the root filesystem to use, must be device name instead of UUID + rootdevice=$(awk '{ if ($1 !~ /^[ \t]*#/ && $2 == "/") { print $1; }}' /etc/fstab) ++ if [ "${rootdevice::5}" == "UUID=" ] ; then ++ rootdevice=$(blkid | awk -F":" -v pat="${rootdevice:5}" '$0 ~ pat {print $1;}') ++ fi + + if [ -n "$mbkernel" -a -n "$cfgLilo" -a "$liloFlag" != "elilo" ]; then + [ -n "$verbose" ] && echo "multiboot specified, not updating lilo.conf" +@@ -183,6 +193,36 @@ install() { + [ -n "$verbose" ] && echo "$liloConfig does not exist, not running grubby" + fi + ++ if [ -n "$cfgSyslinux" ]; then ++ [ -n "$verbose" ] && echo "adding $version to $syslinuxConfig" ++ ++ $grubby --add-kernel=$bootPrefix/$kernelName-$version $INITRD \ ++ --copy-default $makedefault --title $version \ ++ ${mbkernel:+--add-multiboot="$mbkernel"} ${mbargs:+--mbargs="$mbargs"} \ ++ --args="root=$rootdevice $kernargs" --remove-kernel="TITLE=$version" \ ++ --$syslinuxFlag --bad-image-okay ++ ++ #Change menu label ++ sed -i "s/^default .*$/default vesamenu.c32/" /boot/extlinux/extlinux.conf ++ sed -i "s/^default=.*$//" /boot/extlinux/extlinux.conf ++ lineno=$(sed -n "/vmlinuz-${version}/=" /boot/extlinux/extlinux.conf) ++ if [ -n "$lineno" ] ; then ++ lineno=$((lineno-1)) ++ sed -i "${lineno} s/menu label.*$/menu label Moblin (${version})/" /boot/extlinux/extlinux.conf ++ cp -f $bootPrefix/$kernelName-$version /boot/extlinux/ ++ fi ++ ++ if [ -n "$runSyslinux" ]; then ++ [ -n "$verbose" ] && echo "running $syslinux" ++ if [ ! -x $syslinux ] ; then ++ [ -n "$verbose" ] && echo "$syslinux does not exist" ++ else ++ $syslinux --update /boot/extlinux > /dev/null 2>&1 ++ fi ++ fi ++ else ++ [ -n "$verbose" ] && echo "$syslinuxConfig does not exist, not running grubby" ++ fi + } + + rpmposttrans() +@@ -235,6 +275,26 @@ remove() { + else + [ -n "$verbose" ] && echo "$liloConfig does not exist, not running grubby" + fi ++ ++ if [ -n "$cfgSyslinux" ]; then ++ [ -n "$verbose" ] && echo "removing $version from $syslinuxConfig" ++ $grubby --remove-kernel=$bootPrefix/$kernelName-$version \ ++ --$syslinuxFlag ++ rm -f /boot/extlinux/$kernelName-$version ++ sed -i "s/^default .*$/default vesamenu.c32/" /boot/extlinux/extlinux.conf ++ sed -i "s/^default=.*$//" /boot/extlinux/extlinux.conf ++ ++ if [ -n "$runSyslinux" ]; then ++ [ -n "$verbose" ] && echo "running $syslinux" ++ if [ ! -x $syslinux ] ; then ++ [ -n "$verbose" ] && echo "$syslinux does not exist" ++ else ++ $syslinux --update /boot/extlinux > /dev/null 2>&1 ++ fi ++ fi ++ else ++ [ -n "$verbose" ] && echo "$syslinuxConfig does not exist, not running grubby" ++ fi + } + + update() { +@@ -265,6 +325,28 @@ update() { + else + [ -n "$verbose" ] && echo "$liloConfig does not exist, not running grubby" + fi ++ ++ if [ -n "$cfgSyslinux" ]; then ++ [ -n "$verbose" ] && echo "updating $version from $syslinuxConfig" ++ $grubby --update-kernel=$bootPrefix/$kernelName-$version \ ++ ${kernargs:+--args="$kernargs"} \ ++ ${removeargs:+--remove-args="$removeargs"} \ ++ --$syslinuxFlag ++ rm -f /boot/extlinux/vmlinuz-`/bin/uname -r` ++ sed -i "s/^default .*$/default vesamenu.c32/" /boot/extlinux/extlinux.conf ++ sed -i "s/^default=.*$//" /boot/extlinux/extlinux.conf ++ ++ if [ -n "$runSyslinux" ]; then ++ [ -n "$verbose" ] && echo "running $syslinux" ++ if [ ! -x $syslinux ] ; then ++ [ -n "$verbose" ] && echo "$syslinux does not exist" | ||
[-] [+] | Added | set-default-kernel.patch ^ |
@@ -0,0 +1,85 @@ +--- a/new-kernel-pkg ++++ b/new-kernel-pkg +@@ -112,6 +112,28 @@ usage() { + exit 1 + } + ++setdefaultmenu() { ++ kernver=$1 ++ if [ -z "$kernver" ] ; then ++ lineno=$(sed -n "/menu default/=" /boot/extlinux/extlinux.conf) ++ if [ -n "$lineno" ] ; then ++ return ++ fi ++ fi ++ # unset old menu default ++ sed -i '/.*menu default.*/d' /boot/extlinux/extlinux.conf ++ # flag new menu default ++ lineno=$(sed -n "/kernel vmlinuz-${kernver}/=" /boot/extlinux/extlinux.conf) ++ if [ -n "$lineno" ] ; then ++ for firstlineno in $lineno ++ do ++ lineno=$firstlineno ++ break ++ done ++ sed -i "${lineno} s/^.*kernel /\tmenu default\n\tkernel /" /boot/extlinux/extlinux.conf ++ fi ++} ++ + install() { + # XXX kernel should be able to be specified also (or work right on ia64) + if [ ! -f $bootPrefix/$kernelName-$version ] ; then +@@ -160,9 +182,9 @@ install() { + if [ -n "$banner" ]; then + title="$banner ($version)" + elif [ -f /etc/redhat-release ]; then +- title="$(sed -e 's/ release.*$//' -e q < /etc/moblin-release) ($version)" ++ title="$(sed -e 's/ release.*$//' -e q < /etc/meego-release) ($version)" + else +- title="Moblin ($version)" ++ title="MeeGo ($version)" + fi + $grubby --add-kernel=$bootPrefix/$kernelName-$version \ + $INITRD --copy-default $makedefault --title "$title" \ +@@ -208,10 +230,13 @@ install() { + lineno=$(sed -n "/vmlinuz-${version}/=" /boot/extlinux/extlinux.conf) + if [ -n "$lineno" ] ; then + lineno=$((lineno-1)) +- sed -i "${lineno} s/menu label.*$/menu label Moblin (${version})/" /boot/extlinux/extlinux.conf ++ sed -i "${lineno} s/menu label.*$/menu label MeeGo (${version})/" /boot/extlinux/extlinux.conf + cp -f $bootPrefix/$kernelName-$version /boot/extlinux/ + fi + ++ #Set as default menu ++ setdefaultmenu "${version}" ++ + if [ -n "$runSyslinux" ]; then + [ -n "$verbose" ] && echo "running $syslinux" + if [ ! -x $syslinux ] ; then +@@ -284,6 +309,9 @@ remove() { + sed -i "s/^default .*$/default vesamenu.c32/" /boot/extlinux/extlinux.conf + sed -i "s/^default=.*$//" /boot/extlinux/extlinux.conf + ++ #Set default memu ++ setdefaultmenu "" ++ + if [ -n "$runSyslinux" ]; then + [ -n "$verbose" ] && echo "running $syslinux" + if [ ! -x $syslinux ] ; then +--- a/Makefile ++++ b/Makefile +@@ -36,12 +36,12 @@ test: all + + install: all + mkdir -p $(DESTDIR)/sbin +- mkdir -p $(DESTDIR)/$(mandir)/man8 ++ mkdir -p $(DESTDIR)/usr/share/man/man8 + install -m 755 new-kernel-pkg $(DESTDIR)/sbin + install -m 755 installkernel $(DESTDIR)/sbin + if [ -f grubby ]; then \ + install -m 755 grubby $(DESTDIR)/sbin ; \ +- install -m 644 grubby.8 $(DESTDIR)/$(mandir)/man8 ; \ ++ install -m 644 grubby.8 $(DESTDIR)/usr/share/man/man8 ; \ + fi + + grubby:: $(OBJECTS) | ||
[-] [+] | Added | support_linux_keyword.patch ^ |
@@ -0,0 +1,10 @@ +--- grubby-7.0.8-old/grubby.c 2013-01-31 23:33:33.260110273 +0200 ++++ grubby-7.0.8-new/grubby.c 2009-10-01 11:10:28.000000000 +0300 +@@ -242,6 +242,7 @@ + { "root", LT_ROOT, ' ' }, + { "default", LT_DEFAULT, ' ' }, + { "kernel", LT_KERNEL, ' ' }, ++ { "linux", LT_KERNEL, ' ' }, + { "initrd", LT_INITRD, ' ', ',' }, + { "append", LT_KERNELARGS, ' ' }, + { "prompt", LT_UNKNOWN, ' ' }, | ||
[-] [+] | Added | symbolic-link-to-kernel.patch ^ |
@@ -0,0 +1,18 @@ +diff --git a/new-kernel-pkg b/new-kernel-pkg +index aec7cd6..900a6eb 100755 +--- a/new-kernel-pkg ++++ b/new-kernel-pkg +@@ -227,11 +227,11 @@ install() { + #Change menu label + sed -i "s/^default .*$/default vesamenu.c32/" /boot/extlinux/extlinux.conf + sed -i "s/^default=.*$//" /boot/extlinux/extlinux.conf +- lineno=$(sed -n "/vmlinuz-${version}/=" /boot/extlinux/extlinux.conf) ++ lineno=$(sed -n "/vmlinuz-${version}/=;/vmlinuz-${version}/q" /boot/extlinux/extlinux.conf) + if [ -n "$lineno" ] ; then + lineno=$((lineno-1)) + sed -i "${lineno} s/menu label.*$/menu label MeeGo (${version})/" /boot/extlinux/extlinux.conf +- cp -f $bootPrefix/$kernelName-$version /boot/extlinux/ ++ ln -sf ../$kernelName-$version /boot/extlinux/$kernelName-$version + fi + + #Set as default menu | ||
Added | grubby-7.0.8.tar.bz2 ^ | |
[-] [+] | Added | grubby.yaml ^ |
@@ -0,0 +1,29 @@ +Name: grubby +Summary: Command line tool for updating bootloader configs +Version: 7.0.8 +Release: 3 +Group: System/Base +License: GPLv2+ +URL: http://git.fedorahosted.org/git/grubby.git +Sources: + - "%{name}-%{version}.tar.bz2" +Patches: + - change-to-moblin-release.patch + - more-support-code-for-syslinux.patch + - set-default-kernel.patch + - symbolic-link-to-kernel.patch + - grubby_add_kboot.patch + - support_linux_keyword.patch +Description: | + grubby is a command line tool for updating and displaying information about + the configuration files for the grub, lilo, elilo (ia64), yaboot (powerpc) + and zipl (s390) boot loaders. It is primarily designed to be used from scripts + which install new kernels and need to find information about the current boot + environment. + +PkgConfigBR: + - blkid + - glib-2.0 + - popt +Configure: none +Builder: make |
Submit package nemo:devel:...:x86-common / installer-shell (revision 1) to package nemo:testin...:x86-common / installer-shell
[-] [+] | Added | installer-shell.changes |
[-] [+] | Added | installer-shell.spec ^ |
[-] [+] | Added | delete-vfs-mount-entry.patch ^ |
@@ -0,0 +1,17 @@ +diff -Naur a/installer-shell b/installer-shell +--- a/installer-shell 2011-07-27 10:52:35.626122310 +0800 ++++ b/installer-shell 2011-07-27 10:56:19.698455048 +0800 +@@ -878,13 +878,6 @@ + echo "$ROOTDEV /home btrfs nodatasum,relatime,compress,subvolrootid=0,subvol=meego_home 1 2" >> $FSTAB_FILE + echo "$SWAPDEV swap swap defaults 0 0" >> $FSTAB_FILE + +- cat >> $FSTAB_FILE <<-EOF +- tmpfs /dev/shm tmpfs defaults 0 0 +- devpts /dev/pts devpts gid=5,mode=620 0 0 +- sysfs /sys sysfs defaults 0 0 +- proc /proc proc defaults 0 0 +- EOF +- + # systemd doesn't support /etc/mtab as a file anymore + chroot $ROOTMNT ln -sf /proc/mounts /etc/mtab >> $LOGFILE 2>&1 + dbglg "write /etc/adjtime" | ||
[-] [+] | Added | fix-bootloader-probe-for-extlinux.patch ^ |
@@ -0,0 +1,51 @@ +diff --git a/installer-shell b/installer-shell +index 0acb98b..ffc61f7 100755 +--- a/installer-shell ++++ b/installer-shell +@@ -262,33 +262,29 @@ check_partition () { + fi + } + +-# Probe other bootloaders +-# $1 is the menu file ++# Probe other bootloaders, extlinux only, it skipes / partition, so it's maybe failed. ++# A effective os probe method has implemented, will be in the next release + bootloader_probe () { + local TMP_MNT=/tmp/bootloader_probe_mnt + [ -d $TMP_MNT ] || mkdir $TMP_MNT +- for tmp_part in $(fdisk -l /dev/$DEV 2>/dev/null |grep "^/dev/" |grep -v "Extended" |grep -v "swap" |awk '{print $1}'); ++ for tmp_part in $(fdisk -l /dev/$DEV 2>/dev/null |grep "^/dev/" |grep "^/dev/.*Linux$" |awk '{print $1}'); + do + if [ $tmp_part = "$BOOTDEV" -o $tmp_part = "$ROOTDEV" ]; then + continue + fi +- mount_check "mount $tmp_part $TMP_MNT" ++ dbglg_exec "mount $tmp_part $TMP_MNT" ++ [ $? -ne 0 ] && continue + #FIXME: grub, lilo +- if [ -f $TMP_MNT/extlinux/extlinux.conf -o $TMP_MNT/boot/extlinux/extlinux.conf -o -f $TMP_MNT/bootmgr ]; then +- tmp_nr=$(echo $tmp_part |grep -o "[1-9]\|[1-9][0-9]") +- echo -e "label ${tmp_part#/dev/*}" >> $1 +- if [ -f $TMP_MNT/bootmgr ]; then +- echo -e "\tmenu label Windows($tmp_part)" >> $1 +- else +- echo -e "\tmenu label Linux($tmp_part)" >> $1 +- fi +- echo -e "\tkernel chain.c32" >> $1 +- echo -e "\tappend boot $tmp_nr" >> $1 +- unset tmp_nr ++ if [ -f $TMP_MNT/extlinux/extlinux.conf -o -f $TMP_MNT/boot/extlinux/extlinux.conf ]; then ++ cat >> $1 <<EOF ++label extlinux ($tmp_part) ++ label extlinux ($tmp_part) ++ kernel chain.c32 ++ append boot $(echo $tmp_part |grep -o "[1-9]\|[1-9][0-9]") ++EOF + fi +- persistent_umount "$tmp_part" ++ persistent_umount $tmp_part + done +- unset tmp_part + dbglg_exec "rm -rf $TMP_MNT" + } + | ||
[-] [+] | Added | fix-error-partition-boundary.patch ^ |
@@ -0,0 +1,21 @@ +diff -Naur a/installer-shell b/installer-shell +--- a/installer-shell 2011-07-14 09:03:25.530332129 +0800 ++++ b/installer-shell 2011-07-14 09:08:56.294183644 +0800 +@@ -583,7 +583,7 @@ + SWAP_SIZE_CYLINDERS=$(($SWAP_SIZE*1024*1024/$CYLINDER_SIZE)) + if [ $IMAGE_TYPE = "liveimg" ]; then + if [ -z "$SWAP_NR" ]; then +- ROOT_SIZE_CYLINDERS=$(($HOLE_END-$HOLE_START-$BOOT_SIZE_CYLINDERS-$SWAP_SIZE_CYLINDERS-1)) ++ ROOT_SIZE_CYLINDERS=$(($EXTENDED_END-$EXTENDED_START-$BOOT_SIZE_CYLINDERS-$SWAP_SIZE_CYLINDERS-1)) + do_fdisk "free space, liveimg, new swap" "n\nl\n\n+$BOOT_SIZE_CYLINDERS\nn\nl\n\n+$ROOT_SIZE_CYLINDERS\nn\nl\n\n\nw\n" + sfdisk_loop "free space, liveimg, new swap" "" "-c $(($LOGICAL_BOOT+2)) 82" + else +@@ -592,7 +592,7 @@ + fi + elif [ $IMAGE_TYPE = "nandfs" ]; then + if [ -z "$SWAP_NR" ]; then +- ROOT_SIZE_CYLINDERS=$(($HOLE_END-$HOLE_START-$SWAP_SIZE_CYLINDERS-1)) ++ ROOT_SIZE_CYLINDERS=$(($EXTENDED_END-$EXTENDED_START-$SWAP_SIZE_CYLINDERS-1)) + do_fdisk "free space, nandfs, new swap" "n\nl\n\n+$ROOT_SIZE_CYLINDERS\nn\nl\n\n\nw\n" + sfdisk_loop "free space, nandfs, new swap" "" "-c $(($LOGICAL_BOOT+1)) 82" + else | ||
[-] [+] | Added | fix-mount-and-live-device-recognize.patch ^ |
@@ -0,0 +1,36 @@ +diff -Naur a/installer-shell b/installer-shell +--- a/installer-shell 2011-07-08 15:08:22.695176369 +0800 ++++ b/installer-shell 2011-07-08 15:09:26.762495862 +0800 +@@ -118,7 +118,7 @@ + persistent_umount () { + local MAX_TRY=10 + local i=0 +- while mount |grep "$1 " > /dev/null 2>&1; do ++ while cat /proc/mounts |grep "$1 " > /dev/null 2>&1; do + if [ $i -ge $MAX_TRY ]; then + break + fi +@@ -291,11 +291,11 @@ + INDEX=0 + if [ -L /dev/live ]; then + LIVE_DEV=$(readlink /dev/live) +- elif mount |grep " /mnt/live " >/dev/null 2>&1; then +- LIVE_DEV=$(mount |grep " /mnt/live " |cut -d " " -f1) ++ elif cat /proc/mounts |grep " /mnt/live " >/dev/null 2>&1; then ++ LIVE_DEV=$(cat /proc/mounts |grep " /mnt/live " |cut -d " " -f1) + LIVE_DEV=${LIVE_DEV#/dev/} + else +- LIVE_DEV=$(mount |grep "^/dev/.* / " |awk '{print $1}') ++ LIVE_DEV=$(cat /proc/mounts |grep "^/dev/.* / " |awk '{print $1}') + LIVE_DEV=${LIVE_DEV#/dev/} + fi + LIVE_DEV=${LIVE_DEV%[0-9]*} +@@ -608,7 +608,7 @@ + + create_partitions () { + # Umount all partitions +- for i in $(mount |grep "$DEV" |awk '{print $1}'); do ++ for i in $(cat /proc/mounts |grep "$DEV" |awk '{print $1}'); do + dbglg "Umount $i, please wait..." + persistent_umount $i + done | ||
[-] [+] | Added | fix-mtab-with-systemd.patch ^ |
@@ -0,0 +1,14 @@ +diff --git a/installer-shell b/installer-shell +index f375af8..bc4a32f 100755 +--- a/installer-shell ++++ b/installer-shell +@@ -923,7 +923,8 @@ write_fstab () { + proc /proc proc defaults 0 0 + EOF + +- dbglg_exec "rm -rf $ROOTMNT/etc/mtab" ++ # systemd doesn't support /etc/mtab as a file anymore ++ chroot $ROOTMNT ln -sf /proc/mounts /etc/mtab >> $LOGFILE 2>&1 + dbglg "write /etc/adjtime" + if [ ! -f ${ROOTMNT}/etc/adjtime ]; then + echo "0.0 0 0.0" > ${ROOTMNT}/etc/adjtime | ||
[-] [+] | Added | fix-package-clean.patch ^ |
@@ -0,0 +1,12 @@ +diff -Naur a/package_clean.sh b/package_clean.sh +--- a/package_clean.sh 2011-07-16 11:51:40.605316110 +0800 ++++ b/package_clean.sh 2011-07-16 11:58:54.485095544 +0800 +@@ -1,7 +1,3 @@ + #!/bin/sh + +-rpm -e installer-shell +-rpm -e moblin-live +-rpm -e installer-launch --nodeps +-rpm -e installer +-rpm -e pykickstart ++rpm -e --quiet installer-shell | ||
[-] [+] | Added | fix-typo-and-22599.patch ^ |
@@ -0,0 +1,17 @@ +diff -Nuar a/installer-shell b/installer-shell +--- a/installer-shell 2011-08-11 17:28:25.254071203 -0700 ++++ b/installer-shell 2011-08-11 17:32:48.554071003 -0700 +@@ -760,11 +760,12 @@ + dbglg_exec "mknod -m 0666 $ROOTMNT/dev/full c 1 7" + dbglg_exec "mknod -m 0666 $ROOTMNT/dev/ptmx c 5 2" + dbglg_exec "mknod -m 0666 $ROOTMNT/dev/zero c 1 5" +- dbglg_exec "mknod -m 0755 $ROOTMNT/dev/console c 5 1ls" ++ dbglg_exec "mknod -m 0755 $ROOTMNT/dev/console c 5 1" + dbglg_exec "mknod -m 0755 $ROOTMNT/dev/fb0 c 29 0" + dbglg_exec "mknod -m 0666 $ROOTMNT/dev/tty c 4 0" + dbglg_exec "mknod -m 0666 $ROOTMNT/dev/tty1 c 4 1" + dbglg_exec "mknod -m 0666 $ROOTMNT/dev/tty2 c 4 2" ++ dbglg_exec "mknod -m 0600 $ROOTMNT/dev/kmsg c 1 11" + dbglg_exec "ln -s /proc/self/fd $ROOTMNT/dev/fd" + dbglg_exec "ln -s /proc/self/fd/0 $ROOTMNT/dev/stdin" + dbglg_exec "ln -s /proc/self/fd/1 $ROOTMNT/dev/stdout" | ||
[-] [+] | Added | installer-shell-expand-extended-partition-to-get-enough-free-space.patch ^ |
@@ -0,0 +1,172 @@ +diff -Naur a/installer-shell b/installer-shell +--- a/installer-shell 2011-07-12 18:17:09.416908025 +0800 ++++ b/installer-shell 2011-07-12 18:31:33.505149804 +0800 +@@ -1,5 +1,8 @@ + #!/bin/bash + ++# expand extended partition to here ++EXPAND_EXTENDED_END=0 ++ + # fdisk different version + FDISK_FLAGS="" + # geometry info +@@ -156,7 +159,9 @@ + do + dbglg "sfdisk_loop($1) \"$2\" \"$SFDISK_FORCE $3\"" + tmp_str="$(echo -ne "$STR" |sfdisk $SFDISK_FORCE /dev/$DEV $3 2>&1 |tee -a $LOGFILE | +- sed -n -e '/Checking that no-one is using this disk right now/{N;/Device or resource busy/p}' -e '/Warning:.*cylinder boundary/{N;N;/sfdisk: I don/p}')" ++ sed -n -e '/Checking that no-one is using this disk right now/{N;/Device or resource busy/p}' \ ++ -e '/Warning:.*cylinder boundary/{N;N;/sfdisk: I don/p}' \ ++ -e '/Warning:.*bad partition start/{N;N;/sfdisk: bad input/p}')" + if echo $tmp_str |grep "Device or resource busy" > /dev/null 2>&1; then + output "Device is busy, sleep a while and try again, please wait..." + sleep $INTERVAL +@@ -166,7 +171,7 @@ + fail_exit "sfdisk failed." + fi + sync +- elif echo $tmp_str |grep "Warning:.*cylinder boundary" >/dev/null 2>&1; then ++ elif echo $tmp_str |grep "Warning:.*cylinder boundary\|Warning:.*bad partition start" >/dev/null 2>&1; then + OLD_FLAG=$SFDISK_FORCE + SFDISK_FORCE="--force" + else +@@ -194,7 +199,7 @@ + fi + } + +-# Not used now, will be removed ++# default behavior is going on + wait_user () { + local first_char answer NUM PROMPT TMP_PROMPT + NUM=9 +@@ -327,7 +332,8 @@ + choose_device () { + local OLD_PS3 + OLD_PS3=$PS3 +- PS3="Please select one disk to install MeeGo:" ++ output "\033[32mStep 1 Select one disk to install MeeGo\033[0m" ++ PS3="Please choose:" + select tmp_dev in "${DISK_MENU[@]}" "CANCEL"; do + if [ -n "${REPLY//[0-9]/}" ]; then + continue +@@ -354,7 +360,8 @@ + is_whole_disk () { + local OLD_PS3 + OLD_PS3=$PS3 +- PS3="Please Choose:" ++ output "\033[32mStep 2 Full disk install or not\033[0m" ++ PS3="Please choose:" + select tmp_whole_disk in "Free space install" "Full disk install" "Cancel"; do + if [ -n "${REPLY//[0-9]/}" ]; then + continue +@@ -373,6 +380,7 @@ + # Roll back partition table + rollback () { + local ANSWER ++ output "\033[32mStep 3 Roll back\033[0m" + echo -ne "\033[31mThis is the last chance to rollback, Are you sure you want to continue?(y/n)[y]\033[0m" + read ANSWER + ANSWER=$(echo $ANSWER |tr 'A-Z' 'a-z') +@@ -430,14 +438,17 @@ + has_extended () { + if sfdisk -l /dev/$DEV 2>/dev/null |grep "Extended" >/dev/null 2>&1; then + HAS_EXTENDED=1 ++ EXTENDED_NR=$(sfdisk -l /dev/$DEV 2>/dev/null |grep "^/dev/" |grep "Extended" |awk '{print $1}' |rev |cut -c1) + EXTENDED_START=$(sfdisk -l /dev/$DEV 2>/dev/null |grep "^/dev/" |grep "Extended" |awk '{printf "%d", $2}') + EXTENDED_END=$(sfdisk -l /dev/$DEV 2>/dev/null |grep "^/dev/" |grep "Extended" |awk '{printf "%d", $3}') ++ dbglg "EXTENDED_START=$EXTENDED_START, EXTENDED_END=$EXTENDED_END" + PART_TABLE[0]=$EXTENDED_START + else + if ! sfdisk -l /dev/$DEV 2>/dev/null |grep "^/dev/" |grep "Empty" > /dev/null 2>&1; then + fail_exit "Can't create extended partition, there are already 4 primary partitions." + fi + HAS_EXTENDED=0 ++ EXTENDED_NR=$(sfdisk -l /dev/$DEV 2>/dev/null |grep "^/dev/" |grep "Empty" |head -1 |awk '{print $1}' |rev |cut -c1) + PART_TABLE[0]=0 + fi + } +@@ -457,11 +468,12 @@ + + get_partition_table () { + local INDEX=1 +- for tmp_str in $(fdisk -H$NR_HEADER -S$NR_SECTOR $FDISK_FLAGS -l /dev/$DEV 2>/dev/null|grep "^/dev/" |grep -v "Extended" |grep -v "Empty" | +- awk '{if(NF<=8){printf "%d,%d\n", $((NF-4)),$((NF-3))}else{printf "%d,%d\n", $((NF-7)),$((NF-6))}}' |sort -n); do ++ for tmp_str in $(sfdisk -l /dev/$DEV 2>/dev/null|grep "^/dev/" |grep -v "Extended" |grep -v "Empty" | ++ awk '{if(NF<=8){printf "%d,%d\n", $((NF-5)),$((NF-4))}else{printf "%d,%d\n", $((NF-8)),$((NF-7))}}' |sort -n); do + tmp_s=$(echo $tmp_str |cut -d',' -f1) + tmp_e=$(echo $tmp_str |cut -d',' -f2) + if [ $HAS_EXTENDED -eq 0 ]; then ++ EXPAND_EXTENDED_END=-1 + PART_TABLE[$INDEX]=$tmp_s + PART_TABLE[$(($INDEX+1))]=$tmp_e + INDEX=$(($INDEX+2)) +@@ -471,10 +483,17 @@ + PART_TABLE[$(($INDEX+1))]=$tmp_e + INDEX=$(($INDEX+2)) + fi ++ if [ $tmp_s -gt $EXTENDED_END ]; then ++ EXPAND_EXTENDED_END=$(($tmp_s-1)) ++ break ++ fi + else + fail_exit "Never should be here." + fi + done ++ if [ $EXPAND_EXTENDED_END -eq 0 ]; then ++ EXPAND_EXTENDED_END=$(($NR_CYLINDER-1)) ++ fi + unset tmp_s tmp_e tmp_str + if [ $HAS_EXTENDED -eq 0 ]; then + PART_TABLE[$INDEX]=$NR_CYLINDER +@@ -489,7 +508,7 @@ + get_max_hole () { + local INDEX=1 + while [ $INDEX -lt ${#PART_TABLE[*]} ]; do +- tmp_hole=$((${PART_TABLE[$(($INDEX))]}-${PART_TABLE[$(($INDEX-1))]})) ++ tmp_hole=$((${PART_TABLE[$INDEX]}-${PART_TABLE[$(($INDEX-1))]})) + if [ $tmp_hole -gt $HOLE_MAX ]; then + HOLE_MAX=$tmp_hole + HOLE_START=${PART_TABLE[$(($INDEX-1))]} +@@ -500,6 +519,16 @@ + unset tmp_hole + dbglg "Find free space ${HOLE_MAX} at [$HOLE_START,$HOLE_END]" + if [ $(($HOLE_MAX*$CYLINDER_SIZE/1024/1024)) -lt $SMALLEST_SPACE ]; then ++ #expand extended partition if we can ++ if [ $EXPAND_EXTENDED_END -gt 0 ]; then ++ HOLE_START=${PART_TABLE[$(($INDEX-3))]} ++ HOLE_MAX=$(($EXPAND_EXTENDED_END-$HOLE_START)) ++ if [ $(($HOLE_MAX*$CYLINDER_SIZE/1024/1024)) -ge $SMALLEST_SPACE ]; then ++ output "Expands extended partition to get enought free space." ++ sfdisk_loop "expands extended partition" ",$(($EXPAND_EXTENDED_END-$EXTENDED_START)),\n" "-N$EXTENDED_NR" ++ return ++ fi ++ fi + fail_exit "Can't find suitable free space, at least ${SMALLEST_SPACE}MB, please partitioning yourself." + fi + } +@@ -507,7 +536,6 @@ + prepare_extended_partition () { + local LOGICAL_CUR_MAX TMP_START TMP_SIZE + if [ $HAS_EXTENDED -eq 0 ]; then +- EXTENDED_NR=$(sfdisk -l /dev/$DEV 2>/dev/null |grep "^/dev/" |grep "Empty" |head -1 |awk '{print $1}' |rev |cut -c1) + if [ -z "$EXTENDED_NR" ]; then + fail_exit "Never should be here." + fi +@@ -659,6 +687,8 @@ + if [ $SILENT_MODE -eq 0 ]; then + rollback + fi ++ ++ output "\033[32mAll the works will done by computer in several minutes, you are free now.\033[0m" + } + + create_fs () { +@@ -991,7 +1021,7 @@ + local CMDLINE + # Clean environent before start + clean_env +- output "Welcome to MeeGo `head -1 /etc/meego-release`" ++ output "Welcome to `head -1 /etc/meego-release`" + + # Should not be present in install mode, but in case of ... + dbglg_exec "killall -9 automountd >/dev/null 2>&1" | ||
[-] [+] | Added | installer-shell-install-bootloader-or-not.patch ^ |
@@ -0,0 +1,97 @@ +diff -Naur b/installer-shell c/installer-shell +--- b/installer-shell 2011-07-12 18:31:33.505149804 +0800 ++++ c/installer-shell 2011-07-12 18:23:35.416907745 +0800 +@@ -1,5 +1,7 @@ + #!/bin/bash + ++# write MBR or not ++WRITE_MBR=1 + # expand extended partition to here + EXPAND_EXTENDED_END=0 + +@@ -269,7 +271,7 @@ + fi + mount_check "mount $tmp_part $TMP_MNT" + #FIXME: grub, lilo +- if [ -f $TMP_MNT/extlinux/extlinux.conf -o -f $TMP_MNT/bootmgr ]; then ++ if [ -f $TMP_MNT/extlinux/extlinux.conf -o $TMP_MNT/boot/extlinux/extlinux.conf -o -f $TMP_MNT/bootmgr ]; then + tmp_nr=$(echo $tmp_part |grep -o "[1-9]\|[1-9][0-9]") + echo -e "label ${tmp_part#/dev/*}" >> $1 + if [ -f $TMP_MNT/bootmgr ]; then +@@ -600,15 +602,6 @@ + fi + } + +-toggle_boot_partition () { +- old_bootdev=$(sfdisk -l /dev/$DEV 2>/dev/null |grep "^/dev/" |grep "\*" |awk '{print $1}' |grep -o "[1-9]\|[1-9][0-9]") +- if [ "x$old_bootdev" != "x" ]; then +- sfdisk_loop "toggle_boot_partition, disable old" ",,,-\ny\n" "-N$old_bootdev --force" +- fi +- unset old_bootdev +- sfdisk_loop "toggle_boot_partition, enable new" ",,,*\ny\n" "-N$LOGICAL_BOOT --force" +-} +- + setup_freespace_device () { + SWAP_NR=$(sfdisk -l /dev/$DEV 2>/dev/null |grep "^/dev/.*swap" |awk '{print $1}' |grep -o "[1-9]\|[1-9][0-9]" |head -1) + SWAPDEV=/dev/${DEV}${PART_PREFIX}$SWAP_NR +@@ -629,7 +622,6 @@ + output "Create default partition layout, please wait..." + prepare_extended_partition + do_partition_freespace +- toggle_boot_partition + setup_freespace_device + } + +@@ -688,6 +680,14 @@ + rollback + fi + ++ #write MBR or not, move user interaction here, so user can go away rather than just wait here. ++ if [ "$IMAGE_TYPE" = "liveimg" ]; then ++ if [ $SILENT_MODE -eq 0 -a $WHOLE_DISK -eq 0 ]; then ++ output "\033[32mStep 4 Overwirte MBR or not\033[0m" ++ wait_user "Do you want to overwrite MBR? " ++ WRITE_MBR=$USER_ANSWER ++ fi ++ fi + output "\033[32mAll the works will done by computer in several minutes, you are free now.\033[0m" + } + +@@ -909,9 +909,14 @@ + fi + dbglg "Install extlinux to /boot/extlinux" + dbglg_exec "/sbin/extlinux -i $CONF_DIR" +- dbglg "Write MBR to /dev/$DEV" +- dbglg_exec "/bin/dd if=/dev/$DEV of=${CONF_DIR}/mbr.bak count=1 bs=512" +- dbglg_exec "/bin/dd if=${ROOTMNT}/usr/share/syslinux/mbr.bin of=/dev/$DEV" ++ if [ $WRITE_MBR -eq 0 ]; then ++ dbglg "Doesn't write MBR, please work around yourself." ++ else ++ dbglg "Write MBR to /dev/$DEV" ++ dbglg_exec "/bin/dd if=/dev/$DEV of=${CONF_DIR}/mbr.bak count=1 bs=512" ++ dbglg_exec "/bin/dd if=${ROOTMNT}/usr/share/syslinux/mbr.bin of=/dev/$DEV" ++ sfdisk_loop "toggle on the new boot partition" "" "-A$LOGICAL_BOOT" ++ fi + + # Generate extlinux.conf + dbglg "Write extlinux.conf" +@@ -961,8 +966,9 @@ + echo " menu default" >> $CONF_FILE + + # update extlinux menu +- bootloader_probe $CONF_FILE +- ++ if [ $WRITE_MBR -eq 1 ]; then ++ bootloader_probe $CONF_FILE ++ fi + dbglg "Copy background picture" + if [ -f $ROOTMNT/usr/lib/anaconda-runtime/syslinux-vesa-splash.jpg ]; then + dbglg_exec "cp ${ROOTMNT}/usr/lib/anaconda-runtime/syslinux-vesa-splash.jpg ${CONF_DIR}/splash.jpg" +@@ -1083,7 +1089,6 @@ + } + + install_bootloader () { +- output "Install bootloader..." + if [ "$IMAGE_TYPE" = "liveimg" ]; then + install_syslinux + else | ||
[-] [+] | Added | skip-btrfs-fsck.patch ^ |
@@ -0,0 +1,17 @@ +diff -Naur a/installer-shell b/installer-shell +--- a/installer-shell 2011-08-01 09:42:05.097777817 +0800 ++++ b/installer-shell 2011-08-01 09:42:30.953867468 +0800 +@@ -872,10 +872,10 @@ + dbglg "Write fstab and mtab" + echo "# Created by installer-shell" > $FSTAB_FILE + if [ $IMAGE_TYPE = "liveimg" ]; then +- echo "$BOOTDEV /boot ext3 defaults 1 2" >> $FSTAB_FILE ++ echo "$BOOTDEV /boot ext3 defaults 1 1" >> $FSTAB_FILE + fi +- echo "$ROOTDEV / btrfs nodatasum,relatime,compress 1 1" >> $FSTAB_FILE +- echo "$ROOTDEV /home btrfs nodatasum,relatime,compress,subvolrootid=0,subvol=meego_home 1 2" >> $FSTAB_FILE ++ echo "$ROOTDEV / btrfs nodatasum,relatime,compress 1 0" >> $FSTAB_FILE ++ echo "$ROOTDEV /home btrfs nodatasum,relatime,compress,subvolrootid=0,subvol=meego_home 1 0" >> $FSTAB_FILE + echo "$SWAPDEV swap swap defaults 0 0" >> $FSTAB_FILE + + # systemd doesn't support /etc/mtab as a file anymore | ||
[-] [+] | Added | skip-copy-tmpfs.patch ^ |
@@ -0,0 +1,13 @@ +diff -Naur a/installer-shell b/installer-shell +--- a/installer-shell 2011-08-02 17:57:14.841548902 +0800 ++++ b/installer-shell 2011-08-02 18:00:56.733528758 +0800 +@@ -801,7 +801,8 @@ + } + + copy_fs () { +- local RSYNC_CMD="rsync -aq --exclude=/dev/* --exclude=/proc/* --exclude=/sys/* --exclude=/media/* --exclude=/tmp/*" ++ local RSYNC_CMD="rsync -aq --exclude=/dev/* --exclude=/proc/* --exclude=/sys/* --exclude=/media/* \ ++ --exclude=/tmp/* --exclude=/run/* --exclude=/var/run/*" + dbglg "Set timezone before copying: /usr/sbin/hwclock --hctosys -u" + /usr/sbin/hwclock --hctosys -u >> $LOGFILE 2>&1 + dbglg "Mount partitions" | ||
[-] [+] | Added | use-subvolrootid-and-subvol-insteadof-subvolid.patch ^ |
@@ -0,0 +1,39 @@ +diff -Naur a/installer-shell b/installer-shell +--- a/installer-shell 2011-07-11 10:05:36.869805425 +0800 ++++ b/installer-shell 2011-07-11 10:07:17.254109222 +0800 +@@ -43,7 +43,6 @@ + + # Btrfs subvolume ID + ROOTID= +-HOMEID= + + # Liveimg(extlinux) or nandfs(kboot) + IMAGE_TYPE="" +@@ -704,7 +703,6 @@ + dbglg_exec "btrfs subvol create $ROOTMNT/meego_root" + dbglg_exec "btrfs subvol create $ROOTMNT/meego_home" + ROOTID=$(btrfs subvol list $ROOTMNT | awk ' ($7 == "meego_root") { print $2 }') +- HOMEID=$(btrfs subvol list $ROOTMNT | awk ' ($7 == "meego_home") { print $2 }') + dbglg_exec "btrfs subvol set-default $ROOTID $ROOTMNT" + persistent_umount $ROOTMNT + +@@ -785,8 +783,8 @@ + # Attempt to mount the prepared partition using the given partition fs type + dbglg "mount -t btrfs -o relatime,compress $ROOTDEV $ROOTMNT" + mount_check "mount -t btrfs -o relatime,compress $ROOTDEV $ROOTMNT" +- dbglg "mount -t btrfs -o relatime,compress,subvolid=$HOMEID $ROOTDEV $ROOTMNT/home" +- mount_check "mount -t btrfs -o relatime,compress,subvolid=$HOMEID $ROOTDEV $ROOTMNT/home" ++ dbglg "mount -t btrfs -o relatime,compress,subvolrootid=0,subvol=meego_home $ROOTDEV $ROOTMNT/home" ++ mount_check "mount -t btrfs -o relatime,compress,subvolrootid=0,subvol=meego_home $ROOTDEV $ROOTMNT/home" + if [ $IMAGE_TYPE = "liveimg" ]; then + dbglg "mount -t ext3 $BOOTDEV $INSTALL_DIR/bootfs" + mount_check "mount -t ext3 $BOOTDEV $INSTALL_DIR/bootfs" +@@ -851,7 +849,7 @@ + echo "$BOOTDEV /boot ext3 defaults 1 2" >> $FSTAB_FILE + fi + echo "$ROOTDEV / btrfs nodatasum,relatime,compress 1 1" >> $FSTAB_FILE +- echo "$ROOTDEV /home btrfs nodatasum,relatime,compress,subvolid=$HOMEID 1 2" >> $FSTAB_FILE ++ echo "$ROOTDEV /home btrfs nodatasum,relatime,compress,subvolrootid=0,subvol=meego_home 1 2" >> $FSTAB_FILE + echo "$SWAPDEV swap swap defaults 0 0" >> $FSTAB_FILE + + cat >> $FSTAB_FILE <<-EOF | ||
Added | installer-shell-0.6.tar.bz2 ^ | |
[-] [+] | Added | installer-shell.service ^ |
@@ -0,0 +1,9 @@ +[Unit] +Description=Shell based installer script + +[Service] +Type=oneshot +StandardInput=tty-force +ExecStart=/usr/sbin/installer-shell +ExecStartPost=/sbin/reboot + | ||
[-] [+] | Added | installer-shell.yaml ^ |
@@ -0,0 +1,43 @@ +Name: installer-shell +Summary: A shell-script based installer +Version: 0.6 +Release: 1 +Group: Applications/System +License: GPLv2+ +URL: http://meego.com +Sources: + - installer-shell-%{version}.tar.bz2 + - installer-shell.service +Patches: + - fix-mount-and-live-device-recognize.patch + - use-subvolrootid-and-subvol-insteadof-subvolid.patch + - installer-shell-expand-extended-partition-to-get-enough-free-space.patch + - installer-shell-install-bootloader-or-not.patch + - fix-error-partition-boundary.patch + - fix-bootloader-probe-for-extlinux.patch + - fix-mtab-with-systemd.patch + - fix-package-clean.patch + - delete-vfs-mount-entry.patch + - skip-btrfs-fsck.patch + - skip-copy-tmpfs.patch + - fix-typo-and-22599.patch +Description: | + A shell-script based installer which implements the installation process +Requires: + - parted + - rsync + - system-logos + - e2fsprogs + - btrfs-progs + - util-linux + - syslinux-extlinux +Configure: none +Builder: none +BuildArch: noarch +NoDesktop: True +Files: + - "%{_sbindir}/installer-shell" + - "%{_sysconfdir}/installer/package_clean.sh" + - "%{_sysconfdir}/installer/post.d/" + - /lib/systemd/system/installer-shell.service + |
Submit package nemo:devel:hw:x86:x86-common / kbuild (revision 1) to package nemo:testing:hw:x86:x86-common / kbuild
[-] [+] | Added | kbuild.changes |
[-] [+] | Added | kbuild.spec ^ |
[-] [+] | Added | glibc-2.10.diff ^ |
@@ -0,0 +1,62 @@ +--- src/ash/output.c ++++ src/ash/output.c +@@ -230,6 +230,7 @@ out1fmt(const char *fmt, ...) + va_end(ap); + } + ++#if 0 + void + dprintf(const char *fmt, ...) + { +@@ -240,6 +241,7 @@ dprintf(const char *fmt, ...) + va_end(ap); + flushout(out2); + } ++#endif + + void + fmtstr(char *outbuf, size_t length, const char *fmt, ...) +--- src/ash/output.h ++++ src/ash/output.h +@@ -65,8 +65,10 @@ void outfmt(struct output *, const char *, ...) + __attribute__((__format__(__printf__,2,3))); + void out1fmt(const char *, ...) + __attribute__((__format__(__printf__,1,2))); ++ /* + void dprintf(const char *, ...) + __attribute__((__format__(__printf__,1,2))); ++ */ + void fmtstr(char *, size_t, const char *, ...) + __attribute__((__format__(__printf__,3,4))); + void doformat(struct output *, const char *, va_list); +--- src/kash/output.c ++++ src/kash/output.c +@@ -226,6 +226,7 @@ out1fmt(shinstance *psh, const char *fmt, ...) + va_end(ap); + } + ++#if 0 + void + dprintf(shinstance *psh, const char *fmt, ...) + { +@@ -236,6 +237,7 @@ dprintf(shinstance *psh, const char *fmt, ...) + va_end(ap); + flushout(psh->out2); + } ++#endif + + void + fmtstr(char *outbuf, size_t length, const char *fmt, ...) +--- src/kash/output.h ++++ src/kash/output.h +@@ -69,8 +69,10 @@ void outfmt(struct output *, const char *, ...) + __attribute__((__format__(__printf__,2,3))); + void out1fmt(struct shinstance *, const char *, ...) + __attribute__((__format__(__printf__,2,3))); ++ /* + void dprintf(struct shinstance *, const char *, ...) + __attribute__((__format__(__printf__,2,3))); ++ */ + void fmtstr(char *, size_t, const char *, ...) + __attribute__((__format__(__printf__,3,4))); + void doformat(struct output *, const char *, va_list); | ||
[-] [+] | Added | kbuild-armv7l.diff ^ |
@@ -0,0 +1,12 @@ +diff -Naur kbuild-0.1.9998svn2543.orig/kBuild/env.sh kbuild-0.1.9998svn2543/kBuild/env.sh +--- kbuild-0.1.9998svn2543.orig/kBuild/env.sh 2011-08-25 19:09:21.000000000 +0200 ++++ kbuild-0.1.9998svn2543/kBuild/env.sh 2011-10-04 00:41:34.000000000 +0200 +@@ -358,7 +358,7 @@ + hppa64|parisc64) + KBUILD_HOST_ARCH='hppa64' + ;; +- arm|armv4l|armv5tel|armv5tejl) ++ arm|armv4l|armv5tel|armv5tejl|armv7l) + KBUILD_HOST_ARCH='arm' + ;; + alpha) | ||
[-] [+] | Added | kbuild-dummy_noreturn.diff ^ |
@@ -0,0 +1,25 @@ +Index: src/kmk/kmkbuiltin/expr.c +=================================================================== +--- src/kmk/kmkbuiltin/expr.c.orig ++++ src/kmk/kmkbuiltin/expr.c +@@ -308,6 +308,8 @@ eval6(void) + return v; + } else { + error(); ++ /* dummy return in order to make the build checks happy (this will never be reached) */ ++ return NULL; + } + /* NOTREACHED */ + } +Index: src/kmk/kmkbuiltin/kbuild_protection.c +=================================================================== +--- src/kmk/kmkbuiltin/kbuild_protection.c.orig ++++ src/kmk/kmkbuiltin/kbuild_protection.c +@@ -29,6 +29,7 @@ + #include "config.h" + #include <sys/types.h> + #include <stdlib.h> ++#include <unistd.h> + #include <string.h> + #include <ctype.h> + #include <assert.h> | ||
[-] [+] | Added | kbuild-func_missing_args.diff ^ |
@@ -0,0 +1,13 @@ +Index: src/kmk/kmkbuiltin/printf.c +=================================================================== +--- src/kmk/kmkbuiltin/printf.c.orig ++++ src/kmk/kmkbuiltin/printf.c +@@ -206,7 +206,7 @@ char *kmk_builtin_func_printf(char *o, c + + (void)funcname; + if (rc != 0) +- fatal (NILF, _("$(%s): failure rc=%d\n"), rc); ++ fatal (NILF, _("$(%s): failure rc=%d\n"), funcname, rc); + return o; + } + #endif | ||
[-] [+] | Added | kbuild-man.diff ^ |
@@ -0,0 +1,28 @@ +--- kmk.pod ++++ kmk.pod +@@ -0,0 +1,24 @@ ++=head1 NAME ++ ++kmk - framework for writing simple makefiles for complex tasks ++ ++=head1 SYNOPSIS ++ ++B<kmk> [S<I<options>>] ++ ++=head1 DESCRIPTION ++ ++kmk and its helper tools are an extension to GNU make to ease writing ++portable Makefile. There is not a lot of documentation though. A ++starting point is L<http://svn.netlabs.org/kbuild>. ++ ++On SUSE the kBuild binaries can be found in F</usr/bin> and its data ++files in F</usr/share/kBuild>. ++ ++=head1 SEE ALSO ++ ++L<make(1)> ++ ++=head1 AUTHOR ++ ++Torsten Werner <twerner@debian.org> + | ||
[-] [+] | Added | kbuild-pthread.diff ^ |
@@ -0,0 +1,13 @@ +Index: kbuild-0.1.9998svn2538/Config.kmk +=================================================================== +--- kbuild-0.1.9998svn2538.orig/Config.kmk ++++ kbuild-0.1.9998svn2538/Config.kmk +@@ -305,7 +305,7 @@ ifndef TEMPLATE_BIN_TOOL + TEMPLATE_BIN_INCS += $(PATH_GNUMAKE_SRC)/glob /usr/local/include + endif + ifeq ($(KBUILD_TARGET),linux) +- TEMPLATE_BIN_LIBS += rt ++ TEMPLATE_BIN_LIBS += rt pthread + endif + TEMPLATE_BIN_CFLAGS.x86 += -m32 + TEMPLATE_BIN_CFLAGS.sparc32 += -m32 | ||
[-] [+] | Added | kbuild-timestamps.diff ^ |
@@ -0,0 +1,30 @@ +Index: kbuild-0.1.9998svn2538/src/kmk/main.c +=================================================================== +--- kbuild-0.1.9998svn2538.orig/src/kmk/main.c ++++ kbuild-0.1.9998svn2538/src/kmk/main.c +@@ -2996,10 +2996,10 @@ print_usage (int bad) + + #ifdef KMK + if (!remote_description || *remote_description == '\0') +- fprintf (usageto, _("\nThis program is built for %s/%s/%s [" __DATE__ " " __TIME__ "]\n"), ++ fprintf (usageto, _("\nThis program is built for %s/%s/%s\n"), + KBUILD_HOST, KBUILD_HOST_ARCH, KBUILD_HOST_CPU); + else +- fprintf (usageto, _("\nThis program is built for %s/%s/%s (%s) [" __DATE__ " " __TIME__ "]\n"), ++ fprintf (usageto, _("\nThis program is built for %s/%s/%s (%s)\n"), + KBUILD_HOST, KBUILD_HOST_ARCH, KBUILD_HOST_CPU, remote_description); + #else /* !KMK */ + if (!remote_description || *remote_description == '\0') +@@ -3666,10 +3666,10 @@ print_version (void) + # endif /* !KBUILD_PATH */ + + if (!remote_description || *remote_description == '\0') +- printf (_("%sThis program is a %s build, built for %s/%s/%s [" __DATE__ " " __TIME__ "]\n\n"), ++ printf (_("%sThis program is a %s build, built for %s/%s/%s\n\n"), + precede, KBUILD_TYPE, KBUILD_HOST, KBUILD_HOST_ARCH, KBUILD_HOST_CPU); + else +- printf (_("%sThis program is a %s build, built for %s/%s/%s (%s) [" __DATE__ " " __TIME__ "]\n\n"), ++ printf (_("%sThis program is a %s build, built for %s/%s/%s (%s)\n\n"), + precede, KBUILD_TYPE, KBUILD_HOST, KBUILD_HOST_ARCH, KBUILD_HOST_CPU, remote_description); + + #endif /* KMK */ | ||
[-] [+] | Added | kbuild-wrong-memset.patch ^ |
@@ -0,0 +1,13 @@ +Index: kbuild-0.1.9998svn2543/src/lib/md5.c +=================================================================== +--- kbuild-0.1.9998svn2543.orig/src/lib/md5.c ++++ kbuild-0.1.9998svn2543/src/lib/md5.c +@@ -144,7 +144,7 @@ void MD5Final(unsigned char digest[16], + MD5Transform(ctx->buf, (uint32 *) ctx->in); + byteReverse((unsigned char *) ctx->buf, 4); + memcpy(digest, ctx->buf, 16); +- memset(ctx, 0, sizeof(ctx)); /* In case it's sensitive */ ++ memset(ctx, 0, sizeof(struct MD5Context)); /* In case it's sensitive */ + } + + | ||
[-] [+] | Added | warnings.diff ^ |
@@ -0,0 +1,10 @@ +--- src/ash/miscbltin.c ++++ src/ash/miscbltin.c +@@ -69,6 +69,7 @@ __RCSID("$NetBSD: miscbltin.c,v 1.35 2005/03/19 14:22:50 dsl Exp $"); + #undef rflag + + ++extern void* setmode(const char*); + + /* + * The read builtin. | ||
Added | kbuild-0.1.9998svn2543.tar.bz2 ^ | |
[-] [+] | Added | kbuild.changes_suse ^ |
@@ -0,0 +1,132 @@ +------------------------------------------------------------------- +Tue Dec 27 15:20:13 UTC 2011 - idonmez@suse.com + +- Fix wrong size parameter in memset call + +------------------------------------------------------------------- +Fri Dec 2 15:50:58 UTC 2011 - coolo@suse.com + +- add automake as buildrequire to avoid implicit dependency + +------------------------------------------------------------------- +Mon Oct 3 22:56:19 UTC 2011 - joop.boonen@opensuse.org + +- Added a patch to support armv7l + +------------------------------------------------------------------- +Tue Aug 23 08:35:11 UTC 2011 - mseben@gmail.com + +- updated to 0.1.9998 (svn revision 2538) in order to build + virtualbox 4.1.2, for changes check http://svn.netlabs.org/kbuild/timeline + +------------------------------------------------------------------- +Tue Nov 3 19:09:22 UTC 2009 - coolo@novell.com + +- updated patches to apply with fuzz=0 + +------------------------------------------------------------------- +Sun May 31 17:04:35 CEST 2009 - dmueller@suse.de + +- fix build against glibc 2.10 + +------------------------------------------------------------------- +Mon Apr 20 11:30:46 CEST 2009 - mseben@suse.cz + +- updated to 0.1.5svn2336 + - updated Maintenance.kmk with a patch variable. + - backported 2320: qt3.kmk: Fixed PATH_SDK_QT3_LIB detection + - backported 2318: footer.kmk: No need to apply defpath to 2_OBJS + wholesale fashion, the handler(s) will do this + - backported 2316: *WATCOM*: Fixed RC commands. + - backported 2283: incdep.c: If we find LD_PRELOAD on linux, assume + the worst and disable threading + - backported 2277: kmk: Testcase for the $(if-expr 1==2,) crash. + - backported 2276: kmk: Do not crash if is missing the 3rd + argument, it is supposed to be optional... + - backported 2275: TAR.kmk,TARGZ.kmk,TARBZ2.kmk: Fixes and + additions (BZ2). + - backported 2274: footer.kmk,header.kmk: Enhanced tools inhertiance + - backported 2273: VCC80X86: TOOL_VCC80X86_LINK_LIBRARY_OUTPUT_OUTPUT + -> TOOL_VCC80X86_LINK_LIBRARY_OUTPUT_MAYBE. oops + - backported 2272: qt4.kmk: Look for the QT4 tools in the + alternative tools tree (x86) when present (amd64). + - backported 2271: header.kmk: KBUILD_DEVTOOLS, KBUILD_DEVTOOLS_TRG, + KBUILD_DEVTOOLS_HST, KBUILD_DEVTOOLS_TRG_ALT and KBUILD_DEVTOOLS_HST_ALT. +- updated func_missing_args.diff + +------------------------------------------------------------------- +Wed Feb 11 14:18:04 CET 2009 - dmueller@suse.de + +- merge with openSUSE Factory: + * remove macro from Version line again. Although it is nice, + it causes other problems + +------------------------------------------------------------------- +Thu Jan 29 19:29:10 CET 2009 - suse-tux@gmx.de + +- create SvnInfo.kmk before the build starts + +------------------------------------------------------------------- +Thu Jan 29 17:14:24 CET 2009 - suse-tux@gmx.de + +- updated to 0.1.5svn2270 +- use macros inside the spec +- updated Patch1 (warnings.diff) - some parts are already fixed upstream +- removed Patch3 (kbuild-buildfix.diff) because it isn't needed anymore +- added Patch3 (kbuild-func_missing_args.diff) to prevent some compiler warnings + +------------------------------------------------------------------- +Thu Dec 25 20:03:52 CET 2008 - suse-tux@gmx.de + +- updated to 0.1.4svn2112 +- added kbuild-buildfix.diff + +------------------------------------------------------------------- +Tue Oct 14 18:28:33 CEST 2008 - meissner@suse.de + +- fixed an implicit getcwd() + +------------------------------------------------------------------- +Thu Sep 25 16:35:58 CEST 2008 - mkudlvasr@suse.cz + +- merge into openSUSE Factory + +------------------------------------------------------------------- +Thu Sep 18 19:53:10 CEST 2008 - suse-tux@gmx.de + +- added Patch2 (kbuild-dummy_noreturn.diff) in order to make the build checks happy + +------------------------------------------------------------------- +Sun Sep 14 20:13:08 CEST 2008 - suse-tux@gmx.de + +- update to 0.1.3svn1785 + +------------------------------------------------------------------- +Sun Sep 14 00:39:02 CEST 2008 - suse-tux@gmx.de + +- update to 0.1.3svn1775 +- removed kbuild-r1599_KBUILD_SVN_INFO_KMK-fix.diff + +------------------------------------------------------------------- +Tue May 6 23:52:43 CEST 2008 - dmueller@suse.de + +- fix uninit return values + +------------------------------------------------------------------- +Sun May 4 14:04:34 CEST 2008 - suse-tux@gmx.de + +- update to svn1599 in order to build virtualbox-ose 1.6.0 +- added kbuild-r1599_KBUILD_SVN_INFO_KMK-fix.diff +- start the bootstrap with kBuild/env.sh --full because this sets all required + variables automagically + +------------------------------------------------------------------- +Mon Apr 7 20:59:27 CEST 2008 - dmueller@suse.de + +- fix crash on x86_64 + +------------------------------------------------------------------- +Wed Apr 2 09:19:37 CEST 2008 - dmueller@suse.de + +- Initial package (0.1.2svn1480) + |
Submit package nemo:deve...6-common / kernel-adaptation-pc (revision 1) to package nemo:test...6-common / kernel-adaptation-pc
[-] [+] | Added | kernel-adaptation-pc.changes |
[-] [+] | Added | kernel-adaptation-pc.spec ^ |
[-] [+] | Added | kernel-adaptation-pc.config ^ |
@@ -0,0 +1,3927 @@ +# +# Automatically generated file; DO NOT EDIT. +# Linux/x86 3.6.11 Kernel Configuration +# +# CONFIG_64BIT is not set +CONFIG_X86_32=y +# CONFIG_X86_64 is not set +CONFIG_X86=y +CONFIG_INSTRUCTION_DECODER=y +CONFIG_OUTPUT_FORMAT="elf32-i386" +CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_HAVE_LATENCYTOP_SUPPORT=y +CONFIG_MMU=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NEED_SG_DMA_LENGTH=y +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_GPIO=y +CONFIG_ARCH_MAY_HAVE_PC_FDC=y +# CONFIG_RWSEM_GENERIC_SPINLOCK is not set +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ARCH_HAS_CPU_RELAX=y +CONFIG_ARCH_HAS_DEFAULT_IDLE=y +CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y +CONFIG_ARCH_HAS_CPU_AUTOPROBE=y +CONFIG_HAVE_SETUP_PER_CPU_AREA=y +CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y +CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +# CONFIG_ZONE_DMA32 is not set +# CONFIG_AUDIT_ARCH is not set +CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y +CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y +CONFIG_HAVE_INTEL_TXT=y +CONFIG_X86_32_SMP=y +CONFIG_X86_HT=y +CONFIG_X86_32_LAZY_GS=y +CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx" +CONFIG_ARCH_CPU_PROBE_RELEASE=y +CONFIG_ARCH_SUPPORTS_UPROBES=y +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" +CONFIG_HAVE_IRQ_WORK=y +CONFIG_IRQ_WORK=y +CONFIG_BUILDTIME_EXTABLE_SORT=y + +# +# General setup +# +CONFIG_EXPERIMENTAL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_CROSS_COMPILE="" +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_HAVE_KERNEL_GZIP=y +CONFIG_HAVE_KERNEL_BZIP2=y +CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_XZ=y +CONFIG_HAVE_KERNEL_LZO=y +CONFIG_KERNEL_GZIP=y +# CONFIG_KERNEL_BZIP2 is not set +# CONFIG_KERNEL_LZMA is not set +# CONFIG_KERNEL_XZ is not set +# CONFIG_KERNEL_LZO is not set +CONFIG_DEFAULT_HOSTNAME="(none)" +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_POSIX_MQUEUE=y +CONFIG_POSIX_MQUEUE_SYSCTL=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +# CONFIG_FHANDLE is not set +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y +CONFIG_AUDIT=y +# CONFIG_AUDITSYSCALL is not set +# CONFIG_AUDIT_LOGINUID_IMMUTABLE is not set +CONFIG_HAVE_GENERIC_HARDIRQS=y + +# +# IRQ subsystem +# +CONFIG_GENERIC_HARDIRQS=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GENERIC_IRQ_CHIP=y +CONFIG_IRQ_DOMAIN=y +# CONFIG_IRQ_DOMAIN_DEBUG is not set +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_SPARSE_IRQ=y +CONFIG_CLOCKSOURCE_WATCHDOG=y +CONFIG_KTIME_SCALAR=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y +CONFIG_GENERIC_CMOS_UPDATE=y + +# +# Timers subsystem +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y + +# +# RCU Subsystem +# +CONFIG_TREE_PREEMPT_RCU=y +CONFIG_PREEMPT_RCU=y +CONFIG_RCU_FANOUT=32 +CONFIG_RCU_FANOUT_LEAF=16 +# CONFIG_RCU_FANOUT_EXACT is not set +# CONFIG_RCU_FAST_NO_HZ is not set +# CONFIG_TREE_RCU_TRACE is not set +# CONFIG_RCU_BOOST is not set +# CONFIG_IKCONFIG is not set +CONFIG_LOG_BUF_SHIFT=17 +CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y +CONFIG_CGROUPS=y +# CONFIG_CGROUP_DEBUG is not set +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CPUSETS=y +CONFIG_PROC_PID_CPUSET=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_RESOURCE_COUNTERS=y +# CONFIG_MEMCG is not set +CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_SCHED=y +CONFIG_FAIR_GROUP_SCHED=y +# CONFIG_CFS_BANDWIDTH is not set +CONFIG_RT_GROUP_SCHED=y +CONFIG_BLK_CGROUP=y +# CONFIG_DEBUG_BLK_CGROUP is not set +# CONFIG_CHECKPOINT_RESTORE is not set +CONFIG_NAMESPACES=y +# CONFIG_UTS_NS is not set +# CONFIG_IPC_NS is not set +CONFIG_PID_NS=y +CONFIG_NET_NS=y +CONFIG_SCHED_AUTOGROUP=y +CONFIG_SYSFS_DEPRECATED=y +# CONFIG_SYSFS_DEPRECATED_V2 is not set +CONFIG_RELAY=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_RD_GZIP=y +CONFIG_RD_BZIP2=y +CONFIG_RD_LZMA=y +CONFIG_RD_XZ=y +CONFIG_RD_LZO=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SYSCTL=y +CONFIG_ANON_INODES=y +CONFIG_EXPERT=y +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_PCSPKR_PLATFORM=y +CONFIG_HAVE_PCSPKR_PLATFORM=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_AIO=y +# CONFIG_EMBEDDED is not set +CONFIG_HAVE_PERF_EVENTS=y + +# +# Kernel Performance Events And Counters +# +CONFIG_PERF_EVENTS=y +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_PCI_QUIRKS=y +# CONFIG_COMPAT_BRK is not set +CONFIG_SLAB=y +# CONFIG_SLUB is not set +# CONFIG_SLOB is not set +CONFIG_PROFILING=y +CONFIG_TRACEPOINTS=y +# CONFIG_OPROFILE is not set | ||
[-] [+] | Added | kernel-adaptation-pc.yaml ^ |
@@ -0,0 +1,28 @@ +Name: kernel-adaptation-pc +Summary: Kernel Adaptation %{kernel_target_hw} +Version: 3.6.11 +Release: 8 +Group: Kernel/Linux Kernel +License: GPLv2 +Sources: + - linux-%{version}.tar.bz2 + - "%{name}.config" +Description: Kernel for %{kernel_target_hw}. + +RequiresPre: + - kmod + - mkinitrd >= 6.0.39-1 +PkgConfigBR: + - ncurses +Provides: + - kernel = %{kernel_version} +Configure: none +Builder: none +SubPackages: + - Name: devel + Summary: Devel files for %{kernel_target_hw} kernel + Group: Development/System + Description: Devel for %{kernel_target_hw} kernel + Provides: + - kernel-devel = %{kernel_version} + | ||
Added | linux-3.6.11.tar.bz2 ^ |
Submit package nemo:devel:h...:x86-common / linux-firmware (revision 1) to package nemo:testing...:x86-common / linux-firmware
Submit package nemo:devel:...x86-common / mesa-x86-generic (revision 1) to package nemo:testin...x86-common / mesa-x86-generic
[-] [+] | Added | mesa-x86-generic.changes |
[-] [+] | Added | mesa-x86-generic.spec ^ |
[-] [+] | Added | mesa-7.11-git-notimestamping.patch ^ |
@@ -0,0 +1,15 @@ +diff -ru mesa-7.11~git4056.g0edb40c/src/mesa/main/es_generator.py mesa-7.11~git4056.g0edb40c-notimestamping/src/mesa/main/es_generator.py +--- mesa-7.11~git4056.g0edb40c/src/mesa/main/es_generator.py 2011-06-30 08:01:17.000000000 +0200 ++++ mesa-7.11~git4056.g0edb40c-notimestamping/src/mesa/main/es_generator.py 2011-10-14 16:39:52.707633469 +0200 +@@ -182,9 +182,8 @@ + * THIS FILE AUTOMATICALLY GENERATED BY THE %s SCRIPT + * API specification file: %s + * GLES version: %s +- * date: %s + */ +-""" % (program, functionList, version, time.strftime("%Y-%m-%d %H:%M:%S")) ++""" % (program, functionList, version) + + # The headers we choose are version-specific. + print """ +Only in mesa-7.11~git4056.g0edb40c-notimestamping/src/mesa/main: es_generator.py~ | ||
Added | MesaLib-8.0.1.tar.bz2 ^ | |
[-] [+] | Added | mesa-x86-generic-rpmlintrc ^ |
@@ -0,0 +1,3 @@ +# This line is mandatory to access the configuration functions +from Config import * +addFilter("mesa.* devel-file-in-non-devel-package") | ||
[-] [+] | Added | mesa-x86-generic.yaml ^ |
@@ -0,0 +1,201 @@ +Name: mesa-x86-generic +Summary: Mesa graphics libraries built for x86-generic +Version: 8.0.1 +Release: 0 +Group: System/Libraries +License: MIT +URL: http://www.mesa3d.org/beta +Sources: + - MesaLib-%{version}.tar.bz2 + - mesa-x86-generic-rpmlintrc +Patches: + - mesa-7.11-git-notimestamping.patch + +SetupOptions: "-q -n Mesa-%{version} -b1" + +Description: | + Mesa is an open-source implementation of the OpenGL specification - + a system for rendering interactive 3D graphics. +PkgBR: + - pkgconfig autoconf automake + - expat-devel >= 2.0 + - python + - libxml2-python + - bison + - flex + - makedepend +PkgConfigBR: + - glproto + - dri2proto >= 1.1 + - xproto + - libdrm >= 2.4.30 + - xxf86vm + - xext + - xfixes + - xdamage + - xi + - xmu + - libxml-2.0 + - talloc + - libudev >= 160 +Configure: reconfigure +ConfigOptions: + - --with-x + - --with-dri-drivers=i915,i965,swrast + - --with-state-trackers=egl + - --enable-glew=no + - --enable-glw=no + - --enable-glut=no + - --enable-gles1=yes + - --enable-gles2=yes + - --enable-egl=yes + - --enable-gallium-egl + - --enable-osmesa=no + - --with-gallium-drivers=swrast + - --with-egl-platforms=x11 + - --enable-glx-tls + - --enable-glx=yes + - --enable-dri +Builder: make +SubPackages: + - Name: libglapi + Summary: Mesa shared gl api library + Group: System/Libraries + Description: Mesa shared gl api library. + + - Name: libGLESv1 + Summary: Mesa libGLESv1 runtime libraries + Group: System/Libraries + Description: Mesa libGLESv1 runtime library. + Provides: + - libGLESv1 = %{version}-%{release} + + - Name: libGLESv2 + Summary: Mesa libGLESv2 runtime libraries + Group: System/Libraries + Description: Mesa libGLESv2 runtime library. + Provides: + - libGLESv2 = %{version}-%{release} + + - Name: libGLESv2-compat + Summary: Mesa libGLESv2 runtime compatibility library + Group: System/Libraries + Description: Mesa libGLESv2 runtime compatibility library. + Requires: + - libGLESv2.so.2 + Provides: + - libGLESv2.so + + - Name: libEGL + Summary: Mesa libEGL runtime libraries and DRI drivers + Group: System/Libraries + Description: Mesa libEGL runtime library. + Provides: + - libEGL = %{version}-%{release} + + - Name: libEGL-compat + Summary: Mesa libEGL runtime compatibility library + Group: System/Libraries + Description: Mesa libEGL runtime compatibility library. + Requires: + - libEGL.so.1 + Provides: + - libEGL.so + + - Name: libglapi-devel + Summary: Mesa libglapi development package + Group: System/Libraries + Description: Mesa libglapi development package. + Provides: + - libglapi-devel + Requires: + - mesa-x86-generic-libglapi = %{version}-%{release} + + - Name: libGLESv1-devel + Summary: Mesa libGLESv1 development package + Group: Development/Libraries + Description: Mesa libGLESv1 development packages + Provides: + - libGLESv1-devel + Requires: + - mesa-x86-generic-libGLESv1 = %{version}-%{release} + + - Name: libGLESv2-devel + Summary: Mesa libGLESv2 development package + Group: Development/Libraries + Description: Mesa libGLESv2 development packages + Provides: + - libGLESv2-devel + Requires: + - mesa-x86-generic-libGLESv2 = %{version}-%{release} + Obsoletes: + - mesa-x86-generic-libGLESv2-compat + + - Name: libEGL-devel + Summary: Mesa libEGL development package + Group: Development/Libraries + Description: Mesa libEGL development packages + Provides: + - libEGL-devel + Requires: + - mesa-x86-generic-libEGL = %{version}-%{release} + Obsoletes: + - mesa-x86-generic-libEGL-compat + + - Name: libGL + Summary: Mesa libGL runtime libraries and DRI drivers + Group: System/Libraries + Description: Mesa libGL runtime library. + Provides: + - libGL = %{version}-%{release} + + - Name: libGL-devel + Summary: Mesa libGL development package + Group: Development/Libraries + Description: Mesa libGL development packages + Requires: + - mesa-x86-generic-libGL = %{version}-%{release} + - libX11-devel + Provides: + - libGL-devel + + - Name: libGLU-devel + Summary: Mesa libGLU development package + Group: Development/Libraries + Description: Mesa libGLU development packages + Requires: + - mesa-x86-generic-libGLU = %{version}-%{release} + - libGL-devel + Provides: + - libGLU-devel + + - Name: libGLU + Summary: Mesa libGLU runtime library + Group: System/Libraries + Description: Mesa libGLU runtime libraries + + - Name: dri-drivers-devel + Summary: Mesa-based DRI development files + Group: Development/Libraries + Description: Mesa-based DRI driver development files. + + - Name: dri-i965-driver + Summary: Mesa-based DRI drivers + Group: Graphics/Display and Graphics Adaptation + Description: Mesa-based i965 DRI driver. + Provides: + - mesa-dri-drivers = %{version}-%{release} + + - Name: dri-i915-driver + Summary: Mesa-based DRI drivers + Group: Graphics/Display and Graphics Adaptation + Description: Mesa-based i915 DRI driver. + Provides: + - mesa-dri-drivers = %{version}-%{release} + + - Name: dri-swrast-driver + Summary: Mesa-based DRI drivers + Group: Graphics/Display and Graphics Adaptation + Description: Mesa-based swrast DRI driver. |
Submit package nemo:devel:hw:x86:x86-common / mkinitrd (revision 1) to package nemo:testing:hw:x86:x86-common / mkinitrd
[-] [+] | Added | mkinitrd.changes |
[-] [+] | Added | mkinitrd.spec ^ |
[-] [+] | Added | 0001-Fix-for-systemd-187.patch ^ |
@@ -0,0 +1,146 @@ +From 9c126fb63303198a9e313d45329cf3c06276d382 Mon Sep 17 00:00:00 2001 +From: Marko Saukko <marko.saukko@jollamobile.com> +Date: Mon, 13 Aug 2012 15:20:48 +0000 +Subject: [PATCH] Fix for systemd >= 187 + +Signed-off-by: Marko Saukko <marko.saukko@jollamobile.com> +--- + mkliveinitrd | 38 +++++++++++++++++++------------------- + 1 file changed, 19 insertions(+), 19 deletions(-) + +diff --git a/mkliveinitrd b/mkliveinitrd +index c3c09a7..4b8b3f1 100755 +--- a/mkliveinitrd ++++ b/mkliveinitrd +@@ -77,7 +77,7 @@ mkdir initramfs_dir + cd initramfs_dir + + # Make directory structure +-mkdir bin sbin dev sys proc lib lib/udev sysroot etc etc/udev etc/udev/rules.d ++mkdir -p bin sbin dev sys proc lib lib/systemd lib/udev usr/bin sysroot etc etc/udev etc/udev/rules.d + + cp /sbin/losetup sbin + cp /sbin/blockdev sbin +@@ -156,6 +156,7 @@ cp /bin/bash bin + cp /bin/mount bin + cp /bin/umount bin + [ -x /usr/sbin/eject ] && cp /usr/sbin/eject sbin ++cp /bin/ps bin + cp /bin/ls bin + cp /bin/mknod bin + cp /bin/mkdir bin +@@ -164,15 +165,20 @@ cp /bin/ln bin + cp /bin/cat bin + cp /usr/bin/kill bin + cp /bin/rm bin ++cp /bin/find bin + +-cp /sbin/udevadm sbin +-cp /sbin/udevd sbin ++cp /usr/bin/udevadm usr/bin ++cp /lib/systemd/systemd-udevd lib/systemd/ ++ ++cp /usr/bin/kmod usr/bin + cp /sbin/insmod sbin + cp /sbin/modprobe sbin +-cp /usr/bin/killall sbin ++cp /sbin/pidof sbin ++cp /usr/bin/killall bin + cp /usr/sbin/chroot sbin + + cp /sbin/blkid sbin ++cp /sbin/fdisk sbin + + # symlink niceties + ln -s bash bin/sh +@@ -180,6 +186,7 @@ ln -s bash bin/sh + # Not really required but nice + [ -x /usr/bin/tree ] && cp /usr/bin/tree bin + [ -x /usr/bin/less ] && cp /usr/bin/less bin ++cp /bin/more bin + cp /bin/env bin + cp /bin/grep bin + cp /bin/dmesg bin +@@ -232,10 +239,7 @@ export PATH=/sbin:/bin + + exec < /dev/console > /dev/console 2>&1 + +-mount -n -t tmpfs -o mode=0755 udev /dev +-mknod /dev/console c 5 1 +-mknod /dev/null c 1 3 +-mknod /dev/kmsg c 1 11 ++mount -n -t devtmpfs -o mode=0755 none /dev + mkdir /dev/pts + mkdir -m 1777 /dev/shm + ln -s /proc/self/fd /dev/fd +@@ -326,7 +330,7 @@ for o in `cat /proc/cmdline` ; do + esac + done + +-pushd /etc; ln -sf ../proc/self/mounts mtab; popd ++ln -sf /proc/self/mounts /etc/mtab + + if [ "$quiet" != "1" ] ; then + echo "kernel commandline: `cat /proc/cmdline`" +@@ -470,18 +474,18 @@ echo "SUBSYSTEM==\"mmc\", RUN+=\"/sbin/modprobe mmc_block\"" >> /etc/udev/rules. + if [ "$quiet" != "1" ] ; then + echo "starting udevd" + fi +-/sbin/udevd --daemon ++ ++/lib/systemd/systemd-udevd --daemon + + if [ "$quiet" != "1" ] ; then + echo "creating devices" + fi +-/sbin/udevadm trigger ++/usr/bin/udevadm trigger + + if [ "$quiet" != "1" ] ; then + echo "waiting for system to settle" + fi +-/sbin/udevadm settle --timeout=30 || : +- ++/usr/bin/udevadm settle --timeout=30 || : + + if [ "$shell" == "1" ] ; then + echo "Shell requested on kernel commandline. Exit to continue booting." +@@ -532,7 +536,7 @@ if [ "$root" != "mtd0" -a ! -f "$thingtomount" ] ; then + # where we were unable to read the volume id. so trigger + # another run through the block devs + if [ "x$COUNTDOWN" = "x30" ]; then +- /sbin/udevadm trigger --subsystem-match=block ++ /usr/bin/udevadm trigger --subsystem-match=block + fi + done + fi +@@ -752,8 +756,6 @@ if [ -n "$EXT3FS" ] ; then + echo "setting up embedded ext3 fs " + fi + +- mkdir -p /dev/mapper +- mknod /dev/mapper/control c 10 63 + modprobe dm_snapshot + + BASE_LOOPDEV=$( losetup -f ) +@@ -775,8 +777,6 @@ if [ -e "$SQUASHED" ] ; then + echo "setting up embedded squash -> ext3 fs " + fi + +- mkdir -p /dev/mapper +- mknod /dev/mapper/control c 10 63 + modprobe dm_snapshot + + if [ "$live_ram" == "1" ] ; then +@@ -821,7 +821,7 @@ fi + if [ -x /sysroot$init ] ; then + + # Leave initramfs and transition to rootfs +- killall udevd ++ killall systemd-udevd + if [ "$quiet" != "1" ] ; then + echo "transfering control to $init" + fi +-- +1.7.10.3 + | ||
[-] [+] | Added | fix-a-weird-btrfs-root-issue.patch ^ |
@@ -0,0 +1,13 @@ +diff --git a/mkliveinitrd b/mkliveinitrd +index 66167be..ba575b4 100755 +--- a/mkliveinitrd ++++ b/mkliveinitrd +@@ -667,7 +667,7 @@ do_live_from_base_loop() { + + # set up new /dev/root symlink + rm -f /dev/root +- ln -s /dev/mapper/live-rw /dev/root ++ ln -fs /dev/mapper/live-rw /dev/root + + mount -n /dev/mapper/live-rw /sysroot + # here you can modify the rw ext3 fs for testing if you don't want to | ||
[-] [+] | Added | mkinitrd-lsb-functions-optional.patch ^ |
@@ -0,0 +1,12 @@ +diff -Nurb mkinitrd-7.0.17-/mkinitrd mkinitrd-7.0.17/mkinitrd +--- mkinitrd-7.0.17-/mkinitrd 2010-02-08 06:59:11.000000000 -0800 ++++ mkinitrd-7.0.17/mkinitrd 2011-04-19 10:35:51.653284349 -0700 +@@ -56,7 +56,7 @@ + PATH=/sbin:/usr/sbin:/bin:/usr/bin:$PATH + export PATH + +-. /etc/rc.d/init.d/functions ++[ ! -f /etc/rc.d/init.d/functions ] || . /etc/rc.d/init.d/functions + + # Set the umask. For iscsi, the initrd can contain plaintext + # password (chap secret), so only allow read by owner. | ||
[-] [+] | Added | mkmrstinitrd.patch ^ |
@@ -0,0 +1,40 @@ +diff -Naur a/mkmrstinitrd b/mkmrstinitrd +--- a/mkmrstinitrd 2010-02-08 06:59:11.000000000 -0800 ++++ b/mkmrstinitrd 2010-08-11 12:31:32.799176760 -0700 +@@ -377,6 +377,8 @@ + thingtomount=/dev/root + ;; + /dev/*) ++ ln -s $root /dev/root ++ thingtomount=$root + ;; + *) + thingtomount=$root +@@ -407,15 +409,18 @@ + echo "checking device /dev/${device}" + if [ -e /sys/block/${device}/removable ] + then +- echo "found harddisk at /dev/${device}" +- found="yes" +- devtype="mmc" +- while [ ! -e /dev/${device} ] +- do +- sleep 5 +- echo "." +- done +- break ++ if [ -e /dev/${device}p1 ] ++ then ++ echo "found harddisk at /dev/${device}" ++ found="yes" ++ devtype="mmc" ++ while [ ! -e /dev/${device} ] ++ do ++ sleep 5 ++ echo "." ++ done ++ break ++ fi + fi + done + | ||
[-] [+] | Added | modprobe_conf.patch ^ |
@@ -0,0 +1,49 @@ +Index: mkinitrd-7.0.17/mkliveinitrd +=================================================================== +--- mkinitrd-7.0.17.orig/mkliveinitrd ++++ mkinitrd-7.0.17/mkliveinitrd +@@ -147,10 +147,6 @@ fi + # Copy /etc/fstab over + cp /etc/fstab etc + +-# Copy modprobe.conf and friends over +-if [ -e /etc/modprobe.conf ] ; then +- cp /etc/modprobe.conf etc +-fi + cp -R /etc/modprobe.d etc + + # Copy binaries over +@@ -307,7 +303,7 @@ for o in `cat /proc/cmdline` ; do + ;; + blacklist=*) + blacklist=${o#blacklist=} +- echo "blacklist $blacklist" >> /etc/modprobe.conf ++ echo "blacklist $blacklist" >> /etc/modprobe.d/blacklist.conf + ;; + *) + m=$(echo $o |cut -s -d . -f 1) +@@ -320,11 +316,13 @@ for o in `cat /proc/cmdline` ; do + if [ -z "$p" -o -z "$v" ]; then + continue + fi +- echo "options $m $p=$v" >> /etc/modprobe.conf ++ echo "options $m $p=$v" >> /etc/modprobe.d/$m.conf + ;; + esac + done + ++pushd /etc; ln -sf ../proc/self/mounts mtab; popd ++ + if [ "$quiet" != "1" ] ; then + echo "kernel commandline: `cat /proc/cmdline`" + fi +@@ -681,9 +679,6 @@ do_live_from_base_loop() { + echo "LANG=$live_locale" > /sysroot/etc/sysconfig/i18n + fi + +- # copy over module options +- [ -f /etc/modprobe.conf ] && cat /etc/modprobe.conf >> /sysroot/etc/modprobe.conf +- + # create rule so udev creates /dev/live symlink on real rootfs + if [ -n "$CDLABEL" ]; then + echo "KERNEL==\"hd[a-z]\", SUBSYSTEMS==\"ide\", ATTRS{removable}==\"1\", ATTRS{media}==\"cdrom\", PROGRAM=\"/sbin/blkid -s LABEL -o value %N\", RESULT==\"$CDLABEL\", SYMLINK+=\"live\"" >> /sysroot/lib/udev/rules.d/50-udev* | ||
[-] [+] | Added | mount-run-and-create-dirs-for-udev.patch ^ |
@@ -0,0 +1,16 @@ +diff --git a/mkliveinitrd b/mkliveinitrd +index ea5b0b8..c3c09a7 100755 +--- a/mkliveinitrd ++++ b/mkliveinitrd +@@ -248,6 +248,11 @@ mount -n -t sysfs sysfs /sys + + echo "" > /proc/sys/kernel/hotplug + ++mkdir -p -m 0755 /run ++mount -t tmpfs -o mode=0755,nodev,noexec,nosuid tmpfs /run >/dev/null 2>&1 ++mkdir -m 0755 /run/udev /run/udev/rules.d ++export UDEVRULESD=/run/udev/rules.d ++ + # Declare all variables here.. mostly for housekeeping + # + init="/sbin/init" | ||
[-] [+] | Added | systemd_mkinitrd_live_mrst.patch ^ |
@@ -0,0 +1,44 @@ +diff -uprN mkinitrd-7.0.17/mkliveinitrd mkinitrd-7.0.17-NEW/mkliveinitrd +--- mkinitrd-7.0.17/mkliveinitrd 2010-04-12 02:52:05.000000000 -0700 ++++ mkinitrd-7.0.17-NEW/mkliveinitrd 2011-05-11 16:19:22.550847749 -0700 +@@ -173,8 +173,7 @@ cp /sbin/udevadm sbin + cp /sbin/udevd sbin + cp /sbin/insmod sbin + cp /sbin/modprobe sbin +-cp /sbin/pidof sbin +-cp /sbin/killall5 sbin ++cp /usr/bin/killall sbin + cp /usr/sbin/chroot sbin + + cp /sbin/blkid sbin +@@ -822,7 +821,7 @@ fi + if [ -x /sysroot$init ] ; then + + # Leave initramfs and transition to rootfs +- kill `pidof udevd` ++ killall udevd + if [ "$quiet" != "1" ] ; then + echo "transfering control to $init" + fi +diff -uprN mkinitrd-7.0.17/mkmrstinitrd mkinitrd-7.0.17-NEW/mkmrstinitrd +--- mkinitrd-7.0.17/mkmrstinitrd 2010-02-08 06:59:11.000000000 -0800 ++++ mkinitrd-7.0.17-NEW/mkmrstinitrd 2011-05-11 16:19:49.709412234 -0700 +@@ -114,8 +114,7 @@ cp /sbin/udevadm sbin + cp /sbin/udevd sbin + cp /sbin/insmod sbin + cp /sbin/modprobe sbin +-cp /sbin/pidof sbin +-cp /sbin/killall5 sbin ++cp /usr/bin/killall sbin + cp /usr/sbin/chroot sbin + + cp /sbin/blkid sbin +@@ -641,7 +640,7 @@ fi + if [ -x /sysroot$init ] ; then + + # Leave initramfs and transition to rootfs +- kill `pidof udevd` ++ killall udevd + if [ "$quiet" != "1" ] ; then + echo "transfering control to $init" + fi | ||
[-] [+] | Added | timeout-fix.patch ^ |
@@ -0,0 +1,20 @@ +--- mkinitrd-7.0.17/mkmrstinitrd~ 2010-02-08 09:59:11.000000000 -0500 ++++ mkinitrd-7.0.17/mkmrstinitrd 2010-06-11 22:52:48.267155400 -0400 +@@ -397,7 +397,7 @@ + if [ "$quiet" != "1" ] ; then + echo "waiting for system to settle" + fi +- /sbin/udevadm settle --timeout=30 || : ++ /sbin/udevadm settle --timeout=5 || : + + echo "Searching for Root File System..." + # Find the boot disk +@@ -502,7 +502,7 @@ + if [ "$quiet" != "1" ] ; then + echo "waiting for system to settle" + fi +- /sbin/udevadm settle --timeout=30 || : ++ /sbin/udevadm settle --timeout=5 || : + fi + + | ||
Added | mkinitrd-7.0.17.tar.bz2 ^ |
Submit package nemo:devel:hw:x86:x86-common / mtdev (revision 1) to package nemo:testing:hw:x86:x86-common / mtdev
[-] [+] | Added | mtdev.changes |
[-] [+] | Added | mtdev.spec ^ |
Added | mtdev-1.0.11.tar.gz ^ | |
[-] [+] | Added | mtdev.yaml ^ |
@@ -0,0 +1,29 @@ +Name: mtdev +Summary: A library to transform all kernel MT events to protocol B (slotted) +Version: 1.0.11 +Release: 1 +Group: System/X Hardware Support +License: MIT +URL: http://bitmath.org/code/mtdev/ +Sources: + - "%{name}-%{version}.tar.gz" +Description: | + mtdev - The mtdev is a stand-alone library which transforms all variants of + kernel MT events to the slotted type B protocol. The events put into mtdev + may be from any MT device, specifically type A without contact tracking, + type A with contact tracking, or type B with contact tracking. See the + kernel documentation for further details. The bulk of the mtdev code has + been out there since 2008, as part of the Multitouch X Driver. With this + package, finger tracking and seamless MT protocol handling is available + under a free license. + +PkgBR: + - autoconf + - libtool +Configure: configure +Builder: make +SubPackages: + - Name: devel + Summary: Development header files for use with mtdev + Group: Development/Libraries + Description: Development header files for use with mtdev. |
Submit package nemo:devel:hw:x86:x86-common / mtools (revision 1) to package nemo:testing:hw:x86:x86-common / mtools
[-] [+] | Added | mtools.changes |
[-] [+] | Added | mtools.spec ^ |
[-] [+] | Added | fix_mlabel_initialisation.patch ^ |
@@ -0,0 +1,13 @@ +Index: mtools-4.0.12/mlabel.c +=================================================================== +--- mtools-4.0.12.orig/mlabel.c ++++ mtools-4.0.12/mlabel.c +@@ -35,7 +35,7 @@ void label_name(doscp_t *cp, const char + int have_lower, have_upper; + wchar_t wbuffer[12]; + +- memset(ans, ' ', sizeof(ans)-1); ++ memset(ans, ' ', sizeof(*ans)-1); + ans->sentinel = '\0'; + len = native_to_wchar(filename, wbuffer, 11, 0, 0); + if(len > 11){ | ||
[-] [+] | Added | mtools-3.9.6-config.patch ^ |
@@ -0,0 +1,38 @@ +--- mtools-3.9.6/mtools.conf.fixes Sun Jan 4 04:29:32 1998 ++++ mtools-3.9.6/mtools.conf Wed Feb 9 11:41:36 2000 +@@ -1,22 +1,25 @@ + # Example mtools.conf files. Uncomment the lines which correspond to + # your architecture and comment out the "SAMPLE FILE" line below +-SAMPLE FILE + +-# # Linux floppy drives +-# drive a: file="/dev/fd0" exclusive +-# drive b: file="/dev/fd1" exclusive ++# Linux floppy drives ++drive a: file="/dev/fd0" exclusive 1.44m mformat_only ++drive b: file="/dev/fd1" exclusive 1.44m mformat_only + +-# # First SCSI hard disk partition +-# drive c: file="/dev/sda1" ++# First SCSI hard disk partition ++#drive c: file="/dev/sda1" + +-# # First IDE hard disk partition +-# drive c: file="/dev/hda1" ++# First IDE hard disk partition ++#drive c: file="/dev/hda1" + + # # dosemu floppy image + # drive m: file="/var/lib/dosemu/diskimage" + +-# # dosemu hdimage +-# drive n: file="/var/lib/dosemu/diskimage" offset=3840 ++# dosemu hdimage ++drive n: file="/var/lib/dosemu/hdimage" offset=8832 ++ ++# # HPOJ (ptal-photod) ++mtools_skip_check=1 ++drive p: file=":0" remote + + # # Atari ramdisk image + # drive o: file="/tmp/atari_rd" offset=136 | ||
[-] [+] | Added | mtools-3.9.7-bigdisk.patch ^ |
@@ -0,0 +1,13 @@ +--- mtools-3.9.7/mtools.conf.big Wed May 16 19:07:57 2001 ++++ mtools-3.9.7/mtools.conf Wed May 16 19:08:12 2001 +@@ -2,8 +2,8 @@ + # your architecture and comment out the "SAMPLE FILE" line below + + # Linux floppy drives +-drive a: file="/dev/fd0" exclusive 1.44m mformat_only +-drive b: file="/dev/fd1" exclusive 1.44m mformat_only ++drive a: file="/dev/fd0" exclusive mformat_only ++drive b: file="/dev/fd1" exclusive mformat_only + + # First SCSI hard disk partition + #drive c: file="/dev/sda1" | ||
Added | mtools-4.0.12.tar.bz2 ^ |
Submit package nemo:deve...6-common / nemo-mobi...-generic to package nemo:test...6-common / nemo-mobi...-generic
[-] [+] | Added | nemo-mobile-configs-x86-generic.changes |
[-] [+] | Added | nemo-mobile-configs-x86-generic.spec ^ |
[-] [+] | Added | 60-nemo-mobile-hw.conf ^ |
@@ -0,0 +1,3 @@ +# Clear the runtime system as the default "meego" set by +# nemo-mobile-session doesn't work on x86 properly +QT_DEFAULT_RUNTIME_SYSTEM= | ||
[-] [+] | Added | nemo-mobile-configs-x86-generic.yaml ^ |
@@ -0,0 +1,18 @@ +Name: nemo-mobile-configs-x86-generic +Summary: Some configs for x86-generic adaptation in Nemo Mobile +Description: | + %{summary}. +Version: 2 +Release: 1 +Group: Configs +License: GPLv2 +Sources: + - 60-nemo-mobile-hw.conf +Requires: + - nemo-mobile-session +NoSetup: true +Configure: none +Builder: none +Files: + - "/var/lib/environment/nemo/60-nemo-mobile-hw.conf" + |
Submit package nemo:deve...6-common / nemo-mobi...s-x86-vm to package nemo:test...6-common / nemo-mobi...s-x86-vm
[-] [+] | Added | nemo-mobile-configs-x86-vm.changes |
[-] [+] | Added | nemo-mobile-configs-x86-vm.spec ^ |
[-] [+] | Added | 60-nemo-mobile-hw.conf ^ |
@@ -0,0 +1,6 @@ +# Removing -nocursor to get cursor for vm's +OPTIONS=-background none + +# Clear the runtime system as the default "meego" set by +# nemo-mobile-session doesn't work on x86 properly +QT_DEFAULT_RUNTIME_SYSTEM= | ||
[-] [+] | Added | nemo-mobile-configs-x86-vm.yaml ^ |
@@ -0,0 +1,18 @@ +Name: nemo-mobile-configs-x86-vm +Summary: Some configs for x86-vm adaptation in Nemo Mobile +Description: | + %{summary}. +Version: 2 +Release: 1 +Group: Configs +License: GPLv2 +Sources: + - 60-nemo-mobile-hw.conf +Requires: + - nemo-mobile-session +NoSetup: true +Configure: none +Builder: none +Files: + - "/var/lib/environment/nemo/60-nemo-mobile-hw.conf" + |
Submit package nemo:devel:hw:x86:x86-common / parted (revision 1) to package nemo:testing:hw:x86:x86-common / parted
[-] [+] | Added | parted.changes |
[-] [+] | Added | parted.spec ^ |
Added | parted-3.0.tar.gz ^ |
Submit package nemo:deve...86-common / pattern-x86-generic to package nemo:test...86-common / pattern-x86-generic
[-] [+] | Added | pattern-x86-generic.changes |
[-] [+] | Added | pattern-x86-generic.spec ^ |
Added | pattern-x86-generic-004.tar.bz2 ^ | |
[-] [+] | Added | pattern-x86-generic.yaml ^ |
@@ -0,0 +1,21 @@ +Name: pattern-x86-generic +Summary: Provides pattern '%{name}' +Description: | + %{summary}. +Version: 004 +Release: 1 +Group: Packaging/Patterns +License: GPLv2 +URL: https://gitorious.org/meego-developer-edition-for-n900/package-groups +Sources: + - "%{name}-%{version}.tar.bz2" +Provides: + - package-groups +PkgBR: + - repomd-pattern-builder +Builder: make +Configure: none +BuildArch: noarch +Files: + - "%{_datadir}/package-groups/*.xml" + |
Submit package nemo:devel:h...:x86-common / pattern-x86-vm to package nemo:testing...:x86-common / pattern-x86-vm
[-] [+] | Added | pattern-x86-vm.changes |
[-] [+] | Added | pattern-x86-vm.spec ^ |
Added | pattern-x86-vm-003.tar.bz2 ^ | |
[-] [+] | Added | pattern-x86-vm.yaml ^ |
@@ -0,0 +1,21 @@ +Name: pattern-x86-vm +Summary: Provides pattern '%{name}' +Description: | + %{summary}. +Version: 003 +Release: 1 +Group: Packaging/Patterns +License: GPLv2 +URL: https://gitorious.org/meego-developer-edition-for-n900/package-groups +Sources: + - "%{name}-%{version}.tar.bz2" +Provides: + - package-groups +PkgBR: + - repomd-pattern-builder +Builder: make +Configure: none +BuildArch: noarch +Files: + - "%{_datadir}/package-groups/*.xml" + |
Submit package nemo:deve...86-common / patterns-x86-common (revision 1) to package nemo:test...86-common / patterns-x86-common
[-] [+] | Added | patterns-x86-common.changes |
[-] [+] | Added | patterns-x86-common.spec ^ |
Added | patterns-x86-common-0.1.tar.bz2 ^ |
Submit package nemo:devel:hw:x86:x86-common / rsync (revision 1) to package nemo:testing:hw:x86:x86-common / rsync
[-] [+] | Added | rsync.changes |
[-] [+] | Added | rsync.spec ^ |
[-] [+] | Added | rsync ^ |
@@ -0,0 +1,14 @@ +# default: off +# description: The rsync server is a good addition to an ftp server, as it \ +# allows crc checksumming etc. +service rsync +{ + disable = yes + flags = IPv6 + socket_type = stream + wait = no + user = root + server = /usr/bin/rsync + server_args = --daemon + log_on_failure += USERID +} | ||
Added | rsync-3.0.8.tar.gz ^ | |
[-] [+] | Added | rsync.yaml ^ |
@@ -0,0 +1,32 @@ +Name: rsync +Summary: A program for synchronizing files over a network +Version: 3.0.8 +Release: 1 +Group: Applications/Internet +License: GPLv3+ +URL: http://rsync.samba.org/ +Sources: + - http://rsync.samba.org/ftp/rsync/src/rsync-%{version}.tar.gz +ExtraSources: + - rsync;/etc/xinetd.d +Description: | + Rsync uses a reliable algorithm to bring remote and host files into + sync very quickly. Rsync is fast because it just sends the differences + in the files over the network instead of sending the complete + files. Rsync is often used as a very powerful mirroring process or + just as a more capable replacement for the rcp command. A technical + report which describes the rsync algorithm is included in this + package. + +PkgConfigBR: + - popt +PkgBR: + - libacl-devel + - libattr-devel +Configure: configure +SubPackages: + - Name: support + Summary: Support files for rsync + Group: Applications/System + Description: | + Support filrs for rsync |
Submit package nemo:devel:hw:x86:x86-common / syslinux (revision 2) to package nemo:testing:hw:x86:x86-common / syslinux
[-] [+] | Added | syslinux.changes |
[-] [+] | Added | syslinux.spec ^ |
Added | syslinux-4.06.tar.xz ^ | |
[-] [+] | Added | syslinux-rpmlintrc ^ |
@@ -0,0 +1,2 @@ +from Config import * +addFilter("syslinux-devel.* arch-dependent-file-in-usr-share") |
Submit package nemo:devel:hw:x86:x86-common / virtualbox (revision 2) to package nemo:testing:hw:x86:x86-common / virtualbox
[-] [+] | Added | virtualbox.changes |
[-] [+] | Added | virtualbox.spec ^ |
[-] [+] | Added | vbox-disable-updates.diff ^ |
@@ -0,0 +1,49 @@ +--- src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsUpdate.cpp ++++ src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsUpdate.cpp +@@ -63,7 +63,7 @@ void UIGlobalSettingsUpdate::loadToCache + void UIGlobalSettingsUpdate::getFromCache() + { + /* Apply internal variables data to QWidget(s): */ +- m_pEnableUpdateCheckbox->setChecked(m_cache.m_fCheckEnabled); ++ m_pEnableUpdateCheckbox->setChecked(false); + if (m_pEnableUpdateCheckbox->isChecked()) + { + m_pUpdatePeriodCombo->setCurrentIndex(m_cache.m_periodIndex); +--- src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.h ++++ src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.h +@@ -39,7 +39,6 @@ + { + GLSettingsPage_General = 0, + GLSettingsPage_Input, +- GLSettingsPage_Update, + GLSettingsPage_Language, + GLSettingsPage_Display, + GLSettingsPage_USB, +--- src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp ++++ src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp +@@ -340,15 +340,6 @@ UISettingsDialogGlobal::UISettingsDialog + iPageIndex, "#input", pSettingsPage); + break; + } +- /* Update page: */ +- case GLSettingsPage_Update: +- { +- pSettingsPage = new UIGlobalSettingsUpdate; +- addItem(":/refresh_32px.png", ":/refresh_disabled_32px.png", +- ":/refresh_16px.png", ":/refresh_disabled_16px.png", +- iPageIndex, "#update", pSettingsPage); +- break; +- } + /* Language page: */ + case GLSettingsPage_Language: + { +@@ -481,9 +472,6 @@ void UISettingsDialogGlobal::retranslate + /* Input page: */ + m_pSelector->setItemText(GLSettingsPage_Input, tr("Input")); + +- /* Update page: */ +- m_pSelector->setItemText(GLSettingsPage_Update, tr("Update")); +- + /* Language page: */ + m_pSelector->setItemText(GLSettingsPage_Language, tr("Language")); + | ||
[-] [+] | Added | vbox-fpie.diff ^ |
@@ -0,0 +1,20 @@ +Index: VirtualBox-4.1.8_OSE/Config.kmk +=================================================================== +--- VirtualBox-4.1.8_OSE.orig/Config.kmk ++++ VirtualBox-4.1.8_OSE/Config.kmk +@@ -3368,10 +3368,13 @@ TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS.darwi + ifeq ($(KBUILD_TARGET),linux) + # not necessary except USE_LIB_PCAP is defined in SUPR3HardenedMain.cpp + # TEMPLATE_VBOXR3HARDENEDEXE_LIBS += cap ++ TEMPLATE_VBOXR3HARDENEDEXE_CXXFLAGS.linux = $(TEMPLATE_VBOXR3EXE_CXXFLAGS.linux) -fPIE ++ TEMPLATE_VBOXR3HARDENEDEXE_CFLAGS.linux = $(TEMPLATE_VBOXR3EXE_CFLAGS.linux) -fPIE ++ TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS.linux = $(TEMPLATE_VBOXR3EXE_LDFLAGS.linux) -pie + endif + ifn1of ($(KBUILD_TARGET), win os2) +- TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_VBOXR3EXE_LDFLAGS)) +- TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBOXR3EXE_LDFLAGS.linux)) ++ TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS = $(filter-out '$(VBOX_GCC_RPATH_OPT)%,$(TEMPLATE_VBOXR3EXE_LDFLAGS)) -pie ++ TEMPLATE_VBOXR3HARDENEDEXE_LDFLAGS.linux = $(filter-out $(VBOX_GCC_ORIGIN_OPT),$(TEMPLATE_VBOXR3EXE_LDFLAGS.linux)) -pie + endif + + # | ||
[-] [+] | Added | vbox-handles.diff ^ |
@@ -0,0 +1,215 @@ +commit 3fbf480c55f1a6e7049d333c48fdb0ecb550e99b +Author: Richard Braakman <richard.braakman@jollamobile.com> +Date: Thu Jan 31 01:15:25 2013 +0200 + + vboxsf: make sure writepage still works after concurrent open/close + +diff --git a/src/VBox/Additions/linux/sharedfolders/dirops.c b/src/VBox/Additions/linux/sharedfolders/dirops.c +index d0d7b85..5e32135 100644 +--- a/src/VBox/Additions/linux/sharedfolders/dirops.c ++++ b/src/VBox/Additions/linux/sharedfolders/dirops.c +@@ -358,8 +358,10 @@ static struct dentry *sf_lookup(struct inode *parent, struct dentry *dentry + err = -ENOMEM; + goto fail1; + } ++ INIT_LIST_HEAD(&sf_new_i->handles); + sf_new_i->handle = SHFL_HANDLE_NIL; + sf_new_i->force_reread = 0; ++ sf_new_i->force_restat = 0; + + ino = iunique(parent->i_sb, 1); + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 25) +@@ -458,6 +460,7 @@ static int sf_instantiate(struct inode *parent, struct dentry *dentry, + #else + dentry->d_op = &sf_dentry_ops; + #endif ++ INIT_LIST_HEAD(&sf_new_i->handles); + sf_new_i->force_restat = 0; + sf_new_i->force_reread = 0; + +diff --git a/src/VBox/Additions/linux/sharedfolders/regops.c b/src/VBox/Additions/linux/sharedfolders/regops.c +index 1ba03e3..db1641b 100644 +--- a/src/VBox/Additions/linux/sharedfolders/regops.c ++++ b/src/VBox/Additions/linux/sharedfolders/regops.c +@@ -294,21 +294,6 @@ static int sf_reg_open(struct inode *inode, struct file *file) + return -ENOMEM; + } + +- /* Already open? */ +- if (sf_i->handle != SHFL_HANDLE_NIL) +- { +- /* +- * This inode was created with sf_create_aux(). Check the CreateFlags: +- * O_CREAT, O_TRUNC: inherent true (file was just created). Not sure +- * about the access flags (SHFL_CF_ACCESS_*). +- */ +- sf_r->handle = sf_i->handle; +- sf_i->handle = SHFL_HANDLE_NIL; +- sf_i->file = file; +- file->private_data = sf_r; +- return 0; +- } +- + RT_ZERO(params); + params.Handle = SHFL_HANDLE_NIL; + /* We check the value of params.Handle afterwards to find out if +@@ -371,6 +356,19 @@ static int sf_reg_open(struct inode *inode, struct file *file) + params.CreateFlags |= SHFL_CF_ACCESS_APPEND; + } + ++ /* Already open? */ ++ if (sf_i->handle != SHFL_HANDLE_NIL) ++ { ++ /* ++ * This inode was created with sf_create_aux(). Check the CreateFlags: ++ * O_CREAT, O_TRUNC: inherent true (file was just created). Not sure ++ * about the access flags (SHFL_CF_ACCESS_*). ++ */ ++ sf_r->handle = sf_i->handle; ++ sf_i->handle = SHFL_HANDLE_NIL; ++ goto out; ++ } ++ + params.Info.Attr.fMode = inode->i_mode; + LogFunc(("sf_reg_open: calling vboxCallCreate, file %s, flags=%#x, %#x\n", + sf_i->path->String.utf8 , file->f_flags, params.CreateFlags)); +@@ -404,7 +402,10 @@ static int sf_reg_open(struct inode *inode, struct file *file) + sf_init_inode(sf_g, inode, ¶ms.Info); + + sf_r->handle = params.Handle; +- sf_i->file = file; ++ out: ++ sf_r->createflags = params.CreateFlags; ++ INIT_LIST_HEAD(&sf_r->head); ++ list_add(&sf_r->head, &sf_i->handles); + file->private_data = sf_r; + return rc_linux; + } +@@ -440,14 +441,16 @@ static int sf_reg_release(struct inode *inode, struct file *file) + && filemap_fdatawrite(inode->i_mapping) != -EIO) + filemap_fdatawait(inode->i_mapping); + #endif ++ ++ list_del(&sf_r->head); ++ + rc = vboxCallClose(&client_handle, &sf_g->map, sf_r->handle); + if (RT_FAILURE(rc)) + LogFunc(("vboxCallClose failed rc=%Rrc\n", rc)); + +- kfree(sf_r); +- sf_i->file = NULL; + sf_i->handle = SHFL_HANDLE_NIL; + file->private_data = NULL; ++ kfree(sf_r); + return 0; + } + +@@ -600,6 +603,26 @@ struct inode_operations sf_reg_iops = + + + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0) ++/* Helper function to pick a suitable handle for pagecache operations. ++ * It picks the most recently opened handle for this inode that has the ++ * requested flags (SHFL_CF_ACCESS_READ or SHFL_CF_ACCESS_WRITE). ++ * Handles with SHFL_CF_ACCESS_APPEND are not suitable for paged use ++ * so they are always skipped. ++ */ ++static struct sf_reg_info *sf_select_handle(struct inode *inode, u32 flags) ++{ ++ struct sf_inode_info *sf_i = GET_INODE_INFO(inode); ++ struct sf_reg_info *sf_r; ++ ++ list_for_each_entry(sf_r, &sf_i->handles, head) ++ { ++ if ( sf_r->handle != SHFL_HANDLE_NIL ++ && (sf_r->createflags & (flags | SHFL_CF_ACCESS_APPEND)) == flags) ++ return sf_r; ++ } ++ return NULL; ++} ++ + static int sf_readpage(struct file *file, struct page *page) + { + struct inode *inode = file->f_dentry->d_inode; +@@ -636,9 +659,7 @@ sf_writepage(struct page *page, struct writeback_control *wbc) + struct address_space *mapping = page->mapping; + struct inode *inode = mapping->host; + struct sf_glob_info *sf_g = GET_GLOB_INFO(inode->i_sb); +- struct sf_inode_info *sf_i = GET_INODE_INFO(inode); +- struct file *file = sf_i->file; +- struct sf_reg_info *sf_r = file->private_data; ++ struct sf_reg_info *sf_r; + char *buf; + uint32_t nwritten = PAGE_SIZE; + int end_index = inode->i_size >> PAGE_SHIFT; +@@ -647,6 +668,15 @@ sf_writepage(struct page *page, struct writeback_control *wbc) + + TRACE(); + ++ sf_r = sf_select_handle(inode, SHFL_CF_ACCESS_WRITE); ++ if (unlikely(!sf_r)) ++ { ++ /* At least the handle of whoever wrote to the page should ++ * still be available; see the wait in sf_reg_release() */ ++ WARN_ONCE(1, "vboxsf: could not find handle for writepage"); ++ return -EBADF; ++ } ++ + if (page->index >= end_index) + nwritten = inode->i_size & (PAGE_SIZE-1); + +diff --git a/src/VBox/Additions/linux/sharedfolders/vfsmod.c b/src/VBox/Additions/linux/sharedfolders/vfsmod.c +index 3c55136..79097c5 100644 +--- a/src/VBox/Additions/linux/sharedfolders/vfsmod.c ++++ b/src/VBox/Additions/linux/sharedfolders/vfsmod.c +@@ -237,6 +237,7 @@ static int sf_read_super_aux(struct super_block *sb, void *data, int flags) + goto fail1; + } + ++ INIT_LIST_HEAD(&sf_i->handles); + sf_i->handle = SHFL_HANDLE_NIL; + sf_i->path = kmalloc(sizeof(SHFLSTRING) + 1, GFP_KERNEL); + if (!sf_i->path) +@@ -372,6 +373,7 @@ static void sf_clear_inode(struct inode *inode) + if (!sf_i) + return; + ++ WARN_ON(!list_empty(&sf_i->handles)); + BUG_ON(!sf_i->path); + kfree(sf_i->path); + kfree(sf_i); +@@ -394,6 +396,7 @@ static void sf_evict_inode(struct inode *inode) + if (!sf_i) + return; + ++ WARN_ON(!list_empty(&sf_i->handles)); + BUG_ON(!sf_i->path); + kfree(sf_i->path); + kfree(sf_i); +diff --git a/src/VBox/Additions/linux/sharedfolders/vfsmod.h b/src/VBox/Additions/linux/sharedfolders/vfsmod.h +index 6a20eb7..c7df740 100644 +--- a/src/VBox/Additions/linux/sharedfolders/vfsmod.h ++++ b/src/VBox/Additions/linux/sharedfolders/vfsmod.h +@@ -58,11 +58,11 @@ struct sf_inode_info + int force_restat; + /* directory content changed, update the whole directory on next sf_getdent */ + int force_reread; +- /* file structure, only valid between open() and release() */ +- struct file *file; + /* handle valid if a file was created with sf_create_aux until it will | ||
[-] [+] | Added | vbox-less-restat.diff ^ |
@@ -0,0 +1,71 @@ +commit bce05d945b143926548b8f8d289dfa3ec02f3788 +Author: Richard Braakman <richard.braakman@jollamobile.com> +Date: Fri Jan 25 11:33:47 2013 +0200 + + linux sharedfolders: remove redundant statting + + There's no need to force a restat right after filling a new inode with stat + information. Also, open() can use the stat info it gets with the handle + instead of statting again. + + In addition, sf_inode_revalidate should actually set force_restat back to 0 + when statting. + +diff --git a/src/VBox/Additions/linux/sharedfolders/dirops.c b/src/VBox/Additions/linux/sharedfolders/dirops.c +index f7f558a..d0d7b85 100644 +--- a/src/VBox/Additions/linux/sharedfolders/dirops.c ++++ b/src/VBox/Additions/linux/sharedfolders/dirops.c +@@ -458,7 +458,7 @@ static int sf_instantiate(struct inode *parent, struct dentry *dentry, + #else + dentry->d_op = &sf_dentry_ops; + #endif +- sf_new_i->force_restat = 1; ++ sf_new_i->force_restat = 0; + sf_new_i->force_reread = 0; + + d_instantiate(dentry, inode); +diff --git a/src/VBox/Additions/linux/sharedfolders/regops.c b/src/VBox/Additions/linux/sharedfolders/regops.c +index 37adbcb..1ba03e3 100644 +--- a/src/VBox/Additions/linux/sharedfolders/regops.c ++++ b/src/VBox/Additions/linux/sharedfolders/regops.c +@@ -302,7 +302,6 @@ static int sf_reg_open(struct inode *inode, struct file *file) + * O_CREAT, O_TRUNC: inherent true (file was just created). Not sure + * about the access flags (SHFL_CF_ACCESS_*). + */ +- sf_i->force_restat = 1; + sf_r->handle = sf_i->handle; + sf_i->handle = SHFL_HANDLE_NIL; + sf_i->file = file; +@@ -378,6 +377,7 @@ static int sf_reg_open(struct inode *inode, struct file *file) + rc = vboxCallCreate(&client_handle, &sf_g->map, sf_i->path, ¶ms); + if (RT_FAILURE(rc)) + { ++ sf_i->force_restat = 1; + LogFunc(("vboxCallCreate failed flags=%d,%#x rc=%Rrc\n", + file->f_flags, params.CreateFlags, rc)); + kfree(sf_r); +@@ -398,9 +398,11 @@ static int sf_reg_open(struct inode *inode, struct file *file) + default: + break; + } ++ sf_i->force_restat = 1; + } ++ else ++ sf_init_inode(sf_g, inode, ¶ms.Info); + +- sf_i->force_restat = 1; + sf_r->handle = params.Handle; + sf_i->file = file; + file->private_data = sf_r; +diff --git a/src/VBox/Additions/linux/sharedfolders/utils.c b/src/VBox/Additions/linux/sharedfolders/utils.c +index aa9c396..7ba8276 100644 +--- a/src/VBox/Additions/linux/sharedfolders/utils.c ++++ b/src/VBox/Additions/linux/sharedfolders/utils.c +@@ -238,6 +238,7 @@ int sf_inode_revalidate(struct dentry *dentry) + return 0; + } + ++ sf_i->force_restat = 0; + err = sf_stat(__func__, sf_g, sf_i->path, &info, 1); + if (err) + return err; | ||
[-] [+] | Added | vbox-mmap-02.diff ^ |
@@ -0,0 +1,53 @@ +commit 7d8a6d68c286e3544645a54d5fcc14f1de7b16f4 +Author: Richard Braakman <richard.braakman@jollamobile.com> +Date: Fri Feb 1 00:18:24 2013 +0200 + + sharedfolders bugfix: set access read/write even if some bits already set + + In sf_reg_open(), a file opened with O_TRUNC|O_RDWR wouldn't get the + SHFL_CF_ACCESS_READ flag because of the logic that skipped processing + the O_RDWR after seeing O_TRUNC. This is wrong, and it shows up with + the new pagecache code because the handle is not flagged as readable. + +diff --git a/src/VBox/Additions/linux/sharedfolders/regops.c b/src/VBox/Additions/linux/sharedfolders/regops.c +index c3b314e..c39fc97 100644 +--- a/src/VBox/Additions/linux/sharedfolders/regops.c ++++ b/src/VBox/Additions/linux/sharedfolders/regops.c +@@ -341,25 +341,22 @@ static int sf_reg_open(struct inode *inode, struct file *file) + } + } + +- if (!(params.CreateFlags & SHFL_CF_ACCESS_READWRITE)) ++ switch (file->f_flags & O_ACCMODE) + { +- switch (file->f_flags & O_ACCMODE) +- { +- case O_RDONLY: +- params.CreateFlags |= SHFL_CF_ACCESS_READ; +- break; ++ case O_RDONLY: ++ params.CreateFlags |= SHFL_CF_ACCESS_READ; ++ break; + +- case O_WRONLY: +- params.CreateFlags |= SHFL_CF_ACCESS_WRITE; +- break; ++ case O_WRONLY: ++ params.CreateFlags |= SHFL_CF_ACCESS_WRITE; ++ break; + +- case O_RDWR: +- params.CreateFlags |= SHFL_CF_ACCESS_READWRITE; +- break; ++ case O_RDWR: ++ params.CreateFlags |= SHFL_CF_ACCESS_READWRITE; ++ break; + +- default: +- BUG (); +- } ++ default: ++ BUG (); + } + + if (file->f_flags & O_APPEND) | ||
[-] [+] | Added | vbox-mmap.diff ^ |
@@ -0,0 +1,123 @@ +commit c1e45e725b91bc4e03d7e3acc94673ea7b16d762 +Author: Richard Braakman <richard.braakman@jollamobile.com> +Date: Tue Jan 29 21:48:13 2013 +0200 + + [vboxsf] support writable mmap + + This is mainly so that guest processes can use the shared folder as a backing + for database files and such. Don't expect coherence if a file is simultaneously + mmapped on the host and guest sides. + +diff --git a/src/VBox/Additions/linux/sharedfolders/regops.c b/src/VBox/Additions/linux/sharedfolders/regops.c +index a0586bd..c3b314e 100644 +--- a/src/VBox/Additions/linux/sharedfolders/regops.c ++++ b/src/VBox/Additions/linux/sharedfolders/regops.c +@@ -16,7 +16,7 @@ + */ + + /* +- * Limitations: only COW memory mapping is supported ++ * Limitations: MAP_SHARED mmap does not notice changes made on the host. + */ + + #include "vfsmod.h" +@@ -501,7 +501,7 @@ static struct page *sf_reg_nopage(struct vm_area_struct *vma, unsigned long vadd + /* Don't use GFP_HIGHUSER as long as sf_reg_read_aux() calls vboxCallRead() + * which works on virtual addresses. On Linux cannot reliably determine the + * physical address for high memory, see rtR0MemObjNativeLockKernel(). */ +- page = alloc_page(GFP_USER); ++ page = find_or_create_page(inode->i_mapping, vmf->pgoff, GFP_USER); + if (!page) { + LogRelFunc(("failed to allocate page\n")); + #if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 25) +@@ -522,7 +522,8 @@ static struct page *sf_reg_nopage(struct vm_area_struct *vma, unsigned long vadd + if (err) + { + kunmap(page); +- put_page(page); ++ unlock_page(page); ++ page_cache_release(page); + #if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 25) + return VM_FAULT_SIGBUS; + #else +@@ -546,7 +547,9 @@ static struct page *sf_reg_nopage(struct vm_area_struct *vma, unsigned long vadd + memset(buf + nread, 0, PAGE_SIZE - nread); + + flush_dcache_page(page); ++ SetPageUptodate(page); + kunmap(page); ++ unlock_page(page); + #if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 25) + vmf->page = page; + return 0; +@@ -556,24 +559,51 @@ static struct page *sf_reg_nopage(struct vm_area_struct *vma, unsigned long vadd + #endif + } + ++/** ++ * Prepare for a mmap page to be made writable. ++ * Check that the page is still there, and lock it if necessary to keep it there. ++ * Part of MAP_SHARED support. ++ * ++ * @returns VM_FAULT_LOCKED if the page is ready, otherwise VM_FAULT_NOPAGE. ++ */ ++static int sf_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf) ++{ ++ struct page *page = vmf->page; ++ struct inode *inode = vma->vm_file->f_path.dentry->d_inode; ++ loff_t size; ++ ++ TRACE(); ++ ++ lock_page(page); ++ size = i_size_read(inode); ++ if (page->mapping != inode->i_mapping || page_offset(page) > size) ++ { ++ /* file was truncated */ ++ unlock_page(page); ++ return VM_FAULT_NOPAGE; ++ } ++ ++ wait_on_page_writeback(page); ++ return VM_FAULT_LOCKED; ++} ++ + static struct vm_operations_struct sf_vma_ops = + { + #if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 25) +- .fault = sf_reg_fault ++ .fault = sf_reg_fault, + #else +- .nopage = sf_reg_nopage ++ .nopage = sf_reg_nopage, + #endif ++ .page_mkwrite = sf_page_mkwrite + }; + + static int sf_reg_mmap(struct file *file, struct vm_area_struct *vma) + { +- TRACE(); +- if (vma->vm_flags & VM_SHARED) +- { +- LogFunc(("shared mmapping not available\n")); +- return -EINVAL; +- } ++ struct sf_reg_info *sf_r = file->private_data; + ++ TRACE(); ++ if (sf_r->createflags & SHFL_CF_ACCESS_APPEND) ++ return -EINVAL; /* can't simulate page operations */ + vma->vm_ops = &sf_vma_ops; + return 0; + } +@@ -701,8 +731,8 @@ sf_writepage(struct page *page, struct writeback_control *wbc) + goto out; + } + +- if (off > inode->i_size) +- inode->i_size = off; ++ if (off + nwritten > inode->i_size) ++ inode->i_size = off + nwritten; + + if (PageError(page)) + ClearPageError(page); | ||
[-] [+] | Added | vbox-pagecache.diff ^ |
@@ -0,0 +1,205 @@ +commit ee6ca84b247485b40c375ebb7e29a046446374df +Author: Richard Braakman <richard.braakman@jollamobile.com> +Date: Thu Jan 31 19:19:22 2013 +0200 + + sharedfolders: read() from page cache + +diff --git a/src/VBox/Additions/linux/sharedfolders/dirops.c b/src/VBox/Additions/linux/sharedfolders/dirops.c +index 5e32135..1ed25dc 100644 +--- a/src/VBox/Additions/linux/sharedfolders/dirops.c ++++ b/src/VBox/Additions/linux/sharedfolders/dirops.c +@@ -450,9 +450,9 @@ static int sf_instantiate(struct inode *parent, struct dentry *dentry, + goto fail1; + } + ++ SET_INODE_INFO(inode, sf_new_i); + sf_init_inode(sf_g, inode, info); + sf_new_i->path = path; +- SET_INODE_INFO(inode, sf_new_i); + + dentry->d_time = jiffies; + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38) +diff --git a/src/VBox/Additions/linux/sharedfolders/regops.c b/src/VBox/Additions/linux/sharedfolders/regops.c +index c39fc97..37849cf 100644 +--- a/src/VBox/Additions/linux/sharedfolders/regops.c ++++ b/src/VBox/Additions/linux/sharedfolders/regops.c +@@ -147,6 +147,13 @@ static ssize_t sf_reg_read(struct file *file, char *buf, size_t size, loff_t *of + if (!size) + return 0; + ++ /* Try reading from the page cache */ ++ if (sf_r->generation == inode->i_generation) ++ return do_sync_read(file, buf, size, off); ++ else ++ printk("vboxsf: doing direct read, generation %u != %u\n", ++ sf_r->generation, inode->i_generation); ++ + tmp = alloc_bounce_buffer(&tmp_size, size, __PRETTY_FUNCTION__); + if (!tmp) + return -ENOMEM; +@@ -265,6 +272,18 @@ static ssize_t sf_reg_write(struct file *file, const char *buf, size_t size, lof + break; + } + ++ /* force-invalidate the corresponding part of the page cache */ ++ err = invalidate_inode_pages2_range(inode->i_mapping, ++ *off >> PAGE_CACHE_SHIFT, ++ (*off + total_bytes_written - 1) >> PAGE_CACHE_SHIFT); ++ if (err) ++ { ++ printk("vboxsf: could not invalidate inode page cache for %s\n", ++ sf_i->path->String.utf8); ++ /** @todo fall back on pagecache write here? */ ++ inode->i_generation++; /* disable pagecache reads for current fds */ ++ } ++ + *off += total_bytes_written; + if (*off > inode->i_size) + inode->i_size = *off; +@@ -408,11 +427,15 @@ static int sf_reg_open(struct inode *inode, struct file *file) + sf_i->force_restat = 1; + } + else ++ { ++ sf_revalidate_mapping(inode, ¶ms.Info); + sf_init_inode(sf_g, inode, ¶ms.Info); ++ } + + sf_r->handle = params.Handle; + out: + sf_r->createflags = params.CreateFlags; ++ sf_r->generation = inode->i_generation; + INIT_LIST_HEAD(&sf_r->head); + list_add(&sf_r->head, &sf_i->handles); + file->private_data = sf_r; +@@ -674,6 +697,15 @@ static int sf_readpage(struct file *file, struct page *page) + + TRACE(); + ++ sf_r = sf_select_handle(inode, SHFL_CF_ACCESS_READ); ++ if (unlikely(!sf_r)) ++ { ++ struct sf_inode_info *sf_i = GET_INODE_INFO(inode); ++ WARN(1, "vboxsf: could not find handle for readpage for %s", ++ sf_i->path->String.utf8); ++ sf_r = file->private_data; ++ } ++ + buf = kmap(page); + ret = sf_reg_read_aux(__func__, sf_g, sf_r, buf, &nread, off); + if (ret) +diff --git a/src/VBox/Additions/linux/sharedfolders/utils.c b/src/VBox/Additions/linux/sharedfolders/utils.c +index 7ba8276..d2be0c5 100644 +--- a/src/VBox/Additions/linux/sharedfolders/utils.c ++++ b/src/VBox/Additions/linux/sharedfolders/utils.c +@@ -71,6 +71,7 @@ static void sf_timespec_from_ftime(RTTIMESPEC *ts, struct timespec *tv) + void sf_init_inode(struct sf_glob_info *sf_g, struct inode *inode, + PSHFLFSOBJINFO info) + { ++ struct sf_inode_info *sf_i = GET_INODE_INFO(inode); + PSHFLFSOBJATTR attr; + int mode; + +@@ -159,6 +160,49 @@ void sf_init_inode(struct sf_glob_info *sf_g, struct inode *inode, + sf_ftime_from_timespec(&inode->i_atime, &info->AccessTime); + sf_ftime_from_timespec(&inode->i_ctime, &info->ChangeTime); + sf_ftime_from_timespec(&inode->i_mtime, &info->ModificationTime); ++ ++ if (attr->enmAdditional == SHFLFSOBJATTRADD_UNIX) ++ { ++ sf_i->host_dev = attr->u.Unix.INodeIdDevice; ++ sf_i->host_ino = attr->u.Unix.INodeId; ++ } ++} ++ ++/* Check if the host-side inode is likely to have had content changes, ++ * so that we should throw away the cached pages. */ ++void sf_revalidate_mapping(struct inode *inode, PSHFLFSOBJINFO info) ++{ ++ struct timespec mtime; ++ PSHFLFSOBJATTR attr = &info->Attr; ++ ++ TRACE(); ++ ++ if (i_size_read(inode) != info->cbObject) ++ { ++ spin_lock(&inode->i_lock); ++ truncate_setsize(inode, info->cbObject); ++ spin_unlock(&inode->i_lock); ++ goto out_invalid; ++ } ++ ++ sf_ftime_from_timespec(&mtime, &info->ModificationTime); ++ if (timespec_compare(&inode->i_mtime, &mtime)) ++ goto out_invalid; ++ ++ if (attr->enmAdditional == SHFLFSOBJATTRADD_UNIX) ++ { ++ struct sf_inode_info *sf_i = GET_INODE_INFO(inode); ++ if ( (sf_i->host_dev && sf_i->host_dev != attr->u.Unix.INodeIdDevice) ++ || (sf_i->host_ino && sf_i->host_ino != attr->u.Unix.INodeId)) ++ goto out_invalid; ++ } ++ ++ return; ++ ++ out_invalid: ++ invalidate_inode_pages2(inode->i_mapping); ++ inode->i_generation++; ++ return; + } + + int sf_stat(const char *caller, struct sf_glob_info *sf_g, +@@ -244,6 +288,7 @@ int sf_inode_revalidate(struct dentry *dentry) + return err; + + dentry->d_time = jiffies; ++ sf_revalidate_mapping(dentry->d_inode, &info); + sf_init_inode(sf_g, dentry->d_inode, &info); + return 0; + } +diff --git a/src/VBox/Additions/linux/sharedfolders/vfsmod.c b/src/VBox/Additions/linux/sharedfolders/vfsmod.c +index 79097c5..ef4daa9 100644 +--- a/src/VBox/Additions/linux/sharedfolders/vfsmod.c ++++ b/src/VBox/Additions/linux/sharedfolders/vfsmod.c +@@ -300,8 +300,8 @@ static int sf_read_super_aux(struct super_block *sb, void *data, int flags) + goto fail4; + } + +- sf_init_inode(sf_g, iroot, &fsinfo); + SET_INODE_INFO(iroot, sf_i); ++ sf_init_inode(sf_g, iroot, &fsinfo); + + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 25) + unlock_new_inode(iroot); +diff --git a/src/VBox/Additions/linux/sharedfolders/vfsmod.h b/src/VBox/Additions/linux/sharedfolders/vfsmod.h +index c7df740..62fb489 100644 +--- a/src/VBox/Additions/linux/sharedfolders/vfsmod.h ++++ b/src/VBox/Additions/linux/sharedfolders/vfsmod.h +@@ -63,6 +63,10 @@ struct sf_inode_info + SHFLHANDLE handle; + /* list of sf_reg_info for open files, most recent first */ + struct list_head handles; ++ /* identification of host-side inode, to detect if it changed */ ++ /* these can be 0 if not known yet */ ++ RTINODE host_ino; ++ RTDEV host_dev; + }; + + struct sf_dir_info +@@ -84,6 +88,7 @@ struct sf_reg_info + SHFLHANDLE handle; + u32 createflags; /* SHFL_CF_ flags for this handle */ + struct list_head head; /* starts at sf_i->handles */ ++ u32 generation; + }; + + /* globals */ +@@ -103,6 +108,7 @@ extern void sf_init_inode(struct sf_glob_info *sf_g, struct inode *inode, + extern int sf_stat(const char *caller, struct sf_glob_info *sf_g, | ||
[-] [+] | Added | vbox-physread.diff ^ |
@@ -0,0 +1,230 @@ +commit 1d3a5cd2f8d4d061e7aa82f08a3470a074f1f66b +Author: Richard Braakman <richard.braakman@jollamobile.com> +Date: Sun Feb 3 11:30:43 2013 +0200 + + vboxsf: speed up reads by using multipage transfers + +diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR0LibSharedFolders.c b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR0LibSharedFolders.c +index 03af236..b49e217 100644 +--- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR0LibSharedFolders.c ++++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR0LibSharedFolders.c +@@ -524,6 +524,53 @@ DECLVBGL(int) VbglR0SfWritePhysCont(PVBSFCLIENT pClient, PVBSFMAP pMap, SHFLHAND + + } + ++DECLVBGL(int) VbglR0SfReadPhysCont(PVBSFCLIENT pClient, PVBSFMAP pMap, SHFLHANDLE hFile, uint64_t offset, uint32_t *pcbBuffer, RTCCPHYS PhysBuffer) ++{ ++ uint32_t cbToRead = *pcbBuffer; ++ uint32_t cPages = RT_ALIGN_32((PhysBuffer & PAGE_OFFSET_MASK) + cbToRead, PAGE_SIZE) >> PAGE_SHIFT; ++ uint32_t cbData = sizeof(VBoxSFRead) + RT_UOFFSETOF(HGCMPageListInfo, aPages[cPages]); ++ VBoxSFRead *pData = (VBoxSFRead *)RTMemTmpAlloc(cbData); ++ HGCMPageListInfo *pPgLst = (HGCMPageListInfo *)(pData + 1); ++ uint32_t iPage; ++ int rc; ++ ++ if (RT_UNLIKELY(!pData)) ++ return VERR_NO_TMP_MEMORY; ++ ++ VBOX_INIT_CALL(&pData->callInfo, READ, pClient); ++ ++ pData->root.type = VMMDevHGCMParmType_32bit; ++ pData->root.u.value32 = pMap->root; ++ ++ pData->handle.type = VMMDevHGCMParmType_64bit; ++ pData->handle.u.value64 = hFile; ++ pData->offset.type = VMMDevHGCMParmType_64bit; ++ pData->offset.u.value64 = offset; ++ pData->cb.type = VMMDevHGCMParmType_32bit; ++ pData->cb.u.value32 = cbToRead; ++ pData->buffer.type = VMMDevHGCMParmType_PageList; ++ pData->buffer.u.PageList.size = cbToRead; ++ pData->buffer.u.PageList.offset = sizeof(VBoxSFRead); ++ ++ pPgLst->flags = VBOX_HGCM_F_PARM_DIRECTION_FROM_HOST; ++ pPgLst->offFirstPage = (uint16_t)(PhysBuffer & PAGE_OFFSET_MASK); ++ pPgLst->cPages = cPages; ++ PhysBuffer &= ~(RTCCPHYS)PAGE_OFFSET_MASK; ++ for (iPage = 0; iPage < cPages; iPage++, PhysBuffer += PAGE_SIZE) ++ pPgLst->aPages[iPage] = PhysBuffer; ++ ++ rc = VbglHGCMCall (pClient->handle, &pData->callInfo, cbData); ++ if (RT_SUCCESS (rc)) ++ { ++ rc = pData->callInfo.result; ++ *pcbBuffer = pData->cb.u.value32; ++ } ++ ++ RTMemTmpFree(pData); ++ return rc; ++ ++} ++ + DECLVBGL(int) vboxCallFlush(PVBSFCLIENT pClient, PVBSFMAP pMap, SHFLHANDLE hFile) + { + int rc = VINF_SUCCESS; +diff --git a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR0LibSharedFolders.h b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR0LibSharedFolders.h +index 3947a13..4d7e4a9 100644 +--- a/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR0LibSharedFolders.h ++++ b/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR0LibSharedFolders.h +@@ -174,6 +174,7 @@ DECLVBGL(int) vboxCallFlush (PVBSFCLIENT pClient, PVBSFMAP pMap, SHFLHANDLE hFil + DECLVBGL(int) vboxCallRead (PVBSFCLIENT pClient, PVBSFMAP pMap, SHFLHANDLE hFile, uint64_t offset, uint32_t *pcbBuffer, uint8_t *pBuffer, bool fLocked); + DECLVBGL(int) vboxCallWrite (PVBSFCLIENT pClient, PVBSFMAP pMap, SHFLHANDLE hFile, uint64_t offset, uint32_t *pcbBuffer, uint8_t *pBuffer, bool fLocked); + DECLVBGL(int) VbglR0SfWritePhysCont(PVBSFCLIENT pClient, PVBSFMAP pMap, SHFLHANDLE hFile, uint64_t offset, uint32_t *pcbBuffer, RTCCPHYS PhysBuffer); ++DECLVBGL(int) VbglR0SfReadPhysCont(PVBSFCLIENT pClient, PVBSFMAP pMap, SHFLHANDLE hFile, uint64_t offset, uint32_t *pcbBuffer, RTCCPHYS PhysBuffer); + + DECLVBGL(int) vboxCallLock (PVBSFCLIENT pClient, PVBSFMAP pMap, SHFLHANDLE hFile, uint64_t offset, uint64_t cbSize, uint32_t fLock); + +diff --git a/src/VBox/Additions/linux/sharedfolders/regops.c b/src/VBox/Additions/linux/sharedfolders/regops.c +index db1641b..a0586bd 100644 +--- a/src/VBox/Additions/linux/sharedfolders/regops.c ++++ b/src/VBox/Additions/linux/sharedfolders/regops.c +@@ -21,8 +21,8 @@ + + #include "vfsmod.h" + +-static void *alloc_bounce_buffer(size_t *tmp_sizep, PRTCCPHYS physp, size_t +- xfer_size, const char *caller) ++static void * ++alloc_bounce_buffer(size_t *tmp_sizep, size_t xfer_size, const char *caller) + { + size_t tmp_size; + void *tmp; +@@ -45,7 +45,6 @@ static void *alloc_bounce_buffer(size_t *tmp_sizep, PRTCCPHYS physp, size_t + } + + *tmp_sizep = tmp_size; +- *physp = virt_to_phys(tmp); + return tmp; + } + +@@ -56,37 +55,61 @@ static void free_bounce_buffer(void *tmp) + + + /* fops */ ++ ++/* Input buf must be physically contiguous memory */ + static int sf_reg_read_aux(const char *caller, struct sf_glob_info *sf_g, + struct sf_reg_info *sf_r, void *buf, + uint32_t *nread, uint64_t pos) + { +- /** @todo bird: yes, kmap() and kmalloc() input only. Since the buffer is +- * contiguous in physical memory (kmalloc or single page), we should +- * use a physical address here to speed things up. */ +- int rc = vboxCallRead(&client_handle, &sf_g->map, sf_r->handle, +- pos, nread, buf, false /* already locked? */); +- if (RT_FAILURE(rc)) ++ if (VbglR0CanUsePhysPageList()) ++ { ++ int rc = VbglR0SfReadPhysCont(&client_handle, &sf_g->map, sf_r->handle, ++ pos, nread, virt_to_phys(buf)); ++ if (RT_FAILURE(rc)) ++ { ++ LogFunc(("VbglR0SfReadPhysCont failed. caller=%s, rc=%Rrc\n", ++ caller, rc)); ++ return -EPROTO; ++ } ++ } ++ else + { +- LogFunc(("vboxCallRead failed. caller=%s, rc=%Rrc\n", caller, rc)); +- return -EPROTO; ++ int rc = vboxCallRead(&client_handle, &sf_g->map, sf_r->handle, ++ pos, nread, buf, false /* already locked? */); ++ if (RT_FAILURE(rc)) ++ { ++ LogFunc(("vboxCallRead failed. caller=%s, rc=%Rrc\n", caller, rc)); ++ return -EPROTO; ++ } + } + return 0; + } + ++/* Input buf must be physically contiguous memory */ + static int sf_reg_write_aux(const char *caller, struct sf_glob_info *sf_g, + struct sf_reg_info *sf_r, void *buf, + uint32_t *nwritten, uint64_t pos) + { +- /** @todo bird: yes, kmap() and kmalloc() input only. Since the buffer is +- * contiguous in physical memory (kmalloc or single page), we should +- * use a physical address here to speed things up. */ +- int rc = vboxCallWrite(&client_handle, &sf_g->map, sf_r->handle, +- pos, nwritten, buf, false /* already locked? */); +- if (RT_FAILURE(rc)) ++ if (VbglR0CanUsePhysPageList()) + { +- LogFunc(("vboxCallWrite failed. caller=%s, rc=%Rrc\n", +- caller, rc)); +- return -EPROTO; ++ int rc = VbglR0SfWritePhysCont(&client_handle, &sf_g->map, sf_r->handle, ++ pos, nwritten, virt_to_phys(buf)); ++ if (RT_FAILURE(rc)) ++ { ++ LogFunc(("VbglR0SfWritePhysCont failed. caller=%s, rc=%Rrc\n", ++ caller, rc)); ++ return -EPROTO; ++ } ++ } ++ else ++ { ++ int rc = vboxCallWrite(&client_handle, &sf_g->map, sf_r->handle, ++ pos, nwritten, buf, false /* already locked? */); ++ if (RT_FAILURE(rc)) ++ { ++ LogFunc(("vboxCallWrite failed. caller=%s, rc=%Rrc\n", caller, rc)); ++ return -EPROTO; ++ } + } + return 0; + } +@@ -104,7 +127,6 @@ static ssize_t sf_reg_read(struct file *file, char *buf, size_t size, loff_t *of + { + int err; + void *tmp; +- RTCCPHYS tmp_phys; + size_t tmp_size; + size_t left = size; + ssize_t total_bytes_read = 0; +@@ -125,7 +147,7 @@ static ssize_t sf_reg_read(struct file *file, char *buf, size_t size, loff_t *of + if (!size) + return 0; + +- tmp = alloc_bounce_buffer(&tmp_size, &tmp_phys, size, __PRETTY_FUNCTION__); ++ tmp = alloc_bounce_buffer(&tmp_size, size, __PRETTY_FUNCTION__); + if (!tmp) + return -ENOMEM; + +@@ -179,7 +201,6 @@ static ssize_t sf_reg_write(struct file *file, const char *buf, size_t size, lof + { + int err; + void *tmp; | ||
[-] [+] | Added | vbox-python-detection.diff ^ |
@@ -0,0 +1,47 @@ +--- VirtualBox-4.0.2_OSE.orig/src/libs/xpcom18a4/python/gen_python_deps.py 2011-01-14 20:15:09.000000000 +0000 ++++ VirtualBox-4.0.2_OSE/src/libs/xpcom18a4/python/gen_python_deps.py 2011-02-07 05:36:42.427567000 +0000 +@@ -68,7 +68,7 @@ + else: + multi = 1 + +- if multi == 0: ++ if not multi: + prefixes = ["/usr"] + versions = [str(sys.version_info[0])+'.'+str(sys.version_info[1])] + +@@ -86,22 +86,23 @@ + for v in versions: + for p in prefixes: + c = checkPair(p, v, dllpre, dllsuff, bitness_magic) +- if c is not None: ++ if c: + known[v] = c + break +- keys = known.keys() +- # we want default to be the lowest versioned Python +- keys.sort() +- d = None + # We need separator other than newline, to sneak through $(shell) + sep = "|" +- for k in keys: +- if d is None: +- d = k +- vers = k.replace('.', '') +- print_vars(vers, known[k], sep, bitness_magic) +- if d is not None: +- print_vars("DEF", known[d], sep, bitness_magic) ++ ++ if not known: ++ # this type of problem should be detected in configure ++ # print_vars("DEF", defaultpaths, sep, bitness_magic) ++ pass ++ if multi: ++ for ver, paths in known.items(): ++ print_vars(ver.replace('.', ''), paths, sep, bitness_magic) ++ else: ++ ver = versions[0] ++ paths = known[ver] ++ print_vars(ver.replace('.', ''), paths, sep, bitness_magic) + + if __name__ == '__main__': + main(sys.argv) | ||
[-] [+] | Added | vbox-readpages.diff ^ |
@@ -0,0 +1,114 @@ +commit 2e991b96673cb5f6f2093a7ccbc94e403aad46d7 +Author: Richard Braakman <richard.braakman@jollamobile.com> +Date: Sun Feb 3 02:38:15 2013 +0200 + + vboxsf: implement readpages() for efficiency + +diff --git a/src/VBox/Additions/linux/sharedfolders/regops.c b/src/VBox/Additions/linux/sharedfolders/regops.c +index 37849cf..e9b2ace 100644 +--- a/src/VBox/Additions/linux/sharedfolders/regops.c ++++ b/src/VBox/Additions/linux/sharedfolders/regops.c +@@ -689,7 +689,7 @@ static int sf_readpage(struct file *file, struct page *page) + { + struct inode *inode = file->f_dentry->d_inode; + struct sf_glob_info *sf_g = GET_GLOB_INFO(inode->i_sb); +- struct sf_reg_info *sf_r = file->private_data; ++ struct sf_reg_info *sf_r; + uint32_t nread = PAGE_SIZE; + char *buf; + loff_t off = ((loff_t)page->index) << PAGE_SHIFT; +@@ -724,6 +724,87 @@ static int sf_readpage(struct file *file, struct page *page) + return 0; + } + ++/* ++ * Read a list of pages into the page cache. ++ * This is only used for readahead, so it's ok to give up. ++ * The caller will fall back on readpage() for the important pages. ++ */ ++static int sf_readpages(struct file *file, struct address_space *mapping, ++ struct list_head *pages, unsigned nr_pages) ++{ ++ struct inode *inode = file->f_dentry->d_inode; ++ struct sf_glob_info *sf_g = GET_GLOB_INFO(inode->i_sb); ++ struct sf_reg_info *sf_r; ++ struct page *physbuf = 0; ++ int bufsize; ++ pgoff_t buf_startindex = 0; ++ pgoff_t pages_in_buf = 0; ++ int err = 0; ++ ++ TRACE(); ++ ++ if (nr_pages <= 1) ++ return 0; /* either nothing to do or not worth batching */ ++ ++ sf_r = sf_select_handle(inode, SHFL_CF_ACCESS_READ); ++ if (unlikely(!sf_r)) ++ { ++ struct sf_inode_info *sf_i = GET_INODE_INFO(inode); ++ WARN(1, "vboxsf: could not find handle for readpages for %s", ++ sf_i->path->String.utf8); ++ sf_r = file->private_data; ++ } ++ ++ /* ++ * Performance really depends on the number of calls we make to the host, so ++ * allocate a physically contiguous buffer to read multiple pages per call. ++ */ ++ /* first try to get everything in one read */ ++ bufsize = PAGE_SIZE * (list_entry(pages->next, struct page, lru)->index ++ - list_entry(pages->prev, struct page, lru)->index); ++ if (bufsize > 32 * PAGE_SIZE) ++ bufsize = 32 * PAGE_SIZE; /* don't go crazy though */ ++ ++ physbuf = alloc_pages_exact(bufsize, GFP_KERNEL); ++ if (!physbuf) ++ return -ENOMEM; /* Memory pressure - best not to readahead at all */ ++ ++ while (!list_empty(pages)) ++ { ++ struct page *page = list_first_entry(pages, struct page, lru); ++ loff_t off = (loff_t) page->index << PAGE_SHIFT; ++ list_del(&page->lru); ++ if (add_to_page_cache_lru(page, mapping, page->index, GFP_KERNEL)) ++ { ++ page_cache_release(page); ++ continue; ++ } ++ page_cache_release(page); ++ ++ /* read the next chunk if needed */ ++ if (page->index >= buf_startindex + pages_in_buf) ++ { ++ uint32_t nread = bufsize; ++ err = sf_reg_read_aux(__func__, sf_g, sf_r, physbuf, &nread, off); ++ if (err || nread == 0) ++ break; ++ buf_startindex = page->index; ++ pages_in_buf = nread >> PAGE_SHIFT; ++ /* fix up possible partial page at end */ ++ if (nread != PAGE_ALIGN(nread)) ++ { ++ pages_in_buf++; ++ memset(physbuf + nread, 0, (pages_in_buf << PAGE_SHIFT) - nread); ++ } ++ } ++ copy_page(page_address(page), ++ physbuf + ((page->index - buf_startindex) << PAGE_SHIFT)); ++ } ++ ++ free_pages_exact(physbuf, bufsize); ++ return err; ++} ++ + static int + sf_writepage(struct page *page, struct writeback_control *wbc) + { +@@ -828,5 +909,6 @@ struct address_space_operations sf_reg_aops = + .prepare_write = simple_prepare_write, + .commit_write = simple_commit_write, + # endif ++ .readpages = sf_readpages, + }; + #endif | ||
[-] [+] | Added | vbox-ret-in-nonvoid-fnc.diff ^ |
@@ -0,0 +1,24 @@ +Index: VirtualBox-3.1.4_OSE/src/VBox/Devices/PC/Etherboot-src/core/nic.c +=================================================================== +--- VirtualBox-3.1.4_OSE.orig/src/VBox/Devices/PC/Etherboot-src/core/nic.c ++++ VirtualBox-3.1.4_OSE/src/VBox/Devices/PC/Etherboot-src/core/nic.c +@@ -478,6 +478,7 @@ int eth_load(struct dev *dev __unused) + } + interruptible_sleep(2); /* lay off the server for a while */ + longjmp(restart_etherboot, -1); ++ return 0; + } + + +Index: VirtualBox-3.1.4_OSE/src/VBox/Devices/PC/Etherboot-src/core/osloader.c +=================================================================== +--- VirtualBox-3.1.4_OSE.orig/src/VBox/Devices/PC/Etherboot-src/core/osloader.c ++++ VirtualBox-3.1.4_OSE/src/VBox/Devices/PC/Etherboot-src/core/osloader.c +@@ -81,6 +81,7 @@ dead_download - Restart etherboot if pro + **************************************************************************/ + static sector_t dead_download ( unsigned char *data __unused, unsigned int len __unused, int eof __unused) { + longjmp(restart_etherboot, -2); ++ return 0; + } + + #ifdef IMAGE_MULTIBOOT | ||
[-] [+] | Added | vbox-slow-logging.diff ^ |
@@ -0,0 +1,47 @@ +diff --git a/src/VBox/Additions/linux/sharedfolders/regops.c b/src/VBox/Additions/linux/sharedfolders/regops.c +index c39fc97..7f73a67 100644 +--- a/src/VBox/Additions/linux/sharedfolders/regops.c ++++ b/src/VBox/Additions/linux/sharedfolders/regops.c +@@ -63,6 +63,8 @@ static int sf_reg_read_aux(const char *caller, struct sf_glob_info *sf_g, + { + if (VbglR0CanUsePhysPageList()) + { ++ TRACE(); ++ printk("vboxsf starting phys read\n"); + int rc = VbglR0SfReadPhysCont(&client_handle, &sf_g->map, sf_r->handle, + pos, nread, virt_to_phys(buf)); + if (RT_FAILURE(rc)) +@@ -71,6 +73,7 @@ static int sf_reg_read_aux(const char *caller, struct sf_glob_info *sf_g, + caller, rc)); + return -EPROTO; + } ++ printk("vboxsf ended phys read\n"); + } + else + { +diff --git a/src/VBox/Additions/linux/sharedfolders/vfsmod.h b/src/VBox/Additions/linux/sharedfolders/vfsmod.h +index c7df740..043c478 100644 +--- a/src/VBox/Additions/linux/sharedfolders/vfsmod.h ++++ b/src/VBox/Additions/linux/sharedfolders/vfsmod.h +@@ -157,5 +157,21 @@ int sf_get_volume_info(struct super_block *sb,STRUCT_STATFS *stat); + # define SET_INODE_INFO(i, sf_i) (i)->u.generic_ip = sf_i + #endif + ++#undef LogFunc ++#define LogFunc__(format, args...) do { \ ++ if (strstr(format, "%Rrc")) { \ ++ char *printkformat = kstrdup("%s: " format, GFP_KERNEL); \ ++ char *p = printkformat; \ ++ while ((p = strstr(p, "%Rrc"))) \ ++ p[1] = 'd'; \ ++ printk(printkformat, __func__, ##args); \ ++ kfree(printkformat); \ ++ } else { \ ++ printk("%s: " format, __func__, ##args); \ ++ } \ ++} while (0) ++/* This strips the extra parentheses that are used with the real LogFunc */ ++#define LogFunc(...) LogFunc__ __VA_ARGS__ ++ + #endif + | ||
[-] [+] | Added | vbox-smc-napa.diff ^ |
@@ -0,0 +1,13 @@ +Index: VirtualBox-4.0.0_OSE/src/VBox/Devices/PC/vbox.dsl +=================================================================== +--- VirtualBox-4.0.0_OSE.orig/src/VBox/Devices/PC/vbox.dsl ++++ VirtualBox-4.0.0_OSE/src/VBox/Devices/PC/vbox.dsl +@@ -778,7 +778,7 @@ DefinitionBlock ("DSDT.aml", "DSDT", 1, + Device (SMC) + { + Name (_HID, EisaId ("APP0001")) +- Name (_CID, "smc-napa") ++ Name (_CID, "smcnapa") + + Method (_STA, 0, NotSerialized) + { | ||
[-] [+] | Added | vbox-vboxadd-init-script.diff ^ |
@@ -0,0 +1,87 @@ +diff -Naur VirtualBox-4.2.4-orig/src/VBox/Additions/linux/installer/vboxadd.sh VirtualBox-4.2.4/src/VBox/Additions/linux/installer/vboxadd.sh +--- VirtualBox-4.2.4-orig/src/VBox/Additions/linux/installer/vboxadd.sh 2012-10-26 19:23:34.000000000 +0300 ++++ VirtualBox-4.2.4/src/VBox/Additions/linux/installer/vboxadd.sh 2012-10-29 22:23:54.384329027 +0200 +@@ -21,11 +21,12 @@ + # + ### BEGIN INIT INFO + # Provides: vboxadd +-# Required-Start: +-# Required-Stop: +-# Default-Start: 2 3 4 5 ++# Required-Start: $remote_fs ++# Required-Stop: $remote_fs ++# Default-Start: 2 3 5 + # Default-Stop: 0 1 6 + # Description: VirtualBox Linux Additions kernel modules ++# Short-Description: VirtualBox Linux Additions kernel modules + ### END INIT INFO + + PATH=$PATH:/bin:/sbin:/usr/sbin +@@ -178,8 +179,6 @@ + dev=/dev/vboxguest + userdev=/dev/vboxuser + config=/var/lib/VBoxGuestAdditions/config +-owner=vboxadd +-group=1 + + test_for_gcc_and_make() + { +@@ -250,12 +249,6 @@ + fail "Cannot create device $dev with major $maj and minor $min" + } + fi +- chown $owner:$group $dev 2>/dev/null || { +- rm -f $dev 2>/dev/null +- rm -f $userdev 2>/dev/null +- rmmod vboxguest 2>/dev/null +- fail "Cannot change owner $owner:$group for device $dev" +- } + + if [ ! -c $userdev ]; then + maj=10 +@@ -266,12 +259,6 @@ + rmmod vboxguest 2>/dev/null + fail "Cannot create device $userdev with major $maj and minor $min" + } +- chown $owner:$group $userdev 2>/dev/null || { +- rm -f $dev 2>/dev/null +- rm -f $userdev 2>/dev/null +- rmmod vboxguest 2>/dev/null +- fail "Cannot change owner $owner:$group for device $userdev" +- } + fi + fi + } +@@ -483,32 +470,6 @@ + # setup_script + setup() + { +- if test -r $config; then +- . $config +- else +- fail "Configuration file $config not found" +- fi +- test -n "$INSTALL_DIR" -a -n "$INSTALL_VER" || +- fail "Configuration file $config not complete" +- export BUILD_TYPE +- export USERNAME +- +- MODULE_SRC="$INSTALL_DIR/src/vboxguest-$INSTALL_VER" +- BUILDINTMP="$MODULE_SRC/build_in_tmp" +- DODKMS="$MODULE_SRC/do_dkms" +- chcon -t bin_t "$BUILDINTMP" > /dev/null 2>&1 +- chcon -t bin_t "$DODKMS" > /dev/null 2>&1 +- +- setup_modules +- mod_succ="$?" +- extra_setup +- if [ "$mod_succ" -eq "0" ]; then +- if running_vboxguest || running_vboxadd; then +- printf "You should restart your guest to make sure the new modules are actually used\n\n" +- else +- start +- fi +- fi + } + + # cleanup_script | ||
[-] [+] | Added | vbox-vboxdrv-init-script.diff ^ |
@@ -0,0 +1,89 @@ +diff -Naur VirtualBox-4.2.4-orig/src/VBox/Installer/linux/vboxdrv.sh.in VirtualBox-4.2.4/src/VBox/Installer/linux/vboxdrv.sh.in +--- VirtualBox-4.2.4-orig/src/VBox/Installer/linux/vboxdrv.sh.in 2012-10-29 21:58:09.000000000 +0200 ++++ VirtualBox-4.2.4/src/VBox/Installer/linux/vboxdrv.sh.in 2012-10-29 21:59:31.337352017 +0200 +@@ -193,13 +193,6 @@ + fi + fi + # ensure permissions +- if ! chown :%GROUP% $DEVICE 2>/dev/null; then +- rmmod vboxpci 2>/dev/null +- rmmod vboxnetadp 2>/dev/null +- rmmod vboxnetflt 2>/dev/null +- rmmod vboxdrv 2>/dev/null +- failure "Cannot change group %GROUP% for device $DEVICE" +- fi + if ! $MODPROBE vboxnetflt > /dev/null 2>&1; then + failure "modprobe vboxnetflt failed. Please use 'dmesg' to find out why" + fi +@@ -297,70 +290,8 @@ + # setup_script + setup() + { +- stop +- DKMS=`which dkms 2>/dev/null` +- if [ -n "$DKMS" ]; then +- begin_msg "Uninstalling old VirtualBox DKMS kernel modules" +- $DODKMS uninstall vboxhost vboxdrv vboxnetflt vboxnetadp > $LOG +- succ_msg +- fi +- if find /lib/modules/`uname -r` -name "vboxpci\.*" 2>/dev/null|grep -q vboxpci; then +- begin_msg "Removing old VirtualBox pci kernel module" +- find /lib/modules/`uname -r` -name "vboxpci\.*" 2>/dev/null|xargs rm -f 2>/dev/null +- succ_msg +- fi +- if find /lib/modules/`uname -r` -name "vboxnetadp\.*" 2>/dev/null|grep -q vboxnetadp; then +- begin_msg "Removing old VirtualBox netadp kernel module" +- find /lib/modules/`uname -r` -name "vboxnetadp\.*" 2>/dev/null|xargs rm -f 2>/dev/null +- succ_msg +- fi +- if find /lib/modules/`uname -r` -name "vboxnetflt\.*" 2>/dev/null|grep -q vboxnetflt; then +- begin_msg "Removing old VirtualBox netflt kernel module" +- find /lib/modules/`uname -r` -name "vboxnetflt\.*" 2>/dev/null|xargs rm -f 2>/dev/null +- succ_msg +- fi +- if find /lib/modules/`uname -r` -name "vboxdrv\.*" 2>/dev/null|grep -q vboxdrv; then +- begin_msg "Removing old VirtualBox kernel module" +- find /lib/modules/`uname -r` -name "vboxdrv\.*" 2>/dev/null|xargs rm -f 2>/dev/null +- succ_msg +- fi +- if [ -n "$DKMS" ]; then +- begin_msg "Trying to register the VirtualBox kernel modules using DKMS" +- if ! $DODKMS install vboxhost $VERSION >> $LOG; then +- fail_msg "Failed, trying without DKMS" +- DKMS="" +- fi +- fi +- if [ -z "$DKMS" ]; then +- begin_msg "Recompiling VirtualBox kernel modules" +- if ! $BUILDINTMP \ +- --save-module-symvers /tmp/vboxdrv-Module.symvers \ +- --module-source "$MODULE_SRC/vboxdrv" \ +- --no-print-directory install >> $LOG 2>&1; then +- failure "Look at $LOG to find out what went wrong" +- fi +- if ! $BUILDINTMP \ +- --use-module-symvers /tmp/vboxdrv-Module.symvers \ +- --module-source "$MODULE_SRC/vboxnetflt" \ +- --no-print-directory install >> $LOG 2>&1; then +- failure "Look at $LOG to find out what went wrong" +- fi +- if ! $BUILDINTMP \ +- --use-module-symvers /tmp/vboxdrv-Module.symvers \ +- --module-source "$MODULE_SRC/vboxnetadp" \ +- --no-print-directory install >> $LOG 2>&1; then +- failure "Look at $LOG to find out what went wrong" +- fi +- if ! $BUILDINTMP \ +- --use-module-symvers /tmp/vboxdrv-Module.symvers \ +- --module-source "$MODULE_SRC/vboxpci" \ +- --no-print-directory install >> $LOG 2>&1; then +- failure "Look at $LOG to find out what went wrong" +- fi +- fi +- rm -f /etc/vbox/module_not_compiled ++ begin_msg "Recompiling VirtualBox vboxadd kernel module, NOT. It has been packaged." + succ_msg +- start + } + + dmnstatus() | ||
[-] [+] | Added | vbox-vboxweb-init-script.diff ^ |
@@ -0,0 +1,22 @@ +Index: VirtualBox-4.1.8_OSE/src/VBox/Installer/linux/vboxweb-service.sh.in +=================================================================== +--- VirtualBox-4.1.8_OSE.orig/src/VBox/Installer/linux/vboxweb-service.sh.in ++++ VirtualBox-4.1.8_OSE/src/VBox/Installer/linux/vboxweb-service.sh.in +@@ -20,7 +20,7 @@ + # Provides: vboxweb-service + # Required-Start: vboxdrv + # Required-Stop: vboxdrv +-# Default-Start: 2 3 4 5 ++# Default-Start: 2 3 5 + # Default-Stop: 0 1 6 + # Description: VirtualBox web service API + ### END INIT INFO +@@ -50,7 +50,7 @@ if [ -f /etc/redhat-release ]; then + PIDFILE="/var/lock/subsys/vboxweb-service" + elif [ -f /etc/SuSE-release ]; then + system=suse +- PIDFILE="/var/lock/subsys/vboxweb-service" ++ PIDFILE="/var/run/vboxweb-service" + elif [ -f /etc/debian_version ]; then + system=debian + PIDFILE="/var/run/vboxweb-service" | ||
[-] [+] | Added | virtualbox-patch-source.sh ^ |
@@ -0,0 +1,54 @@ +#!/bin/bash + +REMOVE_DIRS=( +src/VBox/Additions/WINNT +src/VBox/Additions/os2 +kBuild/bin +kBuild/msgstyles +kBuild/tools +kBuild/sdks +tools/darwin.x86 +tools/darwin.amd64 +tools/freebsd.x86 +tools/os2.x86 +tools/solaris.x86 +tools/solaris.amd64 +tools/win.amd64 +tools/win.x86 +tools/linux.x86 +tools/linux.amd64 +) + +set -o errexit + +CMDNAME=${0##*/} +SOURCEDIR=${0%$CMDNAME} + +BASENAME=${1%.tar.bz2} + +trap "rm -rf \"$BASENAME-patched.tar\" \"$BASENAME-patched.tar.bz2\"" ERR + +for (( N=0 ; N<${#REMOVE_DIRS[@]} ; N++ )) ; do + #REMOVE_DIRS[N]="$BASENAME/${REMOVE_DIRS[N]}" + # use a wildcard because VirtualBox-1.6.0-OSE != VirtualBox-1.6.0_OSE + REMOVE_DIRS[N]="*/${REMOVE_DIRS[N]}" +done + +cd "$SOURCEDIR" >/dev/null + +if ! test -f "$BASENAME.tar.bz2" ; then + exit 0 +fi + +if test -f "$BASENAME-patched.tar.bz2" ; then + if test "$BASENAME.tar.bz2" -ot "$BASENAME-patched.tar.bz2" ; then + if test $CMDNAME -ot "$BASENAME-patched.tar.bz2" ; then + exit 0 + fi + fi +fi + +cp -a "$BASENAME.tar.bz2" "$BASENAME-patched.tar.bz2" +bunzip2 "$BASENAME-patched.tar.bz2" +tar --wildcards --delete -f "$BASENAME-patched.tar" "${REMOVE_DIRS[@]}" +bzip2 "$BASENAME-patched.tar" | ||
Added | VirtualBox-4.2.4.tar.bz2 ^ | |
[-] [+] | Added | boss.conf ^ |
@@ -0,0 +1,3 @@ +[checks] +# This package includes the old suse changelog for historical purposes. +check_package_is_complete_sources = warn | ||
[-] [+] | Added | vboxservice.service ^ |
@@ -0,0 +1,9 @@ +[Unit] +Description=VBoxService daemon for various aspects of guest control and time sync + +[Service] +Type=simple +ExecStart=/usr/bin/VBoxService -f + +[Install] +WantedBy=basic.target | ||
[-] [+] | Added | virtualbox-4.2.4-UserManual.pdf ^ |
@@ -0,0 +1,52686 @@ +%PDF-1.4 +%ÐÔÅØ +1 0 obj +<< /S /GoTo /D (chapter.1) >> +endobj +4 0 obj +(1 First steps) +endobj +5 0 obj +<< /S /GoTo /D (section.1.1) >> +endobj +8 0 obj +(1.1 Why is virtualization useful?) +endobj +9 0 obj +<< /S /GoTo /D (section.1.2) >> +endobj +12 0 obj +(1.2 Some terminology) +endobj +13 0 obj +<< /S /GoTo /D (section.1.3) >> +endobj +16 0 obj +(1.3 Features overview) +endobj +17 0 obj +<< /S /GoTo /D (section.1.4) >> +endobj +20 0 obj +(1.4 Supported host operating systems) +endobj +21 0 obj +<< /S /GoTo /D (section.1.5) >> +endobj +24 0 obj +(1.5 Installing VirtualBox and extension packs) +endobj +25 0 obj +<< /S /GoTo /D (section.1.6) >> +endobj +28 0 obj +(1.6 Starting VirtualBox) +endobj +29 0 obj +<< /S /GoTo /D (section.1.7) >> +endobj +32 0 obj +(1.7 Creating your first virtual machine) +endobj +33 0 obj +<< /S /GoTo /D (section.1.8) >> +endobj +36 0 obj +(1.8 Running your virtual machine) +endobj +37 0 obj +<< /S /GoTo /D (subsection.1.8.1) >> +endobj +40 0 obj +(1.8.1 Starting a new VM for the first time) +endobj +41 0 obj +<< /S /GoTo /D (subsection.1.8.2) >> +endobj +44 0 obj +(1.8.2 Capturing and releasing keyboard and mouse) +endobj +45 0 obj +<< /S /GoTo /D (subsection.1.8.3) >> +endobj +48 0 obj +(1.8.3 Typing special characters) +endobj +49 0 obj +<< /S /GoTo /D (subsection.1.8.4) >> +endobj +52 0 obj +(1.8.4 Changing removable media) +endobj +53 0 obj +<< /S /GoTo /D (subsection.1.8.5) >> +endobj +56 0 obj +(1.8.5 Resizing the machine's window) +endobj +57 0 obj +<< /S /GoTo /D (subsection.1.8.6) >> +endobj +60 0 obj +(1.8.6 Saving the state of the machine) +endobj +61 0 obj +<< /S /GoTo /D (section.1.9) >> +endobj +64 0 obj +(1.9 Snapshots) +endobj +65 0 obj +<< /S /GoTo /D (subsection.1.9.1) >> +endobj +68 0 obj +(1.9.1 Taking, restoring and deleting snapshots) +endobj +69 0 obj +<< /S /GoTo /D (subsection.1.9.2) >> +endobj +72 0 obj +(1.9.2 Snapshot contents) +endobj +73 0 obj +<< /S /GoTo /D (section.1.10) >> +endobj +76 0 obj +(1.10 Virtual machine configuration) +endobj +77 0 obj +<< /S /GoTo /D (section.1.11) >> +endobj +80 0 obj +(1.11 Removing virtual machines) +endobj +81 0 obj +<< /S /GoTo /D (section.1.12) >> +endobj +84 0 obj +(1.12 Cloning virtual machines) +endobj +85 0 obj +<< /S /GoTo /D (section.1.13) >> +endobj +88 0 obj +(1.13 Importing and exporting virtual machines) +endobj +89 0 obj +<< /S /GoTo /D (section.1.14) >> +endobj +92 0 obj +(1.14 Alternative front-ends) +endobj +93 0 obj +<< /S /GoTo /D (chapter.2) >> +endobj +96 0 obj +(2 Installation details) +endobj +97 0 obj +<< /S /GoTo /D (section.2.1) >> +endobj +100 0 obj +(2.1 Installing on Windows hosts) +endobj +101 0 obj +<< /S /GoTo /D (subsection.2.1.1) >> +endobj +104 0 obj +(2.1.1 Prerequisites) +endobj +105 0 obj +<< /S /GoTo /D (subsection.2.1.2) >> +endobj +108 0 obj +(2.1.2 Performing the installation) +endobj +109 0 obj +<< /S /GoTo /D (subsection.2.1.3) >> +endobj +112 0 obj +(2.1.3 Uninstallation) +endobj +113 0 obj +<< /S /GoTo /D (subsection.2.1.4) >> +endobj +116 0 obj +(2.1.4 Unattended installation) +endobj +117 0 obj +<< /S /GoTo /D (section.2.2) >> +endobj +120 0 obj +(2.2 Installing on Mac OS X hosts) +endobj +121 0 obj +<< /S /GoTo /D (subsection.2.2.1) >> +endobj +124 0 obj +(2.2.1 Performing the installation) +endobj +125 0 obj +<< /S /GoTo /D (subsection.2.2.2) >> +endobj +128 0 obj +(2.2.2 Uninstallation) +endobj +129 0 obj +<< /S /GoTo /D (subsection.2.2.3) >> +endobj +132 0 obj +(2.2.3 Unattended installation) | ||
[-] [+] | Added | virtualbox-4.2.4-rpmlintrc ^ |
@@ -0,0 +1,3 @@ +addFilter("incoherent-init-script-name vboxdrv") +addFilter("incoherent-init-script-name vboxadd") +addFilter("xorg-x11-driver-virtualbox-ose.* shlib-policy-missing-suffix") | ||
[-] [+] | Added | virtualbox-60-vboxdrv.rules ^ |
@@ -0,0 +1,5 @@ +KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="root", MODE="0600" +#these two lines give access permission to vboxusers to properly work with usb nodes, this could be security risk (bnc#664520) !! +# +#SUBSYSTEM=="usb_device",ATTR{devnum}=="?*",ATTR{busnum}=="?*",SYMLINK+="vboxusb/$attr{busnum}/$attr{devnum}",RUN+="/usr/bin/setfacl -m g:vboxusers:6 /dev/vboxusb/$attr{busnum}/$attr{devnum}" +#SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTR{devnum}=="?*",ATTR{busnum}=="?*",SYMLINK+="vboxusb/$attr{busnum}/$attr{devnum}",RUN+="/usr/bin/setfacl -m g:vboxusers:6 /dev/vboxusb/$attr{busnum}/$attr{devnum}" | ||
[-] [+] | Added | virtualbox-60-vboxguest.rules ^ |
@@ -0,0 +1,2 @@ +KERNEL=="vboxguest", NAME="vboxguest", OWNER="root", MODE="0660" ENV{ID_INPUT}="1", ENV{ID_INPUT_MOUSE}="1" +KERNEL=="vboxuser", NAME="vboxuser", OWNER="root", GROUP="users", MODE="0660" | ||
[-] [+] | Added | virtualbox-LocalConfig.kmk ^ |
@@ -0,0 +1,11 @@ +VBOX_WITH_TESTCASES = +VBOX_WITH_TESTSUITE = +VBOX_WITH_ORIGIN := +VBOX_WITH_REGISTRATION_REQUEST = +VBOX_WITH_UPDATE_REQUEST = +VBOX_PATH_APP_PRIVATE_ARCH := /usr/lib/virtualbox +VBOX_PATH_SHARED_LIBS := $(VBOX_PATH_APP_PRIVATE_ARCH) +VBOX_WITH_RUNPATH := $(VBOX_PATH_APP_PRIVATE_ARCH) +VBOX_PATH_APP_PRIVATE = /usr/share/virtualbox +VBOX_PATH_APP_DOCS := /usr/share/doc/packages/virtualbox +VBOX_WITH_REGISTRATION_REQUEST = | ||
[-] [+] | Added | virtualbox-default.virtualbox ^ |
@@ -0,0 +1,16 @@ +# /etc/default/virtualbox +# +# ------------------------------------------------------------------------------------------------- +# In the "SHUTDOWN_USERS" list all users for which a check for runnings VMs should be done during +# shutdown of "vboxdrv" resp. the server: +# SHUTDOWN_USERS="foo bar" +# +# Set "SHUTDOWN" to one of "poweroff", "acpibutton" or "savestate" depending on which of the +# shutdown methods for running VMs are wanted: +# SHUTDOWN="poweroff" +# SHUTDOWN="acpibutton" +# SHUTDOWN="savestate" +# ------------------------------------------------------------------------------------------------- +# +#SHUTDOWN_USERS="foo bar" +#SHUTDOWN="savestate" | ||
[-] [+] | Added | virtualbox-guest-kmp-files ^ |
@@ -0,0 +1,6 @@ +%defattr (-,root,root) +%dir /lib/modules/%2-%1/ +%dir /lib/modules/%2-%1/updates +/lib/modules/%2-%1/updates/vboxsf.ko +/lib/modules/%2-%1/updates/vboxvideo.ko +/lib/modules/%2-%1/updates/vboxguest.ko | ||
[-] [+] | Added | virtualbox-guest-preamble ^ |
@@ -0,0 +1,8 @@ +Requires: kernel-%1 +Provides: virtualbox-guest-kmp = %version +#rename from ose version: +Provides: virtualbox-ose-guest-kmp-%1 = %version +Obsoletes: virtualbox-ose-guest-kmp-%1 < %version +#host (vboxdrv) and guest (vboxguest) kmp exports the same symbol (RTMemFreeEx) +#which break loading modules using modprobe (bnc#661740) +Conflicts: virtualbox-ose-host-kmp | ||
[-] [+] | Added | virtualbox-host-kmp-files ^ |
@@ -0,0 +1,7 @@ +%defattr (-,root,root) +%dir /lib/modules/%2-%1/ +%dir /lib/modules/%2-%1/updates +/lib/modules/%2-%1/updates/vboxdrv.ko +/lib/modules/%2-%1/updates/vboxnetadp.ko +/lib/modules/%2-%1/updates/vboxnetflt.ko +/lib/modules/%2-%1/updates/vboxpci.ko | ||
[-] [+] | Added | virtualbox-host-preamble ^ |
@@ -0,0 +1,8 @@ +Requires: kernel-%1 +Provides: virtualbox-host-kmp = %version +#rename from ose version: +Provides: virtualbox-ose-host-kmp-%1 = %version +Obsoletes: virtualbox-ose-host-kmp-%1 < %version +#host (vboxdrv) and guest (vboxguest) kmp exports the same symbol (RTMemFreeEx) +#which break loading modules using modprobe (bnc#661740) +Conflicts: virtualbox-ose-guest-kmp | ||
[-] [+] | Added | virtualbox-sysconfig.vbox ^ |
@@ -0,0 +1,23 @@ +## Path: System/Virtual Machines/VBox +## Description: Virtual box machines to autostart during boot +## Type: string +## Default: "" +# +# Configuration file for the script /etc/init.d/vboxes +# +# The variable VBOX_AUTOSTART holds the virtual machines to be started during +# boot time. One entry must contain the virtual machine name and the +# virtual machine owner. They are separated with a ";". Multiple entries +# (virtual machines) are separated with a space. +# +# Examples: +# MachineName1;user1 +# +# One virtual machine: +# openSUSE_Factory;vbox +# +# Multiple virtual machines: +# openSUSE_Factory;vbox openSUSE_stable;suse +# +VBOX_AUTOSTART="" + | ||
[-] [+] | Added | virtualbox-vboxes ^ |
@@ -0,0 +1,307 @@ +#!/bin/sh +# +# chkconfig: - 91 35 +# description: Starts and stops vbox autostart VMs. +# Based on +# http://www.amiryan.org/2009/11/04/virtualbox-init-d-service-autostart-scriptu +# +# By Richard Bos <rbos at opensuse dot org> - May 2010 + +### BEGIN INIT INFO +# Provides: vboxes +# Required-Start: $network vboxdrv +# Required-Stop: $network $named +# Default-Start: 3 5 +# Default-Stop: 0 1 2 3 4 5 6 +# Short-Description: Autostart Virtual Box VMs +# Description: Autostart Virtual Box VMs that are mentioned in /etc/sysconfig/vbox file +### END INIT INFO + +# Shell functions sourced from /etc/rc.status: +# rc_check check and set local and overall rc status +# rc_status check and set local and overall rc status +# rc_status -v be verbose in local rc status and clear it afterwards +# rc_status -v -r ditto and clear both the local and overall rc status +# rc_status -s display "skipped" and exit with status 3 +# rc_status -u display "unused" and exit with status 3 +# rc_failed set local and overall rc status to failed +# rc_failed <num> set local and overall rc status to <num> +# rc_reset clear both the local and overall rc status +# rc_exit exit appropriate to overall rc status +# rc_active checks whether a service is activated by symlinks +. /etc/rc.status + +# Reset status of this service +rc_reset + +# Return values acc. to LSB for all commands but status: +# 0 - success +# 1 - generic or unspecified error +# 2 - invalid or excess argument(s) +# 3 - unimplemented feature (e.g. "reload") +# 4 - user had insufficient privileges +# 5 - program is not installed +# 6 - program is not configured +# 7 - program is not running +# 8--199 - reserved (8--99 LSB, 100--149 distrib, 150--199 appl) +# +# Note that starting an already running service, stopping +# or restarting a not-running service as well as the restart +# with force-reload (in case signaling is not supported) are +# considered a success. + +VBOXMGR_BIN=/usr/lib/virtualbox/VBoxManage +if [[ ! -x $VBOXMGR_BIN ]]; then + echo "$VBOXMGR_BIN does not exist" + if [ "$1" = "stop" ]; then + exit 0; + else + exit 6 + fi; +fi + +VBOXHeadLess_BIN=/usr/lib/virtualbox/VBoxHeadless +if [[ ! -x $VBOXHeadLess_BIN ]]; then + echo "$VBOXHeadLess_BIN does not exist" + if [ "$1" = "start" ]; then + exit 6; + else + exit 0 + fi; +fi + +PRG=$(basename $0) +SERVICE="Virtualbox machines" + +[ -r /etc/sysconfig/vbox ] && . /etc/sysconfig/vbox + +start() { + + N=1 + for VBOX in $VBOX_AUTOSTART; do + + if grep -q \; <<< "$VBOX"; then + VBOX_NAME[$N]=$(cut -d\; -f1 <<< "$VBOX") + VBOX_USER[$N]=$(cut -d\; -f2 <<< "$VBOX") + else + VBOX_NAME[$N]="$VBOX" + VBOX_USER[$N]="" + fi + N=$(($N+1)) + done + + VBOXES=${#VBOX_NAME[*]} + + if [ $VBOXES -eq 0 ]; then + # The virtual machines have to be configured in /etc/sysconfig/vbox + echo -n "Starting $SERVICE: no virtual machines configured" + rc_status -u + else + + N=1 + echo -n "Starting $SERVICE: " + while [[ $N -le $VBOXES ]]; do + if [[ $N -lt $VBOXES ]]; then + echo -n "${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]}), " + else + echo "${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]})" + fi + N=$(($N+1)) + done + + N=1 + while [[ $N -le $VBOXES ]]; do + + if [[ -n "${VBOX_USER[$N]}" ]]; then + + if grep --quiet --word-regexp ${VBOX_USER[$N]} /etc/passwd; then + + # The tag "Name:" occurs in multiple sections. Require at least 7 blanks + # with an additional flexible amount of spaces. At the moment of writing + # 13 spaces are needed. + VBOX_RUNNING=$(su ${VBOX_USER[$N]} -c "VBoxManage list --long runningvms" | + sed -n 's/^Name:[[:blank:]]\{7\} *//p' | grep -w "${VBOX_NAME[$N]}") + + if [[ -z "$VBOX_RUNNING" ]]; then + + VBOX_PRESENT=$(su ${VBOX_USER[$N]} -c "$VBOXMGR_BIN list --long vms" | + sed -n 's/^Name:[[:blank:]]\{7\} *//p' | grep -w "${VBOX_NAME[$N]}") + + if [[ -n "$VBOX_PRESENT" ]]; then + + # VBoxManage startvm does not result in a VM with working networking + # su ${VBOX_USER[$N]} -c "$VBOXMGR_BIN -q startvm "${VBOX_NAME[$N]}" -type headless" > /tmp/$PRG.$$ 2>&1 + # Start virtualbox in Headless mode + su ${VBOX_USER[$N]} -c "$VBOXHeadLess_BIN --startvm "${VBOX_NAME[$N]}"" > /tmp/$PRG.$$ 2>&1 & + RETVAL=$? + + if [[ $RETVAL == 0 ]]; then + echo -n " Starting virtual machine: ${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]})" + rc_status -v -r + else + echo -n " Starting virtual machine: ${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]}) failed with the following output: " + rc_failed; rc_status -v -r + # Give the VBOXHeadLess_BIN some time to write the output file + sleep 2 + cat /tmp/$PRG.$$ + fi + + rm /tmp/$PRG.$$ + + else + echo -n " Virtual machine: ${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]}) does not exist" + rc_status -s -r + fi + + else + echo -n " Virtual machine: ${VBOX_NAME[$N]} (user: ${VBOX_USER[$N]}) is already running" + rc_status -v -r + fi + + else + echo -n " Virtual machine: ${VBOX_NAME[$N]}, VBOX_USER: ${VBOX_USER[$N]} does not exist" + rc_status -s -r + fi + + else + echo -n " Virtual machine: ${VBOX_NAME[$N]}: VBOX_USER not configured" + rc_status -s -r + fi + + N=$(($N+1)) + done + fi +} + +stop() { + + for VBOX in $VBOX_AUTOSTART; do + + if grep -q \; <<< "$VBOX"; then + VBOX_USER=$(cut -d\; -f2 <<< "$VBOX") + + # Only add the user to the list, if not present yet + if ! grep -qw "$VBOX_USER" <<< "$VBOX_USERS"; then + VBOX_USERS="$VBOX_USERS $VBOX_USER" + fi + fi + done + + N=1 + for VBOX_USER in $VBOX_USERS; do + VBOX_RUNNING=$(su $VBOX_USER -c "$VBOXMGR_BIN list --long runningvms" | + sed -n 's/^Name:[[:blank:]]\{7\} *//p') + for VBOX in $VBOX_RUNNING; do + VBOX_NAME[$N]="$VBOX" + VBOX_USER[$N]="$VBOX_USER" + N=$(($N+1)) + done + done | ||
[-] [+] | Added | virtualbox-wrapper.sh ^ |
@@ -0,0 +1,4 @@ +#!/bin/bash +export QT_NO_KDE_INTEGRATION=1 +/usr/bin/id -nG | grep -v -e "root" -e "vboxusers" >/dev/null && /usr/lib/virtualbox/VBoxPermissionMessage && exit +LD_LIBRARY_PATH="/usr/lib/virtualbox${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" /usr/lib/virtualbox/VirtualBox $@ | ||
[-] [+] | Added | virtualbox.changes_suse ^ |
@@ -0,0 +1,2798 @@ +------------------------------------------------------------------- +Thu Sep 27 07:47:14 UTC 2012 - idonmez@suse.com + +- Add virtualbox-kernel-3.6.patch to fix compilation with 3.6 kernel + +------------------------------------------------------------------- +Tue Jun 26 14:02:32 UTC 2012 - mvyskocil@suse.cz + +- let it build with all versions of openjdk + +------------------------------------------------------------------- +Thu Jun 21 20:01:20 UTC 2012 - mseben@gmail.com + +- update to virtualbox 4.1.18 (This is a maintenance release) +* VMM: fixed VERR_REM_VIRTUAL_CPU_ERROR under rare conditions after the guest has been reset (bug #5164 and others) +* VMM: fixed host freezes with 64-bit guests on 32-bit Linux hosts (bug #10528) +* VRDP: added a workaround for rdesktop clients not properly updating the screen size when minimized +* AHCI: fixed a rare bug which can cause a guest memory corruption after the guest storage controler has been reset +* NAT: another attempt to fix crashes under rare conditions (Windows hosts only; bug #10513) +* Mac OS X hosts: addressed issues running Leopard / Snow Leopard (bug #10631) +* Linux hosts / Bridged Networking: fixed the problem with device driver unloading on kernels 3.2.18 and newer due to an invalid reference counter (bug #10624) +* Linux hosts / guests: Linux 3.5-rc1 fixes +* Linux Additions: the guest content was sometimes not properly updated (bug #9887) +* Solaris Additions: installer fix for X.org Server 1.11 and 1.12 + +------------------------------------------------------------------- +Fri Jun 1 20:00:15 UTC 2012 - mseben@gmail.com + +- use proper version of vboxvideo xorg driver (vboxvideo_drv_112) + for 12.2 release +- adjust udev rules for vboxuser device on guest machine (file virtualbox-60-vboxguest.rules) + +------------------------------------------------------------------- +Thu May 24 08:37:37 UTC 2012 - mseben@gmail.com + +- update to virtualbox 4.1.16 (This is a maintenance release) +* VMM: fixed a Guru Meditation VERR_ACCESS_DENIED with certain guests (bugs #7589, #8247) +* VMM: fixed a Guru Meditation VERR_PAGE_TABLE_NOT_PRESENT with Ubuntu 32-bit guests with nested paging enabled on AMD CPUs (bug #10183) +* VMM: preserve segment limits and attributes when switching to unreal mode required for some legacy guests to work properly (VT-x without unrestricted guest execution only; bug #9941) +* VMM: fixed a VM hang after a resume from pause / savestate with SMP guests in rare cases +* 3D Support: several fixes for the Windows WDDM video driver crash +* NAT: fixed a crash on attempt to process ICMP datagram under some circumstances (bug #10527) +* Host-only Networking: lifted the maximal number of interfaces to 128 on Linux and Mac OS X hosts (there is no such limitation for Solaris and Windows hosts) +* EFI: fixed wrong SEC/PEI Core entry point calculation (bug #10531) +* VRDP: fixed a display update problem (bug #10503) +* Main: set the proper VM state if savestate failed for some reason (bug #6189) +* Main: more useful error message if a medium is inaccessible +* VBoxManage: fixed controlvm savestate if the VM is already paused +* Mac OS X hosts: addressed issues running on Mountain Lion Preview 3 (bug #10267) +* Linux hosts: Linux 3.4 compile fixes +* Linux hosts: fixed wrong help path in some rpm-based packages (bug #10418) +* Guest Additions: fixed handling of custom environment variables during VBoxManage guestcontrol execute (bug #10581) +* Windows Additions: fixed guest driver crash of VBoxSF in certain cases (4.1.10 regression, bug #10408) +* Windows Additions: don't load the WDDM driver if 3D support is not available for Windows 8 guests to keep the guest maintainable in that case (still better to miss some features than providing a blank screen) +* Solaris Additions: added support for X.org Server 1.11 and 1.12 + +------------------------------------------------------------------- +Tue May 15 12:16:30 UTC 2012 - mseben@gmail.com + +- modify vboxadd-init-script.diff to fix issues with missing + config file on guest [bnc#761923] + +------------------------------------------------------------------- +Sun Apr 29 16:02:54 UTC 2012 - mseben@gmail.com + +- use workaround for issue with kmk_sed and gcc4.7 http://svn.netlabs.org/kbuild/ticket/112, + which breaks build, instead of kmk_sed use /usr/bin/sed + +------------------------------------------------------------------- +Sat Apr 28 19:38:57 UTC 2012 - mseben@gmail.com + +- update to virtualbox 4.1.14 (This is a maintenance release): + * Network: fixed the problem with packets larger than MTU-4 when PCnet or PRO/1000 was bridged to certain types of adapters on OS X hosts (bug #3783) + * NAT: fixed a segfault under rare circumstances + * 3D Support: fixed Windows WDDM video driver crash for SMP guests (bugs #10200, #10331) + * Windows Guest Additions, VRDP: fixed occasional text corruption (bug #3001) + +------------------------------------------------------------------- +Sat Apr 21 10:25:41 UTC 2012 - mseben@gmail.com + +- drop vbox-config.diff and use LocalConfig.kmk to properly define + lib,app and doc paths (bnc#737525) + +------------------------------------------------------------------- +Wed Apr 4 09:21:39 UTC 2012 - mseben@gmail.com + +- deprecated vbox-visibility.diff and vbox-gsoap_ssl.diff +- update to virtualbox 4.1.12 (This is a maintenance release): + * VMM: fixed VERR_NOT_SUPPORTED and VERR_RAW_MODE_INVALID_SMP guru meditation due to an invalid reschedule to raw mode (bug #10370) + * VMM: fixed PDMCritSectLeave guru meditation under rare circumstances with SMP guests + * VMM: proper Math Fault handling with certain legacy guests (bug #9042) + * NAT: fixed a socket leak under certain conditions + * Storage: better sanity check against reading beyond end-of-file + * Audio: fixed a crash in the NUL audio backend (bug #10374; 4.1.10 regression) + * HGCM: fixed a crash during savestate under rare circumstances + * VBoxSVC: several locking fixes + * VBoxManage: return the correct error code if controlvm savestate failed (bug #10134) + * Guest Additions: VBoxService should not crash on exit (bug #10326; 4.1.10 regression) + * Windows Additions: set the correct time stamp when a file is closed (bug #6473) + * Windows Additions: better help if the DirectX backups are not properly installed + * Linux Additions: Linux 3.4-rc1 compile fixes + +------------------------------------------------------------------- +Sun Apr 1 05:48:40 UTC 2012 - mseben@gmail.com + +- added vbox-gsoap_ssl.diff to fix building websrv with ssl support +- drop deprecated kernel-3.3.patch +- update to virtualbox 4.1.10 (This is a maintenance release): + * GUI: if 3D support on the host is not available for some reason, do not only disable this VM setting but also uncheck the checkbox + * VMM: fixed a potential problem causing to schedule interrupts during SYSEXIT right after STI + * VMM: fixed a potential guest memory corruption issue with page fusion + * VMM: adjusted the module matching algorithm for page fusion a little, generally resulting in slightly more shared pages + * Main: host interfaces no longer have "defaults" for IP address and network mask attributes + * Main: don't depend on a password for certain guest control operations (bug #10030) + * 3D Support: fixed Windows XP hosts support (4.1.8 regression; bugs #10071 and #10088) + * 3D Support: rendering fixes for Linux hosts with NVIDIA graphics + * 3D Support: fixed saved state issues (4.1.8 regression; bug #10126) + * 3D Support: WDDM driver: fixed powershell_ise crashes (bug #10167), make WPF-based apps work with Aero enabled, fixed additional possible WinSAT crashes + * VRDP: fixed remote clipboard compatibility issues with some clients + * Storage: fixed a possible data corruption when compacting VDI or VHD images with snapshots (32-bit hosts only) + * iSCSI: fixed crash when using incorrect credentials when authenticating with a LIO target (bug #10173) + * Serial: don't abort in host mode under rare error conditions (non-Windows hosts only) + * SDK: actually ship current C bindings + * SDK: fixed the Java glue code for JDK 1.7.0 (bug #9848) + * SDK: added Python example + * Metrics: make metrics collection more robust regarding blocked VMs + * Web service: added SSL/TLS support + * VBoxShell: fixed Guest Additions information lookup + * Solaris installer: fixed dependency checking while installing VirtualBox in a zone + * Linux hosts/guests: Linux 3.3-rc1 compile fixes + * Solaris hosts: fixed debug kernel panics while opening module CTF data (bug #9651) + * Mac OS X hosts: fixed Python support on Lion + * Linux Additions: make 3D passthrough work on OL/RHEL 6.2 (bug #10010) + * Linux Additions: fixed missing implementation when copying shared folder data through kernel high memory (bug #9878) + * Linux Additions: make sure all data is written when closing a memory mapped file on a shared folder + * Linux Additions: added support for X.Org Server 1.12 + * Solaris Additions: fixed guest kernel driver to load properly on guest reboot (4.1.8 regression; bug #10113) + * Solaris Additions: fixed missing 64-bit OpenGL library VBoxOGL.so (bug #10151) + * Solaris Additions: fixed VBoxService import and start for Solaris 11 guests. + * Windows Additions: some Windows 8 adaptions + * Windows Additions: several fixes for shared folders (bug #9753) + * Guest control: miscellaneous bugfixes + +------------------------------------------------------------------- +Sun Mar 18 08:18:34 UTC 2012 - mseben@gmail.com + +- use pie/fPIE for setuid binaries (vbox-fpie.diff) (bnc#743143) +- clean up virtualbox-60-vboxdrv.rules and use fillup_only for vbox sysconfig file +- added vbox-vboxweb-init-script.diff to use proper pid file and runlevels in vboxweb initscript + +------------------------------------------------------------------- +Wed Mar 14 20:45:06 UTC 2012 - mseben@gmail.com + +- enabled websrv feature, this feature is now provided by new subpackage virtualbox-websrv +- added vbox-visibility.diff to fix websrv build (ommit -fvisibility=hidden gcc flag for gsoap related builds) + +------------------------------------------------------------------- +Thu Mar 8 15:16:01 UTC 2012 - idonmez@suse.com + +- Drop unnecessary xorg-x11-libs-32bit buildrequires +- Fix build with linux kernel 3.3 + +------------------------------------------------------------------- +Tue Feb 21 07:49:52 UTC 2012 - seife+obs@b1-systems.com + +- remove build date from VBoxSVC + +------------------------------------------------------------------- +Wed Dec 28 11:01:04 UTC 2011 - mseben@gmail.com + +- update to virtualbox 4.1.8 + * VMM: fixed VERR_MAP_FAILED during savestate under certain circumstances (bug #7929) + * GUI: stop updating the VM status icons when the VM is paused (bug #8368) + * VBoxManage: fixed wrong return code after startvm (bug #9642) + * BIOS: fixed hang at launch of DOS applications generated by Clipper 5.3 (note that hardware virtualization may be required) + * USB: fixed OS/2 boot hang when using recent USB drivers + * NAT: increase maximum number of parallel connections making connections with port forwarding more robust (#8471) + * Metrics: fixed potential problem with invalid access in guest metrics collection upon VM destruction + * Main: don't crash if a medium is ejected twice (bug #9922) + * VBoxSVC: fixed crash under rare circumstances (e.g. client crash) + * VRDP: fixed screen freeze (bug #9620) + * OVF/OVA: fixed broken disk images on import under rare circumstances + * OVF/OVA: better error message when importing corrupted appliances + * VMDK/VHD: fixed a possible corruption with host cache disabled when using snapshots under rare circumstances (bug #9749) + * 3D Support: Fixed fullscreen mode issues for ATI graphics (bug #9775), + * 3D Support: Windows Media Player rendering for XPDM-based Direct3D support (bug #8341). + * 3D Support: Multiple fixes to XPDM and WDDM - based 3D support for Windows Guests and for 3D support in general + * Linux hosts: fixes for Fedoras Linux 2.6.41 (bug #9948) + * Linux hosts/guests: fixes for Linux 3.2 (bug #9743) + * Solaris Additions: various shared folder fixes (bugs #9856, #9862, #9917) + * Windows Additions: various fixes for Direct3D support (un)installation, added detection of missing or wrong Direct3D system files + + +------------------------------------------------------------------- +Wed Dec 7 10:39:02 UTC 2011 - coolo@suse.com + +- fix license to be in spdx.org format + +------------------------------------------------------------------- | ||
Added | yasm ^ |
Submit package nemo:devel...86-common / xorg-x11-drv-intel (revision 1) to package nemo:testi...86-common / xorg-x11-drv-intel
[-] [+] | Added | xorg-x11-drv-intel.changes |
[-] [+] | Added | xorg-x11-drv-intel.spec ^ |
[-] [+] | Added | 0001-No-SwapLimitValidate-in-DRI2InfoRec-anymore.patch ^ |
@@ -0,0 +1,25 @@ +From 1c2ce4e36f6697b8ab8e3e85ffa096c2d02f14b7 Mon Sep 17 00:00:00 2001 +From: Marko Saukko <marko.saukko@jollamobile.com> +Date: Wed, 17 Oct 2012 08:37:58 +0000 +Subject: [PATCH] No SwapLimitValidate in DRI2InfoRec anymore. + +Signed-off-by: Marko Saukko <marko.saukko@jollamobile.com> +--- + src/sna/sna_dri.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/src/sna/sna_dri.c b/src/sna/sna_dri.c +index 15ac46a..02a324d 100644 +--- a/src/sna/sna_dri.c ++++ b/src/sna/sna_dri.c +@@ -2342,7 +2342,6 @@ bool sna_dri_open(struct sna *sna, ScreenPtr screen) + + #if DRI2INFOREC_VERSION >= 6 + info.version = 6; +- info.SwapLimitValidate = NULL; + info.ReuseBufferNotify = NULL; + #endif + +-- +1.7.10.3 + | ||
Added | xf86-video-intel-2.20.10.tar.bz2 ^ | |
[-] [+] | Added | xorg-x11-drv-intel.yaml ^ |
@@ -0,0 +1,35 @@ +Name: xorg-x11-drv-intel +Summary: Xorg X11 Intel video driver +Version: 2.20.10 +Release: 1 +Group: System/X Hardware Support +Description: Xorg Intel video driver +License: MIT +URL: http://www.x.org/ +Sources: + - http://xorg.freedesktop.org/archive/individual/driver/xf86-video-intel-%{version}.tar.bz2 +Patches: + - 0001-No-SwapLimitValidate-in-DRI2InfoRec-anymore.patch +Requires: + - xorg-x11-server-Xorg + - hwdata +PkgConfigBR: + - xorg-macros >= 1.8 + - libudev + - x11 + - xrender + - xext + - pixman-1 >= 0.24 + - dri2proto + - xvmc + - xorg-server >= 1.6 + - xproto + - fontsproto + - libdrm >= 2.4.24 + - xf86driproto + - pciaccess + - gl +Configure: reconfigure +ConfigOptions: + - --enable-dri + - --enable-kms-only |
Submit package nemo:devel...x86-common / xorg-x11-drv-mtev (revision 1) to package nemo:testi...x86-common / xorg-x11-drv-mtev
[-] [+] | Added | xorg-x11-drv-mtev.changes |
[-] [+] | Added | xorg-x11-drv-mtev.spec ^ |
[-] [+] | Added | apis-match-for-xserver-1.10.1.patch ^ |
@@ -0,0 +1,80 @@ +diff -Naurp xorg-x11-drv-mtev-0.1.13-orig/src/multitouch.c xorg-x11-drv-mtev-0.1.13/src/multitouch.c +--- xorg-x11-drv-mtev-0.1.13-orig/src/multitouch.c 2011-05-17 19:38:39.103481362 +0800 ++++ xorg-x11-drv-mtev-0.1.13/src/multitouch.c 2011-05-18 02:06:33.383651975 +0800 +@@ -33,6 +33,11 @@ + #include "common.h" + #include "mtouch.h" + ++typedef InputInfoPtr LocalDevicePtr; ++#define XI86_POINTER_CAPABLE 0x40 /* capable of being a core pointer */ ++#define XI86_SEND_DRAG_EVENTS 0x08 ++#define XI86_CONFIGURED 0x02 /* the device has been configured */ ++ + static const char* const axis_labels_str[] = { + AXIS_LABEL_PROP_ABS_MT_POSITION_X, + AXIS_LABEL_PROP_ABS_MT_POSITION_Y, +@@ -208,7 +213,7 @@ static int device_init(DeviceIntPtr dev, + xf86InitValuatorAxisStruct(dev, val, axes_labels[val], + min, + max, +- 1, 0, 1); ++ 1, 0, 1, Absolute); + xf86InitValuatorDefaults(dev, val); + } + } +@@ -354,17 +359,18 @@ static Bool device_control(DeviceIntPtr + } + } + +-static InputInfoPtr preinit(InputDriverPtr drv, IDevPtr dev, int flags) ++static int preinit(InputDriverPtr drv, InputInfoPtr pInfo, int flags) + { + struct mtev_mtouch *mt; +- InputInfoPtr local = xf86AllocateInput(drv, 0); +- if (!local) +- goto error; ++ //InputInfoPtr local = xf86AllocateInput(drv, 0); ++ //if (!local) ++ // goto error; ++ InputInfoPtr local = pInfo; + mt = calloc(1, sizeof(struct mtev_mtouch)); + if (!mt) + goto error; + +- local->name = dev->identifier; ++ //local->name = dev->identifier; + local->type_name = XI_TOUCHSCREEN; + local->device_control = device_control; + local->read_input = read_input; +@@ -372,9 +378,9 @@ static InputInfoPtr preinit(InputDriverP + local->flags = XI86_POINTER_CAPABLE | + XI86_SEND_DRAG_EVENTS; + +- local->conf_idev = dev; ++ //local->conf_idev = dev; + +- xf86CollectInputOptions(local, NULL, NULL); ++ xf86CollectInputOptions(local, NULL); + //xf86OptionListReport(local->options); + xf86ProcessCommonOptions(local, local->options); + +@@ -385,8 +391,9 @@ static InputInfoPtr preinit(InputDriverP + + local->flags |= XI86_CONFIGURED; + ++ return Success; + error: +- return local; ++ return !Success; + } + + static void uninit(InputDriverPtr drv, InputInfoPtr local, int flags) +@@ -403,7 +410,7 @@ static InputDriverRec MTEV = { + .PreInit = preinit, + .UnInit = uninit, + .module = NULL, +- .refCount = 0 ++ .default_options = NULL + }; + + static XF86ModuleVersionInfo VERSION = { | ||
[-] [+] | Added | 60-cando-mtev.conf ^ |
@@ -0,0 +1,7 @@ +Section "InputClass" + Identifier "Cando Multi Touch Panel" + MatchVendor "Cando" + MatchDevicePath "/dev/input/event*" + Driver "mtev" + Option "Ignore" "off" +EndSection | ||
[-] [+] | Added | 60-egalax-mtev.conf ^ |
@@ -0,0 +1,7 @@ +Section "InputClass" + Identifier "eGalax Touchscreen" + MatchVendor "eGalax" + MatchDevicePath "/dev/input/event*" + Driver "mtev" + Option "Ignore" "off" +EndSection | ||
[-] [+] | Added | 70-sitronix-mtev.conf ^ |
@@ -0,0 +1,7 @@ +Section "InputClass" + Identifier "Sitronix Technology Corp" + MatchVendor "Sitronix" + MatchDevicePath "/dev/input/event*" + Driver "mtev" + Option "Ignore" "off" +EndSection | ||
[-] [+] | Added | 80-Hanvon-mtev.conf ^ |
@@ -0,0 +1,7 @@ +Section "InputClass" + Identifier "Hanvon touchscreen" + MatchIsTouchscreen "on" + MatchProduct "Hanvon" + MatchDevicePath "/dev/input/event*" + Driver "mtev" +EndSection | ||
[-] [+] | Added | 90-ILI-mtev.conf ^ |
@@ -0,0 +1,8 @@ +Section "InputClass" + Identifier "ILITEK Multi Touch Panel" + MatchVendor "ILITEK" + MatchDevicePath "/dev/input/event*" + Driver "mtev" + Option "Ignore" "off" +EndSection + | ||
[-] [+] | Added | 91-ecss10ot3.conf ^ |
@@ -0,0 +1,6 @@ +Section "InputClass" + Identifier "Suppress gyroscope input" + MatchProduct "l3g4200d" + Option "Ignore" "on" +EndSection + | ||
Added | xorg-x11-drv-mtev-0.1.13.tar.gz ^ | |
[-] [+] | Added | xorg-x11-drv-mtev.yaml ^ |
@@ -0,0 +1,32 @@ +Name: xorg-x11-drv-mtev +Summary: Multitouch input driver for Xserver +Version: 0.1.13 +Release: 1 +Group: System/X Hardware Support +License: GPLv2 +URL: http://gitorious.org/xorg/xf86-input-mtev +Description: | + This is a xserver-xorg input driver for devices supporting Linux Multi-Touch protocol +Sources: + - "%{name}-%{version}.tar.gz" +ExtraSources: + - 60-cando-mtev.conf;/etc/X11/xorg.conf.d + - 60-egalax-mtev.conf;/etc/X11/xorg.conf.d + - 70-sitronix-mtev.conf;/etc/X11/xorg.conf.d + - 80-Hanvon-mtev.conf;/etc/X11/xorg.conf.d + - 90-ILI-mtev.conf;/etc/X11/xorg.conf.d + - 91-ecss10ot3.conf;/etc/X11/xorg.conf.d +Patches: + - apis-match-for-xserver-1.10.1.patch +PkgConfigBR: + - xorg-server + - xkbfile + - xproto + - inputproto + - xrandr + - randrproto + - xextproto + - mtdev +Configure: none +Builder: make + |
Submit package nemo:deve...6-common / xorg-x11-...ynaptics (revision 1) to package nemo:test...6-common / xorg-x11-...ynaptics
[-] [+] | Added | xorg-x11-drv-synaptics.changes |
[-] [+] | Added | xorg-x11-drv-synaptics.spec ^ |
[-] [+] | Added | Add-new-option-JumpyCursorThreshold.patch ^ |
@@ -0,0 +1,248 @@ +From 0847b3eedda4fc2c8aa4045bc16eb22bb34e2ac0 Mon Sep 17 00:00:00 2001 +Message-Id: <0847b3eedda4fc2c8aa4045bc16eb22bb34e2ac0.1291697312.git.yan.i.li@intel.com> +From: Yan Li <yan.i.li@intel.com> +Date: Fri, 3 Dec 2010 13:57:32 +0800 +Subject: [PATCH] Add new option JumpyCursorThreshold + +This option can filter out big value changes from some models of +touchpad that lead to jumpy cursor (most notably the touchpad from +Lenovo S10-3t, MeeGo Bug #4807). + +Based on patch written by Alberto Milone from https://bugs.freedesktop.org/show_bug.cgi?id=21614 + +Signed-off-by: Yan Li <yan.i.li@intel.com> +--- + include/synaptics-properties.h | 3 ++ + man/synaptics.man | 16 +++++++++ + src/properties.c | 9 +++++ + src/synaptics.c | 68 ++++++++++++++++++++++++++++++++++++++- + src/synapticsstr.h | 2 + + tools/synclient.c | 1 + + 6 files changed, 97 insertions(+), 2 deletions(-) + +diff --git a/include/synaptics-properties.h b/include/synaptics-properties.h +index 9c6a2ee..9183853 100644 +--- a/include/synaptics-properties.h ++++ b/include/synaptics-properties.h +@@ -155,4 +155,7 @@ + /* 32 bit, 4 values, left, right, top, bottom */ + #define SYNAPTICS_PROP_AREA "Synaptics Area" + ++/* 32 bit */ ++#define SYNAPTICS_PROP_JUMPYCURSOR_THRESHOLD "Synaptics Jumpy Cursor Threshold" ++ + #endif /* _SYNAPTICS_PROPERTIES_H_ */ +diff --git a/man/synaptics.man b/man/synaptics.man +index 3f1ca9d..7f1ad00 100644 +--- a/man/synaptics.man ++++ b/man/synaptics.man +@@ -553,6 +553,14 @@ coordinates are less than MaxTapMove units apart. + A "touch" event happens when the Z value goes above FingerHigh, and an + "untouch" event happens when the Z value goes below FingerLow. + . ++.TP ++.BI "Option \*qJumpyCursorThreshold\*q \*q" integer \*q ++Set the threshold above which movement events are ignored on single-touch touchpads. ++. ++The option is disabled by default and can be enabled by setting the ++JumpyCursorThreshold option to any integer value other than zero. Property: "Synaptics ++Jumpy Cursor Threshold" ++. + .LP + The MaxDoubleTapTime parameter has the same function as the MaxTapTime + parameter, but for the second, third, etc tap in a tap sequence. +@@ -900,6 +908,14 @@ right button, two-finger detection, three-finger detection, pressure detection, + .BI "Synaptics Pad Resolution" + 32 bit unsigned, 2 values (read-only), vertical, horizontal in units/millimeter. + ++.TP 7 ++.BI "Synaptics Jumpy Cursor Threshold" ++The Synaptics Jumpy Cursor Threshold parameter is used to suppress movements (which ++take place in 20 milliseconds or less) whose covered distance is greater than or ++equal to the threshold on single-touch touchpads. This property is disabled by default. ++ ++32 bit, 1 value. 0 disables the property. ++ + .SH "NOTES" + There is an example hal policy file in + .I ${sourcecode}/fdi/11-x11-synaptics.fdi +diff --git a/src/properties.c b/src/properties.c +index ee9a5a6..16e9ef2 100644 +--- a/src/properties.c ++++ b/src/properties.c +@@ -82,6 +82,7 @@ Atom prop_gestures = 0; + Atom prop_capabilities = 0; + Atom prop_resolution = 0; + Atom prop_area = 0; ++Atom prop_jumpycursor_threshold = 0; + + static Atom + InitAtom(DeviceIntPtr dev, char *name, int format, int nvalues, int *values) +@@ -278,6 +279,8 @@ InitDeviceProperties(LocalDevicePtr local) + values[2] = para->area_top_edge; + values[3] = para->area_bottom_edge; + prop_area = InitAtom(local->dev, SYNAPTICS_PROP_AREA, 32, 4, values); ++ ++ prop_jumpycursor_threshold = InitAtom(local->dev, SYNAPTICS_PROP_JUMPYCURSOR_THRESHOLD, 32, 1, ¶->jumpycursor_threshold); + } + + int +@@ -649,6 +652,12 @@ SetProperty(DeviceIntPtr dev, Atom property, XIPropertyValuePtr prop, + para->area_right_edge = area[1]; + para->area_top_edge = area[2]; + para->area_bottom_edge = area[3]; ++ } else if (property == prop_jumpycursor_threshold) ++ { ++ if (prop->size != 1 || prop->format != 32 || prop->type != XA_INTEGER) ++ return BadMatch; ++ ++ para->jumpycursor_threshold = *(INT32*)prop->data; + } + + return Success; +diff --git a/src/synaptics.c b/src/synaptics.c +index 2e5f8ae..e8f3ec7 100644 +--- a/src/synaptics.c ++++ b/src/synaptics.c +@@ -129,6 +129,9 @@ static void ReadDevDimensions(LocalDevicePtr); + static void ScaleCoordinates(SynapticsPrivate *priv, struct SynapticsHwState *hw); + static void CalculateScalingCoeffs(SynapticsPrivate *priv); + ++int old_time_millis = 0; ++Bool was_time_skipped = FALSE; ++ + void InitDeviceProperties(LocalDevicePtr local); + int SetProperty(DeviceIntPtr dev, Atom property, XIPropertyValuePtr prop, + BOOL checkonly); +@@ -595,6 +598,7 @@ static void set_default_parameters(LocalDevicePtr local) + pars->tap_and_drag_gesture = xf86SetBoolOption(opts, "TapAndDragGesture", TRUE); + pars->resolution_horiz = xf86SetIntOption(opts, "HorizResolution", horizResolution); + pars->resolution_vert = xf86SetIntOption(opts, "VertResolution", vertResolution); ++ pars->jumpycursor_threshold = xf86SetIntOption(opts, "JumpyCursorThreshold", 0); + + /* Warn about (and fix) incorrectly configured TopEdge/BottomEdge parameters */ + if (pars->top_edge > pars->bottom_edge) { +@@ -1685,11 +1689,12 @@ HandleTapProcessing(SynapticsPrivate *priv, struct SynapticsHwState *hw, + #define HIST(a) (priv->move_hist[((priv->hist_index - (a) + SYNAPTICS_MOVE_HISTORY) % SYNAPTICS_MOVE_HISTORY)]) + + static void +-store_history(SynapticsPrivate *priv, int x, int y, unsigned int millis) ++store_history(SynapticsPrivate *priv, int x, int y, int num_fingers, unsigned int millis) + { + int idx = (priv->hist_index + 1) % SYNAPTICS_MOVE_HISTORY; + priv->move_hist[idx].x = x; + priv->move_hist[idx].y = y; ++ priv->move_hist[idx].num_fingers = num_fingers; + priv->move_hist[idx].millis = millis; + priv->hist_index = idx; + } +@@ -1809,6 +1814,65 @@ ComputeDeltas(SynapticsPrivate *priv, const struct SynapticsHwState *hw, + } + priv->prevFingers = hw->numFingers; + ++ /* Handle JumpyCursor here */ ++ if (dx || dy) { ++ /* Work around issues caused by two fingers on multi-touch ++ * models ++ */ ++ if (priv->has_double) { ++ if ((hw->numFingers < 2) && ++ ((HIST(0).num_fingers >= 2) || (HIST(1).num_fingers >= 2) || ++ (HIST(2).num_fingers >= 2) || (HIST(3).num_fingers >= 2) )) { ++ dx = dy = 0; ++ } ++ old_time_millis = hw->millis; ++ } ++ /* Work around issues caused by two fingers on single-touch ++ * models ++ */ ++ else { ++ /* If para->jumpycursor_threshold <= 0, quirks are not ++ * available ++ */ ++ if (para->jumpycursor_threshold <= 0) ++ goto post_quirks; ++ ++ int elapsed_time = hw->millis - HIST(0).millis; ++ ++ /* Ignore deltas as they couldn't possibly happen in so little time */ ++ if (elapsed_time <= 20 && (abs(dx) >= para->jumpycursor_threshold || abs(dy) >= para->jumpycursor_threshold)) { ++ dx = dy = 0.0; ++ was_time_skipped = FALSE; ++ } ++ /* A comparison between the timestamp in priv->move_hist and hw->millis shows ++ * that something went wrong and that an event was skipped, hence the deltas ++ * are wrong. ++ * Let's ignore the deltas and append the skipped event to priv->move_hist ++ * otherwise the next deltas will be wrong too. ++ */ ++ else if (old_time_millis > 0 && (HIST(0).millis != old_time_millis)) { ++ dx = dy = 0.0; ++ was_time_skipped = TRUE; ++ } ++ /* Something went wrong and an event was previously skipped, hence these deltas ++ * are wrong. ++ * Let's ignore the deltas and set was_time_skipped to FALSE as the next deltas ++ * should be good. ++ */ ++ else { ++ if (was_time_skipped) { ++ dx = 0.0; ++ dy = 0.0; ++ } ++ was_time_skipped = FALSE; ++ } ++ ++ old_time_millis = hw->millis; ++ } ++ ++ } | ||
[-] [+] | Added | Clickpad-support.patch ^ |
@@ -0,0 +1,190 @@ +From edeae959053a56d8cb56754f2b068356e92491ba Mon Sep 17 00:00:00 2001 +Message-Id: <edeae959053a56d8cb56754f2b068356e92491ba.1291793630.git.yan.i.li@intel.com> +From: Yan Li <yan.i.li@intel.com> +Date: Wed, 1 Dec 2010 13:57:42 +0800 +Subject: [PATCH] ClickPad support v4 + +This patch adds the support for Synaptics Clickpad devices. +It requires the change in Linux kernel synaptics input driver, found in + https://patchwork.kernel.org/patch/92435/ +The kernel patch is already included in 2.6.34 and later releases. + +When the kernel driver sets only the left-button bit evbit and no +multi-finger is possible, Clickpad mode is activated. In this mode, +the bottom touch area is used as button emulations. Clicking at the +bottom-left, bottom-center and bottom-right zone corresponds to a left, +center and right click. + +v2->v3: Fix the mis-detection of Clickpad device with double-tap feature + (e.g. MacBook) + Fix one forgotten spacing issue Peter suggested + +v3->v4: Ported to HEAD by Yan Li for MeeGo, also added ClickPad + description to manpage. + +Signed-off-by: Takashi Iwai <tiwai at suse.de> +Signed-off-by: Yan Li <yan.i.li@intel.com> +--- + man/synaptics.man | 8 ++++++ + src/eventcomm.c | 7 +++++ + src/synaptics.c | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++- + src/synapticsstr.h | 2 + + 4 files changed, 88 insertions(+), 1 deletions(-) + +diff --git a/man/synaptics.man b/man/synaptics.man +index 3f1ca9d..25f1115 100644 +--- a/man/synaptics.man ++++ b/man/synaptics.man +@@ -56,6 +56,14 @@ Pressure dependent motion speed. + .IP \(bu 4 + Run-time configuration using shared memory. This means you can change + parameter settings without restarting the X server. ++.IP \(bu 4 ++Synaptics ClickPad support: ClickPad is a new kind of device from ++Synaptics that has no visible physical keys. Instead, the whole board ++is clickable and the device sends out BTN_MIDDLE only. It's the ++driver's duty to judge whether the click is a left or right one ++according to finger location. If the driver detects that the touchpad ++has only one button, the ClickPad mode will be activated and handles ++the action correctly. + .LP + Note that depending on the touchpad firmware, some of these features + might be available even without using the synaptics driver. Note also +diff --git a/src/eventcomm.c b/src/eventcomm.c +index faa66ab..7da5a40 100644 +--- a/src/eventcomm.c ++++ b/src/eventcomm.c +@@ -269,6 +269,13 @@ event_query_axis_ranges(LocalDevicePtr local) + } + + xf86Msg(X_PROBED, "%s: buttons:%s\n", local->name, buf); ++ ++ /* clickpad device reports only the single left button mask */ ++ if (priv->has_left && !priv->has_right && !priv->has_middle && !priv->has_double) { ++ priv->is_clickpad = TRUE; ++ xf86Msg(X_INFO, "%s: is Clickpad device\n", local->name); ++ } ++ + } + } + +diff --git a/src/synaptics.c b/src/synaptics.c +index 53c3685..2e5f8ae 100644 +--- a/src/synaptics.c ++++ b/src/synaptics.c +@@ -506,6 +506,18 @@ static void set_default_parameters(LocalDevicePtr local) + vertResolution = priv->resy; + } + ++ /* Clickpad mode -- bottom area is used as buttons */ ++ if (priv->is_clickpad) { ++ int button_bottom; ++ /* Clickpad devices usually the button area at the bottom, and ++ * its size seems ca. 20% of the touchpad height no matter how ++ * large the pad is. ++ */ ++ button_bottom = priv->maxy - (abs(priv->maxy - priv->miny) * 20) / 100; ++ if (button_bottom < b && button_bottom >= t) ++ b = button_bottom; ++ } ++ + /* set the parameters */ + pars->left_edge = xf86SetIntOption(opts, "LeftEdge", l); + pars->right_edge = xf86SetIntOption(opts, "RightEdge", r); +@@ -2153,6 +2165,59 @@ handle_clickfinger(SynapticsParameters *para, struct SynapticsHwState *hw) + } + } + ++/* clickpad event handling */ ++static void ++HandleClickpad(LocalDevicePtr local, struct SynapticsHwState *hw, edge_type edge) ++{ ++ SynapticsPrivate *priv = (SynapticsPrivate *) (local->private); ++ SynapticsParameters *para = &priv->synpara; ++ ++ if (edge & BOTTOM_EDGE) { ++ /* button area */ ++ int width = priv->maxx - priv->minx; ++ int left_button_x, right_button_x; ++ ++ /* left and right clickpad button ranges; ++ * the gap between them is interpreted as a middle-button click ++ */ ++ left_button_x = width * 2 / 5 + priv->minx; ++ right_button_x = width * 3 / 5 + priv->minx; ++ ++ /* clickpad reports only one button, and we need ++ * to fake left/right buttons depending on the touch position ++ */ ++ if (hw->left) { /* clicked? */ ++ hw->left = 0; ++ if (hw->x < left_button_x) ++ hw->left = 1; ++ else if (hw->x > right_button_x) ++ hw->right = 1; ++ else ++ hw->middle = 1; ++ } ++ ++ /* Don't move pointer position in the button area during clicked, ++ * except for horiz/vert scrolling is enabled. ++ * ++ * The synaptics driver tends to be pretty sensitive. This hack ++ * is to avoid that the pointer moves slightly and misses the ++ * poistion you aimed to click. ++ * ++ * Also, when the pointer movement is reported, the dragging ++ * (with a sort of multi-touching) doesn't work well, too. ++ */ ++ if (hw->left || !(para->scroll_edge_horiz || ++ ((edge & RIGHT_EDGE) && para->scroll_edge_vert))) ++ hw->z = 0; /* don't move pointer */ ++ ++ } else if (hw->left) { ++ /* dragging */ ++ hw->left = priv->prev_hw.left; ++ hw->right = priv->prev_hw.right; ++ hw->middle = priv->prev_hw.middle; ++ } ++ priv->prev_hw = *hw; ++} + + /* Update the hardware state in shared memory. This is read-only these days, + * nothing in the driver reads back from SHM. SHM configuration is a thing of the past. +@@ -2344,6 +2409,12 @@ HandleState(LocalDevicePtr local, struct SynapticsHwState *hw) + if (para->touchpad_off == 1) + return delay; + ++ edge = edge_detection(priv, hw->x, hw->y); ++ ++ /* Clickpad handling for button area */ ++ if (priv->is_clickpad) ++ HandleClickpad(local, hw, edge); ++ + inside_active_area = is_inside_active_area(priv, hw->x, hw->y); + + /* now we know that these _coordinates_ aren't in the area. +@@ -2373,7 +2444,6 @@ HandleState(LocalDevicePtr local, struct SynapticsHwState *hw) + + /* no edge or finger detection outside of area */ + if (inside_active_area) { +- edge = edge_detection(priv, hw->x, hw->y); + finger = SynapticsDetectFinger(priv, hw); + } + +diff --git a/src/synapticsstr.h b/src/synapticsstr.h +index 658721c..5e4090e 100644 +--- a/src/synapticsstr.h ++++ b/src/synapticsstr.h +@@ -235,6 +235,8 @@ typedef struct _SynapticsPrivateRec + Bool has_pressure; /* device reports pressure */ + Bool has_width; /* device reports finger width */ + Bool has_scrollbuttons; /* device has physical scrollbuttons */ ++ Bool is_clickpad; /* is Clickpad device (one-button) */ ++ struct SynapticsHwState prev_hw; /* previous h/w state (for clickpad) */ + + enum TouchpadModel model; /* The detected model */ + } SynapticsPrivate; +-- +1.7.2.3 + | ||
[-] [+] | Added | Enabe-tap-whatever-left-button-exists.patch ^ |
@@ -0,0 +1,18 @@ +diff -urN xf86-input-synaptics-1.3.0.orig/src/synaptics.c xf86-input-synaptics-1.3.0/src/synaptics.c +--- xf86-input-synaptics-1.3.0.orig/src/synaptics.c 2010-08-20 09:11:24.000000000 +0800 ++++ xf86-input-synaptics-1.3.0/src/synaptics.c 2011-01-25 12:28:50.000000000 +0800 +@@ -481,10 +481,10 @@ + palmMinWidth = priv->minw + range * (10.0/16); + emulateTwoFingerMinW = priv->minw + range * (7.0/16); + +- /* Enable tap if we don't have a phys left button */ +- tapButton1 = priv->has_left ? 0 : 1; +- tapButton2 = priv->has_left ? 0 : 3; +- tapButton3 = priv->has_left ? 0 : 2; ++ /* Enable tap whatever we have a phys left button */ ++ tapButton1 = 1; ++ tapButton2 = 3; ++ tapButton3 = 2; + + /* Enable multifinger-click if only have one physical button, + otherwise clickFinger is always button 1. */ | ||
[-] [+] | Added | TimeBackwardSetting.patch ^ |
@@ -0,0 +1,31 @@ +From cf5d7f01f5aeb564ca4f076a59a1ba47be188a7d Mon Sep 17 00:00:00 2001 +Message-Id: <cf5d7f01f5aeb564ca4f076a59a1ba47be188a7d.1291794220.git.yan.i.li@intel.com> +From: Yan Li <yan.i.li@intel.com> +Date: Wed, 8 Dec 2010 15:37:46 +0800 +Subject: [PATCH] Fix touchpad lock when time goes backward (BMC#10507) + +Based on Neo Fang's patch. + +Signed-off-by: Yan Li <yan.i.li@intel.com> +--- + tools/syndaemon.c | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + +diff --git a/tools/syndaemon.c b/tools/syndaemon.c +index d06fe5f..e95a435 100644 +--- a/tools/syndaemon.c ++++ b/tools/syndaemon.c +@@ -224,6 +224,10 @@ main_loop(Display *display, double idle_time, int poll_delay) + if (keyboard_activity(display)) + last_activity = current_time; + ++ /* Time may go backward */ ++ if (last_activity > current_time) { ++ last_activity = current_time - idle_time - 1; ++ } + if (current_time > last_activity + idle_time) { /* Enable touchpad */ + toggle_touchpad(True); + } else { /* Disable touchpad */ +-- +1.7.2.3 + | ||
[-] [+] | Added | 10-synaptics.fdi ^ |
@@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<deviceinfo version="0.2"> + <device> + <match key="info.capabilities" contains="input.touchpad"> + <merge key="input.x11_driver" type="string">synaptics</merge> + + <!-- Switch off shared memory to close a security hole --> + <merge key="input.x11_options.SHMConfig" type="string">false</merge> + + <!-- Enable tap-to-click --> + <merge key="input.x11_options.TapButton1" type="string">1</merge> + <!-- Enable double-tap. This seems to be a bug in the synaptics + driver. Supplying 0 to MaxDoubleTapTime results in best + double-tap experience, rather against the manpage. --> + <merge key="input.x11_options.MaxDoubleTapTime" type="string">0</merge> + + <!-- Enable vertical / horizental scrolling when dragging along + the right / bottom edge --> + <merge key="input.x11_options.VertEdgeScroll" type="string">true</merge> + <merge key="input.x11_options.HorizEdgeScroll" type="string">true</merge> + + <match key="/org/freedesktop/Hal/devices/computer:system.hardware.vendor" contains="Acer"> + <match key="/org/freedesktop/Hal/devices/computer:system.hardware.product" prefix="AOA110"> + <merge key="input.x11_options.FingerLow" type="string">9</merge> + <merge key="input.x11_options.FingerHigh" type="string">12</merge> + <merge key="input.x11_options.FingerPress" type="string">69</merge> + </match> + </match> + + <!-- To add custom options for the touchpad, modify the examples below + to suit your needs. The available options are listed in the + "synaptics" man page. After modifyfing this file, you must + restart HAL. Check the output of lshal whether your modifications + have been merged successfully. + + Note: Options must always be type "string". + The following examples enable left, right, middle clicks on + single, double, triple finger tapping, respectively. + + <merge key="input.x11_options.TapButton1" type="string">1</merge> + <merge key="input.x11_options.TapButton2" type="string">3</merge> + <merge key="input.x11_options.TapButton3" type="string">2</merge> + + Enable vertical scrolling when dragging with two fingers + anywhere on the touchpad + <merge key="input.x11_options.VertTwoFingerScroll" type="string">true</merge> + Enable horizontal scrolling when dragging with two fingers + anywhere on the touchpad + <merge key="input.x11_options.HorizTwoFingerScroll" type="string">true</merge> + If on, circular scrolling is used + <merge key="input.x11_options.CircularScrolling" type="string">true</merge> + --> + + </match> + </device> +</deviceinfo> | ||
[-] [+] | Added | 51-synaptics-quirks.conf ^ |
@@ -0,0 +1,44 @@ +Section "InputClass" + Identifier "Lenovo S10-3t quirks" + MatchTag "ideapad_s10_3t" + MatchDevicePath "/dev/input/event*" + Driver "synaptics" + Option "JumpyCursorThreshold" "250" +EndSection + +# Following is from Ubuntu's xserver-xorg-input-synaptics-1.2.2 +# package + +Section "InputClass" + Identifier "Dell Inspiron embedded buttons quirks" + MatchTag "inspiron_1011|inspiron_1012" + MatchDevicePath "/dev/input/event*" + Driver "synaptics" + Option "JumpyCursorThreshold" "90" + Option "AreaBottomEdge" "4100" +EndSection + +Section "InputClass" + Identifier "Dell Inspiron quirks" + MatchTag "inspiron_1120" + MatchDevicePath "/dev/input/event*" + Driver "synaptics" + Option "JumpyCursorThreshold" "250" +EndSection + +Section "InputClass" + Identifier "Dell Inspiron 6400 quirks" + MatchTag "inspiron_6400" + MatchDevicePath "/dev/input/event*" + Driver "synaptics" + Option "LBCornerButton" "1" +EndSection + +Section "InputClass" + Identifier "HP Mininote quirks" + MatchTag "mininote_1000" + MatchDevicePath "/dev/input/event*" + Driver "synaptics" + Option "JumpyCursorThreshold" "20" +EndSection + | ||
[-] [+] | Added | 66-xorg-synaptics.rules ^ |
@@ -0,0 +1,20 @@ +ACTION!="add|change", GOTO="xorg_synaptics_end" +KERNEL!="event*", GOTO="xorg_synaptics_end" + +ENV{ID_INPUT_TOUCHPAD}!="1", GOTO="xorg_synaptics_end" + +# Placeholder for platform specific quirks needing +# ID_INPUT.tags to be set. + +ATTR{[dmi/id]board_vendor}=="LENOVO", ATTR{[dmi/id]product_name}=="20040M18", ENV{ID_INPUT.tags}="ideapad_s10_3t" + +# Following is from Ubuntu's xserver-xorg-input-synaptics-1.2.2 +# package + +ATTR{[dmi/id]product_name}=="Inspiron 1011", ENV{ID_INPUT.tags}="inspiron_1011" +ATTR{[dmi/id]product_name}=="Inspiron 1012", ENV{ID_INPUT.tags}="inspiron_1012" +ATTR{[dmi/id]product_name}=="Inspiron 1120", ENV{ID_INPUT.tags}="inspiron_1120" +ATTR{[dmi/id]product_name}=="Inspiron 6400", ENV{ID_INPUT.tags}="inspiron_6400" +ATTR{[dmi/id]product_name}=="HP MiniNote 1000", ENV{ID_INPUT.tags}="mininote_1000" + +LABEL="xorg_synaptics_end" | ||
Added | xf86-input-synaptics-1.4.0.tar.bz2 ^ | |
[-] [+] | Added | xorg-x11-drv-synaptics.yaml ^ |
@@ -0,0 +1,35 @@ +Name: xorg-x11-drv-synaptics +Summary: Xorg X11 synaptics input driver +Version: 1.4.0 +Release: 1 +Group: System/X Hardware Support +Description: Xorg synaptics input driver +License: MIT +URL: http://www.x.org +Sources: + - http://xorg.freedesktop.org/releases/individual/driver/xf86-input-synaptics-%{version}.tar.bz2 + - 66-xorg-synaptics.rules + - 51-synaptics-quirks.conf + # What should we do for these? + - 10-synaptics.fdi + - Add-new-option-JumpyCursorThreshold.patch + - Clickpad-support.patch + +Patches: + - TimeBackwardSetting.patch + - Enabe-tap-whatever-left-button-exists.patch + +PkgConfigBR: + - x11 + - xorg-server + - xproto + - randrproto + - inputproto + - xextproto + - xi +SubPackages: + - Name: devel + Summary: Development libraries and header files for %{name} + Group: Development/Libraries + Description: | + Development libraries and header files for %{name} |
Comments for request 68 (0)
There's nothing to be done right now
Request History
sage | created request | 1401982149 almost 10 years ago |
fixes |
||
cibot | Request got a new review request | 1363296200 about 11 years ago |
Under automated review |
||
cibot | Request got reviewed | 1363296236 about 11 years ago |
Prechecks succeeded. |
||
cibot | Request got a new review request | 1363296237 about 11 years ago |
Please replace this text with a review and appro [+]Please replace this text with a review and approve/reject the review (not the SR). BOSS will take care of the rest [-] |
||
sage | Request got reviewed | 1363296267 about 11 years ago |
ok |
||
cibot | Request got a new review request | 1363296284 about 11 years ago |
Build trial in progress at https://build.merproj [+]Build trial in progress at https://build.merproject.org/project/monitor?project=nemo:testing:hw:x86:x86-common:Trial:SR68 [-] |
||
cibot | Request got reviewed | 1363297540 about 11 years ago |
Build trial succeeded. |
||
cibot | Request got accepted | 1363297581 about 11 years ago |
BOSS accepted this request because: WARNING che [+]BOSS accepted this request because: WARNING check_package_is_complete_sources (virtualbox) failed: No dsc file found Extra source files: boss.conf, virtualbox.changes_suse. Trial build of packages in nemo:testing:hw:x86:x86-common:Trial:SR68 successful [-] |
||
cibot | Review got accepted | 1401982150 almost 10 years ago |
Prechecks succeeded. |
||
sage | Review got accepted | 1401982150 almost 10 years ago |
ok |
||
cibot | Review got accepted | 1401982150 almost 10 years ago |
Build trial succeeded. |