initial commit

This commit is contained in:
josch 2012-09-26 10:31:58 +02:00
parent aedc4f3892
commit fdeb568d77
8 changed files with 7102 additions and 0 deletions

61
README Normal file
View file

@ -0,0 +1,61 @@
Start with checking out portage as a git submodule
$ git submodule update --init
Then update your ./portdir with
$ ./update-portdir.sh
Optionally, you can refresh the content of reduced_gen_deps.list by running:
$ ./gentoo_dep_list.py
It writes all source packages with reduced build dependencies plus the build
dependencies that can be dropped to reduced_gen_deps.list. Execution takes
about 2.5 hours.
Create the file gen_source_pkgs.list by running:
$ ./gentoo_pkg_list_raw.sh
This file contains a list of all gentoo packages in your ./portdir
Once you have a filled reduced_gen_deps.list and gen_source_pkgs.list, check
that deb_source_pkgs.list contains all Debian source packages that you are
interested in.
The file deb2gen_mapping.list maps Debian packages to Gentoo packages.
To inspect missing mappings from Debian source packages to Gentoo packages,
run:
$ ./find_pkg_matches.py
It will print you a list of Debian packages that miss a mapping to Gentoo
packages as well as a list of suggestions of Gentoo packages that sound
similar.
Lets summarize the data files that are present by now:
portdir - database of ebuild files
* retrieved by ./update-portdir.sh
reduced_gen_deps.list - Gentoo packages with reduced dependencies
* generated by ./gentoo_dep_list.py
gen_source_pkgs.list - list of Gentoo source packages
* generated by ./gentoo_pkg_list_raw.sh
deb_source_pkgs.list - list of Debian source packages
* supplied by yourself
deb2gen_mapping.list - mapping of Debian to Gentoo packages
* created manually and/or with the help of
./find_pkg_matches.py
At this point, run the following script to get the list of Debian source
packages that can be mapped to Gentoo packages and also have dependencies that
can be dropped in Gentoo:
$ ./find_reduced.py
It will print:
- a list of Debian source packages with dependencies that can be dropped
- a list of Debian packages that cannot be mapped to Gentoo packages
- a list of Gentoo packages that cannot be mapped to Debian packages

654
deb2gen_mapping.list Normal file
View file

