diff --git a/app/xrandr/ChangeLog b/app/xrandr/ChangeLog index 34ed9061b..7bcde883f 100644 --- a/app/xrandr/ChangeLog +++ b/app/xrandr/ChangeLog @@ -1,3 +1,272 @@ +commit 824484e5ba50f1e6858ea990393c181a249c3a5e +Author: Matt Turner +Date: Mon Aug 12 10:42:41 2019 -0700 + + xrandr 1.5.1 + + Signed-off-by: Matt Turner + +commit edac280f06da2ad2256c710f95b34253202e6e49 +Author: Matt Turner +Date: Mon Aug 12 10:49:52 2019 -0700 + + Build xz tarballs instead of bzip2 + + Signed-off-by: Matt Turner + +commit 829ed54d89bb37c9e2f8050fe72bd4ecf7b5395a +Author: Vladimir Panteleev +Date: Thu Dec 20 11:28:51 2018 +0000 + + xrandr: Fix deleting inactive monitors + + The following commands did not behave correctly: + + xrandr --setmonitor empty auto none + xrandr --delmonitor empty + + The second command failed with "No monitor named 'empty'". This + occurred because get_monitors was invoked with its get_active argument + set to False, which caused it to not retrieve inactive monitors. Thus, + inactive monitors could not be deleted. + + Fix this bug by invoking get_monitors (and, thus, XRRGetMonitors) with + get_active = False, thus enabling deletion of disabled monitors. + + Signed-off-by: Matt Turner + +commit 9e5fa7c8c26f78e121ffad0d7a745a674c4a1849 +Author: Adam Simpkins +Date: Thu Aug 3 15:11:53 2017 -0700 + + xrandr: fix crash if some modes cannot be found + + When printing modes in "xrandr -q", check to see if we failed to look up + mode information from a mode XID. Previously the command would + dereference null and crash if the mode information could not be found. + + When using an external HDMI monitor on a laptop with a Skylake Intel + graphics chipset "xrandr -q" occasionally is unable to look up mode + information for some of the modes. It seems likely there is some other + sort of library or driver issue causing these lookup failures, but this + change to xrandr at least prevents it from segfaulting. + + Signed-off-by: Alan Coopersmith + +commit 3316ccaca35dc5fc6b6e3b5826e222cd648eb9c9 +Author: Alan Coopersmith +Date: Wed Nov 21 17:17:09 2018 -0800 + + Update configure.ac bug URL for gitlab migration + + Signed-off-by: Alan Coopersmith + +commit 004681fb9c71256feb49e2bda203819654b0a05f +Author: Alan Coopersmith +Date: Fri Nov 16 22:47:41 2018 -0800 + + Update README for gitlab migration + + Signed-off-by: Alan Coopersmith + +commit a2134406ab0aef44e7b710e1e2a2a40965e96692 +Author: Peter Hutterer +Date: Thu Sep 13 09:44:16 2018 +1000 + + init the name to 0 + + There are a few conditions where coverity finds a use of an uninitialized + field of the name_t struct. These are rather messy combinations of conditions, + so let's go with the simple solution here and just init everything to 0. + This may still have side-effects but at least they'll be more obvious than the + previous "use whatever memory is leftover from breakfast". + + This patch also adds a missing init_name(), much for the same reason. + + Signed-off-by: Peter Hutterer + +commit 9882680c9f7f433a47514a9cb799c79e3e10a024 +Author: Pali Rohár +Date: Sat Mar 10 16:23:29 2018 +0100 + + Document that --dpi and --fbmm options set DPI of whole X screen + + Explicitly document and make it clear that those options do not change + DPI of some monitor output. Also state that these options have no useful + meaning for multi-monitor configuration. + + Signed-off-by: Pali Rohár + Reviewed-by: Giuseppe Bilotta + +commit da61a8bd95bd20d45397eee6a6c0d3ad5a50c399 +Author: Giuseppe Bilotta +Date: Tue Feb 6 22:02:42 2018 +0100 + + xrandr: gamma and scaling factors must be positive + + Signed-off-by: Giuseppe Bilotta + Reviewed-by: Alex Deucher + Reviewed-by: Keith Packard + +commit 5e95248b5bab1254ecedffb6cb681b0ee06c0f29 +Author: Giuseppe Bilotta +Date: Mon Feb 5 02:01:21 2018 +0100 + + xrandr.man: document the monitor manipulation options + + Signed-off-by: Giuseppe Bilotta + Reviewed-by: Alex Deucher + Reviewed-by: Keith Packard + +commit cf25d585df5582d29528acc35f1c91dcb98b0f00 +Author: Giuseppe Bilotta +Date: Mon Feb 5 01:31:15 2018 +0100 + + xrandr: allow single value for --gamma + + Similarly to --scale, accept a single value to be used for all three + components, and refuse values with extra junk after the acceptable + values. + + Signed-off-by: Giuseppe Bilotta + Reviewed-by: Alex Deucher + Reviewed-by: Keith Packard + +commit 289bc0f1c53d8bc488d96e7f79afabd361758e08 +Author: Giuseppe Bilotta +Date: Sun Jul 16 14:57:40 2017 +0200 + + xrandr.man: grammar tuning + + Rephrase the --scale option paragraph to improve English and be more + consistent in choice of plurals and tense. Also ensure that each + sentence starts on a new line in the roff source. + + Signed-off-by: Giuseppe Bilotta + Reviewed-by: Alex Deucher + Reviewed-by: Keith Packard + +commit 635a4c8bc9f81852dc77b5dc9de1ce5825849a7f +Author: Giuseppe Bilotta +Date: Sun Jul 16 15:05:21 2017 +0200 + + xrandr: stricter --scale argument parsing + + We used to accept something like --scale 2x3junk as a valid input + (scaling x by 2 and y by 3), even though this isn't really a valid + scaling factor. + + Fix by making sure there is nothing after the parsed number(s). + + Signed-off-by: Giuseppe Bilotta + Reviewed-by: Alex Deucher + Reviewed-by: Keith Packard + +commit 4e655b2cfc79b02d0ca7cea82b09f1f1133f1a0a +Author: Giuseppe Bilotta +Date: Wed May 17 17:20:50 2017 +0200 + + xrandr: allow a single value for --scale + + This allows using e.g. --scale 0.5 as a shorthand for --scale 0.5x0.5 + + Signed-off-by: Giuseppe Bilotta + Reviewed-by: Alex Deucher + Reviewed-by: Keith Packard + +commit 8969b3c651eaae3e3a2370ec45f4eeae9750111d +Author: Aaron Plattner +Date: Thu Jun 1 15:45:59 2017 -0700 + + man: Document the new --filter option + + Signed-off-by: Aaron Plattner + Reviewed-by: Peter Hutterer + Signed-off-by: Peter Hutterer + +commit 6ac2afc0d7d8d51d4085767b901667393c11061b +Author: Pablo De La Garza +Date: Thu Mar 23 16:05:02 2017 -0700 + + xrandr: Add a "--filter" flag + + Flag can be set to "nearest" or "bilinear" + + Signed-off-by: Pablo De La Garza + [aplattner@nvidia.com: Fixed style and whitespace] + Signed-off-by: Aaron Plattner + +commit 5d5db88d106a49d7560a8042fa054df8b609f00a +Author: Pali Rohár +Date: Sun May 28 23:33:26 2017 +0200 + + Document format of --dpi option in non-ambiguous way + + Slash in previous documentation could be misunderstood as part of the + --dpi command line option. So fix it. + + Signed-off-by: Pali Rohár + Signed-off-by: Peter Hutterer + +commit 215a01f1513f918e7295a8a477d4674f7b8085f0 +Author: Giuseppe Bilotta +Date: Wed Jan 18 08:52:23 2017 +0100 + + xrandr: suppress misleading indentation warning + + When printing out rotations, we print a space before any item other than + the first, and set `first = False` in each block where we print. + However, this is done in the same line as the conditional that checks if + first is set, which may give the impression that the assignment is also + under the conditional. This is not the case, and recent GCC warns about + this. + + Move the assignment to after we print the value we want to print, which + (1) doesn't mislead about the indentation, and + (2) makes logical sense as the _next_ entry is what won't be the first. + + Signed-off-by: Giuseppe Bilotta + +commit 85e95db7120da3bdaf9efb3033be5f9338e6c328 +Author: Giuseppe Bilotta +Date: Wed Jan 18 08:52:09 2017 +0100 + + xrandr: document that we accept '--dpi output' + + Signed-off-by: Giuseppe Bilotta + +commit 1b561d25d197069a4a2c8b5d4007938b669ee612 +Author: Mihail Konev +Date: Thu Jan 26 14:00:21 2017 +1000 + + autogen: add default patch prefix + + Signed-off-by: Mihail Konev + +commit f84206b8cdbb9c6211c845da92492346bae8fde0 +Author: Emil Velikov +Date: Mon Mar 9 12:00:52 2015 +0000 + + autogen.sh: use quoted string variables + + Place quotes around the $srcdir, $ORIGDIR and $0 variables to prevent + fall-outs, when they contain space. + + Signed-off-by: Emil Velikov + Reviewed-by: Peter Hutterer + Signed-off-by: Peter Hutterer + +commit bd3f2f58351a038469c7adc6be7650087433f6f4 +Author: Peter Hutterer +Date: Tue Jan 24 10:32:07 2017 +1000 + + autogen.sh: use exec instead of waiting for configure to finish + + Syncs the invocation of configure with the one from the server. + + Signed-off-by: Peter Hutterer + Reviewed-by: Emil Velikov + commit 65fd628cdfd1c95bd01a50706d4577655d1dd404 Author: Aaron Plattner Date: Tue Feb 23 10:22:26 2016 -0800 @@ -132,14 +401,14 @@ Date: Fri Aug 1 23:14:42 2014 -0700 Signed-off-by: Aaron Plattner commit 20d76f773cf8de474cf7a3f1082961605732c3f1 -Merge: 00477d88297e 193a358563a5 +Merge: 00477d8 193a358 Author: Aaron Plattner Date: Fri Aug 1 23:10:46 2014 -0700 Merge commit '193a358' Conflicts: - xrandr.c + xrandr.c commit 193a358563a59c1a3fc55f55029c605e2419c80b Author: Stéphane Aulery @@ -418,14 +687,14 @@ Date: Tue Feb 12 13:24:38 2013 -0800 Signed-off-by: Aaron Plattner commit 3e5f160c4198a5160be5e9a3f21ba3f4130d4318 -Merge: dac72dbbc750 bd166184f6c1 +Merge: dac72db bd16618 Author: Aaron Plattner Date: Tue Feb 12 12:30:20 2013 -0800 Merge branch 'fixes' Conflicts: - xrandr.c + xrandr.c commit bd166184f6c1973ae2f5f99d040733db3e9e82cf Author: Aaron Plattner @@ -1504,7 +1773,7 @@ Date: Fri Mar 6 14:49:43 2009 +0100 Conflicts: - xrandr.c + xrandr.c commit 880f045202d1e70368b855c3783604e19be946b8 Author: Julien Cristau @@ -1684,7 +1953,7 @@ Date: Mon Dec 1 21:45:47 2008 +0100 Fix build outside of the source dir commit 63ba316bcbe8ad61ba63d9fe62c82e7d56dcc399 -Merge: a813c4da7f0b 1b95e32b4b0a +Merge: a813c4d 1b95e32 Author: Julien Cristau Date: Mon Dec 1 21:33:35 2008 +0100 @@ -2162,7 +2431,7 @@ Date: Sun Feb 18 21:27:55 2007 -0800 Update version number to 1.2.0 for release. commit 13cef2baa884039e96f5dfd9245bb949aed99448 -Merge: 065f09cc304d a175972de6fb +Merge: 065f09c a175972 Author: Keith Packard Date: Sun Feb 18 21:26:50 2007 -0800 @@ -2204,7 +2473,7 @@ Date: Sat Feb 10 16:14:58 2007 -0800 Display set of available CRTCs per output in --verbose mode. commit 067cafb5cda0aa6e34773e888fd469ff657760c2 -Merge: 7c25c245bceb b0a00df69f83 +Merge: 7c25c24 b0a00df Author: Keith Packard Date: Wed Jan 31 15:25:35 2007 -0800 @@ -2363,7 +2632,7 @@ Date: Tue Dec 19 16:27:46 2006 -0800 Actually respect the --fb option commit 7b32611632ab08b6a123db5df1c2b919b3a12104 -Merge: a0df3aa81205 4bb1a9cd6f9c +Merge: a0df3aa 4bb1a9c Author: Keith Packard Date: Tue Dec 19 15:58:38 2006 -0800 @@ -2376,7 +2645,7 @@ Date: Tue Dec 19 15:58:21 2006 -0800 Correct format for sscanf to double variable "dpi" commit 4bb1a9cd6f9cc3ed61d7913528afa3f573092833 -Merge: b6c03827bae7 6ef400f35d7d +Merge: b6c0382 6ef400f Author: Keith Packard Date: Wed Dec 13 11:36:36 2006 -0800 diff --git a/app/xrandr/Makefile.am b/app/xrandr/Makefile.am index 4f1c5e714..1cb22b823 100644 --- a/app/xrandr/Makefile.am +++ b/app/xrandr/Makefile.am @@ -37,7 +37,7 @@ xrandr_LDADD = $(XRANDR_LIBS) xrandr_SOURCES = \ xrandr.c -EXTRA_DIST = xrandr_test.pl keystone.5c +EXTRA_DIST = xrandr_test.pl keystone.5c README.md MAINTAINERCLEANFILES = ChangeLog INSTALL .PHONY: ChangeLog INSTALL diff --git a/app/xrandr/Makefile.in b/app/xrandr/Makefile.in index 0eff2c307..df18a056e 100644 --- a/app/xrandr/Makefile.in +++ b/app/xrandr/Makefile.in @@ -74,7 +74,7 @@ build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = xrandr$(EXEEXT) subdir = . -DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ +DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(top_srcdir)/configure COPYING ChangeLog INSTALL compile \ config.guess config.sub depcomp install-sh missing @@ -208,9 +208,9 @@ am__relativize = \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" -DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 +DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.xz GZIP_ENV = --best -DIST_TARGETS = dist-bzip2 dist-gzip +DIST_TARGETS = dist-xz dist-gzip distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' @@ -343,7 +343,7 @@ xrandr_LDADD = $(XRANDR_LIBS) xrandr_SOURCES = \ xrandr.c -EXTRA_DIST = xrandr_test.pl keystone.5c +EXTRA_DIST = xrandr_test.pl keystone.5c README.md MAINTAINERCLEANFILES = ChangeLog INSTALL all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive @@ -706,6 +706,7 @@ distdir: $(DISTFILES) dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__post_remove_distdir) + dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__post_remove_distdir) @@ -713,7 +714,6 @@ dist-bzip2: distdir dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__post_remove_distdir) - dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) diff --git a/app/xrandr/aclocal.m4 b/app/xrandr/aclocal.m4 index c0dbcfb1f..2a518c4b6 100644 --- a/app/xrandr/aclocal.m4 +++ b/app/xrandr/aclocal.m4 @@ -19,32 +19,63 @@ You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -# serial 1 (pkg-config-0.24) -# -# Copyright © 2004 Scott James Remnant . -# -# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. +dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +dnl serial 11 (pkg-config-0.29.1) +dnl +dnl Copyright © 2004 Scott James Remnant . +dnl Copyright © 2012-2015 Dan Nicholson +dnl +dnl This program is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 2 of the License, or +dnl (at your option) any later version. +dnl +dnl This program is distributed in the hope that it will be useful, but +dnl WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +dnl 02111-1307, USA. +dnl +dnl As a special exception to the GNU General Public License, if you +dnl distribute this file as part of a program that contains a +dnl configuration script generated by Autoconf, you may include it under +dnl the same distribution terms that you use for the rest of that +dnl program. -# PKG_PROG_PKG_CONFIG([MIN-VERSION]) -# ---------------------------------- +dnl PKG_PREREQ(MIN-VERSION) +dnl ----------------------- +dnl Since: 0.29 +dnl +dnl Verify that the version of the pkg-config macros are at least +dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's +dnl installed version of pkg-config, this checks the developer's version +dnl of pkg.m4 when generating configure. +dnl +dnl To ensure that this macro is defined, also add: +dnl m4_ifndef([PKG_PREREQ], +dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])]) +dnl +dnl See the "Since" comment for each macro you use to see what version +dnl of the macros you require. +m4_defun([PKG_PREREQ], +[m4_define([PKG_MACROS_VERSION], [0.29.1]) +m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, + [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) +])dnl PKG_PREREQ + +dnl PKG_PROG_PKG_CONFIG([MIN-VERSION]) +dnl ---------------------------------- +dnl Since: 0.16 +dnl +dnl Search for the pkg-config tool and set the PKG_CONFIG variable to +dnl first found in the path. Checks that the version of pkg-config found +dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is +dnl used since that's the first version where most current features of +dnl pkg-config existed. AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) @@ -66,18 +97,19 @@ if test -n "$PKG_CONFIG"; then PKG_CONFIG="" fi fi[]dnl -])# PKG_PROG_PKG_CONFIG +])dnl PKG_PROG_PKG_CONFIG -# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) -# -# Check to see whether a particular set of modules exists. Similar -# to PKG_CHECK_MODULES(), but does not set variables or print errors. -# -# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -# only at the first occurence in configure.ac, so if the first place -# it's called might be skipped (such as if it is within an "if", you -# have to call PKG_CHECK_EXISTS manually -# -------------------------------------------------------------- +dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------------------------------- +dnl Since: 0.18 +dnl +dnl Check to see whether a particular set of modules exists. Similar to +dnl PKG_CHECK_MODULES(), but does not set variables or print errors. +dnl +dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +dnl only at the first occurence in configure.ac, so if the first place +dnl it's called might be skipped (such as if it is within an "if", you +dnl have to call PKG_CHECK_EXISTS manually AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ @@ -87,8 +119,10 @@ m4_ifvaln([$3], [else $3])dnl fi]) -# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) -# --------------------------------------------- +dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +dnl --------------------------------------------- +dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting +dnl pkg_failed based on the result. m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" @@ -100,10 +134,11 @@ m4_define([_PKG_CONFIG], else pkg_failed=untried fi[]dnl -])# _PKG_CONFIG +])dnl _PKG_CONFIG -# _PKG_SHORT_ERRORS_SUPPORTED -# ----------------------------- +dnl _PKG_SHORT_ERRORS_SUPPORTED +dnl --------------------------- +dnl Internal check to see if pkg-config supports short errors. AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then @@ -111,19 +146,17 @@ if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then else _pkg_short_errors_supported=no fi[]dnl -])# _PKG_SHORT_ERRORS_SUPPORTED +])dnl _PKG_SHORT_ERRORS_SUPPORTED -# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], -# [ACTION-IF-NOT-FOUND]) -# -# -# Note that if there is a possibility the first call to -# PKG_CHECK_MODULES might not happen, you should be sure to include an -# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac -# -# -# -------------------------------------------------------------- +dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl -------------------------------------------------------------- +dnl Since: 0.4.0 +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES might not happen, you should be sure to include an +dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl @@ -177,16 +210,40 @@ else AC_MSG_RESULT([yes]) $3 fi[]dnl -])# PKG_CHECK_MODULES +])dnl PKG_CHECK_MODULES -# PKG_INSTALLDIR(DIRECTORY) -# ------------------------- -# Substitutes the variable pkgconfigdir as the location where a module -# should install pkg-config .pc files. By default the directory is -# $libdir/pkgconfig, but the default can be changed by passing -# DIRECTORY. The user can override through the --with-pkgconfigdir -# parameter. +dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +dnl [ACTION-IF-NOT-FOUND]) +dnl --------------------------------------------------------------------- +dnl Since: 0.29 +dnl +dnl Checks for existence of MODULES and gathers its build flags with +dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags +dnl and VARIABLE-PREFIX_LIBS from --libs. +dnl +dnl Note that if there is a possibility the first call to +dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to +dnl include an explicit call to PKG_PROG_PKG_CONFIG in your +dnl configure.ac. +AC_DEFUN([PKG_CHECK_MODULES_STATIC], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +_save_PKG_CONFIG=$PKG_CONFIG +PKG_CONFIG="$PKG_CONFIG --static" +PKG_CHECK_MODULES($@) +PKG_CONFIG=$_save_PKG_CONFIG[]dnl +])dnl PKG_CHECK_MODULES_STATIC + + +dnl PKG_INSTALLDIR([DIRECTORY]) +dnl ------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable pkgconfigdir as the location where a module +dnl should install pkg-config .pc files. By default the directory is +dnl $libdir/pkgconfig, but the default can be changed by passing +dnl DIRECTORY. The user can override through the --with-pkgconfigdir +dnl parameter. AC_DEFUN([PKG_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) m4_pushdef([pkg_description], @@ -197,16 +254,18 @@ AC_ARG_WITH([pkgconfigdir], AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) -]) dnl PKG_INSTALLDIR +])dnl PKG_INSTALLDIR -# PKG_NOARCH_INSTALLDIR(DIRECTORY) -# ------------------------- -# Substitutes the variable noarch_pkgconfigdir as the location where a -# module should install arch-independent pkg-config .pc files. By -# default the directory is $datadir/pkgconfig, but the default can be -# changed by passing DIRECTORY. The user can override through the -# --with-noarch-pkgconfigdir parameter. +dnl PKG_NOARCH_INSTALLDIR([DIRECTORY]) +dnl -------------------------------- +dnl Since: 0.27 +dnl +dnl Substitutes the variable noarch_pkgconfigdir as the location where a +dnl module should install arch-independent pkg-config .pc files. By +dnl default the directory is $datadir/pkgconfig, but the default can be +dnl changed by passing DIRECTORY. The user can override through the +dnl --with-noarch-pkgconfigdir parameter. AC_DEFUN([PKG_NOARCH_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) m4_pushdef([pkg_description], @@ -217,7 +276,24 @@ AC_ARG_WITH([noarch-pkgconfigdir], AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) -]) dnl PKG_NOARCH_INSTALLDIR +])dnl PKG_NOARCH_INSTALLDIR + + +dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, +dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +dnl ------------------------------------------- +dnl Since: 0.28 +dnl +dnl Retrieves the value of the pkg-config variable for the given module. +AC_DEFUN([PKG_CHECK_VAR], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl + +_PKG_CONFIG([$1], [variable="][$3]["], [$2]) +AS_VAR_COPY([$1], [pkg_cv_][$1]) + +AS_VAR_IF([$1], [""], [$5], [$4])dnl +])dnl PKG_CHECK_VAR # Copyright (C) 2002-2012 Free Software Foundation, Inc. # @@ -1242,7 +1318,7 @@ AC_SUBST([am__untar]) dnl xorg-macros.m4. Generated from xorg-macros.m4.in xorgversion.m4 by configure. dnl -dnl Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. +dnl Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved. dnl dnl Permission is hereby granted, free of charge, to any person obtaining a dnl copy of this software and associated documentation files (the "Software"), @@ -1279,7 +1355,7 @@ dnl DEALINGS IN THE SOFTWARE. # See the "minimum version" comment for each macro you use to see what # version you require. m4_defun([XORG_MACROS_VERSION],[ -m4_define([vers_have], [1.19.0]) +m4_define([vers_have], [1.19.2]) m4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.]))) m4_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.]))) m4_if(m4_cmp(maj_have, maj_needed), 0,, @@ -1357,6 +1433,17 @@ AC_DEFUN([XORG_MANPAGE_SECTIONS],[ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_PROG_SED]) +case $host_os in + solaris*) + # Solaris 2.0 - 11.3 use SysV man page section numbers, so we + # check for a man page file found in later versions that use + # traditional section numbers instead + AC_CHECK_FILE([/usr/share/man/man7/attributes.7], + [SYSV_MAN_SECTIONS=false], [SYSV_MAN_SECTIONS=true]) + ;; + *) SYSV_MAN_SECTIONS=false ;; +esac + if test x$APP_MAN_SUFFIX = x ; then APP_MAN_SUFFIX=1 fi @@ -1372,9 +1459,9 @@ if test x$LIB_MAN_DIR = x ; then fi if test x$FILE_MAN_SUFFIX = x ; then - case $host_os in - solaris*) FILE_MAN_SUFFIX=4 ;; - *) FILE_MAN_SUFFIX=5 ;; + case $SYSV_MAN_SECTIONS in + true) FILE_MAN_SUFFIX=4 ;; + *) FILE_MAN_SUFFIX=5 ;; esac fi if test x$FILE_MAN_DIR = x ; then @@ -1382,9 +1469,9 @@ if test x$FILE_MAN_DIR = x ; then fi if test x$MISC_MAN_SUFFIX = x ; then - case $host_os in - solaris*) MISC_MAN_SUFFIX=5 ;; - *) MISC_MAN_SUFFIX=7 ;; + case $SYSV_MAN_SECTIONS in + true) MISC_MAN_SUFFIX=5 ;; + *) MISC_MAN_SUFFIX=7 ;; esac fi if test x$MISC_MAN_DIR = x ; then @@ -1392,9 +1479,9 @@ if test x$MISC_MAN_DIR = x ; then fi if test x$DRIVER_MAN_SUFFIX = x ; then - case $host_os in - solaris*) DRIVER_MAN_SUFFIX=7 ;; - *) DRIVER_MAN_SUFFIX=4 ;; + case $SYSV_MAN_SECTIONS in + true) DRIVER_MAN_SUFFIX=7 ;; + *) DRIVER_MAN_SUFFIX=4 ;; esac fi if test x$DRIVER_MAN_DIR = x ; then @@ -1402,9 +1489,9 @@ if test x$DRIVER_MAN_DIR = x ; then fi if test x$ADMIN_MAN_SUFFIX = x ; then - case $host_os in - solaris*) ADMIN_MAN_SUFFIX=1m ;; - *) ADMIN_MAN_SUFFIX=8 ;; + case $SYSV_MAN_SECTIONS in + true) ADMIN_MAN_SUFFIX=1m ;; + *) ADMIN_MAN_SUFFIX=8 ;; esac fi if test x$ADMIN_MAN_DIR = x ; then @@ -1665,13 +1752,24 @@ m4_ifval([$1], fi]) # Test for the ability of xmlto to generate a text target +# +# NOTE: xmlto 0.0.27 or higher return a non-zero return code in the +# following test for empty XML docbook files. +# For compatibility reasons use the following empty XML docbook file and if +# it fails try it again with a non-empty XML file. have_xmlto_text=no cat > conftest.xml << "EOF" EOF AS_IF([test "$have_xmlto" = yes], [AS_IF([$XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1], [have_xmlto_text=yes], - [AC_MSG_WARN([xmlto cannot generate text format, this format skipped])])]) + [# Try it again with a non-empty XML file. + cat > conftest.xml << "EOF" + +EOF + AS_IF([$XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1], + [have_xmlto_text=yes], + [AC_MSG_WARN([xmlto cannot generate text format, this format skipped])])])]) rm -f conftest.xml AM_CONDITIONAL([HAVE_XMLTO_TEXT], [test $have_xmlto_text = yes]) AM_CONDITIONAL([HAVE_XMLTO], [test "$have_xmlto" = yes]) @@ -3067,8 +3165,9 @@ AC_REQUIRE([PKG_PROG_PKG_CONFIG]) macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros` INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \ mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \ -|| (rm -f \$(top_srcdir)/.INSTALL.tmp; touch \$(top_srcdir)/INSTALL; \ -echo 'util-macros \"pkgdatadir\" from xorg-macros.pc not found: installing possibly empty INSTALL.' >&2)" +|| (rm -f \$(top_srcdir)/.INSTALL.tmp; test -e \$(top_srcdir)/INSTALL || ( \ +touch \$(top_srcdir)/INSTALL; \ +echo 'failed to copy INSTALL from util-macros: installing empty INSTALL.' >&2))" AC_SUBST([INSTALL_CMD]) ]) # XORG_INSTALL dnl Copyright 2005 Red Hat, Inc @@ -3129,10 +3228,11 @@ AC_DEFUN([XORG_RELEASE_VERSION],[ # # AC_DEFUN([XORG_CHANGELOG], [ -CHANGELOG_CMD="(GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp && \ +CHANGELOG_CMD="((GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp) 2>/dev/null && \ mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \ -|| (rm -f \$(top_srcdir)/.changelog.tmp; touch \$(top_srcdir)/ChangeLog; \ -echo 'git directory not found: installing possibly empty changelog.' >&2)" +|| (rm -f \$(top_srcdir)/.changelog.tmp; test -e \$(top_srcdir)/ChangeLog || ( \ +touch \$(top_srcdir)/ChangeLog; \ +echo 'git failed to create ChangeLog: installing empty ChangeLog.' >&2))" AC_SUBST([CHANGELOG_CMD]) ]) # XORG_CHANGELOG diff --git a/app/xrandr/compile b/app/xrandr/compile index 0fc915d98..96fe54c1b 100644 --- a/app/xrandr/compile +++ b/app/xrandr/compile @@ -1,9 +1,9 @@ #! /bin/sh # Wrapper for compilers which do not understand '-c -o'. -scriptversion=2012-10-14.11; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ scriptversion=2012-10-14.11; # UTC # 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, see . +# along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -255,7 +255,8 @@ EOF echo "compile $scriptversion" exit $? ;; - cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac @@ -339,10 +340,10 @@ exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: #! /bin/sh diff --git a/app/xrandr/configure b/app/xrandr/configure index 7cf5c3a8f..49b16dbf0 100644 --- a/app/xrandr/configure +++ b/app/xrandr/configure @@ -1,8 +1,8 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for xrandr 1.5.0. +# Generated by GNU Autoconf 2.69 for xrandr 1.5.1. # -# Report bugs to . +# Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -267,7 +267,7 @@ fi $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and -$0: https://bugs.freedesktop.org/enter_bug.cgi?product=xorg +$0: https://gitlab.freedesktop.org/xorg/app/xrandr/issues $0: about your system, including any error possibly output $0: before this message. Then install a modern shell, or $0: manually run the script under such a shell if you do @@ -581,9 +581,9 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='xrandr' PACKAGE_TARNAME='xrandr' -PACKAGE_VERSION='1.5.0' -PACKAGE_STRING='xrandr 1.5.0' -PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg' +PACKAGE_VERSION='1.5.1' +PACKAGE_STRING='xrandr 1.5.1' +PACKAGE_BUGREPORT='https://gitlab.freedesktop.org/xorg/app/xrandr/issues' PACKAGE_URL='' ac_unique_file="Makefile.am" @@ -1311,7 +1311,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures xrandr 1.5.0 to adapt to many kinds of systems. +\`configure' configures xrandr 1.5.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1381,7 +1381,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of xrandr 1.5.0:";; + short | recursive ) echo "Configuration of xrandr 1.5.1:";; esac cat <<\_ACEOF @@ -1426,7 +1426,7 @@ Some influential environment variables: Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. -Report bugs to . +Report bugs to . _ACEOF ac_status=$? fi @@ -1489,7 +1489,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -xrandr configure 1.5.0 +xrandr configure 1.5.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1746,7 +1746,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by xrandr $as_me 1.5.0, which was +It was created by xrandr $as_me 1.5.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2575,7 +2575,7 @@ fi # Define the identity of the package. PACKAGE='xrandr' - VERSION='1.5.0' + VERSION='1.5.1' cat >>confdefs.h <<_ACEOF @@ -2622,29 +2622,6 @@ am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 -$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } - # Check whether --enable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then : - enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval -else - USE_MAINTAINER_MODE=no -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 -$as_echo "$USE_MAINTAINER_MODE" >&6; } - if test $USE_MAINTAINER_MODE = yes; then - MAINTAINER_MODE_TRUE= - MAINTAINER_MODE_FALSE='#' -else - MAINTAINER_MODE_TRUE='#' - MAINTAINER_MODE_FALSE= -fi - - MAINT=$MAINTAINER_MODE_TRUE - - - # Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS @@ -10242,10 +10219,11 @@ _ACEOF -CHANGELOG_CMD="(GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp && \ +CHANGELOG_CMD="((GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp) 2>/dev/null && \ mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \ -|| (rm -f \$(top_srcdir)/.changelog.tmp; touch \$(top_srcdir)/ChangeLog; \ -echo 'git directory not found: installing possibly empty changelog.' >&2)" +|| (rm -f \$(top_srcdir)/.changelog.tmp; test -e \$(top_srcdir)/ChangeLog || ( \ +touch \$(top_srcdir)/ChangeLog; \ +echo 'git failed to create ChangeLog: installing empty ChangeLog.' >&2))" @@ -10253,14 +10231,45 @@ echo 'git directory not found: installing possibly empty changelog.' >&2)" macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros` INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \ mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \ -|| (rm -f \$(top_srcdir)/.INSTALL.tmp; touch \$(top_srcdir)/INSTALL; \ -echo 'util-macros \"pkgdatadir\" from xorg-macros.pc not found: installing possibly empty INSTALL.' >&2)" +|| (rm -f \$(top_srcdir)/.INSTALL.tmp; test -e \$(top_srcdir)/INSTALL || ( \ +touch \$(top_srcdir)/INSTALL; \ +echo 'failed to copy INSTALL from util-macros: installing empty INSTALL.' >&2))" +case $host_os in + solaris*) + # Solaris 2.0 - 11.3 use SysV man page section numbers, so we + # check for a man page file found in later versions that use + # traditional section numbers instead + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for /usr/share/man/man7/attributes.7" >&5 +$as_echo_n "checking for /usr/share/man/man7/attributes.7... " >&6; } +if ${ac_cv_file__usr_share_man_man7_attributes_7+:} false; then : + $as_echo_n "(cached) " >&6 +else + test "$cross_compiling" = yes && + as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5 +if test -r "/usr/share/man/man7/attributes.7"; then + ac_cv_file__usr_share_man_man7_attributes_7=yes +else + ac_cv_file__usr_share_man_man7_attributes_7=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__usr_share_man_man7_attributes_7" >&5 +$as_echo "$ac_cv_file__usr_share_man_man7_attributes_7" >&6; } +if test "x$ac_cv_file__usr_share_man_man7_attributes_7" = xyes; then : + SYSV_MAN_SECTIONS=false +else + SYSV_MAN_SECTIONS=true +fi + + ;; + *) SYSV_MAN_SECTIONS=false ;; +esac + if test x$APP_MAN_SUFFIX = x ; then APP_MAN_SUFFIX=1 fi @@ -10276,9 +10285,9 @@ if test x$LIB_MAN_DIR = x ; then fi if test x$FILE_MAN_SUFFIX = x ; then - case $host_os in - solaris*) FILE_MAN_SUFFIX=4 ;; - *) FILE_MAN_SUFFIX=5 ;; + case $SYSV_MAN_SECTIONS in + true) FILE_MAN_SUFFIX=4 ;; + *) FILE_MAN_SUFFIX=5 ;; esac fi if test x$FILE_MAN_DIR = x ; then @@ -10286,9 +10295,9 @@ if test x$FILE_MAN_DIR = x ; then fi if test x$MISC_MAN_SUFFIX = x ; then - case $host_os in - solaris*) MISC_MAN_SUFFIX=5 ;; - *) MISC_MAN_SUFFIX=7 ;; + case $SYSV_MAN_SECTIONS in + true) MISC_MAN_SUFFIX=5 ;; + *) MISC_MAN_SUFFIX=7 ;; esac fi if test x$MISC_MAN_DIR = x ; then @@ -10296,9 +10305,9 @@ if test x$MISC_MAN_DIR = x ; then fi if test x$DRIVER_MAN_SUFFIX = x ; then - case $host_os in - solaris*) DRIVER_MAN_SUFFIX=7 ;; - *) DRIVER_MAN_SUFFIX=4 ;; + case $SYSV_MAN_SECTIONS in + true) DRIVER_MAN_SUFFIX=7 ;; + *) DRIVER_MAN_SUFFIX=4 ;; esac fi if test x$DRIVER_MAN_DIR = x ; then @@ -10306,9 +10315,9 @@ if test x$DRIVER_MAN_DIR = x ; then fi if test x$ADMIN_MAN_SUFFIX = x ; then - case $host_os in - solaris*) ADMIN_MAN_SUFFIX=1m ;; - *) ADMIN_MAN_SUFFIX=8 ;; + case $SYSV_MAN_SECTIONS in + true) ADMIN_MAN_SUFFIX=1m ;; + *) ADMIN_MAN_SUFFIX=8 ;; esac fi if test x$ADMIN_MAN_DIR = x ; then @@ -10654,10 +10663,6 @@ else am__EXEEXT_FALSE= fi -if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then - as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -11067,7 +11072,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by xrandr $as_me 1.5.0, which was +This file was extended by xrandr $as_me 1.5.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -11127,13 +11132,13 @@ $config_headers Configuration commands: $config_commands -Report bugs to ." +Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -xrandr config.status 1.5.0 +xrandr config.status 1.5.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/app/xrandr/configure.ac b/app/xrandr/configure.ac index 9fd434b83..99fcdb88d 100644 --- a/app/xrandr/configure.ac +++ b/app/xrandr/configure.ac @@ -22,14 +22,13 @@ dnl Process this file with autoconf to create configure. # Initialize Autoconf AC_PREREQ([2.60]) -AC_INIT([xrandr], [1.5.0], - [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xrandr]) +AC_INIT([xrandr], [1.5.1], + [https://gitlab.freedesktop.org/xorg/app/xrandr/issues], [xrandr]) AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_HEADERS([config.h]) # Initialize Automake -AM_INIT_AUTOMAKE([foreign dist-bzip2]) -AM_MAINTAINER_MODE +AM_INIT_AUTOMAKE([foreign dist-xz]) # Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS m4_ifndef([XORG_MACROS_VERSION], diff --git a/app/xrandr/man/xrandr.man b/app/xrandr/man/xrandr.man index 73d337c9e..1291bad06 100644 --- a/app/xrandr/man/xrandr.man +++ b/app/xrandr/man/xrandr.man @@ -34,7 +34,7 @@ xrandr \- primitive command line interface to RandR extension [\-\-current] [\-\-noprimary] [\-\-panning \fIwidth\fPx\fIheight\fP[+\fIx\fP+\fIy\fP[/\fItrack_width\fPx\fItrack_height\fP+\fItrack_x\fP+\fItrack_y\fP[/\fIborder_left\fP/\fIborder_top\fP/\fIborder_right\fP/\fIborder_bottom\fP]]]] -[\-\-scale \fIx\fPx\fIy\fP] +[\-\-scale \fIx\fP[x\fIy\fP]] [\-\-scale-from \fIw\fPx\fIh\fP] [\-\-transform \fIa\fP,\fIb\fP,\fIc\fP,\fId\fP,\fIe\fP,\fIf\fP,\fIg\fP,\fIh\fP,\fIi\fP] [\-\-primary] @@ -42,6 +42,7 @@ xrandr \- primitive command line interface to RandR extension [\-\-fb \fIwidth\fPx\fIheight\fP] [\-\-fbmm \fIwidth\fPx\fIheight\fP] [\-\-dpi \fIdpi\fP] +[\-\-dpi \fIfrom-output\fP] [\-\-newmode \fIname\fP \fImode\fP] [\-\-rmmode \fIname\fP] [\-\-addmode \fIoutput\fP \fIname\fP] @@ -62,7 +63,7 @@ xrandr \- primitive command line interface to RandR extension [\-\-set \fIproperty\fP \fIvalue\fP] [\-\-off] [\-\-crtc \fIcrtc\fP] -[\-\-gamma \fIred\fP:\fIgreen\fP:\fIblue\fP] +[\-\-gamma \fIred\fP[:\fIgreen\fP:\fIblue\fP]] [\-\-brightness \fIbrightness\fP] [\-o \fIorientation\fP] [\-s \fIsize\fP] @@ -71,6 +72,10 @@ xrandr \- primitive command line interface to RandR extension [\-\-listproviders] [\-\-setprovideroutputsource \fIprovider\fP \fIsource\fP] [\-\-setprovideroffloadsink \fIprovider\fP \fIsink\fP] +[\-\-listmonitors] +[\-\-listactivemonitors] +[\-\-setmonitor \fIname\fP \fIgeometry\fP \fIoutputs\fP] +[\-\-delmonitor \fIname\fP] .SH DESCRIPTION .I Xrandr is used to set the size, orientation and/or reflection of the outputs for a @@ -117,6 +122,25 @@ is available. Forces the usage of the RandR version 1.2 protocol, even if the display does not report it as supported or a higher version is available. .PP +.SH "RandR version 1.5 options" +.PP +Options for RandR 1.5 are used as a superset of the options for RandR 1.4. +.PP +.IP \-\-listmonitors +Report information about all defined monitors. +.IP \-\-listactivemonitors +Report information about currently active monitors. +.IP "\-\-setmonitor \fIname\fP \fIgeometry\fP \fIoutputs\fP"} {none|\fIoutput\fP,\fIoutput\fP,...}\n" +Define a new monitor with the given geometry and associated to the given outputs. +The output list is either the keyword \fBnone\fP or a comma-separated list of outputs. +The geometry is either the keyword \fBauto\fP, in which case the monitor +will automatically track the geometry of the associated outputs, or a manual specification +in the form +\fIw\fP/\fImmw\fPx\fIh\fP/\fImmh\fP+\fIx\fP+\fIy\fP +where w, h, x, y are in pixels and mmw, mmh are the physical dimensions of the monitor. +.IP "\-\-delmonitor \fIname\fP" +Delete the given user-defined monitor. +.PP .SH "RandR version 1.4 options" .PP Options for RandR 1.4 are used as a superset of the options for RandR 1.3. @@ -154,7 +178,9 @@ parameters specify the border and default to 0. A width or height set to zero disables panning on the according axis. You typically have to set the screen size with \fI--fb\fP simultaneously. .IP "\-\-transform \fIa\fP,\fIb\fP,\fIc\fP,\fId\fP,\fIe\fP,\fIf\fP,\fIg\fP,\fIh\fP,\fIi\fP" -Specifies a transformation matrix to apply on the output. Automatically a bilinear filter is selected. +Specifies a transformation matrix to apply on the output. +A bilinear filter is selected automatically unless the \-\-filter parameter is +also specified. The mathematical form corresponds to: .RS .RS @@ -200,11 +226,17 @@ As a special argument, instead of passing a matrix, one can pass the string \fInone\fP, in which case the default values are used (a unit matrix without filter). .RE -.IP "\-\-scale \fIx\fPx\fIy\fP" -Changes the dimensions of the output picture. Values superior to 1 will lead to -a compressed screen (screen dimension bigger than the dimension of the output -mode), and values below 1 leads to a zoom in on the output. This option is -actually a shortcut version of the \fI\-\-transform\fP option. +.IP "\-\-filter \fIfiltermode\fP" +Chooses the scaling filter method to be applied when the screen is scaled or +transformed. +Can be either 'bilinear' or 'nearest'. +.IP "\-\-scale \fIx\fP[x\fIy\fP]" +Changes the dimensions of the output picture. +If the \fIy\fP value is omitted, the \fIx\fP value will be used for both dimensions. +Values larger than 1 lead to a compressed screen (screen dimension bigger +than the dimension of the output mode), and values less than 1 lead to +a zoom in on the output. +This option is actually a shortcut version of the \fI\-\-transform\fP option. .IP "\-\-scale-from \fIw\fPx\fIh\fP" Specifies the size in pixels of the area of the framebuffer to be displayed on this output. @@ -225,13 +257,25 @@ fit within this size. When this option is not provided, xrandr computes the smallest screen size that will hold the set of configured outputs; this option provides a way to override that behaviour. .IP "\-\-fbmm \fIwidth\fPx\fIheight\fP" -Sets the reported values for the physical size of the screen. Normally, +Sets the value reported as physical size of the X screen as a whole +(union of all configured monitors). In configurations with multiple +monitors with different DPIs, the value has no physical meaning, but +it may be used by some legacy clients which do not support RandR +version 1.2 to compute a reference font scaling. Normally, xrandr resets the reported physical size values to keep the DPI constant. -This overrides that computation. +This overrides that computation. Default DPI value is 96. .IP "\-\-dpi \fIdpi\fP" -This also sets the reported physical size values of the screen, it uses the -specified DPI value to compute an appropriate physical size using whatever -pixel size will be set. +.IP "\-\-dpi \fIfrom-output\fP" +This also sets the value reported as physical size of the X screen as a whole +(union of all configured monitors). In configurations with multiple +monitors with different DPIs, the value has no physical meaning, but +it may be used by some legacy clients which do not support RandR +version 1.2 to compute a reference font scaling. This option uses either +the specified DPI value, or the DPI of the given output, to compute an appropriate +physical size using whatever pixel size will be set. Typical values are +the default (96 DPI), the DPI of the only monitor in single-monitor +configurations, or the DPI of the primary monitor in multi-monitor +configurations. .IP "\-\-newmode \fIname\fP \fImode\fP" New modelines can be added to the server and then associated with outputs. This option does the former. The \fImode\fP is specified using the ModeLine @@ -293,9 +337,12 @@ Uses the specified crtc (either as an index in the list of CRTCs or XID). In normal usage, this option is not required as xrandr tries to make sensible choices about which crtc to use with each output. When that fails for some reason, this option can override the normal selection. -.IP "\-\-gamma \fIred\fP:\fIgreen\fP:\fIblue\fP" +.IP "\-\-gamma \fIred\fP[:\fIgreen\fP:\fIblue\fP]" Set the specified floating point values as gamma correction on the crtc -currently attached to this output. Note that you cannot get two different values +currently attached to this output. +If green and blue are not specified, the red value will be used +for all three components. +Note that you cannot get two different values for cloned outputs (i.e.: which share the same crtc) and that switching an output to another crtc doesn't change the crtc gamma corrections at all. .IP "\-\-brightness \fIbrightness\fP" diff --git a/app/xrandr/xrandr.c b/app/xrandr/xrandr.c index dcfdde073..8d27a8854 100644 --- a/app/xrandr/xrandr.c +++ b/app/xrandr/xrandr.c @@ -54,6 +54,11 @@ static Bool automatic = False; static Bool properties = False; static Bool grab_server = True; static Bool no_primary = False; +static int filter_type = -1; + +static const char *filter_names[2] = { + "bilinear", + "nearest"}; static const char *direction[5] = { "normal", @@ -132,13 +137,14 @@ usage(void) " --below \n" " --same-as \n" " --set \n" - " --scale x\n" + " --scale [x]\n" " --scale-from x\n" " --transform ,,,,,,,,\n" + " --filter nearest,bilinear\n" " --off\n" " --crtc \n" " --panning x[++[/x++[////]]]\n" - " --gamma ::\n" + " --gamma [::]\n" " --brightness \n" " --primary\n" " --noprimary\n" @@ -285,6 +291,7 @@ typedef enum _changes { changes_panning = (1 << 10), changes_gamma = (1 << 11), changes_primary = (1 << 12), + changes_filter = (1 << 13), } changes_t; typedef enum _name_kind { @@ -630,6 +637,7 @@ print_verbose_mode (const XRRModeInfo *mode, Bool current, Bool preferred) static void init_name (name_t *name) { + memset(name, 0, sizeof(*name)); name->kind = name_none; } @@ -1311,6 +1319,10 @@ set_output_info (output_t *output, RROutput xid, XRROutputInfo *output_info) output->transform.params = NULL; } } + if (output->changes & changes_filter) + { + output->transform.filter = filter_names[filter_type]; + } /* set primary */ if (!(output->changes & changes_primary)) @@ -1811,6 +1823,7 @@ get_outputs (void) output_t *output; name_t output_name; if (!output_info) fatal ("could not get output 0x%lx information\n", res->outputs[o]); + init_name(&output_name); set_name_xid (&output_name, res->outputs[o]); set_name_index (&output_name, o); set_name_string (&output_name, output_info->name); @@ -2808,6 +2821,28 @@ main (int argc, char **argv) action_requested = True; continue; } + if (!strcmp("--filter", argv[i])) { + int t; + + if (!config_output) argerr ("%s must be used after --output\n", argv[i]); + if (++i >= argc) argerr("%s requires an argument\n", argv[i-1]); + + filter_type = -1; + for (t = 0; t < sizeof(filter_names) / sizeof(filter_names[0]); t++) + { + if (!strcmp(filter_names[t], argv[i])) + { + filter_type = t; + break; + } + } + + if (filter_type == -1) argerr("Bad argument: %s, for a filter\n", argv[i]); + + config_output->changes |= changes_filter; + action_requested = True; + continue; + } if (!strcmp ("--crtc", argv[i])) { if (!config_output) argerr ("%s must be used after --output\n", argv[i]); if (++i >= argc) argerr ("%s requires an argument\n", argv[i-1]); @@ -2934,11 +2969,21 @@ main (int argc, char **argv) continue; } if (!strcmp ("--gamma", argv[i])) { + char junk; if (!config_output) argerr ("%s must be used after --output\n", argv[i]); if (++i >= argc) argerr ("%s requires an argument\n", argv[i-1]); - if (sscanf(argv[i], "%f:%f:%f", &config_output->gamma.red, - &config_output->gamma.green, &config_output->gamma.blue) != 3) - argerr ("%s: invalid argument '%s'\n", argv[i-1], argv[i]); + if (sscanf(argv[i], "%f:%f:%f%c", &config_output->gamma.red, + &config_output->gamma.green, &config_output->gamma.blue, &junk) != 3) + { + /* check if it's a single floating-point value, + * to be applied to all components */ + if (sscanf(argv[i], "%f%c", &config_output->gamma.red, &junk) != 1) + argerr ("%s: invalid argument '%s'\n", argv[i-1], argv[i]); + config_output->gamma.green = config_output->gamma.blue = config_output->gamma.red; + } + if (config_output->gamma.red <= 0.0 || config_output->gamma.green <= 0.0 || + config_output->gamma.blue <= 0.0) + argerr ("gamma correction factors must be positive\n"); config_output->changes |= changes_gamma; setit_1_2 = True; continue; @@ -2981,10 +3026,17 @@ main (int argc, char **argv) if (!strcmp ("--scale", argv[i])) { double sx, sy; + char junk; if (!config_output) argerr ("%s must be used after --output\n", argv[i]); if (++i >= argc) argerr ("%s requires an argument\n", argv[i-1]); - if (sscanf (argv[i], "%lfx%lf", &sx, &sy) != 2) - argerr ("failed to parse '%s' as a scaling factor\n", argv[i]); + if (sscanf (argv[i], "%lfx%lf%c", &sx, &sy, &junk) != 2) + { + if (sscanf (argv[i], "%lf%c", &sx, &junk) != 1) + argerr ("failed to parse '%s' as a scaling factor\n", argv[i]); + sy = sx; + } + if (sx <= 0.0 || sy <= 0.0) + argerr ("scaling factors must be positive\n"); init_transform (&config_output->transform); config_output->transform.transform.matrix[0][0] = XDoubleToFixed (sx); config_output->transform.transform.matrix[1][1] = XDoubleToFixed (sy); @@ -3590,7 +3642,7 @@ main (int argc, char **argv) } get_screen(True); - get_monitors(True); + get_monitors(False); get_crtcs(); get_outputs(); @@ -3703,14 +3755,16 @@ main (int argc, char **argv) printf (" ("); for (i = 0; i < 4; i ++) { if ((rotations >> i) & 1) { - if (!first) printf (" "); first = False; + if (!first) printf (" "); printf("%s", direction[i]); + first = False; } } if (rotations & RR_Reflect_X) { - if (!first) printf (" "); first = False; + if (!first) printf (" "); printf ("x axis"); + first = False; } if (rotations & RR_Reflect_Y) { @@ -3873,6 +3927,12 @@ main (int argc, char **argv) for (j = 0; j < output_info->nmode; j++) { XRRModeInfo *mode = find_mode_by_xid (output_info->modes[j]); + if (!mode) + { + printf (" [Unknown mode ID 0x%x]\n", + (int)output_info->modes[j]); + continue; + } print_verbose_mode (mode, mode == output->mode_info, j < output_info->npreferred); @@ -3887,16 +3947,23 @@ main (int argc, char **argv) { XRRModeInfo *jmode, *kmode; int k; - + if (mode_shown[j]) continue; - + jmode = find_mode_by_xid (output_info->modes[j]); + if (!jmode) + { + printf (" [Unknown mode ID 0x%x]\n", + (int)output_info->modes[j]); + continue; + } printf (" "); printf (" %-12s", jmode->name); for (k = j; k < output_info->nmode; k++) { if (mode_shown[k]) continue; kmode = find_mode_by_xid (output_info->modes[k]); + if (!kmode) continue; if (strcmp (jmode->name, kmode->name) != 0) continue; mode_shown[k] = True; kmode->modeFlags |= ModeShown;