AdguardTeam / AdGuardHome

Network-wide ads & trackers blocking DNS server
https://adguard.com/adguard-home.html
GNU General Public License v3.0
23.56k stars 1.73k forks source link

Can Adguardhome support riscv64 architecture ? #5704

Open cyqtmxk opened 1 year ago

cyqtmxk commented 1 year ago

Prerequisites

Description

What problem are you trying to solve?

When I compile the Adguardhome 0.107.21 for riscv64 using openwrt master source code, it shows the error: image I dont know how to resolve the issue and I wonder if adguardhome support riscv? Can anyone help me ?🙏🙏🙏 Thanks!

Proposed solution

Alternatives considered

Additional information

cyqtmxk commented 1 year ago

image I changed the golang-values.mk like this: image and the golang version is : image

ainar-g commented 1 year ago

Commit b23ea0a has resolved this particular issue. AdGuard Home does not currently support RISC-V CPUs, see the current list of supported platforms. We'll see how many :+1: this issue will collect, although I'm not sure if there is even enough real hardware in the world.

cyqtmxk commented 1 year ago

Thank you so much ! I have a single computer board called visionfive V1 which is released by Starfive Company and this SBC using jh7100(based on riscv ) soc. I'm using this source code: https://github.com/openwrt/openwrt/pull/9980?notification_referrer_id=NT_kwDOAKMBwrMzNzMzOTg0OTIwOjEwNjgyODE4#issuecomment-1503043028

cyqtmxk commented 1 year ago

Commit b23ea0a has resolved this particular issue. AdGuard Home does not currently support RISC-V CPUs, see the current list of supported platforms. We'll see how many 👍 this issue will collect, although I'm not sure if there is even enough real hardware in the world.

Thanks! I have built adguardhome v0.107.28 on riscv SBC successfully! image and I have purchased an AdGuard Ad Blocker license as a reward for your teams help! image

liberodark commented 7 months ago

I hope you add officially riscv64 support same as Debian.

liberodark commented 5 months ago

For me compilation fail :

#!/bin/bash

apt install -y golang-go rsync gpg git nodejs npm
git clone https://github.com/AdguardTeam/AdGuardHome
cd AdGuardHome
make init
make

Error :

Run `npm audit` for details.
env COMMIT='$( git rev-parse --short HEAD )' CHANNEL='development' GPG_KEY='devteam@adguard.com' GPG_KEY_PASSPHRASE='not-a-real-password' DIST_DIR='dist' GO="${GO:-go}" GOAMD64="v1" GOPROXY='https://goproxy.cn|https://proxy.golang.org|direct' GOSUMDB='sum.golang.google.cn' PATH="${PWD}/bin:$( "${GO:-go}" env GOPATH )/bin:${PATH}" RACE='0' SIGN='1' NEXTAPI='0' VERBOSE="${VERBOSE:-0}" VERSION='v0.0.0'  "/bin/sh" ./scripts/make/go-deps.sh
npm --prefix client run build-prod

