[yast-devel] Time for cleanup... [now]
Hi, It's just a time for digging our skeletons out of the code! I've done a simple `grep` for 'hacks' and 'ugliness' in our code. File is attached. Please, try to remove hacks if possible and next time, try to even avoid implementing 'hacks' ;) (because I'd find them again) ;) I have to admit that my `simple grep` for these skeletons is not 100% correct, not even 90%, there are several false-positive matches. Anyway, it shows that there are several pieces of code that really need rewriting for openSUSE 11.0. Thanks & Bye Lukas -- Lukas Ocilka, YaST Developer (xn--luk-gla45d) ----------------------------------------------------------------- SUSE LINUX, s. r. o., Lihovarska 1060/12, Praha 9, Czech Republic add-on/src/add-on-workflow.ycp: // FIXME: this function is ugly add-on/src/add-on-workflow.ycp: // a little hack because of packager leaving autoinstallation/doc/web/xsl/myxref.xsl:<!-- specify a type attribute for the anchor. The dirty hack --> autoinstallation/doc/misc/multiplesource-sa.dsl:;;Formal Paras are ugly by default! autoinstallation/doc/autoyast.dsl:;;Formal Paras are ugly by default! backup/src/functions.ycp: // chack if partition is now mounted backup/src/ui.ycp: // "Renaming", Cron settings, It seems to be a hack }8-> bootloader/src/modules/BootCommon.ycp: // testsuite hack bootloader/src/modules/BootELILO.ycp: // FIXME: UGLY HACK because of testsuites bootloader/src/routines/misc.ycp:// UGHLY HACK because of testsuites build-test/yast2-build-test.spec:- quick Beta hack: deleted macros from BuildRequires and insert control-center-gnome/etc/Makefile.am:# hacks core/agent-ini/src/IniFile.h: * @param rewrite a #19066 hack - if rewriting is active, .st accesses rewrite_by core/agent-ini/src/IniFile.h: * @param rewrite a #19066 hack - if rewriting is active, .st accesses rewrite_by core/agents-non-y2/ag_hostnames: #hack: not quoting $2 enables scanning for a particular version core/agent-modules/src/ModulesConf.cc:/* Temporary hack, the whole parser should be reworked */ core/libycp/src/YCPDebugger.cc: // discarded, thus this must be the last check. Kind of ugly! core/libycp/src/YBlock.cc: // HACK ahead: Y2ALLGLOBAL should make all core/libycp/src/YCPBuiltinTerm.cc:// not static to get seen by l_select hack core/libyui/doc/FAQs/why-widget-labels-above-and-not-at-the-left.txt:account by every YCP hacker - everywhere, in each dialog. core/libyui/doc/FAQs/notify-events.txt:how ui-ncurses behaves. It's up to the YCP hackers to decide wheter core/libyui/doc/FAQs/notify-events.txt:something is sufficient or not. And it's up to the UI hackers to decide core/libyui/doc/FAQs/notify-events.txt:in the next release. Come to an agreement among the YCP hackers and make core/libyui/doc/FAQs/notify-events.txt:> in the next release. Come to an agreement among the YCP hackers and make core/libyui/doc/html/index.html:to.</p><p><span class="i"><span class="b">Note:</span> This dialog looks extremely ugly - don't try core/libyui/doc/html/UI-Events.html: hackers or users is pure coincidence and not intended. Ah yes, and core/libyui/doc/html/examples/SelectionBox5.ycp: "Minimalistic selbox (rather ugly): ", core/libyui/doc/YCP-UI-layout.xml: <para><emphasis role="i"><emphasis role="b">Note:</emphasis> This dialog looks extremely ugly - don't try core/libyui/doc/YCP-UI-layout.html:<i><b>Note:</b> This dialog looks extremely ugly - don't try this at home, kids</i> core/libyui/doc/events/event-intro.html:present or past YaST2 hackers or users is pure coincidence and not intended. core/libyui/doc/events/event-intro.xml: hackers or users is pure coincidence and not intended. Ah yes, and core/libyui/doc/examples/SelectionBox5.ycp: "Minimalistic selbox (rather ugly): ", country/language/src/modules/Language.ycp: // FIXME ugly hack: see bug #47711 devtools/yxp/yxp.y:/* hack because of foreach . TODO move it there */ devtools/ydoc/src/ydoc2: # UGLY devtools/yast2/check_ycp/doc/html/check_ycp_html-check.html: paragraphs. This just looks plain ugly, even more so if this results in devtools/yast2/check_ycp/doc/html/check_ycp_emacs.html: If you are a real hardcore YCP hacker, you can even go so far and change the devtools/yast2/check_ycp/doc/check_ycp.sgml:paragraphs. This just looks plain ugly, even more so if this results in devtools/yast2/check_ycp/doc/check_ycp.sgml:If you are a real hardcore YCP hacker, you can even go so far and change the devtools/yast2/check_ycp/doc/check_ycp-contents.xml: paragraphs. This just looks plain ugly, even more so if this results in devtools/yast2/check_ycp/doc/check_ycp-contents.xml: If you are a real hardcore YCP hacker, you can even go so far and change the devtools/yast2/check_ycp/check_ycp: # Hack: let's not check a 'module "Foo"' declaration, just uppercasing devtools/ycpdoc/src/ycpdoc: # a hack to write a part of module index: devtools/devtools/bin/y2autoconf:# "po" hacking: y2automake runs after us so "po" may not have Makefile.am yet devtools/devtools/bin/y2automake:# Build hack: devtools/devtools/admin/copyright/gpl/COPYING: `Gnomovision' (which makes passes at compilers) written by James Hacker. dhcp-server/src/DhcpServer.pm: # FIXME temporary hack because of testsuite dns-server/src/DnsZones.pm:# This function is a light hack fo NSUPDATE. dns-server/src/DnsZones.pm:# This light hack is here because nsupdate needs at least one NS record working for it's updates dns-server/src/DnsFakeTabs.ycp:// Dirty hack for tabs in YCP until the widget implementation is ready firewall/src/dialogs.ycp: // hack function for disabling BackButon firstboot/configure.in.in:## Nasty hack: xgettext doesn't work for XML files, so let's symlink it ftp-server/src/dialogs.ycp: * special hack widget where is handlig disable back button ftp-server/src/dialogs.ycp: * special hack widget where is handlig Start/Stop button gtk/src/ygtkcellrendererarrow.c: // a bit ugly, but let's use a cycle here to avoid calling a function gtk/src/YGPackageSelector.cc: // the plain list; hacky anyway gtk/src/YGPackageSelector.cc: // select path, so the buttons get updated and all (hacky) gtk/src/ygtksteps.c: // ugly -- should use gtk_widget_queue_draw_area (widget, x, y, w, h) gtk/src/ygtksteps.h: TODO: the PangoLayout usage is getting a bit hacky. We may want to gtk/src/YGUtils.cc: // (if you think this is ugly, just wait for the Perl version! :P) gtk/TODO: We could hack this through if we had stock images support (may depend gtk/README: A code overview is given on the HACKING file. gtk/configure.in:Hello hacker: please read the README carefully while this builds. gtk/test.sh:echo "Hackish script to run a ton of yast2-gtk test that we know" gtk/HACKING: hackish. Attempts at abstracting this were successful, but not gtk/configure.in.in:Hello hacker: please read the README carefully while this builds. gtk/integrate/yast2: # FIXME: why the hack was this done? full screening something that http-server/src/YaPI/HTTPDModules.pm: { option => "XBitHack", "context" => [ "Directory", "Server", "Virtual" ], http-server/src/YaST/httpdUtils.pm: # this is a hack. inetd/src/routines.ycp: // HACK: inetd/src/dialogs.ycp: * BTW: This module should have been rewritten ages ago! No more hacking, please. installation/configure.in:#argh hack installation/configure.in.in:## Nasty hack: xgettext doesn't work for XML files, so let's symlink it installation/configure.in.in:#argh hack instserver/src/Instserver.ycp: // HACK: support sles8 too ipsec/src/FreeSwanCerts.pm:# Quick and dirty hack to substitute some known fields of issuer DN to so kerberos-server/src/KerberosServer.pm: if (!SCR->Write (".ldapserver.krb5ACLHack", "" )) ldap/src/LdapServerAccess.pm:BEGIN {$TYPEINFO{AddSambaACLHack} = ["function", ldap/src/LdapServerAccess.pm:sub AddSambaACLHack { ldap/src/LdapServerAccess.pm: if (!SCR->Write (".ldapserver.sambaACLHack", $dn)) { ldap-client/src/Ldap.ycp: // this is a hack ldap-client/src/Ldap.ycp: // this is a hack ldap-server/src/ldap-server_proposal.ycp: /* XXX: hack to resolve bug #44335: ldap-server/agents/ag_ldapserver:# - lots of those ugly direct data accesses (like $section->{$opt_name}->[0]{dataref}{__internal}{filename} ) ldap-server/agents/ag_ldapserver: if( $path[0] eq 'sambaACLHack' ) { ldap-server/agents/ag_ldapserver: summary => "DN missing in sambaACLHack", ldap-server/agents/ag_ldapserver: return $class->sambaACLHack( $dn ); ldap-server/agents/ag_ldapserver: if( $path[0] eq 'krb5ACLHack' ) { ldap-server/agents/ag_ldapserver: #summary => "DN missing in krb5ACLHack", ldap-server/agents/ag_ldapserver: return $class->krb5ACLHack( $dn ); ldap-server/agents/ag_ldapserver: #FIXME: extremely ugly check to determine if the database entry is the one from slapd.conf.default ldap-server/agents/ag_ldapserver:sub krb5ACLHack ldap-server/agents/ag_ldapserver: y2debug("-> krb5ACLHack"); ldap-server/agents/ag_ldapserver: my $acl = "## Yast2 krb5 hack ACL\n"; ldap-server/agents/ag_ldapserver: $acl .= "## Yast2 krb5 hack ACL done\n"; ldap-server/agents/ag_ldapserver: # kick out old krb5 hack ACLs ldap-server/agents/ag_ldapserver: next unless( $slapd[$i] =~ /^## Yast2 krb5 hack ACL/ ); ldap-server/agents/ag_ldapserver: } while( $slapd[++$i] !~ /^## Yast2 krb5 hack ACL done/ ); ldap-server/agents/ag_ldapserver:sub sambaACLHack { ldap-server/agents/ag_ldapserver: y2debug("-> sambaACLHack"); ldap-server/agents/ag_ldapserver: my $acl = "## Yast2 samba hack ACL\n"; ldap-server/agents/ag_ldapserver: $acl .= "## Yast2 samba hack ACL done\n"; ldap-server/agents/ag_ldapserver: # kick out old samba hack ACLs ldap-server/agents/ag_ldapserver: next unless( $slapd[$i] =~ /^## Yast2 samba hack ACL/ ); ldap-server/agents/ag_ldapserver: } while( $slapd[++$i] !~ /^## Yast2 samba hack ACL done/ ); liby2util/src/.deps/digest_bin-Digest.Po: /usr/include/openssl/e_os2.h /usr/include/openssl/symhacks.h \ liby2util/src/.deps/digest_bin-Digest.Po:/usr/include/openssl/symhacks.h: liby2util/src/.deps/Digest.Plo: /usr/include/openssl/e_os2.h /usr/include/openssl/symhacks.h \ liby2util/src/.deps/Digest.Plo:/usr/include/openssl/symhacks.h: live-installer/src/live-installer.ycp: // FIXME hack because of bootloader - libzypp does not contain product database live-installer/configure.in.in:## Nasty hack: xgettext doesn't work for XML files, so let's symlink it mail/users-plugin/UsersPluginMail.pm: # UGLY: Access the Namespace-Structure directly, as the access method lowercase the values make.log:./../../src/inst_you.ycp: 50: Warning: Function Hack has no comment. metapackage/COPYING: `Gnomovision' (which makes passes at compilers) written by James Hacker. ncurses/src/ncursesw.h:/* The (char*) cast is to hack around missing const's */ ncurses/src/ncursesw.h:/* The (wchar*_t) cast is to hack around missing const's */ network/src/dsl/dialogs.ycp: // 0 is index to CreateWidgets... ugly network/src/lan/address.ycp: // The combo is a hack to allow changing misdetected network/src/modem/dialogs.ycp: // 0 is index to CreateWidgets... ugly network/src/installation/inst_do_net_test.ycp: // ugly hack (see bug #42177) network/src/installation/network/dsl/dialogs.ycp: // 0 is index to CreateWidgets... ugly network/src/installation/network/lan/address.ycp: // The combo is a hack to allow changing misdetected network/src/installation/network/modem/dialogs.ycp: // 0 is index to CreateWidgets... ugly network/src/installation/network/provider/dialogs.ycp: * The SelectionBox "----" divider hack network/src/installation/network/provider/dialogs.ycp:define any dividerHack(list provs, any prev) { network/src/installation/network/provider/dialogs.ycp: provider = dividerHack(provs, prev); network/src/modules/Lan.ycp: // if(!Arch::s390 ()) /* FIXME: Temporary hack until the detection is functional */ network/src/modules/network/dsl/dialogs.ycp: // 0 is index to CreateWidgets... ugly network/src/modules/network/lan/address.ycp: // The combo is a hack to allow changing misdetected network/src/modules/network/modem/dialogs.ycp: // 0 is index to CreateWidgets... ugly network/src/modules/network/installation/inst_do_net_test.ycp: // ugly hack (see bug #42177) network/src/modules/network/provider/dialogs.ycp: * The SelectionBox "----" divider hack network/src/modules/network/provider/dialogs.ycp:define any dividerHack(list provs, any prev) { network/src/modules/network/provider/dialogs.ycp: provider = dividerHack(provs, prev); network/src/routines/dsl/dialogs.ycp: // 0 is index to CreateWidgets... ugly network/src/routines/lan/address.ycp: // The combo is a hack to allow changing misdetected network/src/routines/modem/dialogs.ycp: // 0 is index to CreateWidgets... ugly network/src/routines/installation/inst_do_net_test.ycp: // ugly hack (see bug #42177) network/src/routines/provider/dialogs.ycp: * The SelectionBox "----" divider hack network/src/routines/provider/dialogs.ycp:define any dividerHack(list provs, any prev) { network/src/routines/provider/dialogs.ycp: provider = dividerHack(provs, prev); network/src/provider/dialogs.ycp: * The SelectionBox "----" divider hack network/src/provider/dialogs.ycp:define any dividerHack(list provs, any prev) { network/src/provider/dialogs.ycp: provider = dividerHack(provs, prev); network/src/clients/network/dsl/dialogs.ycp: // 0 is index to CreateWidgets... ugly network/src/clients/network/lan/address.ycp: // The combo is a hack to allow changing misdetected network/src/clients/network/modem/dialogs.ycp: // 0 is index to CreateWidgets... ugly network/src/clients/network/installation/inst_do_net_test.ycp: // ugly hack (see bug #42177) network/src/clients/network/provider/dialogs.ycp: * The SelectionBox "----" divider hack network/src/clients/network/provider/dialogs.ycp:define any dividerHack(list provs, any prev) { network/src/clients/network/provider/dialogs.ycp: provider = dividerHack(provs, prev); nis-client/agents/ag_yp_conf: # a hack to make testing simple nis-client/agents/ag_yp_conf: # a hack to make testing simple ntp-client/src/misc.ycp:// FIXME this is quite ugly ... the whole checkinf if something was changed online-update/src/inst_you.ycp: // I have a feeling that we may need a lot of hacks here online-update/src/inst_you.ycp: boolean Hack (string what) { online-update/src/inst_you.ycp: boolean hack = (SCR::Read (.target.size, "/tmp/hack-" + what) != -1); online-update/src/inst_you.ycp: if (hack) online-update/src/inst_you.ycp: y2milestone ("HACK: %1", what); online-update/src/inst_you.ycp: return hack; online-update/src/inst_you.ycp: if (after_restart || Hack ("init-target-and-sources")) online-update/src/inst_you.ycp: Hack ("ui")) online-update/yast2-online-update.spec.in: # remove the.desktop from the older unhacked package during update packagemanager/src/inst/rpm/librpmDb.cv3.cc: /* HACK. Source RPM, so just do things differently */ packagemanager/src/inst/InstSrc.cc:// DESCRIPTION : Hack for adrian to enforce package packagemanager/src/inst/InstSrc.cc: rememberPreviouslyDnlPackage( path_r ); // Hack not to keep more than one downloaded package packagemanager/src/inst/InstSrc.cc:#warning Hack not to keep more than one downloaded package packagemanager/src/inst/InstSrcDataUL.cc: // slideshow via ftp/http hack packagemanager/src/inst/InstSrcManager.cc:#warning be friendly to slideshow hack packagemanager/src/y2pm/InstTarget.h: * Hack to let InstTarget lookup required and conflicting file relations. packagemanager/src/y2pm/RpmDb.h: * Hack to lookup required and conflicting file relations. packagemanager/src/y2pm/PMSolvable.h: * Hack to let InstTarget lookup required and conflicting file relations. packagemanager/src/PMManager_solver.cc:#warning hack for unknown file dependencies packager/src/clients/inst_kickoff.ycp: // hack 'pre-req' cyclic dependency between bash, aaa_base, and perl packager/src/clients/inst_kickoff.ycp: // hack 'pre-req' cyclic dependency between bash, aaa_base, and perl packager/configure.in.in:## Nasty hack: xgettext doesn't work for XML files, so let's symlink it pam/src/PamSettings.ycp: // FIXME temporary hack for backward compatibility perl-bindings/doc/examples/Makefile.am.common:# this is a hacked up version of the thing that is in newer devtools perl-bindings/src/YCP.cc: // this is a hack before the builtin namespaces get a uniform interface: perl-bindings/src/YCP.cc: // maybe a special exceptional hack to make Path for the 1st argument? perl-bindings/src/YCP.pm: # HACK: pkg-bindings/src/Source.cc:// hack: zypp/MediaProducts.h cannot be included in PkgModuleFunctions.h pkg-bindings/src/Source.cc: * (idempotence hack, broken design: #155459, #176013, use SourceSaveAll). printer/agent-ppd/src/PPDdb.cc: /* Add special vendors hacks */ printer/agent-ppd/src/PPDdb.cc: * Preprocess the strings, apply hacks and update the db. printer/agent-ppd/src/PPDdb.cc: /* special vendor/printer hacks */ product-creator/src/Kiwi.ycp: string cmd = sformat ("ZYPP_READONLY_HACK=1 kiwi --root %1 --prepare %2 --logfile terminal", chroot_dir, config_dir); product-creator/src/Kiwi.ycp: cmd = sformat ("ZYPP_READONLY_HACK=1 kiwi --create %1 -d %2 --logfile terminal", chroot_dir, out_dir); profile-manager/src/ProfileManager.ycp: if (position == "first") // hack: missing newline qt/src/pkg/YQPkgConflictDialog.cc: // Here comes a real nasty hack. qt/src/pkg/YQPkgPatternList.h: * be set >0 and rootItemDecorated( true ), but that would look very ugly qt/src/YQUI_core.cc: // Ugly hack as a workaround of bug #121872 (Segfault at program exit qt/src/YQCheckBoxFrame.h: * This is a nasty hack, but it prevents oversights from the Qt designers. qt/src/YQCheckBoxFrame.cc: * This is a nasty hack. But it is necessary because QGroupBox handles its qt/src/YQMenuButton.cc: * the 100 delay is a ugly dirty workaround registration/src/clients/inst_suse_register.ycp:chacl * -x maptimeout,markkeys,maxwin,meta,monitor,msgminwait,msgwait,multiuser,nethack,next,nonblock repair/doc/Research/Rescue/research/results/misc/wrong_library_path.html:never heard of this library (have you been hacked?). Do you have it? repair/doc/Research/Rescue/research/results/misc/wrong_library_path.html:> never heard of this library (have you been hacked?). Do you have it? repair/doc/Research/Rescue/research/results/login/index.html:<!-- <li><b>All logins fail, perhaps a hacker attack or partitions full:</b><br> repair/doc/Research/Rescue/research/results/login/all_logins_fail.html:<font color=#6f6f6f face=arial,sans-serif size=-1><center><a href=/googlegroups/help.html>Click here</a> for information about upcoming improvements to this beta version of Google's Usenet search.</center></font><br><table width=100%% cellpadding=2 cellspacing=0 border=0><tr><td bgcolor=#009933 nowrap><font face=arial,sans-serif size=-1 color=white><b>Usenet Messages</b> from the thread "<b>HACKED ? All logins fail</b>" </font></td><td bgcolor=#009933 align=right nowrap><font face=arial,sans-serif size=-1 color=white>Messages <b>1 - 5</b> of <b>5</b>. </font></td></tr></table><br clear=all> repair/doc/Research/Rescue/research/results/login/all_logins_fail.html:From: <a href=/groups?hl=de&lr=&safe=off&q=author:jdewitt%40broadcastzone.com+>jdewitt</a> (<a href=mailto:jdewitt%40broadcastzone.com>jdewitt@broadcastzone.com</a>)<br>Subject: HACKED ? All logins fail <br>Newsgroups: <a href=/groups?hl=de&lr=&safe=off&group=comp.os.linux.misc>comp.os.linux.misc</a><br>Date: 2000-10-18 10:10:29 PST repair/doc/Research/Rescue/research/results/login/all_logins_fail.html:From: <a href=/groups?hl=de&lr=&safe=off&q=author:d9910739%40mail.connect.usq.edu.au+>Michael Westerman</a> (<a href=mailto:d9910739%40mail.connect.usq.edu.au>d9910739@mail.connect.usq.edu.au</a>)<br>Subject: Re: HACKED ? All logins fail <br>Newsgroups: <a href=/groups?hl=de&lr=&safe=off&group=comp.os.linux.misc>comp.os.linux.misc</a><br>Date: 2000-10-18 20:27:40 PST repair/doc/Research/Rescue/research/results/login/all_logins_fail.html:From: <a href=/groups?hl=de&lr=&safe=off&q=author:ynotssor%40my-deja.com+>ynotssor@my-deja.com</a> (<a href=mailto:ynotssor%40my-deja.com>ynotssor@my-deja.com</a>)<br>Subject: Re: HACKED ? All logins fail <br>Newsgroups: <a href=/groups?hl=de&lr=&safe=off&group=comp.os.linux.misc>comp.os.linux.misc</a><br>Date: 2000-10-18 23:00:09 PST repair/doc/Research/Rescue/research/results/login/all_logins_fail.html:Possibly hacked; it sounds symptomatic of repair/doc/Research/Rescue/research/results/login/all_logins_fail.html:From: <a href=/groups?hl=de&lr=&safe=off&q=author:avflinsch%40att.net+>aflinsch</a> (<a href=mailto:avflinsch%40att.net>avflinsch@att.net</a>)<br>Subject: Re: HACKED ? All logins fail <br>Newsgroups: <a href=/groups?hl=de&lr=&safe=off&group=comp.os.linux.misc>comp.os.linux.misc</a><br>Date: 2000-10-19 11:39:58 PST repair/doc/Research/Rescue/research/results/login/all_logins_fail.html:From: <a href=/groups?hl=de&lr=&safe=off&q=author:gregab%40NOS.PAM-gbsoft.org+>Grega Bremec</a> (<a href=mailto:gregab%40NOS.PAM-gbsoft.org>gregab@NOS.PAM-gbsoft.org</a>)<br>Subject: Re: HACKED ? All logins fail <br>Newsgroups: <a href=/groups?hl=de&lr=&safe=off&group=comp.os.linux.misc>comp.os.linux.misc</a><br>Date: 2000-10-19 13:43:03 PST repair/doc/Research/Rescue/research/results/login/all_logins_fail.html:friends with hacked versions that send all of the attempted passwords repair/doc/Research/Rescue/research/results/hardware/power_supply_problem.html:I've replaced this with a 1000uF, 16v from Radio Shack on both rev 1.0 repair/doc/Research/Rescue/research/results/hardware/cdrom_problem_2.html:From: <a href=/groups?hl=en&lr=&safe=off&q=author:thaal01%40cai.com+>Alan.J.Thackray</a> (<a href=mailto:thaal01%40cai.com>thaal01@cai.com</a>)<br>Subject: Re: CDROM Problem <br>Newsgroups: <a href=/groups?hl=en&lr=&safe=off&group=comp.os.linux.hardware>comp.os.linux.hardware</a><br>Date: 1999/02/24 repair/doc/Research/Rescue/research/results/kernel/modprobe_cant_locate_module.html:# Kernel hacking repair/doc/Research/Rescue/research/results/rescue_disk/password_repair_via_rescue2.html:<pre><font>Help....I am running redhat 6.2 i386. I was hacked and my root password repair/doc/Research/Rescue/research/results/rescue_disk/password_repair_via_rescue2.html:<font color="#660066"> >Help....I am running redhat 6.2 i386. I was hacked and my root password repair/doc/Research/Rescue/research/results/rescue_disk/password_repair_via_rescue2.html:<font color="#007777">> >Help....I am running redhat 6.2 i386. I was hacked and my root password repair/doc/Research/Rescue/research/results/rescue_disk/password_repair_via_rescue2.html:<font color="#990000">> > >Help....I am running redhat 6.2 i386. I was hacked and my root password repair/doc/Research/Rescue/research/results/rescue_disk/password_repair_via_rescue2.html:<font color="#000099">> > > >Help....I am running redhat 6.2 i386. I was hacked and my root password repair/doc/Research/Rescue/research/results/rescue_disk/password_repair_via_rescue2.html:<font color="#990000">> > >Help....I am running redhat 6.2 i386. I was hacked and my root password ruby-bindings/src/ruby/YCP.cc: // this is a hack before the builtin namespaces get a uniform interface: ruby-bindings/src/ruby/YCP.cc: // maybe a special exceptional hack to make Path for the 1st argument? ruby-bindings/src/ruby/YCP.rb: # HACK: samba-server/src/SambaBackendLDAP.pm: $ret = LdapServerAccess->AddSambaACLHack($admin_dn, 0); samba-server/src/SambaBackendLDAP.pm: y2error("Samba ACL Hack failed"); scanner/src/Scanner.ycp: { // An ugly workaround for a strange problem (Suse/Novell Bugzilla bug #75709): schema/scripts/collect.sh: # HACK: avoid creating a separate desktop file security/src/Security.ycp: /* Local permissions hack */ sound/data/src/gen_opt_list.ycp: // FIXME this is hack for one current addon module... FIXME sound/data/sndcards.ycp: "vaio_hack" : $[ sound/data/alsa-module-syntax:snd-nm256 vaio_hack enable:(enable),allows:{{0,Disabled},{1,Enabled}},default:0,dialog:check sound/sound/src/routines.ycp: * (oss is nasty hacked, because it's not trivial to check this) sound/sound/src/routines.ycp: define boolean nm256hack (string modname) ``{ sound/sound/src/routines.ycp: string warn_text = Sound::STRINGS["nm256hackWarning"]:""; sound/sound/src/routines.ycp: // ppc hack - use snd-aoa instead of snd-powermac (#217300) sound/sound/src/routines.ycp: * Hack for Thinkpad 600E notebook - it need cs4236 module instead of cs4610 sound/sound/src/routines.ycp: define void Thinkpad600E_cs4236_hack (integer card_id) ``{ sound/sound/src/write_routines.ycp: // this is a hack for snd-aoa driver, additional modules are needed (#217300) sound/sound/src/texts.ycp: "nm256hackWarning": sound/sound/src/texts.ycp:snd_vaio_hack option value to 1 or by sound/sound/src/card_wizard.ycp: Thinkpad600E_cs4236_hack (card_id); sound/sound/src/wizards.ycp: boolean nm256out = nm256hack (Sound::unconfigured_cards[0,"module"]:""); storage/libstorage/bindings/ycp/LibStorage_wrap.cc:/* Note: SwigMagicFuncHack is a typedef used to get the C++ compiler to just shut up already */ storage/libstorage/bindings/ycp/LibStorage_wrap.cc:typedef int (CPerlObj::*SwigMagicFuncHack)(SV *, MAGIC *); storage/libstorage/bindings/ycp/LibStorage_wrap.cc:typedef int (*SwigMagicFuncHack)(SV *, MAGIC *); storage/libstorage/bindings/ycp/LibStorage_wrap.cc:typedef int (*SwigMagicFuncHack)(struct interpreter *, SV *, MAGIC *); storage/libstorage/bindings/ycp/LibStorage_wrap.cc: mg->mg_virtual->svt_get = (SwigMagicFuncHack) get; storage/libstorage/bindings/ycp/LibStorage_wrap.cc: mg->mg_virtual->svt_set = (SwigMagicFuncHack) set; storage/libstorage/bindings/ycp/LibStorage_wrap.xml: <attribute name="code" value="/* ----------------------------------------------------------------------------- * perlrun.swg * * This file contains the runtime support for Perl modules * and includes code for managing global variables and pointer * type checking. * ----------------------------------------------------------------------------- */ #ifdef PERL_OBJECT #define SWIG_PERL_OBJECT_DECL CPerlObj *SWIGUNUSEDPARM(pPerl), #define SWIG_PERL_OBJECT_CALL pPerl, #else #define SWIG_PERL_OBJECT_DECL #define SWIG_PERL_OBJECT_CALL #endif /* Common SWIG API */ /* for raw pointers */ #define SWIG_ConvertPtr(obj, pp, type, flags) SWIG_Perl_ConvertPtr(SWIG_PERL_OBJECT_CALL obj, pp, type, flags) #define SWIG_NewPointerObj(p, type, flags) SWIG_Perl_NewPointerObj(SWIG_PERL_OBJECT_CALL p, type, flags) /* for raw packed data */ #define SWIG_ConvertPacked(obj, p, s, type) SWIG_Perl_ConvertPacked(SWIG_PERL_OBJECT_CALL obj, p, s, type) #define SWIG_NewPackedObj(p, s, type) SWIG_Perl_NewPackedObj(SWIG_PERL_OBJECT_CALL p, s, type) /* for class or struct pointers */ #define SWIG_ConvertInstance(obj, pptr, type, flags) SWIG_ConvertPtr(obj, pptr, type, flags) #define SWIG_NewInstanceObj(ptr, type, flags) SWIG_NewPointerObj(ptr, type, flags) /* for C or C++ function pointers */ #define SWIG_ConvertFunctionPtr(obj, pptr, type) SWIG_ConvertPtr(obj, pptr, type, 0) #define SWIG_NewFunctionPtrObj(ptr, type) SWIG_NewPointerObj(ptr, type, 0) /* for C++ member pointers, ie, member methods */ #define SWIG_ConvertMember(obj, ptr, sz, ty) SWIG_ConvertPacked(obj, ptr, sz, ty) #define SWIG_NewMemberObj(ptr, sz, type) SWIG_NewPackedObj(ptr, sz, type) /* Runtime API */ #define SWIG_GetModule(clientdata) SWIG_Perl_GetModule() #define SWIG_SetModule(clientdata, pointer) SWIG_Perl_SetModule(pointer) /* Error manipulation */ #define SWIG_ErrorType(code) SWIG_Perl_ErrorType(code) #define SWIG_Error(code, msg) sv_setpvf(GvSV(PL_errgv),"%s %s\\n", SWIG_ErrorType(code), msg) #define SWIG_fail goto fail /* Perl-specific SWIG API */ #define SWIG_MakePtr(sv, ptr, type, flags) SWIG_Perl_MakePtr(SWIG_PERL_OBJECT_CALL sv, ptr, type, flags) #define SWIG_MakePackedObj(sv, p, s, type) SWIG_Perl_MakePackedObj(SWIG_PERL_OBJECT_CALL sv, p, s, type) #define SWIG_SetError(str) SWIG_Error(SWIG_RuntimeError, str) #define SWIG_PERL_DECL_ARGS_1(arg1) (SWIG_PERL_OBJECT_DECL arg1) #define SWIG_PERL_CALL_ARGS_1(arg1) (SWIG_PERL_OBJECT_CALL arg1) #define SWIG_PERL_DECL_ARGS_2(arg1, arg2) (SWIG_PERL_OBJECT_DECL arg1, arg2) #define SWIG_PERL_CALL_ARGS_2(arg1, arg2) (SWIG_PERL_OBJECT_CALL arg1, arg2) /* ----------------------------------------------------------------------------- * pointers/data manipulation * ----------------------------------------------------------------------------- */ /* For backward compatibility only */ #define SWIG_POINTER_EXCEPTION 0 #ifdef __cplusplus extern "C" { #endif #define SWIG_OWNER SWIG_POINTER_OWN #define SWIG_SHADOW SWIG_OWNER << 1 #define SWIG_MAYBE_PERL_OBJECT SWIG_PERL_OBJECT_DECL /* SWIG Perl macros */ /* Macro to call an XS function */ #ifdef PERL_OBJECT # define SWIG_CALLXS(_name) _name(cv,pPerl) #else # ifndef MULTIPLICITY # define SWIG_CALLXS(_name) _name(cv) # else # define SWIG_CALLXS(_name) _name(PERL_GET_THX, cv) # endif #endif /* Note: SwigMagicFuncHack is a typedef used to get the C++ compiler to just shut up already */ #ifdef PERL_OBJECT #define MAGIC_PPERL CPerlObj *pPerl = (CPerlObj *) this; typedef int (CPerlObj::*SwigMagicFunc)(SV *, MAGIC *); #ifdef __cplusplus extern "C" { #endif typedef int (CPerlObj::*SwigMagicFuncHack)(SV *, MAGIC *); #ifdef __cplusplus } #endif #define SWIG_MAGIC(a,b) (SV *a, MAGIC *b) #define SWIGCLASS_STATIC #else #define MAGIC_PPERL #define SWIGCLASS_STATIC static SWIGUNUSED #ifndef MULTIPLICITY #define SWIG_MAGIC(a,b) (SV *a, MAGIC *b) typedef int (*SwigMagicFunc)(SV *, MAGIC *); #ifdef __cplusplus extern "C" { #endif typedef int (*SwigMagicFuncHack)(SV *, MAGIC *); #ifdef __cplusplus } #endif #else #define SWIG_MAGIC(a,b) (struct interpreter *interp, SV *a, MAGIC *b) typedef int (*SwigMagicFunc)(struct interpreter *, SV *, MAGIC *); #ifdef __cplusplus extern "C" { #endif typedef int (*SwigMagicFuncHack)(struct interpreter *, SV *, MAGIC *); #ifdef __cplusplus } #endif #endif #endif /* Workaround for bug in perl 5.6.x croak and earlier */ #if (PERL_VERSION < 8) # ifdef PERL_OBJECT # define SWIG_croak_null() SWIG_Perl_croak_null(pPerl) static void SWIG_Perl_croak_null(CPerlObj *pPerl) # else static void SWIG_croak_null() # endif { SV *err=ERRSV; # if (PERL_VERSION < 6) croak("%_", err); # else if (SvOK(err) && !SvROK(err)) croak("%_", err); croak(Nullch); # endif } #else # define SWIG_croak_null() croak(Nullch) #endif #include <stdlib.h> SWIGRUNTIME const char * SWIG_Perl_TypeProxyName(const swig_type_info *type) { if (!type) return NULL; if (type->clientdata != NULL) { return (const char*) type->clientdata; } else { return type->name; } } SWIGRUNTIME swig_cast_info * SWIG_TypeProxyCheck(const char *c, swig_type_info *ty) { SWIG_TypeCheck_Template(( (!iter->type->clientdata && (strcmp((char*)iter->type->name, c) == 0)) || (iter->type->clientdata && (strcmp((char*)iter->type->clientdata, c) == 0))), ty); } /* Function for getting a pointer value */ SWIGRUNTIME int SWIG_Perl_ConvertPtr(SWIG_MAYBE_PERL_OBJECT SV *sv, void **ptr, swig_type_info *_t, int flags) { swig_cast_info *tc; void *voidptr = (void *)0; SV *tsv = 0; /* If magical, apply more magic */ if (SvGMAGICAL(sv)) mg_get(sv); /* Check to see if this is an object */ if (sv_isobject(sv)) { IV tmp = 0; tsv = (SV*) SvRV(sv); if ((SvTYPE(tsv) == SVt_PVHV)) { MAGIC *mg; if (SvMAGICAL(tsv)) { mg = mg_find(tsv,'P'); if (mg) { sv = mg->mg_obj; if (sv_isobject(sv)) { tsv = (SV*)SvRV(sv); tmp = SvIV(tsv); } } } else { return SWIG_ERROR; } } else { tmp = SvIV(tsv); } voidptr = INT2PTR(void *,tmp); } else if (! SvOK(sv)) { /* Check for undef */ *(ptr) = (void *) 0; return SWIG_OK; } else if (SvTYPE(sv) == SVt_RV) { /* Check for NULL pointer */ if (!SvROK(sv)) { *(ptr) = (void *) 0; return SWIG_OK; } else { return SWIG_ERROR; } } else { /* Don't know what it is */ return SWIG_ERROR; } if (_t) { /* Now see if the types match */ char *_c = HvNAME(SvSTASH(SvRV(sv))); tc = SWIG_TypeProxyCheck(_c,_t); if (!tc) { return SWIG_ERROR; } *ptr = SWIG_TypeCast(tc,voidptr); } else { *ptr = voidptr; } /* * DISOWN implementation: we need a perl guru to check this one. */ if (tsv && (flags & SWIG_POINTER_DISOWN)) { /* * almost copy paste code from below SWIG_POINTER_OWN setting */ SV *obj = sv; HV *stash = SvSTASH(SvRV(obj)); GV *gv = *(GV**) hv_fetch(stash, "OWNER", 5, TRUE); if (isGV(gv)) { HV *hv = GvHVn(gv); /* * To set ownership (see below), a newSViv(1) entry is added. * Hence, to remove ownership, we delete the entry. */ if (hv_exists_ent(hv, obj, 0)) { hv_delete_ent(hv, obj, 0, 0); } } } return SWIG_OK; } SWIGRUNTIME void SWIG_Perl_MakePtr(SWIG_MAYBE_PERL_OBJECT SV *sv, void *ptr, swig_type_info *t, int flags) { if (ptr && (flags & SWIG_SHADOW)) { SV *self; SV *obj=newSV(0); HV *hash=newHV(); HV *stash; sv_setref_pv(obj, (char *) SWIG_Perl_TypeProxyName(t), ptr); stash=SvSTASH(SvRV(obj)); if (flags & SWIG_POINTER_OWN) { HV *hv; GV *gv=*(GV**)hv_fetch(stash, "OWNER", 5, TRUE); if (!isGV(gv)) gv_init(gv, stash, "OWNER", 5, FALSE); hv=GvHVn(gv); hv_store_ent(hv, obj, newSViv(1), 0); } sv_magic((SV *)hash, (SV *)obj, 'P', Nullch, 0); SvREFCNT_dec(obj); self=newRV_noinc((SV *)hash); sv_setsv(sv, self); SvREFCNT_dec((SV *)self); sv_bless(sv, stash); } else { sv_setref_pv(sv, (char *) SWIG_Perl_TypeProxyName(t), ptr); } } SWIGRUNTIMEINLINE SV * SWIG_Perl_NewPointerObj(SWIG_MAYBE_PERL_OBJECT void *ptr, swig_type_info *t, int flags) { SV *result = sv_newmortal(); SWIG_MakePtr(result, ptr, t, flags); return result; } SWIGRUNTIME void SWIG_Perl_MakePackedObj(SWIG_MAYBE_PERL_OBJECT SV *sv, void *ptr, int sz, swig_type_info *type) { char result[1024]; char *r = result; if ((2*sz + 1 + strlen(SWIG_Perl_TypeProxyName(type))) > 1000) return; *(r++) = '_'; r = SWIG_PackData(r,ptr,sz); strcpy(r,SWIG_Perl_TypeProxyName(type)); sv_setpv(sv, result); } SWIGRUNTIME SV * SWIG_Perl_NewPackedObj(SWIG_MAYBE_PERL_OBJECT void *ptr, int sz, swig_type_info *type) { SV *result = sv_newmortal(); SWIG_Perl_MakePackedObj(result, ptr, sz, type); return result; } /* Convert a packed value value */ SWIGRUNTIME int SWIG_Perl_ConvertPacked(SWIG_MAYBE_PERL_OBJECT SV *obj, void *ptr, int sz, swig_type_info *ty) { swig_cast_info *tc; const char *c = 0; if ((!obj) || (!SvOK(obj))) return SWIG_ERROR; c = SvPV(obj, PL_na); /* Pointer values must start with leading underscore */ if (*c != '_') return SWIG_ERROR; c++; c = SWIG_UnpackData(c,ptr,sz); if (ty) { tc = SWIG_TypeCheck(c,ty); if (!tc) return SWIG_ERROR; } return SWIG_OK; } /* Macros for low-level exception handling */ #define SWIG_croak(x) { SWIG_Error(SWIG_RuntimeError, x); SWIG_fail; } typedef XS(SwigPerlWrapper); typedef SwigPerlWrapper *SwigPerlWrapperPtr; /* Structure for command table */ typedef struct { const char *name; SwigPerlWrapperPtr wrapper; } swig_command_info; /* Information for constant table */ #define SWIG_INT 1 #define SWIG_FLOAT 2 #define SWIG_STRING 3 #define SWIG_POINTER 4 #define SWIG_BINARY 5 /* Constant information structure */ typedef struct swig_constant_info { int type; const char *name; long lvalue; double dvalue; void *pvalue; swig_type_info **ptype; } swig_constant_info; /* Structure for variable table */ typedef struct { const char *name; SwigMagicFunc set; SwigMagicFunc get; swig_type_info **type; } swig_variable_info; /* Magic variable code */ #ifndef PERL_OBJECT #define swig_create_magic(s,a,b,c) _swig_create_magic(s,a,b,c) #ifndef MULTIPLICITY SWIGRUNTIME void _swig_create_magic(SV *sv, char *name, int (*set)(SV *, MAGIC *), int (*get)(SV *,MAGIC *)) #else SWIGRUNTIME void _swig_create_magic(SV *sv, char *name, int (*set)(struct interpreter*, SV *, MAGIC *), int (*get)(struct interpreter*, SV *,MAGIC *)) #endif #else # define swig_create_magic(s,a,b,c) _swig_create_magic(pPerl,s,a,b,c) SWIGRUNTIME void _swig_create_magic(CPerlObj *pPerl, SV *sv, const char *name, int (CPerlObj::*set)(SV *, MAGIC *), int (CPerlObj::*get)(SV *, MAGIC *)) #endif { MAGIC *mg; sv_magic(sv,sv,'U',(char *) name,strlen(name)); mg = mg_find(sv,'U'); mg->mg_virtual = (MGVTBL *) malloc(sizeof(MGVTBL)); mg->mg_virtual->svt_get = (SwigMagicFuncHack) get; mg->mg_virtual->svt_set = (SwigMagicFuncHack) set; mg->mg_virtual->svt_len = 0; mg->mg_virtual->svt_clear = 0; mg->mg_virtual->svt_free = 0; } SWIGRUNTIME swig_module_info * SWIG_Perl_GetModule(void) { static void *type_pointer = (void *)0; SV *pointer; /* first check if pointer already created */ if (!type_pointer) { pointer = get_sv("swig_runtime_data::type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, FALSE); if (pointer && SvOK(pointer)) { type_pointer = INT2PTR(swig_type_info **, SvIV(pointer)); } } return (swig_module_info *) type_pointer; } SWIGRUNTIME void SWIG_Perl_SetModule(swig_module_info *module) { SV *pointer; /* create a new pointer */ pointer = get_sv("swig_runtime_data::type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, TRUE); sv_setiv(pointer, PTR2IV(module)); } #ifdef __cplusplus } #endif " id="246" addr="fda04b30" /> storage/storage/src/inst_resize_ui.ycp: // Quick hack for now: define global variables that are storage/storage/src/inst_resize_ui.ycp: // End quick hack sysconfig/src/parse_configs.pl: # hack for /etc/sysconfig/network/ifcfg-* files tune/idedma/src/hwinfo/SystemSettings.ycp: * I have to admit that this is very ugly but it is here tune/idedma/src/hwinfo/routines.ycp: // haha, hack! we need to translate the 'modules' entry into some more readable form... tune/idedma/src/hwinfo/system_settings_dialogs.ycp:// FIXME: temporary hack - disable serial console config tune/idedma/src/hwinfo/system_settings_dialogs.ycp:// FIXME: temporary hack - disable serial line configuration tune/idedma/src/hwinfo/system_settings_ui.ycp: * I have to admit that this is very ugly but it is here tune/hwinfo/src/SystemSettings.ycp: * I have to admit that this is very ugly but it is here tune/hwinfo/src/routines.ycp: // haha, hack! we need to translate the 'modules' entry into some more readable form... tune/hwinfo/src/system_settings_dialogs.ycp:// FIXME: temporary hack - disable serial console config tune/hwinfo/src/system_settings_dialogs.ycp:// FIXME: temporary hack - disable serial line configuration tune/hwinfo/src/system_settings_ui.ycp: * I have to admit that this is very ugly but it is here tv/src/Tv.ycp: // this is a hack for detected cards (see bug #24132) tv/src/ui.ycp: // hack for ncurses selection (first card is selected as a default): update/configure.in.in:## Nasty hack: xgettext doesn't work for XML files, so let's symlink it users/src/Users.pm:# this is hacked a bit; there probably could be a case when more groups have users/src/Users.pm: # hack: change of default group's gid vm/configure.in.in:## Nasty hack: xgettext doesn't work for XML files, so let's symlink it y2pmsh/src/instsrc.cc:/** this is a hack since y2pm does not allow updating sources. we remember the yast2/scripts/yast2:# quick hack: treat gtk like qt yast2/library/agents/ag_netd:# Testsuite hack: yast2/library/agents/ag_netd: # A special hack - write known services/protocols to fd3 yast2/library/network/src/SuSEFirewall.ycp: // "any" for all zones, this is ugly yast2/library/wizard/doc/Progress.html:<b>Q: Hey, it is ugly!</b><br> yast2/library/wizard/doc/Progress.html:<b>Q: This progress bar is ugly and has terrible API. I will use my yxmlconv/src/statements.rb:# after <do>, either <block> or a statement follow. Ugly. yxmlconv/src/statements.rb:# And even <do> is optional. More ugly. yxmlconv/src/statements.rb:# after <do>, either <block> or a statement follow. Ugly. yxmlconv/src/statements.rb:# after <do>, either <block> or a statement follow. Ugly.
participants (1)
-
Lukas Ocilka