@ -0,0 +1,654 @@
cvsps dev-vcs/cvsps
chicken dev-scheme/chicken
wayland dev-libs/wayland
xmlstarlet app-text/xmlstarlet
source-highlight dev-util/source-highlight
jack-audio-connection-kit media-sound/jack-audio-connection-kit
lirc app-misc/lirc
webrtc-audio-processing media-libs/webrtc-audio-processing
cvs dev-vcs/cvs
datefudge app-misc/datefudge
linux-atm net-dialup/linux-atm
linuxdoc-tools app-text/linuxdoc-tools
usbutils sys-apps/usbutils
qjson dev-libs/qjson
wget net-misc/wget
pciutils sys-apps/pciutils
findlib dev-ml/findlib
libmcrypt dev-libs/libmcrypt
netcat net-analyzer/netcat
re2c dev-util/re2c
fftw sci-libs/fftw
gdb sys-devel/gdb
bridge-utils net-misc/bridge-utils
iptables net-firewall/iptables
pump net-misc/pump
desktop-file-utils dev-util/desktop-file-utils
sqlite dev-db/sqlite
rsync net-misc/rsync
ossp-uuid dev-libs/ossp-uuid
openjade app-text/openjade
pmake virtual/pmake
recode app-text/recode
transfig media-gfx/transfig
fam virtual/fam
indent dev-util/indent
hesiod net-dns/hesiod
cpufrequtils sys-power/cpufrequtils
libftdi dev-embedded/libftdi
libirman media-libs/libirman
a52dec media-libs/a52dec
faad2 media-libs/faad2
libmad media-libs/libmad
fuse sys-fs/fuse
bluez net-wireless/bluez
libverto dev-libs/libverto
net-tools sys-apps/net-tools
open-iscsi sys-block/open-iscsi
radvd net-misc/radvd
dnsmasq net-dns/dnsmasq
libnfnetlink net-libs/libnfnetlink
libyaml dev-libs/libyaml
cryptsetup sys-fs/cryptsetup
kmod sys-apps/kmod
cpio app-arch/cpio
klibc dev-libs/klibc
libev dev-libs/libev
gavl media-libs/gavl
wireless-tools net-wireless/wireless-tools
libevent dev-libs/libevent
lapack virtual/lapack
blas virtual/blas
psutils app-text/psutils
gsl sci-libs/gsl
check dev-libs/check
libpst net-mail/libpst
rarian app-text/rarian
help2man sys-apps/help2man
mksh app-shells/mksh
xmlto app-text/xmlto
cloog-ppl dev-libs/cloog-ppl
ppl dev-libs/ppl
libelf dev-libs/libelf
expect dev-tcltk/expect
autogen sys-devel/autogen
realpath app-misc/realpath
bc sys-devel/bc
fakeroot sys-apps/fakeroot
libibverbs sys-infiniband/libibverbs
openmpi sys-cluster/openmpi
torque sys-cluster/torque
flex sys-devel/flex
libdaemon dev-libs/libdaemon
ctdb dev-db/ctdb
time app-xemacs/time
chrpath app-admin/chrpath
sharutils app-arch/sharutils
libcdio dev-libs/libcdio
yasm dev-lang/yasm
subversion dev-vcs/subversion
dvipng app-text/dvipng
totem-pl-parser dev-libs/totem-pl-parser
evolution mail-client/evolution
upower sys-power/upower
gnome-panel gnome-base/gnome-panel
dia app-office/dia
mscgen media-gfx/mscgen
libprelude dev-libs/libprelude
rpm app-arch/rpm
libbsd dev-libs/libbsd
libedit dev-libs/libedit
openssh net-misc/openssh
gnome-menus gnome-base/gnome-menus
telepathy-glib net-libs/telepathy-glib
metacity x11-wm/metacity
augeas app-admin/augeas
libnl dev-libs/libnl
libpcap net-libs/libpcap
libvirt app-emulation/libvirt
netcf net-misc/netcf
numactl sys-process/numactl
xen app-emulation/xen
patchutils dev-util/patchutils
uw-imap net-mail/uw-imap
net-snmp net-analyzer/net-snmp
libaio dev-libs/libaio
xcb-util-image x11-libs/xcb-util-image
dbus-c++ dev-libs/dbus-c++
raptor media-libs/raptor
libdmx x11-libs/libdmx
zenity gnome-extra/zenity
samba net-fs/samba
talloc sys-libs/talloc
gpac media-video/gpac
serf net-libs/serf
freetds dev-db/freetds
attica kde-base/attica
cdparanoia media-sound/cdparanoia
exiv2 media-gfx/exiv2
libdbusmenu-qt dev-libs/libdbusmenu-qt
libutempter sys-libs/libutempter
libvisual media-libs/libvisual
phonon media-libs/phonon
redland dev-libs/redland
soprano dev-libs/soprano
strigi app-misc/strigi
xauth x11-apps/xauth
fastjar app-arch/fastjar
consolekit sys-auth/consolekit
bison sys-devel/bison
gperf dev-util/gperf
mhash app-crypt/mhash
rasqal dev-libs/rasqal
yajl dev-libs/yajl
libgee dev-libs/libgee
enca app-i18n/enca
exempi media-libs/exempi
libiptcdata media-libs/libiptcdata
tracker app-misc/tracker
pygtk dev-python/pygtk
libgsf gnome-extra/libgsf
imagemagick media-gfx/imagemagick
liblqr media-libs/liblqr
automoc dev-util/automoc
pcsc-lite sys-apps/pcsc-lite
c-ares net-dns/c-ares
ecore dev-libs/ecore
eet dev-libs/eet
eina dev-libs/eina
evas media-libs/evas
fribidi dev-libs/fribidi
libconfig dev-libs/libconfig
libiec61883 media-libs/libiec61883
blt dev-tcltk/blt
corosync sys-cluster/corosync
openais sys-cluster/openais
ocaml dev-lang/ocaml
doxygen app-doc/doxygen
audit sys-process/audit
xorg-server x11-base/xorg-server
atlas games-util/atlas
matplotlib dev-python/matplotlib
pycairo dev-python/pycairo
cairomm dev-cpp/cairomm
pangomm dev-cpp/pangomm
graphicsmagick media-gfx/graphicsmagick
libwmf media-libs/libwmf
nautilus gnome-base/nautilus
gcr app-crypt/gcr
gnome-keyring gnome-base/gnome-keyring
libcap-ng sys-libs/libcap-ng
libxkbfile x11-libs/libxkbfile
libgusb dev-libs/libgusb
libexif media-libs/libexif
libgphoto2 media-libs/libgphoto2
libieee1284 sys-libs/libieee1284
sane-backends media-gfx/sane-backends
dbus-python dev-python/dbus-python
pygobject dev-python/pygobject
gmime dev-libs/gmime
gnupg app-crypt/gnupg
libusb virtual/libusb
pth dev-libs/pth
libquvi media-libs/libquvi
libimobiledevice app-pda/libimobiledevice
libplist app-pda/libplist
usbmuxd app-pda/usbmuxd
gpm sys-libs/gpm
w3m virtual/w3m
libical dev-libs/libical
evolution-data-server gnome-extra/evolution-data-server
librsvg gnome-base/librsvg
libnotify x11-libs/libnotify
libgweather dev-libs/libgweather
libchamplain media-libs/libchamplain
libgdata dev-libs/libgdata
liboauth net-libs/liboauth
nspr dev-libs/nspr
nss dev-libs/nss
gsettings-desktop-schemas gnome-base/gsettings-desktop-schemas
aspell app-text/aspell
enchant app-text/enchant
geoclue app-misc/geoclue
gnome-online-accounts net-libs/gnome-online-accounts
hunspell app-text/hunspell
icu dev-libs/icu
mx x11-libs/mx
startup-notification x11-libs/startup-notification
xcb-util x11-libs/xcb-util
clutter-gtk media-libs/clutter-gtk
cogl media-libs/cogl
json-glib dev-libs/json-glib
libpciaccess x11-libs/libpciaccess
swi-prolog dev-lang/swi-prolog
audiofile media-libs/audiofile
libgnomecups net-print/libgnomecups
libgnomeprint gnome-base/libgnomeprint
libgnomeprintui gnome-base/libgnomeprintui
heimdal app-crypt/heimdal
glib-networking net-libs/glib-networking
libproxy net-libs/libproxy
jbig2dec media-libs/jbig2dec
qdbm dev-db/qdbm
gnome-disk-utility sys-apps/gnome-disk-utility
gvfs gnome-base/gvfs
libatasmart dev-libs/libatasmart
libbluray media-libs/libbluray
libbonobo gnome-base/libbonobo
libbonoboui gnome-base/libbonoboui
libcanberra media-libs/libcanberra
libgnome gnome-base/libgnome
libgnome-keyring gnome-base/libgnome-keyring
libgnomecanvas gnome-base/libgnomecanvas
libgnomeui gnome-base/libgnomeui
lvm2 sys-fs/lvm2
parted sys-block/parted
tdb sys-libs/tdb
udisks sys-fs/udisks
graphviz media-gfx/graphviz
ed sys-apps/ed
libpaper app-text/libpaper
luatex dev-tex/luatex
poppler app-text/poppler
highlight app-text/highlight
jade dev-java/jade
libxslt dev-libs/libxslt
opensp app-text/opensp
udev sys-fs/udev
git dev-vcs/git
gamin app-admin/gamin
gnome-vfs gnome-base/gnome-vfs
psmisc sys-process/psmisc
systemd sys-apps/systemd
colord x11-misc/colord
dbus-glib dev-libs/dbus-glib
gconf gnome-base/gconf
markupsafe dev-python/markupsafe
freeglut media-libs/freeglut
libdbi dev-db/libdbi
rrdtool net-analyzer/rrdtool
lcms media-libs/lcms
libmng media-libs/libmng
nas media-libs/nas
diffstat dev-util/diffstat
apr dev-libs/apr
apr-util dev-libs/apr-util
sqlite3 dev-ruby/sqlite3
cmake dev-util/cmake
curl net-misc/curl
libarchive app-arch/libarchive
libidn net-dns/libidn
libssh2 net-libs/libssh2
nettle dev-libs/nettle
openldap net-nds/openldap
openssl dev-libs/openssl
procps sys-process/procps
xmlrpc-c dev-libs/xmlrpc-c
m4 sys-devel/m4
file sys-apps/file
gettext sys-devel/gettext
groff sys-apps/groff
html2text dev-python/html2text
libcroco dev-libs/libcroco
libpipeline dev-libs/libpipeline
libunistring dev-libs/libunistring
man-db sys-apps/man-db
giflib media-libs/giflib
imlib2 media-libs/imlib2
libid3tag media-libs/libid3tag
libtool sys-devel/libtool
libsamplerate media-libs/libsamplerate
cairo x11-libs/cairo
cups net-print/cups
dirac media-video/dirac
expat dev-libs/expat
fontconfig media-libs/fontconfig
gdk-pixbuf x11-libs/gdk-pixbuf
gobject-introspection dev-libs/gobject-introspection
ilmbase media-libs/ilmbase
jasper media-libs/jasper
jbigkit media-libs/jbigkit
keyutils sys-apps/keyutils
krb5 virtual/krb5
lame media-sound/lame
libav media-video/libav
libfontenc x11-libs/libfontenc
libraw1394 sys-libs/libraw1394
libtheora media-libs/libtheora
libusbx dev-libs/libusbx
libvpx media-libs/libvpx
libxml2 dev-libs/libxml2
opencore-amr media-libs/opencore-amr
opencv media-libs/opencv
openexr media-libs/openexr
openjpeg media-libs/openjpeg
orc dev-lang/orc
pixman x11-libs/pixman
schroedinger media-libs/schroedinger
shared-mime-info x11-misc/shared-mime-info
speex media-libs/speex
tbb dev-cpp/tbb
v4l-utils media-tv/v4l-utils
vo-aacenc media-libs/vo-aacenc
vo-amrwbenc media-libs/vo-amrwbenc
x264 media-libs/x264
libgpg-error dev-libs/libgpg-error
p11-kit app-crypt/p11-kit
rtmpdump media-video/rtmpdump
alsa-lib media-libs/alsa-lib
avahi net-dns/avahi
dbus sys-apps/dbus
elfutils dev-libs/elfutils
flac media-libs/flac
freetype media-libs/freetype
json-c dev-libs/json-c
libasyncns net-libs/libasyncns
libcaca media-libs/libcaca
libffi virtual/libffi
libogg media-libs/libogg
libpng media-libs/libpng
libsndfile media-libs/libsndfile
libvorbis media-libs/libvorbis
pkg-config dev-ruby/pkg-config
popt dev-libs/popt
pulseaudio media-sound/pulseaudio
tcp-wrappers sys-apps/tcp-wrappers
tslib x11-libs/tslib
libdrm x11-libs/libdrm
libva x11-libs/libva
mesa media-libs/mesa
libvdpau x11-libs/libvdpau
libpthread-stubs dev-libs/libpthread-stubs
libxcb x11-libs/libxcb
frei0r media-plugins/frei0r-plugins
faketime sys-libs/libfaketime
netkit-telnet net-misc/netkit-telnetd
iproute sys-apps/iproute2
python-imaging dev-python/imaging
llvm-2.9 sys-devel/llvm
stunnel4 net-misc/stunnel
firebird2.5 dev-db/firebird
id3lib3.8.3 media-libs/id3lib
libdbd-sqlite3-perl dev-perl/DBD-SQLite
libnl3 dev-libs/libnl
ruby1.9.1 dev-lang/ruby
ruby1.8 dev-lang/ruby
openjade1.3 app-text/openjade
boost1.49 dev-libs/boost
unixodbc dev-db/unixODBC
swig2.0 dev-lang/swig
fftw3 sci-libs/fftw
jinja2 dev-python/jinja
polkit-qt-1 sys-auth/polkit-qt
libwnck3 x11-libs/libwnck
libdbd-mysql-perl dev-perl/DBD-mysql
libgtop2 gnome-base/libgtop
neon27 net-libs/neon
gtkmm2.4 dev-cpp/gtkmm
python-numpy dev-python/numpy
atkmm1.6 dev-cpp/atkmm
glibmm2.4 dev-cpp/glibmm
libsigc++-2.0 dev-libs/libsigc++
vala-0.14 dev-lang/vala
libunique3 dev-libs/libunique
pygobject-2 dev-python/pygobject
gpgme1.0 app-crypt/gpgme
gtkhtml4.0 gnome-extra/gtkhtml
libsoup2.4 net-libs/libsoup
ghostscript app-text/ghostscript-gpl
php5 dev-lang/php
libglade2 dev-util/glade
policykit-1 sec-policy/selinux-policykit
libxaw x11-libs/libXaw
lua5.1 dev-lang/lua
gtk+3.0 x11-libs/gtk+
lcms2 media-libs/lcms
libxmu x11-libs/libXmu
gst-plugins-base0.10 media-libs/gst-plugins-base
gstreamer0.10 media-libs/gstreamer
libxxf86vm x11-libs/libXxf86vm
python2.6 dev-lang/python
python3.2 dev-lang/python
python2.7 dev-lang/python
mysql-5.5 dev-db/mysql
atk1.0 dev-libs/atk
libdc1394-22 media-libs/libdc1394
libgsm app-mobilephone/gsmlib
tiff3 media-libs/tiff
xft x11-libs/libXft
gnutls26 net-libs/gnutls
libgcrypt11 dev-libs/libgcrypt
libtasn1-3 dev-libs/libtasn1
directfb dev-libs/DirectFB
libxi x11-libs/libXi
libxtst x11-libs/libXtst
libxfixes x11-libs/libXfixes
libxau x11-libs/libXau
libxdmcp x11-libs/libXdmcp
libxext x11-libs/libXext
libxv x11-libs/libXv
libxvmc x11-libs/libXvMC
vala-0.16 dev-lang/vala
gcc-4.6 sys-devel/gcc
readline5 sys-libs/readline
guile-1.8 dev-scheme/guile
python-qt4 dev-python/PyQt4
sip4 dev-python/sip
apache2 www-servers/apache
libiodbc2 dev-db/libiodbc
qca2 app-crypt/qca
ecj dev-java/ecj-gcj
gcj-4.7 dev-java/gcj-jdk
libxres x11-libs/libXres
libxp x11-libs/libXp
tk8.4 dev-lang/tk
tk8.5 dev-lang/tk
gnome-desktop3 gnome-base/gnome-desktop
clutter-1.0 x11-misc/unclutter
libidl dev-libs/libIDL
libxxf86dga x11-libs/libXxf86dga
libgd2 media-libs/gd
libnet-ssleay-perl dev-perl/Net-SSLeay
libxml-parser-perl dev-perl/XML-Parser
libxt x11-libs/libXt
gtk+2.0 x11-libs/gtk+
libxcomposite x11-libs/libXcomposite
libxcursor x11-libs/libXcursor
libxdamage x11-libs/libXdamage
libxfont x11-libs/libXfont
libxinerama x11-libs/libXinerama
libxrandr x11-libs/libXrandr
raptor2 media-libs/raptor
librest net-libs/rest
libxpm x11-libs/libXpm
postgresql-9.1 dev-db/postgresql-server
cyrus-sasl2 dev-libs/cyrus-sasl
libxrender x11-libs/libXrender
pango1.0 x11-libs/pango
libice x11-libs/libICE
libsm x11-libs/libSM
libx11 x11-libs/libX11
libsdl1.2 media-libs/libsdl
iceweasel www-client/firefox
djvulibre app-text/djvu
lm-sensors sys-apps/lm_sensors
lynx-cur www-client/lynx
dwarves dev-util/dwarves
xvidcore media-libs/xvid
texlive-bin app-text/texlive
mm dev-libs/mm
zlib sys-libs/zlib
docbook app-text/docbook-sgml-dtd
ufraw media-gfx/ufraw
xinetd sys-apps/xinetd
libosinfo sys-libs/libosinfo
sgml-base app-text/sgml-common
autotrace media-gfx/autotrace
glpk sci-mathematics/glpk
libxinerama x11-proto/xineramaproto
aalib media-libs/aalib
spe sys-libs/libspe2
slurm sys-cluster/slurm
taglib media-libs/taglib
gtk-doc dev-util/gtk-doc
unzip app-arch/unzip
xz-utils app-arch/xz-utils
orbit2 gnome-base/orbit
xcolors dev-tex/xcolor
db sys-libs/db
libcap2 sys-libs/libcap
portaudio media-libs/portaudio
zip app-arch/zip
obex-data-server app-mobilephone/obex-data-server
pygments dev-python/pygments
devil media-libs/devil
libcue media-libs/libcue
postgresql-9.1 dev-db/postgresql-base
librdmacm sys-infiniband/librdmacm
twisted dev-python/twisted
twisted-web dev-python/twisted-web
mono dev-lang/mono
nasm dev-lang/nasm
eigen2 dev-cpp/eigen
libksba dev-libs/libksba
xdg-utils x11-misc/xdg-utils
tcl8.5 dev-lang/tcl
gts sci-libs/gts
acl sys-apps/acl
acl2 sys-apps/acl
libgrss net-libs/libgrss
munge sys-auth/munge
xen-tools app-emulation/xen-tools
libxml-regexp-perl dev-perl/XML-RegExp
libfrontier-rpc-perl dev-perl/frontier-rpc
network-manager net-misc/networkmanager
docbook-dsssl app-text/docbook-dsssl-stylesheets
hyperestraier app-text/hyperestraier
metalink media-libs/libmetalink
ca-certificates app-misc/ca-certificates
cppunit dev-util/cppunit
libotf dev-libs/libotf
libwebp media-libs/libwebp
gdbm sys-libs/gdbm
clucene-core dev-cpp/clucene
webkit net-libs/webkit-gtk
xine-lib media-libs/xine-lib
ant dev-java/ant-core
svgalib media-libs/svgalib
libassuan dev-libs/libassuan
mako dev-python/mako
nose dev-python/nose
texlive-extra dev-texlive/texlive-latexextra
glib2.0 dev-libs/glib
pm-utils sys-power/pm-utils
eglibc sys-libs/glibc
krb5 app-crypt/mit-krb5
nfs-utils net-fs/nfs-utils
ttf-freefont media-fonts/freefont-ttf
libsoup2.4 net-libs/libsoup-gnome
x11proto-xf86dri x11-proto/xf86driproto
dejagnu dev-util/dejagnu
tidy app-text/htmltidy
epydoc dev-python/epydoc
x11proto-damage x11-proto/damageproto
texi2html app-text/texi2html
ftgl media-libs/ftgl
binutils sys-devel/binutils
x11proto-dri2 x11-proto/dri2proto
texinfo sys-apps/texinfo
cifs-utils net-fs/cifs-utils
gtk-sharp2 dev-dotnet/gtk-sharp
asciidoc app-text/asciidoc
libxml-dom-perl dev-perl/XML-DOM
bzip2 app-arch/bzip2
polarssl net-libs/polarssl
libselinux sys-libs/libselinux
gjs dev-libs/gjs
lasi media-libs/lasi
slang2 sys-libs/slang
ebtables net-firewall/ebtables
qtzeitgeist dev-libs/libqzeitgeist
clutter-1.0 media-libs/clutter
pytest dev-python/pytest
libnetfilter-conntrack net-libs/libnetfilter_conntrack
x11proto-scrnsaver x11-libs/libXScrnSaver
diffutils sys-apps/diffutils
e2fsprogs sys-libs/e2fsprogs-libs
ipython dev-python/ipython
lcdf-typetools app-text/lcdf-typetools
attr sys-apps/attr
docbook-xsl app-text/docbook-xsl-stylesheets
t1lib media-libs/t1lib
util-linux sys-apps/util-linux
gmp dev-libs/gmp
openafs net-fs/openafs
x11proto-dmx x11-proto/dmxproto
sphinx dev-python/sphinx
openslp-dfsg net-libs/openslp
gpsd sci-geosciences/gpsd
mpfr4 dev-libs/mpfr
lksctp-tools net-misc/lksctp-tools
xmltex dev-tex/xmltex
dapl sys-infiniband/dapl
openmx sys-cluster/open-mx
log4cxx dev-libs/log4cxx
adns net-libs/adns
systemtap dev-util/systemtap
libart-lgpl media-libs/libart_lgpl
xlwt dev-python/xlwt
connman net-misc/connman
ncurses sys-libs/ncurses
cython dev-python/cython
libglade2 gnome-base/libglade
x11proto-xext x11-proto/xextproto
pcre3 dev-libs/libpcre
rtkit sys-auth/rtkit
lcov dev-util/lcov
findutils sys-apps/findutils
python-babel dev-python/Babel
perl dev-lang/perl
dante net-proxy/dante
junit dev-java/junit
x11proto-xf86vidmode x11-proto/xf86vidmodeproto
qrencode media-gfx/qrencode
qt4-x11 x11-libs/qt-xmlpatterns
linux sys-kernel/linux-headers
paxctl sys-apps/paxctl
x11proto-input x11-proto/inputproto
texlive-base dev-texlive/texlive-latexrecommended
qt4-x11 x11-libs/qt-opengl
at-spi2-core app-accessibility/at-spi2-core
libonig dev-libs/oniguruma
openresolv net-dns/openresolv
distribute dev-python/setuptools
v4l-utils media-libs/libv4l
qt4-x11 x11-libs/qt-sql
redhat-cluster sys-cluster/libdlm
qt4-x11 x11-libs/qt-gui
qt4-x11 x11-libs/qt-webkit
gtk-sharp2 dev-dotnet/gtk-sharp-gapi
ppp net-dialup/ppp
dhcpcd net-misc/dhcpcd
docbook-utils app-text/docbook-sgml-utils
madwimax net-wireless/wimax
texlive-base dev-texlive/texlive-fontsrecommended
qt4-x11 x11-libs/qt-core
gupnp-dlna media-libs/gupnp-dlna
x11proto-render x11-proto/renderproto
mono virtual/monodoc
kde4libs kde-base/kdelibs
qt4-x11 x11-libs/qt-assistant
qt4-x11 x11-libs/qt-declarative
redhat-cluster sys-cluster/cman
qt4-x11 x11-libs/qt-svg
qt4-x11 x11-libs/qt-dbus
wxwidgets2.8 x11-libs/wxGTK
mpi-defaults sys-cluster/openmpi
x11-xkb-utils x11-apps/xkbutils
qt-assistant-compat x11-libs/qt-assistant
py3cairo dev-python/pycairo
dwarves-dfsg dev-util/dwarves
phonon-backend-gstreamer media-libs/phonon-gstreamer
qtwebkit x11-libs/qt-webkit
jackd2 media-sound/jack
boost-defaults dev-libs/boost

