summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorAnant Narayanan <anant@kix.in>2006-09-14 15:18:45 +0000
committerAnant Narayanan <anant@kix.in>2006-09-14 15:18:45 +0000
commit232dbda915dfcfec99e5983b7f53d57d4498a6aa (patch)
tree4d54060e75f7f2df07de6e83004551b610ac9865 /scripts
downloadparted-232dbda915dfcfec99e5983b7f53d57d4498a6aa.tar.gz
Fix ChangeLog
git-svn-id: svn://svn.debian.org/svn/parted/upstream/trunk@820 2d424fd7-7fe2-0310-af74-8bc65edeb173
Diffstat (limited to 'scripts')
-rw-r--r--scripts/data/abi/baseline_symbols.txt450
-rwxr-xr-xscripts/extract_symvers67
-rwxr-xr-xscripts/release/tarball_upload.sh157
3 files changed, 674 insertions, 0 deletions
diff --git a/scripts/data/abi/baseline_symbols.txt b/scripts/data/abi/baseline_symbols.txt
new file mode 100644
index 0000000..5672d89
--- /dev/null
+++ b/scripts/data/abi/baseline_symbols.txt
@@ -0,0 +1,450 @@
+FUNC:__efi_crc32
+FUNC:_amiga_add_id
+FUNC:_amiga_free_ids
+FUNC:_amiga_id_in_list
+FUNC:_copy_hidden_sectors
+FUNC:_fini
+FUNC:_init
+FUNC:_ped_device_probe
+FUNC:_ped_disk_alloc
+FUNC:_ped_disk_free
+FUNC:_ped_partition_alloc
+FUNC:_ped_partition_attempt_align
+FUNC:_ped_partition_free
+FUNC:_update_stats
+FUNC:abs_mod
+FUNC:amiga_find_part
+FUNC:ext2_bcache_deinit
+FUNC:ext2_bcache_dump
+FUNC:ext2_bcache_flush
+FUNC:ext2_bcache_flush_range
+FUNC:ext2_bcache_init
+FUNC:ext2_bcache_sync
+FUNC:ext2_bcreate
+FUNC:ext2_block_relocate
+FUNC:ext2_bread
+FUNC:ext2_brelse
+FUNC:ext2_close
+FUNC:ext2_commit_metadata
+FUNC:ext2_copy_block
+FUNC:ext2_destroy_dev_handle
+FUNC:ext2_do_inode
+FUNC:ext2_find_free_block
+FUNC:ext2_find_free_inode
+FUNC:ext2_get_block_state
+FUNC:ext2_get_inode_offset
+FUNC:ext2_get_inode_state
+FUNC:ext2_inode_relocate
+FUNC:ext2_is_group_sparse
+FUNC:ext2_make_dev_handle_from_parted_geometry
+FUNC:ext2_metadata_push
+FUNC:ext2_mkfs
+FUNC:ext2_move_blocks
+FUNC:ext2_open
+FUNC:ext2_read_blocks
+FUNC:ext2_read_inode
+FUNC:ext2_resize_fs
+FUNC:ext2_set_block_state
+FUNC:ext2_set_inode_state
+FUNC:ext2_sync
+FUNC:ext2_write_blocks
+FUNC:ext2_write_inode
+FUNC:ext2_zero_blocks
+FUNC:ext2_zero_inode
+FUNC:extended_euclid
+FUNC:fat_alloc
+FUNC:fat_alloc_buffers
+FUNC:fat_boot_sector_analyse
+FUNC:fat_boot_sector_generate
+FUNC:fat_boot_sector_probe_type
+FUNC:fat_boot_sector_read
+FUNC:fat_boot_sector_set_boot_code
+FUNC:fat_boot_sector_write
+FUNC:fat_calc_align_sectors
+FUNC:fat_calc_resize_sizes
+FUNC:fat_calc_sizes
+FUNC:fat_check
+FUNC:fat_check_resize_geometry
+FUNC:fat_clobber
+FUNC:fat_close
+FUNC:fat_cluster_to_frag
+FUNC:fat_cluster_to_sector
+FUNC:fat_collect_cluster_info
+FUNC:fat_copy
+FUNC:fat_create
+FUNC:fat_create_fat16
+FUNC:fat_create_fat32
+FUNC:fat_dir_entry_get_first_cluster
+FUNC:fat_dir_entry_get_length
+FUNC:fat_dir_entry_get_name
+FUNC:fat_dir_entry_has_first_cluster
+FUNC:fat_dir_entry_is_active
+FUNC:fat_dir_entry_is_directory
+FUNC:fat_dir_entry_is_file
+FUNC:fat_dir_entry_is_null_term
+FUNC:fat_dir_entry_is_system_file
+FUNC:fat_dir_entry_set_first_cluster
+FUNC:fat_duplicate_clusters
+FUNC:fat_frag_to_cluster
+FUNC:fat_frag_to_sector
+FUNC:fat_free
+FUNC:fat_free_buffers
+FUNC:fat_get_cluster_flag
+FUNC:fat_get_cluster_usage
+FUNC:fat_get_copy_constraint
+FUNC:fat_get_create_constraint_fat16
+FUNC:fat_get_create_constraint_fat32
+FUNC:fat_get_fragment_flag
+FUNC:fat_get_resize_constraint
+FUNC:fat_info_sector_generate
+FUNC:fat_info_sector_read
+FUNC:fat_info_sector_write
+FUNC:fat_is_fragment_active
+FUNC:fat_is_sector_in_clusters
+FUNC:fat_max_cluster_count
+FUNC:fat_max_cluster_size
+FUNC:fat_min_cluster_count
+FUNC:fat_min_cluster_size
+FUNC:fat_min_reserved_sector_count
+FUNC:fat_op_context_create_initial_fat
+FUNC:fat_op_context_destroy
+FUNC:fat_op_context_map_cluster
+FUNC:fat_op_context_map_fragment
+FUNC:fat_op_context_map_static_cluster
+FUNC:fat_op_context_map_static_fragment
+FUNC:fat_op_context_new
+FUNC:fat_open
+FUNC:fat_probe
+FUNC:fat_probe_fat16
+FUNC:fat_probe_fat32
+FUNC:fat_read_cluster
+FUNC:fat_read_clusters
+FUNC:fat_read_fragment
+FUNC:fat_read_fragments
+FUNC:fat_recommend_min_cluster_size
+FUNC:fat_resize
+FUNC:fat_sector_to_cluster
+FUNC:fat_sector_to_frag
+FUNC:fat_set_frag_sectors
+FUNC:fat_table_alloc_check_cluster
+FUNC:fat_table_alloc_cluster
+FUNC:fat_table_clear
+FUNC:fat_table_compare
+FUNC:fat_table_count_stats
+FUNC:fat_table_destroy
+FUNC:fat_table_duplicate
+FUNC:fat_table_entry_size
+FUNC:fat_table_get
+FUNC:fat_table_is_active
+FUNC:fat_table_is_available
+FUNC:fat_table_is_bad
+FUNC:fat_table_is_empty
+FUNC:fat_table_is_eof
+FUNC:fat_table_new
+FUNC:fat_table_read
+FUNC:fat_table_set
+FUNC:fat_table_set_avail
+FUNC:fat_table_set_bad
+FUNC:fat_table_set_cluster_count
+FUNC:fat_table_set_eof
+FUNC:fat_table_write
+FUNC:fat_table_write_all
+FUNC:fat_traverse_begin
+FUNC:fat_traverse_complete
+FUNC:fat_traverse_directory
+FUNC:fat_traverse_entries_per_buffer
+FUNC:fat_traverse_mark_dirty
+FUNC:fat_traverse_next_dir_entry
+FUNC:fat_write_cluster
+FUNC:fat_write_clusters
+FUNC:fat_write_fragment
+FUNC:fat_write_fragments
+FUNC:fat_write_sync_cluster
+FUNC:fat_write_sync_clusters
+FUNC:fat_write_sync_fragment
+FUNC:fat_write_sync_fragments
+FUNC:findit
+FUNC:geom_dal_create
+FUNC:geom_dal_free
+FUNC:geom_dal_reopen
+FUNC:hfs_and_wrapper_probe
+FUNC:hfs_btree_search
+FUNC:hfs_file_close
+FUNC:hfs_file_open
+FUNC:hfs_file_read_sector
+FUNC:hfs_file_write_sector
+FUNC:hfs_find_start_pack
+FUNC:hfs_free_bad_blocks_list
+FUNC:hfs_get_empty_end
+FUNC:hfs_is_bad_block
+FUNC:hfs_pack_free_space_from_block
+FUNC:hfs_probe
+FUNC:hfs_read_bad_blocks
+FUNC:hfs_update_mdb
+FUNC:hfsc_cache_add_extent
+FUNC:hfsc_cache_move_extent
+FUNC:hfsc_cache_search_extent
+FUNC:hfsc_can_use_geom
+FUNC:hfsc_delete_cache
+FUNC:hfsc_new_cache
+FUNC:hfsj_replay_journal
+FUNC:hfsj_update_jib
+FUNC:hfsj_update_jl
+FUNC:hfsplus_btree_search
+FUNC:hfsplus_file_close
+FUNC:hfsplus_file_open
+FUNC:hfsplus_file_read
+FUNC:hfsplus_file_write
+FUNC:hfsplus_find_start_pack
+FUNC:hfsplus_free_bad_blocks_list
+FUNC:hfsplus_get_empty_end
+FUNC:hfsplus_get_min_size
+FUNC:hfsplus_is_bad_block
+FUNC:hfsplus_pack_free_space_from_block
+FUNC:hfsplus_probe
+FUNC:hfsplus_read_bad_blocks
+FUNC:hfsplus_update_vh
+FUNC:hfsx_probe
+FUNC:mac_alloc
+FUNC:ped_alignment_align_down
+FUNC:ped_alignment_align_nearest
+FUNC:ped_alignment_align_up
+FUNC:ped_alignment_destroy
+FUNC:ped_alignment_duplicate
+FUNC:ped_alignment_init
+FUNC:ped_alignment_intersect
+FUNC:ped_alignment_is_aligned
+FUNC:ped_alignment_new
+FUNC:ped_assert
+FUNC:ped_calloc
+FUNC:ped_constraint_any
+FUNC:ped_constraint_destroy
+FUNC:ped_constraint_done
+FUNC:ped_constraint_duplicate
+FUNC:ped_constraint_exact
+FUNC:ped_constraint_init
+FUNC:ped_constraint_intersect
+FUNC:ped_constraint_is_solution
+FUNC:ped_constraint_new
+FUNC:ped_constraint_new_from_max
+FUNC:ped_constraint_new_from_min
+FUNC:ped_constraint_new_from_min_max
+FUNC:ped_constraint_solve_max
+FUNC:ped_constraint_solve_nearest
+FUNC:ped_debug
+FUNC:ped_debug_set_handler
+FUNC:ped_device_begin_external_access
+FUNC:ped_device_check
+FUNC:ped_device_close
+FUNC:ped_device_destroy
+FUNC:ped_device_end_external_access
+FUNC:ped_device_free_all
+FUNC:ped_device_get
+FUNC:ped_device_get_constraint
+FUNC:ped_device_get_next
+FUNC:ped_device_is_busy
+FUNC:ped_device_open
+FUNC:ped_device_probe_all
+FUNC:ped_device_read
+FUNC:ped_device_sync
+FUNC:ped_device_sync_fast
+FUNC:ped_device_write
+FUNC:ped_disk_add_partition
+FUNC:ped_disk_amiga_done
+FUNC:ped_disk_amiga_init
+FUNC:ped_disk_bsd_done
+FUNC:ped_disk_bsd_init
+FUNC:ped_disk_check
+FUNC:ped_disk_clobber
+FUNC:ped_disk_clobber_exclude
+FUNC:ped_disk_commit
+FUNC:ped_disk_commit_to_dev
+FUNC:ped_disk_commit_to_os
+FUNC:ped_disk_delete_all
+FUNC:ped_disk_delete_partition
+FUNC:ped_disk_destroy
+FUNC:ped_disk_duplicate
+FUNC:ped_disk_dvh_done
+FUNC:ped_disk_dvh_init
+FUNC:ped_disk_extended_partition
+FUNC:ped_disk_get_last_partition_num
+FUNC:ped_disk_get_max_partition_geometry
+FUNC:ped_disk_get_max_primary_partition_count
+FUNC:ped_disk_get_partition
+FUNC:ped_disk_get_partition_by_sector
+FUNC:ped_disk_get_primary_partition_count
+FUNC:ped_disk_gpt_done
+FUNC:ped_disk_gpt_init
+FUNC:ped_disk_loop_done
+FUNC:ped_disk_loop_init
+FUNC:ped_disk_mac_done
+FUNC:ped_disk_mac_init
+FUNC:ped_disk_maximize_partition
+FUNC:ped_disk_minimize_extended_partition
+FUNC:ped_disk_msdos_done
+FUNC:ped_disk_msdos_init
+FUNC:ped_disk_new
+FUNC:ped_disk_new_fresh
+FUNC:ped_disk_next_partition
+FUNC:ped_disk_pc98_done
+FUNC:ped_disk_pc98_init
+FUNC:ped_disk_print
+FUNC:ped_disk_probe
+FUNC:ped_disk_remove_partition
+FUNC:ped_disk_set_partition_geom
+FUNC:ped_disk_sun_done
+FUNC:ped_disk_sun_init
+FUNC:ped_disk_type_check_feature
+FUNC:ped_disk_type_get
+FUNC:ped_disk_type_get_next
+FUNC:ped_div_round_to_nearest
+FUNC:ped_div_round_up
+FUNC:ped_exception_catch
+FUNC:ped_exception_fetch_all
+FUNC:ped_exception_get_option_string
+FUNC:ped_exception_get_type_string
+FUNC:ped_exception_leave_all
+FUNC:ped_exception_rethrow
+FUNC:ped_exception_set_handler
+FUNC:ped_exception_throw
+FUNC:ped_file_system_amiga_done
+FUNC:ped_file_system_amiga_init
+FUNC:ped_file_system_check
+FUNC:ped_file_system_clobber
+FUNC:ped_file_system_close
+FUNC:ped_file_system_copy
+FUNC:ped_file_system_create
+FUNC:ped_file_system_ext2_done
+FUNC:ped_file_system_ext2_init
+FUNC:ped_file_system_fat_done
+FUNC:ped_file_system_fat_init
+FUNC:ped_file_system_get_copy_constraint
+FUNC:ped_file_system_get_create_constraint
+FUNC:ped_file_system_get_resize_constraint
+FUNC:ped_file_system_hfs_done
+FUNC:ped_file_system_hfs_init
+FUNC:ped_file_system_jfs_done
+FUNC:ped_file_system_jfs_init
+FUNC:ped_file_system_linux_swap_done
+FUNC:ped_file_system_linux_swap_init
+FUNC:ped_file_system_ntfs_done
+FUNC:ped_file_system_ntfs_init
+FUNC:ped_file_system_open
+FUNC:ped_file_system_probe
+FUNC:ped_file_system_probe_specific
+FUNC:ped_file_system_reiserfs_done
+FUNC:ped_file_system_reiserfs_init
+FUNC:ped_file_system_resize
+FUNC:ped_file_system_type_get
+FUNC:ped_file_system_type_get_next
+FUNC:ped_file_system_type_register
+FUNC:ped_file_system_type_unregister
+FUNC:ped_file_system_ufs_done
+FUNC:ped_file_system_ufs_init
+FUNC:ped_file_system_xfs_done
+FUNC:ped_file_system_xfs_init
+FUNC:ped_free
+FUNC:ped_geometry_check
+FUNC:ped_geometry_destroy
+FUNC:ped_geometry_duplicate
+FUNC:ped_geometry_init
+FUNC:ped_geometry_intersect
+FUNC:ped_geometry_map
+FUNC:ped_geometry_new
+FUNC:ped_geometry_read
+FUNC:ped_geometry_set
+FUNC:ped_geometry_set_end
+FUNC:ped_geometry_set_start
+FUNC:ped_geometry_sync
+FUNC:ped_geometry_sync_fast
+FUNC:ped_geometry_test_equal
+FUNC:ped_geometry_test_inside
+FUNC:ped_geometry_test_overlap
+FUNC:ped_geometry_test_sector_inside
+FUNC:ped_geometry_write
+FUNC:ped_get_version
+FUNC:ped_greatest_common_divisor
+FUNC:ped_malloc
+FUNC:ped_partition_destroy
+FUNC:ped_partition_flag_get_by_name
+FUNC:ped_partition_flag_get_name
+FUNC:ped_partition_flag_next
+FUNC:ped_partition_get_flag
+FUNC:ped_partition_get_name
+FUNC:ped_partition_get_path
+FUNC:ped_partition_is_active
+FUNC:ped_partition_is_busy
+FUNC:ped_partition_is_flag_available
+FUNC:ped_partition_new
+FUNC:ped_partition_print
+FUNC:ped_partition_set_flag
+FUNC:ped_partition_set_name
+FUNC:ped_partition_set_system
+FUNC:ped_partition_type_get_name
+FUNC:ped_realloc
+FUNC:ped_register_disk_type
+FUNC:ped_round_down_to
+FUNC:ped_round_to_nearest
+FUNC:ped_round_up_to
+FUNC:ped_set_architecture
+FUNC:ped_timer_destroy
+FUNC:ped_timer_destroy_nested
+FUNC:ped_timer_new
+FUNC:ped_timer_new_nested
+FUNC:ped_timer_reset
+FUNC:ped_timer_set_state_name
+FUNC:ped_timer_touch
+FUNC:ped_timer_update
+FUNC:ped_unit_format
+FUNC:ped_unit_format_byte
+FUNC:ped_unit_format_custom
+FUNC:ped_unit_format_custom_byte
+FUNC:ped_unit_get_by_name
+FUNC:ped_unit_get_default
+FUNC:ped_unit_get_name
+FUNC:ped_unit_get_size
+FUNC:ped_unit_parse
+FUNC:ped_unit_parse_custom
+FUNC:ped_unit_set_default
+FUNC:ped_unregister_disk_type
+FUNC:raw_part_parse
+NOTYPE:__bss_start
+NOTYPE:_edata
+NOTYPE:_end
+OBJECT:12:linux_disk_ops
+OBJECT:16:_affs0_type
+OBJECT:16:_affs1_type
+OBJECT:16:_affs2_type
+OBJECT:16:_affs3_type
+OBJECT:16:_affs4_type
+OBJECT:16:_affs5_type
+OBJECT:16:_affs6_type
+OBJECT:16:_affs7_type
+OBJECT:16:_amufs0_type
+OBJECT:16:_amufs1_type
+OBJECT:16:_amufs2_type
+OBJECT:16:_amufs3_type
+OBJECT:16:_amufs4_type
+OBJECT:16:_amufs5_type
+OBJECT:16:_amufs_type
+OBJECT:16:_apfs1_type
+OBJECT:16:_apfs2_type
+OBJECT:16:_asfs_type
+OBJECT:16:fat16_type
+OBJECT:16:fat32_type
+OBJECT:1:fat16
+OBJECT:24:ops
+OBJECT:324:xfsstats
+OBJECT:4:ext2_buffer_cache_pool_size
+OBJECT:4:ext2_hash_bits
+OBJECT:4:ext2_relocator_pool_size
+OBJECT:4:hfs_block
+OBJECT:4:hfs_block_count
+OBJECT:4:hfsp_block
+OBJECT:4:hfsp_block_count
+OBJECT:4:ped_alignment_any
+OBJECT:4:ped_alignment_none
+OBJECT:4:ped_architecture
+OBJECT:4:ped_exception
+OBJECT:8:_bitmap
+OBJECT:8:ped_linux_arch
diff --git a/scripts/extract_symvers b/scripts/extract_symvers
new file mode 100755
index 0000000..8a74db9
--- /dev/null
+++ b/scripts/extract_symvers
@@ -0,0 +1,67 @@
+#!/bin/sh
+
+# Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+#
+# This file is part of the GNU ISO C++ Library. This library is free
+# software; you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this library; see the file COPYING. If not, write to the Free
+# Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+# USA.
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction. Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License. This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+
+if test ${#} -lt 2 || test $1 = '--help'; then
+ echo "Usage: extract_symvers shared_lib output_file" 1>&2
+ exit 1
+fi
+
+lib=$1
+output=$2
+
+# GNU binutils, somewhere after version 2.11.2, requires -W/--wide to avoid
+# default line truncation. -W is not supported and truncation did not occur
+# by default before that point.
+readelf="readelf --symbols"
+if readelf --help | grep -- --wide > /dev/null; then
+ readelf="$readelf --wide"
+fi
+
+# This avoids weird sorting problems later.
+LC_ALL=C
+export LC_ALL
+LANG=C
+export LANG
+
+tmp=extract.$$
+
+${readelf} ${lib} | sed '/\.dynsym/,/^$/p;d' | egrep -v ' (LOCAL|UND) ' |\
+awk '{ if ($4 == "FUNC" || $4 == "NOTYPE")
+ printf "%s:%s\n", $4, $8;
+ else if ($4 == "OBJECT")
+ printf "%s:%s:%s\n", $4, $3, $8;
+ }' | sort | uniq > $tmp 2>&1
+# else printf "Huh? What is %s?\n", $8;
+
+
+# I think we'll be doing some more with this file, but for now, dump.
+mv $tmp $output
+
+exit 0
diff --git a/scripts/release/tarball_upload.sh b/scripts/release/tarball_upload.sh
new file mode 100755
index 0000000..26f14ac
--- /dev/null
+++ b/scripts/release/tarball_upload.sh
@@ -0,0 +1,157 @@
+#!/bin/sh
+
+#set -x
+
+SRCDIR=.
+
+cd $SRCDIR
+
+# release GNU Parted (without tagging).
+# (C)2005, 2006 Leslie Patrick Polzer <polzer@gnu.org>
+
+
+message()
+{
+ echo '====================================================='
+ echo "$1"
+ echo '====================================================='
+}
+
+
+correct_version()
+{
+ grep $1 $2 >/dev/null
+ if [ $? -eq 0 ]; then
+ return 0
+ fi
+ return 1;
+}
+
+
+check_for_program()
+{
+ which $1
+ if [ $? -ne 0 ]; then
+ echo "not found, exiting."
+ exit
+ fi
+}
+
+
+echo "* checking for programs that might be missing..."
+for p in gpg curl upx statifier; do
+ echo -en "\t$p: "
+ check_for_program $p
+done
+
+[[ ./autogen.sh ]] || return 1
+[[ ./configure ]] || return 1
+
+VERSION=$(grep ' VERSION' config.h | awk '{print $3}' | tr -d '"')
+
+message "* checking for correct version in files"
+for f in ChangeLog NEWS; do
+ echo -n -e "\t$f: "
+ correct_version $VERSION $f
+ if [ $? -eq 0 ]; then
+ echo OK
+ else
+ echo "-> WARNING: version mismatch"
+ fi
+done
+
+
+correct_version $VERSION Doxyfile
+if [ $? -ne 0 ]; then
+ echo "-> WARNING: version not updated in Doxygen configuration!"
+fi
+
+message '* checking whether code compiles: '
+make -s
+if [ $? -ne 0 ]; then
+ echo no; exit
+fi
+echo OK
+
+# FIXME
+# echo "running regression tests"
+
+message 'RELEASE SANITY TESTS SUCCESSFULLY FINISHED!
+I hope you tagged the release beforehand!
+Hit <RETURN> to continue with "make dist".'
+read
+
+message '* creating tarballs...'
+for f in gzip bzip2; do
+ echo -n "dist-$f: "
+ make dist-$f
+ if [ $? -ne 0 ]; then
+ echo FAILED; exit
+ fi
+ echo success
+done
+
+set -x
+# set up gpg-agent
+GPGAENV=$(gpg-agent --daemon -s)
+GPGAPID=$(echo $GPGAENV | cut -d ':' -f 2)
+eval "$GPGAENV"
+set +x
+
+for EXT in gz bz2; do
+
+TARBALL=parted-$VERSION.tar.$EXT
+
+message "* signing $TARBALL to detached signature file $TARBALL.sig"
+gpg --use-agent -b $TARBALL
+if [ $? -ne 0 ]; then
+ kill $GPGAPID echo "\t-> FAILED"; exit
+fi
+echo -e "\t-> success"
+
+
+DIRECTIVE=$TARBALL.directive
+message "* creating and clearsigning directive file to $DIRECTIVE.asc"
+echo -n 'Directory: parted' > $DIRECTIVE
+if [ $? -ne 0 ]; then
+ kill $GPGAPID; echo creation FAILED; exit
+fi
+echo -e "\t-> created "
+gpg --use-agent --clearsign $DIRECTIVE
+if [ $? -ne 0 ]; then
+ kill $GPGAPID; echo ", but signing failed"; exit
+fi
+echo -e "\t-> signed"
+
+
+message "* deleting $DIRECTIVE."
+rm $DIRECTIVE
+
+done
+
+#kill $GPGAPID
+
+
+# do all uploading work
+message "! Ready! Hit <RETURN> to start upload."
+read
+
+message "* uploading files to ftp-upload.gnu.org..."
+for EXT in gz bz2; do
+ TARBALL=parted-$VERSION.tar.$EXT
+ SIG=parted-$VERSION.tar.$EXT.sig
+ DIRECTIVE=$TARBALL.directive
+ for f in $TARBALL $SIG $DIRECTIVE.asc; do
+ curl --upload-file $PWD/$f \
+ 'ftp://ftp-upload.gnu.org/incoming/ftp/'
+
+ if [ $? -eq 0 ]; then
+ echo "-> successfully uploaded $f."
+ else
+ echo "-> upload of $f FAILED, exiting."
+ fi
+ done
+done
+
+message "* all files uploaded."
+