diff options
Diffstat (limited to 'pkgs/build-support')
-rw-r--r-- | pkgs/build-support/make-startupitem/default.nix | 34 | ||||
-rw-r--r-- | pkgs/build-support/vm/rpm/rpm-closure.pl | 5 |
2 files changed, 37 insertions, 2 deletions
diff --git a/pkgs/build-support/make-startupitem/default.nix b/pkgs/build-support/make-startupitem/default.nix new file mode 100644 index 000000000000..07cdee600d45 --- /dev/null +++ b/pkgs/build-support/make-startupitem/default.nix @@ -0,0 +1,34 @@ +# given a pakcage with a $name.desktop file, makes a copy +# as autostart item. + +{stdenv, lib}: +{ name # name of the desktop file (without .desktop) +, package # package where the desktop file resides in +, after ? null +, condition ? null +, phase ? "2" +}: + +# the builder requires that +# $package/share/applications/$name.desktop +# exists as file. + +stdenv.mkDerivation { + name = "autostart-${name}"; + priority = 5; + + buildCommand = '' + ensureDir $out/share/autostart + target=${name}.desktop + cp ${package}/share/applications/${name}.desktop $target + chmod +rw $target + echo "X-KDE-autostart-phase=${phase}" >> $target + ${lib.optionalString (after != null) ''echo "${after}" >> $target''} + ${lib.optionalString (condition != null) ''echo "${condition}" >> $target''} + cp $target $out/share/autostart + ''; + + # this will automatically put 'package' in the environment when you + # put its startup item in there. + propagatedBuildInputs = [ package ]; +} \ No newline at end of file diff --git a/pkgs/build-support/vm/rpm/rpm-closure.pl b/pkgs/build-support/vm/rpm/rpm-closure.pl index 2ef59dcbdef3..94da0a20adc1 100644 --- a/pkgs/build-support/vm/rpm/rpm-closure.pl +++ b/pkgs/build-support/vm/rpm/rpm-closure.pl @@ -76,8 +76,9 @@ for (my $i = 0; $i < scalar(@packagesFiles); $i++) { my $earlierPkg = $pkgs{$pkg->{name}}; print STDERR "WARNING: duplicate occurrence of package $pkg->{name}\n"; # <version epoch="0" ver="1.28.0" rel="2.el6"/> - if (rpmvercmp($pkg->{'version'}->{ver}, $earlierPkg->{'version'}->{ver}) >= 0) { - print STDERR "WARNING: replaced package $pkg->{name} with newer one\n"; + my $cmp = rpmvercmp($pkg->{'version'}->{ver}, $earlierPkg->{'version'}->{ver}); + if ($cmp > 0 || ($cmp == 0 && rpmvercmp($pkg->{'version'}->{rel}, $earlierPkg->{'version'}->{rel})>0)) { + print STDERR "WARNING: replaced package $pkg->{name} (".$earlierPkg->{'version'}->{ver}." ".$earlierPkg->{'version'}->{rel}.") with newer one (".$pkg->{'version'}->{ver}." ".$pkg->{'version'}->{rel}.")\n"; $pkg->{urlPrefix} = $urlPrefixes[$i]; $pkgs{$pkg->{name}} = $pkg; } |