Fixed conflict in 'ChangeLog'

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
Fred Gleason 2021-05-17 10:20:51 -04:00
commit c85fdf3ece
18 changed files with 143 additions and 54 deletions

View File

@ -219,20 +219,20 @@ Bad:
Good:
sql=QString("select ")+
"`CART`.`TITLE,"+ // 00
"`CART`.`ARTIST,"+ // 01
"`CART`.`PUBLISHER,"+ // 02
"`CART`.`COMPOSER,"+ // 03
"`CART`.`USAGE_CODE,"+ // 04
"`CUTS`.`ISRC,"+ // 05
"`CART`.`ALBUM,"+ // 06
"`CART`.`LABEL,"+ // 07
"`CUTS`.`ISCI,"+ // 08
"`CART`.`CONDUCTOR,"+ // 09
"`CART`.`USER_DEFINED,"+ // 10
"`CART`.`SONG_ID,"+ // 11
"`CUTS`.`DESCRIPTION,"+ // 12
"`CUTS`.`OUTCUE "+ // 13
"`CART`.`TITLE`,"+ // 00
"`CART`.`ARTIST`,"+ // 01
"`CART`.`PUBLISHER`,"+ // 02
"`CART`.`COMPOSER`,"+ // 03
"`CART`.`USAGE_CODE`,"+ // 04
"`CUTS`.`ISRC`,"+ // 05
"`CART`.`ALBUM`,"+ // 06
"`CART`.`LABEL`,"+ // 07
"`CUTS`.`ISCI`,"+ // 08
"`CART`.`CONDUCTOR`,"+ // 09
"`CART`.`USER_DEFINED`,"+ // 10
"`CART`.`SONG_ID`,"+ // 11
"`CUTS`.`DESCRIPTION`,"+ // 12
"`CUTS`.`OUTCUE` "+ // 13
"from `CART` left join `CUTS` "+
"on `CART`.`NUMBER`=`CUTS`.`CART_NUMBER` where "+
"`CUTS`.`CUT_NAME`='"+RDEscapeString(button->cutName())+"'";
@ -249,7 +249,7 @@ Changes that alter the schema of the database must include:
B) Code that implements the schema change, in the
'utils/rddbmgr/updateschema.cpp' file.
C) Code the implements an exact, perfect reversal of the schema change,
C) Code that implements an exact, perfect reversal of the schema change,
in the 'utils/rddbmgr/revertschema.cpp' file.
D) Updating of the schema map in the 'MainObject::InitializeSchemaMap()'

View File

@ -21642,5 +21642,52 @@
rdairplay(1) to salted SHA1.
2021-04-27 Fred Gleason <fredg@paravelsystems.com>
* Updated the 'Required build packages' list for Ubuntu in 'INSTALL'.
2021-05-07 Fred Gleason <fredg@paravelsystems.com>
* Fixed typos in 'CODINGSTYLE'.
2021-05-07 Fred Gleason <fredg@paravelsystems.com>
* Incremented the package version to 4.0.0beta0.
2021-05-09 David Klann <dklann@broadcasttool.com>
* Fixed typo in 'lib/rdcut.cpp' that caused SQL
errors.
* Fixed typos in 'lib/rdsvc.cpp' that caused SQL
errors.
* Fixed typos in 'rdlibrary/list_reports.cpp' that caused SQL
errors.
* Fixed typos in 'utils/rdclilogedit/operations.cpp' that caused
SQL errors.
* Fixed typos in 'utils/rddbmgr/updateschema.cpp' that caused SQL
errors.
2021-05-10 Fred Gleason <fredg@paravelsystems.com>
* Updated the dependency for the MySQL Qt plug-in for RPM
packages.
2021-05-11 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in rdcastmanager(1) that could cause a segfault
when closing the 'List Feed' dialog.
2021-05-11 Fred Gleason <fredg@paravelsystems.com>
* Fixed a regression in the log rendering engine which caused
a segfault when cleaning up temporary files.
2021-05-11 Fred Gleason <fredg@paravelsystems.com>
* Fixed a regression in rdcastmanager(1) that caused values in the
'Superfeed' column of the Feed List to be inverted.
2021-05-11 Fred Gleason <fredg@paravelsystems.com>
* Fixed a regression 'RDCutDialog' that could cause a segfault
when calling 'RDCutDialog::exec()'.
2021-05-11 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in 'RDCutDialog' that allowed a cart entry to be
selected.
2021-05-11 Fred Gleason <fredg@paravelsystems.com>
* Fixed a regression in rdcastmanager(1) that caused values in the
'Superfeed' column of the Feed List to be inverted.
2021-05-12 Fred Gleason <fredg@paravelsystems.com>
* Added code to update the desktop icon cache to the 'make install'
target.
2021-05-12 Fred Gleason <fredg@paravelsystems.com>
* Updated the '--libdir=' value for './configure' for Ubuntu in
'INSTALL'.
2021-05-12 Fred Gleason <fredg@paravelsystems.com>
* Added an 'Environmental Variables' entry for Ubuntu in 'INSTALL'.
2021-05-13 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in rdcastmanager(1) that generated a SQL error
when run with a user with no authorized feeds.
2021-05-17 Fred Gleason <fredg@paravelsystems.com>
* Added a 'make dep' target.
* Added a 'make deb' target.

