When a new repo is imported, the packages cache needs to be deleted. The cache is on the front-end, the web server. Cache clearing on the web server is handled by the fp-listen daemon.
It does this by using the LISTEN command.
The list of channels it listens to is controlled by the listen_for table:
freshports.test=# \d listen_for
Table "public.listen_for"
Column | Type | Collation | Nullable | Default
-------------+---------+-----------+----------+----------------------------------------
id | integer | | not null | nextval('listen_for_id_seq'::regclass)
name | text | | not null |
script_name | text | | not null |
Indexes:
"listen_for_pkey" PRIMARY KEY, btree (id)
"listen_for_name_idx" UNIQUE, btree (name)
freshports.test=#
The values now in place are:
freshports.test=# SELECT name, script_name FROM listen_for ORDER BY name;
name | script_name
----------------+-----------------------
category_new | listen_category_new
date_updated | listen_date_updated
port_updated | listen_port
ports_moved | listen_ports_moved
ports_updating | listen_ports_updating
vuxml | listen_vuxml
(6 rows)
freshports.test=#
I’m planning to add a new one: packages_cache_clear
freshports.dev=# INSERT INTO listen_for (name, script_name) values ('packages_cache_clear', 'ClearPackagesCache');
INSERT 0 1
EDIT 2020-05-01 : This was implemented using zfs rollback for cache clearing.











