[Previous] [Next] [Contents]

A. Хронология изменений

Изменения даны в обратном хронологическом порядке.

-- Версия 1.3.10: 16-May-1997 --

Ошибка округления при выводе дробных величин "словами", была внесена в 1.3.9 (bug report by Victor Gartvitch).

ckconfig теперь не падает на пустых или еще не созданных таблицах при проверке идентификаторов; в следующем (1.4, работа уже ведется паралельно с релизами 1.3.* - спасибо CVS) релизе скорее всего будет изменен способ ведения идентификаторов целиком (bug report by Sergey Vetoshkin).

-- Версия 1.3.9: 25-Apr-1997 --

Очередной глюк с округлением в linux - оказывается 0.01*10 вовсе не 0.1, как можно было подумать.. (bug report by Victor Gartvitch).

Сделана проверка наличия директивы class user в персональных `mail.cf' (модуль calcmail). При ее отсутствии выдается предупреждение.

-- Версия 1.3.8: 17-Apr-1997 --

Легализована возможность использования модификаторов ширины в формате команды print генератора отчетов ( mkreport) (bug report by Serg Zorin).

Исправлена ошибка с невозможностью выдать html отчет о статистике без НДС (bug report by Serg Zorin).

Убрана двойная рассылка ~daily.fm в daily (bug report by Victor Gartvitch).

-- Версия 1.3.7: 12-Apr-1997 --

Восстановлено преобразование единиц измерений в прайс-листах в соответствие с языковой конфигурацией пользователя.

В модуль ckconfig добавлена проверка корректности значений в SQL таблице ids и восстановление ее в случае нарушений.

-- Версия 1.3.6: 12-Mar-1997 --

Исправлен способ формирования имен локальных прайс-листов и форм отчетов - существовавший сбоил под Linux (bug report by Victor Gartvitch).

-- Версия 1.3.5: 10-Mar-1997 --

Исправлена довольно старая ошибка в модуле htreport - в некоторых ситуациях не выводилось содержимое лицевого счета (ошибка распределения памяти).

-- Версия 1.3.4: 9-Mar-1997 --

При выводе ставки налога по командам statistic и account генератором отчетов иногда выводилось неверное значение в среде Linux из-за ошибки округления в системных библиотеках Linux; исправлено (bug report by Victor Gartvitch).

Модуль amlast при удалении пробелов из длинных имен хостов нарушал поле даты; исправлено.

-- Версия 1.3.3: 22-Feb-1997 --

При проверке легальности адресов в модуле runqueue сравнение происходило по подстроке, а не со всей строкой; исправлено.

-- Версия 1.3.2: 22-Feb-1997 --

Устранена ошибка в calcmail - статистика записывалась всегда в детализованном виде в домашние каталоги пользователей. Появилась по всей вероятности в одном из предшествующих релизов. Теперь ключу `-s' возвращено его изначальное значение.

Незначительная ревизия структуры исходных текстов для упрощения распространения в исходниках.

-- Версия 1.3.1: 8-Feb-1997 --

Теперь runqueue преобразует и адрес из From_ из доменной в банговую форму - распространилось достаточно много конфигураций sendmail, где это делать полезно..

Исправлена ошибка с невозможностью вставить перевод строки в файл описания языка - проявлялось в особенности на неопрятных текстах сообщений об ошибках в runqueue (8-Feb-1997).

Увеличен до трехсот символов допустимый размер поля данных в пользовательских расширениях (30-Jan-1997).

Мелкие ошибки в adduuser исправлены (26-Jan-1997).

-- Версия 1.3: 20-Jan-1997 --

Произошли изменения в лицензии! Начато распространение в исходных текстах.

Локализованы сообщения в модуле runqueue - смотрите пример языкового файла для русского и английского языков.

В пользовательскую конфигурацию добавлен параметр accname, задающий наименование лицевого счета пользователя. Позволяет нескольким пользователям иметь общий лицевой счет, например.

Окончательно (надеюсь) доведен до ума amlast - при реальных крушениях системы время клиентов считается до момента последнего успешного входа в систему на любом терминале плюс одну секунду.

Пользовательская конфигурация теперь может хранить дополнительные поля и модули mkreport/ htreport могут ее выводить (смотрите директиву print extension). Это удобно применить для хранения и вывода требующихся с первого января 1997 г. кодов по ОКПО и т.п..

Радикально переделано чтение пользовательской конфигурации - пожалуй единственный блок, который оставался без изменений несколько лет; мир праху его..