View File

@ -275,7 +275,9 @@ Configure script invocation: ./configure --prefix=/usr --libdir=/usr/lib64 --lib
Required build packages: apache2 libexpat1-dev libexpat1 libid3-dev libcurl4-gnutls-dev libcoverart-dev libdiscid-dev libmusicbrainz5-dev libcdparanoia-dev libsndfile1-dev libpam0g-dev libvorbis-dev python3 python3-pycurl python3-pymysql python3-serial python3-requests libsamplerate0-dev qtbase5-dev libqt5sql5-mysql libsoundtouch-dev libsystemd-dev libjack-jackd2-dev libasound2-dev libflac-dev libflac++-dev libmp3lame-dev libmad0-dev libtwolame-dev docbook5-xml libxml2-utils docbook-xsl-ns xsltproc fop make g++ libltdl-dev autoconf automake libssl-dev libtag1-dev qttools5-dev-tools debhelper openssh-server autoconf-archive gnupg pbuilder ubuntu-dev-tools apt-file
Configure script invocation: ./configure --prefix=/usr --libdir=/usr/lib64 --libexecdir=/var/www/rd-bin --sysconfdir=/etc/apache2/conf-enabled --enable-rdxport-debug MUSICBRAINZ_LIBS="-ldiscid -lmusicbrainz5cc -lcoverartcc"
Configure script invocation: ./configure --prefix=/usr --libdir=/usr/lib --libexecdir=/var/www/rd-bin --sysconfdir=/etc/apache2/conf-enabled --enable-rdxport-debug MUSICBRAINZ_LIBS="-ldiscid -lmusicbrainz5cc -lcoverartcc"
Environmental variables: DOCBOOK_STYLESHEETS=/usr/share/xml/docbook/stylesheet/docbook-xsl-ns
Apache Web Server Configuration: CGI processing must be enabled. This can
be done by means of the following commands:

14
NEWS
View File

@ -1,5 +1,19 @@
The NEWS file for the Rivendell package.
-------------------------------------------------------------------------------
v4.0.0beta0 -- 7 May 2021
Changes:
First beta release of Rivendell v4.x. Be sure to read the INSTALL
document, as major changes in software dependencies have occurred.
Database Update:
This version of Rivendell uses database schema version 349, and will
automatically upgrade any earlier versions. To see the current schema
version prior to upgrade, see RDAdmin->SystemInfo.
Be sure to run 'rddbmgr --modify' (as root) immediately after upgrading
to allow any necessary changes to the database schema to be applied.
-------------------------------------------------------------------------------
v3.5.0int0 -- 24 December 2020

View File

@ -1 +1 @@
3.5.0int0
4.0.0beta0

View File

