summaryrefslogtreecommitdiff
path: root/repo/apps
diff options
context:
space:
mode:
authordavidovski <david@davidovski.xyz>2022-05-01 21:21:05 +0000
committerdavidovski <david@davidovski.xyz>2022-05-01 21:21:05 +0000
commit606bc59d0f8f67815c6a717843835477d44db6b3 (patch)
tree687b3fe5bc844b90a3841e1ea543aa9f9934a93a /repo/apps
parent1084afc3c4d9c83e61620de60ba59a4393a33cb0 (diff)
added ungoogled chromium
Diffstat (limited to 'repo/apps')
-rw-r--r--repo/apps/arandr.xibuild15
-rw-r--r--repo/apps/chromium.xibuild287
-rw-r--r--repo/apps/mpv.xibuild33
-rw-r--r--repo/apps/pcmanfm.xibuild33
-rw-r--r--repo/apps/polybar.xibuild44
5 files changed, 412 insertions, 0 deletions
diff --git a/repo/apps/arandr.xibuild b/repo/apps/arandr.xibuild
new file mode 100644
index 0000000..7b926ff
--- /dev/null
+++ b/repo/apps/arandr.xibuild
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+NAME="arandr"
+DESC="ARandR provides a simple visual front end for XRandR"
+
+MAKEDEPS="python python-setuptools "
+DEPS="xrandr cairo python-gobject python "
+
+PKG_VER=0.1.10
+SOURCE="http://christian.amsuess.com/tools/arandr/files/arandr-$PKG_VER.tar.gz"
+
+
+package () {
+ python3 setup.py install --prefix=/usr --root=$PKG_DEST
+}
diff --git a/repo/apps/chromium.xibuild b/repo/apps/chromium.xibuild
new file mode 100644
index 0000000..2edfbd3
--- /dev/null
+++ b/repo/apps/chromium.xibuild
@@ -0,0 +1,287 @@
+#!/bin/sh
+
+NAME="chromium"
+DESC="Chromium webbrowser (ungoogled)"
+
+MAKEDEPS="meson ninja hwids compiler-rt lld pciutils"
+DEPS="alsa-lib at-spi2-atk at-spi2-core atk cairo dbus eudev expat ffmpeg4 flac font-opensans fontconfig freetype2 glib gtk3 harfbuzz lcms2 libdrm libevent libjpeg-turbo libpng pulseaudio libwebp libx11 libxcb libxcomposite libxdamage libxext libxfixes libxkbcommon libxml2 libxrandr libxslt mesa musl nspr nss opus pango re2 snappy wayland xdg-utils nodejs"
+
+PKG_VER=100.0.4896.127
+
+SOURCE="https://commondatastorage.googleapis.com/chromium-browser-official/chromium-$PKG_VER.tar.xz"
+
+fonts_package=cd96fc55dc243f6c6f4cb63ad117cad6cd48dceb
+_launcher_ver=8
+ADDITIONAL="
+https://github.com/Eloston/ungoogled-chromium/archive/$PKG_VER-1.tar.gz
+https://chromium-fonts.storage.googleapis.com/$fonts_package
+
+chromium-VirtualCursor-standard-layout.patch
+chromium-revert-drop-of-system-java.patch
+chromium-use-alpine-target.patch
+chromium.conf
+chromium-launcher.sh
+chromium.desktop
+credentials-header.patch
+default-pthread-stacksize.patch
+elf-arm.patch
+fix-narrowing-cast.patch
+fix-unittests-sandbox.patch
+gcc-arm.patch
+gdbinit.patch
+google-api.keys
+media-base.patch
+memory-tagging-arm64.patch
+musl-crashpad.patch
+musl-fixes.patch
+musl-hacks.patch
+musl-libc++.patch
+musl-sandbox.patch
+musl-stat.patch
+musl-tid-caching.patch
+musl-v8-monotonic-pthread-cont_timedwait.patch
+nasm.patch
+no-execinfo.patch
+no-getcontext.patch
+no-mallinfo.patch
+quiche-arena-size.patch
+resolver.patch
+revert-use-ffile-compilation-dir.patch
+scoped-file.patch
+system-opus.patch
+use-deprecated-ffmpeg-api.patch
+unbundle-ffmpeg-av_stream_get_first_dts.patch
+use-oauth2-client-switches-as-default.patch
+wayland-egl.patch
+webcodecs-stop-using-AudioOpusEncoder.patch
+"
+
+prepare () {
+ apply_patches
+
+ # Congratulations, you have found a bug! The bug is in the application that uses this internal glibc header
+ files="third_party/libsync/src/include/sync/sync.h
+ third_party/crashpad/crashpad/compat/linux/sys/ptrace.h
+ base/allocator/allocator_shim_internals.h"
+ for f in $files; do
+ sed -i "s/__BEGIN_DECLS/#ifdef __cplusplus\nextern \"C\" {\n#endif/g" $f
+ sed -i "s/__END_DECLS/#ifdef __cplusplus\n}\n#endif/g" $f
+ sed -i "s,#include <sys/cdefs.h>,," $f
+ done
+
+ # prevent annoying errors when regenerating gni
+ sed -i 's,^update_readme$,#update_readme,' \
+ third_party/libvpx/generate_gni.sh
+
+ # allow system dependencies in "official builds"
+ sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+ tools/generate_shim_headers/generate_shim_headers.py
+
+
+ tar xf chromium-launcher-$_launcher_ver.tar.gz
+ tar xf $fonts_package
+ tar xf $PKG_VER-1.tar.gz
+ ungoogled_repo="ungoogled-chromium-$PKG_VER-1"
+ utils="${ungoogled_repo}/utils"
+
+ python "$utils/prune_binaries.py" ./ "$ungoogled_repo/pruning.list"
+ python "$utils/patches.py" apply ./ "$ungoogled_repo/patches"
+ python "$utils/domain_substitution.py" apply -r "$ungoogled_repo/domain_regex.list" \
+ -f "$ungoogled_repo/domain_substitution.list" -c domainsubcache.tar.gz ./
+
+ mv test_fonts ./third_party/test_fonts
+
+ sed 's|//third_party/usb_ids/usb.ids|/usr/share/hwdata/usb.ids|g' \
+ -i services/device/public/cpp/usb/BUILD.gn
+
+ mkdir -p third_party/node/linux/node-linux-x64/bin
+ ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/
+
+ # Remove bundled libraries for which we will use the system copies; this
+ # *should* do what the remove_bundled_libraries.py script does, with the
+ # added benefit of not having to list all the remaining libraries
+
+ local use_system="
+ ffmpeg
+ flac
+ fontconfig
+ freetype
+ harfbuzz-ng
+ libdrm
+ libevent
+ libjpeg
+ libwebp
+ libxml
+ libxslt
+ opus
+ re2
+ snappy
+ "
+
+ local _lib
+ for _lib in ${use_system}; do
+ for f in $(find "third_party/$_lib/chromium" "third_party/$_lib/google" -type f \( -name "*.gn" -or -name "*.gni" -or -name "*.isolate" \)); do
+ echo "removing $f to use system $_lib"
+ rm $f
+ done
+ done
+
+ python build/linux/unbundle/replace_gn_files.py \
+ --system-libraries ${use_system}
+ python third_party/libaddressinput/chromium/tools/update-strings.py
+}
+
+build () {
+ export CC=clang
+ export CXX=clang++
+ export LD=clang++
+ export AR=ar
+ export NM=nm
+
+ flags="
+custom_toolchain=\"//build/toolchain/linux/unbundle:default\"
+host_toolchain=\"//build/toolchain/linux/unbundle:default\"
+enable_nacl=false
+use_sysroot=false
+clang_use_chrome_plugins=false
+is_clang=true
+use_lld=false
+gold_path=\"/usr/bin/ld.gold\"
+use_custom_libcxx=false
+use_gold=false
+is_debug=false
+blink_symbol_level=0
+symbol_level=0
+icu_use_data_file=true
+use_allocator=\"none\"
+use_allocator_shim=false
+enable_widevine=true
+use_system_harfbuzz=false
+use_system_wayland_scanner=true
+use_cups=false
+use_gnome_keyring=false
+use_vaapi=true
+enable_js_type_check=true
+use_pulseaudio=true
+link_pulseaudio=true
+rtc_use_pipewire=true
+proprietary_codecs=false
+ffmpeg_branding=\"Chrome\"
+fatal_linker_warnings=false
+disable_fieldtrial_testing_config=true
+is_official_build=true
+is_cfi=false
+use_thin_lto=false
+use_cfi_icall=false
+chrome_pgo_phase=0
+ "
+
+ # Append ungoogled chromium flags to _flags array
+ flags="$flags
+ $(cat "ungoogled-chromium-$PKG_VER-1/flags.gn")
+ "
+
+ # Facilitate deterministic builds (taken from build/config/compiler/BUILD.gn)
+ CFLAGS="$CFLAGS -Wno-builtin-macro-redefined"
+ CXXFLAGS="$CXXFLAGS -Wno-builtin-macro-redefined"
+ CPPFLAGS="$CPPFLAGS -D__DATE__= -D__TIME__= -D__TIMESTAMP__="
+
+ # Do not warn about unknown warning options
+ CFLAGS="$CFLAGS -Wno-unknown-warning-option"
+ CXXFLAGS="$CXXFLAGS -Wno-unknown-warning-option"
+
+ python3 tools/gn/bootstrap/bootstrap.py -s -v --skip-generate-buildfiles
+
+ ./out/Release/gn gen out/Release --args="$flags"
+
+ ninja -C out/Release mksnapshot
+ ninja -C out/Release v8_context_snapshot_generator
+
+ ulimit -n 2048
+ ninja -C out/Release chrome chrome_sandbox chromedriver
+}
+
+package () {
+ install -Dm755 chromium-launcher.sh \
+ "$PKG_DEST"/usr/lib/chromium/chromium-launcher.sh
+
+ install -D out/Release/chrome "$PKG_DEST/usr/lib/chromium/chromium"
+ install -D out/Release/chromedriver "$PKG_DEST/usr/bin/chromedriver"
+ install -Dm4755 out/Release/chrome_sandbox "$PKG_DEST/usr/lib/chromium/chrome-sandbox"
+
+ install -Dm644 ../chromium-drirc-disable-10bpc-color-configs.conf \
+ "$PKG_DEST/usr/share/drirc.d/10-chromium.conf"
+
+ install -Dm644 chrome/installer/linux/common/desktop.template \
+ "$PKG_DEST/usr/share/applications/chromium.desktop"
+ install -Dm644 chrome/app/resources/manpage.1.in \
+ "$PKG_DEST/usr/share/man/man1/chromium.1"
+ sed -i \
+ -e 's/@@MENUNAME@@/Chromium/g' \
+ -e 's/@@PACKAGE@@/chromium/g' \
+ -e 's/@@USR_BIN_SYMLINK_NAME@@/chromium/g' \
+ "$PKG_DEST/usr/share/applications/chromium.desktop" \
+ "$PKG_DEST/usr/share/man/man1/chromium.1"
+
+ install -Dm644 chrome/installer/linux/common/chromium-browser/chromium-browser.appdata.xml \
+ "$PKG_DEST/usr/share/metainfo/chromium.appdata.xml"
+ sed -ni \
+ -e 's/chromium-browser\.desktop/chromium.desktop/' \
+ -e '/<update_contact>/d' \
+ -e '/<p>/N;/<p>\n.*\(We invite\|Chromium supports Vorbis\)/,/<\/p>/d' \
+ -e '/^<?xml/,$p' \
+ "$PKG_DEST/usr/share/metainfo/chromium.appdata.xml"
+
+ local toplevel_files="
+chrome_100_percent.pak
+chrome_200_percent.pak
+chrome_crashpad_handler
+resources.pak
+v8_context_snapshot.bin
+snapshot_blob.bin
+xdg-mime
+xdg-settings
+libEGL.so
+libGLESv2.so
+libvk_swiftshader.so
+vk_swiftshader_icd.json
+icudtl.dat
+libvulkan.so.1
+ "
+
+ mkdir -p "$PKG_DEST/usr/lib/chromium"
+ mkdir -p "$PKG_DEST/usr/lib/chromium/locales"
+ mkdir -p "$PKG_DEST/usr/lib/chromium/swiftshader"
+
+ for file in $toplevel_files; do
+ cp out/Release/$file "$PKG_DEST/usr/lib/chromium/"
+ done
+
+ for locale in out/Release/locales/* ; do
+ install -Dm644 $locale "$PKG_DEST/usr/lib/chromium/locales"
+ done
+ for shader in out/Release/swiftshader/*.so; do
+ install -Dm755 $shader "$PKG_DEST/usr/lib/chromium/swiftshader"
+ done
+
+ for size in 24 48 64 128 256; do
+ install -Dm644 "chrome/app/theme/chromium/product_logo_$size.png" \
+ "$PKG_DEST/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png"
+ done
+
+ for size in 16 32; do
+ install -Dm644 "chrome/app/theme/default_100_percent/chromium/product_logo_$size.png" \
+ "$PKG_DEST/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png"
+ done
+
+ install -Dm644 LICENSE "$PKG_DEST/usr/share/licenses/chromium/LICENSE"
+
+ mkdir -p "$PKG_DEST"/usr/bin
+ ln -sf /usr/lib/chromium/chromium-launcher.sh "$PKG_DEST"/usr/bin/chromium-browser
+ install -Dm644 chromium.conf \
+ "$PKG_DEST"/etc/chromium/chromium.conf
+
+ install -Dm644 chromium.desktop \
+ "$PKG_DEST"/usr/share/applications/chromium.desktop
+
+}
diff --git a/repo/apps/mpv.xibuild b/repo/apps/mpv.xibuild
new file mode 100644
index 0000000..6770c54
--- /dev/null
+++ b/repo/apps/mpv.xibuild
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+NAME="mpv"
+DESC="Video player based on MPlayer/mplayer2"
+
+MAKEDEPS="make waf"
+DEPS="alsa-lib faac ffmpeg4 freetype2 lame aom libass libtheora libva libvdpau libxext libxinerama libxkbcommon libxrandr libxscrnsaver libxv libxvmc libxxf86dga lua mesa perl pulseaudio python-docutils python xvidcore zlib "
+
+PKG_VER=0.34.1
+SOURCE="https://github.com/mpv-player/mpv/archive/v$PKG_VER/mpv-$PKG_VER.tar.gz"
+
+prepare () {
+ ln -s /usr/bin/waf waf
+}
+
+build () {
+ python3 waf configure \
+ --prefix=/usr \
+ --bindir=/usr/bin \
+ --sysconfdir=/etc \
+ --disable-static \
+ --enable-alsa \
+ --enable-pulse \
+ --enable-libmpv-shared \
+ --enable-wayland \
+ --enable-lua \
+ --enable-test
+ python3 waf build
+}
+
+package () {
+ python3 waf install --destdir=$PKG_DEST
+}
diff --git a/repo/apps/pcmanfm.xibuild b/repo/apps/pcmanfm.xibuild
new file mode 100644
index 0000000..35c3d52
--- /dev/null
+++ b/repo/apps/pcmanfm.xibuild
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+NAME="pcmanfm"
+DESC="Extremely fast and lightweight file manager"
+
+MAKEDEPS="make "
+DEPS="gtk3 libfm "
+
+PKG_VER=1.3.2
+SOURCE="https://downloads.sourceforge.net/pcmanfm/pcmanfm-$PKG_VER.tar.xz"
+
+prepare () {
+ # avoid errors building .po files with gettext-tiny
+ sed -e "s/^\(SUBDIRS =.*\)po\(.*\)$/\1\2/" -i Makefile.in
+ echo "SUBDIRS=src data" > Makefile.am
+ aclocal
+ autoreconf
+ automake --add-missing
+}
+
+build () {
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --with-gtk=3
+ make
+}
+
+package () {
+ make DESTDIR=$PKG_DEST install
+ sed -i 's|x-directory/normal|inode/directory|' \
+ "$PKG_DEST"/usr/share/applications/pcmanfm.desktop
+}
diff --git a/repo/apps/polybar.xibuild b/repo/apps/polybar.xibuild
new file mode 100644
index 0000000..16e07af
--- /dev/null
+++ b/repo/apps/polybar.xibuild
@@ -0,0 +1,44 @@
+#!/bin/sh
+
+NAME="polybar"
+DESC="fast and easy-to-use tool for creating status bars"
+
+MAKEDEPS="cmake "
+DEPS="alsa-lib sbase cairo fontconfig freetype2 jsoncpp curl libmpdclient pulseaudio libuv musl libxcb xcb-util-cursor xcb-util-wm "
+
+PKG_VER=3.6.1
+SOURCE="https://github.com/polybar/polybar/archive/$PKG_VER.tar.gz"
+
+xppver="044e69d05db7f89339bda1ccd1efe0263b01c8f6"
+i3ipcppver="86ddf7102c6903ae0cc543071e2d375403fc0727"
+
+ADDITIONAL="fix-version.patch
+https://github.com/polybar/xpp/archive/$xppver.tar.gz
+https://github.com/polybar/i3ipcpp/archive/$i3ipcppver.tar.gz
+"
+
+prepare () {
+ tar -xf $xppver.tar.gz
+ tar -xf $i3ipcppver.tar.gz
+
+ mkdir build
+ rm -rf lib/xpp
+ mv xpp-$xppver lib/xpp
+ rm -rf lib/i3ipcpp
+ mv i3ipcpp-$i3ipcpp lib/i3ipcpp
+
+ apply_patches
+}
+
+build () {
+ cmake -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=/usr/lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DBUILD_STATIC_LIBS=OFF
+ cmake --build build
+}
+
+package () {
+ DESTDIR="$PKG_DEST" cmake --install build
+}