Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:nuklly
mullvadvpn
mullvadvpn.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File mullvadvpn.spec of Package mullvadvpn
# # spec file for package mullvadvpn # %define ver 2024.3-beta1 Name: mullvadvpn Summary: Privacy is a universal right License: GPL-3.0-only Group: Productivity/Networking/Security Url: https://mullvad.net/ Version: 2024.3b1 Release: 0 Source0: mullvadvpn-app-%{ver}.tar.gz # cargo run --bin relay_list --release > relays.json Source1: relays.json # pushd wireguard/libwg; go mod vendor; tar czvf wireguard-vendor.tar.gz vendor Source2: wireguard-vendor.tar.gz # cargo vendor; tar czvf mullvadvpn-app-vendor.tar.gz vendor Source3: mullvadvpn-app-vendor.tar.gz # Gui app Source4: MullvadVPN-%{ver}_x86_64.rpm # Gui app signature Source5: MullvadVPN-%{ver}_x86_64.rpm.asc # cargo vendoring config Source6: cargo-config # update script Source7: update.py Patch1: 0001-commit-date.patch # buildrequires BuildRequires: rpm BuildRequires: cpio BuildRequires: rust BuildRequires: cargo BuildRequires: go1.19 BuildRequires: nodejs BuildRequires: npm-default BuildRequires: dbus-1-devel BuildRequires: libmnl-devel BuildRequires: libnftnl-devel BuildRequires: protobuf-devel # GUI app build requirements BuildRequires: zsh BuildRequires: fish BuildRequires: hicolor-icon-theme %description You have a right to privacy. In a society increasingly determined to erode that right, a fast, trustworthy and easy-to-use VPN is a good first step toward reclaiming it. %prep %autosetup -n mullvadvpn-app-%{ver} -p2 echo "Copying relays file..." # update relay cp %{S:1} dist-assets/relays.json # decompress wireguard vendor tar xzvf %{S:2} -C wireguard/libwg # decompress mullvadvpn vendor tar xzvf %{S:3} -C "$PWD" # verify and decompress gui app rpm -K --nosignature %{S:4} mkdir ../guiapp; pushd ../guiapp rpm2cpio %{S:4} | cpio -idmv popd # setup cargo vendoring home mkdir cargo-home cp %{S:6} cargo-home/config %build RUSTC_VERSION=$(rustc --version) PRODUCT_VERSION=$(node -p "require('./gui/package.json').version" | sed -Ee 's/\.0//g') BUILD_MODE="release" HOST="x86_64-unknown-linux-gnu" ENV_TARGET=$HOST MULLVAD_ADD_MANIFEST="1" # echo "Updating version in metadata files..." # ./version-metadata.sh inject "$PRODUCT_VERSION" --desktop echo "Building Mullvad VPN $PRODUCT_VERSION" ################################################################################ # Compile wireguard-go (vendored) ################################################################################ GO_NO_VENDOR_CHECKS=1 bash ./wireguard/build-wireguard-go.sh echo "Building Rust code in release mode using $RUSTC_VERSION..." CARGO_HOME="$PWD/cargo-home" cargo build --release %install CARGO_TARGET_DIR=${CARGO_TARGET_DIR:-"target"} BINARIES=( mullvad-daemon mullvad mullvad-problem-report libtalpid_openvpn_plugin.so mullvad-setup mullvad-exclude ) BIN_BINARIES=( mullvad mullvad-daemon mullvad-setup mullvad-exclude mullvad-problem-report ) DIST_ASSETS=( relays.json ca.crt ) ################################################################################ # Move files to correct locations buildroot ################################################################################ install -d %{buildroot}%{_libdir}/mullvadvpn/resources/ for binary in ${BINARIES[*]}; do SRC="$CARGO_TARGET_DIR/release/$binary" DST="%{buildroot}%{_libdir}/mullvadvpn/resources/$binary" strip "$SRC" -o "$DST" chmod 755 "$DST" done for asset in ${DIST_ASSETS[*]}; do SRC="dist-assets/$asset" DST="%{buildroot}%{_libdir}/mullvadvpn/resources/$asset" install -m644 "$SRC" "$DST" done sed -i 's,/opt/Mullvad\\x20VPN/resources,%{_libdir}/mullvadvpn/resources,' \ dist-assets/linux/mullvad-daemon.service install -Dm644 dist-assets/linux/mullvad-daemon.service \ "%{buildroot}%{_unitdir}/mullvad-daemon.service" # Install bin soft links install -d %{buildroot}%{_bindir} for binary in ${BIN_BINARIES[*]}; do ln -s %{_libdir}/mullvadvpn/resources/$binary %{buildroot}%{_bindir}/$binary done ################################################################################ # Install GUI Application ################################################################################ pushd ../guiapp mv "opt/Mullvad VPN" "opt/mullvadvpn" install -Dm755 opt/mullvadvpn/*.* %{buildroot}%{_libdir}/mullvadvpn install -Dm755 opt/mullvadvpn/mullvad* %{buildroot}%{_libdir}/mullvadvpn install -Dm755 opt/mullvadvpn/chrome_crashpad_handler %{buildroot}%{_libdir}/mullvadvpn install -Dm755 opt/mullvadvpn/chrome-sandbox %{buildroot}%{_libdir}/mullvadvpn install -Dm644 opt/mullvadvpn/resources/app.asar %{buildroot}%{_libdir}/mullvadvpn/resources/app.asar install -Dm755 opt/mullvadvpn/resources/openvpn %{buildroot}%{_libdir}/mullvadvpn/resources/openvpn cp -r opt/mullvadvpn/locales %{buildroot}%{_libdir}/mullvadvpn sed -i 's,/opt/Mullvad VPN/mullvad-vpn,%{_libdir}/mullvadvpn/mullvad-vpn,' \ usr/share/applications/mullvad-vpn.desktop sed -i '/^Exec/ s/$/ --ozone-platform=wayland --enable-features=WaylandWindowDecorations /' \ usr/share/applications/mullvad-vpn.desktop # Install GUI desktop files and icons cp -r usr/share %{buildroot}/usr popd %pre %service_add_pre mullvad-daemon.service %post %service_add_post mullvad-daemon.service %preun %service_del_preun mullvad-daemon.service %postun %service_del_postun mullvad-daemon.service %files %defattr(-,root,root,755) %{_libdir}/mullvadvpn %{_bindir}/mullvad %{_bindir}/mullvad-daemon %{_bindir}/mullvad-exclude %{_bindir}/mullvad-problem-report %{_bindir}/mullvad-setup %{_unitdir}/mullvad-daemon.service %{_datadir}/applications/mullvad-vpn.desktop %{_datadir}/icons/hicolor/*/apps/mullvad-vpn.png %{_datadir}/bash-completion/completions/mullvad %{_datadir}/fish/vendor_completions.d/mullvad.fish %{_datadir}/zsh/site-functions/_mullvad %{_datadir}/icons/hicolor/1024x1024 %ghost /var/log/mullvad-vpn
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor