Mailinglist Archive: opensuse-packaging (129 mails)

< Previous Next >
[opensuse-packaging] To all perl packagers: my hackweek project
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

For years I'm trying to fight outdated perl modules in
devel:languages:perl and openSUSE:Factory with various scripts and
a lot of man power.

But it was a lost battle from the start - there are just too many
modules and too many changes to review. And the worst of all: manual
fixes required after cpanspec had to be manually readded - and the
changes to be extracted for .changes file. It was a lot of work and
updating more than 10 modules a day make you feel like a robot.

For rubygems we use since some months a mechanism that proved itself,
so I reimplemented something very similar for cpan modules.

- - I have a script that tries to update every outdated module in
devel:languages:perl and if the update builds, it will create a
submit request (I plan to run this every night once the dust settled)

- - cpanspec got a feature to extract the diff between the changelogs and
"pastes" it into the .changes file. If this is not possible, it will
add a pointer to the installed change file.

- - cpanspec's behaviour can now be controlled by a cpanspec.yml file next
to the sources.

We previously changed the cpanspec generated .spec manually and had to
transfer these changes for every update. This lead to the rather sad
state that 1188 of 2662 packages in dlp were outdated (checked monday).

Now it's friday and we're down to 250 outdated packages - which is
still a lot, but at least the tools should make sure we're not
regressing on this number. But as we fix packages to have their changes
transfered to the yaml file, this number will go down.

So how does such a yaml file look like?

- ---
#description_paragraphs: 3
#no_testing: broken upstream
#sources:
# - source1
# - source2
#patches:
# foo.patch: -p1
# bar.patch:
#preamble: |-
# BuildRequires: gcc-c++
post_prep: |-
sed -i -e 's,/usr/bin/bash,/bin/bash,' bin/test-yaml
#post_install: |-
# sed on %{name}.files
#license: SUSE-NonFree
#skip_noarch: 1
#custom_build: -
#./Build build flags=%{?_smp_mflags} --myflag

Most packages only require a custom license - but you can limit the
description, overwrite the noarch guessing, add patches or more sources
or skip testing.

And if you need more, feel free to do a pull request for

https://github.com/openSUSE/cpanspec

Thanks for reading, Stephan

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iEYEARECAAYFAlUxDJ8ACgkQwFSBhlBjoJY4jgCfYeubqCY4QgFQqh3ISBUiiG7U
8ecAn3Ah80dvaVD9gqeDW8eAc2Y/m/Tf
=7BG0
-----END PGP SIGNATURE-----
--
To unsubscribe, e-mail: opensuse-packaging+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-packaging+owner@xxxxxxxxxxxx

< Previous Next >
This Thread
  • No further messages