openSUSE Commits
Threads by month
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
May 2006
- 1 participants
- 1219 discussions
Hello community,
here is the log from the commit of package kmobiletools
checked in at Fri May 26 14:51:59 CEST 2006.
--------
--- KDE/kmobiletools/kmobiletools.changes 2006-05-25 09:34:42.000000000 +0200
+++ kmobiletools/kmobiletools.changes 2006-05-26 13:45:10.000000000 +0200
@@ -1,0 +2,5 @@
+Fri May 26 13:45:02 CEST 2006 - adrian(a)suse.de
+
+- fix typo to unbreak build
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kmobiletools.spec ++++++
--- /var/tmp/diff_new_pack.P4Ji0C/_old 2006-05-26 14:51:49.000000000 +0200
+++ /var/tmp/diff_new_pack.P4Ji0C/_new 2006-05-26 14:51:49.000000000 +0200
@@ -17,7 +17,7 @@
Group: Productivity/Networking/Other
Summary: Mobile Phone Management
Version: 0.4.3.3
-Release: 3
+Release: 4
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source0: %name-%version.tar.bz2
@@ -51,8 +51,7 @@
%if %suse_version < 1010
%suse_update_desktop_file %name Utility Telephony
%else
-%suse_update_desktop_file -G "Mobile Phone Tool" -C "" %name Utility Teleph
-ony
+%suse_update_desktop_file -G "Mobile Phone Tool" -C "" %name Utility Telephony
%endif
%clean
@@ -68,6 +67,8 @@
/opt/kde3/share/icons/*/*/apps/kmobiletools.png
%changelog -n kmobiletools
+* Fri May 26 2006 - adrian(a)suse.de
+- fix typo to unbreak build
* Thu May 25 2006 - adrian(a)suse.de
- fix build for < 10.1
* Wed May 17 2006 - stbinner(a)suse.de
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
1
0
Hello community,
here is the log from the commit of package k3b
checked in at Fri May 26 14:51:43 CEST 2006.
--------
--- KDE/k3b/k3b.changes 2006-05-24 10:09:35.000000000 +0200
+++ k3b/k3b.changes 2006-05-26 10:59:25.000000000 +0200
@@ -1,0 +2,5 @@
+Fri May 26 10:59:15 CEST 2006 - adrian(a)suse.de
+
+- fix %opensuse_bs for autobuild
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ k3b.spec ++++++
--- /var/tmp/diff_new_pack.Sd6G4J/_old 2006-05-26 14:51:30.000000000 +0200
+++ /var/tmp/diff_new_pack.Sd6G4J/_new 2006-05-26 14:51:30.000000000 +0200
@@ -12,7 +12,7 @@
Name: k3b
BuildRequires: cdparanoia flac-devel hal-devel kdelibs3-devel libmusicbrainz-devel libsamplerate-devel taglib-devel
-%if %opensuse_bs
+%if %{?opensuse_bs:1}0
%else
BuildRequires: ffmpeg-devel mad-devel
%endif
@@ -25,7 +25,7 @@
Summary: A Universal CD and DVD Burning Application
Requires: /usr/bin/cdrecord /usr/bin/mkisofs /usr/bin/cdrdao dvd+rw-tools
Version: 0.12.15
-Release: 5
+Release: 6
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source0: %name-%version.tar.bz2
Source1: %name-i18n-%version.tar.bz2
@@ -193,7 +193,7 @@
%files arts
%defattr(-,root,root)
/opt/kde3/%_lib/kde3/libk3bartsoutputplugin.*
-%if %opensuse_bs
+%if %{?opensuse_bs:1}0
%else
%files mad
@@ -207,6 +207,8 @@
%endif
%changelog -n k3b
+* Fri May 26 2006 - adrian(a)suse.de
+- fix %%opensuse_bs for autobuild
* Wed May 24 2006 - adrian(a)suse.de
- fix build for openSUSE bpild service
* Mon May 15 2006 - stbinner(a)suse.de
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
1
0
Hello community,
here is the log from the commit of package gnucash
checked in at Fri May 26 14:51:22 CEST 2006.
--------
--- GNOME/gnucash/gnucash.changes 2006-05-11 21:06:33.000000000 +0200
+++ gnucash/gnucash.changes 2006-05-25 17:28:17.000000000 +0200
@@ -1,0 +2,7 @@
+Thu May 25 16:59:44 CEST 2006 - sbrabec(a)suse.cz
+
+- Updated to version 1.9.6.
+- Do not install shared mime info files, now integrated to
+ freedesktop.org.xml.
+
+-------------------------------------------------------------------
Old:
----
gnucash-1.9.5.tar.bz2
minmem
New:
----
gnucash-1.9.6.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnucash.spec ++++++
--- /var/tmp/diff_new_pack.ovDAXv/_old 2006-05-26 14:46:15.000000000 +0200
+++ /var/tmp/diff_new_pack.ovDAXv/_new 2006-05-26 14:46:15.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package gnucash (Version 1.9.5)
+# spec file for package gnucash (Version 1.9.6)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -11,8 +11,8 @@
# norootforbuild
Name: gnucash
-Version: 1.9.5
-Release: 3
+Version: 1.9.6
+Release: 1
URL: http://www.gnucash.org/
Group: Productivity/Office/Finance
License: GPL
@@ -23,7 +23,7 @@
PreReq: gnome-filesystem gconf2
PreReq: %install_info_prereq
Requires: guile slib
-BuildRequires: doxygen g-wrap-devel gconf2-devel glib2-devel goffice-devel graphviz gtk2-devel gtkhtml2-devel guile indent ktoblzcheck-devel libglade2-devel libgnomeprintui-devel libgnomeui-devel libgsf-devel libofx-devel libxml2-devel perl-XML-Parser popt-devel qof-devel slib update-desktop-files
+BuildRequires: doxygen g-wrap-devel gconf2-devel glib2-devel goffice-devel graphviz gtk2-devel gtkhtml2-devel guile indent ktoblzcheck-devel libglade2-devel libgnomeprintui-devel libgnomeui-devel libgsf-devel libofx-devel libxml2-devel perl-XML-Parser popt-devel slib update-desktop-files
# Optional features:
BuildRequires: aqbanking-devel libofx-devel openhbci-devel postgresql-devel
# Needed for autoreconf:
@@ -218,7 +218,7 @@
%package devel
Group: Productivity/Office/Finance
Summary: Personal Finance Manager
-Requires: %{name} = %{version} aqbanking-devel g-wrap-devel gconf2-devel goffice-devel libgsf-devel gtk2-devel gtkhtml2-devel gwenhywfar-devel ktoblzcheck-devel libglade2-devel libgnomeui-devel libgnomeprint-devel libgnomeprintui-devel libofx-devel libtool popt-devel qof-devel
+Requires: %{name} = %{version} aqbanking-devel g-wrap-devel gconf2-devel goffice-devel libgsf-devel gtk2-devel gtkhtml2-devel gwenhywfar-devel ktoblzcheck-devel libglade2-devel libgnomeui-devel libgnomeprint-devel libgnomeprintui-devel libofx-devel libtool popt-devel
%description devel
GnuCash is a personal finance manager. A check-book like register GUI
@@ -422,11 +422,9 @@
--libexecdir=/opt/gnome/lib\
--libdir=/opt/gnome/%{_lib}\
--disable-schemas-install\
- --enable-qof\
--enable-sql\
--enable-ofx\
--enable-mt940\
- --enable-aqbanking\
--enable-aqbanking-test\
--enable-hbci\
--enable-locale-specific-tax
@@ -436,7 +434,6 @@
mkdir -p $RPM_BUILD_ROOT%{_defaultdocdir}/%{name}
cp AUTHORS COPYING ChangeLog ChangeLog.2003 ChangeLog.2004 ChangeLog.2005 DOCUMENTERS HACKING LICENSE NEWS README README.dependencies README.patches TODO $RPM_BUILD_ROOT%{_defaultdocdir}/%{name}
make DESTDIR=$RPM_BUILD_ROOT install
-DESTDIR=$RPM_BUILD_ROOT mime-info-to-mime
mkdir -p $RPM_BUILD_ROOT/opt/gnome/share/pixmaps
( cd $RPM_BUILD_ROOT/opt/gnome/share/pixmaps ; ln -s ../gnucash/pixmaps/gnucash-icon.png )
%suse_update_desktop_file gnucash
@@ -450,9 +447,6 @@
%post
%run_ldconfig
-if [ -f usr/bin/update-mime-database ]; then
- usr/bin/update-mime-database usr/share/mime > /dev/null
-fi
export GCONF_CONFIG_SOURCE=`opt/gnome/bin/gconftool-2 --get-default-source`
opt/gnome/bin/gconftool-2 --makefile-install-rule etc/opt/gnome/gconf/schemas/apps_gnucash_dialog_business_common.schemas >/dev/null
opt/gnome/bin/gconftool-2 --makefile-install-rule etc/opt/gnome/gconf/schemas/apps_gnucash_dialog_commodities.schemas >/dev/null
@@ -472,9 +466,6 @@
%postun
%run_ldconfig
-if [ -f usr/bin/update-mime-database ]; then
- usr/bin/update-mime-database usr/share/mime > /dev/null
-fi
%install_info_delete --info-dir=/opt/gnome/share/info /opt/gnome/share/info/gnucash-design.info.gz
%files -f gnucash.lang
@@ -515,7 +506,6 @@
/opt/gnome/share/mime-info/*.*
/opt/gnome/share/pixmaps/*.png
/opt/gnome/share/xml/gnucash
-/usr/share/mime/packages/*.xml
# FIXME: Should be part of gnome-filesystem (now gnome-doc-utils)
%dir /opt/gnome/share/xml
@@ -526,6 +516,10 @@
/opt/gnome/include/gnucash
%changelog -n gnucash
+* Thu May 25 2006 - sbrabec(a)suse.cz
+- Updated to version 1.9.6.
+- Do not install shared mime info files, now integrated to
+ freedesktop.org.xml.
* Thu May 11 2006 - sbrabec(a)suse.cz
- Updated to version 1.9.5 (GNOME2 branch).
- Split g-wrap and devel into separate packages.
++++++ gnucash-1.9.5.tar.bz2 -> gnucash-1.9.6.tar.bz2 ++++++
GNOME/gnucash/gnucash-1.9.5.tar.bz2 gnucash/gnucash-1.9.6.tar.bz2 differ: char 11, line 1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
1
0
Hello community,
here is the log from the commit of package foomatic-filters
checked in at Fri May 26 14:46:08 CEST 2006.
--------
--- foomatic-filters/foomatic-filters.changes 2006-01-25 21:35:59.000000000 +0100
+++ foomatic-filters/foomatic-filters.changes 2006-05-24 11:00:19.000000000 +0200
@@ -1,0 +2,5 @@
+Tue May 23 21:02:40 CEST 2006 - kssingvo(a)suse.de
+
+- fixed remote command execution vulnerability SWAMP#4432 (bugzilla#59233)
+
+-------------------------------------------------------------------
New:
----
foomatic-filters-3.0.1-exec.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ foomatic-filters.spec ++++++
--- /var/tmp/diff_new_pack.PyXJMZ/_old 2006-05-26 14:44:08.000000000 +0200
+++ /var/tmp/diff_new_pack.PyXJMZ/_new 2006-05-26 14:44:08.000000000 +0200
@@ -5,7 +5,7 @@
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
-# Please submit bugfixes or comments via http://bugs.opensuse.org
+# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
@@ -18,10 +18,10 @@
Requires: perl, a2ps
Autoreqprov: on
Version: 3.0.2
-Release: 7
+Release: 20
Source0: %{name}-%{cvsdate}.tar.bz2
# Source0: %{name}-%{version}.tar.bz2
-# Patch0: %{name}-%{version}-exec.patch
+Patch0: %{name}-3.0.1-exec.patch
URL: http://www.linuxprinting.org/
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Summary: Filter Scripts Used by Printer Spoolers
@@ -29,8 +29,8 @@
%description
Filter scripts used by the printer spoolers to convert the incoming
-PostScript data into the printer's native format using a printer/driver
-specific, but spooler-independent PPD file.
+PostScript data into the printer's native format using a printer and
+driver-specific, but spooler-independent PPD file.
@@ -42,7 +42,7 @@
%prep
%setup -n %{name}-%{cvsdate}
# %setup
-# %patch0 -p1
+%patch0 -p1
%build
export CFLAGS="$RPM_OPT_FLAGS -fstack-protector"
@@ -84,6 +84,8 @@
%doc COPYING ChangeLog README TODO USAGE
%changelog -n foomatic-filters
+* Tue May 23 2006 - kssingvo(a)suse.de
+- fixed remote command execution vulnerability SWAMP#4432 (bugzilla#59233)
* Wed Jan 25 2006 - mls(a)suse.de
- converted neededforbuild to BuildRequires
* Fri Jan 13 2006 - meissner(a)suse.de
++++++ foomatic-filters-3.0.1-exec.patch ++++++
--- foomatic-filters-3.0.1/foomatic-rip.in.orig 2004-01-22 04:42:35.000000000 +0100
+++ foomatic-filters-3.0.1/foomatic-rip.in 2004-08-25 19:59:06.221371554 +0200
@@ -124,6 +124,15 @@
# USA.
#
+# strip out dangerous \x01 chars in arguments to avoid a security hole in cups.
+for (my $i=0; $i<=$#ARGV; $i++)
+{
+ if (defined($ARGV[$i]))
+ {
+ $ARGV[$i] =~ s/\001//g;
+ }
+}
+
my $added_lf = "\n";
# Flush everything immediately.
@@ -936,7 +945,7 @@
# Load the PPD file and build a data structure for the renderer's
# command line and the options
-open PPD, "$ppdfile" || do {
+open PPD, "< $ppdfile" || do {
print $logh "error opening $ppdfile.\n";
rip_die ("Unable to open PPD file $ppdfile",
$EXIT_PRNERR_NORETRY_BAD_SETTINGS);
--- foomatic-filters-3.0.1/foomatic-rip.in.orig 2004-08-30 19:05:55.086453941 +0200
+++ foomatic-filters-3.0.1/foomatic-rip.in 2004-08-30 19:06:13.151591298 +0200
@@ -248,13 +248,14 @@
'-f -P- -');
# spooler-specific file converters, default for the specific spooler when
-# none of the converters above is chosen.
-my @fixed_args = (
- defined($ARGV[0])?$ARGV[0]:"",
- defined($ARGV[1])?$ARGV[1]:"",
- defined($ARGV[2])?$ARGV[2]:"",
- defined($ARGV[3])?$ARGV[3]:"",
- defined($ARGV[4])?$ARGV[4]:"" );
+# none of the converters above is chosen. Remove weird characters from the
+# command line arguments to enhance security
+my @fixed_args =
+ (defined($ARGV[0])?removespecialchars($ARGV[0]):"",
+ defined($ARGV[1])?removespecialchars($ARGV[1]):"",
+ defined($ARGV[2])?removespecialchars($ARGV[2]):"",
+ defined($ARGV[3])?removespecialchars($ARGV[3]):"",
+ defined($ARGV[4])?removespecialchars($ARGV[4]):"");
my $spoolerfileconverters = {
'cups' => "${programdir}texttops '$fixed_args[0]' '$fixed_args[1]' '$fixed_args[2]' " .
"'$fixed_args[3]' '$fixed_args[4] page-top=36 page-bottom=36 " .
@@ -292,10 +293,12 @@
# "PPD": PPD file name for CUPS or PPR (if we run as PPR RIP)
if (defined($ENV{'PPD'})) {
- $ppdfile = $ENV{'PPD'};
+ # Clean the file name from weird characters which could cause
+ # unexpected behaviour
+ $ppdfile = removespecialchars($ENV{'PPD'});
# CUPS and PPR (RIP filter) use the "PPD" environment variable to
# make the PPD file name available (we set CUPS here preliminarily,
- # in the next step we check for PPR
+ # in the next step we check for PPR)
$spooler = 'cups';
}
@@ -310,14 +313,16 @@
# PPR 1.5 allows the user to specify options for the PPR RIP with the
# "--ripopts" option on the "ppr" command line. They are provided to
# the RIP via the "PPR_RIPOPTS" environment variable.
- $optstr .= "$ENV{'PPR_RIPOPTS'} ";
+ # Clean the option string from weird characters which could cause
+ # unexpected behaviour
+ $optstr .= removespecialchars("$ENV{'PPR_RIPOPTS'} ");
# We have PPR
$spooler = 'ppr';
}
# "LPOPTS": Option settings for some LPD implementations (ex: GNUlpr)
if (defined($ENV{'LPOPTS'})) {
- my @lpopts = split(/,/, $ENV{'LPOPTS'});
+ my @lpopts = split(/,/, removespecialchars($ENV{'LPOPTS'}));
foreach my $opt (@lpopts) {
$opt =~ s/^\s+//;
$opt =~ s/\s+$//;
@@ -340,8 +345,16 @@
# options this way when printing without spooler.
# Make one option string with a non-printable character as separator,
-# So we can parse it more easily
-my $argstr = "\x01" . join("\x01",@ARGV) . "\x01";
+# So we can parse it more easily.
+
+# To avoid the separator to be in the options itselves, it is filters
+# out of the options. This does not break anything as having non
+# printable characters in the command line options does not make sense
+# nor is this needed. This way misinterpretation and even abuse is
+# prevented.
+
+my $argstr = "\x01" .
+ join("\x01", map { removeunprintables($_) } @ARGV) . "\x01";
# Debug mode activated via command line
if ($argstr =~ s/\x01--debug\x01/\x01/) {
@@ -382,7 +395,7 @@
## Start debug logging
if ($debug) {
- # If we are not debug mode, we do this later, as we must find out at
+ # If we are not in debug mode, we do this later, as we must find out at
# first which spooler is used. When printing without spooler we
# suppress logging because foomatic-rip is called directly on the
# command line and so we avoid logging onto the console.
@@ -414,7 +427,7 @@
shift @pc;
foreach (@pc) {
if( /^ppd=(.*)$/ or /^ppdfile=(.*)$/ ){
- $ppdfile = $1 if $1;
+ $ppdfile = removespecialchars($1) if $1;
}
}
} elsif ($argstr =~ s/\x01--lprng\x01/\x01/g) {
@@ -426,10 +439,10 @@
# PPD file name given via the command line
# allow duplicates, and use the last specified one
while ( ($spooler ne 'lprng') and ($argstr =~ s/\x01-p(\x01|)([^\x01]+)\x01/\x01/)) {
- $ppdfile = $2;
+ $ppdfile = removeshellescapes($2);
}
while ($argstr =~ s/\x01--ppd(\x01|=|)([^\x01]+)\x01/\x01/) {
- $ppdfile = $2;
+ $ppdfile = removeshellescapes($2);
}
# Check for LPD/GNUlpr by typical options which the spooler puts onto
@@ -456,6 +469,7 @@
foreach my $opt (@lpopts) {
$opt =~ s/^\s+//;
$opt =~ s/\s+$//;
+ $opt = removeshellescapes($opt);
if ($opt =~ /\s+/) {
$opt = "\"$opt\"";
}
@@ -468,7 +482,7 @@
# Job title and options for stock LPD
if ($argstr =~ s/\x01-[jJ](\x01|)([^\x01]+)\x01/\x01/) {
# An LPD
- $jobtitle = $2;
+ $jobtitle = removeshellescapes($2);
# Classic LPD hack
if ($spooler eq "lpd") {
$optstr .= "$jobtitle ";
@@ -486,6 +500,7 @@
my $opt = $2;
$opt =~ s/^\s+//;
$opt =~ s/\s+$//;
+ $opt = removeshellescapes($opt);
if ($opt =~ /\s+/) {
$opt = "\"$opt\"";
}
@@ -499,11 +514,11 @@
# Printer for spooler-less printing or PDQ
if ($argstr =~ s/\x01-d(\x01|)([^\x01]+)\x01/\x01/) {
- $printer = $2;
+ $printer = removeshellescapes($2);
}
# Printer for spooler-less printing, PDQ, or LPRng
if ($argstr =~ s/\x01-P(\x01|)([^\x01]+)\x01/\x01/) {
- $printer = $2;
+ $printer = removeshellescapes($2);
}
# Were we called from a PDQ wrapper?
@@ -524,9 +539,9 @@
$genpdqfile = ">&STDOUT";
} else {
if ($1 eq 'gen') {
- $genpdqfile = "> $4";
+ $genpdqfile = "> " . removeshellescapes($4);
} else {
- $genpdqfile = ">> $4";
+ $genpdqfile = ">> " . removeshellescapes($4);
}
}
# Do we want to have a PDQ driver declaration for a raw printer?
@@ -580,7 +595,7 @@
my @definitions;
for my $file (("lib/interface.sh", "lib/signal.sh")) {
- open FILE, "$file" || do {
+ open FILE, "< $file" || do {
print $logh "error opening $file.\n";
next;
};
@@ -617,17 +632,17 @@
# PPR directory.
# Get all command line parameters
- $ppr_printer = $rargs[0];
+ $ppr_printer = removeshellescapes($rargs[0]);
$ppr_address = $rargs[1];
- $ppr_options = $rargs[2];
+ $ppr_options = removeshellescapes($rargs[2]);
$ppr_jobbreak = $rargs[3];
$ppr_feedback = $rargs[4];
$ppr_codes = $rargs[5];
- $ppr_jobname = $rargs[6];
- $ppr_routing = $rargs[7];
+ $ppr_jobname = removeshellescapes($rargs[6]);
+ $ppr_routing = removeshellescapes($rargs[7]);
$ppr_for = $rargs[8];
$ppr_filetype = $rargs[9];
- $ppr_filetoprint = $rargs[10];
+ $ppr_filetoprint = removeshellescapes($rargs[10]);
# Common job parameters
$printer = $ppr_printer;
@@ -639,6 +654,7 @@
# Get the path of the PPD file from the queue configuration
$ppdfile = `LANG=en_US; ppad show $ppr_printer | grep PPDFile`;
+ $ppdfile = removeshellescapes($ppdfile);
$ppdfile =~ s/PPDFile:\s+//;
if ($ppdfile !~ m!^/!) {
$ppdfile = "../../share/ppr/PPDFiles/$ppdfile";
@@ -655,12 +671,12 @@
$cups_filename );
if ($spooler eq 'cups') {
# Get all command line parameters
- $cups_jobid = $rargs[0];
- $cups_user = $rargs[1];
- $cups_jobtitle = $rargs[2];
- $cups_copies = $rargs[3];
- $cups_options = $rargs[4];
- $cups_filename = $rargs[5];
+ $cups_jobid = removeshellescapes($rargs[0]);
+ $cups_user = removeshellescapes($rargs[1]);
+ $cups_jobtitle = removeshellescapes($rargs[2]);
+ $cups_copies = removeshellescapes($rargs[3]);
+ $cups_options = removeshellescapes($rargs[4]);
+ $cups_filename = removeshellescapes($rargs[5]);
# Common job parameters
#$printer = $cups_printer;
@@ -682,7 +698,7 @@
($spooler eq 'gnulpr')) {
# Get PPD file name as the last command line argument
- $ppdfile = $rargs[$#rargs];
+ $ppdfile = removeshellescapes($rargs[$#rargs]);
}
@@ -690,7 +706,7 @@
# No spooler, CPS, or PDQ
if (($spooler eq 'direct') || ($spooler eq 'cps') || ($spooler eq 'pdq')) {
# Which files do we want to print?
- @filelist = @rargs;
+ @filelist = map { removeshellescapes($_) } @rargs;
}
@@ -4707,6 +4723,25 @@
return %conf;
}
+sub removeunprintables {
+ # Remove unprintable characters
+ my $str = $_[0];
+ $str =~ s/[\x00-\x1f]//g;
+ return $str;
+}
+
+sub removeshellescapes {
+ # Remove shell escape characters
+ my $str = $_[0];
+ $str =~ s/[\|<>&!\$\'\"\#\*\?\(\)\[\]\{\}]//g;
+ return $str;
+}
+
+sub removespecialchars {
+ # Remove unprintable and shell escape characters
+ return removeshellescapes(removeunprintables($_[0]));
+}
+
sub unhtmlify {
# Replace HTML/XML entities by the original characters
my $str = $_[0];
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
1
0
Hello community,
here is the log from the commit of package eric
checked in at Fri May 26 14:44:01 CEST 2006.
--------
--- KDE/eric/eric.changes 2006-05-17 23:58:03.000000000 +0200
+++ eric/eric.changes 2006-05-26 14:30:27.000000000 +0200
@@ -1,0 +2,6 @@
+Wed May 24 13:47:13 CEST 2006 - adrian(a)suse.de
+
+- fix build for < 10.1
+ * remove obsolete BuildRequires
+
+-------------------------------------------------------------------
@@ -4 +10 @@
-- update buildrequires
+- update buildrequires
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ eric.spec ++++++
--- /var/tmp/diff_new_pack.RrN4RL/_old 2006-05-26 14:42:48.000000000 +0200
+++ /var/tmp/diff_new_pack.RrN4RL/_new 2006-05-26 14:42:48.000000000 +0200
@@ -11,7 +11,7 @@
# norootforbuild
Name: eric
-BuildRequires: libdrm-devel libjpeg-devel python-devel python-xml qscintilla-devel qt3-devel update-desktop-files
+BuildRequires: libjpeg-devel python-devel python-xml qscintilla-devel qt3-devel update-desktop-files
URL: http://www.die-offenbachs.de/detlev/eric3.html
%define python_site %{_prefix}/%{_lib}/python%{py_ver}/site-packages
License: GPL
@@ -22,7 +22,7 @@
Requires: python-xml
%endif
Version: 3.9.0
-Release: 4
+Release: 5
Source0: %name-%version.tar.gz
Source1: %name.desktop
Source2: APIs.tar.bz2
@@ -65,6 +65,9 @@
/%python_site/*
%changelog -n eric
+* Wed May 24 2006 - adrian(a)suse.de
+- fix build for < 10.1
+ * remove obsolete BuildRequires
* Wed May 17 2006 - dmueller(a)suse.de
- update buildrequires
* Wed May 17 2006 - stbinner(a)suse.de
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
1
0
Hello community,
here is the log from the commit of package compiz
checked in at Fri May 26 14:42:40 CEST 2006.
--------
--- compiz/compiz.changes 2006-05-21 15:40:12.000000000 +0200
+++ compiz/compiz.changes 2006-05-26 12:47:45.000000000 +0200
@@ -1,0 +2,19 @@
+Fri May 26 12:34:27 CEST 2006 - dreveman(a)suse.de
+
+- Task switcher (ALT-TAB) able to "show all" (bnc 173376)
+- Fix so swicher doesn't eat keystrokes (bnc 177650)
+- MSB byte order fix (bnc 178171)
+- Fix keyboard navigation in scale plugin (bnc 178216)
+- Don't add windows that appear after the switcher is popped up
+ (bnc 178350)
+- Add maximize_window_horizontally,
+ maximize_window_vertically, toggle_window_maximized,
+ toggle_window_maximized_horizontally,
+ toggle_window_maximized_vertically bindings (bnc 178220)
+- Fix window gravity issue (bnc 178765)
+- Fix cube rendering issue (bnc 178233)
+- Treat dock windows with below state as normal windows
+ (bnc 178316)
+- Make sloppy focus default in scale mode (bnc 174788)
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ compiz.spec ++++++
--- /var/tmp/diff_new_pack.vZdlpg/_old 2006-05-26 14:40:57.000000000 +0200
+++ /var/tmp/diff_new_pack.vZdlpg/_new 2006-05-26 14:40:57.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package compiz (Version cvs_060521)
+# spec file for package compiz (Version cvs_060526)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -17,7 +17,7 @@
PreReq: %fillup_prereq
Requires: libpng libdrm gconf2 gtk2 gnome-desktop control-center2 libsvg libsvg-cairo libwnck xgl-hardware-list >= 060519
Autoreqprov: on
-Version: cvs_060521
+Version: cvs_060526
Release: 1
Summary: OpenGL window and compositing manager.
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -138,6 +138,22 @@
/etc/opt/gnome/gconf/schemas/compiz.schemas
%changelog -n compiz
+* Fri May 26 2006 - dreveman(a)suse.de
+- Task switcher (ALT-TAB) able to "show all" (bnc 173376)
+- Fix so swicher doesn't eat keystrokes (bnc 177650)
+- MSB byte order fix (bnc 178171)
+- Fix keyboard navigation in scale plugin (bnc 178216)
+- Don't add windows that appear after the switcher is popped up
+ (bnc 178350)
+- Add maximize_window_horizontally,
+ maximize_window_vertically, toggle_window_maximized,
+ toggle_window_maximized_horizontally,
+ toggle_window_maximized_vertically bindings (bnc 178220)
+- Fix window gravity issue (bnc 178765)
+- Fix cube rendering issue (bnc 178233)
+- Treat dock windows with below state as normal windows
+ (bnc 178316)
+- Make sloppy focus default in scale mode (bnc 174788)
* Sun May 21 2006 - dreveman(a)suse.de
- Fix stacking and sync request issues. (bnc #173416)
- Fix shadow performance in g-w-d.
++++++ compiz-0.0.11.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.11/ChangeLog new/compiz-0.0.11/ChangeLog
--- old/compiz-0.0.11/ChangeLog 2006-05-21 15:18:52.000000000 +0200
+++ new/compiz-0.0.11/ChangeLog 2006-05-26 12:05:57.000000000 +0200
@@ -1,5 +1,96 @@
+2006-05-26 David Reveman <davidr(a)novell.com>
+
+ * plugins/compiz.schemas.in.in: Regen.
+
+ * plugins/scale.c (SCALE_SLOPPY_FOCUS_DEFAULT): TRUE.
+
+ * plugins/decoration.c (decorWindowUpdate): No drop-shadow decoration
+ on windows with below state.
+
+ * src/window.c (recalcWindowType): Treat dock windows with below state
+ as normal windows. (bnc #178316)
+
+ * plugins/cube.c (cubePaintTransformedScreen): Avoid optimized case
+ when more than 4 cube sides.
+
+2006-05-25 David Reveman <davidr(a)novell.com>
+
+ * plugins/compiz.schemas.in.in: Regen.
+
+ * src/window.c (moveResizeWindow): Don't adjust position for NorthWest
+ gravity. (bnc 178765) (fdo #6992)
+
+ * plugins/compiz.schemas.in.in:
+ * include/compiz.h:
+ * src/event.c (handleEvent):
+ * src/display.c: Add maximize_window_horizontally,
+ maximize_window_vertically, toggle_window_maximized,
+ toggle_window_maximized_horizontally,
+ toggle_window_maximized_vertically.
+
+ * src/event.c (handleEvent): Track changes to maximizeWindow function.
+
+ * plugins/move.c (moveHandleMotionEvent): Make sure we have a saved
+ width before we use it. Track changes to maximizeWindow function.
+
+ * plugins/wobbly.c (wobblyHandleEvent): Handle the case where
+ window is not both vertically and horizontally maximized better.
+
+ * include/compiz.h: Add MAXIMIZE_STATE macro.
+
+ * include/compiz.h:
+ * src/window.c: Remove unmaximizeWindow and make maximizeWindow
+ take a state mask so it can be used for both maximizing and
+ unmaximizing.
+
+ * plugins/switcher.c: Don't add windows that appear after the switcher
+ is popped up. (bnc 178350)
+ (switchWindowRemove): Don't create a new list. Instead remove
+ window from the existing list and make sure we're positioned
+ correctly.
+
+2006-05-24 David Reveman <davidr(a)novell.com>
+
+ * plugins/scale.c (scaleMoveFocusWindow): When moving to window on
+ left, make sure the window we're moving to is completely left of
+ currently selected window. And same thing when moving to window on
+ right, top, bottom.
+ (layoutThumbs): Set slot->x2 and slot->y2 correctly. (bnc 178216)
+
+2006-05-23 David Reveman <davidr(a)novell.com>
+
+ * plugins/water.c: GL_UNSIGNED_INT_8_8_8_8_REV as pixel data type on
+ MSBFirst machines.
+
+ * src/texture.c: Include config.h before compiz.h so that
+ IMAGE_BYTE_ORDER is defined correctly. (bnc 178171)
+
+ * include/compiz.h: Define LSBFirst, MSBFirst, IMAGE_BYTE_ORDER,
+ BITMAP_BIT_ORDER. (bnc 178171)
+
+2006-05-23 Dan Winship <danw(a)novell.com>
+
+ * plugins/switcher.c (switchToWindow): use ss->windows here as
+ well so that multiple activeNum==0 windows don't get skipped.
+ (switchTerminate): Remove the screen grab right away so that
+ keystrokes don't get dropped. bnc 177650
+ (switchPreparePaintScreen, switchPaintScreen,
+ switchDonePaintScreen): update for that
+
+2006-05-22 Dan Winship <danw(a)novell.com>
+
+ * src/window.c (moveResizeWindow): deal with both vertical and
+ horizontal struts; but not when moving a dock window
+
+ * plugins/switcher.c (switchHandleEvent): Check init_all binding
+ before init, so you can bind "<Alt>" to init_all and so end up
+ with "<Alt>Tab" being init_all rather than init (but with no way
+ to get "init"...). bnc 173376
+
2006-05-21 David Reveman <davidr(a)novell.com>
+ * src/display.c (addDisplay): Select for button events on root windows.
+
* configure.ac: Bump version to 0.0.11.
* gnome/window-decorator/gnome-window-decorator.c: Fix shadow
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.11/include/compiz.h new/compiz-0.0.11/include/compiz.h
--- old/compiz-0.0.11/include/compiz.h 2006-05-20 12:51:42.000000000 +0200
+++ new/compiz-0.0.11/include/compiz.h 2006-05-25 05:43:37.000000000 +0200
@@ -42,6 +42,21 @@
#include <GL/gl.h>
#include <GL/glx.h>
+/*
+ * WORDS_BIGENDIAN should be defined before including this file for
+ * IMAGE_BYTE_ORDER and BITMAP_BIT_ORDER to be set correctly.
+ */
+#define LSBFirst 0
+#define MSBFirst 1
+
+#ifdef WORDS_BIGENDIAN
+# define IMAGE_BYTE_ORDER MSBFirst
+# define BITMAP_BIT_ORDER MSBFirst
+#else
+# define IMAGE_BYTE_ORDER LSBFirst
+# define BITMAP_BIT_ORDER LSBFirst
+#endif
+
typedef struct _CompPlugin CompPlugin;
typedef struct _CompDisplay CompDisplay;
typedef struct _CompScreen CompScreen;
@@ -101,6 +116,9 @@
#define CompWindowStateDemandsAttentationMask (1 << 11)
#define CompWindowStateDisplayModalMask (1 << 12)
+#define MAXIMIZE_STATE (CompWindowStateMaximizedHorzMask | \
+ CompWindowStateMaximizedVertMask)
+
#define CompWindowActionMoveMask (1 << 0)
#define CompWindowActionResizeMask (1 << 1)
#define CompWindowActionStickMask (1 << 2)
@@ -387,17 +405,22 @@
#define COMP_DISPLAY_OPTION_UNMAXIMIZE_WINDOW 34
#define COMP_DISPLAY_OPTION_MINIMIZE_WINDOW 35
#define COMP_DISPLAY_OPTION_MAXIMIZE_WINDOW 36
-#define COMP_DISPLAY_OPTION_OPACITY_INCREASE 37
-#define COMP_DISPLAY_OPTION_OPACITY_DECREASE 38
-#define COMP_DISPLAY_OPTION_SCREENSHOT 39
-#define COMP_DISPLAY_OPTION_RUN_SCREENSHOT 40
-#define COMP_DISPLAY_OPTION_WINDOW_SCREENSHOT 41
-#define COMP_DISPLAY_OPTION_RUN_WINDOW_SCREENSHOT 42
-#define COMP_DISPLAY_OPTION_WINDOW_MENU 43
-#define COMP_DISPLAY_OPTION_SHOW_DESKTOP 44
-#define COMP_DISPLAY_OPTION_RAISE_ON_CLICK 45
-#define COMP_DISPLAY_OPTION_AUDIBLE_BELL 46
-#define COMP_DISPLAY_OPTION_NUM 47
+#define COMP_DISPLAY_OPTION_MAXIMIZE_WINDOW_HORZ 37
+#define COMP_DISPLAY_OPTION_MAXIMIZE_WINDOW_VERT 38
+#define COMP_DISPLAY_OPTION_OPACITY_INCREASE 39
+#define COMP_DISPLAY_OPTION_OPACITY_DECREASE 40
+#define COMP_DISPLAY_OPTION_SCREENSHOT 41
+#define COMP_DISPLAY_OPTION_RUN_SCREENSHOT 42
+#define COMP_DISPLAY_OPTION_WINDOW_SCREENSHOT 43
+#define COMP_DISPLAY_OPTION_RUN_WINDOW_SCREENSHOT 44
+#define COMP_DISPLAY_OPTION_WINDOW_MENU 45
+#define COMP_DISPLAY_OPTION_SHOW_DESKTOP 46
+#define COMP_DISPLAY_OPTION_RAISE_ON_CLICK 47
+#define COMP_DISPLAY_OPTION_AUDIBLE_BELL 48
+#define COMP_DISPLAY_OPTION_TOGGLE_WINDOW_MAXIMIZED 49
+#define COMP_DISPLAY_OPTION_TOGGLE_WINDOW_MAXIMIZED_HORZ 50
+#define COMP_DISPLAY_OPTION_TOGGLE_WINDOW_MAXIMIZED_VERT 51
+#define COMP_DISPLAY_OPTION_NUM 52
typedef CompOption *(*GetDisplayOptionsProc) (CompDisplay *display,
int *count);
@@ -1831,10 +1854,8 @@
unminimizeWindow (CompWindow *w);
void
-maximizeWindow (CompWindow *w);
-
-void
-unmaximizeWindow (CompWindow *w);
+maximizeWindow (CompWindow *w,
+ int state);
Bool
getWindowUserTime (CompWindow *w,
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.11/plugins/compiz.schemas.in.in new/compiz-0.0.11/plugins/compiz.schemas.in.in
--- old/compiz-0.0.11/plugins/compiz.schemas.in.in 2006-05-19 10:28:18.000000000 +0200
+++ new/compiz-0.0.11/plugins/compiz.schemas.in.in 2006-05-26 12:04:55.000000000 +0200
@@ -527,6 +527,34 @@
</schema>
<schema>
+ <key>/schemas/apps/compiz/general/allscreens/options/maximize_window_horizontally</key>
+ <applyto>/apps/compiz/general/allscreens/options/maximize_window_horizontally</applyto>
+ <owner>compiz</owner>
+ <type>string</type>
+ <default>Disabled</default>
+ <locale name="C">
+ <short>Maximize Window Horizontally</short>
+ <long>
+ Maximize active window horizontally
+ </long>
+ </locale>
+ </schema>
+
+ <schema>
+ <key>/schemas/apps/compiz/general/allscreens/options/maximize_window_vertically</key>
+ <applyto>/apps/compiz/general/allscreens/options/maximize_window_vertically</applyto>
+ <owner>compiz</owner>
+ <type>string</type>
+ <default>Disabled</default>
+ <locale name="C">
+ <short>Maximize Window Vertically</short>
+ <long>
+ Maximize active window vertically
+ </long>
+ </locale>
+ </schema>
+
+ <schema>
<key>/schemas/apps/compiz/general/allscreens/options/opacity_increase</key>
<applyto>/apps/compiz/general/allscreens/options/opacity_increase</applyto>
<owner>compiz</owner>
@@ -667,6 +695,48 @@
</schema>
<schema>
+ <key>/schemas/apps/compiz/general/allscreens/options/toggle_window_maximized</key>
+ <applyto>/apps/compiz/general/allscreens/options/toggle_window_maximized</applyto>
+ <owner>compiz</owner>
+ <type>string</type>
+ <default>Disabled</default>
+ <locale name="C">
+ <short>Toggle Window Maximized</short>
+ <long>
+ Toggle active window maximized
+ </long>
+ </locale>
+ </schema>
+
+ <schema>
+ <key>/schemas/apps/compiz/general/allscreens/options/toggle_window_maximized_horizontally</key>
+ <applyto>/apps/compiz/general/allscreens/options/toggle_window_maximized_horizontally</applyto>
+ <owner>compiz</owner>
+ <type>string</type>
+ <default>Disabled</default>
+ <locale name="C">
+ <short>Toggle Window Maximized Horizontally</short>
+ <long>
+ Toggle active window maximized horizontally
+ </long>
+ </locale>
+ </schema>
+
+ <schema>
+ <key>/schemas/apps/compiz/general/allscreens/options/toggle_window_maximized_vertically</key>
+ <applyto>/apps/compiz/general/allscreens/options/toggle_window_maximized_vertically</applyto>
+ <owner>compiz</owner>
+ <type>string</type>
+ <default>Disabled</default>
+ <locale name="C">
+ <short>Toggle Window Maximized Vertically</short>
+ <long>
+ Toggle active window maximized vertically
+ </long>
+ </locale>
+ </schema>
+
+ <schema>
<key>/schemas/apps/compiz/general/screen0/options/detect_refresh_rate</key>
<applyto>/apps/compiz/general/screen0/options/detect_refresh_rate</applyto>
<owner>compiz</owner>
@@ -1985,7 +2055,7 @@
<applyto>/apps/compiz/plugins/scale/screen0/options/sloppy_focus</applyto>
<owner>compiz</owner>
<type>bool</type>
- <default>false</default>
+ <default>true</default>
<locale name="C">
<short>Sloppy Focus</short>
<long>
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.11/plugins/cube.c new/compiz-0.0.11/plugins/cube.c
--- old/compiz-0.0.11/plugins/cube.c 2006-05-09 17:54:10.000000000 +0200
+++ new/compiz-0.0.11/plugins/cube.c 2006-05-25 16:22:05.000000000 +0200
@@ -1225,7 +1225,7 @@
/* outside cube */
if (cs->invert == 1)
{
- if (cs->grabIndex)
+ if (cs->grabIndex || s->size > 4)
{
GLenum filter;
int i;
@@ -1234,7 +1234,7 @@
sa.yRotate += (360.0f / size) * ((s->size >> 1) - 1);
filter = s->display->textureFilter;
- if (cs->opt[CUBE_SCREEN_OPTION_MIPMAP].value.b)
+ if (cs->grabIndex && cs->opt[CUBE_SCREEN_OPTION_MIPMAP].value.b)
s->display->textureFilter = GL_LINEAR_MIPMAP_LINEAR;
for (i = 0; i < s->size; i++)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.11/plugins/decoration.c new/compiz-0.0.11/plugins/decoration.c
--- old/compiz-0.0.11/plugins/decoration.c 2006-05-02 22:33:41.000000000 +0200
+++ new/compiz-0.0.11/plugins/decoration.c 2006-05-26 03:48:40.000000000 +0200
@@ -820,6 +820,10 @@
case CompWindowTypeDockMask:
if (w->region->numRects == 1 && !w->alpha)
decor = ds->decor[DECOR_BARE];
+
+ /* no decoration on windows with below state */
+ if (w->state & CompWindowStateBelowMask)
+ decor = NULL;
break;
default:
break;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.11/plugins/move.c new/compiz-0.0.11/plugins/move.c
--- old/compiz-0.0.11/plugins/move.c 2006-05-03 16:41:34.000000000 +0200
+++ new/compiz-0.0.11/plugins/move.c 2006-05-25 06:17:45.000000000 +0200
@@ -296,8 +296,7 @@
}
else
{
- unsigned int state = w->state;
- int min, max;
+ int min, max;
dx = md->x;
dy = md->y;
@@ -319,22 +318,26 @@
{
if (yRoot - ms->snapOffY >= SNAP_OFF)
{
+ int width = w->attrib.width;
+
w->saveMask |= CWX | CWY;
- w->saveWc.x = xRoot - (w->saveWc.width >> 1);
+ if (w->saveMask & CWWidth)
+ width = w->saveWc.width;
+
+ w->saveWc.x = xRoot - (width >> 1);
w->saveWc.y = yRoot + (w->input.top >> 1);
md->x = md->y = 0;
- unmaximizeWindow (w);
+ maximizeWindow (w, 0);
ms->snapOffY = ms->snapBackY;
return;
}
}
- else if ((ms->origState & CompWindowStateMaximizedVertMask) &&
- (ms->origState & CompWindowStateMaximizedHorzMask))
+ else if (ms->origState & CompWindowStateMaximizedVertMask)
{
if (yRoot - ms->snapBackY < SNAP_BACK)
{
@@ -342,7 +345,7 @@
{
int wy;
- maximizeWindow (w);
+ maximizeWindow (w, ms->origState);
wy = s->workArea.y + (w->input.top >> 1);
wy += w->sizeHints.height_inc >> 1;
@@ -355,7 +358,7 @@
}
}
- if (state & CompWindowStateMaximizedVertMask)
+ if (w->state & CompWindowStateMaximizedVertMask)
{
min = s->workArea.y + w->input.top;
max = s->workArea.y + s->workArea.height -
@@ -367,7 +370,7 @@
dy = max - w->attrib.y;
}
- if (state & CompWindowStateMaximizedHorzMask)
+ if (w->state & CompWindowStateMaximizedHorzMask)
{
if (w->attrib.x > s->width || w->attrib.x + w->width < 0)
return;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.11/plugins/scale.c new/compiz-0.0.11/plugins/scale.c
--- old/compiz-0.0.11/plugins/scale.c 2006-05-19 16:02:57.000000000 +0200
+++ new/compiz-0.0.11/plugins/scale.c 2006-05-26 12:02:13.000000000 +0200
@@ -42,7 +42,7 @@
#define SCALE_SPACING_MIN 0
#define SCALE_SPACING_MAX 250
-#define SCALE_SLOPPY_FOCUS_DEFAULT FALSE
+#define SCALE_SLOPPY_FOCUS_DEFAULT TRUE
#define SCALE_INITIATE_KEY_DEFAULT "Pause"
#define SCALE_INITIATE_MODIFIERS_DEFAULT 0
@@ -831,10 +831,16 @@
{
ss->slots[i].y1 += ss->windows[i]->input.top;
ss->slots[i].x1 += ss->windows[i]->input.left;
+ ss->slots[i].y2 += ss->windows[i]->input.top;
+ ss->slots[i].x2 += ss->windows[i]->input.left;
ss->slots[i].y1 = (float) ss->slots[i].y1 * ss->scale;
ss->slots[i].x1 = (float) ss->slots[i].x1 * ss->scale;
+ ss->slots[i].y2 = (float) ss->slots[i].y2 * ss->scale;
+ ss->slots[i].x2 = (float) ss->slots[i].x2 * ss->scale;
ss->slots[i].x1 += s->workArea.x;
ss->slots[i].y1 += s->workArea.y;
+ ss->slots[i].x2 += s->workArea.x;
+ ss->slots[i].y2 += s->workArea.y;
}
}
@@ -1164,10 +1170,10 @@
d = abs (x - cx) + abs (y - cy);
if (d < min)
{
- if ((dx > 0 && x < sw->slot->x2) ||
- (dx < 0 && x > sw->slot->x1) ||
- (dy > 0 && y < sw->slot->y2) ||
- (dy < 0 && y > sw->slot->y1))
+ if ((dx > 0 && slot->x1 < sw->slot->x2) ||
+ (dx < 0 && slot->x2 > sw->slot->x1) ||
+ (dy > 0 && slot->y1 < sw->slot->y2) ||
+ (dy < 0 && slot->y2 > sw->slot->y1))
continue;
min = d;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.11/plugins/switcher.c new/compiz-0.0.11/plugins/switcher.c
--- old/compiz-0.0.11/plugins/switcher.c 2006-05-19 13:00:55.000000000 +0200
+++ new/compiz-0.0.11/plugins/switcher.c 2006-05-26 02:11:36.000000000 +0200
@@ -116,7 +116,6 @@
DonePaintScreenProc donePaintScreen;
PaintScreenProc paintScreen;
PaintWindowProc paintWindow;
- DamageWindowRectProc damageWindowRect;
CompOption opt[SWITCH_SCREEN_OPTION_NUM];
CompOption init_all_bind, prev_bind, prev_all_bind;
@@ -606,26 +605,8 @@
switchUpdateWindowList (CompScreen *s,
int count)
{
- CompWindow *w;
-
SWITCH_SCREEN (s);
- ss->nWindows = 0;
-
- for (w = s->windows; w; w = w->next)
- {
- if (isSwitchWin (w))
- switchAddWindowToList (s, w);
- }
-
- qsort (ss->windows, ss->nWindows, sizeof (CompWindow *), compareWindows);
-
- if (ss->nWindows == 2)
- {
- switchAddWindowToList (s, ss->windows[0]);
- switchAddWindowToList (s, ss->windows[1]);
- }
-
if (count > 1)
{
count -= (count + 1) & 1;
@@ -647,79 +628,58 @@
}
static void
-switchToWindow (CompScreen *s,
- Bool toNext)
+switchCreateWindowList (CompScreen *s,
+ int count)
{
- CompWindow *next = NULL;
- CompWindow *prev = NULL;
CompWindow *w;
SWITCH_SCREEN (s);
- if (!ss->grabIndex)
- return;
+ ss->nWindows = 0;
for (w = s->windows; w; w = w->next)
{
- if (w->id == ss->selectedWindow)
- continue;
-
if (isSwitchWin (w))
- {
- if (w->activeNum < ss->lastActiveNum)
- {
- if (next)
- {
- if (toNext)
- {
- if (w->activeNum > next->activeNum)
- next = w;
- }
- else
- {
- if (w->activeNum < next->activeNum)
- next = w;
- }
- }
- else
- next = w;
- }
- else if (w->activeNum > ss->lastActiveNum)
- {
- if (prev)
- {
- if (toNext)
- {
- if (w->activeNum > prev->activeNum)
- prev = w;
- }
- else
- {
- if (w->activeNum < prev->activeNum)
- prev = w;
- }
- }
- else
- prev = w;
- }
- }
+ switchAddWindowToList (s, w);
}
- if (toNext)
+ qsort (ss->windows, ss->nWindows, sizeof (CompWindow *), compareWindows);
+
+ if (ss->nWindows == 2)
{
- if (next)
- w = next;
- else
- w = prev;
+ switchAddWindowToList (s, ss->windows[0]);
+ switchAddWindowToList (s, ss->windows[1]);
}
- else
+
+ switchUpdateWindowList (s, count);
+}
+
+static void
+switchToWindow (CompScreen *s,
+ Bool toNext)
+{
+ CompWindow *w;
+ int cur;
+
+ SWITCH_SCREEN (s);
+
+ if (!ss->grabIndex)
+ return;
+
+ for (cur = 0; cur < ss->nWindows; cur++)
{
- if (prev)
- w = prev;
- else
- w = next;
+ if (ss->windows[cur]->id == ss->selectedWindow)
+ break;
}
+ if (cur == ss->nWindows)
+ return;
+
+ if (toNext)
+ w = ss->windows[(cur + 1) % ss->nWindows];
+ else
+ w = ss->windows[(cur + ss->nWindows - 1) % ss->nWindows];
+
if (w)
{
Window old = ss->selectedWindow;
@@ -912,7 +872,7 @@
{
ss->lastActiveNum = s->activeNum;
- switchUpdateWindowList (s, count);
+ switchCreateWindowList (s, count);
ss->sTranslate = ss->zoom;
@@ -975,13 +935,13 @@
sendWindowActivationRequest (w->screen, w->id);
}
+ removeScreenGrab (s, ss->grabIndex, 0);
+ ss->grabIndex = 0;
+
if (!ss->zooming)
{
ss->selectedWindow = None;
ss->zoomedWindow = None;
-
- removeScreenGrab (s, ss->grabIndex, 0);
- ss->grabIndex = 0;
}
else
{
@@ -1003,21 +963,103 @@
w = findWindowAtDisplay (d, id);
if (w)
{
- int i;
+ Bool inList = FALSE;
+ int count, j, i = 0;
+ Window selected, old;
SWITCH_SCREEN (w->screen);
- for (i = 0; i < ss->nWindows; i++)
+ if (isSwitchWin (w))
+ return;
+
+ old = selected = ss->selectedWindow;
+
+ while (i < ss->nWindows)
{
if (ss->windows[i] == w)
{
- ss->lastActiveNum = w->screen->activeNum;
+ inList = TRUE;
- switchUpdateWindowList (w->screen,
- switchCountWindows (w->screen));
+ if (w->id == selected)
+ {
+ if (i < ss->nWindows)
+ selected = ss->windows[i + 1]->id;
+ else
+ selected = ss->windows[0]->id;
+ }
- break;
+ ss->nWindows--;
+ for (j = i; j < ss->nWindows; j++)
+ ss->windows[j] = ss->windows[j + 1];
}
+ else
+ {
+ i++;
+ }
+ }
+
+ if (!inList)
+ return;
+
+ count = ss->nWindows;
+
+ if (ss->nWindows == 2)
+ {
+ if (ss->windows[0] == ss->windows[1])
+ {
+ ss->nWindows--;
+ count = 1;
+ }
+ else
+ {
+ switchAddWindowToList (w->screen, ss->windows[0]);
+ switchAddWindowToList (w->screen, ss->windows[1]);
+ }
+ }
+
+ if (ss->nWindows == 0)
+ {
+ switchTerminate (w->screen, FALSE);
+ return;
+ }
+
+ if (!ss->grabIndex)
+ return;
+
+ switchUpdateWindowList (w->screen, count);
+
+ for (i = 0; i < ss->nWindows; i++)
+ {
+ ss->selectedWindow = ss->windows[i]->id;
+
+ if (ss->selectedWindow == selected)
+ break;
+
+ ss->pos -= WIDTH;
+ if (ss->pos < -ss->nWindows * WIDTH)
+ ss->pos += ss->nWindows * WIDTH;
+ }
+
+ if (ss->popupWindow)
+ {
+ CompWindow *popup;
+
+ popup = findWindowAtScreen (w->screen, ss->popupWindow);
+ if (popup)
+ addWindowDamage (popup);
+
+ setSelectedWindowHint (w->screen);
+ }
+
+ if (old != ss->selectedWindow)
+ {
+ addWindowDamage (w);
+
+ w = findWindowAtScreen (w->screen, old);
+ if (w)
+ addWindowDamage (w);
+
+ ss->moreAdjust = 1;
}
}
}
@@ -1040,13 +1082,13 @@
if (!ss->switching)
{
- if (eventMatches (d, event,
- &ss->opt[SWITCH_SCREEN_OPTION_INITIATE]) ||
- eventMatches (d, event, &ss->prev_bind))
- switchInitiate (s, FALSE);
- else if (eventMatches (d, event, &ss->init_all_bind) ||
- eventMatches (d, event, &ss->prev_all_bind))
+ if (eventMatches (d, event, &ss->init_all_bind) ||
+ eventMatches (d, event, &ss->prev_all_bind))
switchInitiate (s, TRUE);
+ else if (eventMatches (d, event,
+ &ss->opt[SWITCH_SCREEN_OPTION_INITIATE]) ||
+ eventMatches (d, event, &ss->prev_bind))
+ switchInitiate (s, FALSE);
}
if (eventMatches (d, event,
@@ -1191,11 +1233,11 @@
ss->translate = 0.0f;
ss->sTranslate = ss->zoom;
+ ss->selectedWindow = None;
+ ss->zoomedWindow = None;
+
if (ss->grabIndex)
{
- ss->selectedWindow = None;
- ss->zoomedWindow = None;
-
removeScreenGrab (s, ss->grabIndex, 0);
ss->grabIndex = 0;
}
@@ -1244,7 +1286,7 @@
SWITCH_SCREEN (s);
- if (ss->grabIndex)
+ if (ss->grabIndex || ss->zooming)
{
ScreenPaintAttrib sa = *sAttrib;
CompWindow *zoomed;
@@ -1330,7 +1372,7 @@
{
SWITCH_SCREEN (s);
- if (ss->grabIndex && ss->moreAdjust)
+ if ((ss->grabIndex || ss->zooming) && ss->moreAdjust)
{
if (ss->zooming)
{
@@ -1671,52 +1713,6 @@
}
static Bool
-switchDamageWindowRect (CompWindow *w,
- Bool initial,
- BoxPtr rect)
-{
- Bool status;
-
- SWITCH_SCREEN (w->screen);
-
- if (ss->grabIndex && ss->switching)
- {
- if (initial)
- {
- if (isSwitchWin (w))
- {
- ss->lastActiveNum = w->screen->activeNum;
-
- switchUpdateWindowList (w->screen,
- switchCountWindows (w->screen));
- }
- else if (w->id == ss->popupWindow)
- {
- updateWindowAttributes (w, TRUE);
- }
- }
- else if (!ss->moreAdjust)
- {
- if (isSwitchWin (w))
- {
- CompWindow *popup;
-
- popup = findWindowAtScreen (w->screen, ss->popupWindow);
- if (popup)
- addWindowDamage (popup);
-
- }
- }
- }
-
- UNWRAP (ss, w->screen, damageWindowRect);
- status = (*w->screen->damageWindowRect) (w, initial, rect);
- WRAP (ss, w->screen, damageWindowRect, switchDamageWindowRect);
-
- return status;
-}
-
-static Bool
switchInitDisplay (CompPlugin *p,
CompDisplay *d)
{
@@ -1817,7 +1813,6 @@
WRAP (ss, s, donePaintScreen, switchDonePaintScreen);
WRAP (ss, s, paintScreen, switchPaintScreen);
WRAP (ss, s, paintWindow, switchPaintWindow);
- WRAP (ss, s, damageWindowRect, switchDamageWindowRect);
s->privates[sd->screenPrivateIndex].ptr = ss;
@@ -1834,7 +1829,6 @@
UNWRAP (ss, s, donePaintScreen);
UNWRAP (ss, s, paintScreen);
UNWRAP (ss, s, paintWindow);
- UNWRAP (ss, s, damageWindowRect);
if (ss->windowsSize)
free (ss->windows);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.11/plugins/water.c new/compiz-0.0.11/plugins/water.c
--- old/compiz-0.0.11/plugins/water.c 2006-05-05 10:30:03.000000000 +0200
+++ new/compiz-0.0.11/plugins/water.c 2006-05-23 16:36:16.000000000 +0200
@@ -23,6 +23,10 @@
* Author: David Reveman <davidr(a)novell.com>
*/
+#ifdef HAVE_CONFIG_H
+# include "../config.h"
+#endif
+
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
@@ -495,7 +499,13 @@
ws->height,
0,
GL_BGRA,
+
+#if IMAGE_BYTE_ORDER == MSBFirst
+ GL_UNSIGNED_INT_8_8_8_8_REV,
+#else
GL_UNSIGNED_BYTE,
+#endif
+
ws->t0);
}
@@ -807,7 +817,13 @@
ws->height,
0,
GL_BGRA,
- GL_UNSIGNED_BYTE,
+
+#if IMAGE_BYTE_ORDER == MSBFirst
+ GL_UNSIGNED_INT_8_8_8_8_REV,
+#else
+ GL_UNSIGNED_BYTE,
+#endif
+
ws->t0);
}
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.11/plugins/wobbly.c new/compiz-0.0.11/plugins/wobbly.c
--- old/compiz-0.0.11/plugins/wobbly.c 2006-05-19 10:28:19.000000000 +0200
+++ new/compiz-0.0.11/plugins/wobbly.c 2006-05-25 06:14:39.000000000 +0200
@@ -38,9 +38,6 @@
#define WIN_W(w) ((w)->width + (w)->output.left + (w)->output.right)
#define WIN_H(w) ((w)->height + (w)->output.top + (w)->output.bottom)
-#define MAXIMIZE_STATE (CompWindowStateMaximizedVertMask | \
- CompWindowStateMaximizedHorzMask)
-
#define GRID_WIDTH 4
#define GRID_HEIGHT 4
@@ -2330,8 +2327,7 @@
{
WOBBLY_WINDOW (ws->grabWindow);
- if (ww->state & (CompWindowStateMaximizedVertMask |
- CompWindowStateMaximizedHorzMask))
+ if (ww->state & MAXIMIZE_STATE)
{
WOBBLY_WINDOW (ws->grabWindow);
@@ -2339,8 +2335,15 @@
{
int dx, dy;
- dx = pointerX - lastPointerX;
- dy = pointerY - lastPointerY;
+ if (ww->state & CompWindowStateMaximizedHorzMask)
+ dx = pointerX - lastPointerX;
+ else
+ dx = 0;
+
+ if (ww->state & CompWindowStateMaximizedVertMask)
+ dy = pointerY - lastPointerY;
+ else
+ dy = 0;
ww->model->anchorObject->position.x += dx;
ww->model->anchorObject->position.y += dy;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.11/src/display.c new/compiz-0.0.11/src/display.c
--- old/compiz-0.0.11/src/display.c 2006-05-17 11:25:15.000000000 +0200
+++ new/compiz-0.0.11/src/display.c 2006-05-24 23:01:45.000000000 +0200
@@ -308,6 +308,24 @@
XKeysymToKeycode (display->display,
XStringToKeysym (MAXIMIZE_WINDOW_KEY_DEFAULT));
+ o = &display->opt[COMP_DISPLAY_OPTION_MAXIMIZE_WINDOW_HORZ];
+ o->name = "maximize_window_horizontally";
+ o->shortDesc = "Maximize Window Horizontally";
+ o->longDesc = "Maximize active window horizontally";
+ o->type = CompOptionTypeBinding;
+ o->value.bind.type = CompBindingTypeNone;
+ o->value.bind.u.key.modifiers = 0;
+ o->value.bind.u.key.keycode = 0;
+
+ o = &display->opt[COMP_DISPLAY_OPTION_MAXIMIZE_WINDOW_VERT];
+ o->name = "maximize_window_vertically";
+ o->shortDesc = "Maximize Window Vertically";
+ o->longDesc = "Maximize active window vertically";
+ o->type = CompOptionTypeBinding;
+ o->value.bind.type = CompBindingTypeNone;
+ o->value.bind.u.key.modifiers = 0;
+ o->value.bind.u.key.keycode = 0;
+
o = &display->opt[COMP_DISPLAY_OPTION_SHOW_DESKTOP];
o->name = "show_desktop";
o->shortDesc = "Hide all windows and focus desktop";
@@ -451,6 +469,35 @@
o->longDesc = "Audible system beep";
o->type = CompOptionTypeBool;
o->value.b = AUDIBLE_BELL_DEFAULT;
+
+ o = &display->opt[COMP_DISPLAY_OPTION_TOGGLE_WINDOW_MAXIMIZED];
+ o->name = "toggle_window_maximized";
+ o->shortDesc = "Toggle Window Maximized";
+ o->longDesc = "Toggle active window maximized";
+ o->type = CompOptionTypeBinding;
+ o->value.bind.type = CompBindingTypeNone;
+ o->value.bind.u.key.modifiers = 0;
+ o->value.bind.u.key.keycode = 0;
+
+ o = &display->opt[COMP_DISPLAY_OPTION_TOGGLE_WINDOW_MAXIMIZED_HORZ];
+ o->name = "toggle_window_maximized_horizontally";
+ o->shortDesc = "Toggle Window Maximized Horizontally";
+ o->longDesc =
+ "Toggle active window maximized horizontally";
+ o->type = CompOptionTypeBinding;
+ o->value.bind.type = CompBindingTypeNone;
+ o->value.bind.u.key.modifiers = 0;
+ o->value.bind.u.key.keycode = 0;
+
+ o = &display->opt[COMP_DISPLAY_OPTION_TOGGLE_WINDOW_MAXIMIZED_VERT];
+ o->name = "toggle_window_maximized_vertically";
+ o->shortDesc = "Toggle Window Maximized Vertically";
+ o->longDesc =
+ "Toggle active window maximized vertically";
+ o->type = CompOptionTypeBinding;
+ o->value.bind.type = CompBindingTypeNone;
+ o->value.bind.u.key.modifiers = 0;
+ o->value.bind.u.key.keycode = 0;
}
CompOption *
@@ -561,6 +608,8 @@
case COMP_DISPLAY_OPTION_RUN_DIALOG:
case COMP_DISPLAY_OPTION_MINIMIZE_WINDOW:
case COMP_DISPLAY_OPTION_MAXIMIZE_WINDOW:
+ case COMP_DISPLAY_OPTION_MAXIMIZE_WINDOW_HORZ:
+ case COMP_DISPLAY_OPTION_MAXIMIZE_WINDOW_VERT:
case COMP_DISPLAY_OPTION_UNMAXIMIZE_WINDOW:
case COMP_DISPLAY_OPTION_SHOW_DESKTOP:
case COMP_DISPLAY_OPTION_RUN_COMMAND0:
@@ -582,6 +631,9 @@
case COMP_DISPLAY_OPTION_RUN_SCREENSHOT:
case COMP_DISPLAY_OPTION_RUN_WINDOW_SCREENSHOT:
case COMP_DISPLAY_OPTION_WINDOW_MENU:
+ case COMP_DISPLAY_OPTION_TOGGLE_WINDOW_MAXIMIZED:
+ case COMP_DISPLAY_OPTION_TOGGLE_WINDOW_MAXIMIZED_HORZ:
+ case COMP_DISPLAY_OPTION_TOGGLE_WINDOW_MAXIMIZED_VERT:
if (addDisplayBinding (display, &value->bind))
{
removeDisplayBinding (display, &o->value.bind);
@@ -1583,6 +1635,10 @@
addScreenBinding (s,
&d->opt[COMP_DISPLAY_OPTION_MAXIMIZE_WINDOW].value.bind);
addScreenBinding (s,
+ &d->opt[COMP_DISPLAY_OPTION_MAXIMIZE_WINDOW_HORZ].value.bind);
+ addScreenBinding (s,
+ &d->opt[COMP_DISPLAY_OPTION_MAXIMIZE_WINDOW_VERT].value.bind);
+ addScreenBinding (s,
&d->opt[COMP_DISPLAY_OPTION_UNMAXIMIZE_WINDOW].value.bind);
addScreenBinding (s, &d->opt[COMP_DISPLAY_OPTION_SHOW_DESKTOP].value.bind);
addScreenBinding (s, &d->opt[COMP_DISPLAY_OPTION_RUN_COMMAND0].value.bind);
@@ -1607,6 +1663,13 @@
addScreenBinding (s, &d->opt[COMP_DISPLAY_OPTION_RUN_SCREENSHOT].value.bind);
addScreenBinding (s, &d->opt[COMP_DISPLAY_OPTION_RUN_WINDOW_SCREENSHOT].value.bind);
addScreenBinding (s, &d->opt[COMP_DISPLAY_OPTION_WINDOW_MENU].value.bind);
+ addScreenBinding (s,
+ &d->opt[COMP_DISPLAY_OPTION_TOGGLE_WINDOW_MAXIMIZED].value.bind);
+ addScreenBinding (s,
+ &d->opt[COMP_DISPLAY_OPTION_TOGGLE_WINDOW_MAXIMIZED_HORZ].value.bind);
+ addScreenBinding (s,
+ &d->opt[COMP_DISPLAY_OPTION_TOGGLE_WINDOW_MAXIMIZED_VERT].value.bind);
+
}
void
@@ -2020,6 +2083,8 @@
EnterWindowMask |
KeyPressMask |
KeyReleaseMask |
+ ButtonPressMask |
+ ButtonReleaseMask |
FocusChangeMask |
ExposureMask);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.11/src/event.c new/compiz-0.0.11/src/event.c
--- old/compiz-0.0.11/src/event.c 2006-05-21 14:23:56.000000000 +0200
+++ new/compiz-0.0.11/src/event.c 2006-05-25 15:54:12.000000000 +0200
@@ -423,7 +423,29 @@
{
w = findTopLevelWindowAtScreen (s, event->xbutton.window);
if (w)
- maximizeWindow (w);
+ maximizeWindow (w, MAXIMIZE_STATE);
+
+ eventMode = AsyncPointer;
+ }
+
+ if (eventMatches (d, event,
+ &d->opt[COMP_DISPLAY_OPTION_MAXIMIZE_WINDOW_HORZ]))
+ {
+ w = findTopLevelWindowAtScreen (s, event->xbutton.window);
+ if (w)
+ maximizeWindow (w, w->state |
+ CompWindowStateMaximizedHorzMask);
+
+ eventMode = AsyncPointer;
+ }
+
+ if (eventMatches (d, event,
+ &d->opt[COMP_DISPLAY_OPTION_MAXIMIZE_WINDOW_VERT]))
+ {
+ w = findTopLevelWindowAtScreen (s, event->xbutton.window);
+ if (w)
+ maximizeWindow (w, w->state |
+ CompWindowStateMaximizedVertMask);
eventMode = AsyncPointer;
}
@@ -433,7 +455,7 @@
{
w = findTopLevelWindowAtScreen (s, event->xbutton.window);
if (w)
- unmaximizeWindow (w);
+ maximizeWindow (w, 0);
eventMode = AsyncPointer;
}
@@ -567,6 +589,37 @@
eventMode = AsyncPointer;
}
+ if (eventMatches (d, event,
+ &d->opt[COMP_DISPLAY_OPTION_TOGGLE_WINDOW_MAXIMIZED]))
+ {
+ w = findTopLevelWindowAtScreen (s, event->xbutton.window);
+ if (w)
+ {
+ if ((w->state & MAXIMIZE_STATE) == MAXIMIZE_STATE)
+ maximizeWindow (w, 0);
+ else
+ maximizeWindow (w, MAXIMIZE_STATE);
+ }
+ }
+
+ if (eventMatches (d, event,
+ &d->opt[COMP_DISPLAY_OPTION_TOGGLE_WINDOW_MAXIMIZED_HORZ]))
+ {
+ w = findTopLevelWindowAtScreen (s, event->xbutton.window);
+ if (w)
+ maximizeWindow (w, w->state ^
+ CompWindowStateMaximizedHorzMask);
+ }
+
+ if (eventMatches (d, event,
+ &d->opt[COMP_DISPLAY_OPTION_TOGGLE_WINDOW_MAXIMIZED_VERT]))
+ {
+ w = findTopLevelWindowAtScreen (s, event->xbutton.window);
+ if (w)
+ maximizeWindow (w, w->state ^
+ CompWindowStateMaximizedVertMask);
+ }
+
if (!d->screens->maxGrab)
XAllowEvents (d->display, eventMode, event->xbutton.time);
}
@@ -594,7 +647,25 @@
{
w = findTopLevelWindowAtScreen (s, d->activeWindow);
if (w)
- maximizeWindow (w);
+ maximizeWindow (w, MAXIMIZE_STATE);
+ }
+
+ if (eventMatches (d, event,
+ &d->opt[COMP_DISPLAY_OPTION_MAXIMIZE_WINDOW_HORZ]))
+ {
+ w = findTopLevelWindowAtScreen (s, d->activeWindow);
+ if (w)
+ maximizeWindow (w, w->state |
+ CompWindowStateMaximizedHorzMask);
+ }
+
+ if (eventMatches (d, event,
+ &d->opt[COMP_DISPLAY_OPTION_MAXIMIZE_WINDOW_VERT]))
+ {
+ w = findTopLevelWindowAtScreen (s, d->activeWindow);
+ if (w)
+ maximizeWindow (w, w->state |
+ CompWindowStateMaximizedVertMask);
}
if (eventMatches (d, event,
@@ -602,7 +673,7 @@
{
w = findTopLevelWindowAtScreen (s, d->activeWindow);
if (w)
- unmaximizeWindow (w);
+ maximizeWindow (w, 0);
}
if (eventMatches (d, event,
@@ -704,6 +775,37 @@
if (eventMatches (d, event,
&d->opt[COMP_DISPLAY_OPTION_RUN_WINDOW_SCREENSHOT]))
runCommand (s, d->opt[COMP_DISPLAY_OPTION_WINDOW_SCREENSHOT].value.s);
+
+ if (eventMatches (d, event,
+ &d->opt[COMP_DISPLAY_OPTION_TOGGLE_WINDOW_MAXIMIZED]))
+ {
+ w = findTopLevelWindowAtScreen (s, d->activeWindow);
+ if (w)
+ {
+ if ((w->state & MAXIMIZE_STATE) == MAXIMIZE_STATE)
+ maximizeWindow (w, 0);
+ else
+ maximizeWindow (w, MAXIMIZE_STATE);
+ }
+ }
+
+ if (eventMatches (d, event,
+ &d->opt[COMP_DISPLAY_OPTION_TOGGLE_WINDOW_MAXIMIZED_HORZ]))
+ {
+ w = findTopLevelWindowAtScreen (s, d->activeWindow);
+ if (w)
+ maximizeWindow (w, w->state ^
+ CompWindowStateMaximizedHorzMask);
+ }
+
+ if (eventMatches (d, event,
+ &d->opt[COMP_DISPLAY_OPTION_TOGGLE_WINDOW_MAXIMIZED_VERT]))
+ {
+ w = findTopLevelWindowAtScreen (s, d->activeWindow);
+ if (w)
+ maximizeWindow (w, w->state ^
+ CompWindowStateMaximizedVertMask);
+ }
}
break;
case KeyRelease:
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.11/src/texture.c new/compiz-0.0.11/src/texture.c
--- old/compiz-0.0.11/src/texture.c 2006-05-09 17:51:37.000000000 +0200
+++ new/compiz-0.0.11/src/texture.c 2006-05-23 16:33:13.000000000 +0200
@@ -23,6 +23,10 @@
* Author: David Reveman <davidr(a)novell.com>
*/
+#ifdef HAVE_CONFIG_H
+# include "../config.h"
+#endif
+
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.11/src/window.c new/compiz-0.0.11/src/window.c
--- old/compiz-0.0.11/src/window.c 2006-05-21 14:43:05.000000000 +0200
+++ new/compiz-0.0.11/src/window.c 2006-05-26 03:46:05.000000000 +0200
@@ -592,6 +592,9 @@
type = CompWindowTypeDialogMask;
}
+ if (type == CompWindowTypeDockMask && (w->state & CompWindowStateBelowMask))
+ type = CompWindowTypeNormalMask;
+
if ((type & (CompWindowTypeNormalMask | CompWindowTypeDialogMask)) &&
(w->state & CompWindowStateModalMask))
type = CompWindowTypeModalDialogMask;
@@ -2135,13 +2138,6 @@
if (xwcm & (CWX | CWWidth))
{
switch (gravity) {
- case NorthWestGravity:
- case WestGravity:
- case SouthWestGravity:
- if (xwcm & CWX)
- xwc->x += w->input.left;
- break;
-
case NorthGravity:
case CenterGravity:
case SouthGravity:
@@ -2169,13 +2165,6 @@
if (xwcm & (CWY | CWHeight))
{
switch (gravity) {
- case NorthWestGravity:
- case NorthGravity:
- case NorthEastGravity:
- if (xwcm & CWY)
- xwc->y += w->input.top;
- break;
-
case WestGravity:
case CenterGravity:
case EastGravity:
@@ -2200,17 +2189,33 @@
xwcm |= CWY;
}
- if (xwcm & CWY)
+ if (!(w->type & (CompWindowTypeDockMask | CompWindowTypeUnknownMask)))
{
- int min, max;
+ if (xwcm & CWY)
+ {
+ int min, max;
+
+ min = w->screen->workArea.y + w->input.top;
+ max = w->screen->workArea.y + w->screen->workArea.height;
+
+ if (xwc->y < min)
+ xwc->y = min;
+ else if (xwc->y > max)
+ xwc->y = max;
+ }
+
+ if (xwcm & CWX)
+ {
+ int min, max;
- min = w->screen->workArea.y + w->input.top;
- max = w->screen->workArea.y + w->screen->workArea.height;
+ min = w->screen->workArea.x + w->input.left;
+ max = w->screen->workArea.x + w->screen->workArea.width;
- if (xwc->y < min)
- xwc->y = min;
- else if (xwc->y > max)
- xwc->y = max;
+ if (xwc->x < min)
+ xwc->x = min;
+ else if (xwc->x > max)
+ xwc->x = max;
+ }
}
if (xwcm & CWBorderWidth)
@@ -3449,24 +3454,24 @@
}
void
-maximizeWindow (CompWindow *w)
+maximizeWindow (CompWindow *w,
+ int state)
{
- int state = 0;
-
if (w->attrib.override_redirect)
return;
- if (w->actions & CompWindowActionMaximizeHorzMask)
- state |= CompWindowStateMaximizedHorzMask;
+ if (!(w->actions & CompWindowActionMaximizeHorzMask))
+ state &= ~CompWindowStateMaximizedHorzMask;
- if (w->actions & CompWindowActionMaximizeVertMask)
- state |= CompWindowStateMaximizedVertMask;
+ if (!(w->actions & CompWindowActionMaximizeVertMask))
+ state &= ~CompWindowStateMaximizedVertMask;
- state &= ~w->state;
+ state &= MAXIMIZE_STATE;
- if (!state)
+ if (state == (w->state & MAXIMIZE_STATE))
return;
+ w->state &= ~MAXIMIZE_STATE;
w->state |= state;
recalcWindowType (w);
@@ -3477,27 +3482,6 @@
setWindowState (w->screen->display, w->state, w->id);
}
-void
-unmaximizeWindow (CompWindow *w)
-{
- if (w->attrib.override_redirect)
- return;
-
- if (!(w->state & (CompWindowStateMaximizedHorzMask |
- CompWindowStateMaximizedVertMask)))
- return;
-
- w->state &= ~(CompWindowStateMaximizedHorzMask |
- CompWindowStateMaximizedVertMask);
-
- recalcWindowType (w);
- recalcWindowActions (w);
-
- updateWindowAttributes (w, FALSE);
-
- setWindowState (w->screen->display, w->state, w->id);
-}
-
Bool
getWindowUserTime (CompWindow *w,
Time *time)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
1
0
Hello community,
here is the log from the commit of package bbtools
checked in at Fri May 26 14:38:06 CEST 2006.
--------
--- bbtools/bbtools.changes 2006-01-25 21:34:35.000000000 +0100
+++ bbtools/bbtools.changes 2006-05-26 12:54:19.000000000 +0200
@@ -1,0 +2,5 @@
+Fri May 26 12:54:13 CEST 2006 - schwab(a)suse.de
+
+- Don't strip binaries.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ bbtools.spec ++++++
--- /var/tmp/diff_new_pack.A0oSB1/_old 2006-05-26 14:35:47.000000000 +0200
+++ /var/tmp/diff_new_pack.A0oSB1/_new 2006-05-26 14:35:47.000000000 +0200
@@ -1,11 +1,11 @@
#
-# spec file for package bbtools (Version 2006.1.20)
+# spec file for package bbtools (Version 2006.5.26)
#
# Copyright (c) 2006 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.
#
-# Please submit bugfixes or comments via http://bugs.opensuse.org
+# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
@@ -16,7 +16,7 @@
Group: System/GUI/Other
Autoreqprov: on
Requires: blackbox
-Version: 2006.1.20
+Version: 2006.5.26
Release: 1
Summary: Tools for the Blackbox Window Manager
URL: http://bbtools.sourceforge.net/
@@ -103,6 +103,7 @@
# automake
# autoconf
CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" \
+ LDFLAGS=" " \
./configure \
--prefix=/usr \
--libdir=%_libdir \
@@ -115,7 +116,6 @@
done
%install
-rm -rf $RPM_BUILD_ROOT
for i in %{list}; do
cd $i-*
make "DESTDIR=$RPM_BUILD_ROOT" install
@@ -145,6 +145,8 @@
/usr/share/bbkeys
%changelog -n bbtools
+* Fri May 26 2006 - schwab(a)suse.de
+- Don't strip binaries.
* Wed Jan 25 2006 - mls(a)suse.de
- converted neededforbuild to BuildRequires
* Fri Jan 20 2006 - hvogel(a)suse.de
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
1
0
Hello community,
here is the log from the commit of package repoview
checked in at Fri May 26 14:37:20 CEST 2006.
--------
--- repoview/repoview.changes 2006-01-25 21:47:40.000000000 +0100
+++ repoview/repoview.changes 2006-05-25 14:56:49.000000000 +0200
@@ -1,0 +2,15 @@
+Thu May 25 14:55:25 CEST 2006 - cthiel(a)suse.de
+
+- update to version 0.5.1
+ * Hack around the comps.xml API changes in yum-2.5.x
+- changes in version 0.5:
+ * Switch to optparse. This may break older Pythons, not sure.
+ * Dropped "-t toplevel" switch, since it complicated the code a lot and
+ not used by anyone, to my knowledge.
+ * Moved "-l title" to "-t title" with a deprecation note in place.
+ * Added RSS generation routines. Template for the entries is in kid.rss.
+ Feed published into repodata/latest-feed.xml. To enable rss feed
+ generation, pass a "-u URL" flag (repoview has no other way of knowing
+ where your data will be published).
+
+-------------------------------------------------------------------
Old:
----
repoview-0.4.1.diff
repoview-0.4.1.tar.bz2
New:
----
repoview-0.5.1.patch
repoview-0.5.1.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ repoview.spec ++++++
--- /var/tmp/diff_new_pack.ps9Rjs/_old 2006-05-26 14:36:00.000000000 +0200
+++ /var/tmp/diff_new_pack.ps9Rjs/_new 2006-05-26 14:36:00.000000000 +0200
@@ -1,25 +1,25 @@
#
-# spec file for package repoview (Version 0.4.1)
+# spec file for package repoview (Version 0.5.1)
#
-# Copyright (c) 2005 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2006 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.
#
-# Please submit bugfixes or comments via http://www.suse.de/feedback/
+# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
Name: repoview
BuildRequires: python-devel python-kid yum
-Version: 0.4.1
+Version: 0.5.1
Release: 1
Summary: Creates a set of static HTML pages in a yum repository for easy browsing
Group: System/Packages
License: GPL
URL: http://linux.duke.edu/projects/mini/repoview/
Source: %{name}-%{version}.tar.bz2
-Patch: %{name}-%{version}.diff
+Patch: %{name}-%{version}.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
Requires: python-kid
@@ -61,6 +61,18 @@
%{_datadir}/%{name}
%changelog -n repoview
+* Thu May 25 2006 - cthiel(a)suse.de
+- update to version 0.5.1
+ * Hack around the comps.xml API changes in yum-2.5.x
+- changes in version 0.5:
+ * Switch to optparse. This may break older Pythons, not sure.
+ * Dropped "-t toplevel" switch, since it complicated the code a lot and
+ not used by anyone, to my knowledge.
+ * Moved "-l title" to "-t title" with a deprecation note in place.
+ * Added RSS generation routines. Template for the entries is in kid.rss.
+ Feed published into repodata/latest-feed.xml. To enable rss feed
+ generation, pass a "-u URL" flag (repoview has no other way of knowing
+ where your data will be published).
* Wed Jan 25 2006 - mls(a)suse.de
- converted neededforbuild to BuildRequires
* Wed Oct 26 2005 - cthiel(a)suse.de
++++++ repoview-0.5.1.patch ++++++
--- repoview.py
+++ repoview.py
@@ -67,7 +67,7 @@
idxfile = 'index.html'
VERSION = '0.5.1'
-DEFAULT_TEMPLATEDIR = './templates'
+DEFAULT_TEMPLATEDIR = '/usr/share/repoview/templates'
emailre = re.compile('<.*?@.*?>')
def _webify(text):
++++++ repoview-0.4.1.tar.bz2 -> repoview-0.5.1.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/repoview-0.4.1/ChangeLog new/repoview-0.5.1/ChangeLog
--- old/repoview-0.4.1/ChangeLog 2005-10-07 23:42:25.000000000 +0200
+++ new/repoview-0.5.1/ChangeLog 2006-02-16 05:27:07.000000000 +0100
@@ -1,29 +1,43 @@
-Version 0.4.1
- * Add -V, --version, -h, and -? command-line options
- (#504, patch by Ville Skyttä)
- * Fix Changelog sorting (introduced in 0.4 with parser logic change)
-
-Version 0.4
- * Add DOCTYPE declarations (#482)
- * Use YUM parsing routines with "noyum" fallback for people with no yum
- or yum <= 2.3 (see README)
- * Fix the "latest packages" selection behaviour (#485, rh#168125)
- * Remove the (fairly useless) "Total Groups" summary
- * CSS Fixes from Ville Skyttä (#483, #484)
- * Add timestamps to the index page "Latest Packages" listing (#501)
- * Preserve unchanged files for more efficient mirroring (#492)
-
-Version 0.3
- * Fall back to silly RPM groups if no group data is found.
- * Replace all slashes and spaces in group names to avoid breakage.
- * Add a -l switch to provide a brief title, e.g.:
- -l "Fedora Extras 3 x86"
-
-Version 0.2
- * Use iterparse to save a whole lotta memory
- * Work with kid-0.6
- * Do not use enumerate() as that breaks on python-2.2
- * Rename repoview into repoview.py
- * Rename __orphans__ to __nogroup__
- * Add a simple manpage
- * Check for repomd.xml before trying to parse it
+Version 0.5.1:
+ * Hack around the comps.xml API changes in yum-2.5.x
+
+Version 0.5:
+ * Switch to optparse. This may break older Pythons, not sure.
+ * Dropped "-t toplevel" switch, since it complicated the code
+ a lot and not used by anyone, to my knowledge.
+ * Moved "-l title" to "-t title" with a deprecation note in place.
+ * Added RSS generation routines. Template for the entries is in
+ kid.rss. Feed published into repodata/latest-feed.xml. To enable
+ rss feed generation, pass a "-u URL" flag (repoview has no other way
+ of knowing where your data will be published).
+
+Version 0.4.1
+ * Add -V, --version, -h, and -? command-line options
+ (#504, patch by Ville Skyttä)
+ * Fix Changelog sorting (introduced in 0.4 with parser logic change)
+
+Version 0.4
+ * Add DOCTYPE declarations (#482)
+ * Use YUM parsing routines with "noyum" fallback for people with no yum
+ or yum <= 2.3 (see README)
+ * Fix the "latest packages" selection behaviour (#485, rh#168125)
+ * Remove the (fairly useless) "Total Groups" summary
+ * CSS Fixes from Ville Skyttä (#483, #484)
+ * Add timestamps to the index page "Latest Packages" listing (#501)
+ * Preserve unchanged files for more efficient mirroring (#492)
+
+Version 0.3
+ * Fall back to silly RPM groups if no group data is found.
+ * Replace all slashes and spaces in group names to avoid breakage.
+ * Add a -l switch to provide a brief title, e.g.:
+ -l "Fedora Extras 3 x86"
+
+Version 0.2
+ * Use iterparse to save a whole lotta memory
+ * Work with kid-0.6
+ * Do not use enumerate() as that breaks on python-2.2
+ * Rename repoview into repoview.py
+ * Rename __orphans__ to __nogroup__
+ * Add a simple manpage
+ * Check for repomd.xml before trying to parse it
+
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/repoview-0.4.1/README new/repoview-0.5.1/README
--- old/repoview-0.4.1/README 2005-09-24 03:40:08.000000000 +0200
+++ new/repoview-0.5.1/README 2006-02-16 05:27:07.000000000 +0100
@@ -6,19 +6,22 @@
REQUIREMENTS:
-------------
* Kid templating engine (0.6.3 or above)
-* Yum 2.3 or above. If you don't have yum, or can't easily install that version of yum
- on your machine, get a copy of yum-2.4.x (http://linux.duke.edu/projects/yum/)
- and do the following:
+* Yum 2.3 or above. If you don't have yum, or can't easily install that version
+ of yum on your machine, get a copy of yum-2.4.x or yum-2.5.x
+ (http://linux.duke.edu/projects/yum/) and do the following:
- create a directory called "noyum" either in the subdirectory of this program
or in /usr/lib/python2.x/site-packages.
- from the yum tree, copy the files yum/comps.py, yum/mdparser.py,
- repomd/mdErrors.py, repomd/repoMDObject.py into the noyum directory
+ repomd/mdErrors.py, repomd/repoMDObject.py (and yum/constants.py
+ if using yum-2.5.x) into the noyum directory
- in the noyum directory, run "touch __init__.py"
You will need to make sure you install python-elementtree.
+
+NB: New-style comps.xml require yum libraries version 2.5 and above.
AUTHORS:
--------
-Konstantin Ryabitsev <icon(a)linux.duke.edu>
+Konstantin Ryabitsev <icon(a)fedoraproject.org>
URL:
----
@@ -26,7 +29,8 @@
COPYRIGHT AND LICENSE:
----------------------
-This software is copyright (C) 2005 by Duke University.
+This software is copyright (C) 2005 by Duke University
+This software is copyright (C) 2006 by McGill University
For licensing and copying information see COPYING.
USAGE:
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/repoview-0.4.1/repoview.8 new/repoview-0.5.1/repoview.8
--- old/repoview-0.4.1/repoview.8 2005-10-07 23:42:25.000000000 +0200
+++ new/repoview-0.5.1/repoview.8 2006-01-14 00:47:15.000000000 +0100
@@ -1,10 +1,10 @@
-.TH "repoview" "8" "0.1" "Konstantin Ryabitsev" "Applications/Utilities"
+.TH "repoview" "8" "0.5" "Konstantin Ryabitsev" "Applications/Utilities"
.SH NAME
\fBrepoview\fR \- Make YUM repositories browseable
.SH SYNOPSIS
-\fBrepoview\fR [\-i name] [\-x arch] [\-k dir] [\-l title] [\-t] [\-f] [\-q] repodir
+\fBrepoview\fR [options] repodir
.SH DESCRIPTION
RepoView allows one to easily create a set of static HTML pages in a
@@ -14,7 +14,7 @@
.SH OPTIONS
.TP
-.B \-i name
+.B \-i, \-\-ignore\-package NAME
Optionally ignore this package \-\- can be a shell-style glob.
This is useful for excluding debuginfo packages:
.br
@@ -23,37 +23,40 @@
The globbing will be done against name-epoch-version-release, e.g.
foo-0-1.0-1
.TP
-.B \-x arch
+.B \-x, \-\-exclude\-arch ARCH
Optionally exclude this arch. E.g.:
.br
\-x src \-x ia64
.TP
-.B \-k dir
+.B \-k, \-\-template\-dir DIR
Use an alternative directory with kid templates instead of the
-default: ./templates. The template directory must contain three
-required template files: index.kid, group.kid, package.kid and
+default: ./templates. The template directory must contain four
+required template files: index.kid, group.kid, package.kid, rss.kid and
the "layout" dir which will be copied into the repoview directory.
.TP
-.B \-l title
+.B \-t, \-\-title TITLE
Describe the repository in a few words. By default "RepoView" is used.
E.g.:
.br
--l "Extras for Fedora Core 3 x86"
+\-t "Extras for Fedora Core 3 x86"
.TP
-.B \-t
-Place the index.html into the top level of the repodir, instead of
-just in repodata/index.html.
+.B \-u, \-\-url URL
+Repository URL to use when generating the RSS feed. E.g.:
+.br
+\-u "http://fedoraproject.org/extras/4/i386"
+.br
+Not providng a url will disable RSS feed generation.
.TP
-.B \-f
+.B \-f, \-\-force
Regenerate the pages even if the repomd checksum has not changed.
.TP
-.B \-q
+.B \-q, \-\-quiet
Do not output anything except fatal erros.
.TP
.B \-V, \-\-version
Print version number and exit.
.TP
-.B \-h, \-?, \-\-help
+.B \-h, \-\-help
Print usage message and exit.
.TP
.B repodir
@@ -71,15 +74,20 @@
.LP
.B repoview /path/to/repository
.br
-.B repoview -l "Fedora Extras 3 ix86" /path/to/repository
+.B repoview -t 'Fedora Extras 4 ix86' /path/to/repository
.LP
When running from cron, you want to use the \-q switch:
.LP
.B repoview -q /path/to/repository
+.br
+.LP
+This will generate an RSS feed:
+.LP
+.B repoview -u http://example.com/repo/i386 /path/to/repository
.SH "AUTHORS"
.LP
-Konstantin Ryabitsev <icon(a)linux.duke.edu>
+Konstantin Ryabitsev <icon(a)fedoraproject.org>
.SH "SEE ALSO"
.LP
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/repoview-0.4.1/repoview.py new/repoview-0.5.1/repoview.py
--- old/repoview-0.4.1/repoview.py 2005-10-07 23:42:25.000000000 +0200
+++ new/repoview-0.5.1/repoview.py 2006-02-16 05:27:07.000000000 +0100
@@ -18,16 +18,16 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
-# $Id: repoview.py,v 1.14 2005/10/07 21:42:25 icon Exp $
+# $Id: repoview.py,v 1.17 2006/02/16 04:27:07 icon Exp $
#
# Copyright (C) 2005 by Duke University, http://www.duke.edu/
-# Author: Konstantin Ryabitsev <icon(a)duke.edu>
+# Copyright (C) 2006 by McGill University, http://www.mcgill.ca/
+# Author: Konstantin Ryabitsev <icon(a)fedoraproject.org>
#
-__revision__ = '$Id: repoview.py,v 1.14 2005/10/07 21:42:25 icon Exp $'
+__revision__ = '$Id: repoview.py,v 1.17 2006/02/16 04:27:07 icon Exp $'
import fnmatch
-import getopt
import os
import re
import shutil
@@ -35,13 +35,16 @@
import time
import zlib
+from optparse import OptionParser
+from elementtree.SimpleXMLWriter import XMLWriter
+
try:
- from yum.comps import Comps
+ from yum.comps import Comps, CompsException
from yum.mdparser import MDParser
from repomd.repoMDObject import RepoMD
except ImportError:
try:
- from noyum.comps import Comps #IGNORE:F0401
+ from noyum.comps import Comps, CompsException #IGNORE:F0401
from noyum.mdparser import MDParser #IGNORE:F0401
from noyum.repoMDObject import RepoMD #IGNORE:F0401
except ImportError:
@@ -65,8 +68,10 @@
grfile = '%s.group.html'
idxkid = 'index.kid'
idxfile = 'index.html'
+rsskid = 'rss.kid'
+rssfile = 'latest-feed.xml'
-VERSION = '0.4.1'
+VERSION = '0.5.1'
DEFAULT_TEMPLATEDIR = './templates'
emailre = re.compile('<.*?@.*?>')
@@ -309,6 +314,7 @@
self.xarch = xarch is not None and xarch or []
self.arches = []
self.force = force
+ self.url = None
self.olddir = os.path.join(self.repodir, 'repodata', 'repoview')
self.outdir = os.path.join(self.repodir, 'repodata', '.repoview.new')
self.packages = {}
@@ -316,7 +322,6 @@
self.groups = GroupFactory()
self.letters = GroupFactory()
self.maxlatest = maxlatest
- self.toplevel = 0
self.pkgcount = 0
self.pkgignored = 0
self.repodata = {}
@@ -364,17 +369,37 @@
"""
_say('parsing comps...', 1)
loc = self.repodata['group']['relativepath']
- groups = Comps(os.path.join(self.repodir, loc)).groups.values()
+ comps = Comps()
+ try:
+ comps.add(os.path.join(self.repodir, loc))
+ groups = comps.groups
+ comps.isold = 0
+ except AttributeError:
+ # Must be dealing with yum < 2.5
+ try:
+ comps.load(os.path.join(self.repodir, loc))
+ groups = comps.groups.values()
+ comps.isold = 1
+ except CompsException:
+ print 'Error parsing %s!' % loc
+ print 'You may be trying to parse the new comps format'
+ print 'with old yum libraries. Falling back to RPM groups.'
+ return
namemap = self._getNameMap()
pct = 0
for entry in groups:
pct += 1
group = Group()
- group.grid = _mkid(entry.id)
+ if comps.isold:
+ group.grid = _mkid(entry.id)
+ packages = entry.packages.keys()
+ else:
+ group.grid = _mkid(entry.groupid)
+ packages = entry.packages
group.name = _webify(entry.name)
group.description = _webify(entry.description)
group.uservisible = entry.user_visible
- for pkgname in entry.packages.keys():
+ for pkgname in packages:
if pkgname in namemap.keys():
pkglist = namemap[pkgname]
group.packages += pkglist
@@ -581,34 +606,43 @@
shutil.copytree(layoutsrc, layoutdst)
_say('done\n', 1)
- def mkLinkUrl(self, obj, isindex=0):
+ def mkLinkUrl(self, obj, isindex=0, isrss=0):
"""
This is a utility method passed to kid templates. The templates use
it to get the link to a package, group, or layout object without
having to figure things out on their own.
"""
- link = '#'
- prefix = ''
- if isindex:
- if self.toplevel:
- prefix = os.path.join('repodata', 'repoview')
- else: prefix = 'repoview'
+ if isindex and not isrss:
+ prefix = 'repoview'
+ elif isrss:
+ if isindex:
+ prefix = os.path.join(self.url, 'repodata')
+ else:
+ prefix = os.path.join(self.url, 'repodata', 'repoview')
+ else:
+ prefix = ''
+
if obj.__class__ is str:
if not isindex and obj == idxfile:
- if self.toplevel:
- link = os.path.join('..', '..', obj)
- else: link = os.path.join('..', obj)
+ ## A page linking up to the index file, which is one dir up
+ link = os.path.join('..', obj)
+ elif isrss:
+ ## An RSS page asking for a toplevel link
+ link = os.path.join(prefix, rssfile)
else:
+ ## A page linking to another page, usually .css
link = os.path.join(prefix, obj)
elif obj.__class__ is Package:
link = os.path.join(prefix, pkgfile % obj.pkgid)
elif obj.__class__ is Group:
link = os.path.join(prefix, grfile % obj.grid)
elif obj.__class__ is Archer:
- if isindex and self.toplevel:
- link = os.path.join('..', obj.loc)
- else:
- link = os.path.join('..', '..', obj.loc)
+ # loc is taken from the REPOMD files and is relative to
+ # the repo directory, so we get out of repodata subdir.
+ link = os.path.join('..', '..', obj.loc)
+ else:
+ ## No idea
+ link = '#'
return link
def _smartWrite(self, outfile, strdata):
@@ -633,15 +667,16 @@
fh.close()
return 1
- def applyTemplates(self, templatedir, toplevel=0, title='RepoView'):
+ def applyTemplates(self, templatedir, title='RepoView',
+ url='http://localhost'):
"""
Just what it says. :)
"""
if not self.packages:
_say('No packages available.')
sys.exit(0)
- gentime = time.strftime('%c')
- self.toplevel = toplevel
+ gentime = time.ctime()
+ self.url = url
self._makeExtraGroups()
self._mkOutDir(templatedir)
stats = {
@@ -652,7 +687,8 @@
'archlist': self.arches,
'ignorearchlist': self.xarch,
'VERSION': VERSION,
- 'gentime': gentime
+ 'gentime': gentime,
+ 'dorss': url
}
## Do groups
grtmpl = os.path.join(templatedir, grkid)
@@ -699,20 +735,51 @@
p += 1
_say('writing packages: %s written, %s preserved\r' % (w, p))
_say('\n', 1)
+
## Do index
_say('generating index...', 1)
idxtmpl = os.path.join(templatedir, idxkid)
self.arches.sort()
kobj = Template(file=idxtmpl, mkLinkUrl=self.mkLinkUrl,
letters=self.letters, groups=self.groups, stats=stats)
- if self.toplevel:
- out = os.path.join(self.repodir, idxfile)
- else:
- out = os.path.join(self.repodir, 'repodata', idxfile)
+ out = os.path.join(self.repodir, 'repodata', idxfile)
fh = open(out, 'w')
kobj.write(out)
fh.close()
_say('done\n')
+
+ ## Do RSS feed
+ if self.url is not None:
+ _say('generating rss feed...', 1)
+ isoformat = '%a, %d %b %Y %H:%M:%S %z'
+ out = os.path.join(self.repodir, 'repodata', rssfile)
+ w = XMLWriter(out, 'utf-8')
+ rss = w.start('rss', version='2.0')
+ w.start('channel')
+ w.element('title', title)
+ w.element('link', '%s/repodata/%s' % (url, rssfile))
+ w.element('description', 'Latest packages for %s' % title)
+ w.element('lastBuildDate', time.strftime(isoformat))
+ w.element('generator', 'Repoview-%s' % VERSION)
+ rsstmpl = os.path.join(templatedir, rsskid)
+ kobj = Template(file=rsstmpl, stats=stats,
+ mkLinkUrl=self.mkLinkUrl)
+ for pkg in self.groups['__latest__'].getSortedList(trim=0):
+ w.start('item')
+ w.element('guid', self.mkLinkUrl(pkg, isrss=1))
+ w.element('link', self.mkLinkUrl(pkg, isrss=1))
+ w.element('pubDate', pkg.getTime(isoformat))
+ w.element('title', 'Update: %s-%s-%s' % (pkg.n, pkg.v, pkg.r))
+ w.element('category', pkg.n)
+ w.element('category', pkg.group.name)
+ kobj.package = pkg
+ description = kobj.serialize()
+ w.element('description', description)
+ w.end()
+ w.end()
+ w.close(rss)
+ _say('done\n')
+
_say('writing checksum...', 1)
chkfile = os.path.join(self.outdir, 'checksum')
fh = open(chkfile, 'w')
@@ -725,87 +792,56 @@
shutil.move(self.outdir, self.olddir)
_say('done\n')
-def usage(ecode=0):
- "Print usage and exit with ecode passed"
- sys.stderr.write("""
- repoview [-i name] [-x arch] [-k dir] [-l title] [-t] [-f] [-q] [repodir]
- This will make your repository browseable
- -i name
- Optionally ignore this package -- can be a shell-style glob.
- This is useful for excluding debuginfo packages:
- -i *debuginfo* -i *doc*
- The globbing will be done against name-epoch-version-release,
- e.g. foo-0-1.0-1
- -x arch
- Optionally exclude this arch. E.g.:
- -x src -x ia64
- -k templatedir
- Use an alternative directory with kid templates instead of
- the default: %s
- The template directory must contain three required template
- files: index.kid, group.kid, package.kid and the
- "layout" dir which will be copied into the repoview directory.
- -l title
- Describe the repository in a few words. By default, "RepoView" is used.
- E.g.:
- -l "Extras for Fedora Core 3 x86"
- -t
- Place the index.html into the top level of the repodir, instead of
- just in repodata/index.html.
- -f
- Regenerate the pages even if the repomd checksum hasn't changed.
- -q
- Do not output anything except fatal errors.
- -V, --version
- Print version number and exit.
- -h, -?, --help
- Print this usage message.
- repodir
- Where to look for the 'repodata' directory.\n""" % DEFAULT_TEMPLATEDIR)
- sys.exit(ecode)
-
-def main(args):
+def main():
"Main program code"
global quiet #IGNORE:W0121
- if not args:
- usage()
- ignore = []
- xarch = []
- toplevel = 0
- templatedir = DEFAULT_TEMPLATEDIR
- title = 'RepoView'
- force = 0
- try:
- gopts, cmds = getopt.getopt(args, 'i:x:k:l:tfqh?V', ['help', 'version'])
- for o, a in gopts:
- if o == '-i':
- ignore.append(a)
- elif o == '-x':
- xarch.append(a)
- elif o == '-k':
- templatedir = a
- elif o == '-l':
- title = a
- elif o == '-t':
- toplevel = 1
- elif o == '-f':
- force = 1
- elif o == '-q':
- quiet = 1
- elif o == '-V' or o == '--version':
- print VERSION
- sys.exit(0)
- else: usage()
- if not cmds:
- usage(1)
- repodir = cmds[0]
- except getopt.error, e:
- print "Error: %s" % e
- usage(1)
- if templatedir is None:
- templatedir = os.path.join(repodir, 'templates')
- rv = RepoView(repodir, ignore=ignore, xarch=xarch, force=force)
- rv.applyTemplates(templatedir, toplevel=toplevel, title=title)
+ usage = 'usage: %prog [options]'
+ parser = OptionParser(usage=usage, version='%prog ' + VERSION)
+ parser.add_option('-i', '--ignore-package', dest='ignore', action='append',
+ default=[],
+ help='Optionally ignore this package -- can be a shell-style glob. '
+ 'This is useful for excluding debuginfo packages, e.g.: '
+ '"-i *debuginfo* -i *doc*". '
+ 'The globbing will be done against name-epoch-version-release, '
+ 'e.g.: "foo-0-1.0-1"')
+ parser.add_option('-x', '--exclude-arch', dest='xarch', action='append',
+ default=[],
+ help='Optionally exclude this arch. E.g.: "-x src -x ia64"')
+ parser.add_option('-k', '--template-dir', dest='templatedir',
+ default=DEFAULT_TEMPLATEDIR,
+ help='Use an alternative directory with kid templates instead of '
+ 'the default: %default. The template directory must contain four '
+ 'required template files: index.kid, group.kid, package.kid, rss.kid '
+ 'and the "layout" dir which will be copied into the repoview directory')
+ parser.add_option('-t', '--title', dest='title',
+ default='RepoView',
+ help='Describe the repository in a few words. '
+ 'By default, "%default" is used. '
+ 'E.g.: -t "Extras for Fedora Core 4 x86"')
+ parser.add_option('-l', '--title-deprecated', dest='dtitle',
+ default=None,
+ help='This option is deprecated. Please use -t.')
+ parser.add_option('-u', '--url', dest='url',
+ default=None,
+ help='Repository URL to use when generating the RSS feed. E.g.: '
+ '-u "http://fedoraproject.org/extras/4/i386". Leaving it off will '
+ 'skip the rss feed generation')
+ parser.add_option('-f', '--force', dest='force', action='store_true',
+ default=0,
+ help='Regenerate the pages even if the repomd checksum has not changed')
+ parser.add_option('-q', '--quiet', dest='quiet', action='store_true',
+ default=0,
+ help='Do not output anything except fatal errors.')
+ (opts, args) = parser.parse_args()
+ if not args:
+ parser.error('Incorrect invocation.')
+ if opts.dtitle is not None:
+ opts.title = opts.dtitle
+ print 'Option -l is deprecated. Please use -t or --title'
+ repodir = args[0]
+ rv = RepoView(repodir, ignore=opts.ignore, xarch=opts.xarch,
+ force=opts.force)
+ rv.applyTemplates(opts.templatedir, title=opts.title, url=opts.url)
if __name__ == '__main__':
- main(sys.argv[1:])
+ main()
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/repoview-0.4.1/repoview.spec new/repoview-0.5.1/repoview.spec
--- old/repoview-0.4.1/repoview.spec 2005-10-07 23:42:25.000000000 +0200
+++ new/repoview-0.5.1/repoview.spec 2006-02-16 05:27:07.000000000 +0100
@@ -1,9 +1,9 @@
-# $Id: repoview.spec,v 1.13 2005/10/07 21:42:25 icon Exp $
+# $Id: repoview.spec,v 1.17 2006/02/16 04:27:07 icon Exp $
Name: repoview
-Version: 0.4.1
+Version: 0.5.1
Release: 1
-Summary: Creates a set of static HTML pages in a yum repository.
+Summary: Creates a set of static HTML pages in a yum repository
Group: Applications/System
License: GPL
@@ -38,7 +38,7 @@
$RPM_BUILD_ROOT/%{_mandir}/man8
install -m 755 repoview.py $RPM_BUILD_ROOT/%{_bindir}/repoview
install -m 644 repoview.8 $RPM_BUILD_ROOT/%{_mandir}/man8/
-cp -rp templates $RPM_BUILD_ROOT/%{_datadir}/%{name}/
+cp -a templates $RPM_BUILD_ROOT/%{_datadir}/%{name}/
%clean
@@ -54,6 +54,12 @@
%changelog
+* Wed Feb 15 2006 Konstantin Ryabitsev <icon(a)fedoraproject.org> - 0.5.1-1
+- Version 0.5.1
+
+* Fri Jan 13 2006 Konstantin Ryabitsev <icon(a)fedoraproject.org> - 0.5-1
+- Version 0.5
+
* Fri Oct 07 2005 Konstantin Ryabitsev <icon(a)linux.duke.edu> - 0.4.1-1
- Version 0.4.1
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/repoview-0.4.1/templates/index.kid new/repoview-0.5.1/templates/index.kid
--- old/repoview-0.4.1/templates/index.kid 2005-09-24 03:40:08.000000000 +0200
+++ new/repoview-0.5.1/templates/index.kid 2006-01-14 00:47:15.000000000 +0100
@@ -5,6 +5,8 @@
<head>
<title py:content="'RepoView: %s' % stats['title']"/>
<link rel="stylesheet" href="${mkLinkUrl('layout/repostyle.css', isindex=1)}" type="text/css" />
+ <link py:if="stats['dorss'] is not None"
+ rel="alternate" type="application/rss+xml" title="RSS" href="${mkLinkUrl('rss-feed', isrss=1, isindex=1)}" />
</head>
<body>
<div class="levbar">
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/repoview-0.4.1/templates/rss.kid new/repoview-0.5.1/templates/rss.kid
--- old/repoview-0.4.1/templates/rss.kid 1970-01-01 01:00:00.000000000 +0100
+++ new/repoview-0.5.1/templates/rss.kid 2006-01-14 00:47:15.000000000 +0100
@@ -0,0 +1,19 @@
+<?xml version="1.0" ?>
+<div xmlns:py="http://purl.org/kid/ns#">
+ <p>
+ <strong>Package:</strong> <span py:replace="'%s-%s-%s' % (package.n, package.v, package.r)"/><br/>
+ <strong>Summary:</strong> <span py:replace="package.summary"/>
+ </p>
+ <p>
+ <strong>Description:</strong><br/>
+ <span py:replace="package.description"/>
+ </p>
+ <h3>ChangeLog:</h3>
+ <p>
+ <span py:for="log in package.getChangeLogs()" py:strip=''>
+ <strong py:content="'* ' + log[0] + ' ' + log[1]"/><br/>
+ <pre py:content="log[2]"/><br/>
+ </span>
+ </p>
+ <p>(<a href="${mkLinkUrl(package, isrss=1)}">More info</a>)</p>
+</div>
\ No newline at end of file
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
1
0
Hello community,
here is the log from the commit of package apache2-mod-apparmor
checked in at Fri May 26 14:35:41 CEST 2006.
--------
--- apache2-mod-apparmor/apache2-mod-apparmor.changes 2006-04-01 03:49:55.000000000 +0200
+++ apache2-mod-apparmor/apache2-mod-apparmor.changes 2006-05-26 13:01:52.000000000 +0200
@@ -1,0 +2,5 @@
+Fri May 26 13:01:43 CEST 2006 - schwab(a)suse.de
+
+- Don't strip binaries.
+
+-------------------------------------------------------------------
@@ -6 +10,0 @@
-
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ apache2-mod-apparmor.spec ++++++
--- /var/tmp/diff_new_pack.K0w36b/_old 2006-05-26 14:34:41.000000000 +0200
+++ /var/tmp/diff_new_pack.K0w36b/_new 2006-05-26 14:34:41.000000000 +0200
@@ -18,7 +18,7 @@
%define module_name mod_apparmor
Summary: AppArmor module for apache2
Version: 2.0
-Release: 15
+Release: 21
Group: Productivity/Security
Source0: %{name}-%{version}-6354.tar.gz
License: LGPL
@@ -65,11 +65,8 @@
%build
make %{module_name}.so APXS=%{apxs}
-%{__strip} -g %{module_name}.so
%install
-[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
-mkdir -p ${RPM_BUILD_ROOT}
make install DESTDIR=${RPM_BUILD_ROOT} DISTRO=%{distro}
%if %{distro} == "suse"
mkdir -p ${RPM_BUILD_ROOT}/%{my_bin_dir}
@@ -128,6 +125,8 @@
%endif
%changelog -n apache2-mod-apparmor
+* Fri May 26 2006 - schwab(a)suse.de
+- Don't strip binaries.
* Sat Apr 01 2006 - srarnold(a)suse.de
- Relicense to LGPL (#157579)
* Mon Feb 06 2006 - sbeattie(a)suse.de
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
1
0
Hello community,
here is the log from the commit of package postgresql
checked in at Fri May 26 13:08:07 CEST 2006.
--------
--- postgresql/postgresql.changes 2006-02-13 17:19:17.000000000 +0100
+++ postgresql/postgresql.changes 2006-05-24 10:26:31.000000000 +0200
@@ -1,0 +2,9 @@
+Wed May 24 10:24:26 CEST 2006 - max(a)suse.de
+
+- Update to 8.1.4 to fix SQL injection vulnerabilities
+ (bug #177931, CVE-2006-2313, CVE-2006-2314).
+
+- Added a new postgresql-SECURITY-NOTICE file with an FAQ that
+ explains the issues.
+
+-------------------------------------------------------------------
Old:
----
postgresql-8.1.3.tar.bz2
New:
----
postgresql-8.1.4.tar.bz2
postgresql-SECURITY-NOTICE
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ postgresql-pl.spec ++++++
--- /var/tmp/diff_new_pack.zilYdm/_old 2006-05-26 13:07:46.000000000 +0200
+++ /var/tmp/diff_new_pack.zilYdm/_new 2006-05-26 13:07:46.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package postgresql-pl (Version 8.1.3)
+# spec file for package postgresql-pl (Version 8.1.4)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -13,7 +13,7 @@
Name: postgresql-pl
BuildRequires: krb5-devel openssl-devel pam-devel python-devel tcl-devel
Summary: The PL/Tcl, PL/Perl, and PL/Python Procedural Languages for PostgreSQL
-Version: 8.1.3
+Version: 8.1.4
Release: 1
License: BSD
Group: Productivity/Databases/Servers
++++++ postgresql.spec ++++++
--- /var/tmp/diff_new_pack.zilYdm/_old 2006-05-26 13:07:46.000000000 +0200
+++ /var/tmp/diff_new_pack.zilYdm/_new 2006-05-26 13:07:46.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package postgresql (Version 8.1.3)
+# spec file for package postgresql (Version 8.1.4)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -13,7 +13,7 @@
Name: postgresql
BuildRequires: krb5-devel openssl-devel pam-devel readline-devel
Summary: Basic Clients and Utilities for PostgreSQL
-Version: 8.1.3
+Version: 8.1.4
Release: 1
%define pg_minor_version 8.1
License: BSD
@@ -24,6 +24,7 @@
Source8: postgresql-sysconfig
Source9: postgresql-init
Source15: postgresql-bashprofile
+Source20: postgresql-SECURITY-NOTICE
Source99: postgresql-pl.spec
Patch1: postgresql-fpic.patch
Patch2: postgresql-dbase.patch
@@ -290,6 +291,7 @@
README HISTORY doc/bug.template %buildroot%_docdir/postgresql
cp -a %SOURCE2 %buildroot%_docdir/postgresql/README.SuSE.de
cp -a %SOURCE3 %buildroot%_docdir/postgresql/README.SuSE.en
+cp -a %SOURCE20 %buildroot%_docdir/postgresql/SECURITY-NOTICE
# Fix the provides-list
%define my_provides /tmp/my-provides
cat << EOF > %my_provides
@@ -460,6 +462,11 @@
%doc %_mandir/man1/pg_config.1*
%changelog -n postgresql
+* Wed May 24 2006 - max(a)suse.de
+- Update to 8.1.4 to fix SQL injection vulnerabilities
+ (bug #177931, CVE-2006-2313, CVE-2006-2314).
+- Added a new postgresql-SECURITY-NOTICE file with an FAQ that
+ explains the issues.
* Mon Feb 13 2006 - max(a)suse.de
- New version: 8.1.3 (#150376).
- Relaxed dependencies between subpackages to simplify future
++++++ postgresql-8.1.3.tar.bz2 -> postgresql-8.1.4.tar.bz2 ++++++
postgresql/postgresql-8.1.3.tar.bz2 postgresql/postgresql-8.1.4.tar.bz2 differ: char 11, line 1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
1
0