KubuntuFileSearch

Download and Install

md5sums of all files:

http://home.casema.nl/vollebregt/soc/deb/md5sums.txt

Debian binary package:

http://home.casema.nl/vollebregt/soc/deb/kio-locate_0.4.2tvo0.2_i386.deb
http://home.casema.nl/vollebregt/soc/deb/kio-locate_0.4.2tvo0.2_i386.changes
http://home.casema.nl/vollebregt/soc/deb/kio-locate_0.4.2tvo0.1_i386.deb
http://home.casema.nl/vollebregt/soc/deb/kio-locate_0.4.2tvo0.1_i386.changes

Debian source package:

http://home.casema.nl/vollebregt/soc/deb/kio-locate_0.4.2tvo0.2.diff.gz
http://home.casema.nl/vollebregt/soc/deb/kio-locate_0.4.2tvo0.2.orig.tar.gz
http://home.casema.nl/vollebregt/soc/deb/kio-locate_0.4.2tvo0.2.dsc
http://home.casema.nl/vollebregt/soc/deb/kio-locate_0.4.2tvo0.1.diff.gz
http://home.casema.nl/vollebregt/soc/deb/kio-locate_0.4.2tvo0.1.orig.tar.gz
http://home.casema.nl/vollebregt/soc/deb/kio-locate_0.4.2tvo0.1.dsc

Source tarball:

http://home.casema.nl/vollebregt/soc/deb/kio-locate-0.4.2tvo0.2.tar.bz2
http://home.casema.nl/vollebregt/soc/deb/kio-locate-0.4.2tvo0.1.tar.bz2

Arch/bazaar source package:

Current version:  kio-locate--tvo--0.2--patch-12 

kio-locate is now on the supermirror. To check it out use:

$ cd workingdirectory
$ ARCHIVE=http://mirrors.sourcecontrol.net/tobivollebregt@gmail.com--2005-kio-locate/kio-locate--tvo--0.2
$ baz get $ARCHIVE kio-locate

