diff options
-rwxr-xr-x | bin/reproducible_build.sh | 20 | ||||
-rw-r--r-- | bin/reproducible_candidates.sh | 2 | ||||
-rw-r--r-- | job-cfg/reproducible.yaml | 156 |
3 files changed, 33 insertions, 145 deletions
diff --git a/bin/reproducible_build.sh b/bin/reproducible_build.sh index b9c878f0..4ffb6004 100755 --- a/bin/reproducible_build.sh +++ b/bin/reproducible_build.sh @@ -66,8 +66,24 @@ if [[ $1 =~ ^-?[0-9]+$ ]] ; then sqlite3 -init $INIT ${PACKAGES_DB} "REPLACE INTO source_stats VALUES (\"sid\", \"${P_IN_SOURCES}\")" rm $TMPFILE else - PACKAGES="$@" - AMOUNT="${#@}" + # CANDIDATES is defined in that file + . /srv/jenkins/bin/reproducible-candidates.sh + PACKAGES="" + AMOUNT="10" + REAL_AMOUNT=0 + for i in $(seq 0 ${#CANDIDATES[@]}) ; do + if [ $REAL_AMOUNT -eq $AMOUNT ] ; then + continue + fi + PKG=${CANDIDATES[$i]} + RESULT=$(sqlite3 ${PACKAGES_DB} "SELECT name FROM source_packages WHERE name = \"${PKG}\"") + if [ "$RESULT" = "" ] ; then + PACKAGES="${PACKAGES} $PKG" + let "REAL_AMOUNT=REAL_AMOUNT+1" + fi + done + AMOUNT=$REAL_AMOUNT + fi echo "=============================================================================" echo "The following $AMOUNT source packages will be build: ${PACKAGES}" diff --git a/bin/reproducible_candidates.sh b/bin/reproducible_candidates.sh new file mode 100644 index 00000000..4923d800 --- /dev/null +++ b/bin/reproducible_candidates.sh @@ -0,0 +1,2 @@ +# to be sourced by reproducible_build.sh +CANDIDATES=(acl adduser attr audit base-files base-passwd bash binutils bsdmainutils bzip2 cdebconf cloog coreutils cryptsetup dash db5.3 dbus debconf debhelper debianutils dh-buildinfo diffutils dpkg e2fsprogs eglibc file findutils gcc-4.9 gcc-defaults gdbm gettext glib2.0 glibc gmp grep groff gzip hostname init-system-helpers insserv intltool-debian isl kmod libcap2 libcroco libffi libgcrypt11 libgcrypt20 libgpg-error libintl-perl libpipeline libselinux libsemanage libsepol libtext-unidecode-perl libtimedate-perl libunistring libxml2 libxml-libxml-perl libxml-namespacesupport-perl libxml-sax-base-perl libxml-sax-perl linux lsb lvm2 make-dfsg man-db mawk mpclib3 mpfr4 ncurses pam patch pcre3 perl po-debconf procps sed sensible-utils shadow startpar systemd sysvinit tar tcp-wrappers texinfo tzdata ucf ustr util-linux xz-utils zlib cdbs eglibc gcc-defaults devscripts python-defaults python3-defaults ruby-defaults ruby2.1 ghc php5 tcl asciidoc ant maven maven2 lintian pbuilder piuparts schroot fakeroot sbuild cowbuilder git subversion bzr android-tools android-platform-system-core android-platform-build android-platform-frameworks-native fdroidserver abiword alacarte avahi calligra cheese chromium-browser gobby-0.5 cups-pk-helper desktop-base emacs23 emacs24 vim joe nano emacs-defaults evince evolution galculator gedit-plugins gimp gnumeric gpicview gst-libav1.0 gst-plugins-ugly1.0 hamster-applet iceweasel inkscape irssi leafpad libgtk2-perl mplayer2 screen mutt marble network-manager obconf orage pidgin rhythmbox rygel seahorse shotwell simple-scan sound-juicer tango-icon-theme telepathy-gabble telepathy-rakia telepathy-salut texlive-base tomboy totem tracker transmission udisks2 upower vim vinagre virt-manager vlc wine xarchiver xdg-user-dirs-gtk virtualbox wpasupplicant wicd gdm3 gnome-color-manager gnome-documents gnome-main-menu gnome-media gnome-nettool gnome-orca gnome-shell-extensions gnome-tweak-tool meta-gnome3 nautilus kdeartwork kde-baseapps kde-l10n kdepim kdeplasma-addons kde-runtime kdewebdev kde-workspace meta-kde gtk2-engines-xfce libxfce4ui thunar thunar-volman xfce4 xfce4-appfinder xfce4-mixer xfce4-notifyd xfce4-panel xfce4-power-manager xfce4-session xfce4-settings xfconf xfdesktop4 lxappearance lxde-icon-theme lxde-metapackages lxinput lxrandr lxsession libfm lxterminal mate-applets mate-backgrounds mate-common mate-control-center mate-desktop mate-desktop-environment mate-icon-theme mate-icon-theme-faenza mate-indicator-applet mate-media mate-menus mate-netbook mate-netspeed mate-notification-daemon mate-panel mate-polkit mate-power-manager mate-screensaver mate-sensors-applet mate-session-manager mate-settings-daemon mate-system-monitor mate-terminal mate-themes mate-user-share mate-utils cinnamon cinnamon-control-center cinnamon-desktop cinnamon-desktop-environment cinnamon-screensaver cinnamon-session cinnamon-settings-daemon cinnamon-translations libreoffice libglu mesa x11-apps x11-session-utils x11-utils x11-xfs-utils x11-xkb-utils x11-xserver-utils xauth xfonts-100dpi xfonts-75dpi xfonts-base xfonts-scalable xfonts-utils xinit xkeyboard-config xorg xorg-docs xorg-server xserver-xorg-input-evdev xterm x-terminal-emulator glx-alternatives fglrx-driver xserver-xorg-video-nouveau xf86-input-mtrack xf86-input-multitouch xf86-input-wacom xserver-xorg-input-acecad xserver-xorg-input-aiptek xserver-xorg-input-elographics xserver-xorg-input-joystick xserver-xorg-input-keyboard xserver-xorg-input-mouse xserver-xorg-input-mutouch xserver-xorg-input-vmmouse xserver-xorg-input-void xf86-video-glamo xserver-xorg-video-ati xserver-xorg-video-cirrus xserver-xorg-video-dummy xserver-xorg-video-fbdev xserver-xorg-video-glide xserver-xorg-video-intel xserver-xorg-video-ivtvdev xserver-xorg-video-mach64 xserver-xorg-video-mga xserver-xorg-video-modesetting xserver-xorg-video-neomagic xserver-xorg-video-openchrome xserver-xorg-video-qxl xserver-xorg-video-r128 xserver-xorg-video-savage xserver-xorg-video-siliconmotion xserver-xorg-video-sisusb xserver-xorg-video-tdfx xserver-xorg-video-trident xserver-xorg-video-vesa xserver-xorg-video-vmware xpra aterm mlterm mrxvt putty roxterm rxvt rxvt-unicode terminal.app apache2 asterisk bind9 courier icinga icinga2 lighttpd munin mysql-5.5 nginx postfix exim4 sendmail postgresql-9.4 squid squid3 roundcube openssh rsync nfs-utils bitlbee dropbear puppet cfengine2 ansible fai salt aircrack-ng apparmor apparmor-profiles-extra assword bilibop corkscrew cryptsetup debian-archive-keyring debian-security-support dmsetup flashproxy gnome-keyring gnunet gnunet-fuse gnunet-gtk gnupg gnupg2 gnutls28 haveged https-everywhere iodine irssi-plugin-otr keepassx libotr macchanger macchanger mat monkeysign monkeysphere mozilla-noscript msva-perl mumble nautilus-wipe obfs4proxy obfsproxy onioncat onionshare openssl openvpn parcimonie pidgin-otr pinentry privoxy pwgen python-pyptlib python-stem python-torctl python-txtorcon seahorse-nautilus secure-delete signing-party tcpdump tlsdate tor tor-arm torbrowser-launcher torsocks vidalia wireshark anna apt-setup arcboot-installer base-installer bterm-unifont busybox cdebconf-entropy cdebconf-terminal cdebconf cdrom-checker cdrom-detect cdrom-retriever choose-mirror clock-setup console-setup debian-installer-launcher debian-installer-netboot-images debian-installer-utils debian-installer debootstrap dh-di efi-reader elilo-installer finish-install flash-kernel grub-installer hw-detect installation-locale installation-report iso-scan kbd-chooser kernel-wedge kickseed libdebian-installer lilo-installer live-installer localechooser lowmem lvmcfg main-menu mdcfg media-retriever mklibs mountmedia net-retriever netcfg network-console nobootloader oldsys-preseed os-prober partconf partitioner partman-auto-crypto partman-auto-lvm partman-auto-raid partman-auto partman-base partman-basicfilesystems partman-basicmethods partman-btrfs partman-crypto partman-efi partman-ext3 partman-iscsi partman-jfs partman-lvm partman-md partman-multipath partman-nbd partman-newworld partman-partitioning partman-prep partman-target partman-ufs partman-xfs partman-zfs pkgsel prep-installer preseed quik-installer rescue rootskel-gtk rootskel s390-dasd s390-netdevice s390-sysconfig-writer sibyl-installer silo-installer tzsetup udpkg usb-discover user-setup userdevfs win32-loader yaboot-installer zipl-installer) diff --git a/job-cfg/reproducible.yaml b/job-cfg/reproducible.yaml index 8a645c6d..4a436b6d 100644 --- a/job-cfg/reproducible.yaml +++ b/job-cfg/reproducible.yaml @@ -26,14 +26,14 @@ option: category categories: - reproducible - description: '{my_description}{my_packages}<br>Job configuration source is <a href="http://anonscm.debian.org/cgit/qa/jenkins.debian.net.git/tree/job-cfg/reproducible.yaml">reproducible.yaml</a>.' + description: '{my_description}<br>Job configuration source is <a href="http://anonscm.debian.org/cgit/qa/jenkins.debian.net.git/tree/job-cfg/reproducible.yaml">reproducible.yaml</a>.' logrotate: daysToKeep: 365 numToKeep: 20 artifactDaysToKeep: -1 artifactNumToKeep: -1 builders: - - shell: '{my_shell} {my_packages}' + - shell: '{my_shell} {my_param}' publishers: - email: recipients: 'jenkins+debian-reproducible holger@layer-acht.org' @@ -66,7 +66,7 @@ url: http://www.profitbricks.com text: Sponsored by Profitbricks icon: /userContent/images/profitbricks-24x24.png - description: '{my_description}{my_packages}<br>Job configuration source is <a href="http://anonscm.debian.org/cgit/qa/jenkins.debian.net.git/tree/job-cfg/reproducible.yaml">reproducible.yaml</a>.' + description: '{my_description}<br>Job configuration source is <a href="http://anonscm.debian.org/cgit/qa/jenkins.debian.net.git/tree/job-cfg/reproducible.yaml">reproducible.yaml</a>.' logrotate: daysToKeep: 365 numToKeep: 20 @@ -96,7 +96,7 @@ url: http://www.profitbricks.com text: Sponsored by Profitbricks icon: /userContent/images/profitbricks-24x24.png - description: '{my_description}{my_packages}<br>Job configuration source is <a href="http://anonscm.debian.org/cgit/qa/jenkins.debian.net.git/tree/job-cfg/reproducible.yaml">reproducible.yaml</a>.' + description: '{my_description}<br>Job configuration source is <a href="http://anonscm.debian.org/cgit/qa/jenkins.debian.net.git/tree/job-cfg/reproducible.yaml">reproducible.yaml</a>.' logrotate: daysToKeep: 365 numToKeep: 20 @@ -123,10 +123,6 @@ - job-template: defaults: reproducible - name: '{name}_build_test_reproducibility' - -- job-template: - defaults: reproducible name: '{name}_build_random_packages' - job-template: @@ -135,59 +131,7 @@ - job-template: defaults: reproducible - name: '{name}_build_core' - -- job-template: - defaults: reproducible - name: '{name}_build_build-tools' - -- job-template: - defaults: reproducible - name: '{name}_build_desktop_apps' - -- job-template: - defaults: reproducible - name: '{name}_build_gnome' - -- job-template: - defaults: reproducible - name: '{name}_build_kde' - -- job-template: - defaults: reproducible - name: '{name}_build_xfce' - -- job-template: - defaults: reproducible - name: '{name}_build_lxde' - -- job-template: - defaults: reproducible - name: '{name}_build_mate' - -- job-template: - defaults: reproducible - name: '{name}_build_cinnamon' - -- job-template: - defaults: reproducible - name: '{name}_build_libreoffice' - -- job-template: - defaults: reproducible - name: '{name}_build_xorg' - -- job-template: - defaults: reproducible - name: '{name}_build_server' - -- job-template: - defaults: reproducible - name: '{name}_build_security-privacy' - -- job-template: - defaults: reproducible - name: '{name}_build_d-i' + name: '{name}_build_candidates' - project: name: reproducible @@ -196,99 +140,25 @@ my_description: 'Setup pbuilder for reproducible builds as described in https://wiki.debian.org/ReproducibleBuilds#Usage_example' my_timed: '42 0 * * *' my_shell: '/srv/jenkins/bin/reproducible_setup.sh' - my_packages: '' + my_param: '' - '{name}_stats': my_description: 'Reproducible builds statistics' my_timed: '0 0 * * *' my_shell: '/srv/jenkins/bin/reproducible_stats.sh' - my_packages: '' + my_param: '' - '{name}_build_random_packages': my_description: 'Reproducible build this many random packages each day:' my_timed: '0,15,30,45 * * * *' my_shell: '/srv/jenkins/bin/reproducible_build.sh' - my_packages: '10' + my_param: '10' - '{name}_build_random_failures': my_description: 'Try to reproducible build 33 packages which failed before and which come from the random job:' my_timed: '42 2,14 * * *' my_shell: '/srv/jenkins/bin/reproducible_build.sh' - my_packages: '0' - - '{name}_build_test_reproducibility': - my_description: 'Reproducible build of a few packages, some we know will succeed and some we know which "should" fail: ' - my_timed: '' - my_shell: '/srv/jenkins/bin/reproducible_build.sh' - my_packages: 'lsb ucf lsof' - - '{name}_build_core': - my_description: 'Reproducible build of all the core packages as defined by UDD as described in https://wiki.debian.org/ReproducibleBuilds so these: ' - my_timed: '42 5 1,16 * *' + my_param: '0' + - '{name}_build_candidates': + my_description: 'Reproducible build packages from a list of pre-defined candidates: ' + my_timed: '40,15,30,45 3,9,15,21 * * *' my_shell: '/srv/jenkins/bin/reproducible_build.sh' - my_packages: 'acl adduser attr audit base-files base-passwd bash binutils bsdmainutils bzip2 cdebconf cloog coreutils cryptsetup dash db5.3 dbus debconf debhelper debianutils dh-buildinfo diffutils dpkg e2fsprogs eglibc file findutils gcc-4.9 gcc-defaults gdbm gettext glib2.0 glibc gmp grep groff gzip hostname init-system-helpers insserv intltool-debian isl kmod libcap2 libcroco libffi libgcrypt11 libgcrypt20 libgpg-error libintl-perl libpipeline libselinux libsemanage libsepol libtext-unidecode-perl libtimedate-perl libunistring libxml2 libxml-libxml-perl libxml-namespacesupport-perl libxml-sax-base-perl libxml-sax-perl linux lsb lvm2 make-dfsg man-db mawk mpclib3 mpfr4 ncurses pam patch pcre3 perl po-debconf procps sed sensible-utils shadow startpar systemd sysvinit tar tcp-wrappers texinfo tzdata ucf ustr util-linux xz-utils zlib' - - '{name}_build_build-tools': - my_description: 'Reproducible build packages which are used to build other packages.<br>Source packages to be build: ' - my_timed: '42 23 1,16 * *' - my_shell: '/srv/jenkins/bin/reproducible_build.sh' - my_packages: 'cdbs eglibc gcc-defaults devscripts python-defaults python3-defaults ruby-defaults ruby2.1 ghc php5 tcl asciidoc ant maven maven2 lintian pbuilder piuparts schroot fakeroot sbuild cowbuilder git subversion bzr android-tools android-platform-system-core android-platform-build android-platform-frameworks-native fdroidserver' - - '{name}_build_desktop_apps': - my_description: 'Reproducible build of desktop applications: ' - my_timed: '42 5 2,17 * *' - my_shell: '/srv/jenkins/bin/reproducible_build.sh' - my_packages: 'abiword alacarte avahi calligra cheese chromium-browser gobby-0.5 cups-pk-helper desktop-base emacs23 emacs24 vim joe nano emacs-defaults evince evolution galculator gedit-plugins gimp gnumeric gpicview gst-libav1.0 gst-plugins-ugly1.0 hamster-applet iceweasel inkscape irssi leafpad libgtk2-perl mplayer2 screen mutt marble network-manager obconf orage pidgin rhythmbox rygel seahorse shotwell simple-scan sound-juicer tango-icon-theme telepathy-gabble telepathy-rakia telepathy-salut texlive-base tomboy totem tracker transmission udisks2 upower vim vinagre virt-manager vlc wine xarchiver xdg-user-dirs-gtk virtualbox wpasupplicant wicd' - - '{name}_build_gnome': - my_description: 'Reproducible build of GNOME packages: ' - my_timed: '23 5 2,17 * *' - my_shell: '/srv/jenkins/bin/reproducible_build.sh' - my_packages: 'gdm3 gnome-color-manager gnome-documents gnome-main-menu gnome-media gnome-nettool gnome-orca gnome-shell-extensions gnome-tweak-tool meta-gnome3 nautilus' - - '{name}_build_kde': - my_description: 'Reproducible build of KDE packages: ' - my_timed: '42 5 3,18 * *' - my_shell: '/srv/jenkins/bin/reproducible_build.sh' - my_packages: 'kdeartwork kde-baseapps kde-l10n kdepim kdeplasma-addons kde-runtime kdewebdev kde-workspace meta-kde' - - '{name}_build_xfce': - my_description: 'Reproducible build of Xfce packages: ' - my_timed: '23 5 3,18 * *' - my_shell: '/srv/jenkins/bin/reproducible_build.sh' - my_packages: 'gtk2-engines-xfce libxfce4ui thunar thunar-volman xfce4 xfce4-appfinder xfce4-mixer xfce4-notifyd xfce4-panel xfce4-power-manager xfce4-session xfce4-settings xfconf xfdesktop4' - - '{name}_build_lxde': - my_description: 'Reproducible build of LXDE packages: ' - my_timed: '42 5 4,19 * *' - my_shell: '/srv/jenkins/bin/reproducible_build.sh' - my_packages: 'lxappearance lxde-icon-theme lxde-metapackages lxinput lxrandr lxsession libfm lxterminal' - - '{name}_build_mate': - my_description: 'Reproducible build of the Mate packages: ' - my_timed: '23 5 4,19 * *' - my_shell: '/srv/jenkins/bin/reproducible_build.sh' - my_packages: 'mate-applets mate-backgrounds mate-common mate-control-center mate-desktop mate-desktop-environment mate-icon-theme mate-icon-theme-faenza mate-indicator-applet mate-media mate-menus mate-netbook mate-netspeed mate-notification-daemon mate-panel mate-polkit mate-power-manager mate-screensaver mate-sensors-applet mate-session-manager mate-settings-daemon mate-system-monitor mate-terminal mate-themes mate-user-share mate-utils' - - '{name}_build_cinnamon': - my_description: 'Reproducible build of the Cinnamon packages: ' - my_timed: '42 5 5,20 * *' - my_shell: '/srv/jenkins/bin/reproducible_build.sh' - my_packages: 'cinnamon cinnamon-control-center cinnamon-desktop cinnamon-desktop-environment cinnamon-screensaver cinnamon-session cinnamon-settings-daemon cinnamon-translations' - - '{name}_build_libreoffice': - my_description: 'Reproducible build of these libreoffice related packages: ' - my_timed: '42 23 5,20 * *' - my_shell: '/srv/jenkins/bin/reproducible_build.sh' - my_packages: 'libreoffice' - - '{name}_build_xorg': - my_description: 'Reproducible build of these X.Org and and related packages: ' - my_timed: '42 5 6,21 * *' - my_shell: '/srv/jenkins/bin/reproducible_build.sh' - my_packages: 'libglu mesa x11-apps x11-session-utils x11-utils x11-xfs-utils x11-xkb-utils x11-xserver-utils xauth xfonts-100dpi xfonts-75dpi xfonts-base xfonts-scalable xfonts-utils xinit xkeyboard-config xorg xorg-docs xorg-server xserver-xorg-input-evdev xterm x-terminal-emulator glx-alternatives fglrx-driver xserver-xorg-video-nouveau xf86-input-mtrack xf86-input-multitouch xf86-input-wacom xserver-xorg-input-acecad xserver-xorg-input-aiptek xserver-xorg-input-elographics xserver-xorg-input-joystick xserver-xorg-input-keyboard xserver-xorg-input-mouse xserver-xorg-input-mutouch xserver-xorg-input-vmmouse xserver-xorg-input-void xf86-video-glamo xserver-xorg-video-ati xserver-xorg-video-cirrus xserver-xorg-video-dummy xserver-xorg-video-fbdev xserver-xorg-video-glide xserver-xorg-video-intel xserver-xorg-video-ivtvdev xserver-xorg-video-mach64 xserver-xorg-video-mga xserver-xorg-video-modesetting xserver-xorg-video-neomagic xserver-xorg-video-openchrome xserver-xorg-video-qxl xserver-xorg-video-r128 xserver-xorg-video-savage xserver-xorg-video-siliconmotion xserver-xorg-video-sisusb xserver-xorg-video-tdfx xserver-xorg-video-trident xserver-xorg-video-vesa xserver-xorg-video-vmware xpra aterm mlterm mrxvt putty roxterm rxvt rxvt-unicode terminal.app' - - '{name}_build_server': - my_description: 'Reproducible build of these server packages: ' - my_timed: '42 23 6,21 * *' - my_shell: '/srv/jenkins/bin/reproducible_build.sh' - my_packages: 'apache2 asterisk bind9 courier icinga icinga2 lighttpd munin mysql-5.5 nginx postfix exim4 sendmail postgresql-9.4 squid squid3 roundcube openssh rsync nfs-utils bitlbee dropbear puppet cfengine2 ansible fai salt' - - '{name}_build_security-privacy': - my_description: 'Reproducible build of these security and privacy related packages: ' - my_timed: '42 5 7,22 * *' - my_shell: '/srv/jenkins/bin/reproducible_build.sh' - my_packages: 'aircrack-ng apparmor apparmor-profiles-extra assword bilibop corkscrew cryptsetup debian-archive-keyring debian-security-support dmsetup flashproxy gnome-keyring gnunet gnunet-fuse gnunet-gtk gnupg gnupg2 gnutls28 haveged https-everywhere iodine irssi-plugin-otr keepassx libotr macchanger macchanger mat monkeysign monkeysphere mozilla-noscript msva-perl mumble nautilus-wipe obfs4proxy obfsproxy onioncat onionshare openssl openvpn parcimonie pidgin-otr pinentry privoxy pwgen python-pyptlib python-stem python-torctl python-txtorcon seahorse-nautilus secure-delete signing-party tcpdump tlsdate tor tor-arm torbrowser-launcher torsocks vidalia wireshark' - - '{name}_build_d-i': - my_description: 'Reproducible build of these debian-installer packages: ' - my_timed: '42 23 7,22 * *' - my_shell: '/srv/jenkins/bin/reproducible_build.sh' - my_packages: 'anna apt-setup arcboot-installer base-installer bterm-unifont busybox cdebconf-entropy cdebconf-terminal cdebconf cdrom-checker cdrom-detect cdrom-retriever choose-mirror clock-setup console-setup debian-installer-launcher debian-installer-netboot-images debian-installer-utils debian-installer debootstrap dh-di efi-reader elilo-installer finish-install flash-kernel grub-installer hw-detect installation-locale installation-report iso-scan kbd-chooser kernel-wedge kickseed libdebian-installer lilo-installer live-installer localechooser lowmem lvmcfg main-menu mdcfg media-retriever mklibs mountmedia net-retriever netcfg network-console nobootloader oldsys-preseed os-prober partconf partitioner partman-auto-crypto partman-auto-lvm partman-auto-raid partman-auto partman-base partman-basicfilesystems partman-basicmethods partman-btrfs partman-crypto partman-efi partman-ext3 partman-iscsi partman-jfs partman-lvm partman-md partman-multipath partman-nbd partman-newworld partman-partitioning partman-prep partman-target partman-ufs partman-xfs partman-zfs pkgsel prep-installer preseed quik-installer rescue rootskel-gtk rootskel s390-dasd s390-netdevice s390-sysconfig-writer sibyl-installer silo-installer tzsetup udpkg usb-discover user-setup userdevfs win32-loader yaboot-installer zipl-installer' - -# PACKAGES=" " -# echo $PACKAGES | sed -s "s# #\n#g" | sort | xargs echo + my_param: '' -# (for i in $LIST_OF_BINARIES; do apt-cache show $i | grep ^Source | cut -d " " -f2 ; apt-cache show $i | grep -q Source || echo $i ; apt-cache showsrc $i 2>/dev/null | grep ^Package | cut -d " " -f2 ; done ) | sort -u | grep -v build-essential | xargs echo |