@ -169,7 +169,7 @@ if test $ar_gcc_distro = suse ; then
# AC_SUBST(CONSOLEHELPER_RDALSACONFIG,"")
AC_SUBST(USERMODE_PKG,"")
AC_SUBST(MYSQL_PKG,"mysql")
AC_SUBST(QT4_MYSQL_PKG,"qt-mysql")
AC_SUBST(QT_MYSQL_PKG,"qt-mysql")
AC_SUBST(DOC_PATH,"/usr/share/doc/rivendell")
else
AC_SUBST(APACHE_PKG,"httpd")
@ -178,17 +178,7 @@ else
if test $ar_distro_major -ge 7 ; then
AC_SUBST(USERMODE_PKG,"usermode usermode-gtk")
AC_SUBST(MYSQL_PKG,"mariadb")
AC_SUBST(QT4_MYSQL_PKG,"qt-mysql")
else
if test $ar_distro_major -ge 6 ; then
AC_SUBST(USERMODE_PKG,"usermode")
AC_SUBST(MYSQL_PKG,"mysql")
AC_SUBST(QT4_MYSQL_PKG,"qt4-mysql")
else
AC_SUBST(USERMODE_PKG,"usermode")
AC_SUBST(MYSQL_PKG,"mysql")
AC_SUBST(QT4_MYSQL_PKG,"qt-MySQL")
fi
AC_SUBST(QT_MYSQL_PKG,"qt5-qtbase-mysql")
fi
fi

View File

@ -186,6 +186,7 @@ install-exec-am:
mkdir -p $(DESTDIR)@prefix@/share/X11/fvwm2/pixmaps
cp rivendell-16x16.xpm $(DESTDIR)@prefix@/share/X11/fvwm2/pixmaps/mini.rivendell.xpm
cp rivendell-32x32.xpm $(DESTDIR)@prefix@/share/X11/fvwm2/pixmaps/rivendell.xpm
./update_icons.sh
uninstall-local:
rm -f $(DESTDIR)@libexecdir@/donut-spinner.gif
@ -267,7 +268,7 @@ uninstall-local:
rm -f $(DESTDIR)@prefix@/share/icons/hicolor/128x128/apps/rdpanel-128x128.png
rm -f $(DESTDIR)@prefix@/share/icons/hicolor/256x256/apps/rdpanel.png
rm -f $(DESTDIR)@prefix@/share/icons/hicolor/512x512/apps/rdpanel.png
./update_icons.sh
EXTRA_DIST = admin.xpm\
blueball.png\
@ -490,6 +491,7 @@ EXTRA_DIST = admin.xpm\
trashcan-16x16.xpm\
trashcan-32x32.png\
trashcan-32x32.xpm\
update_icons.sh\
upload.xpm\
user.xpm\
webget_logo.png\

30
icons/update_icons.sh Executable file
View File

@ -0,0 +1,30 @@
#!/bin/bash
# update_icons.sh
#
# Update icon cache.
#
# (C) Copyright 2021 Fred Gleason <fredg@salemradiolabs.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
if test $UID = 0 ; then
if test -x /usr/bin/gtk-update-icon-cache ; then
/usr/bin/gtk-update-icon-cache -f /usr/share/icons/hicolor
fi
fi
# End of update_icons.sh

View File

@ -1105,7 +1105,7 @@ void RDCut::setMetadata(RDWaveData *data) const
sql+=QString("`ISRC`='")+RDEscapeString(data->isrc().left(12))+"',";
}
if(!data->isci().isEmpty()) {
sql+=QString("`ISCI=`'")+RDEscapeString(data->isci().left(32))+"',";
sql+=QString("`ISCI`='")+RDEscapeString(data->isci().left(32))+"',";
}
if(!data->recordingMbId().isEmpty()) {
sql+=QString("`RECORDING_MBID`='")+

View File

@ -46,6 +46,7 @@ RDCutDialog::RDCutDialog(QString *filter,QString *group,QString *schedcode,
cart_caption=caption;
cart_allow_add=allow_add;
cart_temp_allowed=NULL;
cart_cutname=NULL;
cart_filter_mode=rda->station()->filterMode();
if(filter==NULL) {
@ -200,6 +201,9 @@ void RDCutDialog::modelResetData()
for(int i=0;i<cart_cart_model->columnCount();i++) {
cart_cart_view->resizeColumnToContents(i);
}
for(int i=0;i<cart_cart_model->rowCount();i++) {
cart_cart_view->setExpanded(cart_cart_model->index(i,0),true);
}
}
@ -279,9 +283,8 @@ void RDCutDialog::okData()
if(cart_temp_allowed!=NULL) {
*cart_temp_allowed=false;
}
done(true);
}
done(true);
}

View File

