How can I edit the current port of a package for local build?

Hello.
I want to build the Kate package from ports /usr/ports/editors/kate
The current version in port is 23.08.5.
And I want to build a newer one, for example 24.12.0.

I tried intuitively changing the distinfo.

Current distinfo
Code:
TIMESTAMP = 1707889355
SHA256 (KDE/release-service/23.08.5/kate-23.08.5.tar.xz) = 683c49d9c4b2abd4b4660b607b65249a2adfdc48418b0d18ab90810d1a8f4e37
SIZE (KDE/release-service/23.08.5/kate-23.08.5.tar.xz) = 8043480

I changed distinfo to:
Code:
TIMESTAMP = 1733961601
SHA256 (KDE/release-service/24.12.0/src/kate-24.12.0.tar.xz) = a5926a0d85c69ca2cc34d87e567501e795e95050e16f896e39cd8cac4ced2348
SIZE (KDE/release-service/24.12.0/src/kate-24.12.0.tar.xz) = 8300640
Data taken from https://kde.org/info/releases-24.12.0/

But after executing the commands
Code:
make install-missing-packages
make

it is trying to work with version 23.08.5

Code:
root@build:/usr/ports/editors/kate # make
===> License LGPL20 accepted by the user
===> kate-23.08.5_4 depends on file: /usr/local/sbin/pkg - found
=> KDE/release-service/23.08.5/kate-23.08.5.tar.xz is not in /usr/ports/editors/kate/distinfo.
=> Either /usr/ports/editors/kate/distinfo is out of date, or
=> KDE/release-service/23.08.5/kate-23.08.5.tar.xz is spelled incorrectly.
***Error code 1

Stop.
make[1]: stopped in /usr/ports/editors/kate
***Error code 1

Stop.
make: stopped in /usr/ports/editors/kate

Why is this happening?
How can I correctly assemble the version I need?
 
The version is set in the Makefile: https://cgit.freebsd.org/ports/tree/editors/kate/Makefile

distinfo is a manifest file, used to verify the size and checksum corresponding to the downloaded file. Usually after editing the version in the Makefile you run make makesum to update distinfo with the info from the downloaded file, and compare it to the expected values.
While this certainly works for a lot of ports it won't for this one.

Code:
PORTNAME=	kate
DISTVERSION=	${KDE_APPLICATIONS_VERSION}

In this case the version is actually set in Mk/Uses/kde.mk:
Code:
# Current KDE applications.
KDE_APPLICATIONS5_VERSION?=	23.08.5
KDE_APPLICATIONS5_SHLIB_VER?=	5.24.5
# G as in KDE Gear, and as in "don't make the variable name longer than required"
KDE_APPLICATIONS5_SHLIB_G_VER?=	23.8.5
KDE_APPLICATIONS5_BRANCH?=	stable

You could put KDE_APPLICATIONS5_VERSION=24.12.0 in make.conf but this will also change the version on a bunch of other KDE5 ports.
Code:
root@chibacity:/usr/local/poudriere/ports/desktop # find . -name 'Makefile' -exec grep -H KDE_APPLICATIONS_VERSION {} \;
./deskutils/akonadiconsole/Makefile:DISTVERSION=        ${KDE_APPLICATIONS_VERSION}
./deskutils/libkdepim/Makefile:DISTVERSION=     ${KDE_APPLICATIONS_VERSION}
./deskutils/merkuro/Makefile:DISTVERSION=       ${KDE_APPLICATIONS_VERSION}
./deskutils/itinerary/Makefile:DISTVERSION=     ${KDE_APPLICATIONS_VERSION}
./deskutils/kruler/Makefile:DISTVERSION=        ${KDE_APPLICATIONS_VERSION}
./deskutils/kaddressbook/Makefile:DISTVERSION=  ${KDE_APPLICATIONS_VERSION}
./deskutils/pim-sieve-editor/Makefile:DISTVERSION=      ${KDE_APPLICATIONS_VERSION}
./deskutils/grantlee-editor/Makefile:DISTVERSION=       ${KDE_APPLICATIONS_VERSION}
./deskutils/kontact/Makefile:DISTVERSION=       ${KDE_APPLICATIONS_VERSION}
./deskutils/kcharselect/Makefile:DISTVERSION=   ${KDE_APPLICATIONS_VERSION}
./deskutils/pim-data-exporter/Makefile:DISTVERSION=     ${KDE_APPLICATIONS_VERSION}
./deskutils/kmail/Makefile:DISTVERSION= ${KDE_APPLICATIONS_VERSION}
{lots more output snipped}

And judging by the KDE_APPLICATIONS_VERSION for KDE6:
Code:
# Next KDE applications.
KDE_APPLICATIONS6_VERSION?=	24.01.90
KDE_APPLICATIONS6_SHLIB_VER?=	5.24.3
# G as in KDE Gear, and as in "don't make the variable name longer than required"
KDE_APPLICATIONS6_SHLIB_G_VER?=	24.01.90
KDE_APPLICATIONS6_BRANCH?=	unstable
I suspect that the 24.12.0 version is for KDE6, not 5, so you're probably going to run into dependency issues.
 
I finally managed to assemble kate, but I won’t be able to use it, because...
kf5 is not compatible with kf6.
And some other software is connected to kf5, for example krusader.
That is you have to wait until all the software is transferred to kf6.
 
Back
Top