Модуль convertstat теперь корректно отрабатывает вывод информации по всем пользователям в один файл (ключи `-a -ofile' ) - раньше при этом выводились данные только первого пользователя (bug report by Evgeny Larionov).

В warn.cf допустимы отрицательные величины (feature request by Dmitry Valdov).

-- Версия 1.2.4: 10-Jan-1997 --

Убрано чтение параметра addresses пользовательской конфигурации и, соотвественно, автоматическое создание `mail.cf' - все, кому это было надо, уже перешли с версий сервера 0.* и дальше тащить этот груз совместимости смысла нет. Для ликвидации этого параметра у всех пользователей можно использовать скрипт (запускать в каталоге bin):

#!/bin/sh
for d in `ulist -p`
 do
  echo $d
  rm -f $d/user.cf.old
  sed 's/^addresses/#(obs. since 1.3)# addresses/g' \
      $d/user.cf > $d/user.cf.tmp &&
  ln $d/user.cf $d/user.cf.old &&
  mv $d/user.cf.tmp $d/user.cf
done

В accadmin исправлена ошибка с записью комментариев только на основном языке системы (bug report by Dmitry Valdov).

В convertstat переделан механизм чтения *.st файлов (наконец-то) и увеличена допустимая длина формул до 500 знаков. Если формула или название сервиса не вмещаются в отведенное им пространство, то об этом теперь выдается предупреждение.

Добавлен необязательный параметр конфигурации legal-chars, описывающий допустимые в почтовых адресах символы.

Исправлена ошибка в runqueue, которая приводила к core dump на версиях, скомпилированных с сильной оптимизацией (thanx to Dmitry Pletnev).

Небольшая ошибка в adduuser - в `logins.cf' записывалось дважды одно и то-же имя.

-- Версия 1.2.3: 23-Dec-1996 --

Теперь в прайс-листах вполне может присутствовать основная валюта в качестве валютной единицы - раньше модуль convertstat пытался для нее определить курс по отношению к ней самой.

Легализована возможность использования отрицательной величины в персональных файлах `.count' - позволяет задать ``кредит доверия'' пользователю (feature request by Dmitry Valdov). По ходу дела несколько причесан модуль daily.

Несколько расширены возможности отладочного вывода.

-- Версия 1.2.2: 2-Dec-1996 --

Валюта может быть и женского рода - легализована возможность использования параметра `num_1_0' в описании языка (bug report by Sergey Bashakov).

Модуль amlast теперь заменяет пробелы в имени host'а на символы подчеркивания, соответственно и calctime перестал спотыкаться на таких записях (bug report by Andrey L.Davydov).

-- Версия 1.2.1: 22-Nov-1996 --

Исправлены сообщения `Списание НДС' и `Услуги за ...' в модуле accadmin на универсальные `vat_remove' и `services_in' (транслируемые в соответствие с описанием языка). Кроме того, теперь все вводимые комментарии сервер пытается транслировать по описанию языка (спасибо Dmitry Valdov).

Исправлена старая ошибка в модуле amlast - неверно вычислялось время нахождения в системе при crash или reboot в некоторых довольно экзотических случаях.

Починена ошибка в модуле upgrade - было невозможно обновить таблицы от 1.0 к 1.2 если в свое время они были получены из 0.8 и поле statistic.sname было равно NULL.

Немного изменена документация.

-- Версия 1.2: 19-Nov-1996 --

Бета тестирование ошибок не выявило. Доработана документация и версия 1.2alpha практически без изменений переделана в версию 1.2.

-- Версия 1.2alpha: 12-Nov-1996 --

Мелкая плюшка - %HOMEDIR% не отрабатывался в модуле user-add, хотя использовался в примере.

Самое главное изменение - все сообщения сервер получает из файлов описания языков, что позволяет легко настраивать сервер на иные языки, и, в том числе, на несколько языков одновременно - с одним клиентом на русском, с другим на английском, с третьим на хинди :). Соответсвенно, изменен формат хранения прайс-листов с тем, чтобы можно было иметь комментарии к сервисам на разных языках; формы отчетов также могут быть на нескольких языках - задается именем файла.

Поймана незначительная утечка памяти при обработке прайс-листов.

Теперь поле username в пользовательской конфигурации не обязательно и используется сервером только для проверки.