46
find_pkg_matches.py Executable file
View file

@ -0,0 +1,46 @@
#!/usr/bin/env python
import sys
deb2gen = dict()
gen2deb = dict()
with open("./deb2gen_mapping.list") as f:
for line in f:
d, g = line.strip().split('\t')
deb2gen[d] = g
gen2deb[g] = d
with open("./deb_source_pkgs.list") as f:
debian_names = [p[4:].strip() for p in f]
with open("./gen_source_pkgs.list") as f:
gentoo_names = [p.strip() for p in f]
for p in debian_names:
# if mapping exists, continue
orig = p
if deb2gen.get(p):
continue
# first try exact match
matches = [g for g in gentoo_names if p == g.split('/')[-1]]
if matches:
print "%s\t%s"%(orig, matches[0])
continue
# then try substring matches
# remove '-perl' prefix
if p.endswith("-perl"):
p = p[:-5]
# remove 'python-' suffix
if p.startswith("python-"):
p = p[7:]
# remove 'lib' suffix
if p.startswith("lib"):
p = p[3:]
# remove dashes, dots and numbers from the end of the package name
p = p.rstrip(".-1234567890")
matches = [g for g in gentoo_names if p in g.split('/')[-1].lower()]
if matches:
print "%s\t%s"%(orig, str(matches))
continue
# we give up and print the debian source package name that was not matched
print orig

