Skip to content

Commit 8f1ce06

Browse files
Sync installer hardening and test infrastructure
1 parent 029fa73 commit 8f1ce06

93 files changed

Lines changed: 15105 additions & 1261 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,12 @@
1111
.svn/
1212
.swiftpm/
1313
migrate_working_dir/
14+
__pycache__/
15+
.agents
16+
.agents/
17+
.codex
18+
.codex/
19+
.git.broken-*/
1420

1521
# IntelliJ related
1622
*.iml
@@ -27,7 +33,6 @@ migrate_working_dir/
2733
**/doc/api/
2834
**/ios/Flutter/.last_build_id
2935
.dart_tool/
30-
.flutter-sdk/
3136
.flutter-plugins-dependencies
3237
.pub-cache/
3338
.pub/
@@ -47,9 +52,16 @@ app.*.map.json
4752

4853
# Local VM test artifacts
4954
/outputs/
55+
/iso-realese/
56+
/rpm-outputs/
57+
*.iso
58+
*.rpm
59+
*.src.rpm
5060
/*.qcow2
5161
/*.fd
52-
/*.iso
53-
/linux/__pycache__/
54-
/tool/__pycache__/
55-
/dist/
62+
63+
# Local hardware/debug captures
64+
/gerçeksistemdenloglar/*.txt
65+
66+
# Generated design prototype exports kept locally for reference
67+
/stitch_velvet_nebula_installer_redesign/

.metadata

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# This file tracks properties of this Flutter project.
2+
# Used by Flutter tool to assess capabilities and perform upgrades etc.
3+
#
4+
# This file should be version controlled and should not be manually edited.
5+
6+
version:
7+
revision: "ff37bef603469fb030f2b72995ab929ccfc227f0"
8+
channel: "stable"
9+
10+
project_type: app
11+
12+
# Tracks metadata for the flutter migrate command
13+
migration:
14+
platforms:
15+
- platform: root
16+
create_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
17+
base_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
18+
- platform: android
19+
create_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
20+
base_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
21+
- platform: ios
22+
create_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
23+
base_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
24+
- platform: linux
25+
create_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
26+
base_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
27+
- platform: macos
28+
create_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
29+
base_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
30+
- platform: web
31+
create_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
32+
base_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
33+
- platform: windows
34+
create_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
35+
base_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
36+
37+
# User provided section
38+
39+
# List of Local paths (relative to this file) that should be
40+
# ignored by the migrate tool.
41+
#
42+
# Files that are not part of the templates will be ignored by default.
43+
unmanaged_files:
44+
- 'lib/main.dart'
45+
- 'ios/Runner.xcodeproj/project.pbxproj'

COPR.md

Lines changed: 90 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,75 +1,127 @@
11
# COPR Guide
22

3-
This repository is prepared for COPR builds with the `SCM` source type and the
4-
`make srpm` workflow.
3+
This repository is prepared for COPR builds using the **SCM source type** and
4+
the **make srpm** SRPM generation method.
55

6-
## Build Method
6+
## Why `make srpm` instead of `rpkg`?
77

8-
Use `make srpm` for this project.
8+
Use `make srpm` for this repository.
99

10-
Why:
10+
Reason:
1111

12-
1. This is the upstream application repository, not a DistGit-style packaging repository.
13-
2. The provided `.copr/Makefile` creates the source archive directly from the checked-out tree.
14-
3. The workflow stays explicit, reproducible, and compatible with GitHub-triggered COPR builds.
12+
1. This is an upstream application repository, not a dedicated DistGit-style
13+
`rpkg` repository.
14+
2. COPR documents that `rpkg` is the default SCM method, but it also notes
15+
that modern `rpkg` workflows expect rpkg-util v3 templating conventions.
16+
3. `make srpm` lets us generate the exact source archive from the checked out
17+
tree and then call `rpmbuild -bs` ourselves.
18+
4. That keeps the packaging logic simple and explicit for GitHub webhook builds.
1519

16-
Files used by COPR:
20+
Relevant official COPR documentation:
21+
22+
- SCM source type and SRPM build methods:
23+
https://docs.pagure.org/copr.copr/user_documentation.html
24+
- Local package building with `rpkg`:
25+
https://docs.pagure.org/copr.copr/building_package.html
26+
27+
## Files Used by COPR
1728

1829
- `ro-installer.spec`
1930
- `.copr/Makefile`
2031
- `LICENSE`
2132

22-
Command executed by COPR:
33+
The Makefile target that COPR runs is:
2334

2435
```bash
2536
make -f .copr/Makefile srpm outdir="<outdir>" spec="ro-installer.spec"
2637
```
2738

28-
## COPR Package Settings
39+
That target:
40+
41+
1. reads `Name` and `Version` from the spec file
42+
2. creates `ro-installer-<version>.tar.gz` from the checked out source tree
43+
3. runs `rpmbuild -bs`
44+
4. places the resulting `.src.rpm` into `outdir`
45+
46+
Important:
47+
48+
- COPR runs `make srpm` in a minimal source chroot
49+
- do not assume tools like `git` are available there
50+
- the provided `.copr/Makefile` therefore uses `cp` and `tar`, not `git archive`
51+
52+
## How to Configure COPR
53+
54+
Create or edit the package in COPR with these settings:
55+
56+
1. **Source Type**: `SCM`
57+
2. **SCM Type**: `git`
58+
3. **Clone URL**:
59+
`https://github.com/Project-Ro-ASD/ro-Installer.git`
60+
4. **Committish**:
61+
`main`
62+
5. **Subdirectory**:
63+
leave empty
64+
6. **Spec File**:
65+
`ro-installer.spec`
66+
7. **SRPM Build Method**:
67+
`make srpm`
68+
8. **Auto-rebuild**:
69+
enable it
2970

30-
Configure the package with these values:
71+
## GitHub Webhook Setup
3172

32-
1. `Source Type`: `SCM`
33-
2. `SCM Type`: `git`
34-
3. `Clone URL`: `https://github.com/Project-Ro-ASD/ro-Installer.git`
35-
4. `Committish`: `main`
36-
5. `Subdirectory`: leave empty
37-
6. `Spec File`: `ro-installer.spec`
38-
7. `SRPM Build Method`: `make srpm`
39-
8. `Auto-rebuild`: enabled
73+
Once the SCM package exists in COPR:
4074

41-
## GitHub Webhook
75+
1. Open the COPR project
76+
2. Go to **Settings** -> **Integrations**
77+
3. Copy the GitHub webhook URL
78+
4. In GitHub open:
79+
`Settings -> Webhooks -> Add webhook`
80+
5. Paste the COPR webhook URL as **Payload URL**
81+
6. Set **Content type** to `application/json`
82+
7. Enable push events
83+
8. Save
4284

43-
After creating the SCM package in COPR:
85+
Official COPR GitHub webhook documentation:
4486

45-
1. Open the COPR project.
46-
2. Go to `Settings -> Integrations`.
47-
3. Copy the GitHub webhook URL.
48-
4. In GitHub open `Settings -> Webhooks -> Add webhook`.
49-
5. Paste the COPR URL into `Payload URL`.
50-
6. Set content type to `application/json`.
51-
7. Enable push events and save.
87+
- https://docs.pagure.org/copr.copr/user_documentation.html
5288

53-
## Local SRPM Test
89+
## Local Test Workflow
90+
91+
If you want to test the SRPM generation locally:
5492

5593
```bash
5694
mkdir -p dist
5795
make -f .copr/Makefile srpm outdir="$PWD/dist" spec="ro-installer.spec"
5896
```
5997

60-
Expected output for the current release:
98+
That should produce:
6199

62-
- `dist/ro-installer-3.0.0.tar.gz`
63-
- `dist/ro-installer-3.0.0-1*.src.rpm`
100+
- `dist/ro-installer-1.2.7.tar.gz`
101+
- `dist/ro-installer-1.2.7-1*.src.rpm`
64102

65-
Optional local rebuild with `mock`:
103+
If `mock` is available, rebuild the SRPM locally:
66104

67105
```bash
68106
mock -r fedora-rawhide-x86_64 --rebuild dist/*.src.rpm
69107
```
70108

71-
## Note About Flutter
109+
## Important Dependency Note
110+
111+
The spec currently uses:
112+
113+
```spec
114+
BuildRequires: flutter
115+
```
116+
117+
This means the selected COPR chroot must have an RPM package providing the
118+
Flutter SDK. If your target chroot does not provide `flutter`, the build will
119+
fail before compilation starts.
120+
121+
In that case you need one of these:
122+
123+
1. an additional repository enabled in COPR that provides `flutter`
124+
2. a dedicated COPR package for `flutter`
72125

73-
The RPM build expects a Fedora-compatible environment with the required build
74-
dependencies available to the spec. Keep the build declarative and avoid adding
75-
ad-hoc downloads outside the packaging workflow.
126+
Do not rely on downloading Flutter from the Internet during `%build`; keep the
127+
build declarative and reproducible.

0 commit comments

Comments
 (0)