В модуль calcmail добавлена обработка ключа `-s' - по нему статистика сохраняется в домашних каталогах пользователей в практически совпадающем с исходным виде (feature request by Dmitry Valdov).

-- Версия 1.1.1: 18-Oct-1996 --

Модуль calcmail: mail.cf не формируется, если в конфигурации пользователя нет описания его адресов; пустые классы вполне допустимы хотя и не имеют смысла; адреса вида `a!b:c' или `a!b:!c' и подобные им считаются допустимыми и преобразуются к `a!b!c' (bug reports by Victor Gartvitch).

Исправлен модуль user-add - раньше было невозможно сделать несколько подстановок одной переменной в одной строке (bug report by Dmitry Valdov).

-- Версия 1.1; 18-Sep-1996 --

Написан WWW-интерфейс для пользователей сервера - модуль htreport. В команды генератора отчетов (модуль mkreport) account и statistic добавлен параметр html, задающий вывод таблицы в HTML формате.

В поставляемом с сервером примером `user.cf' заменены параметры reale и realr на соответствующие описанию namee и namer - ошибке этой похоже уже почти два года. Одновременно сервер научен понимать reale и realr на случай, если кто-то уже успел привыкнуть к ошибочному синтаксису.

Добавлена возможность эксплуатации сервера не от имени root'а - изменения отражены в документации, введены параметры конфигурации uid и gid - бинарные модули сервера выполняют все действия от имени указанного пользователя/группы, если они заданы.

Теперь сервер всегда при запуске делает setuid(geteuid()) и /setgid(geteuid())/ - это позволяет избежать проблемы с невозможностью доступа к mSQL из runqueue, запущенного из listener с правами sendmail. Раньше runqueue в этом месте просто повисал.

-- Версия 1.0; 24-Aug-1996 --

Переписан заново механиз отработки команд в runqueue - теперь он в достаточной мере универсален. Заодно сделана возможность для самого пользователя задать ежедневный отчет - модули daily и mkreport приведены в соответствие с этим нововведением.

Поправлена плюшка в генераторе отчетов - проявлялась в виде веротятного core dump при include несуществующего файла.

Полностью дописана документация, немного реорганизована структура хранения иходников - заготовки конфигурационных файлов лежат теперь поблизости от самих моулей.

-- Версия 1.0f; 13-Aug-1996 --

Поправлена ошибка в getuserlist - не определялись ошибки чтения каталогов.

Добавлен раздел umanage c модулями user-add, user-open, user-close и adduuser. К ним написана документация.

-- Версия 1.0e; 10-Aug-1996 --

Много всяких мелочей по ходу написания документации. В том числе:

monthly теперь сам удаляет (точнее архивирует) статистику. Удалены модули month-mail, month-misc и month-time.

daily-mail поправлен к чуть более дружелюбному оформлению.

ckconfig теперь корректно передает в shell и perl символы ' и @.

-- Версия 1.0a; 15-Jul-1996 --

Первый public alpha release новой версии. Все модули как минимум просмотрены и оптимизированы, многие написаны практически заново.

Изменений слишком много, чтобы перечислить. Основные таковы:

  1. Более не ведется двухвалютный учет - иные валюты, кроме основной могут быть только в прайс-листах. Лицевые счета и статистика ведутся только в местной валюте.
  2. Убрана привязка к рублю в виде основной валюты. Валютой может быть что угодно, в том числе с любой точностью - например в Украине можно сделать округление до тысяч.
  3. Разработан формульный механизм - во многих модулях возможны вычисления по полноценным математическим формулам - со скобками, функциями и переменными.
  4. Полностью переписан модуль mkreport - убраны лишние команды, унифицирован синтаксис, добавлены новые параметры, сделано условное выполнение.
  5. Все, что можно, приведено к максимальной универсальности.

Версия 1.0 не совместима с предыдущими версиями как по формату файлов конфигурации, так и по формату SQL таблиц. Смотрите приложение ``Обновление от предыдущих версий'' и описание модуля upgrade.

-- Версия 0.999; xx-May-1996 (внутренний релиз) --

Надоело бодаться с C - перенесено в C++

Добавлены id'ы к табличкам. В ckconfig добавлен ключ -U - обновление таблиц.

Переделан внутренний формат хранения комментариев к сервису - теперь они хранятся единой строкой независимо от количества строк в прайсе.

Добавлена табличка "statistic" в которой хранятся статистические сводки. Там-же теперь есть рубли и комментарии - нет нужды хранить неизменными прайсы и пересчитывать как-то хитро рубли..