54
find_reduced.py Executable file
View file

@ -0,0 +1,54 @@
#!/usr/bin/env python
import sys
from os import path
pym_path = path.join(path.dirname(path.realpath(__file__)), "portage", "pym")
sys.path.insert(0, pym_path)
from portage.versions import pkgsplit
if len(sys.argv) != 4:
print "usage: %s pkg_mapping debian_names gentoo_deps"%sys.argv[0]
exit(1)
deb2gen = dict()
gen2deb = dict()
with open(sys.argv[1]) as f:
for line in f:
d, g = line.strip().split('\t')
deb2gen[d] = g
gen2deb[g] = d
with open(sys.argv[2]) as f:
debian_names = [p[4:].strip() for p in f]
gentoo_deps = dict()
with open(sys.argv[3]) as f:
for line in f:
p = line.strip().split()
gentoo_deps[pkgsplit(p[1])[0]] = p[2:]
missing_deb_mappings = list()
missing_gen_mappings = list()
for d in debian_names:
g = deb2gen.get(d)
if g:
deps = gentoo_deps.get(g)
if deps:
ddeps = []
for p in deps:
r = gen2deb.get(p)
if r:
ddeps.append(r)
else:
missing_gen_mappings.append(p)
ddeps = list(set(ddeps))
if ddeps:
print d, ddeps
else:
missing_deb_mappings.append(d)
print list(set(missing_deb_mappings))
print list(set(missing_gen_mappings))

