Compare commits
No commits in common. "master" and "v88.0.1-2" have entirely different histories.
19 changed files with 1288 additions and 20 deletions
11
.gitignore
vendored
Normal file
11
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
/firefox-*
|
||||||
|
/librewolf-*
|
||||||
|
/librewolf
|
||||||
|
/mozilla-unified
|
||||||
|
/tor-browser
|
||||||
|
/bootstrap.py
|
||||||
|
/mozconfig
|
||||||
|
/dist
|
||||||
|
/tmp.nsi
|
||||||
|
/tmp-permissive.nsi
|
||||||
|
/tmp-strict.nsi
|
||||||
6
.gitmodules
vendored
Normal file
6
.gitmodules
vendored
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
[submodule "settings"]
|
||||||
|
path = settings
|
||||||
|
url = https://gitlab.com/librewolf-community/settings.git
|
||||||
|
[submodule "common"]
|
||||||
|
path = common
|
||||||
|
url = https://gitlab.com/librewolf-community/browser/common.git
|
||||||
39
README.md
39
README.md
|
|
@ -1,30 +1,29 @@
|
||||||
# LibreWolf Issue Tracker & Update Tools 🚀
|
# What LibreWolf is not
|
||||||
|
|
||||||
Welcome to the **LibreWolf for Windows** repository! This repository is now dedicated to the **Issue Tracker**. Submit your issues and get the latest updates on LibreWolf for Windows.
|
* LibreWolf does **not** provide _[Anonymity](https://en.wikipedia.org/wiki/Anonymous_web_browsing)_, for that, use:
|
||||||
|
> [Tor Browser](https://www.torproject.org/).
|
||||||
|
|
||||||
To download the latest release, visit the [official LibreWolf release page](https://gitlab.com/librewolf-community/browser/bsys6/-/releases). For installation options, check out the [FAQ](https://librewolf.net/docs/faq/).
|
_What is it then?_ It's a **_hardened_** _version_ of Firefox. (See bottom of file.)
|
||||||
|
|
||||||
## Update Tools 🛠️
|
# LibreWolf for windows
|
||||||
|
|
||||||
Stay secure and up-to-date with these LibreWolf update tools:
|
* **[download latest release](https://gitlab.com/librewolf-community/browser/windows/-/releases)**
|
||||||
|
* or install via chocolatey: `choco install librewolf`
|
||||||
|
* [issue tracker](https://gitlab.com/librewolf-community/browser/windows/-/issues).
|
||||||
|
|
||||||
1. **LibreWolf WinUpdater**: Kudos to @ltguillaume for this [automatic updater](https://codeberg.org/ltguillaume/librewolf-winupdater) that can be set up to update LibreWolf automatically or run manually.
|
# settings repository
|
||||||
|
|
||||||
2. **LibreWolf Update Checker Extension**: Created by Defkev, this [extension](https://addons.mozilla.org/en-US/firefox/addon/librewolf-updater/) will notify you when an update is available and guide you to the download link.
|
* [[settings repository](https://gitlab.com/librewolf-community/settings)] - all _librewolf.cfg_ stuff.. _([issues](https://gitlab.com/librewolf-community/settings/-/issues))_
|
||||||
|
|
||||||
> Please note: The *updater* can _install_ updates automatically, while the *extension* can only _check_ for updates.
|
# community links
|
||||||
|
|
||||||
## LibreWolf for Windows 🖥️
|
* If at all possible, pleasse go to the relevant 'issues' link and start discussing thing there.
|
||||||
|
* [[reddit](https://www.reddit.com/r/LibreWolf/)] - [r/LibreWolf](https://www.reddit.com/r/LibreWolf/) 😺
|
||||||
|
* [readthedocs.io](https://librewolf.readthedocs.io/en/latest/).
|
||||||
|
* [[gitter](https://gitter.im/librewolf-community/librewolf)], and the same room on [matrix](https://app.element.io/#/room/#librewolf-community_librewolf:gitter.im) (element.io).
|
||||||
|
|
||||||
- LibreWolf supports multiple UI languages, available in settings.
|
# hardening firefox
|
||||||
- The latest **-portable.zip** release is self-contained and can be run on removable storage.
|
|
||||||
|
|
||||||
## Issue Tracker 🎫
|
* **tools**: [[deviceinfo.me](https://www.deviceinfo.me/)], [[coveryourtracks](https://coveryourtracks.eff.org/learn)], [[privacytools.io](https://privacytools.io/browsers/)],
|
||||||
|
* eff.org: [surveillance self-defense](https://ssd.eff.org/en).
|
||||||
- For issues with Settings or Advanced Settings (`about:config`), submit them to the [settings repository](https://gitlab.com/librewolf-community/settings/-/issues).
|
* Interesting wikipedia articles: [Browser fingerprinting](https://en.wikipedia.org/wiki/Device_fingerprint), [Browser security](https://en.wikipedia.org/wiki/Browser_security), [Browser exploit](https://en.wikipedia.org/wiki/Browser_exploit), [Anonymous web browsing](https://en.wikipedia.org/wiki/Anonymous_web_browsing), [Internet privacy](https://en.wikipedia.org/wiki/Internet_privacy).
|
||||||
- For other issues, such as crashes/theme/graphics/speed problems, submit them to [issues for windows repository](https://gitlab.com/librewolf-community/browser/windows/-/issues).
|
|
||||||
|
|
||||||
## Building from Source 🏗️
|
|
||||||
|
|
||||||
- Our `bsys` build system supports cross-compiling from Linux to Windows. Building the Windows version from within Windows is not tested yet.
|
|
||||||
- The build system can be found here: [bsys6](https://gitlab.com/librewolf-community/browser/bsys6).
|
|
||||||
|
|
|
||||||
137
artifacts_all.sh
Normal file
137
artifacts_all.sh
Normal file
|
|
@ -0,0 +1,137 @@
|
||||||
|
function artifacts_win_details() {
|
||||||
|
|
||||||
|
exe=.exe
|
||||||
|
objdir=obj-x86_64-pc-mingw32/dist/firefox
|
||||||
|
ospkg=win64
|
||||||
|
|
||||||
|
# sanity checks
|
||||||
|
if [ ! -d $objdir ]; then
|
||||||
|
echo "artifacts_win.sh: directory $objdir not found. did you run './build.sh build'?"
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf ../firefox ../librewolf
|
||||||
|
cp -r $objdir ..
|
||||||
|
|
||||||
|
pushd ..
|
||||||
|
|
||||||
|
mv firefox librewolf
|
||||||
|
# apply the LibreWolf settings
|
||||||
|
cp -rv settings/* librewolf
|
||||||
|
# rename the executable manually
|
||||||
|
pushd librewolf ; mv -v firefox$exe librewolf$exe ; popd
|
||||||
|
# clean garbage files
|
||||||
|
cd librewolf ; rm -rf maintenanceservice* pingsender* firefox.*.xml precomplete removed-files uninstall ; cd ..
|
||||||
|
# copy the windows icon
|
||||||
|
cp -v common/source_files/browser/branding/librewolf/firefox.ico librewolf/librewolf.ico
|
||||||
|
|
||||||
|
# create the final zip/exe artifacts
|
||||||
|
|
||||||
|
rm -f librewolf-$pkgver.en-US.$ospkg.zip
|
||||||
|
zip -qr9 librewolf-$pkgver.en-US.$ospkg.zip librewolf
|
||||||
|
if [ $? -ne 0 ]; then exit 1; fi
|
||||||
|
|
||||||
|
# now to try to make the installer
|
||||||
|
rm -f librewolf-$pkgver.en-US.win64-setup.exe tmp.nsi
|
||||||
|
sed "s/pkg_version/$pkgver/g" < artifacts_win.nsi > tmp.nsi
|
||||||
|
makensis-3.01.exe -V1 tmp.nsi
|
||||||
|
if [ $? -ne 0 ]; then exit 1; fi
|
||||||
|
|
||||||
|
|
||||||
|
popd
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function artifacts_deb_details() {
|
||||||
|
|
||||||
|
exe=
|
||||||
|
objdir=obj-x86_64-pc-linux-gnu/dist/firefox
|
||||||
|
ospkg=deb
|
||||||
|
|
||||||
|
# sanity checks
|
||||||
|
if [ ! -d $objdir ]; then
|
||||||
|
echo "artifacts_win.sh: directory $objdir not found. did you run './build.sh build'?"
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf ../firefox ../librewolf
|
||||||
|
cp -r $objdir ..
|
||||||
|
|
||||||
|
pushd ..
|
||||||
|
|
||||||
|
mv firefox librewolf
|
||||||
|
# apply the LibreWolf settings
|
||||||
|
cp -rv settings/* librewolf
|
||||||
|
# rename the executable manually
|
||||||
|
pushd librewolf ; mv -v firefox$exe librewolf$exe ; popd
|
||||||
|
# clean garbage files
|
||||||
|
cd librewolf ; rm -rf maintenanceservice* pingsender* firefox.*.xml precomplete removed-files uninstall ; cd ..
|
||||||
|
# copy the windows icon
|
||||||
|
cp -v common/source_files/browser/branding/librewolf/firefox.ico librewolf/librewolf.ico
|
||||||
|
|
||||||
|
# create the final zip artifact
|
||||||
|
rm -f librewolf-$pkgver.en-US.$ospkg.zip
|
||||||
|
zip -qr9 librewolf-$pkgver.en-US.$ospkg.zip librewolf
|
||||||
|
if [ $? -ne 0 ]; then exit 1; fi
|
||||||
|
|
||||||
|
# now to try to make the installer
|
||||||
|
# (create a .deb here)
|
||||||
|
|
||||||
|
popd
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function artifacts_rpm_details(){
|
||||||
|
exe=
|
||||||
|
objdir=obj-x86_64-pc-linux-gnu/dist/firefox
|
||||||
|
ospkg=rpm
|
||||||
|
|
||||||
|
# sanity checks
|
||||||
|
if [ ! -d $objdir ]; then
|
||||||
|
echo "artifacts_win.sh: directory $objdir not found. did you run './build.sh build'?"
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf ../firefox ../librewolf
|
||||||
|
cp -r $objdir ..
|
||||||
|
|
||||||
|
pushd ..
|
||||||
|
|
||||||
|
mv firefox librewolf
|
||||||
|
# apply the LibreWolf settings
|
||||||
|
cp -rv settings/* librewolf
|
||||||
|
# rename the executable manually
|
||||||
|
pushd librewolf ; mv -v firefox$exe librewolf$exe ; popd
|
||||||
|
# clean garbage files
|
||||||
|
cd librewolf ; rm -rf maintenanceservice* pingsender* firefox.*.xml precomplete removed-files ; cd ..
|
||||||
|
|
||||||
|
# linux: copy app icon stuff
|
||||||
|
cp files/register-librewolf files/start-librewolf files/start-librewolf.desktop.in librewolf
|
||||||
|
|
||||||
|
# create the final zip artifact
|
||||||
|
rm -f librewolf-$pkgver.en-US.$ospkg.zip
|
||||||
|
zip -qr9 librewolf-$pkgver.en-US.$ospkg.zip librewolf
|
||||||
|
if [ $? -ne 0 ]; then exit 1; fi
|
||||||
|
|
||||||
|
# now to try to make the installer
|
||||||
|
# (create a .rpm here)
|
||||||
|
|
||||||
|
popd
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
124
artifacts_win.nsi
Normal file
124
artifacts_win.nsi
Normal file
|
|
@ -0,0 +1,124 @@
|
||||||
|
#
|
||||||
|
# Change these values to fit your application...
|
||||||
|
#
|
||||||
|
|
||||||
|
!define APPNAME "LibreWolf" # Full app name, like: "Gtk+ 2.0 Hello World"
|
||||||
|
!define PROGNAME "librewolf" # executable name, like: gtk2hello
|
||||||
|
!define PROG_VERSION "pkg_version" # the program version, like: 0.3.0
|
||||||
|
!define ICON_NAME "librewolf.ico" # filename of icon to use for this app
|
||||||
|
!define COMPANYNAME "LibreWolf" # Your name, or company (or just the program name)
|
||||||
|
!define ESTIMATED_SIZE 190000 # Estimated size (in KB) of installed program for use in "add or remove programs" / 190 MB
|
||||||
|
|
||||||
|
#
|
||||||
|
# The actual installer/uninstaller, you should not need to change much here below
|
||||||
|
#
|
||||||
|
|
||||||
|
Name "${PROGNAME}"
|
||||||
|
OutFile "${PROGNAME}-${PROG_VERSION}.en-US.win64-setup.exe"
|
||||||
|
InstallDir $PROGRAMFILES64\${APPNAME}
|
||||||
|
RequestExecutionLevel admin
|
||||||
|
|
||||||
|
Page directory
|
||||||
|
Page instfiles
|
||||||
|
|
||||||
|
function .onInit
|
||||||
|
setShellVarContext all
|
||||||
|
functionEnd
|
||||||
|
|
||||||
|
Section "${PROGNAME}"
|
||||||
|
|
||||||
|
# Copy files
|
||||||
|
SetOutPath $INSTDIR
|
||||||
|
File /r librewolf\*.*
|
||||||
|
|
||||||
|
# Start Menu
|
||||||
|
createDirectory "$SMPROGRAMS\${COMPANYNAME}"
|
||||||
|
createShortCut "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk" "$INSTDIR\${PROGNAME}.exe" "" "$INSTDIR\${ICON_NAME}"
|
||||||
|
createShortCut "$SMPROGRAMS\${COMPANYNAME}\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" ""
|
||||||
|
|
||||||
|
# Uninstaller
|
||||||
|
writeUninstaller "$INSTDIR\uninstall.exe"
|
||||||
|
|
||||||
|
# Registry information for add/remove programs
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayName" "${APPNAME}"
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "UninstallString" "$\"$INSTDIR\uninstall.exe$\""
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S"
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "InstallLocation" "$\"$INSTDIR$\""
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayIcon" "$\"$INSTDIR\${ICON_NAME}$\""
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "Publisher" "${COMPANYNAME}"
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayVersion" "${PROG_VERSION}"
|
||||||
|
# There is no option for modifying or repairing the install
|
||||||
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "NoModify" 1
|
||||||
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "NoRepair" 1
|
||||||
|
# Set the INSTALLSIZE constant (!defined at the top of this script) so Add/Remove Programs can accurately report the size
|
||||||
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "EstimatedSize" ${ESTIMATED_SIZE}
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Registry information to let Windows pick us up in the list of available browsers
|
||||||
|
#
|
||||||
|
|
||||||
|
WriteRegStr HKLM "Software\Clients\StartMenuInternet\LibreWolf" "" "LibreWolf"
|
||||||
|
|
||||||
|
WriteRegStr HKLM "Software\Clients\StartMenuInternet\LibreWolf\Capabilities" "ApplicationDescription" "LibreWolf"
|
||||||
|
WriteRegStr HKLM "Software\Clients\StartMenuInternet\LibreWolf\Capabilities" "ApplicationIcon" "$INSTDIR\librewolf.exe,0"
|
||||||
|
WriteRegStr HKLM "Software\Clients\StartMenuInternet\LibreWolf\Capabilities" "ApplicationName" "LibreWolf"
|
||||||
|
WriteRegStr HKLM "Software\Clients\StartMenuInternet\LibreWolf\Capabilities\FileAssociations" ".htm" "LibreWolfHTM"
|
||||||
|
WriteRegStr HKLM "Software\Clients\StartMenuInternet\LibreWolf\Capabilities\FileAssociations" ".html" "LibreWolfHTM"
|
||||||
|
WriteRegStr HKLM "Software\Clients\StartMenuInternet\LibreWolf\Capabilities\Startmenu" "StartMenuInternet" "LibreWolf"
|
||||||
|
WriteRegStr HKLM "Software\Clients\StartMenuInternet\LibreWolf\Capabilities\URLAssociations" "http" "LibreWolfHTM"
|
||||||
|
WriteRegStr HKLM "Software\Clients\StartMenuInternet\LibreWolf\Capabilities\URLAssociations" "https" "LibreWolfHTM"
|
||||||
|
|
||||||
|
WriteRegStr HKLM "Software\Clients\StartMenuInternet\LibreWolf\DefaultIcon" "" "$INSTDIR\librewolf.exe,0"
|
||||||
|
WriteRegStr HKLM "Software\Clients\StartMenuInternet\LibreWolf\shell\open\command" "" "$INSTDIR\librewolf.exe"
|
||||||
|
|
||||||
|
WriteRegStr HKLM "Software\RegisteredApplications" "LibreWolf" "Software\Clients\StartMenuInternet\LibreWolf\Capabilities"
|
||||||
|
|
||||||
|
WriteRegStr HKLM "Software\Classes\LibreWolfHTM" "" "LibreWolf Handler"
|
||||||
|
WriteRegStr HKLM "Software\Classes\LibreWolfHTM" "AppUserModelId" "LibreWolf"
|
||||||
|
WriteRegStr HKLM "Software\Classes\LibreWolfHTM\Application" "AppUserModelId" "LibreWolf"
|
||||||
|
WriteRegStr HKLM "Software\Classes\LibreWolfHTM\Application" "ApplicationIcon" "$INSTDIR\librewolf.exe,0"
|
||||||
|
WriteRegStr HKLM "Software\Classes\LibreWolfHTM\Application" "ApplicationName" "LibreWolf"
|
||||||
|
WriteRegStr HKLM "Software\Classes\LibreWolfHTM\Application" "ApplicationDescription" "Howling to Freedom"
|
||||||
|
WriteRegStr HKLM "Software\Classes\LibreWolfHTM\Application" "ApplicationCompany" "LibreWolf"
|
||||||
|
WriteRegStr HKLM "Software\Classes\LibreWolfHTM\DefaultIcon" "" "$INSTDIR\librewolf.exe,0"
|
||||||
|
WriteRegStr HKLM "Software\Classes\LibreWolfHTM\shell\open\command" "" "$INSTDIR\librewolf.exe %1"
|
||||||
|
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
|
# Before uninstall, ask for confirmation
|
||||||
|
function un.onInit
|
||||||
|
SetShellVarContext all
|
||||||
|
|
||||||
|
# Verify the uninstaller - last chance to back out
|
||||||
|
# (commented this out, it causes problems with Chocolatey.)
|
||||||
|
# MessageBox MB_OKCANCEL "Permanantly remove ${APPNAME}?" IDOK next
|
||||||
|
# Abort
|
||||||
|
# next:
|
||||||
|
|
||||||
|
functionEnd
|
||||||
|
|
||||||
|
# Uninstaller
|
||||||
|
section "uninstall"
|
||||||
|
|
||||||
|
# Remove Start Menu launcher
|
||||||
|
delete "$SMPROGRAMS\${COMPANYNAME}\${APPNAME}.lnk"
|
||||||
|
delete "$SMPROGRAMS\${COMPANYNAME}\Uninstall.lnk"
|
||||||
|
# Try to remove the Start Menu folder - this will only happen if it is empty
|
||||||
|
rmDir "$SMPROGRAMS\${COMPANYNAME}"
|
||||||
|
|
||||||
|
# Remove files
|
||||||
|
rmDir /r $INSTDIR
|
||||||
|
|
||||||
|
# Remove uninstaller information from the registry
|
||||||
|
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Windows default browser integration
|
||||||
|
#
|
||||||
|
|
||||||
|
DeleteRegKey HKLM "Software\Clients\StartMenuInternet\LibreWolf"
|
||||||
|
DeleteRegKey HKLM "Software\RegisteredApplications"
|
||||||
|
DeleteRegKey HKLM "Software\Classes\LibreWolfHTM"
|
||||||
|
|
||||||
|
sectionEnd
|
||||||
587
build.sh
Executable file
587
build.sh
Executable file
|
|
@ -0,0 +1,587 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# build.sh - build librewolf on windows
|
||||||
|
# derived from https://gitlab.com/librewolf-community/browser/linux/-/blob/master/PKGBUILD
|
||||||
|
#
|
||||||
|
# This script is set up like a Makefile, it's a list of functions that perform a
|
||||||
|
# certain sub-task, that function can be called as a commandline argument to the script.
|
||||||
|
#
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
. ./version.sh
|
||||||
|
|
||||||
|
srcdir=firefox-$pkgver
|
||||||
|
|
||||||
|
#
|
||||||
|
# Basic functionality
|
||||||
|
#
|
||||||
|
|
||||||
|
fetch() {
|
||||||
|
echo "fetch: begin."
|
||||||
|
|
||||||
|
# fetch the firefox source.
|
||||||
|
rm -f firefox-$pkgver.source.tar.xz
|
||||||
|
echo "Downloading firefox-$pkgver.source.tar.xz ..."
|
||||||
|
wget -q https://archive.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkgver.source.tar.xz
|
||||||
|
if [ $? -ne 0 ]; then exit 1; fi
|
||||||
|
if [ ! -f firefox-$pkgver.source.tar.xz ]; then exit 1; fi
|
||||||
|
|
||||||
|
echo "fetch: done."
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
extract() {
|
||||||
|
echo "extract: begin."
|
||||||
|
|
||||||
|
echo "Deleting previous firefox-$pkgver ..."
|
||||||
|
rm -rf firefox-$pkgver
|
||||||
|
|
||||||
|
echo "Extracting firefox-$pkgver.source.tar.xz ..."
|
||||||
|
tar xf firefox-$pkgver.source.tar.xz
|
||||||
|
if [ $? -ne 0 ]; then exit 1; fi
|
||||||
|
if [ ! -d firefox-$pkgver ]; then exit 1; fi
|
||||||
|
|
||||||
|
echo "extract: done."
|
||||||
|
}
|
||||||
|
|
||||||
|
. ./mozconfigs.sh
|
||||||
|
|
||||||
|
do_patches() {
|
||||||
|
echo "do_patches: begin. (srcdir=$srcdir)"
|
||||||
|
|
||||||
|
if [ "$srcdir" == "tor-browser" ]; then
|
||||||
|
echo "do_patches: warning: not running do_patches on tor-browser. done."
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d $srcdir ]; then exit 1; fi
|
||||||
|
cd $srcdir
|
||||||
|
|
||||||
|
echo 'Creating mozconfig...'
|
||||||
|
|
||||||
|
if [ "$mozconfig_mode" == "xcompile" ]; then
|
||||||
|
create_mozconfig_xcompile
|
||||||
|
cp -v ../mozconfig .
|
||||||
|
elif [ "$strict" == "strict" ]; then
|
||||||
|
create_mozconfig_strict
|
||||||
|
cp -v ../mozconfig .
|
||||||
|
else
|
||||||
|
create_mozconfig_default
|
||||||
|
cp -v ../mozconfig .
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
echo 'Copy librewolf branding files...'
|
||||||
|
|
||||||
|
cp -vr ../common/source_files/* ./
|
||||||
|
# new branding stuff
|
||||||
|
cp -v ../files/configure.sh browser/branding/librewolf
|
||||||
|
|
||||||
|
echo 'Applying patches...'
|
||||||
|
|
||||||
|
patch -p1 -i ../common/patches/mozilla-vpn-ad.patch
|
||||||
|
|
||||||
|
if [ "$srcdir" == "mozilla-unified" ]; then
|
||||||
|
patch -p1 -i ../common/patches/nightly/context-menu2.patch
|
||||||
|
patch -p1 -i ../common/patches/nightly/report-site-issue.patch
|
||||||
|
patch -p1 -i ../common/patches/nightly/megabar3.patch
|
||||||
|
else
|
||||||
|
patch -p1 -i ../common/patches/context-menu.patch
|
||||||
|
patch -p1 -i ../common/patches/remove_addons.patch
|
||||||
|
patch -p1 -i ../common/patches/megabar.patch
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo 'GNU sed patches...'
|
||||||
|
|
||||||
|
patch -p1 -i ../common/patches/sed-patches/allow-searchengines-non-esr.patch
|
||||||
|
patch -p1 -i ../common/patches/sed-patches/disable-pocket.patch
|
||||||
|
patch -p1 -i ../common/patches/sed-patches/remove-internal-plugin-certs.patch
|
||||||
|
patch -p1 -i ../common/patches/sed-patches/stop-undesired-requests.patch
|
||||||
|
|
||||||
|
echo 'Local patches...'
|
||||||
|
|
||||||
|
# local win10 patches
|
||||||
|
patch -p1 -i ../patches/browser-confvars.patch # not sure about this one yet!
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
echo "do_patches: done."
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
build() {
|
||||||
|
echo "build: begin."
|
||||||
|
if [ ! -d $srcdir ]; then exit 1; fi
|
||||||
|
cd $srcdir
|
||||||
|
|
||||||
|
./mach build
|
||||||
|
if [ $? -ne 0 ]; then exit 1; fi
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
echo "build: done."
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
. ./artifacts_all.sh
|
||||||
|
|
||||||
|
artifacts_win() {
|
||||||
|
echo "artifacts_win: begin."
|
||||||
|
if [ ! -d $srcdir ]; then exit 1; fi
|
||||||
|
cd $srcdir
|
||||||
|
|
||||||
|
./mach package
|
||||||
|
if [ $? -ne 0 ]; then exit 1; fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "artifacts_win: Creating final artifacts."
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
artifacts_win_details
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
echo "artifacts_win: done."
|
||||||
|
}
|
||||||
|
|
||||||
|
artifacts_deb()
|
||||||
|
{
|
||||||
|
echo "artifacts_deb: begin."
|
||||||
|
if [ ! -d $srcdir ]; then exit 1; fi
|
||||||
|
cd $srcdir
|
||||||
|
|
||||||
|
./mach package
|
||||||
|
if [ $? -ne 0 ]; then exit 1; fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "artifacts_deb: Creating final artifacts."
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
artifacts_deb_details
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
echo "artifacts_deb: done."
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
artifacts_rpm()
|
||||||
|
{
|
||||||
|
echo "artifacts_rpm: begin."
|
||||||
|
if [ ! -d $srcdir ]; then exit 1; fi
|
||||||
|
cd $srcdir
|
||||||
|
|
||||||
|
./mach package
|
||||||
|
if [ $? -ne 0 ]; then exit 1; fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "artifacts_rpm: Creating final artifacts."
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
artifacts_rpm_details
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
echo "artifacts_rpm: done."
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Dependencies for linux/freebsd.
|
||||||
|
deps_deb() {
|
||||||
|
echo "deps_deb: begin."
|
||||||
|
deps1="python python-dev python3 python3-dev python3-distutils clang pkg-config libpulse-dev gcc"
|
||||||
|
deps2="curl wget nodejs libpango1.0-dev nasm yasm zip m4 libgtk-3-dev libgtk2.0-dev libdbus-glib-1-dev"
|
||||||
|
deps3="libxt-dev python3-pip mercurial automake autoconf libtool m4"
|
||||||
|
apt install -y $deps1
|
||||||
|
apt install -y $deps2
|
||||||
|
apt install -y $deps3
|
||||||
|
echo "deps_deb: done."
|
||||||
|
}
|
||||||
|
|
||||||
|
deps_rpm() {
|
||||||
|
echo "deps_rpm: begin."
|
||||||
|
deps="python3 python3-distutils-extra clang pkg-config gcc curl wget nodejs nasm yasm zip m4 python3-zstandard python-zstandard python-devel python3-devel gtk3-devel llvm gtk2-devel dbus-glib-devel libXt-devel pulseaudio-libs-devel"
|
||||||
|
dnf -y install $deps
|
||||||
|
echo "deps_rpm: done."
|
||||||
|
}
|
||||||
|
|
||||||
|
deps_pkg() {
|
||||||
|
echo "deps_pkg: begin."
|
||||||
|
deps="wget gmake m4 python3 py37-sqlite3 pkgconf llvm node nasm zip unzip yasm"
|
||||||
|
pkg install $deps
|
||||||
|
echo "deps_pkg: done."
|
||||||
|
}
|
||||||
|
|
||||||
|
# these utilities should work everywhere
|
||||||
|
clean() {
|
||||||
|
echo "clean: begin."
|
||||||
|
|
||||||
|
echo "Deleting firefox-${pkgver} ..."
|
||||||
|
rm -rf firefox-$pkgver
|
||||||
|
|
||||||
|
echo "Deleting other cruft ..."
|
||||||
|
rm -rf librewolf
|
||||||
|
rm -f firefox-$pkgver.source.tar.xz
|
||||||
|
rm -f mozconfig
|
||||||
|
rm -f bootstrap.py
|
||||||
|
|
||||||
|
# windows
|
||||||
|
rm -f librewolf-$pkgver.en-US.win64.zip
|
||||||
|
rm -f librewolf-$pkgver.en-US.win64-setup.exe
|
||||||
|
rm -f librewolf-$pkgver.en-US.win64-permissive.zip
|
||||||
|
rm -f librewolf-$pkgver.en-US.win64-permissive-setup.exe
|
||||||
|
rm -f librewolf-$pkgver.en-US.win64-strict.zip
|
||||||
|
rm -f librewolf-$pkgver.en-US.win64-strict-setup.exe
|
||||||
|
rm -f tmp.nsi tmp-permissive.nsi tmp-strict.nsi
|
||||||
|
|
||||||
|
# linux
|
||||||
|
rm -f librewolf-$pkgver.en-US.deb.zip
|
||||||
|
rm -f librewolf-$pkgver.en-US.deb-permissive.zip
|
||||||
|
rm -f librewolf-$pkgver.en-US.deb-strict.zip
|
||||||
|
rm -f librewolf-$pkgver.en-US.rpm.zip
|
||||||
|
rm -f librewolf-$pkgver.en-US.rpm-permissive.zip
|
||||||
|
rm -f librewolf-$pkgver.en-US.rpm-strict.zip
|
||||||
|
|
||||||
|
echo "clean: done."
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
rustup() {
|
||||||
|
# rust needs special love: https://www.atechtown.com/install-rust-language-on-debian-10/
|
||||||
|
echo "rustup: begin."
|
||||||
|
curl https://sh.rustup.rs -sSf | sh
|
||||||
|
. "$HOME/.cargo/env"
|
||||||
|
cargo install cbindgen
|
||||||
|
echo "rustup: done."
|
||||||
|
}
|
||||||
|
|
||||||
|
mach_env() {
|
||||||
|
echo "mach_env: begin."
|
||||||
|
if [ ! -d $srcdir ]; then exit 1; fi
|
||||||
|
cd $srcdir
|
||||||
|
./mach create-mach-environment
|
||||||
|
if [ $? -ne 0 ]; then exit 1; fi
|
||||||
|
cd ..
|
||||||
|
echo "mach_env: done."
|
||||||
|
}
|
||||||
|
|
||||||
|
git_subs() {
|
||||||
|
echo "git_subs: begin."
|
||||||
|
git submodule update --recursive
|
||||||
|
git submodule foreach git pull origin master
|
||||||
|
git submodule foreach git merge origin master
|
||||||
|
echo "git_subs: done."
|
||||||
|
}
|
||||||
|
|
||||||
|
git_init() {
|
||||||
|
echo "git_init: begin."
|
||||||
|
if [ ! -d $srcdir ]; then exit 1; fi
|
||||||
|
cd $srcdir
|
||||||
|
|
||||||
|
echo "Removing old .git folder..."
|
||||||
|
rm -rf .git
|
||||||
|
|
||||||
|
echo "Creating new .git folder..."
|
||||||
|
git init
|
||||||
|
git config core.safecrlf false
|
||||||
|
git config commit.gpgsign false
|
||||||
|
git add -f * .[a-z]*
|
||||||
|
git commit -am 'Initial commit'
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
echo "git_init: done."
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Nightly builds, alternative builds.
|
||||||
|
#
|
||||||
|
|
||||||
|
init_mozilla_unified() {
|
||||||
|
rm -f bootstrap.py
|
||||||
|
wget -q https://hg.mozilla.org/mozilla-central/raw-file/default/python/mozboot/bin/bootstrap.py
|
||||||
|
python3 bootstrap.py
|
||||||
|
}
|
||||||
|
set_mozilla_unified() {
|
||||||
|
srcdir=mozilla-unified
|
||||||
|
}
|
||||||
|
reset_mozilla_unified() {
|
||||||
|
echo "reset_mozilla_unified: begin."
|
||||||
|
if [ ! -d mozilla-unified ]; then
|
||||||
|
echo "Error: mozilla-unified folder not found. use init_mozilla_unified() to create one"
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
cd mozilla-unified
|
||||||
|
|
||||||
|
echo "Resetting mozilla-unified..."
|
||||||
|
hg up -C
|
||||||
|
hg purge
|
||||||
|
echo "Mercurial pull..."
|
||||||
|
hg pull -u
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
echo "reset_mozilla_unified: done."
|
||||||
|
}
|
||||||
|
|
||||||
|
# tor-browser.. (experimental)
|
||||||
|
init_tor_browser() {
|
||||||
|
git clone --no-checkout https://git.torproject.org/tor-browser.git
|
||||||
|
|
||||||
|
cd tor-browser
|
||||||
|
git checkout tor-browser-78.8.0esr-10.0-1
|
||||||
|
git submodule update --recursive
|
||||||
|
patch -p1 -i ../patches/tb-mozconfig-win10.patch
|
||||||
|
cd ..
|
||||||
|
}
|
||||||
|
set_tor_browser() {
|
||||||
|
srcdir=tor-browser
|
||||||
|
}
|
||||||
|
reset_tor_browser() {
|
||||||
|
echo "reset_tor_browser: begin."
|
||||||
|
if [ ! -d tor-browser ]; then
|
||||||
|
echo "Error: tor-browser folder not found. use init_tor_browser() to create one"
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
cd tor-browser
|
||||||
|
|
||||||
|
echo "Resetting tor-browser..."
|
||||||
|
git reset --hard
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
echo "reset_tor_browser: done."
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# cross-compile actions...
|
||||||
|
#
|
||||||
|
# linux_patches - the 'do_patches' for linux->win crosscompile.
|
||||||
|
# linux_artifacts - standard artifact zip file. perhaps a -setup.exe.
|
||||||
|
# setup_deb_root - setup compile environment (root stuff)
|
||||||
|
# setup_deb_user - setup compile environmnet (build user)
|
||||||
|
# setup_rpm_root - setup compile environment (root stuff)
|
||||||
|
# setup_rpm_user - setup compile environmnet (build user)
|
||||||
|
|
||||||
|
. ./linux_xcompile.sh
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# process commandline arguments and do something
|
||||||
|
#
|
||||||
|
|
||||||
|
done_something=0
|
||||||
|
|
||||||
|
|
||||||
|
if [[ "$*" == *linux_patches* ]]; then
|
||||||
|
linux_patches
|
||||||
|
done_something=1
|
||||||
|
fi
|
||||||
|
if [[ "$*" == *linux_artifacts* ]]; then
|
||||||
|
linux_artifacts
|
||||||
|
done_something=1
|
||||||
|
fi
|
||||||
|
if [[ "$*" == *setup_deb_root* ]]; then
|
||||||
|
setup_deb_root
|
||||||
|
done_something=1
|
||||||
|
fi
|
||||||
|
if [[ "$*" == *setup_deb_user* ]]; then
|
||||||
|
setup_deb_user
|
||||||
|
done_something=1
|
||||||
|
fi
|
||||||
|
if [[ "$*" == *setup_rpm_root* ]]; then
|
||||||
|
setup_rpm_root
|
||||||
|
done_something=1
|
||||||
|
fi
|
||||||
|
if [[ "$*" == *setup_rpm_user* ]]; then
|
||||||
|
setup_rpm_user
|
||||||
|
done_something=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# various administrative actions...
|
||||||
|
|
||||||
|
if [[ "$*" == *init_mozilla_unified* ]]; then
|
||||||
|
init_mozilla_unified
|
||||||
|
done_something=1
|
||||||
|
fi
|
||||||
|
if [[ "$*" == *set_mozilla_unified* ]]; then
|
||||||
|
set_mozilla_unified
|
||||||
|
done_something=1
|
||||||
|
fi
|
||||||
|
if [[ "$*" == *reset_mozilla_unified* ]]; then
|
||||||
|
reset_mozilla_unified
|
||||||
|
done_something=1
|
||||||
|
fi
|
||||||
|
if [[ "$*" == *init_tor_browser* ]]; then
|
||||||
|
init_tor_browser
|
||||||
|
done_something=1
|
||||||
|
fi
|
||||||
|
if [[ "$*" == *set_tor_browser* ]]; then
|
||||||
|
set_tor_browser
|
||||||
|
done_something=1
|
||||||
|
fi
|
||||||
|
if [[ "$*" == *reset_tor_browser* ]]; then
|
||||||
|
reset_tor_browser
|
||||||
|
done_something=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if [[ "$*" == *clean* ]]; then
|
||||||
|
clean
|
||||||
|
done_something=1
|
||||||
|
fi
|
||||||
|
if [[ "$*" == *all* ]]; then
|
||||||
|
fetch
|
||||||
|
extract
|
||||||
|
do_patches
|
||||||
|
build
|
||||||
|
artifacts_win
|
||||||
|
done_something=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if [[ "$*" == *git_subs* ]]; then
|
||||||
|
git_subs
|
||||||
|
done_something=1
|
||||||
|
fi
|
||||||
|
if [[ "$*" == *rustup* ]]; then
|
||||||
|
rustup
|
||||||
|
done_something=1
|
||||||
|
fi
|
||||||
|
if [[ "$*" == *mach_env* ]]; then
|
||||||
|
mach_env
|
||||||
|
done_something=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# dependencies on various platforms...
|
||||||
|
|
||||||
|
if [[ "$*" == *deps_deb* ]]; then
|
||||||
|
deps_deb
|
||||||
|
done_something=1
|
||||||
|
fi
|
||||||
|
if [[ "$*" == *deps_rpm* ]]; then
|
||||||
|
deps_rpm
|
||||||
|
done_something=1
|
||||||
|
fi
|
||||||
|
if [[ "$*" == *deps_pkg* ]]; then
|
||||||
|
deps_pkg
|
||||||
|
done_something=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# main building actions...
|
||||||
|
|
||||||
|
if [[ "$*" == *fetch* ]]; then
|
||||||
|
fetch
|
||||||
|
done_something=1
|
||||||
|
fi
|
||||||
|
if [[ "$*" == *extract* ]]; then
|
||||||
|
extract
|
||||||
|
done_something=1
|
||||||
|
fi
|
||||||
|
if [[ "$*" == *do_patches* ]]; then
|
||||||
|
do_patches
|
||||||
|
done_something=1
|
||||||
|
fi
|
||||||
|
if [[ "$*" == *git_init* ]]; then
|
||||||
|
git_init
|
||||||
|
done_something=1
|
||||||
|
fi
|
||||||
|
if [[ "$*" == *build* ]]; then
|
||||||
|
build
|
||||||
|
done_something=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# creating the artifacts...
|
||||||
|
|
||||||
|
if [[ "$*" == *artifacts_win* ]]; then
|
||||||
|
artifacts_win
|
||||||
|
done_something=1
|
||||||
|
fi
|
||||||
|
if [[ "$*" == *artifacts_deb* ]]; then
|
||||||
|
artifacts_deb
|
||||||
|
done_something=1
|
||||||
|
fi
|
||||||
|
if [[ "$*" == *artifacts_rpm* ]]; then
|
||||||
|
artifacts_rpm
|
||||||
|
done_something=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# by default, give help..
|
||||||
|
if (( done_something == 0 )); then
|
||||||
|
cat << EOF
|
||||||
|
Use: ./build.sh clean | all | [other stuff...]
|
||||||
|
|
||||||
|
fetch - fetch the tarball.
|
||||||
|
extract - extract the tarball.
|
||||||
|
do_patches - create a mozconfig, and patch the source.
|
||||||
|
build - the actual build.
|
||||||
|
|
||||||
|
artifacts_win - apply .cfg, build the zip file and NSIS setup.exe installer.
|
||||||
|
|
||||||
|
# Basic functionality:
|
||||||
|
|
||||||
|
all - build all (fetch extract do_patches build artifacts_win)
|
||||||
|
clean - remove generated cruft.
|
||||||
|
|
||||||
|
# Linux related functions:
|
||||||
|
|
||||||
|
deps_deb - install dependencies with apt.
|
||||||
|
deps_rpm - install dependencies with dnf.
|
||||||
|
deps_pkg - install dependencies with pkg. (experimental)
|
||||||
|
|
||||||
|
artifacts_deb - apply .cfg, create a dist zip file (for debian10).
|
||||||
|
artifacts_rpm - apply .cfg, create a dist zip file (for fedora33).
|
||||||
|
|
||||||
|
# Generic utility functionality:
|
||||||
|
|
||||||
|
mach_env - create mach build environment.
|
||||||
|
rustup - perform a rustup for this user.
|
||||||
|
git_subs - update git submodules.
|
||||||
|
git_init - create .git folder in firefox-87.0 for creating patches.
|
||||||
|
|
||||||
|
# Cross-compile from linux: (in development)
|
||||||
|
|
||||||
|
linux_patches - the 'do_patches' for linux->win crosscompile.
|
||||||
|
linux_artifacts - standard artifact zip file. perhaps a -setup.exe.
|
||||||
|
setup_deb_root - setup compile environment (root stuff)
|
||||||
|
setup_deb_user - setup compile environmnet (build user)
|
||||||
|
setup_rpm_root - setup compile environment (root stuff)
|
||||||
|
setup_rpm_user - setup compile environmnet (build user)
|
||||||
|
|
||||||
|
# Nightly etc.:
|
||||||
|
|
||||||
|
init_mozilla_unified - use bootstrap.py to grab the latest mozilla-unified.
|
||||||
|
set_mozilla_unified - use mozilla-unified instead of firefox-87.0 source.
|
||||||
|
reset_mozilla_unified - clean mozilla-unified and pull latest git changes.
|
||||||
|
|
||||||
|
You can use init_tor_browser, set_tor_browser as above, but it attempts a Tor
|
||||||
|
Browser build instead (esr releases). (experimental) or use set_strict to get
|
||||||
|
a more restricted version (experimental).
|
||||||
|
|
||||||
|
# Installation from linux zip file:
|
||||||
|
|
||||||
|
Copy the zip file in your $HOME folder, then:
|
||||||
|
|
||||||
|
unzip librewolf-*.zip
|
||||||
|
cd librewolf
|
||||||
|
./register-librewolf
|
||||||
|
|
||||||
|
That should give an app icon. You can unzip it elsewhere and it will work.
|
||||||
|
|
||||||
|
# Examples:
|
||||||
|
|
||||||
|
For windows, use:
|
||||||
|
./build.sh fetch extract do_patches build artifacts_win
|
||||||
|
./build.sh all
|
||||||
|
|
||||||
|
For debian, use:
|
||||||
|
sudo ./build.sh deps_deb
|
||||||
|
./build.sh rustup mach_env
|
||||||
|
./build.sh fetch extract do_patches build artifacts_deb
|
||||||
|
|
||||||
|
EOF
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
1
common
Submodule
1
common
Submodule
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 5bce5285fa7046e6987ec3e5a8931ac17ca6c7c0
|
||||||
16
files/configure.sh
Normal file
16
files/configure.sh
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
MOZ_APP_NAME=librewolf
|
||||||
|
MOZ_APP_BASENAME=LibreWolf
|
||||||
|
MOZ_APP_PROFILE=LibreWolf
|
||||||
|
MOZ_APP_VENDOR="LibreWolf Community"
|
||||||
|
MOZ_APP_DISPLAYNAME=LibreWolf
|
||||||
|
MOZ_APP_REMOTINGNAME=librewolf
|
||||||
|
MOZ_DEV_EDITION=1
|
||||||
|
MOZ_TELEMETRY_REPORTING=
|
||||||
|
MOZ_SERVICES_HEALTHREPORT=
|
||||||
|
MOZ_NORMANDY=
|
||||||
|
MOZ_REQUIRE_SIGNING=
|
||||||
|
MOZ_DEFAULT_BROWSER_AGENT=0
|
||||||
7
files/register-librewolf
Executable file
7
files/register-librewolf
Executable file
|
|
@ -0,0 +1,7 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
sed "s,MYDIR,$(pwd),g" < start-librewolf.desktop.in > start-librewolf.desktop
|
||||||
|
|
||||||
|
mkdir -p "$HOME/.local/share/applications/"
|
||||||
|
cp -v ./start-librewolf.desktop "$HOME/.local/share/applications/"
|
||||||
|
update-desktop-database "$HOME/.local/share/applications/"
|
||||||
22
files/start-librewolf
Executable file
22
files/start-librewolf
Executable file
|
|
@ -0,0 +1,22 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Do not (try to) connect to the session manager
|
||||||
|
unset SESSION_MANAGER
|
||||||
|
|
||||||
|
# If XAUTHORITY is unset, set it to its default value of $HOME/.Xauthority
|
||||||
|
# before we change HOME below. (See xauth(1) and #1945.) XDM and KDM rely
|
||||||
|
# on applications using this default value.
|
||||||
|
if [ -z "$XAUTHORITY" ]; then
|
||||||
|
XAUTHORITY=~/.Xauthority
|
||||||
|
export XAUTHORITY
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Try to be agnostic to where we're being started from, chdir to where
|
||||||
|
# the script is.
|
||||||
|
mydir="`dirname "$0"`"
|
||||||
|
test -d "$mydir" && cd "$mydir"
|
||||||
|
|
||||||
|
#./librewolf --class "LibreWolf" -profile TorBrowser/Data/Browser/profile.default "${@}" > "$logfile" 2>&1 </dev/null &
|
||||||
|
./librewolf --detach --class "LibreWolf" > /dev/null 2>&1 </dev/null &
|
||||||
|
|
||||||
|
exit $?
|
||||||
10
files/start-librewolf.desktop.in
Normal file
10
files/start-librewolf.desktop.in
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Type=Application
|
||||||
|
Name=LibreWolf
|
||||||
|
GenericName=Web Browser
|
||||||
|
Comment=LibreWolf Browser
|
||||||
|
Categories=Network;WebBrowser;Security;
|
||||||
|
Exec=MYDIR/./start-librewolf
|
||||||
|
X-TorBrowser-ExecShell=MYDIR/./start-librewolf
|
||||||
|
Icon=MYDIR/./browser/chrome/icons/default/default64.png
|
||||||
|
StartupWMClass=LibreWolf
|
||||||
144
linux_xcompile.sh
Normal file
144
linux_xcompile.sh
Normal file
|
|
@ -0,0 +1,144 @@
|
||||||
|
# Crosscompile on linux (debian,fedora)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Creating the crosscompile environment on linux
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
setup_deb_root() {
|
||||||
|
echo "setup_deb_root: begin."
|
||||||
|
|
||||||
|
# (implementation...)
|
||||||
|
|
||||||
|
echo "setup_deb_root: done."
|
||||||
|
}
|
||||||
|
setup_deb_user() {
|
||||||
|
echo "setup_deb_user: begin."
|
||||||
|
|
||||||
|
# (implementation...)
|
||||||
|
|
||||||
|
echo "setup_deb_user: done."
|
||||||
|
}
|
||||||
|
setup_rpm_root() {
|
||||||
|
echo "setup_rpm_root: begin."
|
||||||
|
|
||||||
|
# (implementation...)
|
||||||
|
|
||||||
|
echo "setup_rpm_root: done."
|
||||||
|
}
|
||||||
|
setup_rpm_user() {
|
||||||
|
echo "setup_rpm_user: begin."
|
||||||
|
|
||||||
|
# (implementation...)
|
||||||
|
|
||||||
|
echo "setup_rpm_user: done."
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# linux_patches() and linux_artifacts()
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
linux_patches() {
|
||||||
|
mozconfig_mode=xcompile
|
||||||
|
do_patches
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
linux_artifacts_details() {
|
||||||
|
exe=.exe
|
||||||
|
objdir=obj-x86_64-pc-mingw32/dist/firefox
|
||||||
|
ospkg=win64
|
||||||
|
|
||||||
|
# sanity checks
|
||||||
|
if [ ! -d $objdir ]; then
|
||||||
|
echo "artifacts_win.sh: directory $objdir not found. did you run './build.sh build'?"
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf ../firefox ../librewolf
|
||||||
|
cp -r $objdir ..
|
||||||
|
|
||||||
|
pushd ..
|
||||||
|
|
||||||
|
mv firefox librewolf
|
||||||
|
# apply the LibreWolf settings
|
||||||
|
cp -rv settings/* librewolf
|
||||||
|
# rename the executable manually
|
||||||
|
pushd librewolf ; mv -v firefox$exe librewolf$exe ; popd
|
||||||
|
# clean garbage files
|
||||||
|
cd librewolf ; rm -rf maintenanceservice* pingsender* firefox.*.xml precomplete removed-files ; cd ..
|
||||||
|
|
||||||
|
# windows: copy the windows icon
|
||||||
|
cp -v common/source_files/browser/branding/librewolf/firefox.ico librewolf/librewolf.ico
|
||||||
|
|
||||||
|
# create the final zip artifact
|
||||||
|
rm -f librewolf-$pkgver.en-US.$ospkg.zip
|
||||||
|
zip -qr9 librewolf-$pkgver.en-US.$ospkg.zip librewolf
|
||||||
|
if [ $? -ne 0 ]; then exit 1; fi
|
||||||
|
|
||||||
|
# now to try to make the installer
|
||||||
|
rm -f librewolf-$pkgver.en-US.win64-setup.exe tmp.nsi
|
||||||
|
sed "s/pkg_version/$pkgver/g" < artifacts_win.nsi > tmp.nsi
|
||||||
|
makensis-3.01.exe -V1 tmp.nsi
|
||||||
|
if [ $? -ne 0 ]; then exit 1; fi
|
||||||
|
|
||||||
|
# patch to permissive config
|
||||||
|
if [ ! -z $permissive ]; then
|
||||||
|
pushd librewolf
|
||||||
|
echo "Applying permissive patches..."
|
||||||
|
patch -p1 -i ../patches/permissive/librewolf-config.patch
|
||||||
|
if [ $? -ne 0 ]; then exit 1; fi
|
||||||
|
patch -p1 -i ../patches/permissive/librewolf-policies.patch
|
||||||
|
if [ $? -ne 0 ]; then exit 1; fi
|
||||||
|
popd
|
||||||
|
|
||||||
|
# create the final zip artifact
|
||||||
|
rm -f librewolf-$pkgver.en-US.$ospkg-permissive.zip
|
||||||
|
zip -qr9 librewolf-$pkgver.en-US.$ospkg-permissive.zip librewolf
|
||||||
|
if [ $? -ne 0 ]; then exit 1; fi
|
||||||
|
|
||||||
|
# now to try to make the installer
|
||||||
|
rm -f librewolf-$pkgver.en-US.win64-permissive-setup.exe tmp-permissive.nsi
|
||||||
|
sed "s/win64-setup/win64-permissive-setup/g" < tmp.nsi > tmp-permissive.nsi
|
||||||
|
makensis-3.01.exe -V1 tmp-permissive.nsi
|
||||||
|
if [ $? -ne 0 ]; then exit 1; fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
popd
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
linux_artifacts() {
|
||||||
|
echo "linux_artifacts: begin."
|
||||||
|
|
||||||
|
if [ ! -d firefox-$pkgver ]; then exit 1; fi
|
||||||
|
cd firefox-$pkgver
|
||||||
|
|
||||||
|
./mach package
|
||||||
|
if [ $? -ne 0 ]; then exit 1; fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "artifacts_win: Creating final artifacts."
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
linux_artifacts_details
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
echo "linux_artifacts: done."
|
||||||
|
}
|
||||||
122
mozconfigs.sh
Normal file
122
mozconfigs.sh
Normal file
|
|
@ -0,0 +1,122 @@
|
||||||
|
create_mozconfig_default() {
|
||||||
|
cat >../mozconfig <<END
|
||||||
|
ac_add_options --enable-application=browser
|
||||||
|
|
||||||
|
# This supposedly speeds up compilation (We test through dogfooding anyway)
|
||||||
|
ac_add_options --disable-tests
|
||||||
|
ac_add_options --disable-debug
|
||||||
|
|
||||||
|
ac_add_options --enable-release
|
||||||
|
ac_add_options --enable-hardening
|
||||||
|
ac_add_options --enable-rust-simd
|
||||||
|
ac_add_options --enable-optimize
|
||||||
|
|
||||||
|
|
||||||
|
# Branding
|
||||||
|
ac_add_options --enable-update-channel=release
|
||||||
|
# theming bugs: ac_add_options --with-app-name=librewolf
|
||||||
|
# theming bugs: ac_add_options --with-app-basename=LibreWolf
|
||||||
|
ac_add_options --with-branding=browser/branding/librewolf
|
||||||
|
ac_add_options --with-distribution-id=io.gitlab.librewolf-community
|
||||||
|
ac_add_options --with-unsigned-addon-scopes=app,system
|
||||||
|
ac_add_options --allow-addon-sideload
|
||||||
|
export MOZ_REQUIRE_SIGNING=0
|
||||||
|
|
||||||
|
# Features
|
||||||
|
ac_add_options --disable-crashreporter
|
||||||
|
ac_add_options --disable-updater
|
||||||
|
|
||||||
|
# Disables crash reporting, telemetry and other data gathering tools
|
||||||
|
mk_add_options MOZ_CRASHREPORTER=0
|
||||||
|
mk_add_options MOZ_DATA_REPORTING=0
|
||||||
|
mk_add_options MOZ_SERVICES_HEALTHREPORT=0
|
||||||
|
mk_add_options MOZ_TELEMETRY_REPORTING=0
|
||||||
|
|
||||||
|
# first attempt to fix the win32 vcredist issue results in build errors..
|
||||||
|
#WIN32_REDIST_DIR=$VCINSTALLDIR\redist\x86\Microsoft.VC141.CRT
|
||||||
|
END
|
||||||
|
}
|
||||||
|
|
||||||
|
create_mozconfig_xcompile() {
|
||||||
|
cat >../mozconfig <<END
|
||||||
|
# Crosscompile to windows..
|
||||||
|
|
||||||
|
ac_add_options --enable-application=browser
|
||||||
|
|
||||||
|
# This supposedly speeds up compilation (We test through dogfooding anyway)
|
||||||
|
ac_add_options --disable-tests
|
||||||
|
ac_add_options --disable-debug
|
||||||
|
|
||||||
|
ac_add_options --enable-release
|
||||||
|
ac_add_options --enable-hardening
|
||||||
|
ac_add_options --enable-rust-simd
|
||||||
|
ac_add_options --enable-optimize
|
||||||
|
|
||||||
|
|
||||||
|
# Branding
|
||||||
|
ac_add_options --enable-update-channel=release
|
||||||
|
# theming bugs: ac_add_options --with-app-name=librewolf
|
||||||
|
# theming bugs: ac_add_options --with-app-basename=LibreWolf
|
||||||
|
ac_add_options --with-branding=browser/branding/librewolf
|
||||||
|
ac_add_options --with-distribution-id=io.gitlab.librewolf-community
|
||||||
|
ac_add_options --with-unsigned-addon-scopes=app,system
|
||||||
|
ac_add_options --allow-addon-sideload
|
||||||
|
export MOZ_REQUIRE_SIGNING=0
|
||||||
|
|
||||||
|
# Features
|
||||||
|
ac_add_options --disable-crashreporter
|
||||||
|
ac_add_options --disable-updater
|
||||||
|
|
||||||
|
# Disables crash reporting, telemetry and other data gathering tools
|
||||||
|
mk_add_options MOZ_CRASHREPORTER=0
|
||||||
|
mk_add_options MOZ_DATA_REPORTING=0
|
||||||
|
mk_add_options MOZ_SERVICES_HEALTHREPORT=0
|
||||||
|
mk_add_options MOZ_TELEMETRY_REPORTING=0
|
||||||
|
|
||||||
|
# first attempt to fix the win32 vcredist issue results in build errors..
|
||||||
|
#WIN32_REDIST_DIR=$VCINSTALLDIR\redist\x86\Microsoft.VC141.CRT
|
||||||
|
END
|
||||||
|
}
|
||||||
|
|
||||||
|
create_mozconfig_strict() {
|
||||||
|
cat >../mozconfig <<END
|
||||||
|
# Balls to the wall edition..
|
||||||
|
ac_add_options --disable-webrtc
|
||||||
|
|
||||||
|
|
||||||
|
ac_add_options --enable-application=browser
|
||||||
|
|
||||||
|
# This supposedly speeds up compilation (We test through dogfooding anyway)
|
||||||
|
ac_add_options --disable-tests
|
||||||
|
ac_add_options --disable-debug
|
||||||
|
|
||||||
|
ac_add_options --enable-release
|
||||||
|
ac_add_options --enable-hardening
|
||||||
|
ac_add_options --enable-rust-simd
|
||||||
|
ac_add_options --enable-optimize
|
||||||
|
|
||||||
|
# Branding
|
||||||
|
ac_add_options --enable-update-channel=release
|
||||||
|
# theming bugs: ac_add_options --with-app-name=librewolf
|
||||||
|
# theming bugs: ac_add_options --with-app-basename=LibreWolf
|
||||||
|
ac_add_options --with-branding=browser/branding/librewolf
|
||||||
|
ac_add_options --with-distribution-id=io.gitlab.librewolf-community
|
||||||
|
ac_add_options --with-unsigned-addon-scopes=app,system
|
||||||
|
ac_add_options --allow-addon-sideload
|
||||||
|
export MOZ_REQUIRE_SIGNING=0
|
||||||
|
|
||||||
|
# Features
|
||||||
|
ac_add_options --disable-crashreporter
|
||||||
|
ac_add_options --disable-updater
|
||||||
|
|
||||||
|
# Disables crash reporting, telemetry and other data gathering tools
|
||||||
|
mk_add_options MOZ_CRASHREPORTER=0
|
||||||
|
mk_add_options MOZ_DATA_REPORTING=0
|
||||||
|
mk_add_options MOZ_SERVICES_HEALTHREPORT=0
|
||||||
|
mk_add_options MOZ_TELEMETRY_REPORTING=0
|
||||||
|
|
||||||
|
# first attempt to fix the win32 vcredist issue results in build errors..
|
||||||
|
#WIN32_REDIST_DIR=$VCINSTALLDIR\redist\x86\Microsoft.VC141.CRT
|
||||||
|
END
|
||||||
|
}
|
||||||
|
|
||||||
28
patches/browser-confvars.patch
Normal file
28
patches/browser-confvars.patch
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
diff --git a/browser/confvars.sh b/browser/confvars.sh
|
||||||
|
index 92871c9516..1e151180dd 100644
|
||||||
|
--- a/browser/confvars.sh
|
||||||
|
+++ b/browser/confvars.sh
|
||||||
|
@@ -3,8 +3,10 @@
|
||||||
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
-MOZ_APP_VENDOR=Mozilla
|
||||||
|
-MOZ_UPDATER=1
|
||||||
|
+MOZ_APP_BASENAME=LibreWolf
|
||||||
|
+MOZ_APP_VENDOR="LibreWolf Community"
|
||||||
|
+
|
||||||
|
+MOZ_UPDATER=0
|
||||||
|
|
||||||
|
if test "$OS_ARCH" = "WINNT"; then
|
||||||
|
if ! test "$HAVE_64BIT_BUILD"; then
|
||||||
|
@@ -34,8 +36,8 @@ BROWSER_CHROME_URL=chrome://browser/content/browser.xhtml
|
||||||
|
# For mozilla-beta, mozilla-release, or mozilla-central repositories, use
|
||||||
|
# "unofficial" branding.
|
||||||
|
# For the mozilla-aurora repository, use "aurora".
|
||||||
|
-MOZ_BRANDING_DIRECTORY=browser/branding/unofficial
|
||||||
|
-MOZ_OFFICIAL_BRANDING_DIRECTORY=browser/branding/official
|
||||||
|
+MOZ_BRANDING_DIRECTORY=browser/branding/librewolf
|
||||||
|
+MOZ_OFFICIAL_BRANDING_DIRECTORY=browser/branding/librewolf
|
||||||
|
MOZ_APP_ID={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
|
||||||
|
|
||||||
|
MOZ_PROFILE_MIGRATOR=1
|
||||||
15
patches/tb-mozconfig-win10.patch
Normal file
15
patches/tb-mozconfig-win10.patch
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
diff --git a/.mozconfig b/.mozconfig
|
||||||
|
index d71c858844e3..2d295de7df72 100755
|
||||||
|
--- a/.mozconfig
|
||||||
|
+++ b/.mozconfig
|
||||||
|
@@ -16,8 +16,8 @@ export MOZILLA_OFFICIAL=1
|
||||||
|
ac_add_options --enable-optimize
|
||||||
|
ac_add_options --enable-official-branding
|
||||||
|
|
||||||
|
-# Let's support GTK3 for ESR60
|
||||||
|
-ac_add_options --enable-default-toolkit=cairo-gtk3
|
||||||
|
+## Let's support GTK3 for ESR60
|
||||||
|
+#ac_add_options --enable-default-toolkit=cairo-gtk3
|
||||||
|
|
||||||
|
ac_add_options --disable-strip
|
||||||
|
ac_add_options --disable-install-strip
|
||||||
13
patches/urlbarprovider-interventions.patch
Normal file
13
patches/urlbarprovider-interventions.patch
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
diff --git a/browser/components/urlbar/UrlbarProviderInterventions.jsm b/browser/components/urlbar/UrlbarProviderInterventions.jsm
|
||||||
|
index e22886ce92..d46d8191f2 100644
|
||||||
|
--- a/browser/components/urlbar/UrlbarProviderInterventions.jsm
|
||||||
|
+++ b/browser/components/urlbar/UrlbarProviderInterventions.jsm
|
||||||
|
@@ -451,7 +451,7 @@ class ProviderInterventions extends UrlbarProvider {
|
||||||
|
]),
|
||||||
|
});
|
||||||
|
for (let [id, phrases] of Object.entries(DOCUMENTS)) {
|
||||||
|
- queryScorer.addDocument({ id, phrases });
|
||||||
|
+// queryScorer.addDocument({ id, phrases });
|
||||||
|
}
|
||||||
|
return queryScorer;
|
||||||
|
});
|
||||||
1
settings
Submodule
1
settings
Submodule
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit dc24c1bc84b393aa180188c299737c0032a805b2
|
||||||
24
util/upload-distfiles.sh
Normal file
24
util/upload-distfiles.sh
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
pkgver=88.0.1
|
||||||
|
private_token=$1
|
||||||
|
if [ -z $private_token ]; then
|
||||||
|
echo "Please specify the Gitlab PRIVATE TOKEN on the commandline."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
curl --request POST --header "PRIVATE-TOKEN: ${private_token}" --form "file=@librewolf-${pkgver}.en-US.win64-setup.exe" "https://gitlab.com/api/v4/projects/13852981/uploads"
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
curl --request POST --header "PRIVATE-TOKEN: ${private_token}" --form "file=@librewolf-${pkgver}.en-US.win64.zip" "https://gitlab.com/api/v4/projects/13852981/uploads"
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
curl --request POST --header "PRIVATE-TOKEN: ${private_token}" --form "file=@librewolf-${pkgver}.en-US.win64-permissive-nightly-setup.exe" "https://gitlab.com/api/v4/projects/13852981/uploads"
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
|
||||||
1
version.sh
Normal file
1
version.sh
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
pkgver=88.0.1
|
||||||
Loading…
Add table
Reference in a new issue