FreshPorts / freshports

The website part of FreshPorts
http://www.freshports.org/
BSD 2-Clause "Simplified" License
68 stars 24 forks source link

Can we automatically update KDE ports #136

Open dlangille opened 4 years ago

dlangille commented 4 years ago

Case in point: https://www.freshports.org/x11/plasma5-plasma

Latest commit says 5.16.5 yet we find this:

# cd /var/db/repos/PORTS-head/x11/plasma5-plasma
# make -V PORTVERSION
5.18.0
# make -V USES 
kde:5 metaport qt:5
# 
dlangille commented 4 years ago

Perhaps each type of this metaport must be handled separately. Perhaps by a table, with filename and variable name, and perhaps a connection to the USES variable.

dlangille commented 4 years ago

This is the list of known KDE metaports

freshports.dev=# SELECT category || '/' || name, uses FROM ports_active WHERE uses LIKE '%metaport%' AND uses LIKE '%kde%' ORDER BY 1;
            ?column?            |        uses         
--------------------------------+---------------------
 accessibility/kdeaccessibility | kde:5 metaport
 deskutils/kdepim               | kde:5 metaport
 devel/kdesdk                   | kde:5 metaport qt:5
 games/kdegames                 | kde:5 metaport
 graphics/kdegraphics           | kde:5 metaport qt:5
 misc/kdeedu                    | kde:5 metaport
 misc/kdeutils                  | kde:5 metaport
 multimedia/kdemultimedia       | kde:5 metaport qt:5
 net-im/kde-telepathy           | metaport kde:5
 net/kdenetwork                 | kde:5 metaport qt:5
 sysutils/kdeadmin              | kde:5 metaport
 x11/kde-baseapps               | kde:5 metaport
 x11/kde5                       | kde:5 metaport qt:5
 x11/kf5-frameworks             | metaport kde:5 qt:5
 x11/plasma5-plasma             | kde:5 metaport qt:5
(15 rows)

freshports.dev=# 
tcberner commented 4 years ago

For the kde one's you could probably trigger a refresh of the ones that have the USES=kde:5 metaport combination. The other ports using kde.mk (in general) have a a dinstinfo file and are therefore touched automatically on changes to the version defined in kde.mk.

dlangille commented 4 years ago

pasting in from IRC so that the reasoning gets saved:

So how do I detect appropriate updates to Mk/Uses/kde.mk ? Do I refresh all 15 metaports with each change? Do I get FreshPorts to know each of the VERSION variables in kde.mk?

I think the cleanest way so far is to update all 15 port whenever a change to kde.mk occurs

There is no easy way to know if one of the vars has changed unless the DB knows the current var values and for that it needs to know ALL of the vars. When a new var is added, it needs to be added to FreshPorts. All of this could be data driven, in a table.

Changes to this file do not occur often. It's just a matter of running a bunch of make -V

dlangille commented 4 years ago

When a change to kde.mk is detected, run the above SQL, get the list of ports to update, then update them.