96
gentoo_dep_list.py Executable file
View file

@ -0,0 +1,96 @@
#!/usr/bin/env python
import sys
import os
from os import path
from subprocess import Popen, PIPE
from functools import cmp_to_key
from datetime import datetime
pym_path = path.join(path.dirname(path.realpath(__file__)), "portage", "pym")
sys.path.insert(0, pym_path)
from portage.versions import pkgcmp, pkgsplit
from portage.dep import use_reduce, Atom
from portage.exception import InvalidAtom
def format_timedelta(delta):
secs = delta.days*60*60*24+delta.seconds
hours = secs/3600
minutes = (secs%3600)/60
return "%02d:%02d"%(hours, minutes)
def estimate_remaining_time(before, count, i):
now = datetime.now()
delta = now-before
# delta in seconds
delta = delta.days*60*60*24+delta.seconds
if delta == 0:
return "n.a."
speed = float(i)/delta
remaining = (count - i)/speed
remaining_hours = remaining/3600
remaining_minutes = (remaining%3600)/60
return "%02d:%02d"%(remaining_hours, remaining_minutes)
portdir = "./portdir"
pkgnames = list()
for cat in os.listdir(portdir):
catpath = os.path.join(portdir, cat)
if not os.path.isdir(catpath):
continue
for pkg in os.listdir(catpath):
pkgpath = os.path.join(catpath, pkg)
if not os.path.isdir(pkgpath):
continue
pkgs = [pkgsplit(ver[:-7]) for ver in os.listdir(pkgpath) if ver.endswith(".ebuild")]
if len(pkgs) > 0:
# only grab newest package
pkg, ver, rev = sorted(pkgs, key=cmp_to_key(pkgcmp), reverse=True)[0]
if rev == "r0":
pkgname = "%s/%s-%s"%(cat, pkg, ver)
else:
pkgname = "%s/%s-%s-%s"%(cat, pkg, ver, rev)
pkgnames.append(pkgname)
sys.stderr.write("\rGenerating list of packages... %d"%len(pkgnames))
sys.stderr.write("\rGenerating list of packages... Done.\n")
count = 0
deplist = open("./out", "wb")
before = datetime.now()
for i, pkgname in enumerate(pkgnames):
p = Popen(["./portage/bin/portageq", "metadata", "/", "ebuild", pkgname, "DEPEND"], stderr=PIPE, stdout=PIPE, env={"PORTDIR": portdir})
r = p.communicate()
if p.returncode != 0:
sys.stderr.write("cannot parse %s. Output: %s\n"%(pkgname, r[1]))
depend = r[0]
all_use = use_reduce(depend, matchall=True)
no_use = use_reduce(depend, matchnone=True)
# cannot use sets because of possible sublists which are not hashable
l = []
for a in all_use:
# FIXME: do not discard disjunctions
if a not in no_use and a != "||" and not isinstance(a, list):
try:
l.append(Atom(a).cp)
except InvalidAtom:
sys.stderr.write("Invalid Atom for %s: %s\n"%(pkgname, str(a)))
except TypeError:
sys.stderr.write("TypeError for %s: %s\n"%(pkgname, str(a)))
if len(l) > 0:
deplist.write("%s %s\n"%(pkgname, " ".join(l)))
count +=1
sys.stderr.write("\rFinding reduced dependencies: %d/%d, found %d. Estimated time left: %s h"%(i, len(pkgnames), count, estimate_remaining_time(before, len(pkgnames), i)))
sys.stdout.flush()
sys.stderr.write("\rFinding reduced dependencies: %d/%d, found %d. Estimated time left: %s h\n"%(i, len(pkgnames), count, estimate_remaining_time(before, len(pkgnames), i)))
sys.stderr.write("Done. Took %s h\n"%format_timedelta(datetime.now()-before))