@ -418,7 +418,7 @@ void RDFeedListModel::changeUser()
{
QString sql;
RDSqlQuery *q=NULL;
QString filter_sql="where ";
QString filter_sql="where (`KEY_NAME` is null)||";
if(d_is_admin) {
sql=QString("select ")+
@ -519,7 +519,7 @@ void RDFeedListModel::updateRowLine(int line)
{
QString sql=sqlFields()+
"where "+
"FEEDS.KEY_NAME=\""+RDEscapeString(d_key_names.at(line).at(line))+"\"";
"FEEDS.KEY_NAME=\""+RDEscapeString(d_key_names.at(line))+"\"";
RDSqlQuery *q=new RDSqlQuery(sql);
if(q->first()) {
updateRow(line,q);
@ -552,7 +552,7 @@ void RDFeedListModel::updateRow(int row,RDSqlQuery *q)
scaled(32,32,Qt::IgnoreAspectRatio,Qt::SmoothTransformation);
}
d_texts[row][1]=q->value(2); // Title
if(q->value(3).toString()=="Y") {
if(q->value(4).toString()=="Y") {
d_texts[row][2]=tr("[superfeed]");
}
else {
@ -605,7 +605,7 @@ void RDFeedListModel::updateRow(int row,RDSqlQuery *q)
} while(q->next()&&(q->value(1).toString()==keyname));
q->previous();
if(q->value(3).toString()=="Y") {
if(q->value(4).toString()=="Y") {
d_texts[row][2]=tr("[superfeed]");
}
else {

View File

@ -218,8 +218,8 @@ bool __RDRenderLogLine::GetCutFile(const QString &cutname,int start_pt,
void __RDRenderLogLine::DeleteCutFile(const QString &dest_filename) const
{
unlink(dest_filename.toUtf8());
QStringList f0=dest_filename.split("/");
f0.erase(f0.end());
QStringList f0=dest_filename.split("/",QString::SkipEmptyParts);
f0.removeLast();
rmdir(("/"+f0.join("/")).toUtf8());
}
@ -636,8 +636,8 @@ bool RDRenderer::ImportCart(const QString &srcfile,unsigned cartnum,int cutnum,
void RDRenderer::DeleteTempFile(const QString &filename) const
{
unlink(filename.toUtf8());
QStringList f0=filename.split("/");
f0.erase(f0.end());
QStringList f0=filename.split("/",QString::SkipEmptyParts);
f0.removeLast();
rmdir(("/"+f0.join("/")).toUtf8());
}

View File

@ -1281,8 +1281,8 @@ bool RDSvc::create(const QString &name,QString *err_msg,
}
else { // Base on Existing Service
sql=QString("select ")+
"`DESCRIPTION,`"+ // 00
"`NAME_TEMPLATE,`"+ // 01
"`DESCRIPTION`,"+ // 00
"`NAME_TEMPLATE`,"+ // 01
"`DESCRIPTION_TEMPLATE`,"+ // 02
"`PROGRAM_CODE`,"+ // 03
"`CHAIN_LOG`,"+ // 04

View File

@ -59,6 +59,7 @@ ListCasts::ListCasts(unsigned feed_id,QWidget *parent)
list_progress_dialog=
new QProgressDialog(tr("Uploading Audio..."),tr("Cancel"),0,1,this);
list_progress_dialog->setValue(1);
list_progress_dialog->setWindowTitle("RDCastManager - "+tr("Progress"));
list_progress_dialog->setCancelButton(NULL);
list_progress_dialog->setMinimumDuration(0);

View File

@ -185,7 +185,7 @@ void ListReports::GenerateCartReport(QString *report)
"`CART`.`LENGTH_DEVIATION`,"+ // 09
"`CART`.`OWNER` "+ // 10
"from `CART` "+
"left join `GROUPS` on `CART`.`GROUP_NAME`=`GROUPS`.`NAME "+
"left join `GROUPS` on `CART`.`GROUP_NAME`=`GROUPS`.`NAME` "+
"left join `CUTS` on `CART`.`NUMBER`=`CUTS`.`CART_NUMBER` ";
sql+=list_filter_sql;
unsigned prev_cartnum=0;
@ -538,7 +538,7 @@ void ListReports::GenerateCartDumpCsv(QString *report,bool prepend_names)
"`CUTS`.`FADEUP_POINT`,"+ // 29
"`CUTS`.`FADEDOWN_POINT` "+ // 30
"from `CART` "+
"left join `GROUPS` on `CART`.`GROUP_NAME`=`GROUPS`.`NAME "+
"left join `GROUPS` on `CART`.`GROUP_NAME`=`GROUPS`.`NAME` "+
"left join `CUTS` on `CART`.`NUMBER`=`CUTS`.`CART_NUMBER` ";
sql+=list_filter_sql;
q=new RDSqlQuery(sql);

View File

@ -28,7 +28,7 @@ Release: @RPM_RELEASE@
License: GPL
Packager: Fred Gleason <fredg@paravelsystems.com>
Source: rivendell-@VERSION@.tar.gz
Requires: @MYSQL_PKG@, @QT4_MYSQL_PKG@, @APACHE_PKG@, curl, @USERMODE_PKG@, rivendell-pypad = @VERSION@, rsyslog
Requires: @MYSQL_PKG@, @QT_MYSQL_PKG@, @APACHE_PKG@, curl, @USERMODE_PKG@, rivendell-pypad = @VERSION@, rsyslog
BuildRoot: /var/tmp/rivendell-@VERSION@
Obsoletes: rivendell-base rivendell-opsguide
Conflicts: rivendell-opsguide

View File

@ -420,8 +420,8 @@ void MainObject::Saveas(const QString &logname)
RDLog *log=new RDLog(logname);
if(!log->exists()) {
sql=QString("insert into `LOGS` set ")+
"`NAME='"+RDEscapeString(logname)+"',"+
"`TYPE=0,"+
"`NAME`='"+RDEscapeString(logname)+"',"+
"`TYPE`=0,"+
"`DESCRIPTION`='"+RDEscapeString(edit_description)+"',"+
"`ORIGIN_USER`='"+RDEscapeString(rda->user()->name())+"',"+
"`ORIGIN_DATETIME`=now(),"+

View File

@ -378,7 +378,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg)
"`NUMBER` int not null,"+
"`NAME` char(64),"+
"`FEED_NAME` char(8),"+
"index `MATRIX_IDX` (`STATION_NAME`,`MATRIX,NUMBER`))"+
"index `MATRIX_IDX` (`STATION_NAME`,`MATRIX`,`NUMBER`))"+
" charset latin1 collate latin1_swedish_ci"+
db_table_create_postfix;
if(!RDSqlQuery::apply(sql,err_msg)) {
@ -394,7 +394,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg)
"`MATRIX` int not null,"+
"`NUMBER` int not null,"+
"`NAME` char(64),"+
"index `MATRIX_IDX` (`STATION_NAME`,`MATRIX,NUMBER`))"+
"index `MATRIX_IDX` (`STATION_NAME`,`MATRIX`,`NUMBER`))"+
" charset latin1 collate latin1_swedish_ci"+
db_table_create_postfix;
if(!RDSqlQuery::apply(sql,err_msg)) {
@ -649,7 +649,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg)
"`MATRIX` int not null,"+
"`NUMBER` int not null,"+
"`MACRO_CART` int default -1,"+
"index `MATRIX_IDX` (`STATION_NAME`,`MATRIX,NUMBER`))"+
"index `MATRIX_IDX` (`STATION_NAME`,`MATRIX`,`NUMBER`))"+
" charset latin1 collate latin1_swedish_ci"+
db_table_create_postfix;
if(!RDSqlQuery::apply(sql,err_msg)) {
@ -2459,7 +2459,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg)
if(!RDSqlQuery::apply(sql,err_msg)) {
return false;
}
sql="alter table `LOGS` add index `NAME_IDX` (`NAME,LOG_EXISTS`)";
sql="alter table `LOGS` add index `NAME_IDX` (`NAME`,`LOG_EXISTS`)";
if(!RDSqlQuery::apply(sql,err_msg)) {
return false;
}
@ -4632,7 +4632,7 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg)
"`MATRIX` int not null,"+
"`NUMBER` int not null,"+
"`MACRO_CART` int default 0,"+
"index `MATRIX_IDX` (`STATION_NAME`,`MATRIX,NUMBER`))"+
"index `MATRIX_IDX` (`STATION_NAME`,`MATRIX`,`NUMBER`))"+
" charset latin1 collate latin1_swedish_ci"+
db_table_create_postfix;
if(!RDSqlQuery::apply(sql,err_msg)) {