summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--Makefile14
-rwxr-xr-xrpmf19
-rwxr-xr-xurpmf19
-rwxr-xr-xurpmi2
-rwxr-xr-xurpmi.addmedia13
-rw-r--r--urpmi.spec143
7 files changed, 205 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 00000000..554d4e26
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,4 @@
+2000-01-04 Pixel <pixel@mandrakesoft.com>
+
+ * urpmi.addmedia: replaced hdlist2files by hdlist2names
+
diff --git a/Makefile b/Makefile
index afa532c5..279124fb 100644
--- a/Makefile
+++ b/Makefile
@@ -7,14 +7,16 @@ URPMIDIR = $(PREFIX)/var/lib/urpmi
URPMIDIR2 = $(PREFIX)/etc/urpmi
LOCALEDIR = $(PREFIX)/usr/share/locale
+NAME = urpmi
+TAR = $(NAME).tar.bz2
-.PHONY: install clean
+.PHONY: install clean rpm
install: autoirpm.update-all
$(MAKE) -C po $@
install -d $(BINDIR) $(SBINDIR) $(XBINDIR) $(URPMIDIR) $(URPMIDIR2) $(MANDIR)/man8
install -m 4755 urpmi $(BINDIR)
- install _irpm rpm-find-leaves $(BINDIR)
+ install _irpm rpm-find-leaves rpmf $(BINDIR)
install -m 644 autoirpm.deny $(URPMIDIR2)
for i in *.8; do bzip2 -c $$i > $(MANDIR)/man8/$$i.bz2 ; done
install urpmi.addmedia autoirpm.update autoirpm.uninstall $(SBINDIR)
@@ -27,7 +29,13 @@ autoirpm.update-all: %: %.cc
$(CXX) -I/usr/include/rpm -g $< -lrpm -ldb1 -lz -o $@
tar: clean
- cd .. ; tar cfy urpmi.tar.bz2 urpmi
+ cd .. ; tar cfy $(TAR) urpmi
+
+rpm: tar
+ cp -f ../$(TAR) $(RPM)/SOURCES
+ cp -f $(NAME).spec $(RPM)/SPECS/
+ -rpm -ba $(NAME).spec
+ rm -f ../$(TAR)
po:
$(MAKE) -C $@
diff --git a/rpmf b/rpmf
new file mode 100755
index 00000000..9263537f
--- /dev/null
+++ b/rpmf
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+if [ "$#" -gt 1 ] || [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
+ echo "usage: rpmf [<file>]"
+ exit 1
+fi
+
+hdlist="/var/lib/urpmi/hdlist.*.gz"
+
+if ! ls $hdlist >/dev/null 2>/dev/null; then
+ echo "urpmi is not installed"
+ exit 1
+fi
+
+if [ -z "$1" ]; then
+ gzip -dc $hdlist | hdlist2files -
+else
+ gzip -dc $hdlist | hdlist2files - | grep $1
+fi
diff --git a/urpmf b/urpmf
new file mode 100755
index 00000000..9263537f
--- /dev/null
+++ b/urpmf
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+if [ "$#" -gt 1 ] || [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
+ echo "usage: rpmf [<file>]"
+ exit 1
+fi
+
+hdlist="/var/lib/urpmi/hdlist.*.gz"
+
+if ! ls $hdlist >/dev/null 2>/dev/null; then
+ echo "urpmi is not installed"
+ exit 1
+fi
+
+if [ -z "$1" ]; then
+ gzip -dc $hdlist | hdlist2files -
+else
+ gzip -dc $hdlist | hdlist2files - | grep $1
+fi
diff --git a/urpmi b/urpmi
index 2c199dd6..bc20b251 100755
--- a/urpmi
+++ b/urpmi
@@ -85,7 +85,7 @@ if (!$auto and difference2(\@to_install, \@packages)) {
`gmessage -default $ok -buttons "$ok:0,$cancel:2" "$msg:\n$p\n\n$msg2"`;
$? and exit 0;
} else {
- print SAVEOUT "$msg:\n@to_install\n$msg2 (y/n) ";
+ print SAVEOUT "$msg:\n@to_install\n$msg2 (y/N) ";
<STDIN> =~ /y/i or exit 0;
}
}
diff --git a/urpmi.addmedia b/urpmi.addmedia
index b1bc5f5c..72ef3cd8 100755
--- a/urpmi.addmedia
+++ b/urpmi.addmedia
@@ -96,13 +96,16 @@ umask $mask;
if (my ($prefix, $dir) = $url =~ m,^(removable_.*?|file):/(.*),) {
my $hdlist = '';
my $flush = sub {};
- if (-e (my $f = "$dir/Mandrake/base/hdlist")) {
- system("gzip -f $f > $HDLIST.gz");
+ if (-e (my $f = "$dir/Mandrake/base/hdlist.gz")) {
+ system("cp -f $f $HDLIST.gz");
+ } elsif (-e (my $f = "$dir/Mandrake/base/hdlist")) {
+ system("gzip -cf $f > $HDLIST.gz");
} else {
$flush = sub { system("rpm2header $hdlist | gzip >> $HDLIST.gz") if $hdlist };
}
print "scanning $dir...";
- open F, "find $dir -follow -name '*.rpm'|";
+ my $realdir = readlink($dir) || $dir;
+ open F, "find '$realdir' -name '*.rpm'|";
foreach (<F>) {
chomp;
if (length "$hdlist $_" > 1500) {
@@ -119,12 +122,12 @@ if (my ($prefix, $dir) = $url =~ m,^(removable_.*?|file):/(.*),) {
} else {
system("wget -O $HDLIST $url/$ftp_hdlist");
$? == 0 or die "wget of $url/$ftp_hdlist failed (maybe wget is missing?)";
- open F, "hdlist2files $HDLIST|";
+ open F, "hdlist2names $HDLIST|";
foreach (<F>) {
chomp;
print LIST "$url/$_\n";
}
- close F or die "hdlist2files failed";
+ close F or die "hdlist2names failed";
}
close LIST;
diff --git a/urpmi.spec b/urpmi.spec
new file mode 100644
index 00000000..0d5025cc
--- /dev/null
+++ b/urpmi.spec
@@ -0,0 +1,143 @@
+%define group Utilities/System
+
+Name: urpmi
+Version: 0.9
+Release: 33mdk
+License: GPL
+Source0: %{name}.tar.bz2
+Summary: User mode rpm install
+Requires: /usr/bin/suidperl /usr/bin/rpm2header /usr/bin/hdlist2files /usr/bin/hdlist2names /usr/bin/gendepslist eject
+BuildRoot: /tmp/%{name}
+
+Group: %{group}
+%description
+urpmi enable non-superuser install of rpms. In fact, it only authorizes
+well-known rpms to be installed.
+
+You can compare rpm vs. urpmi with insmod vs. modprobe
+
+%changelog
+* Mon Dec 27 1999 Pixel <pixel@mandrakesoft.com>
+- fixed a bug in urpmi.addmedia
+
+* Fri Dec 24 1999 Pixel <pixel@mandrakesoft.com>
+- more i18n
+
+* Wed Dec 22 1999 Pixel <pixel@mandrakesoft.com>
+- added urpmi_rpm-find-leaves
+
+* Mon Dec 20 1999 Pixel <pixel@mandrakesoft.com>
+- bug fix in autoirpm.update
+
+* Sun Dec 19 1999 Pixel <pixel@mandrakesoft.com>
+- bug fix for autoirpm (bad directory)
+- enhancement to urpmi (in place gzip'ing)
+- small cute enhancements
+
+* Sat Dec 18 1999 Pixel <pixel@mandrakesoft.com>
+- a lot of i18n added (thx2pablo)
+
+* Fri Dec 17 1999 Pixel <pixel@mandrakesoft.com>
+- changed a message
+
+* Thu Dec 16 1999 Pixel <pixel@mandrakesoft.com>
+- added -follow to the find (thanx2(ti){2})
+
+* Wed Dec 15 1999 Pixel <pixel@mandrakesoft.com>
+- fixed a bug in dependencies
+
+* Sat Dec 11 1999 Pixel <pixel@mandrakesoft.com>
+- i18n using po-like style
+
+* Wed Dec 8 1999 Pixel <pixel@linux-mandrake.com>
+- fixed a bug (gmessage called with no double quotes and i18n)
+
+* Thu Dec 2 1999 Pixel <pixel@linux-mandrake.com>
+- better error output (both in /var/log/urpmi.* and stdout/stderr)
+
+* Fri Nov 26 1999 Pixel <pixel@linux-mandrake.com>
+- some bug fixes
+
+* Tue Nov 23 1999 Pixel <pixel@linux-mandrake.com>
+- include new man pages and doc from camille :)
+
+* Mon Nov 22 1999 Pixel <pixel@mandrakesoft.com>
+- s|sbin|bin| in requires (again) (wow already monday!)
+
+* Sun Nov 21 1999 Pixel <pixel@mandrakesoft.com>
+- autoirpm: added require gurpmi
+
+* Sat Nov 20 1999 Pixel <pixel@mandrakesoft.com>
+- urpmi.addmedia modified
+
+* Wed Nov 17 1999 Pixel <pixel@mandrakesoft.com>
+- corrected error in urpmi script
+- replaced dependency perl by /usr/bin/suidperl
+
+* Mon Nov 15 1999 Pixel <pixel@linux-mandrake.com>
+- changed the handling of urpmi, added urpmi.addmedia...
+
+%package -n gurpmi
+Version: 0.4
+Summary: User mode rpm GUI install
+Requires: urpmi grpmi gchooser gmessage
+Group: %{group}
+%description -n gurpmi
+gurpmi enable non-superuser install of rpms. In fact, it only authorizes
+well-known rpms to be installed.
+
+You can compare rpm vs. urpmi with insmod vs. modprobe
+
+%package -n autoirpm
+Version: 0.2
+Summary: Auto install of rpm on demand
+Requires: sh-utils urpmi gurpmi xtest gmessage gurpmi
+Group: %{group}
+
+%description -n autoirpm
+Auto install of rpm on demand
+
+
+%prep
+%setup -n %{name}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+make PREFIX=$RPM_BUILD_ROOT install
+install -d $RPM_BUILD_ROOT/var/lib/urpmi/autoirpm.scripts
+install -m 644 autoirpm.deny $RPM_BUILD_ROOT/etc/urpmi
+
+cd $RPM_BUILD_ROOT/usr/bin ; mv -f rpm-find-leaves urpmi_rpm-find-leaves
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+rm -rf $RPM_BUILD_DIR/$RPM_PACKAGE_NAME
+
+%pre
+groupadd -r -f urpmi
+
+%preun -n autoirpm
+autoirpm.uninstall
+
+%files
+%defattr(-,root,root)
+%attr(0755, root, urpmi) %dir /etc/urpmi
+%attr(0755, root, urpmi) %dir /var/lib/urpmi
+%attr(4750, root, urpmi) /usr/bin/urpmi
+/usr/bin/urpmi_rpm-find-leaves
+/usr/bin/rpmf
+/usr/sbin/urpmi.*
+/usr/share/locale/*/LC_MESSAGES/urpmi.po
+%doc /usr/man/man*/urpmi*
+
+%files -n gurpmi
+%defattr(-,root,root)
+/usr/X11R6/bin/gurpmi
+
+%files -n autoirpm
+%defattr(-,root,root)
+%dir /var/lib/urpmi/autoirpm.scripts
+/etc/urpmi/autoirpm.deny
+/usr/sbin/autoirpm.*
+/usr/bin/_irpm
+%doc README-autoirpm-icons autoirpm.README