ckconfig проверяет корректность таблицы `statistic' и создает ее при необходимости.

0.9.2: 05-May-1996

-- Версия 0.10; xx-Apr-1996 --

В основном bugfix'ы. Более точных сведений не сохранилось - одновременно с ее созданием началась работа над 1.0.

-- Версия 0.9; 28-Mar-1996 --

Добавлен модуль amlast - удобный для компьютерной обработки вариант конвертера wtmp. Теперь время заходов пользователей измеряется в секундах.

Исправлена довольно старая ошибка, которая не проявляла себя никак при том коде, который был: была переменная stat и линкер при сборке convertstat/ calcmail цеплял ее адрес вместо вызова функции stat() без каких-либо предупреждений - вот где хорош C++ :( Слава богу stat() нигде реально не вызывался..

uadmin: теперь enter при вводе суммы отменяет операцию.

uadmin: поиск по пользователям.

uadmin: убита застарелая ошибка - в редких случая могла приводить к core dump при первоначальном чтении данных абонентов.

Добавлены переменные admin-name, lock-dir, organization, server-keep-jobs в конфигурацию - amstat.conf.

Переделана структура ввода и вывода переменных конфигурации. Внешних изменений быть не должно.

Теперь ckconfig при запуске без параметров проверяет конфигурацию, создает каталоги (если их нет).

Сделан механизм блокировок, полностью переделан listener, выброшен за ненадобностью модуль queue. В тестовом режиме было запущено пять runqueue и десять циклов на `sendmail -odi' с заданиями к statserv'у - сбоев не возникло.

Изменен механизм привязки сервера - теперь нет различия между коммерческими или некоммерческими версиями - различие производится на ходу по уникальному ключу. Для указания этого файла введена переменная key-file.

Добавлен модуль registrate - подготовка информации для генерации ключа.

Легализована возможность повторения имен сервисов в прайс листе. Читаемые позже имеют более высокий приоритет. Удобно для небольших правок конкретным абонентам (например каких-то скидок).

Добавлена очистка адресов в runqueue, при некоторых ситуациях ее отсутствие приводило к проверке неверного адреса на корректность.

-- Версия 0.8.7; 8-Feb-1996 --

Исправлена еще одна ошибка при подсчете total/rtotal в mkreport.

Починен ввод русского текста в uadmin FreeBSD - дурацкий unctrl().

Добавлен преобразователь mprep.cf - mp2ams

Убраны упоминания о спецналоге.

Исправлена застарелая ошибка в monthly, где не формировались акты для "закрытых" пользователей. В чьей-то ситуации это может и не быть ошибкой, но пусть по умолчанию будет "формировать"

-- Версия 0.8.6; 9-Jan-1996 --

Поправлен подсчет курса доллара - не учитываются операции, где рубли или доллары были равны нулю. Кроме того исправлена форма SQL запроса - должно чуть чуть быстрее работать.

Исправлен convertstat - раньше обрабатывал только 50 первых пользователей при задании ключа `-a' .

Реально сделана обработка операции * (умножение) в прайс-листе, раньше была только провозглашена в документации

-- Версия 0.8.4; 24-Nov-1995 --

Исправлена ошибка в runqueue - не вызывался sqlConnect.

Добавлены параметры listener-uid, listener-gid и server-run в amstat.conf, значение описано в документации.

Исправлено чтение прайс листов - раньше было ограничение на 80 позиций в сумме. Начиная с этой версии ограничение снято совсем.

-- Версия 0.8.3; 08-Nov-1995 --

Добавлен `/' в список допустимых в адресе символов (sprint).

Выброшен режим добавления пользователя из uadmin. И вряд-ли когда то будет возвращен на место. user-add дает нормальный механизм, а adduuser - вариант front end'а.

Портировано в linux (спасибо Alex Vostrikov alex@ccc.uz) Тестирования в linux не проводилось!

-- Версия 0.8.2; 30-Oct-1995 --

Небольшая ошибка в обработке классов в calcmail, привнесена в 0.8.1

-- Версия 0.8.1; 30-Oct-1995 --

Исправлена ошибка с чтением конфигурации в runqueue - приводила к немедленному core dump при любых попытках запуска. Была привнесена при подготовке к релизу 0.8.

Для FreeBSD 2.* изменены опции компиляции - стояло "-O2", приводящее к core dump в совершенно безобидном месте внутри uadmin (точнее менюшного модуля). Разбираться в причинах пока не хочется - просто скомпилировано с "-O" - эффект исчез.

Исправлен calcmail - теперь память под внутреннюю структуру выделяется динамически. Снято ограничение на количество классов в mail.cf

-- Версия 0.8; 19-Oct-1995 --

Первая широко распространяемая версия.


[Previous] [Next] [Contents]