openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
May 2006
- 1 participants
- 1219 discussions
Hello community,
here is the log from the commit of package f-spot
checked in at Sun May 7 15:56:47 CEST 2006.
--------
--- GNOME/f-spot/f-spot.changes 2006-03-20 18:39:47.000000000 +0100
+++ STABLE/f-spot/f-spot.changes 2006-05-05 22:36:13.000000000 +0200
@@ -1,0 +2,12 @@
+Fri May 5 22:36:00 CEST 2006 - lewing(a)suse.de
+
+- Fix loupe dllimport statements, fixes 168265.
+- Do url escaping ourselves since mono changed. Fixes 172466.
+
+-------------------------------------------------------------------
+Thu May 4 02:51:19 CEST 2006 - lewing(a)suse.de
+
+- Fix 161671 by handling corrupt db files with more grace.
+- Fix spec file to apply patch5
+
+-------------------------------------------------------------------
New:
----
f-spot-dberror.patch
f-spot-loupedll.patch
f-spot-mailtoescape.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ f-spot.spec ++++++
--- /var/tmp/diff_new_pack.MOWXSZ/_old 2006-05-07 15:56:18.000000000 +0200
+++ /var/tmp/diff_new_pack.MOWXSZ/_new 2006-05-07 15:56:18.000000000 +0200
@@ -18,8 +18,9 @@
Group: Productivity/Graphics/Viewers
Autoreqprov: on
Requires: mono-core
+Suggests: dcraw
Version: 0.1.11
-Release: 4
+Release: 14
Summary: GNOME Photo Management Application
URL: http://www.gnome.org/projects/f-spot/
Source: %{name}-%{version}.tar.bz2
@@ -30,6 +31,9 @@
Patch3: %{name}-photography.patch
Patch4: %{name}-configure.patch
Patch5: %{name}-copy.patch
+Patch6: %{name}-dberror.patch
+Patch7: %{name}-loupedll.patch
+Patch8: %{name}-mailtoescape.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Requires: nautilus-cd-burner
@@ -56,6 +60,10 @@
%patch1 -p1
%patch3
%patch4
+%patch5
+%patch6
+%patch7
+%patch8
%build
rename no nb po/no.*
@@ -114,6 +122,12 @@
%endif
%changelog -n f-spot
+* Fri May 05 2006 - lewing(a)suse.de
+- Fix loupe dllimport statements, fixes 168265.
+- Do url escaping ourselves since mono changed. Fixes 172466.
+* Thu May 04 2006 - lewing(a)suse.de
+- Fix 161671 by handling corrupt db files with more grace.
+- Fix spec file to apply patch5
* Mon Mar 20 2006 - lewing(a)suse.de
- Fix import dialog to read the copy option.
- Clean up after the import.
++++++ f-spot-copy.patch ++++++
--- /var/tmp/diff_new_pack.MOWXSZ/_old 2006-05-07 15:56:18.000000000 +0200
+++ /var/tmp/diff_new_pack.MOWXSZ/_new 2006-05-07 15:56:18.000000000 +0200
@@ -1,11 +1,10 @@
-Index: ImportCommand.cs
+Index: src/ImportCommand.cs
===================================================================
RCS file: /cvs/gnome/f-spot/src/ImportCommand.cs,v
retrieving revision 1.59
-retrieving revision 1.60
-diff -u -p -r1.59 -r1.60
---- ImportCommand.cs 13 Mar 2006 05:51:18 -0000 1.59
-+++ ImportCommand.cs 13 Mar 2006 21:30:49 -0000 1.60
+diff -u -p -r1.59 ImportCommand.cs
+--- src/ImportCommand.cs 13 Mar 2006 05:51:18 -0000 1.59
++++ src/ImportCommand.cs 3 May 2006 22:08:50 -0000
@@ -424,11 +424,11 @@ public class ImportCommand : FSpot.Glade
collection.Add (photo);
@@ -30,14 +29,13 @@
bool recurse = true;
if (recurse_check != null)
-Index: FileImportBackend.cs
+Index: src/FileImportBackend.cs
===================================================================
RCS file: /cvs/gnome/f-spot/src/FileImportBackend.cs,v
retrieving revision 1.29
-retrieving revision 1.30
-diff -u -p -r1.29 -r1.30
---- FileImportBackend.cs 13 Mar 2006 03:49:25 -0000 1.29
-+++ FileImportBackend.cs 15 Mar 2006 18:49:04 -0000 1.30
+diff -u -p -r1.29 FileImportBackend.cs
+--- src/FileImportBackend.cs 13 Mar 2006 03:49:25 -0000 1.29
++++ src/FileImportBackend.cs 3 May 2006 22:08:50 -0000
@@ -21,7 +21,8 @@ public class FileImportBackend : ImportB
ArrayList file_paths;
++++++ f-spot-dberror.patch ++++++
Index: src/MainWindow.cs
===================================================================
RCS file: /cvs/gnome/f-spot/src/MainWindow.cs,v
retrieving revision 1.286
diff -u -p -r1.286 MainWindow.cs
--- src/MainWindow.cs 6 Mar 2006 22:13:57 -0000 1.286
+++ src/MainWindow.cs 4 May 2006 00:33:28 -0000
@@ -246,8 +246,15 @@ public class MainWindow {
info_box = new InfoBox ();
info_box.VersionIdChanged += HandleInfoBoxVersionIdChange;
left_vbox.PackStart (info_box, false, true, 0);
+
+ try {
+ query = new FSpot.PhotoQuery (db.Photos);
+ } catch (System.Exception e) {
+ //FIXME assume any exception here is due to a corrupt db and handle that.
+ RestoreDb (e);
+ query = new FSpot.PhotoQuery (db.Photos);
+ }
- query = new FSpot.PhotoQuery (db.Photos);
query.Changed += HandleQueryChanged;
db.Photos.ItemsChanged += HandleDbItemsChanged;
@@ -725,6 +732,20 @@ public class MainWindow {
TagPopup popup = new TagPopup ();
popup.Activate (null, null, tag_selection_widget.TagHighlight);
args.RetVal = true;
+ }
+
+ void RestoreDb (System.Exception e)
+ {
+ string backup = db.Repair ();
+ string short_msg = Mono.Posix.Catalog.GetString ("Error loading database.");
+ string long_msg = Mono.Posix.Catalog.GetString ("F-Spot encountered an error while loading the photo database" +
+ " the old database has be moved to {0} and a new database has been created.");
+
+ HigMessageDialog md = new HigMessageDialog (main_window, DialogFlags.DestroyWithParent,
+ MessageType.Error, ButtonsType.Ok,
+ short_msg, String.Format (long_msg, backup));
+ md.Run ();
+ md.Destroy ();
}
void HandleTagSelectionDragBegin (object sender, DragBeginArgs args)
Index: src/Db.cs
===================================================================
RCS file: /cvs/gnome/f-spot/src/Db.cs,v
retrieving revision 1.17
diff -u -p -r1.17 Db.cs
--- src/Db.cs 9 Mar 2006 05:20:46 -0000 1.17
+++ src/Db.cs 4 May 2006 00:33:28 -0000
@@ -198,6 +198,7 @@ public class Db : IDisposable {
ImportStore import_store;
MetaStore meta_store;
bool empty;
+ string path;
public TagStore Tags {
get { return tag_store; }
@@ -275,10 +276,30 @@ public class Db : IDisposable {
}
}
+ public string Repair ()
+ {
+ string backup_path = path;
+ int i = 0;
+
+ while (File.Exists (backup_path)) {
+ backup_path = String.Format ("{0}-{1}-{2}{3}",
+ Path.GetFileNameWithoutExtension (path),
+ System.DateTime.Now.ToString ("yyyyMMdd"),
+ i++,
+ Path.GetExtension (path));
+ }
+
+ File.Move (path, backup_path);
+ Init (path, true);
+
+ return backup_path;
+ }
+
public void Init (string path, bool create_if_missing)
{
bool new_db = ! File.Exists (path);
string version_string = "";
+ this.path = path;
if (new_db && ! create_if_missing)
throw new Exception (path + ": File not found");
++++++ f-spot-loupedll.patch ++++++
Index: src/Loupe.cs
===================================================================
RCS file: /cvs/gnome/f-spot/src/Loupe.cs,v
retrieving revision 1.20
diff -u -p -r1.20 Loupe.cs
--- src/Loupe.cs 25 Feb 2006 00:00:37 -0000 1.20
+++ src/Loupe.cs 5 May 2006 16:15:50 -0000
@@ -197,16 +197,21 @@ namespace FSpot {
{
base.OnSizeAllocated (allocation);
if (use_shape_ext) {
- Gdk.Pixmap bitmap = new Gdk.Pixmap (GdkWindow,
- allocation.Width,
- allocation.Height, 1);
+ try {
+ Gdk.Pixmap bitmap = new Gdk.Pixmap (GdkWindow,
+ allocation.Width,
+ allocation.Height, 1);
+ Graphics g = CreateDrawable (bitmap);
+ DrawShape (g, allocation.Width, allocation.Height);
+ ((IDisposable)g).Dispose ();
+ ShapeCombineMask (bitmap, 0, 0);
+ bitmap.Dispose ();
+ } catch (System.Exception e) {
+ use_shape_ext = false;
+ }
+ }
- Graphics g = CreateDrawable (bitmap);
- DrawShape (g, allocation.Width, allocation.Height);
- ((IDisposable)g).Dispose ();
- ShapeCombineMask (bitmap, 0, 0);
- bitmap.Dispose ();
- } else {
+ if (! use_shape_ext) {
Realize ();
Graphics g = CreateDrawable (GdkWindow);
DrawShape (g, Allocation.Width, Allocation.Height);
@@ -478,7 +483,7 @@ namespace FSpot {
cairo_user_to_device (g.Handle, ref x, ref y);
}
- [DllImport("libgdk-x11-2.0.so")]
+ [DllImport("libgdk-2.0-0.dll")]
extern static void gdk_cairo_set_source_pixbuf (IntPtr handle,
IntPtr pixbuf,
double pixbuf_x,
@@ -489,7 +494,7 @@ namespace FSpot {
gdk_cairo_set_source_pixbuf (g.Handle, pixbuf.Handle, x, y);
}
- [DllImport("libgdk-x11-2.0.so")]
+ [DllImport("libgdk-2.0-0.dll")]
static extern IntPtr gdk_cairo_create (IntPtr raw);
public static Cairo.Graphics CreateDrawable (Gdk.Drawable drawable)
++++++ f-spot-mailtoescape.patch ++++++
Index: src/MainWindow.cs
===================================================================
RCS file: /cvs/gnome/f-spot/src/MainWindow.cs,v
retrieving revision 1.286.2.1
diff -u -p -r1.286.2.1 MainWindow.cs
--- src/MainWindow.cs 4 May 2006 00:44:33 -0000 1.286.2.1
+++ src/MainWindow.cs 5 May 2006 20:13:00 -0000
@@ -1421,7 +1421,7 @@ public class MainWindow {
StringBuilder url = new StringBuilder ("mailto:?subject=my%20photos");
foreach (Photo p in SelectedPhotos ()) {
- url.Append ("&attach=" + HttpUtility.UrlEncode(p.DefaultVersionPath));
+ url.Append ("&attach=" + UriList.EscapeString (p.DefaultVersionPath, true, true, true));
}
GnomeUtil.UrlShow (main_window, url.ToString ());
}
Index: src/Util.cs
===================================================================
RCS file: /cvs/gnome/f-spot/src/Util.cs,v
retrieving revision 1.22
diff -u -p -r1.22 Util.cs
--- src/Util.cs 24 Feb 2006 18:43:31 -0000 1.22
+++ src/Util.cs 5 May 2006 20:13:00 -0000
@@ -103,6 +103,53 @@ public class UriList : ArrayList {
}
}
+ // NOTE: this was copied from mono's System.Uri where it is protected.
+ public static string EscapeString (string str, bool escapeReserved, bool escapeHex, bool escapeBrackets)
+ {
+ if (str == null)
+ return String.Empty;
+
+ byte [] data = Encoding.UTF8.GetBytes (str);
+ StringBuilder s = new StringBuilder ();
+ int len = data.Length;
+ for (int i = 0; i < len; i++) {
+ char c = (char) data [i];
+ // reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | ","
+ // mark = "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")"
+ // control = <US-ASCII coded characters 00-1F and 7F hexadecimal>
+ // space = <US-ASCII coded character 20 hexadecimal>
+ // delims = "<" | ">" | "#" | "%" | <">
+ // unwise = "{" | "}" | "|" | "\" | "^" | "[" | "]" | "`"
+
+ // check for escape code already placed in str,
+ // i.e. for encoding that follows the pattern
+ // "%hexhex" in a string, where "hex" is a digit from 0-9
+ // or a letter from A-F (case-insensitive).
+ if('%' == c && Uri.IsHexEncoding(str,i))
+ {
+ // if ,yes , copy it as is
+ s.Append(c);
+ s.Append(str[++i]);
+ s.Append(str[++i]);
+ continue;
+ }
+
+ if ((c <= 0x20) || (c >= 0x7f) ||
+ ("<>%\"{}|\\^`".IndexOf (c) != -1) ||
+ (escapeHex && (c == '#')) ||
+ (escapeBrackets && (c == '[' || c == ']')) ||
+ (escapeReserved && (";/?:@&=+$,".IndexOf (c) != -1))) {
+ s.Append (Uri.HexEscape (c));
+ continue;
+ }
+
+
+ s.Append (c);
+ }
+
+ return s.ToString ();
+ }
+
static char[] CharsToQuote = { ';', '?', ':', '@', '&', '=', '$', ',', '#' };
public static Uri PathToFileUri (string path)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
1
0
Hello community,
here is the log from the commit of package evolution-exchange
checked in at Sun May 7 15:56:06 CEST 2006.
--------
--- GNOME/evolution-exchange/evolution-exchange.changes 2006-04-24 13:16:17.000000000 +0200
+++ STABLE/evolution-exchange/evolution-exchange.changes 2006-05-05 12:04:05.000000000 +0200
@@ -1,0 +2,13 @@
+Fri May 5 12:03:01 CEST 2006 - sragavan(a)novell.com
+
+- Fixes (bnc)
+ 168319 - Delete old events when moved.
+ 166990 - Fixes a crash while loading exchange calendars.
+
+-------------------------------------------------------------------
+Fri May 5 06:40:06 CEST 2006 - sragavan(a)novell.com
+
+- Fixes (bnc)
+ 169034- - Fixes the public folder download issue.
+
+-------------------------------------------------------------------
New:
----
bnc-166990-ex-crash-load-cal.diff
bnc-168319-ee-delete-old-event.diff
bnc-169034-ee-pub-folder-download.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ evolution-exchange.spec ++++++
--- /var/tmp/diff_new_pack.rtHYrz/_old 2006-05-07 15:55:52.000000000 +0200
+++ /var/tmp/diff_new_pack.rtHYrz/_new 2006-05-07 15:55:52.000000000 +0200
@@ -19,7 +19,7 @@
Group: Productivity/Networking/Email/Utilities
Autoreqprov: on
Version: 2.6.0
-Release: 16
+Release: 21
Summary: Evolution Connector for Microsoft Exchange Server 2000/2003
Source: ftp://ftp.gnome.org/pub/GNOME/sources/evolution-exchange/2.6/%{name}-%{vers…
Source100: openldap-%{ldap_version}.tar.bz2
@@ -30,6 +30,9 @@
Patch4: bgo-334727-ee-fix-random-hide-event.diff
Patch5: bgo-325960-ee-foldersubscription.diff
Patch6: bnc-330494-ee-show-meeting.diff
+Patch7: bnc-169034-ee-pub-folder-download.diff
+Patch8: bnc-168319-ee-delete-old-event.diff
+Patch9: bnc-166990-ex-crash-load-cal.diff
# paches for linking static against openldap
# on older versions <= 9.1
Patch100: openldap-%{ldap_version}.dif
@@ -111,6 +114,9 @@
%patch4
%patch5
%patch6
+%patch7
+%patch8
+%patch9
%build
%if %suse_version < 920
@@ -193,6 +199,13 @@
%{prefix}/share/gtk-doc/html/*
%changelog -n evolution-exchange
+* Fri May 05 2006 - sragavan(a)novell.com
+- Fixes (bnc)
+ 168319 - Delete old events when moved.
+ 166990 - Fixes a crash while loading exchange calendars.
+* Fri May 05 2006 - sragavan(a)novell.com
+- Fixes (bnc)
+ 169034- - Fixes the public folder download issue.
* Mon Apr 24 2006 - sragavan(a)novell.com
- Fixes (bg0)
330494 - Fix to show attachments in Accepted Meeting.
++++++ bnc-166990-ex-crash-load-cal.diff ++++++
++++ 789 lines (skipped)
++++++ bnc-168319-ee-delete-old-event.diff ++++++
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution-exchange/ChangeLog,v
retrieving revision 1.492
diff -u -p -r1.492 ChangeLog
--- ChangeLog 25 Apr 2006 05:20:37 -0000 1.492
+++ ChangeLog 25 Apr 2006 12:48:04 -0000
@@ -1,3 +1,10 @@
+2006-04-25 Chenthill Palanisamy <pchenthill(a)novell.com>
+
+ Fix #168319
+ * calendar/e-cal-backend-exchange-calendar.c:
+ (modify_object_with_href): Set the old object so
+ that it gets refreshed properly.
+
2006-04-25 Sushma Rai <rsushma(a)novell.com>
* configure.in : Bumped the version to 2.7.1
Index: calendar/e-cal-backend-exchange-calendar.c
===================================================================
RCS file: /cvs/gnome/evolution-exchange/calendar/e-cal-backend-exchange-calendar.c,v
retrieving revision 1.58
diff -u -p -r1.58 e-cal-backend-exchange-calendar.c
--- calendar/e-cal-backend-exchange-calendar.c 21 Apr 2006 09:06:36 -0000 1.58
+++ calendar/e-cal-backend-exchange-calendar.c 25 Apr 2006 12:48:04 -0000
@@ -1246,8 +1246,13 @@ modify_object_with_href (ECalBackendSync
e_cal_component_free_recur_list (rrule_list);
}
+ if (mod == CALOBJ_MOD_ALL && ecomp->icomp) {
+ cached_ecomp = e_cal_component_new ();
+ e_cal_component_set_icalcomponent (cached_ecomp, icalcomponent_new_clone (ecomp->icomp));
+ if (e_cal_component_has_recurrences (real_ecomp))
+ e_cal_component_set_recurid (real_ecomp, NULL);
+ }
-
/* add the timezones information and the component itself
to the VCALENDAR object */
e_cal_component_commit_sequence (real_ecomp);
@@ -1274,7 +1279,7 @@ modify_object_with_href (ECalBackendSync
if (ecomp->icomp && mod == CALOBJ_MOD_THIS) {
icalcomponent_add_component (cbdata->vcal_comp, icalcomponent_new_clone (ecomp->icomp));
}
-
+
for (l = ecomp->instances; l != NULL; l = l->next) {
icalcomponent *icomp = l->data;
++++++ bnc-169034-ee-pub-folder-download.diff ++++++
Index: mail/mail-stub-exchange.c
===================================================================
RCS file: /cvs/gnome/evolution-exchange/mail/mail-stub-exchange.c,v
retrieving revision 1.37
diff -u -p -r1.37 mail-stub-exchange.c
--- mail/mail-stub-exchange.c 17 Apr 2006 13:43:04 -0000 1.37
+++ mail/mail-stub-exchange.c 4 May 2006 07:44:50 -0000
@@ -2716,8 +2716,8 @@ unsubscribe_folder (MailStub *stub, cons
}
g_object_unref (folder);
-
- pub_name = strchr (folder_name, '/');
+
+ pub_name = strrchr (folder_name, '/');
path = g_build_filename ("/favorites", pub_name, NULL);
folder = exchange_account_get_folder (mse->account, path);
if (!folder) {
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
1
0
Hello community,
here is the log from the commit of package evolution-data-server
checked in at Sun May 7 15:55:47 CEST 2006.
--------
--- GNOME/evolution-data-server/evolution-data-server.changes 2006-05-01 23:24:39.000000000 +0200
+++ STABLE/evolution-data-server/evolution-data-server.changes 2006-05-02 21:41:54.000000000 +0200
@@ -1,0 +2,5 @@
+Tue May 2 21:40:52 CEST 2006 - fejj(a)suse.de
+
+- Added bnc-167638.patch: Fixes long shutdown times due to the imap/gw providers trying to sync data at exit time.
+
+-------------------------------------------------------------------
New:
----
bnc-167638.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ evolution-data-server.spec ++++++
--- /var/tmp/diff_new_pack.VnfZW5/_old 2006-05-07 15:55:32.000000000 +0200
+++ /var/tmp/diff_new_pack.VnfZW5/_new 2006-05-07 15:55:32.000000000 +0200
@@ -18,7 +18,7 @@
Autoreqprov: on
Summary: Evolution Data Server
Version: 1.6.0
-Release: 37
+Release: 40
Source: ftp://ftp.gnome.org/pub/gnome/sources/evolution-data-server/1.6/%{name}-%{v…
#Patch3: evolution-data-server-gcc4.patch
Patch5: evolution-data-server-configure.patch
@@ -79,6 +79,7 @@
Patch58: imap4-removal.diff
Patch59: bgo-321797.patch
Patch60: bgo-315976-INBOX-not-shown-when-override-namespace.patch
+Patch61: bnc-167638.patch
Url: http://www.gnome.org
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Requires: libsoup >= 2.2.6 mozilla-nss
@@ -169,6 +170,7 @@
%patch58
%patch59
%patch60
+%patch61
%build
rename no nb po/no.*
@@ -219,6 +221,8 @@
%{prefix}/share/gtk-doc/html/*
%changelog -n evolution-data-server
+* Tue May 02 2006 - fejj(a)suse.de
+- Added bnc-167638.patch: Fixes long shutdown times due to the imap/gw providers trying to sync data at exit time.
* Mon May 01 2006 - fejj(a)suse.de
- Added bgo-315976-INBOX-not-shown-when-override-namespace.patch
* Tue Apr 25 2006 - sragavan(a)novell.com
++++++ bnc-167638.patch ++++++
Index: camel/camel.c
===================================================================
RCS file: /cvs/gnome/evolution-data-server/camel/camel.c,v
retrieving revision 1.56
diff -u -r1.56 camel/camel.c
--- camel/camel.c 6 Dec 2005 04:21:56 -0000 1.56
+++ camel/camel.c 20 Apr 2006 21:12:40 -0000
@@ -44,6 +44,8 @@
static int initialised = FALSE;
+int camel_application_is_exiting = FALSE;
+
static void
camel_shutdown (void)
{
Index: camel/providers/imap/camel-imap-folder.c
===================================================================
RCS file: /cvs/gnome/evolution-data-server/camel/providers/imap/camel-imap-folder.c,v
retrieving revision 1.358
diff -u -r1.358 camel/camel-imap-folder.c
--- camel/providers/imap/camel-imap-folder.c 10 Jan 2006 07:56:47 -0000 1.358
+++ camel/providers/imap/camel-imap-folder.c 20 Apr 2006 21:12:40 -0000
@@ -607,6 +607,7 @@
{
CamelImapFolder *imap_folder = CAMEL_IMAP_FOLDER (folder);
CamelImapStore *store = CAMEL_IMAP_STORE (folder->parent_store);
+ extern int camel_application_is_exiting;
struct {
char *uid;
guint32 flags;
@@ -619,7 +620,10 @@
GArray *removed;
gboolean ok;
CamelFolderChangeInfo *changes = NULL;
-
+
+ if (camel_application_is_exiting)
+ return;
+
CAMEL_SERVICE_ASSERT_LOCKED (store, connect_lock);
imap_folder->need_rescan = FALSE;
@@ -2617,6 +2621,7 @@
GArray *expunged, CamelException *ex)
{
CamelImapFolder *imap_folder = CAMEL_IMAP_FOLDER (folder);
+ extern int camel_application_is_exiting;
CamelFolderChangeInfo *changes;
CamelMessageInfo *info;
int len;
@@ -2646,7 +2651,7 @@
}
len = camel_folder_summary_count (folder->summary);
- if (exists > len)
+ if (exists > len && !camel_application_is_exiting)
imap_update_summary (folder, exists, changes, ex);
if (camel_folder_change_info_changed (changes))
Index: camel/providers/groupwise/camel-groupwise-folder.c
===================================================================
RCS file: /cvs/gnome/evolution-data-server/camel/providers/groupwise/camel-groupwise-folder.c,v
retrieving revision 1.130
diff -u -p -r1.130 camel-groupwise-folder.c
--- camel/providers/groupwise/camel-groupwise-folder.c 18 Apr 2006 15:15:30 -0000 1.130
+++ camel/providers/groupwise/camel-groupwise-folder.c 21 Apr 2006 11:18:22 -0000
@@ -59,7 +59,7 @@
#define ADD_JUNK_ENTRY 1
#define REMOVE_JUNK_ENTRY -1
#define JUNK_FOLDER "Junk Mail"
-#define READ_CURSOR_MAX_IDS 500
+#define READ_CURSOR_MAX_IDS 50
#define MAX_ATTACHMENT_SIZE 1*1024*1024 /*In bytes*/
static CamelOfflineFolderClass *parent_class = NULL;
@@ -749,6 +749,9 @@ struct _folder_update_msg {
static void
update_update (CamelSession *session, CamelSessionThreadMsg *msg)
{
+
+ extern int camel_application_is_exiting;
+
struct _folder_update_msg *m = (struct _folder_update_msg *)msg;
EGwConnectionStatus status;
CamelException *ex = NULL;
@@ -767,7 +770,7 @@ update_update (CamelSession *session, Ca
done = FALSE;
m->slist = NULL;
- while (!done) {
+ while (!done && !camel_application_is_exiting) {
item_list = NULL;
status = e_gw_connection_get_all_mail_uids (m->cnc, m->container_id, cursor, FALSE, READ_CURSOR_MAX_IDS, position, &item_list);
if (status != E_GW_CONNECTION_STATUS_OK) {
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
1
0
Hello community,
here is the log from the commit of package evolution
checked in at Sun May 7 15:55:21 CEST 2006.
--------
--- GNOME/evolution/evolution.changes 2006-05-02 14:48:42.000000000 +0200
+++ STABLE/evolution/evolution.changes 2006-05-02 22:16:28.000000000 +0200
@@ -0,0 +1,7 @@
+-------------------------------------------------------------------
+Tue May 2 22:15:15 CEST 2006 - fejj(a)suse.de
+
+- Added bnc-167638.patch: Fixes the long Evolution quit times when
+ the user tries to close Evolution when it is in the middle of
+ syncing stuff to an IMAP/GW server.
+
New:
----
bnc-167638.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ evolution.spec ++++++
--- /var/tmp/diff_new_pack.PbSCbL/_old 2006-05-07 15:54:56.000000000 +0200
+++ /var/tmp/diff_new_pack.PbSCbL/_new 2006-05-07 15:54:56.000000000 +0200
@@ -21,7 +21,7 @@
Autoreqprov: on
Obsoletes: bonobo-conf
Version: 2.6.0
-Release: 39
+Release: 42
Summary: The Integrated GNOME Mail, Calendar, and Address Book Suite
Source: ftp://ftp.gnome.org/pub/gnome/sources/evolution/2.6/%{name}-%{version}.tar.…
Source1: summerdance-about2.png
@@ -87,6 +87,7 @@
Patch68: bnc-153180-evo-gw-disabled-cal-new-event.diff
Patch69: bnc-339266-evo-folder-size-offline.diff
Patch70: nameselectorlist-enable.diff
+Patch71: bnc-167638.patch
URL: http://gnome.org/projects/evolution/
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: filesystem gconf2 shared-mime-info
@@ -312,55 +313,56 @@
%if %suse_version > 1000
#%patch19 -p1 downgrade to pilot-link 0.11.8 - see #161722
%endif
-%patch20 -p0
-%patch23 -p0
-%patch24 -p0
-%patch25 -p0
-%patch26 -p0
-%patch27 -p0
-#%patch28 -p0
-%patch29 -p0
-%patch30 -p0
-%patch31 -p0
-%patch32 -p0
-%patch33 -p0
-%patch34 -p0
-%patch35 -p0
-%patch36 -p0
-%patch37 -p0
-%patch38 -p0
-%patch39 -p0
-%patch40 -p0
-%patch41 -p0
-%patch42 -p0
-%patch43 -p0
-%patch44 -p0
-%patch45 -p0
-%patch46 -p0
-%patch47 -p0
-%patch48 -p0
-%patch49 -p0
-%patch50 -p0
-%patch51 -p0
-%patch52 -p0
-%patch53 -p0
-%patch54 -p0
-%patch55 -p0
-%patch56 -p0
-%patch57 -p0
-%patch58 -p0
-%patch59 -p0
-%patch60 -p0
-%patch61 -p0
-%patch62 -p0
-%patch63 -p0
-%patch64 -p0
-%patch65 -p0
-%patch66 -p0
-%patch67 -p0
-%patch68 -p0
-%patch69 -p0
-%patch70 -p0
+%patch20
+%patch23
+%patch24
+%patch25
+%patch26
+%patch27
+#%patch28
+%patch29
+%patch30
+%patch31
+%patch32
+%patch33
+%patch34
+%patch35
+%patch36
+%patch37
+%patch38
+%patch39
+%patch40
+%patch41
+%patch42
+%patch43
+%patch44
+%patch45
+%patch46
+%patch47
+%patch48
+%patch49
+%patch50
+%patch51
+%patch52
+%patch53
+%patch54
+%patch55
+%patch56
+%patch57
+%patch58
+%patch59
+%patch60
+%patch61
+%patch62
+%patch63
+%patch64
+%patch65
+%patch66
+%patch67
+%patch68
+%patch69
+%patch70
+%patch71
%build
rename no nb po/no.*
@@ -482,6 +484,10 @@
%{prefix}/share/gnome-pilot/conduits/*.conduit
%changelog -n evolution
+* Tue May 02 2006 - fejj(a)suse.de
+- Added bnc-167638.patch: Fixes the long Evolution quit times when
+ the user tries to close Evolution when it is in the middle of
+ syncing stuff to an IMAP/GW server.
* Tue May 02 2006 - pchenthill(a)novell.com
- Update the patch bnc-158107-no-notification-canceled-mtgs.patch
Fixes https://bugzilla.novell.com/show_bug.cgi?id=171531
++++++ bnc-167638.patch ++++++
Index: mail/mail-component.c
===================================================================
RCS file: /cvs/gnome/evolution/mail/mail-component.c,v
retrieving revision 1.132
diff -u -r1.132 mail/mail-component.c
--- mail/mail-component.c 8 Feb 2006 11:51:32 -0000 1.132
+++ mail/mail-component.c 20 Apr 2006 21:13:55 -0000
@@ -731,9 +731,12 @@
mail_config_prune_proxies ();
switch (mc->priv->quit_state) {
case MC_QUIT_START: {
+ extern int camel_application_is_exiting;
int now = time(NULL)/60/60/24, days;
GConfClient *gconf = mail_config_get_gconf_client();
-
+
+ camel_application_is_exiting = TRUE;
+
mail_vfolder_shutdown();
mc->priv->quit_expunge = gconf_client_get_bool(gconf, "/apps/evolution/mail/trash/empty_on_exit", NULL)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
1
0
Hello community,
here is the log from the commit of package evms
checked in at Sun May 7 15:54:51 CEST 2006.
--------
--- evms/evms.changes 2006-04-26 17:14:00.000000000 +0200
+++ STABLE/evms/evms.changes 2006-05-03 17:01:17.000000000 +0200
@@ -1,0 +2,5 @@
+Wed May 3 16:59:36 CEST 2006 - fehr(a)suse.de
+
+- prevent another warning about misalignment on ia64 (#172039)
+
+-------------------------------------------------------------------
@@ -9 +14 @@
-- prevent warning about misalignment on ia64
+- prevent warning about misalignment on ia64 (#167207)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ evms.spec ++++++
--- /var/tmp/diff_new_pack.QLJ9Cw/_old 2006-05-07 15:54:33.000000000 +0200
+++ /var/tmp/diff_new_pack.QLJ9Cw/_new 2006-05-07 15:54:33.000000000 +0200
@@ -20,7 +20,7 @@
%endif
Autoreqprov: on
Version: 2.5.5
-Release: 19
+Release: 22
Summary: EVMS--Enterprise Volume Management System
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: http://prdownloads.sourceforge.net/evms/evms-%{version}.tar.bz2
@@ -183,10 +183,12 @@
/etc/ha.d/resource.d/evms_failover
%changelog -n evms
+* Wed May 03 2006 - fehr(a)suse.de
+- prevent another warning about misalignment on ia64 (#172039)
* Wed Apr 26 2006 - ghorlacher(a)suse.de
- add md_super_fix.patch for bug #169283
* Thu Apr 20 2006 - fehr(a)suse.de
-- prevent warning about misalignment on ia64
+- prevent warning about misalignment on ia64 (#167207)
* Wed Apr 19 2006 - fehr(a)suse.de
- add evms_raid5.patch.patch to fix bug #167203
- add compaq_naming_gpt.patch to make naming on gpt disk label
++++++ prevent_unaligned_warning.patch ++++++
--- /var/tmp/diff_new_pack.QLJ9Cw/_old 2006-05-07 15:54:33.000000000 +0200
+++ /var/tmp/diff_new_pack.QLJ9Cw/_new 2006-05-07 15:54:33.000000000 +0200
@@ -33,3 +33,24 @@
LOG_PROC_EXIT_INT(rc);
return rc;
+--- engine/option.c
++++ engine/option.c 2006/05/03 14:46:43
+@@ -240,15 +241,15 @@
+ string = engine_alloc(strlen(source) + 1);
+ if (string != NULL) {
+ strcpy(string, source);
+- *target = string;
+ } else {
+- *target = NULL;
+ rc = ENOMEM;
+ }
+
+ } else {
+- *target = NULL;
++ string = NULL;
+ }
++ // *target = string;
++ memcpy( (char*)target, (char*)&string, sizeof(string) );
+
+ LOG_PROC_EXIT_INT(rc);
+ return rc;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
1
0
Hello community,
here is the log from the commit of package drbd
checked in at Sun May 7 15:54:28 CEST 2006.
--------
--- drbd/drbd.changes 2006-04-02 20:01:37.000000000 +0200
+++ STABLE/drbd/drbd.changes 2006-05-04 17:11:43.000000000 +0200
@@ -1,0 +2,18 @@
+Thu May 4 17:10:38 CEST 2006 - lmb(a)suse.de
+
+- Import fixes from 0.7.18:
+- Under high memory pressure it was possible to hit a deadlock on a
+ kmalloc(). Changed the GFP mask, it is no longer possible to deadlock
+ it with memory pressure.
+- With very unlucky network timing during connect DRBD falls into a
+ connect / drop-connection loop, that as soon as DRBD is in this loop
+ is very stable. This is fixed now, DRBD detects this situation an
+ breaks out of it.
+- Fix to the init-script. Now it waits until udev has created the device
+ nodes of _all_ resources.
+- A small fix for the 32bit userland 64bit kernel people, running older
+ kernels.
+- Improved handling of IO errors during initial read in of the activity
+ log.
+
+-------------------------------------------------------------------
Old:
----
drbd-0.7.17.tar.gz
drbd-post-0.7.17.patch
New:
----
drbd-0.7.18.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ drbd.spec ++++++
--- /var/tmp/diff_new_pack.uZQQrh/_old 2006-05-07 15:53:30.000000000 +0200
+++ /var/tmp/diff_new_pack.uZQQrh/_new 2006-05-07 15:53:30.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package drbd (Version 0.7.17)
+# spec file for package drbd (Version 0.7.18)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -12,14 +12,13 @@
Name: drbd
BuildRequires: glib-devel kernel-source kernel-syms
Summary: Distributed Replicated Block Device
-Version: 0.7.17
-Release: 7
+Version: 0.7.18
+Release: 2
Source: %{name}-%{version}.tar.gz
# Source: drbd-SVN.tar.bz2
Source1: drbd-Makefile.module
Source2: drbd-modprobe.d
Patch0: drbd-optflags.patch
-Patch1: drbd-post-0.7.17.patch
Patch2: convert-MODULE_PARM.diff
License: GPL
Group: Productivity/Clustering/HA
@@ -60,7 +59,6 @@
%prep
%setup -n drbd-%{version}
%patch0 -p1
-%patch1 -p2
%patch2 -p1
mkdir source
cp -a drbd/. source/. || :
@@ -141,6 +139,21 @@
%doc scripts/drbd.conf
%changelog -n drbd
+* Thu May 04 2006 - lmb(a)suse.de
+- Import fixes from 0.7.18:
+- Under high memory pressure it was possible to hit a deadlock on a
+ kmalloc(). Changed the GFP mask, it is no longer possible to deadlock
+ it with memory pressure.
+- With very unlucky network timing during connect DRBD falls into a
+ connect / drop-connection loop, that as soon as DRBD is in this loop
+ is very stable. This is fixed now, DRBD detects this situation an
+ breaks out of it.
+- Fix to the init-script. Now it waits until udev has created the device
+ nodes of _all_ resources.
+- A small fix for the 32bit userland 64bit kernel people, running older
+ kernels.
+- Improved handling of IO errors during initial read in of the activity
+ log.
* Sun Apr 02 2006 - agruen(a)suse.de
- convert-MODULE_PARM.diff: Convert from the obsolete MODULE_PARM
to the new module_param.
++++++ drbd-0.7.17.tar.gz -> drbd-0.7.18.tar.gz ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/drbd-0.7.17/.filelist new/drbd-0.7.18/.filelist
--- old/drbd-0.7.17/.filelist 2006-03-06 17:07:21.000000000 +0100
+++ new/drbd-0.7.18/.filelist 2006-05-04 17:08:27.000000000 +0200
@@ -1,122 +1,122 @@
-drbd-0.7.17/upgrade_0.6.x_to_0.7.0.txt
-drbd-0.7.17/ChangeLog
-drbd-0.7.17/scripts/drbd.conf
-drbd-0.7.17/scripts/drbd.gentoo
-drbd-0.7.17/scripts/drbddisk
-drbd-0.7.17/scripts/adjust_drbd_config_h.sh
-drbd-0.7.17/scripts/drbd
-drbd-0.7.17/scripts/Makefile
-drbd-0.7.17/scripts/patch-kernel
-drbd-0.7.17/scripts/README
-drbd-0.7.17/benchmark/dm.c
-drbd-0.7.17/benchmark/report_to_html.pl
-drbd-0.7.17/benchmark/Makefile
-drbd-0.7.17/benchmark/run.sh
-drbd-0.7.17/benchmark/README
-drbd-0.7.17/README
-drbd-0.7.17/INSTALL
-drbd-0.7.17/COPYING
-drbd-0.7.17/drbd.spec.in
-drbd-0.7.17/documentation/drbd.conf.sgml
-drbd-0.7.17/documentation/drbddisk.sgml
-drbd-0.7.17/documentation/drbd.sgml
-drbd-0.7.17/documentation/drbdsetup.sgml
-drbd-0.7.17/documentation/Makefile
-drbd-0.7.17/documentation/Makefile.lang
-drbd-0.7.17/documentation/drbdadm.sgml
-drbd-0.7.17/drbd/drbd_proc.c
-drbd-0.7.17/drbd/drbd_receiver.c
-drbd-0.7.17/drbd/Makefile-2.6
-drbd-0.7.17/drbd/Kconfig
-drbd-0.7.17/drbd/drbd_fs.c
-drbd-0.7.17/drbd/drbd_actlog.c
-drbd-0.7.17/drbd/drbd_worker.c
-drbd-0.7.17/drbd/drbd_compat_wrappers.h
-drbd-0.7.17/drbd/drbd_compat_types.h
-drbd-0.7.17/drbd/drbd_bitmap.c
-drbd-0.7.17/drbd/mempool-2.4.c
-drbd-0.7.17/drbd/mempool.h
-drbd-0.7.17/drbd/linux/drbd.h
-drbd-0.7.17/drbd/linux/drbd_config.h
-drbd-0.7.17/drbd/drbd_sizeof_sanity_check.c
-drbd-0.7.17/drbd/drbd_main.c
-drbd-0.7.17/drbd/drbd_req.c
-drbd-0.7.17/drbd/lru_cache.c
-drbd-0.7.17/drbd/hlist.h
-drbd-0.7.17/drbd/drbd_int.h
-drbd-0.7.17/drbd/lru_cache.h
-drbd-0.7.17/drbd/Makefile
-drbd-0.7.17/drbd/Makefile-2.4
-drbd-0.7.17/upgrade_0.7.0_to_0.7.1.txt
-drbd-0.7.17/testing/uml-2.6.gdbinit
-drbd-0.7.17/testing/ioctl_structs_sizes.c
-drbd-0.7.17/testing/compare.pl
-drbd-0.7.17/testing/test_al.pl
-drbd-0.7.17/testing/uml_profile-USER@HOST
-drbd-0.7.17/testing/access_and_verify.c
-drbd-0.7.17/testing/show_size.c
-drbd-0.7.17/testing/uml-2.4.gdbinit
-drbd-0.7.17/testing/Makefile
-drbd-0.7.17/testing/README
-drbd-0.7.17/testing/write_gc.pl
-drbd-0.7.17/testing/CTH/T-006.sh
-drbd-0.7.17/testing/CTH/LGE_CTH.pm
-drbd-0.7.17/testing/CTH/T-007.sh
-drbd-0.7.17/testing/CTH/functions.sh
-drbd-0.7.17/testing/CTH/uml-minna.conf
-drbd-0.7.17/testing/CTH/CTH_bash.sh
-drbd-0.7.17/testing/CTH/generic_test.pl
-drbd-0.7.17/testing/CTH/tiobench/BUGS
-drbd-0.7.17/testing/CTH/tiobench/tiotest.h
-drbd-0.7.17/testing/CTH/tiobench/tiobench-0.3.3.diff
-drbd-0.7.17/testing/CTH/tiobench/crc32.h
-drbd-0.7.17/testing/CTH/tiobench/TODO
-drbd-0.7.17/testing/CTH/tiobench/tiobench.pl
-drbd-0.7.17/testing/CTH/tiobench/COPYING
-drbd-0.7.17/testing/CTH/tiobench/tiosum.pl
-drbd-0.7.17/testing/CTH/tiobench/tiotest.c
-drbd-0.7.17/testing/CTH/tiobench/crc32.c
-drbd-0.7.17/testing/CTH/tiobench/README
-drbd-0.7.17/testing/CTH/tiobench/Makefile
-drbd-0.7.17/testing/CTH/chipdale.conf
-drbd-0.7.17/testing/CTH/README
-drbd-0.7.17/testing/CTH/CTH_bash.conf
-drbd-0.7.17/testing/CTH/LGE_CTH/FileSystem.pm
-drbd-0.7.17/testing/CTH/LGE_CTH/Node.pm
-drbd-0.7.17/testing/CTH/LGE_CTH/Resource.pm
-drbd-0.7.17/testing/CTH/LGE_CTH/Disk.pm
-drbd-0.7.17/testing/CTH/LGE_CTH/GenericTest.pm
-drbd-0.7.17/testing/CTH/LGE_CTH/Link.pm
-drbd-0.7.17/testing/CTH/LGE_CTH/CRM.pm
-drbd-0.7.17/testing/CTH/LGE_CTH/Component.pm
-drbd-0.7.17/testing/CTH/LGE_CTH/DRBD_Resource.pm
-drbd-0.7.17/testing/CTH/bloodymary.conf
-drbd-0.7.17/testing/CTH/wbtest/wbtest.c
-drbd-0.7.17/testing/CTH/wbtest/README
-drbd-0.7.17/testing/CTH/T-000.sh
-drbd-0.7.17/testing/CTH/T-001.sh
-drbd-0.7.17/testing/CTH/T-002.sh
-drbd-0.7.17/testing/CTH/CTH_bash.helpers
-drbd-0.7.17/testing/CTH/T-003.sh
-drbd-0.7.17/testing/CTH/T-004.sh
-drbd-0.7.17/testing/CTH/bloodymary.sh.conf
-drbd-0.7.17/testing/CTH/T-005.sh
-drbd-0.7.17/testing/read_gc.pl
-drbd-0.7.17/testing/uml-screen-debug
-drbd-0.7.17/Makefile
-drbd-0.7.17/user/drbdadm_parser.y
-drbd-0.7.17/user/drbdadm_main.c
-drbd-0.7.17/user/drbd_limits.h
-drbd-0.7.17/user/drbdadm.h
-drbd-0.7.17/user/drbdadm_scanner.fl
-drbd-0.7.17/user/drbdadm_adjust.c
-drbd-0.7.17/user/drbdsetup.c
-drbd-0.7.17/user/Makefile
-drbd-0.7.17/documentation/drbd.8
-drbd-0.7.17/documentation/drbd.conf.5
-drbd-0.7.17/documentation/drbdsetup.8
-drbd-0.7.17/documentation/drbdadm.8
-drbd-0.7.17/documentation/drbddisk.8
-drbd-0.7.17/drbd_config.h
-drbd-0.7.17/drbd/drbd_buildtag.c
-drbd-0.7.17/.filelist
+drbd-0.7.18/upgrade_0.6.x_to_0.7.0.txt
+drbd-0.7.18/ChangeLog
+drbd-0.7.18/scripts/drbd.conf
+drbd-0.7.18/scripts/drbd.gentoo
+drbd-0.7.18/scripts/drbddisk
+drbd-0.7.18/scripts/adjust_drbd_config_h.sh
+drbd-0.7.18/scripts/drbd
+drbd-0.7.18/scripts/Makefile
+drbd-0.7.18/scripts/patch-kernel
+drbd-0.7.18/scripts/README
+drbd-0.7.18/benchmark/dm.c
+drbd-0.7.18/benchmark/report_to_html.pl
+drbd-0.7.18/benchmark/Makefile
+drbd-0.7.18/benchmark/run.sh
+drbd-0.7.18/benchmark/README
+drbd-0.7.18/README
+drbd-0.7.18/INSTALL
+drbd-0.7.18/COPYING
+drbd-0.7.18/drbd.spec.in
+drbd-0.7.18/documentation/drbd.conf.sgml
+drbd-0.7.18/documentation/drbddisk.sgml
+drbd-0.7.18/documentation/drbd.sgml
+drbd-0.7.18/documentation/drbdsetup.sgml
+drbd-0.7.18/documentation/Makefile
+drbd-0.7.18/documentation/Makefile.lang
+drbd-0.7.18/documentation/drbdadm.sgml
+drbd-0.7.18/drbd/drbd_proc.c
+drbd-0.7.18/drbd/drbd_receiver.c
+drbd-0.7.18/drbd/Makefile-2.6
+drbd-0.7.18/drbd/Kconfig
+drbd-0.7.18/drbd/drbd_fs.c
+drbd-0.7.18/drbd/drbd_actlog.c
+drbd-0.7.18/drbd/drbd_worker.c
+drbd-0.7.18/drbd/drbd_compat_wrappers.h
+drbd-0.7.18/drbd/drbd_compat_types.h
+drbd-0.7.18/drbd/drbd_bitmap.c
+drbd-0.7.18/drbd/mempool-2.4.c
+drbd-0.7.18/drbd/mempool.h
+drbd-0.7.18/drbd/linux/drbd.h
+drbd-0.7.18/drbd/linux/drbd_config.h
+drbd-0.7.18/drbd/drbd_sizeof_sanity_check.c
+drbd-0.7.18/drbd/drbd_main.c
+drbd-0.7.18/drbd/drbd_req.c
+drbd-0.7.18/drbd/lru_cache.c
+drbd-0.7.18/drbd/hlist.h
+drbd-0.7.18/drbd/drbd_int.h
+drbd-0.7.18/drbd/lru_cache.h
+drbd-0.7.18/drbd/Makefile
+drbd-0.7.18/drbd/Makefile-2.4
+drbd-0.7.18/upgrade_0.7.0_to_0.7.1.txt
+drbd-0.7.18/testing/uml-2.6.gdbinit
+drbd-0.7.18/testing/ioctl_structs_sizes.c
+drbd-0.7.18/testing/compare.pl
+drbd-0.7.18/testing/test_al.pl
+drbd-0.7.18/testing/uml_profile-USER@HOST
+drbd-0.7.18/testing/access_and_verify.c
+drbd-0.7.18/testing/show_size.c
+drbd-0.7.18/testing/uml-2.4.gdbinit
+drbd-0.7.18/testing/Makefile
+drbd-0.7.18/testing/README
+drbd-0.7.18/testing/write_gc.pl
+drbd-0.7.18/testing/CTH/T-006.sh
+drbd-0.7.18/testing/CTH/LGE_CTH.pm
+drbd-0.7.18/testing/CTH/T-007.sh
+drbd-0.7.18/testing/CTH/functions.sh
+drbd-0.7.18/testing/CTH/uml-minna.conf
+drbd-0.7.18/testing/CTH/CTH_bash.sh
+drbd-0.7.18/testing/CTH/generic_test.pl
+drbd-0.7.18/testing/CTH/tiobench/BUGS
+drbd-0.7.18/testing/CTH/tiobench/tiotest.h
+drbd-0.7.18/testing/CTH/tiobench/tiobench-0.3.3.diff
+drbd-0.7.18/testing/CTH/tiobench/crc32.h
+drbd-0.7.18/testing/CTH/tiobench/TODO
+drbd-0.7.18/testing/CTH/tiobench/tiobench.pl
+drbd-0.7.18/testing/CTH/tiobench/COPYING
+drbd-0.7.18/testing/CTH/tiobench/tiosum.pl
+drbd-0.7.18/testing/CTH/tiobench/tiotest.c
+drbd-0.7.18/testing/CTH/tiobench/crc32.c
+drbd-0.7.18/testing/CTH/tiobench/README
+drbd-0.7.18/testing/CTH/tiobench/Makefile
+drbd-0.7.18/testing/CTH/chipdale.conf
+drbd-0.7.18/testing/CTH/README
+drbd-0.7.18/testing/CTH/CTH_bash.conf
+drbd-0.7.18/testing/CTH/LGE_CTH/FileSystem.pm
+drbd-0.7.18/testing/CTH/LGE_CTH/Node.pm
+drbd-0.7.18/testing/CTH/LGE_CTH/Resource.pm
+drbd-0.7.18/testing/CTH/LGE_CTH/Disk.pm
+drbd-0.7.18/testing/CTH/LGE_CTH/GenericTest.pm
+drbd-0.7.18/testing/CTH/LGE_CTH/Link.pm
+drbd-0.7.18/testing/CTH/LGE_CTH/CRM.pm
+drbd-0.7.18/testing/CTH/LGE_CTH/Component.pm
+drbd-0.7.18/testing/CTH/LGE_CTH/DRBD_Resource.pm
+drbd-0.7.18/testing/CTH/bloodymary.conf
+drbd-0.7.18/testing/CTH/wbtest/wbtest.c
+drbd-0.7.18/testing/CTH/wbtest/README
+drbd-0.7.18/testing/CTH/T-000.sh
+drbd-0.7.18/testing/CTH/T-001.sh
+drbd-0.7.18/testing/CTH/T-002.sh
+drbd-0.7.18/testing/CTH/CTH_bash.helpers
+drbd-0.7.18/testing/CTH/T-003.sh
+drbd-0.7.18/testing/CTH/T-004.sh
+drbd-0.7.18/testing/CTH/bloodymary.sh.conf
+drbd-0.7.18/testing/CTH/T-005.sh
+drbd-0.7.18/testing/read_gc.pl
+drbd-0.7.18/testing/uml-screen-debug
+drbd-0.7.18/Makefile
+drbd-0.7.18/user/drbdadm_parser.y
+drbd-0.7.18/user/drbdadm_main.c
+drbd-0.7.18/user/drbd_limits.h
+drbd-0.7.18/user/drbdadm.h
+drbd-0.7.18/user/drbdadm_scanner.fl
+drbd-0.7.18/user/drbdadm_adjust.c
+drbd-0.7.18/user/drbdsetup.c
+drbd-0.7.18/user/Makefile
+drbd-0.7.18/documentation/drbd.8
+drbd-0.7.18/documentation/drbd.conf.5
+drbd-0.7.18/documentation/drbdsetup.8
+drbd-0.7.18/documentation/drbdadm.8
+drbd-0.7.18/documentation/drbddisk.8
+drbd-0.7.18/drbd_config.h
+drbd-0.7.18/drbd/drbd_buildtag.c
+drbd-0.7.18/.filelist
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/drbd-0.7.17/ChangeLog new/drbd-0.7.18/ChangeLog
--- old/drbd-0.7.17/ChangeLog 2006-03-06 17:07:09.000000000 +0100
+++ new/drbd-0.7.18/ChangeLog 2006-05-04 17:07:57.000000000 +0200
@@ -4,6 +4,22 @@
Cumulative changes since last tarball.
For even more detail, use "svn log" and "svn diff".
+0.7.18 (api:78/proto:74)
+-----
+ * Under high memory pressure it was possible to hit a deadlock
+ on a kmalloc(). Changed the GFP mask, it is no longer possible to
+ deadlock it with memory pressure.
+ * With very unlucky network timing during connect DRBD falls into
+ a connect / drop-connection loop, that as soon as DRBD is in this
+ loop is very stable. This is fixed now, DRBD detects this situation
+ an breaks out of it.
+ * Fix to the init-script. Now it waits until udev has created
+ the device nodes of _all_ resources.
+ * A small fix for the 32bit userland 64bit kernel people, running
+ older kernels.
+ * Improved handling of IO errors during initial read in of the
+ activity log.
+
0.7.17 (api:77/proto:74)
-----
* There was a bug that could cause the activity log to be not applied
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/drbd-0.7.17/Makefile new/drbd-0.7.18/Makefile
--- old/drbd-0.7.17/Makefile 2005-08-31 10:23:41.000000000 +0200
+++ new/drbd-0.7.18/Makefile 2006-03-27 17:40:08.000000000 +0200
@@ -188,7 +188,7 @@
-e "s/^\(Packager:\).*/\1 $(USER)@$(HOSTNAME)/;" < drbd.spec.in \
> dist/SPECS/drbd.spec ; \
fi
- $(RPMBUILD) -ba \
+ $(RPMBUILD) -bb \
--define "_topdir $(PWD)/dist" \
--define "buildroot $(PWD)/dist/install" \
--define "kernelversion $(KVER)" \
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/drbd-0.7.17/documentation/drbd.8 new/drbd-0.7.18/documentation/drbd.8
--- old/drbd-0.7.17/documentation/drbd.8 2006-03-06 17:07:19.000000000 +0100
+++ new/drbd-0.7.18/documentation/drbd.8 2006-05-04 17:08:25.000000000 +0200
@@ -3,7 +3,7 @@
.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
.\" Please send any bug reports, improvements, comments, patches,
.\" etc. to Steve Cheng <steve(a)ggi-project.org>.
-.TH "DRBD" "8" "06 March 2006" "" ""
+.TH "DRBD" "8" "04 May 2006" "" ""
.SH NAME
/etc/init.d/drbd \- The start and stop script for DRBD
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/drbd-0.7.17/documentation/drbd.conf.5 new/drbd-0.7.18/documentation/drbd.conf.5
--- old/drbd-0.7.17/documentation/drbd.conf.5 2006-03-06 17:07:18.000000000 +0100
+++ new/drbd-0.7.18/documentation/drbd.conf.5 2006-05-04 17:08:24.000000000 +0200
@@ -3,7 +3,7 @@
.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
.\" Please send any bug reports, improvements, comments, patches,
.\" etc. to Steve Cheng <steve(a)ggi-project.org>.
-.TH "DRBD.CONF" "5" "06 March 2006" "" ""
+.TH "DRBD.CONF" "5" "04 May 2006" "" ""
.SH NAME
drbd.conf \- Configuration file for DRBD's devices
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/drbd-0.7.17/documentation/drbdadm.8 new/drbd-0.7.18/documentation/drbdadm.8
--- old/drbd-0.7.17/documentation/drbdadm.8 2006-03-06 17:07:20.000000000 +0100
+++ new/drbd-0.7.18/documentation/drbdadm.8 2006-05-04 17:08:26.000000000 +0200
@@ -3,7 +3,7 @@
.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
.\" Please send any bug reports, improvements, comments, patches,
.\" etc. to Steve Cheng <steve(a)ggi-project.org>.
-.TH "DRBDADM" "8" "06 March 2006" "" ""
+.TH "DRBDADM" "8" "04 May 2006" "" ""
.SH NAME
drbdadm \- Administration tool for DRBD
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/drbd-0.7.17/documentation/drbddisk.8 new/drbd-0.7.18/documentation/drbddisk.8
--- old/drbd-0.7.17/documentation/drbddisk.8 2006-03-06 17:07:21.000000000 +0100
+++ new/drbd-0.7.18/documentation/drbddisk.8 2006-05-04 17:08:26.000000000 +0200
@@ -3,7 +3,7 @@
.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
.\" Please send any bug reports, improvements, comments, patches,
.\" etc. to Steve Cheng <steve(a)ggi-project.org>.
-.TH "DRBDDISK" "8" "06 March 2006" "" ""
+.TH "DRBDDISK" "8" "04 May 2006" "" ""
.SH NAME
/etc/ha.d/resource.d/drbddisk \- Script to mark devices as primary and mount filesystems
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/drbd-0.7.17/documentation/drbdsetup.8 new/drbd-0.7.18/documentation/drbdsetup.8
--- old/drbd-0.7.17/documentation/drbdsetup.8 2006-03-06 17:07:18.000000000 +0100
+++ new/drbd-0.7.18/documentation/drbdsetup.8 2006-05-04 17:08:23.000000000 +0200
@@ -3,7 +3,7 @@
.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
.\" Please send any bug reports, improvements, comments, patches,
.\" etc. to Steve Cheng <steve(a)ggi-project.org>.
-.TH "DRBDSETUP" "8" "06 March 2006" "" ""
+.TH "DRBDSETUP" "8" "04 May 2006" "" ""
.SH NAME
drbdsetup \- Setup tool for DRBD
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/drbd-0.7.17/drbd/drbd_actlog.c new/drbd-0.7.18/drbd/drbd_actlog.c
--- old/drbd-0.7.17/drbd/drbd_actlog.c 2006-03-06 17:07:09.000000000 +0100
+++ new/drbd-0.7.18/drbd/drbd_actlog.c 2006-05-04 17:07:57.000000000 +0200
@@ -64,7 +64,7 @@
STATIC int _drbd_md_sync_page_io(drbd_dev *mdev, struct page *page,
sector_t sector, int rw, int size)
{
- struct bio *bio = bio_alloc(GFP_KERNEL, 1);
+ struct bio *bio = bio_alloc(GFP_NOIO, 1);
struct completion event;
int ok;
@@ -112,7 +112,7 @@
// in case hardsect != 512 [ s390 only? ]
if( hardsect != MD_HARDSECT ) {
if(!mdev->md_io_tmpp) {
- struct page *page = alloc_page(GFP_KERNEL);
+ struct page *page = alloc_page(GFP_NOIO);
if(!page) return 0;
WARN("Meta data's bdev hardsect_size != %d\n",
@@ -368,6 +368,12 @@
return 1;
}
+/**
+ * drbd_al_read_tr: Reads a single transaction record form the
+ * on disk activity log.
+ * Returns -1 on IO error, 0 on checksum error and 1 if it is a valid
+ * record.
+ */
STATIC int drbd_al_read_tr(struct Drbd_Conf *mdev,
struct al_transaction* b,
int index)
@@ -381,7 +387,7 @@
if(!drbd_md_sync_page_io(mdev,sector,READ)) {
drbd_chk_io_error(mdev, 1);
drbd_io_error(mdev);
- return 0;
+ return -1;
}
rv = ( be32_to_cpu(b->magic) == DRBD_MAGIC );
@@ -394,7 +400,12 @@
return rv;
}
-void drbd_al_read_log(struct Drbd_Conf *mdev)
+/**
+ * drbd_al_read_log: Restores the activity log from its on disk
+ * representation. Returns 1 on success, returns 0 when
+ * reading the log failed due to IO errors.
+ */
+int drbd_al_read_log(struct Drbd_Conf *mdev)
{
struct al_transaction* buffer;
int from=-1,to=-1,i,cnr, overflow=0,rv;
@@ -413,7 +424,12 @@
// Find the valid transaction in the log
for(i=0;i<=mx;i++) {
- if(!drbd_al_read_tr(mdev,buffer,i)) continue;
+ rv = drbd_al_read_tr(mdev,buffer,i);
+ if(rv == 0) continue;
+ if(rv == -1) {
+ up(&mdev->md_io_mutex);
+ return 0;
+ }
cnr = be32_to_cpu(buffer->tr_number);
// INFO("index %d valid tnr=%d\n",i,cnr);
@@ -433,7 +449,7 @@
WARN("No usable activity log found.\n");
up(&mdev->md_io_mutex);
- return;
+ return 1;
}
// Read the valid transactions.
@@ -448,7 +464,11 @@
unsigned int trn;
rv = drbd_al_read_tr(mdev,buffer,i);
- ERR_IF(!rv) goto cancel;
+ ERR_IF(rv == 0) goto cancel;
+ if(rv == -1) {
+ up(&mdev->md_io_mutex);
+ return 0;
+ }
trn=be32_to_cpu(buffer->tr_number);
@@ -489,6 +509,8 @@
INFO("Found %d transactions (%d active extents) in activity log.\n",
transactions,active_extents);
+
+ return 1;
}
/**
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/drbd-0.7.17/drbd/drbd_buildtag.c new/drbd-0.7.18/drbd/drbd_buildtag.c
--- old/drbd-0.7.17/drbd/drbd_buildtag.c 2006-03-06 17:07:21.000000000 +0100
+++ new/drbd-0.7.18/drbd/drbd_buildtag.c 2006-05-04 17:08:27.000000000 +0200
@@ -1,6 +1,6 @@
/* automatically generated. DO NOT EDIT. */
const char * drbd_buildtag(void)
{
- return "SVN Revision: 2093"
- " build by lmb@chip, 2006-03-06 17:07:21";
+ return "SVN Revision: 2186"
+ " build by lmb@chip, 2006-05-04 17:08:27";
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/drbd-0.7.17/drbd/drbd_fs.c new/drbd-0.7.18/drbd/drbd_fs.c
--- old/drbd-0.7.17/drbd/drbd_fs.c 2006-03-06 17:07:09.000000000 +0100
+++ new/drbd-0.7.18/drbd/drbd_fs.c 2006-05-04 17:07:57.000000000 +0200
@@ -567,11 +567,20 @@
}
if (md_gc_valid > 0) {
- drbd_al_read_log(mdev);
- if (apply_al) {
+ i = drbd_al_read_log(mdev);
+ if (apply_al && i) {
drbd_al_apply_to_bm(mdev);
drbd_al_to_on_disk_bm(mdev);
}
+ if(!i) {
+ ERR("IO error on meta device while reading AL\n");
+ drbd_free_ll_dev(mdev);
+ set_cstate(mdev,Unconfigured);
+ retcode = MDIOError;
+ module_put(THIS_MODULE);
+ if (put_user(retcode, &arg->ret_code)) return -EFAULT;
+ return -EINVAL;
+ }
} /* else {
FIXME wipe out on disk al!
} */
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/drbd-0.7.17/drbd/drbd_int.h new/drbd-0.7.18/drbd/drbd_int.h
--- old/drbd-0.7.17/drbd/drbd_int.h 2006-03-06 17:07:09.000000000 +0100
+++ new/drbd-0.7.18/drbd/drbd_int.h 2006-05-04 17:07:57.000000000 +0200
@@ -289,21 +289,6 @@
( typecheck(struct Drbd_Conf*,x) && \
((x) ? (((x)->magic ^ DRBD_MAGIC) == (long)(x)):0))
-
-/*
- * GFP_DRBD is used for allocations inside drbd_make_request,
- * and for the sk->allocation scheme.
- *
- * Try to get away with GFP_NOIO, which is
- * in 2.4.x: (__GFP_HIGH | __GFP_WAIT) // HIGH == EMERGENCY, not HIGHMEM!
- * in 2.6.x: (__GFP_WAIT)
- *
- * As far as i can see we do not allocate from interrupt context...
- * if we do, we certainly should fix that.
- * - lge
- */
-#define GFP_DRBD GFP_NOIO
-
/* these defines should go into blkdev.h
(if it will be ever includet into linus' linux) */
#define RQ_DRBD_NOTHING 0x0001
@@ -1090,7 +1075,7 @@
extern void drbd_rs_complete_io(struct Drbd_Conf *mdev, sector_t sector);
extern int drbd_rs_begin_io(struct Drbd_Conf *mdev, sector_t sector);
extern void drbd_rs_cancel_all(drbd_dev* mdev);
-extern void drbd_al_read_log(struct Drbd_Conf *mdev);
+extern int drbd_al_read_log(struct Drbd_Conf *mdev);
extern void __drbd_set_in_sync(drbd_dev* mdev, sector_t sector, int size, const char* file, const unsigned int line);
#define drbd_set_in_sync(mdev,sector,size) \
__drbd_set_in_sync(mdev,sector,size, __FILE__, __LINE__ )
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/drbd-0.7.17/drbd/drbd_main.c new/drbd-0.7.18/drbd/drbd_main.c
--- old/drbd-0.7.17/drbd/drbd_main.c 2005-12-20 14:14:13.000000000 +0100
+++ new/drbd-0.7.18/drbd/drbd_main.c 2006-05-04 17:07:57.000000000 +0200
@@ -245,8 +245,6 @@
barrier_nr_issue++;
- // THINK this is called in the IO path with the send_mutex held
- // and GFP_KERNEL may itself start IO. set it to GFP_NOIO.
b=kmalloc(sizeof(struct drbd_barrier),GFP_NOIO);
if(!b) {
ERR("could not kmalloc() barrier\n");
@@ -322,11 +320,14 @@
sector_t sector;
unsigned int size;
- new_first=kmalloc(sizeof(struct drbd_barrier),GFP_KERNEL);
+ new_first=kmalloc(sizeof(struct drbd_barrier),GFP_NOIO);
if(!new_first) {
ERR("could not kmalloc() barrier\n");
}
+ /* FIXME if indeed we could not kmalloc, this will Oops!
+ * can we somehow just recycle one of the existing barriers?
+ */
INIT_LIST_HEAD(&new_first->requests);
new_first->next=0;
new_first->br_number=4711;
@@ -1541,13 +1542,13 @@
// caches
drbd_request_cache = kmem_cache_create(
"drbd_req_cache", sizeof(drbd_request_t),
- 0, SLAB_NO_REAP, NULL, NULL);
+ 0, 0, NULL, NULL);
if (drbd_request_cache == NULL)
goto Enomem;
drbd_ee_cache = kmem_cache_create(
"drbd_ee_cache", sizeof(struct Tl_epoch_entry),
- 0, SLAB_NO_REAP, NULL, NULL);
+ 0, 0, NULL, NULL);
if (drbd_ee_cache == NULL)
goto Enomem;
@@ -1671,6 +1672,7 @@
unregister_ioctl32_conversion(DRBD_IOCTL_WAIT_CONNECT);
unregister_ioctl32_conversion(DRBD_IOCTL_WAIT_SYNC);
unregister_ioctl32_conversion(DRBD_IOCTL_UNCONFIG_DISK);
+ unregister_ioctl32_conversion(DRBD_IOCTL_SET_STATE_FLAGS);
unlock_kernel();
#endif
#endif
@@ -1909,6 +1911,7 @@
register_ioctl32_conversion(DRBD_IOCTL_WAIT_CONNECT,NULL);
register_ioctl32_conversion(DRBD_IOCTL_WAIT_SYNC,NULL);
register_ioctl32_conversion(DRBD_IOCTL_UNCONFIG_DISK,NULL);
+ register_ioctl32_conversion(DRBD_IOCTL_SET_STATE_FLAGS,NULL);
unlock_kernel();
#endif
#endif
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/drbd-0.7.17/drbd/drbd_receiver.c new/drbd-0.7.18/drbd/drbd_receiver.c
--- old/drbd-0.7.17/drbd/drbd_receiver.c 2006-02-16 16:39:30.000000000 +0100
+++ new/drbd-0.7.18/drbd/drbd_receiver.c 2006-05-04 17:07:57.000000000 +0200
@@ -57,8 +57,8 @@
#define is_syncer_blk(A,B) ((B)==ID_SYNCER)
-#ifdef __arch_um__
-void *to_virt(unsigned long phys)
+#if defined(__arch_um__) && !defined(HAVE_UML_TO_VIRT)
+static inline void *to_virt(unsigned long phys)
{
return((void *) uml_physmem + phys);
}
@@ -161,7 +161,11 @@
{
struct Tl_epoch_entry* e;
- e = kmem_cache_alloc(drbd_ee_cache, mask);
+ /* kmem_cache does not like to mix different memory types.
+ * so even if we alloc'ed the page from HIGHMEM,
+ * the ee comes from normal memory.
+ */
+ e = kmem_cache_alloc(drbd_ee_cache, mask & ~(__GFP_HIGHMEM));
if( e == NULL ) return FALSE;
drbd_ee_init(e,page);
@@ -181,7 +185,12 @@
page=alloc_page(mask);
if(!page) return FALSE;
- if(!_drbd_alloc_ee(mdev,page,GFP_KERNEL)) {
+ /* if we got the page, we really want the ee, too,
+ * even for "GFP_TRY".
+ * we may wait, but better not cause IO,
+ * we might be in the IO path (of our peer).
+ */
+ if(!_drbd_alloc_ee(mdev,page,mask | GFP_NOIO)) {
__free_page(page);
return FALSE;
}
@@ -309,6 +318,11 @@
if( ( mdev->ee_vacant+mdev->ee_in_use) <
mdev->conf.max_buffers ) {
if(drbd_alloc_ee(mdev,GFP_TRY)) {
+ /* race race race
+ * (currently harmless for drbd07, since drbd_get_ee is called by
+ * receiver_thread only. solved with different implementation in
+ * drbd-plus already.)
+ */
spin_lock_irq(&mdev->ee_lock);
break;
}
@@ -328,6 +342,7 @@
finish_wait(&mdev->ee_wait, &wait);
}
+ /* race race race */
le=mdev->free_ee.next;
list_del(le);
mdev->ee_vacant--;
@@ -707,6 +722,10 @@
set_cstate(mdev,WFConnection);
+ /* Break out of unknown connect loops by random wait here. */
+ set_current_state(TASK_INTERRUPTIBLE);
+ schedule_timeout(net_random() % ((mdev->conf.try_connect_int*HZ)/4));
+
while(1) {
sock=drbd_try_connect(mdev);
if(sock) {
@@ -743,10 +762,8 @@
msock->sk->SK_(reuse)=1; /* SO_REUSEADDR */
sock->sk->SK_(reuse)=1; /* SO_REUSEADDR */
- /* to prevent oom deadlock... */
- /* The default allocation priority was GFP_KERNEL */
- sock->sk->SK_(allocation) = GFP_DRBD;
- msock->sk->SK_(allocation) = GFP_DRBD;
+ sock->sk->SK_(allocation) = GFP_NOIO;
+ msock->sk->SK_(allocation) = GFP_NOIO;
sock->sk->SK_(priority)=TC_PRIO_BULK;
NOT_IN_26(sock->sk->tp_pinfo.af_tcp.nonagle=0;)
@@ -1988,10 +2005,10 @@
int rv;
rv = drbd_send_handshake(mdev);
- if (!rv) return 0;
+ if (!rv) goto break_c_loop;
rv = drbd_recv_header(mdev,&p->head);
- if (!rv) return 0;
+ if (!rv) goto break_c_loop;
if (p->head.command == ReportParams) {
ERR("expected HandShake packet, received ReportParams...\n");
@@ -2042,6 +2059,23 @@
}
return 1;
+
+ break_c_loop:
+ WARN( "My msock connect got accepted onto peer's sock!\n");
+ /* In case a tcp connection set-up takes longer than
+ connect-int, we might get into the situation that this
+ node's msock gets connected to the peer's sock!
+
+ To break out of this endless loop behaviour, we need to
+ wait unti the peer's msock connect tries are over. (1 Second)
+
+ Additionally we wait connect-int/2 to hit with our next
+ connect try exactly in the peer's window of expectation. */
+
+ set_current_state(TASK_INTERRUPTIBLE);
+ schedule_timeout(HZ + (mdev->conf.try_connect_int*HZ)/2);
+
+ return 0;
}
int drbdd_init(struct Drbd_thread *thi)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/drbd-0.7.17/drbd/drbd_req.c new/drbd-0.7.18/drbd/drbd_req.c
--- old/drbd-0.7.17/drbd/drbd_req.c 2005-08-31 10:23:41.000000000 +0200
+++ new/drbd-0.7.18/drbd/drbd_req.c 2006-05-04 17:07:57.000000000 +0200
@@ -172,7 +172,6 @@
{
drbd_request_t *req;
int local, remote;
- int target_area_out_of_sync = FALSE; // only relevant for reads
if (unlikely(drbd_did_panic == DRBD_MAGIC)) {
drbd_bio_IO_error(bio);
@@ -226,7 +225,7 @@
/* allocate outside of all locks
*/
- req = mempool_alloc(drbd_request_mempool, GFP_DRBD);
+ req = mempool_alloc(drbd_request_mempool, GFP_NOIO);
if (!req) {
/* only pass the error to the upper layers.
* if user cannot handle io errors, thats not our business.
@@ -340,8 +339,6 @@
dec_ap_pending(mdev);
drbd_end_req(req, RQ_DRBD_SENT, 1, sector);
}
- } else if (target_area_out_of_sync) {
- drbd_read_remote(mdev,req);
} else {
// this node is diskless ...
drbd_read_remote(mdev,req);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/drbd-0.7.17/drbd/linux/drbd.h new/drbd-0.7.18/drbd/linux/drbd.h
--- old/drbd-0.7.17/drbd/linux/drbd.h 2004-11-02 11:09:09.000000000 +0100
+++ new/drbd-0.7.18/drbd/linux/drbd.h 2006-05-04 17:07:57.000000000 +0200
@@ -128,6 +128,7 @@
MDMounted,
LDMDInvalid,
LDDeviceTooLarge,
+ MDIOError
};
struct ioctl_disk_config {
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/drbd-0.7.17/drbd/linux/drbd_config.h new/drbd-0.7.18/drbd/linux/drbd_config.h
--- old/drbd-0.7.17/drbd/linux/drbd_config.h 2006-03-06 17:07:09.000000000 +0100
+++ new/drbd-0.7.18/drbd/linux/drbd_config.h 2006-05-04 17:07:57.000000000 +0200
@@ -22,8 +22,8 @@
extern const char * drbd_buildtag(void);
-#define REL_VERSION "0.7.17"
-#define API_VERSION 77
+#define REL_VERSION "0.7.18"
+#define API_VERSION 78
#define PRO_VERSION 74
//#define DBG_ALL_SYMBOLS // no static functs, improves quality of OOPS traces
@@ -65,4 +65,8 @@
// for troubles.
// #define DRBD_DISABLE_SENDPAGE
+// older, unpached kernel sources do not have it, so we added it in drbd_receiver.c
+// but more recent kernels define it in arch/um/include/mem.h
+#define HAVE_UML_TO_VIRT
+
#endif
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/drbd-0.7.17/drbd/lru_cache.c new/drbd-0.7.18/drbd/lru_cache.c
--- old/drbd-0.7.17/drbd/lru_cache.c 2005-04-13 09:50:10.000000000 +0200
+++ new/drbd-0.7.18/drbd/lru_cache.c 2006-05-04 17:07:57.000000000 +0200
@@ -137,7 +137,7 @@
PARANOIA_ENTRY();
BUG_ON(e->refcnt);
list_del(&e->list);
- hlist_del(&e->colision);
+ hlist_del_init(&e->colision);
e->lc_number = LC_FREE;
e->refcnt = 0;
list_add(&e->list,&lc->free);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/drbd-0.7.17/drbd.spec.in new/drbd-0.7.18/drbd.spec.in
--- old/drbd-0.7.17/drbd.spec.in 2006-03-06 17:07:09.000000000 +0100
+++ new/drbd-0.7.18/drbd.spec.in 2006-05-04 17:07:57.000000000 +0200
@@ -190,6 +190,22 @@
/sbin/depmod -a -F /boot/System.map-%{kernelversion} %{kernelversion} >/dev/null 2>&1 || true
%changelog
+* Mon Apr 26 2006 14:10:07 +0200 Philipp Reisner <phil(a)linbit.com>
+- drbd (0.7.18-1)
+ * Under high memory pressure it was possible to hit a deadlock
+ on a kmalloc(). Changed the GFP mask, it is no longer possible to
+ deadlock it with memory pressure.
+ * With very unlucky network timing during connect DRBD falls into
+ a connect / drop-connection loop, that as soon as DRBD is in this
+ loop is very stable. This is fixed now, DRBD detects this situation
+ an breaks out of it.
+ * Fix to the init-script. Now it waits until udev has created
+ the device nodes of _all_ resources.
+ * A small fix for the 32bit userland 64bit kernel people, running
+ older kernels.
+ * Improved handling of IO errors during initial read in of the
+ activity log.
+
* Mon Mar 6 2006 14:43:41 +0200 Philipp Reisner <phil(a)linbit.com>
- drbd (0.7.17-1)
* There was a bug that could cause the activity log to be not applied
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/drbd-0.7.17/scripts/drbd new/drbd-0.7.18/scripts/drbd
--- old/drbd-0.7.17/scripts/drbd 2005-01-17 12:37:49.000000000 +0100
+++ new/drbd-0.7.18/scripts/drbd 2006-05-04 17:07:57.000000000 +0200
@@ -41,13 +41,14 @@
[ -e /var/run/klogd.pid ] && [ -x /sbin/klogd ] && /sbin/klogd -i
# make sure udev has time to create the device files
- RESOURCE=`$DRBDADM sh-resources` || exit 20
- RESOURCE=${RESOURCE%%\ *}
- DEVICE=`$DRBDADM sh-dev $RESOURCE` || exit 20
-
- while [ ! -e $DEVICE ] && [ $UDEV_TIMEOUT -gt 0 ] ; do
- sleep 1
- UDEV_TIMEOUT=$(( $UDEV_TIMEOUT-1 ))
+ for RESOURCE in `$DRBDADM sh-resources`; do
+ for DEVICE in `$DRBDADM sh-dev $RESOURCE`; do
+ UDEV_TIMEOUT_LOCAL=$UDEV_TIMEOUT
+ while [ ! -e $DEVICE ] && [ $UDEV_TIMEOUT_LOCAL -gt 0 ] ; do
+ sleep 1
+ UDEV_TIMEOUT_LOCAL=$(( $UDEV_TIMEOUT_LOCAL-1 ))
+ done
+ done
done
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/drbd-0.7.17/user/drbdadm_main.c new/drbd-0.7.18/user/drbdadm_main.c
--- old/drbd-0.7.17/user/drbdadm_main.c 2006-02-16 16:39:30.000000000 +0100
+++ new/drbd-0.7.18/user/drbdadm_main.c 2006-03-27 17:40:08.000000000 +0200
@@ -456,10 +456,13 @@
int timeout;
sigaction(SIGALRM,&sa,&so);
alarm_raised=0;
- switch(flags) {
+ switch(flags & 0x0f) {
case SLEEPS_SHORT: timeout = 5; break;
case SLEEPS_LONG: timeout = 120; break;
case SLEEPS_VERY_LONG: timeout = 600; break;
+ default:
+ fprintf(stderr,"%s:%u: oops... flags=%02x\n", __FILE__ , __LINE__ , flags);
+ exit(E_thinko);
}
alarm(timeout);
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/drbd-0.7.17/user/drbdsetup.c new/drbd-0.7.18/user/drbdsetup.c
--- old/drbd-0.7.17/user/drbdsetup.c 2005-08-31 10:23:41.000000000 +0200
+++ new/drbd-0.7.18/user/drbdsetup.c 2006-05-04 17:07:57.000000000 +0200
@@ -651,6 +651,7 @@
[LDNoConfig]="You have to use the disk command first.",
[LDMounted]="Lower device is already mounted.",
[MDMounted]="Meta device is already mounted.",
+ [MDIOError]="IO error on meta device",
[LDMDInvalid]="Lower device / meta device / index combination invalid.",
[LDDeviceTooLarge]="Currently we only support devices up to 3.998TB.\n"
"(up to 2TB in case you do not have CONFIG_LBD set)",
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
1
0
Hello community,
here is the log from the commit of package dhcp
checked in at Sun May 7 15:53:25 CEST 2006.
--------
--- dhcp/dhcp.changes 2006-03-29 15:48:09.000000000 +0200
+++ STABLE/dhcp/dhcp.changes 2006-05-04 23:01:35.000000000 +0200
@@ -1,0 +2,5 @@
+Thu May 4 23:01:10 CEST 2006 - rml(a)suse.de
+
+- Add "-H" flag for setting hostname (Novell major bug #139532)
+
+-------------------------------------------------------------------
New:
----
dhcp-send-hostname-rml.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ dhcp.spec ++++++
--- /var/tmp/diff_new_pack.xajkQq/_old 2006-05-07 15:52:29.000000000 +0200
+++ /var/tmp/diff_new_pack.xajkQq/_new 2006-05-07 15:52:29.000000000 +0200
@@ -16,7 +16,7 @@
Group: Productivity/Networking/Boot/Servers
Autoreqprov: on
Version: 3.0.3
-Release: 15
+Release: 22
Summary: Common Files Used by ISC DHCP Software
URL: http://www.isc.org/isc/dhcp.html
Source: dhcp-%{version}.tar.bz2
@@ -67,6 +67,7 @@
Patch80: dhcp-3.0.2-extended_option_environment.patch
Patch81: dhcp-3.0.3-dhclient-script-dhcdbd.patch
Patch83: dhcp-3.0.3-dhclient-nis-01-thoenig.patch
+Patch84: dhcp-send-hostname-rml.patch
Obsoletes: dhcp-base
Provides: dhcp-base:/usr/bin/omshell
PreReq: /bin/touch /sbin/chkconfig
@@ -198,6 +199,7 @@
%patch80 -p1
%patch81 -p1
%patch83 -p1
+%patch84 -p1
find . -type f -name \*.cat\* -exec rm -f {} \;
cp -p %{S:1} %{S:2} %{S:11} %{S:12} %{S:14} %{S:32} %{S:33} .
for i in README LIESMICH; do
@@ -485,6 +487,8 @@
%doc %{_mandir}/man3/dhcpctl.3.gz
%changelog -n dhcp
+* Thu May 04 2006 - rml(a)suse.de
+- Add "-H" flag for setting hostname (Novell major bug #139532)
* Wed Mar 29 2006 - poeml(a)suse.de
- fix two further include paths in dhcpctl.3 and omapi.3
* Wed Mar 29 2006 - poeml(a)suse.de
++++++ dhcp-send-hostname-rml.patch ++++++
Add -H flag to specify a hostname to send to the DHCP server
client/dhclient.8 | 8 ++++++++
client/dhclient.c | 41 +++++++++++++++++++++++++++++++++++++++--
2 files changed, 47 insertions(+), 2 deletions(-)
diff -urN dhcp-3.0.3/client/dhclient.8 dhcp/client/dhclient.8
--- dhcp-3.0.3/client/dhclient.8 2006-05-04 13:06:38.000000000 -0400
+++ dhcp/client/dhclient.8 2006-05-04 13:08:33.000000000 -0400
@@ -33,6 +33,9 @@
.I port
]
[
+.B -H hostname
+]
+[
.B -d
]
[
@@ -165,6 +168,11 @@
transmit on, the client will also use a different destination port -
one greater than the specified destination port.
.PP
+The
+.B -H
+flag may be used to specify a client hostname that should be sent to
+the DHCP server.
+.PP
The DHCP client normally transmits any protocol messages it sends
before acquiring an IP address to, 255.255.255.255, the IP limited
broadcast address. For debugging purposes, it may be useful to have
diff -urN dhcp-3.0.3/client/dhclient.c dhcp/client/dhclient.c
--- dhcp-3.0.3/client/dhclient.c 2006-05-04 13:06:38.000000000 -0400
+++ dhcp/client/dhclient.c 2006-05-04 13:09:41.000000000 -0400
@@ -104,6 +104,7 @@
int no_dhclient_db = 0;
int no_dhclient_pid = 0;
int no_dhclient_script = 0;
+ char *dhclient_hostname = NULL;
char *s;
/* Make sure we have stdin, stdout and stderr. */
@@ -186,6 +187,15 @@
if (++i == argc)
usage ();
relay = argv [i];
+ } else if (!strcmp (argv [i], "-H")) {
+ if (++i == argc || !argv[i] || *(argv[i]) == '\0')
+ usage ();
+ if (strlen (argv[i]) >= DHCP_OPTION_LEN) {
+ log_error("-H option host-name string \"%s\" is too long:"
+ "maximum length is %d characters", argv[i], DHCP_OPTION_LEN-1);
+ exit(1);
+ }
+ dhclient_hostname = argv [i];
} else if (!strcmp (argv [i], "-nw")) {
nowait = 1;
} else if (!strcmp (argv [i], "-n")) {
@@ -350,6 +360,33 @@
/* Parse the dhclient.conf file. */
read_client_conf ();
+ /* If the user specified a hostname, send it here and now */
+ if ((dhclient_hostname != NULL) && (*dhclient_hostname != '\0') ) {
+ struct parse *cfile = NULL;
+ char buf[DHCP_OPTION_LEN + 40];
+ int len;
+
+ len = sprintf (buf, "send host-name \"%s\";", dhclient_hostname);
+
+ status = new_parse (&cfile, -1, buf, len, "host-name option", 0);
+
+ if (status != ISC_R_SUCCESS)
+ log_fatal ("Cannot parse dhcp-client-identifier send statement!");
+
+ for (;;) {
+ const char *val = NULL;
+ int token;
+
+ token = peek_token (&val, (unsigned *)0, cfile);
+ if (token == END_OF_FILE)
+ break;
+
+ parse_client_statement (cfile, NULL, &top_level_config);
+
+ }
+ end_parse (&cfile);
+ }
+
/* Parse the lease database. */
read_client_leases ();
@@ -487,9 +524,9 @@
log_info (url);
#ifdef EXTENDED_NEW_OPTION_INFO
- log_error ("Usage: dhclient [-1dqr] [-nwx] [-p <port>] %s",
+ log_error ("Usage: dhclient [-1dqr] [-nwx] [-H <hostname>] [-p <port>] %s",
#else
- log_error ("Usage: dhclient [-1dqr] [-nw] [-p <port>] %s",
+ log_error ("Usage: dhclient [-1dqr] [-nw] [-H <hostname>] [-p <port>] %s",
#endif
"[-s server]");
log_error (" [-cf config-file] [-lf lease-file]%s",
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
1
0
Hello community,
here is the log from the commit of package dhcdbd
checked in at Sun May 7 15:52:20 CEST 2006.
--------
--- dhcdbd/dhcdbd.changes 2006-03-28 16:58:55.000000000 +0200
+++ STABLE/dhcdbd/dhcdbd.changes 2006-05-04 23:03:59.000000000 +0200
@@ -1,0 +2,7 @@
+Thu May 4 23:02:48 CEST 2006 - rml(a)suse.de
+
+- Ask dhclient to set the hostname as required by the sysconfig
+ option DHCLIENT_HOSTNAME_OPTION (Novell major bug #139532)
+- Fix possible memory corruption
+
+-------------------------------------------------------------------
New:
----
dhcdbd-1.14-bug-fixes.patch
dhcdbd-set-hostname.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ dhcdbd.spec ++++++
--- /var/tmp/diff_new_pack.ezj9Le/_old 2006-05-07 15:51:24.000000000 +0200
+++ /var/tmp/diff_new_pack.ezj9Le/_new 2006-05-07 15:51:24.000000000 +0200
@@ -14,7 +14,7 @@
BuildRequires: dbus-1-devel
Summary: DHCP D-BUS Daemon
Version: 1.12
-Release: 10
+Release: 17
License: GPL
Group: Productivity/Networking/Boot/Utilities
URL: http://people.redhat.com/~jvdias/dhcdbd
@@ -24,6 +24,8 @@
Patch2: dhcdbd-no-nr_open-rml.patch
Patch3: dhcdbd-dbus-reconnect-thoenig-02.patch
Patch4: dhcdbd-less-verbose-logging-rml.patch
+Patch5: dhcdbd-set-hostname.patch
+Patch6: dhcdbd-1.14-bug-fixes.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Requires: dhcp-client >= 3.0.3 dbus-1 >= 0.60
@@ -44,6 +46,8 @@
%patch2 -p1
%patch3 -p0
%patch4 -p1
+%patch5 -p1
+%patch6 -p1
%build
make CFLAGS="-Wall $RPM_OPT_FLAGS" CC='gcc' LIBDIR=%_lib
@@ -67,6 +71,10 @@
%dir /var/lib/named
%changelog -n dhcdbd
+* Thu May 04 2006 - rml(a)suse.de
+- Ask dhclient to set the hostname as required by the sysconfig
+ option DHCLIENT_HOSTNAME_OPTION (Novell major bug #139532)
+- Fix possible memory corruption
* Tue Mar 28 2006 - rml(a)suse.de
- Log debugging spew less readily (Novell bug #161138)
* Tue Mar 21 2006 - rml(a)suse.de
++++++ dhcdbd-1.14-bug-fixes.patch ++++++
CHANGES | 11 +++++++++++
dhcp_options.c | 4 ++--
dhcp_options.h | 8 ++++----
diff -urN dhcdbd-1.12/CHANGES dhcdbd-1.14/CHANGES
--- dhcdbd-1.12/CHANGES 2006-01-17 16:23:51.000000000 -0500
+++ dhcdbd-1.14/CHANGES 2006-04-20 15:43:43.000000000 -0400
@@ -1,6 +1,17 @@
dhcdbd Change Log
~~~~~~~~~~~~~~~~~
+* Thu Apr 20 2006 Jason Vas Dias <jvdias(a)redhat.com> - 1.14-1.FC5
+- fix bug 189529: prevent potential memory corruption on hex string
+options with single-byte non-ascii values
+- modify dhcp option types to be in line with latest ISC dhcp
+
+* Fri Feb 10 2006 Jesse Keating <jkeating(a)redhat.com> - 1.12-1.FC5.2
+- bump again for double-long bug on ppc(64)
+
+* Tue Feb 07 2006 Jesse Keating <jkeating(a)redhat.com> - 1.12-1.FC5.1
+- rebuilt for new gcc4.1 snapshot and glibc changes
+
* Tue Jan 17 2006 Jason Vas Dias <jvdias(a)redhat.com> 1.12-1
- Cleanup un-exercised code in dbus_service.c, lines 381 & 391
(pointed out by David Binderman<dcb314(a)hotmail.com>)
diff -urN dhcdbd-1.12/dhcp_options.c dhcdbd-1.14/dhcp_options.c
--- dhcdbd-1.12/dhcp_options.c 2006-01-17 16:23:51.000000000 -0500
+++ dhcdbd-1.14/dhcp_options.c 2006-04-20 14:39:57.000000000 -0400
@@ -1267,7 +1267,7 @@
}
return octs;
}
- for(p = (uint8_t*)input; p < (endp-1); p++)
+ for(p = (uint8_t*)input; p < endp; p++)
{
if( (*p < 32) || (*p > 127) )
{
@@ -1555,7 +1555,7 @@
if( vlen <= 0 )
return 0;
for( p = *value, endp = (*value) + vlen;
- p < (endp-1);
+ p < endp;
p++
)
if( (*p < 32) || (*p > 127) )
diff -urN dhcdbd-1.12/dhcp_options.h dhcdbd-1.14/dhcp_options.h
--- dhcdbd-1.12/dhcp_options.h 2006-01-17 16:23:51.000000000 -0500
+++ dhcdbd-1.14/dhcp_options.h 2006-04-20 15:27:24.000000000 -0400
@@ -449,7 +449,7 @@
{ "lpr-servers", "IA", DHC_O_Universe, 9, 0 },
{ "impress-servers", "IA", DHC_O_Universe, 10, 0 },
{ "resource-location-servers", "IA", DHC_O_Universe, 11, 0 },
- { "host-name", "X", DHC_O_Universe, 12, 0 },
+ { "host-name", "t", DHC_O_Universe, 12, 0 },
{ "boot-size", "S", DHC_O_Universe, 13, 0 },
{ "merit-dump", "t", DHC_O_Universe, 14, 0 },
{ "domain-name", "t", DHC_O_Universe, 15, 0 },
@@ -499,7 +499,7 @@
{ "dhcp-rebinding-time", "L", DHC_O_Universe, 59, 0 },
{ "vendor-class-identifier", "X", DHC_O_Universe, 60, 0 },
{ "dhcp-client-identifier", "X", DHC_O_Universe, 61, 0 },
- { "nwip-domain", "X", DHC_O_Universe, 62, 0 },
+ { "nwip-domain", "t", DHC_O_Universe, 62, 0 },
{ "nwip-suboptions", "Enwip.", DHC_O_Universe, 63, 0 },
{ "nisplus-domain", "t", DHC_O_Universe, 64, 0 },
{ "nisplus-servers", "IA", DHC_O_Universe, 65, 0 },
@@ -523,7 +523,7 @@
{ 0L, 0L, 0, 0, 0 },
{ 0L, 0L, 0, 0, 0 },
{ "nds-servers", "IA", DHC_O_Universe, 85, 0 },
- { "nds-tree-name", "X", DHC_O_Universe, 86, 0 },
+ { "nds-tree-name", "t", DHC_O_Universe, 86, 0 },
{ "nds-context", "X", DHC_O_Universe, 87, 0 },
{ 0L, 0L, 0, 0, 0 },
{ 0L, 0L, 0, 0, 0 },
@@ -555,7 +555,7 @@
{ 0L, 0L, 0, 0, 0 },
{ 0L, 0L, 0, 0, 0 },
{ 0L, 0L, 0, 0, 0 },
- { "subnet-selection", "X", DHC_O_Universe, 118, 0 },
+ { "subnet-selection", "I", DHC_O_Universe, 118, 0 },
{ 0L, 0L, 0, 0, 0 },
{ 0L, 0L, 0, 0, 0 },
{ 0L, 0L, 0, 0, 0 },
++++++ dhcdbd-set-hostname.patch ++++++
Makefile | 19 +++--
dhcdbd.c | 47 +++++++++++++-
shvar.c | 200 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
shvar.h | 74 +++++++++++++++++++++++
4 files changed, 328 insertions(+), 12 deletions(-)
diff -urN dhcdbd-1.12/dhcdbd.c dhcdbd/dhcdbd.c
--- dhcdbd-1.12/dhcdbd.c 2006-01-17 16:23:51.000000000 -0500
+++ dhcdbd/dhcdbd.c 2006-05-04 16:07:10.000000000 -0400
@@ -20,9 +20,7 @@
#include "dbus_service.h"
#include "dhcdbd.h"
#include "dhcp_options.h"
-
-#define TRUE 1
-#define FALSE 0
+#include "shvar.h"
typedef
enum dhc_ifs_e
@@ -729,9 +727,10 @@
int dhcdbd_run_dhclient( DHC_IF *d_if )
{
char **dhc_args, **dhc_envp, *xtra_arg=0L;
- uint8_t n_args=12, arg;
+ uint8_t n_args=14, arg;
DHC_IF *rel_if=0L;
int i;
+ shvarFile *file;
sigset_t ss;
pid_t kill_pid=0;
char dhc_if_conf_file[1024];
@@ -911,6 +910,46 @@
return -1;
strcpy(dhc_args[arg], "-q");
+ file = svNewFile ("/etc/sysconfig/network/dhcp");
+ if (file) {
+ char hostname[HOST_NAME_MAX+1];
+ char *buf;
+
+ buf = svGetValue (file, "DHCLIENT_HOSTNAME_OPTION");
+ if (buf && buf[0] != '\0' && buf[0] != '"') {
+ if (!strcmp (buf, "AUTO")) {
+ FILE *f;
+
+ f = fopen ("/etc/HOSTNAME", "r");
+ if (f > 0) {
+ if (fgets (hostname, HOST_NAME_MAX, f)) {
+ size_t len;
+
+ len = strlen (hostname);
+ if (hostname[len-1] == '\n')
+ hostname[len-1] = '\0';
+ } else {
+ fclose (f);
+ goto out;
+ }
+ fclose (f);
+ }
+ } else
+ strncpy (hostname, buf, HOST_NAME_MAX);
+
+ if((dhc_args[++arg] = (char*)malloc( 3 )) == 0L)
+ return -1;
+ strcpy(dhc_args[arg], "-H");
+ if((dhc_args[++arg] = (char*)malloc( strlen (hostname) + 1 )) == 0L)
+ return -1;
+ strcpy(dhc_args[arg], hostname);
+
+out:
+ free (buf);
+ }
+ svCloseFile (file);
+ }
+
if((dhc_args[++arg] = (char*)malloc( 3 )) == 0L)
return -1;
strcpy(dhc_args[arg], "-e");
diff -urN dhcdbd-1.12/Makefile dhcdbd/Makefile
--- dhcdbd-1.12/Makefile 2006-01-17 16:23:51.000000000 -0500
+++ dhcdbd/Makefile 2006-05-04 16:04:17.000000000 -0400
@@ -7,28 +7,31 @@
LDFLAGS ?= -g
DESTDIR ?= /
LIBDIR ?= lib
-DBUS_INCLUDES ?= -I/usr/$(LIBDIR)/dbus-1.0/include -I/usr/include/dbus-1.0
-DBUS_LIBS ?= -ldbus-1
-OBJS = dbus_service.o dhcdbd.o dhcp_options.o main.o
-SRCS = dbus_service.c dhcdbd.c dhcp_options.c main.c
-INCS = dbus_service.h dhcdbd.h dhcp_options.h includes.h
+INCLUDES ?= -I/usr/$(LIBDIR)/dbus-1.0/include -I/usr/include/dbus-1.0 -I/opt/gnome/include/glib-2.0 -I/opt/gnome/lib/glib-2.0/include
+LIBS ?= -ldbus-1 -L/opt/gnome/lib -lglib-2.0
+OBJS = dbus_service.o dhcdbd.o dhcp_options.o main.o shvar.o
+SRCS = dbus_service.c dhcdbd.c dhcp_options.c main.c shvar.c
+INCS = dbus_service.h dhcdbd.h dhcp_options.h includes.h shvar.h
all: dhcdbd tests CHANGES
.c.o:
- ${CC} ${CFLAGS} -c $<
+ ${CC} ${INCLUDES} ${CFLAGS} -c $<
.SUFFIXES: .c .o
dbus_service.o: dbus_service.c dbus_service.h
- $(CC) $(CFLAGS) $(DBUS_INCLUDES) -c dbus_service.c
+ $(CC) $(CFLAGS) $(INCLUDES) -c dbus_service.c
+
+shvar.o: shvar.c shvar.h
+ $(CC) $(CFLAGS) $(INCLUDES) -c shvar.c
dhcdbd.o: $(INCS) dhcdbd.c
dhcp_options.o: dhcp_options.c dhcp_options.h
dhcdbd: $(OBJS) $(SRCS) $(INCS)
- $(LD) $(LDFLAGS) -o $@ $(OBJS) $(DBUS_LIBS)
+ $(LD) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
tests: dhcdbd
(cd tests; make)
diff -urN dhcdbd-1.12/shvar.c dhcdbd/shvar.c
--- dhcdbd-1.12/shvar.c 1969-12-31 19:00:00.000000000 -0500
+++ dhcdbd/shvar.c 2006-05-04 16:03:59.000000000 -0400
@@ -0,0 +1,200 @@
+/*
+ * shvar.c
+ *
+ * Implementation of non-destructively reading/writing files containing
+ * only shell variable declarations and full-line comments.
+ *
+ * Includes explicit inheritance mechanism intended for use with
+ * Red Hat Linux ifcfg-* files. There is no protection against
+ * inheritance loops; they will generally cause stack overflows.
+ * Furthermore, they are only intended for one level of inheritance;
+ * the value setting algorithm assumes this.
+ *
+ * Copyright 1999,2000 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+#include "shvar.h"
+
+/* Open the file <name>, returning a shvarFile on success and NULL on failure.
+ Add a wrinkle to let the caller specify whether or not to create the file
+ (actually, return a structure anyway) if it doesn't exist. */
+static shvarFile *
+svOpenFile(const char *name, gboolean create)
+{
+ shvarFile *s = NULL;
+ int closefd = 0;
+
+ s = g_malloc0(sizeof(shvarFile));
+
+#if 1 /* NetworkManager local change */
+ s->fd = open(name, O_RDONLY); /* NOT O_CREAT */
+ if (s->fd != -1) closefd = 1;
+#else
+ s->fd = open(name, O_RDWR); /* NOT O_CREAT */
+ if (s->fd == -1) {
+ /* try read-only */
+ s->fd = open(name, O_RDONLY); /* NOT O_CREAT */
+ if (s->fd != -1) closefd = 1;
+ }
+#endif
+ s->fileName = g_strdup(name);
+
+ if (s->fd != -1) {
+ struct stat buf;
+ char *p, *q;
+
+ if (fstat(s->fd, &buf) < 0) goto bail;
+ s->arena = g_malloc0(buf.st_size + 1);
+
+ if (read(s->fd, s->arena, buf.st_size) < 0) goto bail;
+
+ /* we'd use g_strsplit() here, but we want a list, not an array */
+ for(p = s->arena; (q = strchr(p, '\n')) != NULL; p = q + 1) {
+ s->lineList = g_list_append(s->lineList, g_strndup(p, q - p));
+ }
+
+ /* closefd is set if we opened the file read-only, so go ahead and
+ close it, because we can't write to it anyway */
+ if (closefd) {
+ close(s->fd);
+ s->fd = -1;
+ }
+
+ return s;
+ }
+
+ if (create) {
+ return s;
+ }
+
+bail:
+ if (s->fd != -1) close(s->fd);
+ if (s->arena) g_free (s->arena);
+ if (s->fileName) g_free (s->fileName);
+ g_free (s);
+ return NULL;
+}
+
+/* Open the file <name>, return shvarFile on success, NULL on failure */
+shvarFile *
+svNewFile(const char *name)
+{
+ return svOpenFile(name, FALSE);
+}
+
+/* Create a new file structure, returning actual data if the file exists,
+ * and a suitable starting point if it doesn't. */
+shvarFile *
+svCreateFile(const char *name)
+{
+ return svOpenFile(name, TRUE);
+}
+
+/* remove escaped characters in place */
+static void
+unescape(char *s) {
+ int len, i;
+
+ len = strlen(s);
+ if ((s[0] == '"' || s[0] == '\'') && s[0] == s[len-1]) {
+ i = len - 2;
+ memmove(s, s+1, i);
+ s[i+1] = '\0';
+ len = i;
+ }
+ for (i = 0; i < len; i++) {
+ if (s[i] == '\\') {
+ memmove(s+i, s+i+1, len-(i+1));
+ len--;
+ }
+ s[len] = '\0';
+ }
+}
+
+
+/* Get the value associated with the key, and leave the current pointer
+ * pointing at the line containing the value. The char* returned MUST
+ * be freed by the caller.
+ */
+char *
+svGetValue(shvarFile *s, const char *key)
+{
+ char *value = NULL;
+ char *line;
+ char *keyString;
+ int len;
+
+ g_assert(s);
+ g_assert(key);
+
+ keyString = g_malloc0(strlen(key) + 2);
+ strcpy(keyString, key);
+ keyString[strlen(key)] = '=';
+ len = strlen(keyString);
+
+ for (s->current = s->lineList; s->current; s->current = s->current->next) {
+ line = s->current->data;
+ if (!strncmp(keyString, line, len)) {
+ value = g_strdup(line + len);
+ unescape(value);
+ break;
+ }
+ }
+ g_free(keyString);
+
+ if (value) {
+ if (value[0]) {
+ return value;
+ } else {
+ g_free(value);
+ return NULL;
+ }
+ }
+ if (s->parent) value = svGetValue(s->parent, key);
+ return value;
+}
+
+/* Close the file descriptor (if open) and delete the shvarFile.
+ * Returns -1 on error and 0 on success.
+ */
+int
+svCloseFile(shvarFile *s)
+{
+
+ g_assert(s);
+
+ if (s->fd != -1) close(s->fd);
+
+ g_free(s->arena);
+ for (s->current = s->freeList; s->current; s->current = s->current->next) {
+ g_free(s->current->data);
+ }
+ g_free(s->fileName);
+ g_list_free(s->freeList);
+ g_list_free(s->lineList); /* implicitly frees s->current */
+ g_free(s);
+ return 0;
+}
diff -urN dhcdbd-1.12/shvar.h dhcdbd/shvar.h
--- dhcdbd-1.12/shvar.h 1969-12-31 19:00:00.000000000 -0500
+++ dhcdbd/shvar.h 2006-05-04 16:02:53.000000000 -0400
@@ -0,0 +1,74 @@
+/*
+ * shvar.h
+ *
+ * Interface for non-destructively reading/writing files containing
+ * only shell variable declarations and full-line comments.
+ *
+ * Includes explicit inheritance mechanism intended for use with
+ * Red Hat Linux ifcfg-* files. There is no protection against
+ * inheritance loops; they will generally cause stack overflows.
+ * Furthermore, they are only intended for one level of inheritance;
+ * the value setting algorithm assumes this.
+ *
+ * Copyright 1999 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+#ifndef _SHVAR_H
+#define _SHVAR_H
+
+#include <glib.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+typedef struct _shvarFile shvarFile;
+struct _shvarFile {
+ char *fileName; /* read-only */
+ int fd; /* read-only */
+ char *arena; /* ignore */
+ GList *lineList; /* read-only */
+ GList *freeList; /* ignore */
+ GList *current; /* set implicitly or explicitly,
+ points to element of lineList */
+ shvarFile *parent; /* set explicitly */
+ int modified; /* ignore */
+};
+
+
+/* Open the file <name>, return shvarFile on success, NULL on failure */
+shvarFile *
+svNewFile(const char *name);
+
+/* Get the value associated with the key, and leave the current pointer
+ * pointing at the line containing the value. The char* returned MUST
+ * be freed by the caller.
+ */
+char *
+svGetValue(shvarFile *s, const char *key);
+
+/* Close the file descriptor (if open) and delete the shvarFile.
+ * Returns -1 on error and 0 on success.
+ */
+int
+svCloseFile(shvarFile *s);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* ! _SHVAR_H */
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
1
0
Hello community,
here is the log from the commit of package control-center2
checked in at Sun May 7 15:50:35 CEST 2006.
--------
--- GNOME/control-center2/control-center2.changes 2006-04-20 22:20:07.000000000 +0200
+++ STABLE/control-center2/control-center2.changes 2006-05-02 13:52:23.000000000 +0200
@@ -1,0 +2,5 @@
+Tue May 2 13:51:42 CEST 2006 - sbrabec(a)suse.cz
+
+- Moved proxy settings from Hardware to System (#167466).
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ control-center2.spec ++++++
--- /var/tmp/diff_new_pack.BlQg3K/_old 2006-05-07 15:50:07.000000000 +0200
+++ /var/tmp/diff_new_pack.BlQg3K/_new 2006-05-07 15:50:07.000000000 +0200
@@ -21,7 +21,7 @@
Obsoletes: fontilus themus acme
Provides: fontilus themus acme
Version: 2.12.2
-Release: 53
+Release: 57
Summary: The GNOME Control Center for the GNOME 2.x Desktop
Source: %{_name}-%{version}.tar.bz2
Source1: control-center-art.tar.bz2
@@ -139,7 +139,7 @@
%suse_update_desktop_file gnome-passwd X-SuSE-ControlCenter-Personal
%suse_update_desktop_file gnome-settings-mouse X-SuSE-ControlCenter-Hardware
%suse_update_desktop_file gnome-settings-sound X-SuSE-ControlCenter-System
-%suse_update_desktop_file gnome-network-preferences X-SuSE-ControlCenter-Hardware
+%suse_update_desktop_file gnome-network-preferences X-SuSE-ControlCenter-System
%suse_update_desktop_file -D "user-guide/user-guide.xml?goscustuserinter-2" gnome-ui-properties X-SuSE-ControlCenter-LookAndFeel
%suse_update_desktop_file gtk-theme-selector X-SuSE-ControlCenter-LookAndFeel
%suse_update_desktop_file keybinding X-SuSE-ControlCenter-Personal
@@ -236,6 +236,8 @@
%{prefix}/share/idl/*.idl
%changelog -n control-center2
+* Tue May 02 2006 - sbrabec(a)suse.cz
+- Moved proxy settings from Hardware to System (#167466).
* Thu Apr 20 2006 - danw(a)suse.de
- Add compiz keybindings to gnome-keybinding-properties. 163208
* Wed Apr 19 2006 - sreeves(a)suse.de
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
1
0
Hello community,
here is the log from the commit of package compiz
checked in at Sun May 7 15:50:01 CEST 2006.
--------
--- compiz/compiz.changes 2006-05-03 00:17:24.000000000 +0200
+++ STABLE/compiz/compiz.changes 2006-05-03 17:04:35.000000000 +0200
@@ -1,0 +2,9 @@
+Wed May 3 16:59:21 CEST 2006 - dreveman(a)suse.de
+
+- Fix unminimize to maximized window. (bnc 171465)
+- When a window is activated, move to cube side that contains the
+ biggest part of the window. (bnc 152677)
+- Don't constrain the cursor when moving and resizing. Fixes some
+ issues with the maximize snap-off feature.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ compiz.spec ++++++
--- /var/tmp/diff_new_pack.XTgmyI/_old 2006-05-07 15:49:30.000000000 +0200
+++ /var/tmp/diff_new_pack.XTgmyI/_new 2006-05-07 15:49:30.000000000 +0200
@@ -18,7 +18,7 @@
Requires: libpng libdrm gconf2 gtk2 gnome-desktop control-center2 libsvg libsvg-cairo libwnck
Autoreqprov: on
Version: cvs_060503
-Release: 1
+Release: 4
Summary: OpenGL window and compositing manager.
BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: %ix86 x86_64 ppc ppc64 ia64
@@ -134,6 +134,12 @@
%changelog -n compiz
* Wed May 03 2006 - dreveman(a)suse.de
+- Fix unminimize to maximized window. (bnc 171465)
+- When a window is activated, move to cube side that contains the
+ biggest part of the window. (bnc 152677)
+- Don't constrain the cursor when moving and resizing. Fixes some
+ issues with the maximize snap-off feature.
+* Wed May 03 2006 - dreveman(a)suse.de
- Fix major window stacking order bug.
- Make sure cube unfolds completely when using the unfold feature.
- Update to final enums for GLX_EXT_texture_from_pixmap.
++++++ compiz-0.0.10.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.10/ChangeLog new/compiz-0.0.10/ChangeLog
--- old/compiz-0.0.10/ChangeLog 2006-05-02 23:25:14.000000000 +0200
+++ new/compiz-0.0.10/ChangeLog 2006-05-03 16:51:44.000000000 +0200
@@ -1,3 +1,20 @@
+2006-05-03 David Reveman <davidr(a)novell.com>
+
+ * plugins/move.c:
+ * plugins/resize.c (resizeHandleMotionEvent): Don't constrain the
+ cursor.
+
+ * plugins/rotate.c (rotateHandleEvent): Use defaultViewportForWindow
+ to figure out which viewport we should move to. (bnc 152677)
+
+ * src/window.c (addWindowSizeChanges): Offset x coordinate with
+ default viewport coordinate. (bnc 171465)
+ (updateWindowAttributes): Always add windows size changes. (bnc 171465)
+
+ * include/compiz.h:
+ * src/window.c (defaultViewportForWindow): Add defaultViewportForWindow
+ function that computes the default viewport for a window.
+
2006-05-02 David Reveman <davidr(a)novell.com>
* plugins/cube.c (cubePaintTransformedScreen): Bump up size a bit more
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.10/include/compiz.h new/compiz-0.0.10/include/compiz.h
--- old/compiz-0.0.10/include/compiz.h 2006-05-02 14:48:49.000000000 +0200
+++ new/compiz-0.0.10/include/compiz.h 2006-05-03 13:55:09.000000000 +0200
@@ -1828,6 +1828,9 @@
void
redirectWindow (CompWindow *w);
+int
+defaultViewportForWindow (CompWindow *w);
+
/* plugin.c */
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.10/plugins/move.c new/compiz-0.0.10/plugins/move.c
--- old/compiz-0.0.10/plugins/move.c 2006-04-29 21:00:39.000000000 +0200
+++ new/compiz-0.0.10/plugins/move.c 2006-05-03 16:41:34.000000000 +0200
@@ -67,6 +67,8 @@
HandleEventProc handleEvent;
CompWindow *w;
+ int x;
+ int y;
KeyCode key[NUM_KEYS];
} MoveDisplay;
@@ -226,6 +228,8 @@
return;
md->w = w;
+ md->x = 0;
+ md->y = 0;
lastPointerX = x;
lastPointerY = y;
@@ -277,28 +281,26 @@
if (ms->grabIndex)
{
CompWindow *w;
- int pointerDx, pointerDy, dx, dy, wx, wy;
- Bool move = TRUE;
- Bool warp = TRUE;
+ int dx, dy;
MOVE_DISPLAY (s->display);
w = md->w;
- pointerDx = xRoot - lastPointerX;
- pointerDy = yRoot - lastPointerY;
+ md->x += xRoot - lastPointerX;
+ md->y += yRoot - lastPointerY;
if (w->type & CompWindowTypeFullscreenMask)
{
- wx = wy = dx = dy = 0;
+ dx = dy = 0;
}
else
{
unsigned int state = w->state;
int min, max;
- wx = dx = pointerDx;
- wy = dy = pointerDy;
+ dx = md->x;
+ dy = md->y;
if (ms->opt[MOVE_SCREEN_OPTION_CONSTRAIN_Y].value.b)
{
@@ -309,17 +311,12 @@
dy = min - w->attrib.y;
else if (w->attrib.y + dy > max)
dy = max - w->attrib.y;
-
- wy = dy;
}
if (ms->opt[MOVE_SCREEN_OPTION_SNAPOFF_MAXIMIZED].value.b)
{
- if ((w->state & CompWindowStateMaximizedVertMask) &&
- (w->state & CompWindowStateMaximizedHorzMask))
+ if (w->state & CompWindowStateMaximizedVertMask)
{
- warp = FALSE;
-
if (yRoot - ms->snapOffY >= SNAP_OFF)
{
w->saveMask |= CWX | CWY;
@@ -327,11 +324,13 @@
w->saveWc.x = xRoot - (w->saveWc.width >> 1);
w->saveWc.y = yRoot + (w->input.top >> 1);
- move = FALSE;
+ md->x = md->y = 0;
unmaximizeWindow (w);
ms->snapOffY = ms->snapBackY;
+
+ return;
}
}
else if ((ms->origState & CompWindowStateMaximizedVertMask) &&
@@ -341,16 +340,16 @@
{
if (!otherScreenGrabExist (s, "move", 0))
{
+ int wy;
+
maximizeWindow (w);
wy = s->workArea.y + (w->input.top >> 1);
wy += w->sizeHints.height_inc >> 1;
- wy -= lastPointerY;
- if (wy > 0)
- wy = 0;
+ warpPointer (s->display, 0, wy - pointerY);
- move = FALSE;
+ return;
}
}
}
@@ -362,13 +361,10 @@
max = s->workArea.y + s->workArea.height -
w->input.bottom - w->height;
- if (w->attrib.y + pointerDy < min)
+ if (w->attrib.y + dy < min)
dy = min - w->attrib.y;
- else if (w->attrib.y + pointerDy > max)
+ else if (w->attrib.y + dy > max)
dy = max - w->attrib.y;
-
- if (warp)
- wy = dy;
}
if (state & CompWindowStateMaximizedHorzMask)
@@ -380,23 +376,17 @@
max = s->workArea.x + s->workArea.width -
w->input.right - w->width;
- if (w->attrib.x + pointerDx < min)
+ if (w->attrib.x + dx < min)
dx = min - w->attrib.x;
- else if (w->attrib.x + pointerDx > max)
+ else if (w->attrib.x + dx > max)
dx = max - w->attrib.x;
-
- if (warp)
- wx = dx;
}
}
- if (move)
- moveWindow (md->w, dx, dy, TRUE, FALSE);
+ moveWindow (md->w, dx, dy, TRUE, FALSE);
- if (wx != pointerDx || wy != pointerDy)
- warpPointer (s->display,
- (lastPointerX + wx) - pointerX,
- (lastPointerY + wy) - pointerY);
+ md->x -= dx;
+ md->y -= dy;
}
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.10/plugins/resize.c new/compiz-0.0.10/plugins/resize.c
--- old/compiz-0.0.10/plugins/resize.c 2006-04-30 05:15:30.000000000 +0200
+++ new/compiz-0.0.10/plugins/resize.c 2006-05-03 16:43:50.000000000 +0200
@@ -409,7 +409,7 @@
if (pointerDx || pointerDy)
{
- int w, h, dx, dy;
+ int w, h;
w = rd->width;
h = rd->height;
@@ -426,29 +426,10 @@
resizeConstrainMinMax (rd->w, w, h, &w, &h);
- if (rd->mask & ResizeLeftMask)
- dx = rd->width - w;
- else if (rd->mask & ResizeRightMask)
- dx = w - rd->width;
- else
- dx = 0;
-
- if (rd->mask & ResizeUpMask)
- dy = rd->height - h;
- else if (rd->mask & ResizeDownMask)
- dy = h - rd->height;
- else
- dy = 0;
-
rd->width = w;
rd->height = h;
resizeUpdateWindowSize (s->display);
-
- if (dx != pointerDx || dy != pointerDy)
- warpPointer (s->display,
- (lastPointerX + dx) - pointerX,
- (lastPointerY + dy) - pointerY);
}
}
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.10/plugins/rotate.c new/compiz-0.0.10/plugins/rotate.c
--- old/compiz-0.0.10/plugins/rotate.c 2006-04-30 02:29:06.000000000 +0200
+++ new/compiz-0.0.10/plugins/rotate.c 2006-05-03 14:47:06.000000000 +0200
@@ -1177,6 +1177,8 @@
w = findWindowAtDisplay (d, event->xclient.window);
if (w)
{
+ int dx;
+
ROTATE_SCREEN (w->screen);
s = w->screen;
@@ -1188,20 +1190,16 @@
rs->moving = FALSE;
rs->moveTo = 0.0f;
- if (w->attrib.x >= s->width || w->attrib.x + w->width <= 0)
+ dx = defaultViewportForWindow (w) - s->x;
+ if (dx)
{
Window win;
- int i, x, y, dx;
+ int i, x, y;
unsigned int ui;
XQueryPointer (d->display, s->root,
&win, &win, &x, &y, &i, &i, &ui);
- if (w->attrib.x >= s->width)
- dx = w->attrib.x / s->width;
- else
- dx = ((w->attrib.x + w->width) / s->width) - 1;
-
if (dx > (s->size + 1) / 2)
dx -= s->size;
else if (dx < -(s->size + 1) / 2)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.10/src/window.c new/compiz-0.0.10/src/window.c
--- old/compiz-0.0.10/src/window.c 2006-05-02 15:50:45.000000000 +0200
+++ new/compiz-0.0.10/src/window.c 2006-05-03 14:24:27.000000000 +0200
@@ -2747,12 +2747,13 @@
XWindowChanges *xwc)
{
int mask = 0;
+ int x;
+
+ x = (defaultViewportForWindow (w) - w->screen->x) * w->screen->width;
if (w->type & CompWindowTypeFullscreenMask)
{
- saveWindowGeometry (w,
- CWX | CWY | CWWidth | CWHeight |
- CWBorderWidth);
+ saveWindowGeometry (w, CWX | CWY | CWWidth | CWHeight | CWBorderWidth);
xwc->width = w->screen->width;
xwc->height = w->screen->height;
@@ -2797,7 +2798,7 @@
{
if (w->type & CompWindowTypeFullscreenMask)
{
- xwc->x = 0;
+ xwc->x = x;
xwc->y = 0;
mask |= CWX | CWY;
@@ -2842,16 +2843,16 @@
if (w->state & CompWindowStateMaximizedHorzMask)
{
- if (w->attrib.x < w->screen->workArea.x + w->input.left)
+ if (w->attrib.x < x + w->screen->workArea.x + w->input.left)
{
- xwc->x = w->screen->workArea.x + w->input.left;
+ xwc->x = x + w->screen->workArea.x + w->input.left;
mask |= CWX;
}
else
{
width = xwc->width + w->attrib.border_width * 2;
- max = w->screen->workArea.x + w->screen->workArea.width;
+ max = x + w->screen->workArea.x + w->screen->workArea.width;
if (w->attrib.x + width + w->input.right > max)
{
xwc->x = max - width - w->input.right;
@@ -3008,13 +3009,8 @@
if (w->state & CompWindowStateHiddenMask)
return;
- mask = addWindowStackChanges (w, &xwc, findSiblingBelow (w, aboveFs));
-
- /* only update fullscreen and maximized size if window is visible on
- current viewport. Size is updated once we switch to the windows
- viewport. */
- if (w->attrib.x < w->screen->width && w->attrib.x + w->width > 0)
- mask |= addWindowSizeChanges (w, &xwc);
+ mask = addWindowStackChanges (w, &xwc, findSiblingBelow (w, aboveFs));
+ mask |= addWindowSizeChanges (w, &xwc);
if (!mask)
return;
@@ -3504,3 +3500,25 @@
w->redirected = TRUE;
w->screen->overlayWindowCount--;
}
+
+/* Returns the current viewport for a window. If the window spans more than
+ one viewport the most appropriate viewport is returned. How the most
+ appropriate viewport is computed can be made optional if necessary. It is
+ currently computed as the viewport where the center of the window is
+ located, except for when the window is visible in the current viewport as
+ the current viewport is then always returned. */
+int
+defaultViewportForWindow (CompWindow *w)
+{
+ CompScreen *s = w->screen;
+ int x;
+
+ if (w->attrib.x < s->width && w->attrib.x + w->width > 0)
+ return s->x;
+
+ x = w->attrib.x + (w->width >> 1);
+ if (x < 0)
+ return s->x + ((x / s->width) - 1) % s->size;
+ else
+ return s->x + (x / s->width) % s->size;
+}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
1
0