Hello community,
here is the log from the commit of package yast2-apparmor
checked in at Tue Oct 17 00:09:20 CEST 2006.
--------
--- yast2-apparmor/yast2-apparmor.changes 2006-09-19 07:33:41.000000000 +0200
+++ /mounts/work_src_done/NOARCH/yast2-apparmor/yast2-apparmor.changes 2006-10-16 19:47:38.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Oct 16 19:46:23 CEST 2006 - dreynolds@suse.de
+
+- Add syntax checks for profiles and display error dialogs to user
+ Fate: 300906
+
+-------------------------------------------------------------------
Old:
----
openSUSE.diff
yast2-apparmor-2.0-20.tar.gz
New:
----
yast2-apparmor-2.0-158.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-apparmor.spec ++++++
--- /var/tmp/diff_new_pack.jjmeBH/_old 2006-10-17 00:09:10.000000000 +0200
+++ /var/tmp/diff_new_pack.jjmeBH/_new 2006-10-17 00:09:10.000000000 +0200
@@ -13,10 +13,9 @@
Name: yast2-apparmor
Summary: Yast2 plugins for AppArmor profile management
Version: 2.0
-Release: 31
+Release: 38
Group: Productivity/Security
-Source0: %{name}-%{version}-20.tar.gz
-Patch: openSUSE.diff
+Source0: %{name}-%{version}-158.tar.gz
License: Other License(s), see package, GPL
BuildRoot: %{_tmppath}/%{name}-%{version}-build
URL: http://forge.novell.com/modules/xfmod/project/?apparmor
@@ -25,8 +24,14 @@
Obsoletes: yast2-subdomain
Provides: yast2-subdomain
BuildRequires: update-desktop-files
-%if %{suse_version} > 1000
+%if %{suse_version} > 1010
BuildRequires: yast2 yast2-devtools yast2-theme-openSUSE
+%define themedir /usr/share/YaST2/theme/openSUSE
+%else
+ %if %{suse_version} > 1000
+BuildRequires: yast2 yast2-devtools yast2-theme-SuSELinux
+%define themedir /usr/share/YaST2/theme/SuSELinux
+ %endif
%endif
%description
@@ -46,7 +51,6 @@
%prep
%setup -q
-%patch
%build
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
@@ -54,7 +58,7 @@
%install
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
-make install DESTDIR=${RPM_BUILD_ROOT} DISTRO=%{distro}
+make install DESTDIR=${RPM_BUILD_ROOT} DISTRO=%{distro} THEMEDIR=%{themedir}
# Register as SuSE app
for f in `find $RPM_BUILD_ROOT/%{_prefix}/share/applications/YaST2/ -name "*.desktop"` ; do
d=${f##*/}
@@ -78,7 +82,7 @@
/usr/share/applications/YaST2/groups
/usr/lib/YaST2/servers_non_y2
/usr/lib/perl5/vendor_perl/*
-/usr/share/YaST2/theme/openSUSE/icons
+%{themedir}/icons
%doc COPYING.LGPL
%dir %attr(-,root,root) /etc/apparmor
%config(noreplace) /etc/apparmor/reports.crontab
@@ -95,6 +99,9 @@
%preun
%changelog -n yast2-apparmor
+* Mon Oct 16 2006 - dreynolds@suse.de
+- Add syntax checks for profiles and display error dialogs to user
+ Fate: 300906
* Tue Sep 19 2006 - aj@suse.de
- Adjust for theming change.
* Tue Jun 06 2006 - dreynolds@suse.de
++++++ yast2-apparmor-2.0-20.tar.gz -> yast2-apparmor-2.0-158.tar.gz ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-apparmor-2.0/Makefile new/yast2-apparmor-2.0/Makefile
--- old/yast2-apparmor-2.0/Makefile 2006-05-27 01:38:15.000000000 +0200
+++ new/yast2-apparmor-2.0/Makefile 2006-10-16 18:53:03.000000000 +0200
@@ -14,6 +14,7 @@
NAME=yast2-apparmor
all:
COMMONDIR=../../common/
+THEMEDIR=
include Make.rules
@@ -41,9 +42,9 @@
mkdir -p ${DESTDIR}/usr/share/applications/YaST2/groups
mkdir -p ${DESTDIR}/usr/lib/YaST2/servers_non_y2
mkdir -p ${DESTDIR}/usr/lib/perl5/vendor_perl/Immunix
- mkdir -p ${DESTDIR}/usr/share/YaST2/theme/SuSELinux/icons/48x48/apps/apparmor
- mkdir -p ${DESTDIR}/usr/share/YaST2/theme/SuSELinux/icons/32x32/apps/apparmor
- mkdir -p ${DESTDIR}/usr/share/YaST2/theme/SuSELinux/icons/22x22/apps/apparmor
+ mkdir -p ${DESTDIR}/${THEMEDIR}/icons/48x48/apps/apparmor
+ mkdir -p ${DESTDIR}/${THEMEDIR}/icons/32x32/apps/apparmor
+ mkdir -p ${DESTDIR}/${THEMEDIR}/icons/22x22/apps/apparmor
mkdir -p ${DESTDIR}/usr/bin
mkdir -p ${DESTDIR}/etc/apparmor
cp -a src/clients/* ${DESTDIR}/usr/share/YaST2/clients/
@@ -52,9 +53,9 @@
cp -a src/desktop/* ${DESTDIR}/usr/share/applications/YaST2/
cp -a src/desktop/groups/* ${DESTDIR}/usr/share/applications/YaST2/groups/
cp -a src/perl/* ${DESTDIR}/usr/lib/perl5/vendor_perl/Immunix
- cp -a src/icons/48x48/* ${DESTDIR}/usr/share/YaST2/theme/SuSELinux/icons/48x48/apps/apparmor
- cp -a src/icons/32x32/* ${DESTDIR}/usr/share/YaST2/theme/SuSELinux/icons/32x32/apps/apparmor
- cp -a src/icons/22x22/* ${DESTDIR}/usr/share/YaST2/theme/SuSELinux/icons/22x22/apps/apparmor
+ cp -a src/icons/48x48/* ${DESTDIR}/${THEMEDIR}/icons/48x48/apps/apparmor
+ cp -a src/icons/32x32/* ${DESTDIR}/${THEMEDIR}/icons/32x32/apps/apparmor
+ cp -a src/icons/22x22/* ${DESTDIR}/${THEMEDIR}/icons/22x22/apps/apparmor
cp -a src/bin/* ${DESTDIR}/usr/bin
cp -a src/apparmor/* ${DESTDIR}/etc/apparmor
install -m 755 src/agents/* ${DESTDIR}/usr/lib/YaST2/servers_non_y2/
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-apparmor-2.0/src/agents/ag_subdomain new/yast2-apparmor-2.0/src/agents/ag_subdomain
--- old/yast2-apparmor-2.0/src/agents/ag_subdomain 2006-05-27 01:38:08.000000000 +0200
+++ new/yast2-apparmor-2.0/src/agents/ag_subdomain 2006-10-06 20:08:53.000000000 +0200
@@ -27,24 +27,24 @@
sub getSubdomainStatus {
- my $sdStatus = "disabled";
+ my $sdStatus = "disabled";
- # Ok check that there are profiles loaded to
- # determine status
- my $mountpoint = Immunix::SubDomain::check_for_subdomain();
- if ( $mountpoint ) {
- open( PROFILES, "cat $mountpoint/profiles|" );
- while (<PROFILES>) {
- # Ensure we have loaded profiles
- # not just a loaded module
- if ( /\// ) {
- $sdStatus = "enabled";
- last;
- }
- }
- close PROFILES;
+ # Ok check that there are profiles loaded to
+ # determine status
+ my $mountpoint = Immunix::SubDomain::check_for_subdomain();
+ if ( $mountpoint ) {
+ open( PROFILES, "cat $mountpoint/profiles|" );
+ while (<PROFILES>) {
+ # Ensure we have loaded profiles
+ # not just a loaded module
+ if ( /\// ) {
+ $sdStatus = "enabled";
+ last;
+ }
}
- return $sdStatus;
+ close PROFILES;
+ }
+ return $sdStatus;
}
sub getNotifySettings {
@@ -79,43 +79,58 @@
return $noteStatus;
}
+sub profileSyntaxCheck {
+ my $errlist = [];
+ Immunix::SubDomain::checkIncludeSyntax($errlist);
+ Immunix::SubDomain::checkProfileSyntax($errlist);
+ my @errlist = Immunix::SubDomain::uniq(@$errlist);
+ return \@errlist;
+}
+
+
# Main
################################################################################
-my $line = <STDIN>;
-my ($command, $path, $argument) = Immunix::Ycp::ParseCommand($line);
+while ( <STDIN> ) {
+ my ($command, $path, $argument) = Immunix::Ycp::ParseCommand($_);
-my $result = undef;
-my $donereturn = 0;
-if ( $command && $path && $argument ) {
- if ( $argument eq 'sd-all') {
- my %hResult = ''; # hashed result, duh
- $hResult{'sd-status'} = getSubdomainStatus();
- $hResult{'sd-notify'} = getNotifyStatus();
- Immunix::Ycp::ycpReturnHashAsMap( %hResult );
- $donereturn = 1;
- } elsif ( $argument eq 'sd-status') {
- $result = getSubdomainStatus();
- } elsif ( $argument eq 'sd-notify') {
- $result = getNotifyStatus();
- } elsif ( $argument eq 'sd-notify-settings') {
- $result = getNotifySettings();
- Immunix::Ycp::ycpReturn($result);
- $donereturn = 1;
- }
-
- Immunix::Ycp::ycpReturnSkalarAsString( $result ) if ( ! $donereturn );
-
-} else {
-
- my $ycpCmd = ycpGetCommand() || "";
- my $ycpArg = ycpGetArgType() || "";
- $result = "Unknown instruction $ycpCmd or argument: $ycpArg\n";
- Immunix::Ycp::ycpReturnSkalarAsString( $result );
+ my $result = undef;
+ my $donereturn = 0;
+ if ( $command && $path && $argument ) {
+ if ( $argument eq 'sd-all') {
+ my %hResult = ''; # hashed result, duh
+ $hResult{'sd-status'} = getSubdomainStatus();
+ $hResult{'sd-notify'} = getNotifyStatus();
+ Immunix::Ycp::ycpReturnHashAsMap( %hResult );
+ $donereturn = 1;
+ } elsif ( $argument eq 'sd-status') {
+ $result = getSubdomainStatus();
+ } elsif ( $argument eq 'sd-notify') {
+ $result = getNotifyStatus();
+ } elsif ( $command eq "Read" and $argument eq 'custom-includes') {
+ Immunix::SubDomain::readconfig();
+ Immunix::Ycp::ycpReturn(\@Immunix::SubDomain::custom_includes);
+ $donereturn = 1;
+ } elsif ( $command eq "Execute" and $argument eq 'profile-syntax-check') {
+ $result = profileSyntaxCheck();
+ Immunix::Ycp::ycpReturn($result);
+ $donereturn = 1;
+ } elsif ( $argument eq 'sd-notify-settings') {
+ $result = getNotifySettings();
+ Immunix::Ycp::ycpReturn($result);
+ $donereturn = 1;
+ }
+ Immunix::Ycp::ycpReturnSkalarAsString( $result ) if ( ! $donereturn );
+ } else {
+ my $ycpCmd = ycpGetCommand() || "";
+ my $ycpArg = ycpGetArgType() || "";
+ $result = "Unknown instruction $ycpCmd or argument: $ycpArg\n";
+ Immunix::Ycp::ycpReturnSkalarAsString( $result );
+ }
+ print "\n";
}
-
exit 0;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-apparmor-2.0/src/agents/ag_subdomain_profiles new/yast2-apparmor-2.0/src/agents/ag_subdomain_profiles
--- old/yast2-apparmor-2.0/src/agents/ag_subdomain_profiles 2006-05-27 01:38:08.000000000 +0200
+++ new/yast2-apparmor-2.0/src/agents/ag_subdomain_profiles 2006-10-06 20:08:53.000000000 +0200
@@ -94,7 +94,7 @@
}
} elsif ( $command eq "Read") {
$UI_Mode = "yast";
- Immunix::SubDomain::readprofile("$profiledir/$argument");
+ Immunix::SubDomain::readprofile("$profiledir/$argument", \&$Immunix::SubDomain::fatal_error);
Immunix::Ycp::Return( \%sd );
} elsif ( $command eq "Write" and $path eq ".delete") {
if ( $argument ne "" ) {
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-apparmor-2.0/src/clients/GenProf.ycp new/yast2-apparmor-2.0/src/clients/GenProf.ycp
--- old/yast2-apparmor-2.0/src/clients/GenProf.ycp 2006-05-31 08:12:22.000000000 +0200
+++ new/yast2-apparmor-2.0/src/clients/GenProf.ycp 2006-10-06 20:08:54.000000000 +0200
@@ -12,6 +12,7 @@
import "Wizard";
import "Popup";
import "Sequencer";
+ include "subdomain/apparmor_profile_check.ycp";
include "subdomain/apparmor_packages.ycp";
textdomain "yast2-apparmor";
@@ -37,6 +38,9 @@
if (!installAppArmorPackages()) {
return;
}
+ if (!checkProfileSyntax()) {
+ return;
+ }
// initiate the handshake with the backend agent
map agent_data = (map) SCR::Read(.genprof);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-apparmor-2.0/src/clients/LogProf.ycp new/yast2-apparmor-2.0/src/clients/LogProf.ycp
--- old/yast2-apparmor-2.0/src/clients/LogProf.ycp 2006-05-31 08:23:54.000000000 +0200
+++ new/yast2-apparmor-2.0/src/clients/LogProf.ycp 2006-10-06 20:08:54.000000000 +0200
@@ -13,6 +13,7 @@
import "Popup";
import "Sequencer";
include "subdomain/apparmor_packages.ycp";
+ include "subdomain/apparmor_profile_check.ycp";
textdomain "yast2-apparmor";
boolean done = false;
@@ -37,6 +38,9 @@
if (!installAppArmorPackages()) {
return;
}
+ if (!checkProfileSyntax()) {
+ return;
+ }
// initiate the handshake with the backend agent
map agent_data = (map) SCR::Read(.logprof);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-apparmor-2.0/src/clients/SD_AddProfile.ycp new/yast2-apparmor-2.0/src/clients/SD_AddProfile.ycp
--- old/yast2-apparmor-2.0/src/clients/SD_AddProfile.ycp 2006-05-27 01:38:08.000000000 +0200
+++ new/yast2-apparmor-2.0/src/clients/SD_AddProfile.ycp 2006-10-06 20:08:54.000000000 +0200
@@ -12,6 +12,7 @@
import "Popup";
import "Sequencer";
include "subdomain/apparmor_packages.ycp";
+include "subdomain/apparmor_profile_check.ycp";
include "subdomain/profile_dialogs.ycp";
textdomain "yast2-apparmor";
@@ -86,6 +87,9 @@
if (!installAppArmorPackages()) {
return ret;
}
+if (!checkProfileSyntax()) {
+ return ret;
+}
ret = MainSequence();
return ret;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-apparmor-2.0/src/clients/SD_DeleteProfile.ycp new/yast2-apparmor-2.0/src/clients/SD_DeleteProfile.ycp
--- old/yast2-apparmor-2.0/src/clients/SD_DeleteProfile.ycp 2006-05-27 01:38:08.000000000 +0200
+++ new/yast2-apparmor-2.0/src/clients/SD_DeleteProfile.ycp 2006-10-06 20:08:54.000000000 +0200
@@ -12,6 +12,7 @@
import "Popup";
import "Sequencer";
include "subdomain/apparmor_packages.ycp";
+include "subdomain/apparmor_profile_check.ycp";
include "subdomain/profile_dialogs.ycp";
textdomain "yast2-apparmor";
@@ -67,6 +68,11 @@
if (!installAppArmorPackages()) {
return ret;
}
+
+if (!checkProfileSyntax()) {
+ return true;
+}
+
ret = MainSequence();
return ret;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-apparmor-2.0/src/clients/SD_EditProfile.ycp new/yast2-apparmor-2.0/src/clients/SD_EditProfile.ycp
--- old/yast2-apparmor-2.0/src/clients/SD_EditProfile.ycp 2006-05-27 01:38:08.000000000 +0200
+++ new/yast2-apparmor-2.0/src/clients/SD_EditProfile.ycp 2006-10-06 20:08:54.000000000 +0200
@@ -12,6 +12,7 @@
import "Popup";
import "Sequencer";
include "subdomain/apparmor_packages.ycp";
+include "subdomain/apparmor_profile_check.ycp";
include "subdomain/profile_dialogs.ycp";
textdomain "yast2-apparmor";
@@ -67,9 +68,16 @@
// YEAH BABY RUN BABY RUN
//
any ret = nil;
+
if (!installAppArmorPackages()) {
return ret;
}
+
+if (!checkProfileSyntax()) {
+ return ret;
+}
+
+
ret = MainSequence();
return ret;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-apparmor-2.0/src/clients/SD_Report.ycp new/yast2-apparmor-2.0/src/clients/SD_Report.ycp
--- old/yast2-apparmor-2.0/src/clients/SD_Report.ycp 2006-05-27 01:38:08.000000000 +0200
+++ new/yast2-apparmor-2.0/src/clients/SD_Report.ycp 2006-10-06 20:08:54.000000000 +0200
@@ -13,6 +13,7 @@
import "Popup";
import "Sequencer";
include "subdomain/apparmor_packages.ycp";
+include "subdomain/apparmor_profile_check.ycp";
include "subdomain/reporting_dialogues.ycp";
include "subdomain/report_helptext.ycp";
textdomain "yast2-apparmor";
@@ -29,11 +30,6 @@
"schedReport" : ``(displaySchedForm()),
"viewreport" : ``(displayArchForm()),
"runReport" : ``(displayRunForm())
-/*
- "addSched" : ``(addSchedForm()),
- "editSched" : ``(editSchedForm()),
- "delSched" : ``(delSchedForm())
-*/
];
map sequence = $[
@@ -48,44 +44,18 @@
"schedReport": $[
`back : `ws_start,
`abort : `abort,
-// `add : "mainreport",
-// `edit : "editSched",
-// `del : "delSched",
`viewrep : "viewreport",
`runrep : "runReport",
`next : "runReport",
`finish : `ws_finish
],
-/*
- "addSched" : $[
- `back : "schedReport",
- `abort : `abort,
- `save : `finish,
- `finish : `ws_finish
- ],
- "editSched" : $[
- `back : "schedReport",
- `abort : `abort,
- `save : `finish,
- `finish : `ws_finish
- ],
- "delSched" : $[
- `back : "schedReport",
- `abort : `abort,
- `save : `finish,
- `finish : `ws_finish
- ],
-*/
"viewreport" : $[
- //`back : "viewreport",
`back : "mainreport",
`abort : `abort,
- //`next : `finish,
`next : "mainreport",
`finish : `ws_finish
],
"runReport": $[
- //`back : "runReport",
`back : `back,
`abort : `abort,
`next : `finish,
@@ -116,9 +86,13 @@
if (!installAppArmorPackages()) {
return ret;
}
+
+checkProfileSyntax();
+
ret = mainSequence();
return ret;
+
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-apparmor-2.0/src/include/subdomain/apparmor_profile_check.ycp new/yast2-apparmor-2.0/src/include/subdomain/apparmor_profile_check.ycp
--- old/yast2-apparmor-2.0/src/include/subdomain/apparmor_profile_check.ycp 1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-apparmor-2.0/src/include/subdomain/apparmor_profile_check.ycp 2006-10-06 20:08:55.000000000 +0200
@@ -0,0 +1,52 @@
+/*
+ Copyright (C) 2006 Novell Inc. All Rights Reserved.
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of version 2 of the GNU General Public
+ License published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, contact Novell, Inc.
+
+ */
+
+
+import "Popup";
+textdomain "yast2-apparmor";
+
+define boolean checkProfileSyntax () {
+ map args = $[];
+ string errmsg = "<ul>";
+ boolean syntax_ok = true;
+
+ args["profile-syntax-check"] = "1";
+ list <string> errors = (list <string>) SCR::Execute (.subdomain, "profile-syntax-check" );
+ foreach ( string error, errors, ``{
+ syntax_ok = false;
+ errmsg = errmsg + "<li>" + error + "</li>";
+ });
+ errmsg = errmsg + "</ul>";
+ if ( syntax_ok == false ) {
+ string headline = _("Errors found in AppArmor profiles");
+ errmsg = _("<p>These problems must be corrected before AppArmor can be \
+ started or the profile management tools can be used.</p> ")
+ + "<p>" + errmsg + "</p>"
+ + _("<p>You can find a description of AppArmor profile syntax by \
+ running ")
+ + "<code>man apparmor.d</code></p>"
+ + _("<p>Comprehensive documentation about AppArmor is available in \
+ the users guide for the distribution. This is available in the \
+ directory: ")
+ + "</p>"
+ + "<code>/usr/share/doc/manual/suselinux-manual_LANGUAGE</code>. "
+ + _("<p>Please refer to this for more detailed information about \
+ AppArmor</p>");
+ Popup::LongText( headline, `RichText(errmsg), 55, 15);
+ }
+ return( syntax_ok );
+}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-apparmor-2.0/src/include/subdomain/profile_dialogs.ycp new/yast2-apparmor-2.0/src/include/subdomain/profile_dialogs.ycp
--- old/yast2-apparmor-2.0/src/include/subdomain/profile_dialogs.ycp 2006-06-01 08:06:06.000000000 +0200
+++ new/yast2-apparmor-2.0/src/include/subdomain/profile_dialogs.ycp 2006-10-06 20:08:56.000000000 +0200
@@ -622,15 +622,34 @@
return `showhat;
}
} else if ( id == `include ) {
- string newInclude = UI::AskForExistingFile( "/etc/apparmor.d", "", _("Select File To Include"));
- if ( newInclude == nil || (string)newInclude == "" ) {
+ any ci = SCR::Read(.subdomain, "custom-includes");
+ list <any> customIncludes = tolist(ci);
+ string newInclude = UI::AskForExistingFile( "/etc/apparmor.d/abstractions", "", _("Select File To Include"));
+ if ( newInclude == nil || (string)newInclude == "" ) {
continue;
}
- integer includeRootBad = find (newInclude, "/etc/apparmor.d");
- if ( includeRootBad == -1 ) {
- Popup::Error("AppArmor include files must be located in the directory /etc/apparmor.d");
+ list <string> validIncludes = [ "/etc/apparmor.d/abstractions", "/etc/apparmor.d/program-chunks", "/etc/apparmor.d/tunables" ];
+ foreach( any incPath, (list<any>) customIncludes, {
+ string incPathStr = tostring(incPath);
+ validIncludes = add( validIncludes, "/etc/apparmor.d/" + incPathStr);
+ });
+
+ integer result = 0;
+ boolean includePathOK = false;
+ foreach( string pathToCheck, (list<string>) validIncludes, {
+ result = find (newInclude, pathToCheck);
+ if ( result != -1 ) {
+ includePathOK = true;
+ }
+ });
+
+ if ( ! includePathOK ) {
+ string pathListMsg = "";
+ foreach( string pathItem, (list<string>) validIncludes, {
+ pathListMsg = pathListMsg + "\n " + pathItem;
+ });
+ Popup::Error(_("Invalid #include file. Include files must be located in one of these directores: \n") + pathListMsg );
} else {
- // string includeName = substring(newInclude, 17 );
string includeName = substring(newInclude, 16 );
includes = add( includes, includeName, 1 );
profile["include"] = includes;
@@ -647,7 +666,7 @@
if ( ! hat ) {
if (Popup::YesNoHeadline(_("Save changes to the Profile"),
"Would you like to save the changes to this profile? \n(Note: after saving the changes the AppArmor profiles will be reloaded.)")) {
- map argmap = $[ "PROFILE_HASH" : Settings["PROFILE_MAP"]:$[],
+ map argmap = $[ "PROFILE_HASH" : Settings["PROFILE_MAP"]:$[],
"PROFILE_NAME" : pathname
];
any result = SCR::Write(.subdomain_profiles, argmap);
@@ -677,7 +696,7 @@
-
+
//
// Select a profile to edit and populate
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-apparmor-2.0/src/locale/Make.rules new/yast2-apparmor-2.0/src/locale/Make.rules
--- old/yast2-apparmor-2.0/src/locale/Make.rules 2006-05-27 01:15:11.000000000 +0200
+++ new/yast2-apparmor-2.0/src/locale/Make.rules 2006-10-06 20:08:44.000000000 +0200
@@ -14,7 +14,7 @@
# exist
LOCALEDIR=/usr/share/locale
-XGETTEXT_ARGS=--copyright-holder="NOVELL, Inc." --msgid-bugs-address=apparmor-general@forge.novell.com -d ${NAME}
+XGETTEXT_ARGS=--copyright-holder="NOVELL, Inc." --from-code=perl --msgid-bugs-address=apparmor-general@forge.novell.com -d ${NAME}
# When making the .pot file, it's expected that the parent Makefile will
# pass in the list of sources in the SOURCES variable
@@ -28,6 +28,9 @@
${NAME}.pot: ${PARENT_SOURCES}
xgettext ${XGETTEXT_ARGS} ${PARENT_SOURCES} -o $@
+apparmor-parser.pot: ${PARENT_SOURCES}
+ xgettext ${XGETTEXT_ARGS} ${PARENT_SOURCES} -o $@
+
%.mo: %.po
msgfmt -c -o $@ $<
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-apparmor-2.0/src/po/Make.rules new/yast2-apparmor-2.0/src/po/Make.rules
--- old/yast2-apparmor-2.0/src/po/Make.rules 2006-05-27 01:15:11.000000000 +0200
+++ new/yast2-apparmor-2.0/src/po/Make.rules 2006-10-06 20:08:44.000000000 +0200
@@ -14,7 +14,7 @@
# exist
LOCALEDIR=/usr/share/locale
-XGETTEXT_ARGS=--copyright-holder="NOVELL, Inc." --msgid-bugs-address=apparmor-general@forge.novell.com -d ${NAME}
+XGETTEXT_ARGS=--copyright-holder="NOVELL, Inc." --from-code=perl --msgid-bugs-address=apparmor-general@forge.novell.com -d ${NAME}
# When making the .pot file, it's expected that the parent Makefile will
# pass in the list of sources in the SOURCES variable
@@ -28,6 +28,9 @@
${NAME}.pot: ${PARENT_SOURCES}
xgettext ${XGETTEXT_ARGS} ${PARENT_SOURCES} -o $@
+apparmor-parser.pot: ${PARENT_SOURCES}
+ xgettext ${XGETTEXT_ARGS} ${PARENT_SOURCES} -o $@
+
%.mo: %.po
msgfmt -c -o $@ $<
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-apparmor-2.0/yast2-apparmor.spec new/yast2-apparmor-2.0/yast2-apparmor.spec
--- old/yast2-apparmor-2.0/yast2-apparmor.spec 2006-06-06 00:53:01.000000000 +0200
+++ new/yast2-apparmor-2.0/yast2-apparmor.spec 2006-10-16 18:55:09.000000000 +0200
@@ -17,9 +17,9 @@
Summary: Yast2 plugins for AppArmor management
Name: yast2-apparmor
Version: 2.0
-Release: 7.10
+Release: 7.11
Group: Productivity/Security
-Source0: %{name}-%{version}-20.tar.gz
+Source0: %{name}-%{version}-158.tar.gz
License: GPL and LGPL
BuildRoot: %{?_tmppath:}%{!?_tmppath:/var/tmp}/%{name}-%{version}-build
Url: http://forge.novell.com/modules/xfmod/project/?apparmor
@@ -28,8 +28,15 @@
Obsoletes: yast2-subdomain
Provides: yast2-subdomain
BuildRequires: update-desktop-files
-%if %{suse_version} > 1000
+
+%if %{suse_version} > 1010
+BuildRequires: yast2 yast2-devtools yast2-theme-openSUSE
+%define themedir /usr/share/YaST2/theme/openSUSE
+%else
+ %if %{suse_version} > 1000
BuildRequires: yast2 yast2-devtools yast2-theme-SuSELinux
+%define themedir /usr/share/YaST2/theme/SuSELinux
+ %endif
%endif
%description
@@ -46,7 +53,7 @@
%install
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
-make install DESTDIR=${RPM_BUILD_ROOT} DISTRO=%{distro}
+make install DESTDIR=${RPM_BUILD_ROOT} DISTRO=%{distro} THEMEDIR=%{themedir}
# Register as SuSE app
for f in `find $RPM_BUILD_ROOT/%{_prefix}/share/applications/YaST2/ -name "*.desktop"` ; do
@@ -71,7 +78,7 @@
/usr/share/applications/YaST2/groups
/usr/lib/YaST2/servers_non_y2
/usr/lib/perl5/vendor_perl/*
-/usr/share/YaST2/theme/SuSELinux/icons
+%{themedir}/icons
%doc COPYING.LGPL
%dir %attr(-,root,root) /etc/apparmor
%config(noreplace) /etc/apparmor/reports.crontab
@@ -88,13 +95,15 @@
%preun
%changelog
+* Thu Oct 5 2006 Dominic Reynolds 2.0-7.11
+- Add syntax checks for profiles and display to user.
* Wed May 31 2006 Dominic Reynolds 2.0-7.10
- Fixes for https://bugzilla.novell.com/show_bug.cgi?id=175388,
https://bugzilla.novell.com/show_bug.cgi?id=172061. Added support
for new profile syntax Px/Ux/m.
-* Sun Apr 2 2006 Dominic Reynolds 2.0-7.9
+* Sub Apr 2 2006 Dominic Reynolds 2.0-7.9
- Fix typo regression in profile_dialogs.ycp
-* Wed Mar 30 2006 Dominic Reynolds 2.0-7.9
+* Wed Mar 30 2006 Dominic Reynolds 2.0-7.9
- Remove libapparmor as a dependency for all yast wizards (#160518)
* Sun Mar 26 2006 David Drewelow 2.0-7.9
- Filter out html files in archived app. audit list: ag_reports_confined
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-apparmor-2.0/yast2-apparmor.spec.in new/yast2-apparmor-2.0/yast2-apparmor.spec.in
--- old/yast2-apparmor-2.0/yast2-apparmor.spec.in 2006-06-06 00:52:24.000000000 +0200
+++ new/yast2-apparmor-2.0/yast2-apparmor.spec.in 2006-10-16 18:54:33.000000000 +0200
@@ -17,7 +17,7 @@
Summary: Yast2 plugins for AppArmor management
Name: yast2-apparmor
Version: @@immunix_version@@
-Release: 7.10
+Release: 7.11
Group: Productivity/Security
Source0: %{name}-%{version}-@@repo_version@@.tar.gz
License: GPL and LGPL
@@ -28,8 +28,15 @@
Obsoletes: yast2-subdomain
Provides: yast2-subdomain
BuildRequires: update-desktop-files
-%if %{suse_version} > 1000
+
+%if %{suse_version} > 1010
+BuildRequires: yast2 yast2-devtools yast2-theme-openSUSE
+%define themedir /usr/share/YaST2/theme/openSUSE
+%else
+ %if %{suse_version} > 1000
BuildRequires: yast2 yast2-devtools yast2-theme-SuSELinux
+%define themedir /usr/share/YaST2/theme/SuSELinux
+ %endif
%endif
%description
@@ -46,7 +53,7 @@
%install
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
-make install DESTDIR=${RPM_BUILD_ROOT} DISTRO=%{distro}
+make install DESTDIR=${RPM_BUILD_ROOT} DISTRO=%{distro} THEMEDIR=%{themedir}
# Register as SuSE app
for f in `find $RPM_BUILD_ROOT/%{_prefix}/share/applications/YaST2/ -name "*.desktop"` ; do
@@ -71,7 +78,7 @@
/usr/share/applications/YaST2/groups
/usr/lib/YaST2/servers_non_y2
/usr/lib/perl5/vendor_perl/*
-/usr/share/YaST2/theme/SuSELinux/icons
+%{themedir}/icons
%doc COPYING.LGPL
%dir %attr(-,root,root) /etc/apparmor
%config(noreplace) /etc/apparmor/reports.crontab
@@ -88,13 +95,15 @@
%preun
%changelog
+* Thu Oct 5 2006 Dominic Reynolds 2.0-7.11
+- Add syntax checks for profiles and display to user.
* Wed May 31 2006 Dominic Reynolds 2.0-7.10
- Fixes for https://bugzilla.novell.com/show_bug.cgi?id=175388,
https://bugzilla.novell.com/show_bug.cgi?id=172061. Added support
for new profile syntax Px/Ux/m.
-* Sun Apr 2 2006 Dominic Reynolds 2.0-7.9
+* Sub Apr 2 2006 Dominic Reynolds 2.0-7.9
- Fix typo regression in profile_dialogs.ycp
-* Wed Mar 30 2006 Dominic Reynolds 2.0-7.9
+* Wed Mar 30 2006 Dominic Reynolds 2.0-7.9
- Remove libapparmor as a dependency for all yast wizards (#160518)
* Sun Mar 26 2006 David Drewelow 2.0-7.9
- Filter out html files in archived app. audit list: ag_reports_confined
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/yast2-apparmor-2.0/yast2-module.suse.spec.example new/yast2-apparmor-2.0/yast2-module.suse.spec.example
--- old/yast2-apparmor-2.0/yast2-module.suse.spec.example 2006-05-27 01:38:15.000000000 +0200
+++ new/yast2-apparmor-2.0/yast2-module.suse.spec.example 1970-01-01 01:00:00.000000000 +0100
@@ -1,375 +0,0 @@
-#
-# spec file for package yast2-shass (Version 1..0.1)
-#
-# Copyright (c) 2004 Immunix Inc
-# 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.immunix.com
-#
-
-# norootforbuild
-# neededforbuild yast2-devel-packages yast2-pam
-
-BuildRequires: aaa_base acl attr bash bind-utils bison bzip2 coreutils cpio cpp cracklib cvs cyrus-sasl db devs diffutils e2fsprogs file filesystem fillup findutils flex gawk gdbm-devel glibc glibc-devel glibc-locale gpm grep groff gzip info insserv kbd less libacl libattr libgcc libselinux libstdc++ libxcrypt m4 make man mktemp module-init-tools ncurses ncurses-devel net-tools netcfg openldap2-client openssl pam pam-modules patch permissions popt procinfo procps psmisc pwdutils rcs readline sed strace syslogd sysvinit tar tcpd texinfo timezone unzip util-linux vim zlib zlib-devel autoconf automake binutils curl dejagnu doxygen expect gcc gdbm gettext libtool liby2util liby2util-devel openslp openslp-devel perl perl-XML-Writer popt-devel rpm tcl update-desktop-files yast2 yast2-core yast2-core-devel yast2-devtools yast2-packagemanager yast2-packagemanager-devel yast2-pam yast2-testsuite
-
-Name: yast2-shass
-Version: 1.0
-Release: 1
-License: GPL
-Group: System/YaST
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Source0: yast2-y-2.9.14.tar.bz2
-prefix: /usr
-Requires: yast2
-Provides: yast2-shass
-Obsoletes: yast2-shass
-BuildArchitectures: noarch
-Summary: YaST2 - Immunix AppArmor Configuration Forms
-
-%description
-The YaST2 components for managing Immunix AppArmor security profiles.
-
-
-
-Authors:
---------
- Dominic Reynolds
- Jesse Michael
- David Drewelow
-
-%prep
-%setup -n yast2-shass-%{version}-%{release}
-
-%build
-make
-
-%install
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-make install DESTDIR="$RPM_BUILD_ROOT"
-[ -e "%{prefix}/share/YaST2/data/devtools/NO_MAKE_CHECK" ] || Y2DIR="$RPM_BUILD_ROOT/usr/share/YaST2" make check DESTDIR="$RPM_BUILD_ROOT"
-for f in `find $RPM_BUILD_ROOT/%{prefix}/share/applications/YaST2/*.desktop` ; do
- d=${f##*/}
- %suse_update_desktop_file ${d%.desktop}
-done
-
-%clean
-[ "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
-
-%files
-%defattr(-,root,root)
-%dir /usr/share/YaST2/include/security
-/usr/share/YaST2/include/security/*
-%{prefix}/share/applications/YaST2/security.desktop
-/usr/share/YaST2/clients/security*.ycp
-/usr/share/YaST2/modules/Security.y*
-/usr/share/YaST2/scrconf/*.scr
-%doc %{prefix}/share/doc/packages/yast2-security
-
-%changelog -n yast2-security
-* Sun Apr 04 2004 - msvec@suse.cz
-- changed minimum UID from 500 to 1000 (#38181)
-- 2.9.14
-* Fri Apr 02 2004 - msvec@suse.cz
-- changed license to GPL
-- 2.9.13
-* Wed Mar 17 2004 - jsuchome@suse.cz
-- fixed testsuite (forced by change of PamSettings::Write)
-- 2.9.12
-* Fri Mar 12 2004 - jsuchome@suse.cz
-- flush changes of pam configuration (#35721)
-- 2.9.11
-* Thu Mar 11 2004 - msvec@suse.cz
-- enabled the testsuite again
-- 2.9.10
-* Wed Mar 10 2004 - jsuchome@suse.de
-- disabled testsuite
-- 2.9.9
-* Wed Mar 10 2004 - nashif@suse.de
-- Adapted for new wizard
-* Mon Mar 08 2004 - msvec@suse.cz
-- set title icons
-- 2.9.8
-* Fri Mar 05 2004 - msvec@suse.cz
-- more strict type casts
-- 2.9.7
-* Mon Mar 01 2004 - msvec@suse.cz
-- proof-read messages
-- 2.9.6
-* Tue Feb 24 2004 - msvec@suse.cz
-- fix enabling of the remote XDM access (#34879)
-- 2.9.5
-* Fri Feb 06 2004 - msvec@suse.cz
-- use Sequencer module
-- drop y2cc config file
-- 2.9.4
-* Mon Jan 26 2004 - msvec@suse.cz
-- updates for the new interpreter
-- 2.9.3
-* Fri Jan 23 2004 - msvec@suse.cz
-- NI updates
-- 2.9.2
-* Wed Oct 22 2003 - msvec@suse.cz
-- routines cleanup
-- 2.9.1
-* Fri Sep 26 2003 - jsuchome@suse.cz
-- read new settings from /etc/login.defs (SYSTEM_UID_MAX, USERADD_CMD etc.)
-- 2.9.0
-* Thu Sep 11 2003 - msvec@suse.cz
-- changed "UNIX system" to "UNIX like system" in helps (#30495)
-- 2.8.6
-* Thu Sep 11 2003 - nashif@suse.de
-- #30291: return list of required packages for autoinstallation
-* Tue Sep 09 2003 - msvec@suse.cz
-- show correctly the current level (#30320)
-- 2.8.5
-* Fri Sep 05 2003 - msvec@suse.cz
-- proof read help texts
-- 2.8.4
-* Thu Aug 21 2003 - msvec@suse.cz
-- don't modify files when nothing changed (#28999)
-- 2.8.3
-* Wed Aug 20 2003 - jsuchome@suse.de
-- removed redundant "initialization dialog" (#28779)
-- 2.8.2
-* Mon Aug 11 2003 - jsuchome@suse.de
-- proofread texts (1st round)
-* Tue Jul 22 2003 - msvec@suse.cz
-- simplify autoinstallation client
-- updated testsuite
-- 2.8.1
-* Wed Jul 16 2003 - jsuchome@suse.de
-- updated to new Pam/PamSettings interface
-* Sun May 11 2003 - msvec@suse.de
-- maximum password length is related to encryption method (#13291)
-- support for enabling of SysRq keys
-- define password lengths (#13291)
-- improved documentation
-- better help texts (#26791)
-- updates for the new wizard functions
-- 2.8.0
-* Mon Mar 03 2003 - msvec@suse.de
-- autoinstallation fixes by nashif
-- 2.7.8
-* Sun Feb 16 2003 - nashif@suse.de
-- Set modified true when importing
-- 2.7.7
-* Sat Feb 15 2003 - nashif@suse.de
-- convert case when importing/exporting in autoinst mode
-- _auto.ycp Result ->Export
-- 2.7.6
-* Mon Feb 10 2003 - msvec@suse.de
-- proofread texts
-- 2.7.5
-* Mon Feb 03 2003 - msvec@suse.cz
-- autoinst and texts fixes
-- 2.7.4
-* Thu Jan 30 2003 - msvec@suse.de
-- proofread texts
-- 2.7.3
-* Wed Jan 22 2003 - msvec@suse.cz
-- added missing module to the package
-- 2.7.2
-* Tue Jan 21 2003 - nashif@suse.de
-- Added import function to _auto client
-- switch case to lower when exporting/upper when importing
-* Tue Jan 21 2003 - msvec@suse.de
-- fixed some error popups (and added some more)
-- fixed the autoinstallation client
-- 2.7.1
-* Tue Oct 22 2002 - msvec@suse.cz
-- completely rewritten internals
-- major cleanup, simplification and speedup
-- don't ask for save if nothing was changed
-- support for CWD in user's path (#18274)
-- complete support for blowfish (#12758)
-- 2.7.0
-* Thu Sep 05 2002 - msvec@suse.cz
-- fix the Next|Finish behavior (#18937)
-- provide more old translations (y2t_sec)
-- 2.6.10
-* Tue Aug 27 2002 - jsuchome@suse.cz
-- provide/obsolete old translation packages (bug #18691)
-* Wed Aug 14 2002 - mvidner@suse.cz
-- Merged proofread texts for the second translation round.
-- 2.6.8
-* Mon Jul 29 2002 - msvec@suse.cz
-- some general purpose agents moved to yast2
-- blowfish password encryption (#17039)
-- 2.6.7
-* Wed Jul 24 2002 - msvec@suse.cz
-- fixed some error messages
-- 2.6.6
-* Mon Jul 22 2002 - jsrain@suse.cz
-- merged proofread texts
-- version 2.6.5
-* Mon Jul 15 2002 - nashif@suse.de
-- adapted for use with the autoinstallation configuration system
-- security_auto now exports lower case values
-* Fri Jul 12 2002 - arvin@suse.de
-- use proper namespace for Args and CallFunction (#16776)
-* Mon Jul 08 2002 - msvec@suse.cz
-- use Wizard and other predefined functions
-- drastic reduction and simplification of UI code
-- split adduser dialog
-- 2.6.3
-* Thu Jul 04 2002 - arvin@suse.de
-- moved non binary files to /usr/share/YaST2
-* Mon Jul 01 2002 - msvec@suse.cz
-- package renamed to yast2-security
-- preliminary autoinstallation support
-- 2.6.1
-* Mon Jun 03 2002 - msvec@suse.cz
-- testsuite update
-- shortened label (#15089)
-- removed outdated docs #15875
-- implement CONSOLE SHUTDOWN fully in yast2
-- don't run full SuSEconfig
-- use y2autoconf, create-spe
-- 2.6.0
-* Wed Feb 27 2002 - msvec@suse.cz
-- use buildroot (via y2spec)
-- include the locate agent in the package
-- 2.5.11
-* Mon Feb 25 2002 - msvec@suse.cz
-- use proper sysconfig files (#13619)
-- minor fix of permissions writing
-- added agent for sysconfig/locate
-- updated testsuite
-- 2.5.10
-* Mon Feb 18 2002 - msvec@suse.cz
-- fixed shortcuts
-- fixed permissions reading and writing (#13106)
-- updated testsuite
-- 2.5.9
-* Mon Feb 11 2002 - mvidner@suse.cz
-- Fixed login.defs agent to handle quoted values.
-- Fixed test suite.
-- 2.5.8
-* Tue Feb 05 2002 - kukuk@suse.de
-- Add support for global pam_unix2 and pam_pwcheck config files
-- Version 2.5.7
-* Sat Jan 26 2002 - nashif@suse.de
-- Added agents to file list
-- 2.5.6
-* Wed Jan 16 2002 - msvec@suse.cz
-- added pam_unix2 and rlogin|gdm to MD5 settings (md5 is #9543)
-- use_cracklib is now via pam (PASSWD_USE_CRACKLIB)
-- drop telnet for root checkbox (ROOT_LOGIN_REMOTE)
-- added /etc/login.defs agent (using ini agent right now)
-- added /etc/sysconfig/security agent
-- updated testsuite
-- 2.5.5
-* Thu Dec 20 2001 - msvec@suse.cz
-- new menuentry file format
-- 2.5.3
-* Tue Dec 04 2001 - msvec@suse.cz
-- 3rd params to select
-- 2.5.2
-* Wed Nov 21 2001 - msvec@suse.cz
-- added DISPLAYMANAGER_REMOTE_ACCESS setting (#10824)
-- updated testsuite
-- 2.5.1
-* Mon Nov 19 2001 - msvec@suse.cz
-- fixed lookup 3rd parameters
-- migration to yast2-devtools
-- minor makefiles fixes
-- 2.5.0
-* Tue Aug 28 2001 - msvec@suse.cz
-- enlarge max uid to 32 bit (#9871)
-- parseycp during check
-- version 2.4.5
-* Wed Aug 22 2001 - msvec@suse.cz
-- added requires (rcconfig and pam agents, wizard library)
-- version 2.4.4
-* Wed Aug 15 2001 - msvec@suse.cz
-- added MD5 password encryption suuport
-- testsuite for the above
-- removed Finish function
-- removed UI(_(...))
-- use of UI:: and SCR::
-- version 2.4.3
-* Thu Aug 09 2001 - msvec@suse.cz
-- use common_messages for button labels
-- version 2.4.2
-* Mon Jul 30 2001 - msvec@suse.cz
-- new libycp fixes
-- minor variable fixes
-- updated testsuite
-- adapt to the new translator (locale useless)
-- version 2.4.1
-* Tue Jul 10 2001 - ro@suse.de
-- removed yast2-core-translator from neededforbuild
-* Tue Jul 03 2001 - msvec@suse.cz
-- adapted to the system agent split
-- added missing shortcuts (#9017)
-- version 2.4.0
-* Wed May 02 2001 - msvec@suse.cz
-- fix menuentry file
-- version 2.3.5
-* Mon Apr 23 2001 - msvec@suse.cz
-- removed isnils
-- no more quick SuSEconfig
-- help fix (#6912)
-- version 2.3.4
-* Fri Apr 13 2001 - msvec@suse.cz
-- enabled abuild checking
-- fixed help text (#6190)
-- version 2.3.3
-* Wed Apr 04 2001 - msvec@suse.cz
-- updated comments and docs
-- version 2.3.2
-* Fri Mar 30 2001 - msvec@suse.cz
-- support for "auto" KDM setting
-- new libycp adaptation
-- autobuild checking
-- removed 7.1 hacks
-- source cleanup
-- version 2.3.1
-* Wed Mar 07 2001 - msvec@suse.cz
-- package rename
-- version 2.3.0
-* Mon Jan 15 2001 - msvec@suse.cz
-- minimal UID should be 500 (#5643)
-- updated comments for translators
-- Next button translatable and shortcut
-* Fri Jan 12 2001 - msvec@suse.de
-- root telnet enabled means disabled and vice versa
-- minor gui update
-- saving fixed
-* Wed Jan 10 2001 - msvec@suse.de
-- Translatable strings bugfix
-* Fri Jan 05 2001 - kkaempf@suse.de
-- provide keyboard shortcuts for buttons
-* Fri Jan 05 2001 - kkaempf@suse.de
-- mark strings as translatable
-* Fri Dec 15 2000 - msvec@suse.cz
-- help text for the main screen added (#4619)
-- check the minimum <= maximum (#4682)
-* Wed Dec 13 2000 - mike@suse.de
-- new menuentry file
-* Wed Dec 13 2000 - msvec@suse.cz
-- menuentry updated
-* Tue Dec 12 2000 - msvec@suse.cz
-- helps
-- GUI update
-- version 1.1.3
-* Mon Dec 11 2000 - msvec@suse.cz
-- minor GUI update
-- fix the Custom writing
-- ``Something() -> ``(Something())
-- version 1.1.2
-* Sat Dec 09 2000 - kukuk@suse.de
-- Add group tag
-* Fri Dec 08 2000 - msvec@suse.cz
-- also update the source
-* Fri Dec 08 2000 - msvec@suse.cz
-- minor layout and functional updates
-- version 1.1.1
-* Wed Nov 29 2000 - msvec@suse.cz
-- new layout
-- version 1.1.0
-* Wed Oct 25 2000 - msvec@suse.cz
-- initial version
-* Thu Jan 02 1997 - msvec@suse.de
-- bugfixes
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org