RPM file remove x86-64-v1 Support. Update French translation. (#8216)
Some checks are pending
release Linux / build (Release) (push) Waiting to run
release Linux / rpm (push) Blocked by required conditions
release macOS / build (Release) (push) Waiting to run
release Windows desktop (Avalonia UI) / build (Release) (push) Waiting to run
release Windows / build (Release) (push) Waiting to run

* Update ResUI.fr.resx

* Update build-linux.yml

* Update package-rhel.sh

* 更新 build-linux.yml

* Update ResUI.fr.resx

* Update ResUI.fr.resx

* Update ResUI.fr.resx

* Update ResUI.fr.resx

* Update ResUI.fr.resx

* Update ResUI.fr.resx

* Update ResUI.fr.resx

* Update ResUI.fr.resx
This commit is contained in:
JieXu 2025-10-29 09:21:37 +08:00 committed by GitHub
parent 3c4865982b
commit bf1fb0f92e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 99 additions and 51 deletions

View file

@ -9,6 +9,12 @@ on:
push:
branches:
- master
tags:
- 'v*'
- 'V*'
permissions:
contents: write
env:
OutputArch: "linux-64"
@ -21,7 +27,6 @@ jobs:
strategy:
matrix:
configuration: [Release]
runs-on: ubuntu-24.04
steps:
@ -31,18 +36,18 @@ jobs:
submodules: 'recursive'
fetch-depth: '0'
- name: Setup
- name: Setup .NET
uses: actions/setup-dotnet@v5.0.0
with:
dotnet-version: '8.0.x'
- name: Build
run: |
cd v2rayN
dotnet publish ./v2rayN.Desktop/v2rayN.Desktop.csproj -c Release -r linux-x64 --self-contained=true -o $OutputPath64
dotnet publish ./v2rayN.Desktop/v2rayN.Desktop.csproj -c Release -r linux-arm64 --self-contained=true -o $OutputPathArm64
dotnet publish ./AmazTool/AmazTool.csproj -c Release -r linux-x64 --self-contained=true -p:PublishTrimmed=true -o $OutputPath64
dotnet publish ./AmazTool/AmazTool.csproj -c Release -r linux-arm64 --self-contained=true -p:PublishTrimmed=true -o $OutputPathArm64
cd v2rayN
dotnet publish ./v2rayN.Desktop/v2rayN.Desktop.csproj -c Release -r linux-x64 --self-contained=true -o "$OutputPath64"
dotnet publish ./v2rayN.Desktop/v2rayN.Desktop.csproj -c Release -r linux-arm64 --self-contained=true -o "$OutputPathArm64"
dotnet publish ./AmazTool/AmazTool.csproj -c Release -r linux-x64 --self-contained=true -p:PublishTrimmed=true -o "$OutputPath64"
dotnet publish ./AmazTool/AmazTool.csproj -c Release -r linux-arm64 --self-contained=true -p:PublishTrimmed=true -o "$OutputPathArm64"
- name: Upload build artifacts
uses: actions/upload-artifact@v5.0.0
@ -56,8 +61,8 @@ jobs:
if: github.event.inputs.release_tag != ''
run: |
chmod 755 package-debian.sh
./package-debian.sh $OutputArch $OutputPath64 ${{ github.event.inputs.release_tag }}
./package-debian.sh $OutputArchArm $OutputPathArm64 ${{ github.event.inputs.release_tag }}
./package-debian.sh "$OutputArch" "$OutputPath64" "${{ github.event.inputs.release_tag }}"
./package-debian.sh "$OutputArchArm" "$OutputPathArm64" "${{ github.event.inputs.release_tag }}"
- name: Upload deb to release
uses: svenstaro/upload-release-action@v2
@ -73,8 +78,8 @@ jobs:
if: github.event.inputs.release_tag != ''
run: |
chmod 755 package-release-zip.sh
./package-release-zip.sh $OutputArch $OutputPath64
./package-release-zip.sh $OutputArchArm $OutputPathArm64
./package-release-zip.sh "$OutputArch" "$OutputPath64"
./package-release-zip.sh "$OutputArchArm" "$OutputPathArm64"
- name: Upload zip archive to release
uses: svenstaro/upload-release-action@v2
@ -85,36 +90,62 @@ jobs:
file_glob: true
prerelease: true
# release RHEL package
- name: Package RPM (RHEL-family)
if: github.event.inputs.release_tag != ''
rpm:
needs: build
if: |
(github.event_name == 'workflow_dispatch' && github.event.inputs.release_tag != '') ||
(github.event_name == 'push' && startsWith(github.ref, 'refs/tags/'))
runs-on: ubuntu-24.04
container:
image: quay.io/almalinuxorg/10-base:latest
options: --platform=linux/amd64/v2
env:
RELEASE_TAG: ${{ github.event.inputs.release_tag != '' && github.event.inputs.release_tag || github.ref_name }}
steps:
- name: Prepare tools (Red Hat)
run: |
chmod 755 package-rhel.sh
# Build for both x86_64 and aarch64 in one go (explicit version passed; no --buildfrom)
./package-rhel.sh "${{ github.event.inputs.release_tag }}" --arch all
dnf -y makecache
dnf -y install epel-release
dnf -y install sudo git rpm-build rpmdevtools dnf-plugins-core rsync findutils tar gzip unzip which
- name: Checkout repo (for scripts)
uses: actions/checkout@v5.0.0
with:
submodules: 'recursive'
fetch-depth: '0'
- name: Restore build artifacts
uses: actions/download-artifact@v4
with:
name: v2rayN-linux
path: ${{ github.workspace }}/v2rayN/Release
- name: Ensure script permissions
run: chmod 755 package-rhel.sh
- name: Package RPM (RHEL-family)
run: ./package-rhel.sh "${RELEASE_TAG}" --arch all
- name: Collect RPMs into workspace
if: github.event.inputs.release_tag != ''
run: |
mkdir -p "${{ github.workspace }}/dist/rpm"
rsync -av "$HOME/rpmbuild/RPMS/" "${{ github.workspace }}/dist/rpm/"
# Rename to requested filenames
find "${{ github.workspace }}/dist/rpm" -name "v2rayN-*-1.x86_64.rpm" -exec mv {} "${{ github.workspace }}/dist/rpm/v2rayN-linux-rhel-x64.rpm" \; || true
find "${{ github.workspace }}/dist/rpm" -name "v2rayN-*-1.aarch64.rpm" -exec mv {} "${{ github.workspace }}/dist/rpm/v2rayN-linux-rhel-arm64.rpm" \; || true
mkdir -p "$GITHUB_WORKSPACE/dist/rpm"
rsync -av "$HOME/rpmbuild/RPMS/" "$GITHUB_WORKSPACE/dist/rpm/" || true
find "$GITHUB_WORKSPACE/dist/rpm" -name "v2rayN-*-1*.x86_64.rpm" -exec mv {} "$GITHUB_WORKSPACE/dist/rpm/v2rayN-linux-rhel-64.rpm" \; || true
find "$GITHUB_WORKSPACE/dist/rpm" -name "v2rayN-*-1*.aarch64.rpm" -exec mv {} "$GITHUB_WORKSPACE/dist/rpm/v2rayN-linux-rhel-arm64.rpm" \; || true
echo "==== Dist tree ===="
ls -R "$GITHUB_WORKSPACE/dist/rpm" || true
- name: Upload RPM artifacts
if: github.event.inputs.release_tag != ''
uses: actions/upload-artifact@v5.0.0
with:
name: v2rayN-rpm
path: |
${{ github.workspace }}/dist/rpm/**/*.rpm
path: dist/rpm/**/*.rpm
- name: Upload RPMs to release
uses: svenstaro/upload-release-action@v2
if: github.event.inputs.release_tag != ''
with:
file: ${{ github.workspace }}/dist/rpm/**/*.rpm
tag: ${{ github.event.inputs.release_tag }}
file: dist/rpm/**/*.rpm
tag: ${{ env.RELEASE_TAG }}
file_glob: true
prerelease: true

View file

@ -19,6 +19,23 @@ else
exit 1
fi
# ======================== Kernel version check (require >= 6.11) =======================
MIN_KERNEL_MAJOR=6
MIN_KERNEL_MINOR=11
KERNEL_FULL=$(uname -r)
KERNEL_MAJOR=$(echo "$KERNEL_FULL" | cut -d. -f1)
KERNEL_MINOR=$(echo "$KERNEL_FULL" | cut -d. -f2)
echo "[INFO] Detected kernel version: $KERNEL_FULL"
if (( KERNEL_MAJOR < MIN_KERNEL_MAJOR )) || { (( KERNEL_MAJOR == MIN_KERNEL_MAJOR )) && (( KERNEL_MINOR < MIN_KERNEL_MINOR )); }; then
echo "[ERROR] Kernel $KERNEL_FULL is too old. Requires Linux >= ${MIN_KERNEL_MAJOR}.${MIN_KERNEL_MINOR}."
echo "Please upgrade your system or use a newer container (e.g. Fedora 42+, RHEL 10+, Debian 13+)."
exit 1
fi
echo "[OK] Kernel version >= ${MIN_KERNEL_MAJOR}.${MIN_KERNEL_MINOR}."
# ===== Config & Parse arguments =========================================================
VERSION_ARG="${1:-}" # Pass version number like 7.13.8, or leave empty
WITH_CORE="both" # Default: bundle both xray+sing-box

View file

@ -472,7 +472,7 @@
<value>Langue (redémarrage requis)</value>
</data>
<data name="menuAddServerViaClipboard" xml:space="preserve">
<value>Importer des liens depuis le presse-papiers (Ctrl+V)</value>
<value>Importer liens depuis le presse-papiers (Ctrl+V)</value>
</data>
<data name="menuAddServerViaScan" xml:space="preserve">
<value>Scanner le QR code à lécran (Ctrl+S)</value>
@ -619,7 +619,7 @@
<value>Sécurité couche transport (TLS)</value>
</data>
<data name="TipNetwork" xml:space="preserve">
<value>*tcp par défaut ; un mauvais choix empêchera la connexion</value>
<value>*tcp par défaut ; un mauvais choix bloque la connexion</value>
</data>
<data name="TbCoreType" xml:space="preserve">
<value>Type de Core</value>
@ -652,7 +652,7 @@
<value>Port Socks</value>
</data>
<data name="TipPreSocksPort" xml:space="preserve">
<value>*Valeur du port Socks pour la configuration personnalisée (facultatif). Si défini, Xray/sing-box (Tun) démarrera un service Socks en amont supplémentaire pour fournir le routage sélectif et laffichage de la vitesse.</value>
<value>*Valeur du port Socks (config perso, optionnelle). Si défini, Xray/sing-box (Tun) démarre un service Socks en amont supplémentaire pour fournir le routage sélectif et laffichage de la vitesse.</value>
</data>
<data name="TbBrowse" xml:space="preserve">
<value>Parcourir</value>
@ -670,7 +670,7 @@
<value>Masquer la fenêtre au démarrage</value>
</data>
<data name="TbSettingsAutoUpdateInterval" xml:space="preserve">
<value>Intervalle de mise à jour automatique des fichiers Geo (heures)</value>
<value>Intervalle de mise à jour auto des fichiers Geo (heures)</value>
</data>
<data name="TbSettingsCore" xml:space="preserve">
<value>Core : paramètres de base</value>
@ -691,7 +691,7 @@
<value>domainStrategy de Freedom (sortant)</value>
</data>
<data name="TbSettingsEnableAutoAdjustMainLvColWidth" xml:space="preserve">
<value>Auto-ajuster la largeur des colonnes après maj. des abonnements</value>
<value>Auto-ajuster la largeur des colonnes après maj. abonnements</value>
</data>
<data name="TbSettingsEnableCheckPreReleaseUpdate" xml:space="preserve">
<value>Vérifier les mises à jour pré-version (à activer avec prudence)</value>
@ -724,7 +724,7 @@
<value>Mot de passe dauthentification</value>
</data>
<data name="TbSettingsRemoteDNS" xml:space="preserve">
<value>DNS personnalisés (plusieurs possibles, séparés par des virgules)</value>
<value>DNS perso (plusieurs configurables, séparés par virgules)</value>
</data>
<data name="TbSettingsSetUWP" xml:space="preserve">
<value>Lever la restriction de proxy en boucle locale pour les applications Win10 UWP</value>
@ -865,7 +865,7 @@
<value>Documentation détaillée des règles</value>
</data>
<data name="TbDnsObjectDoc" xml:space="preserve">
<value>Saisie de DnsObject prise en charge (format JSON), cliquer pour voir la documentation</value>
<value>Saisie DnsObject prise en charge (format JSON), cliquer pour doc</value>
</data>
<data name="SubUrlTips" xml:space="preserve">
<value>Laissez vide pour les groupes ordinaires</value>
@ -898,7 +898,7 @@
<value>Filtrage par alias (regex)</value>
</data>
<data name="TbDisplayLog" xml:space="preserve">
<value>Afficher les journaux</value>
<value>Afficher les logs</value>
</data>
<data name="TbEnableTunAs" xml:space="preserve">
<value>Activer Tun</value>
@ -979,7 +979,7 @@
<value>En attente du test (appuyer sur Échap pour arrêter)...</value>
</data>
<data name="TipDisplayLog" xml:space="preserve">
<value>Désactivez ceci en cas de coupures anormales</value>
<value>Désactiver cette option si coupure anormale</value>
</data>
<data name="MsgSkipSubscriptionUpdate" xml:space="preserve">
<value>Mise à jour désactivée, abonnement ignoré</value>
@ -1009,10 +1009,10 @@
<value>DNS personnalisé sing-box</value>
</data>
<data name="TbDnsSingboxObjectDoc" xml:space="preserve">
<value>Veuillez renseigner la structure JSON DNS ; cliquer pour voir la documentation</value>
<value>Saisissez la structure JSON DNS ; cliquez pour voir la doc.</value>
</data>
<data name="TbSettingDnsImportDefConfig" xml:space="preserve">
<value>Cliquez pour importer la configuration DNS par défaut</value>
<value>Cliquez pour importer la config DNS par défaut</value>
</data>
<data name="TbdomainStrategy4Singbox" xml:space="preserve">
<value>Stratégie résolution domaine (sing-box)</value>
@ -1045,10 +1045,10 @@
<value>Algo contrôle congestion</value>
</data>
<data name="LvPrevProfile" xml:space="preserve">
<value>Alias de configuration du proxy amont</value>
<value>Alias de config du proxy amont</value>
</data>
<data name="LvNextProfile" xml:space="preserve">
<value>Alias de configuration du proxy aval</value>
<value>Alias de config du proxy aval</value>
</data>
<data name="LvPrevProfileTip" xml:space="preserve">
<value>Assurez-vous que lalias config existe et est unique</value>
@ -1114,7 +1114,7 @@
<value>Activer le fragmentation (Fragment)</value>
</data>
<data name="TbSettingsEnableCacheFile4Sbox" xml:space="preserve">
<value>Activer le fichier de cache de sing-box (fichiers de reˋgles)</value>
<value>Activer le fichier de cache de sing-box (fichiers gles)</value>
</data>
<data name="LvCustomRulesetPath4Singbox" xml:space="preserve">
<value>Set de règles sing-box perso</value>
@ -1207,7 +1207,7 @@
<value>Stratégie de résolution par défaut des sortants</value>
</data>
<data name="TbSettingsMainGirdOrientation" xml:space="preserve">
<value>Orientation de la mise en page principale (redémarrage requis)</value>
<value>Orientation mise en page principale (redémarrage requis)</value>
</data>
<data name="TbSettingsDomainDNSAddress" xml:space="preserve">
<value>Adresse de résolution de domaine pour sortants</value>
@ -1330,7 +1330,7 @@
<value>JSON brut XHTTP Extra, format : { XHTTPObject }</value>
</data>
<data name="TbSettingsHide2TrayWhenClose" xml:space="preserve">
<value>Masquer dans la barre détat lors de la fermeture de la fenêtre</value>
<value>Masquer dans la barre détat à la fermeture de la fenêtre</value>
</data>
<data name="TbSettingsMixedConcurrencyCount" xml:space="preserve">
<value>Niveau de concurrence lors des tests multithread</value>
@ -1351,7 +1351,7 @@
<value>Thème</value>
</data>
<data name="menuCopyProxyCmdToClipboard" xml:space="preserve">
<value>Copier la commande proxy terminal vers le presse-papiers</value>
<value>Copier la cmd proxy terminal dans le presse-papiers</value>
</data>
<data name="SpeedtestingTestFailedPart" xml:space="preserve">
<value>Recommencer le test des éléments échoués, {0} restants. Appuyez sur Échap pour arrêter...</value>
@ -1369,7 +1369,7 @@
<value>Plage de ports sautés</value>
</data>
<data name="TbPorts7Tips" xml:space="preserve">
<value>Écrase le port ; pour plusieurs groupes, séparez par des virgules (,)</value>
<value>Écrase le port ; pour plusieurs groupes, séparer par virgules (,)</value>
</data>
<data name="menuGenGroupMultipleServer" xml:space="preserve">
<value>Générer un groupe de stratégie depuis plusieurs profils</value>
@ -1447,7 +1447,7 @@
<value>Valider les IP des domaines de la région concernée</value>
</data>
<data name="TbValidateDirectExpectedIPsDesc" xml:space="preserve">
<value>Après configuration, les IP renvoyées pour les domaines régionaux (p. ex. geosite:cn) seront validées ; seules les IP attendues seront retournées</value>
<value>Après config, les IP renvoyées des domaines régionaux (ex. geosite:cn) seront vérifiées ; seules les IP attendues seront retournées.</value>
</data>
<data name="TbCustomDNSEnable" xml:space="preserve">
<value>Activer le DNS personnalisé</value>
@ -1471,7 +1471,7 @@
<value>Modèle de configuration complet v2ray</value>
</data>
<data name="TbRayFullConfigTemplateDesc" xml:space="preserve">
<value>Ajoute seulement la configuration sortante, routing.balancers et routing.rules.outboundTag. Voir la documentation.</value>
<value>Ajoute seulement la config sortante, routing.balancers et routing.rules.outboundTag. Voir la doc.</value>
</data>
<data name="TbAddProxyProtocolOutboundOnly" xml:space="preserve">
<value>Najoutez pas de sorties pour protocoles non-proxy.</value>
@ -1492,10 +1492,10 @@
<value>Début de lanalyse et du traitement du contenu dabonnement</value>
</data>
<data name="TbSelectProfile" xml:space="preserve">
<value>Sélectionner une configuration</value>
<value>Choisir une config.</value>
</data>
<data name="TbFakeIPTips" xml:space="preserve">
<value>Actif globalement par défaut, avec filtrage FakeIP intégré ; ne fonctionne que dans sing-box</value>
<value>Actif globalement par défaut, avec filtre FakeIP intégré ; ne fonctionne que dans sing-box</value>
</data>
<data name="PleaseAddAtLeastOneServer" xml:space="preserve">
<value>Veuillez ajouter au moins une configuration</value>