This creates a directory kio-locate inside workingdirectory. This directory contains the entire source. The archive is automagically registered. To install, do (presuming you're still in workingdirectory):

$ cd kio-locate
$ scons configure
$ scons
$ sudo scons install

Instead of  scons configure  you might want to use  scons configure debug=1  to enable debugging.

Use  scons -c install  to uninstall.

Type  locater:config  in konqueror for configuration. It might appear as if the first configuration dialog tab doesn't fit into the window. I've been told this is a bug in KDE 3.4.0 and has been fixed in later versions.

Notes to packagers (in particular: self)

Note: This package uses scons and bksys for building.

First I made sure all debian/* files were OK. I made debian/rules always use mini-scons, and as such added a python (>= 2.4) build-depend in debian/control. The 2.4 is arbitrary. It might also work with 2.3 or even 2.2 but I didn't feel like testing that. I didn't add python (<< 2.5) as with scons. I was told this is needed with depends because the python script in a package is compiled into bytecode. In my case, however, the python script is just used for building, so I reasoned the << 2.5 requirement was useles and I removed it.

WARNING: never just copy-paste a script and execute it!! Certainly not my scripts Smile :-)

I used this script as root to regenerate the package, after making sure all files in debian/ were OK. It assumes you have scons installed.

ARCHIVE=kio-locate--tvo--0.2
FOLDER=kio-locate-0.4.2tvo0.2
DEB=kio-locate_0.4.2tvo0.2_i386.deb
DSC=kio-locate_0.4.2tvo0.2.dsc
DIFF=kio-locate_0.4.2tvo0.2.diff
TARBALL_HYPHEN=kio-locate-0.4.2tvo0.2
TARBALL_UNDERSCORE=kio-locate_0.4.2tvo0.2
# Retrieve source from versioning system
baz get $ARCHIVE $FOLDER
## GNU Arch cleanup
find $FOLDER -name "{arch}" | xargs rm -rf
find $FOLDER -name ".arch-i*" | xargs rm -rf
cd $FOLDER
# Make the orig.
scons dist
bunzip2 $TARBALL_HYPHEN.tar.bz2
gzip $TARBALL_HYPHEN.tar
mv $TARBALL_HYPHEN.tar.gz ../$TARBALL_UNDERSCORE.orig.tar.gz
scons distclean
# Build the source package. -S to only make a source package.
dpkg-buildpackage -S -rfakeroot
cd ..

$ lintian *.dsc

Then:

sudo pbuilder build *.dsc

Note: I set up pbuilder for breezy using PbuilderHowto.

Then in /var/cache/pbuilder/result:

$ lintian *.deb
$ lintian *.dsc
$ linda *.deb

I installed and purged the package a few times comparing directory hierarchy before and after:

$ ls -R /usr/ > before
$ sudo dpkg -i *.deb
$ ls -R /usr/ > mid
$ sudo dpkg --purge kio-locate
$ ls -R /usr/ > after
$ diff -u before after

No changes in between before and after, so everything's fine.

Then I uploaded it, downloaded it, generated md5sums before up and after download and compared them. They were equal so everything's fine.

Two other checks, run in project directory ($FOLDER in script):

sudo fakeroot debian/rules clean

and examine project directory. If there are any files left from the build process you should modify the clean rule debian/rules to delete them.

debuild -S

shouldn't depend on -dev packages

Issues

Hidden files

Konqueror only hides files starting with a dot, and not files like "/home/ubuntu/.local/trash/foo". Question is, should we hide hits containing "/." in kio_locate, or modify konqueror to do this (or file a bug). The first option is easiest to implement, but the second is more intuitive (only one location to change display of hidden files).

Created a new patch and sent it to kde-devel: http://home.casema.nl/vollebregt/soc/uds_hidden.diff Committed by dfaure, revision number: 444176

Status: RESOLVED

Done

http://home.casema.nl/vollebregt/soc/changelog-kio-locate--tvo--0.1.html
http://home.casema.nl/vollebregt/soc/changelog-kio-locate--tvo--0.2.html

Todo

Short term

(no particular order)

  • (kde-apps.org) I downloaded the sources and, after spotting a "debian" subdirectory, proceeded to do dpkg-buildpackage. I run Debian/Unstable. I thought this was more of a (K)Ubuntu package, but I gave it a go anyway...
    It complains about a dependency with python2.4; however, python 2.4.1 is there. You might want to fix that for regular, not-Ubuntu debian users. Ignoring the dependency with -d works fine, and it looks like the DEB package was installed fine. Great tool, extremely useful Smile :)
    Needs investigation

  • (kde-apps.org) As suggested I used locate as my default search engine but if multiple entries are searched for nothing is returned as the actual search goes from "kat home" to "locate:kat+home". I can't confirm this. On Kubuntu it works fine. It goes from "kat home" to "locater:search?q=kat+home" which is perfectly right.

  • Maybe add config item to disable config either entirely, or disable just locate tab or just white/blacklist tab (for sysadmins). Combined with filters tab they can then blacklist system folders for example. Or whitelist home folders.
  • Integrate locate:/ with Konqueror's search bar (is already included in kio-locate_0.4.2 by Armin Straub isn't it?). Also includes figuring out how to set default search plugin per profile.
  • Look at Kat(done) and Kat source
  • Look at Tenor and Tenor source
  • Look at Katapult(done) and Katapult source
  • Look at Kfind(done) and Kfind source
  • Look at kio-clucene and kio-clucene source (talk to trollichon)
  • Look at beagle and beagle source (requested)
  • Look at indexlib (the 2 links in my bookmarks Wink ;-) )

Additionally, these two extra items are found when grepping through the kio-locate_0.4.2 source tree. Both are to do status, but pretty low priority in my opinion.

kio_locate.cpp:        /// \todo Is UDS_NAME used for anything in stat? If so we should
kio_locate.cpp-        /// at least strip of the protocol part.
kio_locate.cpp-        UDSEntry entry;
kio_locate.cpp-        addAtom(entry, KIO::UDS_NAME, url.decode_string(url.url()));

kio_locate.cpp:        /// \todo Somehow locate: and locate:/ is thought to be a directory
kio_locate.cpp-        /// by konqueror anyway. How to change this?
kio_locate.cpp-    } else {
kio_locate.cpp-        // What's this?

Long term

(no particular order)

  • Patch KDE to use default search engine in open dialog if path doesn't start with ~ or / (it now reverts to home directory)
  • (August) Finally decide which of above projects (Kat, Tenor, Katapult, Kfind, kio-clucene, inotify locate) to help, take over or start.
  • (August) Add project to KDE extragear, http://extragear.kde.org, suggested by Armin Straub.

Other ideas:

  • (August, first week?) update locate database with inotify, or FAM API (through gamin). FAM isn't possible, it can only monitor directories non-recursively.
  • Integrate locate:/ with katapult
  • Make kfind or Kat better

Links

http://lists.kde.org/?l=kde-devel&m=111328905108759&w=2
http://extragear.kde.org
http://arminstraub.de/browse.php?page=programs_kiolocate&lang=en
http://udu.wiki.ubuntu.com/KubuntuFileSearch

Developer

TobiVollebregt

UDU Notes

Status

Introduction

Make an easy way to search the system for files in Kubuntu.

Rationale

locate is a great command line tool, however it should have a graphical version available.

Scope and Use Cases

A user wants to find a file called foo.xmi, he types in foo.xmi into Konqueror's search bar and it finds the file.

Implementation Plan

kio-locate is an ioslave (virtual filesystem) which is a graphical front end to the locate command line tool. A URL such as locate:/foo.xmi will show all the files on the system matching that search in the same way as any other folder is shown. It should be included in Kubuntu. The Konqueror search plugin should be modified to be able to search for files using kio-locate and Konqueror's about screen should be able to search using kio-locate.

In the longer term, KDE will use Tenor (formerly klink) an API to create links between any element of the desktop. It will allow for search to be fully integrated with all elements of KDE including file manager and file save/open dialogues and Beagle like tools based on the links created with Tenor.

Data Preservation and Migration

Packages Affected

  • Konqueror
  • kio-locate

  • konq-plugins

User Interface Requirements

Alter about:konqueror to include a search bar.

KubuntuFileSearch (last edited 2008-08-06 16:20:54 by localhost)