How to create a new package using spectacle and a SPEC file ?
Official documentation: Spectacle
Requirements
- A project on an OBS server where you have maintainer rights (for example your home project)
- OBS Light already installed on your computer
- An archive of your program, named like program-version.tar.gz (tar.bz2 is OK)
- A SPEC file, program.spec
Prepare the SPEC file
- First you have to generate a YAML file:
spec2spectacle mypackage.spec
- Edit the generated YAML file, mypackage.yaml. You may have to complete some fields, for example the source file, which should look like %{name}-%{version}.tar.gz.
- Re-generate the SPEC file
specify mypackage.yaml
- Now check the SPEC file, especially the script section. Your old scripts should have been surrounded by "# >> " and "# << " tags. %if macros have been removed.
Create the package
OBS Light cannot create new packages at the moment. You have to use the web UI, or osc.
- Using the web UI:
- Go to the project you want to add your package to.
- Go to Packages tab.
- Click Create package.
- Give a name to the package (we recommend the same name as your program, in lower-case), a title and a description (optional but recommended).
- Now you should be able to import this package in OBS Light.
- Run obslightgui.
- Click Import project button.
- Select a server from the list or add a new one (not explained here).
- Select your project in the list.
- Select a target and an architecture.
- Give an alias to the project (can be the name of the project, without ":").
- You should now see a list of packages, with the one you created earlier.
- Select it and press finish.
- The package is now imported into OBS Light, with status broken.
- In the right panel, tab Local directory, click Import file.
- Select your SPEC file, YAML file and archive.
- The files appear in the list with status Added.
- In the middle panel, click Commit changes, and enter a commit message.
- The files are uploaded on the OBS server, and the package starts to build.