diff --git a/.gitignore b/.gitignore index f0daa98..4e51dd0 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,4 @@ octave-3.2.4.tar.bz2 /octave-3.8.2-rc1.tar.gz /octave-3.8.2-rc2.tar.gz /octave-3.8.2.tar.bz2 +/octave-4.0.0.tar.xz diff --git a/octave-3.8.0-pkgbuilddir.patch b/octave-3.8.0-pkgbuilddir.patch deleted file mode 100644 index e91f6a3..0000000 --- a/octave-3.8.0-pkgbuilddir.patch +++ /dev/null @@ -1,41 +0,0 @@ -diff -up octave-3.8.0-rc2/scripts/pkg/private/install.m.pkgbuilddir octave-3.8.0-rc2/scripts/pkg/private/install.m ---- octave-3.8.0-rc2/scripts/pkg/private/install.m.pkgbuilddir 2013-12-21 12:31:40.000000000 -0700 -+++ octave-3.8.0-rc2/scripts/pkg/private/install.m 2013-12-28 16:12:03.283207320 -0700 -@@ -62,7 +62,10 @@ function install (files, handle_deps, au - for i = 1:length (files) - tgz = files{i}; - -- if (exist (tgz, "file")) -+ ## The filename pointed to an uncompressed package to begin with. -+ if (exist (tgz, "dir")) -+ dirlist = {".", "..", tgz}; -+ elseif (exist (tgz, "file")) - ## Create a temporary directory. - tmpdir = tmpnam (); - tmpdirs{end+1} = tmpdir; -@@ -91,17 +94,16 @@ function install (files, handle_deps, au - endif - endif - -- ## The filename pointed to an uncompressed package to begin with. -- if (exist (tgz, "dir")) -- dirlist = {".", "..", tgz}; -- endif -- -- if (exist (tgz, "file") || exist (tgz, "dir")) -+ if (exist (tgz, "file")) - ## The two first entries of dirlist are "." and "..". -- if (exist (tgz, "file")) -- packdir = fullfile (tmpdir, dirlist{3}); -+ if (exist (tgz, "dir")) -+ if (tgz(1) == '/') -+ packdir = tgz; -+ else -+ packdir = fullfile (pwd (), dirlist{3}); -+ endif - else -- packdir = fullfile (pwd (), dirlist{3}); -+ packdir = fullfile (tmpdir, dirlist{3}); - endif - packdirs{end+1} = packdir; - diff --git a/octave-pkgbuilddir.patch b/octave-pkgbuilddir.patch new file mode 100644 index 0000000..c30acc0 --- /dev/null +++ b/octave-pkgbuilddir.patch @@ -0,0 +1,41 @@ +diff -up octave-4.0.0-rc1/scripts/pkg/private/install.m.pkgbuilddir octave-4.0.0-rc1/scripts/pkg/private/install.m +--- octave-4.0.0-rc1/scripts/pkg/private/install.m.pkgbuilddir 2015-03-05 08:13:28.000000000 -0700 ++++ octave-4.0.0-rc1/scripts/pkg/private/install.m 2015-03-05 20:43:45.762854275 -0700 +@@ -62,7 +62,10 @@ function install (files, handle_deps, au + for i = 1:length (files) + tgz = files{i}; + +- if (exist (tgz, "file")) ++ ## The filename pointed to an uncompressed package to begin with. ++ if (exist (tgz, "dir")) ++ dirlist = {".", "..", tgz}; ++ elseif (exist (tgz, "file")) + ## Create a temporary directory. + tmpdir = tempname (); + tmpdirs{end+1} = tmpdir; +@@ -91,17 +94,16 @@ function install (files, handle_deps, au + endif + endif + +- ## The filename pointed to an uncompressed package to begin with. +- if (exist (tgz, "dir")) +- dirlist = {".", "..", tgz}; +- endif +- +- if (exist (tgz, "file") || exist (tgz, "dir")) ++ if (exist (tgz, "file")) + ## The two first entries of dirlist are "." and "..". +- if (exist (tgz, "file")) +- packdir = fullfile (tmpdir, dirlist{3}); ++ if (exist (tgz, "dir")) ++ if (tgz(1) == '/') ++ packdir = tgz; ++ else ++ packdir = fullfile (pwd (), dirlist{3}); ++ endif + else +- packdir = fullfile (pwd (), dirlist{3}); ++ packdir = fullfile (tmpdir, dirlist{3}); + endif + packdirs{end+1} = packdir; + diff --git a/octave-suitesparse.patch b/octave-suitesparse.patch deleted file mode 100644 index 27e435f..0000000 --- a/octave-suitesparse.patch +++ /dev/null @@ -1,293 +0,0 @@ -diff -up octave-3.8.2/libinterp/dldfcn/amd.cc.suitesparse octave-3.8.2/libinterp/dldfcn/amd.cc ---- octave-3.8.2/libinterp/dldfcn/amd.cc.suitesparse 2014-08-06 11:57:55.000000000 -0600 -+++ octave-3.8.2/libinterp/dldfcn/amd.cc 2014-09-16 15:14:12.538123673 -0600 -@@ -24,7 +24,7 @@ along with Octave; see the file COPYING. - // in the help of the functions. - - #ifdef HAVE_CONFIG_H --#include -+#include "config.h" - #endif - - #include -@@ -164,11 +164,11 @@ The author of the code itself is Timothy - - // FIXME: how can we manage the memory allocation of amd - // in a cleaner manner? -- amd_malloc = malloc; -- amd_free = free; -- amd_calloc = calloc; -- amd_realloc = realloc; -- amd_printf = printf; -+ suitesparse_assign_function(malloc_func, amd_malloc, malloc); -+ suitesparse_assign_function(free_func, amd_free, free); -+ suitesparse_assign_function(calloc_func, amd_calloc, calloc); -+ suitesparse_assign_function(realloc_func, amd_realloc, realloc); -+ suitesparse_assign_function(printf_func, amd_printf, printf); - - octave_idx_type result = AMD_NAME (_order) (n_col, cidx, ridx, P, - Control, Info); -diff -up octave-3.8.2/libinterp/dldfcn/symbfact.cc.suitesparse octave-3.8.2/libinterp/dldfcn/symbfact.cc ---- octave-3.8.2/libinterp/dldfcn/symbfact.cc.suitesparse 2014-08-06 11:54:15.000000000 -0600 -+++ octave-3.8.2/libinterp/dldfcn/symbfact.cc 2014-09-16 15:22:41.924557046 -0600 -@@ -22,7 +22,7 @@ along with Octave; see the file COPYING. - */ - - #ifdef HAVE_CONFIG_H --#include -+#include "config.h" - #endif - - #include "SparseCmplxCHOL.h" -@@ -114,17 +114,15 @@ factorization as determined by @var{typ} - if (spu == 0.) - { - cm->print = -1; -- cm->print_function = 0; -+ suitesparse_assign_function(printf_func, cm->print_function, 0); - } - else - { - cm->print = static_cast (spu) + 2; -- cm->print_function =&SparseCholPrint; -+ suitesparse_assign_function(printf_func, cm->print_function, &SparseCholPrint); - } - - cm->error_handler = &SparseCholError; -- cm->complex_divide = CHOLMOD_NAME(divcomplex); -- cm->hypotenuse = CHOLMOD_NAME(hypot); - - double dummy; - cholmod_sparse Astore; -diff -up octave-3.8.2/liboctave/array/CSparse.cc.suitesparse octave-3.8.2/liboctave/array/CSparse.cc ---- octave-3.8.2/liboctave/array/CSparse.cc.suitesparse 2014-08-06 11:57:55.000000000 -0600 -+++ octave-3.8.2/liboctave/array/CSparse.cc 2014-09-16 15:22:16.310677157 -0600 -@@ -23,7 +23,7 @@ along with Octave; see the file COPYING. - */ - - #ifdef HAVE_CONFIG_H --#include -+#include "config.h" - #endif - - #include -@@ -5664,17 +5664,15 @@ SparseComplexMatrix::fsolve (MatrixType - if (spu == 0.) - { - cm->print = -1; -- cm->print_function = 0; -+ suitesparse_assign_function(printf_func, cm->print_function, 0); - } - else - { - cm->print = static_cast (spu) + 2; -- cm->print_function =&SparseCholPrint; -+ suitesparse_assign_function(printf_func, cm->print_function, &SparseCholPrint); - } - - cm->error_handler = &SparseCholError; -- cm->complex_divide = CHOLMOD_NAME(divcomplex); -- cm->hypotenuse = CHOLMOD_NAME(hypot); - - cm->final_ll = true; - -@@ -5907,17 +5905,15 @@ SparseComplexMatrix::fsolve (MatrixType - if (spu == 0.) - { - cm->print = -1; -- cm->print_function = 0; -+ suitesparse_assign_function(printf_func, cm->print_function, 0); - } - else - { - cm->print = static_cast (spu) + 2; -- cm->print_function =&SparseCholPrint; -+ suitesparse_assign_function(printf_func, cm->print_function, &SparseCholPrint); - } - - cm->error_handler = &SparseCholError; -- cm->complex_divide = CHOLMOD_NAME(divcomplex); -- cm->hypotenuse = CHOLMOD_NAME(hypot); - - cm->final_ll = true; - -@@ -6198,17 +6194,15 @@ SparseComplexMatrix::fsolve (MatrixType - if (spu == 0.) - { - cm->print = -1; -- cm->print_function = 0; -+ suitesparse_assign_function(printf_func, cm->print_function, 0); - } - else - { - cm->print = static_cast (spu) + 2; -- cm->print_function =&SparseCholPrint; -+ suitesparse_assign_function(printf_func, cm->print_function, &SparseCholPrint); - } - - cm->error_handler = &SparseCholError; -- cm->complex_divide = CHOLMOD_NAME(divcomplex); -- cm->hypotenuse = CHOLMOD_NAME(hypot); - - cm->final_ll = true; - -@@ -6420,17 +6414,15 @@ SparseComplexMatrix::fsolve (MatrixType - if (spu == 0.) - { - cm->print = -1; -- cm->print_function = 0; -+ suitesparse_assign_function(printf_func, cm->print_function, 0); - } - else - { - cm->print = static_cast (spu) + 2; -- cm->print_function =&SparseCholPrint; -+ suitesparse_assign_function(printf_func, cm->print_function, &SparseCholPrint); - } - - cm->error_handler = &SparseCholError; -- cm->complex_divide = CHOLMOD_NAME(divcomplex); -- cm->hypotenuse = CHOLMOD_NAME(hypot); - - cm->final_ll = true; - -diff -up octave-3.8.2/liboctave/array/dSparse.cc.suitesparse octave-3.8.2/liboctave/array/dSparse.cc ---- octave-3.8.2/liboctave/array/dSparse.cc.suitesparse 2014-08-06 11:57:55.000000000 -0600 -+++ octave-3.8.2/liboctave/array/dSparse.cc 2014-09-16 15:22:01.253747787 -0600 -@@ -23,7 +23,7 @@ along with Octave; see the file COPYING. - */ - - #ifdef HAVE_CONFIG_H --#include -+#include "config.h" - #endif - - #include -@@ -5866,17 +5866,15 @@ SparseMatrix::fsolve (MatrixType &mattyp - if (spu == 0.) - { - cm->print = -1; -- cm->print_function = 0; -+ suitesparse_assign_function(printf_func, cm->print_function, 0); - } - else - { - cm->print = static_cast (spu) + 2; -- cm->print_function =&SparseCholPrint; -+ suitesparse_assign_function(printf_func, cm->print_function, &SparseCholPrint); - } - - cm->error_handler = &SparseCholError; -- cm->complex_divide = CHOLMOD_NAME(divcomplex); -- cm->hypotenuse = CHOLMOD_NAME(hypot); - - cm->final_ll = true; - -@@ -6083,17 +6081,15 @@ SparseMatrix::fsolve (MatrixType &mattyp - if (spu == 0.) - { - cm->print = -1; -- cm->print_function = 0; -+ suitesparse_assign_function(printf_func, cm->print_function, 0); - } - else - { - cm->print = static_cast (spu) + 2; -- cm->print_function =&SparseCholPrint; -+ suitesparse_assign_function(printf_func, cm->print_function, &SparseCholPrint); - } - - cm->error_handler = &SparseCholError; -- cm->complex_divide = CHOLMOD_NAME(divcomplex); -- cm->hypotenuse = CHOLMOD_NAME(hypot); - - cm->final_ll = true; - -@@ -6345,17 +6341,15 @@ SparseMatrix::fsolve (MatrixType &mattyp - if (spu == 0.) - { - cm->print = -1; -- cm->print_function = 0; -+ suitesparse_assign_function(printf_func, cm->print_function, 0); - } - else - { - cm->print = static_cast (spu) + 2; -- cm->print_function =&SparseCholPrint; -+ suitesparse_assign_function(printf_func, cm->print_function, &SparseCholPrint); - } - - cm->error_handler = &SparseCholError; -- cm->complex_divide = CHOLMOD_NAME(divcomplex); -- cm->hypotenuse = CHOLMOD_NAME(hypot); - - cm->final_ll = true; - -@@ -6579,17 +6573,15 @@ SparseMatrix::fsolve (MatrixType &mattyp - if (spu == 0.) - { - cm->print = -1; -- cm->print_function = 0; -+ suitesparse_assign_function(printf_func, cm->print_function, 0); - } - else - { - cm->print = static_cast (spu) + 2; -- cm->print_function =&SparseCholPrint; -+ suitesparse_assign_function(printf_func, cm->print_function, &SparseCholPrint); - } - - cm->error_handler = &SparseCholError; -- cm->complex_divide = CHOLMOD_NAME(divcomplex); -- cm->hypotenuse = CHOLMOD_NAME(hypot); - - cm->final_ll = true; - -diff -up octave-3.8.2/liboctave/numeric/sparse-base-chol.cc.suitesparse octave-3.8.2/liboctave/numeric/sparse-base-chol.cc ---- octave-3.8.2/liboctave/numeric/sparse-base-chol.cc.suitesparse 2014-08-06 11:54:14.000000000 -0600 -+++ octave-3.8.2/liboctave/numeric/sparse-base-chol.cc 2014-09-16 15:23:24.252358549 -0600 -@@ -22,7 +22,7 @@ along with Octave; see the file COPYING. - */ - - #ifdef HAVE_CONFIG_H --#include -+#include "config.h" - #endif - - #include "sparse-base-chol.h" -@@ -105,17 +105,15 @@ sparse_base_cholprint = -1; -- cm->print_function = 0; -+ suitesparse_assign_function(printf_func, cm->print_function, 0); - } - else - { - cm->print = static_cast (spu) + 2; -- cm->print_function =&SparseCholPrint; -+ suitesparse_assign_function(printf_func, cm->print_function, &SparseCholPrint); - } - - cm->error_handler = &SparseCholError; -- cm->complex_divide = CHOLMOD_NAME(divcomplex); -- cm->hypotenuse = CHOLMOD_NAME(hypot); - - cm->final_asis = false; - cm->final_super = false; -diff -up octave-3.8.2/liboctave/util/oct-sparse.h.suitesparse octave-3.8.2/liboctave/util/oct-sparse.h ---- octave-3.8.2/liboctave/util/oct-sparse.h.suitesparse 2014-08-06 11:54:15.000000000 -0600 -+++ octave-3.8.2/liboctave/util/oct-sparse.h 2014-09-16 15:14:13.417119567 -0600 -@@ -94,4 +94,12 @@ along with Octave; see the file COPYING. - #endif - #endif - -+// Cope with new suitesparse versions -+// -+#if defined( SUITESPARSE_VERSION ) && SUITESPARSE_VERSION >= SUITESPARSE_VER_CODE(4,3) -+#define suitesparse_assign_function(f_name,f_var,f_assign) (SuiteSparse_config.f_name = f_assign) -+#else -+#define suitesparse_assign_function(f_name,f_var,f_assign) (f_var = f_assign) -+#endif -+ - #endif diff --git a/octave.spec b/octave.spec index d6a83b6..8abd86d 100644 --- a/octave.spec +++ b/octave.spec @@ -1,5 +1,5 @@ # From src/version.h:#define OCTAVE_API_VERSION -%global octave_api api-v49+ +%global octave_api api-v50+ %{?!_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}} @@ -17,26 +17,24 @@ Name: octave Epoch: 6 -Version: 3.8.2 -Release: 20%{?dist} +Version: 4.0.0 +Release: 1%{?dist} Summary: A high-level language for numerical computations Group: Applications/Engineering License: GPLv3+ URL: http://www.octave.org %if 0%{!?rcver:1} -Source0: ftp://ftp.gnu.org/gnu/octave/octave-%{version}.tar.bz2 +Source0: ftp://ftp.gnu.org/gnu/octave/octave-%{version}.tar.xz %else Source0: ftp://alpha.gnu.org/gnu/octave/octave-%{version}%{rctag}.tar.gz %endif # RPM macros for helping to build Octave packages Source1: macros.octave +Source2: xorg.conf # Fix to allow pkg build to use a directory # https://savannah.gnu.org/bugs/?func=detailitem&item_id=32839 -Patch0: octave-3.8.0-pkgbuilddir.patch -# Patch to compile with suitesparse 4.3.1 -# https://savannah.gnu.org/bugs/?func=detailitem&item_id=43063 -Patch1: octave-suitesparse.patch +Patch0: octave-pkgbuilddir.patch Provides: octave(api) = %{octave_api} Provides: bundled(gnulib) @@ -64,6 +62,7 @@ BuildRequires: libX11-devel BuildRequires: llvm-devel BuildRequires: mesa-libGL-devel BuildRequires: mesa-libGLU-devel +BuildRequires: mesa-libOSMesa-devel BuildRequires: ncurses-devel BuildRequires: pcre-devel BuildRequires: qhull-devel @@ -75,6 +74,10 @@ BuildRequires: tex(dvips) BuildRequires: texinfo BuildRequires: texinfo-tex BuildRequires: zlib-devel +# For check +BuildRequires: mesa-dri-drivers +BuildRequires: xorg-x11-apps +BuildRequires: xorg-x11-drv-dummy Requires: epstool gnuplot gnuplot-common less info texinfo Requires: hdf5 = %{_hdf5_version} @@ -121,7 +124,6 @@ This package contains documentation for Octave. %prep %setup -q -n %{name}-%{version}%{?rctag} %patch0 -p1 -b .pkgbuilddir -%patch1 -p1 -b .suitesparse find -name \*.h -o -name \*.cc | xargs sed -i -e 's//"config.h"/' -e 's//"base-list.h"/' # Check permissions @@ -150,6 +152,7 @@ export JAVA_HOME=%{java_home} %configure --enable-shared --disable-static --enable-64=%enable64 \ --enable-float-truncate \ %{?disabledocs} \ + --disable-silent-rules \ --with-blas="-L%{_libdir}/atlas %{atlasblaslib}" \ --with-lapack="-L%{_libdir}/atlas %{atlaslapacklib}" \ --with-java-libdir=$libjvm \ @@ -190,10 +193,7 @@ perl -pi -e "s,%{buildroot},," %{buildroot}%{_datadir}/%{name}/ls-R # Make sure ls-R exists touch %{buildroot}%{_datadir}/%{name}/ls-R -# Update desktop file -rm %{buildroot}%{_datadir}/applications/www.octave.org-octave.desktop -desktop-file-install --add-category "DataVisualization" --add-category "NumericalAnalysis" --add-category "Engineering" --add-category "Physics" \ - --dir %{buildroot}%{_datadir}/applications etc/icons/octave.desktop +desktop-file-validate %{buildroot}%{_datadir}/applications/www.octave.org-octave.desktop # Create directories for add-on packages HOST_TYPE=`%{buildroot}%{_bindir}/octave-config -p CANONICAL_HOST_TYPE` @@ -266,50 +266,17 @@ cp -p doc/interpreter/macros.texi %{buildroot}%{_datadir}/%{name}/%{version}/etc mkdir -p %{buildroot}%{_rpmconfigdir}/macros.d cp -p %SOURCE1 %{buildroot}%{_rpmconfigdir}/macros.d/ -# Register as an application to be visible in the software center -# -# NOTE: It would be *awesome* if this file was maintained by the upstream -# project, translated and installed into the right place during `make install`. -# -# See http://www.freedesktop.org/software/appstream/docs/ for more details. -# -mkdir -p $RPM_BUILD_ROOT%{_datadir}/appdata -cat > $RPM_BUILD_ROOT%{_datadir}/appdata/%{name}.appdata.xml < - - - - octave.desktop - CC0-1.0 - Interactive programming environment for numerical computations - -

- GNU Octave is a high-level interpreted language, primarily intended for - numerical computations. - It provides capabilities for the numerical solution of linear and - nonlinear problems, and for performing other numerical experiments. - It also provides extensive graphics capabilities for data visualization - and manipulation. -

-

- Octave is normally used through its interactive command line interface, - but it can also be used to write non-interactive programs. - The Octave language is quite similar to Matlab so that most programs are - easily portable. -

-
- http://www.octave.org - - http://www.gnu.org/software/octave/images/screenshot.png - - octave-maintainers@octave.org -
-EOF %check +cp %SOURCE2 . +if [ -x /usr/libexec/Xorg ]; then + Xorg=/usr/libexec/Xorg +else + Xorg=/usr/libexec/Xorg.bin +fi +$Xorg -noreset +extension GLX +extension RANDR +extension RENDER -logfile ./xorg.log -config ./xorg.conf :99 & +sleep 2 +export DISPLAY=:99 # Tests are currently segfaulting on arm # https://bugzilla.redhat.com/show_bug.cgi?id=1149953 %ifarch %{arm} @@ -320,6 +287,7 @@ make check %post /sbin/ldconfig +/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : %if %{builddocs} /sbin/install-info --info-dir=%{_infodir} --section="Programming" \ %{_infodir}/octave.info || : @@ -332,7 +300,16 @@ if [ "$1" = "0" ]; then fi %endif -%postun -p /sbin/ldconfig +%postun +/sbin/ldconfig +if [ $1 -eq 0 ] ; then + /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null + /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : +fi + +%posttrans +/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : + %files %license COPYING @@ -349,8 +326,10 @@ fi %{_mandir}/man1/octave*.1.* %{_infodir}/liboctave.info* %{_infodir}/octave.info* -%{_datadir}/appdata/%{name}.appdata.xml -%{_datadir}/applications/octave.desktop +%{_datadir}/appdata/www.octave.org-octave.appdata.xml +%{_datadir}/applications/www.octave.org-octave.desktop +%{_datadir}/icons/hicolor/*/apps/octave.png +%{_datadir}/icons/hicolor/scalable/apps/octave.svg # octave_packages is %ghost, so need to list everything else separately %dir %{_datadir}/octave %{_datadir}/octave/%{version}%{?rctag}/ @@ -376,6 +355,12 @@ fi %{_pkgdocdir}/refcard*.pdf %changelog +* Mon Jul 6 2015 Orion Poplawski - 6:4.0.0-1 +- Update to 4.0.0 +- Rebase pkgbuilddir patch +- Drop suitesparse patch +- Run X server for tests + * Wed Jun 17 2015 Fedora Release Engineering - 6:3.8.2-20 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild diff --git a/sources b/sources index 7a1692d..a069626 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -188bd97e22054f9c62701ee0e6800dc1 octave-3.8.2.tar.bz2 +f3de0a0d9758e112f13ce1f5eaf791bf octave-4.0.0.tar.xz diff --git a/xorg.conf b/xorg.conf new file mode 100644 index 0000000..d31d944 --- /dev/null +++ b/xorg.conf @@ -0,0 +1,137 @@ +# This xorg configuration file is meant to be used by xpra +# to start a dummy X11 server. +# For details, please see: +# https://xpra.org/Xdummy.html + +Section "ServerFlags" + Option "DontVTSwitch" "true" + Option "AllowMouseOpenFail" "true" + Option "PciForceNone" "true" + Option "AutoEnableDevices" "false" + Option "AutoAddDevices" "false" +EndSection + +Section "InputDevice" + Identifier "dummy_mouse" + Option "CorePointer" "true" + Driver "void" +EndSection + +Section "InputDevice" + Identifier "dummy_keyboard" + Option "CoreKeyboard" "true" + Driver "void" +EndSection + +Section "Device" + Identifier "dummy_videocard" + Driver "dummy" + Option "ConstantDPI" "true" + #VideoRam 4096000 + #VideoRam 256000 + VideoRam 192000 +EndSection + +Section "Monitor" + Identifier "dummy_monitor" + HorizSync 5.0 - 1000.0 + VertRefresh 5.0 - 200.0 + #This can be used to get a specific DPI, but only for the default resolution: + #DisplaySize 508 317 + #NOTE: the highest modes will not work without increasing the VideoRam + # for the dummy video card. + Modeline "32768x32768" 15226.50 32768 35800 39488 46208 32768 32771 32781 32953 + Modeline "32768x16384" 7516.25 32768 35544 39192 45616 16384 16387 16397 16478 + Modeline "16384x8192" 2101.93 16384 16416 24400 24432 8192 8390 8403 8602 + Modeline "8192x4096" 424.46 8192 8224 9832 9864 4096 4195 4202 4301 + Modeline "5496x1200" 199.13 5496 5528 6280 6312 1200 1228 1233 1261 + Modeline "5280x1080" 169.96 5280 5312 5952 5984 1080 1105 1110 1135 + Modeline "5280x1200" 191.40 5280 5312 6032 6064 1200 1228 1233 1261 + Modeline "5120x3200" 199.75 5120 5152 5904 5936 3200 3277 3283 3361 + Modeline "4800x1200" 64.42 4800 4832 5072 5104 1200 1229 1231 1261 + Modeline "3840x2880" 133.43 3840 3872 4376 4408 2880 2950 2955 3025 + Modeline "3840x2560" 116.93 3840 3872 4312 4344 2560 2622 2627 2689 + Modeline "3840x2048" 91.45 3840 3872 4216 4248 2048 2097 2101 2151 + Modeline "3840x1080" 100.38 3840 3848 4216 4592 1080 1081 1084 1093 + Modeline "3600x1200" 106.06 3600 3632 3984 4368 1200 1201 1204 1214 + Modeline "3288x1080" 39.76 3288 3320 3464 3496 1080 1106 1108 1135 + Modeline "2048x2048" 49.47 2048 2080 2264 2296 2048 2097 2101 2151 + Modeline "2048x1536" 80.06 2048 2104 2312 2576 1536 1537 1540 1554 + Modeline "2560x1600" 47.12 2560 2592 2768 2800 1600 1639 1642 1681 + Modeline "2560x1440" 42.12 2560 2592 2752 2784 1440 1475 1478 1513 + Modeline "1920x1440" 69.47 1920 1960 2152 2384 1440 1441 1444 1457 + Modeline "1920x1200" 26.28 1920 1952 2048 2080 1200 1229 1231 1261 + Modeline "1920x1080" 23.53 1920 1952 2040 2072 1080 1106 1108 1135 + Modeline "1680x1050" 20.08 1680 1712 1784 1816 1050 1075 1077 1103 + Modeline "1600x1200" 22.04 1600 1632 1712 1744 1200 1229 1231 1261 + Modeline "1600x900" 33.92 1600 1632 1760 1792 900 921 924 946 + Modeline "1440x900" 30.66 1440 1472 1584 1616 900 921 924 946 + ModeLine "1366x768" 72.00 1366 1414 1446 1494 768 771 777 803 + Modeline "1280x1024" 31.50 1280 1312 1424 1456 1024 1048 1052 1076 + Modeline "1280x800" 24.15 1280 1312 1400 1432 800 819 822 841 + Modeline "1280x768" 23.11 1280 1312 1392 1424 768 786 789 807 + Modeline "1360x768" 24.49 1360 1392 1480 1512 768 786 789 807 + Modeline "1024x768" 18.71 1024 1056 1120 1152 768 786 789 807 + Modeline "768x1024" 19.50 768 800 872 904 1024 1048 1052 1076 + + + #common resolutions for android devices (both orientations): + Modeline "800x1280" 25.89 800 832 928 960 1280 1310 1315 1345 + Modeline "1280x800" 24.15 1280 1312 1400 1432 800 819 822 841 + Modeline "720x1280" 30.22 720 752 864 896 1280 1309 1315 1345 + Modeline "1280x720" 27.41 1280 1312 1416 1448 720 737 740 757 + Modeline "768x1024" 24.93 768 800 888 920 1024 1047 1052 1076 + Modeline "1024x768" 23.77 1024 1056 1144 1176 768 785 789 807 + Modeline "600x1024" 19.90 600 632 704 736 1024 1047 1052 1076 + Modeline "1024x600" 18.26 1024 1056 1120 1152 600 614 617 631 + Modeline "536x960" 16.74 536 568 624 656 960 982 986 1009 + Modeline "960x536" 15.23 960 992 1048 1080 536 548 551 563 + Modeline "600x800" 15.17 600 632 688 720 800 818 822 841 + Modeline "800x600" 14.50 800 832 880 912 600 614 617 631 + Modeline "480x854" 13.34 480 512 560 592 854 873 877 897 + Modeline "848x480" 12.09 848 880 920 952 480 491 493 505 + Modeline "480x800" 12.43 480 512 552 584 800 818 822 841 + Modeline "800x480" 11.46 800 832 872 904 480 491 493 505 + #resolutions for android devices (both orientations) + #minus the status bar + #38px status bar (and width rounded up) + Modeline "800x1242" 25.03 800 832 920 952 1242 1271 1275 1305 + Modeline "1280x762" 22.93 1280 1312 1392 1424 762 780 783 801 + Modeline "720x1242" 29.20 720 752 856 888 1242 1271 1276 1305 + Modeline "1280x682" 25.85 1280 1312 1408 1440 682 698 701 717 + Modeline "768x986" 23.90 768 800 888 920 986 1009 1013 1036 + Modeline "1024x730" 22.50 1024 1056 1136 1168 730 747 750 767 + Modeline "600x986" 19.07 600 632 704 736 986 1009 1013 1036 + Modeline "1024x562" 17.03 1024 1056 1120 1152 562 575 578 591 + Modeline "536x922" 16.01 536 568 624 656 922 943 947 969 + Modeline "960x498" 14.09 960 992 1040 1072 498 509 511 523 + Modeline "600x762" 14.39 600 632 680 712 762 779 783 801 + Modeline "800x562" 13.52 800 832 880 912 562 575 578 591 + Modeline "480x810" 12.59 480 512 552 584 810 828 832 851 + Modeline "848x442" 11.09 848 880 920 952 442 452 454 465 + Modeline "480x762" 11.79 480 512 552 584 762 779 783 801 +EndSection + +Section "Screen" + Identifier "dummy_screen" + Device "dummy_videocard" + Monitor "dummy_monitor" + DefaultDepth 24 + SubSection "Display" + Viewport 0 0 + Depth 24 + #Modes "32768x32768" "32768x16384" "16384x8192" "8192x4096" "5120x3200" "3840x2880" "3840x2560" "3840x2048" "2048x2048" "2560x1600" "1920x1440" "1920x1200" "1920x1080" "1600x1200" "1680x1050" "1600x900" "1400x1050" "1440x900" "1280x1024" "1366x768" "1280x800" "1024x768" "1024x600" "800x600" "320x200" + Modes "5120x3200" "3840x2880" "3840x2560" "3840x2048" "2048x2048" "2560x1600" "1920x1440" "1920x1200" "1920x1080" "1600x1200" "1680x1050" "1600x900" "1400x1050" "1440x900" "1280x1024" "1366x768" "1280x800" "1024x768" "1024x600" "800x600" "320x200" + #Virtual 32000 32000 + #Virtual 16384 8192 + Virtual 8192 4096 + #Virtual 5120 3200 + EndSubSection +EndSection + +Section "ServerLayout" + Identifier "dummy_layout" + Screen "dummy_screen" + InputDevice "dummy_mouse" + InputDevice "dummy_keyboard" +EndSection