diff options
-rw-r--r-- | move-to-next-monitor/README.md | 24 | ||||
-rw-r--r-- | move-to-next-monitor/move-to-next-monitor.Makefile | 58 | ||||
-rw-r--r-- | move-to-next-monitor/move-to-next-monitor.spec | 89 | ||||
-rw-r--r-- | waterfox/mozilla-1336978.patch | 99 | ||||
-rw-r--r-- | waterfox/waterfox-mozconfig | 3 | ||||
-rw-r--r-- | waterfox/waterfox.spec | 158 |
6 files changed, 364 insertions, 67 deletions
diff --git a/move-to-next-monitor/README.md b/move-to-next-monitor/README.md new file mode 100644 index 0000000..7f14b8d --- /dev/null +++ b/move-to-next-monitor/README.md @@ -0,0 +1,24 @@ +# Readme for move-to-next-monitor +To take full advantage of move-to-next-monitor, set it up on a keyboard shortcut in your display manager settings. + +A certain non-free operating system uses Super+Shift+Left and Super+Shift+Right. + +| Command | Shortcut key | +| ------------------------------ | ----------------- | +| move-to-next-monitor | Super+Shift+right | +| move-to-next-monitor --reverse | Super+Shift+left | + +### Alternatives +Alternative includes: [https://github.com/calandoa/movescreen](https://github.com/calandoa/movescreen) + +### Dependencies +Several dependencies are needed for this script to operate correctly. +* python +* wmctrl +* xdotool +* xprop +* xrandr + +### Sources +The original concept was written by [jcOOke](https://github.com/jc00ke/move-to-next-monitor). A reiteration in python was provided by [vanaoff](https://github.com/vanaoff/move-to-next-monitor). +The upstream package for this rpm is [https://gitlab.com/bgstack15/move-to-next-monitor](https://gitlab.com/bgstack15/move-to-next-monitor). diff --git a/move-to-next-monitor/move-to-next-monitor.Makefile b/move-to-next-monitor/move-to-next-monitor.Makefile new file mode 100644 index 0000000..ac896df --- /dev/null +++ b/move-to-next-monitor/move-to-next-monitor.Makefile @@ -0,0 +1,58 @@ +# File: Makefile for move-to-next-monitor +# Location: bgscripts source package +# Author: bgstack15 +# Startdate: 2018-11-30 +# Title: Makefile for move-to-next-monitor source package +# Purpose: To use traditional Unix make utility +# History: +# Usage: +# Reference: +# Improve: +# Document: +# Dependencies: + +APPNAME = move-to-next-monitor +APPVERSION = 0.0.1 +SRCDIR = $(CURDIR) +prefix = /usr +BINDIR = $(DESTDIR)$(prefix)/bin +LICENSEDIR = $(DESTDIR)$(prefix)/share/licenses/$(APPNAME) + +awkbin :=$(shell which awk) +cpbin :=$(shell which cp) +echobin :=$(shell which echo) +findbin :=$(shell which find) +grepbin :=$(shell which grep) +installbin :=$(shell which install) +rmbin :=$(shell which rm) +sedbin :=$(shell which sed) +sortbin :=$(shell which sort) +truebin :=$(shell which true) + +all: + ${echobin} "No compilation in this package." + +.PHONY: clean install install_files uninstall list + +list: + @$(MAKE) -pRrq -f $(lastword $(MAKEFILE_LIST)) : 2>/dev/null | ${awkbin} -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | ${sortbin} | ${grepbin} -E -v -e '^[^[:alnum:]]' -e '^$@$$' + +install: install_files + +install_files: + ${echobin} Installing files to ${DESTDIR} + ${installbin} -d ${BINDIR} ${LICENSEDIR} + ls -l ${SRCDIR} + ${installbin} -m '0755' ${SRCDIR}/move-to-next-monitor ${BINDIR}/ + ${installbin} -m '0644' ${SRCDIR}/LICENSE ${LICENSEDIR}/ + +uninstall: + ${echobin} SRCDIR=${SRCDIR} + ${rmbin} -f ${BINDIR}/move-to-next-monitor + ${rmbin} -f ${LICENSEDIR}/LICENSE + + # remove all installed directories that are now blank. + for word in $$( ${findbin} ${DESTDIR} -mindepth 1 -type d -printf '%p\n' | ${awkbin} '{print length, $$0 }' | ${sortbin} -rn | ${awkbin} '{print $$2}' ) ; do ${findbin} $${word} -mindepth 1 1>/dev/null 2>&1 | read 1>/dev/null 2>&1 || { rmdir "$${word}" 2>/dev/null || ${truebin} ; } ; done + +clean: + -${echobin} "target $@ not implemented yet! Gotta say unh." diff --git a/move-to-next-monitor/move-to-next-monitor.spec b/move-to-next-monitor/move-to-next-monitor.spec new file mode 100644 index 0000000..446cb0b --- /dev/null +++ b/move-to-next-monitor/move-to-next-monitor.spec @@ -0,0 +1,89 @@ +%global dummy_package 0 +%global use_git 1 +%if 0%{use_git} +%global tarballdir %{name}-master +%else +%global tarballdir %{name}-%{version} +%endif +%define license_files %{srcdir}/License.txt + +# turn off debug package +%define debug_package %{nil} + +Name: move-to-next-monitor +Version: 0.0.1 +Release: 1 +BuildArch: noarch +Summary: Script that facilitates moving a window to the next monitor + +Group: Utility +License: GPL-3.0 +URL: https://gitlab.com/bgstack15/move-to-next-monitor +%if 0%{use_git} +# Source0: https://github.com/vanaoff/move-to-next-monitor/archive/master.zip +Source0: https://gitlab.com/bgstack15/%{name}/-/archive/master/%{name}-master.tar.gz +%else +Source0: https://gitlab.com/bgstack15/%{name}/-/archive/%{version}/%{name}-master.tar.gz +%endif +Source1: move-to-next-monitor.Makefile +Source2: README.md +#Patch1: none.patch + +Packager: Bgstack15 <bgstack15@gmail.com> +BuildRequires: coreutils +Requires: python3 +Requires: wmctrl +Requires: xdotool +Requires: xorg-x11-server-utils +Requires: xorg-x11-utils + +%description +move-to-next-monitor is a small script that makes it easy for display managers without this native functionality to provide it. You can assign a shortcut key in the display manager settings to the script to use it. + +%prep +%setup -q -c +# copy in custom Makefile and adjust to use tarball directory as source directory +%{__cp} -p %{SOURCE1} ./Makefile +%{__sed} -i -r -e '/^SRCDIR\s*=/s:\$\(CURDIR\)\s*$:$(CURDIR)/'"%{tarballdir}"':;' ./Makefile + +#pushd %{tarballdir} +#%patch0 -p1 +#popd + +%build +: + +%install +%make_install + +# man page +%{__mkdir_p} %{buildroot}%{_pkgdocdir} +%{__cp} -p "%{SOURCE2}" %{buildroot}%{_pkgdocdir}/ + +%clean +%{__rm} -rf %{buildroot} || : + +%post +: + +%preun +# is it a final removal? +#if test "$1" = "0" ; +#then +#fi +: + +%postun +: + +%posttrans +: + +%files +%license LICENSE +%doc %{_pkgdocdir}/* +%{_bindir}/%{name} + +%changelog +* Fri Nov 30 2018 B Stack <bgstack15@gmail.com> 0.0.1-1 +- initial package built diff --git a/waterfox/mozilla-1336978.patch b/waterfox/mozilla-1336978.patch new file mode 100644 index 0000000..136eb83 --- /dev/null +++ b/waterfox/mozilla-1336978.patch @@ -0,0 +1,99 @@ + +# HG changeset patch +# User Sylvestre Ledru <sledru@mozilla.com> +# Date 1501074847 -7200 +# Node ID 342812d23eb995a19b391f7bcd48d03db092709a +# Parent 2980183d98fb2513d41209c5a9e08bfc519b68fa +Bug 1336978 - Add support of lld by adding a configure option --enable-linker='bfd', 'gold', 'lld', 'other' r=glandium + +MozReview-Commit-ID: 7LI2lMXO2lG + +diff --git a/build/moz.configure/toolchain.configure b/build/moz.configure/toolchain.configure +--- a/build/moz.configure/toolchain.configure ++++ b/build/moz.configure/toolchain.configure +@@ -1136,23 +1136,23 @@ def build_not_win_mac(target): + return True + + + option('--enable-gold', + env='MOZ_FORCE_GOLD', + help='Enable GNU Gold Linker when it is not already the default', + when=build_not_win_mac) + ++imply_option('--enable-linker', ++ depends_if('--enable-gold', when=build_not_win_mac)(lambda x: 'gold'), ++ when=build_not_win_mac) + +-@depends('--enable-gold', c_compiler, developer_options, check_build_environment, when=build_not_win_mac) +-@checking('for ld', lambda x: x.KIND) + @imports('os') + @imports('shutil') +-def enable_gold(enable_gold_option, c_compiler, developer_options, build_env): +- linker = None ++def enable_gnu_linker(enable_gold_option, c_compiler, developer_options, build_env, linker_name): + # Used to check the kind of linker + version_check = ['-Wl,--version'] + cmd_base = c_compiler.wrapper + [c_compiler.compiler] + c_compiler.flags + + def resolve_gold(): + # Try to force the usage of gold + targetDir = os.path.join(build_env.topobjdir, 'build', 'unix', 'gold') + +@@ -1177,17 +1177,17 @@ def enable_gold(enable_gold_option, c_co + return namespace( + KIND='gold', + LINKER_FLAG=linker, + ) + else: + # The -B trick didn't work, removing the directory + shutil.rmtree(targetDir) + +- if enable_gold_option or developer_options: ++ if (enable_gold_option or developer_options) and linker_name != 'bfd': + result = resolve_gold() + + if result: + return result + # gold is only required if --enable-gold is used. + elif enable_gold_option: + die('Could not find gold') + # Else fallthrough. +@@ -1208,10 +1208,35 @@ def enable_gold(enable_gold_option, c_co + KIND='gold' + ) + + # For other platforms without gold or the GNU linker + return namespace( + KIND='other' + ) + +-set_config('LD_IS_BFD', depends(enable_gold.KIND)(lambda x: x == 'bfd' or None)) +-set_config('LINKER_LDFLAGS', enable_gold.LINKER_FLAG) ++js_option('--enable-linker', nargs=1, ++ choices=('bfd', 'gold', 'lld', 'other'), ++ help='Select the linker', ++ when=build_not_win_mac) ++ ++@depends('--enable-linker', c_compiler, developer_options, check_build_environment, when=build_not_win_mac) ++@checking('for linker', lambda x: x.KIND) ++def select_linker(linker, c_compiler, developer_options, build_env): ++ linker = linker[0] if linker else 'other' ++ if linker in ('gold', 'bfd', 'other'): ++ return enable_gnu_linker(linker == 'gold', c_compiler, developer_options, build_env, linker) ++ if linker == 'lld': ++ version_check = ['-Wl,--version'] ++ cmd_base = c_compiler.wrapper + [c_compiler.compiler] + c_compiler.flags ++ lld = "-fuse-ld=" + linker ++ cmd = cmd_base + [lld] + version_check ++ if 'LLD' in check_cmd_output(*cmd).decode('utf-8'): ++ return namespace( ++ KIND='lld', ++ LINKER_FLAG=lld, ++ ) ++ else: ++ die("Could not use lld as linker") ++ ++ ++set_config('LD_IS_BFD', depends(select_linker.KIND)(lambda x: x == 'bfd' or None)) ++set_config('LINKER_LDFLAGS', select_linker.LINKER_FLAG) + diff --git a/waterfox/waterfox-mozconfig b/waterfox/waterfox-mozconfig index bd17381..57b40bb 100644 --- a/waterfox/waterfox-mozconfig +++ b/waterfox/waterfox-mozconfig @@ -16,10 +16,8 @@ ac_add_options --disable-updater ac_add_options --enable-url-classifier ac_add_options --enable-chrome-format=omni ac_add_options --enable-pulseaudio -ac_add_options --with-system-icu ac_add_options --enable-release ac_add_options --enable-pie -ac_add_options --enable-gold ac_add_options --disable-gconf # Workaround for mozbz#1341234 ac_add_options BINDGEN_CFLAGS="$(pkg-config nspr pixman-1 --cflags)" @@ -37,7 +35,6 @@ ac_add_options --disable-profiling ac_add_options --disable-signmar ac_add_options --disable-verify-mar -#ac_add_options --enable-rust-simd # on x86 requires SSE2, breaks with system llvm ac_add_options --enable-stylo=build ac_add_options --with-app-name=waterfox diff --git a/waterfox/waterfox.spec b/waterfox/waterfox.spec index 43687e7..5882681 100644 --- a/waterfox/waterfox.spec +++ b/waterfox/waterfox.spec @@ -1,6 +1,6 @@ -%global commit 475fed0269120a3673ac55d8384022dc7f44eacf +%global commit 3e2c786a657a0b2e6e7a82c155a8ff6030888c4a %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global date 20181030 +%global date 20181211 %global with_snapshot 1 %global freebsd_rev 480450 @@ -10,68 +10,59 @@ %global gver .%{date}git%{shortcommit} %endif -# Build with clang only? -%global with_clang 0 -# Use ALSA backend? %global alsa_backend 1 - -# Use system nspr/nss? %global system_nss 1 - -# Use system hunspell? %global system_hunspell 1 - -# Use system libevent? %global system_libevent 1 - -# Use system sqlite? %global system_sqlite 1 - %global system_ffi 1 - -# Use system cairo? %global system_cairo 0 - -# Use system graphite2/harfbuzz? %global system_harfbuzz 1 - -# Use system libvpx? %global system_libvpx 1 - -# Use system webp? %global system_webp 1 - -# Use system libvpx? %global system_vorbis 1 - -# Use system libicu? %global system_libicu 0 +%global system_jpeg 1 + +%global run_tests 0 + +%global hardened_build 1 + +%global build_with_clang 0 +%if 0%{?fedora} >= 29 +%ifarch x86_64 aarch64 +%global build_with_clang 1 +%endif +%endif +%global build_with_pgo 0 # Big endian platforms %ifarch ppc64 s390x -# Javascript Intl API is not supported on big endian platforms right now: -# https://bugzilla.mozilla.org/show_bug.cgi?id=1322212 %global big_endian 1 %endif -# Hardened build? -%global hardened_build 1 - -%global system_jpeg 1 +%if 0%{?build_with_pgo} +%global use_xvfb 1 +%global build_tests 1 +%endif -%ifarch %{ix86} x86_64 -%global run_tests 0 -%else -%global run_tests 0 +%if !0%{?run_tests} +%global use_xvfb 1 +%global build_tests 1 %endif -# Build as a debug package? +%bcond_without debug_build +%if %{with debug_build} +%else +%global debug_build 1 +%else %global debug_build 0 +%endif -%global disable_elfhack 0 -%if 0%{?fedora} > 28 -%global disable_elfhack 1 +%global disable_elfhack 0 +%if !0%{?build_with_clang} || 0%{?fedora} > 28 +%global disable_elfhack 1 %endif %global default_bookmarks_file %{_datadir}/bookmarks/default-bookmarks.html @@ -184,13 +175,12 @@ Patch414: mozilla-1435695.patch Patch415: Bug-1238661---fix-mozillaSignalTrampoline-to-work-.patch Patch416: bug1375074-save-restore-x28.patch Patch417: mozilla-1436242.patch +Patch418: https://hg.mozilla.org/integration/autoland/raw-rev/342812d23eb9#/mozilla-1336978.patch # Upstream updates %global wf_url https://github.com/MrAlex94/Waterfox #Patch???: %%{wf_url}/commit/commit.patch#/wf-commit.patch -# Revert this until figure out -Patch490: %{wf_url}/commit/a89c49043079c720ea09ea3c7c523a5ef5db00e5.patch#/wf-a89c49043079c720ea09ea3c7c523a5ef5db00e5.patch # Debian patches Patch500: mozilla-440908.patch @@ -261,7 +251,10 @@ BuildRequires: llvm BuildRequires: llvm-devel BuildRequires: clang BuildRequires: clang-libs -%if !0%{?with_clang} +%if 0%{?build_with_clang} +#BuildRequires: lld +BuildRequires: libstdc++-static +%else BuildRequires: gcc-c++ %endif BuildRequires: patchutils @@ -274,6 +267,7 @@ Requires: nspr >= %{nspr_build_version} Requires: nss >= %{nss_build_version} %endif BuildRequires: python2-devel +Requires: u2f-hidraw-policy BuildRequires: nss-devel >= 3.29.1-2.1 Requires: nss >= 3.29.1-2.1 @@ -289,7 +283,7 @@ Requires: sqlite >= %{sqlite_build_version} BuildRequires: pkgconfig(libffi) %endif -%if %{?run_tests} +%if 0%{?use_xvfb} BuildRequires: xorg-x11-server-Xvfb %endif BuildRequires: rust @@ -304,7 +298,7 @@ Waterfox is an open-source web browser, specialised modification of the Mozilla platform, designed for privacy and user choice in mind. %if %{run_tests} -%global testsuite_pkg_name mozilla-%{name}-testresults +%global testsuite_pkg_name %{name}-testresults %package -n %{testsuite_pkg_name} Summary: Results of testsuite %description -n %{testsuite_pkg_name} @@ -374,8 +368,7 @@ This package contains results of tests executed during build. %endif %patch416 -p1 -b .bug1375074-save-restore-x28 %patch417 -p1 -b .mozilla-1436242 - -%patch490 -p1 -R -b .1420171 +%patch418 -p1 -b .mozilla-1336978 # Debian extension patch %patch500 -p1 -b .440908 @@ -400,7 +393,7 @@ done # 2: no apply # 3: uncertain for i in \ - 702179 991253 1021761 1144632 1288587 1452576 \ + 702179 991253 1021761 1144632 1288587 1395486 1452576 \ 1388744 1413143 \ 1447519 do @@ -431,9 +424,22 @@ done rm -f .mozconfig cp %{SOURCE10} .mozconfig -%if 0%{?with_clang} +%if 0%{?build_with_clang} +echo 'export LLVM_PROFDATA="llvm-profdata"' >> .mozconfig echo 'export CC=clang' >> .mozconfig echo 'export CXX=clang++' >> .mozconfig +echo 'export AR="llvm-ar"' >> .mozconfig +echo 'export NM="llvm-nm"' >> .mozconfig +echo 'export RANLIB="llvm-ranlib"' >> .mozconfig +echo "ac_add_options --enable-linker=gold" >> .mozconfig +echo "ac_add_options --enable-rust-simd" >> .mozconfig +%else +echo 'export CC=gcc' >> .mozconfig +echo 'export CXX=g++' >> .mozconfig +echo "ac_add_options --enable-linker=gold" >> .mozconfig +%endif +%if 0%{?build_with_pgo} +echo "ac_add_options MOZ_PGO=1" >> .mozconfig %endif %if %{?system_nss} @@ -497,10 +503,6 @@ echo "ac_add_options --enable-debug" >> .mozconfig echo "ac_add_options --disable-optimize" >> .mozconfig %else %global optimize_flags "none" -# Fedora 26 (gcc7) needs to disable default build flags (mozbz#1342344) -%ifnarch s390 s390x -%global optimize_flags "-g -O2" -%endif %ifarch armv7hl # ARMv7 need that (rhbz#1426850) %global optimize_flags "-g -O2 -fno-schedule-insns" @@ -564,6 +566,9 @@ echo "ac_add_options --without-system-icu" >> .mozconfig echo "ac_add_options --disable-ion" >> .mozconfig %endif +# Remove executable bit to make brp-mangle-shebangs happy. +chmod -x third_party/rust/itertools/src/lib.rs + #--------------------------------------------------------------------- @@ -589,13 +594,6 @@ echo "Generate big endian version of config/external/icu/data/icud58l.dat" # Update the various config.guess to upstream release for aarch64 support find ./ -name config.guess -exec cp /usr/lib/rpm/config.guess {} ';' -# -fpermissive is needed to build with gcc 4.6+ which has become stricter -# -# Mozilla builds with -Wall with exception of a few warnings which show up -# everywhere in the code; so, don't override that. -# -# Disable C++ exceptions since Mozilla code is not exception-safe -# MOZ_OPT_FLAGS=$(echo "%{optflags}" | %{__sed} -e 's/-Wall//') #rhbz#1037063 # -Werror=format-security causes build failures when -Wno-format is explicitly given @@ -603,9 +601,6 @@ MOZ_OPT_FLAGS=$(echo "%{optflags}" | %{__sed} -e 's/-Wall//') # Explicitly force the hardening flags for Waterfox so it passes the checksec test; # See also https://fedoraproject.org/wiki/Changes/Harden_All_Packages MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -Wformat-security -Wformat -Werror=format-security" -# Disable null pointer gcc6 optimization in gcc6 (rhbz#1328045) -MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fno-delete-null-pointer-checks" -# Use hardened build? %if %{?hardened_build} MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fPIC -Wl,-z,relro -Wl,-z,now" %endif @@ -619,9 +614,19 @@ MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-g/-g1/') # (OOM when linking, rhbz#1238225) export MOZ_DEBUG_FLAGS=" " %endif +%ifarch %{arm} +MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-g/-g0/') +export MOZ_DEBUG_FLAGS=" " +%endif +%if !0%{?build_with_clang} %ifarch s390 %{arm} ppc aarch64 MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads" %endif +%endif + +%ifarch %{arm} %{ix86} +export RUSTFLAGS="-Cdebuginfo=0" +%endif export CFLAGS=$MOZ_OPT_FLAGS export CXXFLAGS=$MOZ_OPT_FLAGS export LDFLAGS=$MOZ_LINK_FLAGS @@ -629,6 +634,16 @@ export LDFLAGS=$MOZ_LINK_FLAGS export PREFIX='%{_prefix}' export LIBDIR='%{_libdir}' +%if 0%{?build_with_clang} +export CC=clang +export CXX=clang++ +export AR="llvm-ar" +export NM="llvm-nm" +%else +export CC=gcc +export CXX=g++ +%endif + MOZ_SMP_FLAGS=-j1 # On x86 architectures, Mozilla can build up to 4 jobs at once in parallel, # however builds tend to fail on other arches when building in parallel. @@ -640,7 +655,14 @@ MOZ_SMP_FLAGS=-j1 [ "$RPM_BUILD_NCPUS" -ge 8 ] && MOZ_SMP_FLAGS=-j8 %endif -make -f client.mk build STRIP="/bin/true" MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS" MOZ_SERVICES_SYNC="1" +export MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS" +export MOZ_SERVICES_SYNC="1" +export STRIP=/bin/true +%if 0%{?build_with_pgo} +xvfb-run ./mach build +%else +./mach build +%endif %if %{?run_tests} %if %{?system_nss} @@ -909,6 +931,14 @@ fi #--------------------------------------------------------------------- %changelog +* Thu Dec 13 2018 B Stack <bgstack15@gmail.com> 56.2.5.-3.20181211git3e2c786 +- repackage for stackrpms + +* Wed Dec 12 2018 Phantom X <megaphantomx at bol dot com dot br> - 56.2.5-2.20181211git3e2c786 +- New snapshot +- Updated spec, more like Fedora Firefox one +- clang build + * Tue Oct 30 2018 Phantom X <megaphantomx at bol dot com dot br> - 56.2.5-1.20181030git475fed0 - New release/snapshot |