Skip to content

Commit bf1fb0f

Browse files
authored
RPM file remove x86-64-v1 Support. Update French translation. (2dust#8216)
* 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
1 parent 3c48659 commit bf1fb0f

3 files changed

Lines changed: 99 additions & 51 deletions

File tree

.github/workflows/build-linux.yml

Lines changed: 60 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@ on:
99
push:
1010
branches:
1111
- master
12+
tags:
13+
- 'v*'
14+
- 'V*'
15+
16+
permissions:
17+
contents: write
1218

1319
env:
1420
OutputArch: "linux-64"
@@ -21,7 +27,6 @@ jobs:
2127
strategy:
2228
matrix:
2329
configuration: [Release]
24-
2530
runs-on: ubuntu-24.04
2631

2732
steps:
@@ -31,18 +36,18 @@ jobs:
3136
submodules: 'recursive'
3237
fetch-depth: '0'
3338

34-
- name: Setup
39+
- name: Setup .NET
3540
uses: actions/setup-dotnet@v5.0.0
3641
with:
3742
dotnet-version: '8.0.x'
3843

3944
- name: Build
4045
run: |
41-
cd v2rayN
42-
dotnet publish ./v2rayN.Desktop/v2rayN.Desktop.csproj -c Release -r linux-x64 --self-contained=true -o $OutputPath64
43-
dotnet publish ./v2rayN.Desktop/v2rayN.Desktop.csproj -c Release -r linux-arm64 --self-contained=true -o $OutputPathArm64
44-
dotnet publish ./AmazTool/AmazTool.csproj -c Release -r linux-x64 --self-contained=true -p:PublishTrimmed=true -o $OutputPath64
45-
dotnet publish ./AmazTool/AmazTool.csproj -c Release -r linux-arm64 --self-contained=true -p:PublishTrimmed=true -o $OutputPathArm64
46+
cd v2rayN
47+
dotnet publish ./v2rayN.Desktop/v2rayN.Desktop.csproj -c Release -r linux-x64 --self-contained=true -o "$OutputPath64"
48+
dotnet publish ./v2rayN.Desktop/v2rayN.Desktop.csproj -c Release -r linux-arm64 --self-contained=true -o "$OutputPathArm64"
49+
dotnet publish ./AmazTool/AmazTool.csproj -c Release -r linux-x64 --self-contained=true -p:PublishTrimmed=true -o "$OutputPath64"
50+
dotnet publish ./AmazTool/AmazTool.csproj -c Release -r linux-arm64 --self-contained=true -p:PublishTrimmed=true -o "$OutputPathArm64"
4651
4752
- name: Upload build artifacts
4853
uses: actions/upload-artifact@v5.0.0
@@ -56,8 +61,8 @@ jobs:
5661
if: github.event.inputs.release_tag != ''
5762
run: |
5863
chmod 755 package-debian.sh
59-
./package-debian.sh $OutputArch $OutputPath64 ${{ github.event.inputs.release_tag }}
60-
./package-debian.sh $OutputArchArm $OutputPathArm64 ${{ github.event.inputs.release_tag }}
64+
./package-debian.sh "$OutputArch" "$OutputPath64" "${{ github.event.inputs.release_tag }}"
65+
./package-debian.sh "$OutputArchArm" "$OutputPathArm64" "${{ github.event.inputs.release_tag }}"
6166
6267
- name: Upload deb to release
6368
uses: svenstaro/upload-release-action@v2
@@ -73,8 +78,8 @@ jobs:
7378
if: github.event.inputs.release_tag != ''
7479
run: |
7580
chmod 755 package-release-zip.sh
76-
./package-release-zip.sh $OutputArch $OutputPath64
77-
./package-release-zip.sh $OutputArchArm $OutputPathArm64
81+
./package-release-zip.sh "$OutputArch" "$OutputPath64"
82+
./package-release-zip.sh "$OutputArchArm" "$OutputPathArm64"
7883
7984
- name: Upload zip archive to release
8085
uses: svenstaro/upload-release-action@v2
@@ -85,36 +90,62 @@ jobs:
8590
file_glob: true
8691
prerelease: true
8792

88-
# release RHEL package
89-
- name: Package RPM (RHEL-family)
90-
if: github.event.inputs.release_tag != ''
93+
rpm:
94+
needs: build
95+
if: |
96+
(github.event_name == 'workflow_dispatch' && github.event.inputs.release_tag != '') ||
97+
(github.event_name == 'push' && startsWith(github.ref, 'refs/tags/'))
98+
runs-on: ubuntu-24.04
99+
container:
100+
image: quay.io/almalinuxorg/10-base:latest
101+
options: --platform=linux/amd64/v2
102+
env:
103+
RELEASE_TAG: ${{ github.event.inputs.release_tag != '' && github.event.inputs.release_tag || github.ref_name }}
104+
105+
steps:
106+
- name: Prepare tools (Red Hat)
91107
run: |
92-
chmod 755 package-rhel.sh
93-
# Build for both x86_64 and aarch64 in one go (explicit version passed; no --buildfrom)
94-
./package-rhel.sh "${{ github.event.inputs.release_tag }}" --arch all
108+
dnf -y makecache
109+
dnf -y install epel-release
110+
dnf -y install sudo git rpm-build rpmdevtools dnf-plugins-core rsync findutils tar gzip unzip which
111+
112+
- name: Checkout repo (for scripts)
113+
uses: actions/checkout@v5.0.0
114+
with:
115+
submodules: 'recursive'
116+
fetch-depth: '0'
117+
118+
- name: Restore build artifacts
119+
uses: actions/download-artifact@v4
120+
with:
121+
name: v2rayN-linux
122+
path: ${{ github.workspace }}/v2rayN/Release
123+
124+
- name: Ensure script permissions
125+
run: chmod 755 package-rhel.sh
126+
127+
- name: Package RPM (RHEL-family)
128+
run: ./package-rhel.sh "${RELEASE_TAG}" --arch all
95129

96130
- name: Collect RPMs into workspace
97-
if: github.event.inputs.release_tag != ''
98131
run: |
99-
mkdir -p "${{ github.workspace }}/dist/rpm"
100-
rsync -av "$HOME/rpmbuild/RPMS/" "${{ github.workspace }}/dist/rpm/"
101-
# Rename to requested filenames
102-
find "${{ github.workspace }}/dist/rpm" -name "v2rayN-*-1.x86_64.rpm" -exec mv {} "${{ github.workspace }}/dist/rpm/v2rayN-linux-rhel-x64.rpm" \; || true
103-
find "${{ github.workspace }}/dist/rpm" -name "v2rayN-*-1.aarch64.rpm" -exec mv {} "${{ github.workspace }}/dist/rpm/v2rayN-linux-rhel-arm64.rpm" \; || true
132+
mkdir -p "$GITHUB_WORKSPACE/dist/rpm"
133+
rsync -av "$HOME/rpmbuild/RPMS/" "$GITHUB_WORKSPACE/dist/rpm/" || true
134+
find "$GITHUB_WORKSPACE/dist/rpm" -name "v2rayN-*-1*.x86_64.rpm" -exec mv {} "$GITHUB_WORKSPACE/dist/rpm/v2rayN-linux-rhel-64.rpm" \; || true
135+
find "$GITHUB_WORKSPACE/dist/rpm" -name "v2rayN-*-1*.aarch64.rpm" -exec mv {} "$GITHUB_WORKSPACE/dist/rpm/v2rayN-linux-rhel-arm64.rpm" \; || true
136+
echo "==== Dist tree ===="
137+
ls -R "$GITHUB_WORKSPACE/dist/rpm" || true
104138
105139
- name: Upload RPM artifacts
106-
if: github.event.inputs.release_tag != ''
107140
uses: actions/upload-artifact@v5.0.0
108141
with:
109142
name: v2rayN-rpm
110-
path: |
111-
${{ github.workspace }}/dist/rpm/**/*.rpm
143+
path: dist/rpm/**/*.rpm
112144

113145
- name: Upload RPMs to release
114146
uses: svenstaro/upload-release-action@v2
115-
if: github.event.inputs.release_tag != ''
116147
with:
117-
file: ${{ github.workspace }}/dist/rpm/**/*.rpm
118-
tag: ${{ github.event.inputs.release_tag }}
148+
file: dist/rpm/**/*.rpm
149+
tag: ${{ env.RELEASE_TAG }}
119150
file_glob: true
120151
prerelease: true

package-rhel.sh

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,23 @@ else
1919
exit 1
2020
fi
2121

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

v2rayN/ServiceLib/Resx/ResUI.fr.resx

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,7 @@
472472
<value>Langue (redémarrage requis)</value>
473473
</data>
474474
<data name="menuAddServerViaClipboard" xml:space="preserve">
475-
<value>Importer des liens depuis le presse-papiers (Ctrl+V)</value>
475+
<value>Importer liens depuis le presse-papiers (Ctrl+V)</value>
476476
</data>
477477
<data name="menuAddServerViaScan" xml:space="preserve">
478478
<value>Scanner le QR code à l’écran (Ctrl+S)</value>
@@ -619,7 +619,7 @@
619619
<value>Sécurité couche transport (TLS)</value>
620620
</data>
621621
<data name="TipNetwork" xml:space="preserve">
622-
<value>*tcp par défaut ; un mauvais choix empêchera la connexion</value>
622+
<value>*tcp par défaut ; un mauvais choix bloque la connexion</value>
623623
</data>
624624
<data name="TbCoreType" xml:space="preserve">
625625
<value>Type de Core</value>
@@ -652,7 +652,7 @@
652652
<value>Port Socks</value>
653653
</data>
654654
<data name="TipPreSocksPort" xml:space="preserve">
655-
<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 l’affichage de la vitesse.</value>
655+
<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 l’affichage de la vitesse.</value>
656656
</data>
657657
<data name="TbBrowse" xml:space="preserve">
658658
<value>Parcourir</value>
@@ -670,7 +670,7 @@
670670
<value>Masquer la fenêtre au démarrage</value>
671671
</data>
672672
<data name="TbSettingsAutoUpdateInterval" xml:space="preserve">
673-
<value>Intervalle de mise à jour automatique des fichiers Geo (heures)</value>
673+
<value>Intervalle de mise à jour auto des fichiers Geo (heures)</value>
674674
</data>
675675
<data name="TbSettingsCore" xml:space="preserve">
676676
<value>Core : paramètres de base</value>
@@ -691,7 +691,7 @@
691691
<value>domainStrategy de Freedom (sortant)</value>
692692
</data>
693693
<data name="TbSettingsEnableAutoAdjustMainLvColWidth" xml:space="preserve">
694-
<value>Auto-ajuster la largeur des colonnes après maj. des abonnements</value>
694+
<value>Auto-ajuster la largeur des colonnes après maj. abonnements</value>
695695
</data>
696696
<data name="TbSettingsEnableCheckPreReleaseUpdate" xml:space="preserve">
697697
<value>Vérifier les mises à jour pré-version (à activer avec prudence)</value>
@@ -724,7 +724,7 @@
724724
<value>Mot de passe d’authentification</value>
725725
</data>
726726
<data name="TbSettingsRemoteDNS" xml:space="preserve">
727-
<value>DNS personnalisés (plusieurs possibles, séparés par des virgules)</value>
727+
<value>DNS perso (plusieurs configurables, séparés par virgules)</value>
728728
</data>
729729
<data name="TbSettingsSetUWP" xml:space="preserve">
730730
<value>Lever la restriction de proxy en boucle locale pour les applications Win10 UWP</value>
@@ -865,7 +865,7 @@
865865
<value>Documentation détaillée des règles</value>
866866
</data>
867867
<data name="TbDnsObjectDoc" xml:space="preserve">
868-
<value>Saisie de DnsObject prise en charge (format JSON), cliquer pour voir la documentation</value>
868+
<value>Saisie DnsObject prise en charge (format JSON), cliquer pour doc</value>
869869
</data>
870870
<data name="SubUrlTips" xml:space="preserve">
871871
<value>Laissez vide pour les groupes ordinaires</value>
@@ -898,7 +898,7 @@
898898
<value>Filtrage par alias (regex)</value>
899899
</data>
900900
<data name="TbDisplayLog" xml:space="preserve">
901-
<value>Afficher les journaux</value>
901+
<value>Afficher les logs</value>
902902
</data>
903903
<data name="TbEnableTunAs" xml:space="preserve">
904904
<value>Activer Tun</value>
@@ -979,7 +979,7 @@
979979
<value>En attente du test (appuyer sur Échap pour arrêter)...</value>
980980
</data>
981981
<data name="TipDisplayLog" xml:space="preserve">
982-
<value>Désactivez ceci en cas de coupures anormales</value>
982+
<value>Désactiver cette option si coupure anormale</value>
983983
</data>
984984
<data name="MsgSkipSubscriptionUpdate" xml:space="preserve">
985985
<value>Mise à jour désactivée, abonnement ignoré</value>
@@ -1009,10 +1009,10 @@
10091009
<value>DNS personnalisé sing-box</value>
10101010
</data>
10111011
<data name="TbDnsSingboxObjectDoc" xml:space="preserve">
1012-
<value>Veuillez renseigner la structure JSON DNS ; cliquer pour voir la documentation</value>
1012+
<value>Saisissez la structure JSON DNS ; cliquez pour voir la doc.</value>
10131013
</data>
10141014
<data name="TbSettingDnsImportDefConfig" xml:space="preserve">
1015-
<value>Cliquez pour importer la configuration DNS par défaut</value>
1015+
<value>Cliquez pour importer la config DNS par défaut</value>
10161016
</data>
10171017
<data name="TbdomainStrategy4Singbox" xml:space="preserve">
10181018
<value>Stratégie résolution domaine (sing-box)</value>
@@ -1045,10 +1045,10 @@
10451045
<value>Algo contrôle congestion</value>
10461046
</data>
10471047
<data name="LvPrevProfile" xml:space="preserve">
1048-
<value>Alias de configuration du proxy amont</value>
1048+
<value>Alias de config du proxy amont</value>
10491049
</data>
10501050
<data name="LvNextProfile" xml:space="preserve">
1051-
<value>Alias de configuration du proxy aval</value>
1051+
<value>Alias de config du proxy aval</value>
10521052
</data>
10531053
<data name="LvPrevProfileTip" xml:space="preserve">
10541054
<value>Assurez-vous que l’alias config existe et est unique</value>
@@ -1114,7 +1114,7 @@
11141114
<value>Activer le fragmentation (Fragment)</value>
11151115
</data>
11161116
<data name="TbSettingsEnableCacheFile4Sbox" xml:space="preserve">
1117-
<value>Activer le fichier de cache de sing-box (fichiers de reˋgles)</value>
1117+
<value>Activer le fichier de cache de sing-box (fichiers règles)</value>
11181118
</data>
11191119
<data name="LvCustomRulesetPath4Singbox" xml:space="preserve">
11201120
<value>Set de règles sing-box perso</value>
@@ -1207,7 +1207,7 @@
12071207
<value>Stratégie de résolution par défaut des sortants</value>
12081208
</data>
12091209
<data name="TbSettingsMainGirdOrientation" xml:space="preserve">
1210-
<value>Orientation de la mise en page principale (redémarrage requis)</value>
1210+
<value>Orientation mise en page principale (redémarrage requis)</value>
12111211
</data>
12121212
<data name="TbSettingsDomainDNSAddress" xml:space="preserve">
12131213
<value>Adresse de résolution de domaine pour sortants</value>
@@ -1330,7 +1330,7 @@
13301330
<value>JSON brut XHTTP Extra, format : { XHTTPObject }</value>
13311331
</data>
13321332
<data name="TbSettingsHide2TrayWhenClose" xml:space="preserve">
1333-
<value>Masquer dans la barre d’état lors de la fermeture de la fenêtre</value>
1333+
<value>Masquer dans la barre d’état à la fermeture de la fenêtre</value>
13341334
</data>
13351335
<data name="TbSettingsMixedConcurrencyCount" xml:space="preserve">
13361336
<value>Niveau de concurrence lors des tests multithread</value>
@@ -1351,7 +1351,7 @@
13511351
<value>Thème</value>
13521352
</data>
13531353
<data name="menuCopyProxyCmdToClipboard" xml:space="preserve">
1354-
<value>Copier la commande proxy terminal vers le presse-papiers</value>
1354+
<value>Copier la cmd proxy terminal dans le presse-papiers</value>
13551355
</data>
13561356
<data name="SpeedtestingTestFailedPart" xml:space="preserve">
13571357
<value>Recommencer le test des éléments échoués, {0} restants. Appuyez sur Échap pour arrêter...</value>
@@ -1369,7 +1369,7 @@
13691369
<value>Plage de ports sautés</value>
13701370
</data>
13711371
<data name="TbPorts7Tips" xml:space="preserve">
1372-
<value>Écrase le port ; pour plusieurs groupes, séparez par des virgules (,)</value>
1372+
<value>Écrase le port ; pour plusieurs groupes, séparer par virgules (,)</value>
13731373
</data>
13741374
<data name="menuGenGroupMultipleServer" xml:space="preserve">
13751375
<value>Générer un groupe de stratégie depuis plusieurs profils</value>
@@ -1447,7 +1447,7 @@
14471447
<value>Valider les IP des domaines de la région concernée</value>
14481448
</data>
14491449
<data name="TbValidateDirectExpectedIPsDesc" xml:space="preserve">
1450-
<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>
1450+
<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>
14511451
</data>
14521452
<data name="TbCustomDNSEnable" xml:space="preserve">
14531453
<value>Activer le DNS personnalisé</value>
@@ -1471,7 +1471,7 @@
14711471
<value>Modèle de configuration complet v2ray</value>
14721472
</data>
14731473
<data name="TbRayFullConfigTemplateDesc" xml:space="preserve">
1474-
<value>Ajoute seulement la configuration sortante, routing.balancers et routing.rules.outboundTag. Voir la documentation.</value>
1474+
<value>Ajoute seulement la config sortante, routing.balancers et routing.rules.outboundTag. Voir la doc.</value>
14751475
</data>
14761476
<data name="TbAddProxyProtocolOutboundOnly" xml:space="preserve">
14771477
<value>N’ajoutez pas de sorties pour protocoles non-proxy.</value>
@@ -1492,10 +1492,10 @@
14921492
<value>Début de l’analyse et du traitement du contenu d’abonnement</value>
14931493
</data>
14941494
<data name="TbSelectProfile" xml:space="preserve">
1495-
<value>Sélectionner une configuration</value>
1495+
<value>Choisir une config.</value>
14961496
</data>
14971497
<data name="TbFakeIPTips" xml:space="preserve">
1498-
<value>Actif globalement par défaut, avec filtrage FakeIP intégré ; ne fonctionne que dans sing-box</value>
1498+
<value>Actif globalement par défaut, avec filtre FakeIP intégré ; ne fonctionne que dans sing-box</value>
14991499
</data>
15001500
<data name="PleaseAddAtLeastOneServer" xml:space="preserve">
15011501
<value>Veuillez ajouter au moins une configuration</value>

0 commit comments

Comments
 (0)