Dropped dbus at_console policy and implemented polkit authorization. By the default policy the query actions are allowed for all users, actions which do modification to the system settings or Tuned state are by default allowed only for active users that have console, others need admin authorization. Resolves: rhbz#1095142 Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
176 lines
6.6 KiB
Makefile
176 lines
6.6 KiB
Makefile
NAME = tuned
|
|
# set to devel for nightly GIT snapshot
|
|
BUILD = release
|
|
# which config to use in mock-build target
|
|
MOCK_CONFIG = rhel-7-x86_64
|
|
# scratch-build for triggering Jenkins
|
|
SCRATCH_BUILD_TARGET = rhel-7.2-candidate
|
|
VERSION = $(shell awk '/^Version:/ {print $$2}' tuned.spec)
|
|
GIT_DATE = $(shell date +'%Y%m%d')
|
|
ifeq ($(BUILD), release)
|
|
RPM_ARGS += --without snapshot
|
|
MOCK_ARGS += --without=snapshot
|
|
RPM_VERSION = $(NAME)-$(VERSION)-1
|
|
else
|
|
RPM_ARGS += --with snapshot
|
|
MOCK_ARGS += --with=snapshot
|
|
GIT_SHORT_COMMIT = $(shell git rev-parse --short=8 --verify HEAD)
|
|
GIT_SUFFIX = $(GIT_DATE)git$(GIT_SHORT_COMMIT)
|
|
GIT_PSUFFIX = .$(GIT_SUFFIX)
|
|
RPM_VERSION = $(NAME)-$(VERSION)-1$(GIT_PSUFFIX)
|
|
endif
|
|
UNITDIR = $(shell rpm --eval '%{_unitdir}' 2>/dev/null || echo /usr/lib/systemd/system)
|
|
TMPFILESDIR = $(shell rpm --eval '%{_tmpfilesdir}' 2>/dev/null || echo /usr/lib/tmpfiles.d)
|
|
VERSIONED_NAME = $(NAME)-$(VERSION)$(GIT_PSUFFIX)
|
|
|
|
DATADIR = /usr/share
|
|
DOCDIR = $(DATADIR)/doc/$(NAME)
|
|
PYTHON_SITELIB = $(shell python -c 'from distutils.sysconfig import get_python_lib; print get_python_lib();' || echo /usr/lib/python2.7/site-packages)
|
|
TUNED_PROFILESDIR = /usr/lib/tuned
|
|
BASH_COMPLETIONS = $(DATADIR)/bash-completion/completions
|
|
|
|
release-dir:
|
|
mkdir -p $(VERSIONED_NAME)
|
|
|
|
release-cp: release-dir
|
|
cp -a AUTHORS COPYING INSTALL README $(VERSIONED_NAME)
|
|
|
|
cp -a tuned.py tuned.spec tuned.service tuned.tmpfiles Makefile tuned-adm.py \
|
|
tuned-adm.bash dbus.conf recommend.conf tuned-main.conf 00_tuned \
|
|
bootcmdline com.redhat.tuned.policy com.redhat.tuned.gui.policy \
|
|
tuned-gui.py tuned-gui.glade tuned-gui.desktop $(VERSIONED_NAME)
|
|
cp -a doc experiments libexec man profiles systemtap tuned contrib icons \
|
|
$(VERSIONED_NAME)
|
|
|
|
archive: clean release-cp
|
|
tar cjf $(VERSIONED_NAME).tar.bz2 $(VERSIONED_NAME)
|
|
|
|
rpm-build-dir:
|
|
mkdir rpm-build-dir
|
|
|
|
srpm: archive rpm-build-dir
|
|
rpmbuild --define "_sourcedir `pwd`/rpm-build-dir" --define "_srcrpmdir `pwd`/rpm-build-dir" \
|
|
--define "_specdir `pwd`/rpm-build-dir" --nodeps $(RPM_ARGS) -ts $(VERSIONED_NAME).tar.bz2
|
|
|
|
rpm: archive rpm-build-dir
|
|
rpmbuild --define "_sourcedir `pwd`/rpm-build-dir" --define "_srcrpmdir `pwd`/rpm-build-dir" \
|
|
--define "_specdir `pwd`/rpm-build-dir" --nodeps $(RPM_ARGS) -tb $(VERSIONED_NAME).tar.bz2
|
|
|
|
clean-mock-result-dir:
|
|
rm -f mock-result-dir/*
|
|
|
|
mock-result-dir:
|
|
mkdir mock-result-dir
|
|
|
|
# delete RPM files older than cca. one week if total space occupied is more than 5 MB
|
|
tidy-mock-result-dir: mock-result-dir
|
|
if [ `du -bs mock-result-dir | tail -n 1 | cut -f1` -gt 5000000 ]; then \
|
|
rm -f `find mock-result-dir -name '*.rpm' -mtime +7`; \
|
|
fi
|
|
|
|
mock-build: srpm
|
|
mock -r $(MOCK_CONFIG) $(MOCK_ARGS) --resultdir=`pwd`/mock-result-dir `ls rpm-build-dir/*$(RPM_VERSION).*.src.rpm | head -n 1`&& \
|
|
rm -f mock-result-dir/*.log
|
|
|
|
mock-devel-build: srpm
|
|
mock -r $(MOCK_CONFIG) --with=snapshot \
|
|
--define "git_short_commit `if [ -n \"$(GIT_SHORT_COMMIT)\" ]; then echo $(GIT_SHORT_COMMIT); else git rev-parse --short=8 --verify HEAD; fi`" \
|
|
--resultdir=`pwd`/mock-result-dir `ls rpm-build-dir/*$(RPM_VERSION).*.src.rpm | head -n 1` && \
|
|
rm -f mock-result-dir/*.log
|
|
|
|
createrepo: mock-devel-build
|
|
createrepo mock-result-dir
|
|
|
|
# scratch build to triggering Jenkins
|
|
scratch-build: mock-devel-build
|
|
brew build --scratch --nowait rhel-7.2-candidate `ls mock-result-dir/*$(GIT_DATE)git*.*.src.rpm | head -n 1`
|
|
|
|
nightly: tidy-mock-result-dir createrepo scratch-build
|
|
rsync -ave ssh --delete --progress mock-result-dir/* jskarvad@fedorapeople.org:/home/fedora/jskarvad/public_html/tuned/devel/repo/
|
|
|
|
install-dirs:
|
|
mkdir -p $(DESTDIR)$(PYTHON_SITELIB)
|
|
mkdir -p $(DESTDIR)$(TUNED_PROFILESDIR)
|
|
mkdir -p $(DESTDIR)/var/log/tuned
|
|
mkdir -p $(DESTDIR)/run/tuned
|
|
mkdir -p $(DESTDIR)$(DOCDIR)
|
|
|
|
install: install-dirs
|
|
# library
|
|
cp -a tuned $(DESTDIR)$(PYTHON_SITELIB)
|
|
|
|
# binaries
|
|
install -Dpm 0755 tuned.py $(DESTDIR)/usr/sbin/tuned
|
|
install -Dpm 0755 tuned-adm.py $(DESTDIR)/usr/sbin/tuned-adm
|
|
install -Dpm 0755 tuned-gui.py $(DESTDIR)/usr/sbin/tuned-gui
|
|
$(foreach file, $(wildcard systemtap/*), \
|
|
install -Dpm 0755 $(file) $(DESTDIR)/usr/sbin/$(notdir $(file));)
|
|
|
|
# glade
|
|
install -Dpm 0755 tuned-gui.glade $(DESTDIR)$(DATADIR)/tuned/ui/tuned-gui.glade
|
|
|
|
# tools
|
|
install -Dpm 0755 experiments/powertop2tuned.py $(DESTDIR)/usr/bin/powertop2tuned
|
|
|
|
# configuration files
|
|
install -Dpm 0644 tuned-main.conf $(DESTDIR)/etc/tuned/tuned-main.conf
|
|
# None profile in the moment, autodetection will be used
|
|
echo -n > $(DESTDIR)/etc/tuned/active_profile
|
|
install -Dpm 0644 bootcmdline $(DESTDIR)/etc/tuned/bootcmdline
|
|
|
|
# profiles & system config
|
|
cp -a profiles/* $(DESTDIR)$(TUNED_PROFILESDIR)/
|
|
mv $(DESTDIR)$(TUNED_PROFILESDIR)/realtime/realtime-variables.conf \
|
|
$(DESTDIR)/etc/tuned/realtime-variables.conf
|
|
mv $(DESTDIR)$(TUNED_PROFILESDIR)/realtime-virtual-guest/realtime-virtual-guest-variables.conf \
|
|
$(DESTDIR)/etc/tuned/realtime-virtual-guest-variables.conf
|
|
mv $(DESTDIR)$(TUNED_PROFILESDIR)/realtime-virtual-host/realtime-virtual-host-variables.conf \
|
|
$(DESTDIR)/etc/tuned/realtime-virtual-host-variables.conf
|
|
install -pm 0644 recommend.conf $(DESTDIR)$(TUNED_PROFILESDIR)/recommend.conf
|
|
|
|
# bash completion
|
|
install -Dpm 0644 tuned-adm.bash $(DESTDIR)$(BASH_COMPLETIONS)/tuned-adm
|
|
|
|
# runtime directory
|
|
install -Dpm 0644 tuned.tmpfiles $(DESTDIR)$(TMPFILESDIR)/tuned.conf
|
|
|
|
# systemd units
|
|
install -Dpm 0644 tuned.service $(DESTDIR)$(UNITDIR)/tuned.service
|
|
|
|
# dbus configuration
|
|
install -Dpm 0644 dbus.conf $(DESTDIR)/etc/dbus-1/system.d/com.redhat.tuned.conf
|
|
|
|
# grub template
|
|
install -Dpm 0755 00_tuned $(DESTDIR)/etc/grub.d/00_tuned
|
|
|
|
# polkit configuration
|
|
install -Dpm 0644 com.redhat.tuned.policy $(DESTDIR)$(DATADIR)/polkit-1/actions/com.redhat.tuned.policy
|
|
install -Dpm 0644 com.redhat.tuned.gui.policy $(DESTDIR)$(DATADIR)/polkit-1/actions/com.redhat.tuned.gui.policy
|
|
|
|
# manual pages
|
|
$(foreach man_section, 5 7 8, $(foreach file, $(wildcard man/*.$(man_section)), \
|
|
install -Dpm 0644 $(file) $(DESTDIR)$(DATADIR)/man/man$(man_section)/$(notdir $(file));))
|
|
|
|
# documentation
|
|
cp -a doc/* $(DESTDIR)$(DOCDIR)
|
|
cp AUTHORS COPYING README $(DESTDIR)$(DOCDIR)
|
|
|
|
# libexec scripts
|
|
$(foreach file, $(wildcard libexec/*), \
|
|
install -Dpm 0755 $(file) $(DESTDIR)/usr/libexec/tuned/$(notdir $(file));)
|
|
|
|
# icon
|
|
install -Dpm 0644 icons/tuned.svg $(DESTDIR)$(DATADIR)/icons/hicolor/scalable/apps/tuned.svg
|
|
|
|
# desktop file
|
|
install -dD $(DESTDIR)$(DATADIR)/applications
|
|
desktop-file-install --dir=$(DESTDIR)$(DATADIR)/applications tuned-gui.desktop
|
|
|
|
clean:
|
|
find -name "*.pyc" | xargs rm -f
|
|
rm -rf $(VERSIONED_NAME) rpm-build-dir
|
|
|
|
test:
|
|
python -m unittest discover tests
|
|
|
|
.PHONY: clean archive srpm tag test
|