What do i have to do to participate in the opensuse/tumbleweed developement?
Iam interested in things like updateing components/packages. What do i havve to do to bring a new version of a package into the repositories?
Short answer:
Branch a package from a devel repo (for Factory) in OBS, change it accordingly, and submit it back.
Long answer:
https://en.opensuse.org/Portal:Factory
In particular this: https://en.opensuse.org/openSUSE:How_to_contribute_to_Factory
Ok i have read those articles and tested a bit, i am right with the following:
the (branched) package normaly contains a tarball (tar.gz with the original source) and a spec-file?
The specfile contains all the important informations from dependencies and compiling information?
I branched a the package i want to update and got just some unimportant files and the source and the spec file and a desktop file.
Yes, but it might also contain patches to the original sources (it’s preferred to leave the upstream source tarball unmodified and add patches on top of that), and additional “source” files like icons or whatever.
The specfile contains all the important informations from dependencies and compiling information?
Basically yes.
I branched a the package i want to update and got just some unimportant files and the source and the spec file and a desktop file.
Well, I doubt that there are “unimportant” files…
But in the ideal case you would just have to update the source tarball and change the version number in the specfile accordingly.
Likely you’d also have to adapt the existing patches, or remove (some of) them completely if they are no longer necessary.
And you should also add an entry to %changelog section or the xxx.changes file if it exists, otherwise your package will not be accepted to Factory.
Thank you, i did all of that you mentioned. There was a patch for the old tarball but not for the new source (current stable release, one week old).
Changed the the package.changes too.
I think i did all the necessary steps, including sending a submitrequest.
P.S: the unimportant files i mentioned where an icon and a manual.html, but you are probably right that at least some of them (the png?) are not so unimportant.
What do you mean with that?
Has the patch been added upstream?
Just because a patch includes a version number, does not necessarily mean it is not necessary any more.
As mentioned, it might be necessary to adapt the patch to the new version (by you). That depends completely on the patch itself though, and cannot be said in general. But just dropping a patch because it doesn’t apply any more is not always the best thing.
Just saying, to avoid a possible misunderstanding here (and an improper drop of a useful/necessary patch).
OOC, which package is it that you wanted to update?
Changed the the package.changes too.
I think i did all the necessary steps, including sending a submitrequest.
Ok, so the maintainer(s) will have a look at it, and either accept it or reject it with a reason.
P.S: the unimportant files i mentioned where an icon and a manual.html, but you are probably right that at least some of them (the png?) are not so unimportant.
Well, the png file probably is the icon for the menu entry (i.e. the .desktop file). Without it, OBS will complain and your build will actually fail…
The package is this one: https://api.opensuse.org/package/show/network/unison
my branch is linked on the page.
the patch contains only two little chainges. I compaired both versions, the old one and the new one, and it seems you are right the patch could still be applied (the line count changed though).
But iam not sure about this. Another thing is the patch entry in the spec file, it says this:
%prep
%setup -q
%if 0%{?suse_version} == 01110
%patch -p1
%endif
i changed that in my version because i removed the patch, but now when i may be keep the patch i have to admit that i do not fully understand under which conditions the patch gets applied. What is meant with “suse_version == 01110” is it possible that this patch would not get applied anyway because of a guaranteed version missmatch?
edit: i just noticed that i posted this with my new account i created for branching the package. I did not knew in the beginning that all of this uses the same account, i thought i needed a new one.
It means that this patch is only applied if “suse_version” is equal to 1110, i.e. if you are building against 11.1. And according to the patch’s filename, it seems to have been necessary to even build it successfully for 11.1.
As 11.1 is out of support for quite some time already, I think it’s ok to just remove it. But in the end it depends on the maintainers’ opinion.
But you’d better mention the removal of the patch in the unison.changes file as well (e.g.: “Remove build-fix-EG11.1.patch: was only applied for 11.1 which is not supported any more” or similar). One of the guidelines for submission to Factory is mentioning added/removed packages in the changelog, if that’s not done, the package will not be accepted to Factory, even if it is accepted to the devel repo.
See also https://en.opensuse.org/openSUSE:Packaging_Patches_guidelines#Patch_life_cycle
Btw, this is the reason why libxine2 in 13.2 is still the old version 1.2.3: 1.2.5 was missing a changelog entry about a removed patch and never was accepted to Factory therefore. I fixed that recently, when I updated the package to 1.2.6…
PS, a side-note: you probably should not remove the “-q” option in the %setup line.
Ok i updated the changes file and send/superseded another/“the old” submitrequest.
Now iam curious what the maintainers will do.
Thanks for your help anyway.
Without being involved in that package (actually I don’t even have it installed), I’d say your submit request looks good.
I think I would accept it…
Thanks for your contribution!
Yes that would be great :), lets see.
i added the -q option back to the setup line in the prep section of the specfile.
I did not knew that this was important, i found a documentation explaning the specfiles and there was an example for a minimal prep section, only containing the prep and the setup line (without the -q), thats why i removed it in the first place as i removed the patch.
What does it do?
Well, it’s not really critical.
It just silences tar’s output when unpacking the source tarball…
You’re right, that option is not really documented anywhere, but see http://www.redhat.com/archives/rpm-list/2001-November/msg00120.html .
I mainly mentioned it because I don’t know who added it and why. If you just remove it, they maybe might decline your request because of that (or maybe not, who knows?).
Good to know that, thanks.
I see that your submission has been accepted, not only to the devel repo but also Factory itself already (8 hours ago: https://api.opensuse.org/request/show/287205 )
So it should be part of the next Tumbleweed snapshot.
Congratulations!
my branch was successfully submited to the dev branch and finaly to the factory branch.
What is the next step, when does it get added to the factory/tumbleweed repositories?
edit: i just noticed that we posted at the same time about the same topic
your post answered my question, thanks.
edit2: thats realy nice, thanks for your help again.
Nothing.
It will automatically appear in the Tumbleweed repo whenever it is published the next time (tomorrow maybe?)