summaryrefslogtreecommitdiff
path: root/sysutils/filelight
diff options
context:
space:
mode:
authorKirill Ponomarev <krion@FreeBSD.org>2003-08-29 23:43:48 +0000
committerKirill Ponomarev <krion@FreeBSD.org>2003-08-29 23:43:48 +0000
commitabcbc8b2329ca2eb72a436ef84deadfd3d0a9b07 (patch)
tree23f59abb41125a8aab302f09ecd5bd4c3806c7bc /sysutils/filelight
parent- Fix build on -current (varargs -> stdargs in embedded tcl) (diff)
- New port: sysutils/filelight
Filelight graphically represents a file system as a set of concentric segmented-rings, indicating where diskspace is being used. Segments expanding from the center represent files (including directories), with each segment's size being proportional to the file's size and directories having child segments. PR: 56152 Submitted by: Markus Brueffer <brueffer@phoenix-systems.de>
Notes
Notes: svn path=/head/; revision=88014
Diffstat (limited to 'sysutils/filelight')
-rw-r--r--sysutils/filelight/Makefile28
-rw-r--r--sysutils/filelight/distinfo1
-rw-r--r--sysutils/filelight/files/mntent.h67
-rw-r--r--sysutils/filelight/files/mntent_compat.cpp154
-rw-r--r--sysutils/filelight/files/patch-filelight::Makefile.in168
-rw-r--r--sysutils/filelight/files/patch-filetree.cpp51
-rw-r--r--sysutils/filelight/pkg-descr9
-rw-r--r--sysutils/filelight/pkg-plist21
8 files changed, 499 insertions, 0 deletions
diff --git a/sysutils/filelight/Makefile b/sysutils/filelight/Makefile
new file mode 100644
index 000000000000..668c54f17bdf
--- /dev/null
+++ b/sysutils/filelight/Makefile
@@ -0,0 +1,28 @@
+# New ports collection makefile for: filelight
+# Date created: Fri Aug 29 21:16:39 CEST 2003
+# Whom: Markus Brueffer <brueffer@phoenix-systems.de>
+#
+# $FreeBSD$
+#
+
+PORTNAME= filelight
+PORTVERSION= 0.6.0
+CATEGORIES= sysutils kde
+MASTER_SITES= http://www.methylblue.com/filelight/
+
+MAINTAINER= brueffer@phoenix-systems.de
+COMMENT= Represent a file system as a set of concentric segmented-rings
+
+USE_KDELIBS_VER=3
+GNU_CONFIGURE= yes
+USE_GMAKE= yes
+USE_REINPLACE= yes
+
+CONFIGURE_TARGET= --build=${ARCH}-portbld-freebsd${OSREL}
+
+post-patch:
+ @${CP} ${FILESDIR}/mntent* ${WRKSRC}/filelight
+ @${REINPLACE_CMD} -e 's/-O2//g; s/-pedantic //g' \
+ ${CONFIGURE_WRKSRC}/configure
+
+.include <bsd.port.mk>
diff --git a/sysutils/filelight/distinfo b/sysutils/filelight/distinfo
new file mode 100644
index 000000000000..8a782fb01209
--- /dev/null
+++ b/sysutils/filelight/distinfo
@@ -0,0 +1 @@
+MD5 (filelight-0.6.0.tar.gz) = 9d3a35ce1125aac971ba61fd5cc7bcd8
diff --git a/sysutils/filelight/files/mntent.h b/sysutils/filelight/files/mntent.h
new file mode 100644
index 000000000000..24a574c8a579
--- /dev/null
+++ b/sysutils/filelight/files/mntent.h
@@ -0,0 +1,67 @@
+/* -*-C++-*-
+
+ mntent.h
+
+ Copyright (C) 2002 Alan Eldridge
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ 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, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ $Id$
+
+ 2002/09/08 alane@geeksrus.net
+*/
+
+#ifdef HAVE_MNTENT_H
+#include <mntent.h>
+#else
+
+#ifndef mntent_h_
+#define mntent_h_
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/param.h>
+#include <sys/ucred.h>
+#include <sys/mount.h>
+
+#define MOUNTED "dummy"
+#define MNTTYPE_NFS "nfs"
+
+const int MOPTSLEN (256 - (MNAMELEN * 2 + MFSNAMELEN + 2 * sizeof(int)));
+
+struct mntent {
+public:
+ char mnt_fsname[ MNAMELEN ];
+ char mnt_dir[ MNAMELEN ];
+ char mnt_type[ MFSNAMELEN ];
+ char mnt_opts[ MOPTSLEN ];
+ int mnt_freq, mnt_passno;
+private:
+ void clear();
+public:
+ mntent() {
+ clear();
+ }
+ struct mntent *from_statfs(struct statfs *pst);
+};
+
+FILE *setmntent(const char *szfn, char *szrw);
+struct mntent *getmntent(FILE *pf);
+char *hasmntopt(const struct mntent *pmnt, const char *szopt);
+int endmntent(FILE *pf);
+
+#endif /* mntent_h_ */
+#endif /* not HAVE_MNTENT_H */
diff --git a/sysutils/filelight/files/mntent_compat.cpp b/sysutils/filelight/files/mntent_compat.cpp
new file mode 100644
index 000000000000..ae8768030d54
--- /dev/null
+++ b/sysutils/filelight/files/mntent_compat.cpp
@@ -0,0 +1,154 @@
+/* -*-C++-*-
+
+ mntentemu.c++
+
+ Copyright (C) 2002 Alan Eldridge
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ 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, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ $Id: mntent_compat.cc,v 1.3 2002/09/08 18:42:20 alane Exp $
+
+ 2002/09/08 alane@geeksrus.net
+*/
+
+#ifndef HAVE_MNTENT_H
+
+#include "config.h"
+#include "mntent.h"
+
+#include <string>
+
+// globals (yuck, but easier for debugging)
+
+mntent G_mntent;
+int G_mntpos;
+int G_mntsize;
+bool G_mntfOpen = false;
+struct statfs *G_pmntstat = 0;
+
+// map option flags to names
+
+struct optmap {
+ int fl;
+ std::string st;
+};
+
+static struct optmap omap[] = {
+ { MNT_SYNCHRONOUS, "sync" },
+ { MNT_NOEXEC, "noexec" },
+ { MNT_NOSUID, "nosuid" },
+ { MNT_NODEV, "nodev" },
+ { MNT_UNION, "union" },
+ { MNT_ASYNC, "async" },
+ { MNT_NOATIME, "noatime" },
+ { MNT_NOCLUSTERR, "noclusterr" },
+ { MNT_NOCLUSTERW, "noclusterw" },
+ { MNT_NOSYMFOLLOW, "nosymfollow" },
+ { MNT_SUIDDIR, "suiddir" },
+ { 0, "noop" }
+};
+
+// zap everything for clarity
+
+void
+mntent::clear()
+{
+ memset(mnt_fsname, 0, sizeof(mnt_fsname));
+ memset(mnt_dir, 0, sizeof(mnt_dir));
+ memset(mnt_type, 0, sizeof(mnt_type));
+ memset(mnt_opts, 0, sizeof(mnt_opts));
+ mnt_freq = mnt_passno = 0;
+}
+
+// fake it from a statfs struct
+
+mntent *
+mntent::from_statfs(struct statfs *pst)
+{
+
+ clear();
+ strcpy(mnt_fsname, pst->f_mntfromname);
+ strcpy(mnt_dir, pst->f_mntonname);
+ strcpy(mnt_type, pst->f_fstypename);
+ mnt_freq = mnt_passno = 0;
+
+ std::string opts;
+ int fl = pst->f_flags;
+
+ opts += (fl & MNT_RDONLY) ? "ro" : "rw";
+ for (optmap *pmp = omap; pmp->fl != 0; pmp++) {
+ if ((fl & pmp->fl) != 0) {
+ opts += (" " + pmp->st);
+ }
+ }
+ strcpy(mnt_opts, opts.c_str());
+
+ return this;
+}
+
+// "rewind" the mtab file
+
+FILE *
+setmntent(const char *, char *)
+{
+ if (!G_mntfOpen) {
+ G_mntfOpen = true;
+ }
+
+ G_mntpos = 0;
+ G_mntsize = getmntinfo(&G_pmntstat, MNT_NOWAIT);
+
+ return reinterpret_cast<FILE *>(1);
+}
+
+// return ptr to opt string if present
+
+char *
+hasmntopt(const mntent *pmnt, const char *szopt)
+{
+ std::string opt(szopt);
+ std::string mntopts(pmnt->mnt_opts);
+
+ std::string::size_type pos = mntopts.find(opt);
+ const char *szret = (pos == std::string::npos) ? "" : pmnt->mnt_opts + pos;
+
+ return const_cast<char *>(szret);
+}
+
+// get next mntent until all gone, then return 0
+
+struct mntent *
+getmntent(FILE *)
+{
+ if (!G_mntfOpen) {
+ return 0;
+ } else if (G_mntpos < G_mntsize) {
+ return G_mntent.from_statfs(G_pmntstat + G_mntpos++);
+ } else {
+ G_mntfOpen = false;
+ return 0;
+ }
+}
+
+// "close" the mtab file
+
+int
+endmntent(FILE *)
+{
+ G_mntfOpen = false;
+ return 0;
+}
+
+#endif /* ifndef HAVE_MNTENT_H */
diff --git a/sysutils/filelight/files/patch-filelight::Makefile.in b/sysutils/filelight/files/patch-filelight::Makefile.in
new file mode 100644
index 000000000000..306f6c882c50
--- /dev/null
+++ b/sysutils/filelight/files/patch-filelight::Makefile.in
@@ -0,0 +1,168 @@
+--- filelight/Makefile.in.orig Fri Aug 29 17:42:18 2003
++++ filelight/Makefile.in Fri Aug 29 20:42:07 2003
+@@ -239,12 +239,12 @@
+ ####### kdevelop will overwrite this part!!! (begin)##########
+ bin_PROGRAMS = filelight
+
+-#>- filelight_SOURCES = settingsdlg.cpp settingsdialog.ui filemap.cpp segmenttip.cpp scanbox.cpp filetree.cpp filelightcanvas.cpp filelight.cpp main.cpp
++#>- filelight_SOURCES = settingsdlg.cpp settingsdialog.ui filemap.cpp segmenttip.cpp scanbox.cpp filetree.cpp filelightcanvas.cpp filelight.cpp main.cpp mntent_compat.cpp
+ #>+ 1
+-filelight_SOURCES=settingsdlg.cpp filemap.cpp segmenttip.cpp scanbox.cpp filetree.cpp filelightcanvas.cpp filelight.cpp main.cpp settingsdialog.cpp
++filelight_SOURCES=settingsdlg.cpp filemap.cpp segmenttip.cpp scanbox.cpp filetree.cpp filelightcanvas.cpp filelight.cpp main.cpp mntent_compat.cpp settingsdialog.cpp
+ filelight_LDADD = $(LIB_KFILE) $(LIB_KDEUI) $(LIB_KDECORE) $(LIB_QT) $(LIBSOCKET)
+
+-EXTRA_DIST = main.cpp filelight.cpp filelight.h filelightcanvas.h filelightcanvas.cpp filetree.h filetree.cpp TODO CHANGELOG scanbox.h scanbox.cpp segmenttip.cpp segmenttip.h filemap.cpp filemap.h settingsdialog.ui settingsdlg.cpp settingsdlg.h
++EXTRA_DIST = main.cpp filelight.cpp filelight.h filelightcanvas.h filelightcanvas.cpp filetree.h filetree.cpp TODO CHANGELOG scanbox.h scanbox.cpp segmenttip.cpp segmenttip.h filemap.cpp filemap.h settingsdialog.ui settingsdlg.cpp settingsdlg.h mntent_compat.cpp mntent.h
+
+ ####### kdevelop will overwrite this part!!! (end)############
+ # These paths are KDE specific. Use them:
+@@ -291,14 +291,16 @@
+
+ am_filelight_OBJECTS = settingsdlg.$(OBJEXT) filemap.$(OBJEXT) \
+ segmenttip.$(OBJEXT) scanbox.$(OBJEXT) filetree.$(OBJEXT) \
+- filelightcanvas.$(OBJEXT) filelight.$(OBJEXT) main.$(OBJEXT)
++ filelightcanvas.$(OBJEXT) filelight.$(OBJEXT) main.$(OBJEXT) \
++ mntent_compat.$(OBJEXT)
+ #>- filelight_OBJECTS = $(am_filelight_OBJECTS)
+-#>+ 7
++#>+ 8
+ filelight_final_OBJECTS = filelight.all_cpp.o
+ filelight_nofinal_OBJECTS = settingsdlg.$(OBJEXT) filemap.$(OBJEXT) \
+ segmenttip.$(OBJEXT) scanbox.$(OBJEXT) filetree.$(OBJEXT) \
+- filelightcanvas.$(OBJEXT) filelight.$(OBJEXT) main.$(OBJEXT) settingsdialog.$(OBJEXT)\
+-filelightcanvas.moc.o scanbox.moc.o segmenttip.moc.o filelight.moc.o settingsdlg.moc.o
++ filelightcanvas.$(OBJEXT) filelight.$(OBJEXT) main.$(OBJEXT) \
++ mntent_compat.$(OBJEXT) settingsdialog.$(OBJEXT)\
++filelightcanvas.moc.o settingsdlg.moc.o segmenttip.moc.o filelight.moc.o scanbox.moc.o
+ @KDE_USE_FINAL_FALSE@filelight_OBJECTS = $(filelight_nofinal_OBJECTS)
+ @KDE_USE_FINAL_TRUE@filelight_OBJECTS = $(filelight_final_OBJECTS)
+ filelight_DEPENDENCIES =
+@@ -309,21 +311,21 @@
+ #>- @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/filelight.Po \
+ #>- @AMDEP_TRUE@ ./$(DEPDIR)/filelightcanvas.Po \
+ #>- @AMDEP_TRUE@ ./$(DEPDIR)/filemap.Po ./$(DEPDIR)/filetree.Po \
+-#>- @AMDEP_TRUE@ ./$(DEPDIR)/main.Po ./$(DEPDIR)/scanbox.Po \
+-#>- @AMDEP_TRUE@ ./$(DEPDIR)/segmenttip.Po \
++#>- @AMDEP_TRUE@ ./$(DEPDIR)/main.Po ./$(DEPDIR)/mntent_compat.Po \
++#>- @AMDEP_TRUE@ ./$(DEPDIR)/scanbox.Po ./$(DEPDIR)/segmenttip.Po \
+ #>- @AMDEP_TRUE@ ./$(DEPDIR)/settingsdlg.Po
+ #>+ 13
+-@AMDEP_TRUE@@KDE_USE_FINAL_TRUE@DEP_FILES = $(DEPDIR)/settingsdialog.P $(DEPDIR)/filelightcanvas.moc.P $(DEPDIR)/scanbox.moc.P $(DEPDIR)/segmenttip.moc.P $(DEPDIR)/filelight.moc.P $(DEPDIR)/settingsdlg.moc.P $(DEPDIR)/filelight.all_cpp.P ./$(DEPDIR)/filelight.Po \
++@AMDEP_TRUE@@KDE_USE_FINAL_TRUE@DEP_FILES = $(DEPDIR)/settingsdialog.P $(DEPDIR)/filelightcanvas.moc.P $(DEPDIR)/settingsdlg.moc.P $(DEPDIR)/segmenttip.moc.P $(DEPDIR)/filelight.moc.P $(DEPDIR)/scanbox.moc.P $(DEPDIR)/filelight.all_cpp.P ./$(DEPDIR)/filelight.Po \
+ @AMDEP_TRUE@@KDE_USE_FINAL_TRUE@ @AMDEP_TRUE@ ./$(DEPDIR)/filelightcanvas.Po \
+ @AMDEP_TRUE@@KDE_USE_FINAL_TRUE@ @AMDEP_TRUE@ ./$(DEPDIR)/filemap.Po ./$(DEPDIR)/filetree.Po \
+-@AMDEP_TRUE@@KDE_USE_FINAL_TRUE@ @AMDEP_TRUE@ ./$(DEPDIR)/main.Po ./$(DEPDIR)/scanbox.Po \
+-@AMDEP_TRUE@@KDE_USE_FINAL_TRUE@ @AMDEP_TRUE@ ./$(DEPDIR)/segmenttip.Po \
++@AMDEP_TRUE@@KDE_USE_FINAL_TRUE@ @AMDEP_TRUE@ ./$(DEPDIR)/main.Po ./$(DEPDIR)/mntent_compat.Po \
++@AMDEP_TRUE@@KDE_USE_FINAL_TRUE@ @AMDEP_TRUE@ ./$(DEPDIR)/scanbox.Po ./$(DEPDIR)/segmenttip.Po \
+ @AMDEP_TRUE@@KDE_USE_FINAL_TRUE@ @AMDEP_TRUE@ ./$(DEPDIR)/settingsdlg.Po
+-@AMDEP_TRUE@@KDE_USE_FINAL_FALSE@DEP_FILES = $(DEPDIR)/settingsdialog.P $(DEPDIR)/filelightcanvas.moc.P $(DEPDIR)/scanbox.moc.P $(DEPDIR)/segmenttip.moc.P $(DEPDIR)/filelight.moc.P $(DEPDIR)/settingsdlg.moc.P ./$(DEPDIR)/filelight.Po \
++@AMDEP_TRUE@@KDE_USE_FINAL_FALSE@DEP_FILES = $(DEPDIR)/settingsdialog.P $(DEPDIR)/filelightcanvas.moc.P $(DEPDIR)/settingsdlg.moc.P $(DEPDIR)/segmenttip.moc.P $(DEPDIR)/filelight.moc.P $(DEPDIR)/scanbox.moc.P ./$(DEPDIR)/filelight.Po \
+ @AMDEP_TRUE@@KDE_USE_FINAL_FALSE@ @AMDEP_TRUE@ ./$(DEPDIR)/filelightcanvas.Po \
+ @AMDEP_TRUE@@KDE_USE_FINAL_FALSE@ @AMDEP_TRUE@ ./$(DEPDIR)/filemap.Po ./$(DEPDIR)/filetree.Po \
+-@AMDEP_TRUE@@KDE_USE_FINAL_FALSE@ @AMDEP_TRUE@ ./$(DEPDIR)/main.Po ./$(DEPDIR)/scanbox.Po \
+-@AMDEP_TRUE@@KDE_USE_FINAL_FALSE@ @AMDEP_TRUE@ ./$(DEPDIR)/segmenttip.Po \
++@AMDEP_TRUE@@KDE_USE_FINAL_FALSE@ @AMDEP_TRUE@ ./$(DEPDIR)/main.Po ./$(DEPDIR)/mntent_compat.Po \
++@AMDEP_TRUE@@KDE_USE_FINAL_FALSE@ @AMDEP_TRUE@ ./$(DEPDIR)/scanbox.Po ./$(DEPDIR)/segmenttip.Po \
+ @AMDEP_TRUE@@KDE_USE_FINAL_FALSE@ @AMDEP_TRUE@ ./$(DEPDIR)/settingsdlg.Po
+
+ #>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+@@ -362,7 +364,7 @@
+ #>+ 3
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu filelight/Makefile
+- cd $(top_srcdir) && perl admin/am_edit filelight-0.6.0/filelight/Makefile.in
++ cd $(top_srcdir) && perl admin/am_edit filelight/Makefile.in
+ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+@@ -409,6 +411,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filemap.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filetree.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mntent_compat.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scanbox.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/segmenttip.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/settingsdlg.Po@am__quote@
+@@ -532,7 +535,7 @@
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+ #>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ #>+ 4
+-KDE_DIST=filelight.desktop cr22-app-filelight.png filelight.xcf cr48-app-filelight.png cr64-app-filelight.png
++KDE_DIST=cr64-app-filelight.png cr48-app-filelight.png cr22-app-filelight.png filelight.xcf filelight.desktop
+
+ DISTFILES= $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
+
+@@ -689,7 +692,6 @@
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+ .NOEXPORT:
+
+-
+ #>+ 14
+ settingsdialog.cpp: $(srcdir)/settingsdialog.ui settingsdialog.h settingsdialog.moc
+ rm -f settingsdialog.cpp
+@@ -710,8 +712,8 @@
+ $(MOC) $(srcdir)/filelightcanvas.h -o filelightcanvas.moc.cpp
+
+ #>+ 3
+-scanbox.moc.cpp: $(srcdir)/scanbox.h
+- $(MOC) $(srcdir)/scanbox.h -o scanbox.moc.cpp
++settingsdlg.moc.cpp: $(srcdir)/settingsdlg.h
++ $(MOC) $(srcdir)/settingsdlg.h -o settingsdlg.moc.cpp
+
+ #>+ 3
+ segmenttip.moc.cpp: $(srcdir)/segmenttip.h
+@@ -722,12 +724,12 @@
+ $(MOC) $(srcdir)/filelight.h -o filelight.moc.cpp
+
+ #>+ 3
+-settingsdlg.moc.cpp: $(srcdir)/settingsdlg.h
+- $(MOC) $(srcdir)/settingsdlg.h -o settingsdlg.moc.cpp
++scanbox.moc.cpp: $(srcdir)/scanbox.h
++ $(MOC) $(srcdir)/scanbox.h -o scanbox.moc.cpp
+
+ #>+ 3
+ clean-metasources:
+- -rm -f filelightcanvas.moc.cpp scanbox.moc.cpp segmenttip.moc.cpp filelight.moc.cpp settingsdlg.moc.cpp
++ -rm -f filelightcanvas.moc.cpp settingsdlg.moc.cpp segmenttip.moc.cpp filelight.moc.cpp scanbox.moc.cpp
+
+ #>+ 4
+ clean-ui:
+@@ -755,15 +757,15 @@
+ force-reedit:
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu filelight/Makefile
+- cd $(top_srcdir) && perl admin/am_edit filelight-0.6.0/filelight/Makefile.in
++ cd $(top_srcdir) && perl admin/am_edit filelight/Makefile.in
+
+
+ #>+ 11
+-filelight.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/settingsdlg.cpp $(srcdir)/filemap.cpp $(srcdir)/segmenttip.cpp $(srcdir)/scanbox.cpp $(srcdir)/filetree.cpp $(srcdir)/filelightcanvas.cpp $(srcdir)/filelight.cpp $(srcdir)/main.cpp $(srcdir)/settingsdialog.cpp segmenttip.moc.cpp scanbox.moc.cpp filelightcanvas.moc.cpp filelight.moc.cpp settingsdlg.moc.cpp settingsdialog.moc
++filelight.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/settingsdlg.cpp $(srcdir)/filemap.cpp $(srcdir)/segmenttip.cpp $(srcdir)/scanbox.cpp $(srcdir)/filetree.cpp $(srcdir)/filelightcanvas.cpp $(srcdir)/filelight.cpp $(srcdir)/main.cpp $(srcdir)/mntent_compat.cpp $(srcdir)/settingsdialog.cpp filelightcanvas.moc.cpp settingsdlg.moc.cpp segmenttip.moc.cpp filelight.moc.cpp scanbox.moc.cpp settingsdialog.moc
+ @echo 'creating filelight.all_cpp.cpp ...'; \
+ rm -f filelight.all_cpp.files filelight.all_cpp.final; \
+ echo "#define KDE_USE_FINAL 1" >> filelight.all_cpp.final; \
+- for file in settingsdlg.cpp filemap.cpp segmenttip.cpp scanbox.cpp filetree.cpp filelightcanvas.cpp filelight.cpp main.cpp settingsdialog.cpp segmenttip.moc.cpp scanbox.moc.cpp filelightcanvas.moc.cpp filelight.moc.cpp settingsdlg.moc.cpp ; do \
++ for file in settingsdlg.cpp filemap.cpp segmenttip.cpp scanbox.cpp filetree.cpp filelightcanvas.cpp filelight.cpp main.cpp mntent_compat.cpp settingsdialog.cpp filelightcanvas.moc.cpp settingsdlg.moc.cpp segmenttip.moc.cpp filelight.moc.cpp scanbox.moc.cpp ; do \
+ echo "#include \"$$file\"" >> filelight.all_cpp.files; \
+ test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> filelight.all_cpp.final; \
+ done; \
+@@ -794,12 +796,13 @@
+ kde-rpo-clean:
+ -rm -f *.rpo
+
+-#>+ 9
+-$(srcdir)/filelight.cpp: settingsdialog.h
+-$(srcdir)/settingsdlg.cpp: settingsdialog.h
++#>+ 10
+ $(srcdir)/filetree.cpp: settingsdialog.h
+-$(srcdir)/filemap.cpp: settingsdialog.h
+-$(srcdir)/segmenttip.cpp: settingsdialog.h
++$(srcdir)/filelight.cpp: settingsdialog.h
++$(srcdir)/mntent_compat.cpp: settingsdialog.h
+ $(srcdir)/scanbox.cpp: settingsdialog.h
++$(srcdir)/segmenttip.cpp: settingsdialog.h
++$(srcdir)/settingsdlg.cpp: settingsdialog.h
+ $(srcdir)/main.cpp: settingsdialog.h
++$(srcdir)/filemap.cpp: settingsdialog.h
+ $(srcdir)/filelightcanvas.cpp: settingsdialog.h
diff --git a/sysutils/filelight/files/patch-filetree.cpp b/sysutils/filelight/files/patch-filetree.cpp
new file mode 100644
index 000000000000..b1d1ca544c81
--- /dev/null
+++ b/sysutils/filelight/files/patch-filetree.cpp
@@ -0,0 +1,51 @@
+--- filelight/filetree.cpp.orig Fri Aug 29 18:06:32 2003
++++ filelight/filetree.cpp Fri Aug 29 18:19:06 2003
+@@ -77,7 +77,7 @@
+ }
+
+
+-static int selector( struct dirent64 const *ent )
++static int selector( struct dirent *ent )
+ {
+ if( (strcmp( ent->d_name, "." ) == 0) || (strcmp( ent->d_name, ".." ) == 0) )
+ return 0;
+@@ -93,16 +93,16 @@
+ if( m_haltScan ) return NULL;
+
+ //the 64bit version lets us support more than 2GB files
+- struct dirent64 **eps;
++ struct dirent **eps;
+ int n;
+
+
+- n = scandir64( path, &eps, selector, /*alphasort*/ NULL );
++ n = scandir( path, &eps, selector, /*alphasort*/ NULL );
+
+ if( n >= 0 ) {
+
+ char *new_path, *new_dirname;
+- struct stat64 statbuf;
++ struct stat statbuf;
+ unsigned char strlen_path = strlen( path ) + 2; //saves recalculations
+ Directory *cwd = new Directory( dirname );
+ Filesize dirsize = 0;
+@@ -121,7 +121,7 @@
+ */
+
+ //get some more detail about the file with lstat
+- lstat64( new_path, &statbuf );
++ lstat( new_path, &statbuf );
+ statbuf.st_size /= 1024; //using units of kB as 32bit max is 4GB and 64bit ints are expensive
+
+ if( S_ISLNK( statbuf.st_mode ) )
+@@ -260,8 +260,9 @@
+
+ #include <fstab.h>
+ #include <mntent.h>
++#ifndef __FreeBSD__
+ #include <sys/statfs.h>
+-
++#endif
+
+ #define INFO_PARTITIONS "/proc/partitions"
+ #define INFO_MOUNTED_PARTITIONS "/etc/mtab" /* on Linux... */
diff --git a/sysutils/filelight/pkg-descr b/sysutils/filelight/pkg-descr
new file mode 100644
index 000000000000..edf9a8c86425
--- /dev/null
+++ b/sysutils/filelight/pkg-descr
@@ -0,0 +1,9 @@
+Filelight graphically represents a file system as a set of
+concentric segmented-rings, indicating where diskspace is
+being used. Segments expanding from the center represent
+files (including directories), with each segment's size
+being proportional to the file's size and directories
+having child segments.
+
+Author: Max Howell <max.howell@methylblue.com>
+WWW: http://www.methylblue.com/filelight
diff --git a/sysutils/filelight/pkg-plist b/sysutils/filelight/pkg-plist
new file mode 100644
index 000000000000..9cff1581e8fd
--- /dev/null
+++ b/sysutils/filelight/pkg-plist
@@ -0,0 +1,21 @@
+bin/filelight
+share/applnk/Utilities/filelight.desktop
+share/doc/HTML/en/filelight/common
+share/doc/HTML/en/filelight/index.cache.bz2
+share/doc/HTML/en/filelight/index.docbook
+share/icons/crystalsvg/22x22/apps/filelight.png
+share/icons/crystalsvg/48x48/apps/filelight.png
+share/icons/crystalsvg/64x64/apps/filelight.png
+@unexec rmdir %D/share/icons/crystalsvg/64x64/apps 2>/dev/null || true
+@unexec rmdir %D/share/icons/crystalsvg/64x64 2>/dev/null || true
+@unexec rmdir %D/share/icons/crystalsvg/48x48/apps 2>/dev/null || true
+@unexec rmdir %D/share/icons/crystalsvg/48x48 2>/dev/null || true
+@unexec rmdir %D/share/icons/crystalsvg/22x22/apps 2>/dev/null || true
+@unexec rmdir %D/share/icons/crystalsvg/22x22 2>/dev/null || true
+@unexec rmdir %D/share/icons/crystalsvg 2>/dev/null || true
+@unexec rmdir %D/share/icons 2>/dev/null || true
+@dirrm share/doc/HTML/en/filelight
+@unexec rmdir %D/share/doc/HTML/en 2>/dev/null || true
+@unexec rmdir %D/share/doc/HTML 2>/dev/null || true
+@unexec rmdir %D/share/applnk/Utilities 2>/dev/null || true
+@unexec rmdir %D/share/applnk 2>/dev/null || true