]>
err.no Git - dak/log
Joerg Jaspert [Tue, 7 Sep 2010 22:15:31 +0000 (00:15 +0200)]
Add (C) for uli
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Joerg Jaspert [Tue, 7 Sep 2010 22:12:17 +0000 (00:12 +0200)]
Use the right path
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Uli Martens [Tue, 7 Sep 2010 22:06:54 +0000 (00:06 +0200)]
add config file for removalsrss
Uli Martens [Tue, 7 Sep 2010 22:01:32 +0000 (00:01 +0200)]
move removals.pl magic constants into config file
Joerg Jaspert [Sun, 5 Sep 2010 14:13:03 +0000 (16:13 +0200)]
We are on franck
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Joerg Jaspert [Sat, 4 Sep 2010 19:21:02 +0000 (21:21 +0200)]
keep a current symlink
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Joerg Jaspert [Sat, 4 Sep 2010 18:51:54 +0000 (20:51 +0200)]
Update
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Joerg Jaspert [Sat, 4 Sep 2010 18:51:44 +0000 (20:51 +0200)]
remove leading /
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Joerg Jaspert [Sat, 4 Sep 2010 10:02:05 +0000 (12:02 +0200)]
Put -print0 at end
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Joerg Jaspert [Sat, 4 Sep 2010 09:56:43 +0000 (11:56 +0200)]
use the rowcount
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Joerg Jaspert [Sat, 4 Sep 2010 09:44:46 +0000 (11:44 +0200)]
Fixup, its len(q)
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Joerg Jaspert [Fri, 3 Sep 2010 19:43:43 +0000 (21:43 +0200)]
Real time
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Joerg Jaspert [Fri, 3 Sep 2010 19:38:06 +0000 (21:38 +0200)]
changelog testing
we rotate a date based set of changelogs now.
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Joerg Jaspert [Fri, 3 Sep 2010 19:10:22 +0000 (21:10 +0200)]
Merge remote branch 'drkranz/make-changelog' into merge
* drkranz/make-changelog:
control_suite.py: fix britney changelog
Add distribution to changelogs view
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Luca Falavigna [Fri, 3 Sep 2010 09:57:22 +0000 (09:57 +0000)]
control_suite.py: fix britney changelog
Only display changelog entries for uploads targeted
unstable, experimental, and testing-proposed-updates
Signed-off-by: Luca Falavigna <dktrkranz@debian.org>
Luca Falavigna [Fri, 3 Sep 2010 09:56:31 +0000 (09:56 +0000)]
Add distribution to changelogs view
Signed-off-by: Luca Falavigna <dktrkranz@debian.org>
Joerg Jaspert [Thu, 2 Sep 2010 22:19:40 +0000 (00:19 +0200)]
Rotate the changelog, 4 copies
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Joerg Jaspert [Thu, 2 Sep 2010 22:00:40 +0000 (00:00 +0200)]
Merge remote branch 'drkranz/make-changelog' into merge
* drkranz/make-changelog:
control_suite.py: generate changelog for britney runs
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Luca Falavigna [Thu, 2 Sep 2010 14:27:22 +0000 (14:27 +0000)]
control_suite.py: generate changelog for britney runs
Signed-off-by: Luca Falavigna <dktrkranz@debian.org>
Joerg Jaspert [Tue, 31 Aug 2010 19:59:49 +0000 (21:59 +0200)]
away with add_database_user
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Joerg Jaspert [Mon, 30 Aug 2010 07:08:20 +0000 (09:08 +0200)]
Merge remote branch 'drkranz/master' into merge
* drkranz/master:
daklib/queue.py: check if sponsoremail is set first
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Luca Falavigna [Mon, 30 Aug 2010 06:44:17 +0000 (06:44 +0000)]
daklib/queue.py: check if sponsoremail is set first
Signed-off-by: Luca Falavigna <dktrkranz@debian.org>
Mark Hymers [Sun, 29 Aug 2010 20:55:10 +0000 (20:55 +0000)]
Hack to make process policy work again
Signed-off-by: Mark Hymers <mhy@debian.org>
Joerg Jaspert [Sun, 29 Aug 2010 13:52:33 +0000 (15:52 +0200)]
Merge remote branch 'drkranz/master' into merge
* drkranz/master:
daklib/queue.py: send mails to sponsors too
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Luca Falavigna [Sat, 28 Aug 2010 14:17:10 +0000 (14:17 +0000)]
daklib/queue.py: send mails to sponsors too
sponsoremail is not adjusted anymore, so check whether
a given upload has been sponsored in order to fill that
field. This addresses bug #568369.
Signed-off-by: Luca Falavigna <dktrkranz@debian.org>
Joerg Jaspert [Tue, 24 Aug 2010 20:38:59 +0000 (22:38 +0200)]
Merge remote branch 'drkranz/master' into merge
* drkranz/master:
queue_report.py: toggle headers too
queue_report.py: toggle binary-NEW packages only
lintian.tags: remove some duplicated tags
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Luca Falavigna [Tue, 24 Aug 2010 20:36:25 +0000 (20:36 +0000)]
queue_report.py: toggle headers too
Signed-off-by: Luca Falavigna <dktrkranz@debian.org>
Luca Falavigna [Thu, 19 Aug 2010 14:30:08 +0000 (14:30 +0000)]
queue_report.py: toggle binary-NEW packages only
Add a Javascript function to display binary-NEW packages
only in HTML view , so it is easier to track them.
Signed-off-by: Luca Falavigna <dktrkranz@debian.org>
Luca Falavigna [Thu, 19 Aug 2010 10:12:28 +0000 (10:12 +0000)]
lintian.tags: remove some duplicated tags
Signed-off-by: Luca Falavigna <dktrkranz@debian.org>
Joerg Jaspert [Tue, 24 Aug 2010 19:31:43 +0000 (21:31 +0200)]
Merge remote branch 'drkranz/make-changelog' into merge
* drkranz/make-changelog:
make_changelog.py: fix newlines between entries
make_changelog.py: display changes for packages entering testing
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Luca Falavigna [Tue, 24 Aug 2010 18:05:44 +0000 (18:05 +0000)]
make_changelog.py: fix newlines between entries
Allow a single newline between changes originating
from the same source package, add two newlines between
two different source packages.
Signed-off-by: Luca Falavigna <dktrkranz@debian.org>
Luca Falavigna [Tue, 24 Aug 2010 18:03:15 +0000 (18:03 +0000)]
make_changelog.py: display changes for packages entering testing
Signed-off-by: Luca Falavigna <dktrkranz@debian.org>
Joerg Jaspert [Mon, 2 Aug 2010 13:13:28 +0000 (15:13 +0200)]
Merge remote branch 'drkranz/master' into merge
* drkranz/master:
rm.py: also take udebs into account while checking rdeps
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Luca Falavigna [Mon, 2 Aug 2010 13:08:49 +0000 (13:08 +0000)]
rm.py: also take udebs into account while checking rdeps
Signed-off-by: Luca Falavigna <dktrkranz@debian.org>
Joerg Jaspert [Mon, 2 Aug 2010 11:30:36 +0000 (13:30 +0200)]
Merge remote branch 'twerner/process-upload' into merge
* twerner/process-upload:
queue.py: fix more error handling code
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Torsten Werner [Mon, 2 Aug 2010 11:28:27 +0000 (11:28 +0000)]
Merge branch 'master' into process-upload
Joerg Jaspert [Mon, 2 Aug 2010 11:13:57 +0000 (13:13 +0200)]
Indent reason
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Joerg Jaspert [Mon, 2 Aug 2010 11:10:22 +0000 (13:10 +0200)]
Merge remote branch 'rhonda/master' into merge
* rhonda/master:
add indentation to reason for 822 format
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Gerfried Fuchs [Mon, 2 Aug 2010 11:02:32 +0000 (13:02 +0200)]
add indentation to reason for 822 format
The Reason: for a remove can span multiple lines. This means they need
to be prefixed with whitespace to not break the rfc822 format.
Signed-off-by: Gerfried Fuchs <rhonda@debian.at>
Joerg Jaspert [Mon, 2 Aug 2010 07:54:13 +0000 (09:54 +0200)]
Merge remote branch 'drkranz/rm822' into merge
* drkranz/rm822:
Some code cleanups
cron.hourly: generate removals-full.822
rm.py: implement rfc822 removal format
rm822.py script to convert removals log into rfc822 format
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Joerg Jaspert [Mon, 2 Aug 2010 02:11:56 +0000 (04:11 +0200)]
Merge remote branch 'pkern/to-merge' into merge
* pkern/to-merge:
config/debian/apache.conf-incoming: add vitry and krenek
config/debian/apache.conf-incoming: cleanup a bit
config/debian/apache.conf-incoming: add new armel buildds
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Luca Falavigna [Sun, 1 Aug 2010 20:35:44 +0000 (20:35 +0000)]
Some code cleanups
Signed-off-by: Luca Falavigna <dktrkranz@debian.org>
Philipp Kern [Sun, 1 Aug 2010 19:52:21 +0000 (21:52 +0200)]
config/debian/apache.conf-incoming: add vitry and krenek
Philipp Kern [Sun, 1 Aug 2010 19:50:35 +0000 (21:50 +0200)]
Merge branch 'master' of https://ftp-master.debian.org/git/dak
Luca Falavigna [Sun, 1 Aug 2010 15:36:41 +0000 (15:36 +0000)]
cron.hourly: generate removals-full.822
Signed-off-by: Luca Falavigna <dktrkranz@debian.org>
Luca Falavigna [Sun, 1 Aug 2010 15:35:01 +0000 (15:35 +0000)]
rm.py: implement rfc822 removal format
Signed-off-by: Luca Falavigna <dktrkranz@debian.org>
Torsten Werner [Sun, 1 Aug 2010 14:37:15 +0000 (14:37 +0000)]
queue.py: fix more error handling code
Signed-off-by: Torsten Werner <twerner@debian.org>
Joerg Jaspert [Sun, 1 Aug 2010 13:54:06 +0000 (15:54 +0200)]
Merge remote branch 'twerner/process-upload' into merge
* twerner/process-upload:
queue.py: fix error handling code
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Torsten Werner [Sun, 1 Aug 2010 13:48:18 +0000 (13:48 +0000)]
queue.py: fix error handling code
Signed-off-by: Torsten Werner <twerner@debian.org>
Luca Falavigna [Sun, 1 Aug 2010 11:19:01 +0000 (11:19 +0000)]
rm822.py script to convert removals log into rfc822 format
Signed-off-by: Luca Falavigna <dktrkranz@franck.debian.org>
Mark Hymers [Sun, 1 Aug 2010 11:14:12 +0000 (11:14 +0000)]
Add more buildds
Signed-off-by: Mark Hymers <mhy@debian.org>
Philipp Kern [Sun, 1 Aug 2010 02:03:39 +0000 (04:03 +0200)]
config/debian/apache.conf-incoming: cleanup a bit
Philipp Kern [Sun, 1 Aug 2010 01:59:25 +0000 (03:59 +0200)]
config/debian/apache.conf-incoming: add new armel buildds
Joerg Jaspert [Fri, 30 Jul 2010 02:11:12 +0000 (04:11 +0200)]
[mhy] Remove malo and add poulenc/porpora
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Joerg Jaspert [Fri, 30 Jul 2010 02:10:43 +0000 (04:10 +0200)]
Add the web-users dir and a rewriterule for it
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Mark Hymers [Fri, 23 Jul 2010 18:48:19 +0000 (18:48 +0000)]
We can't allow unchecked until we've hardlinked the mirrors now that we're doing apt-ftparchive as part of it
Signed-off-by: Mark Hymers <mhy@debian.org>
Joerg Jaspert [Sat, 17 Jul 2010 07:53:06 +0000 (09:53 +0200)]
Run without -i
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Joerg Jaspert [Thu, 15 Jul 2010 22:17:49 +0000 (00:17 +0200)]
Timestamps
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Joerg Jaspert [Thu, 15 Jul 2010 21:51:10 +0000 (23:51 +0200)]
Merge remote branch 'twerner/gf' into merge
* twerner/gf:
generate-filelist: create fewer DB sessions
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Torsten Werner [Thu, 15 Jul 2010 21:47:44 +0000 (21:47 +0000)]
generate-filelist: create fewer DB sessions
Signed-off-by: Torsten Werner <twerner@debian.org>
Joerg Jaspert [Wed, 14 Jul 2010 22:49:50 +0000 (00:49 +0200)]
run g-p-s in unchecked
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Joerg Jaspert [Wed, 14 Jul 2010 21:59:40 +0000 (23:59 +0200)]
missing t
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Joerg Jaspert [Wed, 14 Jul 2010 21:59:14 +0000 (23:59 +0200)]
Merge remote branch 'twerner/gf' into merge
* twerner/gf:
drop an obsolete view by db update34
generate-filelist: implement incremental mode
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Torsten Werner [Wed, 14 Jul 2010 21:46:12 +0000 (21:46 +0000)]
drop an obsolete view by db update34
Signed-off-by: Torsten Werner <twerner@debian.org>
Torsten Werner [Wed, 14 Jul 2010 19:10:01 +0000 (19:10 +0000)]
generate-filelist: implement incremental mode
Signed-off-by: Torsten Werner <twerner@debian.org>
Joerg Jaspert [Mon, 12 Jul 2010 21:52:23 +0000 (23:52 +0200)]
Merge remote branch 'twerner/show-new' into merge
* twerner/show-new:
examine-package: replace lock by thread.local()
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Torsten Werner [Mon, 12 Jul 2010 21:09:34 +0000 (21:09 +0000)]
Merge branch 'master' into show-new
Torsten Werner [Mon, 12 Jul 2010 21:07:48 +0000 (21:07 +0000)]
examine-package: replace lock by thread.local()
- thread local storage is more robust than locks
- the code is more correct than before
Signed-off-by: Torsten Werner <twerner@debian.org>
Joerg Jaspert [Mon, 12 Jul 2010 19:30:31 +0000 (21:30 +0200)]
Serialize by suite
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Joerg Jaspert [Mon, 12 Jul 2010 19:29:56 +0000 (21:29 +0200)]
Slightly more useful tempfile names
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Joerg Jaspert [Sun, 11 Jul 2010 21:40:25 +0000 (23:40 +0200)]
Merge branch 'gps' into merge
* gps:
Use the new script in dinstall
generate-packages-sources
generate-packages-sources
dont replace the path in DAILY_APT_CONF right now, make it nicer later in an AptCOnf class. also dont call with the suite name, it knows it anyways
generate-packages-sources
Add start of a generate_packages_sources command
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Joerg Jaspert [Sun, 11 Jul 2010 21:40:05 +0000 (23:40 +0200)]
Use the new script in dinstall
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Joerg Jaspert [Sun, 11 Jul 2010 21:30:51 +0000 (23:30 +0200)]
generate-packages-sources
finalize the first step. there needs to be a rework of the apt-trees part
into an aptconfig class. Much to inflexible the way it is now, but we can
start testing this out in real life now.
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Mark Hymers [Sun, 11 Jul 2010 21:03:13 +0000 (21:03 +0000)]
Merge commit 'ftpmaster/master'
Mark Hymers [Sun, 11 Jul 2010 21:03:04 +0000 (21:03 +0000)]
Extend a hack
Signed-off-by: Mark Hymers <mhy@debian.org>
Joerg Jaspert [Sat, 10 Jul 2010 14:08:53 +0000 (16:08 +0200)]
Remove an entirely unused config section
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Joerg Jaspert [Thu, 8 Jul 2010 21:33:00 +0000 (23:33 +0200)]
Merge remote branch 'twerner/show-new' into merge
* twerner/show-new:
show-new: reduce DB sessions even more
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Torsten Werner [Thu, 8 Jul 2010 21:27:52 +0000 (21:27 +0000)]
show-new: reduce DB sessions even more
Signed-off-by: Torsten Werner <twerner@debian.org>
Joerg Jaspert [Thu, 8 Jul 2010 19:44:40 +0000 (21:44 +0200)]
We use upload.d.o now
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Joerg Jaspert [Wed, 7 Jul 2010 21:52:43 +0000 (23:52 +0200)]
Merge remote branch 'twerner/show-new' into merge
* twerner/show-new:
show-new: reduce number of open DB sessions
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Torsten Werner [Wed, 7 Jul 2010 21:40:03 +0000 (21:40 +0000)]
Merge branch 'master' into show-new
Torsten Werner [Wed, 7 Jul 2010 21:38:51 +0000 (21:38 +0000)]
show-new: reduce number of open DB sessions
Signed-off-by: Torsten Werner <twerner@debian.org>
Joerg Jaspert [Wed, 7 Jul 2010 21:28:24 +0000 (23:28 +0200)]
Merge remote branch 'lamby/master' into merge
* lamby/master:
Popen.communicate calls stdout.close() which looks like is causing errors w/threads..
Finally kill m68k
Support +b[0-9] versions in autobyhand for di
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Chris Lamb [Wed, 7 Jul 2010 21:24:36 +0000 (22:24 +0100)]
Popen.communicate calls stdout.close() which looks like is causing errors w/threads..
Mark Hymers [Wed, 7 Jul 2010 17:45:44 +0000 (17:45 +0000)]
Finally kill m68k
Signed-off-by: Mark Hymers <mhy@debian.org>
Mark Hymers [Wed, 7 Jul 2010 17:24:31 +0000 (17:24 +0000)]
Support +b[0-9] versions in autobyhand for di
Signed-off-by: Mark Hymers <mhy@debian.org>
Joerg Jaspert [Wed, 7 Jul 2010 21:03:59 +0000 (23:03 +0200)]
Merge branch 'master' of ssh://franck.debian.org/srv/ftp.debian.org/git/dak
* 'master' of ssh://franck.debian.org/srv/ftp.debian.org/git/dak:
Finally kill m68k
Support +b[0-9] versions in autobyhand for di
Joerg Jaspert [Wed, 7 Jul 2010 21:03:38 +0000 (23:03 +0200)]
Merge remote branch 'lamby/master' into merge
* lamby/master:
Fix race condition in our commands.getstatusoutput monkeypatch
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Mark Hymers [Wed, 7 Jul 2010 17:45:44 +0000 (17:45 +0000)]
Finally kill m68k
Signed-off-by: Mark Hymers <mhy@debian.org>
Mark Hymers [Wed, 7 Jul 2010 17:24:31 +0000 (17:24 +0000)]
Support +b[0-9] versions in autobyhand for di
Signed-off-by: Mark Hymers <mhy@debian.org>
Chris Lamb [Wed, 7 Jul 2010 13:22:44 +0000 (14:22 +0100)]
Fix race condition in our commands.getstatusoutput monkeypatch
Previously we were returning from this method before the process had actually
finished, introducing issues where we relied on process actually finishing or
simply not returning all the data the process was going to produce.
Joerg Jaspert [Wed, 7 Jul 2010 08:20:32 +0000 (10:20 +0200)]
Merge remote branch 'twerner/show-new' into merge
* twerner/show-new:
examine-package: do not create useless DB sessions
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Torsten Werner [Wed, 7 Jul 2010 08:15:38 +0000 (08:15 +0000)]
examine-package: do not create useless DB sessions
Signed-off-by: Torsten Werner <twerner@debian.org>
Joerg Jaspert [Wed, 7 Jul 2010 07:40:06 +0000 (09:40 +0200)]
Merge remote branch 'twerner/show-new' into merge
* twerner/show-new:
show-new: close ressources earlier
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Torsten Werner [Wed, 7 Jul 2010 07:38:08 +0000 (07:38 +0000)]
show-new: close ressources earlier
Signed-off-by: Torsten Werner <twerner@debian.org>
Joerg Jaspert [Tue, 6 Jul 2010 23:57:45 +0000 (01:57 +0200)]
generate-packages-sources
some more changes:
- chdir before we call the generate function
- dont include architecture all
- use commands.getstatusoutput
this breaks the try, finally: block. using os.system() it works nicely,
but the output is a hell. using commands.getstatusoutput the finally:
is called to early, removing the config for apt-ftparchive, breaking it.
ugh, bad.
- the whole mess with the config inside dbconn.py needs to go, as well
as the special cases for the tree configs. should be an aptconf class,
but thats a task for when this fully works
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Joerg Jaspert [Tue, 6 Jul 2010 22:17:22 +0000 (00:17 +0200)]
Merge branch 'master' into gps
* master:
examine-package: lock access to printed_copyrights
show-new: multithreading support
show-new: no longer fiddle with sys.stdout
examine_package: make most functions functional
examine-package: really support option -H
examine-package: add missing newlines to output
examine-package: make foldable_output functional()
examine-package: make headline() functional
call check_deb() with correct arguments
Add config for volatile
Joerg Jaspert [Tue, 6 Jul 2010 22:13:29 +0000 (00:13 +0200)]
Merge remote branch 'twerner/show-new' into merge
* twerner/show-new:
examine-package: lock access to printed_copyrights
show-new: multithreading support
show-new: no longer fiddle with sys.stdout
examine_package: make most functions functional
examine-package: really support option -H
examine-package: add missing newlines to output
examine-package: make foldable_output functional()
examine-package: make headline() functional
call check_deb() with correct arguments
Add config for volatile
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Joerg Jaspert [Tue, 6 Jul 2010 20:54:41 +0000 (22:54 +0200)]
dont replace the path in DAILY_APT_CONF right now, make it nicer later in an AptCOnf class. also dont call with the suite name, it knows it anyways
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Torsten Werner [Tue, 6 Jul 2010 20:38:48 +0000 (20:38 +0000)]
examine-package: lock access to printed_copyrights
FIXME: the global variable printed_copyrights is still broken...
Signed-off-by: Torsten Werner <twerner@debian.org>