Compare commits
No commits in common. "master" and "v89.0" have entirely different histories.
21 changed files with 1443 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.
|
||||
- The latest **-portable.zip** release is self-contained and can be run on removable storage.
|
||||
# hardening firefox
|
||||
|
||||
## Issue Tracker 🎫
|
||||
|
||||
- For issues with Settings or Advanced Settings (`about:config`), submit them to the [settings repository](https://gitlab.com/librewolf-community/settings/-/issues).
|
||||
- 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).
|
||||
* **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).
|
||||
* 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).
|
||||
|
|
|
|||
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
|
||||
611
build.sh
Executable file
611
build.sh
Executable file
|
|
@ -0,0 +1,611 @@
|
|||
#!/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 .
|
||||
elif [ "$android" == "android" ]; then
|
||||
create_mozconfig_android
|
||||
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...'
|
||||
|
||||
|
||||
|
||||
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
|
||||
echo "patch -p1 -i ../common/patches/nightly/context-menu2.patch"
|
||||
patch -p1 -i ../common/patches/nightly/context-menu2.patch
|
||||
# patch -p1 -i ../common/patches/context-menu.patch
|
||||
|
||||
echo "patch -p1 -i ../common/patches/remove_addons.patch"
|
||||
patch -p1 -i ../common/patches/remove_addons.patch
|
||||
# echo "patch -p1 -i ../common/patches/megabar.patch"
|
||||
# patch -p1 -i ../common/patches/megabar.patch
|
||||
echo 'patch -p1 -i ../common/patches/nightly/megabar3.patch'
|
||||
patch -p1 -i ../common/patches/nightly/megabar3.patch
|
||||
|
||||
echo "patch -p1 -i ../patches/mozilla-vpn-ad-proton.patch"
|
||||
patch -p1 -i ../patches/mozilla-vpn-ad-proton.patch
|
||||
fi
|
||||
|
||||
echo 'GNU sed patches...'
|
||||
|
||||
echo 'patch -p1 -i ../common/patches/sed-patches/allow-searchengines-non-esr.patch'
|
||||
patch -p1 -i ../common/patches/sed-patches/allow-searchengines-non-esr.patch
|
||||
echo 'patch -p1 -i ../common/patches/sed-patches/disable-pocket.patch'
|
||||
patch -p1 -i ../common/patches/sed-patches/disable-pocket.patch
|
||||
echo 'patch -p1 -i ../common/patches/sed-patches/remove-internal-plugin-certs.patch'
|
||||
patch -p1 -i ../common/patches/sed-patches/remove-internal-plugin-certs.patch
|
||||
echo 'patch -p1 -i ../common/patches/sed-patches/stop-undesired-requests.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
|
||||
|
||||
|
||||
# android
|
||||
if [[ "$*" == *set_android* ]]; then
|
||||
android=android
|
||||
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.
|
||||
s set_android - attempt andorid build (experimental).
|
||||
|
||||
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
|
||||
BIN
files/librewolf.lnk
Normal file
BIN
files/librewolf.lnk
Normal file
Binary file not shown.
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."
|
||||
}
|
||||
236
mozconfigs.sh
Normal file
236
mozconfigs.sh
Normal file
|
|
@ -0,0 +1,236 @@
|
|||
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
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
create_mozconfig_android() {
|
||||
cat >../mozconfig <<END
|
||||
# Original file is from:
|
||||
# https://raw.githubusercontent.com/Divested-Mobile/Mull/master/MOZCONFIG
|
||||
#
|
||||
# Reference
|
||||
# https://gitweb.torproject.org/user/sysrqb/tor-browser.git/tree/.mozconfig-android
|
||||
# https://gitlab.com/fdroid/fdroiddata/blob/master/metadata/org.mozilla.fennec_fdroid.txt
|
||||
|
||||
|
||||
|
||||
# Build for Android
|
||||
ac_add_options --with-android-min-sdk=16
|
||||
ac_add_options --enable-application=mobile/android
|
||||
ac_add_options --target=arm-linux-androideabi
|
||||
#ac_add_options --target=aarch64-linux-android
|
||||
#ac_add_options --target=x86_64-linux-android
|
||||
|
||||
|
||||
|
||||
|
||||
# Specify paths
|
||||
ac_add_options --with-android-sdk="/home/emy/.mozbuild/android-sdk-linux"
|
||||
ac_add_options --with-android-ndk="/home/emy/.mozbuild/android-ndk-r17b"
|
||||
CC="/home/emy/.mozbuild/clang/bin/clang"
|
||||
CXX="/home/emy/.mozbuild/clang/bin/clang++"
|
||||
|
||||
|
||||
|
||||
|
||||
# Set branding
|
||||
#ac_add_options --with-branding=mobile/android/branding/divestos
|
||||
|
||||
|
||||
# Build tweaks
|
||||
ac_add_options --disable-tests
|
||||
|
||||
|
||||
# Disable malware
|
||||
#ac_add_options --disable-eme
|
||||
ac_add_options --without-google-play-services
|
||||
|
||||
# Disable unneeded extras
|
||||
ac_add_options --disable-updater
|
||||
ac_add_options --disable-crashreporter
|
||||
|
||||
|
||||
# Hardening
|
||||
ac_add_options --enable-hardening
|
||||
|
||||
# Optimize
|
||||
ac_add_options --disable-debug
|
||||
ac_add_options --disable-profiling
|
||||
ac_add_options --disable-rust-debug
|
||||
ac_add_options --enable-optimize
|
||||
ac_add_options --enable-release
|
||||
ac_add_options --enable-strip
|
||||
ac_add_options --enable-rust-simd
|
||||
|
||||
export BUILDING_RELEASE=1
|
||||
export MOZ_DEBUG=
|
||||
export NIGHTLY_BUILD=
|
||||
|
||||
|
||||
#The following options are the only way to fully disable debugging
|
||||
export MOZILLA_OFFICIAL=1
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#### ORIGINAL MOZCONFIG #####
|
||||
#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
|
||||
|
||||
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
|
||||
17
patches/mozilla-vpn-ad-proton.patch
Normal file
17
patches/mozilla-vpn-ad-proton.patch
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
diff --git a/browser/components/privatebrowsing/content/aboutPrivateBrowsing.html b/browser/components/privatebrowsing/content/aboutPrivateBrowsing.html
|
||||
--- a/browser/components/privatebrowsing/content/aboutPrivateBrowsing.html
|
||||
+++ b/browser/components/privatebrowsing/content/aboutPrivateBrowsing.html
|
||||
@@ -54,13 +54,10 @@
|
||||
<div class="info">
|
||||
<h1 id="info-title" data-l10n-id="about-private-browsing-info-title"></h1>
|
||||
<p id="info-body" data-l10n-id="about-private-browsing-info-description"></p>
|
||||
- <a id="private-browsing-myths" data-l10n-id="about-private-browsing-info-myths"></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="promo">
|
||||
- <p id="private-browsing-vpn-text" class="vpn-promo" data-l10n-id="about-private-browsing-need-more-privacy"></p>
|
||||
- <a id="private-browsing-vpn-link" class="vpn-promo" data-l10n-id="about-private-browsing-turn-on-vpn"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
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 5cbb8b8b5401188f6e92f7880d33963ee0dcd8ca
|
||||
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=89.0
|
||||
Loading…
Add table
Reference in a new issue