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
February 2009
- 1 participants
- 1117 discussions
Hello community,
here is the log from the commit of package sarg for openSUSE:Factory
checked in at Wed Feb 4 00:27:53 CET 2009.
--------
--- sarg/sarg.changes 2008-09-09 11:47:34.000000000 +0200
+++ sarg/sarg.changes 2009-02-03 11:58:20.619301000 +0100
@@ -1,0 +2,7 @@
+Tue Feb 3 11:57:14 CET 2009 - kssingvo(a)suse.de
+
+- purified specfile
+- added manpage for sarg-report
+- fixed wrong permissions of various files
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
New:
----
sarg-reports.1.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ sarg.spec ++++++
--- /var/tmp/diff_new_pack.E10867/_old 2009-02-04 00:27:24.000000000 +0100
+++ /var/tmp/diff_new_pack.E10867/_new 2009-02-04 00:27:24.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package sarg (Version 2.2.5)
#
-# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -21,7 +21,7 @@
Name: sarg
Summary: Squid Analysis Report Generator
Version: 2.2.5
-Release: 43
+Release: 46
License: GPL v2 or later
Url: http://sarg.sourceforge.net/sarg.php
Group: Productivity/Networking/Web/Utilities
@@ -39,6 +39,7 @@
Source5: cron.daily.sarg
Source6: cron.weekly.sarg
Source7: cron.monthly.sarg
+Source8: sarg-reports.1.gz
# Patch0: http://sarg.sourceforge.net/sarg-2.0.1-largeurl.patch.gz
Patch0: sarg-2.2.3.1-config.patch
Patch1: sarg-2.2.3.1-description.patch
@@ -128,7 +129,6 @@
# ---------------------------------------------------------------------------
%install
-[ "$RPM_BUILD_ROOT" != "" ] && [ -d $RPM_BUILD_ROOT ] && rm -rf $RPM_BUILD_ROOT;
mkdir -p $RPM_BUILD_ROOT/%{_bindir}
mkdir -p $RPM_BUILD_ROOT/%{_datadir}
mkdir -p $RPM_BUILD_ROOT/etc
@@ -142,6 +142,9 @@
ln -sf ../../../etc/sarg.conf $RPM_BUILD_ROOT/%{_datadir}/%{name}/sarg.conf
chmod a-x CONTRIBUTORS COPYING ChangeLog DONATIONS LICENSE README
chmod a-x $RPM_BUILD_ROOT/%{_mandir}/man1/*
+chmod a-x $RPM_BUILD_ROOT/%{_datadir}/%{name}/%{name}-php/locale/*/LC_MESSAGES/*
+# might be temporary, please remove in next version:
+rm $RPM_BUILD_ROOT/%{_datadir}/%{name}/languages/.new
mkdir -p $RPM_BUILD_ROOT/%{_sbindir}
install -m 755 %SOURCE2 $RPM_BUILD_ROOT/%{_sbindir}
install -m 644 %SOURCE3 $RPM_BUILD_ROOT/%{_datadir}/%{name}/sarg.hosts
@@ -153,6 +156,8 @@
install -m 755 %{SOURCE6} $RPM_BUILD_ROOT/etc/cron.weekly/suse.de-sarg
mkdir -p $RPM_BUILD_ROOT/etc/cron.monthly
install -m 755 %{SOURCE7} $RPM_BUILD_ROOT/etc/cron.monthly/suse.de-sarg
+install -d -m755 $RPM_BUILD_ROOT/%{_mandir}/man8
+install -m644 %{SOURCE8} $RPM_BUILD_ROOT/%{_mandir}/man8
# ---------------------------------------------------------------------------
%clean
@@ -179,10 +184,15 @@
%{_datadir}/%{name}/sarg.hosts
%{_datadir}/%{name}/user_limit_block
/var/adm/fillup-templates/sysconfig.sarg
-%doc %{_mandir}/man1/sarg*
+%doc %{_mandir}/man1/%{name}*
+%doc %{_mandir}/man8/%{name}-report*
%doc CONTRIBUTORS COPYING ChangeLog DONATIONS LICENSE README
%changelog
+* Tue Feb 03 2009 kssingvo(a)suse.de
+- purified specfile
+- added manpage for sarg-report
+- fixed wrong permissions of various files
* Tue Sep 09 2008 kssingvo(a)suse.de
- fix for buffer check assertion in make_index (bnc#416077)
* Thu Apr 24 2008 kssingvo(a)suse.de
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package perl-CDDB_get for openSUSE:Factory
checked in at Wed Feb 4 00:25:35 CET 2009.
--------
--- perl-CDDB_get/perl-CDDB_get.changes 2006-01-25 21:39:29.000000000 +0100
+++ perl-CDDB_get/perl-CDDB_get.changes 2009-02-03 14:24:02.884528000 +0100
@@ -1,0 +2,6 @@
+Tue Feb 3 14:23:44 CET 2009 - kssingvo(a)suse.de
+
+- added manpage
+- 'make test' now in separate %check section
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
New:
----
cddb.pl.1.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-CDDB_get.spec ++++++
--- /var/tmp/diff_new_pack.x25106/_old 2009-02-04 00:22:44.000000000 +0100
+++ /var/tmp/diff_new_pack.x25106/_new 2009-02-04 00:22:44.000000000 +0100
@@ -1,10 +1,17 @@
#
# spec file for package perl-CDDB_get (Version 2.27)
#
-# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
+# All modifications and additions to the file contributed by third parties
+# remain the property of their copyright owners, unless otherwise agreed
+# upon. The license for this file, and modifications and additions to the
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# license that conforms to the Open Source Definition (Version 1.9)
+# published by the Open Source Initiative.
+
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
@@ -13,7 +20,7 @@
Name: perl-CDDB_get
Version: 2.27
-Release: 92
+Release: 135
Requires: perl = %perl_version
AutoReqProv: on
Group: Development/Libraries/Perl
@@ -21,6 +28,7 @@
Url: http://armin.emx.at/cddb/
Summary: Read the CDDB entry for an audio CD in your drive
Source: CDDB_get-%version.tar.bz2
+Source1: cddb.pl.1.gz
Patch: %name-2.23-tmpfile.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -42,11 +50,15 @@
%build
perl Makefile.PL
make
+
+%check
make test
%install
%perl_make_install
%perl_process_packlist
+install -d -m755 $RPM_BUILD_ROOT/%{_mandir}/man1
+install -m644 %{SOURCE1} $RPM_BUILD_ROOT/%{_mandir}/man1
%clean
rm -rf $RPM_BUILD_ROOT
@@ -54,7 +66,7 @@
%files
%defattr(-,root,root)
%doc README MANIFEST Artistic Changes Copying
-%_mandir/man?/*
+%doc %_mandir/man?/*
%_bindir/cddb.pl
%perl_vendorlib/CDDB_get.pm
%perl_vendorlib/CDDB_cache.pm
@@ -65,6 +77,9 @@
/var/adm/perl-modules/perl-CDDB_get
%changelog
+* Tue Feb 03 2009 kssingvo(a)suse.de
+- added manpage
+- 'make test' now in separate %%check section
* Wed Jan 25 2006 mls(a)suse.de
- converted neededforbuild to BuildRequires
* Wed Jan 04 2006 mmj(a)suse.de
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package pcsc-lite for openSUSE:Factory
checked in at Wed Feb 4 00:22:33 CET 2009.
--------
--- pcsc-lite/pcsc-lite.changes 2009-01-06 19:22:51.000000000 +0100
+++ pcsc-lite/pcsc-lite.changes 2009-02-03 13:45:39.000000000 +0100
@@ -1,0 +2,21 @@
+Tue Feb 3 13:41:22 CET 2009 - sbrabec(a)suse.cz
+
+- Updated to version 1.5.1:
+ * Fixed extended APDU of more than 2048 bytes
+ * some other minor improvements and bug corrections
+ * correctly handle up to PCSCLITE_MAX_READERS_CONTEXTS
+ * SCardGetStatusChange() behavior change
+ * SCardStatus(): support of SCARD_AUTOALLOCATE
+ * SCardGetStatusChange() now uses asynchronous events
+ * more and/or better documentation
+ * SCardTransmit(): correctly pass the pioRecvPci parameter
+ * SCardConnect() and SCardReconnect(): correct a race condition
+ * pcscd logs the command name sent by the application
+ * some other minor improvements and bug corrections
+- Split according to shared library packaging rules
+ (bnc#466430#c5).
+- Removed obsolete udev rules.
+- Install init script based on upstream one (bnc#467255).
+- Removed upgrade protection for <= SLE9.
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
pcscd.init
pcsc-lite-1.4.102.tar.bz2
New:
----
pcsc-lite-1.5.1.tar.bz2
pcsc-lite-init.patch
pcsc-lite.sysconfig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pcsc-lite.spec ++++++
--- /var/tmp/diff_new_pack.W21021/_old 2009-02-04 00:19:49.000000000 +0100
+++ /var/tmp/diff_new_pack.W21021/_new 2009-02-04 00:19:49.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package pcsc-lite (Version 1.4.102)
+# spec file for package pcsc-lite (Version 1.5.1)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -22,22 +22,20 @@
# FIXME: Maybe we should use /usr/lib/pcsc/drivers as others do:
%define ifddir %{_libdir}/readers
BuildRequires: hal-devel pkg-config readline-devel
-# For directory ownership:
-BuildRequires: udev
-Version: 1.4.102
-Release: 4
+Version: 1.5.1
+Release: 1
PreReq: %{insserv_prereq} %{fillup_prereq}
-# For upgrade from <= SLES9:
-PreReq: coreutils
Group: Productivity/Security
License: BSD 3-Clause
Url: http://pcsclite.alioth.debian.org/
Summary: PCS Smart Cards Library
Source: %{name}-%{version}.tar.bz2
-Source1: pcscd.init
+Source1: %{name}.sysconfig
Source2: README.SUSE
Source3: pre_checkin.sh
Patch: pcsc-lite-musclecard.patch
+Patch1: pcsc-lite-init.patch
+Requires: libpcsclite1 >= %{version}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -67,6 +65,38 @@
Carlos Prados <cprados(a)yahoo.com>
Antti Tapaninen <aet(a)cc.hut.fi>
+%package -n libpcsclite1
+License: BSD 3-Clause
+Group: System/Libraries
+Summary: PCS Smart Cards Library
+
+%description -n libpcsclite1
+The purpose of PCSC Lite is to provide a Windows(R) SCard interface in
+a very small form factor for communication with smart cards and
+readers. PCSC Lite can be compiled directly for a desired reader driver
+or can be used to dynamically allocate/deallocate reader drivers at
+runtime (the default behavior).
+
+PCSC Lite uses the same winscard API as used in Windows(R).
+
+Security aware people should read the SECURITY file for possible
+vulnerabilities of pcsclite and how to fix them. For information on how
+to install drivers please read the DRIVERS file.
+
+Memory cards will be supported through the MCT specification, which is
+an APDU like manner sent normally through the SCardTransmit() function.
+This functionality is exercised in the driver.
+
+
+
+Authors:
+--------
+ David Corcoran <corcoran(a)linuxnet.com>
+ Ludovic Rousseau <ludovic.rousseau(a)free.fr>
+ Damien Sauveron <sauveron(a)labri.fr>
+ Carlos Prados <cprados(a)yahoo.com>
+ Antti Tapaninen <aet(a)cc.hut.fi>
+
%package devel
License: BSD 3-Clause
Group: Development/Libraries/C and C++
@@ -82,11 +112,16 @@
Authors:
--------
David Corcoran <corcoran(a)linuxnet.com>
+ Ludovic Rousseau <ludovic.rousseau(a)free.fr>
+ Damien Sauveron <sauveron(a)labri.fr>
+ Carlos Prados <cprados(a)yahoo.com>
+ Antti Tapaninen <aet(a)cc.hut.fi>
%prep
%setup -q
-cp -a %{S:2} .
+cp -a %{S:1} %{S:2} .
%patch
+%patch1
%build
%if %suse_version > 1010
@@ -105,43 +140,33 @@
# this program is noinst in the package
install src/.libs/testpcsc $RPM_BUILD_ROOT%{_sbindir}/
mkdir $RPM_BUILD_ROOT/etc/init.d
-install -m 755 %{S:1} $RPM_BUILD_ROOT/etc/init.d/pcscd
+install -m 755 etc/pcscd.init $RPM_BUILD_ROOT/etc/init.d/pcscd
ln -sf ../../etc/init.d/pcscd $RPM_BUILD_ROOT%{_sbindir}/rcpcscd
-# For upgrade from <= SLES9:
-touch $RPM_BUILD_ROOT%{_sysconfdir}/reader.conf.d/old-reader.conf
-mkdir -p $RPM_BUILD_ROOT/etc/udev/rules.d
-sed -n '/udev rules for pcscd and CCID readers/,/^\\end{verbatim}/{/{verbatim}/d;p;}' <doc/ifdhandler-3.tex >$RPM_BUILD_ROOT/etc/udev/rules.d/99-pcsc_lite.rules
+mkdir -p $RPM_BUILD_ROOT/var/adm/fillup-templates
+cp %{name}.sysconfig $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.pcscd
mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name}
cp -a AUTHORS ChangeLog ChangeLog.svn COPYING DRIVERS HELP NEWS README README.SUSE SECURITY TODO $RPM_BUILD_ROOT%{_docdir}/%{name}
%clean
rm -rf $RPM_BUILD_ROOT
-%pre
-# save old reader.conf in case of upgrade from <= SLES9
-if [ "$1" = "2" ]; then
- if [ ! -d etc/reader.conf.d ]; then # update from old version
- mkdir -p etc/reader.conf.d
- cp etc/reader.conf etc/reader.conf.d/old-reader.conf
- fi
-fi
-
%preun
%{stop_on_removal pcscd}
%post
-/sbin/ldconfig
-%{fillup_and_insserv pcscd}
+%{fillup_and_insserv -n pcscd pcscd}
%postun
-/sbin/ldconfig
%{restart_on_update pcscd}
%{insserv_cleanup}
+%post -n libpcsclite1 -p /sbin/ldconfig
+
+%postun -n libpcsclite1 -p /sbin/ldconfig
+
%files
%defattr(-,root,root)
%doc %{_docdir}/%{name}
-%{_libdir}/*.so.*
# .so must be in the main package (#235773):
%{_libdir}/*.so
%doc %{_mandir}/man?/*.*
@@ -149,10 +174,13 @@
%ghost %{_sysconfdir}/reader.conf
%dir %{_sysconfdir}/reader.conf.d
%config %{_sysconfdir}/reader.conf.d/reader.conf
-%ghost %config %{_sysconfdir}/reader.conf.d/old-reader.conf
%{ifddir}
/etc/init.d/pcscd
-/etc/udev/rules.d/99-pcsc_lite.rules
+/var/adm/fillup-templates/sysconfig.pcscd
+
+%files -n libpcsclite1
+%defattr(-,root,root)
+%{_libdir}/libpcsclite.so.*
%files devel
%defattr(-,root,root)
@@ -161,6 +189,24 @@
%{_libdir}/pkgconfig/*.pc
%changelog
+* Tue Feb 03 2009 sbrabec(a)suse.cz
+- Updated to version 1.5.1:
+ * Fixed extended APDU of more than 2048 bytes
+ * some other minor improvements and bug corrections
+ * correctly handle up to PCSCLITE_MAX_READERS_CONTEXTS
+ * SCardGetStatusChange() behavior change
+ * SCardStatus(): support of SCARD_AUTOALLOCATE
+ * SCardGetStatusChange() now uses asynchronous events
+ * more and/or better documentation
+ * SCardTransmit(): correctly pass the pioRecvPci parameter
+ * SCardConnect() and SCardReconnect(): correct a race condition
+ * pcscd logs the command name sent by the application
+ * some other minor improvements and bug corrections
+- Split according to shared library packaging rules
+ (bnc#466430#c5).
+- Removed obsolete udev rules.
+- Install init script based on upstream one (bnc#467255).
+- Removed upgrade protection for <= SLE9.
* Tue Jan 06 2009 sbrabec(a)suse.cz
- Do not call autoreconf for SLE10.
* Wed Sep 10 2008 sbrabec(a)suse.cz
++++++ pcsc-lite-1.4.102.tar.bz2 -> pcsc-lite-1.5.1.tar.bz2 ++++++
++++ 11713 lines of diff (skipped)
++++++ pcsc-lite-init.patch ++++++
--- etc/pcscd.init.in
+++ etc/pcscd.init.in
@@ -29,7 +29,8 @@
# Note! pcscd should be started after pcmcia, and shut down before it
# for smooth experience with PCMCIA readers.
-. @sysconfdir_exp@/init.d/functions
+. @sysconfdir_exp@/rc.status
+rc_reset
umask 077
@@ -45,19 +46,21 @@
start() {
echo -n $"Starting PC/SC smart card daemon ($prog): "
- @sbindir_exp@/update-reader.conf && daemon $prog $PCSCD_OPTIONS
+ @sbindir_exp@/update-reader.conf && startproc $exec $PCSCD_OPTIONS
retval=$?
+ rc_status
echo
[ $retval -eq 0 ] && touch $lockfile
- return $retval
+ rc_status -v
}
stop() {
echo -n $"Stopping PC/SC smart card daemon ($prog): "
- killproc $prog
+ killproc $exec
retval=$?
+ rc_status
echo
[ $retval -eq 0 ] && rm -f $lockfile
- return $retval
+ rc_status -v
}
restart() {
stop
@@ -73,12 +76,19 @@
restart
;;
status)
- status $prog
+ checkproc $exec
+ rc_status -v
;;
condrestart|try-restart)
- [ ! -f $lockfile ] || restart
+ if test -f $lockfile ; then
+ restart
+ else
+ rc_reset
+ fi
+ rc_status
;;
*)
echo $"Usage: $0 {start|stop|status|restart|try-restart|reload|force-reload}"
exit 2
esac
+rc_exit
++++++ pcsc-lite.sysconfig ++++++
## Path: Hardware/SmartCard
## Description: Hard disc health monitoring
## ServiceReload: pcscd
## Type: string
## Default:
#
# Command line options for pcscd(8) init script.
#
PCSCD_OPTIONS=""
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package patch for openSUSE:Factory
checked in at Wed Feb 4 00:18:19 CET 2009.
--------
--- patch/patch.changes 2008-04-23 10:54:04.000000000 +0200
+++ patch/patch.changes 2009-02-03 06:11:18.182432000 +0100
@@ -1,0 +2,6 @@
+Tue Feb 3 06:10:49 CET 2009 - agruen(a)suse.de
+
+- Implement diff3-style merges (including several fixes and
+ improvements).
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
fail.test
New:
----
diff3-style-merges-add-file-labels.diff
diff3-style-merges-base.diff
diff3-style-merges-include-filenames.diff
diff3-style-merges-locate-merge.diff
diff3-style-merges-other-strategy.diff
diff3-style-merges-overlap.diff
diff3-style-merges-pch_name.diff
diff3-style-merges-refactoring-2.diff
diff3-style-merges-refactoring.diff
diff3-style-merges-rejects.diff
diff3-style-merges-tests.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ patch.spec ++++++
--- /var/tmp/diff_new_pack.kz8961/_old 2009-02-04 00:17:36.000000000 +0100
+++ /var/tmp/diff_new_pack.kz8961/_new 2009-02-04 00:17:36.000000000 +0100
@@ -1,10 +1,17 @@
#
# spec file for package patch (Version 2.5.9)
#
-# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
+# All modifications and additions to the file contributed by third parties
+# remain the property of their copyright owners, unless otherwise agreed
+# upon. The license for this file, and modifications and additions to the
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# license that conforms to the Open Source Definition (Version 1.9)
+# published by the Open Source Initiative.
+
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
@@ -16,7 +23,7 @@
Group: Productivity/Text/Utilities
AutoReqProv: on
Version: 2.5.9
-Release: 252
+Release: 287
Summary: GNU patch
Source: ftp://prep.ai.mit.edu/pub/gnu/patch/%{name}-%{version}.tar.bz2
Url: ftp://alpha.gnu.org/gnu/diffutils/
@@ -28,6 +35,17 @@
Patch5: patch-2.5.9-cat_if_device.diff
Patch6: patch-man-unified-reject.diff
Patch7: fix-partial-context.diff
+Patch8: diff3-style-merges-tests.diff
+Patch9: diff3-style-merges-refactoring.diff
+Patch10: diff3-style-merges-refactoring-2.diff
+Patch11: diff3-style-merges-base.diff
+Patch12: diff3-style-merges-rejects.diff
+Patch13: diff3-style-merges-pch_name.diff
+Patch14: diff3-style-merges-include-filenames.diff
+Patch15: diff3-style-merges-add-file-labels.diff
+Patch16: diff3-style-merges-overlap.diff
+Patch17: diff3-style-merges-locate-merge.diff
+Patch18: diff3-style-merges-other-strategy.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -51,6 +69,17 @@
%patch5 -p1
%patch6 -p1
%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
+%patch14 -p1
+%patch15 -p1
+%patch16 -p1
+%patch17 -p1
+%patch18 -p1
%build
aclocal --acdir=m4
@@ -76,6 +105,9 @@
%doc %{_mandir}/man1/patch.1.gz
%changelog
+* Tue Feb 03 2009 agruen(a)suse.de
+- Implement diff3-style merges (including several fixes and
+ improvements).
* Wed Apr 23 2008 agruen(a)suse.de
- remember-backup-files.diff: Fix bug when a file is touched by
the same patch more than twice. Move the test cases from the
++++++ diff3-style-merges-add-file-labels.diff ++++++
From: Andreas Gruenbacher <agruen(a)suse.de>
Subject: diff3-style merges: add file labels
Add a --label=LABEL option for overriding the labels in the diff3-style
format. The option can be given up to three times for overriding the
old, new, and output filename.
Signed-off-by: Andreas Gruenbacher <agruen(a)suse.de>
---
patch.c | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
Index: b/patch.c
===================================================================
--- a/patch.c
+++ b/patch.c
@@ -82,6 +82,7 @@ static void usage (FILE *, int) __attrib
enum mergetype { SHOW_ALL = 1, SHOW_FUZZ = 2, MERGE_REJECTS = 4 };
static enum mergetype mergetype;
+const char *file_label[2];
static bool make_backups;
static bool backup_if_mismatch;
static char const *version_control;
@@ -538,7 +539,7 @@ reinitialize_almost_everything (void)
skip_rest_of_patch = false;
}
-static char const shortopts[] = "bB:cd:D:eEfF:g:i:lMnNo:p:r:RstTuvV:x:Y:z:Z";
+static char const shortopts[] = "bB:cd:D:eEfF:g:i:lL:MnNo:p:r:RstTuvV:x:Y:z:Z";
static struct option const longopts[] =
{
{"backup", no_argument, NULL, 'b'},
@@ -553,6 +554,7 @@ static struct option const longopts[] =
{"get", no_argument, NULL, 'g'},
{"input", required_argument, NULL, 'i'},
{"ignore-whitespace", no_argument, NULL, 'l'},
+ {"label", required_argument, NULL, 'L'},
{"normal", no_argument, NULL, 'n'},
{"forward", no_argument, NULL, 'N'},
{"output", required_argument, NULL, 'o'},
@@ -609,6 +611,7 @@ static char const *const option_help[] =
"",
" -D NAME --ifdef=NAME Make merged if-then-else output using NAME.",
" --merge={rejects,fuzz,all} Produce a diff3-style merge.",
+" -L LABEL --label=LABEL Use LABEL instead of file name in merge.",
" -E --remove-empty-files Remove output files that are empty after patching.",
"",
" -Z --set-utc Set times of patched files, assuming diff uses UTC (GMT).",
@@ -747,6 +750,14 @@ get_some_switches (void)
case 'l':
canonicalize = true;
break;
+ case 'L':
+ if (!file_label[0])
+ file_label[0] = optarg;
+ else if (!file_label[1])
+ file_label[1] = optarg;
+ else
+ fatal ("too many file label options");
+ break;
case 'M':
mergetype |= MERGE_REJECTS;
break;
@@ -1411,7 +1422,7 @@ static bool merge_hunk (struct outstate
}
/* "From" lines in the patch */
- name = pch_name(OLD);
+ name = file_label[OLD] ? file_label[OLD] : pch_name(OLD);
if (!name)
name = "";
fprintf(fp, outstate->after_newline + "\n<<<<<<<%*s\n",
@@ -1426,7 +1437,7 @@ static bool merge_hunk (struct outstate
if (fuzz) {
/* "To" lines in the patch */
- name = pch_name(NEW);
+ name = file_label[NEW] ? file_label[NEW] : pch_name(NEW);
if (!name)
name = "";
fprintf(fp, outstate->after_newline + "\n|||||||%*s\n",
@@ -1453,7 +1464,7 @@ static bool merge_hunk (struct outstate
/* If the merge result and the new file are the same, label the merge
result with the new file's name. */
- name = fuzz ? NULL : pch_name(NEW);
+ name = fuzz ? NULL : (file_label[NEW] ? file_label[NEW] : pch_name(NEW));
if (!name)
name = "";
fprintf(fp, outstate->after_newline + "\n>>>>>>>%*s\n",
++++++ diff3-style-merges-base.diff ++++++
From: Andreas Gruenbacher <agruen(a)suse.de>
Subject: diff3-style merges
Implement a diff3-style merge format: with the --merge option alone,
all hunks that apply without fuzz will be applied as usual, and
hunks that apply within the allowed fuzz limit will be bracketed as:
<<<<<<<
old lines from patch
|||||||
new lines from patch
=======
merge result
>>>>>>>
When the --show-all option is given in addition, hunks that apply without
fuzz will be bracketed as:
<<<<<<<
old lines from patch
=======
merge result
>>>>>>>
Signed-off-by: Andreas Gruenbacher <agruen(a)suse.de>
---
patch.c | 175 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 170 insertions(+), 5 deletions(-)
Index: b/patch.c
===================================================================
--- a/patch.c
+++ b/patch.c
@@ -61,6 +61,8 @@ struct outstate
static FILE *create_output_file (char const *, int);
static LINENUM locate_hunk (LINENUM);
static bool apply_hunk (struct outstate *, LINENUM);
+static bool common_context(LINENUM, LINENUM, LINENUM);
+static bool merge_hunk (struct outstate *, LINENUM, LINENUM);
static bool copy_till (struct outstate *, LINENUM);
static bool patch_match (LINENUM, LINENUM, LINENUM, LINENUM);
static bool similar (char const *, size_t, char const *, size_t);
@@ -77,6 +79,9 @@ static void reinitialize_almost_everythi
static void remove_if_needed (char const *, int volatile *);
static void usage (FILE *, int) __attribute__((noreturn));
+enum mergetype { SHOW_ALL = 1, SHOW_FUZZ = 2 };
+static enum mergetype mergetype;
+
static bool make_backups;
static bool backup_if_mismatch;
static char const *version_control;
@@ -117,7 +122,7 @@ int
main (int argc, char **argv)
{
char const *val;
- bool somefailed = false;
+ bool somemerged = false, somefailed = false;
struct outstate outstate;
char numbuf[LINENUM_LENGTH_BOUND + 1];
@@ -184,6 +189,7 @@ main (int argc, char **argv)
reinitialize_almost_everything()
) { /* for each patch in patch file */
int hunk = 0;
+ int merged = 0;
int failed = 0;
bool mismatch = false;
char *outname = outfile ? outfile : inname;
@@ -295,8 +301,17 @@ main (int argc, char **argv)
} else if (!where) {
goto skip_hunk;
} else {
- if (!apply_hunk (&outstate, where))
- goto skip_hunk;
+ if ((mergetype & SHOW_ALL) ||
+ (fuzz && (mergetype & SHOW_FUZZ))) {
+ if (merge_hunk(&outstate, where, fuzz)) {
+ merged++;
+ mismatch = true;
+ } else
+ goto skip_hunk;
+ } else {
+ if (!apply_hunk (&outstate, where))
+ goto skip_hunk;
+ }
}
if (verbosity == VERBOSE
@@ -325,6 +340,9 @@ skip_hunk:
format_linenum (numbuf, newwhere));
}
+ if (merged)
+ somemerged = true;
+
if (!skip_rest_of_patch)
{
if (got_hunk < 0 && using_plan_a)
@@ -374,7 +392,8 @@ skip_hunk:
else
{
if (! outstate.zero_output
- && pch_says_nonexistent (! reverse))
+ && pch_says_nonexistent (! reverse)
+ && !merged)
{
mismatch = true;
if (verbosity != SILENT)
@@ -468,7 +487,7 @@ skip_hunk:
if (outstate.ofp && (ferror (outstate.ofp) || fclose (outstate.ofp) != 0))
write_fatal ();
cleanup ();
- if (somefailed)
+ if (somemerged || somefailed)
exit (1);
return 0;
}
@@ -544,6 +563,7 @@ static struct option const longopts[] =
{"quoting-style", required_argument, NULL, CHAR_MAX + 8},
{"unified-reject-files", no_argument, NULL, CHAR_MAX + 9},
{"global-reject-file", required_argument, NULL, CHAR_MAX + 10},
+ {"merge", required_argument, NULL, CHAR_MAX + 11},
{NULL, no_argument, NULL, 0}
};
@@ -571,6 +591,7 @@ static char const *const option_help[] =
" -r FILE --reject-file=FILE Output rejects to FILE.",
"",
" -D NAME --ifdef=NAME Make merged if-then-else output using NAME.",
+" --merge={fuzz,all} Produce a diff3-style merge.",
" -E --remove-empty-files Remove output files that are empty after patching.",
"",
" -Z --set-utc Set times of patched files, assuming diff uses UTC (GMT).",
@@ -809,6 +830,23 @@ get_some_switches (void)
case CHAR_MAX + 10:
global_reject = savestr (optarg);
break;
+ case CHAR_MAX + 11:
+ {
+ char *tok = strtok(optarg, ",");
+
+ do {
+ if (!strcmp(tok, "fuzz"))
+ mergetype |= SHOW_FUZZ;
+ else if (!strcmp(tok, "all"))
+ mergetype |= SHOW_ALL;
+ else {
+ fprintf(stderr, "%s: invalid merge option %s\n",
+ program_name, quotearg(tok));
+ usage (stderr, 2);
+ }
+ } while ((tok = strtok(NULL, ",")));
+ }
+ break;
default:
usage (stderr, 2);
}
@@ -1264,6 +1302,133 @@ apply_hunk (struct outstate *outstate, L
return true;
}
+static bool common_context(LINENUM where, LINENUM old, LINENUM new)
+{
+ size_t size;
+ const char *line;
+
+ if (pch_char(old) != ' ' || pch_char(new) != ' ')
+ return false;
+
+ line = ifetch (where, false, &size);
+ return size &&
+ (canonicalize ?
+ (similar(pfetch(old), pch_line_len(old), line, size) &&
+ similar(pfetch(new), pch_line_len(new), line, size)) :
+ (size == pch_line_len(old) && size == pch_line_len(new) &&
+ memcmp(line, pfetch(old), size) == 0 &&
+ memcmp(line, pfetch(new), size) == 0));
+}
+
+/* A FUZZ value of -1 indicates that the hunk could not be applied. */
+
+static bool merge_hunk (struct outstate *outstate, LINENUM where, LINENUM fuzz)
+{
+ register LINENUM old = 1;
+ register LINENUM lastline = pch_ptrn_lines ();
+ register LINENUM new = lastline + 1;
+ register LINENUM pat_end = pch_end ();
+ register LINENUM merge, merge_end;
+ register FILE *fp = outstate->ofp;
+ bool succeeded = true;
+
+ while (pch_char(new) == '=' || pch_char(new) == '\n' /* ??? */)
+ new++;
+
+ /* Hide common prefix context */
+ merge = where;
+ while (old <= lastline && new <= pat_end) {
+ if (!common_context(merge, old, new))
+ break;
+ old++;
+ new++;
+ merge++;
+ }
+
+ if (fuzz != -1) {
+ /* Hide common suffix context */
+ merge_end = where + lastline - 1;
+ while (old <= lastline && new <= pat_end) {
+ if (!common_context(merge_end, lastline, pat_end))
+ break;
+ lastline--;
+ pat_end--;
+ merge_end--;
+ }
+ } else {
+ LINENUM overlap = pch_suffix_context ();
+
+ /* Hide common suffix context: check how much overlap we have! */
+ merge_end = merge - 1;
+ while (overlap) {
+ LINENUM n = 0;
+
+ merge_end += overlap;
+ while (n < overlap && old <= lastline && new <= pat_end) {
+ if (!common_context(merge_end, lastline, pat_end))
+ break;
+ lastline--;
+ pat_end--;
+ merge_end--;
+ n++;
+ }
+ merge_end -= overlap - n;
+ if (n == overlap)
+ break;
+ lastline += n;
+ pat_end += n;
+ overlap--;
+ }
+ }
+
+ assert (outstate->after_newline);
+ if (last_frozen_line < merge) {
+ if (!copy_till(outstate, merge - 1))
+ return false;
+ }
+
+ /* "From" lines in the patch */
+ fprintf(fp, outstate->after_newline + "\n<<<<<<<\n");
+ if (ferror (fp))
+ write_fatal ();
+ outstate->after_newline = true;
+ while (old <= lastline) {
+ outstate->after_newline = pch_write_line(old, fp);
+ old++;
+ }
+
+ if (fuzz) {
+ /* "To" lines in the patch */
+ fprintf(fp, outstate->after_newline + "\n|||||||\n");
+ if (ferror (fp))
+ write_fatal ();
+ outstate->after_newline = true;
+ while (new <= pat_end) {
+ outstate->after_newline = pch_write_line(new, fp);
+ new++;
+ }
+ }
+
+ if (fuzz != -1) {
+ /* Merge result */
+ fprintf(fp, outstate->after_newline + "\n=======\n");
+ if (ferror (fp))
+ write_fatal ();
+ outstate->after_newline = true;
+
+ succeeded = apply_hunk(outstate, where) &&
+ copy_till(outstate, merge_end);
+ }
+
+ fprintf(fp, outstate->after_newline + "\n>>>>>>>\n");
+ if (ferror (fp))
+ write_fatal ();
+ outstate->after_newline = true;
+
+ outstate->zero_output = false;
+ return succeeded;
+}
+
/* Create an output file. */
static FILE *
++++++ diff3-style-merges-include-filenames.diff ++++++
From: Andreas Gruenbacher <agruen(a)suse.de>
Subject: diff3-style merges: include filenames
Include the filenames from the patch header in the diff3-style format.
Use the name of the output file as the third filename.
<<<<<<< old-filename
old lines from patch
||||||| new-filename
new lines from patch
=======
merge result
>>>>>>> output-filename
Signed-off-by: Andreas Gruenbacher <agruen(a)suse.de>
---
patch.c | 21 ++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)
Index: b/patch.c
===================================================================
--- a/patch.c
+++ b/patch.c
@@ -1353,6 +1353,7 @@ static bool merge_hunk (struct outstate
register LINENUM merge, merge_end;
register FILE *fp = outstate->ofp;
bool succeeded = true;
+ const char *name;
while (pch_char(new) == '=' || pch_char(new) == '\n' /* ??? */)
new++;
@@ -1410,7 +1411,11 @@ static bool merge_hunk (struct outstate
}
/* "From" lines in the patch */
- fprintf(fp, outstate->after_newline + "\n<<<<<<<\n");
+ name = pch_name(OLD);
+ if (!name)
+ name = "";
+ fprintf(fp, outstate->after_newline + "\n<<<<<<<%*s\n",
+ strlen(name) ? strlen(name) + 1 : 0, name);
if (ferror (fp))
write_fatal ();
outstate->after_newline = true;
@@ -1421,7 +1426,11 @@ static bool merge_hunk (struct outstate
if (fuzz) {
/* "To" lines in the patch */
- fprintf(fp, outstate->after_newline + "\n|||||||\n");
+ name = pch_name(NEW);
+ if (!name)
+ name = "";
+ fprintf(fp, outstate->after_newline + "\n|||||||%*s\n",
+ strlen(name) ? strlen(name) + 1 : 0, name);
if (ferror (fp))
write_fatal ();
outstate->after_newline = true;
@@ -1442,7 +1451,13 @@ static bool merge_hunk (struct outstate
copy_till(outstate, merge_end);
}
- fprintf(fp, outstate->after_newline + "\n>>>>>>>\n");
+ /* If the merge result and the new file are the same, label the merge
+ result with the new file's name. */
+ name = fuzz ? NULL : pch_name(NEW);
+ if (!name)
+ name = "";
+ fprintf(fp, outstate->after_newline + "\n>>>>>>>%*s\n",
+ strlen(name) ? strlen(name) + 1 : 0, name);
if (ferror (fp))
write_fatal ();
outstate->after_newline = true;
++++++ diff3-style-merges-locate-merge.diff ++++++
---
patch.c | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 72 insertions(+), 6 deletions(-)
Index: b/patch.c
===================================================================
--- a/patch.c
+++ b/patch.c
@@ -62,6 +62,8 @@ static FILE *create_output_file (char co
static LINENUM locate_hunk (LINENUM);
static bool apply_hunk (struct outstate *, LINENUM);
static bool common_context(LINENUM, LINENUM, LINENUM);
+static LINENUM min_mismatches(LINENUM, LINENUM);
+static LINENUM locate_merge (void);
static bool merge_hunk (struct outstate *, LINENUM, LINENUM);
static void merge_ends_here(struct outstate *outstate);
static bool copy_till (struct outstate *, LINENUM);
@@ -304,15 +306,11 @@ main (int argc, char **argv)
goto skip_hunk;
} else if (!where) {
if (mergetype & MERGE_REJECTS) {
- LINENUM guess = pch_first () + last_offset;
-
- if (merge_hunk(&outstate, guess, -1)) {
+ if (merge_hunk(&outstate, locate_merge(), -1)) {
merged++;
mismatch = 1;
- } else {
- /* FIXME: guess harder! */
+ } else
goto skip_hunk;
- }
} else
goto skip_hunk;
} else {
@@ -1356,6 +1354,74 @@ static bool common_context(LINENUM where
memcmp(line, pfetch(new), size) == 0));
}
+static LINENUM min_mismatches(LINENUM where, LINENUM lowest)
+{
+ register LINENUM ptrn_lines = pch_ptrn_lines();
+ register LINENUM old, mismatched = 0;
+
+ for (old = 1; old <= ptrn_lines; old++, where++) {
+ size_t size;
+ const char *line;
+
+ line = ifetch (where, false, &size);
+ if (!size ||
+ !(canonicalize ?
+ similar(pfetch(old), pch_line_len(old), line, size) :
+ (size == pch_line_len(old) &&
+ memcmp(line, pfetch(old), size) == 0))) {
+ mismatched++;
+ if (mismatched >= lowest)
+ break;
+ }
+ }
+ return mismatched;
+}
+
+static LINENUM locate_merge ()
+{
+ register LINENUM first_guess = pch_first () + last_offset;
+ register LINENUM lowest = input_lines, where = first_guess;
+ register LINENUM offset;
+ LINENUM pat_lines = pch_ptrn_lines();
+ LINENUM suffix_context = pch_suffix_context ();
+ LINENUM max_where = input_lines - (pat_lines - suffix_context) + 1;
+ LINENUM min_where = last_frozen_line + 1;
+ LINENUM max_pos_offset = max_where - first_guess;
+ LINENUM max_neg_offset = first_guess - min_where;
+ LINENUM max_offset = (max_pos_offset < max_neg_offset
+ ? max_neg_offset : max_pos_offset);
+
+ /* Do not try lines <= 0. */
+ if (first_guess <= max_neg_offset)
+ max_neg_offset = first_guess - 1;
+
+ for (offset = 0; offset <= max_offset; offset++) {
+ if (offset <= max_pos_offset) {
+ register LINENUM mismatched;
+
+ mismatched = min_mismatches(first_guess - offset, lowest);
+ if (mismatched < lowest) {
+ lowest = mismatched;
+ where = first_guess - offset;
+ if (lowest == 1)
+ break;
+ }
+ }
+ if (0 < offset && offset <= max_neg_offset) {
+ register LINENUM mismatched;
+
+ mismatched = min_mismatches(first_guess + offset, lowest);
+ if (mismatched < lowest) {
+ lowest = mismatched;
+ where = first_guess + offset;
+ if (lowest == 1)
+ break;
+ }
+ }
+ }
+ return where;
+}
+
/* A FUZZ value of -1 indicates that the hunk could not be applied. */
static bool merge_hunk (struct outstate *outstate, LINENUM where, LINENUM fuzz)
++++++ diff3-style-merges-other-strategy.diff ++++++
---
patch.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
Index: b/patch.c
===================================================================
--- a/patch.c
+++ b/patch.c
@@ -1459,6 +1459,18 @@ static bool merge_hunk (struct outstate
R_merge_end--;
}
} else {
+#if 1
+ /* Hide common suffix context */
+ R_merge_end = where + lastline - 1;
+ while (old <= lastline && new <= pat_end) {
+ if (!common_context(R_merge_end, lastline, pat_end))
+ break;
+ lastline--;
+ pat_end--;
+ R_merge_end--;
+ }
+ R_merge_end = merge - 1;
+#else
LINENUM overlap = pch_suffix_context ();
/* Hide common suffix context: check how much overlap we have! */
@@ -1482,6 +1494,8 @@ static bool merge_hunk (struct outstate
pat_end += n;
overlap--;
}
+ /*assert(R_merge_end == merge - 1);*/
+#endif
}
assert (outstate->after_newline);
++++++ diff3-style-merges-overlap.diff ++++++
From: Andreas Gruenbacher <agruen(a)suse.de>
Subject: diff3-style merges: overlapping merges
In some situations, hunks in a patch may apply so that their context
lines overlap. Patch never commits context lines to the output until
their contents are fully determined.
The diff3-style merge format may include context lines. For example,
when he following patch:
# --- a
# +++ b
# @@ -2,3 +2,3 @@
# x
# -3
# +3b
# x
is applied to `seq 1 6` file with --merge=all, this is what you get (with
fuzz 1):
1
<<<<<<< a
x
3
x
||||||| b
x
3b
x
=======
2
3b
4
>>>>>>>
5
6
At this point, the first four lines of the output file are "frozen", and
the next hunk cannot modify the fourth line anymore. This can cause the diff3-
style merge format to reject hunks that would otherwise be accepted. To
avoid this regression, this patch adds delayed printing of the end marker,
with this effect on the merge format:
1
<<<<<<< a
x
3
x
||||||| b
x
3b
x
=======
2
3b
>>>>>>>
<<<<<<< a
x
4
x
||||||| b
x
4b
x
=======
4b
5
>>>>>>>
6
Signed-off-by: Andreas Gruenbacher <agruen(a)suse.de>
---
patch.c | 71 +++++++++++++++++++++++++++++++++++++++++++---------------------
1 file changed, 48 insertions(+), 23 deletions(-)
Index: b/patch.c
===================================================================
--- a/patch.c
+++ b/patch.c
@@ -63,6 +63,7 @@ static LINENUM locate_hunk (LINENUM);
static bool apply_hunk (struct outstate *, LINENUM);
static bool common_context(LINENUM, LINENUM, LINENUM);
static bool merge_hunk (struct outstate *, LINENUM, LINENUM);
+static void merge_ends_here(struct outstate *outstate);
static bool copy_till (struct outstate *, LINENUM);
static bool patch_match (LINENUM, LINENUM, LINENUM, LINENUM);
static bool similar (char const *, size_t, char const *, size_t);
@@ -81,6 +82,8 @@ static void usage (FILE *, int) __attrib
enum mergetype { SHOW_ALL = 1, SHOW_FUZZ = 2, MERGE_REJECTS = 4 };
static enum mergetype mergetype;
+static LINENUM merge_end = -1;
+static const char *merge_name;
const char *file_label[2];
static bool make_backups;
@@ -1361,7 +1364,7 @@ static bool merge_hunk (struct outstate
register LINENUM lastline = pch_ptrn_lines ();
register LINENUM new = lastline + 1;
register LINENUM pat_end = pch_end ();
- register LINENUM merge, merge_end;
+ register LINENUM merge, R_merge_end;
register FILE *fp = outstate->ofp;
bool succeeded = true;
const char *name;
@@ -1381,32 +1384,32 @@ static bool merge_hunk (struct outstate
if (fuzz != -1) {
/* Hide common suffix context */
- merge_end = where + lastline - 1;
+ R_merge_end = where + lastline - 1;
while (old <= lastline && new <= pat_end) {
- if (!common_context(merge_end, lastline, pat_end))
+ if (!common_context(R_merge_end, lastline, pat_end))
break;
lastline--;
pat_end--;
- merge_end--;
+ R_merge_end--;
}
} else {
LINENUM overlap = pch_suffix_context ();
/* Hide common suffix context: check how much overlap we have! */
- merge_end = merge - 1;
+ R_merge_end = merge - 1;
while (overlap) {
LINENUM n = 0;
- merge_end += overlap;
+ R_merge_end += overlap;
while (n < overlap && old <= lastline && new <= pat_end) {
- if (!common_context(merge_end, lastline, pat_end))
+ if (!common_context(R_merge_end, lastline, pat_end))
break;
lastline--;
pat_end--;
- merge_end--;
+ R_merge_end--;
n++;
}
- merge_end -= overlap - n;
+ R_merge_end -= overlap - n;
if (n == overlap)
break;
lastline += n;
@@ -1419,7 +1422,8 @@ static bool merge_hunk (struct outstate
if (last_frozen_line < merge) {
if (!copy_till(outstate, merge - 1))
return false;
- }
+ } else
+ merge_ends_here(outstate);
/* "From" lines in the patch */
name = file_label[OLD] ? file_label[OLD] : pch_name(OLD);
@@ -1458,25 +1462,41 @@ static bool merge_hunk (struct outstate
write_fatal ();
outstate->after_newline = true;
- succeeded = apply_hunk(outstate, where) &&
- copy_till(outstate, merge_end);
+ succeeded = apply_hunk(outstate, where);
}
+ assert(merge_end == -1);
+ merge_end = R_merge_end;
+
/* If the merge result and the new file are the same, label the merge
result with the new file's name. */
- name = fuzz ? NULL : (file_label[NEW] ? file_label[NEW] : pch_name(NEW));
- if (!name)
- name = "";
- fprintf(fp, outstate->after_newline + "\n>>>>>>>%*s\n",
- strlen(name) ? strlen(name) + 1 : 0, name);
- if (ferror (fp))
- write_fatal ();
- outstate->after_newline = true;
+ merge_name = fuzz ? NULL : (file_label[NEW] ? file_label[NEW] :
+ pch_name(NEW));
outstate->zero_output = false;
return succeeded;
}
+static void
+merge_ends_here(struct outstate *outstate)
+{
+ register FILE *fp = outstate->ofp;
+
+ if (merge_end != -1)
+ {
+ if (!merge_name)
+ merge_name = "";
+ fprintf(fp, outstate->after_newline + "\n>>>>>>>%*s\n",
+ strlen(merge_name) ? strlen(merge_name) + 1 : 0,
+ merge_name);
+ if (ferror (fp))
+ write_fatal ();
+ outstate->after_newline = true;
+ outstate->zero_output = false;
+ merge_end = -1;
+ }
+}
+
/* Create an output file. */
static FILE *
@@ -1516,6 +1536,7 @@ static bool
copy_till (register struct outstate *outstate, register LINENUM lastline)
{
register LINENUM R_last_frozen_line = last_frozen_line;
+ register LINENUM R_merge_end = (merge_end != -1) ? merge_end : lastline;
register FILE *fp = outstate->ofp;
register char const *s;
size_t size;
@@ -1527,6 +1548,9 @@ copy_till (register struct outstate *out
}
while (R_last_frozen_line < lastline)
{
+ if (R_merge_end == R_last_frozen_line)
+ merge_ends_here(outstate);
+
s = ifetch (++R_last_frozen_line, false, &size);
if (size)
{
@@ -1538,6 +1562,8 @@ copy_till (register struct outstate *out
}
}
last_frozen_line = R_last_frozen_line;
+ if (merge_end != -1)
+ merge_ends_here(outstate);
return true;
}
@@ -1555,9 +1581,8 @@ spew_output (struct outstate *outstate)
format_linenum (numbuf1, last_frozen_line));
}
- if (last_frozen_line < input_lines)
- if (! copy_till (outstate, input_lines))
- return false;
+ if (! copy_till (outstate, input_lines))
+ return false;
if (outstate->ofp && ! outfile)
{
++++++ diff3-style-merges-pch_name.diff ++++++
From: Andreas Gruenbacher <agruen(a)suse.de>
Subject: diff3-style merges: pch_name()
Make a pch_name() function available for accessing the old and the new
filename in the patch header.
Signed-off-by: Andreas Gruenbacher <agruen(a)suse.de>
---
pch.c | 88 ++++++++++++++++++++++++++++++++++--------------------------------
pch.h | 3 ++
2 files changed, 49 insertions(+), 42 deletions(-)
Index: b/pch.c
===================================================================
--- a/pch.c
+++ b/pch.c
@@ -43,6 +43,7 @@ static int p_says_nonexistent[2]; /* [0]
1 for existent and probably (but not necessarily) empty,
2 for nonexistent */
static int p_rfc934_nesting; /* RFC 934 nesting level */
+static char *p_name[3]; /* filenames in patch headers */
static time_t p_timestamp[2]; /* timestamps in patch headers */
static off_t p_filesize; /* size of the patch file */
static LINENUM p_first; /* 1st line number */
@@ -70,8 +71,6 @@ static LINENUM p_efake = -1; /* end of
static LINENUM p_bfake = -1; /* beg of faked up lines */
static char *p_c_function; /* the C function a hunk is in */
-enum nametype { OLD, NEW, INDEX, NONE };
-
static char *scan_linenum (char *, LINENUM *);
static enum diff intuit_diff_type (void);
static enum nametype best_name (char * const *, int const *);
@@ -300,13 +299,17 @@ intuit_diff_type (void)
register bool this_is_a_command = false;
register bool stars_this_line = false;
enum nametype i;
- char *name[3];
struct stat st[3];
int stat_errno[3];
int version_controlled[3];
register enum diff retval;
- name[OLD] = name[NEW] = name[INDEX] = 0;
+ for (i = OLD; i <= INDEX; i++)
+ if (p_name[i]) {
+ free (p_name[i]);
+ p_name[i] = 0;
+ }
+
version_controlled[OLD] = -1;
version_controlled[NEW] = -1;
version_controlled[INDEX] = -1;
@@ -365,16 +368,16 @@ intuit_diff_type (void)
p_strip_trailing_cr = strip_trailing_cr;
}
if (!stars_last_line && strnEQ(s, "*** ", 4))
- name[OLD] = fetchname (s+4, strippath, &p_timestamp[OLD]);
+ p_name[OLD] = fetchname (s+4, strippath, &p_timestamp[OLD]);
else if (strnEQ(s, "+++ ", 4))
{
/* Swap with NEW below. */
- name[OLD] = fetchname (s+4, strippath, &p_timestamp[OLD]);
+ p_name[OLD] = fetchname (s+4, strippath, &p_timestamp[OLD]);
p_strip_trailing_cr = strip_trailing_cr;
}
else if (strnEQ(s, "Index:", 6))
{
- name[INDEX] = fetchname (s+6, strippath, (time_t *) 0);
+ p_name[INDEX] = fetchname (s+6, strippath, (time_t *) 0);
p_strip_trailing_cr = strip_trailing_cr;
}
else if (strnEQ(s, "Prereq:", 7)) {
@@ -410,7 +413,7 @@ intuit_diff_type (void)
if (strnEQ(t, "--- ", 4))
{
time_t timestamp = (time_t) -1;
- name[NEW] = fetchname (t+4, strippath, ×tamp);
+ p_name[NEW] = fetchname (t+4, strippath, ×tamp);
if (timestamp != (time_t) -1)
{
p_timestamp[NEW] = timestamp;
@@ -430,13 +433,13 @@ intuit_diff_type (void)
if ((diff_type == NO_DIFF || diff_type == UNI_DIFF)
&& strnEQ(s, "@@ -", 4)) {
- /* `name' and `p_timestamp' are backwards; swap them. */
+ /* `p_name' and `p_timestamp' are backwards; swap them. */
time_t ti = p_timestamp[OLD];
p_timestamp[OLD] = p_timestamp[NEW];
p_timestamp[NEW] = ti;
- t = name[OLD];
- name[OLD] = name[NEW];
- name[NEW] = t;
+ t = p_name[OLD];
+ p_name[OLD] = p_name[NEW];
+ p_name[NEW] = t;
s += 4;
if (s[0] == '0' && !ISDIGIT (s[1]))
@@ -451,9 +454,9 @@ intuit_diff_type (void)
p_start = this_line;
p_sline = p_input_line;
retval = UNI_DIFF;
- if (! ((name[OLD] || ! p_timestamp[OLD])
- && (name[NEW] || ! p_timestamp[NEW]))
- && ! name[INDEX])
+ if (! ((p_name[OLD] || ! p_timestamp[OLD])
+ && (p_name[NEW] || ! p_timestamp[NEW]))
+ && ! p_name[INDEX])
{
char numbuf[LINENUM_LENGTH_BOUND + 1];
say ("missing header for unified diff at line %s of patch\n",
@@ -492,9 +495,9 @@ intuit_diff_type (void)
next_intuit_at (saved_p_base, saved_p_bline);
}
- if (! ((name[OLD] || ! p_timestamp[OLD])
- && (name[NEW] || ! p_timestamp[NEW]))
- && ! name[INDEX])
+ if (! ((p_name[OLD] || ! p_timestamp[OLD])
+ && (p_name[NEW] || ! p_timestamp[NEW]))
+ && ! p_name[INDEX])
{
char numbuf[LINENUM_LENGTH_BOUND + 1];
say ("missing header for context diff at line %s of patch\n",
@@ -543,23 +546,23 @@ intuit_diff_type (void)
{
enum nametype i0 = NONE;
- if (! posixly_correct && (name[OLD] || name[NEW]) && name[INDEX])
+ if (! posixly_correct && (p_name[OLD] || p_name[NEW]) && p_name[INDEX])
{
- free (name[INDEX]);
- name[INDEX] = 0;
+ free (p_name[INDEX]);
+ p_name[INDEX] = 0;
}
for (i = OLD; i <= INDEX; i++)
- if (name[i])
+ if (p_name[i])
{
- if (i0 != NONE && strcmp (name[i0], name[i]) == 0)
+ if (i0 != NONE && strcmp (p_name[i0], p_name[i]) == 0)
{
/* It's the same name as before; reuse stat results. */
stat_errno[i] = stat_errno[i0];
if (! stat_errno[i])
st[i] = st[i0];
}
- else if (stat (name[i], &st[i]) != 0)
+ else if (stat (p_name[i], &st[i]) != 0)
stat_errno[i] = errno;
else
{
@@ -574,30 +577,30 @@ intuit_diff_type (void)
{
bool is_empty;
- i = best_name (name, stat_errno);
+ i = best_name (p_name, stat_errno);
if (i == NONE && patch_get)
{
enum nametype nope = NONE;
for (i = OLD; i <= INDEX; i++)
- if (name[i])
+ if (p_name[i])
{
char const *cs;
char *getbuf;
char *diffbuf;
bool readonly = (outfile
- && strcmp (outfile, name[i]) != 0);
+ && strcmp (outfile, p_name[i]) != 0);
- if (nope == NONE || strcmp (name[nope], name[i]) != 0)
+ if (nope == NONE || strcmp (p_name[nope], p_name[i]) != 0)
{
cs = (version_controller
- (name[i], readonly, (struct stat *) 0,
+ (p_name[i], readonly, (struct stat *) 0,
&getbuf, &diffbuf));
version_controlled[i] = !! cs;
if (cs)
{
- if (version_get (name[i], cs, false, readonly,
+ if (version_get (p_name[i], cs, false, readonly,
getbuf, &st[i]))
stat_errno[i] = 0;
else
@@ -627,7 +630,7 @@ intuit_diff_type (void)
(i == NONE ? "delete"
: st[i].st_size == 0 ? "empty out"
: "create"),
- quotearg (name[i == NONE || st[i].st_size == 0 ? i0 : i]),
+ quotearg (p_name[i == NONE || st[i].st_size == 0 ? i0 : i]),
(i == NONE ? "does not exist"
: st[i].st_size == 0 ? "is already empty"
: "already exists"));
@@ -640,19 +643,19 @@ intuit_diff_type (void)
int distance_from_minimum[3];
for (i = OLD; i <= INDEX; i++)
- if (name[i])
+ if (p_name[i])
{
- newdirs[i] = (prefix_components (name[i], false)
- - prefix_components (name[i], true));
+ newdirs[i] = (prefix_components (p_name[i], false)
+ - prefix_components (p_name[i], true));
if (newdirs[i] < newdirs_min)
newdirs_min = newdirs[i];
}
for (i = OLD; i <= INDEX; i++)
- if (name[i])
+ if (p_name[i])
distance_from_minimum[i] = newdirs[i] - newdirs_min;
- i = best_name (name, distance_from_minimum);
+ i = best_name (p_name, distance_from_minimum);
}
}
}
@@ -661,17 +664,12 @@ intuit_diff_type (void)
inerrno = -1;
else
{
- inname = name[i];
- name[i] = 0;
+ inname = savestr(p_name[i]);
inerrno = stat_errno[i];
invc = version_controlled[i];
instat = st[i];
}
- for (i = OLD; i <= INDEX; i++)
- if (name[i])
- free (name[i]);
-
return retval;
}
@@ -1803,6 +1801,12 @@ pch_says_nonexistent (bool which)
/* Return timestamp of patch header for file WHICH (false = old, true = new),
or -1 if there was no timestamp or an error in the timestamp. */
+const char *
+pch_name (enum nametype type)
+{
+ return type == NONE ? NULL : p_name[type];
+}
+
time_t
pch_timestamp (bool which)
{
Index: b/pch.h
===================================================================
--- a/pch.h
+++ b/pch.h
@@ -22,6 +22,8 @@
If not, write to the Free Software Foundation,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+enum nametype { OLD, NEW, INDEX, NONE };
+
LINENUM pch_end (void);
LINENUM pch_first (void);
LINENUM pch_hunk_beg (void);
@@ -39,6 +41,7 @@ char pch_char (LINENUM);
int another_hunk (enum diff, bool);
int pch_says_nonexistent (bool);
size_t pch_line_len (LINENUM);
+const char *pch_name(enum nametype);
time_t pch_timestamp (bool);
void do_ed_script (FILE *);
void open_patch_file (char const *);
++++++ diff3-style-merges-refactoring-2.diff ++++++
---
patch.c | 42 ++++++++++++++++++++----------------------
1 file changed, 20 insertions(+), 22 deletions(-)
Index: b/patch.c
===================================================================
--- a/patch.c
+++ b/patch.c
@@ -286,32 +286,30 @@ main (int argc, char **argv)
newwhere = pch_newfirst() + last_offset;
if (skip_rest_of_patch) {
goto skip_hunk;
- }
- else if (!where
- || (where == 1 && pch_says_nonexistent (reverse) == 2
- && instat.st_size)) {
-
- if (where)
- say ("Patch attempted to create file %s, which already exists.\n",
- quotearg (inname));
+ } else if (where == 1 && pch_says_nonexistent (reverse) == 2
+ && instat.st_size) {
+ say ("Patch attempted to create file %s, "
+ "which already exists.\n", quotearg (inname));
goto skip_hunk;
- }
- else if (! apply_hunk (&outstate, where)) {
+ } else if (!where) {
goto skip_hunk;
} else {
- if (verbosity == VERBOSE
- || (verbosity != SILENT && (fuzz || last_offset))) {
- say ("Hunk #%d succeeded at %s", hunk,
- format_linenum (numbuf, newwhere));
- if (fuzz)
- say (" with fuzz %s", format_linenum (numbuf, fuzz));
- if (last_offset)
- say (" (offset %s line%s)",
- format_linenum (numbuf, last_offset),
- "s" + (last_offset == 1));
- say (".\n");
- }
+ if (!apply_hunk (&outstate, where))
+ goto skip_hunk;
+ }
+
+ if (verbosity == VERBOSE
+ || (verbosity != SILENT && (fuzz || last_offset))) {
+ say ("Hunk #%d succeeded at %s", hunk,
+ format_linenum (numbuf, newwhere));
+ if (fuzz)
+ say (" with fuzz %s", format_linenum (numbuf, fuzz));
+ if (last_offset)
+ say (" (offset %s line%s)",
+ format_linenum (numbuf, last_offset),
+ "s" + (last_offset == 1));
+ say (".\n");
}
continue;
++++++ diff3-style-merges-refactoring.diff ++++++
---
patch.c | 36 +++++++++++++++---------------------
1 file changed, 15 insertions(+), 21 deletions(-)
Index: b/patch.c
===================================================================
--- a/patch.c
+++ b/patch.c
@@ -285,13 +285,7 @@ main (int argc, char **argv)
newwhere = pch_newfirst() + last_offset;
if (skip_rest_of_patch) {
- if (!failed)
- reject_header(outname);
- abort_hunk();
- failed++;
- if (verbosity == VERBOSE)
- say ("Hunk #%d ignored at %s.\n", hunk,
- format_linenum (numbuf, newwhere));
+ goto skip_hunk;
}
else if (!where
|| (where == 1 && pch_says_nonexistent (reverse) == 2
@@ -301,22 +295,10 @@ main (int argc, char **argv)
say ("Patch attempted to create file %s, which already exists.\n",
quotearg (inname));
- if (!failed)
- reject_header(outname);
- abort_hunk();
- failed++;
- if (verbosity != SILENT)
- say ("Hunk #%d FAILED at %s.\n", hunk,
- format_linenum (numbuf, newwhere));
+ goto skip_hunk;
}
else if (! apply_hunk (&outstate, where)) {
- if (!failed)
- reject_header(outname);
- abort_hunk ();
- failed++;
- if (verbosity != SILENT)
- say ("Hunk #%d FAILED at %s.\n", hunk,
- format_linenum (numbuf, newwhere));
+ goto skip_hunk;
} else {
if (verbosity == VERBOSE
|| (verbosity != SILENT && (fuzz || last_offset))) {
@@ -331,6 +313,18 @@ main (int argc, char **argv)
say (".\n");
}
}
+ continue;
+
+skip_hunk:
+ if (!failed)
+ reject_header(outname);
+ abort_hunk ();
+ failed++;
+ if (verbosity == VERBOSE ||
+ (!skip_rest_of_patch && verbosity != SILENT))
+ say ("Hunk #%d %s at %s.\n", hunk,
+ skip_rest_of_patch ? "ignored" : "FAILED",
+ format_linenum (numbuf, newwhere));
}
if (!skip_rest_of_patch)
++++++ diff3-style-merges-rejects.diff ++++++
From: Andreas Gruenbacher <agruen(a)suse.de>
Subject: diff3-style merges: merge rejects
With the --merge-all option, hunks which do not apply and which would
end up in a *.rej file will also get added to output files. They will
be bracketed like this:
<<<<<<<
old lines from patch
|||||||
new lines from patch
>>>>>>>
With this change, all pieces of a patch can be applied, and all the
resulting merge conflicts can be fixed in the patched files instead
of looking at the reject files.
Signed-off-by: Andreas Gruenbacher <agruen(a)suse.de>
---
patch.c | 40 +++++++++++++++++++++++++++++++---------
1 file changed, 31 insertions(+), 9 deletions(-)
Index: b/patch.c
===================================================================
--- a/patch.c
+++ b/patch.c
@@ -79,7 +79,7 @@ static void reinitialize_almost_everythi
static void remove_if_needed (char const *, int volatile *);
static void usage (FILE *, int) __attribute__((noreturn));
-enum mergetype { SHOW_ALL = 1, SHOW_FUZZ = 2 };
+enum mergetype { SHOW_ALL = 1, SHOW_FUZZ = 2, MERGE_REJECTS = 4 };
static enum mergetype mergetype;
static bool make_backups;
@@ -299,7 +299,18 @@ main (int argc, char **argv)
goto skip_hunk;
} else if (!where) {
- goto skip_hunk;
+ if (mergetype & MERGE_REJECTS) {
+ LINENUM guess = pch_first () + last_offset;
+
+ if (merge_hunk(&outstate, guess, -1)) {
+ merged++;
+ mismatch = 1;
+ } else {
+ /* FIXME: guess harder! */
+ goto skip_hunk;
+ }
+ } else
+ goto skip_hunk;
} else {
if ((mergetype & SHOW_ALL) ||
(fuzz && (mergetype & SHOW_FUZZ))) {
@@ -316,10 +327,16 @@ main (int argc, char **argv)
if (verbosity == VERBOSE
|| (verbosity != SILENT && (fuzz || last_offset))) {
- say ("Hunk #%d succeeded at %s", hunk,
- format_linenum (numbuf, newwhere));
- if (fuzz)
- say (" with fuzz %s", format_linenum (numbuf, fuzz));
+ if (fuzz > mymaxfuzz) {
+ say ("Hunk #%d merged at %s with errors", hunk,
+ format_linenum (numbuf, newwhere));
+ somefailed = true;
+ } else {
+ say ("Hunk #%d succeeded at %s", hunk,
+ format_linenum (numbuf, newwhere));
+ if (fuzz)
+ say (" with fuzz %s", format_linenum (numbuf, fuzz));
+ }
if (last_offset)
say (" (offset %s line%s)",
format_linenum (numbuf, last_offset),
@@ -521,7 +538,7 @@ reinitialize_almost_everything (void)
skip_rest_of_patch = false;
}
-static char const shortopts[] = "bB:cd:D:eEfF:g:i:lnNo:p:r:RstTuvV:x:Y:z:Z";
+static char const shortopts[] = "bB:cd:D:eEfF:g:i:lMnNo:p:r:RstTuvV:x:Y:z:Z";
static struct option const longopts[] =
{
{"backup", no_argument, NULL, 'b'},
@@ -591,7 +608,7 @@ static char const *const option_help[] =
" -r FILE --reject-file=FILE Output rejects to FILE.",
"",
" -D NAME --ifdef=NAME Make merged if-then-else output using NAME.",
-" --merge={fuzz,all} Produce a diff3-style merge.",
+" --merge={rejects,fuzz,all} Produce a diff3-style merge.",
" -E --remove-empty-files Remove output files that are empty after patching.",
"",
" -Z --set-utc Set times of patched files, assuming diff uses UTC (GMT).",
@@ -730,6 +747,9 @@ get_some_switches (void)
case 'l':
canonicalize = true;
break;
+ case 'M':
+ mergetype |= MERGE_REJECTS;
+ break;
case 'n':
diff_type = NORMAL_DIFF;
break;
@@ -835,7 +855,9 @@ get_some_switches (void)
char *tok = strtok(optarg, ",");
do {
- if (!strcmp(tok, "fuzz"))
+ if (!strcmp(tok, "rejects"))
+ mergetype |= MERGE_REJECTS;
+ else if (!strcmp(tok, "fuzz"))
mergetype |= SHOW_FUZZ;
else if (!strcmp(tok, "all"))
mergetype |= SHOW_ALL;
++++++ diff3-style-merges-tests.diff ++++++
---
merge-tests/diff3-merge.test | 35 +++++++++
merge-tests/locate-rejects.test | 77 ++++++++++++++++++++
merge-tests/modes.test | 148 ++++++++++++++++++++++++++++++++++++++++
merge-tests/overlap-patch.test | 94 +++++++++++++++++++++++++
merge-tests/prefix-suffix.test | 105 ++++++++++++++++++++++++++++
5 files changed, 459 insertions(+)
Index: b/merge-tests/diff3-merge.test
===================================================================
--- /dev/null
+++ b/merge-tests/diff3-merge.test
@@ -0,0 +1,35 @@
+$ tmpdir=$(mktemp -d)
+$ trap "cd /; rm -rf $tmpdir" EXIT
+$ cd $tmpdir
+
+ $ seq 1 4 > a
+ $ sed -e 's/2/2b/' a > b
+ $ sed -e 's/4/4d/' a > c
+
+Diff3 will merge changes if they are one line apart:
+
+ $ diff3 -m b a c
+ > 1
+ > 2b
+ > 3
+ > 4d
+
+But it will not merge adjacent changes:
+
+ $ sed -e 's/3/3c/' a > d
+
+ $ diff3 -m b a d
+ > 1
+ > <<<<<<< b
+ > 2b
+ > 3
+ > ||||||| a
+ > 2
+ > 3
+ > =======
+ > 2
+ > 3c
+ > >>>>>>> d
+ > 4
+
+Patch will merge the changes in either case.
Index: b/merge-tests/modes.test
===================================================================
--- /dev/null
+++ b/merge-tests/modes.test
@@ -0,0 +1,148 @@
+$ tmpdir=$(mktemp -d)
+$ trap "cd /; rm -rf $tmpdir" EXIT
+$ cd $tmpdir
+
+$ cat > clean.diff
+< --- a
+< +++ b
+< @@ -2 +2 @@
+< -2
+< +2clean
+
+$ seq 1 3 > c ; patch c < clean.diff
+> patching file c
+
+$ cat c
+> 1
+> 2clean
+> 3
+
+$ seq 1 3 > c ; patch --merge=all c < clean.diff
+> patching file c
+
+$ cat c
+> 1
+> <<<<<<< a
+> 2
+> =======
+> 2clean
+> >>>>>>> b
+> 3
+
+$ seq 1 3 > c ; patch --merge=fuzz c < clean.diff
+> patching file c
+
+$ cat c
+> 1
+> 2clean
+> 3
+
+$ seq 1 3 > c ; patch --merge=rejects c < clean.diff
+> patching file c
+
+$ cat c
+> 1
+> 2clean
+> 3
+
+$ cat > fuzz.diff
+< --- a
+< +++ b
+< @@ -1,3 +1,3 @@
+< x
+< -2
+< +2fuzz
+< x
+
+$ seq 1 3 > c ; patch c < fuzz.diff
+> patching file c
+> Hunk #1 succeeded at 1 with fuzz 1.
+
+$ cat c
+> 1
+> 2fuzz
+> 3
+
+$ seq 1 3 > c ; patch --merge=all c < fuzz.diff
+> patching file c
+> Hunk #1 succeeded at 1 with fuzz 1.
+
+$ cat c
+> <<<<<<< a
+> x
+> 2
+> x
+> ||||||| b
+> x
+> 2fuzz
+> x
+> =======
+> 1
+> 2fuzz
+> 3
+> >>>>>>>
+
+$ seq 1 3 > c ; patch --merge=fuzz c < fuzz.diff
+> patching file c
+> Hunk #1 succeeded at 1 with fuzz 1.
+
+$ cat c
+> <<<<<<< a
+> x
+> 2
+> x
+> ||||||| b
+> x
+> 2fuzz
+> x
+> =======
+> 1
+> 2fuzz
+> 3
+> >>>>>>>
+
+$ seq 1 3 > c ; patch --merge=rejects c < fuzz.diff
+> patching file c
+> Hunk #1 succeeded at 1 with fuzz 1.
+
+$ cat c
+> 1
+> 2fuzz
+> 3
+
+$ cat > reject.diff
+< --- a
+< +++ b
+< @@ -2 +2 @@
+< -2reject
+< +2reject
+
+$ seq 1 3 > c ; patch c < reject.diff
+> patching file c
+> Hunk #1 FAILED at 2.
+> 1 out of 1 hunk FAILED -- saving rejects to file c.rej
+
+$ seq 1 3 > c ; patch --merge=all c < reject.diff
+> patching file c
+> Hunk #1 FAILED at 2.
+> 1 out of 1 hunk FAILED -- saving rejects to file c.rej
+
+$ seq 1 3 > c ; patch --merge=fuzz c < reject.diff
+> patching file c
+> Hunk #1 FAILED at 2.
+> 1 out of 1 hunk FAILED -- saving rejects to file c.rej
+
+$ seq 1 3 > c ; patch --merge=rejects c < reject.diff
+> patching file c
+> Hunk #1 merged at 2 with errors.
+
+$ cat c
+> 1
+> <<<<<<< a
+> 2reject
+> ||||||| b
+> 2reject
+> >>>>>>>
+> 2
+> 3
+
Index: b/merge-tests/prefix-suffix.test
===================================================================
--- /dev/null
+++ b/merge-tests/prefix-suffix.test
@@ -0,0 +1,105 @@
+$ tmpdir=$(mktemp -d)
+$ trap "cd /; rm -rf $tmpdir" EXIT
+$ cd $tmpdir
+
+$ seq 1 7 > a
+$ seq 1 7 | sed -e '4d' > b
+$ diff -u -L a -L b a b > ab.diff
+$ diff -u -L b -L a b a > ba.diff
+
+$ cp a c
+$ patch --merge=all c < ab.diff
+> patching file c
+
+$ cat c
+> 1
+> 2
+> 3
+> <<<<<<< a
+> 4
+> =======
+> >>>>>>> b
+> 5
+> 6
+> 7
+
+$ cp b c
+$ patch --merge=all c < ba.diff
+> patching file c
+
+$ cat c
+> 1
+> 2
+> 3
+> <<<<<<< b
+> =======
+> 4
+> >>>>>>> a
+> 5
+> 6
+> 7
+
+$ diff -u /dev/null a > a.diff
+$ echo -n '' > c
+$ patch --merge=all c < a.diff
+> patching file c
+
+$ cat c
+> <<<<<<<
+> =======
+> 1
+> 2
+> 3
+> 4
+> 5
+> 6
+> 7
+> >>>>>>> a
+
+$ diff -u a /dev/null > a-.diff
+$ cp a c
+$ patch --merge=all c < a-.diff
+> patching file c
+
+$ cat c
+#
+> <<<<<<< a
+> 1
+> 2
+> 3
+> 4
+> 5
+> 6
+> 7
+> =======
+> >>>>>>>
+
+$ seq -f '%gc' 1 7 > c
+$ patch --merge=rejects c < ab.diff
+> patching file c
+> Hunk #1 merged at 1 with errors.
+
+$ cat c
+> <<<<<<< a
+> 1
+> 2
+> 3
+> 4
+> 5
+> 6
+> 7
+> ||||||| b
+> 1
+> 2
+> 3
+> 5
+> 6
+> 7
+> >>>>>>>
+> 1c
+> 2c
+> 3c
+> 4c
+> 5c
+> 6c
+> 7c
Index: b/merge-tests/overlap-patch.test
===================================================================
--- /dev/null
+++ b/merge-tests/overlap-patch.test
@@ -0,0 +1,94 @@
+$ tmpdir=$(mktemp -d)
+$ trap "cd /; rm -rf $tmpdir" EXIT
+$ cd $tmpdir
+
+$ cat > patch
+< --- a
+< +++ b
+< @@ -2,3 +2,3 @@
+< x
+< -3
+< +3b
+< x
+
+$ seq 1 6 > file
+$ patch file < patch
+> patching file file
+> Hunk #1 succeeded at 2 with fuzz 1.
+
+$ seq 1 6 > file
+$ patch --merge=all file < patch
+> patching file file
+> Hunk #1 succeeded at 2 with fuzz 1.
+
+$ cat file
+> 1
+> <<<<<<< a
+> x
+> 3
+> x
+> ||||||| b
+> x
+> 3b
+> x
+> =======
+> 2
+> 3b
+> 4
+> >>>>>>>
+> 5
+> 6
+
+$ cat > patch
+< --- a
+< +++ b
+< @@ -2,3 +2,3 @@
+< x
+< -3
+< +3b
+< x
+< @@ -3,3 +3,3 @@
+< x
+< -4
+< +4b
+< x
+
+$ seq 1 6 > file
+$ patch file < patch
+> patching file file
+> Hunk #1 succeeded at 2 with fuzz 1.
+> Hunk #2 succeeded at 3 with fuzz 1.
+
+$ seq 1 6 > file
+$ patch --merge=all file < patch
+> patching file file
+> Hunk #1 succeeded at 2 with fuzz 1.
+> Hunk #2 succeeded at 3 with fuzz 1.
+
+$ cat file
+> 1
+> <<<<<<< a
+> x
+> 3
+> x
+> ||||||| b
+> x
+> 3b
+> x
+> =======
+> 2
+> 3b
+> >>>>>>>
+> <<<<<<< a
+> x
+> 4
+> x
+> ||||||| b
+> x
+> 4b
+> x
+> =======
+> 4b
+> 5
+> >>>>>>>
+> 6
Index: b/merge-tests/locate-rejects.test
===================================================================
--- /dev/null
+++ b/merge-tests/locate-rejects.test
@@ -0,0 +1,77 @@
+$ tmpdir=$(mktemp -d)
+$ trap "cd /; rm -rf $tmpdir" EXIT
+$ cd $tmpdir
+
+$ seq 1 7 > a
+$ seq 1 7 | sed -e 's/4/4b/' > b
+$ seq 1 7 | sed -e 's/4/4c/' > c
+$ seq 1 7 | sed -e '4d' > d
+
+$ diff -u a b > ab.diff
+
+$ patch c < ab.diff
+> patching file c
+> Hunk #1 FAILED at 1.
+> 1 out of 1 hunk FAILED -- saving rejects to file c.rej
+
+$ patch --merge=rejects c < ab.diff
+> patching file c
+> Hunk #1 merged at 1 with errors.
+
+$ cat c
+> 1
+> 2
+> 3
+> <<<<<<< a
+> 4
+> 5
+> 6
+> 7
+> ||||||| b
+> 4b
+> 5
+> 6
+> 7
+> >>>>>>>
+> 4c
+> 5
+> 6
+> 7
+
+$ (seq 1 3; echo 7) > c
+$ patch --merge=rejects c < ab.diff
+> patching file c
+> Hunk #1 merged at 1 with errors.
+
+$ cat c
+> 1
+> 2
+> 3
+> <<<<<<< a
+> 4
+> 5
+> 6
+> ||||||| b
+> 4b
+> 5
+> 6
+> >>>>>>>
+> 7
+
+$ patch --merge=rejects d < ab.diff
+> patching file d
+> Hunk #1 merged at 1 with errors.
+
+$ cat d
+> 1
+> 2
+> 3
+> <<<<<<< a
+> 4
+> ||||||| b
+> 4b
+> >>>>>>>
+> 5
+> 6
+> 7
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package pam_krb5 for openSUSE:Factory
checked in at Wed Feb 4 00:17:28 CET 2009.
--------
--- pam_krb5/pam_krb5.changes 2009-01-29 11:00:54.000000000 +0100
+++ pam_krb5/pam_krb5.changes 2009-02-02 17:37:50.283318000 +0100
@@ -1,0 +2,6 @@
+Mon Feb 2 17:30:42 CET 2009 - mc(a)suse.de
+
+- pam_sm_setcred should assume PAM_ESTABLISH_CRED
+ if no flag are passed (bnc#470414)
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
New:
----
pam_krb5-2.2.3-1-setcred-assume-establish.dif
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pam_krb5.spec ++++++
--- /var/tmp/diff_new_pack.w30878/_old 2009-02-04 00:15:13.000000000 +0100
+++ /var/tmp/diff_new_pack.w30878/_new 2009-02-04 00:15:13.000000000 +0100
@@ -31,7 +31,7 @@
%endif
#
Version: 2.3.1
-Release: 43
+Release: 46
Summary: PAM Module for Kerberos Authentication
Url: http://sourceforge.net/projects/pam-krb5/
Source: pam_krb5-%{version}-%{PAM_RELEASE}.tar.bz2
@@ -44,6 +44,7 @@
Patch7: bug-425861_pam_krb5-2.3.1-ccacheperms.patch
Patch8: pam_krb5-2.3.1-fix-pwchange-with-use_shmem.dif
Patch9: pam_krb5-2.3.1-switch-perms-on-refresh.dif
+Patch10: pam_krb5-2.2.3-1-setcred-assume-establish.dif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -68,6 +69,7 @@
%patch7 -p1
%patch8 -p1
%patch9 -p1
+%patch10
%build
%{suse_update_config -f}
@@ -102,6 +104,9 @@
%attr(755,root,root) /usr/bin/afs5log
%changelog
+* Mon Feb 02 2009 mc(a)suse.de
+- pam_sm_setcred should assume PAM_ESTABLISH_CRED
+ if no flag are passed (bnc#470414)
* Tue Jan 13 2009 olh(a)suse.de
- obsolete old -XXbit packages (bnc#437293)
* Fri Nov 21 2008 mc(a)suse.de
++++++ pam_krb5-2.2.3-1-setcred-assume-establish.dif ++++++
--- src/auth.c
+++ src/auth.c 2009/01/29 11:44:07
@@ -419,6 +419,6 @@
if (flags & PAM_DELETE_CRED) {
return pam_sm_close_session(pamh, flags, argc, argv);
}
- warn("pam_setcred() called with no flags");
- return PAM_SERVICE_ERR;
+ warn("pam_setcred() called with no flags. Assume PAM_ESTABLISH_CRED");
+ return pam_sm_open_session(pamh, (flags | PAM_ESTABLISH_CRED), argc, argv);
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package obs-server for openSUSE:Factory
checked in at Wed Feb 4 00:15:02 CET 2009.
--------
--- obs-server/obs-server.changes 2008-12-15 10:19:34.000000000 +0100
+++ obs-server/obs-server.changes 2009-01-27 15:55:56.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Jan 127 13:06:47 CET 2009 - adrian(a)novell.com
+
+- Update to 1.5.rc2
+- init script fixes
+- various kiwi image handling fixes
+- relsync fixes
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
obs-server-1.5.rc1.5898.tar.bz2
New:
----
obs-server-1.5.rc2.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ obs-server.spec ++++++
--- /var/tmp/diff_new_pack.F25700/_old 2009-02-04 00:14:25.000000000 +0100
+++ /var/tmp/diff_new_pack.F25700/_new 2009-02-04 00:14:25.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package obs-server (Version MACRO)
#
-# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,9 +19,9 @@
Name: obs-server
Summary: The openSUSE Build Service -- Server Component
-%define svnversion 1.5.rc1.5898
+%define svnversion 1.5.rc2
Version: %{svnversion}
-Release: 2
+Release: 4
License: GPL v2 only
Group: Productivity/Networking/Web/Utilities
Url: http://en.opensuse.org/Build_Service
@@ -43,6 +43,7 @@
AutoReqProv: on
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: python-devel rubygem-activesupport
+Requires: build >= 2009.01.27
%if 0%{?suse_version} >= 1030
BuildRequires: fdupes
%endif
@@ -175,7 +176,7 @@
The openSUSE Team <opensuse-buildservice(a)opensuse.org>
%prep
-%setup -q -n buildservice/1.5
+%setup -q -n buildservice-1.5
#-------------------------------------------------------------------------------
%build
@@ -393,6 +394,7 @@
/usr/lib/obs/server/Meta.pm
/usr/lib/obs/server/Meta/Debmd.pm
/usr/lib/obs/server/Meta/Rpmmd.pm
+/usr/lib/obs/server/Meta/Susetagsmd.pm
/usr/lib/obs/server/COPYING
/usr/lib/obs/server/DESIGN
/usr/lib/obs/server/License
@@ -524,6 +526,11 @@
#-------------------------------------------------------------------------------
%changelog
+* Tue Feb 03 2009 adrian(a)novell.com
+- Update to 1.5.rc2
+- init script fixes
+- various kiwi image handling fixes
+- relsync fixes
* Fri Dec 12 2008 froh(a)novell.com
- branch to 1.5.rc1
- include bs_productconvert search path fix (bnc#458309)
++++++ obsdispatcher ++++++
--- /var/tmp/diff_new_pack.F25700/_old 2009-02-04 00:14:25.000000000 +0100
+++ /var/tmp/diff_new_pack.F25700/_new 2009-02-04 00:14:25.000000000 +0100
@@ -11,31 +11,43 @@
#
### BEGIN INIT INFO
# Provides: obsdispatcher
-# Required-Start: $time $syslog $remote_fs obssrcserver obsrepserver
+# Required-Start: $time $syslog obssrcserver obsrepserver
# Should-Start: obsscheduler
-# Required-Stop: $time $syslog $remote_fs obssrcserver obsrepserver
+# Required-Stop: $null
# Default-Start: 3 5
# Default-Stop: 0 1 2 4 6
-# Description: openSUSE build service dispatcher
+# Description: openSUSE build service
### END INIT INFO
. /etc/rc.status
+
. /etc/sysconfig/obs-server
# Determine the base and follow a runlevel link name.
base=${0##*/}
link=${base#*[SK][0-9][0-9]}
+if [ -z "$OBS_RUN_DIR" ]; then
+ OBS_RUN_DIR="/srv/obs/run"
+fi
+
+if [ -z "$OBS_LOG_DIR" ]; then
+ OBS_LOG_DIR="/srv/obs/log"
+fi
+
obsdir=/usr/lib/obs/server/
+rundir="$OBS_RUN_DIR"
+logdir="$OBS_LOG_DIR"
rc_reset
case "$1" in
start)
echo -n "Initializing obsdispatcher"
+ mkdir -p "$rundir" "$logdir"
+ chown obsrun:obsrun "$logdir" "$rundir"
# FIXME: not nice, this should receive a proper daemon handling,
# including real logging, pid file and startproc
- startproc -l /srv/obs/log/dispatcher.log \
- "$obsdir"/bs_dispatch
+ startproc -l "$logdir"/dispatcher.log "$obsdir"/bs_dispatch
rc_status -v
;;
stop)
++++++ obspublisher ++++++
--- /var/tmp/diff_new_pack.F25700/_old 2009-02-04 00:14:25.000000000 +0100
+++ /var/tmp/diff_new_pack.F25700/_new 2009-02-04 00:14:25.000000000 +0100
@@ -11,30 +11,43 @@
#
### BEGIN INIT INFO
# Provides: obspublisher
-# Required-Start: $time $syslog $remote_fs obssrcserver obsrepserver
+# Required-Start: $time $syslog obssrcserver obsrepserver
# Should-Start: obsscheduler
-# Required-Stop: $time $syslog $remote_fs obssrcserver obsrepserver
+# Required-Stop: $null
# Default-Start: 3 5
# Default-Stop: 0 1 2 4 6
# Description: openSUSE build service publisher
### END INIT INFO
. /etc/rc.status
+
. /etc/sysconfig/obs-server
# Determine the base and follow a runlevel link name.
base=${0##*/}
link=${base#*[SK][0-9][0-9]}
+if [ -z "$OBS_RUN_DIR" ]; then
+ OBS_RUN_DIR="/srv/obs/run"
+fi
+
+if [ -z "$OBS_LOG_DIR" ]; then
+ OBS_LOG_DIR="/srv/obs/log"
+fi
+
obsdir=/usr/lib/obs/server/
+rundir="$OBS_RUN_DIR"
+logdir="$OBS_LOG_DIR"
rc_reset
case "$1" in
start)
echo -n "Initializing obspublisher"
+ mkdir -p "$rundir" "$logdir"
+ chown obsrun:obsrun "$logdir" "$rundir"
# FIXME: not nice, this should receive a proper daemon handling,
# including real logging, pid file and startproc
- startproc -l /srv/obs/log/publisher.log \
+ startproc -l "$logdir"/publisher.log \
"$obsdir"/bs_publish
rc_status -v
;;
++++++ obsrepserver ++++++
--- /var/tmp/diff_new_pack.F25700/_old 2009-02-04 00:14:25.000000000 +0100
+++ /var/tmp/diff_new_pack.F25700/_new 2009-02-04 00:14:25.000000000 +0100
@@ -9,8 +9,8 @@
#
### BEGIN INIT INFO
# Provides: obsrepserver
-# Required-Start: $time $remote_fs $syslog
-# Required-Stop: $time $remote_fs $syslog
+# Required-Start: $time $syslog
+# Required-Stop: $null
# Default-Start: 3 5
# Default-Stop: 0 1 2 4 6
# Description: openSUSE build service repository server
@@ -18,19 +18,33 @@
. /etc/rc.status
+. /etc/sysconfig/obs-server
+
# Determine the base and follow a runlevel link name.
base=${0##*/}
link=${base#*[SK][0-9][0-9]}
+if [ -z "$OBS_RUN_DIR" ]; then
+ OBS_RUN_DIR="/srv/obs/run"
+fi
+
+if [ -z "$OBS_LOG_DIR" ]; then
+ OBS_LOG_DIR="/srv/obs/log"
+fi
+
obsdir=/usr/lib/obs/server/
+rundir="$OBS_RUN_DIR"
+logdir="$OBS_LOG_DIR"
rc_reset
case "$1" in
start)
echo -n "Initializing obsrepserver"
+ mkdir -p "$rundir" "$logdir"
+ chown obsrun:obsrun "$logdir" "$rundir"
# FIXME: not nice, this should receive a proper daemon handling,
# including real logging, pid file and startproc
- startproc -l /srv/obs/log/rep_server.log "$obsdir"/bs_repserver
+ startproc -l "$logdir"/rep_server.log "$obsdir"/bs_repserver
rc_status -v
;;
stop)
@@ -41,7 +55,12 @@
restart)
## If first returns OK call the second, if first or
## second command fails, set echo return value.
- $0 stop && $0 start
+ $0 status
+ if test $? = 0; then
+ touch "$rundir"/bs_repserver.restart
+ else
+ $0 stop && $0 start
+ fi
rc_status
;;
try-restart)
@@ -55,6 +74,11 @@
rc_status
;;
reload)
+ $0 status
+ if test $? = 0; then
+ touch "$rundir"/bs_repserver.restart
+ fi
+ rc_status
;;
status)
echo -n "Checking for obsrepserver: "
++++++ obsscheduler ++++++
--- /var/tmp/diff_new_pack.F25700/_old 2009-02-04 00:14:25.000000000 +0100
+++ /var/tmp/diff_new_pack.F25700/_new 2009-02-04 00:14:25.000000000 +0100
@@ -9,32 +9,46 @@
#
### BEGIN INIT INFO
# Provides: obsscheduler
-# Required-Start: $time $remote_fs $syslog obssrcserver obsrepserver
-# Required-Stop: $time $remote_fs $syslog obssrcserver obsrepserver
+# Required-Start: $time $syslog obssrcserver obsrepserver
+# Should-Start: obssrcserver obsrepserver
+# Required-Stop: $null
# Default-Start: 3 5
# Default-Stop: 0 1 2 4 6
# Description: openSUSE build service scheduler
### END INIT INFO
. /etc/rc.status
+
. /etc/sysconfig/obs-server
# Determine the base and follow a runlevel link name.
base=${0##*/}
link=${base#*[SK][0-9][0-9]}
+if [ -z "$OBS_RUN_DIR" ]; then
+ OBS_RUN_DIR="/srv/obs/run"
+fi
+
+if [ -z "$OBS_LOG_DIR" ]; then
+ OBS_LOG_DIR="/srv/obs/log"
+fi
+
obsdir=/usr/lib/obs/server/
+rundir="$OBS_RUN_DIR"
+logdir="$OBS_LOG_DIR"
rc_reset
case "$1" in
start)
echo -n "Initializing obsscheduler"
+ mkdir -p "$rundir" "$logdir"
+ chown obsrun:obsrun "$logdir" "$rundir"
cd "$obsdir"
# FIXME: not nice, this should receive a proper daemon handling,
# including real logging, pid file and startproc
test -z "$OBS_SCHEDULER_ARCHITECTURES" && OBS_SCHEDULER_ARCHITECTURES=i586
for i in $OBS_SCHEDULER_ARCHITECTURES; do
- ./bs_sched $i >& /srv/obs/log/scheduler_$i.log &
+ ./bs_sched $i >> "$logdir"/scheduler_$i.log 2>&1 &
done
rc_status -v
;;
++++++ obs-server-1.5.rc1.5898.tar.bz2 -> obs-server-1.5.rc2.tar.bz2 ++++++
++++ 599316 lines of diff (skipped)
++++++ obssignd ++++++
--- /var/tmp/diff_new_pack.F25700/_old 2009-02-04 00:14:34.000000000 +0100
+++ /var/tmp/diff_new_pack.F25700/_new 2009-02-04 00:14:34.000000000 +0100
@@ -8,10 +8,10 @@
#
### BEGIN INIT INFO
# Provides: signd
-# Required-Start: $network $remote_fs $named $syslog $time
-# Should-Start:
-# Required-Stop: $network $remote_fs $named $syslog $time
-# Should-Stop:
+# Required-Start: $network $named $syslog $time
+# Should-Start: $null
+# Required-Stop: $null
+# Should-Stop: $null
# Default-Start: 3 5
# Default-Stop:
# Description: start the gpg sign daemon
@@ -102,9 +102,9 @@
rc_status -v
;;
reload)
- # not implemented in signd.
- rc_failed 3
- rc_status -v
+ # not implemented in signd.
+ rc_failed 3
+ rc_status -v
;;
info)
++++++ obssrcserver ++++++
--- /var/tmp/diff_new_pack.F25700/_old 2009-02-04 00:14:34.000000000 +0100
+++ /var/tmp/diff_new_pack.F25700/_new 2009-02-04 00:14:34.000000000 +0100
@@ -9,8 +9,8 @@
#
### BEGIN INIT INFO
# Provides: obssrcserver
-# Required-Start: $time $syslog $remote_fs
-# Required-Stop: $time $syslog $remote_fs
+# Required-Start: $time $syslog
+# Required-Stop: $null
# Default-Start: 3 5
# Default-Stop: 0 1 2 4 6
# Description: openSUSE build service source repository server
@@ -18,19 +18,33 @@
. /etc/rc.status
+. /etc/sysconfig/obs-server
+
# Determine the base and follow a runlevel link name.
base=${0##*/}
link=${base#*[SK][0-9][0-9]}
+if [ -z "$OBS_RUN_DIR" ]; then
+ OBS_RUN_DIR="/srv/obs/run"
+fi
+
+if [ -z "$OBS_LOG_DIR" ]; then
+ OBS_LOG_DIR="/srv/obs/log"
+fi
+
obsdir=/usr/lib/obs/server/
+rundir="$OBS_RUN_DIR"
+logdir="$OBS_LOG_DIR"
rc_reset
case "$1" in
start)
echo -n "Initializing obssrcserver"
+ mkdir -p "$rundir" "$logdir"
+ chown obsrun:obsrun "$logdir" "$rundir"
# FIXME: not nice, this should receive a proper daemon handling,
# including real logging, pid file and startproc
- startproc -l /srv/obs/log/src_server.log "$obsdir"/bs_srcserver
+ startproc -l "$logdir"/src_server.log "$obsdir"/bs_srcserver
[ "$?" -ne 0 ] && rc_status -v
# FIXME:
@@ -53,7 +67,13 @@
restart)
## If first returns OK call the second, if first or
## second command fails, set echo return value.
- $0 stop && $0 start
+# $0 stop && $0 start
+ $0 status
+ if test $? = 0; then
+ touch "$rundir"/bs_srcserver.restart
+ else
+ $0 stop && $0 start
+ fi
rc_status
;;
try-restart)
@@ -67,6 +87,11 @@
rc_status
;;
reload)
+ $0 status
+ if test $? = 0; then
+ touch "$rundir"/bs_srcserver.restart
+ fi
+ rc_status
;;
status)
echo -n "Checking for obssrcserver: "
++++++ obsworker ++++++
--- /var/tmp/diff_new_pack.F25700/_old 2009-02-04 00:14:34.000000000 +0100
+++ /var/tmp/diff_new_pack.F25700/_new 2009-02-04 00:14:34.000000000 +0100
@@ -9,8 +9,8 @@
#
### BEGIN INIT INFO
# Provides: obsworker
-# Required-Start: $time $network $remote_fs $syslog
-# Required-Stop: $time $network $remote_fs $syslog
+# Required-Start: $time $network $syslog
+# Required-Stop: $time $network $syslog
# Default-Start: 3 5
# Default-Stop: 0 1 2 4 6
# Description: openSUSE build service worker
@@ -23,10 +23,17 @@
# Determine the base and follow a runlevel link name.
base=${0##*/}
link=${base#*[SK][0-9][0-9]}
-workerdir=/var/run/obsworker
-workerbootdir="$workerdir"/boot
-screenrc=/var/run/obsworker/boot/screenrc
-obsopt=""
+
+if [ -z "$OBS_RUN_DIR" ]; then
+ OBS_RUN_DIR="/var/run/obs"
+fi
+if [ -z "$OBS_REPO_SERVER" ]; then
+ OBS_REPO_SERVER="localhost:6262"
+fi
+
+if [ -z "$OBS_LOG_DIR" ]; then
+ OBS_LOG_DIR="/var/log/obs"
+fi
if [ -z "$OBS_SRC_SERVER" ]; then
OBS_SRC_SERVER="localhost:6362"
@@ -40,10 +47,18 @@
obsopt=--xen
fi
+obsrundir="$OBS_RUN_DIR"
+workerdir="$obsrundir"/worker
+workerbootdir="$workerdir"/boot
+screenrc="$workerdir"/boot/screenrc
+obsopt=""
+
rc_reset
case "$1" in
start)
# reset screenrc
+ mkdir -p "$obsrundir"
+ chown obsrun:obsrun "$obsrundir"
rm -rf "$workerdir"
mkdir -p "$workerbootdir"
echo "zombie on" > $screenrc
++++++ sysconfig.obs-server ++++++
--- /var/tmp/diff_new_pack.F25700/_old 2009-02-04 00:14:34.000000000 +0100
+++ /var/tmp/diff_new_pack.F25700/_new 2009-02-04 00:14:34.000000000 +0100
@@ -16,14 +16,28 @@
# If you also have workers on this host, each worker can also need 1
# GB RAM in some known cases (e.g. compiling gcc)
#
-#OBS_SCHEDULER_ARCHITECTURES="i586 x86_64 ppc ppc64 s390 s390x ia64 sparc sparc64 mips mips64 armv4l armv5el sh4"
-#OBS_SCHEDULER_ARCHITECTURES="armv4l"
-#OBS_SCHEDULER_ARCHITECTURES="armv5el"
-#OBS_SCHEDULER_ARCHITECTURES="ppc"
-#OBS_SCHEDULER_ARCHITECTURES="ppc64"
+#OBS_SCHEDULER_ARCHITECTURES="i586 x86_64 ppc ppc64 s390 s390x ia64 sparc sparc64 mips mips64 armv4l armv5el armv7el sh4"
+
#OBS_SCHEDULER_ARCHITECTURES="i586"
#OBS_SCHEDULER_ARCHITECTURES="x86_64"
-#OBS_SCHEDULER_ARCHITECTURES="i586 x86_64 ppc"
-#OBS_SCHEDULER_ARCHITECTURES="i586 x86_64 ppc ppc64"
-#OBS_SCHEDULER_ARCHITECTURES="i586 x86_64 ppc ppc64 armv4l armv5el"
-OBS_SCHEDULER_ARCHITECTURES="i586 x86_64"
+#OBS_SCHEDULER_ARCHITECTURES="i586 x86_64"
+
+#OBS_SCHEDULER_ARCHITECTURES="armv4l armv5el armv7el"
+#OBS_SCHEDULER_ARCHITECTURES="ppc ppc64"
+
+#OBS_SCHEDULER_ARCHITECTURES="x86_64 ppc ppc64"
+#OBS_SCHEDULER_ARCHITECTURES="i586 armv4l armv5el armv7el"
+
+## Path: Applications/OBS
+## Description: The base for OBS communucation directory
+## Type: string
+## Default: "/srv/obs/run"
+## Config: OBS
+OBS_RUN_DIR="/srv/obs/run"
+
+## Path: Applications/OBS
+## Description: The base for OBS logging directory
+## Type: string
+## Default: "/srv/obs/log"
+## Config: OBS
+OBS_LOG_DIR="/srv/obs/log"
++++++ sysconfig.obs-worker ++++++
--- /var/tmp/diff_new_pack.F25700/_old 2009-02-04 00:14:34.000000000 +0100
+++ /var/tmp/diff_new_pack.F25700/_new 2009-02-04 00:14:34.000000000 +0100
@@ -41,3 +41,17 @@
# 0 means let the operating system assign a port number
#
OBS_WORKER_PORTBASE="0"
+
+## Path: Applications/OBS
+## Description: The base for OBS communucation directory
+## Type: string
+## Default: "/var/run/obs"
+## Config: OBS
+OBS_RUN_DIR="/var/run/obs"
+
+## Path: Applications/OBS
+## Description: The base for OBS logging directory
+## Type: string
+## Default: "/var/log/obs"
+## Config: OBS
+OBS_LOG_DIR="/var/log/obs"
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package NetworkManager-novellvpn for openSUSE:Factory
checked in at Wed Feb 4 00:08:11 CET 2009.
--------
--- NetworkManager-novellvpn/NetworkManager-novellvpn.changes 2009-01-24 16:49:44.000000000 +0100
+++ NetworkManager-novellvpn/NetworkManager-novellvpn.changes 2009-02-03 09:11:28.561435000 +0100
@@ -1,0 +2,5 @@
+Tue Feb 3 09:15:44 CET 2009 - bili(a)suse.de
+
+- Add no-split-tunnel feature (bnc#456088).
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
NetworkManager-novellvpn-0.7.2.r1067.tar.bz2
New:
----
NetworkManager-novellvpn-0.7.2.r1121.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ NetworkManager-novellvpn.spec ++++++
--- /var/tmp/diff_new_pack.n15649/_old 2009-02-04 00:06:49.000000000 +0100
+++ /var/tmp/diff_new_pack.n15649/_new 2009-02-04 00:06:49.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package NetworkManager-novellvpn (Version 0.7.2.r1067)
+# spec file for package NetworkManager-novellvpn (Version 0.7.2.r1121)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -21,8 +21,8 @@
Name: NetworkManager-novellvpn
BuildRequires: NetworkManager-devel NetworkManager-gnome intltool libglade2-devel libgnomeui-devel libnl-devel perl-XML-Parser update-desktop-files
Summary: VPN support for Turnpike
-Version: 0.7.2.r1067
-Release: 7
+Version: 0.7.2.r1121
+Release: 1
License: GPL v2 or later
Group: Productivity/Networking/System
Url: http://www.gnome.org/projects/NetworkManager
@@ -33,9 +33,9 @@
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Requires: NetworkManager >= 0.7.0.r4274
Requires: %{name}-frontend
-Requires: novell-ipsec-tools >= 0.6.3
-Requires: novell-nortelplugins >= 0.1
-Requires: turnpike >= 0.1.0
+Requires: novell-ipsec-tools >= 0.7
+Requires: novell-nortelplugins >= 0.1.4
+Requires: turnpike >= 0.1.2
%description
NetworkManager-novellvpn provides VPN support to NetworkManager for
@@ -82,6 +82,7 @@
%patch0 -p1
%build
+autoreconf -f -i
CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" \
%configure --disable-static --with-pic \
--datadir=%{_datadir}/%{name}
@@ -131,6 +132,8 @@
%{_datadir}/icons/hicolor/48x48/apps/gnome-mime-application-x-novellvpn-settings.png
%changelog
+* Tue Feb 03 2009 bili(a)suse.de
+- Add no-split-tunnel feature (bnc#456088).
* Sat Jan 24 2009 bili(a)suse.de
- D-bus policy checking (bnc#468380).
* Fri Jan 09 2009 mauro(a)suse.de
++++++ NetworkManager-novellvpn-0.7.2.r1067.tar.bz2 -> NetworkManager-novellvpn-0.7.2.r1121.tar.bz2 ++++++
++++ 65014 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/NetworkManager-novellvpn-0.7.2/auth-dialog/gnome-two-password-dialog.c new/NetworkManager-novellvpn-0.7.2/auth-dialog/gnome-two-password-dialog.c
--- old/NetworkManager-novellvpn-0.7.2/auth-dialog/gnome-two-password-dialog.c 2008-09-24 16:25:42.000000000 +0200
+++ new/NetworkManager-novellvpn-0.7.2/auth-dialog/gnome-two-password-dialog.c 2009-01-08 10:38:31.000000000 +0100
@@ -164,8 +164,6 @@
dialog_show_callback (GtkWidget *widget, gpointer callback_data)
{
GnomeTwoPasswordDialog *password_dialog;
- char *grppassword = NULL;
- int return_value_of_std_check = 0;
password_dialog = GNOME_TWO_PASSWORD_DIALOG (callback_data);
if (GTK_WIDGET_VISIBLE (password_dialog->details->username_entry) &&
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/NetworkManager-novellvpn-0.7.2/auth-dialog/gnome-two-password-dialog.h new/NetworkManager-novellvpn-0.7.2/auth-dialog/gnome-two-password-dialog.h
--- old/NetworkManager-novellvpn-0.7.2/auth-dialog/gnome-two-password-dialog.h 2008-09-23 18:01:10.000000000 +0200
+++ new/NetworkManager-novellvpn-0.7.2/auth-dialog/gnome-two-password-dialog.h 2009-01-08 10:42:24.000000000 +0100
@@ -92,10 +92,15 @@
void gnome_two_password_dialog_set_readonly_domain (GnomeTwoPasswordDialog *password_dialog,
gboolean readonly);
-void gnome_two_password_dialog_set_password_primary_label (GnomeTwoPasswordDialog *password_dialog,
- const char *password_primary_description);
-void gnome_two_password_dialog_set_password_secondary_label (GnomeTwoPasswordDialog *password_dialog,
- const char *password_secondary_description);
+void gnome_two_password_dialog_set_password_primary_label (
+ GnomeTwoPasswordDialog *password_dialog,
+ const char *password_primary_description);
+void gnome_two_password_dialog_set_password_secondary_label (
+ GnomeTwoPasswordDialog *password_dialog,
+ const char *password_secondary_description);
+void gnome_two_password_dialog_set_password_secondary_editable (
+ GnomeTwoPasswordDialog *password_dialog,
+ gboolean editable);
void gnome_two_password_dialog_set_show_remember (GnomeTwoPasswordDialog *password_dialog,
gboolean show_remember);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/NetworkManager-novellvpn-0.7.2/auth-dialog/main.c new/NetworkManager-novellvpn-0.7.2/auth-dialog/main.c
--- old/NetworkManager-novellvpn-0.7.2/auth-dialog/main.c 2008-11-10 09:03:10.000000000 +0100
+++ new/NetworkManager-novellvpn-0.7.2/auth-dialog/main.c 2009-01-08 10:39:58.000000000 +0100
@@ -85,7 +85,6 @@
GtkWidget *dialog = NULL;
gboolean is_session = FALSE;
gboolean result = FALSE;
- GnomeTwoPasswordDialogRemember remember = GNOME_TWO_PASSWORD_DIALOG_REMEMBER_NOTHING;
gboolean need_secret = FALSE;
g_return_val_if_fail (info != NULL, FALSE);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/NetworkManager-novellvpn-0.7.2/auth-dialog/profile.h new/NetworkManager-novellvpn-0.7.2/auth-dialog/profile.h
--- old/NetworkManager-novellvpn-0.7.2/auth-dialog/profile.h 2008-09-25 08:18:31.000000000 +0200
+++ new/NetworkManager-novellvpn-0.7.2/auth-dialog/profile.h 2009-01-08 10:43:35.000000000 +0100
@@ -35,6 +35,6 @@
#ifndef _PROFILE_H_
#define _PROFILE_H_
-char *check_for_group_password_in_profile();
+char *check_for_group_password_in_profile(char *vpn_uuid);
#endif // _PROFILE_H_
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/NetworkManager-novellvpn-0.7.2/ChangeLog new/NetworkManager-novellvpn-0.7.2/ChangeLog
--- old/NetworkManager-novellvpn-0.7.2/ChangeLog 2008-11-10 09:46:41.000000000 +0100
+++ new/NetworkManager-novellvpn-0.7.2/ChangeLog 2009-01-22 06:32:28.000000000 +0100
@@ -1,3 +1,25 @@
+2009-01-22 Bin Li <bili(a)novell.com>
+ * src/nm-novellvpn-service.h:
+ * src/nm-novellvpn-service.c:
+ * properties/nm-novellvpn.c:
+ * properties/nm-novellvpn-dialog.glade:
+ Support the "Disable split tunnel" features.
+2009-01-09 Bin Li <bili(a)novell.com>
+ * src/nm-novellvpn-service-novellvpn-helper.c:
+ Dismiss compile warning and delete unused functions.
+ * src/Makefile.am:
+ * src/nm-utils.c:
+ * src/nm-utils.h:
+ Delete the nm-utils related file, use NM's library.
+2009-01-08 Bin Li <bili(a)novell.com>
+ * auth-dialog/gnome-two-password-dialog.c:
+ * auth-dialog/gnome-two-password-dialog.h:
+ * auth-dialog/main.c:
+ * properties/nm-novellvpn.c:
+ * src/nm-novellvpn-service.c:
+ Dismiss unused variable.
+ * auth-dialog/profile.h:
+ Change prototype declare.
2008-11-10 Bin Li <bili(a)novell.com>
* src/nm-novellvpn-service.c:
* auth-dialog/main.c:
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/NetworkManager-novellvpn-0.7.2/config.h.in new/NetworkManager-novellvpn-0.7.2/config.h.in
--- old/NetworkManager-novellvpn-0.7.2/config.h.in 2008-09-26 05:13:21.000000000 +0200
+++ new/NetworkManager-novellvpn-0.7.2/config.h.in 2009-01-09 07:56:20.000000000 +0100
@@ -75,6 +75,10 @@
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+#undef LT_OBJDIR
+
/* Define to 1 if your C compiler doesn't accept -c and -o together. */
#undef NO_MINUS_C_MINUS_O
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/NetworkManager-novellvpn-0.7.2/po/Makefile.in.in new/NetworkManager-novellvpn-0.7.2/po/Makefile.in.in
--- old/NetworkManager-novellvpn-0.7.2/po/Makefile.in.in 2008-09-26 05:13:17.000000000 +0200
+++ new/NetworkManager-novellvpn-0.7.2/po/Makefile.in.in 2009-01-09 07:56:11.000000000 +0100
@@ -54,16 +54,16 @@
ALL_LINGUAS = @ALL_LINGUAS@
-PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; fi)
+PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi)
-USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep ^$$lang$$ $(srcdir)/LINGUAS`" -o -n "`echo $$ALINGUAS|grep ' ?$$lang ?'`"; then printf "$$lang "; fi; done; fi)
+USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep ^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep ^$$lang$$`"; then printf "$$lang "; fi; done; fi)
-USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done)
+USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done)
-POFILES=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done)
+POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done)
-DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(POFILES)
-EXTRA_DISTFILES = POTFILES.skip Makevars LINGUAS
+DISTFILES = Makefile.in.in POTFILES.in $(POFILES)
+EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS
POTFILES = \
# This comment gets stripped out
@@ -101,7 +101,6 @@
install-data: install-data-@USE_NLS@
install-data-no: all
install-data-yes: all
- $(mkdir_p) $(DESTDIR)$(itlocaledir)
linguas="$(USE_LINGUAS)"; \
for lang in $$linguas; do \
dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/NetworkManager-novellvpn-0.7.2/properties/nm-novellvpn.c new/NetworkManager-novellvpn-0.7.2/properties/nm-novellvpn.c
--- old/NetworkManager-novellvpn-0.7.2/properties/nm-novellvpn.c 2008-10-30 10:49:44.000000000 +0100
+++ new/NetworkManager-novellvpn-0.7.2/properties/nm-novellvpn.c 2009-01-22 06:30:46.000000000 +0100
@@ -212,8 +212,6 @@
NovellvpnPluginUiWidgetPrivate *priv = NOVELLVPN_PLUGIN_UI_WIDGET_GET_PRIVATE (self);
GtkWidget *widget = NULL;
const char *str = NULL;
- GtkTreeModel *model = NULL;
- GtkTreeIter iter;
const char *auth_type = NULL;
nm_debug ("Enter check_validity...");
@@ -727,9 +725,24 @@
widget = glade_xml_get_widget (priv->xml, "show_passwords_checkbutton");
g_return_val_if_fail (widget != NULL, FALSE);
g_signal_connect (G_OBJECT (widget), "toggled",
- (GCallback) show_toggled_cb,
+ G_CALLBACK (show_toggled_cb),
self);
+ widget = glade_xml_get_widget (priv->xml, "no_split_tunnel_checkbutton");
+ g_return_val_if_fail (widget != NULL, FALSE);
+ if (s_vpn) {
+ // set nosplittunnel
+ value = nm_setting_vpn_get_data_item (s_vpn, NM_NOVELLVPN_KEY_NOSPLITTUNNEL); // "nosplittunnel"
+ if (value && strlen (value) && !strcmp (value, "yes")) {
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE);
+ } else {
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE);
+ }
+ }
+ g_signal_connect (G_OBJECT (widget), "toggled",
+ G_CALLBACK (stuff_changed_cb),
+ self);
+
return TRUE;
}
@@ -844,13 +857,12 @@
NMSettingVPN *s_vpn = NULL;
GtkWidget *widget = NULL;
char *str = NULL;
- GtkTreeModel *model = NULL;
- GtkTreeIter iter;
gboolean valid = FALSE;
const char *auth_type = NULL;
int dhgroup = DHGROUP_INVALID;
int pfsgroup = PFSGROUP_INVALID;
int gateway_type = NM_NOVELLVPN_GWTYPE_INVALID;
+ gboolean nosplittunnel = FALSE;
nm_debug ("Enter update_connection...");
@@ -929,10 +941,23 @@
}
}
+ widget = glade_xml_get_widget (priv->xml, "no_split_tunnel_checkbutton");
+ if (widget != NULL) {
+ nosplittunnel = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
+ if (nosplittunnel) {
+ nm_setting_vpn_add_data_item (s_vpn,
+ NM_NOVELLVPN_KEY_NOSPLITTUNNEL,
+ "yes");
+ } else {
+ nm_setting_vpn_add_data_item (s_vpn,
+ NM_NOVELLVPN_KEY_NOSPLITTUNNEL,
+ "no");
+ }
+ }
+
nm_connection_add_setting (connection, NM_SETTING (s_vpn));
valid = TRUE;
-done:
return valid;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/NetworkManager-novellvpn-0.7.2/properties/nm-novellvpn-dialog.glade new/NetworkManager-novellvpn-0.7.2/properties/nm-novellvpn-dialog.glade
--- old/NetworkManager-novellvpn-0.7.2/properties/nm-novellvpn-dialog.glade 2008-09-25 07:48:44.000000000 +0200
+++ new/NetworkManager-novellvpn-0.7.2/properties/nm-novellvpn-dialog.glade 2009-01-19 09:37:34.000000000 +0100
@@ -1,7 +1,6 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
-<!--*- mode: xml -*-->
+<?xml version="1.0"?>
<glade-interface>
+ <requires-version lib="gtk+" version="2.12"/>
<widget class="GtkWindow" id="novellvpn-widget">
<property name="title" translatable="yes">window1</property>
<child>
@@ -36,53 +35,53 @@
<property name="column_spacing">6</property>
<property name="row_spacing">2</property>
<child>
- <widget class="GtkEntry" id="gateway_entry">
+ <widget class="GtkComboBox" id="gateway_type_combo">
<property name="visible">True</property>
- <property name="can_focus">True</property>
+ <property name="items" translatable="yes">Nortel
+Standard Gateway</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label23">
+ <widget class="GtkLabel" id="label20">
<property name="visible">True</property>
<property name="xalign">0</property>
- <property name="label" translatable="yes">_Gateway:</property>
+ <property name="label" translatable="yes">Gate_way Type:</property>
<property name="use_underline">True</property>
- <property name="mnemonic_widget">gateway_entry</property>
+ <property name="mnemonic_widget">gateway_type_combo</property>
</widget>
<packing>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label20">
+ <widget class="GtkLabel" id="label23">
<property name="visible">True</property>
<property name="xalign">0</property>
- <property name="label" translatable="yes">Gate_way Type:</property>
+ <property name="label" translatable="yes">_Gateway:</property>
<property name="use_underline">True</property>
- <property name="mnemonic_widget">gateway_type_combo</property>
+ <property name="mnemonic_widget">gateway_entry</property>
</widget>
<packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
<property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkComboBox" id="gateway_type_combo">
+ <widget class="GtkEntry" id="gateway_entry">
<property name="visible">True</property>
- <property name="items" translatable="yes">Nortel
-Standard Gateway</property>
+ <property name="can_focus">True</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">GTK_FILL</property>
</packing>
</child>
</widget>
@@ -124,30 +123,14 @@
<property name="column_spacing">3</property>
<property name="row_spacing">2</property>
<child>
- <widget class="GtkCheckButton" id="show_passwords_checkbutton">
+ <widget class="GtkLabel" id="label26">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Show passwords</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">_Type:</property>
<property name="use_underline">True</property>
- <property name="response_id">0</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="right_attach">2</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
- </packing>
- </child>
- <child>
- <widget class="GtkComboBox" id="authtype_combo">
- <property name="visible">True</property>
- <property name="items" translatable="yes">XAUTH
-X.509 Certificate</property>
+ <property name="mnemonic_widget">authtype_combo</property>
</widget>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
@@ -164,103 +147,103 @@
<property name="column_spacing">6</property>
<property name="row_spacing">2</property>
<child>
- <widget class="GtkEntry" id="groupname_entry">
+ <widget class="GtkEntry" id="grouppassword_entry">
<property name="visible">True</property>
<property name="can_focus">True</property>
+ <property name="visibility">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
</packing>
</child>
<child>
- <widget class="GtkEntry" id="username_entry">
+ <widget class="GtkEntry" id="userpassword_entry">
<property name="visible">True</property>
<property name="can_focus">True</property>
+ <property name="visibility">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label3">
+ <widget class="GtkLabel" id="label4">
<property name="visible">True</property>
<property name="xalign">0</property>
- <property name="label" translatable="yes">_User Name:</property>
+ <property name="label" translatable="yes">G_roup Password:</property>
<property name="use_underline">True</property>
- <property name="mnemonic_widget">username_entry</property>
+ <property name="mnemonic_widget">grouppassword_entry</property>
</widget>
<packing>
- <property name="y_options"></property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label2">
+ <widget class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="xalign">0</property>
- <property name="label" translatable="yes">_Group Name:</property>
+ <property name="label" translatable="yes">U_ser Password:</property>
<property name="use_underline">True</property>
- <property name="mnemonic_widget">groupname_entry</property>
+ <property name="mnemonic_widget">userpassword_entry</property>
</widget>
<packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="y_options"></property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label1">
+ <widget class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="xalign">0</property>
- <property name="label" translatable="yes">U_ser Password:</property>
+ <property name="label" translatable="yes">_Group Name:</property>
<property name="use_underline">True</property>
- <property name="mnemonic_widget">userpassword_entry</property>
+ <property name="mnemonic_widget">groupname_entry</property>
</widget>
<packing>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label4">
+ <widget class="GtkLabel" id="label3">
<property name="visible">True</property>
<property name="xalign">0</property>
- <property name="label" translatable="yes">G_roup Password:</property>
+ <property name="label" translatable="yes">_User Name:</property>
<property name="use_underline">True</property>
- <property name="mnemonic_widget">grouppassword_entry</property>
+ <property name="mnemonic_widget">username_entry</property>
</widget>
<packing>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
+ <property name="y_options"></property>
</packing>
</child>
<child>
- <widget class="GtkEntry" id="userpassword_entry">
+ <widget class="GtkEntry" id="username_entry">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="visibility">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
</packing>
</child>
<child>
- <widget class="GtkEntry" id="grouppassword_entry">
+ <widget class="GtkEntry" id="groupname_entry">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="visibility">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
</packing>
</child>
</widget>
@@ -271,8 +254,8 @@
<property name="label" translatable="yes">XAUTH</property>
</widget>
<packing>
- <property name="type">tab</property>
<property name="tab_fill">False</property>
+ <property name="type">tab</property>
</packing>
</child>
<child>
@@ -283,32 +266,12 @@
<property name="column_spacing">3</property>
<property name="row_spacing">2</property>
<child>
- <widget class="GtkEntry" id="certpassword_entry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="visibility">False</property>
- </widget>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="label9">
+ <widget class="GtkLabel" id="label7">
<property name="visible">True</property>
<property name="xalign">0</property>
- <property name="label" translatable="yes">_Certificate password:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">certpassword_entry</property>
+ <property name="label" translatable="yes">Certificate file:</property>
</widget>
<packing>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
@@ -330,12 +293,32 @@
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label7">
+ <widget class="GtkLabel" id="label9">
<property name="visible">True</property>
<property name="xalign">0</property>
- <property name="label" translatable="yes">Certificate file:</property>
+ <property name="label" translatable="yes">_Certificate password:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">certpassword_entry</property>
</widget>
<packing>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkEntry" id="certpassword_entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="visibility">False</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
@@ -351,9 +334,9 @@
<property name="label" translatable="yes">X.509</property>
</widget>
<packing>
- <property name="type">tab</property>
<property name="position">1</property>
<property name="tab_fill">False</property>
+ <property name="type">tab</property>
</packing>
</child>
</widget>
@@ -364,17 +347,33 @@
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label26">
+ <widget class="GtkComboBox" id="authtype_combo">
<property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">_Type:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">authtype_combo</property>
+ <property name="items" translatable="yes">XAUTH
+X.509 Certificate</property>
</widget>
<packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
+ <child>
+ <widget class="GtkCheckButton" id="show_passwords_checkbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Show passwords</property>
+ <property name="use_underline">True</property>
+ <property name="response_id">0</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="right_attach">2</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ </packing>
+ </child>
</widget>
</child>
</widget>
@@ -414,36 +413,33 @@
<child>
<widget class="GtkTable" id="table6">
<property name="visible">True</property>
- <property name="n_rows">2</property>
+ <property name="n_rows">3</property>
<property name="n_columns">2</property>
<property name="column_spacing">6</property>
<property name="row_spacing">2</property>
<child>
- <widget class="GtkComboBox" id="pfsgroup_combo">
+ <widget class="GtkCheckButton" id="no_split_tunnel_checkbutton">
<property name="visible">True</property>
- <property name="items" translatable="yes">Off
-768 bits (PFS 1)
-1024 bits (PFS 2)</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Disable split tunnel</property>
+ <property name="response_id">0</property>
+ <property name="draw_indicator">True</property>
</widget>
<packing>
- <property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
</packing>
</child>
<child>
- <widget class="GtkComboBox" id="dhgroup_combo">
+ <widget class="GtkLabel" id="label5">
<property name="visible">True</property>
- <property name="items" translatable="yes">768 bits (DH1)
-1024 bits (DH2)</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">_DH Group:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">dhgroup_combo</property>
</widget>
<packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
@@ -462,14 +458,31 @@
</packing>
</child>
<child>
- <widget class="GtkLabel" id="label5">
+ <widget class="GtkComboBox" id="dhgroup_combo">
<property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">_DH Group:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">dhgroup_combo</property>
+ <property name="items" translatable="yes">768 bits (DH1)
+1024 bits (DH2)</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkComboBox" id="pfsgroup_combo">
+ <property name="visible">True</property>
+ <property name="items" translatable="yes">Off
+768 bits (PFS 1)
+1024 bits (PFS 2)</property>
</widget>
<packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/NetworkManager-novellvpn-0.7.2/src/Makefile.am new/NetworkManager-novellvpn-0.7.2/src/Makefile.am
--- old/NetworkManager-novellvpn-0.7.2/src/Makefile.am 2008-07-31 09:40:09.000000000 +0200
+++ new/NetworkManager-novellvpn-0.7.2/src/Makefile.am 2009-01-09 07:54:37.000000000 +0100
@@ -21,9 +21,7 @@
nm_novellvpn_service_SOURCES = \
nm-novellvpn-service.c \
- nm-novellvpn-service.h \
- nm-utils.c \
- nm-utils.h
+ nm-novellvpn-service.h
nm_novellvpn_service_LDADD = \
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/NetworkManager-novellvpn-0.7.2/src/nm-novellvpn-service.c new/NetworkManager-novellvpn-0.7.2/src/nm-novellvpn-service.c
--- old/NetworkManager-novellvpn-0.7.2/src/nm-novellvpn-service.c 2008-11-10 08:46:27.000000000 +0100
+++ new/NetworkManager-novellvpn-0.7.2/src/nm-novellvpn-service.c 2009-01-22 06:29:01.000000000 +0100
@@ -109,6 +109,7 @@
{ NM_NOVELLVPN_KEY_DHGROUP, G_TYPE_INT },
{ NM_NOVELLVPN_KEY_PFSGROUP, G_TYPE_INT },
{ NM_NOVELLVPN_KEY_NAME, G_TYPE_STRING },
+ { NM_NOVELLVPN_KEY_NOSPLITTUNNEL, G_TYPE_BOOLEAN },
{ NULL, G_TYPE_NONE }
};
@@ -299,7 +300,6 @@
get_connection_type (NMSettingVPN *s_vpn)
{
const char* ctype = NULL;
- const gchar *tmp = NULL;
ctype = nm_setting_vpn_get_data_item (s_vpn, NM_NOVELLVPN_KEY_AUTHTYPE);
if (NULL != ctype) {
@@ -342,7 +342,6 @@
static void
free_novellvpn_args (GPtrArray *args)
{
- g_ptr_array_foreach (args, (GFunc) g_free, NULL);
g_ptr_array_free (args, TRUE);
}
@@ -444,13 +443,6 @@
}
-static GPtrArray *
-construct_novellvpn_args (NMNovellvpnPlugin *plugin,
- NMSettingVPN *s_vpn,
- const char *pppd,
- GError **error)
-{
-}
/*
* Function: nm_novellvpn_start_vpn_binary
@@ -489,6 +481,7 @@
const char *dh_group = dh_group_arg [1];
const char *pfs_group = pfs_group_arg [0];
const char *tmp = NULL;
+ gboolean no_split_tunnel = FALSE;
g_return_val_if_fail (plugin != NULL, -1);
@@ -615,6 +608,18 @@
}
}
+ tmp = nm_setting_vpn_get_data_item (s_vpn, NM_NOVELLVPN_KEY_NOSPLITTUNNEL);
+ if (!tmp || !strlen (tmp)) {
+ nm_vpn_set_missing_arg_error (error, NM_NOVELLVPN_KEY_NOSPLITTUNNEL);
+ } else {
+ nm_debug("%s = %s!", NM_NOVELLVPN_KEY_NOSPLITTUNNEL, tmp);
+ if (!strcmp (tmp, "yes")) {
+ no_split_tunnel = TRUE;
+ } else {
+ no_split_tunnel = FALSE;
+ }
+ }
+
if ( priv->connection_type != NM_NOVELLVPN_CONTYPE_INVALID ) {
novellvpn_argv = g_ptr_array_new ();
@@ -642,6 +647,9 @@
g_ptr_array_add (novellvpn_argv, (gpointer) "-s");
g_ptr_array_add (novellvpn_argv, (gpointer) pfs_group);
+ // disable the split tunnel
+ if (no_split_tunnel)
+ g_ptr_array_add (novellvpn_argv, (gpointer) "-t");
//g_ptr_array_add (novellvpn_argv, (gpointer) "-r");
/* FIXME:
@@ -679,14 +687,14 @@
&stderr_fd, /* standard_error */
error))
{
- g_ptr_array_free (novellvpn_argv, TRUE);
+ free_novellvpn_args (novellvpn_argv);
nm_warning ("novellvpn failed to start failed! '%s'",
(*error)->message);
return FALSE;
}
- g_ptr_array_free (novellvpn_argv, TRUE);
+ free_novellvpn_args (novellvpn_argv);
nm_info ("novellvpn started with pid %d", pid);
@@ -885,6 +893,17 @@
}
nm_debug ("property '%s' wrong value, %s", prop.name, strerror (errno));
break;
+ case G_TYPE_BOOLEAN:
+ if (!strcmp (val, "yes") || !strcmp (val, "no"))
+ return; /* valid */
+
+ g_set_error (info->error,
+ NM_VPN_PLUGIN_ERROR,
+ NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS,
+ "invalid boolean property '%s' (not yes or no)",
+ key);
+ break;
+
default:
g_set_error (info->error,
NM_VPN_PLUGIN_ERROR,
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/NetworkManager-novellvpn-0.7.2/src/nm-novellvpn-service.h new/NetworkManager-novellvpn-0.7.2/src/nm-novellvpn-service.h
--- old/NetworkManager-novellvpn-0.7.2/src/nm-novellvpn-service.h 2008-09-24 10:12:37.000000000 +0200
+++ new/NetworkManager-novellvpn-0.7.2/src/nm-novellvpn-service.h 2009-01-19 09:40:51.000000000 +0100
@@ -59,6 +59,7 @@
#define NM_NOVELLVPN_KEY_DHGROUP "dhgroup"
#define NM_NOVELLVPN_KEY_PFSGROUP "pfsgroup"
#define NM_NOVELLVPN_KEY_CERTIFICATE "certificate"
+#define NM_NOVELLVPN_KEY_NOSPLITTUNNEL "nosplittunnel"
#define NM_NOVELLVPN_KEY_HOW_MANY_PWD "how_many_passwords"
#define NM_NOVELLVPN_KEY_USER_PWD "unenc-user-password"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/NetworkManager-novellvpn-0.7.2/src/nm-novellvpn-service-novellvpn-helper.c new/NetworkManager-novellvpn-0.7.2/src/nm-novellvpn-service-novellvpn-helper.c
--- old/NetworkManager-novellvpn-0.7.2/src/nm-novellvpn-service-novellvpn-helper.c 2008-11-07 15:29:39.000000000 +0100
+++ new/NetworkManager-novellvpn-0.7.2/src/nm-novellvpn-service-novellvpn-helper.c 2009-01-09 08:08:09.000000000 +0100
@@ -44,9 +44,9 @@
#include <dbus/dbus-glib-lowlevel.h>
#include <dbus/dbus-glib.h>
#include <NetworkManager.h>
+#include <nm-utils.h>
#include "nm-novellvpn-service.h"
-#include "nm-utils.h"
/* These are here because nm-dbus-glib-types.h isn't exported */
#define DBUS_TYPE_G_ARRAY_OF_UINT (dbus_g_type_get_collection ("GArray", G_TYPE_UINT))
@@ -83,178 +83,6 @@
exit (1);
}
-/*
- * send_config_error
- *
- * Notify nm-novellvpn-service of a config error from 'novellvpn'.
- *
- */
-static void send_config_error (DBusConnection *con, const char *item)
-{
- DBusMessage *message;
-
- g_return_if_fail (con != NULL);
- g_return_if_fail (item != NULL);
-
- if (!(message = dbus_message_new_method_call (NM_DBUS_SERVICE_NOVELLVPN, NM_DBUS_PATH_NOVELLVPN, NM_DBUS_INTERFACE_NOVELLVPN, "signalConfigError")))
- {
- nm_warning ("send_config_error(): Couldn't allocate the dbus message");
- return;
- }
-
- dbus_message_append_args (message, DBUS_TYPE_STRING, &item, DBUS_TYPE_INVALID);
- if (!dbus_connection_send (con, message, NULL))
- nm_warning ("send_config_error(): could not send dbus message");
-
- dbus_message_unref (message);
-}
-
-
-/*
- * gpa_to_uint32arr
- *
- * Convert GPtrArray of uint32 to a uint32* array
- *
- */
-static void
-gpa_to_uint32arr (const GPtrArray *gpa,
- guint32 **uia,
- guint32 *uia_len)
-{
-
- guint32 num_valid = 0, i = 0;
- struct in_addr temp_addr;
-
- *uia = NULL;
-
- if ( gpa->len > 0 ) {
- /* Pass over the array first to determine how many valid entries there are */
- num_valid = 0;
- for (i = 0; i < gpa->len; ++i) {
- if (inet_aton ((char *)gpa->pdata[i], &temp_addr)) {
- num_valid++;
- }
- }
-
- /* Do the actual string->int conversion and assign to the array. */
- if (num_valid > 0) {
- *uia = g_new0 (guint32, num_valid);
- for (i = 0; i < gpa->len; ++i) {
- if (inet_aton ((char *)gpa->pdata[i], &temp_addr)) {
- (*uia)[i] = temp_addr.s_addr;
- }
- }
- }
-
- *uia_len = num_valid;
- }
- if (*uia == NULL) {
- *uia = g_malloc0 (sizeof (guint32));
- *uia_len = 1;
- }
-}
-
-static gboolean
-ipstr_to_uint32 (const char *ip_str, guint32 *ip)
-{
- struct in_addr temp_addr;
-
- /* Convert IPv4 address arguments from strings into numbers */
- if (!inet_aton (ip_str, &temp_addr))
- return FALSE;
- *ip = temp_addr.s_addr;
- return TRUE;
-}
-
-
-/*
- * send_config_info
- *
- * Send IP config info to nm-novellvpn-service
- *
- */
-static gboolean
-send_config_info (DBusConnection *con,
- const char *str_vpn_gateway,
- const char *str_tundev,
- const char *str_ip4_address,
- const char *str_ip4_ptpaddr,
- const char *str_ip4_netmask,
- const GPtrArray *gpa_ip4_dns,
- const GPtrArray *gpa_ip4_nbns,
- const char *domain_names
- )
-{
- DBusMessage * message;
- guint32 uint_vpn_gateway = 0;
- guint32 uint_ip4_address = 0;
- guint32 uint_ip4_ptpaddr = 0;
- guint32 uint_ip4_netmask = 0xFFFFFFFF; /* Default mask of 255.255.255.255 */
- guint32 * uint_ip4_dns = NULL;
- guint32 uint_ip4_dns_len = 0;
- guint32 * uint_ip4_nbns = NULL;
- guint32 uint_ip4_nbns_len = 0;
- guint32 mtu = 0;
- gboolean success = FALSE;
-
- g_return_val_if_fail (con != NULL, FALSE);
-
- mtu = get_mtu(str_vpn_gateway);
-
- if (!(message = dbus_message_new_method_call (NM_DBUS_SERVICE_NOVELLVPN, NM_DBUS_PATH_NOVELLVPN, NM_DBUS_INTERFACE_NOVELLVPN, "signalIP4Config")))
- {
- nm_warning ("send_config_error(): Couldn't allocate the dbus message");
- return FALSE;
- }
-
- if (! ipstr_to_uint32 (str_vpn_gateway, &uint_vpn_gateway) ) {
- nm_warning ("nm-novellvpn-service-novellvpn-helper didn't receive a valid VPN Gateway from novellvpn.");
- send_config_error (con, "VPN Gateway");
- goto out;
- }
-
- if (! ipstr_to_uint32 (str_ip4_address, &uint_ip4_address) ) {
- nm_warning ("nm-novellvpn-service-novellvpn-helper didn't receive a valid Internal IP4 Address from novellvpn.");
- send_config_error (con, "IP4 Address");
- goto out;
- }
-
- if (! ipstr_to_uint32 (str_ip4_ptpaddr, &uint_ip4_ptpaddr) ) {
- nm_warning ("nm-novellvpn-service-novellvpn-helper didn't receive a valid PtP IP4 Address from novellvpn.");
- send_config_error (con, "IP4 PtP Address");
- goto out;
- }
-
- if (strlen (str_ip4_netmask) > 0) {
- ipstr_to_uint32 (str_ip4_netmask, &uint_ip4_netmask);
- }
-
- gpa_to_uint32arr (gpa_ip4_dns, &uint_ip4_dns, &uint_ip4_dns_len);
- gpa_to_uint32arr (gpa_ip4_nbns, &uint_ip4_nbns, &uint_ip4_nbns_len);
-
- dbus_message_append_args (message, DBUS_TYPE_UINT32, &uint_vpn_gateway,
- DBUS_TYPE_STRING, &str_tundev,
- DBUS_TYPE_UINT32, &uint_ip4_address,
- DBUS_TYPE_UINT32, &uint_ip4_ptpaddr,
- DBUS_TYPE_UINT32, &uint_ip4_netmask,
- DBUS_TYPE_ARRAY, DBUS_TYPE_UINT32, &uint_ip4_dns, uint_ip4_dns_len,
- DBUS_TYPE_ARRAY, DBUS_TYPE_UINT32, &uint_ip4_nbns, uint_ip4_nbns_len,
- DBUS_TYPE_UINT32, &mtu,
- DBUS_TYPE_STRING, &domain_names,
- DBUS_TYPE_INVALID);
- if (dbus_connection_send (con, message, NULL))
- success = TRUE;
- else
- nm_warning ("send_config_error(): could not send dbus message");
-
- dbus_message_unref (message);
-
- g_free (uint_ip4_dns);
- g_free (uint_ip4_nbns);
-
- out:
- return success;
-}
static GValue *
addr_to_gvalue (const char *str)
@@ -337,14 +165,11 @@
/*
* See the Novellvpn man page for available environment variables.
- *
- *
*/
-
/** Prints all environment variables to /tmp/environ
*/
-
+#if 0
static void
print_env(char **env)
{
@@ -355,6 +180,7 @@
}
fclose(f);
}
+#endif
static void
send_ip4_config (DBusGConnection *connection, GHashTable *config)
@@ -496,9 +322,9 @@
}
val = str_to_gvalue (getenv ("VIRTUALDEV"), FALSE);
- if (val)
+ if (val) {
g_hash_table_insert (config, NM_VPN_PLUGIN_IP4_CONFIG_TUNDEV, val);
- else
+ } else
helper_failed (connection, "Tunnel Device");
val = addr_to_gvalue (getenv("VPNGATEWAY"));
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/NetworkManager-novellvpn-0.7.2/src/nm-utils.c new/NetworkManager-novellvpn-0.7.2/src/nm-utils.c
--- old/NetworkManager-novellvpn-0.7.2/src/nm-utils.c 2008-04-16 07:57:08.000000000 +0200
+++ new/NetworkManager-novellvpn-0.7.2/src/nm-utils.c 1970-01-01 01:00:00.000000000 +0100
@@ -1,132 +0,0 @@
-/* NetworkManager -- Network link manager
- *
- * Ray Strode <rstrode(a)redhat.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * (C) Copyright 2005 Red Hat, Inc.
- */
-
-#include <string.h>
-#include <stdlib.h>
-#include <errno.h>
-
-#include <glib.h>
-#include "nm-utils.h"
-
-gchar *nm_dbus_escape_object_path (const gchar *utf8_string)
-{
- const gchar *p;
- gchar *object_path;
- GString *string;
-
- g_return_val_if_fail (utf8_string != NULL, NULL);
- g_return_val_if_fail (g_utf8_validate (utf8_string, -1, NULL), NULL);
-
- string = g_string_sized_new ((strlen (utf8_string) + 1) * 6);
-
- for (p = utf8_string; *p != '\0'; p = g_utf8_next_char (p))
- {
- gunichar character;
-
- character = g_utf8_get_char (p);
-
- if (((character >= ((gunichar) 'a')) &&
- (character <= ((gunichar) 'z'))) ||
- ((character >= ((gunichar) 'A')) &&
- (character <= ((gunichar) 'Z'))) ||
- ((character >= ((gunichar) '0')) &&
- (character <= ((gunichar) '9'))) ||
- (character == ((gunichar) '/')))
- {
- g_string_append_c (string, (gchar) character);
- continue;
- }
-
- g_string_append_printf (string, "_%x_", character);
- }
-
- object_path = string->str;
-
- g_string_free (string, FALSE);
-
- return object_path;
-}
-
-gchar *nm_dbus_unescape_object_path (const gchar *object_path)
-{
- const gchar *p;
- gchar *utf8_string;
- GString *string;
-
- g_return_val_if_fail (object_path != NULL, NULL);
-
- string = g_string_sized_new (strlen (object_path) + 1);
-
- for (p = object_path; *p != '\0'; p++)
- {
- const gchar *q;
- gchar *hex_digits, *end, utf8_character[6] = { '\0' };
- gint utf8_character_size;
- gunichar character;
- gulong hex_value;
-
- if (*p != '_')
- {
- g_string_append_c (string, *p);
- continue;
- }
-
- q = strchr (p + 1, '_');
-
- if ((q == NULL) || (q == p + 1))
- {
- g_string_free (string, TRUE);
- return NULL;
- }
-
- hex_digits = g_strndup (p + 1, (q - 1) - p);
-
- hex_value = strtoul (hex_digits, &end, 16);
-
- character = (gunichar) hex_value;
-
- if (((hex_value == G_MAXLONG) && (errno == ERANGE)) ||
- (hex_value > G_MAXUINT32) ||
- (*end != '\0') ||
- (!g_unichar_validate (character)))
- {
- g_free (hex_digits);
- g_string_free (string, TRUE);
- return NULL;
- }
-
- utf8_character_size =
- g_unichar_to_utf8 (character, utf8_character);
-
- g_assert (utf8_character_size > 0);
-
- g_string_append_len (string, utf8_character,
- utf8_character_size);
-
- p = q;
- }
-
- utf8_string = string->str;
-
- g_string_free (string, FALSE);
-
- return utf8_string;
-}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/NetworkManager-novellvpn-0.7.2/src/nm-utils.h new/NetworkManager-novellvpn-0.7.2/src/nm-utils.h
--- old/NetworkManager-novellvpn-0.7.2/src/nm-utils.h 2008-04-16 07:57:08.000000000 +0200
+++ new/NetworkManager-novellvpn-0.7.2/src/nm-utils.h 1970-01-01 01:00:00.000000000 +0100
@@ -1,132 +0,0 @@
-/* NetworkManager -- Network link manager
- *
- * Ray Strode <rstrode(a)redhat.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * (C) Copyright 2005 Red Hat, Inc.
- */
-
-#ifndef NM_UTILS_H
-#define NM_UTILS_H
-
-#include <glib.h>
-#include <execinfo.h>
-#include <glib/gmacros.h>
-
-#define nm_print_backtrace() \
-G_STMT_START \
-{ \
- void *_call_stack[512]; \
- int _call_stack_size; \
- char **_symbols; \
- _call_stack_size = backtrace (_call_stack, \
- G_N_ELEMENTS (_call_stack)); \
- _symbols = backtrace_symbols (_call_stack, _call_stack_size); \
- if (_symbols != NULL) \
- { \
- int _i; \
- _i = 0; \
- g_critical ("traceback:\n"); \
- while (_i < _call_stack_size) \
- { \
- g_critical ("\t%s\n", _symbols[_i]); \
- _i++; \
- } \
- free (_symbols); \
- } \
-} \
-G_STMT_END
-
-#define nm_get_timestamp(timestamp) \
-G_STMT_START \
-{ \
- GTimeVal _tv; \
- g_get_current_time (&_tv); \
- *timestamp = (_tv.tv_sec * (1.0 * G_USEC_PER_SEC) + \
- _tv.tv_usec) / G_USEC_PER_SEC; \
-} \
-G_STMT_END
-
-#define nm_info(fmt, args...) \
-G_STMT_START \
-{ \
- g_message ("<information>\t" fmt "\n", ##args); \
-} G_STMT_END
-
-#define nm_info_str(fmt_str, args...) \
-G_STMT_START \
-{ \
- g_message ("<information>\t%s\n", fmt_str, ##args); \
-} G_STMT_END
-
-#define nm_debug(fmt, args...) \
-G_STMT_START \
-{ \
- gdouble _timestamp; \
- nm_get_timestamp (&_timestamp); \
- g_debug ("<debug info>\t[%f] %s (): " fmt "\n", _timestamp, \
- __FUNCTION__, ##args); \
-} G_STMT_END
-
-#define nm_debug_str(fmt_str, args...) \
-G_STMT_START \
-{ \
- gdouble _timestamp; \
- nm_get_timestamp (&_timestamp); \
- g_debug ("<debug info>\t[%f] %s (): %s\n", _timestamp, \
- __FUNCTION__, fmt_str, ##args); \
-} G_STMT_END
-
-#define nm_warning(fmt, args...) \
-G_STMT_START \
-{ \
- g_warning ("<WARNING>\t %s (): " fmt "\n", \
- __FUNCTION__, ##args); \
-} G_STMT_END
-
-#define nm_warning_str(fmt_str, args...) \
-G_STMT_START \
-{ \
- g_warning ("<WARNING>\t %s (): %s\n", \
- __FUNCTION__, fmt_str, ##args); \
-} G_STMT_END
-
-#define nm_error(fmt, args...) \
-G_STMT_START \
-{ \
- gdouble _timestamp; \
- nm_get_timestamp (&_timestamp); \
- g_critical ("<ERROR>\t[%f] %s (): " fmt "\n", _timestamp, \
- __FUNCTION__, ##args); \
- nm_print_backtrace (); \
- G_BREAKPOINT (); \
-} G_STMT_END
-
-#define nm_error_str(fmt_str, args...) \
-G_STMT_START \
-{ \
- gdouble _timestamp; \
- nm_get_timestamp (&_timestamp); \
- g_critical ("<ERROR>\t[%f] %s (): %s\n", _timestamp, \
- __FUNCTION__, fmt_str, ##args); \
- nm_print_backtrace (); \
- G_BREAKPOINT (); \
-} G_STMT_END
-
-gchar *nm_dbus_escape_object_path (const gchar *utf8_string);
-gchar *nm_dbus_unescape_object_path (const gchar *object_path);
-
-#endif /* NM_UTILS_H */
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package matthewlib-java for openSUSE:Factory
checked in at Wed Feb 4 00:00:40 CET 2009.
--------
--- matthewlib-java/matthewlib-java.changes 2008-09-04 16:50:37.000000000 +0200
+++ matthewlib-java/matthewlib-java.changes 2009-02-02 13:52:50.000000000 +0100
@@ -1,0 +2,7 @@
+Mon Feb 2 13:52:33 CET 2009 - mvyskocil(a)suse.cz
+
+- fix of bnc#468886: matthewlib-java unix server socket creation crashes due to
+ a linking problem
+ - use a gcc as a linker
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ matthewlib-java.spec ++++++
--- /var/tmp/diff_new_pack.c20232/_old 2009-02-03 23:57:08.000000000 +0100
+++ /var/tmp/diff_new_pack.c20232/_new 2009-02-03 23:57:08.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package matthewlib-java (Version 0.7.1)
#
-# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,7 +20,7 @@
Name: matthewlib-java
Version: 0.7.1
-Release: 3
+Release: 4
Summary: A few useful Java libraries
Group: Development/Libraries/Java
License: GPL v2 only
@@ -105,6 +105,7 @@
make \
CFLAGS='%{optflags} -fpic -std=c99' \
LIBDIR='%{_libdir}' \
+ LD='gcc' \
JCFLAGS='-target 1.5'
%install
@@ -133,6 +134,10 @@
%{_javadocdir}/%{name}-%{version}
%changelog
+* Mon Feb 02 2009 mvyskocil(a)suse.cz
+- fix of bnc#468886: matthewlib-java unix server socket creation crashes due to
+ a linking problem
+ - use a gcc as a linker
* Thu Sep 04 2008 mvyskocil(a)suse.cz
- Removal of a jpackage_compliance patch, which seems to be uncecessary
- Removal of makefile patch, all of necessary changes could be done via make
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package man-pages-cs for openSUSE:Factory
checked in at Tue Feb 3 23:57:00 CET 2009.
--------
--- man-pages-cs/man-pages-cs.changes 2008-01-14 12:17:38.000000000 +0100
+++ man-pages-cs/man-pages-cs.changes 2009-01-30 14:38:34.000000000 +0100
@@ -1,0 +2,6 @@
+Fri Jan 30 14:38:13 CET 2009 - hvogel(a)suse.de
+
+- Fix missing destdir which resulted in an empty package
+ [bnc#465818]
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
New:
----
man-pages-cs-0.17.20080113_destidir.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ man-pages-cs.spec ++++++
--- /var/tmp/diff_new_pack.P32538/_old 2009-02-03 23:55:24.000000000 +0100
+++ /var/tmp/diff_new_pack.P32538/_new 2009-02-03 23:55:24.000000000 +0100
@@ -1,21 +1,29 @@
#
# spec file for package man-pages-cs (Version 0.17.20080113)
#
-# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
+# All modifications and additions to the file contributed by third parties
+# remain the property of their copyright owners, unless otherwise agreed
+# upon. The license for this file, and modifications and additions to the
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# license that conforms to the Open Source Definition (Version 1.9)
+# published by the Open Source Initiative.
+
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
+
Name: man-pages-cs
Url: ftp://ftp.fi.muni.cz/pub/localization/linux/czman/
License: Any permissive
Group: Documentation/Man
AutoReqProv: off
Version: 0.17.20080113
-Release: 1
+Release: 52
Summary: Czech Manual Pages
%if 0%{suse_version} > 1000
Provides: locale(man:cs)
@@ -25,6 +33,7 @@
%endif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: man-pages-cs-%{version}.tar.bz2
+Patch0: man-pages-cs-0.17.20080113_destidir.patch
BuildArch: noarch
%description
@@ -46,32 +55,37 @@
Michal Ambro� <Michal.Ambroz(a)post.cz>
%prep
-%setup
+%setup -q
+%patch0
%build
%install
mkdir -p $RPM_BUILD_ROOT%{_mandir}/cs
-make
+make DESTDIR=$RPM_BUILD_ROOT
%if 0%{suse_version} > 1020
%fdupes -s %buildroot
%endif
%files
%defattr(-,root,root)
-%doc %{_mandir}/cs
+%dir %{_mandir}/cs
+%{_mandir}/cs/*
%changelog
-* Mon Jan 14 2008 - mskibbe(a)suse.de
+* Fri Jan 30 2009 hvogel(a)suse.de
+- Fix missing destdir which resulted in an empty package
+ [bnc#465818]
+* Mon Jan 14 2008 mskibbe(a)suse.de
- update to version 20080113
-* Wed Aug 22 2007 - mskibbe(a)suse.de
+* Wed Aug 22 2007 mskibbe(a)suse.de
- Marek Stopka provides information to a newer source for this
package (#299036)
- update to 0.17.20070715
-* Sun Dec 22 2002 - tcrhak(a)suse.cz
+* Sun Dec 22 2002 tcrhak(a)suse.cz
- update to version 0.16
-* Mon Dec 03 2001 - tcrhak(a)suse.cz
+* Mon Dec 03 2001 tcrhak(a)suse.cz
- update to v. 0.15
- bzipped the source
-* Mon May 28 2001 - pblaha(a)suse.cz
+* Mon May 28 2001 pblaha(a)suse.cz
- create this package for czech users
++++++ man-pages-cs-0.17.20080113_destidir.patch ++++++
--- Makefile
+++ Makefile
@@ -12,7 +12,7 @@
remove:
# wipe the old pages
- for i in latest/man?; do for j in $$i/*; do k=`basename $$i`; l=`basename $$j`; rm -f $(MANDIR)/$$k/$$l; done; done
+ for i in latest/man?; do for j in $$i/*; do k=`basename $$i`; l=`basename $$j`; rm -f $(DESTDIR)$(MANDIR)/$$k/$$l; done; done
latest:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package malaga for openSUSE:Factory
checked in at Tue Feb 3 23:55:17 CET 2009.
--------
--- malaga/malaga.changes 2008-07-25 11:53:21.000000000 +0200
+++ malaga/malaga.changes 2009-02-03 16:38:36.000000000 +0100
@@ -1,0 +2,9 @@
+Tue Feb 3 16:37:34 CET 2009 - crrodriguez(a)suse.de
+
+- remove "la" files
+- fix -devel package dependencies
+- do not strip binaries on make install, let debuginfo generation to
+ handle it.
+- allow verbose compilation
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
New:
----
malaga-7.12-verbose.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ malaga.spec ++++++
--- /var/tmp/diff_new_pack.G24021/_old 2009-02-03 23:54:17.000000000 +0100
+++ /var/tmp/diff_new_pack.G24021/_new 2009-02-03 23:54:17.000000000 +0100
@@ -1,10 +1,17 @@
#
# spec file for package malaga (Version 7.12)
#
-# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
+# All modifications and additions to the file contributed by third parties
+# remain the property of their copyright owners, unless otherwise agreed
+# upon. The license for this file, and modifications and additions to the
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# license that conforms to the Open Source Definition (Version 1.9)
+# published by the Open Source Initiative.
+
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
@@ -13,7 +20,7 @@
Name: malaga
Version: 7.12
-Release: 1
+Release: 35
Url: http://home.arcor.de/bjoern-beutel/malaga
License: GPL v2 or later
Summary: A Grammar Development Environment for Natural Languages
@@ -21,8 +28,9 @@
Source: %{name}-%{version}.tar.bz2
PreReq: %install_info_prereq
Requires: libmalaga7 = %{version}
-BuildRequires: glib2-devel gtk2-devel readline-devel
+BuildRequires: gtk2-devel readline-devel
BuildRoot: %{_tmppath}/%{name}-%{version}-build
+Patch0: malaga-7.12-verbose.patch
%description
Malaga is a software package for the development and application of
@@ -58,7 +66,7 @@
License: GPL v2 or later
Group: Development/Libraries/C and C++
Summary: Include Files and Libraries mandatory for Development
-Requires: libmalaga7 = %{version} glib2-devel
+Requires: libmalaga7 = %{version}
# File name used up to openSUSE 11.0:
Provides: libmalaga7-devel = %{version}
Obsoletes: libmalaga7-devel < 7.12
@@ -75,10 +83,11 @@
%prep
%setup -q
+%patch0
%build
-autoreconf -f -i
-%configure\
+autoreconf -f -i -v
+%configure --with-pic\
--disable-static
make %{?jobs:-j%jobs}
@@ -86,6 +95,7 @@
%makeinstall
mkdir -p $RPM_BUILD_ROOT/usr/share/emacs/site-lisp
mv $RPM_BUILD_ROOT%{_datadir}/malaga/malaga.el $RPM_BUILD_ROOT/usr/share/emacs/site-lisp
+%{__rm} -f %{buildroot}%{_libdir}/*.la
%clean
rm -rf $RPM_BUILD_ROOT
@@ -118,9 +128,14 @@
%defattr (-,root,root)
%{_includedir}/malaga.h
%{_libdir}/*.so
-%{_libdir}/*.*a
%changelog
+* Tue Feb 03 2009 crrodriguez(a)suse.de
+- remove "la" files
+- fix -devel package dependencies
+- do not strip binaries on make install, let debuginfo generation to
+ handle it.
+- allow verbose compilation
* Fri Jul 25 2008 sbrabec(a)suse.cz
- Updated to version 7.12 (bnc#394355):
* malshow now uses cairo for drawing; line thickness grows with
++++++ malaga-7.12-verbose.patch ++++++
Index: Makefile.in
===================================================================
--- Makefile.in.orig 2008-02-28 19:38:21.000000000 +0100
+++ Makefile.in 2009-02-03 16:31:28.000000000 +0100
@@ -76,8 +76,8 @@ DIST = malaga-7.12
.SUFFIXES: .o .c
.c.o:
- @echo "Compiling $<"
- @$(COMPILE) $(GLIB_CFLAGS) $(READLINE_CFLAGS) $<
+ echo "Compiling $<"
+ $(COMPILE) $(GLIB_CFLAGS) $(READLINE_CFLAGS) $<
# Primary goals. --------------------------------------------------------------
@@ -99,12 +99,12 @@ info: malaga.info
install: all info
$(INSTALL_DIR) $(bindir)
for f in $(MALAGA_BIN); do \
- $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) -s $$f $(bindir)/$$f; \
+ $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$f $(bindir)/$$f; \
done
$(INSTALL_DIR) $(includedir)
$(INSTALL_DATA) $(srcdir)/malaga.h $(includedir)/malaga.h
$(INSTALL_DIR) $(libdir)
- $(LIBTOOL) --mode=install $(INSTALL_DATA) -s libmalaga.la \
+ $(LIBTOOL) --mode=install $(INSTALL_DATA) libmalaga.la \
$(libdir)/libmalaga.la
$(INSTALL_DIR) $(datadir)/malaga
$(INSTALL_DATA) $(srcdir)/malaga.el $(datadir)/malaga/malaga.el
@@ -178,12 +178,12 @@ COMMON_OBJS = analysis.o avl_trees.o bas
LIBMALAGA_OBJS = $(COMMON_OBJS) libmalaga.o
$(LIBMALAGA_OBJS):
- @echo "Compiling $<"
- @$(LIBTOOL) --mode=compile $(COMPILE) $(GLIB_CFLAGS) $(srcdir)/$*.c
+ echo "Compiling $<"
+ $(LIBTOOL) --mode=compile $(COMPILE) $(GLIB_CFLAGS) $(srcdir)/$*.c
libmalaga.la: $(LIBMALAGA_OBJS)
- @echo "Linking libmalaga"
- @$(LIBTOOL) --mode=link $(LINK) $(LIBMALAGA_OBJS:.o=.lo) $(GLIB_LIBS) \
+ echo "Linking libmalaga"
+ $(LIBTOOL) --mode=link $(LINK) $(LIBMALAGA_OBJS:.o=.lo) $(GLIB_LIBS) \
-lm -o libmalaga.la -version-info $(LIBMALAGA_VERSION) \
-rpath @libdir@
@@ -193,15 +193,15 @@ MALAGA_OBJS = commands_interactive.o bre
malaga.o
malaga: $(MALAGA_OBJS) libmalaga.la
- @echo "Linking malaga"
- @$(LIBTOOL) --mode=link $(LINK) $(MALAGA_OBJS) $(GLIB_LIBS) \
+ echo "Linking malaga"
+ $(LIBTOOL) --mode=link $(LINK) $(MALAGA_OBJS) $(GLIB_LIBS) \
$(READLINE_LIBS) -lm libmalaga.la -o malaga
# maldump ---------------------------------------------------------------------
maldump: maldump.o libmalaga.la
- @echo "Linking maldump"
- @$(LIBTOOL) --mode=link $(LINK) maldump.o $(GLIB_LIBS) -lm \
+ echo "Linking maldump"
+ $(LIBTOOL) --mode=link $(LINK) maldump.o $(GLIB_LIBS) -lm \
libmalaga.la -o maldump
# mallex ----------------------------------------------------------------------
@@ -210,15 +210,15 @@ MALLEX_OBJS = breakpoints.o commands_int
mallex.o
mallex: $(MALLEX_OBJS) libmalaga.la
- @echo "Linking mallex"
- @$(LIBTOOL) --mode=link $(LINK) $(MALLEX_OBJS) $(GLIB_LIBS) \
+ echo "Linking mallex"
+ $(LIBTOOL) --mode=link $(LINK) $(MALLEX_OBJS) $(GLIB_LIBS) \
$(READLINE_LIBS) -lm libmalaga.la -o mallex
# malmake ---------------------------------------------------------------------
malmake: malmake.o libmalaga.la
- @echo "Linking malmake"
- @$(LIBTOOL) --mode=link $(LINK) malmake.o $(GLIB_LIBS) libmalaga.la \
+ echo "Linking malmake"
+ $(LIBTOOL) --mode=link $(LINK) malmake.o $(GLIB_LIBS) libmalaga.la \
-o malmake
# malrul ----------------------------------------------------------------------
@@ -227,8 +227,8 @@ MALRUL_OBJS = malrul.o rule_code.o rule_
rule_symbols.o
malrul: $(MALRUL_OBJS) libmalaga.la
- @echo "Linking malrul"
- @$(LIBTOOL) --mode=link $(LINK) $(MALRUL_OBJS) $(GLIB_LIBS) \
+ echo "Linking malrul"
+ $(LIBTOOL) --mode=link $(LINK) $(MALRUL_OBJS) $(GLIB_LIBS) \
libmalaga.la -o malrul
# malshow ---------------------------------------------------------------------
@@ -237,12 +237,12 @@ MALSHOW_OBJS = allomorphs.o canvas.o exp
variables.o
$(MALSHOW_OBJS):
- @echo "Compiling $<"
- @$(COMPILE) $(GTK_CFLAGS) $(srcdir)/$*.c
+ echo "Compiling $<"
+ $(COMPILE) $(GTK_CFLAGS) $(srcdir)/$*.c
malshow: $(MALSHOW_OBJS) libmalaga.la
- @echo "Linking malshow"
- @$(LIBTOOL) --mode=link $(LINK) $(MALSHOW_OBJS) $(GTK_LIBS) \
+ echo "Linking malshow"
+ $(LIBTOOL) --mode=link $(LINK) $(MALSHOW_OBJS) $(GTK_LIBS) \
libmalaga.la -o malshow
# malsym ----------------------------------------------------------------------
@@ -250,8 +250,8 @@ malshow: $(MALSHOW_OBJS) libmalaga.la
MALSYM_OBJS = malsym.o sym_compiler.o
malsym: $(MALSYM_OBJS) libmalaga.la
- @echo "Linking malsym"
- @$(LIBTOOL) --mode=link $(LINK) $(MALSYM_OBJS) $(GLIB_LIBS) \
+ echo "Linking malsym"
+ $(LIBTOOL) --mode=link $(LINK) $(MALSYM_OBJS) $(GLIB_LIBS) \
libmalaga.la -o malsym
#==============================================================================
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0