summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
0a43227)
Alternative to and based on PR #127
https://github.com/quassel/quassel/pull/127
This makes it possible to create reproducible builds.
get_git_head_revision(GIT_REFSPEC GIT_HEAD)
git_describe(GIT_DESCRIBE --long)
get_git_head_revision(GIT_REFSPEC GIT_HEAD)
git_describe(GIT_DESCRIBE --long)
+# If in a Git repo we can get the commit-date from a git command
+if (GIT_HEAD)
+ execute_process(
+ COMMAND git show -s --format=%ct
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+ OUTPUT_VARIABLE GIT_COMMIT_DATE
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+endif()
+
# If not in a Git repo try to read GIT_HEAD and GIT_DESCRIBE from
# enviroment
if (NOT GIT_HEAD OR NOT GIT_DESCRIBE)
# If not in a Git repo try to read GIT_HEAD and GIT_DESCRIBE from
# enviroment
if (NOT GIT_HEAD OR NOT GIT_DESCRIBE)
if (NOT GIT_HEAD OR NOT GIT_DESCRIBE)
set(GIT_HEAD "")
set(GIT_DESCRIBE "")
if (NOT GIT_HEAD OR NOT GIT_DESCRIBE)
set(GIT_HEAD "")
set(GIT_DESCRIBE "")
endif()
configure_file(version.h.in ${CMAKE_BINARY_DIR}/version.h @ONLY)
endif()
configure_file(version.h.in ${CMAKE_BINARY_DIR}/version.h @ONLY)
useSsl = _account.useSsl();
#endif
useSsl = _account.useSsl();
#endif
- _peer->dispatch(RegisterClient(Quassel::buildInfo().fancyVersionString, Quassel::buildInfo().buildDate, useSsl));
+ _peer->dispatch(RegisterClient(Quassel::buildInfo().fancyVersionString, Quassel::buildInfo().commitDate, useSsl));
_buildInfo.baseVersion = QUASSEL_VERSION_STRING;
_buildInfo.generatedVersion = GIT_DESCRIBE;
_buildInfo.baseVersion = QUASSEL_VERSION_STRING;
_buildInfo.generatedVersion = GIT_DESCRIBE;
- // This will be imprecise for incremental builds not touching this file, but we really don't want to always recompile
- _buildInfo.buildDate = QString("%1 %2").arg(__DATE__, __TIME__);
-
// Check if we got a commit hash
// Check if we got a commit hash
- if (!QString(GIT_HEAD).isEmpty())
+ if (!QString(GIT_HEAD).isEmpty()) {
_buildInfo.commitHash = GIT_HEAD;
_buildInfo.commitHash = GIT_HEAD;
+ QDateTime date;
+ date.setTime_t(GIT_COMMIT_DATE);
+ _buildInfo.commitDate = date.toString();
+ }
else if (!QString(DIST_HASH).contains("Format")) {
_buildInfo.commitHash = DIST_HASH;
else if (!QString(DIST_HASH).contains("Format")) {
_buildInfo.commitHash = DIST_HASH;
- _buildInfo.commitDate = QString(DIST_DATE).toUInt();
+ _buildInfo.commitDate = QString(DIST_DATE);
}
// create a nice version string
}
// create a nice version string
QString baseVersion;
QString generatedVersion;
QString commitHash;
QString baseVersion;
QString generatedVersion;
QString commitHash;
- uint commitDate;
- QString buildDate;
uint protocolVersion; // deprecated
uint protocolVersion; // deprecated
int uphours = uptime / 3600; uptime %= 3600;
int upmins = uptime / 60;
QString coreInfo = tr("<b>Quassel Core Version %1</b><br>"
int uphours = uptime / 3600; uptime %= 3600;
int upmins = uptime / 60;
QString coreInfo = tr("<b>Quassel Core Version %1</b><br>"
"Up %3d%4h%5m (since %6)").arg(Quassel::buildInfo().fancyVersionString)
"Up %3d%4h%5m (since %6)").arg(Quassel::buildInfo().fancyVersionString)
- .arg(Quassel::buildInfo().buildDate)
+ .arg(Quassel::buildInfo().commitDate)
.arg(updays).arg(uphours, 2, 10, QChar('0')).arg(upmins, 2, 10, QChar('0')).arg(Core::instance()->startTime().toString(Qt::TextDate));
// useSsl and coreInfo are only used for the legacy protocol
.arg(updays).arg(uphours, 2, 10, QChar('0')).arg(upmins, 2, 10, QChar('0')).arg(Core::instance()->startTime().toString(Qt::TextDate));
// useSsl and coreInfo are only used for the legacy protocol
{
QVariantMap data;
data["quasselVersion"] = Quassel::buildInfo().fancyVersionString;
{
QVariantMap data;
data["quasselVersion"] = Quassel::buildInfo().fancyVersionString;
- data["quasselBuildDate"] = Quassel::buildInfo().buildDate;
+ data["quasselBuildDate"] = Quassel::buildInfo().commitDate; // "BuildDate" for compatibility
data["startTime"] = Core::instance()->startTime();
data["sessionConnectedClients"] = _coreSession->signalProxy()->peerCount();
return data;
data["startTime"] = Core::instance()->startTime();
data["sessionConnectedClients"] = _coreSession->signalProxy()->peerCount();
return data;
void CoreSessionEventProcessor::handleCtcpVersion(CtcpEvent *e)
{
e->setReply(QString("Quassel IRC %1 (built on %2) -- http://www.quassel-irc.org")
void CoreSessionEventProcessor::handleCtcpVersion(CtcpEvent *e)
{
e->setReply(QString("Quassel IRC %1 (built on %2) -- http://www.quassel-irc.org")
- .arg(Quassel::buildInfo().plainVersionString).arg(Quassel::buildInfo().buildDate));
+ .arg(Quassel::buildInfo().plainVersionString).arg(Quassel::buildInfo().commitDate));
ui.setupUi(this);
ui.quasselLogo->setPixmap(QIcon(":/icons/quassel-64.png").pixmap(64)); // don't let the icon theme affect our logo here
ui.setupUi(this);
ui.quasselLogo->setPixmap(QIcon(":/icons/quassel-64.png").pixmap(64)); // don't let the icon theme affect our logo here
- ui.versionLabel->setText(QString(tr("<b>Version:</b> %1<br><b>Protocol version:</b> %2<br><b>Built:</b> %3"))
+ ui.versionLabel->setText(QString(tr("<b>Version:</b> %1<br><b>Version date:</b> %2<br><b>Protocol version:</b> %3"))
.arg(Quassel::buildInfo().fancyVersionString)
.arg(Quassel::buildInfo().fancyVersionString)
- .arg(Quassel::buildInfo().protocolVersion)
- .arg(Quassel::buildInfo().buildDate));
+ .arg(Quassel::buildInfo().commitDate)
+ .arg(Quassel::buildInfo().protocolVersion));
ui.aboutTextBrowser->setHtml(about());
ui.authorTextBrowser->setHtml(authors());
ui.contributorTextBrowser->setHtml(contributors());
ui.aboutTextBrowser->setHtml(about());
ui.authorTextBrowser->setHtml(authors());
ui.contributorTextBrowser->setHtml(contributors());
void CoreInfoDlg::coreInfoAvailable()
{
ui.labelCoreVersion->setText(_coreInfo["quasselVersion"].toString());
void CoreInfoDlg::coreInfoAvailable()
{
ui.labelCoreVersion->setText(_coreInfo["quasselVersion"].toString());
- ui.labelCoreBuildDate->setText(_coreInfo["quasselBuildDate"].toString());
+ ui.labelCoreVersionDate->setText(_coreInfo["quasselBuildDate"].toString()); // "BuildDate" for compatibility
ui.labelClientCount->setNum(_coreInfo["sessionConnectedClients"].toInt());
updateUptime();
startTimer(1000);
ui.labelClientCount->setNum(_coreInfo["sessionConnectedClients"].toInt());
updateUptime();
startTimer(1000);
<item row="1" column="0" >
<widget class="QLabel" name="label" >
<property name="text" >
<item row="1" column="0" >
<widget class="QLabel" name="label" >
<property name="text" >
- <string>Build date:</string>
+ <string>Version date:</string>
</property>
</widget>
</item>
<item row="1" column="1" >
</property>
</widget>
</item>
<item row="1" column="1" >
- <widget class="QLabel" name="labelCoreBuildDate" >
+ <widget class="QLabel" name="labelCoreVersionDate" >
- <string><build date></string>
+ <string><version date></string>
</property>
</widget>
</item>
</property>
</widget>
</item>
// Determined from Git
#define GIT_HEAD "@GIT_HEAD@"
#define GIT_DESCRIBE "@GIT_DESCRIBE@"
// Determined from Git
#define GIT_HEAD "@GIT_HEAD@"
#define GIT_DESCRIBE "@GIT_DESCRIBE@"
+#define GIT_COMMIT_DATE @GIT_COMMIT_DATE@
// Will be substituted in official tarballs
#define DIST_HASH "$Format:%H$"
// Will be substituted in official tarballs
#define DIST_HASH "$Format:%H$"