5
gentoo_pkg_list_raw.sh Executable file
View file

@ -0,0 +1,5 @@
#!/bin/bash
for f in `find "./portdir/" -mindepth 2 -maxdepth 2 -type d`; do
echo ${f#./portdir/}
done > gen_source_pkgs.list

6165
reduced_gen_deps.list Normal file

File diff suppressed because it is too large Load diff

21
update-portdir.sh Executable file
View file

@ -0,0 +1,21 @@
#!/bin/bash
. "./portage/cnf/make.globals"
# needs around 709 MB free
PORTAGE_TMPDIR=`readlink -f "./portage_tmp"`
PORTDIR=`readlink -f "./portdir"`
mkdir -p "$PORTAGE_TMPDIR"
mkdir -p "$PORTDIR"
export DISTDIR EPREFIX FEATURES \
FETCHCOMMAND GENTOO_MIRRORS \
PORTAGE_BIN_PATH PORTAGE_CONFIGROOT PORTAGE_GPG_DIR \
PORTAGE_NICENESS PORTAGE_RSYNC_EXTRA_OPTS \
PORTAGE_RSYNC_OPTS PORTAGE_TMPDIR PORTDIR \
SYNC USERLAND http_proxy
"./portage/bin/emerge-webrsync"
rm -r "$PORTAGE_TMPDIR"