Accepting request 624687 from system:install:head
OBS-URL: https://build.opensuse.org/request/show/624687 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/patterns-devel-base?expand=0&rev=5
This commit is contained in:
commit
36ad072b47
173
create_32bit-patterns_file.pl
Normal file
173
create_32bit-patterns_file.pl
Normal file
@ -0,0 +1,173 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
my $verbose = 0;
|
||||
my $pat_ext = "32bit";
|
||||
my $product = "";
|
||||
my @skip_pat = ();
|
||||
|
||||
sub get_file {
|
||||
my $file_to_get = shift;
|
||||
my $content = "";
|
||||
|
||||
open FILE, "<$file_to_get" or return "\n";
|
||||
while (defined (my $line = <FILE>)) {
|
||||
next if ($line =~ m/^#/);
|
||||
$content .= $line;
|
||||
}
|
||||
close FILE;
|
||||
return $content;
|
||||
}
|
||||
|
||||
sub print_usage {
|
||||
print "$0 [-v] [-h]\n";
|
||||
exit 0;
|
||||
}
|
||||
|
||||
sub print_debug {
|
||||
my ($txt, $lvl) = @_;
|
||||
print (STDERR "DBG: ${txt}\n") if($verbose >= $lvl);
|
||||
}
|
||||
|
||||
sub parse_line {
|
||||
my $to_parse = shift;
|
||||
my $tmp = "";
|
||||
if ($to_parse =~ /%include/) {
|
||||
# TBD
|
||||
print "%include at unexpected position, exiting\n";
|
||||
exit (1);
|
||||
}
|
||||
if ($to_parse =~ /Summary:/) {
|
||||
return "$to_parse\n";
|
||||
}
|
||||
# XXX simplify me
|
||||
if ($to_parse =~ /Recommends:\s*([^\s]*)\s*/) {
|
||||
$tmp = "$1";
|
||||
return "" if ($tmp =~ m/.*-64bit\s*$/);
|
||||
$tmp = "${tmp}-32bit" if($tmp !~ m/.*-32bit/);
|
||||
return "Recommends: ${tmp}\n";
|
||||
}
|
||||
if ($to_parse =~ /Requires:\s*([^\s]*)\s*/) {
|
||||
$tmp = "$1";
|
||||
return "" if ($tmp =~ m/pattern()/);
|
||||
return "" if ($tmp =~ m/.*-64bit\s*$/);
|
||||
$tmp = "${tmp}-32bit" if($tmp !~ m/.*-32bit/);
|
||||
return "Recommends: ${tmp}\n";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
sub parse_main_file {
|
||||
my $main_file = shift;
|
||||
my $spec_file = "";
|
||||
my $cur_pattern = "";
|
||||
my $skip_it = 1;
|
||||
my %skip_pat_hash;
|
||||
if(! open (MAIN_FILE, "<$main_file")) {
|
||||
print STDERR "${main_file} not found, exiting\n";
|
||||
exit 1;
|
||||
}
|
||||
while (defined (my $line = <MAIN_FILE>)) {
|
||||
chomp($line);
|
||||
next if ($line =~ m/^#/);
|
||||
if ($line =~ m/\%package/) {
|
||||
if(($line =~ m/32bit/) or
|
||||
($line =~ m/64bit/)
|
||||
) {
|
||||
$skip_it = 1;
|
||||
} else {
|
||||
%skip_pat_hash = map { $_ => 1 } @skip_pat;
|
||||
if($skip_it==0&&!exists($skip_pat_hash{$cur_pattern})) {
|
||||
$spec_file .= ""
|
||||
."Provides: pattern() = ${cur_pattern}-32bit\n"
|
||||
."Group: Metapackages\n"
|
||||
."Supplements: packageand(patterns-${pat_ext}:patterns-${cur_pattern})\n"
|
||||
."\n"
|
||||
."%files ${cur_pattern}-32bit\n"
|
||||
."%defattr(-,root,root)\n"
|
||||
."%dir /usr/share/doc/packages/patterns\n"
|
||||
."/usr/share/doc/packages/patterns/${cur_pattern}-${pat_ext}.txt\n"
|
||||
."\n"
|
||||
."%description ${cur_pattern}-${pat_ext}\n"
|
||||
."The ${pat_ext} pattern complementing ${cur_pattern}.\n"
|
||||
."#\n"
|
||||
."#-------------------------------------------------------------------\n"
|
||||
."#\n";
|
||||
}
|
||||
$skip_it = 0 ;
|
||||
$line =~ m/package\s*([^\s]*)\s*/;
|
||||
$cur_pattern = $1;
|
||||
if (!exists($skip_pat_hash{$cur_pattern})) {
|
||||
$spec_file .= "%package ${cur_pattern}-32bit\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
next if($skip_it == 1 );
|
||||
if ($line =~ /%include/) {
|
||||
my $file_to_check = ($line =~ m/%include.*?([^\/\s]*)$/)[0]; # beware the non-greedy '?'
|
||||
next if($file_to_check =~ m/32bit/);
|
||||
if( open TMP_FILE, "<$file_to_check") {
|
||||
print_debug(" Checking INCLUDE: $file_to_check", 2);
|
||||
while (defined (my $include_line = <TMP_FILE>)) {
|
||||
if (!exists($skip_pat_hash{$cur_pattern})) {
|
||||
$spec_file .= parse_line($include_line);
|
||||
}
|
||||
}
|
||||
close TMP_FILE;
|
||||
}
|
||||
next;
|
||||
}
|
||||
if (!exists($skip_pat_hash{$cur_pattern})) {
|
||||
$spec_file .= parse_line($line);
|
||||
}
|
||||
}
|
||||
|
||||
%skip_pat_hash = map { $_ => 1 } @skip_pat;
|
||||
if (!exists($skip_pat_hash{$cur_pattern})) {
|
||||
# I hate this, but need a fast workaround
|
||||
$spec_file .= "Provides: pattern-invisible()\n"
|
||||
."Provides: pattern() = ${cur_pattern}-${pat_ext}\n"
|
||||
."Group: Metapackages\n"
|
||||
."Supplements: packageand(patterns-${pat_ext}:patterns-${cur_pattern})\n"
|
||||
."\n"
|
||||
."%files ${cur_pattern}-32bit\n"
|
||||
."%defattr(-,root,root)\n"
|
||||
."%dir /usr/share/doc/packages/patterns\n"
|
||||
."/usr/share/doc/packages/patterns/${cur_pattern}-${pat_ext}.txt\n"
|
||||
."\n"
|
||||
."%description ${cur_pattern}-${pat_ext}\n"
|
||||
."The ${pat_ext} pattern complementing ${cur_pattern}.\n"
|
||||
."\n";
|
||||
}
|
||||
|
||||
close MAIN_FILE;
|
||||
|
||||
my $new_file = $spec_file;
|
||||
|
||||
return $new_file;
|
||||
}
|
||||
|
||||
while ($ARGV[0] && $ARGV[0] =~ /^-/) {
|
||||
my $arg = shift;
|
||||
if ($arg =~ /-v/) {
|
||||
$verbose += 1;
|
||||
} elsif($arg =~ /-h/) {
|
||||
print_usage();
|
||||
exit();
|
||||
} elsif($arg =~ /-p/) {
|
||||
$product=shift;
|
||||
} elsif($arg =~ /-e/) {
|
||||
$pat_ext=shift;
|
||||
} elsif($arg =~ /-s/) {
|
||||
push @skip_pat, shift;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
print_debug("product = ${product}\n pat_ext=${pat_ext}\n", 1);
|
||||
my $result = parse_main_file("patterns-${product}.spec");
|
||||
print "${result}\n";
|
||||
exit 0;
|
||||
|
81
pattern-definition-32bit.txt
Normal file
81
pattern-definition-32bit.txt
Normal file
@ -0,0 +1,81 @@
|
||||
%package devel_basis-32bit
|
||||
Summary: Base Development
|
||||
Recommends: autoconf-32bit
|
||||
Recommends: automake-32bit
|
||||
Recommends: binutils-32bit
|
||||
Recommends: bison-32bit
|
||||
Recommends: cpp-32bit
|
||||
Recommends: flex-32bit
|
||||
Recommends: gcc-32bit
|
||||
Recommends: gdbm-devel-32bit
|
||||
Recommends: gettext-tools-32bit
|
||||
Recommends: glibc-devel-32bit
|
||||
Recommends: libtool-32bit
|
||||
Recommends: m4-32bit
|
||||
Recommends: make-32bit
|
||||
Recommends: makeinfo-32bit
|
||||
Recommends: ncurses-devel-32bit
|
||||
Recommends: patch-32bit
|
||||
Recommends: zlib-devel-32bit
|
||||
Recommends: bin86-32bit
|
||||
Recommends: db-devel-32bit
|
||||
Recommends: gcc-c++-32bit
|
||||
Recommends: gcc-info-32bit
|
||||
Recommends: git-32bit
|
||||
Recommends: glibc-info-32bit
|
||||
Recommends: gmp-devel-32bit
|
||||
Recommends: gperf-32bit
|
||||
Recommends: libaio-devel-32bit
|
||||
Recommends: libgcj-devel-32bit
|
||||
Recommends: libstdc++-devel-32bit
|
||||
Recommends: openldap2-devel-32bit
|
||||
Recommends: pam-devel-32bit
|
||||
Recommends: pkg-config-32bit
|
||||
Recommends: subversion-32bit
|
||||
Recommends: fdupes-32bit
|
||||
Recommends: patch-32bit
|
||||
Recommends: binutils-devel-32bit
|
||||
Recommends: e2fsprogs-devel-32bit
|
||||
Recommends: libapparmor-devel-32bit
|
||||
Recommends: libosip2-devel-32bit
|
||||
Provides: pattern() = devel_basis-32bit
|
||||
Group: Metapackages
|
||||
Supplements: packageand(patterns-32bit:patterns-devel_basis)
|
||||
|
||||
%files devel_basis-32bit
|
||||
%defattr(-,root,root)
|
||||
%dir /usr/share/doc/packages/patterns
|
||||
/usr/share/doc/packages/patterns/devel_basis-32bit.txt
|
||||
|
||||
%description devel_basis-32bit
|
||||
The 32bit pattern complementing devel_basis.
|
||||
#
|
||||
#-------------------------------------------------------------------
|
||||
#
|
||||
%package devel_kernel-32bit
|
||||
Summary: Linux Kernel Development
|
||||
Recommends: kernel-source-32bit
|
||||
Recommends: ctags-32bit
|
||||
Recommends: diffstat-32bit
|
||||
Recommends: git-core-32bit
|
||||
Recommends: indent-32bit
|
||||
Recommends: patchutils-32bit
|
||||
Recommends: quilt-32bit
|
||||
Recommends: gitk-32bit
|
||||
Recommends: git-email-32bit
|
||||
Recommends: kernel-syms-32bit
|
||||
Provides: pattern() = devel_kernel-32bit
|
||||
Group: Metapackages
|
||||
Supplements: packageand(patterns-32bit:patterns-devel_kernel)
|
||||
|
||||
%files devel_kernel-32bit
|
||||
%defattr(-,root,root)
|
||||
%dir /usr/share/doc/packages/patterns
|
||||
/usr/share/doc/packages/patterns/devel_kernel-32bit.txt
|
||||
|
||||
%description devel_kernel-32bit
|
||||
The 32bit pattern complementing devel_kernel.
|
||||
#
|
||||
#-------------------------------------------------------------------
|
||||
#
|
||||
|
@ -1,7 +1,19 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 11 11:25:36 UTC 2017 - simonf.lees@suse.com
|
||||
|
||||
- correctly source the files for 32bit patterns
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Dec 4 09:38:25 UTC 2017 - sflees@suse.de
|
||||
|
||||
- obsolete old SLES/SLED development patterns (bsc#1070151)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 21 10:52:11 UTC 2017 - sflees@suse.de
|
||||
|
||||
- Swap web pattern from php5 to php7
|
||||
- Add 32bit patterns
|
||||
- Only build certain patterns for openSUSE
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jul 17 06:32:17 UTC 2017 - sflees@suse.de
|
||||
|
@ -26,6 +26,8 @@ License: MIT
|
||||
Group: Metapackages
|
||||
Url: https://github.com/openSUSE/patterns
|
||||
Source0: %{name}-rpmlintrc
|
||||
Source1: pattern-definition-32bit.txt
|
||||
Source2: create_32bit-patterns_file.pl
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
BuildRequires: patterns-rpm-macros
|
||||
|
||||
@ -48,6 +50,12 @@ Provides: pattern() = devel_basis
|
||||
Provides: pattern-icon() = pattern-basis-devel
|
||||
Provides: pattern-order() = 3140
|
||||
Provides: pattern-visible()
|
||||
%if ! 0%{?is_opensuse}
|
||||
Provides: patterns-sles-Basis-Devel = %{version}
|
||||
Provides: patterns-sled-Basis-Devel = %{version}
|
||||
Obsoletes: patterns-sles-Basis-Devel < %{version}
|
||||
Obsoletes: patterns-sled-Basis-Devel < %{version}
|
||||
%endif
|
||||
Requires: pattern() = basesystem
|
||||
|
||||
Requires: autoconf
|
||||
@ -150,6 +158,7 @@ Tools for Linux kernel development.
|
||||
|
||||
################################################################################
|
||||
|
||||
%if 0%{?is_opensuse}
|
||||
%package devel_rpm_build
|
||||
%pattern_development
|
||||
Summary: RPM Build Environment
|
||||
@ -174,9 +183,11 @@ Minimal set of tools and libraries for building packages using the RPM package m
|
||||
%files devel_rpm_build
|
||||
%dir /usr/share/doc/packages/patterns
|
||||
/usr/share/doc/packages/patterns/devel_rpm_build.txt
|
||||
%endif
|
||||
|
||||
################################################################################
|
||||
|
||||
%if 0%{?is_opensuse}
|
||||
%package devel_web
|
||||
%pattern_development
|
||||
Summary: Web Development
|
||||
@ -259,6 +270,7 @@ Tools and libraries for Web application development.
|
||||
%files devel_web
|
||||
%dir /usr/share/doc/packages/patterns
|
||||
/usr/share/doc/packages/patterns/devel_web.txt
|
||||
%endif
|
||||
|
||||
################################################################################
|
||||
|
||||
@ -268,7 +280,23 @@ Tools and libraries for Web application development.
|
||||
|
||||
%install
|
||||
mkdir -p "%{buildroot}/usr/share/doc/packages/patterns"
|
||||
for i in devel_basis devel_kernel devel_rpm_build devel_web; do
|
||||
%if 0%{?is_opensuse}
|
||||
for i in devel_rpm_build devel_web; do
|
||||
echo "This file marks the pattern $i to be installed." \
|
||||
>"%{buildroot}/usr/share/doc/packages/patterns/$i.txt"
|
||||
done
|
||||
%endif
|
||||
|
||||
for i in devel_basis devel_kernel; do
|
||||
echo "This file marks the pattern $i to be installed." \
|
||||
>"%{buildroot}/usr/share/doc/packages/patterns/$i.txt"
|
||||
echo "This file marks the pattern $i-32bit to be installed." \
|
||||
>"%{buildroot}/usr/share/doc/packages/patterns/$i-32bit.txt"
|
||||
done
|
||||
|
||||
#
|
||||
# This file is created at check-in time. Sorry for the inconsistent workflow :(
|
||||
#
|
||||
%include %{SOURCE1}
|
||||
|
||||
%changelog
|
||||
|
4
pre_checkin.sh
Normal file
4
pre_checkin.sh
Normal file
@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
|
||||
./create_32bit-patterns_file.pl -p devel-base -s devel_rpm_build -s devel_web > pattern-definition-32bit.txt
|
||||
|
Loading…
Reference in New Issue
Block a user