Hey.<br><br>is a dependency checking time of 1.5 seconds for 189 packages fast? ^_^<br>and it can be ALOT faster aswell.<br><br>Page Parsed in: 1.5912721157074 seconds. (mostly php)<br>MySQL Parsed in: 0.0009613037109375 seconds. (MySQL only)
<br><br>php is doing the recursive functions and a in_array thing (in a few arrays with a few 100 entry`s)<br>so the php part can be improved for speed improvements, but the best thing would be to write this thing in c/c++.
<br>the mysql parsetime of all the dependency`s recursively in php is JUST 0.001 (rounded up) so the total time for all this stuff could very well be under one second.<br><br>I did the dependency check on KDEBASE, but the test isn`t really 100% fair.
<br>like i don`t have the currently installed packages striped out against the ones that my dependency checker says are needed for KDEBASE. but this is because i have very limited access to the rpm database with php. so if i would have done this based on my current system (with the installed packages) it would probably be a little higher parsetime for mysql because it would need to check every package if it`s already installed on my system and if it is it will also need to check the version and release numbers.. so a fair estimate of the parsetime in that case would probably be 
0.003 MAX (still extremely fast)<br><br>Now why did i open up this thread? and why in the fedora-devel-list?<br>well i think this stuff concerns fedora and it`s (my dep checker) in development so that`s why i posted it here.
<br>i`m actually making this with the idea of removing yum completely (also pup, pirut and puplet but those are still idea`s.. for that i need to learn alot more c/c++ (no i don`t want to write those gui apps in python or even in php)
<br><br>The reason i posted it here is because i`m hoping to attract the attention of a programmer who is willing to help me out in making this app a c/c++ app so that it really CAN be used in fedora. or if someone could enhance the php_rpm extension so that i can also check it against the currently installed rpm`s instead of only playing with rpm files. or a way of reading out the rpmdb. (i need to know the installed: Names, Version and Releases).
<br><br>And why did i make it?<br>quite simple. i simply don`t believe that installing a package really has to take SO MUCH time (with checking the dependency`s) so i started making my own dependency checker. this stuff is the result of a one day php work. 2 php classes and done. the total thing is probably about 22 kilobytes!! (with lots of useless stuff in it aswell). Originally i had the idea to make a online dependency checker so that rpm maintainers could upload there rpm file in the dependency checker which would check if there aren`t and conflicting things in the header to install it.. soon after that i realized that the original idea was fine but that so much more could be done with this.. so adding a few nore lines changed the way the scrpt was working to be a dependency checker only.
<br><br>My initial version did the kdebase dependency`s in about 30 seconds. that was on tables without any indexes, this one does it in 0.001 secounds and than the tables still aren`t 100% optimal. there are still alot of doubles in it and it isn`t splitted alphabetically (so all the A deps in a deps_a table and so on for: 0-9 a-z.
<br><br>and at this moment all the rpm files that come with fedora core 7 test 3 are indexed.<br><br>my way of checking dependency`s has a few advantages and disadvantages. (alot more advantages.. but i name just 3 of both)
<br><br>Advantages:<br>- Alot faster than any rpm installation tool<br>- Way smaller "repodata" files (under 1MB)<br>- Alot less waiting on the dependency`s<br><br>Disadvantages<br>- A new "createrepo" program will need to be written
<br>- Existing repository`s won`t work (perhaps will with a yet to make repo converter which converts the sqlite or xml data to the style + format i want)<br>- could devide the rpm based distributions (into distributions that use yum and distributions that use my program)
<br><br>but serious.. is this a world record? (i even think it`s faster than ubuntu and all other systems that are currently existing)<br><br>i hope to see some reply`s on this post.<br>Any suggestions or critics are welcome.
<br><br>here is the full output of my dependency checker:<br><br>Packages needed for: kdebase<br><br> cdparanoia-libs - required for: kdebase<br> glibc - required for: cdparanoia-libs<br> glibc-common - required for: glibc
<br> tzdata - required for: glibc-common<br>-- basesystem - required for: glibc<br>-- setup - required for: basesystem<br>---- filesystem - required for: basesystem<br>---- libgcc - required for: glibc<br>-- desktop-backgrounds-basic - required for: kdebase
<br>---- desktop-file-utils - required for: kdebase<br>---- glib2 - required for: desktop-file-utils<br>------ eject - required for: kdebase<br>-------- coreutils - required for: kdebase<br>-------- grep - required for: coreutils
<br>-------- pcre - required for: grep<br>-------- libstdc++ - required for: pcre<br>---------- pam - required for: coreutils<br>---------- audit-libs - required for: pam<br>------------ cracklib - required for: pam<br>-------------- cracklib-dicts - required for: pam
<br>---------------- libselinux - required for: pam<br>---------------- libsepol - required for: libselinux<br>------------------ mcstrans - required for: libselinux<br>------------------ libcap - required for: mcstrans<br>
------------------ mktemp - required for: pam<br>-------------------- sed - required for: pam<br>---------- htdig - required for: kdebase<br>---------- openssl - required for: htdig<br>---------- e2fsprogs-libs - required for: openssl
<br>---------- device-mapper-libs - required for: e2fsprogs-libs<br>------------ krb5-libs - required for: openssl<br>-------------- zlib - required for: openssl<br>------------ kdelibs - required for: kdebase<br>------------ arts - required for: kdelibs
<br>------------ libX11 - required for: arts<br>------------ libXau - required for: libX11<br>-------------- libXdmcp - required for: libX11<br>---------------- xorg-x11-filesystem - required for: libX11<br>-------------- alsa-lib - required for: arts
<br>---------------- audiofile - required for: arts<br>------------------ esound-libs - required for: arts<br>-------------------- libogg - required for: arts<br>---------------------- qt - required for: arts<br>---------------------- fontconfig - required for: qt
<br>---------------------- freetype - required for: fontconfig<br>------------------------ expat - required for: fontconfig<br>------------------------ libICE - required for: qt<br>-------------------------- libSM - required for: qt
<br>---------------------------- libXcursor - required for: qt<br>---------------------------- libXfixes - required for: libXcursor<br>------------------------------ libXrender - required for: libXcursor<br>------------------------------ libXext - required for: qt
<br>-------------------------------- libXft - required for: qt<br>---------------------------------- libXinerama - required for: qt<br>------------------------------------ libXrandr - required for: qt<br>-------------------------------------- libjpeg - required for: qt
<br>---------------------------------------- libmng - required for: qt<br>---------------------------------------- lcms - required for: libmng<br>---------------------------------------- libtiff - required for: lcms<br>------------------------------------------ libpng - required for: qt
<br>------------------------ libvorbis - required for: arts<br>-------------- cups-libs - required for: kdelibs<br>-------------- gnutls - required for: cups-libs<br>-------------- libgcrypt - required for: gnutls<br>-------------- libgpg-error - required for: libgcrypt
<br>---------------- hicolor-icon-theme - required for: kdelibs<br>------------------ xorg-x11-server-utils - required for: kdelibs<br>------------------ cpp - required for: xorg-x11-server-utils<br>-------------------- libXTrap - required for: xorg-x11-server-utils
<br>-------------------- libXt - required for: libXTrap<br>---------------------- libXaw - required for: xorg-x11-server-utils<br>---------------------- libXmu - required for: libXaw<br>------------------------ libXpm - required for: libXaw
<br>------------------------ libXfontcache - required for: xorg-x11-server-utils<br>-------------------------- libXi - required for: xorg-x11-server-utils<br>---------------------------- libXxf86misc - required for: xorg-x11-server-utils
<br>------------------------------ libXxf86vm - required for: xorg-x11-server-utils<br>-------------------- libacl - required for: kdelibs<br>-------------------- libattr - required for: libacl<br>---------------------- libart_lgpl - required for: kdelibs
<br>------------------------ aspell - required for: kdelibs<br>------------------------ aspell-en - required for: aspell<br>-------------------------- ncurses - required for: aspell<br>-------------------------- bzip2-libs - required for: kdelibs
<br>---------------------------- libidn - required for: kdelibs<br>------------------------------ kdnssd-avahi - required for: kdelibs<br>------------------------------ avahi - required for: kdnssd-avahi<br>------------------------------ chkconfig - required for: avahi
<br>-------------------------------- dbus - required for: avahi<br>-------------------------------- libxml2-python - required for: dbus<br>-------------------------------- libxml2 - required for: libxml2-python<br>---------------------------------- python - required for: libxml2-python
<br>---------------------------------- db4 - required for: python<br>------------------------------------ gdbm - required for: python<br>-------------------------------------- python-libs - required for: python<br>---------------------------------------- readline - required for: python
<br>------------------------------------------ sqlite - required for: python<br>---------------------------------- dbus-python - required for: avahi<br>---------------------------------- dbus-glib - required for: dbus-python
<br>------------------------------------ initscripts - required for: avahi<br>------------------------------------ SysVinit - required for: initscripts<br>-------------------------------------- bash - required for: initscripts
<br>---------------------------------------- udev - required for: initscripts<br>---------------------------------------- MAKEDEV - required for: udev<br>------------------------------------------ libvolume_id - required for: udev
<br>------------------------------------------ e2fsprogs - required for: initscripts<br>------------------------------------------ device-mapper - required for: e2fsprogs<br>-------------------------------------------- ethtool - required for: initscripts
<br>---------------------------------------------- mingetty - required for: initscripts<br>------------------------------------------------ module-init-tools - required for: initscripts<br>-------------------------------------------------- util-linux - required for: initscripts
<br>-------------------------------------------------- ConsoleKit-libs - required for: util-linux<br>---------------------------------------------------- popt - required for: util-linux<br>---------------------------------------------------- net-tools - required for: initscripts
<br>------------------------------------------------------ syslog-ng - required for: initscripts<br>------------------------------------------------------ eventlog - required for: syslog-ng<br>-------------------------------------------------------- tcp_wrappers-libs - required for: syslog-ng
<br>---------------------------------------------------------- logrotate - required for: syslog-ng<br>-------------------------------------------------------- sysklogd - required for: initscripts<br>-------------------------------------- libdaemon - required for: avahi
<br>-------------------------------- avahi-qt3 - required for: kdnssd-avahi<br>-------------------------------- libutempter - required for: kdelibs<br>-------------------------------- shadow-utils - required for: libutempter
<br>---------------------------------- libxslt - required for: kdelibs<br>------------------------------------ perl - required for: kdelibs<br>------------------------------------ mod_perl-devel - required for: perl<br>------------------------------------ httpd-devel - required for: mod_perl-devel
<br>------------------------------------ apr-devel - required for: httpd-devel<br>------------------------------------ apr - required for: apr-devel<br>-------------------------------------- pkgconfig - required for: apr-devel
<br>-------------------------------------- apr-util-devel - required for: httpd-devel<br>-------------------------------------- apr-util - required for: apr-util-devel<br>-------------------------------------- openldap - required for: apr-util
<br>-------------------------------------- cyrus-sasl-lib - required for: openldap<br>---------------------------------------- db4-devel - required for: apr-util-devel<br>------------------------------------------ expat-devel - required for: apr-util-devel
<br>-------------------------------------------- openldap-devel - required for: apr-util-devel<br>-------------------------------------------- cyrus-sasl-devel - required for: openldap-devel<br>---------------------------------------- httpd - required for: httpd-devel
<br>---------------------------------------- gawk - required for: httpd<br>-------------------------------------- mod_perl - required for: mod_perl-devel<br>-------------------------------------- perl-BSD-Resource - required for: mod_perl
<br>---------------------------------------- perl-devel - required for: mod_perl<br>-------------------------------------- redhat-artwork - required for: kdelibs<br>-------------------------------------- gtk2-engines - required for: redhat-artwork
<br>-------------------------------------- gtk2 - required for: gtk2-engines<br>-------------------------------------- atk - required for: gtk2<br>---------------------------------------- cairo - required for: gtk2<br>------------------------------------------ pango - required for: gtk2
<br>------------------------------------------ libthai - required for: pango<br>---------------------------------------- fedora-logos - required for: redhat-artwork<br>---------------------------------------- redhat-menus - required for: kdelibs
<br>-------------- Glide3-libGL - required for: kdebase<br>-------------- mesa-libGL - required for: Glide3-libGL<br>-------------- libdrm - required for: mesa-libGL<br>---------------- Glide3 - required for: Glide3-libGL
<br>---------------- policycoreutils - required for: Glide3<br>---------------- audit-libs-python - required for: policycoreutils<br>---------------- kernel-headers - required for: audit-libs-python<br>------------------ libselinux-python - required for: policycoreutils
<br>-------------------- libsemanage - required for: policycoreutils<br>---------------- mesa-libGLU - required for: kdebase<br>------------------ libXcomposite - required for: kdebase<br>-------------------- libXdamage - required for: kdebase
<br>---------------------- libXScrnSaver - required for: kdebase<br>------------------------ libXtst - required for: kdebase<br>-------------------------- libfontenc - required for: kdebase<br>---------------------------- hal - required for: kdebase
<br>---------------------------- ConsoleKit - required for: hal<br>------------------------------ acl - required for: hal<br>-------------------------------- cryptsetup-luks - required for: hal<br>---------------------------------- dmidecode - required for: hal
<br>------------------------------------ libusb - required for: hal<br>-------------------------------------- pm-utils - required for: hal<br>-------------------------------------- kbd - required for: pm-utils<br>-------------------------------------- usermode - required for: kbd
<br>-------------------------------------- libuser - required for: usermode<br>---------------------------------------- passwd - required for: usermode<br>---------------------------------------- pciutils - required for: pm-utils
<br>---------------------------------------- hwdata - required for: pciutils<br>------------------------------ libraw1394 - required for: kdebase<br>-------------------------------- lm_sensors - required for: kdebase<br>-------------------------------- libsysfs - required for: lm_sensors
<br>---------------------------------- libsmbclient - required for: kdebase<br>------------------------------------ libxkbfile - required for: kdebase<br>-------------------------------------- psmisc - required for: kdebase
<br><br>Total RPMS to install: 186<br><br>Dependency Conflicts: 0<br><br><br><br>Page Parsed in: 1.5912721157074 seconds.<br><br>MySQL Parsed in: 0.0009613037109375 seconds.<br>