• New day number and diff file name do not match.

    From Gosha Sakovich@2:5023/24.4172 to All on Sun Jul 27 10:02:48 2025
    Здpавствуй, All!

    Запускаю обновление нодлиста и z2pnt по диффам. Nodelist успешно обновляется, а при обновления z2pnt две недели подряд выдаёт одну и ту-же ошибку:

    nlupdate/w64-mvcdll 1.9 2023-02-24

    6 09:57:24 Executing '\FidoIP\Pack\unzip -j -Loqq D:\FidoIP\FileBox\nodedifz\NODEDIFF.Z06 -d D:\FidoIP\NodeList\nlupd
    ate.tmp\'
    6 09:57:24 Executing diff processor (D:\FidoIP\HPT\nldiff -n \FidoIP\NodeList\NODELIST.199 \FidoIP\NodeList\nlupdate.t
    mp\NODEDIFF.206)
    6 09:57:24 Executing '\FidoIP\Pack\unzip -j -Loqq D:\FidoIP\FileBox\z2pnt_d\Z2PNT_D.Z06 -d D:\FidoIP\NodeList\nlupdat
    e.tmp\'
    6 09:57:24 Executing diff processor (D:\FidoIP\HPT\nldiff -n \FidoIP\NodeList\Z2PNT.199 \FidoIP\NodeList\nlupdate.tmp\
    Z2PNT_D.206)
    New day number and diff file name do not match.
    Processing aborted.

    Базовый z2pnt беру из соответвующей файлэхи.
    Что я делаю не так?

    С уважением - Gosha
    ... Когда-нибудь тут будет список тэг-лайнов
    --- rrda на RD6 - GoldED+/W64-MSVC 1.1.5-b20250409
    * Origin: Back to the good Fido / Hазад в старое-доброе Фидо (2:5023/24.4172)
  • From Konstantin Kuzov@2:5019/40 to Gosha Sakovich on Fri Aug 1 11:31:04 2025
    Hello Gosha!

    27 Июля 2025, Gosha Sakovich wrote to All:

    Запускаю обновление нодлиста и z2pnt по диффам. Nodelist успешно обновляется, а при обновления z2pnt две недели подряд выдаёт одну и
    ту-же ошибку:

    /_...яяяяямс..._/

    New day number and diff file name do not match. Processing aborted. Базовый z2pnt беру из соответвующей файлэхи.
    Что я делаю не так?

    У nldiff достаточно примитивный парсинг первой строчки. Он ожидает что день будет первым числом после символа '-' и это так в общепринятом формате, пример:
    ;A FidoNet Nodelist for Friday, August 1, 2025 -- Day number 213 : 20832

    Тогда как в Z2PNT используется дата в нестандартном формате использующая символ '-' в себе, соответственно nldiff думает что год - это номер дня:
    ;A Zone 2 Fidonet pointlist for Friday 18-Jul-2025 -- Day number 199 : 01196

    Самое простое применить более строгие условия: после '--' для дня и на всякий случая после ' :' для чексуммы:
    /*=========*/ _copy->paste start_ /*=========*/
    diff --git a/src/nltools/nldiff.c b/src/nltools/nldiff.c
    index 8ab27cabac..7e14c315a2 100644
    --- a/src/nltools/nldiff.c
    +++ b/src/nltools/nldiff.c
    @@ -36,7 +36,7 @@ enum

    int analyze_first_line( FILE * f, unsigned short *crcnum, int *has_crc, unsigned short *daynum )
    {
    - char c = 0;
    + char c = 0, pc = 0;
    int state = SCANDASH;
    unsigned short crc, day, hcrc, result = 1;
    crc = day = hcrc = 0;
    @@ -84,7 +84,7 @@ int analyze_first_line( FILE * f, unsigned short *crcnum, int *has_crc, unsigned
    default:;
    }
    }
    - else if( c == '-' )
    + else if( pc == '-' && c == '-' )
    {
    switch ( state )
    {
    @@ -94,7 +94,7 @@ int analyze_first_line( FILE * f, unsigned short *crcnum, int *has_crc, unsigned
    default:;
    }
    }
    - else if( c == ':' )
    + else if( pc == ' ' && c == ':' )
    {
    switch ( state )
    {
    @@ -117,6 +117,8 @@ int analyze_first_line( FILE * f, unsigned short *crcnum, int *has_crc, unsigned
    default:;
    }
    }
    +
    + pc = c;
    }

    *crcnum = crc;
    /*==========*/ _copy->paste en
  • From Gosha Sakovich@2:5023/24.4172 to Konstantin Kuzov on Thu Aug 7 12:30:06 2025
    Здpавствуй, Konstantin!

    01 Aug 25 11:31, ты писал(а) мне:

    New day number and diff file name do not match. Processing
    aborted. Базовый z2pnt беру из соответвующей файлэхи. Что я делаю
    не так?
    У nldiff достаточно примитивный парсинг первой строчки. Он ожидает что день будет первым числом после символа '-' и это так в общепринятом формате, пример: ;A FidoNet Nodelist for Friday, August 1, 2025 -- Day number 213 : 20832

    Тогда как в Z2PNT используется дата в нестандартном формате
    использующая символ '-' в себе, соответственно nldiff думает что год -
    это номер дня: ;A Zone 2 Fidonet pointlist for Friday 18-Jul-2025 --
    Day number 199 : 01196

    Хотел было в этом сам разобраться, но упёрся в то, что не смог понять как его вообще собирать. Увидел среди файлов указание на Visual Studio 8.0, понял что это 2005 и поставил. Запускаю сборку - жалуется на отсутвие windows.h.

    Самое простое применить более строгие условия: после '--' для дня и на всякий случая после ' :' для чексуммы: /*=========*/ _copy->paste

    [...кусь...]

    Diff-то я смогу применить, вопросы как это собрать. Желательно какой-нибудь Visual Studio и под Win64. Профессиональной занимаюсь программированием, но на Java. Последний раз собирал софт под Windows в Visual Studio больше 20 лет назад уже.

    Другой вопрос зачем использовать диффы вовсе в 2025? Размеры полных пойнтлистов/нодлистов по теперешним меркам совсем ничтожны и не стоят
    того чтобы все стало колом крогда очередной дифф потеряется по пути по какой-нибудь причине...

    Hу я вспомнил как у меня это было когда-то, когда ещё всё было на модеме. Всё вполне себе успешно работало. Вот и решил сделать по инерции.

    С уважением - Gosha
    ... Когда-нибудь тут будет список тэг-лайнов
    --- rrda на RD6 - GoldED+/W64-MSVC 1.1.5-b20250409
    * Origin: Back to the good Fido / Hазад в старое-доброе Фидо (2:5023/24.4172)
  • From Konstantin Kuzov@2:5019/40.1 to Gosha Sakovich on Fri Aug 8 01:33:36 2025
    Hello Gosha!

    07 Авг 25, Gosha Sakovich wrote to Konstantin Kuzov:

    Тогда как в Z2PNT используется дата в нестандартном формате
    использующая символ '-' в себе, соответственно nldiff думает что
    год - это номер дня: ;A Zone 2 Fidonet pointlist for Friday
    18-Jul-2025 -- Day number 199 : 01196

    Хотел было в этом сам разобраться, но упёрся в то, что не смог понять
    как его вообще собирать.

    Без понятия, я под винду лет 20 хаски не собирал. Да и виндой не пользуюсь практически столько же. У меня давно свой форк, который существенно разошелся с апстримом. Возможно это было видно по путям файлов в моём диффе. У меня всё в едином репозитарии с совершенно другой структурой файлов и собирается всё исключительно через cmake сразу целиком. В астриме сборку через cmake добавили много позже и по беглому взгляду оно там несколько своеобразное, особенно в плане поиска зависимостей из-за кучи разных репозиториев. Подозреваю все остальные методы сборки нынче уже считаются legacy. Современные версии VS нынче полностью интергрированы с cmake, но насколько это работает с тем что в апстриме husky - без понятия.

    Когда собирал 20 лет назад под MSVC это собиралось очень похоже на остальные системы, клонировались все репозитарии в одну директорию, редактировался по вкусу huskybse/huskymak.cfg.mvc, затем переходил в папку make каждого подпроекта и исполнял что-то типа nmake -f Makefile.mvc all в таком порядке: huskylib, smapi, fidoconf, areafix, всё остальное. Потом добавили vcprojики там же и плюсом в huskybse объединяющие солюшены, которые на них ссылались. Всё это можно было открыть уже в самом VS, выбрать предпочитаемый вариант сборки и запустить сборку всего или чего-то отдельного. Это всё до сих пор валяется в репах судя по беглому взгляду, но актуализируется ли до сих пор и работает ли - без понятия. Как минимум подозреваю нужно будет создавать руками отсутствующие нынче, но до сих пор используемые cvsdate.h файлы в каждом подпроекте со строчкой аля char cvs_date[]="YYYY-MM-DD"; Реликт до сих пор не выкинутый в апстриме после перехода с cvs на git.

    Можешь спросить у Max Vasilyev (2:5057/77) по конкретным шагам для сборки, он вроде до последнего времени делал все официальные билды, включая MSVCшный.

    Увидел среди файлов указание на Visual Studio
    8.0, понял что это 2005 и поставил. Запускаю сборку - жалуется на
    отсутвие windows.h.

    По-идее всё должно собираться и в более актуальных студиях. Как минимум видел в репах общий солюшен в huskybse под VS2010 и разрозненные vcxproj для VS2019. о особо не вижу причин почему это не соберется и под чем-нить современным. Ещё можешь попробовать собрать через mingw, это возможно будет проще. А так судя по отсутствию хедера у тебя Windows SDK или не установлен вовсе или не выбран подходящий в настройках проекта.

    Diff-то я смогу применить, вопросы как это собрать. Желательно какой-нибудь Visual Studio и под Win64. Профессиональной занимаюсь программированием, но на Java.

    Сочувствую. У меня от Java слава яйцам остались лишь вьетнамские флешбеки постоянных боев с патологически кривым и постоянно текущим GC и судорожных поисков исходников древнющих зависимостей от зависимостей после очередного закрытия крупных хранилищ maven артефактов. Последний раз сталкивался с явой на андройде во времена 2.3.6-4.4.4, но там нынче уже тоже давно Kotlin повсеместно. у и совсем чутка подпиливал сторонний софт в начале времен ковида, когда щупал что есть из открытого для видео-конференций и был неприятно удивлен что два основных проекта под это дело (OpenMeetings и Jitsi Meet) оба написаны на яве.

    Последний раз собирал софт под Windows в Visual Studio больше 20 лет
    назад уже.

    у, если не разберешься - пиши, попробую тебе собрать.

    Best of luck, Konstantin.

    ... GoldED+/LNX 1.1.5 (Linux 6.15.8-arch1-1 AMD_K8_M1)
    --- #[EMail: Master.NoSFeRaTU[@]Gmail.com] [Team Nyaa]#
    * Origin: GaNJaNET Point StaTi0N (2:5019/40.1)