> dashboard@0.1.0 build-prod
> cross-env BUILD_ENV=prod webpack --config webpack.prod.js

Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:69:19)
    at Object.createHash (node:crypto:133:10)
    at module.exports (/root/AdGuardHome/client/node_modules/webpack/lib/util/createHash.js:135:53)
    at NormalModule._initBuildHash (/root/AdGuardHome/client/node_modules/webpack/lib/NormalModule.js:417:16)
    at handleParseError (/root/AdGuardHome/client/node_modules/webpack/lib/NormalModule.js:471:10)
    at /root/AdGuardHome/client/node_modules/webpack/lib/NormalModule.js:503:5
    at /root/AdGuardHome/client/node_modules/webpack/lib/NormalModule.js:358:12
    at /root/AdGuardHome/client/node_modules/loader-runner/lib/LoaderRunner.js:373:3
    at iterateNormalLoaders (/root/AdGuardHome/client/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
    at iterateNormalLoaders (/root/AdGuardHome/client/node_modules/loader-runner/lib/LoaderRunner.js:221:10)
    at /root/AdGuardHome/client/node_modules/loader-runner/lib/LoaderRunner.js:236:3
    at runSyncOrAsync (/root/AdGuardHome/client/node_modules/loader-runner/lib/LoaderRunner.js:130:11)
    at iterateNormalLoaders (/root/AdGuardHome/client/node_modules/loader-runner/lib/LoaderRunner.js:232:2)
    at Array.<anonymous> (/root/AdGuardHome/client/node_modules/loader-runner/lib/LoaderRunner.js:205:4)
    at Storage.finished (/root/AdGuardHome/client/node_modules/webpack/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:55:16)
    at /root/AdGuardHome/client/node_modules/webpack/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:91:9
    at /root/AdGuardHome/client/node_modules/graceful-fs/graceful-fs.js:123:16
    at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read_file_context:68:3)
Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:69:19)
    at Object.createHash (node:crypto:133:10)
    at module.exports (/root/AdGuardHome/client/node_modules/webpack/lib/util/createHash.js:135:53)
    at NormalModule._initBuildHash (/root/AdGuardHome/client/node_modules/webpack/lib/NormalModule.js:417:16)
    at handleParseError (/root/AdGuardHome/client/node_modules/webpack/lib/NormalModule.js:471:10)
    at /root/AdGuardHome/client/node_modules/webpack/lib/NormalModule.js:503:5
    at /root/AdGuardHome/client/node_modules/webpack/lib/NormalModule.js:358:12
    at /root/AdGuardHome/client/node_modules/loader-runner/lib/LoaderRunner.js:373:3
    at iterateNormalLoaders (/root/AdGuardHome/client/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
    at iterateNormalLoaders (/root/AdGuardHome/client/node_modules/loader-runner/lib/LoaderRunner.js:221:10)
    at /root/AdGuardHome/client/node_modules/loader-runner/lib/LoaderRunner.js:236:3
    at runSyncOrAsync (/root/AdGuardHome/client/node_modules/loader-runner/lib/LoaderRunner.js:130:11)
    at iterateNormalLoaders (/root/AdGuardHome/client/node_modules/loader-runner/lib/LoaderRunner.js:232:2)
    at Array.<anonymous> (/root/AdGuardHome/client/node_modules/loader-runner/lib/LoaderRunner.js:205:4)
    at Storage.finished (/root/AdGuardHome/client/node_modules/webpack/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:55:16)
    at /root/AdGuardHome/client/node_modules/webpack/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:91:9
    at /root/AdGuardHome/client/node_modules/graceful-fs/graceful-fs.js:123:16
    at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read_file_context:68:3)
Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:69:19)
    at Object.createHash (node:crypto:133:10)
    at module.exports (/root/AdGuardHome/client/node_modules/webpack/lib/util/createHash.js:135:53)
    at NormalModule._initBuildHash (/root/AdGuardHome/client/node_modules/webpack/lib/NormalModule.js:417:16)
    at handleParseError (/root/AdGuardHome/client/node_modules/webpack/lib/NormalModule.js:471:10)
    at /root/AdGuardHome/client/node_modules/webpack/lib/NormalModule.js:503:5
    at /root/AdGuardHome/client/node_modules/webpack/lib/NormalModule.js:358:12
    at /root/AdGuardHome/client/node_modules/loader-runner/lib/LoaderRunner.js:373:3
    at iterateNormalLoaders (/root/AdGuardHome/client/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
    at iterateNormalLoaders (/root/AdGuardHome/client/node_modules/loader-runner/lib/LoaderRunner.js:221:10)
    at /root/AdGuardHome/client/node_modules/loader-runner/lib/LoaderRunner.js:236:3
    at runSyncOrAsync (/root/AdGuardHome/client/node_modules/loader-runner/lib/LoaderRunner.js:130:11)
    at iterateNormalLoaders (/root/AdGuardHome/client/node_modules/loader-runner/lib/LoaderRunner.js:232:2)
    at Array.<anonymous> (/root/AdGuardHome/client/node_modules/loader-runner/lib/LoaderRunner.js:205:4)
    at Storage.finished (/root/AdGuardHome/client/node_modules/webpack/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:55:16)
    at /root/AdGuardHome/client/node_modules/webpack/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:91:9
    at /root/AdGuardHome/client/node_modules/graceful-fs/graceful-fs.js:123:16
    at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read_file_context:68:3)
node:internal/crypto/hash:69
  this[kHandle] = new _Hash(algorithm, xofLen);
                  ^

Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:69:19)
    at Object.createHash (node:crypto:133:10)
    at module.exports (/root/AdGuardHome/client/node_modules/webpack/lib/util/createHash.js:135:53)
    at NormalModule._initBuildHash (/root/AdGuardHome/client/node_modules/webpack/lib/NormalModule.js:417:16)
    at /root/AdGuardHome/client/node_modules/webpack/lib/NormalModule.js:452:10
    at /root/AdGuardHome/client/node_modules/webpack/lib/NormalModule.js:323:13
    at /root/AdGuardHome/client/node_modules/loader-runner/lib/LoaderRunner.js:367:11
    at /root/AdGuardHome/client/node_modules/loader-runner/lib/LoaderRunner.js:233:18
    at context.callback (/root/AdGuardHome/client/node_modules/loader-runner/lib/LoaderRunner.js:111:13)
    at /root/AdGuardHome/client/node_modules/babel-loader/lib/index.js:59:103 {
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
}

Node.js v18.19.0
make: *** [Makefile:100: js-build] Error 1

Also have check directly from webpack : https://github.com/webpack/webpack/issues/15900

ainar-g commented 5 months ago

@liberodark, that looks like a front-end error not directly related to AdGuard Home. If you'd like to get help with that one, please use Discussions and try to keep the comments in the issue related to RISC-V builds of AGH.

schzhn commented 5 months ago

@liberodark, https://github.com/AdguardTeam/AdGuardHome/issues/6585

liberodark commented 5 months ago

Hi,

Thank @schzhn for the issue (have found the same solution in my side) Also @ainar-g yes i know that have build AdGuardHome without frontend. Im just sharing information for user want to find information so is not really needed to set off-topic the messages. That help users for understand the status of AdGuardHome on riscv64

Work Compilation :

#!/bin/bash

apt install -y golang-go rsync gpg git nodejs npm
git clone https://github.com/AdguardTeam/AdGuardHome
cd AdGuardHome
export NODE_OPTIONS=--openssl-legacy-provider
make init
make

image

Best Regards