mirror of
https://github.com/weewx/weewx.git
synced 2026-04-18 16:46:56 -04:00
* Got test suites working again. * Updated TODO * indicate specific firmware for cc3000 * clarify rainwise firmware * Further refinement - max and maxtime now updated - reworked the progress function, now a method in the class Have left __main__ code in that has been used for testing windSpeed recalculation fix * indicate when calibrations are ignored * Now emits the barometer trend in LOOP packets as field 'trendIcon' Vantage only. * Updated TODO guide, reflecting this morning's phone call. * Presses on, despite database error * Simplified patching by moving metadata code to DaySummaryManager * Got rid of _getVersion() Can now get it from _read_metadata * Remove interval weighting fix from weewx startup Refer TODO.txt * Update TODO.txt * added write timeout to ultimeter driver * better logging when cc3000 loses contact with sensors * document some of the channel, sensor, and logger specifics for the wmr100/wmr200 hardware * Removed the p word, patch.py is now database.py, rejigged wee_database as per skype and followup emails - progress function for fixes included as a method in base class that can be overridden - much changing of logging to give consistent results/output - believe I retained Tom's recent changes to patch.py (commit4acf752) * Picks daily summary weights on the basis of database version * Rewrote the backfill routine (again) * wee_database now uses new version of backfill_day_summary * Fixed problem that prevented cold startup * Revised to reflect latest wee_database incantation * Modified weighting fix Should not mess with lessUpdate Delete lastWeightPatch after successful patch * Check to make sure the daily summaries have not been partially updated. * Revised to reflect latest wee_database incantation * Revised wee_database and interval weighting paras, added windSpeed recalc para * Removed vacuum * Updated what has been done and committed * Better diagnostics with partial update of the daily summaries. * MySQL now uses transaction isolation level READ COMMITTED * Add .config (#204) * Changed semantics of "$last_xxx" tags. * Template test updates including fixing issue #201 (#205) * Add .config * Standardise test skin for index.html.tml to remove "%x %X" locale dependent formatting. Note: Used 24 hour time as AM/PM can also be locale dependent. Also include fixes for line formatting in some other test files and expected results. * sysctlbyname is not available on every platform, so catch AttributeError too, otherwise cheetah fails with a name error * Got rid of tabs * update usb mode info for acurite models * Removed intervalgenRoundTS and archiveDaysAgoSpan. * Simplified tags. Got template test working again. * Somehow, style "indent" got lost * Documented new "$ago" tags. * Documented $ago options, as well as .start and .end * Update changes doc * Stupid typo * use markdown instead of html for README * indenting seems to confuse markdown's handling of urls * Left over $last_day in $spans example (#206) * Add .config * Standardise test skin for index.html.tml to remove "%x %X" locale dependent formatting. Note: Used 24 hour time as AM/PM can also be locale dependent. Also include fixes for line formatting in some other test files and expected results. * Left over $last_day in $spans example. * a user-specified sensor_map will update, not replace, the default sensor_map * Updated the upgrade guide. * ensure that weewx-multi works on deb and rpm as well as setup.py * document the sensor mapping changes * Added comprehensive example to customizing guide. * Updated TODO * Got the weighting update to work on MySQL * added crude caching of pressure in wmr300 * Fixed typo * Fixed little errors. Consistently use "tag", instead of "dot code." * no altimeter, just pressure and barometer * Fixed little HTML problems. * Reformatted, in anticipation of a refactoring of some sections. * Fixed location of 'Version' So it works with automatic replacement of 'Version' * initial experiment with different fonts * override jquery-ui hijacking of toc font family * bring header highlighting to h2 to correlate with toc. reduce post-header margins. * fix some table header cruft. prevent indent sections from overflowing right margin. let the table cells breath. * fix broken tty formatting * Checkpoint Work in progress. * Refined examples of creating new units and groups * Polishing. Or, maybe fiddling? * minor css fixes. rearrange troubleshooting sections about pressure. * minor cleanup to readme * Fixed test suites Add MySQL back to template tests. * Reworked the iteration examples. * Corrected and clarified the units used in the "electricity" example. * remove write_timeout since naming is inconsistent between pyserial versions and there is no backward compatibility * remove write_timeout from ultimeter * Minor changes to users guide * increase body size to 100%. background for code. weeWX in titles. true bold for monospace. prep for direct font comparisons. * Clarified the role of encoding * update utilities guide with suggested wee_database descriptions and args * more compaction * increase margins on html examples. use droid serif for html examples. * Clarified a few things * decode weewx into weeWX * include transaction limit defaults * eliminate transaction-limit * weeWX fixes in install pages. more fixes to utilities. * missed a few code spans * fix version label alignment * use only major.minor for docs * Fix error where import fields that are None can cause Source.mapRawData() to crash in some cases * Updated TODO and NEW_FEATURES * There will be no daykeys if the daily summaries have been dropped. * Restructure usage string, hard code transaction days * dry-run goes with fix-strings, not check-strings * Log daily summary version * No need to check for weewx.debug * include examples in manifest * added examples and extensions to data_files * do not install sample extensions * Can now specify date field separator for Cumulus imports, weewx -> weeWX * Clarified option strings * Rudimentary test of selective daily summary rebuild * No longer allows selective rebuild of the daily summaries if the summaries are not complete * Hardwired UTF-8 encoding, but with a warning comment. * Hardwired UTF-8 encoding, but with a warning comment. * Documented Cumulus import separator config option * Added comments about Tools. * Changed to execute in user environment * Ported to PyMySQL as an alternative to python-mysqldb See https://github.com/PyMySQL/PyMySQL for a description of PyMySQL * Recognize additional MySQL "Can't connect" error * Fixed error in test suites Subsequent tests depended on ordering of a dictionary. * pymysql seems to have problems connecting via file socket unless it is told explicitly about it. * Workaround for pypy compiler * Defaults now support MySQLdb over pymysql * Fixed bug in record augmentation. The augmentation was happening without giving StdConvert a chance to do its thing. * More clear msg when encountering an ImportError * Clarified the relationship between archive period and report_timing option, aded note regarding primacy of the report cycle * Reverted back to MySQLdb only version. * Changed config option names but never changed the code! * One transaction for updating daily high/lows and archive record Formerly, these were done in two transactions. * v3.7.0a2 * Adjustable value for how long to wait after a bad uploader login. Option retry_login. Fixes issue #212. * Fixed Cumulus import rain field issue wee_import will try to use field 26(AA) - midnight reset daily rainfall but if not available due it will revert to field 9(J) or 11(L) * Switched back to __str__ when extracting string out of template. .respond() doesn't seem to encode Unicode characters properly * Fix errors in wee_import WU step-by-step, remove Cumulus version caveat on rain * Now uses dedicated test users 'weewx1' and 'weewx2' * Formal check of the various MySQLdb exceptions. * Added sqlite3 exceptions. * Reworked check_strings() output (#213) Reworked check_strings() screen and syslog output: - now gives progress ala --rebuild-daily - syslog is silent for --check-strings and --fix-strings with --dry-run - left 'Preparing' (rather than 'Starting') but added 'this may take a while' as there is a significant delay in dbmanager.genBatchRows() initialising at line 619 (well there was for 400k records) * reduce debug log spewage in wmr300 driver * Finished formal test of errors * First cut at V3.7 exception hierarchy * Ported the weedb sqlite driver to the new exception hierarchy. * Ported MySQLdb to the new database exception hierarchy. * windSpeed fix now gracefully handles no windSpeed summary table, tweaked --update output/logging * Now picks up absence of windSpeed daily summary * The weedb Connection object can now be used in a "with" clause. * The weedb Cursor object can now be used in a "with" clause. * V3.7.0a3 * more code removal * code formatting only * use apt instructions for debian installs * Reworked --wee-database section of Utilities Guide to reflect current wee-database operation - revised usage - reword --rebuild-daily - reword --check - reword --update * More details on upgrading * Moved start time to just before applying the patch * Accumulator is now initialized with override values from weewx.conf * Added sentences about wee_import/interval and weight patching multiple dbs * remove extensions from rpm and deb packages * v3.7.0b1 * Cleaned up some HTML warnings. * must do a try loop at the read level so we can skip the no data 'errors' and return empty buffer so that a subsequent write will get the station to talk again * Slightly more robust mechanism for decoding last time a file was FTP'd. * adjust wording of weighting description * added examples * simplify * fixed typo * fixed typo * read /etc/default before bailing out * make init script work properly with /etc/default/weewx * make output consistent * more simplification * keep PEP happy * avoid resource consumption from slow reports by extending the StdReport.max_wait. provide log messages when it happens. * new features have move to the roadmap * no more todo items left * do not emit default sensor_map to the config * aborted attempt to get additional battery status * bump to 3.7.0b2 * do recipe using wget instead of curl * forgot the O option to wget * do not warn when calibrations are ignored - the implementation resulted in too many log entries * get rid of tabs * added notes about wmr300 rain counter and logger * added norwegian 'no data available' as 'Ingen data er tilgjengelige' * simplify. eliminate more passive voice and gerunds. * avoid run-on * provide better feedback for operational errors. make manager logging more consistent. * fix typo in wmr300 ConfEditor * decode heatindex and windchill from wmr300 sensor outputs * fixed bad extract_signed invocation * fixed wmr* partial packets note * added mysqldb install instructions to userguide * minor html fixes * added link to wee_extension * clarify acurite sensor transmission periods. * added battery status for all wmr100 remote t/h sensors * added battery status for all wmr100 remote t sensors * document changes to wmr100, wmr200, wmr9x8 drivers. fix 'Calculatios' typo. * fixed inverted wmr200 battery status * rename fault_out to out_fault to match pattern of other faults * make battery status labels consistent across all wmr drivers * wmr300 driver moves from rc to 0.18 * bump to 3.7.0b3 * css fixes: neutralize the glaring yellow; brighten the note green to more closely match the tone of warning red; @media tweaks to match font changes. * fix column title * distinguish selection color from code color * fixed shift bug in weewx-multi * Fixed (I think) issue #219 * update logwatch script to properly handle revised generator log messages refer commit03c3e4ef57 (diff-3cefdd7265f340e9683b0a2d0417b70f)* normalize the quick-start * Merge branch 'development', remote branch 'origin' * fix layout table width on installation pages * v3.7.0b4 * use released_versions instead of previous_versions * Merge branch 'development', remote branch 'origin' * parameterize release rule. make release rule idempotent. * replace cheetahtemplate.org with pythonhosted.org * wee_database --help output was slightly different to reality * Removed BOM at beginning of customizing.htm * wee_database --help output was slightly different to reality * Reworded comment on whether to --update daily summaries. * cater for change in manager log output * remove misleading windGustDir info * bump to 3.7.0 * Added date to change log * escape the dollars in release target * fixed log syntax * adjust log level for wmr100 bad usb report * emit rapidfire cache info only when debug >= 3 * enable post_interval overrides for WOW uploader * Fixes issue #230, exception when using Rapidfire with metric units * Added StdRESTbase back in. It seems that some uploaders still depend on it. * Fixed problem that prevented a MySQL port from being specified. * Added antialias GIF to list of files to be installed. * Make sure GIF files get uploaded * distribute examples in a single directory * distinguish docs/examples vs examples * Fixed bug that prevented a port from being specified for MySQL installations. * Removed redundant change log entry * Add MySQL Error 2003 to exceptions (#234) * Added PR #234 to change log * Documented change in location of the examples * update examples paths in remaining guides. explicitly list all path changes for examples. * By default, autocommit is now enabled for the MySQL driver. Fixes issue #237. Included regression test.
284 lines
9.7 KiB
Makefile
284 lines
9.7 KiB
Makefile
# -*- makefile -*-
|
|
# this makefile controls the build and packaging of weewx
|
|
# Copyright 2013 Matthew Wall
|
|
|
|
# if you do not want to sign the packages, set SIGN to 0
|
|
SIGN=1
|
|
|
|
# destination for uploading releases
|
|
UPLOADDIR=weewx.com:/downloads/development_versions/
|
|
|
|
# destination for uploading docs
|
|
DOCDST=weewx.com:/
|
|
|
|
# home directory at weewx.com
|
|
WEEWX_COM_HOME=/home/content/t/o/m/tomkeffer
|
|
WEEWX_DOWNLOADS=$(WEEWX_COM_HOME)/html/downloads
|
|
|
|
# extract version to be used in package controls and labels
|
|
VERSION=$(shell grep "__version__.*=" bin/weewx/__init__.py | sed -e 's/__version__=//' | sed -e 's/"//g')
|
|
# just the major.minor part of the version
|
|
MMVERSION:=$(shell echo "$(VERSION)" | sed -E 's%.[0-9a-z]+$$%%')
|
|
|
|
CWD = $(shell pwd)
|
|
BLDDIR=build
|
|
DSTDIR=dist
|
|
DOCSRC=docs
|
|
|
|
PYTHON=python
|
|
|
|
all: help
|
|
|
|
help: info
|
|
@echo "options include:"
|
|
@echo " info display values of variables we care about"
|
|
@echo " install run the generic python install"
|
|
@echo " version get version from __init__ and insert elsewhere"
|
|
@echo ""
|
|
@echo " readme create README.txt suitable for distribution"
|
|
@echo " deb-changelog prepend stub changelog entry for deb"
|
|
@echo " rpm-changelog prepend stub changelog entry for rpm"
|
|
@echo ""
|
|
@echo " src-package create source tarball suitable for distribution"
|
|
@echo " deb-package create .deb package"
|
|
@echo " rpm-package create .rpm package"
|
|
@echo ""
|
|
@echo " check-deb check the deb package"
|
|
@echo " check-rpm check the rpm package"
|
|
@echo " check-docs run weblint on the docs"
|
|
@echo ""
|
|
@echo " upload-src upload the src package"
|
|
@echo " upload-deb upload the deb package"
|
|
@echo " upload-rpm upload the rpm package"
|
|
@echo " upload-readme upload the README.txt"
|
|
@echo ""
|
|
@echo " upload-docs upload docs to weewx.com"
|
|
@echo ""
|
|
@echo " release rearrange files on the download server"
|
|
@echo ""
|
|
@echo " test run all unit tests"
|
|
@echo " SUITE=path/to/foo.py to run only foo tests"
|
|
|
|
info:
|
|
@echo " VERSION: $(VERSION)"
|
|
@echo " MMVERSION: $(MMVERSION)"
|
|
@echo " CWD: $(CWD)"
|
|
@echo " UPLOADDIR: $(UPLOADDIR)"
|
|
@echo " DOCDST: $(DOCDST)"
|
|
@echo " USER: $(USER)"
|
|
|
|
realclean:
|
|
rm -f MANIFEST
|
|
rm -rf build
|
|
rm -rf dist
|
|
|
|
check-docs:
|
|
weblint docs/*.htm
|
|
|
|
# if no suite is specified, find all test suites in the source tree
|
|
ifndef SUITE
|
|
SUITE=`find bin -name "test_*.py"`
|
|
endif
|
|
test:
|
|
@rm -f $(BLDDIR)/test-results
|
|
@mkdir -p $(BLDDIR)
|
|
@for f in $(SUITE); do \
|
|
echo running $$f; \
|
|
echo $$f >> $(BLDDIR)/test-results; \
|
|
PYTHONPATH="bin:examples" $(PYTHON) $$f >> $(BLDDIR)/test-results 2>&1; \
|
|
echo >> $(BLDDIR)/test-results; \
|
|
done
|
|
@grep "ERROR:\|FAIL:" $(BLDDIR)/test-results || echo "no failures"
|
|
@echo "see $(BLDDIR)/test-results"
|
|
|
|
MYSQLSETUP="create user 'weewx'@'localhost' identified by 'weewx';\n\
|
|
grant all on *.* to 'weewx'@'localhost';\n"
|
|
test-setup:
|
|
echo $(MYSQLSETUP) | mysql --user=root -p
|
|
|
|
TESTDIR=/var/tmp/weewx_test
|
|
MYSQLCLEAN="drop database test_weewx;\n\
|
|
drop database test_alt_weewx;\n\
|
|
drop database test_sim;\n"
|
|
test-clean:
|
|
rm -f $(TESTDIR)
|
|
echo $(MYSQLCLEAN) | mysql --user=weewx --password=weewx --force >/dev/null 2>&1
|
|
|
|
install:
|
|
./setup.py --install
|
|
|
|
SRCPKG=weewx-$(VERSION).tar.gz
|
|
src-package $(DSTDIR)/$(SRCPKG): MANIFEST.in
|
|
rm -f MANIFEST
|
|
./setup.py sdist
|
|
|
|
upload-src:
|
|
(cd $(DSTDIR); ftp -u $(USER)@$(UPLOADDIR) $(SRCPKG))
|
|
|
|
# upload docs to the weewx web site
|
|
upload-docs:
|
|
ftp -u $(USER)@$(DOCDST) $(DOCSRC)/*.htm $(DOCSRC)/changes.txt $(DOCSRC)/images/*.png $(DOCSRC)/images/*.jpg $(DOCSRC)/images/*.gif $(DOCSRC)/js/*.js $(DOCSRC)/css/weewx_$(DOCSRC).css $(DOCSRC)/css/jquery.tocify.css $(DOCSRC)/css/ui-lightness/*.css $(DOCSRC)/css/ui-lightness/images/*.png $(DOCSRC)/css/ui-lightness/images/*.gif
|
|
|
|
# create the README.txt for uploading
|
|
README_HEADER="\
|
|
--------------------\n\
|
|
weewx packages \n\
|
|
--------------------\n\
|
|
\n\
|
|
$(DEBPKG)\n\
|
|
for Debian, Ubuntu, Mint, including Raspberry Pi\n\
|
|
\n\
|
|
weewx-$(RPMVER).rhel.$(RPMARCH).rpm\n\
|
|
for Redhat, CentOS, Fedora\n\
|
|
\n\
|
|
weewx-$(RPMVER).suse.$(RPMARCH).rpm\n\
|
|
for SuSE, OpenSuSE\n\
|
|
\n\
|
|
$(SRCPKG)\n\
|
|
for all operating systems including Linux, BSD, MacOSX\n\
|
|
this is the best choice if you intend to customize weewx\n\
|
|
\n\
|
|
--------------------\n\
|
|
weewx change history\n\
|
|
--------------------\n"
|
|
readme: docs/changes.txt
|
|
mkdir -p $(DSTDIR)
|
|
rm -f $(DSTDIR)/README.txt
|
|
echo $(README_HEADER) > $(DSTDIR)/README.txt
|
|
pkg/mkchangelog.pl --ifile docs/changes.txt >> $(DSTDIR)/README.txt
|
|
|
|
upload-readme: readme
|
|
(cd $(DSTDIR); ftp -u $(USER)@$(UPLOADDIR) README.txt)
|
|
|
|
# update the version in all relevant places
|
|
VDOCS=readme.htm customizing.htm devnotes.htm hardware.htm usersguide.htm upgrading.htm utilities.htm
|
|
version:
|
|
for f in $(VDOCS); do \
|
|
sed -e 's/^Version: [0-9].*/Version: $(MMVERSION)/' docs/$$f > docs/$$f.tmp; \
|
|
mv docs/$$f.tmp docs/$$f; \
|
|
done
|
|
sed -e 's/version =.*/version = $(VERSION)/' weewx.conf > weewx.conf.tmp; mv weewx.conf.tmp weewx.conf
|
|
|
|
DEBREVISION=1
|
|
DEBVER=$(VERSION)-$(DEBREVISION)
|
|
# add a skeleton entry to deb changelog
|
|
deb-changelog:
|
|
if [ "`grep $(DEBVER) pkg/debian/changelog`" = "" ]; then \
|
|
pkg/mkchangelog.pl --action stub --format debian --release-version $(DEBVER) > pkg/debian/changelog.new; \
|
|
cat pkg/debian/changelog >> pkg/debian/changelog.new; \
|
|
mv pkg/debian/changelog.new pkg/debian/changelog; \
|
|
fi
|
|
|
|
# use dpkg-buildpackage to create the debian package
|
|
# -us -uc - skip gpg signature on .dsc and .changes
|
|
# the latest version in the debian changelog must match the packaging version
|
|
DEBARCH=all
|
|
DEBBLDDIR=$(BLDDIR)/weewx-$(VERSION)
|
|
DEBPKG=weewx_$(VERSION)-$(DEBREVISION)_$(DEBARCH).deb
|
|
ifneq ("$(SIGN)","1")
|
|
DPKG_OPT=-us -uc
|
|
endif
|
|
deb-package: $(DSTDIR)/$(SRCPKG)
|
|
mkdir -p $(BLDDIR)
|
|
cp $(DSTDIR)/$(SRCPKG) $(BLDDIR)
|
|
(cd $(BLDDIR); tar xvfz $(SRCPKG))
|
|
(cd $(BLDDIR); mv $(SRCPKG) weewx_$(VERSION).orig.tar.gz)
|
|
rm -rf $(DEBBLDDIR)/debian
|
|
mkdir -m 0755 $(DEBBLDDIR)/debian
|
|
mkdir -m 0755 $(DEBBLDDIR)/debian/source
|
|
cp pkg/debian/changelog $(DEBBLDDIR)/debian
|
|
cp pkg/debian/compat $(DEBBLDDIR)/debian
|
|
cp pkg/debian/conffiles $(DEBBLDDIR)/debian
|
|
cp pkg/debian/config $(DEBBLDDIR)/debian
|
|
cp pkg/debian/control $(DEBBLDDIR)/debian
|
|
cp pkg/debian/copyright $(DEBBLDDIR)/debian
|
|
cp pkg/debian/postinst $(DEBBLDDIR)/debian
|
|
cp pkg/debian/postrm $(DEBBLDDIR)/debian
|
|
cp pkg/debian/preinst $(DEBBLDDIR)/debian
|
|
cp pkg/debian/prerm $(DEBBLDDIR)/debian
|
|
cp pkg/debian/rules $(DEBBLDDIR)/debian
|
|
cp pkg/debian/source/format $(DEBBLDDIR)/debian/source
|
|
cp pkg/debian/templates $(DEBBLDDIR)/debian
|
|
(cd $(DEBBLDDIR); dpkg-buildpackage $(DPKG_OPT))
|
|
mkdir -p $(DSTDIR)
|
|
mv $(BLDDIR)/$(DEBPKG) $(DSTDIR)
|
|
|
|
# run lintian on the deb package
|
|
check-deb:
|
|
lintian -Ivi $(DSTDIR)/$(DEBPKG)
|
|
|
|
upload-deb:
|
|
(cd $(DSTDIR); ftp -u $(USER)@$(UPLOADDIR) $(DEBPKG))
|
|
|
|
RPMREVISION=1
|
|
RPMVER=$(VERSION)-$(RPMREVISION)
|
|
# add a skeleton entry to rpm changelog
|
|
rpm-changelog:
|
|
if [ "`grep $(RPMVER)1 pkg/changelog.rpm`" = "" ]; then \
|
|
pkg/mkchangelog.pl --action stub --format redhat --release-version $(RPMVER) > pkg/changelog.rpm.new; \
|
|
cat pkg/changelog.rpm >> pkg/changelog.rpm.new; \
|
|
mv pkg/changelog.rpm.new pkg/changelog.rpm; \
|
|
fi
|
|
|
|
# use rpmbuild to create the rpm package
|
|
RPMARCH=noarch
|
|
RPMOS=$(shell if [ -f /etc/SuSE-release ]; then echo .suse; else echo .rhel; fi)
|
|
RPMBLDDIR=$(BLDDIR)/weewx-$(RPMVER)$(RPMOS).$(RPMARCH)
|
|
RPMPKG=weewx-$(RPMVER)$(RPMOS).$(RPMARCH).rpm
|
|
rpm-package: $(DSTDIR)/$(SRCPKG)
|
|
rm -rf $(RPMBLDDIR)
|
|
mkdir -p -m 0755 $(RPMBLDDIR)
|
|
mkdir -p -m 0755 $(RPMBLDDIR)/BUILD
|
|
mkdir -p -m 0755 $(RPMBLDDIR)/BUILDROOT
|
|
mkdir -p -m 0755 $(RPMBLDDIR)/RPMS
|
|
mkdir -p -m 0755 $(RPMBLDDIR)/SOURCES
|
|
mkdir -p -m 0755 $(RPMBLDDIR)/SPECS
|
|
mkdir -p -m 0755 $(RPMBLDDIR)/SRPMS
|
|
sed -e 's%Version:.*%Version: $(VERSION)%' \
|
|
pkg/weewx.spec.in > $(RPMBLDDIR)/SPECS/weewx.spec
|
|
cat pkg/changelog.rpm >> $(RPMBLDDIR)/SPECS/weewx.spec
|
|
cp dist/weewx-$(VERSION).tar.gz $(RPMBLDDIR)/SOURCES
|
|
rpmbuild -ba --clean --define '_topdir $(CWD)/$(RPMBLDDIR)' --target noarch $(CWD)/$(RPMBLDDIR)/SPECS/weewx.spec
|
|
mkdir -p $(DSTDIR)
|
|
mv $(RPMBLDDIR)/RPMS/$(RPMARCH)/$(RPMPKG) $(DSTDIR)
|
|
# mv $(RPMBLDDIR)/SRPMS/weewx-$(RPMVER)$(RPMOS).src.rpm $(DSTDIR)
|
|
ifeq ("$(SIGN)","1")
|
|
rpm --addsign $(DSTDIR)/$(RPMPKG)
|
|
# rpm --addsign $(DSTDIR)/weewx-$(RPMVER)$(RPMOS).src.rpm
|
|
endif
|
|
|
|
# add the latest version to the local apt repo using aptly
|
|
update-apt-repo:
|
|
aptly repo add weewx $(DSTDIR)/$(DEBPKG)
|
|
aptly snapshot create weewx-$(VERSION) from repo weewx
|
|
aptly -architectures="all" publish switch squeeze weewx-$(VERSION)
|
|
|
|
# publish apt repo changes to the public weewx apt repo
|
|
publish-apt-repo:
|
|
rsync -arv --rsync-path $(WEEWX_COM_HOME)/bin/rsync -e ssh ~/.aptly/ $(USER)@weewx.com:$(WEEWX_COM_HOME)/html/aptly
|
|
|
|
# run rpmlint on the redhat package
|
|
check-rpm:
|
|
rpmlint $(DSTDIR)/$(RPMPKG)
|
|
|
|
upload-rpm:
|
|
(cd $(DSTDIR); ftp -u $(USER)@$(UPLOADDIR) $(RPMPKG))
|
|
|
|
# move files from the upload directory to the release directory and set up the
|
|
# symlinks to them from the download root directory
|
|
DEVDIR=$(WEEWX_DOWNLOADS)/development_versions
|
|
RELDIR=$(WEEWX_DOWNLOADS)/released_versions
|
|
ARTIFACTS=weewx-$(RPMVER).rhel.noarch.rpm weewx-$(RPMVER).suse.noarch.rpm weewx-$(VERSION).tar.gz weewx_$(DEBVER)_all.deb
|
|
release:
|
|
ssh $(USER)@weewx.com "for f in $(ARTIFACTS); do if [ -f $(DEVDIR)/\$$f ]; then mv $(DEVDIR)/\$$f $(RELDIR); fi; done"
|
|
ssh $(USER)@weewx.com "rm -f $(WEEWX_DOWNLOADS)/weewx*"
|
|
ssh $(USER)@weewx.com "for f in $(ARTIFACTS); do if [ -f $(RELDIR)/\$$f ]; then ln -s released_versions/\$$f $(WEEWX_DOWNLOADS); fi; done"
|
|
ssh $(USER)@weewx.com "if [ -f $(DEVDIR)/README.txt ]; then mv $(DEVDIR)/README.txt $(WEEWX_DOWNLOADS); fi"
|
|
|
|
# run perlcritic to ensure clean perl code. put these in ~/.perlcriticrc:
|
|
# [-CodeLayout::RequireTidyCode]
|
|
# [-Modules::ProhibitExcessMainComplexity]
|
|
# [-Modules::RequireVersionVar]
|
|
critic:
|
|
perlcritic -1 --verbose 8 pkg/mkchangelog.pl
|